• Multiresolution Gray Scale and Rotation Invariant Texture Classification with Local Binary Patterns, TPAMI 2002

1.简介

LBP是一种针对灰度图像任意单调变换(monotonic transformation)具有不变性的鲁棒特征算子。除了鲁棒性外,另一个突出特点就是计算量小,实现时只需在很小的邻域内使用少量的算子和查询表。

作者提出算法时,主要是想应用于二维图像纹理分析:工业表面检测,遥感,生物医学图像分析等,但是当时在这一领域成功的探索非常有限。作者分析主要是由于,真实世界中的纹理并不总是一致的,而是存在方向性、尺度以及其他的视觉表现上的差异。因此,灰度不变性(Gray scale invariance)对于关照不均和较大的类间差异问题非常重要。此外,当时其他一些分析方法计算量偏大。论文围绕两个方面阐述:1)LBP算子,能够对方向、灰度保持特征不变性;2)低计算量。

LBP算法使用圆形邻域在任意可量化的角度值与空间分辨率,检测“一致的”(uniform)的局部二值模式(后文会对这一概念进行解释)。定义这样一个圆形对称邻域:

LBPriu2P,R

LBP_{P,R}^{riu2}

其中PP指邻域的数量,用于控制量化的角度值,RR指圆形半径,决定算子的空间分辨率。除了这两个参数外,作者还使用一种由多种(P,R)(P,R)参数组合的方式,进行多尺度分析。

对于一幅图像或者局部区域,统计这种“一致的”模式的离散分布直方图(Discrete occurrence histogram),是一种非常有用的纹理特征。为了有效的计算DOH,作者融合了结构与统计的方法:使用直方图评估那些LBP检测的微结构(例如,边缘、线、点、平滑区域)的分布特征。

作者分析认为,二维图像具有主要三个特点:二维正交,空间结构(pattern),对比度(局部纹理)。在图像灰度和旋转不变纹理分布上,有两个有趣的现象:空间模式受到旋转的影响,而对比度不会;对比度受图像灰度影响,但是空间模式却不会。因此,对于单纯的灰度不变纹理分析,对比反差是可以不考虑的。

LBPriu2P,RLBP_{P,R}^{riu2} 算子对于局部的空间结构具有很好的表达能力,但是很明显不具备一些其他局部特征的描述能力,例如对比度。因此,如果只考虑旋转不变性纹理分析(不考虑灰度不变性),LBP_{P,R}^{riu2}算子足矣。但是通过引入局部方差旋转不变测度VAPP,RVAP_{P,R}描述局部纹理对比度,就可以弥补这一不足。

2.灰度与旋转不变性的LBP

在灰度图像中一个局部纹理,可以视为像素灰度值(像素级为P, P>1)得联合分布:

T=t(gc,g0,...,gP−1),(1)

T=t(g_c, g_0, ..., g_{P-1}), \tag{1}

其中gcg_c指的是局部邻域的中心像素,gp(p=0,...,P−1)g_p(p=0, ..., P-1)指的是以中心像素为圆心半径R(R>0)R(R>0)的圆周上的像素值。将其用坐标值表示,则gcg_c为(0,0)(0, 0),gpg_p则定义为(−Rsin(2πp/P),Rcos(2πp/P))(-Rsin(2\pi p/P), Rcos(2\pi p/P))。图 1 给出了不同圆形对称邻域(P,R)(P, R)的示例。那些没有落在像素中心的点通过内插获得(文中实验中使用的是双线性内插(bilinear interpolation))。

2.1灰度不变性

为了趋向于灰度不变性,首先进行灰度减:

T=t(gc,g0−gc,g1−gc,...,gP−1−gc),(2)

T = t(g_c, g_0-g_c, g_1-g_c, ..., g_{P-1}-g_c), \tag{2}

这样做,并不会产生什么信息损失。

接着,可以假设差异gp−gcg_p-g_c是与gcg_c无关的,因此可以进行因式分解:

T≈t(gc)t(g0−gc,g1−gc,...,gP−1−gc),(3)

T \approx t(g_c)t(g_0-g_c, g_1-g_c, ..., g_{P-1}-g_c), \tag{3}

当然在实际中,绝对的上述的独立性是很难保证的,因此上式仅仅是一种联合分布的近似表达。然而,我们能接受由灰度漂移,产生的可能存在的小损失,从而达到灰度不变性。换句话说,就是令公式(3)中的t(gc)t(g_c)表示整幅图像的亮度,而非局部图像。因此,公式(1)中的原始灰度联合分布,可以转化为联合差异分布:

T≈t(g0−gc,g1−gc,...,gP−1−gc),(4)

T \approx t(g_0-g_c, g_1-g_c, ..., g_{P-1}-g_c), \tag{4}

