图像预处理梯度图归一化SVM
一图读懂Hog
读不懂那就一点一点看吧------------------------------------
1、图像预处理:包括伽马校正或灰度化 2、计算每一个像素点的梯度值,得到梯度图(规模和原图大小一样)其中:
水平梯度 gx =30-20=10竖直梯度 gy=64-32=32
到此,梯度图以计算完成
梯度方向的范围是0-180度。取绝对值的原因是这样效果更好
首先,我将0-180度分成9个bins,分别是0,20,40...160。然后统计每一个像素点所在的bin。请看下图:
左上图是8*8的梯度方向值,右上图是8*8的梯度强度值,下图是9个bins。
先看两个蓝色圈圈。因为蓝圈的方向是80度,大小是2,所以该点就投给80这个bin;
再看两个红色圈圈。因为红色圈圈的方向是10,大小是4,因为10距离0点为10,距离20点为也为10,那么有一半的大小是投给0这个bin,还有一半的大小(即是2)投给20这个bin。
那么统计完64个点的投票数以后,每个bin就会得到一个数值,可以得到一个直方图,在计算机里面就是一个大小为9的数组。
3、对16*16大小的block归一化归一化的目的是降低光照的影响。
上面取的8*8就是所谓的cell,以及求出的9bins就是cell的一维特征向量
对于图像中
检测窗口的尺寸为64×64,假设给出块的尺寸为16×16,块步长为(8,8),
经过计算:检测窗口中共滑动7×7=49个block。在一个块中选择细胞单元不再滑动,给出细胞单元的尺寸为(8,8),所以一个块中一共有2×2=4个cell。
每一个block将按照上图滑动的方式进行重复计算,直到整个图像的block都计算完成。
LBPLBP(Local Binary Pattern,局部二值模式)是一种用来描述图像局部纹理特征的算子;它具有旋转不变性和灰度不变性等显著的优点。它是首先由T. Ojala, M.Pietikäinen, 和D. Harwood 在1994年提出,用于纹理特征提取。而且,提取的特征是图像的局部的纹理特征;
LBP的应用中,如纹理分类、人脸分析等,一般都不将LBP图谱作为特征向量用于分类识别,而是采用LBP特征谱的统计直方图作为特征向量用于分类识别。
因为,从上面的分析我们可以看出,这个“特征”跟位置信息是紧密相关的。直接对两幅图片提取这种“特征”,并进行判别分析的话,会因为“位置没有对准”而产生很大的误差。后来,研究人员发现,可以将一幅图片划分为若干的子区域,对每个子区域内的每个像素点都提取LBP特征,然后,在每个子区域内建立LBP特征的统计直方图。如此一来,每个子区域,就可以用一个统计直方图来进行描述;整个图片就由若干个统计直方图组成;
对LBP特征向量进行提取的步骤:
(1)首先将检测窗口划分为16×16的小区域(cell);
(2)对于每个cell中的一个像素,将相邻的8个像素的灰度值与其进行比较,若周围像素值大于中心像素值,则该像素点的位置被标记为1,否则为0。这样,3*3邻域内的8个点经比较可产生8位二进制数,即得到该窗口中心像素点的LBP值;
(3)然后计算每个cell的直方图,即每个数字(假定是十进制数LBP值)出现的频率;然后对该直方图进行归一化处理。
(4)最后将得到的每个cell的统计直方图进行连接成为一个特征向量,也就是整幅图的LBP纹理特征向量;
然后便可利用SVM或者其他机器学习算法进行分类了。
Reference: 黄非非,基于 LBP 的人脸识别研究,重庆大学硕士学位论文,2009.5
Sift
尺度不变特征变换匹配算法 Scale Invariant Feature Transform(SIFT) 是一种电脑视觉的算法用来侦测与描述影像中的局部性特征,它在空间尺度中寻找极值点,并提取出其位置、尺度、旋转不变量,此算法由 David Lowe在1999年所发表,2004年完善总结。
基本步骤:
- 尺度空间的极值检测删除不好的极值点,留下来的就是特征点特征方向幅值 特征点描述
图像金字塔、高斯金字塔、差分高斯金字塔
step1.5:尺度空间的极值检测图像金字塔、高斯金字塔、差分高斯金字塔尾部
step2:删除不好的极值点(求导链接)
step3-去除边缘效应
由于DoG函数在图像边缘有较强的边缘响应,而边缘上的极值点抗噪性较差,因此我们还需要排除边缘响应。为什么边缘上的点不好呢?一方面图像边缘上的点是很难定位的,具有定位歧义性;另一方面这样的点很容易受到噪声的干扰而变得不稳定。
怎么消除这些在边缘的极值点呢?
假设图像像素如图所示,边缘位置像素值急剧变化
一个定义不好的高斯差分算子的极值在横跨边缘的地方有较大的主曲率(红色),而在垂直边缘的方向有较小的主曲率(紫色)。
对于分布在边缘上附近的极值点,它们的较大的主曲率和较小的主曲率之比,一般情况下要比非边缘点的比值大
根据这种思想,我们可以设一个比值的阈值,当比值大于这个阈值就认为极值点在边缘上。
参考公式:--------------------------------------------------------------------------------
-------------------------------------------------------------------------------------
step4-确定关键点(极值点)方向
为什么要确定方向,确定啥方向?
为了使描述符具有旋转不变性,需要利用图像的局部特征为给每一个关键点分配一个基准方向。这样就算目标旋转,其他特征都相对与基准方向,并不会因为目标旋转而改变。那么怎么求这个基准方向呢?
统计的是以该特征点为圆心,以该特征点所在的高斯图像的尺度 σ 的4.5倍为半径的范围内像素点。
在此区域内做1.5σ的高斯滤波(高斯加权,离圆心也就是关键点近的幅值所占权重较高).
当关键点有两个方向,一个主方向,一个辅方向(梯度幅值>=80%主方向梯度幅值),
那么把这个关键点看成两个关键点,只不过这两个关键点的坐标和σ一样,只是方向不一样.
至此,我们计算出的带有位置、尺度和方向的关键点也就是sift特征点。
关键点描述
step5. 关键点描述现在我们算出来的特征点,都是在固定在图片坐标系中的特征描述。我们需要脱离图片坐标系的固定限制,提取出特征点的局部描述,这样就可以与其他图片的相似的部分去作对比,我们来看看怎么提取局部描述子。
生成局部描述符的思路就是:通过对关键点的周围区域分块,计算块内的梯度直方图,生成具有独特性的向量,这个向量应该是该区域图像信息的一种抽象,并且具有唯一性。
SURF
未完待续



