Py学习  »  机器学习算法

基于深度学习的特征提取和匹配

计算机视觉工坊 • 2 年前 • 282 次点击  
作者丨黄浴@知乎
源丨https://zhuanlan.zhihu.com/p/78053406
编辑丨计算机视觉life
计算机视觉需要图像预处理,比如特征提取,包括特征点,边缘和轮廓之类。以前做跟踪和3-D重建,首先就得提取特征。特征点以前成功的就是SIFT/SURF/FAST之类,现在完全可以通过CNN模型形成的特征图来定义。

特征提取

Discriminative learning of deep convolutional feature point descriptors【1】
该方法通过卷积神经网络(CNN)学习鉴别式补丁表示,特别是训练具有成对(非)相应补丁的Siamese网络。在训练和测试期间它使用L2距离,提出了一种128-D描述符,其欧几里德距离反映了补丁相似性,并且可作任何涉及SIFT的替代。
如图所示,用一个Siamese网络来学习这样的描述符,其中非线性映射由CNN表示,它对对应或非对应补丁对优化。补丁通过模型提取描述符然后计算其L2范数,作为图像描述符的标准相似性度量。而目标是学习一个描述符,在其空间中让非对应的补丁相隔甚远,而在对应的补丁紧密相连。
考虑每个图像块xi具有索引pi,该索引pi唯一地标识从给定视点大致投影到2D图像块的3D点,而目标函数定义如下:
其中p1,p2分别是投影到x1,x2的3D点索引。
这里下表给出的是三层网络架构:64×64输入在第3层中产生128维输出。每个卷积层由四个子层组成:滤波器层,非线性层,池化层和归一化层。
非线性层,使用双曲线切线单元(Tanh)池化层使用L2池化,归一化很重要,这里使用减法归一化,在第一和二层之后用高斯核减去5×5邻域的加权平均值。
Learned Invariant Feature Transform【2】
LIFT是一种深度网络架构,实现了完整的特征点检测、朝向估计和特征描述,如图所示。
下图是以Siamese架构为基础的整个特征检测和描述流水线。为了训练网络,采用图中的四分支Siamese结构。每个分支包含三个不同CNN,一个检测器、一个朝向估计器和一个描述子。使用四联(quadruplets)图像补丁。每个包括:图像块P1和P2对应于同样3D点的不同视图,图像块P3包含不同3D点的投影,图像块P4不包含任何显着特征点。在训练期间,每个四联第i个补丁Pi将通过第i个分支。
为了实现端到端可微分,每个分支的组件连接如下:
  • 1) 给定输入图像块P,检测器提供得分图S;
  • 2) 在得分图S上执行soft argmax 并返回单个潜在特征点位置x。
  • 3) 用空间变换器层裁剪(Spatial Transformer layer Crop)提取一个以x为中心的较小的补丁p(如图5-3), 作为朝向估计器的输入。
  • 4) 朝向估计器预测补丁方向θ。
  • 5) 根据该方向第二个空间变换器层(图中的Rot)旋转p产生pθ。
  • 6) pθ送到描述子网络计算特征向量d。
最后的运行结构如图所示。由于朝向估计器和描述子只在局部最大值进行评估,将检测器解耦并在传统NMS的尺度空间中运行,以获得其他两个组件的建议。
最后看LIFT和SIFT结果比较的例子,如图所示。


特征匹配

  • MatchNet【3】
MatchNet由一个深度卷积网络组成,该网络从补丁中提取特征,并由三个全连接层组成网络计算所提取特征之间的相似性。
如图是MatchNet训练时的网络架构(图C),联合学习将补丁映射到特征表示的特征网络(图 A)和将特征对映射到相似性的测度网络(图 B)。输出尺寸由(高×宽×深)给出。PS是卷积和池化层的补丁大小; S是步幅。层类型:C=卷积,MP=最大池化,FC=全连接。因为填充卷积层和池化层,故输出高度和宽度是输入除以步幅的值。对FC层,大小B,F选自:B∈{64,128,256,512},F∈{128,256,512,1024}。除FC3外,所有卷积层和FC层用ReLU激活,输出用Softmax归一化。
下图是MatchNet预测的流水线图,网络拆解为并行的特征网络和测度网络。分两个阶段使用特征网络和测度网络:首先为所有补丁生成特征编码,然后将这些特征配对并推送它们通过测度网络获得分数。

  • UCN【4】
通用对应网络(Universal Correspondence Network,UCN)用于几何和语义匹配的视觉对应,包括从刚性运动到类内形状或外观变化等不同场景。深度测度学习过程,直接学习来保留几何或语义相似性的特征空间。一种卷积空间变换器(convolutional spatial transformer,CST)模拟传统特征(如SIFT)的补丁归一化,可显著提高类内形状变化语义对应(semantic correspondences)的准确性。
如图是UCN和传统方法的比较:各种类型的视觉对应问题需要不同的方法,例如用于稀疏结构的SIFT或SURF,用于密集匹配的DAISY或DSP,用于语义匹配的SIFT flow或FlowWeb。UCN准确有效地学习几何对应、致密轨迹或语义对应的度量空间。
下图是UCN系统概述:网络是全卷积的,由一系列卷积、池化、非线性和卷积空间变换器组成,还有通道L2归一化和对应对比损失函数。作为输入,网络采用图像对应点的一对图像和坐标(蓝色:正,红色:负)。对应于正样本点(来自两个图像)的特征被训练为彼此更接近,而对应于负样本点的特征被训练为相隔一定距离。在最后L2归一化之前和FCNN之后,设置一个卷积空间变换器来归一化补丁或考虑更大的上下文信息。
下图是视觉对应的对比损失函数示意图:需要三个输入,从图像中提取的两个密集特征及其坐标,和用于正负对应对的表。损失函数计算公式如下
其中s=1位正对应对,而s=0为负对应对。
如图比较卷积空间变换器和其他方法的比较:(a)SIFT标准化旋转和缩放;(b)空间变换器将整个图像作为输入来估计变换;(c)卷积空间变换器对特征进行独立变换。

  • DGC-Net【5】
