网易首页 > 网易号 > 正文 申请入驻

MediaPipe Face Detection可运行在移动设备上的亚毫秒级人脸检测

0
分享至

MediaPipe人脸检测

MediaPipe人脸检测是一种超快速的人脸检测解决方案,具有6个界标和多人脸支持。它基于BlazeFace,BlazeFace是为移动GPU推理量身定制的轻巧且性能良好的面部检测器。检测器的超实时性能使其可应用于需要准确地关注面部区域作为其他任务特定模型:

例如 1、3D面部关键点或几何估计MediaPipe Face Mesh 2、面部特征或表情分类,以及面部区域分割等

BlazeFace使用了一个轻量级的特征提取网络,该网络受MobileNetV1 / V2的启发,但与MobileNetV1 / V2不同,该网络可以有效运行在移动设备上,且速度极快,该模型是从Single Shot MultiBox Detector(SSD)修改而来的GPU友好锚定方案,以及替代非最大抑制的改进的平局分辨率策略。

下图为BlazeFace的一些框图,关于BlazeFace的详细细节,可以下载BlazeFace的官方论文进行查看

BlazeFace

MediaPipe人脸检测代码示例:

当然在进行本期文章前,首先需要安装MediaPipe,安装MediaPipe可以直接在cmd命令框中输入如下

Python –m pip install MediaPipe,等待系统自动安装即可,这里需要提醒一下由于最新的MediaPipe版本不再支持python3.7以下的版本,所以MediaPipe的代码最好运行在python3.7以上版本

import cv2
import mediapipe as mp
mp_face_detction = mp.solutions.face_detection
mp_drawing = mp.solutions.drawing_utils

首先我们import需要的mediapipe库,然后定义一个face人脸检测模型

mp_face_detction = mp.solutions.face_detection
其函数输入只有一个参数:
MIN_DETECTION_CONFIDENCE
[0.0, 1.0]来自人脸检测模型的最小置信度值,预设为0.5

此函数输出如下数据:

检测到的面部的集合,其中每个面部都表示为检测原型数据,其中包含边界框和6个关键点(右眼,左眼,鼻尖,嘴中部,右耳和左耳)。边界框由xmin和width(均[0.0, 1.0]通过图像宽度标准化)和ymin和height(均[0.0, 1.0]通过图像高度标准化)组成。每个关键点由x和组成y,分别[0.0, 1.0]通过图像的宽度和高度将其标准化。

# 图片人脸检测:
with mp_face_detection.FaceDetection(
min_detection_confidence=0.5) as face_detection:
for idx, file in enumerate(file_list):
image = cv2.imread(file)
# 转换图片到RGB颜色空间
results = face_detection.process(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))
# 画出检测到的人脸
if not results.detections:
continue
annotated_image = image.copy()

代码截图

首先我们使用函数

with mp_face_detection.FaceDetection(
min_detection_confidence=0.5) as face_detection:

建立一个face_detection检测模型,模型检测置信度设置为0.5,意思是置信度小于0.5的人脸不再显示给用户

然后我们遍历file_list下的图片数据,进行图片的读取

读取到图片后,由于OpenCV使用BGR颜色空间,一般我们习惯上RGB颜色空间,因此后期开发的第三方库一般的颜色空间都是RGB颜色空间,这里我们使用cv2.cvtColor(image, cv2.COLOR_BGR2RGB)函数对图片进行颜色空间的转换

最后使用face_detection.process函数对图片进行人脸的检测

当然,我们可以设置当检测不到人脸时,直接跳过图片的展示

当检测到人脸后,我们便得到了人脸的方框以及6个检测点(右眼,左眼,鼻尖,嘴中部,右耳和左耳)

for detection in results.detections:
print(mp_face_detection.get_key_point(
detection, mp_face_detection.FaceKeyPoint.NOSE_TIP))
mp_drawing.draw_detection(annotated_image, detection)
cv2.imwrite('/tmp/annotated_image' + str(idx) + '.png', annotated_image)
cv2.imshow('annotated_image',annotated_image)
cv2.waitKey(0)

代码截图

当检测到人脸后,我们便可以遍历检测到的结果,然后使用mp_drawing.draw_detection函数对检测到的图片进行画图,并保存检测图片到本地。

