2014-10-26 77 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