开源代码:D2-Net

1 摘要

在这项工作中,我们解决了在困难的成像条件下寻找可靠的像素级对应的问题。我们提出了一种由单一卷积神经网络发挥双重作用的方法:它同时是一个密集的特征描述符和一个特征检测器。通过将检测推迟到后期阶段,所获得的关键点比基于低层结构早期检测的传统关键点更稳定。我们证明了该模型可以使用从现成的大规模SfM重建中提取的像素对应来训练,而不需要任何进一步的注释。该方法在困难的亚琛昼夜定位数据集和InLoc室内定位基准上都获得了最先进的性能,以及在其他图像匹配和三维重建基准上具有竞争力的性能。

2 理论介绍

与经典的使用两阶段管道的检测然后描述方法相反,我们建议执行密集的特征提取,以获得同时是检测器和描述符的表示。因为检测器和描述符都共享底层表示,所以我们将我们的方法称为D2。我们的方法如图3所示。
该方法的第一步是对输入图像III应用一个CNN FFF,得到一个三维张量F=F(I)F = F (I)F=F(I),F∈Rh×w×nF∈R^{h×w×n}F∈Rh×w×n,其中h×wh×wh×w是特征图的空间分辨率,nnn是通道数。

2.1. Feature Description

正如在之前的其他工作[38,44,59]中一样,对三维张量F的最直接的解释是作为一个密集的描述符向量ddd的集合:

与i=1,……,hi = 1,……,hi=1,……,h和j=1,……,wj = 1,……,wj=1,……,w。这些描述符向量可以很容易地在图像之间进行比较,以建立对应使用欧氏距离。在训练阶段,这些描述符将被调整,使场景中相同的点产生相似的描述符,即使图像包含强烈的外观变化。在实践中,我们在比较描述符之前对描述符应用L2归一化:d^ij=dij/∥dij∥2.\hat{\mathbf{d}}_{i j}=\mathbf{d}_{i j}/\|\mathbf{d}_{i j}\|_{2}.d^ij​=dij​/∥dij​∥2​.

2.2 Feature Detection

对三维张量FFF的另一种解释是作为二维响应D的集合

其中,k,=,1,……,nk,=,1,……,nk,=,1,……,n。在这种解释中,特征提取函数FFF可以看作是nnn个不同的特征检测器函数DkD^kDk,每个函数产生一个二维响应映射DkD^kDk。这些检测响应图类似于在尺度不变特征变换(SIFT)[30]中获得的高斯差分(DoG)响应图或在Harris的角检测器[19]中获得的角度得分图。在我们的工作中,这些原始分数经过后处理,只选择一个位置子集作为输出关键点。下面将描述这个过程。

Hard feature detection
在传统的特征检测器如DoG中,检测图将通过执行空间非局部最大抑制来稀疏化。然而,在我们的方法中,与传统的特征探测器相反,存在多个检测映射Dk(k=1,……,n)D^k(k = 1,……,n)Dk(k=1,……,n),并且可以对其中的任何一个检测映射进行检测。因此,对于要检测到的一个点(i、j)(i、j)(i、j),我们要求:

直观地说,对于每个像素(i,j)(i,j)(i,j),这对应于选择最卓越的检测器DkD^kDk(通道选择),然后验证在该特定检测器的响应映射DkD^kDk的位置(i,j)(i,j)(i,j)上是否有一个局部最大值。

Soft feature detection
在训练过程中,上述的硬检测程序被软化,以便于反向传播。首先,我们定义了一个软的局部最大值。得分

其中N(i、j)N (i、j)N(i、j)是像素(i、j)(i、j)(i、j)(包括自身)的9个邻居的集合。然后,我们定义软通道选择,它计算一个最大比值。每个模拟通道级非最大抑制的描述符:

接下来,为了考虑到这两个标准,我们在所有特征图k上最大化这两个分数的乘积,以获得一个单一的得分图:

最后,通过进行图像级归一化,获得一个像素(i,j)(i,j)(i,j)处的软检测分数sijs_{ij}sij​:

