1. 重投影误差
检测到的二维图像的角点和真实世界三维点的投影点之间的距离。使用标定得到的相机的内外参和畸变参数将三维世界的点投影得到像素像素坐标系中的二维角点,然后和算法检测到的二维图像的角点计算均方误差(RMS), 一般平均重投影误差小于1个像素是可以接受的(根据算法需求而定)。计算每张图的重投影误差,可以筛选去除误差较大的图片。
2. 内参扰动
验证原理:
在标定的时候保存了标定板相对于相机的所有旋转向量、平移向量和重投影点的像素坐标。标定验证时进行仿真,假设有一个虚拟相机的内参与标定结果一致,并拍摄了虚拟的标定板位置得到一系列的投影点,这个时候对相机内参进行扰动,利用solvePnP重新计算新的旋转平移,并得到新的投影点的重投影误差。若新的重投影误差比标定得到的重投影误差要大,则代表标定的误差小于给定的扰动值,即标定通过。反之则不通过。
操作方法
由于无法知道真实的内参且标定的内参总有误差,采用扰动实验来确保标定的主点、焦距的误差控制在指定的阈值百分比以下,具体做法以主点 cx 扰动为例:
- Step 1:利用输入的内参、2D 角点、3D 靶标点,计算外参 T
- Step 2:利用标定的内参、外参 T,将 3D 点重投影到图像获得 repro_corner_1,repro_corner_1 和图像上检测到的角点 det_corner 可计算重投影误差 error_1
- Step 3:假设标定的内外参完全无误差,将 repro_corner_1 作为后续扰动测试的 gt_corner
- Step 3:对于内参中的 cx 进行扰动,在 -0.3 % ~ 0.3 % 内均匀采样若干次,比如最大扰动量为 0.3 %,即此时扰动完的 cx' = cx * (1 + 0.3%)
- Step 4:对于每次扰动,利用3D点、扰动后的内参、gt_corner,计算每个图片的 new_T
- Step 5:利用 new_T、扰动后的内参、3D点,计算重投影角点 repro_corner_2,并与 gt_corner 计算重投影误差 error_2。当扰动为 0 时,error_2 理论上为 0;扰动越大,disturb_repro_error越大
- Step 6:若从 0% 扰动到 0.3 % 过程中,出现 error_2 > error_1,说明内参标定最大误差在 0.3 % 以内
3. 畸变校正后图像效果(线性度)
利用标定的内参将图像和检测的角点去畸变,以棋盘格标靶为例,每个角点有2条直线经过,分别为靶标上的水平方向和竖直方向,在你和两个方向上的直线之后,计算该点到2条直线的距离作为直线度误差,统计所有角点的平均直线度误差。
注:图例为示意图,具体情况视标定靶标而定
4.三角测量
该方案是Mobileye提出的,具体方案如下:
4.1 方案原理
首先ME内参包含以下参数:
- 焦距 Focal Length
- 主点 Principle Point
- 畸变中心COD
- 畸变系数 Distorition Model Coefficient
三角验证标靶如下,标靶包含1个角点,标靶距离镜头入瞳的距离为~20m.
测试方案示意图如下:
- D_between是两个标靶上角点之间的实际距离,要求为~10m(±1m)
- Z_right(或Z_top),Z_left(或Z_bottom)为相机入瞳距离标靶的距离,要求为~20m(±1m)
- 标靶和camera必须水平方向对齐,误差不超过±5cm
- camera必须固定的刚体支架上,保证测试稳定
- D_between、Z_right(或Z_top),Z_left(或Z_bottom)的测量误差要求小于2mm
通过旋转或者倾斜camera,获取如下几组图像,包含9组水平方向的图和7组垂直方向的图
D_between必须保证测量精度,测试过程中测量一次即可,因为这个值是固定的。
Z_right(或Z_top),Z_left(或Z_bottom)每次拍摄都需要重新测量。
每张图片都可以通过算法获取两个角点的坐标,通过三角关系即可计算出这两个角点的测量距离d_between,并获得与实际距离D_between之间的相对误差。
工装误差来源:
- 入瞳和角点之间距离的测量误差
- 两个角点之间距离的测量误差
- 角点检测误差
以一个52°1.3Mp的相机为例:
D_between=10m±2mm,测量误差为±0.02%
Z_left=20m±2mm,测量误差为±0.01%
Z_right =20m±2mm,测量误差为±0.01%
角点检测误差=±0.1pixel, 有两个角点,故两个角点相对误差为±0.2pixel, 假设半图像宽度为600pixel,则角点检测误差为±0.2/600=0.03%
考虑以上所有因素,总的测量误差为±0.07%
校验流程
- 固定相机
- 调整相机,使得标靶位于position1的位置
- 测量入瞳到角点的距离Z
- 拍摄图像
- 重复上述步骤获取所有的16张图
- 计算每次拍摄得到的d_between,计算与D_between的相对误差。
Mobileye要求的精度要求如下:
d_between与D_between之间的相对误差要求小于0.15%
-0.15%<Epair=(D_between-d_between)/D_between<0.15%
所有的相对误差之间的差异小于0.25%
Emax = max Epair - min Epair <0.25%
当然三角测量主要是针对小孔模型而言,对于fisheye camera不适用