2. 视觉定位基础

无人机双目视觉定位的本质,是把图像中观测到的像素点,通过一系列坐标变换和相机模型,映射回真实三维空间,从而估计无人机的位置与姿态。要理解双目定位,必须先掌握五个基础概念:坐标系与变换、相机模型、针孔成像、畸变模型、内外参标定。它们共同构成从“像素”到“世界”的数学桥梁。

一、核心原理:从像素到世界的坐标链条

视觉定位不是一步完成的,而是一条层层递进的坐标变换链。图像上的一个点先以像素坐标 (u, v) 表示,经过相机内参矩阵反变换到归一化平面,再结合深度信息得到相机坐标系下的三维点,最后通过外参(旋转 R 与平移 t)转换到世界坐标系。双目系统则利用左右相机的视差,先恢复深度,再完成上述映射。

这条链条中,内参决定“相机如何看”,外参决定“相机在哪里、朝向何方”,畸变模型修正“镜头看得准不准”,而坐标系变换则统一了所有量的表达基准。任何一个环节出错,都会导致定位结果整体偏移或发散。

视觉定位坐标变换链:像素 → 相机 → 世界 像素坐标 (u, v) 归一化平面 (x/z, y/z) 相机坐标 (Xc, Yc, Zc) 世界坐标 (Xw, Yw, Zw) 内参K⁻¹ 深度Z 外参R,t 针孔成像模型 投影关系:s·[u, v, 1]ᵀ = K · [R | t] · [Xw, Yw, Zw, 1]ᵀ 内参 K = [fx, 0, cx; 0, fy, cy; 0, 0, 1],外参 [R|t] 描述相机相对世界位姿 畸变模型 径向畸变:k1, k2, k3(桶形/枕形) 切向畸变:p1, p2(镜头与像面不平行) 双目视差与深度 视差 d = uL − uR 深度 Z = f · B / d(B 为基线)

二、方法流程:标定与定位的完整步骤

要让上述链条真正可用,需要先完成相机标定,再进入在线定位。典型流程如下:

  1. 采集标定图像:使用棋盘格或圆点标定板,从不同角度、不同距离拍摄 15~30 张图像,覆盖画面中心和边缘区域。
  2. 提取角点:检测标定板角点像素坐标,建立其与已知世界坐标的对应关系。
  3. 求解内参与畸变:用张正友标定法解算 fx、fy、cx、cy 及 k1、k2、p1、p2 等参数。
  4. 求解外参:双目系统还需标定左右相机之间的旋转 R 和平移 t,得到基线 B。
  5. 立体校正:用标定结果对左右图像做极线校正,使同名点位于同一水平线,便于快速匹配。
  6. 在线定位:实时提取特征、计算视差、恢复深度,再经坐标变换输出无人机位姿。
标定质量直接决定定位精度。建议标定后检查重投影误差,通常应小于 0.3 像素;若明显偏大,需重新采集图像或检查标定板平整度。

三、案例/场景:双目无人机悬停定位

假设一架双目无人机在室内悬停,基线 B = 0.12 m,焦距 f = 600 像素。左相机看到某特征点像素横坐标 uL = 420,右相机对应点 uR = 360,则视差 d = 60 像素,深度 Z = f·B/d = 600×0.12/60 = 1.2 m。该点再经内参反投影到相机坐标系,最后用外参转换到世界坐标系,即可得到无人机相对环境的位置。

若镜头存在明显畸变而未校正,边缘区域的角点会被“拉弯”,视差计算出现偏差,深度估计随之产生数厘米甚至数十厘米误差。因此畸变校正是定位前不可跳过的一步。

四、关键参数与常见误区

概念 符号/参数 作用 常见误区
内参 fx, fy, cx, cy 像素与归一化平面之间的映射 把内参与分辨率混为一谈,换分辨率后未重新标定
外参 R, t 相机坐标系到世界坐标系的位姿 认为外参固定不变,忽略无人机运动带来的实时变化
畸变 k1, k2, k3, p1, p2 修正镜头非线性误差 只做去畸变却不更新内参,导致边缘精度下降
基线 B 决定深度测量范围与精度 盲目增大基线,忽略匹配难度和盲区扩大
复盘时重点检查三件事:标定板是否平整、图像是否覆盖画面边缘、重投影误差是否达标。多数“定位漂移”问题,根源都在标定环节而非算法本身。

五、标定参数示例

以下是一组典型双目相机标定输出,可用于对照理解各参数含义:

左相机内参 K_left:
[ 605.3    0.0  319.8 ]
[   0.0  604.7  239.5 ]
[   0.0    0.0    1.0 ]

右相机内参 K_right:
[ 603.9    0.0  321.2 ]
[   0.0  603.5  238.7 ]
[   0.0    0.0    1.0 ]

畸变系数 (k1, k2, p1, p2, k3):
[-0.281  0.092  0.001  -0.002  0.000]

右相机相对左相机外参:
R = [ 0.9999   0.0012  -0.0031 ]
    [-0.0012   0.9999   0.0020 ]
    [ 0.0031  -0.0020   0.9999 ]
t = [-0.1201  0.0008  0.0015]  (m)

基线 B ≈ 0.120 m
重投影误差 RMS ≈ 0.18 px

掌握这些基础后,后续的双目匹配、视差优化、位姿解算才有可靠的数学起点。坐标系与变换提供统一语言,相机模型与针孔成像给出投影关系,畸变模型保证观测准确,内外参标定则把这一切落到真实无人机系统上。