Abstract

论文提出了一种新的训练方法,受到了 Lowe’s matching criterion for SIFT的启发。这种新的loss,要比负责的正则方法更好。把这个新的loss方法结合L2Net就得到了HardNet。它具有和SIFT同样的特征维度(128),并且在 wide baseline stereo, patch verification and instance retrieval benchmarks这样的任务上取得了最高水准的表现。

Introduction

Sampling and loss

过程如图1.首先一个batch中的匹配块生成 \(\mathcal{X}=\left(A_{i}, P_{i}\right)_{i=1 . . n}\),A代表anchor,P代表positive。那么每一对就是源于相同的一个3D point。

然后这2n个patches进入图2中的网络,使用得到的特征计算出一个图1中的距离矩阵。

\[d\left(a_{i}, p_{j}\right)=\sqrt{2-2 a_{i} p_{j}}, i=1 . . n, j=1 . . n
\]

然后在这个矩阵里寻找与\(a_i,p_i\)最相近的那两个negative点(不属于同一个3D point)。假设\(a_i\)对应的是M,\(p_i\)对应的是N。倘若\(distance(a_i,M)<distance(p_i,N)\),这样的话,我们就得到了一个triplet的训练数据\((a_i,p_i,M)\),反之则是\((p_i,a_i,N)\)。

然后将这n个配对,送到loss函数里面:

\[L=\frac{1}{n} \sum \max \left(0,1+d\left(a_{i}, p_{i}\right)-\min \left(d\left(a_{i}, p_{j_{\min }}\right), d\left(a_{k_{\min }}, p_{i}\right)\right)\right)
\]

上述的M就是\(p_{j_{min}}\),N就是\(a_{k_{min}}\)

Results

batch size influence

通过上文中的Sampling and loss小节可以看出,HardNet的表现与Bathsize应该有很大关系,

当Bathsize>512之后,模型性能就不会有明显提示了。

Empirical evaluation

Ablation study

这一节作者使用不同的loss函数和不同的采样方法进行研究,得出hardest-in-batch的采样方法是使得模型表现好的主要原因。

Wide baseline stereo

为了检测模型的泛化能力以及对极端情况的应对能力,作者在W1BS这个数据集上进行测试,关于这个数据集的extreme change可参考下图:

结果:

可以看到,HardNet和L2Net的表现相差不大。

Conclusion

  • 作者提出了一种基于Batch的Hard-neagtive miningloss function,使得模型更加容易训练表现更好

Working hard to know your neighbor's margins:Local descriptor learning loss论文笔记的更多相关文章

  1. HardNet解读

    论文:Working hard to know your neighbor’s margins: Local descriptor learning loss  为什么介绍此文:这篇2018cvpr文 ...

  2. Learning Spread-out Local Feature Descriptors

    论文Learning Spread-out Local Feature Descriptors 为什么介绍此文:引入了一种正则化手段,结合其他网络的损失函数,尤其是最新cvpr 2018的hardne ...

  3. KNN(k-nearest neighbor的缩写)又叫最近邻算法

    KNN(k-nearest neighbor的缩写)又叫最近邻算法 机器学习笔记--KNN算法1 前言 Hello ,everyone. 我是小花.大四毕业,留在学校有点事情,就在这里和大家吹吹我们的 ...

  4. cluster analysis in data mining

    https://en.wikipedia.org/wiki/K-means_clustering k-means clustering is a method of vector quantizati ...

  5. 阅读MDN文档之基本盒模型(三)

    Box properties Margin collapsing Adjacent siblings(相邻兄弟) Parent and first/last child Empty blocks Ac ...

  6. face recognition[翻译][深度人脸识别:综述]

    这里翻译下<Deep face recognition: a survey v4>. 1 引言 由于它的非侵入性和自然特征,人脸识别已经成为身份识别中重要的生物认证技术,也已经应用到许多领 ...

  7. 学习笔记之k-nearest neighbors algorithm (k-NN)

    k-nearest neighbors algorithm - Wikipedia https://en.wikipedia.org/wiki/K-nearest_neighbors_algorith ...

  8. LogisticRegression in MLLib

    例子 iris数据训练Logistic模型.特征petal width和petal height,分类目标有三类. import org.apache.spark.mllib.classificati ...

  9. SVM的代码实现-python

    隔了好久木有更新了,因为发现自己numpy的很多操作都忘记了,加上最近有点忙... 接着上次 我们得到的迭代函数为 首先j != yi j = yi import numpy as np def sv ...

随机推荐

  1. 【LeetCode】215. Kth Largest Element in an Array 解题报告(Python & C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 方法一:移除最大值 方法二:排序 方法三:大顶堆 方 ...

  2. 【LeetCode】528. Random Pick with Weight 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 题目地址:https://leetcode.com/problems/random-pi ...

  3. 【LeetCode】200. Number of Islands 岛屿数量

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 DFS BFS 日期 题目地址:https://le ...

  4. 【LeetCode】692. Top K Frequent Words 解题报告(Python)

    [LeetCode]692. Top K Frequent Words 解题报告(Python) 标签: LeetCode 题目地址:https://leetcode.com/problems/top ...

  5. 【LeetCode】706. Design HashMap 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...

  6. hdu-3183A Magic Lamp(贪心)

    题目的意思是: 给你一个大数,然后删减其中的K个数,并且剩下的数还是按原来在的先后次序排列,求所得的那个数最小的那个数. 思路:贪心(要取得数最小,你从左往右选数的时候,选的第一数,就是选后组成数的位 ...

  7. 【因果推断经典论文】Direct and Indirect Effects - Judea Pearl

    Direct and Indirect Effects Author: Judea Pearl UAI 2001 加州大学洛杉矶分校 论文链接:https://dl.acm.org/doi/pdf/1 ...

  8. Redis的各种实现(Jedis、Redisson、Lettuce)

    1.1.Jedis 是Redis的Java实现的客户端.支持基本的数据类型如:String.Hash.List.Set.Sorted Set. 特点:使用阻塞的I/O,方法调用同步,程序流需要等到so ...

  9. [android]打印C++的输出信息在安卓logcat上调试

    #include <android/log.h> //宏定义全局函数:C++打印log到android-debug模式下帮助调试(勿删) //调用方式:slogd("test n ...

  10. docker学习:docker---kafka安装

    下载zookeeper镜像与kafka镜像: docker pull wurstmeister/zookeeper docker pull wurstmeister/kafka 本地启动zookeep ...