3h精通OpenCV(九)-最简单的人脸检测

举报
振华OPPO 发表于 2022/02/18 14:23:42 2022/02/18
【摘要】 0、准备工作右击新建的项目,选择Python File,新建一个Python文件,然后在开头import cv2导入cv2库。import cv2 1、实现源码要进行人脸检测,对于现在的深度学习来说简直是入门级项目了。如果我们使用传统的方法来进行人脸检测,就可以省去寻找数据集、调参以及训练的时间了。faceCascade是我们的人脸分类器,一个写好的分类器文件,虽然很老,但是很有效。关注公...
0、准备工作

右击新建的项目,选择Python File,新建一个Python文件,然后在开头import cv2导入cv2库。

import cv2

在这里插入图片描述

1、实现源码

要进行人脸检测,对于现在的深度学习来说简直是入门级项目了。
如果我们使用传统的方法来进行人脸检测,就可以省去寻找数据集、调参以及训练的时间了。

  • faceCascade是我们的人脸分类器,一个写好的分类器文件,虽然很老,但是很有效。关注公众号《萌新加油站》,后台回复:==人脸识别==,即可获取。
  • img是读取的图像,先通过cvtColor(img,cv2.COLOR_BGR2GRAY)转为灰度图像
  • detectMultiScale()中的参数是灰度图像,比例因子,还有邻居个数。
  • 下面围绕面孔创建一个边界框,边界框的两个坐标点可以确定框的位置,然后是bounding box的颜色,最后是线条的厚度。
  • 最后就imshow显示结果图像,waitKey(0)让窗口持久保持。
import cv2

faceCascade=cv2.CascadeClassifier("Resources/haarcascade_frontalface_default.xml")

img=cv2.imread("Resources/mm.jpg")
imgGray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
faces=faceCascade.detectMultiScale(imgGray,1.1,4)
for(x,y,w,h) in faces:
    cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
cv2.imshow("Result",img)
cv2.waitKey(0)
2、运行效果

可以看到我们霉霉的脸被边界框框起来了,检测的准确率还可以。
在这里插入图片描述
当然,我们不仅可以放入图像进行检测,还可以打开摄像头,进行动态的人脸检测,摄像头在第一节就介绍了,感兴趣的小伙伴去尝试尝试吧~

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。