在 Scratch 中使用图像训练器训练你自己的 AI

在 Scratch 中使用手势或物体训练你自己的图像识别模型,然后使用训练好的指令控制 Pishi 并抓住老鼠。

难度
中级

🕒

预计时间
40–50 分钟

🧩

扩展
IMAGE TRAINER

Pishi catching the Mouse in a Scratch game controlled by trained Image Trainer commands

📖 你将学到什么

  • 如何创建和命名图像训练器标签
  • 如何用自己的样本训练一个 AI 模型
  • 如何用手势或物体作为视觉指令
  • 不同的训练样本如何影响识别效果
  • 如何使用检测到的标签来控制 Scratch 角色
  • 当某个指令需要改进时,如何添加额外训练
  • 如何重置、保存和加载训练好的模型
在这个项目中,Pishi 将学习五个标签:
  • 左(Left)
  • 右(Right)
  • 上(Up)
  • 下(Down)
  • 无指令(No command)
四个移动标签用于控制 Pishi,而"无指令"代表没有显示任何移动指令时的摄像头画面。

🧰 你需要准备

  • 一台带摄像头的电脑或笔记本电脑
  • Pishi.ai Scratch(开始一个新项目)
  • 图像训练器扩展(查看帮助指南)
  • Pishi 角色
  • 老鼠角色
  • 每个指令对应的一个手势或物体

 

你还会用到这些变量:

  • score(分数)
  • time(时间)
  • train done(训练完成)
  • counter(计数器)
  • number of trains(训练次数)

 

为了获得更好的训练效果,请使用良好的光线和简单的背景。

🛠️ 构建你的项目

1

1. 设置五个 AI 标签

当绿旗被点击时,首先检查 Pishi 是否已经训练过。
If train done = 0, introduce the training:

"嗨!在我们开始玩之前,你需要先教我你的指令。"

"我将学习五个指令:左、右、上、下,以及无指令。"


然后为五个图像训练器标签命名:

  • 标签 1:左(Left)
  • 标签 2:右(Right)
  • 标签 3:上(Up)
  • 标签 4:下(Down)
  • 标签 5:无指令(No command)

在训练过程中,项目还会展示一些有用的小提示:

  • 保持指令清晰可见
  • 使用良好的光线和简单的背景
  • 使用手势或物体二选一
  • 让摄像头画面中不要出现多余的物体或身体部位
  • 在摄像头画面中移动指令的位置
  • 在不同距离展示指令

这些变化能帮助 AI 在不同位置或大小下学习该指令。

Scratch blocks for naming five Image Trainer labels: Left, Right, Up, Down, and No command
2

2. 训练全部五个指令

将 counter 设为 0,然后重复五次:

  • counter 增加 1
  • 运行"训练标签(counter)"

这样会依次训练全部五个标签。
自定义的"训练标签(数字)"积木首先会检查该标签是否已经包含训练数据。
If it does, Pishi warns:
"这个标签已经有训练数据了。如果要重新开始,请按 R 键并确认,以重置所有已训练的标签。"
否则,Pishi 会宣布当前的指令:
教我:(标签名称)

经过短暂的倒计时后,项目会采集 20 个训练样本。
在 Pishi 采集样本时,请使用前面提到的训练技巧。

对于"无指令",只需移开移动手势或物体,展示正常的摄像头画面即可。
每个标签完成后,Pishi 会说:
我学会了:(标签编号名称)

当全部五个标签都完成后:
"太好了!训练完成。"
然后设置:
train done 设为 1

Scratch custom block for training each Image Trainer label with multiple examples
3

3. 开始游戏

训练完成后,设置:
time 设为 0

并广播:
Start Game(开始游戏)

如果 Pishi 已经训练过,项目会跳过主训练环节并说:
"我已经知道你的指令了。让我们去抓老鼠吧!"

它还会提醒玩家:
"如果要重新训练我,请按 R 键并确认,以重置所有已训练的标签。"

"如果要重新训练我,请按 R 键并确认,以重置所有已训练的标签。"

Scratch blocks that start the game after Image Trainer training is complete
4

4. 用你训练好的 AI 控制 Pishi

在游戏过程中,图像训练器会持续检查摄像头,并报告当前: 检测到的标签名称

用它来控制 Pishi:

  • 左:x 坐标改变 -10
  • 右:x 坐标改变 10
  • 上:y 坐标改变 10
  • 下:y 坐标改变 -10
  • 无指令:不移动

玩家不再通过按键盘来控制,而是使用自己训练出的视觉指令来移动 Pishi。

Scratch blocks that move Pishi based on detected Image Trainer labels
4

5. 抓住老鼠

