matlab学习:人脸识别之LBP (Local Binary Pattern)

1.算法简介

  LBP是一种简单,有效的纹理分类的特征提取算法。LBP算子是由Ojala等人于1996年提出的,主要的论文是"Multiresolution gray-scale and rotation invariant texture classification with local binary patterns", pami, vol 24, no.7, July 2002。LBP就是"local binary pattern"的缩写。

  关于论文的讲解可参考链接  http://blog.sina.com.cn/s/blog_916b71bb0100w043.html

  从纹理分析的角度来看,图像上某个像素点的纹理特征,大多数情况下是指这个点和周围像素点的关系,即这个点和它的邻域内点的关系。从哪个角度对这种关系提取特征,就形成了不同种类的特征。有了特征,就能根据纹理进行分类。LBP构造了一种衡量一个像素点和它周围像素点的关系。 

 

 

  对图像中的每个像素,通过计算以其为中心的3*3邻域内各像素和中心像素的大小关系,把像素的灰度值转化为一个八位二进制序列。具体计算过程如下图所示,对于图像的任意一点Ic,其LBP特征计算为,以Ic为中心,取与Ic相邻的8各点,按照顺时针的方向记为 I0,I1,...,I7;以Ic点的像素值为阈值,如果 Ii 点的像素值小于Ic,则 Ii 被二值化为0,否则为1;将二值化得到的0、1序列看成一个8位二进制数,将该二进制数转化为十进制就可得到Ic点处的LBP算子的值。
  基本的LBP算子只局限在3*3的邻域内,对于较大图像大尺度的结构不能很好的提取需要的纹理特征,因此研究者们对LBP算子进行了扩展。新的LBP算子LBP(P,R) 可以计算不同半径邻域大小和不同像素点数的特征值,其中P表示周围像素点个数,R表示邻域半径,同时把原来的方形邻域扩展到了圆形,下图给出了四种扩展后的LBP例子,其中,R可以是小数,对于没有落到整数位置的点,根据轨道内离其最近的两个整数位置像素灰度值,利用双线性差值的方法可以计算它的灰度值。

  LBP(P,R)有2^p个值,也就是说图像共有2^p种二进制模型,然而实际研究中发现,所有模式表达信息的重要程度是不同的,统计研究表明,一幅图像中少数模式特别集中,达到总模式的百分之九十左右的比例,Ojala等人定义这种模式为Uniform模式,如果一个二进制序列看成一个圈时,0-1以及1-0的变化出现的次数总和不超过两次,那么这个序列就是Uniform模式 ,比如,00000000、00011110、00100001、11111111,在使用LBP表达图像纹理时,通常只关心Uniform模式,而将所有其他的模式归到同一类中。

人脸图像的各种LBP模式如下图所示,由图中可以看出,变化后的图像和原图像相比,能更清晰的体现各典型区域的纹理,同时又淡化了对于研究价值不大的平滑区域的特征,同时降低了特征的维数。比较而言,Uniform模式表现的更逼真,在人脸识别和表情识别应用中,都是采用这种模式。

 

  在表情识别中,最常用的是把LBP的统计柱状图作为表情图像的特征向量。为了考虑特征的位置信息,把图像分成若干个小区域,在每个小区域里进行直方图统计,即统计该区域内属于某一模式的数量,最后再把所有区域的直方图一次连接到一起作为特征向量接受下一级的处理。

  LBP算子利用了周围点与该点的关系对该点进行量化。量化后可以更有效地消除光照对图像的影响。只要光照的变化不足以改变两个点像素值之间的大小关系,那么LBP算子的值不会发生变化,所以一定程度上,基于LBP的识别算法解决了光照变化的问题,但是当图像光照变化不均匀时,各像素间的大小关系被破坏,对应的LBP模式也就发生了变化。

  如果图像旋转了,那么纹理特征就旋转了,这时得到的2进制串也就旋转了,LBP值会相应变化。为了让LBP具有旋转不变性,将二进制串进行旋转。假设一开始得到的LBP特征为10010000,那么将这个二进制特征,按照顺时针方向旋转,可以转化为00001001的形式,这样得到的LBP值是最小的。无论图像怎么旋转,对点提取的二进制特征的最小值是不变的,用最小值作为提取的LBP特征,这样LBP就是旋转不变的了。当P=8时,能产生的不同的二进制特征数量是2^8个,经过上述表示,就变为36个。(我以为应当是2^8/8=32个)

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/548247.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大流量 网站

