LBP特征原理及C实现

LBP(Local Binary Pattern, 局部二值特征)是一种用来描述图像局部纹理特征的算子,它具有旋转不变性和灰度不变性,同时该特征对光照不敏感。该特征对姿态和表情的鲁棒性不强。 LBP特征在人脸识别和目标检测中常用。

1、原始LBP特征描述及计算方法
原始的LBP算子定义在像素3x3的领域内,以领域中心像素为阈值,相邻的8个像素的灰度值与领域中心的像素值进行比较,若周围像素大于中心像素值,则该像素点(非中心点)的位置标记为1,否则为0。这样,3x3领域内的8个点经过比较可产生8位二进制数,将这8位二进制数依次排列形成一个二进制数字这个二进制数字就是中心像素的LBP值。LBP值共有2^8种可能,故LBP值有256种。中心像素的LBP值反映了该像素周围区域的纹理信息。
注意:LBP特征的图像必须是灰度图,如果是彩色图,需要先转化为灰度图。
上诉过程用图表示为:
在这里插入图片描述

demo输出
在这里插入图片描述
2、圆形LBP特征
基本的LBP特征最大的缺陷在于它只覆盖了一个固定范围内的小区域,这显然不能满足不同尺寸和频率纹理的需求。为此提出圆形LBP算子,圆形LBP能适应不同尺度的纹理特征并达到灰度和旋转不变性的要求。
圆形LBP将3X3领域扩展到任意领域,并用圆形领域代替了正方形领域,改进后的LBP算子允许在半径为R的圆形领域内有任意多个像素。从而得到半径为R的圆形区域内含有P个采样点(P领域)的LBP算子。
在这里插入图片描述

demo输出: ratio=1,采样点8在这里插入图片描述

3、LBP旋转不变模式
由于编码的起始点是一点的,每一种二值编码经旋转(循环移位)会产生不同的编码值。为了形成旋转不变的编码模式,对同一个编码模式经旋转后产生的编码结果为同一值,既是这些旋转结果中最小的。我看有不少博客上的代码demo实现这种模式时是直接右移的,这样做应该不对的。
在这里插入图片描述

demo输出:
在这里插入图片描述

4、LBP等价模式
原始的LBP算子,随着领域内采样点数的增加,二进制模式的种类是急剧增加的。如半径为R的圆形区域内含有P个采样点石将会产生P^2种模式。过多的二值模式对特征的提取以及信息的存取都是不利的。
等价模式定义: 当某个LBP所对应的循环二进制数从0到1或者从1到0最多有两次跳变时,该LBP所对应的二进制就称为一个等价模式。在实际图像中,计算出来的大部分值都在等价模式之中,可达百分之90%以上。
例子说明:

如00000000(0次跳变),00000111(只含一次从0到1的跳变),10001111(先由1跳到0,再由0跳到1,共两次跳变)都是等价模式类。
除等价模式类以外的模式都归为另一类,称为混合模式类,例如10010111(共四次跳变)

uniformLBP模式的个数为P(P-1)+2,P为领域像素点个数。对于8个采样点,uniform形式有58种输出, 其他的所有值为第59类,这样直方图从原来的256维降到了59维,并且可以减少高频噪声带来的影响。
对。
demo输出:
在这里插入图片描述
5、MB-LBP特征(Multiscale LBP)
原理图解
在这里插入图片描述
将图像分成一个个小块(Block),每个小块在分为一个个小区域,小区域内的灰度平均值作为当前小区域的灰度值,然后与周围小区域灰度进行比较形成LBP特征,该特征就是MB-LBP特征。
Block大小为3(3x3)则小区域的大小为1,就是原始的LBP特征,上图的Block大小为9(9x9),小区域的大小为3(3x3)

MB-LBP特征典型应用是Adaboost中,人脸识别等。

demo输出:block为9x9
在这里插入图片描述

6、LBPH-图像的LBP特征向量(Local Patterns Histograms)
LBPH-LBP特征的统计直方图。LBPH将LBP特征与图像的空间信息结合在一起。由Ahonen等人提出【论文: ] Ahonen, T., Hadid, A., and Pietikainen, M. Face Recognition with Local Binary Patterns. Computer Vision- ECCV 2004 (2004), 469–481】。
他们将LBP特征图像分成m个局部块,并提取每个局部快的直方图。
LBPH的具体计算过程:

1、计算图像的LBP特征;
2、将LBP特征图进行分块,Opencv中默认将LBP特征图分成8*8,64块区域;
3、计算每块区域特征图的直方图cell_LBPH, 将直方图进行归一化,直方图大小为1*numPatterns;
4、将上面计算的每块区域特征图像的直方图按照分块的空间顺序依次排列成一行,形成LBP特征向量,大小为
   (numPatterns * 64);
5、用机器学习的方法(SVM等)对LBP特征向量进行训练,用来检测和识别目标;

LBPH的维度:
采样点为8个,如果用的是原始的LBP或者扩展LBP特征,其LBP特征值的模式为256种,则一幅图像的LBP特征向量维度为:64256=16384维。
若使用uniform LBP特征,其LBP值得模式为59种,其特征向量维度为:64
59=3776维。既使用等价模式时,LBPH维度大大减少,这意味着在进行机器学习时时间能大大减少但性能确并不受很大影响。

7、demo地址

8、参考
https://blog.csdn.net/zouxy09/article/details/7929531
https://blog.csdn.net/lsq2902101015/article/details/48680779
https://blog.csdn.net/quincuntial/article/details/50541815 //MB-LBP,LBPH
http://www.opencv.org.cn/opencvdoc/2.3.2/html/doc/tutorials/imgproc/histograms/histogram_calculation/histogram_calculation.html#histogram-calculation //直方图

猜你喜欢

转载自blog.csdn.net/FPGATOM/article/details/84168676