课程小结——灰度直方图、Haar-like、HOG、LBP和PCA

来源:互联网 发布:midi软件下载 编辑:程序博客网 时间:2024/06/05 12:42

一、灰度直方图

   单个像素灰度分布的一阶统计量。纹理是灰度在空间以一定的形式变换产生的图案,直方图是描述图像中像素灰度级分布的工具,可以用直方图或其统计特征作为图像的纹理特征。灰度具有一定的稳定性,对大小、方向都不敏感,能表现出相当强的鲁棒性。在医学图像中,大多是灰度图像,基于灰色直方图的特征提取是医学图像颜色特征提取中的一个典型算法。

    基本概念:1.灰度级L 包括纯黑、纯白和其间的无数级灰度,这里取L=256;  

              2.灰度值Zi 灰度图像在计算机中的表示是一个M*N的二维矩阵,一个像素点i就对应着矩阵中相应位                          置的灰度值Zi。由于灰度级为256,所以灰度值范围在0-255间,0代表黑,255代表白。

              3.h(i) 直方图中统计的灰度为Zi的像素个数

              4.p(i) 归一化直方图灰度级分布中,灰度为Zi的概率。与h(i)的关系为:p(i)=h(i)/sum(h(i))


    常用统计特征:可以参考http://blog.csdn.net/whuhan2013/article/details/53995718

    输入图像如下,绘制的灰度直方图及计算出的统计特征如下。

       


二、Haar-like

    Haar-like的优势在于能更好地描述明暗变化,如:眼睛比脸颊的颜色要深,鼻梁两侧比鼻梁颜色要深等,因此用于检测正面的人脸。

    特征值:特征模板内有白色和黑色两种矩形(如下图),并定义该模板的特征值为白色矩形像素和减去黑色矩形像素和,反映了图像的灰度变化,但是矩形特征只对简单的图形结构,如边缘、线段较敏感,因此只能描述特定方向(水平、垂直、对角)的结构。

    需要注意的是,像素和相减时应该保证两块区域中的像素数量相等。对于A、B、D类特征模板,特征值=白色像素和-黑色像素和;对于C类特征模板,特征值=白色像素和-2*黑色像素和。

                               


    A、B、C、D称为特征原型,在图像子窗口中扩展(平移伸缩)得到的特征称为矩形特征,其值称为特征值。
通过改变特征模板的大小和位置,可在图像子窗口中穷举出大量的特征。如24*24像素大小的检测窗口内矩形特征的数量可达16万个,那么,如何快速计算那么多的特征呢?——积分图
    积分图:是一个数据结构,可以用于快速计算子区域的像素和。定义ii(x,y)表示为在(x,y)位置上,对应的积分图中的像素为其左上角所有像素之和。算法如下图:

 

    示例:选取顶点为(100,100)、(250,100)、(100,400)、(250,400)为矩形特征,分别以A、B、C、D为特征原型,计算出的特征值如下图:

                                         



三、HOG特征提取

    通过计算和统计图像局部区域的梯度方向直方图来构成特征。其本质为梯度的统计信息,而梯度主要存在于边缘的地方。可以很好的运用于行人目标的检测,和svm结合在一起用于对目标的分类。


    其算法步骤为:1.将图像灰度化,行数和列数调整为step的整数倍,gamma校正,求水平和垂直梯度从而得到每个像素的梯度大小和方向;2.以step*step为单位cell,计算cell里每个像素点的加权梯度大小和梯度方向,扫描每个像素点,按照其梯度方向分为9个区,将同一区内的加权梯度相加,作为该区的特征值(1*9数组),放在Cell的一个胞元中,因此,Cell是一个(列数/step)*(行数/step)的矩阵,每个元素都是1*9的小矩阵;3.每2*2个Cell组成一个block,则有(列数/step-1)*(行数/step-1)个block,特征数有2*2*9*(列数/step-1)*(行数/step-1)个;4.每个block的4个cell特征值(共36个)排列为1*36的数组;5.梯度直方图就是分别以block个数和每个block含有的分区个数(取值范围1-36)为y,x轴,z轴为第y个block、第x个分区的加权梯度大小。以点(x,y,z)为例,它表示原图中第y个block、第x个分区(即该block中相应cell的1~9个分区中的一个)的加权梯度大小为z。


    同样是输入JPG图片,HOG特征提取的结果为下图:



四、LBP

    LBP (Local Binary Pattern)局部二值模式:是一种用来描述图像局部特征的算子,LBP特征具有灰度不变性和旋转不变性等显著优点。LBP特征比较出名的应用是用在人脸识别和目标检测中。
    

    其算法步骤为:1.首先将检测窗口尺寸为16的最近整数倍(修改为m*n),然后划分为16×16的小区域(cell),共有(m/16)*(n/16)个cell;2.对于每个cell中的一个像素,将相邻的8个像素的灰度值与其进行比较,若周围像素值大于中心像素值,则该像素点的位置被标记为1,否则为0;3.这样,3*3邻域内的8个点经比较可产生8位二进制数,即得到该3*3中心像素点的LBP值[0-255],每个cell的特征值(实际有14*14个)存放在16*16的imgn_unit中,边缘60个为0;4.将每个cell的特征值imgn_unit存放在imgn的胞元中,imgn有(m/16)*(n/16)个胞元。imgn转换为矩阵imgn_mat后,就可以绘制提取了特征值的图像;5.然后计算每个cell的直方图,将imgn转换为一维胞元imgn_line,计算每个胞元的直方图,即每个数字(假定是十进制数LBP值)出现的频率;6.最后将得到的每个cell的统计直方图进行连接成为一个特征向量,也就是整幅图的LBP纹理特征向量。
    

    LBP特征提取的结果为下图:



五、PCA

    PCA(Principal Component Analysis)主成因分析:是一种常用的数据分析方法。PCA通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取数据的主要特征分量,常用于高维数据的降维。PCA是人脸识别的主流方法之一。其核心思想是:重整高维数据,提取其中的重要部分,忽略其中无关紧要的部分。

    

    其算法过程为:1.首先读入M张像素总数为N的图片,写为M*N矩阵allsamples;并求M张图片在各个像素点的平均像素值,列为1*N矩阵samplemean;2.每个图片像素值-同一像素点处的平均像素值,得到M*N矩阵xmean;3.求xmean的协方差矩阵M*M,并求其特征值和特征向量,特征值降序排列,求前p个特征值的和除以所有特征值总和能>0.99,称为贡献率;4.计算特征脸形成的坐标系;5.测试过程,输出辨识率。

    

    这里直接贴出训练结果:

  

                      


六、小结

    基于学习小组的研究讨论结果,总结出这篇笔记。着重学习了各个方法的算法流程,这里也详细给出了个人的理解。可能有偏差,希望多多批评指正!




阅读全文
1 0