引用:http://www.admin10000.com/document/948.html 动态应用,是相对于网站静态内容而言, 是指以c/c、php、Java、perl、.net等 服务器端语言开发的网络应用软件,比如论坛、网络相册、交友、BLOG等常见应用。动态应用系统通 常与数…

Portal-Basic Java Web 应用开发框架:应用篇(十一) —— 整合 Spring

Portal-Basic Java Web应用开发框架(简称 Portal-Basic)是一套功能完备的高性能Full-Stack Web应用开发框架,内置稳定高效的MVC基础架构和DAO框架(已内置Hibernate、MyBatis和JDBC支持),集成 Action拦截、F…

Windows 8实用窍门系列:9.Windows 8中使用FlipView

FlipView控件类似于翻页控件&#xff0c;并且是现成的翻页按钮&#xff0c;你只需要为其增加数据项即可。本文讲述两种方式的FlipView项目和展示。 一&#xff1a;直接前台FlipViewItem <FlipView><FlipViewItem><Image Stretch"Uniform" Source"…

推荐系统相关资源汇总

2019独角兽企业重金招聘Python工程师标准>>> 为了更好的学习推荐系统&#xff0c;本博文将个人知道的关于推荐系统的相关资源整理汇总&#xff0c;拿出来与大家分享。本博文每月更新一次&#xff0c;长期维护&#xff0c;如果你有好的关于推荐系统的资源&#xff0c…

tcp工作原理

TCP 三次握手建立连接 TCP 建立连接全过程解释 客户端发送 SYN 给服务器&#xff0c;说明客户端请求建立连接&#xff1b;服务端收到客户端发的 SYN&#xff0c;并回复 SYNACK 给客户端&#xff08;同意建立连接&#xff09;&#xff1b;客户端收到服务端的 SYNACK 后&#xf…

物联网碰到云计算会怎么样?

如果提起物联网和云计算&#xff0c;熟悉安防行业的朋友们可能都不会太过陌生。没错&#xff0c;就是这两项新生技术的问世&#xff0c;给我们安防行业带来了许多全新的理念。而在不少人的眼中&#xff0c;物联网和云计算在潜意识中也是有不少联系的&#xff0c;但是如果要细细…

CentOS FTP安装及配置

