Session 645 minutes
第6课:全身姿态跟踪(Human Body / Pose Tracking)
Learning objective: 识别 17 个身体关键点:肩膀、手肘、手腕、臀部、膝盖和脚踝。
Theory & practice
🤸 第6课:姿态跟踪——会模仿动作的机器人
🤖 能看懂身体动作的 AI
上一课 AI 识别了人脸。本课我们利用 姿态估计(Pose Estimation) 技术,让电脑识别整个身体的姿势。
系统会找出身体上的关键点,再根据它们的坐标判断你是站着、侧身还是举起手臂。
任务: 让角色或机器人做出与用户姿势相对应的动作。
🎯 学习目标
完成本课后,你将能够:
- 理解什么是身体关键点。
- 在 PictoBlox 中开启姿态识别。
- 读取肩膀、手肘和手腕的坐标。
- 识别举手动作。
- 用身体动作控制角色。
1. 什么是姿态估计?
姿态估计是让 AI 在图像或视频中找到身体各部位位置的技术。
PoseNet 系统把身体分成 17 个关键点(Keypoints):
| 分组 | 关键点 |
|---|---|
| 面部 | 鼻子、左眼、右眼、左耳、右耳 |
| 手臂 | 肩膀、手肘和手腕 |
| 腿部 | 臀部、膝盖和脚踝 |
每个关键点通常包含:
x坐标:水平位置。y坐标:垂直位置。- 置信度:AI 对识别结果的把握程度。
2. 准备摄像头
为了准确识别姿势:
- 1把摄像头放在稳定的位置。
- 2站得足够远,让摄像头能拍到上半身或全身。
- 3选择光线明亮的地方。
- 4避免多人同时出现在画面中。
- 5运动前清理周围的空间。
⚠️ 练习时不要动作太快,也不要站在障碍物旁边。
3. 添加姿态检测扩展
在 PictoBlox 中:
- 1点击 扩展 Extension。
- 2找到并选择 Pose Detection 或 Human Body Detection。
- 3允许 PictoBlox 使用摄像头。
- 4检查姿态识别积木是否已出现。
不同版本的 PictoBlox 中,积木名称可能略有不同。
4. 开启并分析画面
编写基础程序:
text
当绿旗被点击
开启视频,透明度 20%
重复执行
分析摄像头中的姿态分析积木必须放在 重复执行 循环中,AI 才能在你移动时持续更新身体位置。
5. 读取关键点坐标
要识别手臂动作,我们需要这些点:
text
左肩
右肩
左手腕
右手腕创建变量:
text
左肩_Y
右肩_Y
左手腕_Y
右手腕_Y更新数值:
text
重复执行
分析摄像头中的姿态
将 [左肩_Y] 设为
[左肩的 y 坐标]
将 [左手腕_Y] 设为
[左手腕的 y 坐标]举起左臂时,手腕会比肩膀更高。
text
如果 <左手腕_Y 大于 左肩_Y> 那么
说 "你举起了左手!"🔍 写条件前先检查 Y 轴方向: 让角色
说 [左手腕_Y],然后依次放下和举起手臂。如果举手时数值变大,就按本课使用 大于;如果数值变小,就把所有比较改成 小于。6. 识别每个动作
Mục Trọng Tâm
举起左手
text
如果 <左手腕_Y 大于 左肩_Y> 那么
说 "左手举起来了!"Mục Trọng Tâm
举起右手
text
如果 <右手腕_Y 大于 右肩_Y> 那么
说 "右手举起来了!"Mục Trọng Tâm
双手举起
text
如果
<左手腕_Y 大于 左肩_Y>
与
<右手腕_Y 大于 右肩_Y>
那么
说 "双手都举起来了!"7. 小项目:模仿机器人
Mục Trọng Tâm
任务
让角色根据用户的姿势切换造型。
text
当绿旗被点击
开启视频,透明度 20%
重复执行
分析摄像头中的姿态
将 [左肩_Y] 设为 [左肩的 y 坐标]
将 [右肩_Y] 设为 [右肩的 y 坐标]
将 [左手腕_Y] 设为 [左手腕的 y 坐标]
将 [右手腕_Y] 设为 [右手腕的 y 坐标]
如果
<左手腕_Y 大于 左肩_Y>
与
<右手腕_Y 大于 右肩_Y>
那么
换成 [双手举起] 造型
说 "太棒了!" 1 秒
否则
如果 <左手腕_Y 大于 左肩_Y> 那么
换成 [举左手] 造型
否则
如果 <右手腕_Y 大于 右肩_Y> 那么
换成 [举右手] 造型
否则
换成 [站立] 造型角色会根据你的姿势改变样子。
8. 用姿势控制机器人
可以约定:
| 姿势 | 机器人指令 |
|---|---|
| 举左手 | 左转 |
| 举右手 | 右转 |
| 双手举起 | 前进 |
| 双手放下 | 停止 |
例如:
text
如果 <双手举起> 那么
机器人前进
否则
如果 <举左手> 那么
机器人左转
否则
如果 <举右手> 那么
机器人右转
否则
机器人停止⚠️ 连接真实机器人前,务必先用舞台上的角色测试程序。
9. 如果 AI 识别不准确
请检查:
- 双肩和手臂是否都在画面中。
- 房间是否足够明亮。
- 衣服和背景是否容易区分。
- 画面中是否有多人。
- 摄像头是否在晃动。
- 姿态分析积木是否在循环中。
如果角色频繁切换状态,请在每个动作上保持约 1 秒再让它执行。
🧩 挑战
选择一个想法升级项目:
- 1做一个健身游戏,每次举手得分。
- 2通过侧身控制宇宙飞船。
- 3玩家举起双手时播放声音。
- 4手腕高于头部时让角色跳起来。
- 5添加变量
练习次数统计正确动作的次数。
✅ 记住
- 姿态估计帮助 AI 识别身体姿势。
- PoseNet 使用 17 个关键点。
- 每个关键点都有
x、y坐标和置信度。 - 比较手腕和肩膀的位置可以识别举手动作。
- 条件把姿势转换成角色或机器人的动作。
- 摄像头需要充足的光线并清楚地看到身体。
Mục Trọng Tâm
快问快答
- 1什么是关键点?
- 2PoseNet 能识别多少个关键点?
- 3识别举手动作需要比较哪些点?
- 4为什么要先在舞台上测试,再控制真实机器人?