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

CVPR  2015

  本来都写到一半了,突然笔记本死机了,泪崩!好吧,重新写!本文提出了一种联合的学习patch表示的一个深度网络鲁棒的特征比较的网络结构。与传统的像SIFT特征点利用欧氏距离进行距离计算的方式不同,本文是利用全连接层,通过学习到的距离度量来表示两个描述符的相似性。

  本文的贡献点如下:

  1. 提出了一个新的利用深度网络架构基于patch的匹配来明显的改善了效果;

  2. 利用更少的描述符,得到了比state-of-the-art更好的结果;

  3. 实验研究了该系统的各个成分的有效作用,表明,MatchNet改善了手工设计 和 学习到的描述符加上对比函数;

  4. 最后,作者 release 了训练的 MatchNet模型。


  首先来看本文的网络架构:

  

  主要有如下几个成分:

  A. Feature Network.

  主要用于提取输入patch的特征,主要根据AlexNet改变而来,有些许变化。主要的卷积和pool层的两段分别有 preprocess layer bottlebeck layer,各自起到归一化数据和降维,防止过拟合的作用。

  B: Metric Network.

  主要用于feature Comparison,3层fc 加上 softmax。

  C: 在训练阶段,特征网络用作“双塔”,共享参数。双塔的输出串联在一起作为度量网络的输入。The entire network is trained on labeled patch-pairs generated from the sampler to minimize the cross-entropy loss. 在预测的时候,这两个子网络A 和 B 方便的用在 two-stage pipeline. 如下图所示:

  


  MatchNet 的具体参数如下表所示,注意Bottleneck 和 FC 中参数的选择。

  


  接下来看看“网络的训练和测试”,即:

  特征和度量网络联合的训练,利用随机梯度下降的方法,可以最小化下面的交叉熵损失函数:

  其中,yi 是输入pair xi 的0/1标签。1代表匹配。带箭头的 yi 和 1-yi 分别表示 softmax activations,是在FC3 上的两个点v0(xi) 和 v1(xi)计算得来的。计算公式如下:

  上面公式中,带箭头的 yi 用来表示公式1中预测标签为1的概率。

  

  由于数据正负样本的不平衡性,会导致实验精度的降低,本文采用采样的训练方法,在一个batchsize中,选择一半正样本,一半负样本进行训练。分别将patch输入给特征塔 和 度量网络,单独的进行训练,分为两个阶段进行。首先,对所有的patch进行特征编码,然后,我们将feature进行成对处理,输入给度量矩阵然后得到其scores。


  算法总结:

    

  实验结果贴图:

  

     我的感受:

  看完这篇文章,总体来说,有点懵逼!奇怪的是,作者竟然讲的津津有味!还记得开篇,作者说这文章的主要贡献点是提出了一种训练网络提取feature 和 度量feature之间的相似性。Well,提取feature主要体现在“双峰”上,哦,我错了,是“双塔”。这个无可厚非,到了全连接层,就是要得到的feature了。那么,度量feature之间的相似性,体现在哪里呢?哦,对,体现在最后最后的 全连接层上。那么,与传统方法的不同在于,本文的度量方式,并非简单的欧氏距离,而是学出来的。

    怎么体现学出来的呢???

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

  讲到这里,也许就是这个文章的主要内容了。Ok,该怎么借鉴,就看自己的了。

  附一张美照,哈哈,明天实验室整体出动去happy,玩真人 CS 和 烧烤,突然感觉好开心啊。。哈哈。。。

  

  

