本博客仅为作者记笔记之用,不对之处,望见谅,欢迎批评指正。
更多相关博客请查阅:http://blog.csdn.net/weixin_39779106;
如需转载,请附上本文链接:http://blog.csdn.net/weixin_39779106/article/details/78993604
一、摘要
最近卷积神经网络算法(CNN)在众多识别领域取得了最好成绩,本文首次提出将CNN与空间和序列滤波器相结合应用于地点识别问题。本文所提出的系统在70km基准的地点识别数据集上取得了相较于当前最好的地点识别算法性能75%的提升。本文对CNN每一层得到的结果进行了详细实验(试图理解CNN工作原理并选出性能最好的结果)。
二、介绍
地点识别可以被理解成图像检索问题,是由确定当前场景和先前访问位置之间是否匹配来构成的。在目前视觉SLAM如FAB-MAP中通常利用“词袋(bag of words,BoW)”法来实现地点识别,词袋法通常基于局部视觉特征匹配,如利用SIFT、SURF、ORB等特征。然而最近Krizhevsky等人(提出AlexNet,本文实际用的网络就是AlexNet)发现利用大量数据训练得到的CNN特征性能比传统局部视觉特征好,Donahue等人的研究表明利用ImageNet训练出的CNN的中间层特征较BoW可以更有效地去除某些域适应性研究中的数据集偏差。
因此在本文中,我们研究是否可以将深度学习在其他识别问题中的优势移植到地点识别问题中来。我们提出了一种基于深度学习的地点识别算法,如图一所示,该算法可以比较由ImageNet训练得到的CNN中每一层特征的性能,并结合空间序列滤波方法提高地点识别性能。
三、相关工作
- 基于传统局部视觉特征以及BoW方法不在此详细介绍,具体内容详见原论文。
- 本节介绍与地点识别相关的卷积神经网络。最早出现与地点识别相关的图像检索问题,将当前图像与数据库中图像进行对比从而找到与向前图像包含同样物体或场景的图像,Babenko等人在2014年利用CNN的中间层特征来完成图像检索任务并取得了相当好的性能。值得注意的是,最佳性能是由中间层特征取得的而非最终层特征。
- 地点识别问题实际上就是图像相似性对比问题,Fischer等人在2014年也将CNN各层特征与SIFT特征进行了对比,实验结果表明,基于深度学习的特征在特征匹配性能上均强于SIFT特征。
四、本文算法
在本节中主要介绍本文提出算法的两大组成部分:特征提取和基于特征匹配的地点识别假设时空(spatio-temporal)滤波方法。具体结构如图二所示。
特征提取
本文以基于ImageNet提前训练好的网络Overfeat为基础,该网络包含五个卷积阶段(stages)和三个全连接阶段如图三所示,图中前五个阶段中蓝色圆柱代表卷积层(convolution layer),绿色圆柱代表最大池化层(max pooling layer),紫色圆柱代表非线性修正层(rectification ‘ReLU’ nonlinearity layer),橙色圆柱代表补零层(zero-padding layer);后三个阶段粉红色圆柱代表全连接层(fully-connected layer),绿色圆柱代表非线性修正层(ReLU)。
当输入一张图片时,它会在每一层产生一系列刺激(activations),我们用 Lk(I) L k ( I ) ,k=1,…,21来代表每一层的输出,都是图像I在进行深度学习之后得到的一系列数组。通过比较不同图片产生的这些响应数组我们可以实现地点识别。网络可以处理任何比231x231大的图片,在实验中所有用到的图片的大小都会调整为256x256.
融合矩阵
对每层输出而言,我们会利用整个数据集包括R张训练图片和T张测试图片生成对应的融合矩阵 Mk,k=1,...,21 M k , k = 1 , . . . , 21 如下图所示。其中每个元素 Mk(i,j) M k ( i , j ) 代表第i张训练图片和第j张测试图片之间的欧式距离: