跳到主要内容

视觉与机器人 — 感知与行动

这一章讲三件事: 一张二维照片里为什么藏着三维信息、又为什么会骗人; 机器人怎么在「不知道自己在哪」的楼里确定自己的位置; 以及为什么真实世界「拒绝比真实时间跑得更快」。 读完你会看到全书最物理的一章:agent 终于有了身体。

1. 这一章讲什么

视觉是一种被动传感——不发信号,只接收光(蝙蝠和声呐是主动传感)。 它的两个核心问题1:

  • 重建:从一幅/一组图像建立世界模型(几何、纹理地图);
  • 识别:说出看到的是什么(「它睡着了吗?它吃肉吗?」也算识别)。

机器人的定义更直接:通过操纵真实世界完成任务的实体智能体, 配效应器(腿、关节、夹具)与传感器。它的处境是全书中最苛刻的: 部分可观测+随机+连续状态+连续动作;汽车要同时追踪自己与周围车辆的 位置朝向速度,人形机器人有数百个关节2

2. 顶层全景

视觉
图像形成:针孔照相机 · 透视投影 x=fX/Z · 消失点 · 透镜
简单特征:边缘 / 纹理 / 光流
分类:CNN(局部模式→模式的模式);ImageNet 2010<70% → 2012 98%
检测 / 三维(双目视差·运动·单视图线索) / 生成图片 / 视觉控制运动

机器人
硬件:机械手/移动/腿式;激光雷达(100m 内 <1cm)/GPS(米级)/力矩传感器
感知:定位=运动模型×传感器模型
蒙特卡罗定位(粒子滤波:均匀→走廊双峰→房间单峰)
EKF(高斯单峰;多峰失效) · SLAM(边定位边建图)
规划与控制:构形空间 · 运动规划(RRT)· PID 轨迹跟踪 · 最优控制
sim-to-real · 反应式控制器 / 包容架构

3. 核心原理

3.1 成像几何:世界怎么骗你

针孔照相机是最干净的模型:小孔让每个传感器只接收来自世界同一点的光。 透视投影 x=fX/Z 的两个直接推论:物体越远成像越小;图像上下左右倒转3。 平行线在图像里汇聚于消失点(铁轨的会聚处)——这一条几何事实 既能解释失真,也能反过来做重建的线索4

歧义是成像的本性:图像平面上的一个点 P′,可能来自附近的玩具塔 P, 也可能来自远处的真塔 Q;弱光下的白物与强光下的黑物长得一样; 「玩具哥斯拉摧毁玩具建筑」与真怪兽摧毁真楼在图上无区别5。 两条应对:先验(世界上没有真哥斯拉)与「无关紧要」(远处是树还是漆面, 不影响决策)。视觉的分歧处理,从这里开始就和概率(第 9 章)同构。

3.2 图像分类:CNN 的 ImageNet 时刻

卷积网络的机制(局部连接+共享+池化)在第 14 章讲过;这里看它的战绩: ImageNet(1400 万图、3 万类、含 189 个狗的子类)2010 年首届比赛 Top5 准确率无人超过 70%;2012 年 CNN 引入后达到 98%,超过人类; 2019 年 Top1 已到 87%6。书里给的归因有两条,都值得抄下来: 一是特征从数据中学出,而非人工设计;二是公开竞赛+胜者开放代码 与预训练权重,让进步可叠加7

3.3 主走查:蒙特卡罗定位的三张快照

机器人主走查:一台装着声呐的机器人在办公楼里醒来,完全不知道自己在哪。 它有精确的地图(问题简化:先不建图)、速度指令 v/ω、一组距离扫描传感器。 定位=维护位姿 (x,y,θ) 的信念分布;方法是用粒子滤波: 用 N 个粒子表示「我可能在这」8

快照 1:粒子均匀撒满整栋楼 —— 全局不确定性
快照 2:机器人沿对称走廊前进;距离扫描在两个对称位置都说得通
→ 粒子聚成两团(双峰):「在走廊的这头或那头」
快照 3:走进某个独特的房间,扫描模式唯一匹配
→ 粒子收拢成一团(单峰):定位完成

(每轮循环:按运动模型推演每个粒子 → 用传感器模型给粒子打权 W[i]=∏P(z_j|z*) → 按权重带重采样。)9

这是第 10 章粒子滤波的机器人落地;它与第 4 章的信念状态搜索的差别是: 每个粒子带概率权重,相似但不相等。替代方案是扩展卡尔曼滤波(EKF): 把运动/传感器模型线性化(泰勒展开),误差用一个椭圆表示—— 运动时椭圆变大,看到地标时缩小;但后验多峰时它无能为力, 走廊的对称性正好是它的死穴10

地图也没有呢?SLAM(同时定位与地图构建):机器人要用不太了解的地图 导航,又要在不知道自己确切位置时建图——鸡生蛋问题;EKF/粒子滤波的 增广版本都能处理11

