2009-09-07 35 views
1

這是我發佈的前一個問題的後續,這次更好的描述,我希望。三維建模問題 - 重訪

我製作了一副眼鏡,上面有一個針孔攝像頭,用來記錄人的眼球運動。相機位於眼睛下方,因此會仰視眼睛。圍繞Y軸也有輕微的旋轉(即相機有輕微的左右傾斜)和Z軸(即相機略微扭曲時鐘或逆時針)。

從視頻中,我提取了圖像中的一組點,它應該看起來大致呈線性,但並不是因爲相機不是直視人眼。

如果我知道單位矢量U描述相機的方向以及相機正在查看的圖像點IP1(x,y),如果相機是如何計算這些圖像點的座標坐在(0,0,-z)?

+1

我會建議修改您的*原始*問題,而不是發佈一個新的。 – strager 2009-09-07 17:51:07

+0

因爲我完全改變了陳述,所以我認爲這會讓人更加迷惑。無論如何,謝謝你,我會牢記未來。 – georgiosd 2009-09-08 19:14:36

回答

0

我假設你正在試圖弄清楚眼睛在看什麼。我想我會這樣做:

使用眼鏡的尺寸計算從相機到眼睛的矢量。

猜測眼睛內部的幾何中心(你的點位於眼睛的表面而不是中心)。

然後從眼睛到該點的中心計算矢量獲得「看着向量」

是否幫助呢?

+0

嗨Jay, 有幾種方法可以計算眼矢量,但是這種方法的罪魁禍首是所有其他人都是相機角度。 你的建議只適用於相機以(0,0,z)爲中心直視眼睛的情況。因此我正在尋找一種方法來近似這個視角。 – georgiosd 2009-09-08 19:21:28

1

這顯然是一個不簡單的Photogrammetry問題。攝影測量是在技術性大學的一,二或三個班(1-3個學期)教授的。

首先,在三維空間中的直線被投影爲(2維)直線直線在相機拍攝的圖像中(這與相機的方向無關)。如果3D線確實是直線,2D不是,那麼相機不是「公制」,這意味着它會扭曲圖像。幸運的是,在大多數照相機中,失真的主要原因可以通過直接線性變換法(DLT)進行補償。對於攝像機也是如此,雖然我沒有驗證它。其次,如果圖像上一個點的x,y座標(2知道),則不可能計算同一點的X,Y,Z空間座標(3個知識)。爲了做到這一點,你必須有另一個不同方向的圖像,其中相同的點具有x',y'座標(2知道更多)。然後,您可以計算X,Y,Z座標 - 理論上。在實踐中,計算是困難的,因爲它涉及非線性最小二乘法(LSM)。
而不是第二個圖像,你可能知道興趣點位於一個表面(也許是眼睛的表面)上。在這種情況下,點應該滿足f(X,Y,Z)= 0形式的表面方程。利用這個方程與一個圖像的x,y座標相結合,您可以計算出X,Y,Z座標。再一次,計算並不簡單。

三,DLT公式定義爲:

 L1 X + L2 Y + L3 Z + L4 
x = -------------------------- 
    L9 X + L10 Y + L11 Z + 1 

    L5 X + L6 Y + L7 Z + L8 
y = -------------------------- 
    L9 X + L10 Y + L11 Z + 1 

的李係數是未知的,可以計算出,如果你有至少6個控制點。控制點是具有已知的X,Y,Z(3D)座標已知的圖像上的x,y(2D)座標的點。

一旦你計算出李,你對第二個圖像做了同樣的處理,第二個圖像的方向與第一個圖像不同。因此:

 L1' X + L2' Y + L3' Z + L4' 
x' = ----------------------------- 
     L9' X + L10' Y + L11' Z + 1 

     L5' X + L6' Y + L7' Z + L8' 
y' = ----------------------------- 
     L9' X + L10' Y + L11' Z + 1 

第四,現在你有李和李的係數,你終於能計算出X,Y,任意點,其投影到第一圖像的Z座標是X,Y並且對第二圖像的投影是x',y'。您解決了X,Y,Z的4個DLT方程式。

作爲最後一個想法,您可以使用控制曲線代替控制點,但這是一個積極研究的領域。

+0

謝謝,這是一個很好的攝影測量評論 - 我只知道它隱含,並沒有明確的名稱下。然而,我不認爲它適用於我的情況,因爲我不知道我的點的3D座標,我想避免組裝這些控制點的繁瑣的校準過程。 什麼是我能與我有什麼最好的近似? – georgiosd 2009-09-08 19:19:15