LBP算法

在数字图像处理和模式识别领域,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的领域。相比矩形领域,圆形对称领域的效果更好。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值