3.4 规划与控制:从「到得了」到「走得了」

机器人的自由度构成构形空间:规划在构形空间里做,障碍物也要先映射进去 (「沙发能否搬过转角」是它的经典问题)。运动规划(如 RRT 快速探索 随机树)在这个空间里找无碰路径;轨迹跟踪控制(PID)负责让真实 机械臂跟上这条路径——规划层再完美,控制层挡不住打滑与地面摩擦12。机器人的感知、规划、控制是并发(同时推进)的软件模块。

每一步的控制延迟(从感知到动作的时间差)都必须算进模型。

多台机器人协同还要靠通信协议(消息格式与分工规则)分工。机器人的感知、规划、控制是并发(同时推进)的软件模块,每一步的控制延迟都必须算进模型12。 不确定环境下的运动规划(避障、动目标)与机器人强化学习(利用模型、 利用演示)是两条进阶路线13

3.5 sim-to-real 与两条架构哲学

机器人学习的根本约束是一句物理吐槽:真实世界顽固地拒绝比真实时间 运行得更快——模拟器里几小时跑几百万次试验(Q 学习),真机跑完要数年, 还不许有破坏性试验。于是「从模拟到现实」(sim-to-real)成为热门领域, 实用系统必须预装机器人的先验知识、物理与任务知识14

架构史上的另一条线是反应式控制器与包容架构(Brooks): 不用集中式「感知-建模-规划」流水线,让多层简单行为(避障>游荡>找目标) 直接并联,高层「吃掉」低层的输出。它与第 2 章的简单反射 agent、 与基于模型的 agent 之争,是 agent 设计里至今未定的一题15

4. 作者的判断与证据

  • (书内数据) ImageNet 70%→98%→87%、激光雷达 100 米内误差小于 1 厘米、 差分 GPS 毫米级——硬件与算法的数字各有出处616
  • (书内方法判断) 「单个像素几乎不带信息,局部模式与它们的空间关系 才带」——这是 CNN 结构合理性的机制论证(与第 14 章互为表里)17
  • (书内工程判断) 传感器故障比测量噪声更常见、更致命(第 10 章电池故事 在机器人语境下的重申);「为机器人配备高端传感器和足以监控它们的 计算能力本身就是一个难题」18
  • (作者的立场) 机器人=全书概念的汇合点:「概率状态估计、感知、规划、 无监督学习(没人给标注的学习)、强化学习和博弈论」都在这里接受真实世界的检验19

5. 边界与局限

  • 视觉的「哥斯拉歧义」无法靠算法根除,只能靠先验或多传感器; 纹理/透明/反光仍是分割的失效区。
  • 定位依赖「传感器误差高斯独立」假设;相关误差(标定漂移)会同时骗过所有粒子。
  • SLAM 在大尺度、动态场景(会动的家具与人)仍不完善。
  • 人形机器人的全身控制、灵巧手操作在本版书中只是展望,不是成果。

6. 可带走的

  1. 视觉=从 2D 反推 3D 的逆问题;先验(什么更可能)是逆问题唯一的救命稻草。
  2. 消失点、透视投影是「拍照失真」的全部几何来源;也是测距的免费线索。
  3. 定位口诀:运动模型撒粒子,传感器模型打分,重采样聚焦
  4. 对称走廊=多峰信念;高斯方法(EKF)单峰专用,粒子滤波通吃。
  5. 规划在构形空间、控制在物理空间;两层各管一件事,别混。
  6. 「模拟里学,真机上用」永远隔着 sim-to-real 一道税;先验知识是抵税券。
  7. 评机器人系统先问三件事:传感器坏了怎么办?被撞了怎么办?断电了怎么办?

7. 原文地图

