4、多传感器标定基础:相机内参、外参、畸变模型、标定板设计

多传感器标定,说白了就是给无人机装上「眼睛」之后,还得教会两只眼睛怎么配合看东西。我刚开始做融合巡检那会儿,总觉得把可见光和热成像两个镜头装在一起就能直接用了,结果一飞出去,画面叠在一起全是重影,根本没法看。

嗯,这里要注意——标定不是一次性的活。温度变化、振动、甚至镜头拧紧的力度,都会影响标定结果。我个人习惯是每次出任务前,至少做一次快速验证。

核心概念一句话:标定就是找到「真实世界中的点」与「图像上的像素」之间的数学映射关系。

4.1 相机内参——镜头自己的「脾气」

内参描述的是相机内部的光学特性。说白了,就是镜头本身怎么把光线「掰弯」到传感器上的。

内参矩阵通常写成这样:

K = [fx  0  cx
     0  fy  cy
     0   0   1]

其中:

  • fx, fy:焦距在像素单位下的值。我遇到过一台热成像相机,厂家给的fx和实际差了3个像素,结果测距偏差了快2米。
  • cx, cy:光心偏移。理论上应该在图像正中心,但实际装配总有偏差。

我的经验:买来的相机一定要自己重新标定内参,别信出厂值。尤其是热成像相机,温度变化会让内参漂移,我吃过这个亏。

4.2 相机外参——相机在空间中的「位置和姿势」

外参描述的是相机坐标系和世界坐标系之间的关系。包含旋转矩阵R和平移向量t。

你想想看,无人机在天上飞,相机装在云台上,云台又在动——这一串变换关系全靠外参串起来。

P_cam = R * P_world + t

外参标定中,我最头疼的是旋转矩阵的表示方式。有人用欧拉角,有人用四元数,还有人用旋转向量。我个人习惯用四元数,因为不会遇到万向锁的问题。

避坑指南:我曾经在项目里用欧拉角表示外参,结果云台转到90度俯仰时,航向角突然跳了180度。后来全部改成四元数,再没出过问题。

4.3 畸变模型——镜头不是完美的

没有镜头是完美的。畸变主要分两类:

  1. 径向畸变:光线经过透镜边缘时弯曲得更厉害。表现为「桶形畸变」或「枕形畸变」。
  2. 切向畸变:镜头和传感器不平行导致的。这个在热成像相机上特别明显,因为热成像的镜头和传感器封装往往有装配误差。

畸变模型用多项式来描述:

x_distorted = x * (1 + k1*r^2 + k2*r^4 + k3*r^6) + 2*p1*x*y + p2*(r^2 + 2*x^2)
y_distorted = y * (1 + k1*r^2 + k2*r^4 + k3*r^6) + p1*(r^2 + 2*y^2) + 2*p2*x*y

其中k1,k2,k3是径向畸变系数,p1,p2是切向畸变系数。

实际案例:我做过一个项目,可见光相机畸变很小,但热成像相机边缘畸变达到15个像素。如果不校正,融合后的图像边缘全是错位的。后来我专门为热成像设计了一个高密度标定板,才把这个问题解决。

4.4 标定板设计——工欲善其事,必先利其器

标定板是标定的「尺子」。设计得好,标定精度能提升一个数量级。

对于可见光和热成像融合标定,标定板有几个特殊要求:

  • 双模态可见:标定板上的图案,可见光下能看到,热成像下也能看到。我常用的方案是:在铝板上贴棋盘格,然后用热风枪加热,这样热成像下棋盘格和背景有温差,就能看到图案。
  • 尺寸选择:格子大小要适中。太小了,远距离看不清;太大了,近距离拍不全。我一般按「格子大小 = 视场角覆盖范围的1/20」来估算。
  • 精度要求:标定板的角点位置精度要优于0.1mm。我见过有人用打印纸贴泡沫板,结果标定出来的内参全是错的。

我的小技巧:标定板背面贴一个加热片,通电后温度均匀。这样热成像下的图案清晰度能提高很多。成本也就几十块钱,但效果立竿见影。

4.5 知识体系总览

下面这张图是我自己整理的标定知识框架,你可以对照着看:

多传感器标定知识体系 多传感器标定 相机内参 焦距 fx, fy 光心 cx, cy 相机外参 旋转矩阵 R 平移向量 t 畸变模型 径向畸变 k1,k2,k3 切向畸变 p1,p2 标定板设计 双模态可见 尺寸与精度 目标:建立 3D世界 ↔ 2D图像 的映射 实现可见光与热成像的像素级对齐

4.6 标定流程实操要点

标定流程其实不复杂,但细节决定成败。我总结了几条铁律:

  1. 多角度采集:标定板要在视场的各个位置、各个角度都出现。我一般拍20-30张,覆盖边缘和中心。
  2. 距离变化:近处拍几张,远处拍几张。这样能更好地估计畸变参数。
  3. 光照均匀:可见光标定最怕反光。热成像标定最怕温度不均匀。我都是在阴天或者室内做标定。
  4. 重投影误差:标定完成后,检查重投影误差。一般可见光要小于0.5像素,热成像可以放宽到1-2像素。

重要提醒:标定完成后,一定要做一次实际场景验证。我见过有人标定结果重投影误差0.3像素,但实际融合还是对不上。为什么?因为标定板场景和实际飞行场景的温差、光照完全不同。所以,标定只是第一步,验证才是关键。

4.7 融合标定的特殊之处

可见光和热成像的融合标定,比单传感器标定多了一个步骤——联合标定。也就是要找到两个相机之间的相对位姿关系。

联合标定的核心思路是:让两个相机同时拍摄同一个标定板,然后通过各自的外参,反算出它们之间的变换矩阵。

T_vis2ir = T_vis_world * inv(T_ir_world)

其中T_vis_world是可见光相机到标定板的外参,T_ir_world是热成像到标定板的外参。

这里有个坑——两个相机的分辨率往往不一样。可见光可能是1920x1080,热成像可能是640x512。标定时要确保标定板在两个图像中都清晰可见,且角点检测准确。

我的做法:先分别标定两个相机的内参和畸变,固定住。然后再做联合标定,只优化外参。这样参数少,收敛快,也不容易过拟合。

好了,多传感器标定这块,核心就是这些。内参管镜头本身,外参管位置姿态,畸变模型管镜头缺陷,标定板管测量基准。四者缺一不可。你把这些搞明白了,融合巡检的第一步就算站稳了。


专注资料整理