跳到教程内容
教程首页
App Inventor 2 教程 躲猫猫
准备开始
动手创造 · PROJECT LAB

躲猫猫

准备探索你的新作品
0%
★★☆ 项目难度每一步,都离作品更近

先了解你将做出什么

项目挑战

机器学习需要大量示例和清晰的类别。本教程训练两个类别:“Me”(露脸)和“NotMe”(遮脸),让屏幕上的宝宝根据分类结果笑或哭。类别名是模型内部标识,界面上的提示可以改成中文。

设置电脑和手机

PersonalImageClassifier 不能在模拟器中运行。先用 AI2 Companion 打开测试工程,看到“模型已就绪”后再开始制作。

躲猫猫教程

1. 了解游戏

用自己的脸和双手玩躲猫猫:露出脸时宝宝微笑,遮住脸时宝宝哭泣。

露脸和遮脸

2. 训练 Personal Image Classifier 模型

在 App Inventor 的个人图像分类器页面训练两个视觉上容易区分的类别 MeNotMe,每类收集多个角度的示例,最后导出 model.mdl

训练模型

3. 设计和检查用户界面

打开起始工程,查看 StatusLabelStartButtonToggleCameraButton、两个百分比标签、两个条形图和两张宝宝图片。可以调整颜色和布局,但不要重命名组件。

界面组件

4. 上传训练好的模型

选中非可视组件 PersonalImageClassifier1,在 Model 属性中上传刚才导出的 model.mdl

上传模型

5. 理解事件顺序

先等待 ClassifierReady,再允许开始分类;用户点击“开始”后,扩展持续产生 GotClassification 结果;结果处理完后,程序更新百分比、条形图和宝宝图片。

事件顺序

6. 查看起始积木

保留已有的 PersonalImageClassifier1.ErrorClassifierReadyToggleCameraButton.被点击时StartButton.被点击时 事件。它们分别负责显示错误、启用按钮、切换摄像头和开始/停止分类。

错误事件

模型就绪事件

切换摄像头

开始按钮

7. 认识 GotClassification 结果

GotClassification 的 result 是一个字典,保存类别名和置信度。字典里的 key 可以是 MeNotMe,value 是 0 到 1 之间的置信度。

空的分类事件

8. 认识字典结构

字典保存 key/value 对,类似电话簿中“姓名”和“电话”的对应关系。分类结果例如 Me: 0.925NotMe: 0.075

电话簿字典

9. 查看两个分类及置信度

模型通常按置信度从高到低返回两个类别。0.925 表示模型有 92.5% 的把握判断为 Me,但仍然只是模型的估计。

Me 和 NotMe 结果

开心宝宝

10. 按 key 读取 value

用「获取字典中键对应的值」块从 result 中取得指定类别的置信度。读取 Me 就得到 MeConfidence;如果键不存在,应使用 0 作为默认值。

按 key 取值

11. 初始化局部变量

GotClassification 中创建 MeConfidenceNotMeConfidence 两个局部变量,分别保存两个类别的置信度。

局部变量

12. 读取两个置信度

把 result 接到「获取字典中键对应的值」,键使用文字 MeNotMe。找不到键时接“数学”抽屉里的 0,保证模型尚未返回结果时程序也不会出错。

初始化提示

初始化参考答案

13. 回顾结果处理顺序

在分类事件中,先设置两个百分比标签和条形图宽度,再比较两个置信度,最后显示开心或难过宝宝并改变背景色。

显示和隐藏宝宝

14. 设置百分比和条形图

把置信度乘以 100 并连接 % 文字,写入 Percentage1.文本Percentage2.文本。同时把 BarGraph1.宽度百分比 设置为 MeConfidence,把 BarGraph2.宽度百分比 设置为 NotMeConfidence。

百分比提示

条形图提示

15. 创建条件判断

if then else 比较 MeConfidenceNotMeConfidence。如果 Me 更高,进入 then;否则进入 else。

条件判断提示

条件判断答案

16. 显示对应宝宝

then 分支把 Screen1 背景设为浅绿色、显示开心宝宝、隐藏难过宝宝;否则分支使用浅粉色、显示难过宝宝、隐藏开心宝宝。

then 分支

完整条件程序

17. 完成并测试应用

对照完整积木检查变量、百分比、条形图和图片的连接。用 AI2 Companion 玩躲猫猫:露出脸、遮住脸、挥手,观察置信度和宝宝表情是否符合预期。

完整分类程序

AI Companion 测试

扩展你的应用

可以训练第三个类别(例如做鬼脸)、制作三条置信度柱,或用 Personal Image Classifier 做课堂签到。新增类别时要重新上传模型并同步扩展条件逻辑。

第三种表情