zoukankan      html  css  js  c++  java
  • 局部二值模式(Local Binary Patterns)纹理灰度与旋转不变性


    1.简介

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

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

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

    LBPriu2P,R

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

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

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

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

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

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

    T=t(gc,g0,...,gP1),(1)

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

    2.1灰度不变性

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

    T=t(gc,g0gc,g1gc,...,gP1gc),(2)

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

    接着,可以假设差异gpgc是与gc无关的,因此可以进行因式分解:

    Tt(gc)t(g0gc,g1gc,...,gP1gc),(3)

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

    Tt(g0gc,g1gc,...,gP1gc),(4)

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

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

    Tt(s(g0gc),s(g1gc),...,s(gP1gc)),(5)

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

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

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

    LBPP,R=p=0P1s(gpgc)2p(7)

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

    2.2旋转不变性

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

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

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

    rotation_invariance

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

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

    36_patterns

    其中,可以看出模式#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,R优化为:

    riu2

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

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

    引入局部对比度信息:

    var

    将两者结合在一起:

    12

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

    论文其余部分不作叙述。

  • 相关阅读:
    进阶学习项目实战链接
    Django与数据库操作
    xadmin的使用
    Django 常见的异常
    网站 安全 ---- 常见的 web 攻击
    nodejs--vue
    ECMAScript 6 简介
    Django -- DRF 认证流程
    Django -- 缓存
    Django --- celery异步任务与RabbitMQ模块
  • 原文地址:https://www.cnblogs.com/hehehaha/p/6332119.html
Copyright © 2011-2022 走看看