1 Introduction
图像匹配的目的是从两个或多个图像中识别和对应于相同或相似的结构/内容
由于图像间可能存在着遮挡问题,现有的算法难以提取足够的匹配对来进行摄像机姿态估计。
我们提出了一种新的图像匹配方法Occ2Net,该方法不仅匹配可见点对,还匹配遮挡点和可见点。
我们使用一个从粗到细的结构,粗阶段采用遮挡感知(OA)模块获取补丁之间的匹配,采用OE模块获取精细匹配点。
实验数据集:真实世界ScanNet和模拟场景数据集TartanAir
2 Related work
(1)传统的关键点检测与特征描述方法:特征检测、特征描述(SIFT[22]、SURF [3]、ORB[36]、DISK [43],它们在照明、曝光或相机运动的变化下是不变的)、特征匹配(欧氏距离[8]、汉明距离[30]和余弦距离[38])
传统方法在捕获语义信息和处理大型视点变化方面的能力有限
(2)基于神经网络的科学系的检测与匹配方法:LIFT [48]、MagicPoint [10]、SuperPoint [11]、SuperGlue [37]、D2-Net [13]
这些方法从大量的数据中学习到更多的语义特征,并取得了令人印象深刻的结果。然而,它们仍然依赖于关键点检测作为中间步骤,这可能会引入错误或错过匹配。
(3)端对端无检测器图像匹配:NCNet [35]、COTR [16]、LoFTR [40]、QuadTree LoFTR [41]、ASpanFormer [6]
无检测器方法[33,20]跳过特征检测器阶段,直接匹配密集像素。这些方法可以产生更准确的匹配,但在对于诸如SLAM等实际应用仍然不够鲁棒,特别是当部分物体在相应的图像中被遮挡时。
(4)遮挡感知算法(Occlusion-aware algorithms):[27]、[2]、[17]、[1]
遮挡感知算法嵌入了绘制任务和模态感知任务,与我们的遮挡感知图像匹配有一定的相关性
本文将被遮挡感知算法与图像匹配算法相结合,通过三维占用率估计来推断被遮挡点的位置,从而实现图像的鲁棒性匹配。
3 Methods
主要包括三个模块,feature extraction、OA module、OE module
3.1 feature extraction
采用金字塔结构提取多尺度特征,并每层添加位置编码,然后输出1/8尺寸的粗级特征与1/2尺寸的细级特征以及特征张量、
用于三维占用率估计
金字塔结构:识别由于观察距离不同导致不同尺度的同一物体,扩大接受域引入更多周围信息
多尺度位置编码:丰富特征位置信息,以便从上述相似的周围区域正确地推断出被遮挡点的偏移量。
3.2 OA Module
主要由注意力模块和旋转对齐模块
注意力模块:自我注意和交叉注意,加深对整个图像的结构信息的理解
旋转对齐模块:它的目标是增加两个补丁的特征相似性,从而更好地适应不同视点之间的不同旋转,这使可见的和被遮挡的补丁更容易匹配。
我们开发了一种局部特征旋转算法。我们将图像分为不同的patch,将每个patch进行局部旋转,以增强两幅图像之间的相似性。由于旋转是三维的,所以在2D平面内每个像素旋转的角度一般都是不同的。我们近似认为,patch之间投影到二维的平面旋转角度是不同的,而每个patch之内像素间的旋转角度是相同的。
由于我们不知道适当的旋转角度,我们使用gumbel softmax来选择最佳匹配的旋转角。
一个特征像素应该近似于周围像素的平均值:
经过旋转之后的特征,应该仍满足这个特性。在此处,我们给定个er'wei空间旋转角,可以定义旋转后特征为:
其实就是这么算的:
但是我们不知道旋转角真值,所以我们一般使用0°和30°,并用gumble softmax找出最合适的角度。
3.3 OE Module
得到粗略的匹配之后,在OE Module进行精匹配
对于可见点,使用LoFTR模块计算两幅图像中特征点;对于被遮挡点,根据周围信息和局部3D占用率来推断匹配点位置
首先我们设计三维占用率估计模块,对每一张图,我们通过特征提取得到两个张量、
,并计算外积得到3D占用。
然后我们将得到的O与1/2尺寸的图像串联,然后于粗匹配图像结合进行Crop操作保留有效信息,得到1/2尺寸的特征图,再通过注意力模块将估计的3D占用和精细特征相结合。
最后,根据两幅图像的局部特征和三维占用率,我们可以推断出每个匹配点的具体位置基于地面真实的深度和摄像机的姿态,我们计算地面真实的三维占用率作为监督。
为什么使用从粗到细的结构和为什么三维占用率估计仅用于精细结构有两个原因:
1、从粗到细的结构已被证明对可见点之间的匹配是有效的。
2、单眼模型的三维占用率估计不准确,而模糊点较困难。采用从粗到细的结构,并将精细特征与三维占用率相结合,使得可以使用从3D占用估计出的3D信息来推断遮挡点的位置。因为先进行了粗匹配,推断的误差可以控制在一定范围内。
如上图所示,我们试图匹配左图和右图中的绿色框。匹配点的特征应与3D占用一致。我们可以从3D占用推断出,图中的箭头指示了一个精细匹配对。
3.4 Matching and Loss
粗匹配损失:可见-可见、可见-遮挡、遮挡-可见均可视为有效匹配
遮挡判定:基于地面真实摄像机的姿态和深度,我们计算了左侧图像斑块的重投影。当斑块的投影深度大于右侧图像对应深度的大幅度时,我们将斑块视为被右侧图像中其前面的物体所遮挡
遮挡率=遮挡点/图像像素总数
与LoFTR一样,仍是用dual-softmax计算匹配概率:
考虑到局部特征旋转,左右图像都旋转了0◦和θ。因此,我们得到了三个置信矩阵:
我们将这三种情况下的损失总和最小化:
3D占用损失:
为了从地面真实深度和相机姿态生成地面真实三维占用,我们通过结合两幅图像的深度和相机姿态来创建地面真实点云。
a、通过将点云转换为体素表示,将三维空间划分为小立方单元,并根据每个单元赋值,将其转换为体素表示。
b、通过使用相机姿态作为世界坐标系原点,并将深度分辨率设置为64体素,从而将体素表示投影到当前图像上。
精匹配损失:目标是优化LoFTR [40]提出的加权损失函数:
总损失:
最终损失函数包括复合损失、精细损失和三维占用率损失:
4 Experiments
我们的方法严重依赖于地面真实深度和占用率,所以不适合元数据(意思是要比较准确的深度)
4.1 Datasets
ScanNet:采样230M图像对进行训练,重叠分数在0.4到0.8之间。图像对的重叠分数是通过使用地面真实深度和姿态将一幅图像重新投影到另一幅图像,并计算重投影后未越界的像素的比例。我们在1500个图像对的测试集上评估了我们的方法。所有的图像和深度地图都被调整到640×480。
TartanAir:虚拟数据集,该数据集包含室内和室外的场景,涵盖了大量的场景和运动模式。我们使用与Droid-SLAM [42]相同的测试分割来构建测试集,它包含32个场景。在每个场景中,我们随机选择50对满足0.4到0.8和遮挡比大于0.3的图像对,得到1600对图像对的测试集。
4.2 Pose Estimation
我们采用和SuperGlue相同的测试方法,下表中展示了姿态错误AUC在阈值为5度, 10度, 20度下的百分比。这里的姿态错误被定义为旋转中的角度误差和平移中的位移误差的最大值。为了恢复相机的姿态,我们使用RANSAC方法[8]解出预测匹配中的本质矩阵。
Occ2Net-s是Occ2Net-l的一个缩略版本,它没有明确区分可见和遮挡的点,而且所有匹配都共享权重和张量,参数比QuadTree LoFTR少。
共享权重对最终性能有一定的影响。准确估计有遮挡的匹配点的确切位置是困难的,所以5度的提升效果并不明显。然而,没有共享权重的模型相当于将有遮挡的匹配点和可见的匹配点加在一起。这两种匹配不会互相影响,而且精度的提升是明显的。TartanAir测试集包含了更多遮挡比例大于40%的图像对,所以匹配效果得到了更大的提升。
4.3 The effect of occlusion on pose estimation
定量分析:我们计算了ScanNet测试集中所有图像对的遮挡比。遮挡比定义为在一幅图像中可见但在另一幅图像中被遮挡的像素的比率。我们根据遮挡比对测试集进行排序,并绘制出累积平均姿态误差和图像累积量的函数,显示出平均估计误差与遮挡比的关系。如图6所示,我们的算法在低或高遮挡比的图像对上始终具有较低的姿态误差,而其他算法在具有挑战性的情况下更容易失败。
定性分析:
绿线和黄线分别是四树LoFTR和Occ2Net的正确匹配,而红线是假匹配(误差大于10像素)。我们用紫色的盒子突出显示一些匹配对。蓝色的遮罩标注了正确的匹配区域。
4.4 Ablation Study
以上表格各实验含义:1)基准线:QuadTree LoFTR。2)基准线+遮挡损失:仅添加可见-遮挡匹配以进行监督;3)Occ2Net -遮挡损失:使用Occ2Net,而不进行遮挡监督;4)Occ2网络(仅可见-可见):仅在可见点之间的匹配;5)基准线+特征提取:使用我们的特征提取骨干网络,取代LoFTR特征提取骨干网络;6)实验4+遮挡损失:使用我们的特征提取骨干网络并添加可见-遮挡匹配以进行监督;7)基准线+OA模块:添加旋转对齐方法;8)Occ2Net -占用:Occ2Net不进行3D占用估计;9)Occ2Net:我们的方法。
5 结论
我们引入了一种匹配图像的方法,它会考虑到被其他物体遮挡的点。我们设计了一个网络结构,Occ2网络,它可以在一定程度上意识到遮挡点的存在。Occ2Net利用特征提取获得多尺度的全局和位置特征,帮助猜测遮挡信息。OA模块使用了注意力和旋转对齐,这对于在以后的从粗到细的过程中获得更正确的匹配对很有用。OE模块使用三维占用率估计来结合精细特征进行精细匹配。实验表明,该方法实现了这一目标,大大提高了姿态估计的精度。
我们希望我们的工作为未来的研究人员探索更好的图像匹配遮挡场景铺平了道路。我们的网络虽然可以识别被遮挡的点并将其与可见点进行匹配,但很难找出这些隐藏点的确切位置。尽管我们首先提出了由可见点和隐藏点组成的射线进行图像匹配,但由于数据的限制,我们将射线退化为两个点。在未来,应该考虑更复杂的情况。