OpenCV中的深度学习人脸检测

举报
Ustinian_2022 发表于 2022/08/06 21:40:23 2022/08/06
【摘要】 先来看一下图片检测,原图如下。是谁我就不说了。律师函,不存在的。训练数据是现成的,利用现成的数据,通过训练进而来检测人脸。代码如下。import cv2 图片名filename = ‘cxk.png’def detect(filename):# cv2级联分类器CascadeClassifier,xml文件为训练数据face_cascade = cv2.CascadeClassifier(‘...

先来看一下图片检测,原图如下。

是谁我就不说了。律师函,不存在的。

训练数据是现成的,利用现成的数据,通过训练进而来检测人脸。

代码如下。

import cv2

图片名

filename = ‘cxk.png’

def detect(filename):
# cv2级联分类器CascadeClassifier,xml文件为训练数据
face_cascade = cv2.CascadeClassifier(‘haarcascade_frontalface_default.xml’)
# 读取图片
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(‘people’)
# 显示图片
cv2.imshow(‘people’, img)
# 保存图片
cv2.imwrite(‘cxks.png’, img)
# 设置显示时间,0表示一直显示
cv2.waitKey(0)

detect(filename)

最终结果如下。

图片好了,那么接下来就来看视频。

/ 02 / 视频检测

视频用的抖音的上的视频。

这里只截取检测效果比较好的视频段作为例子。

毕竟训练数据的质量摆在那里,有的时候会出现一些错误。

如想提高检测的精度,便需要一个高质量的人脸数据库。

由于资源有限,我就直接偷懒了。

import cv2

def face_rec():
# 加载视频
cameraCapture = cv2.VideoCapture(‘video.mp4’)
# cv2级联分类器CascadeClassifier,xml文件为训练数据
face_cascade = cv2.CascadeClassifier(‘haarcascade_frontalface_default.xml’)
# 读取数据
success, frame = cameraCapture.read()
while success and cv2.waitKey(1) == -1:
# 读取数据
ret, img = cameraCapture.read()
# 进行人脸检测
faces = face_cascade.detectMultiScale(img, 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(‘camera’, 0)
cv2.resizeWindow(‘camera’, 840, 480)
# 显示处理后的视频
cv2.imshow(‘camera’, img)
# 读取数据
success, frame = cameraCapture.read()
# 释放视频
cameraCapture.release()
# 释放所有窗口
cv2.destroyAllWindows()

if name == ‘main’:
face_rec()

最终视频结果如下。

https://v.qq.com/x/page/r087969or1q.html

小姐姐的脸全被圈起来了!

/ 03 / 总结

相关数据已上传网盘:

链接:https://pan.baidu.com/s/17xhfZXi1wL0UFZXFSZEl8Q 提取码:o222

需要给图像打标签,生成人脸识别数据。

然后通过OpenCV的Eigenfaces算法进行人脸识别。

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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