多平面分区投影的大视差图像拼接算法和综合实验案例设计
2021-11-01陈立伟宋涛羽
陈立伟, 宋涛羽
(哈尔滨工程大学信息与通信工程学院,哈尔滨 150001)
0 引 言
信号处理综合实验中,图像拼接是其中一个实验项目。图像拼接是一种能够将空间上有重叠的两幅或多幅图像拼接为一幅具有高分辨率、宽视角图像的技术,目前,广泛应用在遥感图像处理[1]、医学图像合成[2]、虚拟现实[3]和无人驾驶[4]等领域。
满足单点透视假设的图像拼接相对简单,技术较为成熟[5],但是大视差场景下的图像拼接依然是一个有挑战性的任务[6]。这是由于大视差图像之间往往存在多个对应平面,很难同时将所有平面对齐,导致拼接结果出现重影。为解决这一问题,Gao 等[7]提出将场景划分成两个主导平面,一个前景平面,另一个背景平面,然后在这两个平面上分别计算单应性矩阵并对其进行配准。这种方法对于图像中只有两个平面的场景,拼接效果明显比单个全局单应矩阵得到的拼接效果好。Zaragoza等[8]提出的APAP 算法引入了网格划分的思想,将图像划分为很多的小网格并在每个网格中都估计出一个单应性矩阵,一定程度上提高了图像配准精度,但是仅适用于视差较小的情况,并且要求待拼接图像有较高的重叠度。Lin 等[9]提出的AANAP算法是在APAP的基础上,将局部投影变换和全局投影变换线性结合,得到的拼接结果有非常自然的视觉效果。Li等[10]提出了一种基于鲁棒弹性翘曲的视差容忍图像拼接方法,能够同时实现精确对准和高效处理。
以上这些算法为了提高配准精度,要求图像有较高的重叠度,忽略了小重叠面积图像拼接时出现的变形问题。另外在视差较大的情况下,图像之间存在的多个对应平面无法同时对齐,拼接结果会出现重影的问题。为此,本文提出了一种多平面分区投影的大视差图像拼接算法。首先将循环RANSAC 算法与最佳缝合线算法结合使用来确定最优单应性矩阵,以消除拼接结果中重叠区域的重影,然后把图像划分为3 个区域并利用最优单应性矩阵得到分区投影函数,对图像进行分区投影变换,以避免非重叠区域变形。从而实现小重叠面积、大视差图像的自然无缝拼接。
1 相关理论基础
1.1 RANSAC算法
RANSAC算法是一种稳定的模型拟合算法[11],对于存在误匹配的特征点对集合,它依然可以求得最优的单应性变换模型,同时可以去除图像中的外点(误匹配点)并保留所有内点(正确匹配点)。算法的具体步骤如下:
输入匹配特征点对集合M。
输出最优单应性矩阵H、对应内点集合M^。
(1)令i =1,在M 中随机取出4 对匹配特征点,求解对应的单应性矩阵Hi。
(2)使用Hi计算其余匹配点的投影误差,若误差小于预设阈值T,则为内点并存入内点集合,记所有内点个数ni,i =i +1。
(3)重复(1)、(2),直到i 大于预设循环次数,停止循环。
(4)选择ni最大时对应的Hi和内点集合,并令
根据算法可以得到待拼接图像之间的最优单应性矩阵H和对应的内点集合。
1.2 最佳缝合线算法
最佳缝合线算法对于消除图像配准误差造成的重影有很好的效果,它在计算时考虑了图像的颜色和结构差异信息,加强了缝合线的局部相似性。以缝合线为基准对两幅图像进行拼接,从本质上消除了配准不准确区域出现的重影现象。对于一条令人满意的最佳缝合线来说,以下两个要求需要被同时满足:①两幅图像缝合线处像素点的颜色差异最小;②两幅图像在缝合线处的结构差异也应该最小。
由Duplaquet 等提出的最佳缝合线计算准则[12]如下:
式中:Ecolor(x,y)、Egeometry(x,y)分别为图像重叠区域像素点的颜色差异强度值和结构差异强度值,
Sx和Sy分别代表x 和y 方向的大小为3 × 3 的Sobel算子。在图像的重叠部分,利用准则公式计算每个像素点准则值,生成一幅以准则值为像素值的图像,即能量矩阵E。然后利用动态规划算法[13]在能量矩阵上搜索能量值最小的缝合线作为最佳缝合线,原理如图1 所示。
图1 缝合线搜索原理示意图
具体步骤为:
(1)重叠区域第1 行每一列的初始值为能量矩阵第1 行的准则值。
(2)将缝合线当前点与其左右两个点的准则值及下一行紧邻的3 个点的准则值进行比较,把准则值最小的点作为缝合线的延伸方向,如果准则值最小的点已经在缝合线上,则选择次最小的点作为延伸方向。循环操作步骤(2),当缝合线延伸到最后一行时,停止循环。
(3)选择能量值总和最小的缝合线作为最佳缝合线。
2 多平面分区投影大视差图像拼接算法
由于大视差图像之间往往存在多个对应平面,进行图像拼接时无法将所有平面同时对齐[14]。因此在局部对齐的图像上搜索一条缝合线对图像进行拼接,成为解决这一问题的有效方法。拼接过程中,利用RANSAC算法只能产生一个主平面对齐的图像,而在其他平面对齐的图像上极有可能搜索到一条合适的缝合线,得到更加自然的拼接结果。因此需要计算多个对应平面上的单应性矩阵,选出效果最好的来拼接图像。另外,对于本文小重叠面积的图像,如果仅采用单应性矩阵变换图像,在非重叠区域会出现严重的变形问题。为此,本文将图像划分区域,不同区域采用不同类型的变换模型,保持非重叠区域形状不变。
2.1 多平面候选单应性生成与最优单应性选择
将两幅待拼接图像I0和I1的初始匹配点记为M0,通过在M0上循环使用RANSAC 算法即可得到所有对应平面上的单应性变换矩阵,通过最佳缝合线算法在每一个局部对齐的图像上搜索缝合线,并记录缝合线能量,选择能量最小缝合线对应的单应性矩阵作为最优单应性矩阵,具体流程如图2 所示。
图2 多平面候选单应性生成与最优单应性选择流程图
2.2 构建分区投影函数
假设得到的最优单应性矩阵为H,将图像从(x,y)坐标系下变换到(u,v)坐标系下,变换关系式为
式中:θ =a tan2(- h8,- h7),a 为线性参数,h7和h8为单应性矩阵H中的第7 和第8 个参数。
利用u =u1和u =u2两条直线将待配准图像划分为3 个区域,分别为重叠区域RH={(u,v)|u≤u1}、过渡区域RT={(u,v)|u1<u <u2}和非重叠区域RS={(u,v)|u2≤u}。定义分区投影函数
式中:H(u,v)为H在(u,v)坐标系下的表示;T(u,v)表示单应性变换向相似变换转换的函数;S(u,v)表示相似变换,它们可以根据文献[15]中的方法进行求解。
确定u1、u2时,主要是依据变换函数形状保持的特性,使变换函数尽可能地接近相似变换。为此,定义每一幅图像Ii的代价函数Ci,衡量其变换函数wi与最近相似变换的偏差:
式中:Ωi是图像Ii中的一块矩形区域;Ji(x,y;u1,u2)为wi在(x,y)处的雅可比矩阵。当拼接两幅图像时,总偏差
其中,w1=w ◦H-1,w2=w。
3 实验结果与分析
为验证本文所提算法的效果,将AANAP、ELA 算法与本文算法进行对比。实验中使用的图像均为手机拍摄,尺寸为1 280 × 720 像素,实验硬件平台为Intel(R)Core(TM)i5-8300H,2.3 GHz CPU,内存8 GB。软件平台为Visual Studio 2017 和OpenCV 3.4.1。
本次实验中,采用两组测试图像对算法性能进行测试。为便于对比,拼接结果中存在重影的区域用红色方框标出,并放大排列在拼接结果的下方,存在拼接线的区域用蓝色方框标出。为了更直观地对比非重叠区域的变形情况,在图像中插入了6 个5 × 5 的黄颜色网格作为形变探针。形变探针编号为,左边一列自上向下1,2,3;右边一列自上向下4,5,6。
第1 组为城市交通场景下采集的图像,源图像如图3 所示,图像的重叠度为32.6%。
图3 城市交通场景源图像
图4 展示了不同算法的拼接结果及局部放大图。其中图4(a)为利用AANAP 算法得到的拼接结果,可以看到越野车的车头、路灯杆和大树的位置均出现较为明显的重影,1 ~6 号形变探针都出现不同程度的变形,相较于1,2,3 号,4,5,6 号的变形更为严重。图4(b)为ELA算法得到的拼接结果,在越野车、路灯杆和大树的位置同样出现较为严重的重影,并且在重叠区域的边界处还出现了拼接线,但6 个形变探针的形变量相较于AANAP 算法有所减轻。相比之下,本文算法得到结果中没有出现重影,6 个形变探针也没有变形,得到的结果更加自然。
图4 城市交通场景不同算法拼接结果对比
第2 组为校园交通场景下采集的图像,源图像如图5 所示,图像的重叠度为45.3%。
图5 校园交通场景源图像
图6 所示为校园交通场景下不同算法拼接结果对比图,其中图6(a)和图6(b)分别为AANAP、ELA 算法的拼接结果,在窗户、汽车和行人位置均出现了明显的重影。此外ELA 算法的拼接结果在重叠区域边界处同样存在明显的拼接线,本文算法得到的结果有效避免了重影的出现,6 个形变探针的变形情况也明显优于对比算法。
4 结 语
本文提出了一种多平面分区投影的大视差图像拼接算法,算法有以下特点:
(1)通过循环使用RANSAC 算法获得图像多个对应平面上的单应性矩阵,利用最佳缝合线算法选择效果最好的一个对重叠区域进行对齐,有效提高了重叠区域的拼接质量。
(2)将图像划分区域,不同区域采用不同的投影变换,有效防止非重叠区域形状失真。相较于对比算法,本文算法有较强的重影消除能力和形状保持能力,实现了小重叠面积、大视差图像的自然拼接。
本文算法也有一定的局限性,还有需要完善的地方,比如,在确定最佳单应性矩阵时,需要在多个局部对齐的图像上搜索缝合线,比较耗时,因此拼接的效率还有待提高。未来将对拼接的效率做进一步探索,研究效率更高的算法。
学生在实验中,通过数据采集、算法设计、算法仿真和实验分析等环节,提高了学生的学习兴趣,培养了学生的创新精神和创新意识。