Multiscale Detection
虽然CNN描述符由于数据增强的预训练而具有一定的尺度不变性,但它们对尺度变化本身并不是不变性,在观点有显著差异的情况下,匹配往往失败。为了获得对尺度变化更稳健的特征,我们建议使用图像金字塔[2],就像通常在手工制作的局部特征探测器[28,30,32]或甚至对某些对象探测器[16]中所做的那样。这只在测试期间执行。
给定输入图像III,构造一个包含三种不同分辨率ρ=0.5、1、2ρ = 0.5、1、2ρ=0.5、1、2(对应于半分辨率、输入分辨率和双分辨率)的图像金字塔IρI^ρIρ,并用于提取每个分辨率下的特征图FρF^ρFρ。然后,将较大的图像结构从低分辨率特征图传播到高分辨率特征图,传播方式如下:

注意,特征映射FρF^ρFρ有不同的分辨率。为了实现(8)中的求和,使用双线性插值法将特征图FγF^γFγ的大小调整到FρF^ρFρ的分辨率。通过将上述后处理应用于融合的特征图FρF^ρFρ来获得检测。为了防止重新检测特征,我们使用了以下响应门控机制:从最粗的尺度开始,我们标记检测到的位置;这些掩模被上采样(最近邻)到下一个尺度的分辨率;进入标记区域的检测被忽略。

2.2 4. Jointly optimizing detection and description

Training loss
为了训练所提出的模型,它使用一个单一的CNN FFF来进行检测和描述,我们需要一个适当的损失LLL来共同优化检测和描述目标。在检测的情况下,我们希望关键点在视点或照明的变化下是可重复的。在描述的情况下,我们希望描述符是独特的,以便它们不会不匹配。为此,我们提出了一个扩展的三重边际排名损失,它已成功地用于描述符学习[6,35],以解释检测阶段。我们将首先回顾三重边际排名损失,然后提出我们的联合检测和描述的扩展版本。
给定一对图像(I1,I2)(I_1,I_2)(I1​,I2​)和它们之间的对应c:A↔Bc: A↔Bc:A↔B(其中A∈I1A∈I_1A∈I1​,B∈I2B∈I_2B∈I2​),我们的三重边际排名损失寻求最小化相应描述符的距离d^A(1)\hat{\mathbf{d}}_A^{(1)}d^A(1)​和d^B(2)\hat{\mathbf{d}}_B^{(2)}d^B(2)​同时最大化与其他混杂描述符的距离d^N1(1)\hat{\mathbf{d}}_{N_{1}}^{(1)}d^N1​(1)​和d^N2(2)\hat{\mathbf{d}}_{N_{2}}^{(2)}d^N2​(2)​在这两种图像中,这可能的存在是由于类似的图像结构。为此,我们将相应描述符之间的正描述符距离p(c)p (c)p(c)定义为:

负距离n(c)n (c)n(c),它解释了其中一个最混杂的描述符d^A(1)\hat{\mathbf{d}}_A^{(1)}d^A(1)​和d^B(2)\hat{\mathbf{d}}_B^{(2)}d^B(2)​,定义为:

其中,负样本d^N1(1)\hat{\mathbf{d}}_{N_{1}}^{(1)}d^N1​(1)​和d^N2(2)\hat{\mathbf{d}}_{N_{2}}^{(2)}d^N2​(2)​是位于正确对应的平方局部邻域之外的最大负样本:

对于n2也是如此。边际M的三重边际排名损失可以定义为:

直观地说,这种三重边际排名损失试图通过惩罚任何可能导致错误匹配分配的混淆描述符来加强描述符的独特性。为了进一步寻求检测的可重复性,我们以以下方式在三重边际排名损失中添加了一个检测项:

式中,sc(1)s_c^{(1)}sc(1)​和sc(2)s_c^{(2)}sc(2)​分别为I1I_1I1​和I2I_2I2​中A点和B点的软检测分数(7),CCC为I1I_1I1​和I2I_2I2​之间所有对应关系的集合。建议的损失基于其检测分数产生所有匹配的边际项mmm的加权平均值。因此,为了使损失最小化,最独特的对应项(具有较低的边际项)将获得较高的相对得分,反之亦然——相对得分较高的对应项被鼓励使用与其他对应项相似的描述符。

3 结论

