《Python人脸识别:从入门到工程实践》 ——3.6.2 LBP特征

举报
华章计算机 发表于 2020/02/20 18:44:49 2020/02/20
【摘要】 本节书摘来自华章计算机《Python人脸识别:从入门到工程实践》 —— 书中第3章,第3.6.2节,作者是王天庆 。

3.6.2 LBP特征

LBP(Local Binary Pattern)即局部二值模型,是一种用来描述图像局部纹理特征的算子,它具有旋转不变性和灰度不变性等优点。该算法在1990年提出,于1994年被首次描述。算法的具体实现过程如下所述。

LBP算法有很多变种,原始的LBP算法是在一个3×3的窗口内,通过比较窗口中心像素点的灰度值与周围像素点的灰度值大小,从而确定该中心像素点周围8个像素点的值。这个算法过程可以用数学语言描述如下:

image.png

(xc,yc)为中心像素点的坐标,p为中心像素点邻域的第p个像素点,ip为邻域像素点p的灰度值,ic为中心像素点的灰度值,s(x)代表判别函数,由于是二值的,这里的判别函数是符号函数sign。 

image.png

图3-12 LBP计算过程示例

使用数学公式来表示可能会比较抽象,我们通过图3-12来展示这个计算过程。

我们看到,图3-12a中展示了9个像素点的灰度值,通过比较中间阴影部分的像素点与其周围8个像素点灰度值的大小,使用0或1来替换其周围像素点的数值。例如,图3-12a中左上角像素点的灰度值为255,大于中心像素点的灰度值125,因此,将灰度值255替换为1。

通过这个计算过程,我们可以看到,在进行LBP特征提取的时候,要求原图是一张灰度图片,而不能是彩***片。如果是彩***片则需要先将其转换为灰度图片,然后再对其提取LBP特征。通过计算过程我们可以体会到,通过对图片中所有的像素点施加这样的处理过程,LBP特征其实能够将灰度图像转换为二值图像,即生成的图像仅仅包含黑色、白色两种颜色,而不存在中间过渡的灰色。

上面所演示的计算过程是比较原始的LBP特征提取方法,而其实通过LBP特征可以演变出非常多的变种算法。例如,原始的LBP特征是通过对比九宫格中中心像素点与其周围相邻的8个像素点之间的灰度值大小而进行特征提取的,可以将这个过程中3×3网格换成其他的任意领域。用得比较多的另外一种邻域是圆形邻域,称为圆形LBP算子,该算子可以在半径为r的区域内有任意多个像素点,圆形邻域示例如图3-13所示。

image.png

图3-13 圆形邻域示例

原始图像以及经过原始LBP特征、圆形LBP特征提取特征之后的图像如图3-14所示。

image.png

图3-14 原始图像以及经过LBP特征提取之后的图像

LBP特征因其对光照具有良好的鲁棒性、灰度不变性,且计算速度快、实现简单、旋转不变性等特点被广泛应用在图像识别领域,其效果表现良好。尤其是在人脸识别、物体检测领域,基于LBP特征的检测与识别是一种比较经典的方法。LBP特征对纹理特征具有较高的敏感性,能够清晰地体现各区域的典型纹理,与此同时能够淡化过渡区域,同时起到降维的作用。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。