开发者社区> 我的一块红布头> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

一起来学MediaPipe(一)人脸及五官定位检测

简介: 一起来学MediaPipe(一)人脸及五官定位检测
+关注继续查看

image.png


前言


  在这里学习介绍一种快速完成人脸检测,实测检测FPS超越OpenCv自带 haarcascade 系列。 直接执行:


pip install mediapipe
复制代码



概述


  MediaPipe 人脸检测是一种超快的人脸检测解决方案,具有 6 个地标和多面支持。它基于BlazeFace,这是一种为移动 GPU 推理量身定制的轻量级且性能良好的人脸检测器。该探测器的超实时性能使其能够应用于任何需要准确的面部感兴趣区域作为其他特定任务模型的输入的实时取景器体验,例如 3D 面部关键点估计(例如,MediaPipe Face Mesh)、面部特征或表情分类,以及人脸区域分割。BlazeFace 使用轻量级特征提取网络,其灵感来自但不同于MobileNetV1/V2 ,这是一种由Single Shot MultiBox Detector (SSD)修改的 GPU 友好型锚方案(arxiv.org/abs/1512.02…



示例demo


  修改model_selection整数索引01. 用于0选择最适合距离相机 2 米以内的人脸的短距离模型,以及1最适合 5 米内人脸的全距离模型。min_detection_confidence取值在[0.0, 1.0],表示为人脸检测模型中的最小置信度值被认为是成功的检测。默认为0.5。


  检测到的人脸集合,其中每个人脸都表示为一个检测原型消息,其中包含一个边界框和 6 个关键点(右眼、左眼、鼻尖、嘴巴中心、右耳和左耳)。边界框由xminwidth(均由[0.0, 1.0]图像宽度归一化)和ymin和(均由图像高度height归一化)组成。[0.0, 1.0]每个关键点由x和组成,分别由图像宽度和高度y归一化。[0.0, 1.0]


import cv2
import mediapipe as mp
mp_face_detection = mp.solutions.face_detection
mp_drawing = mp.solutions.drawing_utils
# For webcam input:
cap = cv2.VideoCapture(0)
with mp_face_detection.FaceDetection(model_selection=0, 
                                     min_detection_confidence=0.5) as face_detection:
    while cap.isOpened():
        success, image = cap.read()
        if not success:
            print("Ignoring empty camera frame.")
            # If loading a video, use 'break' instead of 'continue'.
            continue
        # To improve performance, optionally mark the image as not writeable to
        # pass by reference.
        image.flags.writeable = False
        image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
        results = face_detection.process(image)
        # Draw the face detection annotations on the image.
        image.flags.writeable = True
        image = cv2.cvtColor(image, cv2.COLOR_RGB2BGR)
        if results.detections:
            for detection in results.detections:
                mp_drawing.draw_detection(image, detection)
        # Flip the image horizontally for a selfie-view display.
        cv2.imshow('MediaPipe Face Detection', cv2.flip(image, 1))
        if cv2.waitKey(5) & 0xFF == 27:
            break
cap.release()
复制代码


使用单张图像进行检测可得如下测试效果:

image.pngimage.png

拓展


  我们可以在代码中检测到处理图像的shape=(480, 640, 3),经过归一化后检测数据映射到[0,1],在这里按照比例可以反归一化获取目标坐标在shape上的坐标,建立人脸图像及五官坐标矩阵可以辅助完成人脸识别项目,提高识别率。



版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
win10找不到gpedit.msc怎么办?解决找不到gpedit.msc的方法
win10找不到gpedit.msc怎么办?解决找不到gpedit.msc的方法
51 0
如何在Windows 10 / 8.1 / 8中安装PHP或XAMP
如何在Windows 10 / 8.1 / 8中安装PHP或XAMP 欢迎来到PHP系列简介。在上一篇文章中,我谈到了PHP是什么,它的工作原理。但是PHP不会预装在任何操作系统上,无论是Windows,Linux还是Mac。
1516 0
64位 windows10,安装配置MYSQL8.0.13
原文:64位 windows10,安装配置MYSQL8.0.13 MySQL的安装配置过程,一查网上一大堆,但是每个人在安装配置的过程中都会碰到一些问题,因为安装的版本不一样,有些命令可能就不适用了。所以安装之前一定先确认好你的版本号。
1956 0
windows 10 下 mysql的安装
win10下 mysql的安装 今天在win10下装Mysql,总结一下安装详细过程: 1、下载【先进入官网: https://www.mysql.com/】(按照如下截图一步一步执行即可)           2、安装 下载出来的会是一个压缩包,解压到你打算安装的目录下边(不像图形化界面安装那样还需要点击一系列【next】),但是离完全安装成功,现在才是刚刚开始。
1579 0
背水一战 Windows 10 (59) - 控件(媒体类): Image, MediaElement
原文:背水一战 Windows 10 (59) - 控件(媒体类): Image, MediaElement [源码下载] 背水一战 Windows 10 (59) - 控件(媒体类): Image, MediaElement 作者:webabcd介绍背水一战 Windows 10 之 控件(媒...
1013 0
MySQL 5.7安装部署总结
之前搭建MySQL环境都是使用公司内部使用的脚本,其实说实话屏蔽了很多细节,对MySQL的安装还是了解比较肤浅,今天有个MySQL 5.7的数据迁移的任务,也是为了熟悉安装过程就走了一遍安装的流程,整体和5.6差别不大,这里演示安装的都是Percona发布的二进制版本,和MySQL官方的是完全兼容,当然也揉入了Percona一些自己的东西。
923 0
Windows 10下mysql 64位 安装(mysql-5.7.11-winx64安装)
Windows下mysql 64位 安装(mysql-5.7.11-winx64安装) 系统Windows10 安装包mysql-5.7.11-winx64.zip 安装过程中遇到的问题,请留意4.0常见问题汇总,常见问题都可解决。 附上最近一次完成安装记录,给大忙人看的只有两张图和完整的命令。 完成的命令 C:\Windows\syst
2585 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
内容安全检测与管控
立即下载
复杂环境下的视觉同时定位与地图构建
立即下载
低代码开发师(初级)实战教程
立即下载