词袋模型
以文本为例,一篇文章可能有一万个词,其中可能只有500个不同的单词,每个词出现的次数各不相同。词袋就像一个个袋子,每个袋子里装着同样的词。这构成了一种文本的表示方式。这种表示方式不考虑文法以及词的顺序。度量袋词的相似度 就可以度量两篇文章的相似度(余弦相似度)
-
视觉词袋模型
特征点是由兴趣点和描述子表达的,把具有某一类特征的特征点放到一起就构成了一个单词(word),由所有这些单词就可以构成字典(vocabulary)了,有了字典之后,给定任意特征,只要在字典中逐层查找(使用的是汉明距离),最后就能找到与之对应的单词
-
构建视觉词袋的步骤:
- 1.先对一图像集合 检测特征,形成特征描述量。2.通过对描述子进行聚类来形成词典,比如用层次Kmeans来形成一个词汇树(Vocabulary Tree),每个节点下的描述子集相近,可以认为同一个节点下的这些描述子是一个视觉单词(当然更顶层的表示越的图像越复杂)。每一类用该类中所有特征的平均特征(meanValue)作为代表,称为单词(word)。每个叶节点被赋予一个权重。DBoW2作者提供了TF、IDF、BINARY、TF-IDF等权重作为备选,默认为TF-IDF。
TF-IDF的主要思想是:如果某个词或短语在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。TF-IDF实际上是TF * IDF,TF代表词频(Term Frequency),表示词条在文档d中出现的频率。
IDF代表逆向文件频率(Inverse Document Frequency)。如果包含词条t的文档越少,IDF越大,表明词条t具有很好的类别区分能力。(来自百度百科)
- 对图像集中的每张图像,提取其对应特征描述量进行分类,然后得到分别属于每一类的描述子个数。即得到一个n维度的向量,归一化该向量,则将该图像表示成一个n维的向量。
- 将张图像都如上述表示成n维向量,则可以根据向量相似度知道每两张图像之间的相似度。IDF值可以根据大量数据训练得到 -
在DBoW2库中,如果特征描述是ORB特征,那就训练得到ORB词典;如果是SIFT特征,那就训练得到SIFT词典。DBoW2库利用一个大的图像数据库,离线训练好了ORB库和SIFT库,供大家使用。因此,在使用DBoW2库时,首先需要载入一个离线视觉词典。
回环检测
- 对一新进来的图像帧,将其中每个特征点都从单词树根节点往下遍历,取汉明距离最小的节点接着往下遍历直到叶节点。最终同上,计算各个叶节点上的数目并形成Bow向量v。
- 根据BoW向量,计算当前图像和其它图像之间的距离。
差异越大得分越小趋近于0;相似则趋近于1
网友评论