D2-Net: A Trainable CNN for Joint Description and Detection of Local Features精读相关推荐

  1. [CVPR 2020] D3Feat: Joint Learning of Dense Detection and Description of 3D Local Features

    零.概要 论文: D3Feat: Joint Learning of Dense Detection and Description of 3D Local Features tag: CVPR 20 ...

  2. 人脸检测对齐--Joint Cascade Face Detection and Alignment

    Joint Cascade Face Detection and Alignment ECCV2014 https://github.com/kensun0/Joint_Cascade_Face_De ...

  3. (CVPR 20) D3Feat: Joint Learning of Dense Detection and Description of 3D Local Features

    想要了解深入了解D3Feat产生的原因,建议可以先去看一下D2Net[1],再来看D3Feat. D3Feat核心优势: D3Feat提供了一种联合框架,在学习描述子的同时进行关键点的检测,传统匹配可 ...

  4. 【CVPR2019】论文完整列表一

    CVPR 2019 Paper list No.1-1000 ?CVPR2019 完整列表二 论文题目与链接 Finding Task-Relevant Features for Few-Shot L ...

  5. CVPR2019论文题目中文列表

    英文题目 中文题目   Finding Task-Relevant Features for Few-Shot Learning by Category Traversal 少镜头学习中用类别遍历法寻 ...

  6. 【今日CV 计算机视觉论文速览 第115期】Fri, 10 May 2019

    今日CS.CV 计算机视觉论文速览 Fri, 10 May 2019 Totally 57 papers ?上期速览✈更多精彩请移步主页 Interesting: ?****手持设备多帧超分辨, 手机 ...

  7. 图像兴趣点检测与描述 的深度学习方法总结

    图像的兴趣点(关键点.特征点)检测和描述往往是图像配准.相机标定.场景识别.目标跟踪的首要步骤,是计算机视觉研究的重要课题.检测子的目的是为了提取可匹配的兴趣点,而描述子可用于匹配或识别,为下游任务作 ...

  8. 【今日CV 计算机视觉论文速览 第131期】Mon, 17 Jun 2019

    今日CS.CV 计算机视觉论文速览 Mon, 17 Jun 2019 Totally 44 papers ?上期速览✈更多精彩请移步主页 Interesting: ?综述:基于图像的深度重建, 基于单 ...

  9. Distinctive Image Features from Scale-Invariant Keypoints-SIFT算法译文

    本文全篇转载自如下博客,感谢博主的无私分享 http://www.cnblogs.com/cuteshongshong/archive/2012/05/25/2506374.html -------- ...

最新文章

  1. 深入理解openstack网络架构(2)----Basic Use Cases
  2. 路由个数据包转发简介
  3. Unity 类似FingerGestures 的相机跟随功能
  4. 二分查找--AVL查找树
  5. 【NLP】为元宇宙拼了?FaceBook推出强大的多语言模型,试图理解所有人类语言...
  6. 【C++】Visual Studio教程(八) -修复 Visual Studio
  7. 关于sql中的with(nolock)
  8. 计算机服务管理器延迟启动项,开机延时启动程序
  9. 计算机网络(九)-物理层(补充)-傅里叶变换-信道复用
  10. Create MSSQL Procedure
  11. 300 行代码带你秒懂 Java 多线程!| 原力计划
  12. 新技术将让硬盘密度再提五倍
  13. 萤火虫小程序_漫展情报蛋趣携福利来萤火虫IDO漫展咯
  14. Windows常用快捷键
  15. 智慧政务说明书 督察督办(八)
  16. java安卓分屏是如何实现的_安卓原生分屏有了,谷歌说:Android Q要实现分屏应用多开...
  17. Word打开docx文件报错
  18. 企业微信 消息 html,企业微信怎么设置消息提醒
  19. 工业自动控制过程中最好用SCADA软件推荐
  20. LaTeX - 星形线(内摆线的一种)

热门文章

  1. 不知道如何选题,我来告诉你。
  2. 勤能补拙,一个人的成功,往往在于坚持
  3. 在Tomcat 6下运行正常,但是在Tomcat 7下异常。
  4. 两人斗地主客户端源码(二)
  5. 【树莓派入门】树莓派如何更换桌面壁纸?
  6. java jpanel 位置_JPanel及其组件自动更改位置
  7. 停车场计费系统(HTML版)————JavaScript的应用
  8. Fourier变换、STFT变换、Gabor变换、小波变换、Haar变换、Hilbert变换
  9. google十大信条
  10. mysql 左连接 on 多个条件_数据库左右连接on后的限制条件问题