一篇BMVC18的论文,关于semantic keypoints matching、dense matching的工作,感觉比纯patch matching有意思,记录一下。

1. 摘要

  提出一种针对correspondence matching的直接解决方案。没有采用一贯的基于正负样本对(一般需要困难负样本挖掘)的解决方案,本文提出了一种相似性热图生成器(similarity heatmap generator )来直接处理。对于所有query points直接在目标图像中生成相似性热图。结果大部分做到了SOTA。

2. 介绍

Correspondence search在好多领域都很重要。这一任务可以有很多变体:finding exact matches, e.g., in stereo matching, to finding semantic correspondence。早期工作肯定依赖于SIFT,SURF,近来都用siamese net做,例如用预训练VGG做image-to-image semantic keypoint matching ,其共同点都是要不利用一个matching 框架或在描述子空间搜索最近邻。然而作者认为这些工作都没有直接针对精确对应点定位而训练。

作者以精确对应匹配为目标,端到端搭建了包括feature generatormatch network两个组成部分的网络。heatmap的峰值就是目标图像的位置。heatmaps based representation可以实现 N-pairs based metric learning, 也即无需困难负样本采样。

本文的框架可以用来预测稀疏抑或稠密的视觉对应关系。利用多类分类损失来训练网络,且不含有spatial transformer layers。且我们的方法直接在raw images上操作,不需region proposals。评估数据集有:PF-Pascal , PF-Willow , Pascal-Parts , the KITTI-Flow 2015 [19] and MPI Sintel [4] datasets 。网络trained from sctatch。

总结贡献如下:

  • 提出一个端到端的方法来解决correspondence search问题。
  • 所提出的matching network可以被扩展到任何标准的深度网络来端到端解决精确对应匹配问题。
  • 基于热图的表示enables N-pairs based metric learning,且无需困难负样本采样(triplet、contrastive divergence based metric learning)。

3. 相关工作

Correspondence search是一个CV中的基础问题,早期有SIFT\SURF\DAISY。接着Siamese net被用来patch similarity、face embedding、stereo matching,又有人利用预训练的net来做semantic correspondence search。利用triplet loss做fine-grained 图像ranking。又有Siamese net利用内积layer和多分类loss 做高效视差估计。尽管表现都很好,但之前的方法都是估计patch-patchpatch-image相似性,且对于多关键点的匹配相似性需要训练测试时多次前向传播。

近来的方法,基于image-imagesemantic keypoints matching被提出。Choy提出的“Universal Correspondence Network”+spatial transformer layers利用metric learning方法高效训练,对于匹配多个关键点在预测时需要一次单向传播。然而因为是metric learning,需要额外的困难负样本挖掘。所以额外引入了distance measure和k近邻超参数。与之相比我们提出的端到端网络不需困难负样本挖掘。Kim提出了一个全卷积自相似性描述子对于稠密语义关键点匹配,然鹅他们的方法仍需要在顶端利用matching framework来实现对应关系。相比我们的方法是self contained且直接预测correspondences。【10】提出利用appearances和geometry匹配一对图像中的region proposals。我们的方法只需要利用appearances,无需region proposals。

我们思路来源于论文Improved Deep Metric Learning with Multi-class N-pair Loss Objective。文中提出了N-pairs loss,比contrastive divergence和triplet loss实现了更好的结果。然而他们的方法是为了实现patched based matching。而本文利用N-pairs loss是为了解决key points matching。

4. Correspendence Search

解释Correspendence Search:给定source image I1,I1中有query points pn,此外目标target image I2,目标很明确就是要找target image中与I1中每个关键点匹配的关键点qn。框架如图1,包括feature generatormatching network

feature generator即以source image I1和target image I2为输入,生成特征F1和F2。matching network以F1、F2为输入生成N个相似性热图,对于N个query points而言。

1) Feature Generator

如图1,两个siamese分支都是feature generator,包含了两份google-net拷贝。输入图片,输出特征图F1,F2。

2) Matching Network

用来生成peaked similarity热图,对于目标image中的每个query point而言。训练时最小化预测的相似图与gt的差异,无需困难负样本挖掘,因为这个网络已将其作为训练的一部分来产生所有query point的负样本的不相似特征。网络结构在图2。包含一系列简单层,无可训练参数。图很直观了,不多做解释。

从图2可以看到matching network主要有7个操作:Crop layer、Reshape R1、Copy、Reshape R2、Dot Product、SoftMax、Reshape R3。很好理解,这里直接粘过来:

内积操作就是对两个特征处理结果的结合:

内积层高效计算每个cropped特征与F2中的每个特征的相似度。

训练:

为每个query point赋ground truth:

训练样本:

最小化预测S与真值S之间的交叉熵损失:

测试:

为每个query点pn预测一个对应的匹配点qn:

qn即为所预测的相似度图中的峰值peak。在定位peak之前利用bilinear-sampling来上采样相似度图。

5. 实验

semantic keypoints matchingdense matching两个任务上做实验。

1)semantic keypoints matching 

数据集:PF-PASCAL [9], PF-Willow [9] and Pascal-Parts [30] datasets

评价指标:PCK

2)dense correspondences 

