人脸检测(Python)

 

目录

环境:

初始化摄像头: 

初始化FaceDetector对象:

获取摄像头帧: 

获取数据:

绘制数据:

显示图像:

完整代码: 

环境:

 cvzone库:cvzone是一个基于OpenCV的计算机视觉库,它提供了一些方便的功能和工具,用于图像处理、人脸检测、手势识别等应用。cvzone库是由Murtaza Hassan开发的,目前支持Python语言。

cv2库:cv2是OpenCV(Open Source Computer Vision Library)的Python接口库,它是一种广泛使用的计算机视觉和图像处理库。cv2提供了丰富的函数和工具,用于处理图像、视频、进行特征检测、图像变换等各种计算机视觉任务。

可以通过清华镜像源安装

初始化摄像头: 

cap = cv2.VideoCapture(0) # 通常 '0' 指的是内置摄像头
cap.set(3,1280)     #设置摄像头的分辨率为 1280x720
cap.set(4,720)

初始化FaceDetector对象:

FaceDetector是一个基于OpenCV的库,它提供了一个简单而强大的人脸检测器。它使用了OpenCV的级联分类器(Cascade Classifier)来检测人脸,并提供了方便易用的接口。FaceDetector可以在静态图像或实时视频中检测出人脸,并返回每个检测到的人脸的位置和边界框。它还可以根据需要进行参数调整,以适应不同场景和要求。FaceDetector在诸如人脸识别、人脸跟踪、表情检测等应用中非常有用。

detector = FaceDetector(minDetectionCon=0.5, modelSelection=1)
# modelSelection: 0 表示短距离检测(2米),1 表示长距离检测(5米)

获取摄像头帧: 

 # success: 布尔值,表示是否成功捕获了帧# img: 捕获的帧success, img = cap.read() # 从摄像头读取当前帧# 在图像中检测人脸# img: 更新后的图像# bboxs: 检测到的人脸边界框列表img, bboxs = detector.findFaces(img, draw=False) #在图像中检测人脸,并返回更新后的图像和人脸边界框列表

获取数据:

 # ---- 获取数据 ---- #center = bbox["center"]  # 获取人脸中心坐标x, y, w, h = bbox['bbox']  # 获取边界框的坐标和大小score = int(bbox['score'][0] * 100)  # 获取识别置信度(百分比)

绘制数据:

  # ---- 绘制数据 ---- #cv2.circle(img, center, 5, (255, 0, 255), cv2.FILLED)  # 绘制圆形标记人脸中心cvzone.putTextRect(img, f'{score}%', (x, y - 15), border=5)  # 显示识别置信度文本cvzone.cornerRect(img, (x, y, w, h))  # 绘制矩形框

显示图像:

 # 在名为'Image'的窗口中显示图像cv2.imshow("Image", img)# 等待1毫秒,如果按下任意键则关闭窗口cv2.waitKey(1)

完整代码: 

#coding=gbk
# 导入必要的库
import cvzone
from cvzone.FaceDetectionModule import FaceDetector
import cv2
import logging# 配置日志记录
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')# 记录日志信息
logging.info('这是一条信息日志')
logging.warning('这是一条警告日志')
logging.error('这是一条错误日志')
# 初始化摄像头
cap = cv2.VideoCapture(0) # 通常 '0' 指的是内置摄像头
cap.set(3,1280)     #设置摄像头的分辨率为 1280x720
cap.set(4,720)# 初始化FaceDetector对象
# minDetectionCon: 最小检测置信度阈值
# modelSelection: 0 表示短距离检测(2米),1 表示长距离检测(5米)
detector = FaceDetector(minDetectionCon=0.5, modelSelection=1)# 循环获取摄像头帧
while True:# success: 布尔值,表示是否成功捕获了帧# img: 捕获的帧success, img = cap.read() # 从摄像头读取当前帧# 在图像中检测人脸# img: 更新后的图像# bboxs: 检测到的人脸边界框列表img, bboxs = detector.findFaces(img, draw=False) #在图像中检测人脸,并返回更新后的图像和人脸边界框列表# 如果检测到人脸if bboxs:# 遍历每个边界框for bbox in bboxs:# bbox 包含 'id', 'bbox', 'score', 'center'# ---- 获取数据 ---- #center = bbox["center"]  # 获取人脸中心坐标x, y, w, h = bbox['bbox']  # 获取边界框的坐标和大小score = int(bbox['score'][0] * 100)  # 获取识别置信度(百分比)# ---- 绘制数据 ---- #cv2.circle(img, center, 5, (255, 0, 255), cv2.FILLED)  # 绘制圆形标记人脸中心cvzone.putTextRect(img, f'{score}%', (x, y - 15), border=5)  # 显示识别置信度文本cvzone.cornerRect(img, (x, y, w, h))  # 绘制矩形框# 在名为'Image'的窗口中显示图像cv2.imshow("Image", img)# 等待1毫秒,如果按下任意键则关闭窗口cv2.waitKey(1)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/868304.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

