论文笔记 — L2-Net: Deep Learning of Discriminative Patch Descriptor in Euclidean Space
论文:
本文主要贡献:
1、提出了一种新的采样策略,使网络在少数的epoch迭代中,接触百万量级的训练样本;
2、基于局部图像块匹配问题,强调度量描述子的相对距离;
3、在中间特征图上加入额外的监督;
4、描述符的紧实性。
基于CNN的局部图像块匹配方法可以分为两类:一是,作为二分类问题,不存在明确的特征描述子概念,好处是准确率相对第二类高很多,但可移植性能差;二是,CNN输出学习的图像块描述子,没有度量学习层,好处是可以作为以前的很多基于手工描述子方法应用的直接替代。
A、网络框架:
左边是输入:32*32*1图像块,输出128的特征描述子;右边是双塔结构,The input of the tower on the left is the same with a solo L2-Net, while the input of the tower on the right is generated by cropping and resizing the central part of the original patches.

B、数据集
Brown dataset 和HPatches dataset 数据集
C、训练数据的采样策略
由于采集的数据patch中正负样本极度不平衡,大量的负样本,之前的方法是选取等量的正负样本作为固定的训练数据集,但这违背了实际中测试数据存在大量负样本的事实。本文采用随机采样的方式,
,其中1和2是匹配点对,经过特征提取网络得到
,通过L2范数计算特征描述子的距离矩阵,其大小为p*p,对角线上的是正样本点对距离,其他位置是负样本。

D、损失函数
包括三个方面:
- (1)描述子相似性。相对的距离度量匹配和不匹配图像块对;
- (2)描述子的紧实性。让更少维度的描述子包含足够多的特征信息,减少冗余,也就是说描述子的维度尽量减少相关性冗余;
- (3)在特征提取网络中间层的特征图增加约束,而不只是在最后,匹配的特征图更相近,不匹配远离。
E、训练及预测
左边框架正常输入64*64*1图像块;右边训练时,用训练好的左边框架参数初始化双塔结构的左边网络,左边固定不变,更新右边参数直至收敛。
数据扩充方式:垂直、水平翻转;选择90,180,270度。


结论:
(1)紧致性学习很重要。由于数据量巨大,对于网络来说,记住数据比学习泛化性特征更容易些,因此如果没有这个约束,网络过拟合严重,学习输出的特征相关性较大,存在特征维度的冗余,因此紧致性约束的重要性高于训练数据选择的策略,同时解决了过拟合问题;
(2)训练样本的选择策略很重要,充分利用数据。
(3)损失函数的设计,从多个角度约束特征描述子的学习,得到更紧致的特征,特征图的约束提高了网络性能。
论文笔记 — L2-Net: Deep Learning of Discriminative Patch Descriptor in Euclidean Space的更多相关文章
- 论文笔记(1):Deep Learning.
论文笔记1:Deep Learning 2015年,深度学习三位大牛(Yann LeCun,Yoshua Bengio & Geoffrey Hinton),合作在Nature ...
- 论文笔记: Dual Deep Network for Visual Tracking
论文笔记: Dual Deep Network for Visual Tracking 2017-10-17 21:57:08 先来看文章的流程吧 ... 可以看到,作者所总结的三个点在于: 1. ...
- ISSCC 2017论文导读 Session 14 Deep Learning Processors,A 2.9TOPS/W Deep Convolutional Neural Network
最近ISSCC2017大会刚刚举行,看了关于Deep Learning处理器的Session 14,有一些不错的东西,在这里记录一下. A 2.9TOPS/W Deep Convolutional N ...
- ISSCC 2017论文导读 Session 14 Deep Learning Processors,A 2.9TOPS/W Deep Convolutional Neural Network SOC
最近ISSCC2017大会刚刚举行,看了关于Deep Learning处理器的Session 14,有一些不错的东西,在这里记录一下. A 2.9TOPS/W Deep Convolutional N ...
- 论文笔记之: Deep Metric Learning via Lifted Structured Feature Embedding
Deep Metric Learning via Lifted Structured Feature Embedding CVPR 2016 摘要:本文提出一种距离度量的方法,充分的发挥 traini ...
- 论文笔记之:Deep Reinforcement Learning with Double Q-learning
Deep Reinforcement Learning with Double Q-learning Google DeepMind Abstract 主流的 Q-learning 算法过高的估计在特 ...
- 论文笔记:Improving Deep Visual Representation for Person Re-identification by Global and Local Image-language Association
Improving Deep Visual Representation for Person Re-identification by Global and Local Image-language ...
- 论文笔记之:Deep Attributes Driven Multi-Camera Person Re-identification
Deep Attributes Driven Multi-Camera Person Re-identification 2017-06-28 21:38:55 [Motivation] 本文 ...
- ISSCC 2017论文导读 Session 14 Deep Learning Processors,DNPU: An 8.1TOPS/W Reconfigurable CNN-RNN
转载请注明,本文出自Bin的专栏http://blog.csdn.net/xbinworld,谢谢! DNPU: An 8.1TOPS/W Reconfigurable CNN-RNN Process ...
随机推荐
- PCL+Qt+VS可视化点云
前言 Point Cloud Library (PCL)是一个功能强大的开源C++库,假设可以使用好PCL将会对我们在LiDAR数据处理领域的研究产生巨大帮助.LiDAR技术经过几十年的发展.眼下国内 ...
- ABAP 断点篇-001
断点技能不足! 6.2.4 可在调试画面设置break-point.方法:在代码前面双击 6.2.5 为指定语句设置断点方法:(1)选择菜单:Breakpoints->Breakpointat ...
- LDA主题模型三连击-入门/理论/代码
目录 概况 为什么需要 LDA是什么 LDA的应用 gensim应用 数学原理 预备知识 抽取模型 样本生成 代码编写 本文将从三个方面介绍LDA主题模型--整体概况.数学推导.动手实现. 关于LDA ...
- Python 模块续 configparser、shutil、XML、paramiko、系统命令、
一.configparse # 注释1 ; 注释2 [section1] # 节点 k1 = v1 # 值 k2:v2 # 值 [section2] # 节点 k1 = v1 # 值 1.获取所有节点 ...
- PAT 天梯赛 L1-023. 输出GPLT 【水】
题目链接 https://www.patest.cn/contests/gplt/L1-023 AC代码 #include <iostream> #include <cstdio&g ...
- 转:CWebBrowser2去除边框、滚动条、右键菜单
http://blog.csdn.net/tangyin025/article/details/8675513 添加CWebBrowser2类 右键项目-〉Add-〉Class...-〉MFC-〉MF ...
- 面向过程编程实例------grep-rl 'root 路径
#应用:grep -rl 'root' /etc import os def deco(func): def wrapper(*args): g=func(*args) next(g) return ...
- Nagios 工作原理
Nagios 工作原理 nagios通过nrpe插件和snmp协议进行主动监控.至于什么是主动监控可以参考上面所述.简单理解决就是nagios按照检测周期主动的获取远程主机的数据.这样一来实时性就要差 ...
- OC_id类型
博客正式开通啦!以后会每天为大家更新知识,将过去学习的笔记发布出来.供大家学习交流. 在Objective-C 中,id 类型是一个独特的数据类型.在概念上,类似Java 的Object 类,可以转 ...
- C++逗号表达式
c++中,逗号表达式的结果是最右边表达式的值