当前位置:   article > 正文

OPENCV中的LBPH算法_lbph算法原理说明

lbph算法原理说明

LBPH(Local Binary Patterns Histograms,局部二值模式直方图)的原理主要基于LBP(Local Binary Patterns,局部二值模式)算法,并通过计算并比较图像中局部区域的LBP直方图来进行特征提取和识别。以下是LBPH原理的详细解释:

一. LBP基本原理

1.局部二值模式特征提取

对于图像中的每个像素,将其邻域的像素与该像素进行比较。如果邻域像素大于或等于中心像素,则该邻域像素被标记为1,否则为0。

2.二进制数转换

对于每个像素,比较结果会形成一个二进制数。这个二进制数通常是由中心像素与其周围8个像素比较得到的8位二进制序列。将这个二进制序列转换为十进制数,即得到该像素的LBP值。

二. LBPH实现步骤

1.图像划分

将输入图像划分为若干个小区域(或称为局部区域),每个区域将独立处理。

2.LBP直方图计算

对于每个局部区域,计算其LBP值的直方图。直方图的每个条目记录了特定LBP模式在该区域中出现的频率。

3.特征向量形成

将所有局部区域的LBP直方图串联起来,形成一个长特征向量。这个特征向量代表了整个图像的纹理特征。

三. 识别阶段

1.计算输入图像的LBP直方图

在识别阶段,对于输入的待识别图像,同样进行图像划分和LBP直方图的计算。

2.比较直方图

将输入图像的LBP直方图与预先存储的训练图像的直方图进行比较。通常使用某种形式的距离度量(如欧几里得距离或卡方距离)来评估相似度。

3.识别决策

基于上述的相似度或距离度量,选择最匹配或最接近的训练图像,将其对应的标签作为识别结果。

四. 算法特点

1.旋转不变性

LBP算法具有旋转不变性,即当图像发生旋转时,LBP值不会发生改变(或在一定程度上保持稳定性)。这使得LBPH算法对于旋转变化具有一定的鲁棒性。

2.灰度不变性

LBP算法主要关注像素之间的相对关系,而不是绝对灰度值。因此,它对于光照变化等灰度变化因素具有一定的鲁棒性。

五.代码示例 

  1. import cv2
  2. import numpy as np
  3. #将人脸图像读入列表
  4. images=[]
  5. images.append(cv2.imread("a1.png",cv2.IMREAD_GRAYSCALE))
  6. images.append(cv2.imread("a2.png",cv2.IMREAD_GRAYSCALE))
  7. images.append(cv2.imread("b1.png",cv2.IMREAD_GRAYSCALE))
  8. images.append(cv2.imread("b2.png",cv2.IMREAD_GRAYSCALE))
  9. #标签列表,对应于images列表中的图像,0表示是Andy的图像,1表示是Tony的图像
  10. labels = [0,0,1,1]
  11. # 读取预测图像
  12. predict_image=cv2.imread("a3.png",cv2.IMREAD_GRAYSCALE)
  13. # 创建LBPH人脸识别器对象,并设置阈值
  14. recognizer = cv2.face.LBPHFaceRecognizer_create(threshold = 80)
  15. # 使用训练数据和对应的标签训练识别器
  16. recognizer.train(images,np.array(labels))#
  17. # 对预测图像进行预测
  18. label,confidence =recognizer.predict(predict_image)
  19. # 根据预测结果输出标签和置信度
  20. if label == 0:
  21. print("对应的标签label=Andy")
  22. elif label == 1:
  23. print("对应的标签label=Tony")
  24. print("置信度confidence=",confidence)
  25. #代码运行结果:
  26. #对应的标签label=Andy
  27. #置信度confidence= 67.6856704732354

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/木道寻08/article/detail/850070
推荐阅读
相关标签
  

闽ICP备14008679号