博客开了很久,一直没有写东西。刚好前两天在实验室做了一个关于图像分类的报告,所以拿过来试试水。但CSDN的编辑器用起来不是很顺手,所以为了方便,博客中用了很多图片。
引言
关于图像的工作门槛一直比较高,因为图像中的信息太丰富,展现形式也很多,噪声也丰富,所以很难提取有效的特征,这就导致后面的分类任务变得非常麻烦。正如下图所示:
正如于凯所说,特征定义了整个分类问题性能的上限,选分类器只是逼近这个上限的一种途径。
因此接下来讲的内容主要针对特征提取。
一、词袋模型(BoW)
在讲LLC之前先提一下BoW,因为后者是基础。BoW网上已经有很多的资料了,所以这里提及BoW的目的只在于与后面讲的内容以及LLC作对比。词袋模型总体上可以分成3步:前两步用于特征提取;第三步分类。
流程如下:
step 1: 计算图像的特征描述符,其实提取的是图像的浅层特征。
step 2: 然后对所有图像中计算的描述符进行聚类(后文中凡是字典学习的地方,都是用所有图像的所有特征在学习。),也叫向量矢量(VQ),机器学习领域通常叫做是字典学习。然后统计每个簇中的特征数量(计算直方图),每个聚类中心就是直方图中的一个bin,后面也叫字典中的一个原子。这一步也是提取图像的深层信息。
step 3: 使用分类器分类。
但是BoW有一个问题:因为全图的所有特征进行直方图计算,所以原图像新的表示(特征)失去了空间信息。保留图像的空间信息就是后面所讲内容的出发点。
二、Spatial PyramidMatching(SPM)(06'CVPR)[1]
这个工作利用金字塔匹配核(Spatial Pyramid Matching)[2] 保留图像的空间信息。简单来说,也就是将图像分块,每块采用BoW,这样左上角的特征就不会跑到右下角的直方图中。如下图:
那么问题来了,图像怎么分块,也就是每块的大小是怎么定的。如果块太小,处理旋转问题效果不好。如果太大,跟BoW一样失去大部分的空间信息。要解决这个问题最直观的做法就是使用多种分块方式,然后在合并。的确SPM就是这么做的。
Spatial Pyramid Matching
先讲一下金字塔匹配核,这个概念是在05’ ICCV的paper中提出来的。它原本是用来计算两个特征集合X和Y的相似性(可以将X和Y理解成两幅图像的特征集),X和Y中的每个特征是d维(如:SIFT是128维的)。匹配过程主要分为两步:
第一:分层。层数从0层开始,最顶层L。每一层代表一种粒度,如果体现在一个线段上,就是将这个线段分为多少段,如2段,3段等。从0到L,粒度越来越细。第层上,每个特征的每一维被分为