图像特征的提取和选择是图像处理过程中最重要的环节之一,对后续图像分类有着重要的影响,并且对于图像数据具有样本少,维数高的特点,要从图像中提取有用的信息,必须对图像特征进行降维处理,特征提取与特征选择就是最有效的降维方法,其目的是得到一个反映数据本质结构、识别率更高的特征子空间 。

图像特征提取的主要算法有,HOG、LBP、HAAR、SIFT、SURF、ORB等。

一、向梯度直方图特征(HOG)

方向梯度直方图(Histogram of Oriented Gradient, HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述器。它的主要思想是获取图像的轮廓信息,通过计算和统计图像局部区域的梯度方向直方图来构成特征。其主要的提取过程如下:

(1) 首先将一个图像灰度化,看做一个x,y,z的三维图像,采用Gamma校正法对输入图像进行颜色空间的标准化,其目的是为了调节图像的对比度,降低图像局部的阴影和光照变化所造成的影响,抑制噪音干扰。

(2) 计算图像每个像素的梯度,获取图像的轮廓信息。

(3) 将图像划分为多个子区域(cell),并统计每个cell的梯度直方图,即获得每个cell的descriptor。

(4) 将每几个cell组成一个block,一个block内所有cell的特征descriptor串联起来便得到该block的HOG特征descriptor。

(5) 将图像内的所有block的HOG特征descriptor串联起来就可以得到该图像的HOG特征descriptor了,即最终的可供分类使用的特征向量。

目前Hog特征结合SVM分类器已经被广泛应用于图像识别中。

二、局部二值模式特征(LBP)

局部二值模式(Local Binary Pattern,LBP)是一种用来描述图像局部纹理特征的算子。它具有旋转不变性和灰度不变性等显著的优点。原始的LBP算子定义为在3*3的窗口内,以窗口中心像素为阈值,将相邻的8个像素的灰度值与其进行比较,若周围像素值大于中心像素值,则该像素点的位置被标记为1,否则为0。这样,3*3邻域内的8个点经比较可产生8位二进制数,即得到该窗口中心像素点的LBP值,并用这个值来反映该区域的纹理信息。

但是直接对两幅图片按此方法提取的特征进行判别分析,很可能会因为“位置没有对准”而产生较大的误差。后来研究人员发现,可以将一幅图片划分为若干的子区域,对每个子区域内的每个像素点都提取LBP特征,然后,在每个子区域内建立LBP特征的统计直方图。如此一来,每个子区域,就可以用一个统计直方图来进行描述,整个图片就由若干个统计直方图组成。其主要的提取过程如下:

(1) 将图像划分为16*16的子区域(cell)。

(2) 对于每个cell中的一个像素,将相邻的8个像素的灰度值与其进行比较,若周围像素值大于中心像素值,则该像素点的位置被标记为1,否则为0。这样,3*3邻域内的8个点经比较可产生8位二进制数,即得到该窗口中心像素点的LBP值。

(3) 计算每个cell的直方图,即每个数字出现的频率,然后对该直方图进行归一化处理。

(4) 将得到的每个cell的统计直方图进行连接成为一个特征向量,也就是整幅图的LBP纹理特征向量。

图像检测之特征提取(图像识别四)(1)

三、Haar-like特征

Haar-like特征最早是由Papageorgiou等应用于人脸表示,Viola和Jones在此基础上,使用三种类型四种形式的特征。Haar-like特征是很简单,特征可分为几类,如两矩形特征、三矩形特征、对角特征。后来,还加入了边缘特征、线特征、中心环绕特征等。使用积分图可以加速计算特征。最后,使用集成的方法Adaboost进行训练。Haar特征只是使用特征模板,计算图像颜色的深浅模式,模板以不同的大小和位置在子图像中滑动,计算出特征值来,交给boost分类器。Haar与LBP有一些相似之处,都是灰度差。

四、SIFT特征

SIFT特征提取的关键点是角点,在不同的尺度空间上查找关键点(特征点),并计算出关键点的方向。SIFT所查找到的关键点是一些十分突出、不会因光照、仿射变换和噪音等因素而变化的点,如角点、边缘点、暗区的亮点及亮区的暗点等。它通过构建高斯金字塔,保证图像在任何尺度都能有对应的特征点,即保证尺度不变性。为了实现旋转不变性,需要根据检测到的关键点的局部图像结构为特征点赋值,具体做法是用梯度方向直方图。关键点描述器不仅包括关键点,还包括关键点周围对其有贡献的像素点。为了保证旋转不变性,要以特征点为中心,在附近领域内旋转θ角(即旋转为特征点的方向),然后计算采样区域的梯度直方图,形成n维SIFT特征矢量。特征向量形成后,为了去除光照变化的影响,需要对它们进行归一化处理。

HOG、LBP、HAAR等提取的是面的信息,是描述一块区域的特征,这些特征可以用于人脸、人体等物体识别。SIFT、SURF、ORB等提取的是关键点的信息,可以用于表示某些图像的细节,可用于图像匹配和三维建模等算法。

图像检测之特征提取(图像识别四)(2)

五、SURF算法

SURF(Speeded-Up Robust Features)加速稳健特征,是一种稳健的局部特征点检测和描述算法。SURF是对SIFT算法的改进,该算子在保持 SIFT 算子优良性能特点的基础上,同时解决了 SIFT 计算复杂度高、耗时长的缺点,提升了算法的执行效率,为算法在实时计算机视觉系统中应用提供了可能。

SURF算法与SIFT算法在很多方面都有较大差异。

在生成尺度空间方面,SIFT中下一组图像的尺寸是上一组的一半,同一组间图像尺寸一样,但是所使用的高斯模糊系数逐渐增大。而在SURF中,不同组间图像的尺寸都是一致的,但不同组间使用的盒式滤波器的模板尺寸逐渐增大,同一组间不同层间使用相同尺寸的滤波器,但是滤波器的模糊系数逐渐增大。

在特征点检验时,SIFT算子是先对图像进行非极大值抑制,再去除对比度较低的点。然后通过Hessian矩阵去除边缘的点。SURF算法是先通过Hessian矩阵来检测候选特征点,然后再对非极大值的点进行抑制。

在特征向量的方向确定上,SIFT算法是在正方形区域内统计梯度的幅值的直方图,找到最大梯度幅值所对应的方向。SIFT算子确定的特征点可以有一个或一个以上方向,其中包括一个主方向与多个辅方向。SURF算法则是在圆形邻域内,检测各个扇形范围内水平、垂直方向上的Haar小波响应,找到模值最大的扇形指向,且该算法的方向只有一个。

(4)SIFT算法生成描述子时,是将16x16的采样点划分为4x4的区域,从而计算每个分区种子点的幅值并确定其方向,共计4x4x8=128维。SURF算法在生成特征描述子时将的正方形分割成4x4的小方格,每个子区域25个采样点,计算小波haar响应,一共4x4x4=64维。

综上,SURF算法在各个步骤上都简化了一些繁琐的工作,仅仅计算了特征点的一个主方向,生成的特征描述子也与前者相比降低了维数。

图像检测之特征提取(图像识别四)(3)

OpenCV SURF特征检测

六、ORB算法

ORB 是 Oriented Fast and Rotated Brief 的简称,可以用来对图像中的关键点快速创建特征向量,这些特征向量可以用来识别图像中的对象。

其中,Fast和Brief 分别是特征检测算法和向量创建算法。ORB 首先会从图像中查找特殊区域,称为关键点。关键点即图像中突出的小区域,比如角点,比如它们具有像素值急剧的从浅色变为深色的特征。然后 ORB 会为每个关键点计算相应的特征向量。ORB 算法创建的特征向量只包含 1 和 0,称为二元特征向量。1 和 0 的顺序会根据特定关键点和其周围的像素区域而变化。该向量表示关键点周围的强度模式,因此多个特征向量可以用来识别更大的区域,甚至图像中的特定对象。

ORB 的特点是速度非常快,而且在一定程度上不受噪点和图像变换的影响,例如旋转和缩放变换等。

图像检测之特征提取(图像识别四)(4)

OpenCV中的ORB提取结果

喜欢本文的话,欢迎关注活在信息时代哦:)

,