Paper name
Constructing image panoramas using dual-homography warping
Paper Reading Note
URL: https://ieeexplore.ieee.org/document/5995433
TL;DR
- 本文描述了一种在包含两个预定平面的全景场景中构建无缝图像拼接的方法:一个远处的背景平面和一个从摄影位置往前延伸的地平面
Introduction
- 基于单homography的方法要取得较好的结果需要待拼接图片满足以下假设:
- 待拼接图片的采集场景足够远,以致于可以被当成是一个平面
- 或者待拼接图片在被采集的时候相机是严格绕光心旋转
- 虽然上述的场景如果是在摄像头严格绕其光心旋转采集的情况下是一般能较好拼接,但是这样严格的采集条件基本上是难以保证的
- 在难以保证上述假设的情况下图片往往细节处无法都完全对齐,只能通过seam-finding、blending等后处理方式来降低不对齐带来的影响
- 作者因此提出了使用两个homography,同时将两个homography进行blending操作,来提高图像对齐质量
Dataset/Algorithm/Model/Experiment Detail
3. Dual-Homography Alignment
3.1 Dual-Homography Estimation
- 作者提出的方式是将图片估计得到的两个homography进行blending操作来获取最终的homography
其中 H g H_{g} Hg, H d H_{d} Hd分别代表地平面和远平面的homography, w i j w_{ij} wij是对于每个像素(i,j)都存在的权重用于控制每个homography对与该像素的贡献 - 求取两个homography
H
g
H_{g}
Hg,
H
d
H_{d}
Hd的方法:
- 首先SIFT计算得到图片中的关键点
- 基于特征点的空间位置及K-means算法得到图片中特征点聚类
- RANSAC对每个类的特征点求取一个homography,其中大于95%的特征点一致则达到迭代要求,不满足的点则被判定为outlier点: G g ′ G^{'}_{g} Gg′, G d ′ G^{'}_{d} Gd′
- 求取融合两个homography的权重:
其中 d g d_{g} dg, d d d_{d} dd分别是像素点距离 G g ′ G^{'}_{g} Gg′, G d ′ G^{'}_{d} Gd′中的最近特征点的距离的倒数
3.2 Extending to Multiple Images
- 不同于单homography的方法可以简单的累乘来得到一个单个变换矩阵,但是这里的非线性warping不能这样直接处理
- 对于上图来看,多图片warp的计算方式为:
- I 0 I_{0} I0图片不需要进行warp
- I 1 I_{1} I1往 I 0 I_{0} I0上warp的homography可以通过上节的方法求得
- 对于
I
2
I_{2}
I2,首先可以将
I
2
I_{2}
I2warp到
I
1
I_{1}
I1上,对于warp
I
2
I_{2}
I2过去的图与
I
1
I_{1}
I1的交集部分可以通过以下方式求得
- 对于没有交集的部分,使用
I
1
I_{1}
I1的Homography的边缘部分的H填充得到,边缘部分的H由边缘所有点的Homography加权得到,
I
2
I_{2}
I2上的像素warp过去离得越近的边缘点的权重越大
4. Post-Processing the Mosaic
- 作者介绍了两种后处理技术,接缝混合(Seam-Blendi)和矫直(Global Straighteni),用于增强最终结果的美观性。接缝混合旨在减少重叠图像之间的可见接缝。矫直用于减少双单应性翘曲所产生的曲线效应
4.1 Seam-Blending
- 拼缝基于Graphcut算法求得
- 作者将拼缝扩展到16pixels,利用linear alpha blending来降低接缝影响
4.2 Global Straightening
-
线性插值使图像以二次方的方式扭曲。这可能会带来尖锐的效果,可能使最终的拼接效果不理想
-
为了降低上述的扭曲,作者使用content-aware warping,该方式类似于一些image resize的论文中的操作
-
首先将输入的图像镶嵌到网格中,网格可以是四边形或三角形,这些网格计算用来决定如何将这些网格中的图像warp到虚拟画布中去
-
overlap区域使用三角的网格进行拉紧
-
网格的优化目标有:
- 其中
这个能量用于约束所有的网格点,使网格的形变不至于太大 - 另外
该能量用于约束垂直的网格保持垂直
- 其中
-
其中的权重项由图像梯度决定,梯度大的地方尽量少形变扰动
-
-
整体的straightening效果如下所示:
-
作者设计了ui可以自行确定哪些区域不要进行大的形变,方式就是类似于增加上述的梯度权重
实验结果
-
goodcase
-
badcase,当场景包含一个既不属于地平面也不属于远处平面的相对较大的结构时,作者的方法就失败了,原因是有大的视差存在
Thoughts
- 对比Autostich一般10-15s的拼接时间,该方法拼接时间较长:
- homography 估计要5-10s
- seamcut要5-10s
- straightening要5-10s
- 两个平面的假设符合能够满足大部分安防场景的拼接