论文解析三: D2-Net 用于联合描述和检测局部特征的可训练CNN

1.D2-Net摘要

解决在困难的成像条件下寻找可靠的像素级对应的问题

提出一种由单一卷积神经网络发挥双重作用的方法:它同时是一个密集的特征描述符和一个特征检测器。通过将检测推迟到后期阶段,所获得的关键点比基于低层结构早期检测的传统关键点更稳定。

我们证明了该模型可以使用从现成的大规模SfM重建中提取的像素对应来训练,而不需要任何进一步的注释。该方法在困难的亚琛昼夜定位数据集和InLoc室内定位基准上都获得了最先进的性能,以及在其他图像匹配和三维重建基准上具有竞争力的性能。

特点:特征点定位精度较差、速度慢,但对光照变化、模糊变化等鲁棒性较高

2.D2-Net关键点介绍

​ 在图像之间建立像素级对应关系是计算机视觉中的基本问题之一,现在主要的方法包括稀疏匹配和密集匹配

​ 稀疏匹配一般采用检测然后描述的方法(如下图a),这种方法效率高、速度快,但由于图片中低纹理区域或是重复场景的出现,这种方法可能无法提取到特征点或提取到错误的特征点,其本质原因在于detector只使用了浅层图像信息

​ 密集匹配直接使用深层特征来获得密集特征描述,不使用detector,从而有更高的鲁棒性,但计算效率大大降低

​ 文章提出了一种足够鲁棒的**sparse local feature(稀疏局部特征)**方法(如下图b),将detector放在深层特征后与decriptor高度耦合而一起实现,从而既有sparse(稀疏)方法的高效性,又有dense(密集)方法的鲁棒性
在这里插入图片描述

3. Joint Detection and Description (联合检测和描述)

​ 我们目标是获得一组稀疏的,鲁棒的特征,这些特征在具体挑战性的条件下是稳健的,并且能够有效匹配和存储。为此,提出一种

一种稀疏局部特征检测和描述Joint Detection and Description:我推迟检测阶段,而不是基于低级信息尽早进行特征检测。

​ 首先通过深度卷积神经网络(CNN)计算一组特征图,然后使用这些特征图来计算描述符**(作为穿过特定像素位置处的所有图的切片)并检测关键点(作为特征图的局部最大值)。**结果,特征检测器与特征描述符紧密耦合。

​ 因此,检测对应于具有局部不同描述符的像素,这些描述符应该非常适合匹配。同时,使用CNN深层的特征图使我们能够将特征检测和描述建立在更高层次的信息之上。实验表明,与密集方法相比,我们的方法所需的内存要少得多。

​ 同时,它在具有挑战性的条件下表现相当好甚至更好,如昼夜照明变化和弱纹理场景。与传统的使用两阶段的检测方法不同,文章的方法使用密集的特征提取与描述,但最终获得稀疏的特征点和对应的描述符。这里称它为D2-Net,如下图所示:

这个图中CNN网络F用于提取双重作用的特征图,就是一个密集的特征描述符和一个特征检测器
在这里插入图片描述
D2-Net的第一步是使用CNN网络 F 提取高层次特征,得到
在这里插入图片描述

3.1 Feature Extraction

​ 在(i,j)处,的channel(通道)方向上的向量作为该点的描述符:
在这里插入图片描述
​ 此外,在应用描述符进行匹配之前,应对其进行L2范式归一化
在这里插入图片描述

3.2 Feature Detection

​ 对三维张量F 的另一种解释是作为二维响应D的集合
在这里插入图片描述
​ 其中,k = 1 , … … n 。在这种解释中,特征提取函数F可以看作是n个不同的特征检测器函数Dk,每个函数产生一个二维响应映射Dk这些检测响应图类似于在尺度不变特征变换(SIFT)中获得的高斯差分(DoG)响应图或在Harris的角检测器中获得的角度得分图。在我们的工作中,这些原始分数经过后处理,只选择一个位置子集作为输出关键点。

高斯差分(DoG)是一种用于检测图像中的边缘和关键点。这种方法首先对图像进行高斯模糊处理,然后在不同尺度下计算高斯模糊后的图像之间的差异,以便找到图像中的局部极值点

