【转载】LIFT: Learned Invariant Feature Transform学习笔记

本文系转载,非个人原创,禁止二次转载,可联系原文作者自行转载,侵权删。

转载的原文地址:www.cnblogs.com/wzyDoc/p/7801942.html

                             https://blog.csdn.net/prephet/article/details/80797583

2016 ECCV 收录 Kwang Moo Yi, Eduard Trulls, Vincent Lepetit, Pascal Fua

1.介绍

  在CV领域局部特征发挥重要作用,从图像中寻找与匹配它们是大量的研究工作的课题。到最近,最好的技术依赖于手工设计的特征(SIFTSURFORB)。在过去几年,在许多计算机视觉领域,基于machine learning或更确切说是deep learning已经开始表现的比传统技术更好。

  尽管如此,这些新算法只在完整的计算过程中的某一步使用深度学习,例如detecting featurecomputing their orientationextracting robust representations。本文使用一种全新的深度架构,将三部分一起执行。我们证明它的整体性能比最先进的方法要好,在很大程度上是因为它允许这些单独的步骤进行优化以配合彼此的工作。

  我们的架构称之为LIFTlearning invariant feature transform。完整流程如下图,它由三个相互联通的组件组成。the Detector, the Orientation Estimator, and the Descriptor。每个都是基于CNNs(卷积神经网络),这些都被证明可以很好地执行单独的功能。为结合它们,我们使用Spatial TransformersJaderberg, M., Simonyan, K., Zisserman, A., Kavukcuoglu, K.: Spatial Transformer Networks. In: NIPS. (2015))矫正经过DetectorOrientation Estimator输出的图像块。我们使用soft argmax function来替代传统的非局部极大值抑制。这将使我们保持end-to-end differentiability,同时全网络也能使用BP算法,此前我们从未找到这种方式架构。

【转载】LIFT: Learned Invariant Feature Transform学习笔记_第1张图片

  同时我们也知道如何有效训练,我们建立了一种Siamese network,使用SFMStructure-from-Motion)产生的特征点训练它,SFM的场景的视角和光照都在变化,这样来训练它的权重。在不同尺度图像块上规划训练问题,使它变得更容易优化。在实践中,我们发现从头开始构建完整的架构是不可能的,因为分散的部件尝试优化不同的目标。我们介绍一种问题明确的learning来克服这个问题。它包含training the Descriptor first,然后被用来train the Orientation Estimatorand finally the Detector。测试时我们解耦运行,先是Detector在全图尺度空间跑一遍,the Orientation Estimator and Descriptor只处理keypoints

2.相关工作

  局部特征的文献很多,但它们总是考虑finding feature points, computing their orientation, and matching them。这里我们将分别讨论三部分。

2.1 Feature Point Detectors
  特征点的研究大多数关心找到有特色的,大小和朝向能被可靠估计的局部地区。早期的角点寻找使用图像信号的一阶近似,FAST只使用machine learning加速找角点过程,除了角点,SIFT在尺度空间找blobs(斑块),SURFHaar filter加速,MSERMaximally Stable Extremal Regions)检测区域,(Mikolajczyk, K., Schmid, C.: An Affine Invariant Interest Point Detector. In: ECCV. (2002))检测仿射区域。SFOPForstner, W., Dickscheid, T., Schindler, F Detecting Interpretable and Accurate Scale-Invariant Keypoints. In: ICCV. (September 2009))使用junctions(连接,交叉) and blobsEdge Foci使用鲁棒边界(Zitnick, C., Ramnath, K.: Edge Foci Interest Points. In: ICCV. (2011))应对光线变化。更多精心设计的复杂特征点被提出来,并且表现进一步提高(Mainali, P., Lafruit, G., Tack, K., Van Gool, L., Lauwereins, R.: Derivative-Based Scale Invariant Image Feature Detector with Error Resilience. TIP 23(5) (2014))(Mainali, P., Lafruit, G., Yang, Q.,Geelen, B., VanGool, L., Lauwereins, R.: SIFER: Scale-Invariant Feature Detector with Error Resilience. IJCV 104(2) (2013))。

  与这些工程上表现良好的特征点对比,早期的learning points尝试有(Sochman, J., Matas, J.: Learning a Fast Emulator of a Binary Decision Process. In: ACCV. (2007) )(Trujillo, L., Olague, G.: Using Evolution to Learn How to Perform Interest Point Detection. In: ICPR. (2006))。其中(Verdie, Y., Yi, K.M., Fua, P., Lepetit, V.: TILDE: A Temporally Invariant Learned DEtector. In: CVPR. (2015))展示出学习的特征点比之前的那些特征点表现更好。在这个工作中,分段线性卷积滤波器被训练的能鲁棒检测特征点,即使有lighting and seasonal changes。但是,这只能处理一小块图像数据,并且视角不能变化,因此我们根据它得到灵感,并且大幅度扩展到我们的流程中来。

2.2 Orientation Estimation

  尽管朝向在匹配特征点上起着关键的作用,估计一个区别性取向的问题比detection or feature description受到的关注少。结果导致SIFT介绍的方法往往成为小改进的标准,比如使用intensity centroid(强度中心),如ORB设计那样。

  (Yi, K., Verdie, Y., Lepetit, V., Fua, P.: Learning to Assign Orientations to Feature Points. In: CVPR. (2016))使用deep learning来预测稳定的方向,取得了巨大进步。我们将这个体系结构融入到我们的流程中并展示如何使用我们的问题特定的培训策略来训练它。

