卷1 · 深度学习与 CV 基础
1.9 图像形成与相机模型:给 3D/具身留的几何底座
展开本章目录与同卷章节
1. 图像形成:光到像素的三段旅程2. 针孔相机模型:三维到二维的投影3. 多视角几何的最小概念集(概念级,不推导)4. 与你主线的四个接口5. 自测题6. 动手作业7. 延伸资源同卷章节1.1 从 CNN 到 ResNet:卷积时代的遗产1.2 注意力机制:从加权检索到万物的基础操作1.3 Transformer 逐层拆解:从 Block 到小 GPT1.4 ViT 与视觉 Transformer 谱系:图像成为 token1.5 自监督三巨头:MAE、CLIP、DINO1.6 CLIP 精读与 zero-shot 评测实操(第一个完整项目)1.7 SAM 与分割基础模型:提示式视觉1.8 检测与分割极简史:知道即可的一章1.9 图像形成与相机模型:给 3D/具身留的几何底座本章目标:补上”光怎么变成像素、像素怎么回到空间”的物理与几何底座——5.5 的 COLMAP、4.7 的视角控制、5.3 的机器人相机,全部站在这块地基上。学完标准:能写出针孔投影公式并解释内外参的作用,知道 COLMAP 在解什么问题。
1. 图像形成:光到像素的三段旅程
场景反射的光 → 镜头(聚焦,光圈控制景深)→ 传感器(曝光:快门时间 × 光圈 × ISO 的组合)→ 数字化(拜耳滤色阵列 + 去马赛克 + gamma 编码)。
两个与生成/处理直接相关的点:① 曝光三角(光圈/快门/ISO)决定了运动模糊、噪点、景深——生成模型学到的”摄影感”本质是这些物理参数的分布(prompt 里的 “shallow depth of field, f/1.4” 就是在索要光圈物理);② gamma/sRGB 编码(8.1 §2.1 已讲)是”人眼非线性”的存储妥协——处理图像的数学最好在线性光空间做。
2. 针孔相机模型:三维到二维的投影
空间点 (相机坐标系)投到像素平面的完整链条:
- 内参 K(相机自己的属性):焦距 (换算成像素单位)与主点 (光轴落点);
- 外参 (相机在世界里的位姿):旋转 + 平移——NeRF/3DGS 训练需要逐张照片的 ,COLMAP 的核心工作就是从照片对里把它们恢复出来(5.5 的伏笔在此收线);
- 齐次坐标:用多一维的坐标让投影变成一次矩阵乘(平移也能线性表达)——机器人学/3D 视觉的通用语言,习惯即可。
畸变:真实镜头不是理想针孔(桶形/枕形畸变),标定即求解畸变系数并在投影前后校正——手机相机的”超广角校正”就是它。
3. 多视角几何的最小概念集(概念级,不推导)
- 对极几何:两个相机看同一点,该点在各视图的投影位置受”对极约束”限制——这是不需要 3D 点就能从 2D 对应关系恢复相机相对位姿的钥匙(essential/fundamental 矩阵,概念知道即可);
- 三角化:两个已知位姿的相机 + 同一点的两个投影 → 交出该点的 3D 位置——重建的原理本体;
- SfM(Structure from Motion)/COLMAP:特征匹配(1.1 的”模板匹配”回归!)→ 对极约束求位姿 → 三角化出稀疏点云 → 光束法平差(bundle adjustment,全局优化)。5.5 作业里你跑的 COLMAP 就是这套;
- 对偶问题记住一句话:已知位姿求点是三角化,已知点求位姿是定位,都不知道就交替着来(SfM)。
4. 与你主线的四个接口
- 3D 管线(5.5):COLMAP 位姿是 NeRF/3DGS 的输入——现在你知道它内部的几何;
- 生成模型的视角控制:相机的 与焦距是物理意义上的可控生成旋钮(相机轨迹控制视频、焦距控制景深)——比”换视角的 prompt”硬核得多的控制量;
- 具身(5.3):机器人头上的相机内外参标定是”手眼标定”问题——VLA 部署的第一天就会遇到;
- 艺术(8.x):线性透视法的数学就是投影几何(8.1 §5 的文艺复兴透视)——达芬奇和针孔模型写的是同一套数学。
5. 自测题
- 内参和外参各是什么属性?谁需要逐图估计?(相机固有属性 / 相机在世界中的位姿;外参逐图——SfM 的产出)
- 为什么投影要用齐次坐标?(平移纳入线性变换——一次矩阵乘完成投影)
- 对极约束”强”在哪?(不需要任何 3D 信息就能约束两视图对应关系并恢复相对位姿)
- 曝光三角的三个物理量各控制什么视觉效果?(光圈→景深;快门→运动模糊;ISO→噪点)
- 生成模型里”相机参数作为控制旋钮”比 prompt 好在哪?(物理精确、连续可微、与 3D 管线兼容)
- COLMAP 的四步流水线?(匹配→对极求位姿→三角化→光束法平差)
6. 动手作业
- 用 OpenCV 对手机拍的一张棋盘格做相机标定(
cv2.calibrateCamera),读出你手机的内参和畸变系数; - 用标定结果对一张广角照片做去畸变(
cv2.undistort),前后对比; - 在 5.5 的 COLMAP 输出里找到
cameras.txt/images.txt,把某一行的外参翻译成”相机的位置与朝向”(人话); - 挑战:手写针孔投影(numpy 十行),把一个立方体的 8 个顶点投影到图上并连线渲染——你的第一个 3D 渲染器。
7. 延伸资源
- 《Multiple View Geometry in Computer Vision》(Hartley & Zisserman)——圣经级参考(选读第 1、6 章)
- OpenCV 相机标定官方教程——工程直达
- COLMAP 文档 §Getting started——配合 5.5 作业
