OpenCV中LBPH人脸识别器识别人脸实战(附Python源码)

这篇具有很好参考价值的文章主要介绍了OpenCV中LBPH人脸识别器识别人脸实战(附Python源码)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

需要源码和图片请点赞关注收藏后评论区留言私信~~~

Local Binary Pattern Histofram简称LBPH,即局部二进制模式直方图,这是一种基于局部二进制模式算法,这种算法善于捕获局部纹理特征

开发者需要通过以下三种方法来完成人脸识别操作

1:通过cv2.face.LBPHFaceRecognizer_create()方法创建LBPH人脸识别器对象 语法如下

recognizer=cv2.face.LBPHFaceRecognizer_create(radius,neighbors,grid_x,grid_y,threshold)

radius:可选参数 圆形局部二进制模式的半径,建议使用默认值

neighbors:可选参数,圆形局部二进制模式的采样点数目,建议使用默认值

grid_x:可选参数 水平方向上的的单元格数,建议使用默认值

grid_y:可选参数 垂直方向上的的单元格数  建议使用默认值

threshold:可选参数 人脸识别时使用的阈值,建议使用默认值

2:创建识别器对象后,需要通过对象的train方法训练识别器,建议每个人都给出两幅以上的人脸图像作为训练样本,train方法的语法如下

recognizer.train(src,labels)

参数说明

recognizer 已有的LBPH人脸识别器对象

src 用来训练的人脸图像样本列表,格式为list,样本图像必须宽高一致

labels 样本对应的标签,格式为数组,元素类型为整数,数组长度必须与样本列表长度相同,样本与标签按照插入顺序一一对应 

3:训练识别器后就可以通过识别器的predict方法识别人脸,该方法对比样本的特征,给出最接近的结果和评分,语法如下

label,confidence=recognizer.predict(src)

参数说明

src 需要识别的人脸图像 该图像宽高必须与样本一致

label 与样本匹配程度最高的标签值

confidenct 匹配程度最高的信用度评分,评分小于50匹配程度较高,0分表示两幅图像完全一样 

下面使用LBPH识别人脸实战

下面以两个人的照片作为训练样本

OpenCV中LBPH人脸识别器识别人脸实战(附Python源码)

 OpenCV中LBPH人脸识别器识别人脸实战(附Python源码)

 待识别照片如下

OpenCV中LBPH人脸识别器识别人脸实战(附Python源码)

 程序输出如下

confidence=45.0823265

RuiRui

程序对比样本特征分析得出,被识别的人物最接近的是RuiRui 

部分代码如下

import cv2
import numpy as np

photos = list()  # 样本图像列表
lables = list()  # 标签列表
photos.append(cv2.imread("face\\lxe1.png", 0))  # 记录第1张人脸图像
lables.append(0)  # 第1张图像对应的标签
photos.append(cv2.imread("face\\lxe2.png", 0))  # 记录第2张人脸图像
lables.append(0)  # 第2张图像对应的标签
photos.append(cv2.imread("face\\lxe3.png", 0))  # 记录第3张人脸图像
lables.append(0)  # 第3张图像对应的标签

photos.append(cv2.imread("face\\ruirui1.png", 0))  # 记录第4张人脸图像
lables.append(1)  # 第4张图像对应的标签
photos.append(cv2.imread("face\\ruirui2.png", 0))  # 记录第5张人脸图像
lables.append(1)  #图像对应的标签
photos.append(cv2.imread("face\\ruirui3.png", 0))  # 记录第6张人脸图像
lables.append(1)  # 第6张图像对应的标签

names = {"0": "LXE", "1": "RuiRui"}  # 标签对应的名称字典

recognier = cv2.face.LBPHFaceRecognizer_create()  # 创建LBPH识别器(photos, np.array(lables))  # 识别器开始训练

i = cv2.imread("face\\ruirui4.png", 0)  # 待识别的人脸图像
label, confience = recognizer.predict(i)  # 识别器开始分析人脸图像
print("confidee= " + str(confidence))  # 打印评分
print(names[str(lael)])  # 数组字典里标签对应的名字

cv2.waitKey()  #下任何键盘按键后
cv2.destroyAllWindows()  # 释放所有窗体

总结

 人脸检测和人脸识别是相辅相成的,这是因为在进行人脸识别前,要先判断当前图像内是否出现了人脸,这个判断过程需要由人脸检测完成。只有在当前图像内检测到人脸,才能判断出这张人脸属于哪个人,这个判断是由人脸识别器完成的。因此,人脸识别指的是程序先在图像内检测人脸,再识别这张人脸属于哪个人的过程

 创作不易 觉得有帮助请点赞关注收藏~~~文章来源地址https://www.toymoban.com/news/detail-495253.html

