MediaPipe 到底怎么用、在机器人项目里能干什么,可以把它理解成一个“现成的人体视觉关键点提取器”。目前官方主推的是 MediaPipe Tasks API,Python 直接 pip install mediapipe 即可使用,支持 Windows、Linux、macOS,官方文档目前写的是 Python 3.9 及以上。(Google AI for Developers)

我认为最值得关注的是这几个模块:

  • Hand Landmarker:识别手部 21 个关键点,还能判断左手/右手,并输出图像坐标和 3D world landmarks。(Google AI for Developers)

  • Pose Landmarker:提取人体姿态,比如肩、肘、腕、髋、膝等,用来做动作模仿、人体跟随、遥操作。(Google AI for Developers)

  • Face Landmarker:人脸关键点、表情分析,可以做人机交互和机器人表情联动。(Google AI for Developers)

  • Holistic Landmarker:把脸、身体、双手一起检测,一共可以输出 543 个 landmarks。(Google AI for Developers)

1. 最基础安装

Ubuntu / Windows 都可以:

python -m pip install mediapipe
pip install opencv-python

测试:

import mediapipe as mp

print(mp.__version__)

目前 Tasks API 基本结构是:

import mediapipe as mp
from mediapipe.tasks import python
from mediapipe.tasks.python import vision

然后加载对应的 .task 模型。(Google AI for Developers)


2. 例如:识别人手

MediaPipe Hand Landmarker 会给你:

手
 ↓
21个关键点

0  wrist
1  thumb_cmc
2  thumb_mcp
3  thumb_ip
4  thumb_tip

5  index_mcp
6  index_pip
7  index_dip
8  index_tip

...

20 pinky_tip

也就是说,一只手实际上可以被表示成:

[
    (x0, y0, z0),
    (x1, y1, z1),
    ...
    (x20, y20, z20)
]

官方 Hand Landmarker 的普通 landmarks 中,x/y 是相对于图像宽高归一化到 [0,1] 的坐标;同时还会给出 world landmarks,它们是以米表示的三维坐标,不过这个 world coordinate 是围绕手本身建立的几何坐标,并不是你的 RealSense 相机坐标系,更不是机器人 base_link 坐标系。(Google AI for Developers)

这一点对机器人尤其重要。


3. MediaPipe + 机器人最有意思的用法

例如你伸手:

RealSense
   ↓
RGB图像
   ↓
MediaPipe
   ↓
21个手部关键点
   ↓
识别手势 / 手腕位置 / 手指状态
   ↓
ROS2 Topic
   ↓
机器人控制

比如:

✋ 张开
→ robot stop

✊ 握拳
→ robot grasp

☝ 食指
→ robot point

👍
→ 确认任务

甚至可以:

人的右手
   ↓
MediaPipe
   ↓
wrist / elbow / shoulder
   ↓
计算人体手臂姿态
   ↓
映射机器人 shoulder/elbow/wrist
   ↓
MoveIt2
   ↓
机器人模仿人的动作

这其实就是一个简单的视觉遥操作系统


4. 如果你用 RealSense,会更好

MediaPipe 本身可以给你关键点,但如果你已经有 D435i / Gemini 这类 RGB-D 相机,我更建议:

MediaPipe负责:
“这个像素是人的手腕”

例如:
u = 637
v = 351

然后不要直接依赖 MediaPipe 的 z

而是:

RGB
 ↓
MediaPipe
 ↓
(u,v)
 ↓
RealSense Depth
 ↓
depth(u,v)
 ↓
相机内参反投影
 ↓
[Xc,Yc,Zc]
 ↓
手眼标定 T_base_camera
 ↓
[Xb,Yb,Zb]

这样 MediaPipe 就和你之前做的相机 → 机器人 base 坐标变换接起来了。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