主要工作
1.提出了一个新的VGG风格的[17]网络用于单应性估计任务。我们展示了如何使用4点参数化[2]来获得一个良好的深度估计问题。
2.分享了使用现有实际图像数据集(如MS-COCO数据集)创建一个看似无限的(IA; IB; HAB)训练三元组数据集的方法。
3.提出了将单应性估计问题作为分类的另一种形式,它产生一个单应性分布,并可用于确定估计的单应性的置信度。
引言
传统的单应性估计由两部分组成:角点估计和单应性计算。
通过引入大量过完备的角点实现鲁棒性,通过RANSAC或平方损失函数实现鲁棒性,由于角点不如人造线性特征那样可靠,因此在特征检测步骤加入了线特征和更复杂的几何形状。本文实现了一个算法, 只返回图像之间的单应性,没有角点特征等。
要解决的问题
解决办法
知识来源
摘要
我们的前馈网络有10层,以两张堆叠的灰度图像作为输入,并产生8个自由度的同形图,可用于将像素从第一张图像映射到第二张图像。我们为HomographyNet提出了两种卷积神经网络结构:一种是直接估计实值同质参数的回归网络,另一种是产生量子化同质分布的分类网络。我们使用一个4点单应性参数化,将一个图像的四个角映射到第二个图像。我们的网络以端到端方式使用扭曲的MS-COCO图像进行训练。我们的方法不需要单独的局部特征检测和转换估计阶段。将我们的深度模型与基于ORB特征的传统单应性估计器进行了比较,并强调了HomographyNet优于传统技术的场景。我们还描述了由深度单应性估计提供支持的各种应用,从而展示了深度学习方法的灵活性。
网络结构
知识点
四点参数化表示单应性矩阵
单应性矩阵中,子矩阵[H11,H12;H21,H22]表示单应性中的旋转项,向量[H13,H23]表示平移偏移量。
将四个点的位移转化为单应性变换矩阵,可以使用DLT(直接线性变换),也可以使用OpenCV中的getPerspectiveTransform()函数。
OpenCV透视变换:GetPerspectiveTransform、warpPerspective函数的使用-CSDN博客
getPerspectiveTransform()函数返回的是3*3的单应性矩阵。
warpPerspective()同各个单应性矩阵将变换应用到一个图像上。
ORB(Oriented FAST and rotated BRIEF)描述符
特征检测之ORB算法-CSDN
相同特征点之间的联系就是描述符。描述符大致一致,就是相同的点。
-
特征提取
ORB首先使用FAST算法查找关键点。FAST(Features from Accelerated Segment Test)是一种快速的角点检测器,用于寻找图像中的关键点。用于特征提取但不涉及特征描述,FAST算法通过与圆周像素的比较结果判别特征点,计算速度快、可重复性高,适合实时视频的处理。接下来,ORB应用Harris角测度在这些关键点中找到前N个点。
ORB还使用金字塔生成多尺度特征,以增强尺度不变性。 -
特征描述
ORB使用了BRIEF算法来计算描述符。BRIEF(Binary Robust Independent Elementary Features)是一种二进制的描述子,计算和匹配速度都非常快。BRIEF描述子是一个128位的二进制向量,用于表示关键点周围的强度模式。
该向量只包含1和0,根据特定关键点和其周围像素区域而变化。这些特征向量可以用来识别图像中的对象。建立特征描述符的速度快,占用内存低,提高了特征匹配的效率,是一种高效的特征描述方法,对光照、模糊、和透视变换具有较强的鲁棒性。 -
旋转不变性改进
为了增强旋转不变性,ORB为每个关键点分配一个方向。这个方向取决于该关键点周围的灰度变化情况。
ORB还使用改进后的BRIEF版本(rBRIEF),称为Rotation-Aware BRIEF。它可以在朝着任何角度旋转的图像中检测到相同的关键点 -
应用
近年来,传统图像算法中的ORB(Oriented Fast and Rotated BRIEF)算法有一些令人兴奋的突破和新进展。让我们深入了解一下:
BEBLID(Boosted Efficient Binary Local Image Descriptor):这是OpenCV 4.5.1中引入的新描述符,对ORB进行了改进。它在提高图像匹配精度的同时,减少了执行时间。只需将ORB描述符替换为BEBLID,就可以将两个图像的匹配结果提高14%。这对于需要局部特征匹配的高级任务(如姿态估计和深度估计中的视差图计算)产生了很大影响.
旋转不变性和尺度不变性:ORB结合了FAST特征检测和BRIEF特征描述,并进行了许多修改以增强性能。它具有速度快、旋转不变性和一定尺度不变性的优点。由于没有专利限制,ORB广泛应用于替代SIFT和SURF等算法。
单应性估计的数据生成:
通过对大型数据集使用随机投影变换来生成大量的编辑训练样例。
步骤:
-
在较大的图像I上的位置p,裁剪出一个补丁Ip(避开边界,避免后续产生伪影)。
-
在补丁Ip的四个顶点的左边,在[-x,x]范围内进行随机扰动,然后对四对点的对应关系导出单应性矩阵HAB。
-
将单应性矩阵的逆矩阵HAB-1应用于大图像,产生图像I0,
-
从I0的p处裁剪出补丁I0p,将两个补丁输入到网络,将HAB的四点参数化作为groundtruth的训练标签。
单应性估计的数据生成
卷积神经网络模型
我们的网络使用3x3大小的卷积块,采用批归一化和ReLU激活函数,并且在架构上与牛津大学的VGG Net非常相似(见图1)。这两个网络接收一个大小为128x128x2的双通道灰度图像作为输入。换句话说,通过单应性关系相关的两个输入图像,按通道堆叠,并输入到网络中。我们使用了8个卷积层,在每两个卷积层之后都有一个最大池化层(2x2大小,步长为2)。这8个卷积层每层的滤波器数量如下:64,64,64,64,128,128,128,128。卷积层之后是两个全连接层,其中第一个全连接层有1024个单位。在最终的卷积层和第一个全连接层之后,应用了0.5概率的Dropout。我们的两个网络在最后一层之前共享相同的架构,而第一个网络产生实值输出,第二个网络产生离散数值(见图4)
回归网络和分类网络的模型图
由于 HomographyNets 需要一个固定尺寸的 128x128x2 输入,所以来自 Warped MS-COCO 14 测试集的图像对会在输入网络之前从 256x256x2 调整大小为 128x128x2。网络输出的四点参数化单应性矩阵会乘以二倍的因子以进行补偿。在评估 Classification HomographyNet 时,会选择具有最高置信度的角点位移。
实验结果如图5所示。我们报告了每种方法的平均角点误差(Mean Average Corner Error)。为了衡量这个指标,首先计算了ground truth角点位置和估计角点位置之间的L2距离。误差是对图像的四个角点进行平均,并在整个测试集上计算平均值。尽管回归网络表现最好,但分类网络可以生成置信度,并以有意义的方式对结果进行视觉调试。在某些应用中,这种确定性度量可能至关重要。
单应性估计比较
我们在图7中可视化了单应性估计结果。第一列中的蓝色正方形通过从第三节中描述的过程生成的随机单应性映射为第二列中的蓝色四边形。绿色四边形是估计得到的单应性映射。蓝色和绿色四边形越接近对齐,表示结果越好。红色线显示了整个图像区域上 ORB 特征的最佳匹配。第三列和第四列展示了类似的可视化效果,只是使用了深度单应性估计器。
传统单应性估计vs深度单应性估计
应用
通过将单应性估计问题作为机器学习问题进行建模,可以构建特定应用的单应性估计引擎。例如,一个机器人通过单应性估计在室内工厂地板上进行平面SLAM导航,可以仅使用从机器人图像传感器捕获的室内工厂图像训练。虽然可以优化诸如ORB等特征检测器以适应特定环境,但这并不直接。使用ConvNet可以以类似的方式解决与环境和传感器相关的噪声、运动模糊和遮挡等问题,这些问题可能会限制单应性估计算法的能力。其他经典的计算机视觉任务,如图像拼接(如[19]中所示)和无标记相机跟踪系统等,也可以采用类似的方法处理。
结论
在这篇论文中,我们探讨了一个最基本的计算机视觉估计任务——单应性估计是否可以作为一个学习问题来解决。我们提出了两种能够在这个任务上表现良好的卷积神经网络架构。我们的端到端训练流程包含了两个额外的见解:使用4个角点参数化单应性,使参数化坐标在相同的尺度上操作,并使用大规模真实图像数据集合,通过合成创建一个看似无限大小的单应性估计训练集。