使用OpenCV生成深度图的虚幻模拟数据CARLA

问题描述

我正在 CARLA 模拟器(虚幻引擎环境)中使用几个 RGB 相机(+深度相机)。摄像机在 [0.5,-1,1.8][0.5,1,1.8](分别为左和右,虚幻坐标系)连接到车辆(位置相对于汽车)。虽然在模拟过程中第一个相机被认为是固定的,但第二个相机的位置在位置和旋转上都受到高斯噪声的干扰。

摄像机像普通立体声设置一样水平移位。直观上,第二个摄像头的相对位置是[0+n_x,2+n_y,0+n_z],其中n_xn_yn_z是三个方向的高斯噪声。将坐标更改为 OpenCV 的坐标,结果相对位置为 [2+n_y,-n_z,n_x]n_z 上的减号来自轴倒置的事实)。 基本上,我运行以下代码获取 OpenCV 中的相对位置:

    relative_pos[0] = -camL_pos.at<double>(1) + camR_pos.at<double>(1); //baseline ~2mt
    relative_pos[1] = -camL_pos.at<double>(2) + camR_pos.at<double>(2); //height difference
    relative_pos[2] =  camL_pos.at<double>(0) - camR_pos.at<double>(0);

由于 OpenCV 需要一个平移向量而不是相对于第一个相机的坐标,因此该向量乘以 -1。除了位置之外,还通过分别计算的高斯噪声在滚转、俯仰和偏航三个角度施加旋转扰动。每帧都存储了位置和旋转的噪声值。

我想计算的是使用 OpenCV 的视差图。我知道我有一个深度相机,但我只是将它用作基本事实。

在介绍完所有这些之后,下面是问题:

  • 上述翻译的表述是否正确,或者我是否遗漏了从一个坐标系切换到另一个坐标系的内容
  • 我应该如何管理轮换?我真的很困惑。我不明白我是否需要转换角度(我想至少偏航值应该由于两个坐标系中两个轴的相反方向而反转)。
  • 我应该向 stereoRectify 函数传递什么? t定义的相对位置和相对旋转R可以吗?

先谢谢大家。

编辑(附加信息):

  • Unreal 的转换顺序:Scale -> Rotation -> Translation

关于轮换,顺序是roll->pitch->yaw

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)