1. 引言
双视图对应学习旨在在两幅图像之间建立可靠的对应/匹配,并准确地恢复相机姿势,这是计算机视觉中的一项基本任务,在许多应用中起着重要作用,如同Structure from Motion (SfM) [1]、simultaneous localization and mapping [2]、image fusion [3]。由于场景图片存在结构变化、纹理变化、光照变化、遮挡和模糊,初始对应集通常包含大量异常值,严重影响下游任务的性能。综上所述,去除初始对应集中的异常值是必要的,近期的许多研究的工作倾向于去除初始对应集中的错误匹配以提升下游任务的精确度。
本文提出了一个全新的剪枝叶网络模型CDNet,能更好地识别对应点之间的关系且去除外点影响,准确恢复相机姿态。
2. 相关工作
传统方法:RANSAC [4]及其基于迭代采样策略的变体的基本思想是通过随机采样一组数据来估计模型参数,并根据这些参数评估数据与模型之间的拟合程度。具体而言,在一次的迭代过程中,这类算法从数据集中随机选择最小样本集来估计模型参数,再根据随机采样得到的样本集,估计模型的参数,使用估计的模型参数,计算每个数据点到模型的拟合误差,最后统计内点的数量,作为评估模型好坏的指标。对RANSAC的优化有很多,例如GroupSAC [5]、USAC [6]、PROSAC [7]、EVSAC [8]。虽然这些变体有着优于RANSAC的性能,但是还是没有解决传统方法在异常值率高的对应集上性能会严重下降的问题。
基于学习的方法:PointCN [9]创新性地提出了一种使用多层感知机(MLP)来处理对应的无序性,将离群点去除和相机姿态估计问题转化为了本质矩阵的回归和二分类问题,同时将全局上下文嵌入每对对应之中。在之后提出的OANet [10]则是在模型提取上下文信息的性能上做出了优化,通过DiffPool and DiffUnpool layers以可学习的方式捕获无序稀疏对应的局部上下文。ACNet [9]则采用注意机制增强网络性能。伴随着图神经网络(GNN)的进一步研究发展,CLNet [11]提出了一个局部到全局的学习网络,通过逐步剪枝的方法去除离群值。MS2DG-Net [11]构建多稀疏语义,通过融合多尺度信息更好地获取上下文。之后的方向中,部分研究注意到了可以在考虑对应的空间信息时加入场景的视觉信息。因此,LMCNet [12]利用单个图像的特征点描述符来增强对应关系的表示能力。
上述方法虽然提高了通信剪枝性能,但这些方法只考虑对应的空间信息作为输入,严重阻碍了深度信息的获取,同时也损害了整体网络性能。在该方向的进一步探索中,有一些研究使用单幅图像的特征点描述符来增强网络输入的表示能力。在本文中,我们基于CLNet [11]提出了更进一步的设计,并提出以下问题:我们是否可以深度挖掘对应点之间的空间线索?也就是说,如果有序向量矩阵可以更好地帮助模型感知内点比,将有助于网络区分一些模糊对应。
3. 方法
Figure 1. CDNet structure
图1. CDNet结构
特征匹配的任务目标在是从对应集中识别正确对应、去除错误对应。具体来说,在给定的双视图
和没对双试图对应的场景文本
,使用特征检测器(例如SIFT [13]和Problem Formulation [14])从双视图
中提取特征点和描述符,然后根据描述符的最邻近匹配策略,得到初始对应集
:
(1)
其中
是第i个对应点;
和
是给定两幅图像经过相机本征归一化后的特征点坐标。
在我们的任务中,深度对应点信息从原始场景信息中获取,深度对应点信息获取方式如下:
(2)
其中
代表对应点向量转化器,执行深度探索一个空间结构
得到一个有序向量场
。
在我们的任务中,对应修剪通常被表述为基本矩阵回归问题和内外点离群分类问题[9]。本文继CLNet [11]之后,迭代使用GCL-Pruner进行对应剪枝,得到最终概率集
,表示每个候选点作为内线的概率。上述过程可表述如下:
(3)
(4)
其中
表示最终候选项的权重;
表示最终候选集;
表示我们提出的CDNnet;其中
表示网络参数。
然后,将最终候选集
和概率集
作为输入,采用加权八点算法对本质矩阵进行回归。该过程如下:
(5)
式中
表示加权八点算法数,矩阵
表示预测的本质矩阵。
在接下来的内容中,将介绍CDNet框架中的对应点向量转化器与全局局部上下文剪除枝模块。CDNet总体模型如图1所示。
3.1. 对应点向量转化器
在我们的任务中,我们设计了对应点向量转化器(SExtractor),矢量变换器通过将无序矢量转换为有序运动,在表达对应关系之间的空间位置关系方面发挥着至关重要的作用。来自
的每对对应
,其中
和
被变换为运动向量
,其中
和
表示两个对应关键点的坐标,
表示位移。具体来说,我们初始化高维空间中的运动矢量和有序运动矢量的坐标。然后,对无序运动矢量进行归一化。首先,我们生成一个网格投影,在本文中设定的网格大小为16 × 16,这里我们在X轴与Y轴上生成两个16长度的一维张量数值序列来构成网格的基础。X轴与Y轴一维张量通过计算笛卡尔积输出二维张量网格,每一行是一个
坐标对,表示网格中的一个中心点,随后通过变形将结果调整为四维张量,添加批量维度与坐标维度用于后续模型。为了解决这个问题,我们采用LMCnet [12]的方法将
转换为高维
:
(6)
其中
是一个简单而高效的MLP,在本文中,
从低维空间映射到128维空间。
随后,由于我们需要对向量场采样以获得有序数据,因此使用大小为
的网格
对上采样的稀疏向量进行分割。
用于定位采样空间。为了匹配上采样
空间的维度,
也需要进行相同的维度扩展操作:
(7)
其中
,在我们的实现中,
被提升到128个维度。
我们的目标是通过插值将稀疏无序的运动矢量转换为密集有序的运动场。随后,通过使用上述网格
,我们进行等距采样以获得有序的运动矢量。这些有序的运动矢量明确地表示了不同深度处对应点的空间信息。我们参考Convmatch [15],它使用GAT [16]来处理无序运动矢量并生成有序运动矢量:
(8)
使用通过我们的维数增广获得的高维表示
和
来替换(8)中的低维信息,我们得到:
(9)
其中,
,
表示
的高维表示。这里我们把
重新定义为
,其中的
是一种类注意力机制的处理方式,目的是通过聚合所有已知的运动矢量F来估计X位置外的运动场:
(10)
其中的
,
,
是可学习的权重,
,
,
是可学习的学习偏差,类似交叉注意力中的图像通过线性变化得到Q、K和V。在
中,经过
函数处理的结果通过拼接与高维表格F拼接,使用一个MLP层。
通过上述隐式插值操作,我们将无序运动矢量转换为有序运动矢量场。值得注意的是,该模块允许运动矢量的变换是可逆的,这有助于后续的融合步骤中将融合后的信息恢复到其基本对应关系,从而能够进行下一次修剪操作。
3.2. 全局局部上下文剪除枝模块
在我们的任务中,挖掘对应关系中的一致性对于搜索正确的匹配非常重要。为了充分捕捉联合视觉空间对应的上下文信息,本文设计了一种上全局局部上下文剪除枝模块(GLC-Pruner)结构。直观地说,正确的对应关系在它们的局部和全局上下文中应该是一致的,因此GLC-Pruner通过堆叠图神经网络和变换器来明确地捕获局部和全局的上下文。
3.2.1. 本地上下文捕获器
如[11] [17]所述,实用的G-er首先基于每对联合视觉空间对应之间的欧几里德距离构建一个图:
(11)
其中
表示特
的k个最近邻,
表示连接
及其邻的有向边集。边缘的构造可以公式化如下:
(12)
其中
和
分别表示第i个联合视觉空间对应关系及其第j个邻居。
是沿信道维度的级联操作。
3.2.2. 全局上下文捕获器
我们采用多头自我关注(MHSA)层来捕获全局上下文并将其融合到每次通信中。实际上,距离相似性被引入到MHSA层,结合长度特征一致性来生成空间感知注意力矩阵。它可以从不同方面利用几何关系,从而使网络能够以更全面、更稳健的方式捕获上下文信息。对于第h个头,我们的问题中的查询集
、关键字集
和值集
是通过在
上使用三个不同的线性投影得到的:
(13)
其中
和
是投影参数,H = 4是头数。我们再次将查询、键和值打包成矩阵,得到
、
和
。然后,第h个头的输出如下:
(14)
将不同磁头的输出连接起来,生成大小为N × 128H的最终输出:
(15)
将MHSA具体运用于全局上下文捕获中,给定两个对应关系
和
,它们之间的长度相似度计算如下:
(16)
然后,通过MHSA层将长度一致性融合到注意力矩阵
中,同时生成一个空间感知注意力矩阵
来指导消息传递。此操作可以公式化如下:
(17)
其中
表示由方程(12)获得的长度相似性矩阵。最后,我们采用了类似于赵等人[11]的嵌入式预测器来处理连接特征。
3.3. 损失函数
以下混合函数[18] [19]用于监督我们提出的方法的训练过程:
(18)
其中
表示分类损失,而
表示基本矩阵损失。
是一个超参数,用于平衡这两种损失。基于赵等人[11],分类损失
可以表示为:
(19)
其中
表示二元交叉熵损失函数。
是第j次迭代的相关权重。
代表弱监督标签,在可见度距离阈值为10−4 [20]时被选为正样本。
是一个自适应温度矢量,
表示哈达玛积。基本矩阵损失
可以表示为:
(20)
其中E是地面真值基本矩阵;p和p'表示通过本质矩阵E获得的虚拟对应关系。
表示向量第i个元素的范数。
4. 实验与分析
4.1. 数据集
我们在室外和室内基准上测试了我们的方法,以评估相对姿态估计的性能。对于户外场景,采用了雅虎YFCC100M [20]数据集,该数据集由从互联网上收集的一亿张户外照片组成。对于室内场景,我们采用了SUN3D [21]数据集,这是一个提供相机姿态信息的大规模室内RGBD视频数据集。
根据张等人[10]提出的数据划分方案,所有竞争方法在未知和已知场景上分别进行评估。我们给出了5˚和20˚阈值下姿态误差的平均精度(mAP),其中姿态误差被定义为旋转和平移引起的最大角度误差。
4.2. 模型细则
一般来说,SIFT [13]技术用于建立N = 2000个初始对应关系,信道维数C为128,网络迭代λ为2,修剪比r为0.5。我们还使用ORB [22]和SuperPoint [14]特征匹配算法进行实验。具体测试结果见表1。此外,为了降低培训成本,TrFormer仅在第二次迭代中使用。在SExtractor中,原始图像的大小被调整为H=16,W=16,并且信道尺寸CF被设置为64。在CVFormer中,网格大小为16 × 16,稀疏运动矢量和网格维数增加到128。在ContextFormer中,在两次迭代中,k个邻居的数量分别设置为9和6,组计数n为3。我们使用Adam优化器训练网络,权重衰减为0,学习率为
,批处理大小为32。根据赵等人[11],在前20次迭代中,权重
设置为0,然后在剩余迭代中设置为0.5。具体参数设置对实验的影响如表1所示。
Table 1. The influence of parameter values on practical performance
表1. 结果参数值对实际性能的影响
网格尺寸 |
学习率 |
mAP5˚ |
mAP20˚ |
8 × 8 |
10−3 |
60.56/61.85 |
79.17/81.09 |
16 × 16 |
10−2 |
52.77/59.10 |
74.98/78.79 |
16 × 16 |
10−3 |
61.82/62.82 |
80.76/81.43 |
16 × 16 |
10−4 |
58.85/61.74 |
78.70/80.85 |
32 × 32 |
10−3 |
61.03/62.38 |
77.13/80.69 |
32 × 32 |
10−4 |
58.78/60.25 |
79.14/80.06 |
4.3. 比试验结果
如表2所示,我们的CDNet室内场景中都优于其他的方法。具体来说,在室外室外场景中,与最近没有RANSAC的基于MO方法(PGFNet)相比,我们的方法在以下方面实现了4.54%和1.72%的性能提升:mAP@5˚用于未知场景。同样,与最近基于图的SOTA方法(CLNet)相比,我们的方法在没有RANSAC的情况下实现了7.79%和1.89%的性能提升mAP5˚。一般来说,我们的提案在所有方法中得分最高。结果表明,所设计的深度空间挖掘和基于全局局部上下文的架构大大增强了网络实践。此外,如图2所示,OANet++ [10]和PGNet的典型可视化从左到右与我们的网络进行对比。
Table 2. Quantitative comparisons of the camera pose estimation
表2. 相机姿态估计的定量比较
方法 |
YFCC200M (%) |
SUN3D (%) |
OANet++ (2019) |
41.53 |
22.31 |
CLNet (2021) |
44.88 |
23.83 |
MS2DG-Net (2022) |
45.34 |
23.00 |
PGNet (2023) |
46.28 |
23.87 |
Ours |
48.38 |
24.28 |
Figure 2. Comparative experiments on the YFCC100M dataset
图2. YFCC100M数据集上的对比实验
4.4. 离群点移除
根据提供的信息,表3显示了异常值去除任务中比较方法的结果。同样,所有模型都会在室外和室内场景中进行评估。报告了包括精确度、召回率和F分数在内的指标。请注意,在我们的实现中,预测的对称极线距离
被视为对应关系的内层。从表3的结果来看,CDNet在户外数据集的精度和F分数方面优于所有最先进的方法。此外,与其他基于学习的方法相比,该模型的召回率较低。这主要是由于模型的修剪过程,它不仅修剪了异常值,还修剪了一些内部值,导致预测的几何模型继承了这一特征。同时,修剪模型利用预测的基本矩阵进行恢复处理,并计算预测的极线距离作为过程中的输出。
Table 3. Quantitative comparisons of outlier removal on outdoor scene and indoor scene
表3. 室外场景和室内场景异常值去除的定量比较
方法 |
室外(%) |
室内(%) |
P |
R |
F |
P |
R |
F |
RANSAC |
43.55 |
50.62 |
46.83 |
44.87 |
48.82 |
46.76 |
PointNet++ |
46.39 |
84.17 |
59.81 |
46.30 |
82.72 |
59.37 |
DFE |
54.00 |
85.56 |
66.21 |
46.18 |
84.01 |
59.60 |
ACENe |
55.62 |
85.47 |
67.39 |
46.16 |
84.01 |
59.58 |
OANet++ |
55.78 |
85.93 |
67.65 |
46.15 |
84.36 |
59.66 |
CLNet |
75.05 |
76.41 |
75.72 |
60.01 |
68.09 |
63.80 |
Ours |
76.03 |
78.28 |
76.88 |
60.65 |
68.05 |
64.62 |
4.5. 消融实验
为了分析本文提出的模型中的各个模块对模型整体效果的贡献,我们对YFCC100M进行了详细的消融研究,以证明CDNet中每个组件的有效性。
4.5.1. 模型的消融
如表4所示,我们打算逐步将拟议的组成部分添加到基线中。表中的第一行表示具有修剪策略的PointCN [9]。考虑到TrFusion模块对输入模态完整性的要求,去除某种模态的消融肯定会影响最终的融合效果。具体来说,在第二行中,我们引入了SExtractor模块来恢复基线CLNet。在第三行中,添加了GLC-Pruner模块,但没有RANSAC后处理和不完整的模态融合。可以看出,与基线相比,mAP5˚提高了43.29%。在第四行中,空间信息之间的融合处理未通过Attention层。最后,我们整合了所有模块,在没有RANSAC后处理的情况下,mAP5˚比基线提高了45.67%。
Table 4. Ablation study of network architecture
表4. 网络架构的消融研究
SExtractor |
GLC-Pruner |
Attention |
mAP5˚ |
mAP5˚ |
|
|
|
43.25/55.20 |
67.12/75.23 |
√ |
|
|
60.57/61.23 |
80.00/80.73 |
|
√ |
|
61.80/62.07 |
80.58/80.88 |
√ |
√ |
|
60.42/60.77 |
79.95/80.18 |
√ |
|
√ |
60.77/61.37 |
80.44/81.76 |
|
√ |
√ |
61.15/61.77 |
80.51/80.59 |
√ |
√ |
√ |
62.82/62.82 |
80.76/81.43 |
4.5.2. 自回归机制的消融
我们进一步进行消融研究,以验证所提出架构中每个组件的有效性。如表5所示,所提出的GLC-Pruner的每个组件都有助于进一步提高网络性能。实验证明,我们的GLC-Pruner融合模块将性能提高了3.97%。换句话说,我们的方法能够有效地进行剪枝。
Table 5. Ablation study of GLC-Pruner
表5. GLC-Pruner的消融研究
Local Context Capturer |
Global Context Capturer |
mAP5˚ |
mAP5˚ |
|
|
60.77/61.37 |
80.44/81.76 |
√ |
|
61.45/61.27 |
79.83/80.93 |
|
√ |
62.02/61.90 |
80.17/80.97 |
√ |
√ |
62.82/62.82 |
80.76/81.43 |
5. 结论
本研究从空间向量场的角度探讨了通过利用视觉信息来提高特征匹配任务准确性的可能性。我们挖掘深层视觉信息来指导修剪操作,为此,我们设计了一个对应点向量转化器,我们采用对应关系矢量场变换器将对应关系转换为密集有序的运动矢量场,进一步利用对应关系之间的空间信息。最后,利用全局上下文捕获器来进行剪枝操作。对比实验和消融研究证明了这种方法的实际有效性。