CentOS FTP安装及配置 LINUX下实现FTP服务的软件很多,最常见的有vsftpd,Wu-ftpd和Proftp等.Red Hat Enterprise Linux中默认安装的是vsftpd.访问FTP服务器时需要经过验证,只有经过了FTP服务器的相关验证,用户才能访问和传输文件.vsftpd提供了3种ftp登录形式: (1)anonymous(…

【FPGA】Verilog 实践:优先级编码器 | Priority encoder

0x00 优先级编码器&#xff08;Priority encoder&#xff09; "能将多个二进制输入压缩成更少数目输出的电路或算法的编码器" 优先级编码器是一种编码器&#xff0c;它考虑了两个或更多输入位同时变为 1 但没有收到输入的情况。当输入进来时&#xff0c;优先级编码…

linux系统用户迁移

今天登陆上来发现好久都没有写博客了。 刚刚做了一个linux用户迁移&#xff0c;记录下&#xff0c;以后用到的话&#xff0c;查起来方便。希望对大家有帮助。 环境&#xff1a;我们原先的一台服务器由于过保所以替换新的服务器&#xff0c;但是由于用户数较多&#xff0c;如果一…

vm虚拟远程部署windows驱动

注意打印机是用com1端口&#xff0c;应该提前删除 bcdedit /debug on bcdedit /dbgsettings serial debugport:1 baudrate:115200 bcdedit /dbgsettings 以下两条是配置调式环境系统用 bcdedit /set testsigning on bcdedit /set loadoptions DDISABLE_INTEGRITY_CHECKS 在…

Android:SharedPreferences详解+示例

为什么80%的码农都做不了架构师&#xff1f;>>> 一、简介SharedPreferences是一种轻型的数据存储方式&#xff0c;它的本质是基于XML文件存储key-value键值对数据&#xff0c;通常用来存储一些简单的配置信息。 二、存储位置 在/data/data/<包名>/shared_pre…

类模板的分离式编译错误解决

声明&#xff1a;不谈逻辑是否能被执行成功&#xff0c;就谈编译是否成功. vs的错误: linux下g的错误: 以上错误&#xff0c;改怎么解决呢&#xff1f; 方法1&#xff1a;把实现代码和头文件写在一起 方法2&#xff1a;在.cpp文件中加入模板声明

6421B Lab5 路由和远程访问的配置与故障排除

共2个实验&#xff1a; 实验L5A&#xff1a;配置和管理网络访问 实验L5B&#xff1a;实现DirectAccess&#xff08;略&#xff09; 实验L5A&#xff1a;配置和管理网络访问 共有3个练习 练习1&#xff1a;实现***远程访问解决方案。 练习2&#xff1a;配置一个自定义的网络策略…

工作中影响提高的一些想法

2019独角兽企业重金招聘Python工程师标准>>> 最近&#xff0c;一直很迷茫&#xff0c;老是觉得效率低下&#xff0c;慢慢发现是自己做事的方式有问题&#xff0c;首先觉得人懒&#xff0c;喜欢动手却不愿意去想&#xff0c;觉得慢慢做过去&#xff0c;问题就解决了&…

项目:SQL server 2008构建群集——环境部署

网络拓扑图 windows 2008 (1)操作系统&#xff1a;Microsoft Windows Server 2008 R2 (64)SQL版本 &#xff1a;SQL server 2008 R2 64 位角色: 故障转移群集节点 SQL server 故障转移群集安装域名&#xff1a;test.com主机名&#xff1a;PC1IP: 172.16.0.1 &#xff08;…

Matlab/Simulink的一些功能用法笔记(3)

01--引言 最近加入到一个项目组&#xff0c;有一些测试需要去支持&#xff0c;通过了解原先团队的测试方法后&#xff0c;自己作了如下改善&#xff0c;大大提高了工作效率。这也许就是软件开发的意义吧&#xff0c;能够去除一些重复的机械的人工操作并且结果还非常不可靠。 …

Delphi多媒体设计之TMediaPlayer组件(二)

Wave音频&#xff08;Wave Audio&#xff09; 播放Wave音频是最基本的多媒体操作之一&#xff0c;它可能是最普通的&#xff0c;同步播放Wave文件代码如下&#xff1a; ?1234567procedure TForm1.btn1Click(Sender: TObject);beginmpPlayer.Wait : True; { 同步播放}mpPlayer.…

新一代数据中心不可忽视DAC高速铜缆直连线应用

罗森伯格亚太电子有限公司&#xff1a;李平 市场背景不断创新的网络技术和层出不穷的网络应用推动着网络飞速发展&#xff0c;作为信息数据集中交换处理和网络设备存放的数据中心&#xff0c;一直面临着高带宽&#xff0c;高可靠性和低延时的挑战。根据IDC产业发展研究报告&…

浅谈asio中async_accept函数占用内存高的写法

相比大家都使用过asio 中的async_accpect如果使用的好&#xff0c;内存会占用的小,下面来看一端实列:

高清壁纸:60款可爱的圣诞节电脑桌面壁纸《下篇》

这篇文章向大家分享60款非常可爱的圣诞节电脑桌面壁纸。圣诞节越来越近了&#xff0c;赶紧来挑选一款精美的圣诞节壁纸装饰你的电脑桌面吧&#xff01;希望这些精美的高清圣诞节电脑桌面壁纸你会喜欢。推荐阅读&#xff1a;《60款美轮美奂的圣诞节电脑桌面壁纸【上篇】》&#…