到了这里,关于OpenCV中LBPH人脸识别器识别人脸实战(附Python源码)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于OpenCV提供的人脸识别算法LBPH实现人脸识别

    本文通过学习LBPH人脸识别算法,简要了解人脸识别技术的原理,实现人脸采集、训练人脸模型实现人脸识别。 OpenCV库自带的人脸级联分级器具有很好的人脸检测和人脸追踪效果,它是一个基于Haar特征的Adaboost级联分类器。特别注意,OpenCV库虽然自带人脸级联分级器,但是识

    2024年02月03日
    浏览(44)
  • 人脸识别(opencv--LBPH方法训练)

    一、准备数据 1.利用人脸检测方法,先将图像的人脸部分截取成图像 2.批量读取图像,制作成图像与标签对应的列表 二、开始训练 3.训练(使用opencv自带的训练方法) 4.调用 HOG人脸检测器 1.利用人脸检测方法,先将图像的人脸部分截取成图像 选用HOG的目的是为了方便而已,你完全

    2024年02月05日
    浏览(85)
  • 【人脸识别】ssd + opencv Eigenfaces 和 LBPH算法进行人脸监测和识别

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 其实不一定使用ssd,fasterRcnn, yolov 都可以~ 所以假设我们已经实现了这个监测模型。那么我们直接进入识别环境。 OpenCV提供了三种人脸识别的方法,分别是LBPH方法、EigenFishfaces方法、Fisherfaces方法。

    2024年02月05日
    浏览(99)
  • 人脸识别实战:使用Python OpenCV 和深度学习进行人脸识别

    首先简要讨论基于深度学习的面部识别的工作原理,包括“深度度量学习”的概念。 然后,我将帮助您安装实际执行人脸识别所需的库。 最后,我们将为静止图像和视频流实现人脸识别。 安装人脸识别库 ================================================================== 为了使用 Python 和

    2024年04月09日
    浏览(87)
  • Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单人脸检测/识别实战案例 之六 简单进行人脸训练与识别

    目录 Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单人脸检测/识别实战案例 之六 简单进行人脸训练与识别 一、简单介绍 二、简单进行人脸训练与识别 1、LBPH(Local Binary Patterns Histograms)算法进行人脸训练和识别 2、实现步骤: 3、判断是谁的人脸: 案例中涉及的关键函数说

    2024年04月26日
    浏览(86)
  • Ubuntu下的Opencv识别人脸#采用百度智能云平台方案#人脸识别考勤机#C++

    #简介:这是在ubuntu22.04里面使用opencv打开摄像头,通过摄像头获取图像并截取人脸图像,再将人脸图像转换成百度智能云平台所能接受的base64格式(当然也有其他格式),将base64格式的人脸图像发送给百度智能云,通过智能云平台的计算得到图像的匹配信息,本机接收到信息

    2024年02月20日
    浏览(77)
  • Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单人脸检测/识别实战案例 之四 简单行人人体检测效果

    目录 Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单人脸检测/识别实战案例 之四 简单行人人体检测效果 一、简单介绍 二、简单行人人体检测效果实现原理 三、简单行人人体检测效果案例实现简单步骤 四、注意事项 Python是一种跨平台的计算机程序设计语言。是一种面向对

    2024年04月26日
    浏览(58)
  • 【计算机视觉40例】案例29:LBPH人脸识别

    【 导读 】本文是专栏《计算机视觉 40 例简介》的第 29 个案例《 LBPH 人脸识别 》。该专栏简要介绍李立宗主编《计算机视觉 40 例——从入门到深度学习( OpenCV-Python )》一书的 40 个案例。 目前,该书已经在电子工业出版社出版,大家可以在京东、淘宝、当当等平台购买。

    2024年02月06日
    浏览(40)
  • 人脸识别(python+opencv)

    这里我使用的是pycharm(Python集成开发环境)2023.1.3版与opencv pycharm下载网址:PyCharm:JetBrains为专业开发者提供的Python IDE  这里下载免费版的。 opencv下载网址:OpenCV - Open Computer Vision Library  点击Libray--Releases-- 4.5.2版本        如图先建立项目(如不懂如何操作的可以看一下

    2024年01月22日
    浏览(35)
  • 人工智能-OpenCV+Python实现人脸识别(人脸检测)

    在OpenCV中使用Haar特征检测人脸,那么需要使用OpenCV提供的xml文件(级联表)在haarcascades目录下。这张级联表有一个训练好的AdaBoost训练集。首先要采用样本的Haar特征训练分类器,从而得到一个级联的AdaBoost分类器。Haar特征值反映了图像的灰度变化情况。例如:脸部的一些特征

    2024年02月06日
    浏览(99)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包