电商图像检索系统(CBIR)系统
来源:互联网 发布:ipad能刷windows系统吗 编辑:程序博客网 时间:2024/05/21 18:35
一.CBIR系统
1. 基于内容的图像检索
CBIR主要由下列组件构成
2. CBIR系统需要解决的几个核心问题:
(1)用什么样的特征去表征图像内容?
HOG, SIFT, GIST…
基于具体场景目标训练卷积神经网络,提取神经网络深层输出作为特征
(2)如何定义“相近”
各种距离准则
(3)高维空间里如何高效查找最近邻?
近似最近邻(ANN)算法大有帮助
卷积神经网络训练的同时学习分桶桶号
二. 图像特征
1.传统图像特征
(1)方向梯度直方图( HOG) 是一种在CV常用特征描述子。 通过计算和统计
图像局部区域的梯度方向直方图来构成特征。
(2)SIFT是一种检测局部特征的算法,该算法通过求一幅图中的特征点及其
有关scale 和 orientation 的描述子得到特征并进行图像特征点匹配。
(3)GIST通过自然度、开放度、 粗糙度、 膨胀度、 险峻度对图片进⾏描述
MATLAB的实现参见
http://people.csail.mit.edu/torralba/code/spatialenvelope/LMgist.m
C的版本可参见http://lear.inrialpes.fr/src/lear_gist-1.2.tgz
2.卷积神经网络图像特征
由不同功能的层次组成的神经网络, 挖掘深层次信息。卷积层的神经元分工,看到不同的“信息”。
三. 最近邻问题
1. (NN)下面图片中只有三种豆,有三个豆是未知的种类,如何判定他们的种类?
=>选择最“近” 的类别作为自己的判定结果
2.K最近邻算法(NN=>KNN)
图中绿色的圆点X是什么形状?
=>依据周边最“近” K个点的类别共同判定
3.局部敏感度哈希
在⾼维空间, 线性比对效率太太太低…我们需要近似最近邻(ANN)
传统Hash与Local SensitiveHash区别
LSH把原始的样本点映射成长度为N的一个2进制串,其中每个位次可以理解为在空间取了一个超平面去做划分
3. 其余近似最近邻算法
不管何种算法,都是尽量预先对数据做⼀些划分和索引。损失了一点点准确率,换取搜索速度的极大提升。
工程上常用算法:
LSH(Local Sensitive Hash / 局部敏感度哈希)
K-Means Tree
K-D Tree
说明:ANN的算法帮助我们缩小范围和提速, 严格的距离排序依旧需要依托于前面的距离准则。这句话可以理解为:ANN算法是进行初步筛选,排序还是通过距离准则实现。
四. 距离准则
相似度/距离定义
(1) 欧氏距离
(2)Jaccard相似度
(3)余弦相似度
(4)Pearson相似度
五. 工程经验之ANN库
1. ANNOY
建索引与最近邻查找, 可以直接⽤list作为向量输⼊
2. FLANN(推荐)
Ø 实现多种最近邻检索方式,可以指定准确率
Ø 可以选择自动模式,自动选最合适的模型和方式
数据量大的时候载入模型稍微有点慢
3. Kgrapth
Ø 可并行化地建索引和检索近似最近邻
Ø 建完的索引文件大小稍微小些
4. Nearpy
Ø 构建在Numpy, Scipy和redis之上
Ø 因为cache在redis之上, 可以增量式补充数据,增加索引
5. Lshash
Ø 超级精简!!
Ø 也支持redis存储索引
六. 康奈尔⼤学图像检索系统
(1)用VisualSearchServer和CIFAR-10构建一个简易图像检索系统
1) https://github.com/AKSHAYUBHAT/VisualSearchServer
2) http://www.cs.toronto.edu/~kriz/cifar.html
(2)核心代码:
(3)基本思路
1)训练神经网络模型。
2)采用训练好的神经网络模型抽取图像特征。保存某池化层后的图像特征。
3)计算距离、排序
七.外文文献
(1)Deep Learning of Binary Hash Codes for Fast Image Retrieval 2015
博客:http://blog.csdn.net/han_xiaoyang/article/details/50856583
代码:https://github.com/HanXiaoyang/image_retrieval
github: https://github.com/kevinlin311tw/caffe-cvprw15
思路:1)训练神经网络进行图像分桶。
2)把图像输入训练好的神经网络模型拿到分桶编号,并取出桶中图像计算与收入图像的距离。
3)根据距离进行排序。
实现:在全连接层与输出层之间插入一个LatentLayer,该层具有128个神经元实现LSM功能。
(2)Where to Buy It: Matching Street ClothingPhotos in Online Shops, ICCV2015
(3)Cross-domain Image Retrieval with a DualAttribute-aware Ranking Network, ICCV 2015
(4)DeepFashion: PoweringRobust Clothes Recognition and Retrieval with Rich Annotations, CVPR2016
(5)Deep Image Retrieval: Learning global representations for imagesearch. In ECCV, 2016.
(6)Supervised Learning ofSemantics-Preserving Hashing via Deep Neural Networks for Large-Scale ImageSearch 2016
github:https://github.com/kevinlin311tw/Caffe-DeepBinaryCode
(7)Faster R-CNN Features for Instance Search 2016
github:https://github.com/imatge-upc/retrieval-2016-deepvision
(8)Learning Compact BinaryDescriptors with Unsupervised Deep Neural Networks 2016
github:https://github.com/kevinlin311tw/cvpr16-deepbit
(9)CNN Image RetrievalLearns from BoW: Unsupervised Fine-Tuning with Hard Examples
code(Matlab): http://ptak.felk.cvut.cz/personal/radenfil/siamac/siaMAC_code.tar.gz
七.参考任何⼀个电商图像搜索的⽅法
⽐如https://github.com/bobbens/cvpr2016_stylenet
利⽤以下数据集构建图像检索系统 http://mmlab.ie.cuhk.edu.hk/projects/DeepFashion.html
- 电商图像检索系统(CBIR)系统
- 用 Matlab GUI搭建一个简单的CBIR图像检索系统(一)
- 用 Matlab GUI搭建一个简单的CBIR图像检索系统(二)
- Experimental CBIR Systems 基于内容的图像检索系统
- CBIR 基于内容的图像检索系统 纹理,形状,颜色和空间特征综合检索 VC++实现
- (转载)几个基于内容图像检索系统
- 【CBIR】基于内容的图像检索技(CBIR)术相术介绍
- CBIR 基于Hash图像检索小结(待完成计划)
- 基于内容图像检索系统
- 著名的图像检索系统
- 基于内容的图像检索系统(集成语义特征)
- (转载)使用OpenDIR搭建简单的图像检索系统
- 基于内容的图像检索系统(合集)
- 著名的图像检索系统介绍
- 著名的图像检索系统介绍
- 基于OpenCV的图像检索系统
- 图像检索系统 Image Retrieval Systems
- 基于内容的图像检索(CBIR)会是下一个热门研究领域吗?(一)
- 简易的遮罩层效果
- json-api
- 分布式事务方案
- 在MAC上安装Libvirt-python
- 谈SPFA解差分约束最大值最小值的原理...
- 电商图像检索系统(CBIR)系统
- 【Linux内核驱动】编写I2C外设驱动读取触摸屏固件版本
- 微信小程序——常用组件
- topic和service的区别
- 编译php
- echarts异步加载多组数据
- 相似三角形
- bzoj3714: [PA2014]Kuglarz
- 日历界面实现(一次输出三个月)