基于投影矩阵将点云投影到相机平面上

问题描述 投票:0回答:1

我有一个点云,我使用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坐标表示)。

python camera-calibration point-clouds lidar
1个回答
0
投票

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

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.