当前位置:网站首页>OpenCV中的深度学习人脸检测
OpenCV中的深度学习人脸检测
2022-08-06 21:49:00 【华为云】
先来看一下图片检测,原图如下。
是谁我就不说了。律师函,不存在的。
训练数据是现成的,利用现成的数据,通过训练进而来检测人脸。
代码如下。
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算法进行人脸识别。
边栏推荐
- Redis Review Plan - String Memory Overhead Issues and Use of Basic/Extended Data Types
- 勒索软件频繁升级,了解常见勒索软件很有必要
- Cascade WPF 】 【 Combobox and its linkage with ListView
- 用户-角色-权限设计【笔记】
- 中华人民共和国个人信息保护法
- VS2019报错:应用程序无法正常启动(0xc000007b),请单击确定关闭应用程序;VCRUNTIME140.dll报错
- 吃透Chisel语言.33.Chisel进阶之硬件生成器(二)——Chisel组合逻辑电路生成:以BCD编码表为例
- From VLAN to IPVLAN: Talking about virtual network devices and their cloud-native applications
- 收获首届算力大会“创新先锋”,济南超算“数据存储集群系统”揭示了什么趋势
- 8086CPU标志寄存器
猜你喜欢
随机推荐
[BPU部署教程] 一文带你轻松走出模型部署新手村
EXT.js学习【笔记】
pinia 基于插件pinia-plugin-persist的 持久化
【历史上的今天】8 月 6 日:拯救了苹果的微软投资;万维网首次公开亮相;AWK 作者出生
Node学习笔记
一文带你了解webrtc基本原理(动手实现1v1视频通话)
uniapp Jiugongge lottery function effect demo (sorting)
Personal Information Protection Law of the People's Republic of China
生成requirements.txt
Axure9基本交互操作(二)
如何使用 saplink 安装其他网站上提供的 ABAP 程序试读版
deepstream检测帧率很高,但是视频有延迟和拖延情况(问题解决)
【ECCV2022】OSFormer: One-Stage Camouflaged Instance Segmentation with Transformers
uniapp 九宫格抽奖功能效果demo(整理)
硅谷课堂第八课-腾讯云点播管理模块(三)
AVL树插入新节点后调整的四种情况(左单旋、右单旋、双旋)
that if the size of dimension 1 of the input is not 1, the ONNX model will return an error
4.【opencv打开美女热舞视频以及摄像头】
HCIP笔记(十一)
七夕特辑之心形的线









