基于randomized visual phrase的目标检索

这个算法是用于目标检索的比较快速的一个算法,参考Randomized Visual Phrases for Object Search。

算法的流程如下:

//图片训练阶段

1读入N张图片

2 转换成灰度图

3 检测N张图片的特征点,本算法中应用的是SIFT特征。

4 生成描述子

5 描述子聚类,生成visual word,用kmeans()算法完成。

6 将图片库中的图片用另一种方式进行描述

将每个图片中所有的特征点用[ x,y,v ]表示。其中,x,y是每个特征点的坐标,v代表这个特征点对应的visualword的编号。

7 生成invert file

8 stop list算法

统计倒排文件中,对某一个word,包含这个word的图片的个数,对高频出现的word删去,这个步骤对于提高检索的正确率有很大帮助。

//目标搜索阶段

9 读入目标图片

10 转换成灰度图

11 提取特征点,生成描述子

12 生成目标的visual phrase

介绍一下什么是visual pharse,即是将目标图片中出现的所有特征点,用visual word词汇表中与之最接近的word进行代替,然后计算所有的word的出现的次数。本文算法中,是根据目标特征点的描述子向量与每个visual word的欧氏距离来进行匹配的。这种方法的速度比较慢,也有一些快速的匹配算法,目前正在研读中,以后会更新。

13 检索含有目标有图片

根据倒排文件中,检索与目标最相近的图片。通过计算目标图片的visual phrase矢量与图片的visual phrase矢量的直方图相交(HI或者NHI),找到与目标最匹配的图片。

14 对找到的图片,随机划分

把图片,随机的划分成一块一块的矩形方块,划分T次,每次划分是不重叠的。每次划分的方块的行数与列数是相同的,均为M*N。本文的算法中,可能通过调整T的大小 ,调整检索速度与调整精度。如果T的选择的比较大,那么它的精度比较大,速度比较慢。如果T选择的比较小,那么它的定位精度比较小,速度比较快。

15 计算每个随机方块的visual phrase

16 计算每个随机网格与目标的匹配程度

计算每个网格的visual phrase与目标的visualphrase之间的HI距离,这个距离越大,代表目标与这个网格中的内容越匹配。

17 投票

经过T次随机划分,会产生M*N*T个随机图片块,并且每个块与目标之间,都计算出了一个距离,把这个距离当成这个块的得分。然后每一个块,把这个得分投给它包含的每一个像素上。这样就会得到一个投票图,图片得分最高的部分,代表与目标接近的程度最高。

18 寻找投影图中,,值最大的点A。

19 通过投影的像素值的大小,在A的周围,确定一个矩阵区域。认为这个矩形区域就是目标在原图中的位置。

20 显示这个矩形区域。

实验结果如下:

待检索目标

检索结果。

本文为CSDN博客,更多内容请点:

要温暖还是怕麻烦。

基于randomized visual phrase的目标检索

相关文章:

你感兴趣的文章:

标签云: