用matlab的lbp算子,Matlab学习: LBP(局部二进制模式)用于人脸识别

nQVr6v.jpg

1. 算法简介

LBP是一种用于纹理分类的简单有效的特征提取算法. LBP运算符由Ojala等人在1996年提出. 主要论文是“具有局部二进制模式的多分辨率灰度和旋转不变纹理分类”,pami,第24卷,第1期. 2002年7月7日. LBP代表“本地二进制模式”.

有关论文的解释,请参见链接

bd202cd20d66cb9ee8406995191d42af.png

从纹理分析的角度来看,图像上像素的大部分时间的纹理特征是指该点与周围像素之间的关系,即该点与其附近的点之间的关系. 从该关系中从哪些角度提取特征,形成了不同类型的特征. 具有功能,可以根据纹理对其进行分类. LBP构建了一个像素与其周围像素之间关系的度量.

cb5ce75c2d79f138a1216423473d141a.png

对于图像中的每个像素,通过计算每个像素与以其为中心的3 * 3邻域中的中心像素之间的大小关系,可以将像素的灰度值转换为八位二进制序列. 具体计算过程如下图所示. 对于图像中的任何点Ic,LBP特征的计算均以Ic为中心,以与Ic相邻的8个点为基准,并沿顺时针方向将其记录为I0,I1.... ,I7; Ic点的像素值为阈值,如果Ii点的像素值小于Ic,则将Ii二值化为0,否则为1. 将0和1的二进制序列视为8位二进制数,将该二进制数转换为十进制,以在Ic点获得LBP运算符的值.

1e6fa61de88bd23257fcc47595a2e53c.png

基本LBP运算符仅限于3 * 3. 对于大图像的结构,无法很好地提取所需的纹理特征,因此研究人员扩展了LBP运算符. 新的LBP算子LBP(P,R)可以计算不同半径邻域大小和不同像素点的特征值,其中P代表周围像素的数量,R代表邻域半径,并将原始正方形邻域扩展为Round,下图显示了四个扩展的LBP示例,其中R可以是一个十进制数,对于不落到整数位置的点,根据轨道中最接近它的两个整数位置像素的灰度值,使用double线性差分法可以计算其灰度值.

295ed76802cca142638dbdf87dd24887.png

LBP(P,R)具有2 ^ p的值,这意味着图像中有2 ^ p个二进制模型. 但是,在实际研究中,发现所有表达信息的方式的重要性是不同的. 统计研究表明,图像中的少数模式特别集中,达到总模式的90%左右. Ojala等. 将此模式定义为统一模式. 如果将二进制序列视为一个圆,则0-1和1-0的总变化次数不超过两次,则该序列为统一模式,例如,使用LBP时为00000000、00011110、00100001、11111111为了表达图像纹理,通常只关心Uniform模式,并将所有其他模式放在同一个In类中.

ea1f557eaf2d48d2b347fd5673f82b3e.png

46e807ca6f29485329658c880bcb0dc3.png

脸部图像的各种LBP模式如下图所示. 从图中可以看出,变化后的图像比原始图像可以更清晰地反映每个典型区域的纹理,同时淡化了研究价值低的平滑区域的特征,也减小了特征的维数. 相比之下,Uniform模式更加逼真,并用于面部识别和表情识别应用程序.

aa00672b1c284b8aef43c740b3dd9571.png

3c5929612d47de18c46cc1bf3dac601b.png

在表情识别中,最常用的是LBP的统计直方图作为表情图像的特征向量. 为了考虑特征的位置信息,将图像划分为几个小区域,并且在每个小区域中进行直方图统计,即,计算属于该区域中的特定图案的图案的数量,并且最终,所有区域的直方图立即连接在一起作为特征向量,接受下一级处理.

236a5622ae812ab0f208127355113420.png

LBP运算符使用周围点和点之间的关系来量化该点. 量化后二维图片 人脸旋转 matlab,可以更有效地消除照明对图像的影响. 只要照度的变化不足以改变两点像素值之间的大小关系,LBP算子的值就不会改变,因此在某种程度上,基于LBP的识别算法解决了这个问题的照明变化,但是当图像被照明时,如果变化不均匀,像素之间的大小关系就会被破坏,相应的LBP模式也会发生变化.

如果图像被旋转,则纹理特征将被旋转,结果二进制字符串将被旋转,并且LBP值将相应地改变. 为了使LBP旋转不变,将二进制字符串旋转. 假设开始时获得的LBP特征为10010000,则可以通过沿顺时针方向旋转二进制特征将其转换为00001001的形式,并且以这种方式获得的LBP值最小. 无论如何旋转图像,从该点提取的二值特征的最小值均保持不变,并且该最小值用作提取的LBP特征,因此LBP不变地旋转. 当P = 8时,可以生成的不同二进制特征数为2 ^ 8. 上面的表达式之后二维图片 人脸旋转 matlab,它变成36. (我认为应该是2 ^ 8/8 = 32)

本文来自电脑杂谈,转载请注明本文网址:

http://www.pc-fly.com/a/jisuanjixue/article-277920-1.html

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值