用物体检测在 Scratch 中制作 AI 寻物游戏

让 AI 发现你身边的物品,然后和时间赛跑,把它们再次找出来!


在这个项目中,「物体检测」扩展会先通过摄像头收集它能识别的物品名称。接着,Pishi 会从中随机选出四件物品,挑战你在倒计时结束前逐一展示给摄像头。

⭐

难度
中级

🕒

预计时间
25–35 分钟

🧩

扩展
物体检测

`Scratch AI Object Hunt project showing Pishi in a room filled with everyday objects for an Object Detection challenge.`
OPEN PROJECT & REMIX

📖 你将学到什么

  • 如何用物体检测识别现实中的物品
  • 如何读取 AI 当前检测到的物品列表
  • 如何根据检测结果建立自己的列表
  • 如何统计列表中不同物品的数量
  • 如何从列表中随机选择一件物品
  • 如何检查某件物品当前是否出现在画面中
  • 如何制作有倒计时的 AI 挑战
  • 光线、角度、距离和周围物品如何影响检测结果

你不需要事先训练 AI。物体检测使用已经训练好的模型,能够识别许多常见的物品类别。

🧰 你需要准备

你还会用到这些变量:

  • score(分数)
  • time(时间)
  • all objects found(已找到足够的物品)
  • object to show(要展示的物品)

项目还会使用扩展中的 my detection list(我的检测列表),保存游戏第一阶段发现的不同物品名称。

🛠️ 构建你的项目

1

1. 准备物体检测器

当绿色旗帜被点击时:

  • 将 all objects found 设为 0
  • 将 score 设置为 0
  • 将 time 设置为 0
  • 关闭分类
  • 清空 my detection list

然后播放开始音效,并说:
看看 AI 能认出你身边的哪些东西!请一次展示一件物品,至少展示 6 件不同的东西。

 

打开检测框,再开启分类。

Scratch code that resets the game, clears the detection list, and starts Object Detection classification.

💡 提示:: 在项目开始时,先关闭分类,再重新开启,可以重置检测事件。这样,即使某些物品在程序运行前就已经出现在画面里,「检测到任意物品时」等事件也能正常触发。

检测框可以让玩家看到 AI 在摄像头画面中识别到了哪些物品。

2

2. 收集识别到的物品

重复执行,直到找到足够多的不同物品。

在循环中:
“将 [当前检测结果列表] 添加到 我的检测列表”

💡 注意: my detection list 通常用于筛选扩展要寻找的物品类别。这个项目以另一种方式使用它:保存 AI 已经发现的物品。该列表只保留不同的物品名称,不会重复添加相同的名称。


你也可以显示当前列表:

“检测到:[my detection list]”

Scratch loop that adds current Object Detection results to the detection list until at least six objects are found.

当 my detection list 中的项目数大于 5 时:

  • 将 all objects found 设为 1
  • 关闭检测框
  • 从 my detection list 中移除 person

移除 person(人),可以避免玩家仅仅因为自己已经站在摄像头前,就自动得到一分。

然后说:

太棒了!我找到了这些物品:[my detection list]

最后播放成功音效。

3

3. 为寻物挑战做准备

给玩家一点准备时间。

先说:

现在来看看你能多快找到它们!

然后说:

如果可以,请把这些物品移出摄像头画面。

 

这样,下一轮要求寻找的物品就不会一开始已经出现在画面中,挑战也会更有趣。

此时,游戏已经得到一份物品列表:这些物品就在玩家附近,而且 AI 已经成功识别过它们。

Scratch blocks that show the detected object list and ask the player to move the objects out of the camera view.
4

4. 随机选择一件物品

将挑战重复 4 次。

每轮开始时:

  • 将 time 设置为 0
  • 说 「准备好了吗?」
  • 倒数: 3…, 2…, 1…

Then choose a random item from my detection list and store it in: “object to show”. For example:

“my detection list 中第 [在 1 到 my detection list 的项目数之间随机取数] 项”

选中后,立即从 my detection list 中移除这件物品。

这样,后续回合就不会再次选中它。

然后说:

请给我看:[object to show]

Scratch code that randomly selects an object from the detection list and asks the player to show it to the camera.
点击图片以放大
4

5. 和倒计时赛跑

