最近工作用到了SFA3D点云检测算法,该算法根据点云识别出目标然后通过点云和图像的空间关系将目标投影到图像上。下面的图展示了这个关系:
是雷达坐标系
是相机坐标系
表示中间过度的坐标系,这里可以指对bin文件的旋转
在L坐标系下的点经过
得到C坐标系下的
,即
但是在这个过程中,为了适配算法,我们需要对rosbag转kitty数据集类型的Bin文件时,将点云进行坐标变换。
然后再将变换到坐标系下的
通过一个标定文件投影到相机坐标系C下为
即。
由上面分析和公式(1)可知
推出
下面获取(由标定文件给出)
运行标定的投影工具(修改代码使其可以打印出)
roslaunch cam_lidar_calibration project_img.launch
下面获取(自己设置的bin文件的旋转的逆)
运行bag2kitty的工具(自己修改代码,可以直接获取角度并旋转点云,打印出旋转矩阵)
现在我们已经知道了(由标定文件给出)和
(自己设置的bin文件的旋转),所以现在需要求得:
得出为最后的投影矩阵,放到标定文件中