本文提出的MatchNet包含了(1)从patches中提取特征的DCNN(深度卷积神经网络)(2)一个有着三个全连接层的网络。为了保证实验可以复现,本文在标准的数据集上对MatchNet进行训练。我们将MatchNet拆成feature compution和similarity networks 两个连续的阶段。MatchNet在提升准确性的同时减小了存储开销。
本文的任务是 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)还未被充分探索。本文就是在这方面进行探索,利用深度神经网络来提取特征,然后用一系列的全连接层来对两个特征描述子进行度量(而非用欧氏距离进行度量,这是度量学习的应用)。
本文的贡献有:
feature network 即 fig. 1 A,使用ReLU作为激活函数,相比AlexNet网络fig. 1 A中这个网络的参数更少,没有使用Local Response Normalization or Dropout。网络参数如下表:
fig. 1 B,使用了三层的全连接网络(激活函数为ReLU),FC3使用了Softmax 。这个metric network的输入是一对特征的concatenation,输出是[0,1]区间的两个值,这两个值非负且和为1,可分别看作是两个patches匹配或者不匹配的可能性。
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应该可以推广到不同模态数据之间的相似性比较)
这一层是用来减小特征表示的维度的,然后控制网络的的过拟合。这一层的大小为B,全连接层,fig 4讨论了B的大小对matching performance的影响。
对输入图片进行标准化。对原始输入灰度图片的每一个像素点(像素值的范围[0, 255])标准化到 (x-128)/160.
Fig 1 中的feature network 和 metric network以一种监督学习的方式进行联合训练,网络训练的目标函数为cross-entropy error
Sampling在训练中很重要,因为matching和non-matching pairs的数量非常不平衡。本文用sampler在每个mini-batch中生成数量相等的positives和negatives,这样就不会偏向于negative的决策。
常用的一种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 的矩阵。