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

来源:互联网 发布:苹果手机日志软件 编辑:程序博客网 时间:2024/06/12 23:44

Abstract

本文提出的MatchNet包含了(1)从patches中提取特征的DCNN(深度卷积神经网络)(2)一个有着三个全连接层的网络。为了保证实验可以复现,本文在标准的数据集上对MatchNet进行训练。我们将MatchNet拆成feature compution和similarity networks 两个连续的阶段。MatchNet在提升准确性的同时减小了存储开销。

1. Introduction

本文的任务是 Patch-based image matching,它在以下这几方面有帮助:(1)wide-baseline stereo (2)object instance recognition (3)fine-grained classification (4)multi-view reconstruction (5)image stitching (6)structure from motion

在patch-based matching任务中联合学习feature representation 和classifier(or distance metric)还未被充分探索。本文就是在这方面进行探索,利用深度神经网络来提取特征,然后用一系列的全连接层来对两个特征描述子进行度量(而非用欧氏距离进行度量,这是度量学习的应用)。

本文的贡献有:

  • 使用了深度神经网络提高了accuracy
  • 在拥有更好性能的同时存储也小(fewer bits)
  • 超越了手工的和基于学习的描述子
  • 公开了训练好的MatchNet模型
  • Feature learning methods
  • Metric learning methods

3. Network architecture

这里写图片描述

3.1 The feature network

feature network 即 fig. 1 A,使用ReLU作为激活函数,相比AlexNet网络fig. 1 A中这个网络的参数更少,没有使用Local Response Normalization or Dropout。网络参数如下表:

3.2 The metric network

fig. 1 B,使用了三层的全连接网络(激活函数为ReLU),FC3使用了Softmax 。这个metric network的输入是一对特征的concatenation,输出是[0,1]区间的两个值,这两个值非负且和为1,可分别看作是两个patches匹配或者不匹配的可能性。

3.3 Two-tower structure with tied parameters

fig. 1 C中有两个feature network,这两个网络共享参数,更新其中一个网络就会连带着更新这两个网络共享的系数。这和Siamese network有些像。该网络是借鉴了Computing the Stereo Matching Cost with a Convolutional Neural Network ,但与之相比,MatchNet包含max-pooling层用来处理scale changes,而且MatchNet拥有更多的卷积层。

在其他设置中,如果在来自两个明显不同的域的patches上定义相似性,则可以将MatchNet框架推广为具有两个共享较少层的塔或具有不同结构的塔。(我认为MatchNet应该可以推广到不同模态数据之间的相似性比较)

3.4 The bottleneck layer

这一层是用来减小特征表示的维度的,然后控制网络的的过拟合。这一层的大小为B,全连接层,fig 4讨论了B的大小对matching performance的影响。

3.5 The preprocessing layer

对输入图片进行标准化。对原始输入灰度图片的每一个像素点(像素值的范围[0, 255])标准化到 (x-128)/160.

4. Training and prediction

Fig 1 中的feature network 和 metric network以一种监督学习的方式进行联合训练,网络训练的目标函数为cross-entropy error

E=1ni=1n[yilog(ŷ i)+(1yi)log(1ŷ i)](1)

网络在有n对patch pairs的数据集上使用SGD训练(batch size=32)
yi 是输入的一对数据 xi 的标签,1代表匹配。ŷ i(1ŷ i)是基于FC3层两个节点的输出值经过了softmax之后的值,ŷ i是式子(1)中标签为1的预测概率值,计算如下:
ŷ i=ev1(xi)ev0(xi)+ev1(xi)(2)

实验中发现learning rate=0.01时候的plain SGD效果最好。

4.1 Sampling in training

Sampling在训练中很重要,因为matching和non-matching pairs的数量非常不平衡。本文用sampler在每个mini-batch中生成数量相等的positives和negatives,这样就不会偏向于negative的决策。
这里写图片描述

4.2 A two-stage prediction pipeline

常用的一种patch-based matching的方案是,有两个patches的集合,每个分别是从两幅图中提取出来的patches,目标是计算一个 N1×N2 的矩阵,N1,N2 分别是两幅图的patches的个数。本文采用feature tower和metric network两个阶段来计算N1×N2 的矩阵。
这里写图片描述
(1)生成所有patches的特征编码
(2)把特征组成一对然后将其输入metric network来得到matching scores,即N1×N2 的矩阵。

阅读全文
0 0