1. 实现的效果
通过本软件实现求解相机和LiDAR的外参,即2个传感器之间的三维平移[x, y, z]和三维旋转[roll, pitch, yaw]。完成标定后,可将点云投影到图像,效果图如下:
本软件的优势:(1)无需特制的标定板(2)开箱即用,无需繁琐的开发环境配置(3)标定速度快,只需手工选择6个点对,即可完成标定。
2. 运行前准备
(1)相机内参
可使用opencv或者matlab进行标定;一般相机厂家也会提供,可联系厂家获取。
相机矩阵格式为:
镜头畸变格式为:
,,,这几个参数如果没有,可以不提供。
在本程序中,存在camera_config.json的配置文件,相机内参在里面修改,如下图所示:
javascript
{
"camera_matrix": [ //相机矩阵
[1189.8516705838,0.0,958.9487412898],
[0.0,1189.8896522849,538.5150082596],
[0,0,1]
],
"distortion_coefficients": [ //镜头畸变
4.2219264042,1.0156623421,9.72633e-05,9.40934e-05,-0.0139758468,4.6602774064,2.6717043123,0.0850373937
],
"tvec":[0,0,0], //初始[x, y, z]平移,单位:米,默认全为0
"rvec":[0,0,0] //初始[roll, pitch, yaw]旋转,单位:度,默认全为0
}
(2)数据准备
采集多组图像和点云,图像保存为png格式 ;点云保存为pcd格式 。注意每组图片和点云的文件名必须完全一致 ,如下图蓝框和红框所示。另外,camera_config.json文件必须和这些数据在同一个文件夹下,否则程序会出错。
pcd采用ASCII码格式存储,如下图所示,每个点包含[x y z intensity ring timestamp]6个元素,其中,[x y z]是必须有的,其他元素如果没有,用0填充。另外文件头的WIDTH和POINTS均设置为该pcd文件包含的总点数。
javascript
# .PCD v0.7 - Point Cloud Data file format
VERSION 0.7
FIELDS x y z intensity ring timestamp
SIZE 4 4 4 4 2 8
TYPE F F F F U F
COUNT 1 1 1 1 1 1
WIDTH 144000
HEIGHT 1
VIEWPOINT 0 0 0 1 0 0 0
POINTS 144000
DATA ascii
(3)数据采集注意事项
标记物要选取角点明显的物体,比如下图中的黄色纸箱子。纸箱子排放尽量做到左右远近,均匀分布。可以一次性排放多个箱子。
标记物除了纸箱子,也可以在淘宝上买指引牌,如下图所示,建议买大一些的。
3. 软件操作
3.1 点击"设置数据路径"按钮,选择数据文件夹
3.2 正常加载点云和图片
3.3 各区域操作
|-------|-----------|-------------------------|
| 区域 | 操作 | 功能 |
| 图像区域 | 鼠标滚轮 | 放大/缩小图片 |
| 图像区域 | ctrl+鼠标左键 | 在图像上加点 |
| 图像区域 | ctrl+鼠标右键 | 删除上一个点 |
| 图像区域 | 鼠标右键 | 弹出菜单,保存数据或删除上一个点 |
| 图像区域 | 鼠标中键并移动鼠标 | 平移图像 |
| 点云区域 | ctrl+鼠标左键 | 在点云上加点(必须选中点云,点击空白区域无效) |
| 点云区域 | ctrl+鼠标右键 | 删除上一个点 |
| 点云区域 | 鼠标滚轮 | 放大/缩小 |
| 点云区域 | 按住鼠标左键并移动 | 旋转视角 |
| 点云区域 | 按住鼠标中键并移动 | 平移视角 |
| 点云区域 | ↑↓←→按键 | 旋转视角 |
| 点云区域 | - 键 | 选中点尺寸变小 |
| 点云区域 | + 键 | 选中点尺寸变大 |
| 数据列表区 | 鼠标左键 | 切换图片 |
3.4 在图像中选点
注意点:必须选择明显的角点,如果角点不够,可以如下图所示放纸箱子,然后点击纸箱子的角点,如0和1号。另外也可以选择建筑物的角点,如2号。
3.5 在点云中选点
注意点:点云中的点序号是P0、P1这样的格式,P0对应图像中的0号点,其他依次类推。必须做到图像和点云中的点数量、位置、编号完全对应,否则标定会失败。在点云中可以旋转平移视角,帮助选择到正确位置的点。
3.6 执行标注
注意点:点云和图像中的点对必须大于等于6,才能进行标注;如果当前帧不够6对,切换到下一帧数据,继续选点,所有帧上选择的点对之和超过6即可。
点击"执行标定",如果一切正常的话,会输出重投影误差,超过10可以认为标定不成功;但小于10也并不能保证标定成功。需要进一步将点云投影到图像上进行检查。
3.7 点云投影到图像
如下图所示,点击"在图像上显示点云",即可看到可视化。
如果出现下图所示,点云和图像错乱的现象,这个是由于图像和点云的重叠FOV没有设置对,重复下图中1,2两个步骤进行调整。
这里的样例相机水平视角是100°,所以调整到100°左右,如下图所示位置,即可正确显示。
4. 软件下载链接
链接: https://pan.baidu.com/s/1BH_ic4uw4OGDFMVmo9Z4OQ?pwd=uqm7 提取码: uqm7