task02 LBP特征描述算子

本文深入解析了LBP(Local Binary Pattern)特征描述算子的原理及其在图像处理中的应用,尤其关注于人脸检测场景。LBP算法以其灰度不变性和旋转不变性成为图像纹理特征提取的有效工具。文章详细介绍了LBP算子的数学定义,包括原始LBP算子和改进后的圆形LBP算子,以及如何利用OpenCV实现LBP算法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Datawhale计算机视觉基础-图像处理(下)-Task02 LBP特征描述算子-人脸检测
2.1 简介
  LBP指局部二值模式(Local Binary Pattern),是一种用来描述图像局部特征的算子,具有灰度不变性和旋转不变性等显著优点。LBP常应用于人脸识别和目标检测中,在OpenCV中有使用LBP特征进行人脸识别的接口,也有用LBP特征训练目标检测分类器的方法,OpenCV实现了LBP特征的计算,但没有提供一个单独的计算LBP特征的接口。也就是说OpenCV中使用了LBP算法,但是没有提供函数接口。

2.2 学习目标
了解人脸检测相关流程
理解LBP算法相关原理
掌握基于OpenCV的LBP算法实现
2.3 算法理论介绍
2.3.1 LBP原理介绍
  LBP特征用图像的局部领域的联合分布TTT 来描述图像的纹理特征,如果假设局部邻域中像素个数为P(P>1)P(P >1)P(P>1),那么纹理特征的联合分布TTT 可以表述成:

T=t(gc,g0,…,gp−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)

其中, gcg_cgc 表示相应局部邻域的中心像素的灰度值, gpg_pgp 表示以中心像素圆心,以R为半径的圆上的像素的灰度值。

假设中心像素和局部邻域像素相互独立,那么这里可以将上面定义式写成如下形式:

T=t(gc,g0−gc,…,gp−1−gc)p=0,…,P−1 ≈t(gc)t(g0−gc,…,gp−1−gc)(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(gc)t(g_c)t(gc)决定了局部区域的整体亮度,对于纹理特征,可以忽略这一项,最终得到:

T≈t(g0−gc,…,gp−1−gc)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)

上式说明,将纹理特征定义为邻域像素和中心像素的差的联合分布函数,因为gp−gcg_p − g_cgpgc是基本不受亮度均值影响的,所以从上式可以看出,此时统计量T 是一个跟亮度均值,即灰度级无关的值。

最后定义特征函数如下: KaTeX parse error: Expected '}', got '\right' at position 184: …x<0 \end{array}\̲r̲i̲g̲h̲t̲. \end{array}\t…

定义灰度级不变LBP为:

LBPP,R=∑p=0P−1s(gp−gc)2p(2-5)L B P_{P, R}=\sum_{p=0}^{P-1} s\left(g_{p}-g_{c}\right) 2^{p}\tag{2-5}LBPP,R=p=0P1s(gpgc)2p(2-5)

即二进制编码公式。

通俗解释:

原始的LBP算子定义在像素333333的邻域内,以邻域中心像素为阈值,相邻的8个像素的灰度值与邻域中心的像素值进行比较,若周围像素大于中心像素值,则该像素点的位置被标记为1,否则为0。这样,333333邻域内的8个点经过比较可产生8为二进制数,将这8位二进制数依次排列形成一个二进制数字,这个二进制数字就是中心像素的LBP值,LBP值共有28种可能,因此LBP值有256种可能。中心像素的LBP值反映了该像素周围区域的纹理信息。
2.3.2 圆形LBP算子
  基本的 LBP算子的最大缺陷在于它只覆盖了一个固定半径范围内的小区域,这显然不能满足不同尺寸和频率纹理的需要。为了适应不同尺度的纹理特征,并达到灰度级和旋转不变性的要求,Ojala等对 LBP算子进行了改进,将 3×3邻域扩展到任意邻域,并用圆形邻域代替了正方形邻域,改进后的 LBP算子允许在半径为 R的圆形邻域内有任意多个像素点。从而得到了诸如半径为R的圆形区域内含有P个采样点的LBP算子,表示为LBPPRLBP^{R}_PLBPPR

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值