【图像特征提取2】局部二值模式LBP----从原理到实践

来源:互联网 发布:四川广电网络机顶盒 编辑:程序博客网 时间:2024/05/24 05:43

(一)局部二值模式LBP的简介

          LBP(Local Binary Pattern,局部二值模式)是一种描述图像局部纹理的特征算子,该算子是由T.Ojala等人于1994年首次提出来的,后来经过改进,可用于图像特征分析,该算子具有旋转不变性灰度不变性等显著的优点。
       经过改进之后的局部二值模式LBP特征是高效的图像特征分析方法, 已经应用于多个领域之中,特别是在人脸识别、表情识别、行人检测、纹理分类等领域取得了成功。LBP特征将窗口中心点与邻域点的关系进行比较,重新编码已形成新的特征,这样在一定程序上消除了外界场景对图像的影响,因此,在一定程度上解决了复杂场景下(光照变化)的特征描述的问题

(二)经典的LBP特征设计

      经典的LBP算子定义为3*3的正方形窗口,以窗口的中心像素阈值,将其相邻的8邻域像素的灰度值当前窗口的中心点的像素值进行比较,若邻域的像素值小于中心点的像素值,则置该像素点的值为0,反之,则置为1。这样,一个3*3窗口的邻域内的8个像素点和中心像素点进行比较之后,就会产生一个8位的二进制数,即可产生256中LBP码,通过这样计算得到的LBP码值就可以用来反映该窗口的区域纹理特征信息。如下图所示:   
这里写图片描述
       八位的二进制数组成LBP码值的的规则是:在这个3*3的窗口内,沿着顺时针开始组合成一个8位的二进制数,然后转换成10进制数。
      需要说明的是:局部二值模式LBP特征描述的是一种灰度范围内的图像处理技术,针对的输入图像是8位的灰度图像。经典的LBP特征的缺点是无法区分窗口中中心点像素的值到底是等于还是大于邻域上像素点的灰度值,后续的改进引入了LBP+和LBP-因子用来区分上述说的这个缺点。

1)灰度不变性

     通常,同样的物体具有同样的纹理特征,但是在不同时间段对物体的拍照会因为外界的光照变换,导致同样物体不同时间段或者不同光照条件下的成像,亮度差异比较大。但是LBP具有灰度不变性的特征,可以抑制光照变换所带来的影响。
      如下图所示,第一幅图想经过LBP变换后得到的LBP码为11110001.而第二幅图像的每个像素在第一幅图像的基础上增加50,进行LBP变换后,得到的LBP码值仍然是11110001.因此,LBP特征反应了局部亮度的相对变化,所以整体上增加或者减少一个值对于LBP特征没有大的影响。因此得到结论:差分分布对平均光强不敏感。
      但是,需要说明的是:LBP特征也仅仅实在一定程度上对于光照具有鲁棒性;例如,阴影对于物体成像的影响,LBP就没有很好的抵抗性能。

(三)圆形LBP

      经典的LBP用3*3的正方形窗口的8邻域来描述图像的局部图像纹理特征,其缺点就是难以满足不同尺度和频率的要求。Ojala等人对经典的LBP进行来改进,提出了将3*3的正方形窗口扩展到任意的圆形邻域。如下图所示,所谓圆形邻域,只是采样的点选择不同于八邻域。它是以中心像素为圆心,以R为半径画圆,在圆的边界商均匀的选取P个点作为采样点。而后面的处理方法与前面的八邻域LBP方法一致。

        需要说明的是:由于圆形LBP采样点在圆形边界点上,那么必然会导致部分计算出来的采样点的坐标不是整数,因此,在这里就需要对得到的坐标点像素值进行处理,常用的方法就是最近邻插值和双线性插值。下图是R=1(pixel),P=8时的情况。 
      
     我们可以发 ,R的大小就决定了圆的大小,反应了二维空间的尺度;而P的大小就决定了采样点的点数,反应了角度空间的分辨率。同样,我们还可以通过改变R值和P值,实现不同的尺度和角度分辨率(如下图所示)。


1)旋转不变性

     对于下图的两个模式,其实只有方向不同,在实际中,是同一个模式的不同状态,为了克服旋转带了的变化,引入了“旋转不变性的概念”。

      处理方法如下所示:两种模式各有一个LBP值。将这个LBP值不断的循环右移,并找到一个右移过程中最小的结果,作为新的LBP。可见,这两种模式得到的新的LBP值相同,属于同一种模式。以此解决方向变化的问题。其中,“循环右移”的实质是对模式图案不断的旋转。“最小化”的过程的实质是“寻找能量最低的位置”。

      对P=8的LBP,一共有8个采样点,每个采样点可能输出0或者1,所以一共有256种局部二值模式。其中一些仅仅是方向不同,通过旋转之后就可以重合。通过以上的旋转不变性处理之后,256种LBP变味了具有"旋转不变性"的36种模式。如下图所示:特点是,任意两种模式经过任意旋转之后不会重合。  
   

2)增强型旋转不变性

         在实际应用中,我们通过统计就会发现,上图中第一行的九种模式最为常见,而后面的27中模式并不常见,如果将后面的27种模式单独归类的话,会因为它们出现的概率太小,而具有一定的随机性,因此,分类结果反而不稳定。因此。我们对这种方法进行了改进。
      我们对每个LBP上的数值按顺序读一圈,将0->1和1->0的变化次数记为U。对于上图可以发现,第一行模式的U值均小于2(反映了平坦或者变换区域),而后面的27中模式的U值大于等于4(变化剧烈,不常见)。如下图所示。这样对于一般的LBP进行处理时,我们将U值小于等于2LBP每个单独跟为一类,而对于U值大于4的LBP全部归为一类。在P=8的情况下,原先分好的36类就变为现在的10类。


3)LBP特征直方图

         我们以横坐标X表示LBP的类别,纵坐标Y表示这一类别上的LBP特征的个数,这样我们将会得到一个LBP的特征直方图。如下图所示。


参考的资料:

1)http://blog.csdn.net/ws_20100/

2)http://blog.csdn.net/u013207865/article/details/49720509


0 0
原创粉丝点击