MatchNet: Unifying Feature and Metric Learning for Patch-Based Matching

摘要:由于在学习特征表示和学习特征比较函数的成功,我们提出了一种统一的方法来结合训练块匹配系统。我们的系统成为MatchNet,由深度卷积网络组成从块来提取特征,和三个全连接层的网络来计算提取特征的相似性。为了确保实验可重复性,我们在标准数据集训练MatchNet,并使用输入采样器来增加训练集用合成实例来减少过拟合。一旦经过训练,我们在匹配实现了更好的计算效率,分解MatchNet并在两个连续步骤分别应用特征计算和相似性网络。我们在标准数据集进行了全面的实验以仔细研究网络各方面的贡献,并与已有的方法进行了比较。我们的结果证明,我们组合的方法提高了比先前最近研究在块匹配数据集提高了精确度,同时降低了描述符的存储要求。

基于块图像特征匹配

learning to Compare Image Patches via Convolutional Neural Network

Image Patch Matching Using Convolutional Descriptors with Euclidean Distance

大体上说,这些文章的思路都是利用一对CNN来提取一对图像特征,然后通过欧氏距离(经典如Saimese网络)或者通过全连接网络(Matchnet)来实现特征的对比,最后通过交叉熵函数来完成优化。

1介绍

基于块的图片匹配方法应用于计算机视觉问题。在块之间找准确的对应关系有着广泛的应用,宽基线立体、目标实例检测、细粒度分类,多视图重建、图片拼接和运动结构。

1999年来,有影响力的SIFT描述符的出现,基于块的匹配研究尝试提高精度和速度。早期的努力集中于识别更好的仿射区域检测器,设计更稳健的局部描述符,探索提高在描述符匹配用备用距离度量。

早期努力在无监督数据驱动学习局部描述符通常优于现代特征描述符,如SURF,ORB。然而,标记训练数据的更大可用性和提高了计算资源最近扭转了这种趋势。导致了新一代学习描述符和比较度量。这些方法通常使用已知地面真实值匹配的大型数据库区别的训练非线性模型,并且作为我们工作的动力。

同时,基于深度卷积神经网络的方法在最近一系列困难的计算机视觉问题上取到了显著进展。包括图像分类、目标检测、人体姿态估计、视频动作识别。这一系列研究强调了联合学习特征表示和分类(距离度量)的好处。这些知识在基于块的匹配没有得到充分研究。

此文,我们提出了统一方法,联合学习深度网络的块表示和鲁棒特征比较。我们MatchNet,每个块都通过卷积神经网络生成固定维度表示与SIFT相似。但是不像SIFT,两个描述符在特征空间比较用欧几里得距离。Matchnet,表示比较用距离度量,实现为一组全连接层。

我们贡献:

1用深度卷积网络基于块的匹配最新系统,显著提高了先前的结果

2改进了先前技术水平的性能使用较小描述符

3使用标准数据集进行了一系列实验,研究系统不同部分的相对贡献,表明了matchnet提高了手工制作和学习描述符添加比较函数。

4提供了用我们自己大型块集合训练的matchnet公共发布

2最近工作

许多最近工作考虑提高块匹配流程检测器—描述符—相似性的一些组件。这里我们讨论了学习描述符和相似性的最近工作,按模板和使用的非线性类型组织。

特征学习方法:把块强度映射的过程非线性编码到描述符中。他们的目标是学习描述符,相对于所选距离度量的相似性和地面真实值相匹配。

度量学习方法学习描述符之间的相似形函数,近似地面真实值概念的块应该相似,实现提高简单相似性函数的结果,大部分欧几里得距离。

语义散列或者嵌入式学习方法学习非线性映射来生成低维度表示,相似性在一些易于计算的距离度量和语义相似性相关。

我们的网络结构和最近立体匹配的与打印相似,明显不同的是我们使用池化层从块来学习紧密表示。Matchnet,宽基线专为视点不变匹配而设计,这是与立体匹配中局部匹配明显不同的问题。比如,宽基线匹配,来自关键点描述符的尺度估计也许不正确。池化层增加了对这种变化稳健网络的鲁棒性。Matchnet有几处不同的结构差异,一个增加的卷积层,两个全连接层,滤波支持和层复杂性的各种差异。

3网络结构

(填充卷积层和池化层,因此输出高度和宽度是输入除以步长)

Matchnet是一个深度网络结构,联合学习特征网络把块映射到特征空间,度量网络映射特征对到相似性。

