Beyond Bags of Features Spatial Pyramid Matching for Recognizing Natural Scene Categorie
关于2006_CVPR_Beyond Bags of Features Spatial Pyramid Matching for Recognizing Natural Scene Categorie
对应代码的整个算法过程如下:
Step1 用均匀网格划分图像。程序中采用8*8像素,即gridspace=8。比如32*40的图像可画出(32/8)*(40/8)=4*5个grid(一个网格用黑色块表示)。
Step 2 计算特征向量(dense sift)。程序中采用16*16的patch(一个patch用紫色表示)计算一个描述子(即一个特征向量),这样一个patch包括4个grid。计算时,一个patch划分为4*4(16)个bin,每个bin为4*4个pixel(一个bin用红色表示),每个bin计算一次sift(8维),这样一个patch就计算16次,共16*8=128维。然后计算下一个patch,即上一个patch向右移动一个grid(移动后为浅色边框部分),以此类推,指导移动到图像的边缘,然后向下移动,这样共有(4-1)*(5-1)=12个patch。每个patch对应一个128维的描述子,最终,这幅图像可以用12个128维的向量表示(12*128)。
![](https://i-blog.csdnimg.cn/blog_migrate/0ebfe92146557b692512f6da61908d24.jpeg)
Step 3 计算词典。采用k-means方法构造单词表,即用每幅图像的描述子进行cluster运算,代码中计算的词典vocabulary=200,每个单词为128维向量。
Step 4 计算每幅图像的直方图(VQ)。每幅图像的描述子(即特征向量)用词典量化,这样一幅图像就可以用12个词来表示,即12*1的矩阵。(12*128 12*1)。
Step 5 计算金字塔。Paper中的三层金字塔计算如下。
由计算公式算出每幅图像可用4200维的向量表示。式中M为词汇数(200),L为金字塔的层数(3)。
Step 6 金字塔匹配(SPM)。主要参考下面这个公式:
Xm,Ym分别为两幅图像中第m个channel的描述子(descriptor)集合,都是二维的(分别是描述子的横坐标和纵坐标)。一个channel即一种type(码字),对每一个channel做金字塔匹配,最后求和。