图像拼接2014CVPR文章——Parallax-tolerant Image Stitching

简介

code
pdf

本文贡献:
1.首先开发了一种高效的随机算法,用于寻找不完全精确的局部对齐(只采用了部分重叠区域的特征点)的单应性变换(粗对齐)
在这个过程中,通过从粗略对齐的图像中找到一个合理的缝隙(seam),并使用缝隙的代价来评分单应性变换。
2.还开发了一种基于图割的缝隙查找方法,它可以从仅粗略对齐的图像中估计出合理的缝隙,同时考虑几何对齐和图像内容。
3.一旦找到了最佳的单应性变换,我们将其用于预先对齐输入图像,然后再使用内容保持变形来细化对齐效果。(这一步所谓内容保持变形的本质上是定义了三个优化项,来对网格进行优化)

Motivation
我们的观察是,我们不需要在整个重叠区域完美地对齐图像。实际上,对于具有大视差的图像,要完美对齐它们是非常困难的,甚至是不可能的。我们的目标是在局部区域对齐图像,以便我们可以找到一个缝隙将它们拼接在一起

1.整体流程

在这里插入图片描述
第一步:检测和匹配SIFT特征,同时,还估计输入图像的边缘图。

第二步随机选择种子特征点:

以下是该算法的步骤:

  1. 随机选择一个种子特征点:算法首先从所有的特征点中随机选择一个特征点作为种子点。

  2. 逐步选择空间上最近的邻居:从种子点开始,算法逐步选择与当前特征点空间上最近的邻居特征点,直到无法通过一个预定义的阈值用单应性矩阵将这些选定的特征点对齐。也就是说,这一组选定的特征点应该能够通过一个单应性变换,使得它们在拼接后的图像中保持对齐。

  3. 维护特征点的惩罚值:在整个迭代的过程中,对每个特征点维护一个惩罚值(penalty value),用于记录该特征点在迭代过程中被选中的次数。当一个特征点被选中时,它的惩罚值增加一。

  4. 选择有效的种子特征点:在每次迭代中,为了成为一个有效的种子特征点,该特征点必须满足两个条件:一是它之前不能被选为种子点,即确保不重复选取;二是它的惩罚值应该低于所有特征点的平均惩罚值。这样可以确保在迭代过程中,选择的种子特征点具有一定的多样性,并且没有过多地重复选择某个特征点。

通过这样的随机算法,不断地选择特征点,并利用单应性矩阵将它们对齐,最终可以得到一组选定的特征点,用于后续的局部对齐和图像拼接操作。这样的选择过程可以有效地提高图像对齐的准确性和鲁棒性。

由此可以找到一个最佳拟合单应性矩阵

第三步评估最佳拟合单应性矩阵:使用在步骤2中找到的最佳拟合单应性矩阵,进行粗对齐,用本文的方法生成接缝。获得这个接缝的同时会根据公式(1)生成一个成本值,这个值也就是粗对齐模型的评分。如果评分足预定义的质量阈值,执行步骤4。否则返回步骤2,重新获取最佳拟合单应矩阵再执行步骤三。

第四步使用content-preserving warping进行精对齐。

2.粗对齐以及接缝查找

2.1对齐模型选择

主要有两种对齐模型:
global homography :能较好的地保持整体形状,但是应对视差能力差
content-preserving warping:应对视差能力好
本文考虑将这两种对齐模型结合起来,以在尽可能大的共同区域内对齐图像并尽量减少失真。在粗对齐阶段采用global homography,查找到最优接缝后,后续的精对齐再采用content-preserving warping
给定一个种子特征点,我们的方法逐步将其邻近的特征点组合起来拟合一个2D变换(默认为单应性变换)。在这里,我们使用稍大的适应度阈值,以便尽可能多地组合特征点,尽管这样做会使得单应性无法完全拟合这些特征对应关系。通过后续应用内容保持变形,可以弥补单应性的适应度损失,因为内容保持变形非常适合用于局部变形的细化,而不会引入明显的失真。

2.2 粗对齐模型评估