(双塔提取特征+度量网络比较特征  与传统方法不同,此文度量方式并非欧氏距离而是学出来的。怎么体现学出来的呢——先从两张图像中提patch,将两种patch分别采样,输给两个提取特征的网络,然后将pool4 的输出降维(通过Bottleneck layer),将“双塔”的输出串联起来,输入到 fc 层,两层fc之后,输入给softmax,此时输出 0 或者 1,分别代表匹配或者不匹配,然后将此结果输出到 交叉熵计算loss,通过这样的方式,完成整个网络的训练,只是此处,提取特征的网络层 和 度量网络 是单独训练的,“双塔”的参数也是共享的。)

特征网络:特征网络受AlexNet影响,可是实现好的目标识别表现。我们使用更少的参数没有用局部响应规范化和Dropout。我们用ReLU作为卷积层的非线性。(主要用于提取输入patch的特征,主要根据AlexNet改变而来)(输入64x64块,输出B全连接层)

度量网络:我们的模型,特征的相似性用三个全连接层和ReLU非线性。FC3也用SoftMax。网络收入是特征对的串联。FC3的两个单元输出【0,1】两个值。(二分类)(输出得分)(输入全连接层B  Siamese 连接双塔)

绑定参数的双塔结构:基于块的匹配任务通常假设计算相似性前块经过相同特征编码。因此我们只需要一个特征网络。训练期间,这可以采用两个特征网络来实现,连接到比较网络,双塔共享相同参数。任何塔的更新将用相同的参数。

这种方法类似siamese结构,也使用双塔结构,但是有精心设计的损失函数,而不是度量网络。立体匹配学习网络的最近的预打印也使用双塔加全连接比较网络方法。相反,MatchNet包括池化层来解决尺度改变,目前没有应用到立体重建问题中,相比他有更多的卷积层。

其他设置,相似性定义块的两个显著不同的区域,matchnet框架可以推广位具有两个塔,可以共享更少的层或者塔有不同的结构。(双塔输出连接成度量网络输入。)

瓶颈层:瓶颈层可以用来减少特征表示的维度,控制网络过拟合。他是一个全连接层,大小B,4096(8x8x64)个节点,Pool4的输出和最终特征网络输出之间。我们评估了B如何影响网络性能并绘制了图。(B(64,128,256,512) F(,128,256,512,1024))

预处理层:输入灰度块的每个像素对其强度进行了归一化x【0,255】到(x-128)/160。

训练和预测:特征和度量网络联合训练,用介绍的双塔结构在有监督设置中。最小化交叉熵误差。

训练集n个块对使用随机梯度下降SGD,,批量代大小32。Yi是输入对xi的0/1标签。1表示匹配。Yi和1-yi是softmax激活根据FC3两个节点的值计算,v0(xi)和vi(xi)如下,

Yi当做概率估计。

我们用不同的学习率和动量值进行了试验,发现使用普通SGD0.01的学习率有更高的验证精确度相比于使用更大的学习率或者动量,即使后者设置中收敛的更快。根据网络结构,培训整个网络需要18小时到一周,用学习率计划可以显著加快训练。

4.1 训练采样

训练采样非常重要,匹配和不匹配对非常不平衡,我们使用采样器生成相同数量的正和负在最每个最小批量,这样网络就不会过度厌恶做出消极的决定。采样器也加强多样性防止过拟合到一个限制消极集。

特别的在我们的设置中,训练集已经被分组到匹配快,比如,UBC块数据集被平均分组大小数据集一次读取一组。对于正采样,从分组中随机选择两个,对于负采样,我们使用reservoir采样器,用R块缓冲区大小。在任何时间T,缓冲区保持R块,就行从块流一样均匀采样直到T,允许有效的生成各种不匹配的对。缓冲区代销控制内存和负变化的权衡。在我们的实验,R=128太小导致过拟合,R=16384持续有效。

比如,如果快大小32,在每个循环我们SGD输入16个正集16个负集。通过数据库读取接下来的16个组并从每个组随机选择一对获得正集,网络仍然获得良好的正面覆盖,尤其当平均组大小较小时。通过从存储先前加载的块的存储缓冲器中取样来自不同组的两对来获得16个负集。在前几次迭代中,缓冲区将为空或者仅包含匹配的块。在这种情况下,我们使用最新的正对填充批处理的插槽。

4.2两步预测流程

基于块匹配的常见场景是从两个图像提取块集。目标是计算N1xN2矩阵成对匹配得分,N1N2是图像中块的数量。把每个块添加的全部网络是不高效的,因为特征塔会在同一个快上多次运行。代替,我们分别使用特征塔和度量网络。我们首先获得所有块的特征编码。然后我们把块对输入度量网络获得得分。

