首页 > 代码库 > Descriptor Matching with Convolutional Neural Networks: a Comparison to SIFT
Descriptor Matching with Convolutional Neural Networks: a Comparison to SIFT
一、主要思想
本文的主要目的是想验证CNN和sift在特征匹配上的优劣。Sift在计算机视觉方面广泛应用,在2012年之前,基于方向直方图的局部描述子如,SIFT、HOG、SURF等占了主导地位。但是2012年Krizhevsky的新一代的CNN框架取得了前所未有的成绩。但是有两个问题至今还不是很清楚:CNN是否收益于大数据还是CNN真正能学习到抽象的视觉特征。从一开始,SIFT不仅在识别方面非常成功而且在特征匹配也一样。但是直到现在,还没有关于CNN在匹配方面的研究,从而本文的的主要任务就是验证CNN相对于SIFT在特征匹配的效果如何。
二、基于CNN的特征学习
采用伯克利大学的开源代码——caffe进行相应的实验。
1、监督训练
采用caffe中在Imagenet上面已经训练好的模型
2、无监督训练
参考笔记《Unsupervised feature learning by augmenting single images 》的算法
三、实验对比研究
诸如图像分类和物体检测的识别任务依赖于利用场景的语义结构,我们希望兴趣点的匹配独立于这些信息。这将使基于匹配任务自动学习到的特征非常有意思,并且产生了一个问题:采用基于分类任务学习到的特征表达作为局部兴趣点的特征描述子是否可以取得好的成绩。本位采用SIFT和raw RGB values 作为基方法。
1、数据库
采用一个48张图像的数据库和一个416(16张种子图像库+400张经过一系列变化的图像)张图像的数据库
2、结果测试方法
(1)采用MSER算法提取感兴趣区域和相应的图像块
(2)图像相应图像块的特征,采用欧式距离进行匹配,产生一系列的描述子对
(3)一对描述子作为正确的正样本的条件:目标图像中的描述子的椭圆和真实的椭圆的IOU大于0.6,其余的都作为错误的正样本。
3、相关系数的选择
图像块大小的影响(416张图像的数据库)
从图像中可以看出SIFT的最优Patch size为69,而CNN随着Patch size增加精度越高。SIFT通常把图像块分为4*4的cells,resize会模糊重要的梯度,同时也会带来许多新的信息。CNN的输入大小固定,即感受野固定,层数越高将受益于更大的感受野。
4、实验结果
(1)不同变换方法(416张图像的数据库)
除了模糊以外,CNN都比SIFT的效果好。无监督的CNN在模糊变化比SIFT效果稍好一点。CNN于SIFT的差距犹如SIFT和RGB之间的差距,因此得到结论:CNNs由于最好的人工设计的特征之一——SIFT。严重模糊对于监督CNN是一个特别的问题,但是对于无监督CNN的影响要小一些,因为无监督CNN里面考虑到了模糊情况。模糊这种情况也出现目标识别中,因此设法让CNN对于这个情况更鲁棒将有利于提高目标识别的精度。因为,小目标通常会放大之后再做识别,这样就是导致模糊。
(2)不同特征对之间的比较(416张图像的数据库)
相应的点在对角线之上,第一种方法的效果更好,否者第二种方法正好。大多数情况下,无监督CNN好于监督CNN。
(3)48张图像库实验结果
结果和416张图像的结论类似,就不在贴图和描述了
5、计算时间
这个在单个CPU上的计算时间,CNN确实需要大量的计算时间,但是如果放在GPU上面,CNN却只要5.5ms,这个时间还是在接受的范围以内。
四、总结
本文有几个重要的结论:
(1)两个CNNs在匹配任务中都要浩宇SFIT。
(2)在图像分类中,有标签的情况下,对监督学习非常有用。但是在特征匹配中,无监督CNN却更有优势。
(3)模糊变换表明了再imagenet上面训练的一个弱点。但是无监督CNN却能处理某种程度上面的模糊,但是模糊任然是神经网络的一个弱点,这也可能是这种结构的一个共性弱点。
(4) SIFT在计算时间上面有很大的优势
对速度和简单性为主要指标的任务,SIFT任然是一个值得考虑的特征。对于大多数依赖于特征匹配的计算机视觉任务来说,非常有意义考虑采用CNN来训练特征。
Descriptor Matching with Convolutional Neural Networks: a Comparison to SIFT