人脸检测

当然OpenCV也有类似的人脸检测与人脸识别方面的应用,如下专栏,详细介绍了人脸检测与人脸识别应用方面的文章

Mediapipe 检测实时检测代码实现

当然mediapipe也同样支持视频人脸的实时检测

import cv2
import mediapipe as mp
mp_face_detction = mp.solutions.face_detection
mp_drawing = mp.solutions.drawing_utils

跟图片人脸检测类似,我们import mediapipe以及其他需要的库

# 视频人脸检测
cap = cv2.VideoCapture(0)
with mp_face_detection.FaceDetection(
min_detection_confidence=0.5) as face_detection:
while cap.isOpened():
success, image = cap.read()
if not success:
continue
# Flip 图片
# BGR 图片转化到 RGB.
image = cv2.cvtColor(cv2.flip(image, 1), cv2.COLOR_BGR2RGB)
# 为了提高性能,可以选择将图像标记为不可写,以便通过引用传递
image.flags.writeable = False
results = face_detection.process(image)

代码截图

首先我们使用OpenCV打开默认摄像头cv2.VideoCapture(0),当然这里也可以传递一个视频的路径地址来检测视频中的人脸

当摄像头打开后,我们便可以从视频帧中提取视频图片,然后按照图片检测的步骤进行人脸的检测

这里为了增强图片数据,我们首先对图片进行翻转,这里是因为前置摄像头拍摄出来的图片都是被镜像过的,然后我们再转换图片到RGB颜色空间,当然为了提高性能,我们标记图片的读写操作标志位,首先设置为不可写

然后使用face_detection.process函数对图片进行人脸的检测

# 画出检测到的人脸
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)
cv2.imshow('MediaPipe Face Detection', image)
if cv2.waitKey(5) & 0xFF == ord('q'):
break
cap.release()

代码截图

当检测到人脸后,我们设置图片的可写标签为true,以便我们更改图片,然后我们遍历检测到的人脸数据,并把人脸边框已经人脸6点检测点显示到原始图片上,然后循环检测视频帧中的人脸图片,这样便可以实现了人脸视频检测。

有关MediaPipe的其他文章

当然mediapipe不仅可以进行人脸的检测,还可以提供更加详细的人脸识别数据,更多文章,请参考:

利用机器学习,进行人体33个2D姿态检测与评估

利用机器学习,进行人手的21个3D手关节坐标检测

利用机器学习进行人脸468点的3D坐标检测,并生成3D模型

MediaPipe 集成人脸识别,人体姿态评估,人手检测模型

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
1-3!国足凉了,日本队疑似放水,伊万陷入困境,印尼或逆袭!

1-3!国足凉了,日本队疑似放水,伊万陷入困境,印尼或逆袭!

观察鉴娱
2024-11-29 14:33:25
叶珂被曝独自去产检,曾渴望二胎女儿的黄晓明,真会和叶珂分手吗

叶珂被曝独自去产检,曾渴望二胎女儿的黄晓明,真会和叶珂分手吗

不八卦会死星人
2024-11-29 15:44:51
生物链崩溃了?大连蛇岛老鼠吃蛇,2万多条蛇成了老鼠“口粮”!

生物链崩溃了?大连蛇岛老鼠吃蛇,2万多条蛇成了老鼠“口粮”!

大宗看萌宠
2024-11-28 21:55:11
证监会决心壮士断腕!今日凌晨的四大消息正式发酵(11.30)!

证监会决心壮士断腕!今日凌晨的四大消息正式发酵(11.30)!

风口招财猪
2024-11-30 01:05:02
大陆收台怎么办?特朗普直接把话挑明了:两岸统一,大局已定!

大陆收台怎么办?特朗普直接把话挑明了:两岸统一,大局已定!

听风者说
2024-11-29 21:03:07
轰4连鞭,2-2到6-2大胜,第2位四强出炉,资格赛选手淘汰9号种子

轰4连鞭,2-2到6-2大胜,第2位四强出炉,资格赛选手淘汰9号种子

草根体育
2024-11-30 00:04:49
巴萨官方发布125周年海报:队史射手王、出场王梅西C位出镜