MatchNet: Unifying Feature and Metric Learning for Patch-Based Matching相关推荐

  1. 【论文复现,含代码】MatchNet: Unifying Feature and Metric Learning for Patch-Based Matching

    图像匹配问题,历久而弥新.从上个世纪六十年代起,人们开始使用灰度匹配进行匹配,目前,图像匹配的研究重点为图像特征的提取与描述,初始匹配以及精准匹配.目前,深度学习在图像领域正如火如荼,传统的图像匹配问 ...

  2. Re-ID: Person Re-identification by Local Maximal Occurrence Representation and Metric Learning 论文解析

    注: 刚刚看完了这篇论文,顺便整理了一下这篇论文的思路,对论文的方法表示666 项目主页:http://www.cbsr.ia.ac.cn/users/scliao/projects/lomo_xqd ...

  3. 论文笔记之: Deep Metric Learning via Lifted Structured Feature Embedding

    Deep Metric Learning via Lifted Structured Feature Embedding CVPR 2016 摘要:本文提出一种距离度量的方法,充分的发挥 traini ...

  4. 漫谈度量学习(Distance Metric Learning)那些事儿

    ©作者 | 黄春喜 单位 | 香港科技大学 研究方向 | 智能交通 前言 上图为 2018 年 4 月在杭州阿里中心听 Michael Jordan 讲座时所摄,他本人也是 distance metr ...

  5. ICCV 2019 Vehicle Re-identification with Viewpoint-aware Metric Learning

    文章目录 摘要 1.引言 2.相关工作 2.1 关于重识别 2.2 深度度量学习 3.VANet 3.1 度量学习baseline 3.2 视角感知的度量学习 3.2.1 空间内约束 3.2.2 跨空 ...

  6. 机器学习: Metric Learning (度量学习)

    Introduction 度量学习 (Metric Learning) == 距离度量学习 (Distance Metric Learning,DML) == 相似度学习 是人脸识别中常用传统机器学习 ...

  7. 度量学习 度量函数 metric learning deep metric learning 深度度量学习

    曼哈顿距离(CityBlockSimilarity) 同欧式距离相似,都是用于多维数据空间距离的测度. 欧式距离(Euclidean Distance) 用于衡量多维空间中各个点之间的绝对距离.欧式距 ...

  8. Multi-Scale Metric Learning for Few-Shot Learning(用于小样本学习的多尺度度量学习)

    Abstract 本文提出了一种新的小样本学习方法,名字叫多尺度度量学习(multi-scale metric learning, MSML),能提取多尺度特征,学习样本间的多尺度关系,进行少镜头学习 ...

  9. 《A Metric Learning Reality Check》笔记

    [1] 是 metric learning 的一篇学术打假文,回顾了 deep metric learning 领域两个经典工作(contrastive loss,triplet loss)和近年来( ...

最新文章

  1. input限制文字个数但是输入中文时会被切断_Python文字转换语音,让你的文字会「说话」抠脚大汉秒变撒娇萌妹...
  2. rabbitmq java文档_《RabbitMQ官方文档》订阅与发布
  3. nginx通过lua从日志中获得请求响应体
  4. dbms数据库管理系统_基本数据库管理系统(DBMS)能力问题和解答
  5. uinavigation样式
  6. linux 自动连接无限,hotplug应用实例:自动连接无线网
  7. React 入门学习笔记2
  8. Java—System类和Runtime类
  9. [研究笔记]Lambda表达式学习笔记
  10. MongoDB与Tokyo Tyrant性能比较(2):并发写入操作
  11. shell 命令 cmd命令
  12. activiti7---候选人
  13. opencv-contrib sfm扩展模块下载安装
  14. BurpSuite CA证书安装(拦截HTTPS协议)
  15. 小区人脸识别门禁系统解决方案
  16. U-Mail邮件网关智能DNS技术,解决海外邮件接收问题
  17. 外卖行业现状分析_2020餐饮外卖行业市场前景及现状分析
  18. QingYan相机隐私政策
  19. Java实现医疗系统
  20. [2020.8.3]联想 A5(L18011) Magisk ROOT 纯净无推广 一键刷机 ZUI_3.9.068

热门文章

  1. 文件加密共享防止转发-冷杉云盘
  2. Java常见的加密解密
  3. 如何用Word编辑参考文献(转)
  4. 有关第四章css的介绍
  5. R语言导入数据文件(数据导入、加载、读取)、使用readr包中的read_csv函数导入逗号分割文件CSV(Comma Delimited Text File)
  6. 中国皇帝顺序(全)---
  7. 关于Muster 5.5.7的奇怪问题
  8. 解决有道云笔记中Markdown语法中代码块字体太小的问题
  9. nasm做一个简单的操作系统写字本(1)
  10. 宠物狗的种类 - 风 火 - 网易博客