LBPH算法(超详细)

目录

原理

1. 图像划分

2. 局部二值模式

3. 二进制数转换

4. 直方图统计

5. 特征向量

标准LBPH算法的扩展

优点

应用

总结


LBPH算法是一种基于局部二值模式的人脸识别算法。它是一种简单且高效的算法,常用于人脸识别、人脸表情识别、行人检测等领域。

原理

LBPH算法将人脸图像分为许多小的局部区域,对每个局部区域进行特征提取,然后将每个局部区域的特征串联成一个整体特征向量,最终完成相似度计算。

对于每个局部区域,LBPH算法采用局部二值模式来提取特征。具体步骤如下:

1. 图像划分

首先,将输入图像分成若干个小区域(通常是像素块)。每个区域都将独立处理。默认将每个像素与周围8个像素进行比较,将周围像素的值与当前像素的值进行比较。

2. 局部二值模式

对于每个区域,选择一个中心像素,然后与其周围的像素进行比较。比较的方法是,将中心像素的灰度值与相邻像素的灰度值进行比较,如果相邻像素的灰度值大于或等于中心像素的灰度值,则将该像素标记为1,否则标记为0。这一过程生成了一个二进制数字,它代表了中心像素与其周围像素的比较结果。

3. 二进制数转换

将这个8位二进制数转换为十进制数作为当前像素的特征值,。这个十进制数将作为该区域的局部二值模式(LBP)值。

4. 直方图统计

对于整个图像,统计每个局部二值模式(LBP)值的出现次数,形成一个LBP直方图。这个直方图反映了不同纹理特征在图像中的分布。

5. 特征向量

将每个区域的LBP直方图连接在一起,形成整个图像的LBP特征向量。这个特征向量可以用于图像分类、纹理分析、人脸识别等任务。

下面是将每个像素与周围8个像素进行比较:

在得到每个局部区域的特征后,我们将每个局部区域的特征串联成一个向量作为整张人脸图像的特征向量。然后,我们可以使用各种相似性度量方法(如欧几里得距离或余弦相似度)来计算两个特征向量之间的相似度。

标准LBPH算法的扩展

旨在增加LBPH算法的旋转不变性。这类扩展通常被称为"Uniform Rotation Invariant LBP"(URI-LBP)或"LBP Variants"。这些扩展版本的LBPH算法可以更好地处理图像中的旋转变换。

  1. 旋转不变性的处理:在标准LBPH算法中,不同的旋转角度会导致不同的局部二值模式(LBP)值。为了增加旋转不变性,第一步是将中心像素点作为圆心,然后按照顺时针方向将周围的像素点依次移动一个位置。这样,无论图像中的纹理如何旋转,都将生成相同的LBP值。

  2. 最小值筛选:第二步是计算所有图像的LBP值,然后选择其中的最小值作为最终的值。这种方法的目的是进一步减少旋转引起的不稳定性。通过选择最小值,可以确保最终的LBP值对于不同的旋转角度保持不变。

优点

LBPH算法有以下几个优点:

  1. 不受光照变化的影响:LBPH算法对光照变化相对不敏感,因为它主要关注局部纹理特征。

  2. 简单而有效:LBPH算法的实现相对简单,计算效率高,适用于大规模数据集。

应用

LBPH算法在人脸识别、人脸表情识别、行人检测等领域有广泛的应用。在人脸识别领域,LBPH算法通常被用作基准算法,可以与其他更复杂的算法进行比较。

总结

LBPH算法是一种简单、高效、鲁棒性强的人脸识别算法。它采用局部二值模式来提取特征,将每个局部区域的特征串联成一个整体特征向量。该算法被广泛应用于人脸识别、人脸表情识别、行人检测等领域。