1 基本介绍

SPM 全称是Spatial Pyramid Matching,出现的背景是bag of visual words模型被大量地用在了图像表示(Image representation)中,但是BOVW模型完全缺失了特征点的位置信息。SPM考虑空间信息,将图像分成若干块(sub-regions),分别统计每一子块的特征,最后将所有块的特征拼接起来,形成完整的特征,这就是SPM中的Spatial。在分块的细节上,采用了一种多尺度的分块方法,即分块的粒度越大越细(increasingly fine),呈现出一种层次金字塔的结构,这就是SPM中的Pyramid。

SPM即Spatial Pyramid Matching,是一种利用空间金字塔进行图像匹配、识别、分类的 算法 。SPM是BOF(Bag Of Features)的改进,因为BOF是在整张图像中计算特征点的分布特征,进而生成全局直方图,所以会丢失图像的局部/细节信息,无法对图像进行精确地识别。为了克服BOF的固有缺点,作者提出了SPM算法,它是在不同分辨率上统计图像特征点分布,从而获取图像的局部信息。

如上图所示,将level(i)的图像划分为pow(4,i)个cell(bins),然后再每一cell上统计直方图特征,最后将所有level的直方图特征连接起来组成一个vector,作为图形的feature。在后文的描述中cell和bins是等价的。

Pyramid Match Kernels:

1)假设存在两个特征集合X、Y,其中每个特征x的维度为d。将特征空间划分为不同的尺度,在尺度下把特征空间的每一维划出个bins,那么d维的特征空间就能划出个bins(论文中这么描述,但是在实际中是用K-means或BOW进行聚类,得到的每个类中心就是一个bin)。

2)  在level(i)中,如果点x,y落入同一bin中就称x,y点Match,每个bin中匹配的点的个数为min(Xi, Yi),其中Xi, Yi代表相应level下的第i个bin。

3)表示X、Y在level 下的直方图特征,表示level 中X、Y落入第i个bin的特征点的个数,那么在level 下匹配的点的总数为:

在后文中,我们把简写为

4)统计各个尺度下match的总数(就等于直方图相交)。由于细粒度的bin被大粒度的bin所包含,为了不重复计算,每个尺度的有效Match定义为match的增量

5)不同的尺度下的match应赋予不同权重,显然大尺度的权重小,而小尺度的权重大,因此定义权重为

6)两个点集X、Y的匹配程度pyramid match kernel为:

       (3)

Spatial Matching Scheme

         上面的黑圆点、方块、十字星代表一副图像上某个pitch属于kmeans后词典中的某个词;
        1)将图像划分为固定大小的块,如从左到右:1*1,2*2,4*4, 然后统计每个方块中词中的不同word的个数;
2)从从左到右,统计不同level中各个块内的直方图;
        3)最后个将每个level中获得的直方图都串联起来,并且给每个level赋给相应的权重,从左到右权重依次增大;
        4)将spm放入svm中进行训练和预测;

论文中的实验过程如下:

1)用 strong feature detector即SIFT进行特征检测,patch size=16*16,patch每次移动的步长spacing grid=8*8。

2)按照BOF相同的方法(即KMeans)构建包含M个words的dictionary。

3)利用图像金字塔把图像划分为多个scales的bins,然后计算落入每个bins中属于不同类别的word的个数,则图像X、Y最终的匹配度为:

4)把所有level下的直方图特征连接起来组成一个维度为的feature,作为分类的特征向量。

SPM代码下载:http://www.cs.illinois.edu/homes/slazebni/

参考文献:

1)Lazebnik S, Schmid C, Ponce J. Beyond bags of features: Spatial pyramid matching for recognizing natural scene categories[C]//CVPR 2006.

如下图,对图像采用不同的尺度进行分块,得到不同尺度的图像,不同尺度构成层次关系:

上图中,不同的点可以看作不同的特征,每层中,点的个数,可以理解为该关键点或区域特征在该层次图像出现的频率,统计每个特征在不同层次图像中分布情况,可以得到每个特征的金字塔:

从level 2 到level 0类似The Pyramid Match Kernel中,直方图取不同间隔,即把level 2看做间隔为1,有16个bin,level 1间隔为2,得到4个bin....因此,对于两幅图像,用相同的尺度划分层次,并统计每个层次中每个cells中某特征出现的次数,得到该特征下的金字塔。

2 计算方法

可以用和The Pyramid Match Kernel相似的方法计算两个图形在该特征下的匹配程度(也可理解为相似度)。匹配方法如下:

每个层次的匹配点数:

说明:

1. SPM介绍了两幅图像匹配的方法。如要用于场景分类,上式就等于M(L+1)个直方图相交运算的和,其实也就等于一个更大的向量直接进行直方图相交运算而已。而这个向量,就等于每个被划分的图像子区域上的visual words直方图连在一起。这个特征,就是用来分类的特征。

2. 作者在实验中表明,不同L下,M从200取到400对分类性能影响不大,也就是降低了码书的大小对分类效果的影响。

3. 这个方法可以作为一个模板,每个分块图像(sub-region)中统计的直方图可以多种多样,简单的如颜色直方图,也可以用HOG,这就形成了PHOG(分层梯度直方图)。

