基于opencv与mediapipe的面部跟踪(人脸检测追踪)python代码实现

该文介绍了如何利用OpenCV读取视频流,并结合Mediapipe库进行面部检测和跟踪。通过设置不同的模型选择和置信度阈值,可以在2米或5米范围内跟踪人脸,输出包括边界框和关键点信息。代码示例展示了实时显示检测结果和计算FPS的过程。
该文章已生成可运行项目,

1. 面部跟踪概述

        面部跟踪主要是从图像或视频中检测出人脸并输出人脸位置及其大小等有效信息,并在后续帧中继续捕获人脸的位置及其大小等信息,实时跟踪人脸。此技术可用于海关、机场、视频会议、拍照对焦、面部打码等业务场景。(与人脸识别是不同范畴)

        本文主要利用opencv读取摄像头或视频文件信息,通过mediapipe对opencv读取的图像数据进行人脸检测跟踪。其中每张人脸都表示为一个检测原型消息。输出结果包含一个边界框:xmin,ymin,width,height 和 6 个关键点(右眼、左眼、鼻尖、嘴巴中心、右耳垂体和左耳垂体),模型有两种模式,一种是距离摄影机2米以内的面的短距离模型,一种是距离摄影机5米以内的面的全范围模型。

2. 面部跟踪python代码实现

        首先利用opencv模块中的VideoCapture类创建一个待检测视频对象

cap = cv2.VideoCapture(vido)

入参vido可以是数字0或1代表调用摄像头,也可以是路径加视频文件名称代表使用视频文件。

        然后调用mediapip模块中的mp.solutions.face_detection模块,使用FaceDetection类创建一个人面部跟踪对象:

mpFace = mp.solutions.face_detection

face = mpFace.FaceDetection(min_detection_confidence=0.5, model_selection=0)

其中两个参数分别代码置信度和检测模式,置信度取值[0,1]的float类型值,取值越高,检测越准确。

模式取值0或1的int类型,使用0则是选择最适合距离摄影机2米以内的面的短距离模型。使

本文章已经生成可运行项目
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值