优化算法 | SVM支持向量机和HOG方向梯度直方图基础原理分析

首先需要明白SVM(支持向量机)的原理

SVM(支持向量机)分类器的原理是利用分类超平面来实现数据分类。在利用分类超平面对数据进行划分时,遵循间距最大原则。例如,将二维平面内的两组数据分类,可以确定很多个分类超平面,在二维维度下,超平面退化为一条直线:


上图中使用绿线将蓝色圆圈和红色方块进行分类,可以有多种方式。那么根据SVM原理,哪一条线是最佳分类线呢?答案是,最佳分类线因该是距离蓝色圆圈和红色方框的距离都是最大的那一条,即找到两组数据的最大间距,在最大间距中点画一条线,如下:

在上图中,有蓝色圆圈和红色方块,找到一条直线,使得蓝色圆圈中离这条直线最近的点和红色方块离这条直线距离最近的点到这条直线的距离相等,且蓝色圆圈和红色方块在这条直线的两侧,那么这条直线就是二维的情况下的分类蓝色圆圈和红色方块的间距最大的“分类超平面”

如果分类3维数据,我们就使用一个平面来分割数据。如果分类4维数据,我们将会使用一个体来分割数据。以此类推,如果分类1024维数据,我们将使用1023维平面来分割数据。1023维的平面是什么样子,不知道。所以这个时候,将1023维度的平面命名为分类超平面

使用HOGSVM结合的方法来实现猫咪图片的分类,其需要计算每张猫咪图片的HOG值,然后根据HOG值做为向量来代表图片,找到具有最大间距的分类超平面,使用这个分类超平面来对需要分类的数据进行分类

hog的全称是Histogram ofOriented Gradient, HOG,即方向梯度直方图。它是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子。它通过计算和统计图像局部区域的梯度方向直方图来构成特征。

HOG是方向梯度直方图,首先需要明白它的原理

其主要思想是:在边缘具体位置未知的情况下,边缘方向的分布也可以很好的表示行人目标的外形轮廓。

HOG的提取分为以下几个步骤

1颜色空间归一化

2.梯度计算

3.梯度方向直方图

4.重叠块直方图归一化

5.将获取的重叠快特征向量组合成整个图片的HOG特征

1.颜色空间归一化

1)首先使用GRAY = 0.3 * R  + 0.59 * G + 0.11 * B

的公式将彩色图像转换为灰度图像,然后将得到的灰度图像进行归一化处理

灰度一般是256级,因此公式大概为G2(x,y) = G1(x,y)/256

 2)当光照不均匀的时候,可能会出现图片的某些部分过暗的情况,这个时候需要使用gamma矫正,公式为

式子中的I是原图的灰度值,Y为矫正之后的灰度值,这里的ϒ一般取0.5,这种方法称为平方根矫正,经过矫正之后图片过于暗的部分会变亮,从而提高图片的整体亮度,实现图片过暗的矫正,同样的效果也可以通过Y(x,y) = log2(I(x,y)+1),这个公式来实现,也就是所谓的对数矫正

2.梯度计算

假设图像上某个点处的灰度为I(x,y)

那么这个点处的梯度的大小和方向的计算方法为:


可见,在梯度计算中y轴向下,x轴向右,梯度的方向用角度表示

3.梯度方向直方图

将图像划分为若干个cell,每个cell8 * 8=64个像素的区域,在每个cell内部统计梯度方向直方图,这里将360分为9bin,每个bin20度,也就是每个cell统计的是9维特征向量

4、重叠块直方图归一化

当图像的大小不能被划分为8 * 8 cell的时候,需要将图像进行缩放处理,比如图像的宽度为36 36 / 8 =4.5,这样的图像不能被划分成功,

可以借助openCvresize函数来处理,比如:

resize(picture, picture, cvSize(int(picture.cols / 8) * 8, int(picture.rows / 8) * 8));/

将图像的大小转换成能被8除尽的大小

由于图像中光照情况和背景的变化多样,梯度值的变化范围会比较大,因而良好的特征标准化对于检测率的提高相当重要。标准化的方法多种多样,大多数的都是将celll放在block中,然后标准化每个block

Block的大小一般取2*2cell

比如216x304的图像可以得到27x38个cells,故27x38个cell可划分成26x37个block,每个block为16x16像素。相邻block之间是有重叠的,这样有效的利用了相邻像素信息,对检测结果有很大的帮助

接下分别对每个block进行标准化,一个block有4个cell,每个cell含9维特征向量,故每个block就由4x9=36维特征向量来表征

由于L2-norm简单且在检测中效果相对较好,故一般采用它。

 经过上述对有重叠部分block的直方图归一化之后,将所有block的特征向量都组合起来,则形成26x37x36=34632维特征向量,这就是HOG特征,这个特征向量就可以用来表征整个图像了。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章