2013-07-24 77 views
3

我想創建一個不同姿勢的對象圖像的數據集,其中每個圖像用相機姿態(或對象姿勢)註釋。計算機視覺:標記相機姿態

例如,如果我有一個世界座標系,並將感興趣的對象放在原點並將相機放在已知位置(x,y,z)並使其面向原點。鑑於這些信息,我如何計算相機或物體的姿態(旋轉矩陣)。

我有一個想法,它有一個參考座標,即(0,0,z'),我可以定義物體的旋轉。即其傾斜,俯仰和偏航。然後我可以計算(0,0,z')和(x,y,z)的旋轉給我一個旋轉矩陣。問題是,如何結合兩個旋轉矩陣?

順便說一句,我知道相機的世界位置,因爲我用CAD模型渲染OpenGL,而不是物理地移動相機。

回答

1

單應矩陣映射齊次屏幕座標(i,j)到齊次世界座標(x,y,z)之間。

齊次座標是法線座標,附加1。因此屏幕座標(3,4)是(3,4,1)作爲同質屏幕座標。

如果你有一組均勻的屏幕座標,S及其相關聯的同質世界中的位置,W 4×4單應矩陣滿足

S * H =轉置(W)

所以它歸結爲你可以在屏幕座標中確定i,j的位置,然後做一個「最佳擬合」單應性矩陣(openCV有一個功能findHomography)

雖然知道相機的xyz提供了有用的信息,但它不是足以完全約束方程,你將不得不產生更多的s無論如何,creen-world配對。因此,我認爲它不值得你的時間整合相機的位置。

我在這裏做了一個類似的實驗:http://edinburghhacklab.com/2012/05/optical-localization-to-0-1mm-no-problemo/