论文笔记之:MatchNet: Unifying Feature and Metric Learning for Patch-Based Matching的更多相关文章

  1. 配置和运行 MatchNet CVPR 2015 MatchNet: Unifying Feature and Metric Learning for Patch-Based Matching

    配置和运行 MatchNet CVPR 2015 GitHub: https://github.com/hanxf/matchnet 最近一个同学在配置,测试这个网络,但是总是遇到各种问题. 我也尝试 ...

  2. 论文笔记 — MatchNet: Unifying Feature and Metric Learning for Patch-Based Matching

    论文:https://github.com/ei1994/my_reference_library/tree/master/papers 本文的贡献点如下: 1. 提出了一个新的利用深度网络架构基于p ...

  3. 论文笔记之:Multiple Feature Fusion via Weighted Entropy for Visual Tracking

    Multiple Feature Fusion via Weighted Entropy for Visual Tracking ICCV 2015 本文主要考虑的是一个多特征融合的问题.如何有效的进 ...

  4. 论文笔记系列-Neural Architecture Search With Reinforcement Learning

    摘要 神经网络在多个领域都取得了不错的成绩,但是神经网络的合理设计却是比较困难的.在本篇论文中,作者使用 递归网络去省城神经网络的模型描述,并且使用 增强学习训练RNN,以使得生成得到的模型在验证集上 ...

  5. 论文笔记:Deep Attentive Tracking via Reciprocative Learning

    Deep Attentive Tracking via Reciprocative Learning NIPS18_tracking Type:Tracking-By-Detection 本篇论文地主 ...

  6. 论文笔记:(CVPR2017)PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation

    目录 一. 存在的问题 二. 解决的方案 1.点云特征 2.解决方法 三. 网络结构 四. 理论证明 五.实验效果 1.应用 (1)分类: ModelNet40数据集 (2)部件分割:ShapeNet ...

  7. 论文笔记之:Large Scale Distributed Semi-Supervised Learning Using Streaming Approximation

    Large Scale Distributed Semi-Supervised Learning Using Streaming Approximation Google  2016.10.06 官方 ...

  8. 论文笔记(6):Weakly-and Semi-Supervised Learning of a Deep Convolutional Network for Semantic Image Segmentation

    这篇文章的主要贡献点在于: 1.实验证明仅仅利用图像整体的弱标签很难训练出很好的分割模型: 2.可以利用bounding box来进行训练,并且得到了较好的结果,这样可以代替用pixel-level训 ...

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

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

随机推荐

  1. RelativeLayout相对布局中拖放控件的办法

    相对布局中拖了一个控件以后,要拖放第二个空间,死活拖不进去.仔细查看了鼠标的状况,发现要把第二个控件拖到第一个控件的周围,才能成功.果然是相对布局.

  2. JS 原型继承的几种方法

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. (转)JS加载顺序

    原文:http://blog.csdn.net/dannywj1371/article/details/7048076 JS加载顺序 做一名合格的前端开发工程师(12篇)——第一篇 Javascrip ...

  4. ubuntu  输入时弹出剪切板候选项

    fcitx很坑的把这个功能的快捷键设置成了ctrl + ;结果我在用vim的时候怎么也 没法输入command 不知道是哪次更新引入的,简直是坑人! 我找了半天系统设置都没找到这个快捷键是在哪设置的. ...

  5. 嵌入式 -- WINKHUB 边信道攻击 (NAND Glitch)

    0x00 前言 随着物联网IOT的飞速发展,各类嵌入式设备, 路由器安全研究也越来越火. 但因为跟以往纯软件安全研究的要求不同, 这类研究往往需要结合相应的硬件知识. 很多朋友困惑如何开始, 甚至卡在 ...

  6. iOS:开发者中心证书创建流程

    一,首先点击开发者首页(https://developer.apple.com/)里面的Member Center.二,输入开发者账号和密码,点击sign in登录.三,点击Certificates, ...

  7. HDU5441 Travel 并查集

    http://acm.hdu.edu.cn/showproblem.php?pid=5441 无向图,n个点,m条带权边,q次询问,给出数值d,点a可以到点b当且仅当存在一条路线其中最大的权值不超过d ...

  8. 破解 Rith's CrackMe #1(对比IDA查看动态分析中的MFC函数名)

    系统 : Windows xp 程序 : Rith's CrackMe #1 程序下载地址 :http://pan.baidu.com/s/1gecW9Qr 要求 : 注册机编写 使用工具 : IDA ...

  9. 16、SQL基础整理(触发器.方便备份)

    触发器(方便备份) 本质上还是一个存储过程,只不过不是通过exec来调用执行,而是通过增删改数据库的操作来执行(可以操作视图) 全部禁用触发器 alter table teacher disable ...

  10. 创建XML文档结构

    static void CreateXML(string outputPath) { XmlDocument _xmlDoc = new XmlDocument(); string _xmlNode ...