CVPR2023 | 如何設(shè)計(jì)一個更快更魯棒的P3P求解器?(3)
本文提取直線的幾種方法對比
直接法速度最快,但伴隨矩陣法最穩(wěn)定。實(shí)踐中推薦用伴隨矩陣法。
5.2 與SOTA方法對比5.2.1 數(shù)值穩(wěn)定性圖4:高斯核平滑直方圖,在無噪聲數(shù)據(jù)上運(yùn)行 100,000 次運(yùn)行的旋轉(zhuǎn)和平移誤差之和。測量估計(jì)和GT之間誤差的 L1 范數(shù)。
可以看到所有方法的都是數(shù)值穩(wěn)定的。Nakano(rp)表示帶root polishing(利用Gauss-Newton方法優(yōu)化根),該方法更多的分布在小誤差范圍。
表2:誤差的平均值、中位數(shù)和最大值。粗體表示最好的結(jié)果
本文提出的求解器在均值誤差和最大誤差上的性能最好,而Nakano(rp)求解器在中值誤差上的性能最好。請注意,基于四次的求解器包含的失敗案例,在此實(shí)驗(yàn)中是刪除了的。
5.2.2 解的對比表3:與SOTA求解器對比
本文的求解器優(yōu)于現(xiàn)有的方法。對于幾乎所有的試驗(yàn),都能找到好的解和GT,沒有重復(fù)或錯誤的解。基于四次方程的Ke等人和Kneip等人的方法有很多重復(fù)解和錯誤解。因?yàn)樗麄冇昧怂拇畏匠痰乃?個根(忽略虛部)來找到可能的估計(jì),提高找到GT的可能性是可以的,但會損失其效率,因?yàn)閷?shí)踐中每個假設(shè)需要用RANSAC進(jìn)行評估。Nakano求解器用的虛部閾值過濾不必要的復(fù)根,但結(jié)果沒有本文的方法好。Ke等人與Kneip等人的方法也能夠用類似的閾值過濾四次方程的根,從而減少重復(fù)和錯誤解。
5.2.3 運(yùn)行時(shí)間對比表4:平均運(yùn)行時(shí)間對比,次嘗試,每個嘗試100次
基于三次方程的求解器比基于四次方程的要更高效,所提出的求解器比SOTA方法快15.4%,加速主要原因有兩個:
- 基于相對位置和判別式的分析,可以快速選擇三次方程的穩(wěn)定根,根據(jù)判別式的符號可以避免沒必要的計(jì)算。
- 從退化圓錐曲線中恢復(fù)直線的方法比Persson等人的方法更高效。 本文用C++復(fù)現(xiàn)的Nakano方法比原始的MATLAB實(shí)現(xiàn)慢,可能是用了不同的矩陣計(jì)算庫導(dǎo)致的。
Persson等人的方法在沒有解的情況下,其判別式非常接近于0。這是因?yàn)榕袆e式為0對應(yīng)于圖3中的(d)-(h)這些臨界情況,由于浮點(diǎn)數(shù)的舍入誤差和數(shù)值不穩(wěn)定性,這些情況下很難恢復(fù)運(yùn)動參數(shù)。本文發(fā)現(xiàn)大多數(shù)失敗案例是(d)和(f)的情形,(e)(g)(h)很少發(fā)生。
與危險(xiǎn)圓柱的關(guān)系圖5:危險(xiǎn)圓柱是指三個3D點(diǎn)A,B,C為圓形環(huán)繞點(diǎn)的圓柱,其軸垂直于ABC平面
之前有工作指出,如果光心位于危險(xiǎn)圓柱的表面,則P3P問題的解不穩(wěn)定。本文發(fā)現(xiàn)危險(xiǎn)圓柱會導(dǎo)致判別式,即對應(yīng)于圖3中的臨界情形。
5 總結(jié)本文重新審視了 P3P 問題,特別是研究了基于兩個圓錐曲線相交的解法,類似于 Persson 和 Nordberg的方法。通過分析可能的解的集合并明確枚舉極端情況,能夠設(shè)計(jì)一個快速穩(wěn)定的 P3P 算法。實(shí)驗(yàn)表明,與以前的方法相比,本文的求解器更魯棒且更快。
局限性本文的方法基于研究兩個圓錐曲線的實(shí)交點(diǎn)。然而,P3P 問題是特殊的,因?yàn)榻鈶?yīng)該是正實(shí)數(shù)。三次方程可能有更多的約束,不幸的是,本文沒有發(fā)現(xiàn)一個很好的方法來做到這一點(diǎn)。請注意,式(4) 和 (5) 可以用同倫延拓來求解,該方法擅長解決大規(guī)模平方系統(tǒng)。但對于 P3P 問題,本文發(fā)現(xiàn)它不如當(dāng)前基本上閉式的求解器有效。
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點(diǎn),如有侵權(quán)請聯(lián)系工作人員刪除。