您的位置:首页 > 财经 > 产业 > 上海网站开发_企业邮箱免费版注册_湖南百度推广开户_河南推广网站的公司

上海网站开发_企业邮箱免费版注册_湖南百度推广开户_河南推广网站的公司

2024/11/17 2:20:17 来源:https://blog.csdn.net/m0_74896766/article/details/142906190  浏览:    关键词:上海网站开发_企业邮箱免费版注册_湖南百度推广开户_河南推广网站的公司
上海网站开发_企业邮箱免费版注册_湖南百度推广开户_河南推广网站的公司

文章目录

  • 人脸识别
    • 一、获取分类器
    • 二、代码实现
      • 1. 图片预处理
      • 2. 加载人脸检测分类器
      • 3. 检测人脸
      • 4. 标注人脸
  • 总结

人脸识别

要实现人脸识别首先要判断当前图像中是否出现了人脸,这就是人脸检测。只有检测到图像中出现了人脸,才能据此判断这个人到底是谁。那么,如何实现人脸识别呢?

调用 OpenCV 中训练好的分类器实现人脸检测。OpenCV 提供了训练好的haar级联分类器,OpenCV 还提供了使用 HOG 特征(主要用于行人检测)和 LBP 算法的级联分类器。

  • 分类器作用这个分类器是通过机器学习算法训练得到的,能够识别出图像中与人脸特征相匹配的区域。

接下来,我们来尝试对以下照片进行人脸检测:

在这里插入图片描述

一、获取分类器

  • 分类器作用这个分类器是通过机器学习算法训练得到的,能够识别出图像中与人脸特征相匹配的区域。

如何获取分类器呢?在左边的工程中找到外部库“External Libraries”,找到site-packages包,接着找到我们安装的第三方库cv2,该库下的data中,保存着分类器:

在这里插入图片描述

在这里插入图片描述

  • 路径External Libraries/site-packages/cv2/data

二、代码实现

1. 图片预处理

使用cv2.cvtColor()函数将读取的彩色图片转换为灰度图。这是因为人脸检测算法通常在灰度图上运行得更快且更有效

import cv2
image = cv2.imread('p1.jpg')
gray = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY)

2. 加载人脸检测分类器

使用cv2.CascadeClassifier()函数加载预训练的人脸检测分类器。这个分类器是基于Haar特征的,文件名为**“haarcascade_frontalface_default.xml”**,它通常与OpenCV库一起提供。

faceCascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')

3. 检测人脸

  • detectMultiScale()函数
faces = faceCascade.detectMultiScale(gray, scaleFactor, minNeighbors, minSize)
  • 参数
-- faces:该函数返回一个人脸区域的列表。每个区域由其左上角的坐标(x, y)、宽度w和高度h表示。
-- scaleFactor:控制图像尺寸减小的比例。
-- minNeighbors:表示每个候选矩形区域需要有多少个相邻的矩形区域来保留该区域。
-- minSize:定义了人脸可能的最小尺寸。
  • 代码
faces = faceCascade.detectMultiScale(gray, scaleFactor=1.05, minNeighbors=10, minSize=(8,8))
print("发现{0}张人脸!".format(len(faces)))  
print("其位置分别是:", faces)
-------------
发现4张人脸!
其位置分别是: [[208 122 128 128][375 171 132 132][ 37 153 127 127][613 184 148 148]]

4. 标注人脸

使用cv2.rectangle()函数在原始图片上绘制绿色矩形框,标记出检测到的人脸位置。

for (x,y,w,h) in faces:cv2.rectangle(image,(x,y),(x+w,y+h),(0,255,0),2)
cv2.imshow("result",image)
cv2.waitKey(0)
cv2.destroyAllWindows()

在这里插入图片描述

总结

本篇介绍了如何对人脸进行人脸识别检测。就是利用已经训练好的分类器模型,直接进行加载利用,识别图片。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com