第6章全景图像的拼接技术全景图像(全景图)的拼接是指利用摄像机的平移或旋转得到的部分重叠的图像样本,生成一个较大的甚至360°的全方位图像的场景绘制方法。
换句话说,就是给定某个真实场景的一组局部图像,然后对这一组图像进行拼接,生成包含这组局部图像的新视图。
目前全景图像基本可分为柱面、球面、立方体等形式,以柱面和球面全景图最易实现而普遍采用。
本节主要介绍柱面和球面全景图像的拼接算法。
全景图的拼接一般有以下几个步骤。
(1)将从真实世界中拍摄的一组照片以一定方式投影到统一的空间面上,如立方体、圆柱体和球体表面等,这样这组照片就具有统一的参数空间坐标。
(2)在这个统一的空间对相邻图像进行比较,以确定可匹配的区域位置。
(3)将图像重叠区域进行融合处理,拼接成全景图。
在全景图的拼接中,一般都是根据图像序列中相邻两幅图像的重叠区域的相似性来实现的,有基于特征的方法和直接方法等。
本章将主要从基于特征的方法和直接方法两方面介绍柱面和球面全景图像的拼接算法技术。
6.1 柱面全景图像拼接技术本节分为两部分:第一部分是基于特征的拼接算法,这种算法主要从两幅图像中选择一系列特征,然后根据相似性原则进行图像间的特征匹配,这一部分介绍了基于特征点和特征块匹配的全景图像拼接算法;第二部分是基于相位相关拼接算法,这种方法是直接从图像的重叠区域对应像素灰度值出发考虑,利用所有可利用的数据实现很精准的匹配。
6.1.1基于特征的拼接算法1.基于特征点的拼接算法本节提出一种基于特征点匹配的柱面全景图像拼接算法。
首先将360°环绕拍摄的序列图像投影到柱面坐标系下:然后提取各图像的尺寸不变特征变换(Scale Invariant Feature Transform, SIFT)特征点,通过特征点匹配完成两幅图像的配准;再根据配准结果计算出图像间的变换参数;最后采用加权平均的融合方法对两幅图像进行无缝拼接。
1)柱面投影变换在进行柱面全景图的拼接过程中,为了保持实际场景中的空间约束关系和实际场景的视觉图6.1.1 柱面投影变换示意图一致性,需将拍摄得到的反映各自投影平面的重叠图像序列映射到一个标准的柱面坐标空间上,即柱面投影,得到柱面图像序列,再进行拼接得到柱面全景图。
柱面投影变换的核心是投影变换公式,如图6.1.1(a)所示为柱面投影空间,I 表示原始图像,I ′是I 的柱面投影图像,坐标原点O 选为圆柱中心(投影中心),假定摄像机的运动都发生在O-xz 平面,而且图像中心点就是光轴与图像平面的交点,现在要得到O 点观察到的原始图像I 在柱面空间K 上的柱面投影图像I ′。
设柱面半径r ,投影角为θ,图像宽度为W ,图像高度为H ,容易得到柱面图像的宽度为2r sin θ2⁄,高度仍为H 。
图像的像素坐标均以图像平面中的最左上角像素为坐标原点。
对于图像I 上的任意一点P (x,y ),在柱面图像I’上的对应点为P ′(x ′,y ′),对点P 沿O-xz 平面和O-xz 的横截面分别如图6.1.1(b)和图6.1.1(c)所示,可得柱面投影变换公式{ /2sin sin arctan 2x W x r r r θ⎛-⎫⎛⎫'=+ ⎪ ⎪⎝⎭⎝⎭()/22r y H H y k -'=+式中,k =√r 2+(W 2⁄−x)2,r =W 2tan (θ2⁄)⁄。
r 为拍摄焦距,θ为每张图像所占的弧度角,一副全景图像所占的角度为360°。
假设相机拍摄时为等转角拍摄,相邻两幅图像重合度均为η,拼接成一副全景图像需要待拼接图像总数为n ,难么每一幅图像所占的弧度角就可以近似为θ=2πn 1(1−η)2)图像配准在全景图的拼接中,图像的配准既是一个难点又是一项核心工作,它直接影响图像拼接的效果。
基于图像特征的配准方法,首先要尽可能准确地提取出图像的特征,所以选择高精度的提取方法至关重要。
为了克服由于照相机的运动而存在的视角和尺度上的噪声,采用2004年Low改进的SIFT算法完成图像序列特征点的提取。
(1)特征点的提取。
SIFT特征提取算法步骤如下。
①检测尺度空间极值.首先对原始图像进行一系列的高斯滤波得到图像的高斯空间;然后对高斯图像进行差分,形成高斯差分图像空间DOG图像(Difference of Gaussian);最后,取这些特征点不受噪声影响,DOG图像保证特征点不受亮度差的影响,在高斯差分图像空间提取极值点保证尺度不变性。
②精确定位特征点。
首先获取候选特征点处的拟合函数D(X)=D+∂D T∂XX+12X Tð2DðX2X求导得到极值点X̂=−ð2D−1ðX2ðDðX对应极值D(X̂)=D+12ðD T ðX不断修正X求取局部最优点,剔除|D(X̂)|<0.03的弱特征点,同时获取候选特征点的精确位置、尺度。
然后获取特征点的Hessian矩阵H=(D xx D xyD xy D YY)H的特征值α、β别代表x、y方向的梯度,剔除仅对一个方向梯度大的特征点。
③确定特征点的主方向。
这一步骤的目的是用于特征点的匹配,找出主方向后,在进行匹配时就可以把图像旋转到主方向,以保证图像的旋转不变性。
(x,y)处的梯度值和方向值分别为m(x,y)=√[L(x+1,y)−L(x−1,y)]2+[L(x,y+1)−L(x,y−1)]2θ(x,y)=tan−1L(x,y+1)−L(x,y−1) L(x+1,y)−L(x−1,y)在以特征点为中心的邻域窗口内采样,采用梯度方向直方图来统计邻域像素的梯度方向,直方图的最高峰值点对应的方向即为主方向。
④生成特征点描述符。
特征点的匹配就是进行特征点描述符的比较,所以特征点的描述非常重要。
以特征点为中心取1616⨯的窗口,然后在图像的44⨯小块上计算8个方向的梯度方向直方图,绘制每个梯度方向的累加值,形成一个种子点。
则一个特征点就用4416⨯=个种子点来描述,而每个种子点有个8个方向向量信息,所以每个特征点就可以产生448128⨯⨯=个数据,即128维的SIFT特征向量或特征描述符。
对特征向量的长度归一化即可去除光照变化的影响。
通过以上四步计算得到的SIFT特征点已经比较稳定了,下面就进行特征点的匹配,以完成图像的配准。
(2)特征点的匹配。
以两个特征点描述符之间的欧氏距离作为特征点匹配的相似度准则。
假设特征点对p和q的特征描述符分别为Des p和Des q,则其欧氏距离定义为d=√∑(Des p(i)−Des q(i))2i=0,…,127首先采用优先k-d树进行优先搜索来查找每个特征点的两个近似最近邻特征点,例如,找出特征点p欧氏距离最近和次近的两个相邻特征点q′和q′′,然后计算p与q′以及p与q′′两组描述符之间欧氏距离的比值t,如果t小于规定阈值T,则视为匹配成功,接受点对(p,q′)为图像序列中的一对匹配点,否则匹配失败。
然后采用RANSAC (Random Sample Consensus)算法通过不断地在所有特征点对中抽取4对特征点计算透视变换模型,同时统计符合模型的内点,获取最多内点的模型即为图像转换模型,此时错误匹配的点对也被删除。
3)图像融合图像配准后,根据图像间变换模型确定图像间的重叠区域,今儿拼接图像序列形成一幅完整的、宽视角的全景图像,但是由于普通的手持照相机在拍摄照片时会自动选取曝光参数,这会使输入图像间存在亮度差异,导致拼接后的图像缝合线两端出现明显的明暗变化,因此,为了使融合后的图像具有视觉一致性而没有明显的接缝,采用加权平均的融合方法进行图像平滑过渡。
假设f1和f2是两幅待拼接的图像,f是融合后的图像,则f(x,y)={f1(x,y)d1f1(x,y)+d2f2(x,y) (x,y)∈(f1∩f2)f2(x,y)式中,d1、d2表示权重值,与重叠区域的宽度有关,且d1+d2=1, 0<d1,d2<1, 在重叠区域,d1由1渐变至0,d2由0渐变至1,由此实现了在重叠区域由f1慢慢平滑过渡到f2。
2. 基于特征块的拼接算法本节提出一种基于特征块匹配的柱面全景图像拼接算法。
首先将360°环绕拍摄的序列图像图6.1.2 柱面坐标映射示意图投影到柱面坐标系下:然后以一幅图像为基准图像,选择基准图像中边缘信息丰富的块作为基准块,利用特征块匹配法在待配图像中找出与基准块匹配的配准块,进而实现两幅图像的配准:再根据配准结果计算出图像间的变换参数:最后采用平滑因子对两幅图像的重叠区域进行图像无缝拼接。
1)柱面坐标映射柱面投影就是将图像投影到柱面上,以获得从投影中心(视点)观察图像在柱面上的成像,从而满足人类的视觉一致性。
如图6.1.2(a)所示,O 为观测点,Cylinder 为投影柱面,I 为待投影图像,I′为I 的柱面投影图像。
将图 6.1.2(a)分别向观测点所在水平面和OMN 面投影,得到的截面图为图 6.1.2(b)和图6.1.2(c),其中N (x,y )为I 中的一点,N′(x ′,y ′)为其对应的投影点。
图像的像素坐标均以图像平面中的左上角像素为坐标原点。
设柱面半径为r ,摄影宽度角为θ,图像宽度为W ,高度为H 。
容易得到,柱面图像的宽度为2r sin(θ2⁄),高度仍为H 。
由图6.1.2(b)和图6.1.2(c)可得柱面投影公式为{x′=r θ2+rarctan x ′−W 2⁄r y ′=H 2−r(H 2−y ⁄)k其反投影公式为{x =W 2+r tan (x ′−rθ/2r )y =H 2−k(H 2−y′⁄)r式中,θ为每张图像所占的弧度角:r 为拍摄焦距,r =W 2tan (θ2⁄)⁄,k =√r 2+(x −W 2⁄)2。
一幅全景图像的角度为2π。
假设照相机拍摄时为等转角拍摄,相邻两幅图像的重合度均为图6.1.3 特征块选取示意图η,拼接成一幅全景图像需要的待拼接图像总数为n ,那么每一幅图像所占的弧度角就可以近似为θ=2πn 1(1−η)2)图像配准(1)基准特征块的选取。
利用特征块匹配进行图像拼接的关键一步就是选取基准特征块,基准块选取不当往往会造成拼接算法不能适应待拼接图像的变化。
因此,本节基于边缘信息进行基准特征块的选取。
采用Sobel 算子对待拼接图像进行边缘检测,获得原图像的边缘图E (i,j ),以图像中每个像素点的邻域边缘量(NEA )来定义此位置的边缘信息大小为NEA (i,j )=∑∑E(i +m,j +n)An=−AA m=−A式中,A 为在点E(i,j)处所取邻域边长的1/2 。
找出NEA(i,j)最大值所对应的点(i,j)作为基准点,然后以此点为中心点选择大小适中的块就可以找到基准特征块。