久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

SLAM的那些坑——PNP

 木俊 2018-04-23



計(jì)算機(jī)視覺(jué)

1. 內(nèi)參數(shù)標(biāo)定   張正友標(biāo)定法

2. 外參數(shù)標(biāo)定即姿態(tài)估計(jì)問(wèn)題。從一組2D點(diǎn)的映射中估計(jì)物體的3D姿態(tài),。

3. 從三個(gè)對(duì)應(yīng)點(diǎn)中恢復(fù)姿態(tài),,需要的信息是最少的,稱為“三點(diǎn)透視問(wèn)題”即P3P,。同理,,擴(kuò)展到N個(gè)點(diǎn),就稱為“PnP”,。

4. 基于視覺(jué)的姿態(tài)估計(jì)根據(jù)使用的攝像機(jī)數(shù)目分為單目視覺(jué)和多目視覺(jué),。根據(jù)算法又可以分為基于模型的姿態(tài)估計(jì)和基于學(xué)習(xí)的姿態(tài)估計(jì)。

5. OpenCV中有solvePnP以及solvePnPRansac用來(lái)實(shí)現(xiàn)已知平面四點(diǎn)坐標(biāo)確定攝像頭相對(duì)世界坐標(biāo)系的平移和旋轉(zhuǎn),。cvPOSIT基于 正交投影,,用仿射投影模型近似透視投影模型,不斷迭代計(jì)算出估計(jì)值,。此算法在物體深度相對(duì)于物體到相機(jī)的距離比較大的時(shí)候,,算法可能不收斂。

6. 從世界坐標(biāo)系到相機(jī)坐標(biāo)系的轉(zhuǎn)換,,需要矩陣[R|t],,其中R是旋轉(zhuǎn)矩陣,t是位移向量,。如果世界坐標(biāo)系為X,,相機(jī)坐標(biāo)系對(duì)應(yīng)坐標(biāo)為X',那么X' = [R|t]*X,。從相機(jī)坐標(biāo)系到理想屏幕坐標(biāo)系的變換就需要內(nèi)參數(shù)矩陣C,。那么理想屏幕坐標(biāo)系L = C*[R|t]*X,。如何獲得[R|t],大致是已知模板上的幾個(gè)關(guān)鍵點(diǎn)在世界坐標(biāo)系的坐標(biāo)即X已知,,然后在攝像頭捕獲的幀里獲得模板上對(duì)應(yīng)點(diǎn)在屏幕坐標(biāo)系的坐標(biāo)即L已知,,通過(guò)求解線性方程組得到[R|t]的初值,再利用非線性最小二乘法迭代求得最優(yōu)變換矩陣[R|t],。

7. 大多數(shù)情況下,,背景是二維平面,識(shí)別的物體也是二維平面,。對(duì)于ARToolkit,,識(shí)別的Targets就是平面的(但是這種方法魯棒性不好)。如果內(nèi)參數(shù)矩陣是已知的,,那么知道4個(gè)或者更多共面不共線的點(diǎn)就可以計(jì)算出相機(jī)的姿態(tài),。

8. 相機(jī)姿態(tài)估計(jì)的問(wèn)題就是尋找相機(jī)的外參數(shù),即是最小化誤差函數(shù)的問(wèn)題,。誤差函數(shù)有的基于image-space,,有的基于object-space。

9. RPP算法基于object-space為誤差函數(shù)提供了一種可視化的方法,。誤差函數(shù)有兩個(gè)局部極小值,。在無(wú)噪聲條件下,第一個(gè)局部極小值跟正確的姿態(tài)對(duì) 應(yīng),。另外的誤差函數(shù)的極小值就是標(biāo)準(zhǔn)姿態(tài)估計(jì)算法為什么會(huì)抖動(dòng)的原因,。由于姿態(tài)估計(jì)算法最小化誤差函數(shù)總是要使用迭代算法,因此需要一個(gè)初值,。如果初值接 近第二個(gè)局部極小值,,那么迭代算法就收斂到錯(cuò)誤的結(jié)果。

10. 估計(jì)第一個(gè)姿態(tài),,RPP算法使用任何已知的姿態(tài)估計(jì)算法,,在這里里,使用迭代算法,。從第一個(gè)姿態(tài)使用P3P算法估計(jì)第二個(gè)姿態(tài),。這個(gè)姿態(tài)跟誤差函數(shù)的第二 個(gè)局部極小值接近。使用估算的第二個(gè)姿態(tài)作為初值,,使用迭代算法獲得第二個(gè)姿態(tài),。最終正確的姿態(tài)是有最小誤差的那個(gè)。

