旧版网站

AI如何区分狗和猫?

训练一个图像分类器,再把它的预测结果和机器人的动作连接起来。

初中★★★★★CuroAI · 机器学习

学习目标

  • 通过带标签的样本理解监督学习
  • 训练一个有三个类别(狗、猫、背景)的图像分类器
  • 为每种预测结果编写机器人的动作

准备材料

  • 直流电机积木 ×2
  • LED积木
  • 声音积木
  • CuroAI Studio(网页应用)
AI如何区分狗和猫?

认识AI

什么是监督学习?

AI从大量带标签的狗和猫的照片中学习特征(模式),从而把这两个类别区分开。像这样用带正确标签的样本来学习的方法,就叫监督学习。

观看参考视频(韩语) ↗

AI是怎样学会认识狗和猫的?

  1. 1. 收集样本收集大量狗和猫的照片。
  2. 2. 寻找特征比较耳朵形状、脸型等特征。
  3. 3. 学习特征学习有助于区分狗和猫的特征。

AI给新照片分类

  1. 1. 展示新照片给AI看一张它从没见过的照片。
  2. 2. 比较特征把它和学过的特征进行比较。
  3. 3. 预测选出一个类别,显示预测结果。
比较的特征耳朵形状眼睛形状鼻子形状脸型
预测结果
狗92%
猫8%
这是示例分数,不是准确率。照片太少或太模糊,都可能让AI判断出错。

💡 AI把新照片和学过的特征进行比较,从而预测它属于哪个类别。

搭建

来搭一只狗和一只猫吧!

直流电机积木 ×2摇动狗和猫的尾巴
指令作用
转动电机:向左旋转持续向左旋转。
转动电机:向右旋转持续向右旋转。
向左旋转1秒按设定的时间向左旋转。
向右旋转1秒按设定的时间向右旋转。
关闭电机让电机停止。
声音积木发出狗的音效
指令作用
播放音符播放一个音符。
播放音符0.25拍以拍为单位设定音符的时长。
播放音效播放蜂鸣器音效。
播放音效0.25拍以拍为单位设定音效的时长。
LED积木表现猫的心情
指令作用
显示LED点阵自己画出点阵图案。
显示文字:A在LED积木上显示字母。
显示数字:1在LED积木上显示数字。
显示图标:爱心显示内置的图标。
清空LED屏幕熄灭所有LED点。

搭建狗和猫

教AI学习

打开CuroAI

打开CuroAI Studio ↗

添加机器学习扩展

打开“Extensions”(扩展),选择“Cubroid Machine Learning”。

创建三个类别

创建三个类别:狗、猫和背景。

💡 什么是标签?标签就是类别的名字,它告诉AI这个样本是什么。

每个类别15个以上不同的样本

狗
猫
背景

给三个类别命名

给每个标签起好名字,然后把每个“将标签命名为”积木各点一次来保存。

💡 为什么也要训练“背景”?因为AI需要一个类别来表示既没有狗也没有猫的画面。

将标签[1 v]命名为[狗] :: #52b98a

将标签[2 v]命名为[猫] :: #52b98a

将标签[3 v]命名为[背景] :: #52b98a

收集多样的训练样本

用“培训标签”积木为每个类别收集15个以上不同的样本。要变换拍摄角度和背景。

💡 收集某一个类别时,不要让其他动物出现在画面里。

培训标签[1 v] :: #52b98a

培训标签[2 v] :: #52b98a

培训标签[3 v] :: #52b98a

连接积木(组号)

打开积木电源,在“Group Number”里输入与积木贴纸上相同的号码,然后按“OK”确认。

Group Number33

编程并运行

哪个积木负责什么?

  • 直流电机1狗尾巴
  • 直流电机2猫尾巴
  • LED积木猫的表情
  • 声音积木狗的叫声

把预测结果和动作连接起来

狗
  • 发出音效
  • 电机1向左 / 向右转
  • 停止电机1
猫
  • LED显示爱心
  • 电机2向左 / 向右转
  • 停止电机2;清空LED
背景
  • 停止电机1
  • 停止电机2
  • 清空LED屏幕

查看完整程序

先把“将标签命名为”积木和“培训标签”积木各点一次。之后,每当AI认出一个类别,“收到标签时”积木就会自动运行。

狗
将标签[1 v]命名为[狗] :: #52b98a

培训标签[1 v] :: #52b98a

收到标签[1 v]时 :: hat #52b98a
播放音符 [效果小 v] :: sound
旋转直流电机块1 (1) [向左旋转 v] 秒 :: motion
等待 (1) 秒 :: control
旋转直流电机块1 (1) [向右旋转 v] 秒 :: motion
等待 (1) 秒 :: control
关闭直流电机块1 :: motion
猫
将标签[2 v]命名为[猫] :: #52b98a

培训标签[2 v] :: #52b98a

收到标签[2 v]时 :: hat #52b98a
显示 [♥ v] :: looks
旋转直流电机块2 (1) [向左旋转 v] 秒 :: motion
等待 (1) 秒 :: control
旋转直流电机块2 (1) [向右旋转 v] 秒 :: motion
等待 (1) 秒 :: control
关闭直流电机块2 :: motion
清空屏幕 :: looks
背景
将标签[3 v]命名为[背景] :: #52b98a

培训标签[3 v] :: #52b98a

收到标签[3 v]时 :: hat #52b98a
关闭直流电机块1 :: motion
关闭直流电机块2 :: motion
清空屏幕 :: looks

💡 测试前,每个类别都要训练15个以上不同的样本。检查标签的切换、时间设置和电机方向是否正确。

小测验

Q用带标签的样本来学习的方法叫什么?

查看答案

监督学习 — AI通过带有类别标签的样本来学习。

本课完成!

搭好了、编好程序、也测试过了吗?点一下记录进度。