设为首页 收藏本站
开启辅助访问
  • 通风柜
  • 实验台
  • 药品柜
  • 器皿柜
  • 气瓶柜
  • 中央台
  • 实验室教学设备
  • 实验仪器
  • 实验高柜
  • 实验室配件
  • 边台
  • 水柜
  • 通风管道
  • 净化工程
  • 天平台
  • 实验室通风设备
  • 实验室仪器
  • 实验室设备
Mediapipe人脸关键点检测 您所在的位置: 网站首页 人脸五官定位 Mediapipe人脸关键点检测

Mediapipe人脸关键点检测

2022-12-31 12:01| 来源: 网络整理| 查看: 265

Mediapipe人脸关键点检测 Mediapipe介绍环境部署 人脸关键点检测模型调用与配置输出结果解析绘制面网 视频演示

Mediapipe介绍

MediaPipe是由google制作的开源的、跨平台的机器学习框架,可以将一些模型部署到不同的平台和设备上使用的同时,也能保住检测速度。

mediapipe功能 从图中可以发现,能在Python上实现的功能包括人脸检测(Face Detection)、人脸关键点(Face Mesh),手部关键点(Hands)等。利用C++能实现更丰富的功能,我们可以后续探索。

环境部署 Python环境:建议3.6版本以上Python主要模块:opencv-contrib-python;numpy; pandas; matplotlibMediaPipe模块:mediapipe

安装方法:使用以下pip命令安装

pip install mediapipe

测试环境:导入如下库,如果不报错说明导入成功

import cv2 import mediapipe as mp import pandas as pd import numpy as np import matplotlib.pyplot as plt 人脸关键点检测 模型调用与配置 # 调用关键点检测模型 mp_face_mesh = mp.solutions.face_mesh face_mesh = mp_face_mesh.FaceMesh(static_image_mode=True, max_num_faces=3, refine_landmarks=True, min_detection_confidence=0.5, min_tracking_confidence=0.5)

FaceMesh参数说明

static_image_mode=True, 检测静态图片设置为False,检测视频设置为True,默认为Falsemax_num_faces=3, 能检测的最大人脸数,默认为1refine_landmarks=True, 定位嘴唇、眼睛、瞳孔的关键点,设置为True,否则设置为Falsemin_detection_confidence=0.5, 人脸检测的置信度min_tracking_confidence=0.5) 人脸追踪的置信度(检测图像时可以忽略) 输出结果解析 # 读取图像 img1 = cv2.imread("./images/img1.jpg") # 将BGR图像转为RGB图像 _img1 = cv2.cvtColor(img1, cv2.COLOR_BGR2RGB) # 使用模型获取关键点 results = face_mesh.process(_img1) 利用opencv读取图像的颜色通道为BGR,需要利用cv2.cvtColor方法将颜色通道转换为RGB使用FaceMesh模型的process方法检测图像中的关键点 # 输出关键点 landmarks = results.multi_face_landmarks print(landmarks) # 提取关键点坐标 print(landmarks[0].landmark)

landmarks中以类似列表的结构(可迭代对象)存储了关键点,结构中每个“landmark”关键字段存储了关键点的坐标,包含x,y,z,x和y分别通过图像宽度和高度归一化为[0.0,1.0].z表示关键点深度,以头部中心的深度为原点,该值越小,关键点距离相机越近.

# 获取每个人脸的关键点的数量 print(len(landmarks[0].landmark))

当模型配置refine_landmarks=True,获得478个人脸关键点;当模型配置refine_landmarks=False,获得468个人脸关键点,缺少瞳孔的关键点。 关键点位置可以查看该图像:https://github.com/google/mediapipe/blob/master/mediapipe/modules/face_geometry/data/canonical_face_model_uv_visualization.png

绘制面网

利用mediapipe提供的绘制模块直接绘制

# mediapipe提供的绘制模块 mp_drawing = mp.solutions.drawing_utils mp_drawing_styles = mp.solutions.drawing_styles # 利用mp_drawing绘制面网 annotated_image = img1.copy() # 循环获取每一个人脸的关键点 for face_landmarks in results.multi_face_landmarks: mp_drawing.draw_landmarks(image=annotated_image, landmark_list=face_landmarks, # 选取关键点 connections=mp_face_mesh.FACEMESH_TESSELATION, # 绘制关键点,若为None,表示不绘制关键点,也可以指定点的颜色、粗细、半径 landmark_drawing_spec=mp_drawing.DrawingSpec(color=(0,0,255),thickness=2,circle_radius=2), # 绘制连接线的格式 connection_drawing_spec=mp_drawing_styles.get_default_face_mesh_tesselation_style()) # # 利用opencv显示图像,在jupyter中显示效果一般 # cv2.imshow("image",annotated_image) # if cv2.waitKey(0) == ord("q"): # cv2.destroyAllWindows() # 利用matplotlib展示 plt.figure(figsize=(50, 20)) plt.imshow(annotated_image[:, :, ::-1])

