关于2006_CVPR_Beyond Bags of Features Spatial Pyramid Matching for Recognizing Natural Scene Categorie

来源:互联网 发布:linux vim 退出 编辑:程序博客网 时间:2024/06/15 15:52

对这篇paper及对应code研究好久了,也困惑了好久,现在终于有点明白是怎么回事了,赶紧记下来

对应代码的整个算法过程如下(代码是丕子的):

Step1 用均匀网格划分图像。程序中采用8*8像素,即gridspace=8。比如32*40的图像可画出(32/8*(40/8)=4*5grid(一个网格用黑色块表示)。

Step 2 计算特征向量(dense sift)。程序中采用16*16patch(一个patch用紫色表示)计算一个描述子(即一个特征向量),这样一个patch包括4grid。计算时,一个patch划分为4*416)个bin,每个bin4*4pixel(一个bin用红色表示),每个bin计算一次sift8维),这样一个patch就计算16次,共16*8=128维。然后计算下一个patch,即上一个patch向右移动一个grid(移动后为浅色边框部分),以此类推,直到移动到图像的边缘,然后向下移动,这样共有(4-1*5-1=12patch。每个patch对应一个128维的描述子,最终,这幅图像可以用12128维的向量表示(12*128)。

 

Step 3 计算词典。采用k-means方法构造单词表,即用每幅图像的描述子进行cluster运算,代码中计算的词典vocabulary=200,每个单词为128维向量。

Step 4 计算每幅图像的直方图(VQ)。每幅图像的描述子(即特征向量)用词典量化,这样一幅图像就可以用12个词来表示,即12*1的矩阵。12*128  12*1)。

Step 5 计算金字塔。Paper中的三层金字塔计算如下。

由计算公式1算出每幅图像可用4200维的向量表示。式中M为词汇数(200),L为金字塔的层数(3)。

Step 6 金字塔匹配(SPM)。主要参考下面这个公式:

Xm,Ym分别为两幅图像中第mchannel的描述子(descriptor)集合,都是二维的(分别是描述子的横坐标和纵坐标)。一个channel即一种type(码字),对每一个channel做金字塔匹配,最后求和。

附:本人小硕,阅历尚浅,文中有偏差的地方忘各位高手不吝赐教。。

 

原创粉丝点击