深度图像单应性估计
摘要
我们提出了一个深度卷积神经网络来估计一对图像之间的单应性矩阵。我们的前馈网络有10层,将两个堆叠的灰度图像作为输入,并生成8个自由度单应矩阵,可用于将像素从第一个图像映射到第二个图像。我们为HomographyNet提出了两种卷积神经网络架构:一种直接估计实值单应性参数的回归网络,以及产生量化单应性分布的分类网络。我们使用4点单应性参数化将四个角点从一个图像映射到第二个图像。我们的网络以端到端的方式使用变形的MS-COCO图像进行训练。我们的方法不需要单独的局部特征检测和变换估计阶段。我们的深层模型与基于ORB特征的传统单应性估计器相比较,我们强调了HomographyNet优于传统技术。我们还描述了深度单应性估计的各种应用,从而展现了深度学习方法的灵活性。
一、简介
稀疏的二维特征点是运动和SLAM技术中大多数现代结构的基础[9]。这些稀疏的二维特征通常称为角点,并且在所有几何计算机视觉任务中,必须平衡角点检测方法中的误差与几何估计误差。即使是最简单的几何方法,如估计两幅图像之间的单应性,也依赖于容易出错的角点检测方法。
从一对图像中估计2D单应性(或投影变换)是计算机视觉中的一项基本任务。单应性是单眼SLAM系统在场景中的重要组成部分:
•仅旋转运动
•平面场景
•物体离观察者很远的场景
众所周知,围绕相机中心进行旋转的两个图像之间的转换是单应性的,单应性对于创建全景图是必不可少的[3]。为了处理平面和大多平面的场景,流行的SLAM算法ORB-SLAM [14]使用了单应性估计和基本矩阵估计的组合。基于平面结构和单应性的增强现实应用已得到充分研究[16]。使用平面结构的摄像机标定技术[20]也依赖于单应性。
传统的单应性估计流水线由两个阶段组成:角点估计和稳健单应性估计。通过返回大量且超完整的点集来将鲁棒性引入到角点检测阶段,而在单应性估计步骤中的鲁棒性表现为重度使用RANSAC或者平方损失函数的鲁棒性。由于角点不如人造线形结构可靠,因此研究界已投入了大量精力将线特征[18]和更复杂的几何图形[8]添加到特征检测步骤中。我们真正想要的是一个单一的强大算法,给定一对图像,只需返回与该对相关的单应性。算法可以学习它自己的一组基元,而不是手动设计角点特征,线特征等等。我们希望更进一步,并将变换估计步骤添加为深度学习流水线的最后一部分,从而使我们能够以端到端的方式学习整个单应性估计流水线。
目前,在密集或直接无特征SLAM算法(如LSD-SLAM [6])中的研究表明,将完整图像用于几何计算机视觉任务是有前途的。同时,深度卷积网络正在设置诸如图像分类,语义分割和人体姿态估计等语义任务的最新基准。另外,FlowNet [7],深度语意匹配 [1]和Eigen等人的多尺度深度网络[5]等最近的工作为密集的几何计算机视觉任务(如光流和深度估计)提供了有希望的结果。即使像视觉测量这样的机器人任务也正在用卷积神经网络来解决[4]。
在本文中,我们表明整个单应矩阵估计问题可以通过深度卷积神经网络来解决(见图1)。我们的贡献如下:我们为单应性估计任务提供了一个新的VGG样式[17]网络。我们展示了如何使用4点参数化[2]来获得一个良好行为的深度估计问题。由于深度网络需要大量数据从头开始训练,因此我们分享了我们创建看似无限数据集()从现有的真实图像数据集(如MS-COCO数据集)中训练三联体。我们提出了单应性估计问题的另一个表达式作为分类,它产生了单应性的分布,并且可以用来确定估计的单应性的置信度。
二、4点-单应性矩阵参数
参数化单应性的最简单方法是使用3x3矩阵和固定比例。单应性将左图像中的像素,映射为右图像中的像素,并按比例定
义(见公式1)。
然而,如果我们将单应性的8个(或9个)参数展开成单个向量,我们很快就会意识到我们正在混合旋转和平移项。例如,子矩阵表示单应性中的旋转项,而矢量是平移偏移量。将旋转和平移术语作为优化问题的一部分进行平衡是很困难的。
我们发现,一种基于单一位置变量的替代参数化,即角点位置更适合我们的深度单应性估计任务,4点参数化已被用于传统的单应性估计方法[2],而我们在现代的单应性估计问题的深层表现中使用它(见图2)。 令为第一个角点的偏移量,4点参数化表示如下的单应性 。
等同于单应矩阵制定。4点参数化使用八个数字。一旦知道了四个角点的位移,就可以轻松将转换为。这可以通过多种方式来完成,例如可以使用规范化的直接线性变换(DLT)算法[9],或OpenCV中的函数getPerspectiveTransform()。
三、数据生成用于单应性估计
从头开始训练深度卷积网络需要大量的数据。为了满足这个要求,我们通过对自然图像的大数据集应用随机投影变换生成几乎无限数量的标记训练样例。该过程如图3所示并在下面描述。
为了生成单个训练样例,我们首先从位置处的较大图像中随机剪裁出一个正方形块(我们避免在数据生成管道中稍后阻止选取边界的伪像)。这个随机块叫做。然后,Patch A的四个角被随机扰动[-ρ,ρ]范围内的值。这四个对应关系定义了。然后,将该单应性(的逆)应用于大图像以产生图像。第二个块从位置处的中裁剪出来。然后两个灰度块和被通道叠加以创建,再直接送到我们的ConvNet中的一张双通道图像。然后将的4点参数化用作相关的真值训练标签。
管理训练图像生成管道使我们可以完全控制要建模的视觉效果种类。例如,为了使我们的方法对运动模糊更具鲁棒性,我们可以将这些模糊应用于训练集中的图像。如果我们希望该方法对遮挡具有鲁棒性,我们可以将随机遮挡形状插入到训练图像中。我们尝试将绘画中的随机遮挡矩形放入我们的训练图像中,作为模拟真实遮挡的简单机制。
四、ConvNet模型
我们的网络使用带有BatchNorm [10]和ReLUs的3x3卷积模块,并且在架构上类似于Oxfords 的VGG Net[17](见图1)。两个网络都采用输入大小为128x128x2的双通道灰度图像。换句话说,通过单应相关的两个输入图像以叠加通道的方式并送到网络中。1)我们使用8个卷积层和最大池层(2x2,步幅);2)每两次卷积后,8个卷积层每层具有以下数量的滤波器:64,64,64,64,128,128,128,128。卷积层之后是两个完全连接的层。第一个完全连接的层有1024个单元。在最后的卷积层和第一个完全连接层之后应用概率为0.5进行剔除。我们的两个网络共享相同的架构层,第一个网络产生实值输出,第二个网络产生离散量(见图4)。
回归网络直接生成8个实数值,并将损失用作训练期间的最后一层。这种方法的优点是简单; 然而,对于预测没有产生任何种类的置信值,这种直接方法在某些应用中可能是禁止的。
分类网络使用量化方案,在最后一层采用softmax操作,我们在训练期间使用交叉熵损失函数。量化意味着存在一些固有的量化误差,网络能够为该方法产生的每个角点产生置信度。我们选择对8个输出维度中的每一个使用21个量化库,这导致最终的图层有168个输出神经元。图6是我们的方法产生的角点置信度的可视化。注意:所有角点的置信度是不相等。
四、实验
我们在单个Titan X GPU上使用随机梯度下降(SGD)以0.9动量训练我们的两个网络约8小时。我们使用0.005的基础学习率,并在每30,000次迭代后将学习率降低10倍。我们使用一种广受欢迎的开源深度学习软件包Caffe [11]进行所有实验。
为了创建训练数据,我们使用MS-COCO训练集。所有图像都调整为320x240并转换为灰度。然后,我们使用第III部分中描述的方法生成500,000对大小为128x128的单应图像块。我们选择ρ=32,这意味着128x128灰度图像的每个角点可以被图像边缘大小的最大四分之一扰动。我们避免较大的随机扰动来避免极端变换。我们没有使用任何形式的预训练;网络的权重被初始化为随机值并从头开始训练。我们使用MS-COCO验证集来监视过度配合,其中我们发现很少。
据我们所知,没有大的公开可用的单应性估计测试集,因此我们在我们自己的变形MS-COCO 14测试集上评估我们的单应性估计方法。为了创建这个测试集,我们从测试集中随机选择了5000个图像,并将每个图像的大小调整为640x480,然后生成一对大小为256x256的图像块和相应的单应矩阵,使用方法如图3所示,ρ= 64。我们将HomographyNet的分类和回归变量与两条基线进行比较。第一个基线是经典ORB [15]描述符+ RANSAC+ getPerspectiveTransform()OpenCV 的Homography计算。我们在传统的单应性估计器中使用默认的OpenCV参数。这估计了多个尺度的ORB特征,并使用前25个得分匹配作为RANSAC估计量的输入。在计算ORB特征太少的情况下,ORB + RANSAC方法输出一个标识估计。在ORB+ RANSAC的估计过于极端的情况下,4点单应性估计值被限制在[-64,64]。第二条基线为测试集中的每一对图像使用3x3单位矩阵。
由于HomographyNets需要固定大小的128x128x2输入,因此在通过网络之前,来自变形MS-COCO 14测试集的图像对的大小从256x256x2调整为128x128x2。 然后将网络的4点参数化单应输出乘以因子2来解释这一点。评估分类HomographyNet时,选择置信度最高的角点位移。
结果报告在图5中。我们报告每种方法的平均角点误差。为了测量这个度量,首先计算实际角点位置和估计角点位置之间的距离。 误差在图像的四个角点取平均值,并在整个测试集上计算平均值。 尽管回归网络表现最好,但分类网络可以产生置信度,因此也是一种有意义的方式来对结果进行可视化调试。在某些应用中,具有这种确定性的措施可能至关重要。
我们在图7中对单应性估计进行了可视化处理。第1列中的蓝色方块通过第III节中描述的过程生成的随机单应映射到第2列中的蓝色四边形。 绿色四边形是估计的单应性。 蓝色和绿色四边形越接近,越好。红线显示图像块中ORB功能的最高得分匹配。DeepHomography Estimator的一个类似可视化显示在第3列和第4列中。
五、应用
我们的Deep Homography Estimation系统支持各种有趣的应用。 首先,我们的系统速度很快。它在NVIDIA Titan X GPU上运行速度超过300fps,批量大小为1(即实时推理模式),这使得大量应用程序无法用于较慢的系统。最近出现的深度网络专用嵌入式硬件将使许多嵌入式系统或平台上的应用程序具有有限的计算能力,而这些嵌入式系统或平台无法承受昂贵而耗电的桌面GPU。这些嵌入式系统能够实时运行更大的网络,如AlexNet [12],并且运行相对轻量级的HomographyNets应该没有问题。
其次,通过将单应性估计作为机器学习问题,可以构建应用特定的单应性估计引擎。例如,通过单应性估算使用平面SLAM导航室内工厂车间的机器人可以仅利用从室内工厂的机器人图像传感器捕获的图像来训练。 尽管可以优化诸如ORB的特征检测器以在特定环境中工作,但这并不简单。环境和传感器特定的噪声,运动模糊和可能限制单应性能的遮挡估计算法可以使用ConvNet以类似的方式处理。其他经典的计算机视觉任务,如图像镶嵌(如[19])和无标记摄像机跟踪系统(增强现实)(如[16])也可以受益于HomographyNet训练从目标系统的传感器和环境创建的图像对。
六、总结
在本文中,我们解答了最重要的计算机视觉估计任务之一,即单应性估计是否可以作为学习问题。我们介绍了两种卷积神经网络体系结构,能够很好地完成这项任务。端到端训练管道包含两个其他的见解:使用4个角点参数化单应性,使参数化坐标以相同比例操作,并使用大量的真实图像集合,以综合方式创建看起来无限大小的训练集为单对估计。我们希望通过学习范式解决视觉中更多的几何问题。