这是一个具有较强表达能力的算子。它能够记录多种出现在邻域的各个像素的模式,并表达在直方图里。对于灰度值不变的区域,这种差异在各个方向都是0。对于微微倾斜的边缘,算子在梯度方向获得最大差异,而沿着边缘方向为0。对于一个点,这种差异在各个方向都很高。

作者进一步简化公式(4)为:

T≈t(s(g0−gc),s(g1−gc),...,s(gP−1−gc)),(5)

T \approx t(s(g_0-g_c), s(g_1-g_c), ..., s(g_{P-1}-g_c)), \tag{5}

其中s(∗)s(*)为符号(Sign)函数:

s(x)={10;x>0;x⩽0(6)

s(x) = \begin{cases} \begin{array}{lcl}1 & & ; x > 0 \\0 & & ; x \leqslant 0 \\ \end{array} \end{cases} \tag{6}

这样仍然能够保证灰度不变性。通过给每一项s(gp−gc)s(g_p-g_c)分配一个二项分布系数,公式(5)可以转变成用来描述局部图像的空间结构的特征值:

LBPP,R=∑p=0P−1s(gp−gc)2p(7)

LBP_{P,R} = \sum^{P-1}_{p=0}s(g_p-g_c)2^p \tag{7}

由此,“Local Binary Patten”反应出算子的功能,例如一个局部领域,通过以中心像素为阈值进行二值化。另外LBPP,RLBP_{P,R}算子对于图像的单调变换具有不变性,例如,只要保持灰度值的顺序不变,输出的结果就不变。

2.2旋转不变性

LBPP,RLBP_{P,R}可以输出2P2^{P}种结果,对应着2P2^{P}种由P个邻域所产生的不同二值模式。当图像旋转时,灰度值gpg_p会对应着沿着以gcg_c为中心的圆形圆周旋转。由于g0g_0总是赋予位于(0,R)(0, R),即gcg_c右边的像素值,当某一特定二值模式旋转后,其LBPP,RLBP_{P,R}值也会改变。当然,对于那些只有0或1的模式,旋转后结果仍然不变。为了消除旋转的影响,我们为每种二值模式提供一个独一无二的标识符:

LBPriP,R=min{ROR(LBPP,R,i)|i=0,1,...,P−1}(8)

LBP_{P,R}^{ri} = min\{ROR(LBP_{P,R}, i) | i=0,1,...,P-1\} \tag{8}

其中函数ROR(x,i)ROR(x,i)指将P-bit的数,绕着圆周逐比特向右偏移,并最终得到最小值记为该模式的标识符。什么意思呢?大致是下图的意思:

通过图示的方法,就可以保证旋转不变性。

LBPriP,RLBP_{P,R}^{ri}通过量化统计每个图像微结构对应的旋转不变性模式,而这些模式可以作为特征检测算子。下图中给出了P=8时,LBPri8,RLBP_{8,R}^{ri}的36种可能值,对应着的36种不同的旋转不变性的局部二值模式。

其中,可以看出模式#0检测的是白斑点(bright spots),#8可能是暗斑点或者平滑的区域(dark spots or flat areas), #4是边缘。

2.3改善“一致”模式的旋转不变性

作者分析认为,这些3x3的模式中,一些局部二值模式,是纹理的基本属性,提供主要的信息,有时甚至能超过90%。于是,就称这些基本模式为“一致的”,因为它们包含着被称为包含少量空间变形的一致圆周结构的共同成分。而这种“一致的”模式就是Fig. 2中的第一行的九种。

为了描述这种“一致的”模式,作者引入了一个一致性测度U,用来统计模式中0/1交替出现的数量,例如模式00000000和11111111的U值为0,而第一行的其他模式均为2,其他的27种模式的U值都大于等于4。作者将U值不超过2的模式为”一致的”,由此将LBPriP,RLBP_{P,R}^{ri}优化为:

最后,纹理分析把算子的输出(例如模式对应的label)统计到直方图中,就可以得到最终的纹理特征。至于为什么使用“一致的”模式直方图比所有模式的直方图具有更强的区分能力,是由于它们在统计上的差异性,那些“非一致的”模式的属性在直方图中占了非常少的比例,因此这部分的统计特征是不稳定的。去掉这部分不稳定的统计结果,最终结果不但不会受影响,反而更加鲁棒。

2.4旋转不变性与局部方差对比测度

引入局部对比度信息:

将两者结合在一起:

限制条件是两个的P,R是一样的。

论文其余部分不作叙述。

局部二值模式(Local Binary Patterns)纹理灰度与旋转不变性相关推荐

  1. 局部二值模式LBP的详细理解

    局部二值模式LBP的噶几详细的理解 一个电脑小白的自我成长之路,总是这么的寂寞.孤独.无聊,却充满新奇.艰难,唯有坚韧不拔,持续奋斗,才可披荆斩棘.登临云端.各位看官们:"咋的,能不能上干货 ...

  2. LBP(局部二值模式)特征提取原理

    1.前言 LBP(Local Binary Pattern,局部二值模式)是一种用来描述图像局部纹理特征的算子:它具有旋转不变性和灰度不变性等显著的优点.它是首先由T. Ojala, M.Pietik ...

  3. 特征提取算法——LBP(Local Binary Pattern)局部二值模式学习笔记

    在上Computer Vision lecture的时候,讲师介绍了LBP算子,这里对他进行简单的介绍. LBP(Local Binary Pattern) 局部二制模式,是描述图像局部纹理特征的算子 ...

  4. gabor 幅值域 matlab,基于全局二值模式的特征提取方法及其应用

    基于全局二值模式的特征提取方法及其应用 来源:原创论文网 添加时间:2014-02-09 摘 要 提出一种全局二值模式( GBP) 的纹理分析方法,解决局部二值模式( LBP) 易受噪声影响的问题. ...

  5. LBP(Local Binary Patterns)局部二进制模式

    1. LBP 用于人脸识别 为了预测每个像素属于哪个脸部器官(眼睛.鼻子.嘴.头发),通常的作法是在该像素周围取一个小的区域,提取纹理特征(例如局部二值模式),再基于该特征利用支持向量机等浅层模型分类 ...

  6. LBP(Local Binary Patterns)特征

    LBP(Local Binary Patterns)特征 转载:https://blog.csdn.net/Quincuntial/article/details/50541815 一.LBP的介绍: ...

  7. matlab lbp直方图特征多少维,LBP局部二值特征

    最近一直在看LBP的东西,就说说LBP吧.先从最基本的LBP说起,LBP的全称是Local Binary Pattern即局部二值模式,是局部信息提取中的一种方法.目前LBP有很多应用,如人脸识别,表 ...

  8. 读《Fusion of Partition Local Binary Patterns and Convolutional Neural Networks for Dorsal Hand Vein 》

    2021 摘要 虽然深度学习算法在生物识别方面具有突出的表现,并受到越来越多的关注,但其triditional特征(?)不应被忽视. 本文研究了三种方案中**划分局部二值模式(PLBP)**和卷积神经 ...

  9. Opencv全局二值化和局部二值化(python实现)

    文章目录 1.前置知识 (1).什么是形态学处理 (2).形态学图像处理 2.二值化 (1)全局二值化 1)函数 2)阈值类型 3)代码实战 (2)局部二值化(自适应阈值) 1)函数 2)阈值类型 1 ...

