图像检索算法 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主要在于把一些方法联合起来使用,然后应用到了数据集中。

总结:

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

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

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

图像检索算法 TODO相关推荐

  1. 图像检索:几种基于纹理特征的图像检索算法

    from:图像检索:几种基于纹理特征的图像检索算法 本文节选自<基于纹理的图像检索算法研究>.描述了几种基于纹理特征的图像检索算法. 第 3 章基于纹理特征的图像检索 3.2 基于灰度共生 ...

  2. java图像检索的算法_图像检索:几种基于纹理特征的图像检索算法

    本文节选自<基于纹理的图像检索算法研究>.描述了几种基于纹理特征的图像检索算法. 第 3 章基于纹理特征的图像检索 3.2 基于灰度共生矩阵的纹理分析法 灰度共生矩阵是分析纹理特征的一种有 ...

  3. Bag of Features (BOF)图像检索算法

    FROM:http://blog.csdn.net/loadstar_kun/article/details/39450137 1.首先,我们用surf算法生成图像库中每幅图的特征点及描述符. 2.再 ...

  4. 计算机视觉——BOF图像检索算法

    文章目录 Bag of Words 模型 Bag of Feature 算法 一.Bag of Feature 算法过程 1.1提取图像特征 1.2训练字典 1.3图片直方图表示 1.4根据TF-ID ...

  5. LIRe提供的图像检索算法的速度

    本文翻译了LIRe的作者Mathias Lux发表的论文<LIRe: Lucene Image Retrieval - An Extensible Java CBIR Library>.主 ...

  6. 【毕业设计】图像检索算法(以图搜图)

    文章目录 1 前言 2 图像检索介绍 2.1 无监督图像检索 2.2 有监督图像检索 3 图像检索步骤 4 应用实例 5 最后 1 前言

  7. matlab lsh,实习日记:图像检索算法 LSH 的总结与分析(matlab)

    最开始仿真和精度测试,基于 matlab 完成的. Demo_MakeTable.m (生成 Hash 表) %======================================== %** ...

  8. 图像检索:基于形状特征的算法

    本文节选自<基于形状特征的图像检索算法研究> 基于形状特征的图像检索算法相对于颜色特征和纹理特征来说,使用的稍微少一些.摘录了其中的几种算法,不做深入剖析了. 形状通常与图像中的特定目标对 ...

  9. 图像检索:CNN对Hash组算法的颠覆

    参看论文:Liu H, Wang R, Shan S, et al. Deep Supervised Hashing for Fast Image Retrieval[C]. computer vis ...

  10. OpenCV3源代码目录解析(算法模块解析 和 示例目录解析)

    OpenCV3源代码文件夹sources: • 3rdparty: 包含第三方库,如用视频解码用的 ffmpeg.jpg.png.tiff 等图片的解码库. • apps: 包含进行 Haar 分类器 ...

最新文章

  1. 能否把指针变量本身传递给一个函数?
  2. 【数据结构与算法】之柱状图中最大矩形的求解思路和算法示例
  3. RHCE 学习笔记(24) - LVM 逻辑卷
  4. gradle插件 java_简单的Gradle Java插件自定义
  5. 为什么WordPress网站应尽量避免使用过多插件
  6. 二进制数据结构:JavaScript中的树和堆简介
  7. 【华为云技术分享】云图说|人工智能新科技—文字识别服务
  8. matlab仿真心型函数,matlab绘制心形函数
  9. 薅羊毛php源码,基于AutoJs实现的薅羊毛App专业版源码大分享---更新啦
  10. VCS建立仿真生成DVE波形
  11. 三个限免网站,助你白嫖正版付费软件/游戏
  12. js中根据特定字符截取字符串
  13. WXS脚本之WXS语法
  14. 知物由学 | APP大瘦身,新一代AAB框架下的安全加固之道
  15. 软件工程之软件设计阶段
  16. element ui表单必填_element ui判断是否必填添加校验
  17. 加载json文件注意事项
  18. python写音乐播放器_AJ Kipper:用Python写一个简易的MP3播放器
  19. bzoj5197:[CERC2017]Gambling Guide
  20. gt-itm模型生成拓扑结构

热门文章

  1. hprose-php教程,Swoole学习笔记(六):Hprose入门
  2. python求函数零点,在函数零点问题中求解参数范围
  3. 将pip源更换到国内镜像,如清华源,阿里源等
  4. 电脑计算机推荐笔记本电脑,十佳办公笔记本电脑排名,性价比高的笔记本电脑推荐...
  5. 【网络编程】【SCTP】SCTP协议介绍,四次握手,三次挥手
  6. html实现下载功能(两种方式)
  7. 很详细的讲解什么以及为什么是卷积(Convolution)!
  8. 手风琴几排簧好_四排簧手风琴适合初学者么
  9. 新浪微博批量删除微博方法
  10. 西瓜数据集的各种版本,比如说2.0,3.0,4.0都在这