相机成像原理与标定:机器人视觉第一步——针孔模型与立体视觉(Robotics and Perception)

📅 2026/8/19 19:10:40
相机成像原理与标定:机器人视觉第一步——针孔模型与立体视觉(Robotics and Perception)
相机成像原理与标定机器人视觉第一步——针孔模型与立体视觉Robotics and Perception【免费下载链接】roboticsNotebook-based book Introduction to Robotics and Perception by Frank Dellaert and Seth Hutchinson项目地址: https://gitcode.com/gh_mirrors/ro/robotics想让机器人看懂世界第一步不是深度学习而是搞懂相机成像原理与标定。相机是机器人最主要的视觉传感器——无论是自动驾驶汽车、物流机器人还是航拍无人机都依赖相机把三维世界投影到二维图像上。这篇面向初学者的指南将带你从最经典的针孔模型出发理解焦距、主点等相机内参再走进立体视觉与视差测距的世界最后看看如何用多视图重建出真实的三维场景。本文内容全部来自开源 Notebook 教科书Introduction to Robotics and Perception作者 Frank Dellaert 与 Seth Hutchinson每个概念都有配套可运行的代码示例非常适合自学入门。上图是书中用于演示三维重建的Balbianello湖畔别墅影像序列来自移动的拍摄平台是理解多视图几何的经典素材。针孔相机模型机器人眼睛的数学本质相机成像原理的核心是一个再简单不过的几何模型——针孔模型。想象一个不透光的盒子只留一个小孔外界光线穿过小孔后在盒子内部成像。真实世界中的一个三维点会沿着直线投影到图像平面上形成倒立的像。在数学上这个投影过程可以用三个关键参数完整描述它们合起来称为相机内参Intrinsic Parameters焦距 fFocal Length决定看多远——焦距越大物体在画面中越大视野越窄主点Principal Point图像中心的坐标 (u₀, v₀)即光轴与图像平面的交点像素尺寸与畸变系数将物理坐标转换为像素坐标。书中用一句话点明本质给定相机内参 u₀、v₀ 和 f再加上三维点在相机坐标系下的坐标就能精确计算出它在图像上的像素位置。这正是机器人视觉所有后续处理——目标检测、导航、建图——的共同起点。相关推导和可运行代码见 S73_drone_sensing.ipynb。内参标定与外参标定机器人视觉的两把钥匙搞懂了相机成像原理下一个关键动作就是相机标定。标定分为两类缺一不可1. 内参标定——回答相机自身长什么样的问题。焦距、主点这些参数出厂时并不精确需要通过拍摄棋盘格等标定板来求解让投影误差最小化。2. 外参标定——回答相机装在哪、朝向哪的问题。相机不是悬空的它固定安装在机器人机体上因此必须知道相机坐标系相对于机体坐标系的相对位置和朝向即外参 (R, t)。书中以无人机为例一架搭载三台相机的无人机需要精确知道每台相机在机体 FLU 坐标系下的安装位姿才能把图像中的信息正确换算到导航坐标系中。这段从导航系到机体系、再到相机系的两步变换是视觉导航的必修课。自动驾驶车辆上布满相机与激光雷达各传感器的内外参标定质量直接决定了多传感器融合的精度。立体视觉与视差测距两只眼睛如何量出深度单目相机只能得到二维图像怎么恢复深度答案是给机器人装上两只眼睛——立体视觉Stereo Vision。书中构造了一个经典场景无人机前方安装一对前视立体相机基线两相机光心间距约 10 厘米。当同一个三维点同时出现在左右两张图像中时它的像素横坐标会存在差异这个差异叫做视差Disparity。深度与视差满足一条极其优雅的关系式深度 焦距 × 基线 ÷ 视差书中实例一个位于无人机前方 10 米处的点投影到左右相机图像上视差约 3.03 像素把焦距、基线和视差代回公式反推出来的深度正好是 10 米——误差极小。这就是为什么立体视觉标定如此重要基线、焦距哪怕有一点点偏差测距结果就会成倍放大误差。完整推导与代码在 S73_drone_sensing.ipynb 中均有演示。通过多视角图像重建出的三维点云与相机位姿正是立体视觉与标定技术的综合产物。从立体视觉到三维重建SfM 与视觉 SLAM有了扎实的相机成像原理与标定基础就能挑战更高级的问题仅仅用图像能否重建出整个三维场景书中的答案是——可以这叫做运动恢复结构Structure from MotionSfM。书中使用著名的 Balbianello 别墅影像序列演示完整流程提取数百个视觉特征点构造包含投影因子的因子图再用 Levenberg-Marquardt 非线性优化器同时优化相机位姿和三维点坐标最终得到稀疏点云与精确的相机轨迹。在此基础上视觉 SLAM 再把 IMU 惯性测量与 SfM 结合成实时增量式管线让无人机边飞边建图。这部分内容含 GTSAM 代码实现位于 S74_drone_perception.ipynb是全书的高潮章节之一。如果想看相机在自动驾驶场景中的应用还可以配合阅读 S63_driving_sensing.ipynb。新手学习路线建议如果你是第一次接触机器人视觉推荐按下面的顺序推进每一章都有独立 Notebook、可直接运行先看概念阅读 S73 关于相机内参、外参与立体视觉的部分配合文中的图示理解针孔模型动手算一算运行 Notebook 中的投影与视差示例亲手验证深度 焦距 × 基线 ÷ 视差再看重建进入 S74观察 SfM 如何从多张照片重建出三维结构最后串起来把相机模型与前面学过的状态估计、贝叶斯滤波联系起来理解视觉 SLAM 的整体框架。这套 Notebook 教程覆盖从扫地机器人、分拣机械臂到自动驾驶、无人机的完整场景全部以 Jupyter Notebook 形式呈现边看边跑是学习机器人视觉与感知的绝佳入门材料。从今天开始用一篇文章的时间搞懂相机成像原理与标定你就迈出了机器人视觉的第一步。【免费下载链接】roboticsNotebook-based book Introduction to Robotics and Perception by Frank Dellaert and Seth Hutchinson项目地址: https://gitcode.com/gh_mirrors/ro/robotics创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考