问题描述
我正在 CARLA 模拟器(虚幻引擎环境)中使用几个 RGB 相机(+深度相机)。摄像机在 [0.5,-1,1.8]
和 [0.5,1,1.8]
(分别为左和右,虚幻坐标系)连接到车辆(位置相对于汽车)。虽然在模拟过程中第一个相机被认为是固定的,但第二个相机的位置在位置和旋转上都受到高斯噪声的干扰。
摄像机像普通立体声设置一样水平移位。直观上,第二个摄像头的相对位置是[0+n_x,2+n_y,0+n_z]
,其中n_x
、n_y
、n_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 (将#修改为@)