巴萨官方发布125周年海报:队史射手王、出场王梅西C位出镜

懂球帝
2024-11-29 16:24:53
笑麻了!原来要戳破台湾民进党的谎言,只需马龙去一趟就可以了!

笑麻了!原来要戳破台湾民进党的谎言,只需马龙去一趟就可以了!

青青子衿
2024-11-29 05:18:26
并购重组+荣耀借壳+背靠国资+中央+股价10元,有望迎来20连板!

并购重组+荣耀借壳+背靠国资+中央+股价10元,有望迎来20连板!

弘说市
2024-11-30 02:10:02
深夜!拉升!

深夜!拉升!

中国基金报
2024-11-30 00:15:24
震惊!网传特斯拉降价后,有车主天天去4S店里搬水,表示很难受

震惊!网传特斯拉降价后,有车主天天去4S店里搬水,表示很难受

火山诗话
2024-11-29 07:34:51
97岁郭淑珍:我一生中正确的决定,就是46岁高龄为小丈夫生女儿

97岁郭淑珍:我一生中正确的决定,就是46岁高龄为小丈夫生女儿

三公子娱乐丫
2024-11-29 17:24:39
大陆师生访台,清华大学校花彭弋航走红!网友:比章泽天还漂亮!

大陆师生访台,清华大学校花彭弋航走红!网友:比章泽天还漂亮!

户外阿毽
2024-11-30 02:00:51
翁帆离婚,一语惊人!杨振宁万万没想到,翁帆的内心会如此执着

翁帆离婚,一语惊人!杨振宁万万没想到,翁帆的内心会如此执着

陈二建
2024-09-06 17:25:29
因为暗恋女同事,偷偷在她家安装了偷拍设备,看到了脸红心跳的一幕......

因为暗恋女同事,偷偷在她家安装了偷拍设备,看到了脸红心跳的一幕......

极品小牛肉
2023-11-14 18:21:28
国家能源局:建设第一批大型风电光伏基地意义重大,确保年底前建成投产

国家能源局:建设第一批大型风电光伏基地意义重大,确保年底前建成投产

经济观察报
2024-11-29 11:54:20
张维迎警示:逆规则而行,全球化红利将与你无缘

张维迎警示:逆规则而行,全球化红利将与你无缘

墨下
2024-11-29 02:09:40
尊界S800亮相,江淮股价应声暴跌,余某某到底吹错了什么?

尊界S800亮相,江淮股价应声暴跌,余某某到底吹错了什么?

车市博览
2024-11-29 14:33:38
薛凯琪太敢穿,身上只搭一块黑布就大摇大摆,43岁还嫩似少女

薛凯琪太敢穿,身上只搭一块黑布就大摇大摆,43岁还嫩似少女

南城无双
2024-11-30 00:19:36
卢布一度遭遇恐慌性抛售!普京最新发声

卢布一度遭遇恐慌性抛售!普京最新发声

每日经济新闻
2024-11-29 08:07:22
2024-11-30 04:56:49
人工智能研究所AI
人工智能研究所AI
python人工智能,大数据,人生苦短,我用python
152文章数 767关注度
往期回顾 全部

科技要闻

"AGI不是大杀器,是普通人每天在用的产品"

头条要闻

男子疑因吃"驴打滚"窒息身亡 目击者:他无法吐出食物

头条要闻

男子疑因吃"驴打滚"窒息身亡 目击者:他无法吐出食物

体育要闻

穆雷与德约科维奇能凑成王炸组合吗?

娱乐要闻

叶珂被曝独自去产检,他俩真分了吗

财经要闻

专家建议将农民养老金提升至每月500元

汽车要闻

问界M7今年累计交付量已突破18万辆

态度原创

亲子
手机
艺术
房产
公开课

亲子要闻

当人类幼崽第一次见到套娃,网友:这反应太可爱了

手机要闻

华为Pura 80系列再次被确认:多焦段潜望加持,外围参数也已清晰

艺术要闻

故宫珍藏的墨迹《十七帖》,比拓本更精良,这才是地道的魏晋写法

房产要闻

大量甩地!114亿,4790亩!海南土地市场全面爆发!

公开课

一块玻璃,如何改变人类世界?

无障碍浏览 进入关怀版