当老鼠收到 Start Game(开始游戏)广播时:

    • 将 score 设置为 0
    • 移动到一个随机位置
    • 重置计时器

游戏持续进行 20 秒。

 

每当 Pishi 碰到老鼠时:

  • score 增加 1
  • 播放一个音效
  • 将老鼠移动到另一个随机位置
  • 老鼠会一直朝向 Pishi,同时计时器的数值会被复制到 time 变量中。


当计时器达到 20 秒时:

  • 将 time 设为 FINISH(结束)
  • 播放结束音效


Pishi 会停止移动,返回起始位置,并说:
"时间到!"

Scratch blocks for scoring points when Pishi catches the Mouse during the timed game
4

6. 改进、重置、保存或加载模型

第一轮训练会给每个标签20个样本,但有些指令可能仍需要更多样本。
为此,创建自定义积木:训练单个样本(数字)
将其连接到以下按键:
左箭头对应标签1,右箭头对应标签2,上箭头对应标签3,下箭头对应标签4,数字键0对应标签5。

如果某个指令识别不够可靠,可以清晰地展示该指令,并多按几次对应的按键来添加更多训练样本。

Scratch blocks for adding extra training samples to individual Image Trainer labels

你还可以管理整个已训练的模型:

  • R:重置所有标签,下次运行时重新训练
  • S:保存学习数据
  • L:加载之前保存的学习数据

这样你就可以只在需要的时候改进模型,而不用每次都重复完整的训练流程。

Scratch blocks for resetting, saving, and loading Image Trainer learning data

🚀 试试你的项目!

点击绿旗,并允许访问摄像头。

选择你想用什么方式来表示每个指令.

例如:

  • 不同的手势
  • 彩色卡片
  • 小物件
  • 打印出来的符号

训练"左"、"右"、"上"、"下"和"无指令"。
训练完成后,用你的指令在舞台上移动 Pishi,在 20 秒计时结束前尽可能多地抓住老鼠。


如果某个指令不容易被识别,可以添加几个额外样本后再试一次。

Pishi catching the Mouse in a Scratch game controlled by trained Image Trainer commands

🤖 它是如何工作的?

通常情况下,一个 Scratch 程序可能会这样写:
如果按下左箭头键:向左移动
但在这个项目中,你并不是直接告诉 Scratch"左"指令长什么样。
相反,你是向 AI 展示了若干个样本。
整个过程是:

展示样本

训练标签

展示新的摄像头画面

图像训练器预测最接近的标签

Scratch 读取检测到的标签

Pishi 移动

这意味着,这个项目的行为不仅取决于 Scratch 代码,还取决于你所提供的训练数据。
这正是机器学习背后的核心理念之一。

💡 让它变得更好!

  1. 创建你自己的视觉控制器
    通过用自己的手势、物体或额外的标签替换原有指令,来定制这个 AI 控制器。

    例如,你可以用彩色卡片来表示移动指令,或者添加新的动作,比如跳跃、停止、旋转、瞬移或加速。

    然后将每个训练好的标签连接到你希望 Pishi 执行的动作上。

  2. 用训练数据做实验
    你提供的样本会影响 AI 识别指令的效果。
    试着用两种不同的方式来训练同一个指令:
    首先,让你的手或物体始终保持在相同的位置和距离,使用非常相似的样本进行训练。
    然后,重置模型,并使用更多样化的样本重新训练:
    • 将它移动到摄像头画面的不同位置
    • 让它离摄像头更近或更远
    • 稍微改变一下角度

    分别测试这两个模型,比较它们识别指令的可靠程度。
    这有助于你理解一个重要的机器学习概念:
    更高质量、更多样化的训练示例可以帮助人工智能模型识别新的情况。

  3. 增加障碍
    添加另一个需要躲避的角色。例如:
    例如:
    • 老鼠:+1
    • 猫:-1

    现在玩家必须更小心地使用这个 AI 控制器。

  4. 制作另一个由 AI 控制的游戏
    同样的思路可以用来制作:
    • 一个赛车游戏
    • 一个迷宫游戏
    • 一个飞船控制器
    • 一个挡板游戏
    • 一个机器人挑战

    一旦你理解了如何训练标签以及如何使用检测到的标签名称,你就可以把图像训练器当作许多不同 Scratch 项目的自定义视觉控制器来使用。

🔗 分享你的创作

完成你的项目了吗?
保存你的学习数据,重新创作这个Scratch项目,或者用完全不同的视觉指令制作你自己的游戏。
试着把这个项目分享给朋友,看看他们能不能训练出自己的AI控制器。

OPEN PROJECT & REMIX
滚动至顶部