项目:基于内容的图像检索 – 半监督(在训练时对图像进行手动标记)
描述
我的数据库中有100万张图像。训练是手动的(监督式) – 每张图像都提供了标题和标签。例如:coke.jpg标题:可乐标签:可乐,罐子
利用这些图像和标签,我需要训练系统。训练后,当我输入一张新图像(可能是数据库中已有的或完全新的),系统应该输出该图像可能所属的标签,并显示每个标签下的几张图像。系统也可能提示未找到匹配项。
问题:
1)图像指纹是什么意思?预期的图像指纹大小是多少?(这很重要,因为将有数百万张图像需要插入数据库)
2)数据库中该指纹的字段格式是什么?(这很重要,因为需要快速搜索……脚本应在1秒内搜索100万张图像的数据库)
3)我们使用哪些描述符(算法)来分析它们?
提前感谢
回答:
嗯,这个话题非常广泛,但这里是一个可能解决方案的简要概述
-
图像指纹是SIFT描述符的集合,这些描述符被量化以减少大小,并允许索引
-
构建数据库的倒排索引,以便通过量化描述符查找图像(你可以使用任何全文搜索引擎或数据库来实现这一点)
-
给定一张图像,查找与之共享大量共同描述符的图像
-
对于这些潜在候选者,你应该验证描述符的空间排列是否足够相似
一些入门文章:
Mikulík, Andrej, et al. “Learning a fine vocabulary.” Computer Vision–ECCV 2010 (2010): 1-14.