图像检索算法 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的特征描述子,用于大规模数据检索。
这篇文章的特点就是:使用注意力机制帮助获取特征点,用特征点相应位置卷积层的通道方向的特征,作为该特征点的描述子。
- 使用了一种弱监督学习方法,只有图像级的标签用于训练;
- 加入了一个注意力模型,使用注意力机制,找到局部关键点,将该点的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相关推荐
- 图像检索:几种基于纹理特征的图像检索算法
from:图像检索:几种基于纹理特征的图像检索算法 本文节选自<基于纹理的图像检索算法研究>.描述了几种基于纹理特征的图像检索算法. 第 3 章基于纹理特征的图像检索 3.2 基于灰度共生 ...
- java图像检索的算法_图像检索:几种基于纹理特征的图像检索算法
本文节选自<基于纹理的图像检索算法研究>.描述了几种基于纹理特征的图像检索算法. 第 3 章基于纹理特征的图像检索 3.2 基于灰度共生矩阵的纹理分析法 灰度共生矩阵是分析纹理特征的一种有 ...
- Bag of Features (BOF)图像检索算法
FROM:http://blog.csdn.net/loadstar_kun/article/details/39450137 1.首先,我们用surf算法生成图像库中每幅图的特征点及描述符. 2.再 ...
- 计算机视觉——BOF图像检索算法
文章目录 Bag of Words 模型 Bag of Feature 算法 一.Bag of Feature 算法过程 1.1提取图像特征 1.2训练字典 1.3图片直方图表示 1.4根据TF-ID ...
- LIRe提供的图像检索算法的速度
本文翻译了LIRe的作者Mathias Lux发表的论文<LIRe: Lucene Image Retrieval - An Extensible Java CBIR Library>.主 ...
- 【毕业设计】图像检索算法(以图搜图)
文章目录 1 前言 2 图像检索介绍 2.1 无监督图像检索 2.2 有监督图像检索 3 图像检索步骤 4 应用实例 5 最后 1 前言
- matlab lsh,实习日记:图像检索算法 LSH 的总结与分析(matlab)
最开始仿真和精度测试,基于 matlab 完成的. Demo_MakeTable.m (生成 Hash 表) %======================================== %** ...
- 图像检索:基于形状特征的算法
本文节选自<基于形状特征的图像检索算法研究> 基于形状特征的图像检索算法相对于颜色特征和纹理特征来说,使用的稍微少一些.摘录了其中的几种算法,不做深入剖析了. 形状通常与图像中的特定目标对 ...
- 图像检索:CNN对Hash组算法的颠覆
参看论文:Liu H, Wang R, Shan S, et al. Deep Supervised Hashing for Fast Image Retrieval[C]. computer vis ...
- OpenCV3源代码目录解析(算法模块解析 和 示例目录解析)
OpenCV3源代码文件夹sources: • 3rdparty: 包含第三方库,如用视频解码用的 ffmpeg.jpg.png.tiff 等图片的解码库. • apps: 包含进行 Haar 分类器 ...
最新文章
- 能否把指针变量本身传递给一个函数?
- 【数据结构与算法】之柱状图中最大矩形的求解思路和算法示例
- RHCE 学习笔记(24) - LVM 逻辑卷
- gradle插件 java_简单的Gradle Java插件自定义
- 为什么WordPress网站应尽量避免使用过多插件
- 二进制数据结构:JavaScript中的树和堆简介
- 【华为云技术分享】云图说|人工智能新科技—文字识别服务
- matlab仿真心型函数,matlab绘制心形函数
- 薅羊毛php源码,基于AutoJs实现的薅羊毛App专业版源码大分享---更新啦
- VCS建立仿真生成DVE波形
- 三个限免网站,助你白嫖正版付费软件/游戏
- js中根据特定字符截取字符串
- WXS脚本之WXS语法
- 知物由学 | APP大瘦身,新一代AAB框架下的安全加固之道
- 软件工程之软件设计阶段
- element ui表单必填_element ui判断是否必填添加校验
- 加载json文件注意事项
- python写音乐播放器_AJ Kipper:用Python写一个简易的MP3播放器
- bzoj5197:[CERC2017]Gambling Guide
- gt-itm模型生成拓扑结构
热门文章
- hprose-php教程,Swoole学习笔记(六):Hprose入门
- python求函数零点,在函数零点问题中求解参数范围
- 将pip源更换到国内镜像,如清华源,阿里源等
- 电脑计算机推荐笔记本电脑,十佳办公笔记本电脑排名,性价比高的笔记本电脑推荐...
- 【网络编程】【SCTP】SCTP协议介绍,四次握手,三次挥手
- html实现下载功能(两种方式)
- 很详细的讲解什么以及为什么是卷积(Convolution)!
- 手风琴几排簧好_四排簧手风琴适合初学者么
- 新浪微博批量删除微博方法
- 西瓜数据集的各种版本,比如说2.0,3.0,4.0都在这