本发明属于数字影像处理技术领域,特别是涉及一种基于影像变形的街景影像拼接方法及系统。
背景技术:
街景地图是电子地图中最为常用的一种地图,由于其可提供街景丰富的纹理信息,给人以身临其境的体验,能够满足了人民“足不出户而知天下”的美好愿望。街景地图的核心技术之一在于制作高质量的全景影像,而全景影像的制作需要将多张影像拼接在一起,从而得到360°的全景影像。
通常而言,街景影像拼接包括以下四个步骤:影像校正、匀光匀色、最优拼接线寻找以及影像融合。其中影像校正的目的在于按照一定的模型,如球面投影模型,将采集的鱼眼影像校正至同一坐标系。匀光匀色的目的在于消除由拍摄角度、光照条件、曝光设置等原因引起的影像间的色差。最优拼接线寻找的目的在于找到一条最优的拼接线,避免穿过诸如房屋,车辆及行人等明显目标,从而避免拼接缝及“鬼影”的形成。虽然匀光匀色在很大程度上已经消除了影像间的色差,但是并不能做到完全消除,在拼接线周边,还是存在一定的色差,因此需要再采用影像融合沿拼接线对两张影像进行融合,从而得到最后的视觉效果良好的全景影像。
匀光匀色和影像融合可以很好的消除影像间的色差,但是并不能消除影像间的几何错位。最优拼接线寻找可以在一定程度上克服几何错位带来的影响,但是当影像间几何错位较大的时候,最优拼接线也不能克服该问题。最终的全景影像中也会存在较多的拼接缝,从而影响全景影像的质量。然而,街景全景影像通常采用视角更大的鱼眼相机进行拍摄,但是由于相机中心不一致,且场景深度不一致,校准至同一坐标系的全景影像间必然存在较大的几何错位。而这些几何错位的存在,将会严重影响最后拼接好的全景影像的质量。此外,由于这些几何变形在每个位置的分布不一致,常用的刚体变换模型并不能模拟其几何变形。
技术实现要素:
针对现有技术存在的问题,本发明提供了一种基于影像变形的街景影像拼接方法及系统,该方法及系统可避免较大的几何位错的影响。
本发明思路为:对校正至同一坐标系的街景影像,先采用基于密集光流场的非刚体变换模型消除影像间的几何错位,再采用传统的匀光匀色、最优拼接线寻找和影像融合进行街景影像的拼接,从而避免较大的几何错位对拼接后影像质量的影响。
本发明的技术方案为:
一、一种基于影像变形的街景影像拼接方法,包括步骤:
s1准备待拼接影像,并构建水平方向的待拼接影像对;
对各待拼接影像对分别进行步骤s2~s4:
s2获得待拼接影像对的重叠区域影像对,对重叠区域影像对中两张重叠区域影像进行特征点匹配,获得匹配特征点对集;
s3计算匹配特征点对集中各匹配特征点对的光流d(xp),基于各匹配特征点对的光流d(xp)内插出待拼接影像的光流场;其中,光流
s4根据光流场对待拼接影像对中两张待拼接影像分别进行非刚体变形,具体为:
4.1将待拼接影像i非刚体变形后的影像记为i',令i'为与待拼接影像i等大的空影像;
4.2对影像i'中各像素x=(x,y)t,分别进行:
计算x在待拼接影像i中对应的像素x′=(x′,y′)t,其中,
4.3对影像i'中所有像素x均执行子步骤4.2,即获得非刚体变形后的影像i';
s5对非刚体变形后的影像进行拼接,得由水平方向的待拼接影像对拼接的全景影像ih。
若待拼接影像存在竖直方向影像in,则还包括:
执行步骤s5后,构建待拼接影像对(ih,in),对待拼接影像对(ih,in)执行步骤s2~s5。
步骤s1进一步包括子步骤:
1.1判断所有待拼接影像是否均校正至同一坐标系,若没有,则将所有待拼接影像校正至同一坐标系,然后执行子步骤1.2;若有,直接执行子步骤1.2;
1.2求待拼接影像的有效区域,并生成mask图;
1.3根据mask图判断待拼接影像的类型,所述的类型包括水平方向影像和竖直方向影像;
1.4针对水平方向的待拼接影像,根据mask图计算待拼接影像间的重叠区域;
1.5根据子步骤1.4所得重叠区域获得水平方向的待拼接影像间的重叠关系,根据重叠关系构建水平方向的待拼接影像对。
步骤s2进一步包括子步骤:
对各待拼接影像对分别进行:
2.1构建待拼接影像对的重叠区域的最大外包矩形,并获得重叠区域影像对;
2.2分别提取重叠区域影像对中两张重叠区域影像的特征点,获得特征点集
2.3对特征点集
2.4以匹配特征点对的局部运动方向具有一致性为约束,剔除minitial中的误匹配特征点对。
子步骤2.2中,采用surf、harris、moravec或sift算子提取特征点。
子步骤2.4具体为:
2.4.1标记minitial内所有匹配特征点对为内点;
2.4.2对minitial中标记为内点的任一匹配特征点对<fp,f'q>,从
2.4.3若
否则,分别计算
其中:
2.4.4对minitial内所有标记为内点的匹配特征点对分别执行子步骤2.4.2~2.4.3,获得所有标记为内点的匹配特征点标记为外点的代价,然后执行子步骤2.4.5;
2.4.5根据代价值对匹配特征点进行排序,将代价最大的nt个匹配特征点对<fip,f'iq>中满足dist(m(fip),μ(fip))≤λ×δ(fip)的匹配特征点对,标记为内点,nt个匹配特征点对中其他标记为外点;其中,
2.4.6迭代子步骤2.4.2~2.4.6,直至无外点被找到;
2.4.7判断λ是否小于预设的最小值λmin,若不小于,按预设的递减幅度递减λ,然后返回执行子步骤2.4.2;否则,结束,当前内点集即剔除了误匹配特征点对后的匹配特征点对集。
子步骤4.2中,若计算出的像素坐标x′=(x′,y′)t不为整数,则在影像ii中,以x′为中心,采用双线性内插法内插出像素x′的灰度值。
二、一种基于影像变形的街景影像拼接系统,包括:
待拼接影像对构建模块,用来准备待拼接影像,并构建水平方向的待拼接影像对;
匹配特征点对集获得模块,用来获得待拼接影像对的重叠区域影像对,对重叠区域影像对中两张重叠区域影像进行特征点匹配,获得匹配特征点对集;
光流场获得模块,用来计算匹配特征点对集中各匹配特征点对的光流d(xp),基于各匹配特征点对的光流d(xp)内插出待拼接影像的光流场;其中,光流
非刚体变形模块,用来根据光流场对待拼接影像对中两张待拼接影像分别进行非刚体变形;所述的非刚体变形模块进一步包括子模块:
影像初始化子模块,用来将待拼接影像i非刚体变形后的影像记为i',令i'为与待拼接影像i等大的空影像;
灰度值赋值子模块,用来对影像i'中各像素x=(x,y)t,分别进行:
计算x在待拼接影像i中对应的像素x′=(x′,y′)t,其中,
拼接模块,用来对非刚体变形后的影像进行拼接,得由水平方向的待拼接影像对拼接的全景影像ih。
和现有技术相比,本发明可避免影像间较大的几何位错所造成的影响,从而能生产高精度和高质量的街景影像。
附图说明
图1为本发明实施例的整体流程图。
具体实施方式
下面将对本发明具体实施方式进行进一步说明。
步骤1,准备待拼接影像,获得待拼接影像间的重叠区域;根据待拼接影像间的重叠关系,构建水平方向的待拼接影像对。所述影像为街景影像。
设待拼接影像有n张,分别记为影像i1、i2、……、in,则待拼接影像集记为
步骤1.1,判断所有待拼接影像是否均校正至同一坐标系,若没有,则将所有待拼接影像校正至同一坐标系,然后执行子步骤1.2;若有,直接执行子步骤1.2。
步骤1.2,求取每张待拼接影像的有效区域,并生成mask图。若像素落于有效区域,则设置mask图上对应位置的值为1;若像素落于无效区域,则设置mask图上对应位置的值为0。这里,有效区域即影像上有影像信息的区域,无效区域即影像上无影像信息的区域。
步骤1.3,判断每张待拼接影像的类型,所述的类型包括水平方向影像和竖直方向影像。
通常而言,街景影像包括两种类型,第一种类型是均为水平方向影像,不存在顶上的竖直方向影像;第二种类型为存在多张水平方向的影像和一张顶上的竖直方向影像。而处理第二种类型街景影像的方法包含了处理第一种类型街景影像的方法,因此,本发明只针对第二种更为复杂的类型进行详细说明。将待拼接影像中水平方向的影像记为i1、i2、……、in-1,顶上的竖直方向影像记为in。
步骤1.4,针对水平方向的待拼接影像,根据mask图计算待拼接影像间的重叠区域。重叠区域的计算具体为:将待拼接影像对的两张mask图进行与运算,当两张mask图对应位置的值均为1的区域为重叠区域。
步骤1.5根据子步骤1.4所得重叠区域获得水平方向的待拼接影像间的重叠关系,重叠关系指两张影像间是否存在重叠区域;根据重叠关系构建水平方向的待拼接影像对。假设所构建的水平方向的待拼接影像对为(i1,i2)、(i2,i3)、…、(in-2,in-1)、(in-1,i1)。
步骤2,特征点匹配。
针对水平方向的每一对待拼接影像对,在其重叠区域内进行特征点匹配,并根据匹配结果求取初始的稀疏光流场。
本步骤的具体实施过程如下:
步骤2.1,针对每一对待拼接影像对,构建待拼接影像对的重叠区域的最大外包矩形,从而获得待拼接影像对的重叠区域影像对。
步骤2.2,分别提取重叠区域影像对中两张重叠区域影像的特征点。
可使用surf、harris、moravec、sift等特征提取算子提取特征点,本实施例中采用surf特征提取算子。采用surf描述符描述特征点,假设特征点表示为f=(x,d),其中,x=(x,y)t表示特征点坐标,d表示surf描述符。因此,两张重叠区域影像提取的特征点集分别记为
步骤2.3,重叠区域影像对中特征点的初始匹配。
特征点的匹配可采用本领域的成熟算法完成,下面将提供特征点匹配的一种具体方法。
针对
(1)f'q是特征点集
(2)fp和f'q的描述符间的欧式距离d(fp,f'q)小于预设阈值td,阈值td为经验值;
(3)距离比值约束,即:针对特征点fp,将特征点集
将满足条件(1)~(3)的匹配的特征点对记为初始匹配特征点对,并存入初始匹配特征点对集
步骤2.4,误匹配特征点对剔除。
初始匹配完成后,得到初始匹配特征点对集,但是依旧存在误匹配特征点对,因此,还需要进行误匹配剔除。由于在全景平面中并不能采用常用的核线约束去剔除误匹配特征点对,因此,本发明采用一种特征匹配点局部运动方向一致性去进行约束。
本子步骤的具体实施过程如下:
步骤2.4.1,标记
步骤2.4.2,对minitial中标记为内点的任一匹配特征点对<fp,f'q>∈minitial,首先从minitial中找到距离该匹配特征点对最近的kn个匹配特征点对,构成点集
步骤2.4.3,如果
如果
其中,(x'n,y'n)和(xm,ym)分别为匹配特征点fp和f'q的坐标,x方向和y方向分别表示影像的水平方向和竖直方向。
这里,使用
计算匹配特征点对<fp,f'q>标记为外点的代价cost(fp):
步骤2.4.4,对minitial内所有标记为内点的匹配特征点分别执行子步骤2.4.3~2.4.3,
直至minitial中所有标记为内点的匹配特征点对均处理完毕。
步骤2.4.5,按照代价值大小对minitial中标记为内点的匹配特征点对进行降序排序,对排名前nt的匹配特征点对判断是否为内点,
假设待判定的匹配特征点对为<fp,f'q>,则判断公式如下:
其中,dist(m(fp),μ(fp))即m(fp)和μ(fp)的距离,m(fp)和μ(fp)分别表示匹配特征点对<fp,f'q>运动大小和运动大小的平均值;δ(fp)表示匹配特征点对<fp,f'q>运动大小的方差;λ为预设值的参数,其为用来判断运动方向一致性的阈值,子步骤2.4.2中进行了设置。
本实施例中,设置初始参数λ=λmax并设置λ的递减幅度λstep,λmax和λstep为经验值,λmax一般取6~8范围内的整数,λstep一般取1~3范围内的整数,本实施例中,λmax=6,λstep=3。
步骤2.4.6,迭代步骤2.4.3~2.4.5,直至无外点被找到。
步骤2.4.7,判断λ是否小于最小值λmin,若不小于,按照递减幅度λstep递减λ的值,并返回执行子步骤2.4.2。若λ小于λmin,结束,并将当前内点集记为
步骤2.5,对每一对待拼接影像对分别执行子步骤2.1~2.4,直至水平方向的所有待拼接影像对均已稀疏匹配完毕。
步骤3,稀疏光流场计算。
针对待拼接影像对每一张待拼接影像,得到其和其它重叠影像在重叠区域所有的匹配特征点对,根据匹配特征点对计算稀疏光流场。假设当前待拼接影像为i1,根据重叠关系,可知i1与in-1及i2存在重叠。因此,待拼接影像为i1中,有两个重叠区域存在匹配特征点对。假设i1所有的匹配特征点对为m1={<xp,x'q>|xp∈i1,x'q∈(in-1∪i2)},其中,xp=(xp,yp)t,x'q=(x'q,y'q)t。
针对每一个匹配特征点对<xp,x'q>,其光流d(xp)计算如下:
因为,针对每一张待拼接影像,其只变形一半的光流大小,另外一半由另外一张进行变形,故最终的光流d(xp)要除以2。
步骤4,密集光流场内插。
步骤3中,对水平方向的每一张待拼接影像ii,i=1,2,...,n-1,对于稀疏特征匹配点,都求得了两个方向的光流值,得到了稀疏的光流场。但是,为了对整张影像进行变形,需要密集的光流场,也即每个像素,都需要有一个对应的光流值。因此,本发明采用多b-样条的方法(mba)内插出密集的光流场,即根据稀疏的光流场近似的内插出密集的光流场,在x方向和y方向分别表示为dx(ii)和dy(ii)。
步骤5,影像非刚体变形。
步骤4中,针对水平方向的每一张待拼接影像ii均可得到密集的光流场。相邻待拼接影像的几何错位是非刚体的,因此,本发明基于密集的光流场来对待拼接影像进行非刚体变形,从而消除几何误差。
针对一张待拼接影像ii,其非刚体变形的具体步骤如下:
步骤5.1,假设ii非刚体变形后的影像为i'i,将i'i的大小设置和原图ii一样,且各像素的灰度值初始化为0,即当前i'i为一张空图。
步骤5.2,针对每一个像素x∈i'i,x=(x,y)t,根据步骤4所得密集的光流场,找到像素x对应的两个方向的光流大小dx(x)和dy(x),则根据下式计算该像素x在原始影像(即待拼接影像ii)中的位置(x',y'):
式(5)中,x′=(x′,y′)t为像素x根据光流场变换后得到的在原始影像中的像素坐标。
步骤5.3,所计算出的像素x′坐标并非一定是整数,因此,为获得该位置的像素灰度值,在影像ii中,以x′为中心,采用双线性内插方法内插出x′的灰度值。
步骤5.4,将像素x′的灰度值赋给影像i'i的像素x。当影像i'i中所有像素均处理完,就得到非刚体变形后的影像i'i。
由于影像间的几何错位,用光流场进行了拟合并依照光流场进行了变形,因此,变形后的影像间的几何错位将大幅度减少,以至于不影响全景影像的质量。
步骤6,水平方向的影像拼接。
对非刚体变形后的影像依次进行匀光匀色、最优拼接线寻找、影像融合,即得到高质量的水平方向的全景影像ih。匀光匀色用来消除影像的色差,最优拼接线寻找用来避免拼接线穿过明显目标。匀光匀色、最优拼接线寻找、影像融合均可采用现有技术实现,因此不予详细叙述实施过程。
步骤7,竖直方向的影像拼接。
通过步骤1~6可将水平方向的待拼接影像拼接在一起,如果准备的待拼接影像数据中不存在竖直方向影像,则水平方向的全景影像ih即最终拼接的街景影像。如果存在竖直方向影像in,则需要将竖直方向影像in和水平方向的全景影像ih进行拼接,得到最终拼接的街景影像。in和ih的拼接具体为:构建待拼接影像对(ih,in),对待拼接影像对(ih,in)执行步骤2~6,得到最终的街景影像。