- 相机内参标定:实现相机坐标系中三维点至成像平面坐标系二维点的转换
使用toolbox_calib工具包,求得相机内参:fc(1), fc(2), cc(1), cc(2), skew, distortion - 相机与激光雷达的联合标定:实现激光雷达坐标系中三维点至相机坐标系中三维点的转换
使用lcct工具包,求得旋转矩阵R[3×3]和平移矩阵T[3*1] - 对雷达数据和图像数据相互投影,得到渲染图像进行精度的验证
- 棋盘格图案示例 ![CalibBoard] [CalibBoard] [CalibBoard]: imgs/calibration_pattern/pattern.pdf
- 测量棋盘格方块的边长(mm)及 x , y 轴方格的个数
- 校准目标的尺寸越大通常越好, 建议将图案打印在塑料或厚的海报纸上并粘在平板上防止变形。
- 请尽量选择奇偶型棋盘格 [x!=y]
- 15-25对相机-激光雷达图像,用于相机内参标定和联合标定
- 相机数据:尽量保证包含摄像范围内尽可能全面的视角和位置变换
- 点云数据:尽量保证至少20-30个激光雷达点打在标定板上,此处根据设备对标定板至激光雷达原点的距离有一定要求
- 命名规则:图像为img_targetX.jpg ; 点云为laser_targetX.xyz;请注意序号的对应!
-
.pcd转.xyz:从每一帧的pcd文件中提取三维坐标点信息
运行 make ./pcd2xyz 0509- 在此可通过arg 参数选择日期文件夹中的数据
- 原始文件夹:sample data/caliblidar/0509
- 目标文件夹:sample data/caliblidar/0509_xyz
-
[optional] 预处理所有.xyz文件,选取一定范围内的数据
运行 filter_xyz.py- 原始文件夹:sample data/caliblidar/0509_xyz
- 目标文件夹: sample data/caliblidar/0509_filtxyz
-
通过 matlab plot 画出点云图,手工选取标定板上的变量, 并创建并保存至相应的 laser_targetX.xyz文件
运行 plotxyz.m- 需把plotxyz.m放置在*.xyz文件夹中 如图示例:
![select point example] [select point example]
[select point example]: imgs/select_point_example.png
工具包页面:
![main plane] [main plane]
[main plane]: imgs/Laser-Camera_Calibration_Toolbox.png
-
点击 select camera calib file 按钮: 选择匹配的相机内参文件 Calib_Results.mat
-
点击 Search scan files 按钮: 选择输入的图像-激光雷达对
- Enter base name of scans (without numbers or suffix): laser_target
- Enter suffix of scan files ([] = "xyz"):
--- Loaded list of active scan/image pairs ---
1 2 3 6 7 9 10 11 12 13 14 15
只需输入.xyz的前缀名称,即可自动添加与之对应的图像,此处需保证两种数据序号的统一
-
点击 Select planes 按钮 : 选择标定板上的数据点
- 在标定每一张图像前,建议通过面板下方<< pre和 Next>>按钮检查所有雷达数据是否清晰可辨,并剔除不可使用的数据对并进行重新处理。
- 选择标定板四个角点,在这个区域内的数据点则会被自动选择。请注意保证选择范围内的数据足够准确,保证有20-30点被选中即可。 如图:
![select plane example] [select plane example]
[select plane example]: imgs/select_plane_example.png
- 点击 Calibrate 按钮 生成标定结果
- 点击 Save Calib file 按钮 保存标定结果
- 在matlab中进入文件夹路径运行 calib_gui.m ,选择 standard模式
工具包页面:
![toolbox_calib] [toolbox_calib]
[toolbox_calib]: imgs/toolbox_calib.png
2. 点击 Read images 读取相机图像数据
3. 点击 Extract grid corners 提取图像中标定板的角点
如图示例:
![Extract grid corners] [Extract grid corners]
[Extract grid corners]: imgs/Extract_grid_corners.png
4. 点击 Analyse error 查看标定误差 / 点击 Reproject on images 查看在图像上的二次投影
如图示例:
![error example] [error example]
[error example]: imgs/error_example.png
-
[optional] 对个别误差较大的数据:
- 点击 Recomp.corners 重新提取角点并重复 4-5
- 删除/替换图像数据
-
点击 Calibration 进行标定 / Save 存储结果
详细细节参照:官方文档
- 将三维点云坐标投至二维图像,根据距离渲染颜色
- 将二维像素点的颜色渲染至对应的三维点云