视频翻译英文的软件有哪些?打破语言障碍就用这5个

打算趁着暑假假期悄悄努力惊艳所有人的小伙伴在哪呢~ 相信不少朋友自学都会首选在家看网课,不过有时候面对全英的外语课程,难免总会听得一头雾水~ 但其实这个问题很好解决!码好以下这5款视频翻译工具,语言障碍的问题也就都迎刃而…

数据中台设计书及建设指南(中台及大数据解决技术方案)

1. 中台概念 2. 推动企业组织模式演进 3. 建设方法 4 .中台内容 5. 数据安全体系 中台内容围绕数据中台建设评估、整体框架、数据采集,结构化、半结构化、非结构化的数据采集,数据计算能力、存储计算引擎、数据架构、数据挖掘、各种不同数据层建设、模型…

Redis官方可视化管理工具

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl RedisInsight是一个Redis可视化工具,提供设计、开发和优化 Redis 应用程序的功能。RedisInsight分为免费的社区版和一个付费的企业版,免费版具有基本…

RPA影刀 | 循环 + 嵌套循环 + 循环中的continue和break

一、循环 循环的构成 重复在做的事(不变的):循环体每次操作的对象(变化的):循环项 二、ForEach列表循环 三、循环相似元素 四、For次数循环 五、嵌套循环 测试目标:遍历所有页面&#xff0…

蓝牙资讯|三星新智能戒指专利曝光,将搭载屏幕显示心率

科技媒体 91Mobile 挖掘美国专利数据库,发现三星获批一项新的设计专利,展示了全新的智能戒指设计方案,未来可能以 Galaxy Ring 2 的名义发布。 根据专利分享的外观设计,采用了有别于 Galaxy Ring 的全圆环设计,专利中智…

YOLOv5+DecoupleHead解耦头(YOLOx)

一、解耦头原理 在目标检测中,分类任务和回归任务之间的冲突是一个众所周知的问题。因此,用于分类和定位的解耦头被广泛应用于大多数一级和二级探测器。但是,由于YOLO系列的主干和特征金字塔(如FPN, PAN)不断演化,它们的检测头仍然是耦合的。 从下表可以看出,头耦合时端…

深入探索Python库的奇妙世界:赋能编程的无限可能

在编程的浩瀚宇宙中,Python以其简洁的语法、强大的功能和广泛的应用领域,成为了众多开发者心中的璀璨明星。而Python之所以能够如此耀眼,很大程度上得益于其背后庞大的库生态系统。这些库,如同一块块精心雕琢的积木,让…

音视频开发35 FFmpeg 编码- 将YUV 和 pcm合成一个mp4文件