4. 只不过这种空间分类信息仍然有局限性-----一幅相同的图像旋转90度,匹配的结果就不会太高了。所以模型隐含的假设就是图像都是正着存储的(人都是站立的,树都是站立的.......)。Spatial BOW (Spatial-bag-of-features[C])好像可以解决这个问题。

5. 另外空间Pyramid的分块方法也没有考虑图像中目标的完整性(仅仅是利用SIFT特征来描述了Object),即,在对图像分块时,可能会把一个目标分在不同块中。

理论原文:Beyond Bags of Features: Spatial Pyramid Matching for Recognizing Natural Scene Categories

SPM空间金字塔模型相关推荐

  1. 词袋模型和空间金字塔模型

    1 词袋模型 李菲菲认为图像可以类比文档,图像的子块或特征点可以看作是单词,则可以统计图像中所有特征的直方图表示图像,即得到图像的BoW(bag of words)模型.图1是BoW模型的示例图,对于 ...

  2. SPM空间金字塔匹配模型

    SPM:Spatial Pyramid Matching for Recognizing Natural Scene Categories 空间金字塔匹配 SPM即Spatial Pyramid Ma ...

  3. 用于视觉识别的深度卷积网络空间金字塔池化方法

    摘要 现有的深卷积神经网络(CNN)需要一个固定大小的神经网络(例如224x224)的输入图像.这种要求是"人为的",可能会降低对任意大小/尺度的图像或子图像的识别精度.在这项工作 ...

  4. 空间金字塔方法表示图像

    注:本学习笔记是自己的理解,如有错误的地方,请大家指正,共同学习进步. 本文学习自CVPR论文<Discriminative Spatial Pyramid>.<Discrimina ...

  5. 空间金字塔池化SPP

    空间金字塔池化 1.提出的原因 下面这里是我们在网上反复可以看见的话(所以关键是理解这些内容): 提出的原因: 在SPP提出之前,传统的网络具有它有两大缺点: 1.通常需要输入固定大小的图片来进行训练 ...

  6. 用户金字塔模型详解及在实际运营工作中的意义

    我这次分享的主题是讲用户金字塔,这个主题我大概是国内最早提出的. 我觉得这个概念比较实际一些,对大家平时的工作有帮助,所以今天我会讲的比较细一些. 关于我的个人经历(简述) 前面我先讲一下我的个人经历 ...

  7. Spatial Pyramid Pooling(空间金字塔池化)-变尺度CNN训练

    1. 需求创造好的产品,产品拓宽原始的需求 当前的深度神经网络一般都需要固定的输入图像尺寸(如224*224). 这种需求很明显是人为的,潜在性的弊端会降低识别精度(为了使图像尺寸相同,一定会涉及到图 ...

  8. TGRS2021:Road Segmentation for Remote Sensing ImagesUsing Adversarial Spatial Pyrami对抗性空间金字塔网络的道路分割

    TGRS2022:Road Segmentation for Remote Sensing ImagesUsing Adversarial Spatial Pyramid Networks基于对抗性空 ...

  9. [Neck] 空间金字塔池化【池化策略】(Space Pyramid Pool, SPP)模块和路径聚合网络【增强】(Path Aggregation Network, PANet)的结构

    文章目录 背景 yolo v4 中的空间金字塔池化(Space Pyramid Pool, SPP)模块和路径聚合网络(Path Aggregation Network, PANet)的结构 SPP ...

最新文章

  1. libyuv库的使用
  2. 深入浅出ThreadLocal,你会吗?
  3. UML科普文,一篇文章掌握14种UML图
  4. Xcode 7.0正式版发布了
  5. 深入理解PHP异常和错误处理(6)PHP如何优雅的处理错误
  6. 英语自动提取高频词_斑马英语提分营免费体验课
  7. Android之使用PopupWindow使用和总结
  8. 4799元!OPPO Reno巴萨定制版开启预售:7月26日正式开售
  9. 怎么把线稿提取出来_PS教程:提取线稿如此简单?三种方法总有一种适合你
  10. CentOS7 安装RabbitMQ 亲测(编写中,有大神请帮忙指点下文中遇到的问题,谢谢)...
  11. iOS开发经验总结(二)
  12. java(6) ArrayList源码
  13. Thrift 对象序列化、反序列化-字节数组分析
  14. c语言万能头文件用不,万能头文件不能用?
  15. Mermaid知识点总结4 - Flowchart 3
  16. JDK Stream
  17. 电脑PHP动画制作画板,html5教程制作简单画板代码分享
  18. Android 学习(一)
  19. rust读条闪退_rust更新后无法连接服务器 | 手游网游页游攻略大全
  20. VPP创建buffer池

热门文章

  1. Sublime Text 3 -mac版简体中文汉化教程
  2. python系列——多进程之进程池(pool)
  3. python进程池(子进程)函数没有执行
  4. Mysql修改表中字段名称、字段类型
  5. window 开启 Telnet 客户端
  6. pcs与crmsh命令比较
  7. w10启动无法修复此计算机,Win10启动修复无法修复你的电脑解决方法
  8. 函数的参数和函数的值
  9. 定点数一位乘法之Booth(布斯)算法
  10. 打印快递单不显示收货人省市区,提供两种解决方案