标签:object retrieval 目标检索 randomized object re
这个算法是用于目标检索的比较快速的一个算法,参考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博客,更多内容请点:http://write.blog.csdn.net/postlist/2867665/all
基于randomized visual phrase的目标检索
标签:object retrieval 目标检索 randomized object re
原文地址:http://blog.csdn.net/d14665/article/details/44853571