下图中关键点包括瞳孔关键点 面网使用mp_face_mesh.FACEMESH_TESSELATION可以选取所需关键点位置,将这些点进行连接,绘制面网。 使用 mp_drawing_styles.get_default_face_mesh_tesselation_style()可以设置连接线的格式 使用mp_face_mesh.FACEMESH_CONTOURS可以选取轮廓点,将其连接成线,使用mp_drawing_styles.get_default_face_mesh_contours_style()可以设置连接线的格式

视频演示

调用摄像头画面进行人脸关键点检测

import time # 获取摄像头,0/1为摄像头编号 cap = cv2.VideoCapture(0) # 循环读取视频每一帧 while True: success,frame = cap.read() if success: start = time.time() results = face_mesh.process(cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)) # 复制图像 annotated_image = frame.copy() # 解封此行代码,可以将关键点绘制在黑色图像上,该代码能生成一张黑色图像 # annotated_image = np.zeros(annotated_image.shape, dtype='uint8') # 如果检测到关键点 if results.multi_face_landmarks: for face_landmarks in results.multi_face_landmarks: # 利用mp_drawing绘制图像 mp_drawing.draw_landmarks(image=annotated_image, landmark_list=face_landmarks, connections=mp_face_mesh.FACEMESH_TESSELATION, landmark_drawing_spec=None, connection_drawing_spec=mp_drawing_styles.get_default_face_mesh_tesselation_style()) mp_drawing.draw_landmarks(image=annotated_image, landmark_list=face_landmarks, connections=mp_face_mesh.FACEMESH_IRISES, landmark_drawing_spec=None, connection_drawing_spec=mp_drawing_styles.get_default_face_mesh_iris_connections_style()) mp_drawing.draw_landmarks(image=annotated_image, landmark_list=face_landmarks, connections=mp_face_mesh.FACEMESH_CONTOURS, landmark_drawing_spec=None, connection_drawing_spec=mp_drawing_styles.get_default_face_mesh_contours_style()) end = time.time() fps = 1/(end-start) annotated_image = cv2.putText(annotated_image,str(int(fps)),(30,50),cv2.FONT_HERSHEY_SIMPLEX,2,(0,0,255),1) # 如果没有检测到关键点,在黑色背景上显示“NO FACE TO DETECT” else: annotated_image = np.zeros(annotated_image.shape, dtype='uint8') annotated_image = cv2.putText(annotated_image,str("NO FACE TO DETECT"),(300,400),cv2.FONT_HERSHEY_SIMPLEX,2,(0,0,255),1) cv2.imshow("image",annotated_image) if cv2.waitKey(30) == ord("q"): cv2.destroyAllWindows() break # 释放摄像头 cap.release()

np.zeros(shape,dtype)可以创建一个给定维度(shape)的全零数组

shape:创建的新数组的(维度),如(4,7,3),表示创建一个三维数组,第一个维度有4个元素,第二个维度有7个元素,第三个维度有3个元素.annotated_image.shape可以获取图像的维度(height,width,channel)dtype:创建新数组的数据类型,当dtype =unit8时为图像数据类型,其取值范围在0~255.

检测效果

面部关键点检测

可通过下方链接下载程序 源程序下载



【本文地址】

公司简介

联系我们

今日新闻
  • 人脸五官定位画法
  • 人脸五官定位软件
  • 人脸五官定位图
  • 人脸五官定位app
  • 人脸五官位置
  • 人脸五官特征分析
  • 人脸五官是指哪五关
  • 人脸五官的标准比例
  • 人脸5官
  • 人脸五官分析软件

推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有

      玻璃钢生产厂家玻璃钢跑步运动人物雕塑菏泽室外玻璃钢彩绘雕塑公司西安欧式玻璃钢雕塑定做价格玻璃钢彩绘螃蟹雕塑合肥卡通玻璃钢雕塑厂家上海美陈商场公园标识玻璃钢景观雕塑制造卡通玻璃钢卡通雕塑直销价格新品玻璃钢创意雕塑河北多彩玻璃钢雕塑生产厂家灵璧县动物玻璃钢雕塑室内校园玻璃钢景观雕塑报价北京走廊商场美陈供应商艺术玻璃钢雕塑加工厂家绍兴玻璃钢仿铜雕塑批发玻璃钢瓜果雕塑工厂店海口园林景观的玻璃钢雕塑黑龙江玻璃钢海豚雕塑定制商场美陈布置有前途吗玻璃钢香蕉雕塑厂家岑溪玻璃钢胸像雕塑南京玻璃钢花盆供货商欧式玻璃钢人物雕塑品牌玻璃钢人物雕塑出厂价格洛阳民族玻璃钢人物雕塑四会玻璃钢卡通雕塑苏州人物玻璃钢雕塑安装嘉定区拉丝玻璃钢雕塑在线咨询成都玻璃钢雕塑定做公司三明玻璃钢卡通雕塑厂家香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

      玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化