多姿势零基础玩转OpenCV人脸识别(Python)

 

人脸识别是指程序对输入的人脸图像进行判断,并识别出对应的人的过程。人脸检测是人脸识别的基础。

人脸存在性问题检测

在人脸检测中,主要任务是构造能够区分包含人脸不包含人脸的分类器。这些实例被分为“正类”(包含人脸图像)以及“负类”(不包含人脸图像)。

为了解决人脸存在的问题,在OpenCV中,可以调用已经训练好的级联分类器。训练分类器非常耗费时间。现成的一些分类器已经可以用来检测人脸及相关特征(例如眼睛和鼻子)、人类和其他物体。这些级联分类器以XML 文件存放在OpenCV源文件的data目录中,加载不同的联级分类器的XML文件就可以实现不同对象的检测。

OpenCV实现人脸识别(一)级联分类器概念-陶小桃Blog本节简要介绍人脸检测的基本原理;OpenCV提供的三种不同的训练好的级联分类器,本文简单介绍其中涉及的一些概念。https://www.52txr.cn/2022/CVFace1.htmlOpenCV实现人脸识别(二)级联分类器使用-陶小桃Blog本节介绍如何使用OpenCV已经分类好的级联分类器来实现人脸的检测,并在检测到的地方做上标记。https://www.52txr.cn/2022/CVFace2.html通过级联分类器就能识别出来人脸,调整适当的参数,就能把人脸圈出来,如下图所示:

分辨人脸

识别出来人脸之后就要开始分辨这脸是谁的。

在OpenCV中,有多种算法用于人别识别。

LBHP(Local Binary Pattern Histogram,局部二值模式直方图)所使用的模式基于LBP算法。LBP是一种有效的纹理描述算子提出的,在表述图像局部纹理特征上效果出众。

OpenCV实现人脸识别(三)LBPH算法-陶小桃BlogLBHP(Local Binary Pattern Histogram,局部二值模式直方图)所使用的模式基于LBP算法。LBP是一种有效的纹理描述算子提出的,在表述图像局部纹理特征上效果出众。https://www.52txr.cn/2022/CVLBPH.html

EigenFace通常也被称为特征脸,他使用主成分分析(PCA)的方法实现将高纬度的人脸处理数据处理为低维数据(降维),再进行数据分析和处理,获取识别结果。

OpenCV实现人脸识别(四)EigenFaces方法-陶小桃BlogEigenFace通常也被称为特征脸,他使用主成分分析(PCA)的方法实现将高纬度的人脸处理数据处理为低维数据(降维),再进行数据分析和处理,获取识别结果。https://www.52txr.cn/2022/CVEigenFaces.htmlOpenCV人脸检测的EigenFaces方法缺点在于操作过程中会损失许多特征信息。Fisherface采用LDA(线性判别分析)实现人脸识别,是一种经典学习方法。

OpenCV实现人脸识别(五)Fisherfaces算法-陶小桃BlogOpenCV人脸检测的EigenFaces方法缺点在于操作过程中会损失许多特征信息。Fisherface采用LDA(线性判别分析)实现人脸识别,是一种经典学习方法。https://www.52txr.cn/2022/CVfisher.html

当然,这都是最基础的人脸识别方法,属于入门级别的。要是想更加专业和高精度识别人脸,还需要加入更多的训练集以及智能框架来使得功能更加精确和完善。希望写的这几篇博客能帮助到你。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要使用OpenCV进行人脸识别,你可以按照以下步骤来实现: 首先,在项目文件夹下创建一个脚本文件。 然后,导入OpenCV库并指定待检测的图片和人脸识别模型的路径。你可以使用以下代码进行预准备操作: import cv2 filename = 'OIP-C.jpg' pathface = 'B:\\Python\\Practic\\Face recognition\\cascades\\haarcascade_frontalface_default.xml' 接下来,定义一个函数来进行人脸检测。在这个函数中,你需要加载人脸识别模型并读取待检测的图片。然后,将图片转换为灰度图像,使用人脸识别模型对其进行检测,并将检测到的人脸位置标注在图像上。最后,显示标注后的图像,并保存结果图像。 def detect(filename): face_cascade = cv2.CascadeClassifier(pathface) img = cv2.imread(filename) gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) faces = face_cascade.detectMultiScale(gray, 1.3, 5) for (x, y, w, h) in faces: img = cv2.rectangle(img, (x, y), (x+w, y+h), (255,0,0), 2) cv2.namedWindow('Face recognition') cv2.imshow('Face recognition', img) cv2.imwrite('./Try.jpg', img) cv2.waitKey(0) 最后,调用detect函数并传入待检测的图片文件名即可进行人脸识别。 detect(filename) 以上就是使用OpenCV进行人脸识别Python代码。请确保你已正确安装了OpenCV库,并将人脸识别模型文件(haarcascade_frontalface_default.xml)放置在正确的路径下。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [基于OpenCV-Python实现的人脸识别](https://blog.csdn.net/weixin_52978638/article/details/124287279)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是刃小木啦~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值