图像检索算法 TODO

图像检索算法 TODO

图像检索:是从一堆图片中找到与待匹配的图像相似的图片,就是以图找图。

看了两篇文章:

  • Large-Scale Image Retrieval with Attentive Deep Local Features https://arxiv.org/pdf/1612.06321v4.pdf
  • Aggregated Deep Local Features for Remote SensingImage Retrieval https://arxiv.org/pdf/1903.09469.pdf

这两篇都是讲了用使用注意力机制提取CNN局部特征描述子,进行图像检索的方法。第一篇是原创,第二篇是将其应用到遥感图像检索。

图片检索可以分为两个问题: 第一图像级别的描述子的建立,第二搜索匹配的描述子。这两篇文章主要关注第一个问题,第二个问题没有深入。

论文一:

作者先是说了以往的研究都是在小尺度数据集上的得到的。作者的提出了一种基于CNN的特征描述子,用于大规模数据检索。

这篇文章的特点就是:使用注意力机制帮助获取特征点,用特征点相应位置卷积层的通道方向的特征,作为该特征点的描述子。

  1. 使用了一种弱监督学习方法,只有图像级的标签用于训练;
  2. 加入了一个注意力模型,使用注意力机制,找到局部关键点,将该点的cnn通道方向的特征作为描述子

作者制作了个大型(large scale)数据集,然后建立检索系统:1. 密集局部特征提取 2. 关键点选择 3. 降维 4. 索引和检索

1.密集局部特征提取

  • 使用了Resnet50的预训练模型,去掉头,换上自己的头,微调。
  • 把conv4的输出作为特征,conv4里每个像素在原图像的视场的位置就是特征点的位置。

这一步比较常规,现在普遍认为卷积层就是起特征提取的feature extractor。这样卷积层是特征,从这么多的位置里选择出代表性的特征。作者创造性提出了以下的关键点选择方法:

2. 基于注意力机制的关键点选择

如果直接使用cnn层作为特征直接进行匹配的话,描述子的维度太高,检索太慢。因此有必要,从特征图里选择出来一些关键点。

在普通的匹配里有一些:sift,surf,FAST,Brief等特征点和描述子。

CNN已经提取好特征了,我们需要在特征图上选择出一些。

这时候作者把训练好的网络参数固定,新建一个2层的卷积网络,这个两层的网络的输入就是conv4的输出,输出就是和conv4大小相同的1通道的权重图,这个权重图里就是每个conv4特征的权重。

注意力就关注到这地方了。

这里的训练分两步,不能同时训练,先训练1,训练完了再训练2中的注意力模型。

这个和普通的方法区别是:他是先计算特征描述子,再选择特征点

特征点选择多少个论文没有说,好奇,只能看代码了。

3.降维

因为没有说,一副图像选择多少个特征点。

只是说把这些特征点对应的conv4的通道数构成的描述子,先L2归一化,再用PCA降维到40维,降完之后再归一化

4. 索引和检索

基于最近邻的搜索技术,kd-tree,PQ.

当然基于距离最小的方法全部招呼上来。

实验部分:

这部分说了前面的疑问,每个图像提取1000个关键点(根据注意力机制里概率的大小),每个特征点40维。使用k最近邻匹配 k=60。

怎么匹配的呢,对1000个关键点,每个进行匹配,选择前60个最匹配的,60个匹配结果里统计类别分布,选择最高的,就是这个关键点对应的图像。

至于1000个关键点怎么弄一个个弄?还是每个集成起来?

对比方法:

  • Deep Image Retrieval(DIR) 全局2048维的描述子,也就是说一副图像一个描述子维度是2048维。使用QE 最近邻.

  • QE 方法见:http://yongyuan.name/blog/cbir-query-expansion.html
    算是最近邻方法的一个小技巧。

  • siaMac 与上方法类似,也是一种全局描述子512维度,使用的是VGG处理过的。

  • LIFT 这个比较有意思的是用SIFT产生的特征点特征向量,监督CNN学习的的结果,然后取代 SIFT (众所周知SIFT速度慢,不知道CNN学习后速度快了没有,没看原论文)

论文2:

这篇论文的选题好,关注遥感图像。 遥感图像有个好处就是拍摄的角度高,基本处于90%。遥感图像自带分辨率,尺度因素不用考虑(这些强的先验知识,可以极大的减轻网络负担和匹配负担)

所以改了改,用到遥感数据上效果就遥感图像最优了(state-of-the-art)

这篇论文思路清晰,过程说的明白,就是网络使用的是论文1的网络,刚开始不明白,所以反过去看了论文1。

基于内容的图像检索主要包括两个步骤:

  • 图像的描述特征提取
  • 图像匹配

1.图像特征提取

特征提取完全和上文相同。就是再注意力模型里分了个 乘注意力 和 加注意力, 乘法注意力是论文1提出的,加注意力是该文增加的,后边的实验说乘法注意力,比加的好。

怀疑作者是再凑创新。其他地方完全一样,就是直接搬过来了。

2.特征集成

使用了VLAD 方法,将不同数量的特征,变成相同大小,可以比较,计算距离。

3.检索

为了提高检索精度,使用 query expansion (QE,上文中提到过) 和图像匹配(估计就是根据特征点的匹配,进行仿射变换后,计算相关系数等)

论文2主要在于把一些方法联合起来使用,然后应用到了数据集中。

总结:

卷积神经网络成功的原因就是图像的对称性,每个像素点的意义是相同的,都是代表某一区域的亮度。(全连接为什么不行,因为输入输出没有可比性,比如输入速度,位置,量纲都不同,怎么处理)

分类来看,高层的特征并不是每一个地方都对分类有贡献图像的类别的对象,不可能占据所有图像,还有背景,以及其他类。所以没有必要考虑所有特征只需要考虑类别相关的特征即可。

该论文里的注意力神经网络是不错的。而且训练分两段训练也是有启发意义的。

猜你喜欢

转载自blog.csdn.net/weixin_41521681/article/details/111188732
今日推荐