MediaPipe 学习以及使用
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 坐标变换接起来了。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)