该项目是一个CBIR(基于图像的内容搜索)系统
提取图像的特征,并从图像库中检索相似的特征
在此系统,我实现了几个流行的特征识别功能:
- 基于颜色的特征识别
- 基于纹理的特征识别
- 基于形状的特征识别
- 基于深度学习方式的特征识别
部分特征不够健壮,并将其转为特征融合
维度灾难(Curse of Dimensionality)告诉我们,高维属性有时会失去距离特性
CBIR系统基于 特征相似性 检索图像
系统的健壮性由MMAP (mean MAP)(Mean Average Precision 全类别平均正确率)进行评估, 评估方式参考 这里
- image AP : 每次命中的平均精度
- depth=K 表示系统将返回前K张图片(与待搜索图片相似度最高的K张图片)
- 在前K张图片中每有一张正确的图片称为一次命中
- AP = (1次命中率 + 2次命中率 + ... + H次命中率) / H
- class1 MAP = (class1.img1.AP + class1.img2.AP + ... + class1.imgM.AP) / M
- MMAP = (class1.MAP + class2.MAP + ... + classN.MAP) / N
评估的实现在 evaluate.py 中找到
我的数据库中包括25个类, 每个类中20张图片, 总共500张图片, depth=K will 是从返回数据中返回前K张图片
Method | color | daisy | edge | gabor | HOG | vgg19 | resnet152 |
---|---|---|---|---|---|---|---|
Mean MAP (depth=10) | 0.614 | 0.468 | 0.301 | 0.346 | 0.450 | 0.914 | 0.944 |
让我展示下该系统的一些结果
如果你对结果感兴趣,并想要尝试自己的图像,
请参阅 USAGE.md, USAGE_zh.md
细节写在这里面
Po-Chih Huang / @pochih
Dedicatus1979 / @Dedicatus1979
我为本项目添加了requirement.txt 可以确保在使用这些包的情况下在python3.10版本下可以使用
然后,我把其中一些版本过时的用法给去除了,例如将scipy.misc.imread(),给替换成了Image.open().convert('RGB'),然后再np.array()