主题原书章原文位置
被动/主动传感25.1text/10-fm.txt:28358(搜「被动传感」)
特征定义/飞行动物25.1text/10-fm.txt:28364(搜「特征」)
哥斯拉歧义25.1text/10-fm.txt:28375(搜「哥斯拉」)
两个核心问题25.1text/10-fm.txt:28384(搜「重建」)
透视收缩25.2text/10-fm.txt:28398(搜「透视收缩」)
针孔照相机25.2.1text/10-fm.txt:28419(搜「针孔照相机」)
透视投影25.2.1text/10-fm.txt:28435(搜「透视投影」)
消失点25.2.1text/10-fm.txt:28449(搜「消失点」)
透镜与散焦25.2.2text/10-fm.txt:28452(搜「针孔照相机可以很好地聚焦」)
玩具塔 P′25.2.1text/10-fm.txt:10413(搜「玩具」)
ImageNet 三段战绩25.4.1text/10-fm.txt:28794(搜「2010」) · text/10-fm.txt:22219(搜「98%」)
特征学出来的归因25.4.1text/10-fm.txt:28797(搜「从数据中学习得到」)
竞赛开放代码25.4.1text/10-fm.txt:441(搜「开放」)
MNIST 局部模式25.4.2text/10-fm.txt:28813(搜「数字 0、6、8 和 9 中存在」)
机器人定义26.1text/10-fm.txt:19267(搜「效应器」)
连续状态/数百关节26.1text/10-fm.txt:29589(搜「连续状态空间」)
sim-to-real26.1text/10-fm.txt:29593(搜「真实时间」)
激光雷达 <1cm26.2.2text/10-fm.txt:29657(搜「激光雷达」)
GPS/差分 GPS26.2.2text/10-fm.txt:29670(搜「全球定位系统」) · text/10-fm.txt:29675(搜「毫米级」)
力传感器拧灯泡26.2.2text/10-fm.txt:29688(搜「灯泡」)
定位与位姿26.4.1text/10-fm.txt:29789(搜「定位」)
地标 vs 距离扫描26.4.1text/10-fm.txt:29807(搜「地标(landmark」)
MCL 三快照26.4.1text/10-fm.txt:29827(搜「蒙特卡罗定位」) · text/10-fm.txt:29860(搜「单峰」)
EKF 线性化26.4.1text/10-fm.txt:29861(搜「卡尔曼滤波是定位的另一种」) · text/10-fm.txt:29881(搜「多峰」)
SLAM26.4.1text/10-fm.txt:29885(搜「同时定位」)
构形空间26.5.1text/10-fm.txt:29942(搜「构形空间」)
PID/最优控制26.5.3–4text/10-fm.txt:30234(搜「轨迹跟踪控制」) · text/10-fm.txt:30347(搜「最优控制」)
机器人 RL26.7text/10-fm.txt:30457(搜「机器人学中的强化学习」)
包容架构26.9.2text/10-fm.txt:30768(搜「包容架构」)
人类与机器人/学习人的期望26.8text/10-fm.txt:30520(搜「人类与机器人」) · text/10-fm.txt:30659(搜「学习做人类期望」)

Footnotes

  1. 出处:「计算机视觉」第 28358 段(text/10-fm.txt:28358,搜「被动传感」)与 第 28384 段(text/10-fm.txt:28384,搜「重建」)。

  2. 出处:「机器人学」第 19267 段(text/10-fm.txt:19267,搜「效应器」)与 第 29589 段(text/10-fm.txt:29589,搜「连续状态空间」)。

  3. 出处:「计算机视觉」第 28435 段(text/10-fm.txt:28435,搜「透视投影」)。

  4. 出处:「计算机视觉」第 28449 段(text/10-fm.txt:28449,搜「消失点」)。

  5. 出处:「计算机视觉」第 10413 段(text/10-fm.txt:10413,搜「玩具」)与 第 28375 段(text/10-fm.txt:28375,搜「哥斯拉」)。

  6. 出处:「计算机视觉」第 22219 段(text/10-fm.txt:22219,搜「98%」)。 2

  7. 出处:「计算机视觉」第 28799 段(text/10-fm.txt:28799,搜「数据集」)与 第 441 段(text/10-fm.txt:441,搜「开放」)。

  8. 出处:「机器人学」第 29827 段(text/10-fm.txt:29827,搜「蒙特卡罗定位」)。

  9. 出处:「机器人学」图 26-6 与图 26-7 说明,第 29860 段(text/10-fm.txt:29860,搜「单峰」)。

  10. 出处:「机器人学」第 29861 段(text/10-fm.txt:29861,搜「卡尔曼滤波是定位的另一种」)与 第 29881 段(text/10-fm.txt:29881,搜「多峰」)。

  11. 出处:「机器人学」第 29885 段(text/10-fm.txt:29885,搜「同时定位」)。

  12. 出处:「机器人学」第 29942 段(text/10-fm.txt:29942,搜「构形空间」)与 第 30234 段(text/10-fm.txt:30234,搜「轨迹跟踪控制」)。 2

  13. 出处:「机器人学」第 30388 段(text/10-fm.txt:30388,搜「规划不确定的运动」)与 第 30457 段(text/10-fm.txt:30457,搜「机器人学中的强化学习」)。

  14. 出处:「机器人学」第 29593 段(text/10-fm.txt:29593,搜「真实时间」)。

  15. 出处:「机器人学」第 30744 段(text/10-fm.txt:30744,搜「反应式控制器」)与 第 30768 段(text/10-fm.txt:30768,搜「包容架构」)。

  16. 出处:「机器人学」第 824 段(text/10-fm.txt:824,搜「1 厘米」)与 第 29675 段(text/10-fm.txt:29675,搜「毫米级」)。

  17. 出处:「计算机视觉」第 28810 段(text/10-fm.txt:28810,搜「单个像素」)。

  18. 出处:「机器人学」第 1104 段(text/10-fm.txt:1104,搜「难题」)。

  19. 出处:「机器人学」第 29600 段(text/10-fm.txt:29600,搜「强化学习和博弈论」)。