LBP特征描述算子-人脸检测学习笔记

LBP特征算子原理介绍

LBP指局部 0,1二值模式,属于用来扫描图片的一种 特征算子,在 灰度不变性,旋转不变性方面具有显著的特点,通常检测图片里人脸局部特征时,基于opencv下使用LBP算子实现人脸特征识别,还可以将LBP具有的特征用于训练目标检测分类器。需要了解,LBP用于opencv计算的时候,不能提供一个单独的计算LBP特征的接口。在OpenCV中可以使用LBP算法,但是没有提供函数接口。

人脸特征检测算法原理

在LBP进行人脸特征识别检测时,用 T T T 来描述图像的纹理特征,可以将假设局部邻域中像素个数为 P ( P > 1 ) P(P >1) P(P>1)。其形式可描述成: T = t ( g c , g 0 , … , g p − 1 ) p = 0 , … , P − 1 (2-1) T=t\left(g_{c}, g_{0}, \ldots, g_{p-1}\right) \quad p=0, \ldots, P-1\tag{2-1} T=t(gc,g0,,gp1)p=0,,P1(2-1)
g c g_c gc指中心灰度值, g p g_p gp 指中心作为像素的圆心,半径为R的圆上 像素 的灰度值
如果中心像素和局部邻域像素相互独立,定义式可以改写为: T = t ( g c , g 0 − g c , … , g p − 1 − g c ) p = 0 , … , P − 1   ≈ t ( g c ) t ( g 0 − g c , … , g p − 1 − g c ) (2-2) \begin{aligned} T &=t\left(g_{c}, g_{0}-g_{c}, \ldots, g_{p-1}-g_{c}\right) \quad p=0, \ldots, P-1 \ & \approx t\left(g_{c}\right) t\left(g_{0}-g_{c}, \ldots, g_{p-1}-g_{c}\right) \end{aligned}\tag{2-2} T=t(gc,g0gc,,gp1gc)p=0,,P1 t(gc)t(g0gc,,gp1gc)(2-2)
局部区域的整体亮度是由 t ( g c ) t(g_c) t(gc)这一部分来决定的,在对于纹理特征处理,不需要这一项,可改写成: T ≈ t ( g 0 − g c , … , g p − 1 − g c ) p = 0 , … , P − 1 (2-3) T \approx t\left(g_{0}-g_{c}, \ldots, g_{p-1}-g_{c}\right) \quad p=0, \ldots, P-1\tag{2-3} Tt(g0gc,,gp1gc)p=0,,P1(2-3)
在邻域像素和中心像素的差的联合分布函数中, g p − g c g_p − g_c gpgc是基本不受亮度均值影响。
上式可以看出,此时统计量T 是一个跟亮度均值,即灰度级无关的值。
  最后定义特征函数如下: KaTeX parse error: Expected '}', got '\right' at position 184: …x<0 \end{array}\̲r̲i̲g̲h̲t̲. \end{array}\t…

1.混合模式

1.圆形LBP算子

因为LBP特征算子存在缺陷,它只能覆盖一定领域里一小区域,在不同尺寸和频率纹理的需要达不到,确保不同尺度的纹理特征能成功获取,又达到灰度级和旋转不变性的要求,需要通过Ojala,对LBP算子缺陷进行了改进,这样的处理可以使原本的3X3领域,扩展到无限大的领域,对LBP存在的缺陷有很好的修复作用,同时可以利用圆形去替换对应的正方形或者矩形
如下图显示
在这里插入图片描述
通过给定中心点 ( x c , y c ) (x_c,y_c) (xc,yc),得到其邻域像素位置为 ( x p , y p ) (x_p,y_p) (xp,yp) p ∈ P p∈P pP,其采样点 ( x p , y p ) (x_p,y_p) (xp,yp)用如下公式计算:

