特征提取算法——LBP(Local Binary Pattern)局部二值模式学习笔记
在上Computer Vision lecture的时候,讲师介绍了LBP算子,这里对他进行简单的介绍。
LBP(Local Binary Pattern) 局部二制模式,是描述图像局部纹理特征的算子,有原始LBP,圆形LBP算子,旋转不变的LBP模式和LBP均匀模式。
1. 原始的LBP
原始LBP很好理解,是通过以中心像素为阈值对比中心像素和周围8个像素的值,周围像素比中心像素大(或相等的)的记为1,小的记为0,通过对比会得到二值图,按顺时针方向可得二进制串,再通过二进制转换为十进制数,即得到中心像素LBP值,并通过此值表达区域纹理信息,如下图所示:
原始十进制LBP码一般会有256种,这里可以理解为:八位二进制共有256种组合(二的八次方) 。
通过对比5和周围8个像素的大小,5>1(左上角像素),5>2(上排中间像素),5>2(右上角像素),以此类推顺时针对比一遍得出 00010011的二进制串,转换为十进制则是19。
LBP顺序(此例子中使用顺时针遍历)并没有要求,只是量化公式,保持同一处理一致即可。
用公式表示LBP则是:
2. 圆形LBP算子
原始LBP的问题在于它只覆盖了目标像素周围的8个相邻像素点,换句话说,只覆盖了固定半径范围内的小区域,不能满足不同尺寸和频率纹理的需要。圆形LBP算子将8个相邻像素进行拓展,引入圆形邻域代替正方形邻域,改进后的LBP算子允许半径R内的圆形邻域有多个像素点,并对圆形区域P个采样点进行采样。如图所示:
上图中图1使用的是半径R为1内的8个采样点(P)的LBP算子
图2使用的是半径R为2内的16个采样点(P)的LBP算子,圆形算子讲邻域扩展为5*5
图3使用的是半径R为2内的8个采样点(P)的LBP算子,邻域依旧为5*5但是采样点减少为8
不同的圆形算子对不同的场景有不同的效果,这也是圆形算子的优势所在。
用公式表示圆形LBP则是:
p采样点的坐标采用如下的公式计算:
然而,通过计算得出的坐标不一定是整数,所以可以通过双线性插值算出该取样点的像素。
3. 旋转不变的LBP模式
试想,当图像旋转时,对同一邻域,普通LBP在不同旋转角度会得到不同的LBP值,这时就要引进一种具有旋转不变性的LBP算子。如下图所示:
具体方法是将原始LBP(或者圆形LBP)旋转P个采样点位(此图中为8次),得到不同的二进制串,进而产生八种不同的LBP值(240,120,60,30,15,135,195)
取其中最小值作为最终LBP值,这样无论图像如何旋转,这个点的LBP值都会只是15,这也达成了旋转不变性。
4. 等价模式的LBP
随着P(邻域内采样点的增加),二进制模式种类也是大幅度增加的,比如,原始LBP会有2^8=256个LBP值可能性(8采样点),5*5邻域内20个采样点就会有2^20 = 1048576种二进制模式,这样的数据数量是巨大的,对纹理提取识别和分类信息存取都是不利的。数据量过大同时也会造成LBP直方图稀疏,无法很好地表现图片信息。所以需要对原始LBP模式进行降维,使得它的数据量在一定范围内,并能最好的表现图片信息。
等价模式(Uniform Pattern)是当某LBP模式最多只包含两次1到0或0到1的跳变,该LBP所对应的二进制就称为一个等价模式类。除等价模式外的模式都归为另一类,成为混合模式。
下面通过举例来理解等价模式:
00000000(二进制串从0到0无跳变)
00000111(二进制串从0到1一次跳变,跳变位于第五位到第六位)
10001111(二进制串由1到0再从0到1两次跳变,跳变位置位于第一位到第二位,第四位到第五位)
10010111(二进制串共四次跳变,1->0, 0->1,1->0,0->1)该模式属于混合模式。
通过等价模式的计算,二进制模式种类大大减小,从之前的2^p种到p(p-1)+2种,8个采样点位的LBP也会从256降到仅58种,这使得特征向量维数更少,并且可以减少高频噪声带来的影响。
5. 图像特征提取和LBP算子
1. 将图像分为N个大小相同的cell
2. 对cell中每个像素,计算LBP值
3. 对于每一个cell,计算cell中所有LBP直方图,并进行归一化
4.将所有cell直方图连接作为一个特征向量,作为全图特征向量。
对比直方图特征与待检测目标特征,可采用
(1)直方图交叉核方法
(2)卡方统计方法
6. LBP算子的优缺点
优点:光照不敏感(只对比中心像素与周围像素大小关系),旋转不变形(圆形算子),特征维度低,计算速度快。
缺点:光照不均匀无法反映真实纹理特征,对方向敏感。
参考文献:
[1]Timo Ahonen, Abdenour Hadid:Face Recognition with Local Binary Patterns
[2]目标检测的图像特征提取之(二)LBP特征
特征提取算法——LBP(Local Binary Pattern)局部二值模式学习笔记相关推荐
- LBP(局部二值模式)特征提取原理
1.前言 LBP(Local Binary Pattern,局部二值模式)是一种用来描述图像局部纹理特征的算子:它具有旋转不变性和灰度不变性等显著的优点.它是首先由T. Ojala, M.Pietik ...
- 局部二值模式(Local Binary Patterns)纹理灰度与旋转不变性
Multiresolution Gray Scale and Rotation Invariant Texture Classification with Local Binary Patterns, ...
- LBP(local binary pattern)
LBP(local binary pattern)是一种用来描述图像局部纹理特征的算子.原始的LBP于1994年提出,它反映内容是每个像素与周围像素的关系.后被不断的改进和优化,分别提出了LBP旋转不 ...
- 局部二值模式LBP的详细理解
局部二值模式LBP的噶几详细的理解 一个电脑小白的自我成长之路,总是这么的寂寞.孤独.无聊,却充满新奇.艰难,唯有坚韧不拔,持续奋斗,才可披荆斩棘.登临云端.各位看官们:"咋的,能不能上干货 ...
- matlab学习:人脸识别之LBP (Local Binary Pattern)
1.算法简介 LBP是一种简单,有效的纹理分类的特征提取算法.LBP算子是由Ojala等人于1996年提出的,主要的论文是"Multiresolution gray-scale and ro ...
- 特征提取算法(1)——纹理特征提取算法LBP
模式识别中进行匹配识别或者分类器分类识别时,判断的依据就是图像特征.用提取的特征表示整幅图像内容,根据特征匹配或者分类图像目标. 常见的特征提取算法主要分为以下3类: 基于颜色特征:如颜色直方图.颜色 ...
- LBP(Local Binary Patterns)特征
LBP(Local Binary Patterns)特征 转载:https://blog.csdn.net/Quincuntial/article/details/50541815 一.LBP的介绍: ...
- matlab lbp直方图特征多少维,LBP局部二值特征
最近一直在看LBP的东西,就说说LBP吧.先从最基本的LBP说起,LBP的全称是Local Binary Pattern即局部二值模式,是局部信息提取中的一种方法.目前LBP有很多应用,如人脸识别,表 ...
- gabor 幅值域 matlab,基于全局二值模式的特征提取方法及其应用
基于全局二值模式的特征提取方法及其应用 来源:原创论文网 添加时间:2014-02-09 摘 要 提出一种全局二值模式( GBP) 的纹理分析方法,解决局部二值模式( LBP) 易受噪声影响的问题. ...
最新文章
- 如何通过HBuilderX运行微信小程序,启动Enable IDE Service,X initialize 解决方案
- MapReduce TopK统计加排序
- TIMING_02 浅谈时序约束与时序分析
- cesium html源码,Cesium源码的本地运行及调试
- java使用Encoding导什么包_String getEncoding()
- 一个小例子搞懂redux的套路
- php使用自定义alert,IOS_iOS自定义alertView提示框实例分享,本文实例为大家分享iOS自定义a - phpStudy...
- OSWatcher使用简介
- 火影忍者 动漫 全集目录 分章节 精彩打斗剧集 思维导图整理
- iOS越狱系统绕过frida检测
- 新建文本文档出现错误怎么办
- handsome for Typecho主题重建备忘
- 整合springmvc+mybatis+veloctiy三
- 【题解】【PTA里的Python题库】7-1 身份证校验_python
- 基于Android的医院预约挂号系统
- 代码 比较工具 在线
- elasticsearch5.0.0中的percolator类型和percolate查询
- 【渝粤教育】广东开放大学 广东开放大学学习指引 形成性考核 (28)
- PPT忘记加密密码的处理方式
- 用个人博客打造一个酷酷的工作流