news 2026/6/22 8:13:54

【Python-MediaPipe 0.10.31】新版使用技巧-人脸坐标

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Python-MediaPipe 0.10.31】新版使用技巧-人脸坐标

MediaPipe-python库封装使用函数

MediaPipe更新后,旧版本的语句无法使用,于是笔者网罗资源(实际上是榨干AI),拼凑了人脸坐标的使用方法。

旧版本代码代码如下:
引用其他博主代码(已在代码块中注明

importcv2importmediapipeasmp mp_face_mesh=mp.solutions.face_mesh mp_draw=mp.solutions.drawing_utils face_mesh=mp_face_mesh.FaceMesh()cap=cv2.VideoCapture(0)whilecap.isOpened():success,frame=cap.read()ifnotsuccess:continueframe_rgb=cv2.cvtColor(frame,cv2.COLOR_BGR2RGB)results=face_mesh.process(frame_rgb)ifresults.multi_face_landmarks:forface_landmarksinresults.multi_face_landmarks:mp_draw.draw_landmarks(frame,face_landmarks)cv2.imshow('MediaPipe Face Mesh',frame)ifcv2.waitKey(1)&0xFF==ord('q'):breakcap.release()cv2.destroyAllWindows()———————————————— 版权声明:本文为CSDN博主「萧鼎」的原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/liaoqingjian/article/details/145708736

新版本(0.10.31)代码如下:

需要配合一个face_landmarker.task文件使用,可以在文章顶部的face.zip里解压

importnumpyasnpimportcv2importmediapipeasmp MEDIAPIPE_MODEL_PATH="./models/face_landmarker.task"# 坐标模型加载自动化defload_mediapipe_model():try:mp_vision=mp.tasks.vision base_options=mp.tasks.BaseOptions(model_asset_path=MEDIAPIPE_MODEL_PATH)options=mp_vision.FaceLandmarkerOptions(base_options=base_options,running_mode=mp_vision.RunningMode.IMAGE,num_faces=1,output_face_blendshapes=False)returnmp_vision.FaceLandmarker.create_from_options(options)exceptExceptionase:raiseRuntimeError(f"加载MediaPipe模型失败:{e}")# 获取人脸坐标点468个点defget_mediapipe_468_points(img,mp_detector):img_rgb=cv2.cvtColor(img,cv2.COLOR_BGR2RGB)mp_img=mp.Image(image_format=mp.ImageFormat.SRGB,data=img_rgb)results=mp_detector.detect(mp_img)ifnotresults.face_landmarks:returnNoneimg_h,img_w=img.shape[:2]returnnp.array([[int(lm.x*img_w),int(lm.y*img_h)]forlminresults.face_landmarks[0]])# 绘图defdraw_landmarks(img,points):""" 绘制所有关键点+数字编号(避免重叠) :param img: 原始OpenCV图像 :param points: (len(points),2)的关键点坐标数组 :return: 绘制后的图像 """img_copy=img.copy()# 遍历所有81个点foridxinrange(len(points)):p=points[idx].astype(int)# 绘制关键点圆圈(绿色,半径2)cv2.circle(img_copy,(p[0],p[1]),2,(0,255,0),-1)# 调整数字标注位置,避免重叠(根据点的位置微调偏移)offset_x=3ifidx%2==0else-15# 奇偶点左右偏移offset_y=5ifidx<40else-8# 上下部分上下偏移# 绘制数字编号(白色字体,黑色描边增加可读性)# 黑色描边# cv2.putText(img_copy, str(idx), (p[0]+offset_x, p[1]+offset_y),# cv2.FONT_HERSHEY_SIMPLEX, 0.35, (0, 0, 0), 2)# # 白色字体# cv2.putText(img_copy, str(idx), (p[0]+offset_x, p[1]+offset_y),# cv2.FONT_HERSHEY_SIMPLEX, 0.35, (255, 255, 255), 1)returnimg_copy# main模式if__name__=='__main__':# 读取图像img_path='your_img.jpg'img=cv2.imread(img_path)ifimgisNone:raiseValueError(f"图片读取失败:{img_path}")# 加载模型mp_detector=load_mediapipe_model()# 获取人脸坐标mp_468=get_mediapipe_468_points(img,mp_detector)# 绘制人脸坐标fromvisiual_utilsimportdraw_landmarksifmp_468isnotNone:img_point=draw_landmarks(img,mp_468)cv2.imwrite('output.jpg',img_point)# 释放资源mp_detector.close()

原图:

得到结果图如下:

最后附上一张坐标点分布图

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/17 6:51:21

【VTK手册041】切片抽取工具:vtkCutter原理解析

【VTK手册041】切片抽取工具&#xff1a;vtkCutter原理解析 在医学图像处理与三维可视化领域&#xff0c;切片抽取&#xff08;Slicing&#xff09;是分析解剖结构最常用的手段之一。VTK 提供的 vtkCutter 是实现这一核心功能的基石类。本文将深入解析 vtkCutter 的基本原理、核…

作者头像 李华
网站建设 2026/6/20 14:58:55

飞书多维表格工作流指南(AI日报小助手)

之前发过几篇能写入飞书的扣子Coze工作流&#xff0c;有不少同学会卡在输出到飞书这一步&#xff0c;出现问题时不知道该如何解决。今天我们直接跳过扣子&#xff0c;用飞书多维表格搭建一个工作流——AI日报小助手&#xff0c;非常简单的入门案例。用飞书搭建工作流&#xff0…

作者头像 李华
网站建设 2026/6/13 17:09:49

深圳金鑫磁材|深圳纳米晶磁芯:氢能退火、再生金属,碳中和实践

在新能源汽车、5G通信、光伏逆变器等新兴产业高速发展的浪潮中&#xff0c;电磁元件的效率、体积与可靠性成为制约技术突破的关键瓶颈。作为全球纳米晶磁芯研发与制造的核心区域&#xff0c;深圳凭借其技术积累与产业集群优势&#xff0c;正推动这一“软磁全能选手”从实验室走…

作者头像 李华
网站建设 2026/6/13 5:29:53

Spring Boot Maven插件核心配置详解:从打包到部署全流程

在Spring Boot项目开发中&#xff0c;spring-boot-maven-plugin 是当之无愧的核心插件——它解决了传统Java Web项目打包复杂、部署繁琐的痛点&#xff0c;让项目实现“一键打包、独立运行”成为可能。本文将从插件核心配置解析、完整pom.xml示例、核心功能使用&#xff0c;到常…

作者头像 李华
网站建设 2026/6/19 3:34:47

git拉取提示本地分支和远程分支存在差异快速解决

git警告如下图这种情况通常发生在&#xff1a; 你本地有未推送的提交 同时远程也有你本地没有的新提交 两个分支的历史产生了分歧 解决&#xff1a; 方案一&#xff1a;使用合并&#xff08;merge&#xff09;- 最安全 bash 1. 设置为默认使用合并策略 git config pull.rebase …

作者头像 李华
网站建设 2026/6/17 3:21:39

顶峰相见,「算网杯」2025 AIGC 开发者大赛1月17日苏州迎来决赛!

1月17日&#xff0c;「算网杯」2025 AIGC 开发者大赛即将在中国科学技术大学苏州高等研究院迎来精彩决赛&#xff01;大赛自启动便备受瞩目&#xff0c;吸引 500 余名企业、高校开发爱好者踊跃参与。经过层层激烈角逐&#xff0c;最终 99 支实力强队脱颖而出&#xff0c;成功晋…

作者头像 李华