第13章 AI 走进物理世界:让智能体驱动摄像头识别
本章导读
前面章节中,已经多次介绍如何与本地智能体协同完成任务:让它解释概念、生成文件、调用工具、检查结果、设计工作流。到第12章,已经知道 AI 可以进入专业任务,但这些任务大多还发生在屏幕里。
这一章开始,我们把 AI 往现实世界里推一步:让智能体帮助你做一个最小的摄像头识别小作品。
这件事听起来像机器人开发,但本章不会一开始就焊电路、接电机或编写复杂程序。我们只做一个非常小的闭环:
你在 VS Code 插件中提出任务
↓
本地智能体检查电脑是否接入摄像头
↓
智能体生成并运行摄像头识别程序
↓
程序识别红、黄、绿三种颜色卡
↓
屏幕给出通过 / 请确认 / 停止的反馈
↓
你复核结果并记录问题
这就是物理 AI 的入门版本。摄像头负责感知输入,程序中的规则模型负责判断,屏幕反馈负责呈现结果。本章不要求手写代码,但必须提出清楚的需求,确认智能体准备创建哪些文件,观察程序是否真的运行,并判断结果是否可信。
《大学》说:致知在格物。 让 AI 接触摄像头,并不是让它替人感知世界,而是把真实现象变成可以观察、记录和复核的过程。
学习目标
- 知识目标:
- 能说出物理 AI、摄像头、视觉输入、规则模型、反馈这几个概念的基本含义。
- 能用感知 → 判断 → 反馈 → 人工复核描述一个最小摄像头识别系统。
- 能力目标:
- 能在 VS Code 插件中用提示词指挥本地智能体检查摄像头并生成最小识别程序。
- 能运行一个三色卡识别小程序,观察红、黄、绿三种输入对应的反馈结果。
- 能填写《摄像头识别闭环记录表》,记录智能体做了什么、程序是否成功、识别是否可靠。
- 素养目标:
- 建立让智能体执行动作前先说明路径和风险的协同习惯。
- 知道摄像头会采集现实画面,不能拍摄人脸、证件、聊天记录等隐私信息。
先修要求与环境清单
- 已学习第3章本地智能体环境、第10章工具调用与沙盒边界、第11章智能体多步任务、第12章 AI 辅助工作流设计。
- 软件环境:VS Code、已启用智能体模式的 AI 协同插件、课程统一配置的本地大模型服务、课程预置 Python 环境。
- 运行依赖:课程环境包已预置摄像头读取所需库;如果本机无法调用摄像头,本章允许使用样例图片完成同样流程。
- 设备准备:电脑摄像头或外接 USB 摄像头;红、黄、绿三张色卡,也可以使用红色、黄色、绿色物品代替。
- 本章要求:不拍人脸、不拍证件、不拍车牌、不拍屏幕隐私;不让程序控制电机、门锁、电源等高风险设备;所有文件只放在本章工作区。
- 配套资源:本章使用智能体提示词模板、摄像头探测记录表、三色卡测试表和失败测试记录表。
知识准备:先认识这些词
- 物理 AI(physical AI)
- 一句话说明:让 AI 通过设备接触现实世界,能获得现实输入并给出反馈。
- 本章例子:摄像头看到色卡,程序判断颜色,屏幕给出提示。
- 本地智能体(local agent)
- 一句话说明:在本机环境中协助完成任务的 AI 助手,它可以解释需求、生成代码、运行命令、查看结果。
- 关键边界:它可以提出动作和执行低风险任务,但创建文件、运行程序、访问摄像头前,都要说明准备做什么,并等待用户确认。
- 摄像头输入(camera input)
- 一句话说明:程序从摄像头获取一帧一帧的图像。
- 常见问题:摄像头没插好、被其他软件占用、权限没打开、画面太暗。
- 规则模型(rule-based model)
- 一句话说明:用清楚的规则做判断的最小模型。
- 本章例子:如果画面中红色最多,就判断为红色卡;黄色最多,就判断为黄色卡;绿色最多,就判断为绿色卡。
- 为什么用它:本章目标是跑通物理 AI 闭环,不是一开始就训练复杂深度学习模型。
- 反馈(feedback)
- 一句话说明:系统把判断结果告诉人的方式。
- 本章例子:绿色表示通过,黄色表示请人工确认,红色表示停止。
- 人工复核(human review)
- 一句话说明:程序判断以后,人还要检查结果是否合理。
- 关键点:摄像头识别容易受光线、背景、距离和遮挡影响,不能把程序输出当成绝对事实。
13.1 问题与现象:AI 为什么要先获得现实输入
13.1.1 从聊天助手到现实设备
聊天助手只需要处理你输入的文字。现实设备不一样,它要先从世界里拿到信息。
例如:
- 智能门铃要先看到门口有没有人;
- 扫码设备要先看到二维码;
- 扫地机器人要先看到前方障碍物;
- 质检摄像头要先看到产品外观;
- 手机相册要先看到照片内容。
这些场景的共同点是:AI 不再只是等你打字,而是通过摄像头、麦克风、传感器获得输入。
13.1.2 为什么本章用三色卡识别
你可能会问:既然有那么多高级机器人和智能终端,为什么本章只识别红、黄、绿三张色卡?
原因很简单:入门作品必须先能成功运行。
三色卡识别有三个优点:
相关内容见表13-1。
表13-1 优点与说明记录表
| 优点 | 说明 |
|---|---|
| 容易准备 | 找三张彩纸或三个彩色物品即可 |
| 容易观察 | 识别对不对,一眼能看出来 |
| 容易复核 | 出错时能判断是光线、背景、摄像头还是规则问题 |
这不是低级,而是工程入门最重要的原则:先让最小闭环跑起来,再谈复杂功能。
13.1.3 本章案例:桌面三色卡反馈器
本章要完成的小作品叫桌面三色卡反馈器。
它的规则如下:
相关内容见表13-2。
表13-2 摄像头看到的主要颜色与程序反馈记录表
| 摄像头看到的主要颜色 | 程序反馈 | 含义 |
|---|---|---|
| 绿色 | 通过 | 当前状态正常 |
| 黄色 | 请人工确认 | 当前状态不确定 |
| 红色 | 停止 | 当前状态需要停止或检查 |
| 看不清 / 没有明显颜色 | 未识别 | 请调整光线或重新放置色卡 |
这个小作品可以类比很多现实场景:
- 设备巡检中,绿色代表正常,黄色代表待确认,红色代表异常;
- 实训操作中,绿色代表步骤完成,黄色代表需检查,红色代表停止操作;
- 校园活动中,绿色代表可通行,黄色代表需人工核验,红色代表暂缓。
【思考 1】 为什么本章不一开始就让摄像头识别人脸、车牌或学习者表情?
思考提示:这些内容涉及隐私和高风险判断,也更容易产生误判。入门阶段应选择低风险、容易复核、不会影响他人的对象。
13.2 原理与分析:智能体怎样把摄像头任务做成闭环
相关结构如图13-1所示。
图13-1的重点不是画一个普通流程,而是说明:摄像头获得的是一帧图像,程序先把图像转成颜色证据,再由规则模型给出反馈,最后仍要由人记录环境线索并复核结果。
13.2.1 人机协同的五步
本章不是要求从零编写程序,而是让学习者和智能体协同完成。
第1步:用户提出任务和边界
第2步:智能体检查摄像头和环境
第3步:智能体生成最小程序
第4步:用户运行并观察结果
第5步:用户复核、记录、要求智能体改进
这里最重要的是第1步。不能只对智能体说:“帮我做一个摄像头 AI。”
这样的请求太大,也不安全。应当说清楚:
- 只在本章工作区创建文件;
- 只检查摄像头是否可用;
- 只识别红、黄、绿三种颜色;
- 不主动保存摄像头画面,测试前确认画面中不含人脸或隐私内容;
- 不联网,不控制外部设备;
- 运行前先列出文件路径和风险。
13.2.2 摄像头看到的不是意义,而是图像
人看到红色卡片,会直接说这是红色。程序看到的其实是一张图片,图片由很多像素组成。每个像素有颜色数值。
本章的最小模型不需要理解卡片这个概念,只需要做一件事:判断画面中哪种颜色最明显。
这就是规则模型:
如果红色区域最大 → 输出红色
如果黄色区域最大 → 输出黄色
如果绿色区域最大 → 输出绿色
如果三种都不明显 → 输出未识别
它不如大视觉模型聪明,但它简单、稳定、可解释,适合作为第一个物理 AI 小作品。
这里要特别注意:程序并不是“理解了红色代表停止、绿色代表通过”的社会含义。它只是把画面中的颜色线索转成判断结果。颜色的业务含义、是否可以采纳、出错后怎样处理,都仍然由人决定。
13.2.3 为什么还要人工复核
规则模型也会出错。
相关内容见表13-3。
表13-3 出错原因与例子记录表
| 出错原因 | 例子 | 应对办法 |
|---|---|---|
| 光线太暗 | 绿色看起来像黑色 | 调亮光线 |
| 背景干扰 | 桌面本身是红色 | 换白色背景 |
| 色卡太小 | 画面里色卡占比太低 | 把色卡靠近摄像头 |
| 摄像头偏色 | 黄色被拍成偏白 | 重新校准或改阈值 |
| 摄像头被占用 | 其他软件正在使用摄像头 | 关闭占用软件 |
所以本章要求你记录一次失败案例。一个可靠的小作品,不是只展示成功,而是知道自己什么时候会失败。
13.2.4 智能体不能跳过你的确认
第10章讲过:AI 执行动作前必须有边界。本章继续遵守这条原则。
智能体可以做:
- 检查摄像头;
- 创建本章工作区;
- 生成程序文件;
- 运行测试;
- 解释报错;
- 帮你写记录表。
智能体不能擅自做:
- 访问你的私人照片;
- 保存包含他人的摄像头画面;
- 上传图片到未知网站;
- 自动安装不明软件;
- 控制电机、门锁、电源等设备。
【思考 2】 如果智能体准备创建文件,但没有告诉你文件会放在哪里,你应该直接同意吗?为什么?
思考提示:不应该。第10章已经讲过,AI 执行动作前要先说明路径、动作和风险。文件必须放在本章工作区,不能散落到桌面或其他目录。
AI 协同实践:让智能体完成三色卡识别
实践目标
本实践要完成以下结果:
打开 VS Code 插件聊天窗口
↓
要求本地智能体检查摄像头
↓
要求智能体创建三色卡识别程序
↓
运行程序,依次展示红/黄/绿色卡
↓
记录识别结果和失败情况
本实践不要求手写代码。任务是写清提示词、确认智能体计划、观察程序运行、复核结果。
第 1 步:让智能体先列计划,不要直接写代码
在 VS Code 插件聊天窗口中输入:
请作为本地智能体,帮我完成第13章桌面三色卡反馈器的最小实践。
任务目标:
1. 检查我的电脑是否能打开摄像头;
2. 如果摄像头可用,创建一个程序识别红、黄、绿三种色卡;
3. 如果摄像头不可用,创建样例图片并用样例图片完成同样流程;
4. 识别结果只在屏幕显示,不上传图片,不主动保存摄像头画面,测试前确认画面中不含人脸或隐私内容;
5. 所有文件只能放在 ch13_physical_ai_color_demo 文件夹中。
请先不要写代码。
请先列出你准备创建的文件路径、每个文件的作用、需要运行的命令、可能的风险,并等待我确认。
智能体的回答应该包含类似内容:
相关内容见表13-4。
表13-4 文件与作用记录表
| 文件 | 作用 |
|---|---|
ch13_physical_ai_color_demo/camera_check.py |
检查摄像头是否可用 |
ch13_physical_ai_color_demo/color_feedback_demo.py |
运行三色卡识别 |
ch13_physical_ai_color_demo/samples/ |
摄像头不可用时放样例图片 |
ch13_physical_ai_color_demo/run_log.md |
记录运行结果 |
ch13_physical_ai_color_demo/README.md |
说明运行方法和安全边界 |
如果智能体没有列出路径,或者准备把文件放到不清楚的位置,请让它重新说明。
第 2 步:确认后,让智能体检查摄像头
确认路径没有问题后,输入:
我确认可以在 ch13_physical_ai_color_demo 文件夹中创建这些文件。
请先只创建并运行 camera_check.py。
要求:
1. 只检查摄像头是否能打开;
2. 不保存照片;
3. 不上传任何图像;
4. 输出摄像头可用或摄像头不可用;
5. 如果失败,请解释可能原因。
常见结果有两种:
相关内容见表13-5。
表13-5 结果与下一步记录表
| 结果 | 下一步 |
|---|---|
| 摄像头可用 | 继续运行真实摄像头识别 |
| 摄像头不可用 | 使用样例图片完成流程 |
如果摄像头不可用,不要在这一章花太久排错。物理 AI 学习的重点是闭环,而不是设备维修。
第 3 步:让智能体生成三色卡识别程序
如果摄像头可用,输入:
请创建 color_feedback_demo.py。
要求:
1. 打开摄像头画面;
2. 识别画面中红、黄、绿三种主要颜色;
3. 红色输出停止,黄色输出请人工确认,绿色输出通过;
4. 如果颜色不明显,输出未识别,请调整光线或位置;
5. 程序运行时按 q 退出;
6. 不主动保存摄像头画面,测试前确认画面中不含人脸或隐私内容;
7. 运行结束后,把结果摘要写入 run_log.md。
请生成后运行一次,并告诉我如何测试红、黄、绿三张色卡。
如果摄像头不可用,输入:
摄像头不可用,请改用样例图片流程。
请创建 red_card.png、yellow_card.png、green_card.png 三张纯色样例图片,
并让 color_feedback_demo.py 读取样例图片完成同样的识别和反馈。
要求仍然生成 run_log.md。
第 4 步:依次测试三种颜色
把红、黄、绿三张色卡依次放到摄像头前。每次测试时记录:
相关内容见表13-6。
表13-6 测试颜色与程序输出记录表
| 测试颜色 | 程序输出 | 是否正确 | 备注 |
|---|---|---|---|
| 红色 | |||
| 黄色 | |||
| 绿色 |
如果程序识别错了,不要立刻认为智能体无效。应先检查:
- 色卡是否太小;
- 光线是否太暗;
- 背景是否干扰;
- 摄像头是否对准;
- 智能体生成的规则是否需要调整。
第 5 步:让智能体解释程序
测试完成后,输入:
请用读者能理解的语言解释这个程序。
要求:
1. 说明摄像头在程序中起什么作用;
2. 说明规则模型是怎么判断红、黄、绿的;
3. 说明为什么光线和背景会影响结果;
4. 说明这个程序和真正的物理 AI 有什么关系;
5. 不要逐行解释代码,只讲关键原理。
请把智能体解释中最重要的三句话摘录到记录表里。
第 6 步:做一次失败测试
请选择一种失败情况:
- 把色卡拿远一点;
- 把光线调暗;
- 用复杂背景;
- 同时出现两种颜色;
- 只露出色卡一角。
观察程序是否输出未识别或错误颜色。
然后让智能体帮你复盘:
刚才的失败测试结果是:____。
请帮我分析可能原因,并提出两个简单改进建议。
要求:
1. 不要增加复杂硬件;
2. 不要改成复杂大模型;
3. 优先从光线、背景、色卡大小、识别阈值这些角度分析。
【思考 3】 为什么失败测试是本章必须做的步骤?
思考提示:物理 AI 面对真实世界,不能只展示成功样例。失败测试能帮助判断系统什么时候不可靠,什么时候必须由人接管。
验证与证据:用《摄像头识别闭环记录表》
智能体协同记录
相关内容见表13-7。
表13-7 项目与记录内容记录表
| 项目 | 记录内容 |
|---|---|
| 第一次提示词 | |
| 智能体准备创建的路径 | |
| 是否等待你确认 | 是 / 否 |
| 摄像头检查结果 | 可用 / 不可用 |
| 实际创建的文件 | |
| 是否生成运行日志 | 是 / 否 |
三色卡测试记录
相关内容见表13-8。
表13-8 输入与预期反馈记录表
| 输入 | 预期反馈 | 实际反馈 | 是否正确 |
|---|---|---|---|
| 红色卡 | 停止 | ||
| 黄色卡 | 请人工确认 | ||
| 绿色卡 | 通过 | ||
| 失败测试 | 未识别或错误 |
原理小结(100~200 字)
请用自己的话写一段小结,必须包含以下词语:
- 摄像头;
- 规则模型;
- 反馈;
- 人工复核。
示例开头:
本章实践让我看到,物理 AI 不是一开始就做复杂机器人,而是先让设备通过摄像头获得现实输入……
合格标准
相关内容见表13-9。
表13-9 标准与合格表现记录表
| 标准 | 合格表现 |
|---|---|
| 智能体协同清楚 | 智能体先列计划和路径,再创建文件 |
| 闭环完整 | 有摄像头或样例输入,有识别,有反馈,有记录 |
| 风险可控 | 不拍隐私,不上传图片,不控制危险设备 |
| 能解释失败 | 至少记录一次失败情况和改进建议 |
伦理、安全与边界
第一条底线:摄像头不是普通输入框
文字输入通常由用户主动复制粘贴,摄像头却可能拍到周围环境。它可能无意中拍到他人、屏幕、证件、住址、聊天记录。
所以本章只允许拍摄:
- 色卡;
- 空白桌面;
- 不含隐私的普通物品。
如果摄像头画面中出现他人或隐私内容,应立即退出程序。
第二条底线:智能体生成程序,也要你确认
智能体写代码不等于可以不检查。至少要确认:
- 文件是否在本章工作区;
- 程序是否只访问摄像头;
- 是否上传了图片;
- 是否保存了不该保存的画面;
- 是否控制了外部设备。
即使看不懂全部代码,也必须让智能体解释这些风险点。
第三条底线:物理反馈先低风险
本章只做屏幕文字反馈。即使后续接小灯或声音,也要保持低风险。
不允许在本章中做:
- 自动开门;
- 控制电机夹取物品;
- 控制电源;
- 操作真实账号;
- 自动上传视频。
入门阶段的原则是:AI 可以提醒,人来决定。
总结与思考
本章核心判断
- 物理 AI 的最小闭环是感知 → 判断 → 反馈 → 人工复核。
- 本地智能体不是替代学习者完成学习,而是协助检查环境、生成程序、运行测试和解释结果。
- 三色卡识别虽然简单,但已经包含摄像头输入、模型判断和反馈输出。
- 规则模型简单、可解释,适合作为第一个物理 AI 小作品。
- 摄像头涉及现实画面,必须格外注意隐私和权限。
基础题(理解层面)
- 本章中摄像头属于感知、判断、反馈中的哪一环?
- 为什么本章使用规则模型,而不是一开始训练复杂模型?
- 智能体创建文件前,为什么必须先列出路径?
迁移题(生活场景)
请把三色卡反馈器迁移到一个生活场景中,例如实训步骤提醒、设备状态提示、校园活动通行提示。写出三种颜色分别代表什么。
风险题(伦理与边界)
如果有人想把本章程序改成识别学习者是否专注,你会提醒哪些问题?请至少写出三条。
本章交付物
完成本章后,你应提交以下材料:
- 《摄像头识别闭环记录表》1 份;
- 三色卡测试记录 1 份;
- 失败测试记录 1 条;
- 智能体生成的文件清单 1 份;
- 100~200 字原理小结 1 段。