DGC-Net(Dense Geometric Correspondence Network)【5】是一种基于CNN实现从粗到细致密像素对应图(pixel correspondence map)的框架,它利用光流法的优势,并扩展到大变换,提供密集和亚像素精确的估计。训练数据来自合成的变换,也应用于相机姿态估计的问题。
如图所示,一对输入图像被馈入由两个预训练的CNN分支组成的模块,这些分支构成一个特征金字塔。相关层从金字塔的粗层(顶)获取源图像和目标图像的特征图,并估计它们之间的成对相似性。然后,对应图(correspondence map)解码器获取相关层(correlation layer)的输出并直接预测该金字塔在特定层的像素对应关系。最后,以迭代方式细化估计。
为了在特征空间中创建输入图像对的表示,构造了一个有两个共享权重分支的Siamese神经网络。分支用在ImageNet训练的VGG-16架构,并在最后的池化层截断,然后进行L2归一化。在每个分支的不同部分提取特征fs,ft创建具有5-层特征金字塔(从顶部到底部),其分辨率是[15×15, 30×30, 60×60, 120×120, 240×240],在网络训练过程的其余时间固定CNN分支的权重。
为估计两个图像之间的相似性,计算源图像和目标图像的标准化特征图之间的相关体积。不同于光流法,直接计算全局相关性并在相关层前后做L2标准化以强烈减少模糊匹配(见图所示)。
将相关层输出送到5个卷积块(Conv-BN-ReLU)组成的对应图解码器,估计特征金字塔特定层l 的2D致密对应域ω(l)est。这是参数化估计,图中每个预测像素位置属于宽度和高度归一化的图像坐标区间[-1,1]。也就是说,上采样在(l-1)层的预测对应域,让第l层源图像的特征图变形到目标特征。最后,在上采样域,变形源fs(ω(l)est)和目标ft(l)的特征沿着通道维度拼接在一起,并相应地作为输入提供给第l级的对应图解码器。
解码器中每个卷积层被填充以保持特征图的空间分辨率不变。此外,为了能够在金字塔的底层捕获更多空间上下文信息,从l = 3开始,将不同的空洞(dilation)因子添加到卷积块以增加感受野。特征金字塔创建者、相关层和对应图解码器的分层链一起组成CNN架构,称为DGC-Net。
给定图像对和地面实况像素相关映射ωgt,定义分层目标损失函数如下:
其中||.||1是估计的对应图和GT对应图之间的L1距离,M(l)gt 是GT二值掩码(匹配掩码),表示源图像的每个像素在目标是否具有对应关系。
除了DGC-Net生成的像素对应图之外,还直接预测每个对应的置信度。具体来说,通过添加匹配(matchability)分支来修改DGC-Net结构。它包含四个卷积层,输出了概率图(参数化为sigmoid函数),标记预测对应图每个像素的置信度,这样架构称为DGC + M-Net。把此问题作为像素分类任务,优化一个二值交叉熵(BCE),其中逻辑损失(logits loss)定义为:
最终的损失为:
更多的DGC-Net网络细节见图所示。
而DGC+M-Net的一些网络细节见图所示。


参考文献

  • 1. E. Simo-Serra et al., “Discriminative learning of deep convolutional feature point descriptors”. ICCV 2015
  • 2. K Yi et al.,“Learned Invariant Feature Transform”, arXiv 1603.09114, 2016
  • 3. X Xu et al.,“MatchNet: Unifying Feature and Metric Learning for Patch-Based Matching”, CVPR 2015
  • 4. C Choy et al., “Universal Correspondence Network”,NIPS 2016
  • 5. I Melekhov et al, “DGC-Net: Dense Geometric Correspondence Network”, CVPR 2019
本文仅做学术分享,如有侵权,请联系删文。
下载1
在「计算机视觉工坊」公众号后台回复:深度学习,即可下载深度学习算法、3D深度学习、深度学习框架、目标检测、GAN等相关内容近30本pdf书籍。

下载2
在「计算机视觉工坊」公众号后台回复:计算机视觉,即可下载计算机视觉相关17本pdf书籍,包含计算机视觉算法、Python视觉实战、Opencv3.0学习等。

下载3
在「计算机视觉工坊」公众号后台回复:SLAM,即可下载独家SLAM相关视频课程,包含视觉SLAM、激光SLAM精品课程。

重磅!计算机视觉工坊-学习交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有ORB-SLAM系列源码学习、3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、深度估计、学术交流、求职交流等微信群,请扫描下面微信号加群,备注:”研究方向+学校/公司+昵称“,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进去相关微信群。 原创投稿也请联系。

▲长按加微信群或投稿

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的视频课程(三维重建系列三维点云系列结构光系列手眼标定相机标定orb-slam3等视频课程)、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近2000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

 圈里有高质量教程资料、可答疑解惑、助你高效解决问题
觉得有用,麻烦给个赞和在看~  

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/114011
 
282 次点击