提取lbp特征java代码_LBP特征提取原理及代码实现

老规矩,先上背景,算是表示对LBP算法提出者的一种尊敬(其实,是为了装...kkk,大家都懂ha)。

一、LBP背景:

LBP(Local Binary Pattern,局部二值模式)是一种用来描述图像局部纹理特征的算子;它具有旋转不变性和灰度不变性等显著的优点。它是首先由T. Ojala, M.Pietikäinen, 和D. Harwood在1994年提出,用于纹理特征提取。而且,提取的特征是图像的局部的纹理特征。至今,仍在图像识别和人脸识别部分,有很好的效果。

二、LBP特征的原理:

从94年T. Ojala, M.Pietikäinen, 和D. Harwood提出至今,LBP经历过多次的改进,以下根据时间顺序介绍:

FirstBleed:

原始的LBP算子定义为在3*3的窗口内,以窗口内的中心点的像素值为标准,对比窗口内其余8个元素的像数值大小,大于中心点的位置用1表示,小于为0。如此,3*3领域内的8个点恰可产生8为二进制数字(通常转化为十进制表示成LBP值)即为中心点的LBP特征值。

上图:

SecondBleed:

原始的LBP提出后,研究人员不断对其改进和优化,以下是改进点。

(一):圆形LBP算子:

原始LBP算子固定为某个区域,在图像尺寸和频率纹理发生改变时,会出现很大的偏差,不能正确反映像素点周围的纹理信息。为适应不同尺寸的纹理特征,Ojal将圆形邻域替代正方形邻域。改进后的LBP允许半径为R的圆形邻域有任意多个特征点。从而得到诸如半径为R的圆形区域内含有P个采样点的LBP算子:

上图:

计算方法:

xt =xd + Rcos(2πp/P)

yt = yd  - Rsin(2πp/P)

其中(xt,yt)为某个采样点,(xd,yd)为邻域中心点,p为第p个采样点,P为采样点的个数。通过上式可以得到想要的采样点的坐标。另:得到的采样点的坐标未必完全为整数,改进后的LBP采用双线性插值得到该采样点的像素值:

几种不同半径不同采样点数量的LBP算子:

(二)旋转不变LBP特征:

上面已具备灰度不变性(即尺寸大小不变性),还不具备旋转不变性,研究人员在上面的基础上进行扩展,提出了具有旋转不变性的LBP特征。

首先,不断旋转圆形领域内的采样点的位置,得到一系列的LBP特征值,从这些LBP特征值中选择最小的作为LBP中心像素点的LBP特征值。做法如下:

如上图,进行旋转,最后得到LBP特征值为15.(旋转是改变采样点二进制位置)

(三)Uniform Pattern LBP特征:

Uniform Pattern LBP,也称为等价模式或均匀模式。对一个LBP特征,假设对于半径为R的圆形区域内含有P个采样点,则会产生2p二进制表达方法。随着邻域内采样点数目的增加,二进制模式的种类以指数形式增加,不利于纹理的提取、分类、识别及存取。为解决二进制模式过多的问题,Ojalar提出采用一种”等价模式“对LBP算子进行降维。在实际图像中,绝大多数LBP模式只包括从0到1或从1到0的转变。故Ojalar将”等价模式“定义为:当某个LBP所对应的二进制数从0到1或从1到0的转变最多有两次转变时,该LBP所对应的二进制就称为一个等价模式。如00000000(0次跳变)、00000111(1次跳变)、10001111(2次跳变)均为等价模式类。除等价模式类外的模式均归为混合模式类。通过这样,模式数量由原来的2p种减少为P(P-1)+2+1种(文章中大写P均代表采样点的数量)。

具体实现:

采样点数8个,即256个LBP特征值,分成59类:跳变0次——2个,跳变1次——0个,跳变2次——56个,跳变3次——0个,跳变4次——140个,跳变5次——0个,跳变6次——56个,跳变7次——0个,跳变8次——2个。

(四)MB-LBP特征:

MB-LBP特征,全称为Multiscale Block LBP,中科院的人发明,原理和HOG特征提取有相似之处。下面是原理介绍:

首先将图像分成一个个小块,再将每个小块分成一个个小的区域,小区域内的灰度值的平均值即为当前小区域的灰度值,与周围小区域灰度进行比较形成LBP特征,生成的LBP特征成为MB-LBP:如图:

同时,作者对得到的MB-LBP特征值进行均值模式编码,通过对得到的特征图求直方图,得到了LBP特征值0-255之间(0-255即直方图中的bin)的特征数量,通过对bin中的数值进行排序,通过权衡,将排序在前63位的特征值看作是等价模式类,其他的为混合模式类,总共64类,作者在论文中称之为SEMB-LBP(Statistically Effective MB-LBP )。(在此介绍一下直方图方法,首先得到的LBP特征值的二进制最多256种,而后对整个图像的LBP特征值的二进制统计、排序,前63位即为等价模式,后面均为混合模式类)。类似于等价模式LBP,等价模式的LBP的等价模式类为58种,混合模式类1种,共59种。二者除了等价模式类的数量不同之外,主要区别在于:对等价模式类的定义不同,等价模式LBP是根据0-1的跳变次数定义的,而SEMB-LBP是通过对直方图排序得到的。

ThirdBleed:

LBPH——图像的LBP特征向量:

LBPH,Local Binary Patterns Histograms,即LBP特征的统计直方图,LBPH将LBP特征与图像的空间信息结合在一起。这种表示方法由Ahonen等人在论文[3]中提出,他们将LBP特征图像分成m个局部块,并提取每个局部块的直方图,然后将这些直方图依次连接在一起形成LBP特征的统计直方图,即LBPH。

一幅图像具体的计算LBPH的过程(以Opencv中的人脸识别为例):

1. 计算图像的LBP特征图像,已经介绍。

2. 将LBP特征图像进行分块,Opencv中默认将LBP特征图像分成8行8列64块区域

3. 计算每块区域特征图像的直方图cell_LBPH,将直方图进行归一化,直方图大小为1*numPatterns

4. 将上面计算的每块区域特征图像的直方图按分块的空间

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值