【问题标题】:LiDAR to camera image fusion激光雷达到相机图像融合
【发布时间】:2019-09-03 09:08:40
【问题描述】:

我想在相机图像{u,v} 上融合 LiDAR {X,Y,Z,1} 点,我们有 LiDAR 点、相机矩阵 (K)、畸变系数 (D)、相机和 LiDAR 的位置 (x,y,z ),相机和激光雷达的旋转 (w+xi+yj+zk)。涉及三个坐标系。车轴坐标系(X:forward,Y:Left,Z:up),LiDAR坐标系(X:Right,Y:Forward,Z:Up)和相机坐标系( X:右,Y:下,Z:前)。我尝试了以下方法,但这些点没有正确融合。所有点都被错误地绘制了。

坐标系:

对于给定的相机和激光雷达的旋转和位置,我们使用以下公式计算平移。

t_lidar     = R_lidar  * Position_lidar^T
t_camera    = R_camera  *Position_camera^T

然后将相对旋转和平移计算为流

R_relative = R_camera^T * R_lidar
t_relative = t_lidar -  t_camera

那么激光雷达点[X,Y,Z,1]和图像帧[u,v,1]之间的最终变换矩阵和点变换由下式给出:

T =  [ R_relative | t_relative ] 
  [u,v,1]^T = K * T * [X,Y,Z,1]^T

我有什么遗漏的吗?

【问题讨论】:

    标签: matlab opencv camera fusion lidar


    【解决方案1】:

    直接使用opencv projectpoint

    https://docs.opencv.org/2.4/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.html#projectpoints

    C++: void projectPoints(InputArray objectPoints, InputArray rvec, InputArray tvec, InputArray cameraMatrix, InputArray distCoeffs, OutputArray imagePoints, OutputArray jacobian=noArray(), double aspectRatio=0)

    objectPoints – 对象点数组,3xN/Nx3 1 通道或 1xN/Nx1 3 通道(或向量),其中 N 是视图中的点数。

    rvec – 旋转向量。有关详细信息,请参阅 Rodrigues()。

    tvec – 平移向量。

    cameraMatrix – 相机矩阵

    【讨论】:

      猜你喜欢
      • 2019-10-30
      • 1970-01-01
      • 1970-01-01
      • 2021-07-15
      • 1970-01-01
      • 2019-10-14
      • 1970-01-01
      • 2020-05-28
      • 1970-01-01
      相关资源
      最近更新 更多