当前位置:   article > 正文

python图像检索_图像检索(4):IF-IDF,RootSift,VLAD

rootsiftpca

TF-IDF

RootSift

VLAD

TF-IDF

TF-IDF是一种用于信息检索的常用加权技术,在文本检索中,用以评估词语对于一个文件数据库中的其中一份文件的重要程度。词语的重要性随着它在文件中出现的频率成正比增加,但同时会随着它在文件数据库中出现的频率成反比下降。像‘的’,‘我们’,‘地’等这些常用词在所有文章中出现的频率会很高,并不能很好的表征一个文档的内容。

同样的在图像检索中也引入了IF-IDF权重,

词频(Term Frequency,TF) 一个visual word在一个图像中出现的频率的很高,则说明该visual word 能够很好的代表图像的内容。

TF=wordword

逆文档词频(Inverse Document Frequency,IDF) 一些常见的word,会在每一图像出现的频率都很高,但是这些word并不能很好的表示图像的内容,所以要给这一部分word低一些的权重。IDF,描述一个word的普遍重要性,如古欧word在很多的图像中出现的频率都很高,则给予其较低的权重。

IDF=log(word+1)

将分母+1是为了防止除数为0的情况出现。从上式中可以看出,包含当前word的图像个数越多,IDF的值越小,说明该词越不重要。反之,该词越重要。

计算得到了TF和IDF,则有

\[TF-IDF = TF * IDF

\]

从TF和IDF的计算公式可以看出,IDF是针对整个图像数据库而言的,可以在训练完成后计算一次得到。而TF则是针对具体的某张图像来说的,需要多次计算。

将TF-IDF权值赋给BoW向量,再进行l2的归一化,即可得到一个可用于图像检索的向量。

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;

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/595241
推荐阅读
相关标签
  

闽ICP备14008679号