卷积神经网络使用局部权值[17]共享的特点,使得该模型在识别位移、缩放、扭曲、视点变化上,相较于其他网络模型来说,识别良好。在基于由网络负责学习[16],使用传统算法进行人工设计的过滤器的背景下,对于人工设计特征及先验知识依赖较少[13]是卷积神经网络的又一大优势。
2 相关工作
图像块比较的传统方法是使用描述符和一个欧氏平方距离,大多数特征描述符都是人工设计的SIFT[2]或DAISY[9]。最近,有人提出了用于学习描述符的新方法[10](例如,类DAISY描述符池区域学习和降维方法[11]),这次我们准备选用一种最近热门的方法——使用卷积神经网络进行训练。
受近期深度学习良好发展的启发[20,21,22,23],这次做法决定使用卷积神经网络模型。上述这些模型在训练中涉及到高度非凸目标函数,但都表现出各个方面的良好性能[18]。Fischer等人[23]分析了在Mikolajczyk数据集,AlexNet网络中卷积描述符(在Imagenet数据集[5]中训练)性能,结果指出,除模糊的情况外,这些卷积描述符优于在大多数情况下SIFT的性能。
在[28]中,Zbontar和LeCun提出了一种基于CNN的方法来比较图像块,该方法在使用KITTI数据集时,计算窄基线立体问题中取得了良好性能。然而,这项工作的只是重点比较了像在狭窄的基线立体的那些非常小的图像对。与此相反,此次的目标是构建一个相似功能函数,可以考虑更广泛的外观变化,并且可以在更广泛和更有挑战性的应用场景,例如,宽基线立体图像,特征匹配和图像检索等等。
3 卷积神经网络结构
3。1 各层结构
卷积神经网络是一种多层神经网络,它主要包括卷积层,池层和顶部的全连接层。在图像处理中,卷积层的输入是一个的图像,其中表示图像的大小,表示通道的数量。例如,一个RGB图像的=3,卷积层的输出大小为,卷积层有个过滤器,其中需要小于或者等于图像的维度,可以与通道数相同,也可根据每个卷积核而变化。过滤器的大小决定了连接层的结构,并且连接层产生了个特征图,每个特征图被再次采样或者输送到池层。下图展示了一种CNN模型,其中包括卷积和下采样的示例。
卷积层之上有一些完全连接层,这些连接层都类似于一个标准神经网络层。网络中的大多数层都会有多个或一个特征图。
卷积层的主要目的就是特征加深,以及降噪处理,理想的结果是恰好拿到所需要的特征,并将不需要的干扰全部去除。
对于卷积层的特征加深,有个比较通俗的故事来解释,即一个路人甲,在大街上扇路人乙的耳光,当第一次扇时,乙脸上被扇的痕迹并不是很清楚,不过当一次又一次连续快速地被扇之后,乙脸上的伤痕就变得更加明显。
池层是很常见的在一个卷积神经网络架构中周期性地插入在卷积层之间在一种层。它的功能是逐步减少的表示的空间大小,以减少网络中参数数量和的计算量,并也由此来控制过度拟合。汇集层对每一个输入单独处理,调整大小以及其他操作。
池层的主要目的是减少特征,减少参数,不过它的功能不仅于此。池层的目的是为了保持某种不变性,常见的有3种:mean-pooling,max-pooling和Stochastic-pooling。其中,mean-pooling的主要功能是周围特征点求平均,max-pooling的功能为对周围特征点取最大。一般来说,mean-pooling能减小领域大小受限造成的估计在方差过大这种误差,图像的北京信息保留较为完全,而max-pooling则会更多的保留纹理信息、框架等特征。而Stochastic-pooling的方法比较特殊,却也比较简单,对其特征中按照元素大小来线性确定选中概率,也就是说,元素值越大,选中的概率也就越大[24]。文献综述