在数字图像处理和模式识别领域,LBP指局部二值模式,英文全称:Local Binary Patterns。最初功能为辅助图像局部对比度,并不是一个完整的特征描述子。
后来提升为一种有效的纹理描述 算子,度量和提取图像局部的纹理信息,对 光照具有不变性。LBP有很多变种,或说改进。单纯的LBP记录像素点与其周围像素点的对比信息,或说差异。从图1我们看到,最左边的是原图,标号为example。我们要检测某个像素点的某些信息,在图1中,对于9个方格中中间方格(方格中的数字是像素点灰度值大小),做一个阈值化处理。大于等于中心点像素的,则标记为1,小于的则标记为0。最后将中心像素点周围的11110001二进制数化为十进制数,得到LBP值。
二进制数11110001的顺序并无硬性要求,只要在同一处理中保持相同的顺序即可。

  
图1,LBP示意图

图1,LBP示意图

LBP算子可以取多个周围像素点和采样半径。
图2,LBP可以去多个周围像素点和采样半径

图2,LBP可以去多个周围像素点和采样半径

但是这样的LBP描述特征能力有限,且不具备旋转不变性。很容易想象,如果图片进行了旋转,则LBP值也会随之改变。因此有了下面的改进。
将LBP周围的二进制码(如11110001)按位旋转,取二进制码最小的值。对于11110001情况,我们按位旋转,得到11100011,11000111,10001111,0001111,00111110,01111100,11111000七个不同的二进制数,最小值为00011111,则取该种模式(pattern)为最终LBP。这又称为LBPROT,或写为LBPp,r ri。
对于采样半径为1,周围像素点数为8的情况,LBPROT算子(即具有旋转不变性的LBP模式)总共有36个。
LBPROT

LBPROT

但是对于LBPROT来说,其实验结果并不好。不能提供很好的分辨率。
在以上的基础上,又有了Uniform LBP的出现。
所谓Uniform LBP,指在LBP二进制数中,0到1和1到0的跳变总数不超过两次。如00000000和11111111,并没有0,1跳变,U=0。对于11110000和00001111,则有一次跳变,U=1。对于Uniform LBP来说,具备旋转不变性的pattern只有9个,如图3LBPROT中第一排标号为0-8的pattern。因此,最终结果为统计Uniform LBP pattern的直方图,把所谓的nonUniform放入直方图的另一个bin中,得到最终的特征向量。
Uniform LBP在局部纹理描述上取得了较好的描述效果,原因在于,Uniform LBP 的各种模式占据了图像中所有模式的绝大部分。不同采样半径和周围像素点个数会不同,但Uniform LBP占据了所有模式的50%~95%。
LBP还有很多变种,如CLBP,LBPHF等等。有兴趣的读者可以阅读相关文献 [1-2]
LBP已经成功应用于人脸检测,唇语识别,表情检测,动态纹理等等领域。其算法复杂度低,消耗内存小,原理简单,但并不一定适合所有的特征描述。
 
 
 
局部二值模式(LBP)首先是用来做图像局部特征比较的,传统的LBP方法,首先通过阈值来标记中心点像素与其邻域像素之间的差别。LBP是人脸识别中经常使用的一种方法。
最早的LBP算子是定义在3*3的邻域上的。它使用中心像素值来计算8的邻域像素。然后在乘以领域的权值得到结果。下面我们给出一个例子:
Example
6
4
3
7
5
2
8
9
5
Threshold
1
0
0
1
*
0
1
1
1
(10001111)2 LBP=1+16+32+64+128 = 241
C = (6+7+8+9+5)/5 – (4+3+2)/3 =6
Weights
1
2
4
128
*
8
64
32
16
我们使用二维分布LBP和局部对比测量C作为该领域的特征。
但是为了使得到的特征更有代表性。矩形领域的大小是可以改变的,可以使用4*4或5*5的领域。相比矩形领域,圆形对称领域的效果更好。
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