2.3 Feature Descriptors

  特征描述符被设计用来提供显著图像块的区别表示,并对视角和光照变化保持鲁棒性。有成熟的SIFT由梯度方向的局部直方图计算出来的,SURF使用积分图像表示来加速,DAISYTola, E., Lepetit, V., Fua, P.: A Fast Local Descriptor for Dense Matching. In: CVPR. (2008))依赖于有定向梯度的卷积图来近似直方图,这使DAISY提取稠密描述符时,它会产生很大的计算收益。

  尽管很成功,但是学习型的描述子表现更好。从无监督的哈希到基于线性判别分析的监督学习技术(Strecha, C., Bronstein, A., Bronstein, M., Fua, P.: LDAHash: Improved Matching with Smaller Descriptors. PAMI 34(1) (January 2012))(Winder, S., Brown, M.: Learning Local Image Descriptors. In: CVPR. (June 2007)),遗传算法,凸优化。现在流行通过大量数据训练过的CCNs,直接从raw image patches释放描述子。例如MatchNetHan, X., Leung, T., Jia, Y., Sukthankar, R., Berg, A.C.: MatchNet: Unifying Feature and Metric Learning for Patch-Based Matching. In: CVPR. (2015))训练Siamese CNN来特征表达用一个全连接的网络来度量,DeepCompareZagoruyko, S., Komodakis, N.: Learning to Compare Image Patches via Convolu- tional Neural Networks. In: CVPR. (2015))展示出当network focuses on the center of the image能表现更好。(Zbontar, J., LeCun, Y.: Computing the Stereo Matching Cost with a Convolutional Neural Network. In: CVPR. (2015))使用相似方法获得短基线情况下较好的两视图匹配。在(Simo-Serra, E., Trulls, E., Ferraz, L., Kokkinos, I., Fua, P., Moreno-Noguer, F.: Discriminative Learning of Deep Convolutional Feature Point Descriptors. In: ICCV. (2015))中hard negative mining被用来学习compact descriptorscompact descriptors使用欧式距离度量相似性。(Balntas, V., Johns, E., Tang, L., Mikolajczyk, K.: PN-Net: Conjoined Triple Deep Network for Learning Local Image Descriptors. In: arXiv Preprint. (2016))依靠sample triplets to mine hard negatives

  我们依靠(Balntas, V., Johns, E., Tang, L., Mikolajczyk, K.: PN-Net: Conjoined Triple Deep Network for Learning Local Image Descriptors. In: arXiv Preprint. (2016))的架构,因为描述符被训练并用欧氏距离进行比较,与需要学习度量的描述符相比,它具有更广泛的适用性。

【转载】LIFT: Learned Invariant Feature Transform学习笔记_第2张图片

我们的架构有四个分支,P1P2 (blue)对应同一物理点的不同视图,并被用作训练描述符的正面例子。P3 (green)是不同的3d点,对于描述符来说,这是一个负面的例子。P4 (red)不包含明显的特征点,只作为一个负面的例子来训练Detector。输入一个Pthe Detector, the softargmax, and the Spatial Transformer层分别提供一个小p,然后进入the Orientation Estimatorthe Spatial TransformerRot一下,得到the rotated patch pθ,然后提供给the Descriptor得到最终的description vector d

3.方法

3.1训练方法

1.给定一个输入图像patch PDetector就会提供一个分数图S

2.我们在评分映射S上执行一个soft argmax,并返回单个潜在特征点的位置x

3.我们提取了一个以x为中心的较小的patch p,使用Spatial Transformer layer Crop( 2),作为Orientation Estimator的输入。

4Orientation Estimator预测一个patch orientation θ

5.我们根据这个方向旋转p使用第二个Spatial Transformer layer,贴上Rot在图2中,产生

6送到Descriptor网络,计算特征向量d

3.2训练步骤

1. 首先训练描述符:训练图像块的位置和方向均来自SFM的特征点,其中会取四个图像块P1,P2,P3,P4P1,P2是来自同一个3D点在不同视角下的图像,P3是不同3D点投影回来的图像块,P4是不包含任何特征点的图像块。那么损失函数的构建就为:

https://img-blog.csdn.net/20180721141206411?

2. 训练方向Orientation Estimator,损失函数就是最小化同一3D点在不同视角下的描述符距离,使用已经训练好的描述符来计算描述符向量:

https://img-blog.csdn.net/20180721141955219?

3. 训练特征点检测,输入一个图像块,输出score map。其计算函数为:

https://img-blog.csdn.net/20180721142337164?

其使用最大分数图的位置代替直接用sfm的位置,使其非常容易的去训练而且可靠,位置x的函数由S得到:

https://img-blog.csdn.net/20180721142729645?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3ByZXBoZXQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70https://img-blog.csdn.net/20180721142754709?

最终损失函数定义为:

https://img-blog.csdn.net/20180721142936541?

运行流程:

【转载】LIFT: Learned Invariant Feature Transform学习笔记_第3张图片

4.结论

       这篇文章提出了一个深度网络框架,结合了特征点检测,方向估计和描述符计算模块,使用后向传播进行端到端的训练。训练过程从后往前,先训练描述符,在训练方向估计,最后训练特征点检测模块。从作者实验对比效果看,这种方法与传统SIFT方法比较,对光照和季节变化具有很强的鲁棒性。

 

 

 

 

 

你可能感兴趣的:(LIFT,CV)