2014-10-26 55 views
1

我使用立体视觉来获得3D重建。我正在使用opencv库。 我实现我的代码是这样的:3D立体,错误的3D坐标

1)立体声校准

2)图像对undistort及矫正

3)视差图 - 使用SGBM

4)的三维坐标计算depht map - unsing reprojectImageTo3D();

结果:

- 良好的视差图,以及良好的三维重建

-Bad三维坐标值,距离不corresponde了现实。

3D距离,相机和物体之间的距离,有10毫米的误差,随距离增加。我已经使用了各种基线,并且总是出错。 当我比较外部参数,向量T,“stereoRectify”的输出基线匹配。 所以我不知道问题在哪里。

有人可以帮我,在此先感谢

校准:

http://textuploader.com/ocxl http://textuploader.com/ocxm

回答

1

十毫米的误差是合理的立体视觉解决方案,对传感器的灵敏度都取决于当然,分辨率,基线和距离物体的距离。

相对于物体距离的增加误差对于该问题也是典型的 - 立体对应基本上在两个视频传感器之间对物体执行三角测量,并且距离越大,视频传感器之间的角度的导数到物体转化为深度轴上的较大距离,这意味着更大的误差。很好的例子是视频传感器与物体之间的角度几乎是正确的,这意味着在估计它的任何小的正误差都会将估计的深度推到无穷大。

您选择的架构看起来不错。您可以尝试提高传感器的分辨率,或者深入到在openCV库中有很多调整空间的校准过程中 - 确保只选择棋盘静止的图像,选择更高级别的不同姿势棋盘,添加图像,直到两个图像之间的注册落在您可以允许的最大错误之下,等等。

+0

感谢您快速回复。我已经在使用更高分辨率 – filipe 2014-10-26 21:47:45

+0

感谢您快速回复。但是我得到的错误是10厘米而不是10毫米。这就是为什么我担心。我已经在使用较高的分辨率。 2数字单色精灵M1280(1280 * 1024)。照片校准采集已经是静态的。棋盘在太空中的16个位置移动。我不知道我应该怎么做才能解决这个问题 – filipe 2014-10-26 21:55:38

+0

10厘米为哪个物体的距离和基线? – YHyatt 2014-10-26 22:00:58