如何使用Monocular vision和OpenCV获得3D位置

时间:2016-09-30 07:03:11

标签: opencv 3d camera

当相机相对于地面保持(例如)45度时,如何使用一个相机和OpenCV确定物体的3D位置?

2 个答案:

答案 0 :(得分:1)

两种类型的动作可以应用于3D世界中的相机:平移和旋转。如果没有翻译,则无法从单声道相机推断深度。你应该检查立体视觉的细节。

简单地说,你需要恢复必要的矩阵,其中E = [t_x] R,如果t_x = 0,这意味着你正在使用单眼视觉。没有办法通过古典立体视觉来恢复这一点。

但是,有一些方法使用深度训练数据集来推断测试图像的深度。请检查this slide。他们发布了Matlab的代码;但是,您可以自己轻松实现它。

答案 1 :(得分:0)

如果您想要更准确的结果,您可以使用深度学习模型来估计输入图像中像素的深度。有一些可用的开源模型,例如 one。但是,请注意,bts 模型是从自动驾驶汽车的角度使用 KITTI 数据集进行训练的。为了获得更好的结果,您需要有一个与您的应用程序相关的数据集。然后使用 bts 等框架训练深度估计模型。此模型将为您提供具有 (x,y,z) 坐标的单个图像的点云。