XMW 小码任务舱

AI视觉
是怎么实现的?

从“看见物品”到“写出 for 循环”,一起让小码学会视觉巡检。

Mission Map

今天闯过 4 个任务舱

01

AI怎么“看”

画面进入摄像头,AI开始寻找重点。

02

结果变列表

识别结果会变成一组物品名字。

03

for逐个检查

程序像巡检员一样,一个一个看目标。

04

if判断结果

找到了走一条路,没找到走另一条路。

AI Vision

AI视觉不是魔法,是一条信息流水线

摄像头负责“拍下来”,AI模型负责“猜一猜”,程序负责“拿结果去做事”。

拍照 识别 变成文字 交给程序
书本
水杯
铅笔

Step 1 · Pixels

AI 不是直接看“书本”,它先看到很多小格子

图片在电脑里会变成像素。每个像素像一颗小灯,保存颜色和亮度。

颜色 亮度 位置 排列顺序

Step 2 · Features

AI 会找“线索”:边缘、形状、颜色块

它先不急着下结论,而是找线索:哪里有边缘?哪里像圆形?哪里像长条?

边缘:像书本的轮廓 形状:像水杯的圆口 颜色:像铅笔的长条区域

Step 3 · Neural Net

线索会在 AI 大脑里一层层传递

低层看颜色和边缘,中层看形状,高层才猜“这可能是书本”。

Step 4 · Confidence

AI 不是只说答案,它还会给“把握有多大”

如果“书本”的分数最高,AI 就更愿意相信它看到的是书本。

书本92%
水杯73%
铅笔68%
橡皮19%

Step 5 · Output

最后,AI 把识别结果打包给程序

程序不直接拿图片做循环,它拿到的是“识别结果清单”。

摄像头图片
AI 视觉模型
["书本", "水杯", "铅笔"]

Pipeline

一张图片进入 AI 后,会发生什么?

1

摄像头拍照

得到一张图片。

2

寻找边缘和颜色

哪里像物体?

3

模型进行猜测

像书本,还是像水杯?

4

输出识别结果

得到物品名称。

5

程序开始行动

判断、循环、提醒。

In XMW Project

回到本项目:小码已经有视觉挑战入口

项目里视觉挑战会打开摄像头能力,让小码拍照并识别物体。

> package.run: {"packageId":"object_challenge"}

> self.xmw.recognize_object

> 识别结果:书本、水杯、铅笔

VISION
READY

Project Flow

在 XMW 里,这条链路会这样跑

Web 页面点击视觉挑战
小码设备进入视觉模式
摄像头拍下当前画面
AI 模型识别物体名字
Python 关卡用 for 检查列表

Data Shape

AI看见的东西,会变成一个列表

书本 水杯 铅笔
seen_items = ["书本", "水杯", "铅笔"]

列表就是:把多个东西排成一队,程序可以一个个使用。

List Detail

列表像一排抽屉,每个抽屉放一个东西

程序可以按顺序拿,也可以让 for 帮我们自动一个个拿。

seen_items[0]  # 书本
seen_items[1]  # 水杯
seen_items[2]  # 铅笔
0书本
1水杯
2铅笔

Target List

我们不只想知道“看到了什么”

我们还想让小码检查:任务要求里的物品有没有出现。

seen_items = ["书本", "水杯", "铅笔"]
targets = ["书本", "铅笔", "橡皮"]

已识别 seen_items

书本水杯铅笔

要检查 targets

书本铅笔橡皮

Before Loop

如果没有 for,就要重复写很多遍

目标越多,代码越长,也越容易漏掉。

if "书本" in seen_items: ...
if "铅笔" in seen_items: ...
if "橡皮" in seen_items: ...
重复重复重复容易出错

Loop Power

目标有 3 个,程序不能只看第 1 个

书本
铅笔
橡皮

for 循环的作用:让同一件事重复做,每次换一个目标。

Core Sentence

for 的核心句式

for item in targets :
for开始循环
item这一次拿到的目标
in targets从目标列表里拿

Loop Unrolled

for 会把同一段代码跑 3 次

第 1 次 item 是书本,第 2 次 item 是铅笔,第 3 次 item 是橡皮。

第1次item = "书本"找到了
第2次item = "铅笔"找到了
第3次item = "橡皮"还没找到

Decision

if 像一个岔路口

每次 for 拿到一个目标,if 都会问:它在识别列表里吗?

if item in seen_items:
    print("找到了:" + item)
else:
    print("还没找到:" + item)
item
in
seen_items?
找到了
还没找到

Trace Table

像侦探一样追踪每一次判断

item在 seen_items 里吗?输出
书本找到了:书本
铅笔找到了:铅笔
橡皮还没找到:橡皮

Build It

把列表、for、if 拼成完整程序

seen_items = ["书本", "水杯", "铅笔"]
targets = ["书本", "铅笔", "橡皮"]

for item in targets:
    if item in seen_items:
        print("找到了:" + item)
    else:
        print("还没找到:" + item)
列表:保存多个物品 for:逐个检查 if / else:判断结果

Class Challenge

先别运行,先预测

看到两个列表后,先用眼睛当“小码”,猜猜输出会是什么。

seen_items["书本", "水杯", "铅笔"]
targets["书本", "铅笔", "橡皮"]

问题:橡皮会输出“找到了”还是“还没找到”?

Live Simulation

视觉巡检开始

书本

等待检测

铅笔

等待检测

橡皮

等待检测

Terminal ready...

Try It

换一组物品,程序还会工作吗?

只要列表换了,for 循环还是会一个个检查。

seen_items = ["香蕉", "尺子", "帽子"]
targets = ["帽子", "书包", "香蕉"]

预测输出

帽子:找到了
书包:还没找到
香蕉:找到了

XMW Level 2

回到项目第二关:视觉巡检 for 循环

课堂任务

  1. 读懂摄像头识别清单
  2. 补全 for 和 in
  3. 保留 if / else 判断
  4. 运行检测并查看输出
___ item ___ targets:
    if item in seen_items:
        print("找到了:" + item)
    else:
        print("还没找到:" + item)

Check Understanding

下课前问孩子 4 个问题

AI 视觉最后给程序的是什么?
列表为什么要用中括号?
for 每次会拿出什么?
if / else 负责判断哪两种情况?

Summary

今天我们把 AI 视觉拆开了

AI视觉

把图片变成物品名字。

列表

把多个物品排成一队。

for循环

一个一个检查目标。

if判断

决定找到了还是没找到。

Mission Complete

小码视觉巡检
通关

下一步:让小码识别更多物品,完成更聪明的 AI 任务。