在图像拼接中,显著的图像特征,例如边缘,应该对齐良好,而像天空这样的图像区域则不一定需要完美对齐。
我们通过从局部粗略对齐(全局单应变换)的图像中找到一个合理的接缝,利用这个接缝成本(公式(1))对粗对齐的结果进行评分。
具体步骤如下:

  1. 降采样:首先对输入图像进行降采样,以提高算法的处理速度并容忍小的对齐误差。降采样可以减少图像的尺寸,从而加快后续计算的速度。

  2. 计算边缘图:对降采样后的输入图像使用Canny边缘检测方法 [1],得到输入图像的边缘图。边缘图是一幅仅包含图像边缘的二值图像。

  3. 低通滤波:对边缘图进行低通滤波,以容忍小的对齐误差。低通滤波可以平滑边缘图,减少细微的边缘变化,从而降低对齐的要求。

  4. 全局透视投影与差异计算:对每幅输入图像,首先使用预先估计的单应性变换(或其他全局2D变换)将其变形。然后,计算变形后的图像的边缘图与参考图像的边缘图之间的差异,得到差异图 E d E_d Ed(这一步实现了粗对齐)

  5. 查找合理缝隙:本文扩展了文献[2]的图割缝隙查找方法 ,来找到合理的缝隙。
    具体而言,将重叠区域内的每个像素视为一个图节点,定义相邻节点之间的边缘代价,通过最小割算法找到一条分割线,即缝隙,一个合理的接缝应该避免通过差异图中具有较大值的像素,以实现无缝拼接。

简而言之,我们将重叠区域中的每个像素视为图形节点。我们如下定义两个相邻节点 s s s t t t 之间的边成本:
e ( s , t ) = f c ( s ) ∣ E d ( s ) ∣ + f c ( t ) ∣ E d ( t ) ∣ ( 1 ) e(s, t)=f_c(s)\left|E_d(s)\right|+f_c(t)\left|E_d(t)\right| (1) e(s,t)=fc(s)Ed(s)+fc(t)Ed(t)(1)
使用对齐置信度函数 f c ( s ) f_c(s) fc(s) 来加权边缘代价。 f c ( s ) f_c(s) fc(s) 用于进一步考虑单应性变换只能粗略对齐图像,并且需要使用内容保持变形来进行对齐细化的情况。具体而言,如果一个局部区域具有一个SIFT特征点,那么在该区域的对齐很可能可以通过内容保持变形来改善,因此只使用单应性变换带来的对齐误差应该被降低。
当局部区域内有SIFT特征点时,我们认为对齐置信度应该较高,因此 f c ( s ) f_c(s) fc(s)取值较小;
而当局部区域内没有SIFT特征点时,对齐置信度较低, f c ( s ) f_c(s) fc(s)取值较大
f c ( s ) = 1 ∑ P i g ( ∥ P s − P i ∥ ) + δ f_c(s)=\frac{1}{\sum_{P_i} g\left(\left\|P_s-P_i\right\|\right)+\delta} fc(s)=Pig(PsPi)+δ1
其中 P i P_i Pi是SIFT特征点的位置, P s P_s Ps是像素 s s s的位置。 g g g 是高斯函数,并且用于将SIFT特征的效果传播到其邻域。 δ δ δ是一个小常数,默认值为0.01。

基于等式(1)中定义的边缘成本,可以将接缝查找问题公式化并求解为图切割问题[2]。

3.content-preserving warping

content-preserving warping是将全局透视投影转化为mesh warping问题(即网格优化问题)。作者定义了Local alignment term,Global alignment term,Smoothness term这三个优化项。
E = E p + α E g + β E s E=E_p+\alpha E_g+\beta E_s E=Ep+αEg+βEs
其中 α α α β β β为每一项的权重,默认值分别为0.01和0.001
I , I ˉ , I ^ I, \bar{I} , \hat{I} I,Iˉ,I^ 分别为输入图像,粗对齐结果,精对齐结果
V V V是网格的顶点
在这里插入图片描述

Local alignment term

E p = ∑ j = 1 n ∥ ∑ α j , k V ^ j , k − P ~ j ∥ 2 E_p=\sum_{j=1}^n\left\|\sum \alpha_{j, k} \hat{V}_{j, k}-\tilde{P}_j\right\|^2 Ep=j=1n αj,kV^j,kP~j 2
这也是CPW[14]的一个约束项
利用逆双线性插值方法[10]计算线性组合系数, α j , k \alpha_{j, k} αj,k 是双线性组合系数
P j P_{j} Pj包围在 V j , k V_{j, k} Vj,k
P ~ j \tilde{P}_j P~j是参考图像中的特征点

Global alignment term

