相机设备
理解相机硬件对于选择合适的传感器以及识别下游任何算法都无法修复的系统性误差至关重要。SLAM 系统看到的图像,早在检测到任何特征之前,就已经由镜头、传感器和曝光设置所决定。
镜头
镜头决定了视场角(FoV)、景深和畸变:
- 焦距:焦距越长 = 视场角越窄。SLAM 通常使用广角镜头以获得宽视场角,从而最大化视差并在旋转时保持特征在视野内。**远心镜头(Telecentric lenses)**则是相反的专用类型:不同深度下放大倍率恒定,用于计量学而非 SLAM。
- 光圈(数):光圈越大(数越小)进光量越多,可使用更快的快门速度、减少运动模糊,但代价是景深变浅 —— 不同深度的特征可能会变得模糊。
- 镜头 MTF(调制传递函数):量化镜头在每个空间频率下能保留多少对比度 —— 本质上是光学系统的分辨能力。高分辨率传感器搭配低 MTF 的镜头,仍然会得到模糊的图像;在选型硬件时应检查 MTF 曲线。
- 鱼眼镜头:视场角超过 180°,但需要特殊的投影模型(等距投影、等立体角投影)。
图像传感器:CCD 与 CMOS
- CCD:历史上具有更高的图像质量和更低的噪声;成本更高、功耗更大。目前仍用于高端科研相机。
- CMOS:机器人领域的主流选择 —— 功耗更低、成本更低、支持片上处理。现代 CMOS 已能达到 CCD 的画质水平。
全局快门与卷帘快门。 **全局快门(Global shutter)**同时曝光所有像素,得到几何一致的快照。**卷帘快门(Rolling shutter)**逐行曝光,当相机或场景快速运动时会使图像发生畸变。大多数低成本相机都是卷帘快门;对于动态平台,要么选购全局快门相机,要么在模型中进行补偿。
曝光、ISO 与分辨率的权衡
图像质量是三者之间的博弈:
- 更长的曝光时间能采集更多光线,但会增加运动模糊 —— 平台运动越快,曝光时间就必须越短。
- 更高的 ISO/增益可以弥补短曝光的不足,但代价是噪声增加,这会降低特征检测和匹配的质量。
- 更高的分辨率能提供更多细节,但会增加每帧的处理时间;许多 SLAM 系统即使传感器支持更高分辨率,也运行在 640x480 或 1280x720。
自动曝光会在帧与帧之间改变图像亮度,这破坏了直接法所依赖的亮度恒定假设 —— 固定曝光或光度标定有助于解决这个问题。对于 VIO 平台,还要确保相机支持硬件触发/时间戳:软件时间戳会有毫秒级抖动,这对紧耦合的相机-IMU融合是致命的。
深度获取型相机配置
- 双目视觉:两个相机、基线为 ;深度由视差 得出,公式为 。属于被动式方案 —— 可在室外使用,但在无纹理表面上表现不佳。由于 ,固定的视差误差会导致深度误差大致按 增长:基线直接决定了可用的深度范围,但更大的基线也会提高最小可测深度并使匹配更困难。
- RGB-D / 结构光:投射红外图案并对其进行三角测量(例如 Kinect v1)。适合室内的稠密深度获取;在阳光下会失效。
- 主动红外双目 / 飞行时间(ToF):ToF 传感器逐像素测量发射红外光的往返时间。体积小、速度快;但存在测量范围限制和多路径伪影问题。
视差图——一种逐像素记录双目视差的图,通常由半全局匹配(SGM)计算得出,或直接从 RGB-D 传感器读取——是标准的中间产物;每个具有视差 的像素通过双目模型转换为一个三维点。
为 SLAM 选择相机
对于室内 SLAM,一个合理的起点是配备广角镜头的 640x480 或 1280x720 全局快门相机;对于室外的高速平台,应优先考虑全局快门和帧率,而不是分辨率。然后再核实那些真正主导实际表现的琐碎细节:固定(或可控)曝光、硬件时间戳、刚性安装,以及你的标定工具所支持的镜头/模型组合。
常见陷阱
- 把硬件问题误判为算法问题:卷帘快门偏斜、自动曝光闪烁和运动模糊,都会伪装成”跟踪bug”。
- 红外干扰:多个结构光/ToF 相机观测同一场景时会互相污染各自的图案。
- 松动的安装座与发热:相对于 IMU 会发生形变、或随着预热而内参发生偏移的相机,会在不知不觉中使标定失效。
- USB 带宽:一条总线上挂多个相机会不可预测地丢帧;要检查拓扑结构,而不仅仅是规格参数。
对SLAM的意义
传感器的选择限定了可达到的精度上限:基线决定了双目深度的精度,快门类型决定了可承受的运动速度,镜头的视场角/MTF 决定了能获得多少可用特征。实践中许多”算法bug”最终发现其实是卷帘快门偏斜、自动曝光闪烁或运动模糊 —— 这些问题应在硬件和配置层面解决,而不是在代码中解决。