根据投影矩阵将点云投影到相机平面上

时间:2019-10-15 03:35:15

标签: python camera-calibration point-clouds lidar

我有一个点云,可以使用open3d从.dat转换为.ply。 .ply文件的内容是与x,y,z点相对应的(nx3)矩阵,以及与RGB信息相对应的另一个(nx3)。总点数超过200万(激光雷达安装在车辆顶部)。我还有一组立体声摄像头,它们安装在LiDAR的旁边(一个,一个,一个),其中只有摄像头的固有参数。

我正在尝试复制在几份论文中发现的公式,可以从here的等式2和3中看到。它最初是在Kitti dataset论文的等式8中找到的。基本上,它们是使用以下等式基于摄像机的投影来投影点云:where P is the projection matrix--containing the camera intrinsic parameters, R the rectifying rotation matrix of the reference camera, T_{cam}^{velo} the rigid boy transformation from lidar coordinates to camera coordinates, and T_{velo}^{imu}

我想指出的是,并非所有论文都使用了最后一个参数(T_ {velo} ^ {imu}),并且由于我没有imu信息,因此我将省略该参数。

虽然我只有相机固有参数,但是我可以通过Essential matrix提取相机旋转和平移。除数据外,我还有一个文件,其中包含在拍摄图像时相机和激光雷达的偏航,俯仰和横滚(以度为单位)。我知道我可以从这些参数中提取旋转矩阵,但是我不确定在这种情况下如何使用它们,特别是要获得从激光雷达到相机坐标的刚体转换。我还要提到的是,在拍摄每张图像时,我具有相机的真实坐标(以x,y,z坐标表示)。

1 个答案:

答案 0 :(得分:0)

这是在激光雷达和相机坐标系之间转换点的详细答案。我使用3D变换(4x4矩阵)的齐次表示法是因为它更易于操作,但是如果使用R和T代替,则将完全相同。 (等式会更长)

enter image description here