数据集: KITTI-Flow 2015 [19] and MPI Sintel [4] benchmarks

DAISY [27], DSP [12], and DM [20],这些传统方法 应用 global optimization作为预处理步骤,实现了更精准的对应。本文没有采用任何预处理,和spatial transformer layers,没有明显的过拟合。达到了SOTA。

Direct Shot Correspondence Matching的更多相关文章

  1. PatentTips - Improving security in a virtual machine host

    BACKGROUND Computer viruses are a common problem for computer users. One typical mode of attack is t ...

  2. 【VS开发】设备控制台 (DevCon.exe) 示例

    设备控制台 (DevCon.exe) 示例 本部分提供以下设备控制台 (DevCon.exe) 命令的示例: DevCon HwIDs 示例 1:查找所有硬件 ID 示例 2:使用模式查找硬件 ID ...

  3. Matching Networks for One Shot Learning

    1. Introduction In this work, inspired by metric learning based on deep neural features and memory a ...

  4. Literature Review: Improving Image-Based Localization by Active Correspondence Search

    Abstract Input: A query image Source: A point cloud reconstruction of a large scene (有一百多万3D点) Resul ...

  5. SSD: Single Shot MultiBox Detector

    By Wei Liu, Dragomir Anguelov, Dumitru Erhan, Christian Szegedy, Scott Reed, Cheng-Yang Fu, Alexande ...

  6. (转)Paper list of Meta Learning/ Learning to Learn/ One Shot Learning/ Lifelong Learning

    Meta Learning/ Learning to Learn/ One Shot Learning/ Lifelong Learning 2018-08-03 19:16:56 本文转自:http ...

  7. Matching (2)

    HALCON 10.0  II-B 3.1 Gray-Value-Based Matching 基于灰度的匹配是一个非常经典的方法,它仅适用于对象的不模糊,不缺失,灰度值不变化.适用于对象旋转转.注意 ...

  8. [论文理解]SSD:Single Shot MultiBox Detector

    SSD:Single Shot MultiBox Detector Intro SSD是一套one-stage算法实现目标检测的框架,速度很快,在当时速度超过了yolo,精度也可以达到two-stag ...

  9. 论文阅读: Direct Monocular Odometry Using Points and Lines

    Direct Monocular Odometry Using Points and Lines Abstract 大多数VO都用点: 特征匹配 / 基于像素intensity的直接法关联. 我们做了 ...

随机推荐

  1. CodeForces621E 快速矩阵幂优化dp

    有时些候在用快速矩阵幂优化dp的时候,它的矩阵乘法是不那么容易被具体为题目背景的意思的,大多数时候难以理解矩阵之间相乘的实际意义,正如有时候我们不知道现在在做手头这些事情的意义,但倘若是因一个目标而去 ...

  2. JAVA核心技术I---JAVA基础知识(二进制文件读写和zip文件读写)

    一:二进制文件读写 (一)写文件 –先创建文件,写入数据,关闭文件 –FileOutputStream, BufferedOutputStream,DataOutputStream –DataOutp ...

  3. 正则表达式基于JavaScript的入门详解

    关于正则表达式,和很多前辈聊起这个知识点时,他们的反馈都比聊其他技术谦逊,而和很多刚入门的程序员讨论时甚至会有觉得你看不起他. 的确,正则表达式从通常的应用来看,的确不难,比如电话,邮箱等验证.语法, ...

  4. 2018牛客网暑期ACM多校训练营(第二场)G Transform(二分)

    题意 在一个数轴上有n个集装箱,第 i 个集装箱的位置为x[i],且在集装箱内装有a[i]件货物,现在将这些集装箱内的货物进行移动(将一件货物从第 i 个集装箱移动到第 j 个集装箱的花费就为2*ab ...

  5. C语言宏定义##连接符和#符的使用

    1. 关于宏(Macro) 属于编译器预处理的范畴,属于编译器概念(而非运行期概念). 2. 关于# #的功能:是 将其后面的宏参数进行 字符串化操作(Stringfication),即:在对它所引用 ...

  6. 转载 --- SKLearn中预测准确率函数介绍

    混淆矩阵 confusion_matrix 下面将一一给出'tp','fp','fn'的具体含义: 准确率: 所有识别为"1"的数据中,正确的比率是多少. 如识别出来100个结果是 ...

  7. vue-router导航钩子

    Vue路由中的导航钩子,可以用来拦截导航,让它完成跳转. 全局导航钩子 当一个导航触发时,全局的 before 钩子按照创建顺序调用.钩子是异步解析执行,此时导航在所有钩子 resolve 完之前一直 ...

  8. SpringBoot系列: 与Spring Rest服务交互数据

    不管是单体应用还是微服务应用, 现在都流行Restful风格,  下图是一个比较典型的使用rest的应用架构, 该应用不仅使用database数据源, 而且用到了一个Weather微服务, 另一方面, ...

  9. SpringBoot系列: Java应用程序传参和SpringBoot参数文件

    ===========================向java 程序传参的几种形式:===========================1. 使用 OS 环境变量. 这个不推荐. 2. 使用JVM ...

  10. IPv6地址测试宏