相機位姿估計0 基本原理之如何解PNP問題

2021-08-15 23:24:22 字數 1060 閱讀 9605

用途:各種位姿估計

文章型別:原理

今天給大家講一講相機位姿估計的基本原理,說實話我本人也沒太了解,這裡權當做拋磚引玉了。本來我這個部落格是寫應用型文章的,但雖然不做理論研究,但你要使用別人的方法來解決問題,那麼也還是多多少少要對它的原理有點了解的。

關於pnp問題就是指通過世界中的n個特徵點與影象成像中的n個像點,計算出其投影關係,從而獲得相機或物體位姿的問題。

以下討論中設相機位於點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組解,好像再加乙個點就能解決這個問題了,事實上也幾乎如此。說幾乎是因為還有其他一些特殊情況,這些特殊情況就不再討論了。n>3後,能夠求出正解了,但為了乙個正解就又要多加乙個球d顯然不夠"環保",為了更快更節省計算機資源地解決問題,先用3個點計算出4組解獲得四個旋轉矩陣、平移矩陣。根據公式:

將第四個點的世界座標代入公式,獲得其在影象中的四個投影(乙個解對應乙個投影),取出其中投影誤差最小的那個解,就是我們所需要的正解。

pnp問題的求解原理大致就是上面這樣了,至於具體的數學方法還是請大家自己去查閱文獻吧,本部落格對這個問題的分析就到此為止了。接下來請看通過解pnp問題,求解相機位姿的應用。

六 電信裝置與數位相機基本原理

1.數據機 正弦訊號完全規律,無法傳達任何資訊。但是,如果我們通過改變正弦波訊號的振幅 頻率或者相位,就可以傳遞一串0或1的資訊了。我們把這個過程叫做訊號的調製,而完成這個過程的裝置叫做數據機 我們通常這3種調製方法 調頻 調幅 調相。當然,為了方便傳輸,所有的數據機都是全雙工工作的。2.位元率和波...

Cocoa基本原理指南之六 內省

內省是物件揭示自己作為乙個執行時物件的詳細資訊的一種能力。這些詳細資訊包括物件在繼承樹上的位置,物件是否遵循特定的協議,以及是否可以響應特定的訊息。nsobject協議和類定義了很多內省方法,用於查詢執行時資訊,以便根據物件的特徵進行識別。明智地使用內省可以使物件導向的程式更加高效和強壯。它有助於避...

學習 FPGA之基本原理(可能理解不對)

什麼是fpga fpga是英文field programmable gate array的縮寫,即現場可程式設計門陣列,它是在pal gal epld等可程式設計器件的基礎上進一步發展的產物。它是作為專用積體電路 asic 領域中 的一種半定製電路而出現的,既解決了定製電路的不足,又克服了原有可程式...