【论文精读】Adaptive As-Natural-As-Possible Image Stitching

论文下载链接 这篇论文是CC Lin等人发表在CVPR 2015上的一篇关于图像拼接的论文。

文章目录

  • 一、实验结果复现
  • 二、论文理解
        • 摘要
        • 一、引言
        • 二、相关工作
        • 三、提出的方法
            • 3.1 局部单应模型
            • 3.2 单应线性化
            • 3.3 全局相似变换
            • 3.4 全局相似变换的集成
        • 四、实验
        • 五、总结

一、实验结果复现

代码下载链接
AANAP这篇论文的代码是YaqiLYU在APAP论文代码的基础上实现的,也是使用MATLAB编写的代码。在上面的代码下载链接中的README.md中详细介绍了如何运行代码,在此我简单的介绍一下:

HOW TO START:
第1步:下载APAP: 在https://cs.adelaide.edu.au/~tjchin/apap/ 下载APAP的MATLAB代码,解压后得到./mdlt. 我用的是Source codes [MDLT code],也就是说,仅支持两图拼接,多图拼接请自行修改,非常简单!
第2步:请先运行main.m,确保APAP可以正常工作。(关于如何运行APAP代码,可以参见我之前写的一篇博客:APAP代码运行链接)
第3步:下载测试图像库:继续在https://cs.adelaide.edu.au/~tjchin/apap/ 下载三个图像数据库,解压到./mdlt/images目录。
第4步:拷贝AANAP的所有.m代码到APAP根目录 ./mdlt,注意,这里的所有matlab文件都拷贝过去。
第5步:运行AANAP.m就能得到拼接结果了,我提供了两个选项: 设置fast_stitch=1,快速拼接模式,效果较差。 设置fast_stitch=0,高质量拼接模式,速度较慢。

我复现的结果图如下:
输入的两幅图像

关键点匹配:
全局单应性估计:

输入图像1和2的网格变形:
【论文精读】Adaptive As-Natural-As-Possible Image Stitching_第1张图片

拼接结果:

二、论文理解

摘要

本文提出一种新的拼接方法,不仅考虑了所有的局部变换变化,还在整个目标图像上使用平滑的拼接场。同时计算扭曲是完全自动化的,并使用局部单应和全局相似变换的组合,这两种变换都是针对目标进行估计的。
我们通过线性化单应性并缓慢地将其改变为全局相似性来缓解非重叠区域中的透视失真。该方法易于推广到多幅图像,并能自动获得全景图中的最佳透视图。

一、引言

指出早期的拼接方法主要侧重于获得全局2D变换。(2D拼接的问题大多来源于3D场景和相机参数之间的复杂交互无法准确估计拼接场。)
我们提出的新方法结合了多种技术,效果较好。为了解决APAP造成的透视失真,我们在非重叠区域中线性化单应性。然后在重叠区域中对应点的子集自动估计全局相似性变换。最后,我们在重叠区域的单应性和全局相似性之间平滑插值,并在非重叠区域使用线性化单应性(仿射)和全局相似性变换进行类似的外推。
本论文使用两个缝合场(单应性/线性单应性和全局相似性)的平滑组合有助于我们实现:(a)完全连续且平滑的缝合场,无弯曲伪影,(b)使用全局相似性变换在非重叠区域改善透视效果,(c)APAP提供的最先进对准精度的全部好处。

二、相关工作

关于图像拼接和许多相关变换的基本概念的描述,请参见[11]。文中还讨论了柱面和球面图像拼接算法的一些特殊情况。例如,当已知相机水平且绕其垂直轴旋转时,可以使用圆柱形模型。视差误差可以通过这个假设最小化,但当它被违反时,会发生重影。[7]中引入了一个计算单个全局单应的简单扩展,将单个场景分为远平面和地平面。权重贴图用于在目标图像上平滑地组合两个单应变换,但该技术仅限于没有局部透视变化的场景。
首先估计平滑缝合场的方法之一是[9]提出的平滑变化仿射(SVA)缝合。(估计全局仿射变换,然后使用EM样式公式将其松弛以形成平滑变化的仿射缝合场。它灵活,可以处理视差,同时保留参数变换的外推和遮挡处理特性,但它不能施加全局投影性。)
APAP[12]方法缓解SVA缺点,该方法估计了平滑变化的投影缝合场,提供了出色的对准精度。采用一种简单的移动直接线性变换(DLT)方法来估计局部参数,方法是为较低的特征点提供较高的权重,而对较远的特征点提供较低的权重。
由于APAP在非重叠区域外推投影变换,导致在远离边界的区域引入了严重的透视失真。于是[4]中,提出了保形半投影(SPHP)扭曲来保持非重叠区域中的形状。他们分析了沿旋转坐标轴的投影变换[5],并提出了一种方法,当我们从重叠区域移动到非重叠区域时,将扭曲从投影逐渐变为相似。缝合可以保持形状,但不能保证不产生视差。
使用SPHP和APAP的结合可以说是最先进的方法,但它对参数选择非常敏感。此外,如果重叠区域具有多个中间平面,则从全局单应性导出单个全局相似性变换可能是不够的。这可能会导致拼接中出现不希望出现的和不自然的视觉效果。
[3]提出了一种利用用户对平面区域、直线和相关消失点的注释来操纵单个图像透视的新方法,可以从不同视角的图像中合成新的图像。[8]提出了一种方法,通过利用用户对非自然区域的注释对全景图进行后处理,获得具有更合理视觉效果的图像。它们的不足在于两种方法都不能自动执行透视保持图像拼接。

