LBP局部二值模式
本文最后更新于658 天前,其中的信息可能已经过时,如有错误请发送邮件到big_fw@foxmail.com




LBP局部二值模式

LBP局部二值模式

算法过程

局部二值模式是一种用于提取图像纹理特征的算法,可以对图像的局部纹理特征进行描述。具体过程如下:

  1. 将图像转化为灰度图像。
  2. 选择一个像素点,以该像素点为中心,选取一定大小的局部区域。
  3. 计算邻域内每个像素点与中心像素点的灰度值差异,将灰度值差异转化为二进制码,得到一个二进制序列。
  4. 将得到的二进制序列转化为十进制数,作为该像素点的LBP值。
  5. 对图像中的每个像素点重复上述步骤,得到整张图像的LBP特征图。
  6. 根据需要,可以计算LBP特征图的统计量,例如均值、标准差、能量等,作为图像的纹理特征。

 

算法过程的示例

假设有一张的灰度图像:

50  80  70  60  90
70  90  75  55  85
80  85  65  75  80
60  70  80  75  90
70  75  80  70  80

以该图像的中心像素点为例,选取其8邻域作为局部区域。通过局部区域中每个数据点与其的差异的正负判断数值,,则,否则

根据上述示例获取局部灰度值差异序列:

+25 +15 +10
+10   0 -10
-15 -10  +5

并由此获取到二进制序列:

1 1 1
1 0 0
0 0 1

对于这个序列,则需要根据实际场景中的特点进行排列,形成二进制序列。如,根据从左到右的顺序进行排列,则可以获取到二进制序列为。对于这个二进制序列将其转换为十进制数值,即可作为该中心数据点的LBP特征值。

接下来通过对图像中每一个像素点重复上述的过程,即可获取到一个LBP特征图。

对于LBP特征图,则可以通过所需要的特征提取方式,如均值方差等进行纹理特征提取。

 

LBP局部二值模式算法对图像纹理特征的提取原理

对于一个图像,其纹理特征即为图像中规律的灰度变化。那么既然是规律的灰度变换,所以在传统的LBP局部二值模式中,是通过每一个数据点的局部区域中的二进制序列的相同排列进行获取。所以对于图像的LBP特征图,可以通过图像整体的统计特征对图像的纹理特征进行评估。

 

LBP局部二值模式的优化方向

通过传统LBP算法的数据流(逻辑过程)依次进行优化方向的分析:

  1. 在原始图像中确定局部区域时。可以预知的是,对于不同的局部区域大小会获取到不同的LBP特征图。所以在通过LBP进行图像的纹理特征提取时需要根据实际场景中图像的特征进行局部区域的选取。从而针对不同的图像获取到准确的纹理特征。
  2. 在获取二进制序列的过程中,传统的LBP算法首先需要获取局部区域中每一个像素点灰度值与中心像素点灰度值之间的差异。再通过灰度值差异进行二进制数值(0 or 1)的确定。在这个过程中,二进制数值只考虑到了灰度图像的大小之分。对于差异的大小并无差异,那么在一些场景中,就会受到小幅度变化的噪声影响,从而使得对于图像的纹理特征提取的不准确。针对于这种情况,需要根据图像中的特征对差异序列进行修正,使得差异小的像素点对LBP特征图的影响变小。
  3. 在通过固定的排列规律进行二值序列获取时。因为不同的排列方式对于LBP特征图的获取是不同的,所以在获取二值序列时,对于排列方向的判断是必要的,对于不同的排列方式如何根据实际场景选择最合适的排列方式,获取到准确的纹理特征。
  4. 在整个LBP局部二值模式过程获取到的LBP特征图。其中每一个点的特征值只能表述局部的纹理特征。其对于整个图像的纹理特征的表示较弱。所以在针对于实际图像的特征处理过程可以通过LBP局部纹理特征与图像中的其他特征进行综合考虑。
  5. 对于图像中的一个像素点,如果选取8邻域为局部区域。那么在8邻域中就会有种二进制码组合,也就是有个LBP值的可能,所以LBP特征值的维度很高。在对于图像的实际LBP特征提取的过程中,需要对LBP特征进行降维处理,从而获取更为精简的特征表示。

LBP局部二值模式的已有变种算法

1. 圆形LBP算子

为适应不同尺度的纹理特征,并达到灰度和旋转不变性的要求,Ojala等做出了改进,将邻域扩展到任意邻域,并用圆形邻域代替正方形邻域,改进后的LBP算子允许在半径为R的圆形邻域内有任意多个像素点。从而得到了诸如半径为R的圆形区域内含有P个采样点的LBP算子。

image-20230319153733290

在上图中,表示在以为半径的圆形邻域内含有个采样点的LBP局部编码。对于给定的中心像素点,其邻域像素点的位置为,通过如下所述方式进行计算:

image-20230319154610014

因为通过上述方式所计算出的数值不一定为整数。对于非整数的坐标需要继续通过双线性差值确定坐标与其对应的数值。

 

