李加亮,蒋品群,夏海英
(广西师范大学 电子工程学院,广西 桂林 541004)
图像拼接是计算机视觉和图形学的重要研究领域之一,该技术可以克服相机窄视角的局限性,获取大视野图片[1-2]。以AutoStitch和Photoshop等为代表的工具被广泛应用于全景图像的制作[3-4],但当相机的拍摄位置、角度发生较大偏移时,拼接的图像就会产生重影和错位的问题。通过优化特征点的匹配和图像的对齐,可以有效提升拼接质量。
Lowe[5]在图像的尺度空间中通过高斯微分函数检测和描述局部兴趣点,提出了尺度不变特征变换(scale-invariant feature transform, SIFT)算法,排除了旋转、光照、仿射变换和噪音等因素对特征点匹配的影响,但结果仍会存在错误匹配。Bay等[6]采用盒式滤波器和积分图像代替SIFT的高斯差分(difference of Gaussian, DoG)金字塔图像,以获取不同尺度图像的关键点,提出加速稳健特征(speeded up robust features, SURF)算法,加速了SIFT算法,但是降低了SIFT的尺度不变性。Rosten等[7]利用像素点与其圆形邻域内的像素点进行灰度值比较以检测特征点,提出基于加速分割测试的特征(features from accelerated segment test, FAST)算法,提升了特征点检测效率,但不具有尺度不变性。Rublee等[8]通过灰度质心法为FAST角点增加方向(旋转不变性),在每层金字塔图像上进行角点的检测进而引入尺度不变性,利用贪婪学习算法搜索出来的256对位置生成特征点描述符,提出快速定向旋转二进制描述符(oriented fast and rotated brief, ORB),提升了算法的效率和准确率,但没有充分解决尺度不变性。边佳旺等[9]基于ORB特征提出基于网格的运动统计(grid-based motion statistics, GMS)匹配方法,提升了特征的匹配率。陈方杰等[10]通过改变特征分数统计的方法对GMS算法进行优化,以提升算法的精度和速度。基于ORB特征的文献[9]和文献[10],仍然存在鲁棒性和尺度不变性较差的问题。王青松等[11]和穆柯楠[12]使用特征点对之间的斜率约束去除错误匹配,但无法有效地处理旋转类的图像。Li等[13]通过贝叶斯模型优化薄板样条(thin-plate spline, TPS)函数[14]进而筛选特征点,特征点数量依赖于TPS的参数迭代。以FAST为核心的算法具有较高的实时性,但普遍缺乏尺度和旋转的不变性。基于SIFT的算法则兼具尺度和旋转不变性,能较好地满足图像拼接的特征点匹配要求,但是匹配结果中仍旧存在错误匹配,需要进一步筛选错误匹配点。
Gao等[15]利用2个单应性变换(dual-homography warping, DHW),并由聚类法将特征点化分为近景和远景2类并计算相应的单应矩阵,再利用2个线性加权的单应矩阵对图像进行对齐,图像的对齐能力得到提升,但是忽视了图像的局部对齐处理。Zaragoza等[16]将图像网格化,通过移动线性变换(moving direct linear transformation, MDLT)对图像进行加权变形,提出逼近投影(as-projective-as-possible image stitching, APAP)算法,很大程度上解决了因视差导致的图像错位和重影问题。Lin等[17]通过将单应矩阵和相似变换矩阵相结合的方式约束图像变形,得到了更加自然的拼接图像。文献[15-17]忽视了特征点的匹配误差,最终导致了一些视差图像的拼接结果中出现了物体变形和重影的问题。文献[13]通过TPS函数约束全局单应性变换,有效提升了全局对齐能力,但忽视了局部单应性,拼接图像易产生变形。文献[18]构建局部投影误差的矫正场以解决局部未对齐的问题,但未进一步优化图像平滑模型。文献[19]采用分段加权平均算法结合最佳缝合线的融合方法,利用加权融合方法在一定程度上消除了图像的重影。文献[20]采用线性平滑方式进行图像融合,有效解决了部分重影问题。但是文献[19-20]未考虑视差图像的对齐精度。
针对以上问题,本文提出一种基于网格变形和余弦函数权重的图像拼接方法——使用高斯分布模型去除了错误匹配的特征点;利用余弦函数模型对APAP变形模型和全局相似变换模型进行加权,提高了变形模型的对齐能力;采用余弦函数模型对变形图像进行更加平滑的加权融合,最终得到无重影、无色差缝隙的拼接图像。
本文使用基于特征点和单应性变换的方法进行图像的拼接。首先,使用SIFT算法和随机抽样一致(random sample consensus, RANSAC)算法[21]对待拼接图像进行特征点的提取与匹配;接着,利用高斯分布模型对特征点集合进行再匹配,计算出相应的单应性矩阵和相似变换矩阵;然后,将APAP变形模型和全局相似变换模型以非线性的方式加权结合,并利用该模型对图像进行变形;最后,使用余弦函数权重对变形图像的重合区域内的像素进行平滑,得到更加自然的拼接图像。
基于特征点的图像拼接算法先利用SIFT算法配准特征点,再利用RANSAC算法筛选特征点,并计算出待拼接图像间的单应性矩阵[15-17]。对参考图像I1和目标图像I2进行特征点匹配,分别得到N对特征点(x,y)和(x′,y′),并使用p=[x,y, 1]T和q=[x′,y′, 1]T分别表示图像I1和I2内特征点对的齐次坐标,p′=[u,v, 1]T表示p在图像I2内的映射点。这种图像对准策略表现良好,但是在特征点匹配结果中仍然会出现部分错误匹配,如多对一匹配、偏差匹配等。仅依靠这种匹配策略不足以消除误匹配,而且,特征点的错误匹配将直接影响图像拼接的质量。高斯分布模型常被用于样本误差的筛选[13],本文将特征点的映射偏差作为样本误差,利用高斯分布的模型判断各个范围内的偏差发生的概率,提出一种利用高斯分布去除误匹配的方法。
由式(1)和式(2)分别计算特征点在X和Y方向上的映射偏差。
Δx=u-x′,
(1)
Δy=v-y′。
(2)
分别计算Δx和Δy的均值μ和标准差σ。由3σ准则可知,当某个特征点与对应的映射点的偏差大于μ+3σ,或者偏差小于μ-3σ,则该特征点对正确匹配的事件概率仅为0.27%,说明该对特征点大概率为错误匹配点,因此,将此类特征点对删除。由此,将映射偏差转化为概率事件,对特征点集合进行再匹配,最终得到精匹配的特征点集,并更新图像间的映射关系。
图1是原图I1和I2的共有区域内的特征点分布图,利用圆圈标记了错误匹配点对,利用线段量化了映射点与对应特征点间的误差。图1(a)是利用SIFT和RANSAC算法得到的特征点分布图,图中出现了明显的错误匹配点(如位于左下角的多对一类的错误匹配)。图1(c)是图1(a)的局部放大图,可见图中存在明显的错误匹配对;图1(b)是利用本文的高斯分布精匹配的特征点分布图,图中错误匹配点对已被删除,图1(d)是图1(b)的局部放大图,可见错误匹配对已被删除,并且各个映射误差均在特征点上。从图1(c)和(d)中可以看出本文方法能有效删除错误匹配的特征点,并且映射点与特征点基本重合,即映射误差线段分布于特征点上,进一步说明更新后的图像映射关系更加精确。
图1 不同算法的图像特征点分布
图像的变形是图像拼接的重要步骤,早期的变形模型是全局单应性,但局限于极小视差场景,由于局部单应性模型的对齐能力更强,基于局部单应性的变形模型被广泛应用于图像变形。在得到N对特征点后,利用APAP模型对待拼接图像进行图像变形,并结合全局相似性对非重合区域进行变换,以统一图像视角。根据文献[16],特征点对p和q间的关系可表示为:
(3)
(4)
特征点间的单应性关系可表示为q~H·p,H=[h11h12h13;h21h22h23;h31h32h33],是3×3的单应性矩阵。将特征点对p和q代入式(5)求解矩阵H的元素:
(5)
将式(5)表示为
Ah=0。
(6)
式中2N×9的系数矩阵A=[a1,a2,…,ai]T,ai是特征点对代入式(5)时的系数矩阵的前2行,i= 1, 2,…,N。
在解得H后,将图像划分为C1×C2个图像块(文献[14]设置C1=C2=100),使用移动直接线性变换(moving direct linear transformation, MDLT)算法[16],利用高斯权重对H进行加权,得到每个图像块的局部单应性矩阵。文献[17]将单应性矩阵和相似变换矩阵以线性方式加权结合,克服了APAP变形模型的图像畸变问题,得到了更自然的拼接图像。本文使用更加平滑的余弦函数对单应性矩阵和相似变换矩阵进行加权:
HS1=[0.5-0.5·cos(π·α)]·S·H-1+[0.5+0.5·cos(π·α)],
(7)
HS2=[0.5-0.5·cos(π·α)]·S+[0.5+0.5·cos(π·α)]·H,
(8)
I1_p=HS1·I1,
(9)
I2_q=HS2·I2。
(10)
式中:H是单应性矩阵;S是相似变换矩阵;α是线性系数[17];HS1和HS2分别是单应性矩阵和相似变换矩阵的非线性结合形式;I1_p和I2_q分别是原图像I1和I2的变形图像。
实际计算中由图像内各个像素点对应的映射索引进行后向插值,以提高运算效率。
图2(a)、(b)、(c)和(d)分别是使用文献[16]、文献[17]、文献[13]和本文的方法对图像I2进行变形的网格图像。图2(a)和(b)出现了1.2节所述的因为特征点的错误匹配,导致变形图像的左下角产生了物体变形的问题,APAP算法的变形图像缺少相似变换的约束,因此,拼接视角有一定失真;图2(b)和(c)出现了因重合区域向非重合区域过渡不平滑导致的局部不自然的扭曲;而本文使用非线性权重重新加权单应性矩阵和相似变换矩阵,使图像的网格变形更加平滑,因为非线性权重的特性使得图像越靠右,相似变换的权重越大,得到的变形图像越自然,从而得到更好的图像视角。
图2 不同算法的网格图像的变形
待拼接图像往往会带有色差和一定的视差,导致拼接图像产生色差缝隙和物体变形,并且当重合区域内存在运动物体时,会导致重影问题。基于加权融合的方法常被应用于图像拼接中,用于缓解或者消除色差缝隙、物体变形和重影问题。文献[13,16]采用了实时性较强的加权平均法平滑图像,但是它无法有效应对较大色差或者物体运动场景;基于线性权重的渐入渐出方法被广泛应用于平滑待拼接图像[18-20],该方法有效地提升了对色差缝隙、物体变形和重影等问题的处理能力,但是仍旧无法有效应对大色差和运动场景。为了更好地解决这些问题,尽可能地减轻或者消除色差缝隙、物体变形和重影等,本文提出一种余弦函数平滑模型对图像像素进行更加平滑的非线性过渡:
y1=0.5+0.5·cos(πx),
(11)
y2=0.5-0.5·cos(πx)。
(12)
式中x=(C-CL)/(CR-CL),C、CL和CR分别是重合区域内待平滑像素点的列数值、待平滑像素点所在行的左端点的列数值和待平滑像素点所在行的右端点的列数值。
余弦函数和线性函数的图像如图3所示。
图3 不同权重函数的对比
从图3中可知,像素点权重从左右两端趋向中心位置的变化中,余弦函数的权重值变化比线性的权值更加平滑,在融合图的重合区域的左侧分别提升了图I1_p的像素占比、降低了图I2_q的像素占比,相应地提高左图的像素比例;同理,融合图的重合区域的右侧分别提升了图I2_q的像素占比、降低了图I1_p的像素占比,相应地提高右图的像素比例。尽可能地降低因物体运动导致的重影问题,同时消除因色差导致的拼接缝隙。
图4直观地反映了使用加权平均法、线性加权和本文提出的余弦函数加权模型融合的效果,加权平均法的复杂度低,但只适用于极小色差场景,在图4(c)和对应的局部放大图4(f)中出现了明显的色差缝隙和重影的问题;图4(d)和图4(g)中,线性加权能有效地处理色差,但仍然产生了重影;本文方法使用余弦函数进一步地消除了重影,如图4(h)所示,得到更加自然的融合图像。
图4 不同权重融合的图像对比
本文的实验环境为Windows 10 64位系统的计算机(Intel Core i5-8500 3.0 GHz CPU, 8 GiB RAM),仿真软件为Matlab 2017。分别随机地从文献[13,15-17]和本文采集的图像中选取40组作为测试样本,以APAP[16]、SPHP[22]、AANAP[17]和ELA[13]算法拼接的图像作为参考与本文实验结果进行对比分析。实验所涉及参数均与文献[17]保持一致,如:C1=C2=100;RANSAC[21]的阈值为0.1;3σ准则中设置σ系数为3;π取值3.14;MDLT[16]中的=0.1、σ=8.5等。实验代码来源于作者提供的源代码。
从40组图像集中随机选取6组,分别使用基于SIFT和RANSAC的文献[17]和本文方法计算各个特征点与对应的映射点之间的差值,并分别计算X和Y方向的平均偏差,如表1所示。
从表1可以看出,对于同一图像集,比较X和Y方向上的平均偏差,本文方法的平均偏差均大幅度小于文献[17],说明本文方法能有效消除错误匹配的影响,降低误匹配率,而且映射点的位置更加接近特征点,说明本文方法得到的映射关系更加准确。因此,本文提出的高斯分布去除错误匹配的方法比文献[17]使用的特征点匹配方法效果更佳。
表1 不同算法特征点与映射点之间的平均偏差
SPHP、AANAP与APAP算法的效率相当[13],并且AANAP、ELA和本文方法均使用单应性、相似性和加权融合,因此本文直接与AANAP和ELA算法进行效率对比。随机选择8组图像进行测试,对比得到表2数据。
表2 不同算法运行时间的对比
表2展示了AANAP、ELA和本文方法拼接8组图像的运行时间的对比结果。与基于一个全局单应性和TPS网格插值的ELA算法(使用加权平均法融合图像)相比,AANAP算法的效率明显较低,原因是它基于局部变形,涉及计算C1×C2个局部单应性矩阵以及相应的线性平滑权重等,复杂度较高。本文方法同样计算了C1×C2个局部单应性矩阵、复杂度更高的非线性平滑权重和特征点的精匹配,而基于后向插值的映射方法有效地提升了图像拼接的效率。
图5(a)和图5(b)分别为实验“Box”和“park”的待拼接图像,其中图像“park”存在较大的视差,并且图像中存在运动的人,因此,此类图像的拼接结果中易出现重影和物体变形的问题,可有效检视图像拼接的质量。
图5 不同实验待拼接图像
图6(a)、(c)、(e)、(g)和(i)分别是利用APAP、SPHP、AANAP、ELA和本文方法对图像集“Box”进行拼接得到的拼接图像,利用圆角矩形和箭头标记图中出现的物体变形。图6(b)、(d)、(f)、(h)和(j)分别是各个算法拼接图像中出现变形处的局部放大图。
图6 实验“Box”中不同算法的拼接结果
图6(a)~(f)中出现了明显的图像未对齐问题,原因在于特征点的错误匹配导致拼接图像中出现了如1.3节所述的物体变形,严重影响了拼接图像的质量。由于重合区域向非重合区域过渡不平滑导致图6(g)出现不自然的扭曲,图6(h)出现了物体变形。本文的拼接结果图6(i),更加接近于原始图像,局部放大的图6 (j)直观地反映了本文方法能有效避免图像的物体变形。
图7(a)、(c)、(e)、(g)和(i)分别是利用APAP、SPHP、AANAP、ELA和本文方法对视差图像集“park”进行拼接得到的拼接图像,利用圆角矩形对图像的重影区域进行标记。图7(b)、(d)、(f)、(h)和(j)分别是各个方法拼接图像中出现重影处的局部放大图。图像中,人的运动和图像的视差使图7(a)、(c)、(e)和(g)中出现了明显的重影现象。APAP算法缺乏相似变换的约束,导致拼接图像右侧出现了物体被拉伸的畸变问题。使用分区域翘曲的SPHP算法,进一步放大了旋转角度,拼接结果不自然。AANAP算法使用线性加权的方式对单应性矩阵和相似变换矩阵进行融合,拼接图像不够平滑,在拼接图像右侧出现了不同程度的物体畸变问题。而ELA使用TPS函数约束全局单应性,同时结合全局相似变换,保留了一定的局部对齐能力,得到了自然的拼接图像,但是未考虑图像的平滑处理,产生了重影(图7(h))。本文提出更加平滑的权重模型,有效地消除了图像中的重影,同时非线性结合了局部对齐模型,增加了对齐能力,也消除了物体的畸变,得到了高质量的拼接图像。
图7 实验“park”中不同算法的拼接效果
为了客观评价拼接图像的质量,本文采用自然性图像评估(natural image quality evaluator, NIQE)算法[23]对拼接图像进行融合质量评估。NIQE算法与人眼主观质量评价有着更好的一致性,更接近人类视觉系统,能够有效地进行图像质量评价。该算法首先在原始图像中提取图像特征,然后利用多元高斯(multivariate Gaussian, MG)模型进行建模,最后计算待评估的图像与预先建立的模型参数之间的距离来确定图像质量。NIQE指标越小,表示图像质量越好。图8分别给出了APAP、SPHP、AANAP、ELA和本文方法的NIQE评价结果。
从图8中的40组实验对比结果可以看出,其中REWgym、building1、garden、forest、round、seaport、sky、skyline、station等9组实验,由于原图中的视差、色差、运动误差等因素,使得本文方法的NIQE指标稍高,其余31组实验,本文方法的NIQE指标均低于APAP、SPHP、AANAP和ELA的NIQE指标,拼接图像效果与评估指标保持一致。说明相对于APAP、SPHP、AANAP和ELA算法,本文方法可以更有效地处理大部分图像,得到质量更高的拼接图像。
图8 不同算法拼接图像的质量对比
针对图像拼接中易出现物体变形和重影的现象,本文首先利用高斯分布模型去除了错误匹配的特征点,其次利用余弦函数模型分别优化网格变形模型和图像像素平滑模型,以提升拼接图像的质量,最后通过主观的视觉观察、算法运行效率和自然性图像评估算法等对实验结果进行定性和定量的评估,结果表明:本文提出的基于网格变形和余弦函数权重的图像拼接方法,拼接效果优于APAP、SPHP、AANAN和ELA等算法,在保证算法效率的同时,也能有效避免因为特征点的错误匹配、图像视差和色差导致拼接图像中物体变形、重影和色差缝隙的问题,在图像拼接中具有一定的贡献。但同时,本文工作仍然存在不足,如对于大视差图像的拼接效果不理想、算法实时性低等。后继工作将进一步研究图像变形模型,以提高对大视差图像的拼接能力。