最近,在閱讀一篇openface的文章,在頭部姿態檢測方面,他提到利用面部地標3d檢測後,再使用正投影將它們投影到影象中,這使得通過求解pnp問題,可以準確地估計出目標的大小。下面對pnp問題做乙個簡單的調研。
關於pnp問題,就是對物體的定位問題,是求解3d到2d點對的運動的方法。
pnp問題:假定攝像機為小孔模型且已標定好,攝取一幅在物體座標系下座標已知的n個空間點的像,且這n個影象點的座標已知,確定這n個空間點在攝像機座標系下的座標。
通俗的說就是:通過空間中的n個特徵點與影象成像中的n個點(3d到2d)計算出其投影關係,從而獲得相機或物體位姿的問題。
以下討論中假設相機位於點oc,p1、p2、p3……為空間中的特徵點。
當只有乙個特徵點p1,我們假設它就在影象的正**,那麼顯然向量ocp1就是相機座標系中的z軸,此事相機永遠是面對p1,於是相機可能的位置就是在以p1為球心的球面上,再乙個就是球的半徑也無法確定,於是有無數個解。
現在多了乙個約束條件,顯然ocp1p2形成乙個三角形,由於p1、p2兩點位置確定,三角形的變p1p2確定,再加上向量ocp1,ocp2從oc點射線特徵點的方向角也能確定,於是能夠計算出ocp1的長度=r1,ocp2的長度=r2。於是這種情況下得到兩個球:以p1為球心,半徑為r1的球a;以p2為球心,半徑為r2的球b。顯然,相機位於球a,球b的相交處,依舊是無數個解。
與上述相似,這次又多了乙個以p3為球心的球c,相機這次位於abc三個球面的相交處,終於不再是無數個解了,這次應該會有4個解,其中乙個就是我們需要的真解了。
詳細計算參考:
n=3時求出4組解,好像再加乙個點就能解決這個問題了,事實上也幾乎如此。
參考文獻:
PnP問題求解
pnp演算法是指已知3d點及其在相機上的投影,求相機姿態的問題。投影方程可以表示為 u v1 k rt xy z1 lambda begin u v 1 end k begin r t end begin x y z 1 end uv 1 k r t xy z1 這裡的k為相機內參矩陣,是已知的。我...
P NP 問題的描述
下面引入p類問題的概念 如果乙個問題可以找到乙個能在多項式的時間裡解決它的演算法,那麼這個問題就屬於p問題。p是英文單詞多項式的第乙個字母。哪些問題是p類問題呢?通常noi和noip不會出不屬於p類問題的題目。我們常見到的一些資訊奧賽的題目都是p問題。道理很簡單,乙個用窮舉換來的非多項式級時間的超時...
調研的問題
a.獲取執行者 獲取用例首先要找出系統的執行者。可以通過使用者回答一些問題的答案來識別執行者。以下問題可供參考 誰使用系統的主要功能 主要使用者 誰需要系統支援他們的日常工作。誰來維護 管理使系統正常工作 輔助使用者 系統需要操縱哪些硬體。系統需要與哪些其它系統互動,包含其它計算機系統和其它應用程式...