ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

MediaPipe 实时视觉技术指南:如何搭建人脸关键点、手势追踪与姿态估计

MediaPipe 实时视觉技术指南:如何搭建人脸关键点、手势追踪与姿态估计 MediaPipe 实时视觉技术指南如何搭建人脸关键点、手势追踪与姿态估计【免费下载链接】mediapipeCross-platform, customizable ML solutions for live and streaming media.项目地址: https://gitcode.com/GitHub_Trending/med/mediapipe给应用加人脸识别、手势控制或健身姿态分析你往往不想自己训模型、写预处理和做多端移植。MediaPipe 是 Google 开源的跨平台机器学习框架把人脸关键点检测、手部追踪、姿态估计做成几行代码就能调用的 API并在 Android、iOS、Web、桌面和边缘设备上实时运行。能力速览MediaPipe 开箱即用的视觉任务能力一句话说明典型场景Face Mesh 人脸网格单帧输出 468 个 3D 面部关键点AR 滤镜、虚拟试妆、表情分析Hands 手部追踪检测 21 个 3D 手部关键点支持同时追踪两只手手势翻页、空中点击、手语识别Pose 姿态估计输出 33 个 3D 身体关键点加全身分割掩码健身计数、姿势纠正、视频虚拟背景物体检测与背景分割轻量模型输出检测框或人景分离掩码智能货架识别、会议虚拟背景一条路径跑通装好依赖跑起第一个人脸检测第一步拿到环境Python 预编译包是最短路径不需要 Bazel 和 OpenCV 依赖python3 -m venv mp_env source mp_env/bin/activate # 建虚拟环境并激活 pip install mediapipe # 安装预编译包装完即用 # 若要编译 C 源码git clone --depth 1 https://gitcode.com/GitHub_Trending/med/mediapipe # 然后在仓库根目录执行 docker build --tagmediapipe .官方 Dockerfile 已装好全部依赖第二步跑第一个示例用 Face Mesh 处理一张本地图片确认输出的是 468 个关键点import mediapipe as mp # 导入框架 mesh mp.solutions.face_mesh.FaceMesh() # 初始化人脸网格 r mesh.process(cv2.imread(portrait.jpg)) # 对图片跑一次推理 print(len(r.multi_face_landmarks[0].landmark)) # 输出 468即每个脸部的关键点数第三步看懂输出landmark是 468 个归一化坐标点x、y 在 0~1z 表示相对深度。把 x、y 乘回图片宽高就能把网格画回图上。桌面 C 示例的编译与运行方式在仓库的 BUILD 注释里可直接复制bazel build -c opt --define MEDIAPIPE_DISABLE_GPU1 \ //mediapipe/examples/desktop/face_detection:face_detection_cpu # 编译人脸检测示例 ./bazel-bin/mediapipe/examples/desktop/face_detection/face_detection_cpu \ --calculator_graph_config_filemediapipe/graphs/face_detection/face_detection_full_range.pbtxt跑通后你会看到检测框与置信度逐帧打印这是后续所有图graph调试的标准姿势。能力矩阵从 468 点人脸到 33 点姿态Face Mesh468 个 3D 关键点锁住面部适用场景AR 滤镜与虚拟试妆视频会议的表情增强人脸核身的前端采集关键参数refine_landmarks是否追加虹膜细化点做眼动效果时打开模块实现mediapipe/modules/face_landmark/Hands21 个 3D 关键点双手并行适用场景手势控制 PPT 播放空中点击交互手语初筛关键参数max_num_hands1 或 2、min_detection_confidence过滤低质量手模块实现mediapipe/modules/hand_landmark/Pose33 个身体关键点加分割掩码适用场景健身动作计数与关节角度校验站立姿态纠正给虚拟背景提取人形轮廓关键参数model_complexity0/1/2速度精度三档模块实现mediapipe/modules/pose_landmark/物体检测与背景分割把任务下沉到边缘设备轻量模型让检测可以跑在摄像头旁路芯片上分割掩码则直接服务于视频会议的虚拟背景。适用场景安防监控中的人车区分智能货架缺货检测直播绿幕替代方案分割模块mediapipe/modules/selfie_segmentation/选型与调优模型复杂度与运行方式怎么选需要实时交互摄像头 ≥30fps→ 选model_complexity0并把输入降到 320×240先保证帧率再谈精度离线批处理、精度优先 → 选model_complexity2保留原始分辨率逐帧出结果即可桌面 Linux 编译报 EGL/GL 相关错误 → 加--define MEDIAPIPE_DISABLE_GPU1走纯 CPU 路径移动端要省电 → 让推理跑在 GPU delegate低配机再把max_num_hands压到 1找不到性能瓶颈 → 打开 tracing 输出用仓库自带的 visualizer 看每个 calculator 的耗时见 docs/tools/tracing_and_profiling.md一句话原则先跑通 CPU 最低复杂度版本确认端到端链路正确再逐级上调复杂度。上手路线图从预编译包到自定义模型起步装好 Python 包后把docs/solutions/下 face_mesh、hands、pose 三篇的示例各跑一遍确认 468/21/33 三个关键点数对得上再读 docs/getting_started/python.md 理解参数含义。进阶用 Bazel 从源码编译桌面示例改一个.pbtxt图配置比如把输入源从摄像头换成视频文件观察输出变化配合 docs/framework_concepts/framework_concepts.md 理解 packet、graph、calculator 三件套。深入自己写一个 calculator 插进现有图用 Model Makermediapipe/model_maker/python/vision/在自己的数据上微调物体检测或手势分类模型导出.tflite替换回图配置。踩坑与资源索引常见问题的现象、原因与解法现象import mediapipe报 ModuleNotFoundError → 原因当前解释器不在激活的虚拟环境里 → 解法确认which python指向 mp_env重建 venv 重装现象首次bazel build耗时以小时计 → 原因Bazel 要拉取并编译全部依赖 → 解法改用官方 Dockerfile 构建的镜像或日常开发只装 Python 预编译包现象暗光下人脸检测时断时续 → 原因置信度阈值过高 → 解法把min_detection_confidence降到 0.5 观察召回变化现象姿态关键点在帧间跳动 → 原因输入帧间隔过大、时间戳不连续 → 解法喂连续视频帧并保持时间戳单调递增资源索引安装与 Python APIdocs/getting_started/python.md全部解决方案文档docs/solutions/框架概念docs/framework_concepts/framework_concepts.md桌面 / Android / iOS 示例mediapipe/examples/desktop/、mediapipe/examples/android/、mediapipe/examples/ios/模型定制工具mediapipe/model_maker/python/vision/MediaPipe 把实时视觉从研发项目变成一组可组合的 API跑通第一个示例之后剩下的只是选对任务、调好参数。 各 solution 的 C 与 Python 参数命名基本对齐读文档时可按同一套参数表对照排查。【免费下载链接】mediapipeCross-platform, customizable ML solutions for live and streaming media.项目地址: https://gitcode.com/GitHub_Trending/med/mediapipe创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表