【论文笔记】A view-free image stitching network based on global homography
论文地址: https://www.sciencedirect.com/science/article/abs/pii/S1047320320301784
代码地址: https://github.com/nie-lang/DeepImageStitching-1.0
摘要
通过三个阶段实现不受视角限制的图像拼接网络:
- 估计不同视角的两个输入图像之间的全局单应性矩阵
- 全局单应性矩阵通过结构拼接层,得到粗拼接结果
- 再通过内容修正网络来消除鬼影,并对拼接结果的内容进行细化
还提出了一种生成用于网络训练的合成数据集的方法。
实验结果表明,与传统方法相比,该方法几乎可以100%消除重叠区域的伪影,而非重叠区域的轻微畸变是可以接受的。此外,该方法是view-free 和鲁棒的,尤其适用于特征点难以检测的场景。
简介
贡献:
- 提出了一种view-free图像拼接网络
- 为了最大限度地消除重影效应,我们设计了global correlation layer 和 structure-to-content gradually stitching module
- 我们为训练网络构建了一个合成数据集,该数据集显示了比以前方法更具挑战性的重叠部分
方法
Homography Estimation Stage
卷积神经网络可以作为一种优秀的特征提取器,但相对缺乏特征匹配的能力。
于是引入光流估计中常用的全局相关层来增强特征匹配部分
使用灰度图像
G
A
G_A
GA
G
B
G_B
GB作为输入,首先使用共享权重的特征提取器提取特征并对蓝色部分的feature map进行降维。这里每个小的蓝色块包括两个卷积层和一个maxpooling层。在对feature maps
F
A
l
,
F
B
l
∈
W
l
×
H
l
×
C
l
F^l_A, F^l_B ∈ W^l × H^l × C^l
FAl,FBl∈Wl×Hl×Cl进行L2归一化后,使用global correlation层学习两个feature map中的feature-wise global similarities
C
V
l
∈
W
l
×
H
l
×
(
W
l
×
H
l
)
CV^l ∈ W^l × H^l × (W^l × H^l)
CVl∈Wl×Hl×(Wl×Hl)。对于
F
A
l
F^l_A
FAl中的每个位置,我们需要计算其与
F
B
l
F^l_B
FBl中每个位置的相关性:
C
V
l
CV^l
CVl在0和1之间变化,越大意味着
F
A
l
,
F
B
l
F^l_A, F^l_B
FAl,FBl越相似
使用一个由三个卷积层和两个全连接层组成的回归网络来处理
C
V
l
CV^l
CVl并预测偏移量
f
f
f,该偏移量
f
f
f可以与单应性一一对应。最后,通过DLT算法将预测偏移量转换为张量中相应的单应性H
Structure stitching stage
对STL进行改进,提出了 Structure Stitching Layer (SSL)获取拼接图像的结构信息。如上图(左)所示。
将
I
B
I_B
IBwarpping,
I
A
I_A
IA保持。权重各0.5相加得到结构拼接结果structure stitching result。
在我们的整个拼接模型中,SSL作为桥梁将估计的H转换为可供内容修订网络使用的结构拼接结果。然而,在SSL中求解H逆和双线性插值 bilinear interpolation的过程可能会影响梯度在训练阶段的反向传播。为了避免这个问题,我们将单应性估计网络和其余部分分开训练,而不进行联合优化。这样,SSL作为一个结合空间变换和图像融合的模块,没有可训练的参数,无论训练网络的哪一部分,在训练过程中都不会对反向传播产生影响。
Content revision stage
此阶段消除重叠区域中的伪影,同时保证非重叠区域的内容不会明显失真。
我们设计了一个编码器-解码器网络来消除伪影并修改拼接结果的内容。如上图(右)所示,该模块首先通过8个卷积层从结构拼接结果中提取特征,每层滤波器的个数分别设置为64、64、128、128、256、256、512、512。随着卷积核数呈指数级增长,编码器将三通道RGB图像的structure stitching result分解为多通道特征表示,最后分解为特征基表示。为了减少计算量,在第2层、第4层和第6层卷积后,采用2 × 2的最大池化层对特征映射进行降维。
对于解码器,其结构可以看作是编码器的镜像,最后一层有三个通道。该解码器旨在将特征基重组为更复杂的特征表示,并将其重组为期望的拼接结果。此外,为了防止每一层的梯度消失问题和信息不平衡,我们在低阶和高阶特征之间添加了相同分辨率的跳跃连接。
损失函数
采用通过最小化预测偏移量
f
^
\hat{f}
f^与其 ground truth
f
f
f之间的L2距离来估计单应性
N为
f
^
\hat{f}
f^中参数数量
为了尽可能约束拼接图像的结构与标签的结构接近,在输出与标签的对应位置使用L1损耗:
其中,
I
^
\hat{I}
I^为拼接结果,
I
I
I为拼接label。
W、H、C分别定义拼接结果的宽度、高度和channel。
在Content revision stage 定义了基于VGG-19的内容损失,它鼓励输出和标签具有相似的特征表示。随着内容的丢失,容易导致图像特征急剧变化的伪影和图像接缝的不连续可以显著减少。设
ψ
j
(
⋅
)
ψ_j(⋅)
ψj(⋅)为VGG-19中第
j
j
j层卷积得到的特征映射,其内容损失定义为:
生成数据集
实验
从MSCOCO中选择5万张大于480 × 360的真实图像来生成训练集,同时提取1000张来生成测试集。网络输入(IA,IB)的大小为128 × 128,而标签的大小设置为304 × 304,以覆盖任意视图的所有拼接结果。考虑到图像拼接中图像输入的重叠率可能很小,我们设置最大平移参数t = 64,最大扰动参数p = 25,这使得我们的数据集的重叠率在20%到100%之间。
随后,我们按照两个步骤训练我们的网络。首先,我们只通过最小化50个epoch的LH来训练我们的单应性估计网络。采用Adam Optimizer[39],学习率在0.0002 ~ 0.00002之间变化。其次,我们网络的其余部分是通过同时最小化LS和LC来训练的,训练策略与上一步几乎相同。事实上,我们打算在第二步训练整个网络,期望在初步实验中在结构损失和内容损失的约束下进一步优化单应性估计器。然而,实验结果表明,当梯度从内容修订模块反向传播到单应性估计模块时,单应性估计的准确性会降低,因此我们将这两个部分分开训练。
说了那么多,就是在大基线情况下有更好的表现
消融实验