Harris 角点检测器通过计算图像中每个像素邻域窗口内的灰度值梯度来判断是否为角点,主要基于以下两个假设:

​ 1.在平滑区域中,灰度值不会发生明显的变化。

​ 2.在角点附近,沿着所有方向都会有较大的灰度变化。

Harris 角点检测器通过计算像素点周围窗口内灰度值的梯度和结构矩阵,并根据这些矩阵的特征值来判断该像素点是否为角点。如果特征值较大且相似,则可以判定该像素点为角点。Harris 角点检测器的输出结果主要是一个角点响应图,用于标识图像中潜在的角点位置

下面将描述Feature Detection这个过程。

3.2.1 Hard feature detection (硬特征检测)

​ 在传统的特征检测器如DoG中,检测图将通过执行空间非局部最大抑制来稀疏化。然而,在我们的方法中,与传统的特征探测器相反,存在多个检测映射Dk (k = 1 , … … , n ),并且可以对其中的任何一个检测映射进行检测。因此,对于要检测到的一个点( i 、 j ) (i、j)我们要求:
在这里插入图片描述
​ 直观地说,对于像素(i,j),先选择在通道方向(也就是垂直方向或不同纬度方向)上选择响应最大的探测器(特征图)Dk,然后再验证在该特定检测器(特征图)上该位置是否为局部最大值。这样检测到稠密、鲁棒性较强的特征点

3.2.1 Soft Feature Detection(软特征检测)

​ 上述的hard方案在反向传播时会遇到困难(如判断是否是局部最大值)

​ 1.非光滑性:Hard 特征检测通常意味着对图像进行非线性操作,这可能导致梯度不连续或者不可导的情况,使得反向传播过程中梯度难以计算。

​ 2.非局部性:Hard 特征检测可能会引入非局部性的信息,使得反向传播过程中难以判断是否是局部最大值或者如何传播梯度。

​ 而Soft Feature Detection 是一种相对于 Hard Feature Detection 更加平滑和连续的特征检测方法。在 Soft Feature Detection 中,特征点的检测不再是严格的局部极值判断,而是通过一种更加平滑、连续的方式来确定图像中的特征点。

首先定义soft local-max score
在这里插入图片描述
N(i,j) 是(i,j) 的8邻域并包括它本身

其次定义了ratio-to-max
在这里插入图片描述
得到得分图:
在这里插入图片描述
也即只有 (i,j) 位置的各个响应图 Dk 中存在响应尽可能比其他检测器大并且尽可能是局部最大值的点,的得分将越高

最终得到响应图:
在这里插入图片描述

3.3 Multiscale Detection (多尺度检测)

​ 虽然CNN描述符由于数据增强的预训练而具有一定的尺度不变性,但它们对尺度变化本身并不是不变性,在观点有显著差异的情况下,匹配往往失败。为了获得对尺度变化更稳健的特征,我们建议使用图像金字塔,就像通常在手工制作的局部特征探测器或甚至对某些对象探测器中所做的那样。这只在测试期间执行。

​ 给定输入图像 I,构造一个包含三种不同分辨率ρ = 0.5 、 1 、2(对应于半分辨率、输入分辨率和双分辨率)的图像金字塔I ρ ,并用于提取每个分辨率下的特征图F ρ 。然后,将较大的图像结构从低分辨率特征图传播到高分辨率特征图,传播方式如下:
在这里插入图片描述
这里使用双线性插值进行分辨率的恢复

此外,为了防止重复检测特征:从最粗的尺度开始,标记检测到的位置(包括邻域),并在较细尺度忽略这些区域

4.损失函数

​ 为了训练所提出的模型,它使用一个单一的CNN F 来进行检测和描述,我们需要一个适当的损失L来共同优化检测和描述目标。在检测的情况下,我们希望关键点在视点或照明的变化下是可重复的。在描述的情况下,我们希望描述符是独特的,以便它们不会不匹配。为此,我们提出了一个扩展的三重边际排名损失,它已成功地用于描述符学习,以解释检测阶段。我们将首先回顾三重边际排名损失,然后提出我们的联合检测和描述的扩展版本。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Unknown To Known

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值