一 程序的目的 /*** *该程序的目的是: * 将 一个pcm文件 和 一个 yuv文件,合成为一个 0804_out.mp4文件 * pcm文件和yuv文件是从哪里来的呢?是从 sound_in_sync_test.mp4 文件中,使用ffmpeg命令 抽取出来的。 * 这样做的目的是为了对比前…

关于振动盘正反料下料逻辑编写

写在前文 借鉴某个程序的逻辑套路写的 1.就是第一个料是正方向,第二个料是反方向。 (* 基础逻辑应该都差不多,这个是一个振动盘,振动盘的末端是一个上下对射的感应器,这个感应器的作用是对射感应到物料的到位信号,末端…

【解码ChatGPT⑯】深入ChatGPT的热潮:为何我们需要对热门话题保持冷静分析?

2022年11月起,美国OpenAI公司开发的聊天机器人ChatGPT迅速崛起,成为增长最快的消费级应用,引起全球广泛关注。ChatGPT的出现标志着人工智能领域的新纪元,推动全球科技创新的竞争。技术进步引发对应用场景的深度探讨,无…

哪个牌子的护眼大路灯质量好呢?性价比高的五款护眼大路灯分享

护眼大路灯可以说是是每个有娃家庭必不可少的照明神器。但面对市场上琳琅满目的护眼落地灯品牌和型号,很多消费者在选购时都会犯难:究竟哪个牌子的护眼大路灯质量好呢?哪个性价比高呢?本文将根据市场反馈以及性价比等各方面&#…

基于自编码器的时间序列异常检测方法(以传感器数据为例,MATLAB R2021b)

尽管近年来研究者对自编码器及其改进算法进行了深入研究,但现阶段仍存在以下问题亟须解决。 1) 无监督学习模式对特征提取能力的限制与有监督学习相比,无监督学习模式摆脱了对样本标签的依赖、避免了人工标注的困难,但也因此失去了样本标签的…

java设计模式(八)装饰模式(Decorator Pattern)

1、模式介绍: 装饰模式是一种结构型设计模式,允许你通过将对象放入包含行为的特殊包装对象中来动态地扩展其功能。它提供了一种灵活的方式来添加功能,避免了创建大量子类的问题。 2、应用场景: 动态添加功能:当需要…

spring-ai 下载不了依赖spring-ai-openai-spring-boot-starter

第1坑:配置第三方仓库不生效, 提示在阿里云仓库没有找到 spring-ai-openai-spring-boot-starter 第2坑:升级jdk17后,springboot项目启动报错 Internal error (java.lang.reflect.InaccessibleObjectException): Unable to make pr…

基于CesiumJs的可视化大屏,效果不是一般的震撼。

CesiumJS是一个用于创建三维地理信息系统(GIS)应用程序的开源JavaScript库。它提供了强大的地理空间数据可视化和交互功能,可以用于构建虚拟地球、地图、飞行模拟等应用。 1. 三维地理空间可视化: CesiumJS支持将地理空间数据以三…

瑞芯微rk356x TF卡烧写选择指定的屏幕打印烧写的过程

rk356x中TF卡烧写屏幕选择 1、开发环境2、问题描述3、解决办法4、总结5、 图片展示1、开发环境 系统:linux系统 芯片:356x 显示:多屏显示(HDMI, MIPI, LVDS, EDP) 2、问题描述 由于在多屏显示的情况下,HDMI屏在LVDS、MIPI或者EDP协同下,默认情况下,在TF卡烧录过程中…

使用dd命令简单测试磁盘I/O

本文所有测试使用的均是Oracle公有云OCI上的计算实例的启动盘。 第1轮测试使用的是默认的启动盘参数。第2轮测试使用的是自动调整的启动盘参数(如下图),性能更高。 第1轮测试 顺序I/O 运行以下命令5次,dsync表示不使用cache&…

计算机网络-组播数据转发原理

一、组播数据转发原理 前面已经学习了组播的基本概念和网络组成结构了,今天来学习下组播数据的转发。首先我们要先明确组播网络也是和单播一样需要网络可达的,因此也是需要单播网络支持的基础上配置组播转发数据。单播网络不通组播网络就没有意义了。 组…

链表——随机链表的复制

基于这篇文章算法的改进随机链表复制 这道题的关键在于完成链表复制后,如何修改random指针。即如何通过遍历原链表找到复制链表的结点。 过去的算法是修改原链表的next,让每个复制结点位于原链表结点后面。 但是,在C的STL库中,有应…

下载安装JavaFX及解决报错:缺少 JavaFX 运行时组件, 需要使用该组件来运行此应用程序|Eclipse

目录 1.下载并解压 2.Eclipse配置 3.报错问题 解决方法1:将javaSE更改到9以下 解决方法2: 使用module-info.java配置解决 1.下载并解压 JavaFX下载地址:JavaFX - Gluon 选择合适自己电脑配置的sdk版本下载 打不开网页的参考这个博客&…