龙空技术网

使用LBP进行纹理分析

林小婵的店 227

前言:

而今你们对“lbp计算”大体比较讲究,兄弟们都想要学习一些“lbp计算”的相关知识。那么小编在网上汇集了一些有关“lbp计算””的相关文章,希望姐妹们能喜欢,看官们一起来了解一下吧!

纹理分类是计算机视觉和模式识别研究的一个重要领域。基于纹理的描述符用于对象、场景和人脸的分类。在许多方法中,局部二进制模式(LBP) (Ojala et al., 2002)由于计算简单和良好的性能而受到欢迎。

局部二进制模式(简称LBPs)是一种纹理描述符,由Ojala等人在2002年的论文《用局部二进制模式进行多分辨率灰度和旋转不变纹理分类》(尽管LBPs的概念早在1993年就被引入)中得到广泛应用。

LBPs计算纹理的局部表示。这种局部表示是通过比较每个像素与其周围像素的邻域来构造的。LBP检查中心点周围的点,并测试周围点是否大于或小于中心点(即给出二进制结果)。

构建LBP纹理描述符的第一步是将图像转换为灰度。

对于灰度图像中的每个像素,我们选择围绕中心像素的大小为r的邻域。然后计算该中心像素的LBP值,并将其存储在输出2D阵列中,其宽度和高度与输入图像相同。

为了考虑可变邻域大小,引入了两个参数:

要考虑的圆形对称邻域中的点数p(从而去除依赖于正方形邻域)。圆r的半径,这使我们能够考虑不同的尺度。

例如,让我们看看原始LBP描述符,它就像这样(这里p = 3,r = 1)在固定的3 x 3像素邻域上运行:

在此图中,我们将中心像素(以红色突出显示)和阈值与其邻居 - 8像素进行对比。如果中心像素的强度大于或等于其邻居,则我们将该值设置为1; 否则,我们将其设置为0.对于8个周围像素,我们总共有2 ^ 8 = 256种可能的LBP代码组合。

LBP检测到不同的纹理基元

从这里开始,我们需要计算中心像素的LBP值。我们可以从任何相邻像素开始,顺时针或逆时针方向工作,但我们的排序必须保持一致,我们的图像中的所有像素和数据集中的所有图像。鉴于3 x 3邻域,我们因此有8个邻居,我们必须对其进行二进制测试。这个二进制测试的结果存储在一个8位数组中,然后我们将其转换为十进制数,如下所示:

在这个例子中,我们从右上角开始,按顺时针顺序累积二进制字符串。然后我们可以将这个二进制字符串转换为十进制,产生一个值23。

该值存储在输出LBP 2D数组中,我们可以在下面看到它:

然后对输入图像中的每个像素重复该阈值处理,累积二进制串以及将输出十进制值存储在LBP阵列中的处理。

最后一步是计算输出LBP阵列上的直方图。由于3 x 3邻域具有2 ^ 8 = 256种可能的模式,因此我们的LBP 2D阵列具有最小值0和最大值255,允许我们构造256-bin LBP码直方图作为我们的最终特征向量:

以下是计算和可视化完整LBP 2D阵列及其直方图的示例:

现在可以使用支持向量机,极端学习机或一些其他机器学习算法来处理特征向量(LB)以对图像进行分类。这种分类器可用于面部识别或纹理分析。

近年来,它在图像处理和计算机视觉的许多领域引起了越来越多的兴趣,并在许多应用中显示出了它的有效性,特别是在面部图像分析方面,包括从人脸检测、人脸识别、面部表情分析到人口统计分类等任务。

标签: #lbp计算