论文阅读笔记《Nctr: Neighborhood Consensus Transformer for Feature Matching》
创始人
2024-06-02 20:46:55
0

核心思想

  本文提出一种融合邻域一致性的Transfomer结构来实现特征点的匹配(NCTR)。整个的实现流程和思想与SuperGlue相似,改进点在于考虑到了邻域一致性。邻域一致性在许多的传统图像匹配和图匹配任务中都有应用,他基于一个很重要的假设,就是对于一对匹配点,其邻域内的其他点也大概是匹配的,至少是相似程度很高的。而在SuperGlue中注意力机制是面向所有的特征点进行信息聚合,而没有考虑到局部邻域的一致性约束。为弥补上述缺陷,作者提出了NCTR
在这里插入图片描述

实现过程

  首先,与SuperGlue相同输入的是源图AAA和目标图BBB中关键点的视觉特征diA,djBd_i^A,d_j^BdiA​,djB​及坐标特征piA,pjBp_i^A,p_j^BpiA​,pjB​,其中坐标特征pip_ipi​包含关键点的二维坐标(xi,yi)(x_i,y_i)(xi​,yi​)和置信度得分cic_ici​,上述特征均有特征提取和描述器提供,如SuperPoint。位置特征经过一个编码器后与视觉特征相加构成初始的输入特征xi(0)x_i^{(0)}xi(0)​,编码器由多层感知机构成。
在这里插入图片描述
  然后,要基于注意力机制进行特征聚合。注意力机制包含自注意力(self-attention)和交叉注意力(cross-attention),给定第lll层网络的两个输入xs(l)x_s^{(l)}xs(l)​和xt(l)x_t^{(l)}xt(l)​,对于自注意力层而言,两个输入是来自于同一个图(源图或目标图)的特征;而对于交叉注意力层而言,两个输入分别来自两个图的特征。自注意力层和交叉注意力层是交替进行的,这模拟了人类在进行匹配时会相互比对的过程。
  下面简述一下注意力机制的计算过程,这个是由ViT实现的。输入的特征xs(l)x_s^{(l)}xs(l)​和xt(l)x_t^{(l)}xt(l)​(对于自注意力层两者相同)经过一个LayerNorm层分别被线性映射到Q(l),K(l),V(l)Q^{(l)},K^{(l)},V^{(l)}Q(l),K(l),V(l),其中xs(l)→Q(l)x_s^{(l)}\rightarrow Q^{(l)}xs(l)​→Q(l),而xt(l)→K(l),V(l)x_t^{(l)}\rightarrow K^{(l)}, V^{(l)}xt(l)​→K(l),V(l)。我们称Q(l),K(l),V(l)Q^{(l)},K^{(l)},V^{(l)}Q(l),K(l),V(l)分别为查询向量、键向量和值向量,他们经过下式可以得到注意力计算方法
在这里插入图片描述
注意力可以理解为利用QKTQK^TQKT计算向量之间的相似性作为权重对VVV向量进行加权求和,一组Q(l),K(l),V(l)Q^{(l)},K^{(l)},V^{(l)}Q(l),K(l),V(l)向量得到一个注意力结果,我们称之为一个头Head\mathbf{Head}Head。
在这里插入图片描述
按照相同的方法,分别构建hhh个头,并将其拼接起来经过一个线性映射层就得到了多头注意力
在这里插入图片描述
再将多头注意力和输入的xs(l)x_s^{(l)}xs(l)​拼接起来经过线性映射层得到前向输入网络结果
在这里插入图片描述
最后将前向输入网络的结果与输入的xs(l)x_s^{(l)}xs(l)​进行残差连接(相加)就得到该层注意力网络的输出结果
在这里插入图片描述
其将作为下一层注意力网络的输入继续进行计算。上述过程都是SuperGlue所采用的注意力机制,而本文是将邻域一致性引入上述计算过程。
在这里插入图片描述
  邻域一致性模块如上图(a)所示,输入的特征xs(l)x_s^{(l)}xs(l)​和xt(l)x_t^{(l)}xt(l)​经过内积计算和softmax层得到对应性矩阵S~\widetilde{S}S,这并不是最终要求解的匹配关系矩阵。对源图中的特征点分别随机生成对应的颜色向量Rc∈RM×cR_c\in \mathbb{R}^{M\times c}Rc​∈RM×c,MMM表示源图中特征点数量,ccc表示颜色向量的长度。这里的颜色向量可不是图像中RGB这样的颜色特征,而是用于表示匹配关系的表示方式。将源图对应的颜色向量RcR_cRc​与对应性矩阵的转置S~T\widetilde{S}^TST相乘,就得到变换后的颜色向量TcT_cTc​,作为目标图的颜色向量。源图和目标图中的每个关键点都作为一个节点,根据上文计算得到注意力权重作为相似性度量,并选择最相似8个节点作为每个关键点的邻域,将中心节点与8个邻域节点相连构成一个图。源图和目标图对应的边特征分别为EsE_sEs​和EtE_tEt​(计算方式文中没有介绍),将两幅图边特征和颜色向量分别经过GNN进行信息传递,得到新的节点颜色特征表示
在这里插入图片描述
两个节点颜色特征表示之间的差异就表示了两幅图之间的邻域一致性,差异越小,一致性越强。计算两个节点的颜色特征表示的差值,并经过一个多层感知机就得到了邻域一致性信息FFNCFF_{NC}FFNC​
在这里插入图片描述
  将邻域一致性信息FFNCFF_{NC}FFNC​与上文介绍的前向输入网络的特征FFTRFF_{TR}FFTR​级联起来,在经过一个线性映射层就得到带有邻域一致性的注意力聚合信息
在这里插入图片描述
与普通注意力机制相同,通过与输入特征相加得到最终的结果
在这里插入图片描述
带有邻域一致性的注意力机制和普通的注意力机制的实现方式和比较如图(b)所示。
  最后,对聚合后的特征进行匹配,源图和目标图对应的特征向量xA,xB\mathbf{x}^A,\mathbf{x}^BxA,xB,计算内积得到相似性得分矩阵SSS,并通过Sinkhorn算法得到匹配矩阵PPP。将匹配得分PijP_{ij}Pij​低于阈值的点去掉,按照互为最近邻的原则选择最终的匹配结果。损失函数是对匹配矩阵进行负指数似然损失计算
在这里插入图片描述

创新点

  • 设计了一种邻域一致性模块,并将其引入到注意力机制计算过程中

算法总结

  本文在SuperGlue的基础上提出一种带有邻域一致性的注意力机制,邻域一致性的计算思路与《DEEP GRAPH MATCHING CONSENSUS》这篇文章非常相似,实验结果来看是有一定的性能提升的,但计算复杂度较大,对于大规模的特征匹配将会存在计算成本过高的问题。

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...