x p = x c + Rcos ⁡ ( 2 π p P )   y p = y c + Rsin ⁡ ( 2 π p P ) (2-6) \begin{array}{l} x_{p}=x_{c}+\operatorname{Rcos}\left(\frac{2 \pi p}{P}\right) \ y_{p}=y_{c}+\operatorname{Rsin}\left(\frac{2 \pi p}{P}\right) \end{array}\tag{2-6} xp=xc+Rcos(P2πp) yp=yc+Rsin(P2πp)(2-6)

R是采样半径,p是第p个采样点,P是采样数目。如果近邻点不在整数位置上,就需要进行插值运算,

2.LBP旋转不变性及等价模式

LBP是在像素灰度上不改变,但旋转时会发生改变,旋转后的像素特征存在很大的差别,通过Ojala在LBP算法上,进行对应缺陷的改进,就实现了具有旋转不变性的LPB的特征。
不断旋转圆形邻域得到一系列初始定义的LPB值,取最小值作为该邻域的值。

L B P P R r i = min ⁡ ( R O R ( L B P P , R r i , i ) ∣ i = 0 , 1 , … , P − 1 ) (2-7) L B P_{P R}^{ri}=\min \left(R O R\left(L B P_{P, R}^{ri}, i\right) | i=0,1, \ldots, P-1\right)\tag{2-7} LBPPRri=min(ROR(LBPP,Rri,i)i=0,1,,P1)(2-7)

其中 L B P P R r i L B P_{P R}^{ri} LBPPRri表示具有旋转不变性的LBP特征。 R O R ( x , i ) ROR(x, i) ROR(x,i)为旋转函数,表示将 x x x右循环 i i i位。
  在这里插入图片描述
因为LBP能实现多种二进制方式,,对于 L B P p R LBP^{R}_p LBPpR将会产生 2 p 2^p 2p种模式。比如 7 ∗ 7 7*7 77邻域内有 2 36 2^{36} 236种模式。如此多的二值模式对于信息的提取和识别都是不利的。其定义式为 U ( G p ) = ∣ s ( g p − 1 − g c ) − s ( g 0 − g c ) ∣ + ∑ p = 1 P − 1 ∣ s ( g p − g c ) − s ( g P − 1 − g c ) ∣ (2-8) U\left(G_{p}\right)=\left|s\left(g_{p_{-1}}-g_{c}\right)-s\left(g_{0}-g_{c}\right)\right|+\sum_{p=1}^{P_{-1}}\left|s\left(g_{p}-g_{c}\right)-s\left(g_{P-1}-g_{c}\right)\right|\tag{2-8} U(Gp)=s(gp1gc)s(g0gc)+p=1P1s(gpgc)s(gP1gc)(2-8)

2.混合模式

是等价模式的另外一种模式,是对等价模式的改进,改进后的LPB模式数由2 p ^{p} p(p为邻域集内的采集点数 ) 降维为 p ∗ ( p − 1 ) + 2 p*(p-1)+2 p(p1)+2 。维数减少,可以降低高频噪声的影响。Ojala认为等价模式占总模式中的绝大数

基于opencv实现

实现前
在这里插入图片描述
实现后
在这里插入图片描述
圆形检测替换正方形检测

人脸检测过程

采用多尺度滑窗搜索方式,在每个尺度相应距离截取大小为20x20的窗口,然后将窗口放到分类器中进行是不是人脸的判决,如果是人脸则该窗口通过所有分类器;反之,会在某一级分类器被排除。

人脸检测结果演示

原图
在这里插入图片描述
灰度不变常规LBP
在这里插入图片描述
等价灰度不变LBP
在这里插入图片描述等价旋转不变LBP
在这里插入图片描述

我的学习总结

当今图像处理技术突飞猛进,导致曾经大量应用于人脸特征识别的LBP特征算子逐渐埋没,在掌握一门新的技术后,又开启新一门新技术的学习,才能在未来技术应用中应对得了如指掌。需要特别说明:深度学习与卷积神将网络迅猛发展,LBP为特征的检测及识别算法并不具有竞争优势,LBP可以作为一门课程进行学习,也是一种很好的选择

[1]https://github.com/datawhalechina/team-learning/blob/master

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值