4. 相机模型与标定
在无人机视觉里程计中,相机是唯一的“感知入口”。如果相机模型不准确,后续的特征匹配、三角化、位姿估计都会产生系统性偏差。因此,理解针孔成像的几何关系、畸变来源以及内外参标定方法,是搭建可靠视觉里程计的第一步。
一、针孔模型:从三维点到像素的投影链
针孔模型把相机简化为一个理想小孔成像系统。设相机坐标系下一点 P_c = (X, Y, Z),归一化平面坐标为 (x, y) = (X/Z, Y/Z),再经内参矩阵 K 映射到像素坐标:
u fx 0 cx X/Z
v = 0 fy cy · Y/Z
1 0 0 1 1
K = [fx, 0, cx; 0, fy, cy; 0, 0, 1]
其中 fx、fy 是以像素为单位的焦距,cx、cy 是主点。内参描述“相机自身如何成像”,外参描述“相机在世界中的位姿”,即旋转 R 与平移 t。视觉里程计的核心任务之一,就是利用已知内参和匹配点,估计相邻帧之间的 R、t。
二、畸变模型:径向与切向误差
真实镜头由于制造和装配误差,会使直线在图像中变弯。常见畸变分为两类:
- 径向畸变:由镜头形状引起,表现为桶形或枕形,常用
k1、k2、k3描述。 - 切向畸变:由镜头与成像平面不平行引起,常用
p1、p2描述。
设归一化坐标为 (x, y),r² = x² + y²,则去畸变后的坐标为:
x_dist = x(1 + k1r² + k2r⁴ + k3r⁶) + 2p1xy + p2(r² + 2x²)
y_dist = y(1 + k1r² + k2r⁴ + k3r⁶) + p1(r² + 2y²) + 2p2xy
无人机常用广角镜头,径向畸变明显。若忽略畸变,边缘区域的特征点会产生数像素到数十像素的偏移,直接破坏对极几何约束。因此,视觉里程计通常先对图像去畸变,再提取特征。
三、内参外参标定方法
标定通常使用已知尺寸的棋盘格或圆点标定板。核心流程如下:
- 采集多张不同角度、不同距离的标定板图像,覆盖画面中心和边缘。
- 检测标定板角点,得到亚像素级图像坐标。
- 利用单应矩阵初估计内参,再通过非线性优化同时求解畸变系数和外参。
- 使用重投影误差评估标定质量,剔除误差过大的图像。
OpenCV 提供了完整的标定接口,典型命令如下:
// 角点检测
bool found = findChessboardCorners(gray, boardSize, corners,
CALIB_CB_ADAPTIVE_THRESH | CALIB_CB_NORMALIZE_IMAGE);
// 亚像素优化
cornerSubPix(gray, corners, Size(11,11), Size(-1,-1),
TermCriteria(TermCriteria::EPS + TermCriteria::COUNT, 30, 0.001));
// 标定
double rms = calibrateCamera(objectPoints, imagePoints, imageSize,
cameraMatrix, distCoeffs, rvecs, tvecs);
对于无人机视觉里程计,外参标定还包括相机与 IMU 之间的相对旋转和平移。常用方法有基于 Kalman 滤波的在线估计、基于手眼标定的离线求解,以及基于联合优化的 VIO 标定。
| 标定对象 | 典型参数 | 常用工具 | 误差指标 |
|---|---|---|---|
| 相机内参 | fx, fy, cx, cy | OpenCV、MATLAB | 重投影误差 < 0.3 px |
| 畸变系数 | k1, k2, p1, p2, k3 | OpenCV、Kalibr | 边缘残差 < 0.5 px |
| 相机-IMU 外参 | R_ci, t_ci | Kalibr、VINS-Calib | 旋转误差 < 0.5° |
| 时间偏移 | t_d | Kalibr | 偏移 < 1 ms |
四、标定实验与误差分析
一次完整的标定实验应包含数据采集、标定计算和验证三个阶段。以棋盘格标定为例,建议采集 20~30 张图像,棋盘格在画面中占比不低于 1/3,并覆盖四个角和中心区域。标定完成后,用未参与标定的图像做验证,观察重投影误差分布。
常见误差来源包括:
- 角点检测误差:光照不均、运动模糊导致角点偏移。
- 标定板不平整:打印纸张弯曲引入系统性误差。
- 模型不匹配:广角镜头仅用 k1、k2 不足以描述强畸变。
- 外参耦合:相机与 IMU 标定时,时间偏移与空间外参相互影响。
在视觉里程计中,标定误差会通过三角化和位姿估计不断累积。实际工程中,通常将内参和畸变系数视为固定值,将相机-IMU 外参作为优化变量,在滑动窗口优化中联合估计。这样既能保证实时性,又能适应安装误差和轻微形变。
总结来说,针孔模型给出了理想投影关系,畸变模型修正了真实镜头的非线性误差,内外参标定则把这两者与实际硬件对齐。只有把标定做扎实,后续的特征跟踪、三角化、位姿估计和回环检测才有可靠的基础。