三、提出的方法

我们将详细介绍所提出的算法。我们首先描述了移动DLT方法来估计局部单应性,然后提出了一种在非重叠区域对其进行线性化的方法。然后,我们解释了参考图像和目标图像之间的全局相似性变换的计算。由于许多相似变换是可能的,我们自动选择旋转角度最小的一个作为最佳候选。最后,给出了通过将整个图像的单应性或其线性化版本与全局相似性相结合来构造的所提出的扭曲的细节。

3.1 局部单应模型

让目标和参考图像用I和图像I’表示。给定一对匹配点p=[x y]T和p’=[x’y’]T,在I和I’之间,单应性变换p’=h(p)可以表示为
【论文精读】Adaptive As-Natural-As-Possible Image Stitching_第2张图片

在齐次坐标系p^ = [x y 1]T, p ^’ = [x ’ y ’ 1]T中,可以用单应矩阵H∈R3×3表示为
在这里插入图片描述

H列分别为h1= [h1 h4 h7]T,h2= [h2 h5 h8]T, h3= [h3 h6 h9]T。在(3)两边做叉乘,我们得到
在这里插入图片描述

可以按如下方式重新编写
【论文精读】Adaptive As-Natural-As-Possible Image Stitching_第3张图片
我们将(5)中的9×1向量表示为h。由于(5)中的3×9矩阵中只有两行是线性无关的,对于一组N个匹配点{pi}Ni=1和{pi '}Ni=1,我们可以使用
【论文精读】Adaptive As-Natural-As-Possible Image Stitching_第4张图片

其中ai,1和ai,2对应于(5)中矩阵的两行。我们还将纳入约束||h||2= 1,因为单谐变换只有8个自由度。
在 [12] 中,作者引入了移动 DLT 框架,通过在(6)的目标中包含局部强制权重来估计局部单应性。位置 pj 的局部单应性估计为
在这里插入图片描述

可以写成hj= argmin ||WjAh||,其中Wj=diag([ω1,jω1,j…ωN, jωN])。在[12]中,权值是使用偏移高斯生成的,假设pj附近的像素值高,很远的地方像素值相等,即ωi,j= max(exp(−||pi−pj||2/σ2), γ)。参数γ∈[0 1]是用来防止数值问题的偏移量。注意,局部单应性只能在目标图像与参考图像重叠的区域计算。
对于非重叠区域的每个像素,变换被计算为重叠区域的局部单应性的加权线性组合。在这里,选择适当的偏移量以避免外推伪影变得很重要。如图1(b)所示,由于高斯加权的各向同性特性,设置γ= 0会导致“波动”效应,而选择适当的偏移则会产生良好的结果。即使在这种情况下,APAP在非重叠区域的透视失真也很明显,正如[4]中所指出的那样。
【论文精读】Adaptive As-Natural-As-Possible Image Stitching_第5张图片

在我们提出的方法中,我们使用重叠区域中无偏移的移动DLT来估计局部单应性,并使用单应性线性化外推到非重叠区域,如以下部分所述。这减少了透视失真,我们提出的外推加权方案对参数选择的依赖性更小。

3.2 单应线性化

非重叠区域的单向变换外推产生了极端和非自然的尺度效应,如图1(b)所示。产生这种效果的原因可以通过考虑一维透视变换来理解,x ’ =(ax+b)/(cx+d)。如果我们用一组对应点来估计参数{a, b, c, d},在可用对应点的范围之外,x和x '之间的关系将是非线性的。这在二维中转化为严重的透视失真。然而,这种失真可以通过线性化变换来最小化。

对于图像,通过考虑单应变换h(q)的泰勒级数,可以理解锚定点p附近任意点q处单应的线性化,其中h:R2→R2
在这里插入图片描述

其中Jh§是h在p点的单应性的雅可比矩阵。(8)中的前两项为h(q)提供了最好的线性化。因为,如果h在p处是可微的,Jh§是可逆的,单应的线性化是一个仿射变换。然而,它不是简单的计算在任意点在重叠区域线性化在1−D数据的情况下,由于边界之间的重叠与非重叠区域可以包含多个点,我们不会知道雅可比矩阵计算。因此,我们考虑锚点在边界线性化和计算一个加权平均的转换。

对于边界上可能存在不同局部单性的一组R锚点{pi}Ri=1,给出线性化的加权组合为
在这里插入图片描述

我们假设αi是||q−pi||的函数,特别是考虑高斯加权,其中αi= exp(- ||q−pi||2/σ2),或者学生t加权,其中αi= {(1 +(||q−pi||2)/ ν}−(ν+1) /2。学生的t加权更稳健,因为与高斯分布相比,分布的尾部衰减缓慢,因此当q离锚点很远时,所有锚点都被赋予相似的权重。然而,如果选择高斯加权,尾巴应该在偏移参数γ处平坦,以避免“波浪”效应。
使用我们的外推方法的缝合结果如图1(c)所示。使用线性化单应性来外推非重叠区域比使用APAP的结果具有更少的透视失真。结果与使用双单应性翘曲的缝合结果相似[7]。然而,我们的方法不需要估计远平面和地平面的两个同形图。与对偶单应方法相比,该方法能适应更复杂的场景,是一种广义方法。它不需要根据具体情况确定的参数γ[12],因此对参数选择的依赖性较小。

3.3 全局相似变换

在上一节中,我们介绍了一种线性化单应的方法,从而减少重叠区域中的透视失真。在以下部分中,我们将提出进一步减少扭曲的方法,从而使全景看起来自然。其思想是在目标图像的非重叠区域使用相似性变换,因为它不会引入任何透视失真。
如果全局相似性变换近似于目标图像和参考图像之间的相机运动,则可以使用估计的相似性变换来补偿相机运动。然而,使用所有点匹配查找全局相似性变换可能会导致非最优解,特别是当重叠区域包含不同的图像平面时。问题在图2中很明显,它显示了SPHP的缝合结果。请注意,SPHP使用全局单应变换来唯一确定全局相似性,这可能无法很好地近似摄影机运动。
假设场景中存在多个平面,且摄像机焦距处存在图像投影平面,则场景中的每个平面都与图像投影平面具有交角,并且场景中的每个平面对应于局部单应变换。与图像投影平面最平行的平面(最小交角)对应的单应变换可用于导出表示相机运动的最佳相似性变换。
我们如何计算参考图像和目标图像之间的最佳相似性转换?
在获得特征点匹配后,我们首先使用阈值εg的RANSAC[6]去除异常值。然后,我们使用具有阈值εl的RANSAC来寻找具有最大入口的平面的单应性,其中εl<εg,并且我们移除入口。重复此操作,直到入口数小于η。每组匹配的内点用于计算单个相似性变换。然后,检查与变换对应的旋转角度,并选择旋转角度最小的旋转角度。
图3显示了分组结果的示例。图形上的绿色和黄色圆圈属于两组不同的点对应。红色圆圈不属于任何类别。在本例中,带有黄点的组生成具有最小旋转角度的最佳全局相似性变换。
【论文精读】Adaptive As-Natural-As-Possible Image Stitching_第6张图片

3.4 全局相似变换的集成

在计算出全局相似性变换后,利用该变换调整目标图像的扭曲度,以减轻全景图中的透视失真。如果只调整非重叠区域上的变换,缝合结果可能会产生不自然的视觉效果。因此,我们使用以下等式将整个目标图像的局部变换逐渐更新为全局相似性变换:
在这里插入图片描述

其中H(t)i为局部单应性,H^(t)i为更新的局部变换,S为全局相似变换。µh和µs为权重系数。上标(t)为目标图像,上标®为参考图像。我们还限制了µh+µs= 1,其中µh和µs都在0到1之间。它们被计算为,
在这里插入图片描述
在这里插入图片描述

式中,κ是orot方向上扭曲目标图像的投影点。or和ot是参考图像和扭曲目标图像的中心点。κm和κM分别是最小值和最大值的点。这里,p(i)是最终全景中第i个位置的位置。

使用全局相似性变换更新目标图像的扭曲会导致参考图像和先前对齐的目标图像之间的重叠区域不对齐。因此,我们需要通过适当地将变化从目标图像传播到参考图像来补偿这些变化。现在可以获得参考图像的局部变换,如下所示:
在这里插入图片描述

图1(d)显示了参考图像和目标图像的最终扭曲结果。图1(e)中所示的最终缝合结果明显类似于自然外观的全景图。

四、实验

我们已经在 [12] 提供的各种现有数据集上对所提出的算法进行了比较实验。比较的方法包括Microsoft Image Composite Editor (ICE) [1]、APAP [12]、具有全局单应性的SPHP [4]、使用APAP (SPHP+APAP) 计算的具有局部单应性的SPHP。在我们的实验中,我们使用了各自论文中建议的相同参数集。我们使用论文作者提供的代码来获取结果进行比较。使用 SIFT [10] 检测相应的点。对于移动的 DLT,我们设置 σ 为 12.5,对于 Student 的 t,我们设置 ν 为 5,阈值 εg,全局 RANSAC 误差函数设置为 0.1,阈值 εl,局部 RANSAC 误差函数固定为0.001,内点数的阈值 κ 固定为 50。所提出的方法通常需要 20 到 30 秒,使用 2.7GHz CPU 和 16GB RAM 来拼接两个分辨率为 800×600 的图像。为保持论文简洁,我们仅展示了 Temple 和 Railtracks 数据集的结果,但补充材料中提供了更多结果。
图4提供了Temple数据集的结果。每一行都是不同方法的结果。结果依次为ICE、APAP、SPHP、SPHP+APAP和我们的方法。每个结果的两个方面已被强调。红色方框表示重叠区域的视差误差,蓝色方框表示非重叠区域的透视失真。ICE的结果在视觉上看起来很好。透视图保留了下来,但地面上有一些错位。正如上一节所讨论的,第二行APAP结果在重叠区域对齐良好,但在非重叠区域透视失真不可忽略,原因在前面讨论。第三行是SPHP方法的结果。正如SPHP论文所描述的,它更关注于缓解透视失真,而不是对准精度。结果表明,该方法在保留形状的前提下,存在视差误差。SPHP作者建议将SPHP与APAP结合,以减轻视差误差。下一行的结果显示视差误差得到了改善。然而在SPHP和SPHP+APAP中,右侧的建筑并不与神庙平行。这是因为相似变换是从全局单应得来的,因此可能不是最优的。如果在重叠区域中有多个不同的平面,就像在图像中一样,这一点尤其正确。只有知道相机的旋转角度,才能进行修正。最后一行的结果表明,我们的方法缓解了透视失真,也可以成功地处理视差问题。
【论文精读】Adaptive As-Natural-As-Possible Image Stitching_第7张图片

图5比较了Railtracks数据集的结果。我们仍然可以看到ICE/SPHP中的视差误差和APAP中的透视问题。如果不手动校正旋转角度,SPHP和SPHP+APAP的结果看起来不自然。在这个具有挑战性的例子中,我们提出的方法保持了对齐精度,并显示了鲁棒性。接下来的全景图示例演示了我们所提出的方法在多幅图像中的性能。图6中的图像数据集包括一辆卡车、一个环形交叉口和一个弧形地面。图7中的图像包括天际线、建筑、树木和游泳池。我们的方法在这两个数据集上都工作得很好,保持了图像内容的完整性,并提供了全景图的自然外观。没有可见视差误差和透视畸变。
【论文精读】Adaptive As-Natural-As-Possible Image Stitching_第8张图片

五、总结

在这项工作中,我们提出了一种新的拼接方法,该方法使用从局部单应或其线性化版本导出的平滑拼接场和全局相似性变换。结果表明,我们的方法在重叠区域提供了更自然的视差,并缓解了非重叠区域的透视失真问题。此外,它不太依赖于参数的选择,并自动计算适当的全局相似性变换。与现有方法的实验比较表明,与现有方法相比,本文提出的方法具有最佳的缝合效果。未来的研究发展将包括补偿存在大运动时的视差,这可以通过将接缝切割方法集成到该框架中来实现。这将使我们的方法成为一站式解决方案,解决图像拼接中的所有主要问题。

你可能感兴趣的:(图像拼接系列论文,matlab,图像处理,计算机视觉)