Learning to Compare Image Patches via Convolutional Neural Networks

Learning to Compare Image Patches via Convolutional Neural Networks

摘要

本文展示了如何从图像数据中学习(不借助手动设计特征),比较块的一般相似性函数,这是许多计算机视觉基本问题。为了实现这样的功能,我们设计了基于CNN的模型,训练来应对图像表面的各种变化。最后我们探索了各种神经网络哪一种最适合这种任务。我们也证明这方法由于目前其他方法。

 

1 介绍

 

预测两个块是否相互对应具有挑战,存在太多外观因素,视点变化、场景总体照明变化、遮挡、阴影、相机设置差异。引起许多手动设计特征符方法发展。1但手动设计特征符无法以最佳方式考虑确定快外观上的所有上述因素。2现在可以轻松访问包含图像块对应的大型数据库。引发我们思考:用这些数据集自动学习图像块的相似性函数?

本文目标解决上述问题,因此,我们目标是从头生成块相似性功能,不用手动设计,直接从已注释的原始图像对学习。

 

贡献如下

1不经手动设计,直接从图像块学习相似性函数,隐含考虑各种外观变化和影响

2探索各种网络优缺点

3实验

 

2相关工作

传统块比较方法使用特征符和欧氏距离平方。许多特征符都是手动设计SIFT  DAISY。最近提出学习特征符方法(DAISY特征符学习区域池化和降维)。提出凸过程来训练所有任务。

 

我们受卷积神经网络启发,模型训练过程设计高度非凸函数。Fisher等人分析了AlexNet卷积描述符的性能,也提出无监督训练方式来推导优于SIFT 和Imagenet训练网络的描述符。

 

Zbontar和lecun 提出基于CNN的方法来比较块在一个小的基线立体问题中计算代价。然后,他们仅比较非常小的块(如窄基线立体)。我们致力于相似性函数,解决更高外观变化,更多应用。

 

3结构

网络输入图像块。

有几种方式通过网络处理块和在这种情况下如何进行信息共享。出于这个原因,我们探索测试了各种模型。体系结构源于他们解决这些问题的不同方式。当构造相似性函数来比较图像块时,首先选择计算每个块的描述符,然后在描述符之上构造相似性?或者,选择跳过与描述符计算相关的部分并直接进行相似性估计。

 

Learning to Compare Image Patches via Convolutional Neural Networks_第1张图片

Learning to Compare Image Patches via Convolutional Neural Networks_第2张图片

Learning to Compare Image Patches via Convolutional Neural Networks_第3张图片

3.1 三种基础模型

第一种  

Siamese:这种网络结构类似于描述符的想法。两个结构和权重完全相同的分支。每个分支将两个块中的一个作为输入,然后应用一系列卷积、ReLU。最大池化层。输出分支连接在顶层网络(包括线性全连接和ReLU)。我们网络使用俩线性全连接层(512隐藏单元),ReLu激活。

Siamese每个分支看做特征符计算模块,顶层网络看做相似性函数。对于匹配两个块的任务,首先用分支独立计算描述符,然后用顶部网络匹配(距离函数)。

 

第二种

Pseudo-Siamese(伪):复杂性而言这种网络可以视为Siamese和2channel两者之间。拥有和Siamese相同结构,除了俩分支权重不耦合、不共享。训练期间这增加了训练期间参数调整数量,相比受限的Siamese提供了更多灵活性,但不像2-channel那么多。另一方面,测试时保持了Siamese网络效率。

 

第三种

2-channel:与以前模型不同,结构中没有描述符直接概念。简单的将输入对的两个块视为2通道图片,直接馈送到网络的第一个卷积层。这种情况下,网络底部有一系列卷积/ReLU 最大池化组成。然后将部分输出作为输入传送给顶层模块(有一个输出的全连接线性决策层)。提供了更大灵活性,因为他从两个块的联合处理开始。训练速度快,测试时间昂贵,因为他要求所有块组合以强有力方式相互测试。

 

3.2 另外模型

 

第四种

深度网络:应用simonyan和zisserman提出的技术建议,把更大的卷积层分解成小的3x3的内核,reLu激活。增加了网络内部非线性,使决策更具有区分性。初始化一个网络可能很困哪,但不会像往常一样观察这种行为并从头开始训练网络。将这种技术应用于我们模型,最终结构的卷积部分包括一个4x4的卷积层和6个3x3的卷积层,ReLU激活函数。

第五种

中央环绕双流网络:包含两个独立流:中央和环绕,能够处理两种不同分辨率的空间域。中央高分辨率流接受2个从每个64x64输入块裁剪的中心32x32块。环绕低分辨率流接受2个原始输入块一半下采样生成的32x32块。使用双流网络原因是多分辨率信息对于提高图像匹配的性能是重要的。在两者中,我们想更多焦点放在中央像素上,更少关注边缘像素,可以帮助提高匹配精度(将池化应用于下采样,外围像素在匹配期间允许有更多方差)。总输入维度在这种情况下减少了两倍,因此,训练过程更快。

 

第六种

空间金字塔池化(SPP)网络用于块比较:假设网络输入块64x64大小,网络最后一个卷积层需要预定义的维度。因此当我们比较任意大小的块时,需要调整上述空间维度。另一种处理任意大小块的方法是调整空间池化域大小——使其与输入大小成比例。既可以保证需要大小又不用降低分辨率。实质在于在网络的卷积层和全连接层插入空间金字塔池化层。这样一个层通过空间池化合并了最后一个卷积层的特征。

你可能感兴趣的:(Learning to Compare Image Patches via Convolutional Neural Networks)