LBP模式
LBP有几种特殊的模式:等价模式(uniform pattern)、旋转不变LBP算子、旋转不变的等价LBP算子。
等价模式(uniform pattern):当某个局部二进制模式所对应的循环二进制数从0到1或从1到0最多有两次跳变时,该局部二进制模式所对应的二进制就称为一个等价模式类。如00000000,11111111,10001111都是等价模式类。检验某种模式否是等价模式的简单方法是将其和其移动一位后的二进制模式按位相减的绝对值求和,结果小于或等于2,则将其归于等价模式。模式数量由原来的2^P种减少为P(P-1)+2种,其中P表示邻域集内的采样点数。可以通过低通滤波的方法来增强等价模式所占的比重。
旋转不变LBP算子:不断旋转圆形邻域得到一系列初始定义的LBP值,取其最小值作为该邻域的LBP值。通过引入旋转不变的定义,LBP算子不仅对于图像旋转表现得更为鲁棒,并且LBP模式的种类进一步减少。
旋转不变的等价LBP算子:上述两种模式的结合,模式数量由2^P减少为P+1类。
LBP实现的人脸识别:
首先将人脸图片分为若干个相等的矩形区域,然后对每个区域的像素分别进行LBP算子的转换,构建一个全局性的直方图,该直方图由各个区域的直方图串联起来,这样做的目的是不仅保留原图像的统计信息,同时从直方图上也可以看出位置信息。然后利用在已经计算的()特征空间上的最近邻域分类器作为直方图之间的差异性衡量标准,得到一个距离矩阵,其中包含了图像之间的距离。另外,由于图片上各个区域包含的有效信息不一样,有些比较多,有些较少甚至为零,所以可以对各个区域赋予不同的权重,其中一种方法是:将图像分为若干个区域后,依次取用每个区域对图像进行识别,识别率在0.2以下的权重为0,识别率在0.8以上的权重为2,识别率在0.9以上的权重为4,其余的权重设为1。这样,上式变为
。 效果如下:
黑色区域表示权重为0,灰色为1,浅灰色为2,白色为4。
LBP算子的半径及数量对识别率影响不是很大,反而窗口的大小对结果影响比较大。窗口越小,识别率越高,反之则越低。但是随着窗口的增加,特征的维数也在增加,这里要在两者之间平衡,不是识别率越高越好。
可改进地方:区域的划分及权重的分配、减少特征空间维数。
本文学习自:《Face Recognition with Local Binary Patterns》,Timo Ahonen。
PS:在之前的文章里提到lbp的matlab程序,其中getmapping.m定义了lbp三种不同的模式,而lbp.m则是lbp的实现,当然它只是简单的整幅图像的lbp变换(没有分区域),其中很巧妙地运用了整体移动的方法计算lbp值。