躲猫猫
先了解你将做出什么
项目挑战
机器学习需要大量示例和清晰的类别。本教程训练两个类别:“Me”(露脸)和“NotMe”(遮脸),让屏幕上的宝宝根据分类结果笑或哭。类别名是模型内部标识,界面上的提示可以改成中文。
设置电脑和手机
PersonalImageClassifier 不能在模拟器中运行。先用 AI2 Companion 打开测试工程,看到“模型已就绪”后再开始制作。
躲猫猫教程
1. 了解游戏
用自己的脸和双手玩躲猫猫:露出脸时宝宝微笑,遮住脸时宝宝哭泣。

2. 训练 Personal Image Classifier 模型
在 App Inventor 的个人图像分类器页面训练两个视觉上容易区分的类别 Me 和 NotMe,每类收集多个角度的示例,最后导出 model.mdl。

3. 设计和检查用户界面
打开起始工程,查看 StatusLabel、StartButton、ToggleCameraButton、两个百分比标签、两个条形图和两张宝宝图片。可以调整颜色和布局,但不要重命名组件。

4. 上传训练好的模型
选中非可视组件 PersonalImageClassifier1,在 Model 属性中上传刚才导出的 model.mdl。

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

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




7. 认识 GotClassification 结果
GotClassification 的 result 是一个字典,保存类别名和置信度。字典里的 key 可以是 Me 或 NotMe,value 是 0 到 1 之间的置信度。

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

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


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

11. 初始化局部变量
在 GotClassification 中创建 MeConfidence 和 NotMeConfidence 两个局部变量,分别保存两个类别的置信度。

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


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

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


15. 创建条件判断
用 if then else 比较 MeConfidence 和 NotMeConfidence。如果 Me 更高,进入 then;否则进入 else。


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


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


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

卡在哪一步?直接查操作
不用退出当前教程。速查会在新页面打开,查完回来继续刚才的进度。