
MediaPipe手部追踪迁移指南从Hands到Hand Landmarker【免费下载链接】mediapipeCross-platform, customizable ML solutions for live and streaming media.项目地址: https://gitcode.com/GitHub_Trending/med/mediapipe帮同事接摄像头做手部追踪一跑就报 ModuleNotFoundError——他还在调老的 mp.solutions.hands 接口而 MediaPipe 新版已经用 Hand Landmarker 把它替代了。这次迁移其实没那么大动静。旧接口为啥退休了老 Hands 是个遗留方案模型内置在包里参数就是构造函数那几个字段想换个轻量模型、或者塞个自己训练的手部模型进去基本没门。所以官方从 2023 年 3 月起把整个 Hands 解决方案标记为 Legacy换成了任务化的 Hand Landmarker。变化主要在创建方式上模型文件要显式传入运行模式可选 IMAGE / VIDEO / LIVE_STREAM 三种。老接口只能同步等结果新接口在实时流模式下还支持异步回调这是老接口完全没有的能力。迁移背景的详细官方说明在 docs/solutions/hands.md 里想确认版本线可以看一眼。MediaPipe 手部追踪新旧参数速查 核心类Hands → HandLandmarker导入路径改成 tasks.python.visionmax_num_hands → num_hands检测置信度改名 min_hand_detection_confidencestatic_image_mode → running_mode三选一模型不再内置必须传 .tflite 路径差异没想象中多真正要改的就下面这几行。改这两段就能跑 先说模型文件。子图定义在仓库 mediapipe/modules/hand_landmark/ 目录下但模型文件本身不在仓库里hand_landmark_full.tflite 要从官方模型资源页拿下载链接就在上面提到的 hands.md 里放到脚本旁边就行。注意新接口不读包内内置模型不传路径会直接报错。再说代码。老接口是实例化就能 process新接口是先给选项再创建要动的只有创建这一环。# 改前老 Hands 接口 import cv2, mediapipe as mp hands mp.solutions.hands.Hands(max_num_hands2) res hands.process(frame_rgb) pts res.multi_hand_landmarks# 改后Hand Landmarker 接口 from mediapipe.tasks import python from mediapipe.tasks.python import vision opts vision.HandLandmarkerOptions( base_optionspython.BaseOptions( model_asset_pathhand_landmark_full.tflite), num_hands2) lm vision.HandLandmarker.create_from_options(opts) res lm.detect(mp.Image(image_formatmp.ImageFormat.SRGB, dataframe_rgb)) pts res.hand_landmarks前后输入都是 RGB 图、输出都是关键点列表后面的绘制代码一行不用动。关键点坐标是 0–1 的归一化值画图时记得乘图像宽高。如果是视频帧场景把 detect 换成 detect_for_video 并传入 timestamp_ms要接实时摄像头就把 running_mode 设为 LIVE_STREAM 并给出 result_callback结果通过回调回来不阻塞主循环。每个字段的默认值和含义都写在 mediapipe/tasks/python/vision/hand_landmarker.py 的 docstring 里记不住参数名先翻它。手抖了怎么办 关键点抖动 → min_tracking_confidence 0.5 拉到 0.7手时有时无 → min_hand_presence_confidence 0.5 拉到 0.7第二只手抓不全 → num_hands 给 2检测阈值降到 0.4这三个阈值都挂在 HandLandmarkerOptions 上改完重建实例就生效不用动模型。下一步换自己训练的手部模型搓一个手势控制器。【免费下载链接】mediapipeCross-platform, customizable ML solutions for live and streaming media.项目地址: https://gitcode.com/GitHub_Trending/med/mediapipe创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考