11. 這類問(wèn)題最終都是解線性方程組AX=b的問(wèn)題,。當(dāng)b∈R(A)時(shí),,x=A的廣義逆*b;當(dāng)b∈不R(A)時(shí),,能否是Ax接近b呢,,即是否有x使||Ax-b||最小,,習(xí)慣上用2-范數(shù)即歐式范數(shù)來(lái)度量。最小二乘解常存在,,然后這樣的解未必是唯一的,。當(dāng)在方程無(wú)解的情況下,要找到最優(yōu)解,。就是要最小化所有誤差的平方和,,要找擁有最小平方和的解,即最小二乘,。最小化就是把誤差向量的長(zhǎng)度最小化,。

PNP 相機(jī)位姿估計(jì)pose estimation就是通過(guò)幾個(gè)已知坐標(biāo)(世界坐標(biāo))的特征點(diǎn)(深度圖),結(jié)合他們?cè)谙鄼C(jī)照片中的成像(像素坐標(biāo)),求解出相機(jī)所在的世界坐標(biāo)以及旋轉(zhuǎn)角度(這兩個(gè)貨叫相機(jī)的外參), 用旋轉(zhuǎn)矩陣(R)和平移矩陣(t)表示. PnP, which is short for perspective n point就是其中的一種2D-3D解決上述問(wèn)題的算法, 也就是說(shuō), 這個(gè)算法的輸入是一組點(diǎn)的三維世界坐標(biāo)和二維像素坐標(biāo),輸出是相機(jī)的旋轉(zhuǎn)矩陣(R)和平移矩陣(t). OpenCV有相應(yīng)的庫(kù)函數(shù)solvePnP()和solvePnPRansac(),后者利用了ransac的思想計(jì)算更加精確的結(jié)果,不過(guò)據(jù)說(shuō)速度很慢,完全沒(méi)法做到實(shí)時(shí).

問(wèn)題的方案、解決思路

最小PnP問(wèn)題

P3P問(wèn)題中假設(shè)沒(méi)有噪聲,,使用幾何約束,,可以解得相機(jī)的位姿。不具有唯一解,。
P4P問(wèn)題中分為線性方法和基于P3P的方法,。

最小二乘的觀點(diǎn)

  • 迭代最小化一個(gè)代價(jià)函數(shù)(平方誤差)。這些方法相對(duì)于之前的方法更加準(zhǔn)確,,在一定的噪聲的情況下,,返回一個(gè)最大似然估計(jì)。
  • 直接最小二乘方法DLS

常用方法

  • NPL: The N-Point Linear (NPL) method of Ansar and Daniilidis [1].
  • EPnP: The approach of Lepitit et al. [16].
  • SDP: The Semi Definite Program (SDP) approach of Schweighofer and Pinz [23].
  • DLS: The Direct Least-Squares (DLS) solution presented in this paper. An open source implementation of DLS is available at www.umn.edu/ ?joel
  • DLS-LM: Maximum-likelihood estimate, computed using iterative Levenberg-Marquardt (LM) minimization of the sum of the squared reprojection errors, initialized with DLS.


PNP具體細(xì)分為幾種, 直接線性變換 P3P EPnP UPnP等等, OpenCV目前提供了3種方法進(jìn)行PNP計(jì)算, CV_P3P, CV_ITERATIVE, CV_EPNP.


____P3P____  P3P的方法,是用非常經(jīng)典的<Complete solution classification for the perspective-three-point problem> published by Gao in 2003的一篇論文,用空間中3個(gè)已知世界坐標(biāo)和像素坐標(biāo)的點(diǎn),通過(guò)構(gòu)造四個(gè)三角形的邊角關(guān)系聯(lián)立方程組,求出4組可能的解,再通過(guò)第四個(gè)已知點(diǎn)對(duì)四組解進(jìn)行驗(yàn)證,返回重投影誤差最小的點(diǎn).