显示变量 time,并重置 Scratch 计时器。

Scratch code that gives the player five seconds to show the requested object and updates the score when it is detected.

重复执行,直到:

time = FINISH

在循环中,不断将:

将 time 设为计时器的值

如果计时器的值大于 5:

  • 隐藏变量 time
  • 将 time 设为 FINISH(结束)
  • 播放失败音效
  • 先说: 时间到!我们试试下一件。

否则,继续检查:

“在 [current] 检测结果中,是否检测到第 [1] 个 [object to show]?”

如果检测到了指定物品:

  • 将 score 增加 1
  • 隐藏变量 time
  • 将 time 设为 FINISH(结束)
  • 播放成功音效
  • 先说: 找到了!

找到物品或五秒钟结束时,这一轮就会结束。

4

6. 结束游戏

四轮全部完成后,显示最终结果。

先说:

你的最终得分是:[score]

 

然后播放结束音效。

Scratch blocks that display the player’s final score and play the ending sound.

你也可以说得更清楚一些:

做得好!你的最终得分是 4 分中的 [score] 分。

 

现在,玩家可以重新开始项目,每次都可能得到不同的物品和挑战。

🚀 试试你的项目!

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

 

首先,帮助 AI 发现你身边至少六种不同的东西。

 

你可以试着展示:

  • 瓶子
  • 杯子
  • 书
  • 背包
  • 椅子
  • 手机
  • 笔记本电脑
  • 玩具

你不需要准备任何指定的物品。试着展示身边的东西,观察检测列表如何增长。

 

找到足够多的物品后,如果可以,请把它们移出画面。

接下来准备接受挑战!

 

Pishi 会逐一选出四件刚才检测到的物品。

 

每一轮,你都有五秒钟找到指定物品,并把它展示给摄像头。

 

你能找到几件?

`Scratch AI Object Hunt project showing Pishi in a room filled with everyday objects for an Object Detection challenge.`

🤖 它是如何工作的?

这个项目主要分为两个阶段。

首先,AI 探索玩家身边有哪些物品:

摄像头看到你身边的物品

↓

物体检测识别画面中的物品

↓

Scratch 读取当前检测到的物品名称

↓

将名称加入 my detection list

↓

游戏等待,直到找到足够多的不同物品

 

然后,游戏开始:

从 my detection list 中随机选择一件物品

↓

请玩家展示这件物品

↓

开始五秒倒计时

↓

物体检测检查当前摄像头画面

↓

如果检测到指定物品,增加一分

↓

换一件物品,开始下一轮

 

这个项目根据 AI 已经在玩家身边识别到的物品生成挑战,因此游戏更灵活,也更容易找到指定的物品。

💡 让它变得更好!

  1. 查看 AI 的置信度
    用置信度显示 AI 对每次检测有多确定。
    例如:
    「我有 91% 的把握认出了这个瓶子!」
    在不同条件下展示同一件物品,看看置信度会怎样变化。

  2. 只接受置信度足够高的检测结果
    只有当置信度高于某个阈值(例如 0.7)时,才算成功找到物品。
    如果置信度太低,Pishi 可以请玩家把物品展示得更清楚。

  3. 从不同角度挑战 AI
    从不同的角度和距离展示同一件物品,并尝试改变背景和光线。
    看看哪些变化会让 AI 更容易或更难识别它。

  4. 加入位置挑战
    找到正确的物品后,请玩家把它移到指定位置,例如:
    「移到左边!」或「放到中间!」
    用物品的 x 和 y 位置检查它在哪里。

  5. 测试 AI 的识别稳定性
    多次展示同一件物品,统计 AI 正确识别了多少次。
    比较不同物品,找出模型最容易稳定识别的物品。

  6. 用物品大小设计新挑战
    利用检测到的宽度或高度,请玩家把物品移近摄像头,或拿得更远一些。
    这表明物体检测除了识别物品是什么,还能提供物品在画面中的大小信息。

🔗 分享你的创作

完成你的项目了吗?

把它变成你自己的作品吧!改变规则、画面、音效、难度或 AI 的行为。加入新挑战、设计不同主题,或结合其他项目的创意。

然后把你的版本分享给朋友,看看他们会做出什么!

OPEN PROJECT & REMIX
滚动至顶部