摘要
提出了一种深度卷积神经网络,用于估计一对图像之间的相对单应性。
我们的前馈网络有10层,以两个叠加的灰度图像作为输入,并产生一个8自由度单应,可用于将像素从第一个图像映射到第二个图像。我们提出了HomographyNet的两种卷积神经网络结构:一种是直接估计实值单应性参数的回归网络,另一种是产生量化单应性分布的分类网络。我们使用4点单应参数化,将一幅图像的四个角映射到第二幅图像。我们的网络使用扭曲的MS-COCO图像进行端到端的训练。我们的方法不需要单独的局部特征检测和变换估计阶段。我们将深度模型与基于ORB特征的传统单应估计进行了比较,并重点介绍了单应网优于传统技术的情况。我们还描述了由深度单应性估计支持的各种应用程序,从而展示了深度学习方法的灵活性。
一、引言
稀疏2D特征点是来自运动和SLAM技术的大多数现代结构的基础[9]。这些稀疏的2D特征通常称为角点,在所有几何计算机视觉任务中,必须平衡角点检测方法中的误差和几何估计误差。即使是最简单的几何方法,如估计两幅图像之间的单应性,也依赖于容易出错的角点检测方法。
从一对图像中估计二维单应(或投影变换)是计算机视觉中的一项基本任务。
单形图是单目SLAM系统的重要组成部分,适用于以下场景:•仅旋转运动•平面场景•物体离观察者很远的场景。众所周知,与围绕相机中心旋转的两幅图像相关的变换是单形图,因此单形图对于创建全景图至关重要也就不足为奇了[3]。为了处理平面和大部分平面场景,流行的SLAM算法ORBSLAM[14]结合了单应性估计和基本矩阵估计。基于平面结构和单形图的增强现实应用已经得到了很好的研究[16]。使用平面结构的摄像机校准技术[20]也依赖于单应矩阵。
传统的单应性估计流程由两个阶段组成:角点估计和鲁棒单应性估算。鲁棒性通过返回一组大而过完整的点引入角点检测阶段,而单应性估计步骤的鲁棒性表现为大量使用RANSAC或平方损失函数的鲁棒化。由于角点不如人造线性结构可靠,研究界已投入大量精力,在特征检测步骤中添加线条特征[18]和更复杂的几何特征[8]。我们真正想要的是一个单一的健壮算法,给定一对图像,只需返回与这对图像相关的单应性。该算法是否可以学习自己的一组基元,而不是手工设计角点特征、线特征等?我们想更进一步,将转换估计步骤添加为深度学习管道的最后一部分,从而使我们能够以端到端的方式学习整个单应性估计管道。
最近对密集或直接无特征SLAM算法(如LSD-SLAM[6])的研究表明,在几何计算机视觉任务中使用完整图像是有希望的。同时,深度卷积网络正在图像分类、语义分割和人体姿势估计等语义任务中建立最先进的基准。此外,最近的工作,如FlowNet[7]、Deep Semantic Matching[1]和Eigen等人的Multi-Scale Deep Network[5],为密集几何计算机视觉任务(如光流和深度估计)提供了有希望的结果。甚至像视觉里程计这样的机器人任务也在使用卷积神经网络进行处理[4]。
在本文中,我们证明了整个单应性估计问题可以通过深度卷积神经网络来解决(见图1)。我们的贡献如下:我们为单应性估计任务提出了一种新的VGG型[17]网络。我们展示了如何使用4点参数化[2]来获得性能良好的深度估计问题。
由于深度网络需要从头开始训练大量数据,我们分享了从现有的真实图像数据集(如MS-COCO数据集)创建看似无限的(IA、IB、HAB)训练三元组数据集的方法。
我们提出了单应性估计问题的另一个公式作为分类,它在单应性上产生一个分布,并可用于确定估计单应性的置信度。
图1:深度图像单应性估计。HomographyNet是一种深度卷积神经网络,它直接生成与两幅图像相关的单应性。我们的方法需要单独的角点检测和单应性估计步骤,并且所有参数都是使用标记图像的大数据集以端到端的方式训练的
二、四点同态参数化
参数化单应矩阵的最简单方法是使用3x3矩阵和固定比例。单应性将左图像中的像素[u,v]映射到右图像中的象素[u0,v0],并按比例定义(见方程1):
(
u
′
v
′
1
)
∼
(
H
11
H
12
H
13
H
21
H
22
H
23
H
31
H
32
H
33
)
(
u
v
1
)
\left(\begin{array}{l} u^{\prime} \\ v^{\prime} \\ 1 \end{array}\right) \sim\left(\begin{array}{lll} H_{11} & H_{12} & H_{13} \\ H_{21} & H_{22} & H_{23} \\ H_{31} & H_{32} & H_{33} \end{array}\right)\left(\begin{array}{l} u \\ v \\ 1 \end{array}\right)
u′v′1
∼
H11H21H31H12H22H32H13H23H33
uv1
H
4
p
o
i
n
t
=
(
Δ
u
1
Δ
v
1
Δ
u
2
Δ
v
2
Δ
u
3
Δ
v
3
Δ
u
4
Δ
v
4
)
H_{4 p o i n t}=\left(\begin{array}{cc} \Delta u_{1} & \Delta v_{1} \\ \Delta u_{2} & \Delta v_{2} \\ \Delta u_{3} & \Delta v_{3} \\ \Delta u_{4} & \Delta v_{4} \end{array}\right)
H4point=
Δu1Δu2Δu3Δu4Δv1Δv2Δv3Δv4
等效于单应矩阵公式,四点参数化使用八个数字。一旦知道四个角的位移,就可以很容易地将H4点转换为Hmatrix。这可以通过多种方式实现,例如,可以使用规范化的直接线性变换(DLT)算法[9],或OpenCV中的函数getPerspectiveTransform()
三、 同态估计的数据生成
训练过程,如图三所示:
为了使我们的方法对运动模糊更健壮,我们可以将此类模糊应用于训练集中的图像。
如果我们希望该方法对遮挡具有鲁棒性,我们可以将随机遮挡形状插入到训练图像中。我们尝试在训练图像中绘制随机遮挡矩形,作为模拟真实遮挡的简单机制。
在我们的实验中,我们使用了裁剪的MS-COCO[13]图像,尽管任何足够大的数据集都可以用于训练。
四、网络模型
图4:分类homograhyNet与回归homographyNet。我们的类VGG网络有8个卷积层和两个完全连接层。分类网络的最后一层是8x21,回归网络是8x1。8x21输出可以解释为四个21x21角分布。
五、实验
结果如图5所示。我们报告了每种方法的平均角误差。为了测量此度量,首先计算地面真实角位置和估计角位置之间的L2距离。在图像的四个角上平均误差,并在整个测试集上计算平均值。虽然回归网络的性能最好,但分类网络可以产生置信度,因此是可视化调试结果的一种有意义的方法。在某些应用中,具有这种确定性可能是至关重要的。
图5
我们在图7中可视化了单应性估计。第1列中的蓝色方块通过第三节中描述的过程生成的随机单应性映射到第2列中的一个蓝色四边形。绿色四边形是估计的单应性。蓝色和绿色四边形对齐得越近越好。红线表示ORB特征在图像补丁中的最匹配得分。第3列和第4列显示了类似的可视化效果,但使用了深度单应性估计。
图7.在12个示例中,蓝色表示地面真实区域。左栏显示了基于ORB的单应性估计的输出,以红色显示匹配特征,以绿色显示裁剪的结果映射。右栏以绿色显示HomographyNet(回归头)的输出。第1-2行:ORB特征要么集中在小区域,要么检测不到足够的特征,相对于HomographyNet表现不佳,而HomographityNet不受这些现象的影响。第三行:这两种方法都给出了相当好的单应性估计。第4行:第3行的图像对中添加了少量高斯噪声,恶化了传统方法产生的结果,而我们的方法不受失真的影响。第5-6行:传统方法提取分布良好的ORB特征,也优于deep方法。