sim3相較于se3的好處
以下文章來(lái)源于古月居 ,作者lovely_yoshino
作者丨lovely_yoshino
來(lái)源丨古月居
0. 前言
最近一直在啃SLAM優(yōu)化方面的相關(guān)知識,發(fā)現以前對于se3與sim3之間的理解不太深入,這里專(zhuān)門(mén)開(kāi)一篇文章來(lái)整理這兩者之間的區別。
相似變換sim(3),尺度s與R相乘,而不是t。ORB-SLAM2中使用sim3的主要原因是考慮到單目尺度漂移,這個(gè)在第一版系統的論文中的VII。LOOP CLOSING的Compute the Simlilarity Transformation部分有提到。
只有在單目輸入的時(shí)候,閉環(huán)的部分才回使用sim3;其實(shí)在雙目和RGBD輸入的時(shí)候雖然也用到了但是其尺度因子被強制設置為
1. 單目尺度漂移
單目SLAM的尺度漂移,簡(jiǎn)單來(lái)說(shuō)就是單目獲得的單張圖片無(wú)法知道拍攝物體到相機的距離,必須通過(guò)對極幾何求的兩張圖片的位姿,然后三角化出來(lái)尺度信息。而這些都依賴(lài)的是兩幀圖像之間的逆深度求解。
1.1 任選兩張圖(設為第0幀和第1幀),先提取關(guān)鍵點(diǎn)并匹配,再根據對極幾何求本質(zhì)矩陣E,再從E中恢復R,t。這個(gè)在單目VO里屬于初始化的部分,其中得到的t是個(gè)單位向量,因為任意縮放t,極線(xiàn)約束都成立。你可以對t進(jìn)行任意縮放??s放完后,設第0幀的位置為相機坐標系原點(diǎn),則第1幀的位置就可以由R, t得到。雖然這個(gè)t不是真值,但是可以固定下來(lái)。然后根據兩幀的位置,可以對圖像幀0和1中匹配的三維點(diǎn)進(jìn)行三角化。(多點(diǎn)獲取本質(zhì)矩陣;恢復R,t;并根據R,t三角化計算出偽深度;)。
1.2 對之后的圖像幀,就不再是利用對極幾何求R,t了。依舊是先提取關(guān)鍵點(diǎn)再匹配哈, 但是這次匹配的上一幀的特征中,有些是已經(jīng)被三角化過(guò)的,因此可以像之前答主說(shuō)的用運動(dòng)模型加BA求該圖像幀與上一幀的位置關(guān)系,也可以用PnP求R,t。求出來(lái)R,t之后,再三角化該幀與上一幀的沒(méi)被三角化過(guò)的匹配點(diǎn)。
1.3 我們可以發(fā)現在尺度漂移就是出現在第二步。因為對于新的圖像幀,都是先計算其R,t,再利用該R,t三角化與之前圖像幀匹配的點(diǎn)。問(wèn)題就是,如果第一步算的R,t有誤差,那么第二步三角化的三維點(diǎn)的深度就存在誤差,也就是說(shuō)其深度會(huì )存在一個(gè)縮放。對于新來(lái)的每一幀,都會(huì )有這樣的問(wèn)題。
2. SE3與SIM3對比
2.1 首先是歐式變換:
2.2 然后是相似變換(推導過(guò)程同上,故省略):
2.3 最后說(shuō)兩句,相似變換其實(shí)就只是個(gè)簡(jiǎn)單的數學(xué)變換而已,所以想思考為什么的時(shí)候,應該從數學(xué)上來(lái)思考才能獲得更嚴謹的論證。相似變換的特點(diǎn)是改變原本物體的尺度比例(保形狀),所以這個(gè)S就是要乘在R上,如果在t上,那只是對改變物體的平移量,并不改變形狀的尺度比例,上面兩個(gè)圖已經(jīng)說(shuō)得很清楚了。這樣我們可以發(fā)現通過(guò)逆深度的縮放將會(huì )被考慮在內。
color{red}{如果我們確定了標準的景深則不需要sim(3)的處理形式,直接se(3)即可得到一樣的結果。}
3. 參考鏈接
https://www.zhihu.com/question/318307846
https://www.zhihu.com/question/301977205
https://www.cnblogs.com/JingeTU/p/14773877.html
本文僅做學(xué)術(shù)分享,如有侵權,請聯(lián)系刪文。
*博客內容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀(guān)點(diǎn),如有侵權請聯(lián)系工作人員刪除。