论文笔记 — 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 ...
随机推荐
- 0x04 MySQl 表操作
0x01 存储引擎介绍 存储引擎即表类型,mysql根据不同的表类型会有不同的处理机制 详见:http://www.cnblogs.com/linhaifeng/articles/7213670.ht ...
- 部署samba
1.首先需要关闭防火墙 2,创建用户名 3.IP地址配置ping下能不能成功 4.yum install samba -y 进行软件包的安装 5,vim修改.etc/samba/smb.conf/的配 ...
- Hard模式学编程
靖难: 我一直推崇一种学习编程的方法,就是learn programming the hard way,我把它翻译为Hard模式学编程 . 我觉得他有以下几个要领: 1. 一开始学习的时候,要尽量去化 ...
- 【生产问题】-dbcc checkdb报错-数据页故障
更多操作参考:https://www.cnblogs.com/gered/p/9435282.html [生产问题]-dbcc checkdb报错-数据页故障 数据页故障,索引页故障 use db_t ...
- 云原生应用开发12-Factors
英文地址:https://12factor.net/ 中文地址:https://12factor.net/zh_cn/ 文章内容 简介 如今,软件通常会作为一种服务来交付,它们被称为网络应用程序,或软 ...
- JAVA使用DES加密解密
在使用DES加密解密的时候,遇到了一些问题,廖记一下.如有哪位大神亲临留言指点,不胜感激. 先上代码: public DESUtil() { } //密码,长度要是8的倍数 注意此处为简单密码 简单应 ...
- JavaScript:学习笔记(5)——箭头函数=>以及实践
JavaScript:学习笔记(5)——箭头函数=>以及实践 ES6标准新增了一种新的函数:Arrow Function(箭头函数).本文参考的链接如下: MDN箭头函数:https://dev ...
- spark学习(2)--hadoop安装、配置
环境: 三台机器 ubuntu14.04 hadoop2.7.5 jdk-8u161-linux-x64.tar.gz (jdk1.8) 架构: machine101 :名称节点.数据节点.Secon ...
- tar软件安装
安装tar ./configure make sudo make install
- or and 运算符与 pyhton编码
运算符 # x or y 如果 x 为真,则值为x,否则为y 1 print(4 or 3) # 4 2 print(2 or 3) # 2 3 print(1 or 3) # 1 4 print(0 ...