赞
踩
TF-IDF
RootSift
VLAD
TF-IDF
TF-IDF是一种用于信息检索的常用加权技术,在文本检索中,用以评估词语对于一个文件数据库中的其中一份文件的重要程度。词语的重要性随着它在文件中出现的频率成正比增加,但同时会随着它在文件数据库中出现的频率成反比下降。像‘的’,‘我们’,‘地’等这些常用词在所有文章中出现的频率会很高,并不能很好的表征一个文档的内容。
同样的在图像检索中也引入了IF-IDF权重,
词频(Term Frequency,TF) 一个visual word在一个图像中出现的频率的很高,则说明该visual word 能够很好的代表图像的内容。
逆文档词频(Inverse Document Frequency,IDF) 一些常见的word,会在每一图像出现的频率都很高,但是这些word并不能很好的表示图像的内容,所以要给这一部分word低一些的权重。IDF,描述一个word的普遍重要性,如古欧word在很多的图像中出现的频率都很高,则给予其较低的权重。
将分母+1是为了防止除数为0的情况出现。从上式中可以看出,包含当前word的图像个数越多,IDF的值越小,说明该词越不重要。反之,该词越重要。
计算得到了TF和IDF,则有
\[TF-IDF = TF * IDF
\]
从TF和IDF的计算公式可以看出,IDF是针对整个图像数据库而言的,可以在训练完成后计算一次得到。而TF则是针对具体的某张图像来说的,需要多次计算。
将TF-IDF权值赋给BoW向量,再进行
C++实现
void compute_idf(const vector<> &bow,vector &idf){
int img_count = bow.size();
int clu_count = bow[0].size();
idf = vector(clu_count,1.0);
for(int i = 0; i < img_count; i ++){
for(int j = 0;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。