最新文章

  1. subversion commit 报错A checksum mismatch occurred
  2. php匿名函数use,深入理解 PHP 匿名函数关键字 use 的 Runtime Context
  3. kaggle用命令提交
  4. 感知算法论文(七):DFANet: Deep Feature Aggregation for Real-Time Semantic Segmentation(2019)
  5. js实现同时提交多个表单
  6. Python3 使用 pymysql 连接 MySQL 建表时出现 Warning3719 UTF8 警告
  7. java反射基本使用,反射泛型参数类型获取
  8. 操作mysql_MySQL 事务操作
  9. 句句真研—每日长难句打卡Day6
  10. 玩转vim之vim插件Ctags
  11. 银行的起源---》阮一峰,
  12. 锐起无盘服务器优化,(锐起无盘系统制作系统优化教程.doc
  13. 处理机调度之时间片轮转调度算法实现
  14. win+快捷键(常用)
  15. 5个常用的大数据可视化分析工具,你知道吗?
  16. 解决华为手机USB调试app闪退重启界面清空log日志问题
  17. 计算机nas一般指用户,NAS网络存储器·什么是网络服务
  18. 网络营销的概念及特征是什么?
  19. python考试名词解释_程序设计(python)_章节测验,期末考试,慕课答案查询公众号...
  20. Android 实现应用桌面角标

热门文章

  1. SE-Net:Squeeze-and-Excitation blocks
  2. WY-35A4电压继电器
  3. uniapp返回上一页携带参数,两种方法,实测有效
  4. 数字IC-1.8 子模块组建整模块-动态数码管设计代码实例
  5. uniapp版本升级记录(整包升级,wgt资源升级)
  6. CodeIgniter表单验证:从头到尾
  7. 为什么索引会加快查询速度?索引原理和使用原则
  8. CENTOS 8上安装极点五笔(自已测过)
  9. JSP判断radio是否选择和传值栗子(测试应聘人员能力自动计算分数)
  10. 网址,URL,域名,IP地址,DNS,域名解析(转载)