ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

MediaPipe Hands:从摄像头到手势识别,三步跑通实时手部追踪

2026/9/2 15:13:59 拓冰建站 浏览量
MediaPipe Hands:从摄像头到手势识别,三步跑通实时手部追踪 MediaPipe Hands从摄像头到手势识别三步跑通实时手部追踪【免费下载链接】mediapipeCross-platform, customizable ML solutions for live and streaming media.项目地址: https://gitcode.com/GitHub_Trending/med/mediapipe不用数据手套也不用深度相机一个普通摄像头就够了。MediaPipe Hands 是谷歌的实时手部追踪方案一帧画面里锁定双手每只手输出 21 个 3D 关键点整套流水线能在端侧跑起来手机端也不例外。它为什么不会丢手关键在这套东西不直接在整张图里找手而是两段式流水线第一级是掌部检测器在整图上输出掌心的带方向包围框第二级是关键点模型只吃裁剪出来的那块图直接回归 21 个关节坐标。为什么检测掌心而不是手因为掌心是刚体包围框比张着五指的手稳定得多连握手这种自遮挡情况非极大值抑制也能把两只手分开。还有个细节值得说视频模式下并不是每帧都跑全图检测。上一帧的关键点会直接复用去生成裁剪框只有当关键点模型跟丢了才回调全图检测重新定位。这是它快速移动、手指互相遮挡时依然稳的主要原因。官方论文里掌部检测器 AP 做到 95.7%去掉 decoder 只有 86.2%。3 步跑通第一个手部追踪装包就一行pip install mediapipe最小可跑的代码就几行import mediapipe as mp with mp.solutions.hands.Hands() as hands: results hands.process(image)results.multi_hand_landmarks是每只手 21 个归一化的 (x, y, z) 点multi_handedness还会告诉你左右手和置信度。画骨架用现成的mp.solutions.drawing_utils就行。这里其实有个坑legacy solutions 里的 Hands API 已经被标记为旧版新代码建议走 Tasks 版HandLandmarker源码在 mediapipe/tasks/cc/vision/hand_landmarker/。max_num_hands、置信度阈值这些配置项两边基本一致迁移成本不高。21 个点够不够用输出比你想的多。除了归一化屏幕坐标还有world coordinates以米为单位的真实 3D 坐标原点在手掌几何中心。这意味着你能算两只手的相对姿态甚至估算手指间的真实距离。手势识别就是建立在这之上石头剪刀布看手指弯曲角度出 4 看指尖相对高度。想加自定义手势比如竖大拇指点赞看 mediapipe/model_maker/python/vision/ 里的 gesture_recognizer 示例自己标几张图就能微调。模型本身只有几 MBlite 版掌部检测器就是给移动端设计的直接塞进 App 没问题。想深挖去哪看图定义移动端/桌面、CPU/GPU 版本.pbtxt 可直接粘到 visualizermediapipe/graphs/hand_tracking/子模型mediapipe/modules/palm_detection/、mediapipe/modules/hand_landmark/桌面可运行示例mediapipe/examples/desktop/hand_tracking/C 完整流水线而不是只调 Python API就从 examples/desktop 下的 hand_tracking_cpu 目标入手图里改一下 NUM_HANDS 就能支持 3 只手以上。想动手的话先把上面那段 Python 跑起来再去翻翻 examples/desktop/hand_tracking/ 里的骨架图——几秒钟你屏幕上就会出现一只带骨架的手。【免费下载链接】mediapipeCross-platform, customizable ML solutions for live and streaming media.项目地址: https://gitcode.com/GitHub_Trending/med/mediapipe创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考