單純看這個(gè)圖真的會(huì)很費(fèi)解,其實(shí)就是三角形三邊關(guān)系公式 a2+b2-2ab*cos∠c=c2,假如我們做特征匹配的兩幀圖是frame1和frame2,那么ABC三個(gè)點(diǎn)就是匹配的3對(duì)特征點(diǎn)的世界地圖坐標(biāo)位置,即frame1上的A1.B1.C1匹配frame2上的A2B2C2. P點(diǎn)是frame2的相機(jī)所在位置的相機(jī)光心. 這個(gè)方程組里的已知條件是|AB||BC||AC|的長(zhǎng)度,因?yàn)锳BC三點(diǎn)的世界坐標(biāo)已知; 和∠α.∠β,∠γ,因?yàn)锳2B2C2的像素坐標(biāo)已知,(通過(guò)像素坐標(biāo)和內(nèi)參矩陣求到光心距離然后構(gòu)造三角形求角).
右側(cè)的make是一堆為了化簡(jiǎn)式子所做的assumptions, 最后得到的二元二次方程組里,除了x,y剩下的量都是已知,解這個(gè)方程組需要用到二十世紀(jì)八十年代的一篇論文介紹的吳消元法, 簡(jiǎn)單看了一下,大體上的思路基本都沒(méi)看懂,就交給opencv吧...反正我知道這個(gè)方程組最多有四組x,y的解, 然后用frame1和frame2上的另外一組匹配點(diǎn)D1D2代入四組解驗(yàn)證就算重投影誤差最小的一組解,即為輸出的結(jié)果.

關(guān)于PNP問(wèn)題就是指通過(guò)世界中的N個(gè)特征點(diǎn)與圖像成像中的N個(gè)像點(diǎn),,計(jì)算出其投影關(guān)系,,從而獲得相機(jī)或物體位姿的問(wèn)題。

 

以下討論中設(shè)相機(jī)位于點(diǎn)Oc,,P1,、P2、P3……為特征點(diǎn),。

 

Case1:當(dāng)N=1時(shí)

當(dāng)只有一個(gè)特征點(diǎn)P1,,我們假設(shè)它就在圖像的正中央,那么顯然向量OcP1就是相機(jī)坐標(biāo)系中的Z軸,,此事相機(jī)永遠(yuǎn)是面對(duì)P1,,于是相機(jī)可能的位置就是在以P1為球心的球面上,再一個(gè)就是球的半徑也無(wú)法確定,,于是有無(wú)數(shù)個(gè)解,。

Case2:當(dāng)N=2時(shí)

現(xiàn)在多了一個(gè)約束條件,顯然OcP1P2形成一個(gè)三角形,,由于P1,、P2兩點(diǎn)位置確定,三角形的變P1P2確定,,再加上向量OcP1,,OcP2從Oc點(diǎn)射 線特征點(diǎn)的方向角也能確定,,于是能夠計(jì)算出OcP1的長(zhǎng)度=r1,OcP2的長(zhǎng)度=r2,。于是這種情況下得到兩個(gè)球:以P1為球心,,半徑為r1的球A;以 P2為球心,,半徑為r2的球B,。顯然,相機(jī)位于球A,,球B的相交處,,依舊是無(wú)數(shù)個(gè)解。

Case3:當(dāng)N=3時(shí)

與上述相似,,這次又多了一個(gè)以P3為球心的球C,,相機(jī)這次位于ABC三個(gè)球面的相交處,終于不再是無(wú)數(shù)個(gè)解了,,這次應(yīng)該會(huì)有4個(gè)解,,其中一個(gè)就是我們需要的真解了。

Case4:當(dāng)N大于3時(shí)

N=3時(shí)求出4組解,,好像再加一個(gè)點(diǎn)就能解決這個(gè)問(wèn)題了,,事實(shí)上也幾乎如此。說(shuō)幾乎是因?yàn)檫€有其他一些特殊情況,,這些特殊情況就不再討論了,。N>3 后,能夠求出正解了,,但為了一個(gè)正解就又要多加一個(gè)球D顯然不夠"環(huán)保",,為了更快更節(jié)省計(jì)算機(jī)資源地解決問(wèn)題,先用3個(gè)點(diǎn)計(jì)算出4組解獲得四個(gè)旋轉(zhuǎn)矩 陣,、平移矩陣,。根據(jù)公式:

將第四個(gè)點(diǎn)的世界坐標(biāo)代入公式,獲得其在圖像中的四個(gè)投影(一個(gè)解對(duì)應(yīng)一個(gè)投影),,取出其中投影誤差最小的那個(gè)解,,就是我們所需要的正解。


位姿估計(jì)的使用范圍非常廣泛,。主要解決的問(wèn)題為:在給出2D-3D若干點(diǎn)對(duì)以及相片的內(nèi)參信息,,如何求得相機(jī)中心在世界坐標(biāo)系下的坐標(biāo)以及相機(jī)的方向(旋轉(zhuǎn)矩陣)。




    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多