全景图像拼接技术
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第6章全景图像的拼接技术
全景图像(全景图)的拼接是指利用摄像机的平移或旋转得到的部分重叠的图像样本,生成一个较大的甚至360°的全方位图像的场景绘制方法。
换句话说,就是给定某个真实场景的一组局部图像,然后对这一组图像进行拼接,生成包含这组局部图像的新视图。
目前全景图像基本可分为柱面、球面、立方体等形式,以柱面和球面全景图最易实现而普遍采用。
本节主要介绍柱面和球面全景图像的拼接算法。
全景图的拼接一般有以下几个步骤。
(1)将从真实世界中拍摄的一组照片以一定方式投影到统一的空间面上,如立方体、圆柱体和球体表面等,这样这组照片就具有统一的参数空间坐标。
(2)在这个统一的空间对相邻图像进行比较,以确定可匹配的区域位置。
(3)将图像重叠区域进行融合处理,拼接成全景图。
在全景图的拼接中,一般都是根据图像序列中相邻两幅图像的重叠区域的相似性来实现的,有基于特征的方法和直接方法等。
本章将主要从基于特征的方法和直接方法两方面介绍柱面和球面全景图像的拼接算法技术。
6.1 柱面全景图像拼接技术
本节分为两部分:第一部分是基于特征的拼接算法,这种算法主要从两幅图像中选择一系列特征,然后根据相似性原则进行图像间的特征匹配,这一部分介绍了基于特征点和特征块匹配的全景图像拼接算法;第二部分是基于相位相关拼接算法,这种方法是直接从图像的重叠区域对应像素灰度值出发考虑,利用所有可利用的数据实现很精准的匹配。
6.1.1基于特征的拼接算法
1.基于特征点的拼接算法
本节提出一种基于特征点匹配的柱面全景图像拼接算法。
首先将360°环绕拍摄的序列图像投影到柱面坐标系下:然后提取各图像的尺寸不变特征变换(Scale Invariant Feature Transform, SIFT)特征点,通过特征点匹配完成两幅图像的配准;再根据配准结果计算出图像间的变换参数;最后采用加权平均的融合方法对两幅图像进行无缝拼接。
1)柱面投影变换
在进行柱面全景图的拼接过程中,为了保持实际场景中的空间约束关系和实际场景的视觉
一致性,需将拍摄得到的反映各自投影平面的重叠图像序列映射到一个标准的柱面坐标空间上,即柱面投影,得到柱面图像序列,再进行拼接得到柱面全景图。
柱面投影变换的核心是投影变换公式,如图6.1.1(a)所示为柱面投影空间,I表示原始图像,是I 的柱面投影图像,坐标原点选为圆柱中心(投影中心),假定摄像机的运动都发生在O-xz 平面,而且图像中心点就是光轴与图像平面的交点,现在要得到点观察到的原始图像I在柱面空间K 上的柱面投影图像。
设柱面半径,投影角为,图像宽度为W,图像高度为H,容易得到柱面图像的宽度为,高度仍为H。
图像的像素坐标均以图像平面中的最左上角像素为坐标原点。
对于图像I上的任意一点P(x,y),在柱面图像I’上的对应点为,对点P沿O-xz 平面和O-xz的横截面分别如图6.1.1(b)和图6.1.1(c)所示,可得柱面投影变换公式
式中,,。
图6.1.1 柱面投影变换示意图
为拍摄焦距,为每张图像所占的弧度角,一副全景图像所占的角度为360°。
假设相机拍摄时为等转角拍摄,相邻两幅图像重合度均为,拼接成一副全景图像需要待拼接图像总数为,难么每一幅图像所占的弧度角就可以近似为
2)图像配准
在全景图的拼接中,图像的配准既是一个难点又是一项核心工作,它直接影响图像拼接的效果。
基于图像特征的配准方法,首先要尽可能准确地提取出图像的特征,所以选择高精度的提取方法至关重要。
为了克服由于照相机的运动而存在的视角和尺度上的噪声,采用2004年Low改进的SIFT算法完成图像序列特征点的提取。
(1)特征点的提取。
SIFT特征提取算法步骤如下。
①检测尺度空间极值.首先对原始图像进行一系列的高斯滤波得到图像的高斯空间;然后对高斯图像进行差分,形成高斯差分图像空间DOG图像(Difference of Gaussian);最后,取这些特征点不受噪声影响,DOG图像保证特征点不受亮度差的影响,在高斯差分图像空间提取极值点保证尺度不变性。
②精确定位特征点。
首先获取候选特征点处的拟合函数
求导得到极值点
对应极值
不断修正X求取局部最优点,剔除的弱特征点,同时获取候选特征点的精确位置、尺度。
然后获取特征点的Hessian矩阵
H的特征值别代表方向的梯度,剔除仅对一个方向梯度大的特征点。
③确定特征点的主方向。
这一步骤的目的是用于特征点的匹配,找出主方向后,在进行匹配时就可以把图像旋转到主方向,以保证图像的旋转不变性。
处的梯度值和方向值分别为
在以特征点为中心的邻域窗口内采样,采用梯度方向直方图来统计邻域像素的梯度方向,直方图的最高峰值点对应的方向即为主方向。
④生成特征点描述符。
特征点的匹配就是进行特征点描述符的比较,所以特征点的描述非
⨯小块上计算8个方向的梯度方向常重要。
以特征点为中心取1616
⨯的窗口,然后在图像的44
直方图,绘制每个梯度方向的累加值,形成一个种子点。
则一个特征点就用4416
⨯=个种子点来描述,而每个种子点有个8个方向向量信息,所以每个特征点就可以产生448128
⨯⨯=个数据,即128维的SIFT特征向量或特征描述符。
对特征向量的长度归一化即可去除光照变化的影响。
通过以上四步计算得到的SIFT特征点已经比较稳定了,下面就进行特征点的匹配,以完成图像的配准。
(2)特征点的匹配。
以两个特征点描述符之间的欧氏距离作为特征点匹配的相似度准则。
假设特征点对p和q的特征描述符分别为和,则其欧氏距离定义为
首先采用优先k-d树进行优先搜索来查找每个特征点的两个近似最近邻特征点,例如,找出特征点p欧氏距离最近和次近的两个相邻特征点和,然后计算p与以及p与两组描述符之间欧氏距离的比值t,如果t小于规定阈值T,则视为匹配成功,接受点对为图像序列中的一对匹配点,否则匹配失败。
然后采用RANSAC (Random Sample Consensus)算法通过不断地在所有特征点对中抽取4对特征点计算透视变换模型,同时统计符合模型的内点,获取最多内点的模型即为图像转换模型,此时错误匹配的点对也被删除。
3)图像融合
图像配准后,根据图像间变换模型确定图像间的重叠区域,今儿拼接图像序列形成一幅完整的、宽视角的全景图像,但是由于普通的手持照相机在拍摄照片时会自动选取曝光参数,这会使输入图像间存在亮度差异,导致拼接后的图像缝合线两端出现明显的明暗变化,因此,为了使融合后的图像具有视觉一致性而没有明显的接缝,采用加权平均的融合方法进行图像平滑过渡。
假设和是两幅待拼接的图像,是融合后的图像,则
图6.1.2 柱面坐标映射示意图 式中,、表示权重值,与重叠区域的宽度有关,且, , 在重叠区域,由1渐变至0,由0渐变至1,由此实现了在重叠区域由慢慢平滑过渡到。
2. 基于特征块的拼接算法
本节提出一种基于特征块匹配的柱面全景图像拼接算法。
首先将环绕拍摄的序列图像投影到柱面坐标系下:然后以一幅图像为基准图像,选择基准图像中边缘信息丰富的块作为基准块,利用特征块匹配法在待配图像中找出与基准块匹配的配准块,进而实现两幅图像的配准:再根据配准结果计算出图像间的变换参数:最后采用平滑因子对两幅图像的重叠区域进行图像无缝拼接。
1)柱面坐标映射
柱面投影就是将图像投影到柱面上,以获得从投影中心(视点)观察图像在柱面上的成像,从而满足人类的视觉一致性。
如图6.1.2(a)所示,为观测点,Cylinder 为投影柱面,为待投影图像,为的柱面投影图像。
将图6.1.2(a)分别向观测点所在水平面和
面投影,得到的截面图为图6.1.2(b)和图6.1.2(c),其中为中的一点,为其对应的投影点。
图像的像素坐标均以图像平面中的左上角像素为坐标原点。
设柱面半径为r ,摄影宽度角为,图像宽度为W ,高度为H 。
容易得到,柱面图像的宽度为,高度仍为H 。
由图6.1.2(b)和图6.1.2(c)可得柱面投影公式为
其反投影公式为
式中,为每张图像所占的弧度角:r 为拍摄焦距,。
一幅全景图像的角度为。
假设照相机拍摄时为等转角拍摄,相邻两幅图像的重合度均为,拼接成一幅全景图像需要的待拼接图像总数为n,那么每一幅图像所占的弧度角就可以
近似为
2)图像配准
(1)基准特征块的选取。
利用特征块匹配进行图像拼接的关键一步就是选取基准特征块,
基准块选取不当往往会造成拼接算法不能适应待拼接图像的变化。
因此,本节基于边缘信息进
行基准特征块的选取。
采用Sobel 算子对待拼接图像进行边缘检测,获得原图像的边缘图,以图像中每个
像素点的邻域边缘量来定义此位置的边缘信息大小为
式中,A 为在点处所取邻域边长的1/2 。
找出最大值所对应的点作为基准点,然后以此点为
中心点选择大小适中的块就可以找到基准特征块。
基准特征块的行
数和列数分别取
如图6.1.3所示,图中input为待拼接图像,rinput为图像的行数,cinput 为图像的列
图 6.1.3 特征块选取示意
图
数,(图中阴影部分)为所选的基准特征块。
(2)配准准则
图像配准就是通过一定的配准准则找出两幅待拼接图像的重叠区域,它是整个图像拼接算法的核心部分。
本书以两幅图像重叠部分灰度差的平方和为标准来衡量此区域是否配准,设两幅待拼接的图像分别为和,模版为T,则配准公式如下
式中,T是图像中的基准特征块(模版图像块);模版T叠放在图像上平移,模版下覆盖的搜索块叫做子图,是子图左上角在图像中的坐标。
最佳匹配块为D取最小值时所对应的中的搜索块。
将式(6.1.15)展开得
式中,中括号内的第一项是模版T覆盖下图像子图的能量,它的值与T无关;第三项是基准特征块T的总能量,当模版T选定后它就是个常数;第二项可以看成衡量与T相似度的量,由不等式的性质可以知道,当与T完全匹配时,此项的绝对值最大,因此,可以选取以下配准式准则
对式(6.1.17)归一化得
式中,为图像中对应搜索块的灰度平均值;为基准特征块的灰度平均值。
计算对应重叠区与T的,其最大值所对应的位置即为最佳匹配位置。
3)图像融合
将两幅图像配准之后,接着就可以进行融合了。
图像融合就是指将图像进行空间叠加从而增加信息量的过程。
为了能够使融合后的图像具有视觉一致性而且没有明显的接缝,本书采用
渐入渐出加权平均的方法实现图像平滑过渡。
设两幅待拼接图像分别为和,融合后的图像像素可表示为
式中,,由式(6.1.19)可以看出,当由1渐变到0时,图像从平滑过渡到了,这样就可以消除拼接的痕迹。
4)算法步骤
总结前面的论述,该柱面全景图像拼接算法步骤如下。
(1)读取两幅待拼接的图像和,将原始图像和按照式(6.1.10)分别进行柱面投影,得到柱面图像和。
(2)取为基准图像,对图像进行边缘检测,并对其边缘图计算NEA的值,找出NEA的最大值,并以此点作为特征块的中心点选取基准特征块。
(3)对图像和和按照配准准则进行搜索,找出最佳匹配块。
(4)根据两个匹配块的位置计算两幅图像之间的位移,采用融合算法对拼接结果图像进行融合显示。
(5)重复步骤(1)~步骤(5),完成所有图像序列的拼接。
6.1.2 基于相位相关拼接算法
本算法采用基于傅氏功率谱的频域相关技术来寻找相邻图像的重叠部分,首先将相机拍摄的实景照片投影到圆柱面上,以柱面图像的形式存储;然后精确定位相邻两张照片间的重叠位置并融合相邻图像的亮度,通过图像拼接形成完整的360°环境视景;最后采用互动率谱中的相位信息进行图像配准。
其对图像间的亮度变化不敏感,这样可以有效避免局部最优的现象。
简而言之,本算法使用的拼接柱面全景图方法可分为三部分。
(1)利用频域相位相关性构造函数,该函数对两幅输入图像分别进行二维傅里叶变换,返回相邻两幅图像之间偏移位置。
(2)计算一组360°实景图片的相机焦距,对图像序列分别进行柱面投影。
(3)逐次调用第一部分中函数对投影后图像进行拼接,并对光照进行处理,完成柱面全景
图6.1.4 柱面投影原理图
图的生成。
1.投影变换及焦距估计
在进行柱面投影时,只要找到柱面坐标和直角坐标直接的对应关系,就可以进行投影变换。
柱面投影原理图如图6.1.4所示。
设投影前图像I 1宽为W ,高为H ,令
则投影后图像的坐标同I 1的坐标有如下对应关系
式中,,。
应用柱面投影公式对于图像进行投影变换时,焦距f 是重要参数。
将投影前的照片序列两两之间的平移量分别设为C 1,C 2,…,C 12,其中C k 表示第k 幅照片与第k+1幅照片之间的水平
位移,则可计算出焦距的初始值f 0为
为了尽可能地逼近实际拍摄焦距,也可以采用迭代算法来减小误差,算法具体步骤如下。
(1)据式(6.1.22)初步计算出焦距令.
(2)以作为柱面投影参数,将该组照片投影到统一圆柱面上。
(3)对投影后的图片进行处理后再次使用相位相关法得出相对位移,据此重新
计算焦距。
(4)如果,即精度不满足要求,则令,程序转入步骤(3)。
(5)直至,得到较精确的f值。
2. 基于相位相关的图像配准
图像拼接是根据相邻两幅图像重叠区域的相似性来确定的,包括图像配准和图像融合
两个关键环节。
图像配准有基于区域、基于特征和基于相位的方法。
基于区域的方法通过
比较两幅图像亮度(或颜色)差异,并使之最小化来寻找最佳匹配点,只要时间足够长,就
可以拼接得足够精确。
基于特征的拼接方法采用寻找局部对应和抽取图像之间的对应特征
点的方法进行匹配,如Harris角点算法和SUSAN角点算法,该算法的优点是计算量比较小,计算速度快,但是不一定能找到合适的图像特征,结果也可能是局部最优解。
本节采取的是一种基于频域的方法,通过求得图像在频域上的相位相关特点来找到特
征位置,从而进行图像拼合。
假设f(x,y)表示尺寸为M×N的图像,该函数的二维离散傅里叶变换为
式中,F(u,v)是复变函数;u、v是频率变量,u=0,1,…,M-1,v=0,1,…,N-1;x、y是空间或
图像变量。
二维离散傅里叶逆变换为
式中,x= 0,1,…,M-1;y=0,1,…,N-1。
设两幅图像I1、I2的重叠位置为(x0,y0),则图像I1、I2的互动率谱为式中,*为共轭符号,对式(6.1.25)两边进行傅里叶逆变换将在(x0,y0)处产生一个 函数,因
此,只要检测式(6.1.25)傅里叶逆变换结果最大值的位置,就可以获得两幅图像间的平移量(x0,y0)。
具体算法步骤和函数如下。
(1)读入两幅照片I1、I2 (函数输入),并转换为灰度图像。
(2)分别对I1、I2作二维傅里叶变换,即
则通过对A、B进行简单的矩阵运算得到另一矩阵,即
(3)由式(6.1.27)可知,的二维傅里叶逆变换矩阵C在(x0,y0)处取得最大值,通过遍历比较C(i,j)大小即可找到该位置,并作为函数返回值。
3.图像拼接
对于重叠区域的图像,如果仅进行简单平均加权求和,会在拼接的图像中存在明显的拼接痕带,主要原因是相邻图像间存在亮度的差异和普通相机的拍摄会在采集到的图像中出现边缘失真的现象,而拼接使用的恰恰是图像的边缘区。
本节采用函数加权法来处理重叠区域的图像,确保图像的无缝过度。
设 (x,y)、 (x,y)分别为待融合图像区域点(x,y)的像素值,则融合后该点的像素值I(x,y)为
式中, (x,y)、 (x,y)分别为重叠像素点对应、的加权值。
为使拼接后的图像在两个方向上都能平滑过渡,达到更好的融合效果,本书的加权系数 (x,y)、 (x,y)采用三角函数
式中,。
本节对柱面全景图像的几种常见拼接算法作了详细论述,阐述了基于特征点、特征块和相关相位三种拼接方法,都是从投影变换、图像配准和图像融合三方面进行叙述。
6.2 基于球面的全景图像拼接
本节分为两部分:第一部分介绍球面全景图像的基础知识,包括球面投影模型、球面全景图的投影变换、参数模型和图像变形问题的解决等;第二部分介绍基于球面的全景图像拼接算法,一种是基于特征点的方法,另一种是基于像素点对应关系的方法。
6.2.1 球面全景图像基础知识
球面全景图可以实现参与者在照相机的视点以任意角度、任意方向的观察,将所有拍摄的图像都投影到球面模型上进行合成,以便得到球面全景图。
球面全景图符合人眼的构造并最适应人们的观察习惯,且满足各向异性,真实感会更逼真。
由于球面全景图在计算机里存储结构的限制,一般对球面全景图在俯仰角和方位角上进行采样处理,再展开球面图像成宽高比为2:1的平面图象。
球面投影模型避免了空间不足的缺点,它不仅可以完整的表现全景空间,能够搜索和反应空间中所有方向的场景,而且它在独立的球坐标系下能够仅用方位角和俯仰角来表示图像上的任意一点,可以很好地完成图像的存储和漫游时的截取工作,这是利用球面投影模型最大的好处。
尽管球面全景图比较复杂,但它符合人眼的结构,是观看视点空间最理想的方式。
因此,随着科技的不断发展和人们要求的不断提高,球面全景图必将成为最重要的研究对象。
1.球面全景图的投影变换
基于图像拼接的全景图生成技术需要解决的问题是显示的模型和产生模型上的图像。
球面全景图不仅能够描述大范围场景,而且最符合人们的观察习惯。
球面模型尽管比较复杂,但垂直方向视角广,可实现真正意义上的全景浏览,虚拟场景是经过图像处理生成全景图进行空间关联,再建立起具有交互性的虚拟环境。
1)图像参数模型
为了从图像中提取球面每个位置的色彩信息,需要知道图像中像素对应的球面位置,其中某一幅图像拍摄时的方向为基准,从而得出图像中像素在球面上的对应位置。
(1)拍摄方向参数模型。
定义一个原点为视点的基准坐标系,其中空间任意一点P(X,Y,Z)在相机坐标系中(原点也为视点)的对应点设为,它们的对应关系可以先用下面的变
换来表示
式中,R为三角单位正交矩阵,R有多种表示方法,常见的有方向角、四元组。
相机的方向角包括俯仰角、偏转角、绕摄像机光轴的旋转角,分别用α、β、γ表示。
旋转变换使用方向角
的表示方法为将R表示为
这种方式表现较为直观,且没有增加参数的个数,同时表征的相机坐标系的绝对方向。
(2)焦距的计算。
实景图像统一的基本度量单位一般为像素。
为获得球体的半径,首先要估计相机的焦距,这里利用等距离匹配算法的方法实现。
其原理如图6.2.1所示,和是拍摄的相邻的两张水平层系列图片; 为相机旋转一次光轴的夹角,也是拍摄和时相机的转角,为相邻照片的交点到照片的位移。
设f是相机的焦距,则有
图6.2.1 相邻照片几何关系示意图
若相机旋转一周拍摄得到n 幅序列图像,则有
根据序列图像的值求得f值后,就得到了球面模型的半径,接着把各层的图像投影到半径为f的球面模型上。
(3)投影模型。
设相机的焦距为f,投影中心在图像中的位置为(,),在尤拍摄方向确定的相机坐标系中,空间中的一点在图像平面中的对应点(x,y)之间有如下关系
此时图像数据矩阵中的第一列表示图像最底下的那一列。
如果数据的排列形式不同,则还要做进一步变换。
如果第一行表示图像最顶上一列,则存在如下关系
(4)坐标变换矩阵。
在不同的参数模型下,图像的变换矩阵有不同的形式,在这些表示形式中,图像的投影模型是相同的,不同的只是旋转变换参数。
用、表示两幅图像,、表示他们的焦距,投影中心位于图像中心(,)。
用M表示到的坐标变换矩阵,则
对于方向角参数模型而言,设两幅图像和的相机参数分别是和,则坐标变换矩阵为
式中,为第i幅图像的旋转变换矩阵。
2)球面投影算法
摄像机获取的反应360°全景的序列图像是在不同角度下拍摄的,直接拼接时视觉一致性受到严重破坏,因为在重合区域会产生局部变形扭曲。
视觉一致性要求首先把图像统一投影到球面上,完成球面正投影后再进行拼接才能得到无变形和无畸变的全景图像。
(1)投影图平面展开图。
图6.2.2所示投影到球面后展开的平面图。
(a)为原始照片;(b)为平视层的球面展开图;(c)为仰视层的球面展开面图照片平面上有一像素点设为P(x,y),在球面展开图上对应的点为,在球面半径一定时,球面展开平面图像的形状只与仰角有关。
图6.2.2 投影到球面展开后的平面图
(2)正投影算法。
球面正投影算法是将所有的实景图像分别投影到一个球面上,这样做不仅消除了直接拼接时产生的局部扭曲与变形情况,而且消除了不必要的重复信息,同时还得到了像素点在视觉空间的方位信息。
由拍摄所得实景图像经球面正投影算法得到球面图像。
设摄像机坐标系为,世界坐标系为,照相机的拍摄方向为。
任意一个实景像素点P(x,y)在球面全景图像上的对应点为;点P(x,y)在摄像机坐标系中的坐标为(x,y,f),其在世界坐标系下的坐标为,则有
根据式(6.2.11)可以推导出球面全景图像上与P(x,y)之间的函数对应关系。
这里P(x,y)是球面空间中视线方向的图像上一点。
①三维球面方程的表示。
过点O与点P的直线的参数方程(t是参数)可以表示为
球面方程表示为
联立式(6.2.12)和式(6.2.13)可得出参数t为
②三维球面方程转变为二位图像坐标。
像素点在球面上投影点的参数左边为。
由于三维左边不便于储存,必须转化为二维坐标,即把球面展开成平面,所以有以。