2. LBP旋转不变模式

对于上述的圆形LBP算子,其已经具备了灰度与光照的不变性,但是还不具备旋转不变性。

对于LBP算子的旋转不变性,可以通过不断地旋转圆形LBP特征,得到一系列的LBP特征值。从这些LBP特征值中选取最小的一个做为中心数据点的LBP特征值。从而保证了数据点的LBP特征旋转不变。过程如下图所示:

image-20230319155039471

 

 

3. LBP等价模式

等价模式可以理解为对LBP特征值的降维。对于半径为的圆形区域中含有个采样点的LBP算子会产生种LBP特征值。并且随着采样点数量的增加,其特征值的种类(可能的数量)会越来越多。这样会使得在后续的统计特征分析的过程中数据量过于庞大并且数据过于稀疏。

Ojala提出LBP等价模式:当某个LBP所对应的循环二进制数从0到1或从1到0最多有两次跳变时,该LBP所对应的二进制就称为一个等价模式类。

image-20230319161106590

对于LBP等价模式,因为博主本人觉得其降维的原理在实际的场景中属于通用性的优化,所以只做初步了解。

 

4. 其他的LBP变种算法

  1. 均值LBP(Mean-LBP):在传统的LBP算法中,每个像素的LBP值都是由其邻域内的灰度值比较得到的,这种方式容易受到噪声的干扰。均值LBP算法通过对邻域内灰度值取平均值来降低噪声的影响。
  2. 多尺度LBP(Multi-scale LBP):传统的LBP算法只能提取一种固定尺度的纹理特征,而多尺度LBP算法可以在不同的尺度上提取图像的纹理特征,从而可以更好地适应不同的纹理分辨率。
  3. 增强LBP(Enhanced-LBP):增强LBP算法在传统LBP算法的基础上,增加了一个阈值参数,可以减少噪声的干扰,并且提高LBP算法的稳定性和可靠性。
  4. U-LBP(Uniform-LBP):U-LBP算法通过对LBP值进行统计分析,将不稳定的LBP值转换为稳定的、具有可区分性的特征,可以提高LBP算法的鲁棒性和表达能力
  5. CSLBP(Center-Symmetric LBP):CSLBP算法通过将邻域像素分为两组,分别计算它们与中心像素的灰度值差异,进而提取出一种具有旋转不变性和灰度不变性的纹理特征。
  6. S-LBP(Semi-local LBP):S-LBP算法在邻域内不仅考虑了中心像素和相邻像素之间的灰度差异,还考虑了相邻像素之间的灰度差异,可以更好地提取出局部纹理特征。
  7. LTP(Local Ternary Pattern):LTP算法是LBP算法的一种改进,将邻域像素的灰度值分成三个区间,分别计算它们与中心像素的灰度值差异,进而提取出一种具有旋转不变性和灰度不变性的纹理特征。
  8. MLBP(Modified LBP):MLBP算法在传统的LBP算法中引入了插值操作,可以减少邻域像素位置对特征提取的影响,提高了LBP算法的鲁棒性。
  9. ELBP(Extended LBP):ELBP算法在传统的LBP算法中引入了梯度信息,可以更好地描述图像的纹理特征,提高LBP算法的表达能力。
  10. RILBP(Robust Invariant LBP):RILBP算法在传统的LBP算法中引入了图像的局部梯度方向,可以提高LBP算法的旋转不变性和灰度不变性。
  11. DRLBP(Directional Robust LBP):DRLBP算法在传统的LBP算法中引入了局部梯度方向和梯度大小信息,可以提高LBP算法的方向性和鲁棒性。
  12. CSLTP(Center-Symmetric Local Ternary Pattern):CSLTP算法是LBP和LTP算法的结合,通过将邻域像素分成两组,并计算它们与中心像素的灰度差异,进而提取出一种具有旋转不变性和灰度不变性的纹理特征。
  13. CLBP(Completed Local Binary Pattern):CLBP算法通过对LBP值的高位补零来扩展LBP特征的表示范围,提高LBP算法的鲁棒性和表达能力。
  14. FPLBP(Fuzzy Perceptual LBP):FPLBP算法通过对邻域内像素灰度值和空间位置的权重分配,可以提高LBP算法对于纹理和空间信息的表达能力。
  15. MF-LBP(Multi-Feature LBP):MF-LBP算法将不同类型的LBP特征进行融合,可以提高LBP算法的多样性和表达能力。
  16. SC-LBP(Shape-Constrained LBP):SC-LBP算法利用图像的形状信息对LBP特征进行约束,提高LBP算法对于不同形状的纹理信息的表达能力。

这些变种LBP算法都在传统的LBP算法基础上进行了改进和优化,从而可以更好地适应不同的图像场景,提高纹理特征的表达能力和鲁棒性。因为变种方式有很多,本文章对于后续的变种算法不做过多的说明,可以根据变种的主要方式、目的进行有针对性的了解。


文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