E g = ∑ i τ i ∥ V ^ i − V ˉ i ∥ 2 E_g=\sum_i \tau_i\left\|\hat{V}_i-\bar{V}_i\right\|^2 Eg=iτi V^iVˉi 2
非重叠区域在粗对齐阶段就已经做了充足的变换了,content-preserving warping经常会造成较大的扭曲,所以要求非重叠区域的粗对齐结果和精对齐结果尽量一致。
τ i \tau_i τi是二进制值。如果在Vi的邻域中存在特征点,则将其设置为1;否则为0

Smoothness term

为了进一步减小翘曲过程中的局部失真,我们鼓励粗对齐结果中的每个网格单元进行相似变换。利用[11]的二次能量项对相似变换约束进行编码,具体来说,考虑一个 Δ V ˉ 1 V ˉ 2 V ˉ 3 \Delta \bar{V}_1 \bar{V}_2 \bar{V}_3 ΔVˉ1Vˉ2Vˉ3,它的顶点 V ˉ 1 \bar{V}_1 Vˉ1可以由另外两个顶点表示,如下所示:
V ˉ 1 = V ˉ 2 + u ( V ˉ 3 − V ˉ 2 ) + v R ( V ˉ 3 − V ˉ 2 ) , R = [ 0 1 − 1 0 ] \bar{V}_1=\bar{V}_2+u\left(\bar{V}_3-\bar{V}_2\right)+v R\left(\bar{V}_3-\bar{V}_2\right), R=\left[\begin{array}{cc} 0 & 1 \\ -1 & 0 \end{array}\right] Vˉ1=Vˉ2+u(Vˉ3Vˉ2)+vR(Vˉ3Vˉ2),R=[0110]
其中 u u u v v v是由 V ˉ 2 \bar{V}_2 Vˉ2 V ˉ 2 \bar{V}_2 Vˉ2定义的局部坐标系中 V ˉ 1 \bar{V}_1 Vˉ1的坐标。如果该三角形经历相似性变换,则其在局部坐标系中的坐标将不会改变。因此,相似性变换项可以定义如下:
E s ( V ^ i ) = w s ∥ V ^ 1 − ( V ^ 2 + u ( V ^ 3 − V ^ 2 ) + v R ( V ^ 3 − V ^ 2 ) ) ∥ 2 E_s\left(\hat{V}_i\right)=w_s\left\|\hat{V}_1-\left(\hat{V}_2+u\left(\hat{V}_3-\hat{V}_2\right)+v R\left(\hat{V}_3-\hat{V}_2\right)\right)\right\|^2 Es(V^i)=ws V^1(V^2+u(V^3V^2)+vR(V^3V^2)) 2
这里ws使用与[14]相同的方法来度量 Δ V ˉ 1 V ˉ 2 V ˉ 3 \Delta \bar{V}_1 \bar{V}_2 \bar{V}_3 ΔVˉ1Vˉ2Vˉ3的显著性值,然后 w s w_s ws被用来调整对图像不同区域的扭曲程度。

总结

1.Parallax-tolerant Image Stitching是2014CVPR上发表的,在Seam-driven image stitching这篇文章的基础上做出的改进。这两篇堪称seam cutting方面的开山作。
2.但是由于对齐用的单应矩阵的选取是由接缝驱动(seam driven)的,所以虽然实现的全景图有较好的视觉效果,但是图片中的点与其实际地理位置的对应会发生较大的偏差。
3.并且需要耗掉cpu40s,能否落地还有待改进
4.本文可以作为一个优化模块,加在一些对齐算法上,将这些对齐算法作为本文的粗对齐。

reference

[1]J. Canny. A computational approach to edge detection. IEEE
Trans. Pattern Anal. Mach. Intell., 8(6):679–698, 1986.
[2]V. Kwatra, A. Sch¨odl, I. Essa, G. Turk, and A. Bobick.
Graphcut textures: image and video synthesis using graph
cuts. ACMTrans. Graph., 22(3):277–286, 2003.
[10]P. S. Heckbert. Fundamentals of texture mapping and image
warping. Master’s thesis, Citeseer, 1989.
[11]T. Igarashi, T. Moscovich, and J. F. Hughes. As-rigid-as-
possible shape manipulation. ACMTransactions on Graph-
ics, 24(3):1134–1141, 2005.
[14]F. Liu, M. Gleicher, H. Jin, and A. Agarwala. Content-
preserving warps for 3d video stabilization. ACM Transac-
tions on Graphics, 28(3):44:1–44:9, 2009.

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大泽泽的小可爱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值