视觉SLAM总结——视觉SLAM十四讲笔记整理
視覺(jué)SLAM總結(jié)——視覺(jué)SLAM十四講筆記整理
- 說(shuō)明
- 基礎(chǔ)知識(shí)點(diǎn)
- 1. 特征提取、特征匹配
- (1)Harris
- (2)SIFT
- (3)SUFT
- (4)ORB
- (5)特征匹配
- 2. 2D-2D:對(duì)極約束、基礎(chǔ)矩陣、本質(zhì)矩陣、單應(yīng)矩陣
- 3. 3D-2D:PnP
- (1)直接線性變換方法
- (2)P3P方法
- (3)Bundle Adjustment方法
- 4. 3D-3D:ICP
- (1)SVD方法
- (2)非線性?xún)?yōu)化方法
- 5. 直接法和光流法
- (1)光流法
- (2)直接法
- 6. Bundle Adjustment
- 回環(huán)檢測(cè)
- 相關(guān)問(wèn)題
- 1. SIFT和SUFT的區(qū)別
- 2. 相似變換、仿射變換、射影變換的區(qū)別
- 3. Homography、Essential和Fundamental Matrix的區(qū)別
- 4. 視差與深度的關(guān)系
- 5. 描述PnP算法
- 6. 閉環(huán)檢測(cè)常用方法
- 7. 給一個(gè)二值圖,求最大連通域
- 8. 梯度下降法、牛頓法、高斯-牛頓法的區(qū)別
- 9. 推導(dǎo)一下卡爾曼濾波、描述下例子濾波
- 10. 如何求解Ax=bAx=bAx=b的問(wèn)題
- 11. 什么是極限約束
- 12. 單目視覺(jué)SLAM中尺寸漂移是怎么產(chǎn)生的
- 10. 解釋SLAM中的綁架問(wèn)題
- 11. 描述特征點(diǎn)法和直接法的優(yōu)缺點(diǎn)
- 12. EKF和BA的區(qū)別
- 13. 邊緣檢測(cè)算子有哪些?
- 14. 簡(jiǎn)單實(shí)現(xiàn)cv::Mat()
- 15. 10個(gè)相機(jī)同時(shí)看到100個(gè)路標(biāo)點(diǎn),問(wèn)BA優(yōu)化的雅克比矩陣多少維
- 16. 介紹經(jīng)典的視覺(jué)SLAM框架
說(shuō)明
這篇博客是我對(duì)《視覺(jué)SLAM十四講》相關(guān)基礎(chǔ)知識(shí)點(diǎn)的一個(gè)整理,沒(méi)有詳細(xì)的推導(dǎo)過(guò)程,僅僅相當(dāng)于一個(gè)思維導(dǎo)圖,同時(shí)在網(wǎng)上搜羅了一些相關(guān)的問(wèn)題進(jìn)行的補(bǔ)充總結(jié),本人水平有限,如果文中有誤,還請(qǐng)大家指出。
基礎(chǔ)知識(shí)點(diǎn)
1. 特征提取、特征匹配
這是整個(gè)SLAM系統(tǒng)最開(kāi)始的部分,先進(jìn)行特征提取,然后進(jìn)行特征匹配,通過(guò)匹配的特征點(diǎn)才求取的相關(guān)變換矩陣,這里容易搞混的概念是特征提取,特征提取是包括特征點(diǎn)和特征描述子,以O(shè)RB為例,ORB是由FAST特征點(diǎn)和BRIEF特征描述子構(gòu)成。而我們通常所說(shuō)的Harris角點(diǎn)通常僅僅指特征點(diǎn),僅僅擁有Harris角點(diǎn)是無(wú)法進(jìn)行特征匹配的,還需要通過(guò)向量對(duì)Harris角點(diǎn)進(jìn)行特征描述(特征描述子),兩幀之間才能進(jìn)行特征的匹配。關(guān)于特征子的總結(jié)可以參看我的這篇總結(jié)博客 視覺(jué)SLAM總結(jié)——視覺(jué)特征子綜述(總結(jié)得非常詳細(xì))
(1)Harris
Harris角點(diǎn):如下圖所示,通過(guò)一個(gè)小的滑動(dòng)窗口在鄰域檢測(cè)角點(diǎn)在任意方向上移動(dòng)窗口,若窗口內(nèi)的灰度值都有劇烈的變化,則窗口的中心就是角點(diǎn)。轉(zhuǎn)化為數(shù)學(xué)描述就是自相關(guān)矩陣兩個(gè)特征值大小。
Harris特征描述子:Harris 角點(diǎn)的描述子通常是由周?chē)鷪D像像素塊的灰度值,以及用于比較的歸一化互相關(guān)矩陣構(gòu)成的。圖像的像素塊由以該像素點(diǎn)為中心的周?chē)匦尾糠謭D像構(gòu)成
優(yōu)點(diǎn):計(jì)算簡(jiǎn)單;提取的點(diǎn)特征均勻且合理;穩(wěn)定,穩(wěn)定Harris算子對(duì)圖像旋轉(zhuǎn)、亮度變化、噪聲影響和視點(diǎn)變換不敏感。
缺點(diǎn):對(duì)尺度很敏感,不具有尺度不變性;提取的角點(diǎn)精度是像素級(jí)的;需要設(shè)計(jì)角點(diǎn)匹配算法
(2)SIFT
SIFT特征點(diǎn):利用高斯金字塔和DOG函數(shù)進(jìn)行特征點(diǎn)提取。高斯金字塔的當(dāng)前層圖像是對(duì)其前一層圖像先進(jìn)行高斯低通濾波,然后做隔行和隔列的降采樣(去除偶數(shù)行與偶數(shù)列)而生成的。DoG (Difference of Gaussian)是高斯函數(shù)的差分,具體到圖像處理來(lái)講,就是將同一幅圖像經(jīng)過(guò)兩個(gè)不同高斯濾波得到兩幅濾波圖像,將這兩幅圖像相減,得到DoG圖。DOG圖上的鄰域梯度方向直方圖峰值即特征點(diǎn)的主方向。
SIFT特征描述子:以特征點(diǎn)為中心取窗口,通過(guò)高斯加權(quán)增強(qiáng)特征點(diǎn)附近像素梯度方向信息的貢獻(xiàn),即在4 × 4的小塊上計(jì)算梯度方向直方圖( 取8個(gè)方向),計(jì)算梯度方向累加值,形成種子點(diǎn),構(gòu)成4× 4 × 8= 128維特征向量。然后進(jìn)行統(tǒng)計(jì)。
優(yōu)點(diǎn):SIFT特征對(duì)旋轉(zhuǎn)、尺度縮放、亮度變化保持不變性,對(duì)視角變化、仿射變換、噪聲也保持一定程度的穩(wěn)定性。
(3)SUFT
SUFT是對(duì)SIFT的改進(jìn),他們?cè)谒悸飞鲜且恢碌?#xff0c;只是采用的方法不同而已
SUFT特征點(diǎn):基于Hessian矩陣構(gòu)造金字塔尺度空間,利用箱式濾波器(box filter)簡(jiǎn)化二維高斯濾波
SUFT特征描述子:通過(guò)Haar小波特征設(shè)定特征點(diǎn)主方向,這樣構(gòu)建的特征描述子就是64維的
缺點(diǎn):在求主方向階段太過(guò)于依賴(lài)局部區(qū)域像素的梯度方向;圖像金字塔的層取得不足夠緊密也會(huì)使得尺度有誤差
(4)ORB
Fast角點(diǎn):如果某個(gè)像素與周?chē)I(lǐng)域內(nèi)足夠多的像素相差較大,則該像素有可能為角點(diǎn)。直接的閾值判斷來(lái)加速角點(diǎn)提取簡(jiǎn)單高效。
BRIEF特征描述子:BRIEF算法計(jì)算出來(lái)的是一個(gè)二進(jìn)制串的特征描述符。它是在一個(gè)特征點(diǎn)的鄰域內(nèi),選擇n對(duì)像素點(diǎn)pi、qi(i=1,2,…,n)。然后比較每個(gè)點(diǎn)對(duì)的灰度值的大小。如果I(pi)> I(qi),則生成二進(jìn)制串中的1,否則為0。所有的點(diǎn)對(duì)都進(jìn)行比較,則生成長(zhǎng)度為n的二進(jìn)制串。
優(yōu)點(diǎn):ORB算法的速度大約是SIFT的100倍,是SURF的10倍。
以上參考 https://zhuanlan.zhihu.com/p/36382429
(5)特征匹配
特征匹配的方法有很多,就不在這里一一贅述,包括暴力匹配(Brute-Force Macher)、近似最近鄰(FLANN)等,ORB SLAM2中采用詞典加速匹配過(guò)程。
2. 2D-2D:對(duì)極約束、基礎(chǔ)矩陣、本質(zhì)矩陣、單應(yīng)矩陣
對(duì)極約束 x2Tt∧Rx1=0(p2TK?Tt∧RK?1p1=0)\bm{x_2^T t^\wedge R x_1 = 0( p_2^T K^{-T} t^\wedge R K^{-1} p_1 = 0)}x2T?t∧Rx1?=0(p2T?K?Tt∧RK?1p1?=0)
本質(zhì)矩陣E E=t∧R\bm{E=t^\wedge R} E=t∧R
基本矩陣F F=K?TEK?1\bm{F=K^{-T}EK^{-1}} F=K?TEK?1
其中,p1,p2p_1,p_2p1?,p2?是像素坐標(biāo),對(duì)極約束描述的是空間中兩個(gè)匹配點(diǎn)的空間位置關(guān)系,本質(zhì)矩陣的奇異值必定是[δ,δ,0][\delta,\delta,0][δ,δ,0],由于平移和旋轉(zhuǎn)各三個(gè)自由度,因此本質(zhì)矩陣有六個(gè)自由度。但通常采用八點(diǎn)法進(jìn)行求解。由本質(zhì)矩陣恢復(fù)R,tR,tR,t的過(guò)程通過(guò)SVD分解完成。
當(dāng)場(chǎng)景中所有特征點(diǎn)都落到一個(gè)平面上時(shí)就可以通過(guò)單應(yīng)性來(lái)進(jìn)行運(yùn)動(dòng)估計(jì)。通過(guò)這個(gè)關(guān)系可以推導(dǎo)得p2=Hp1\bm{p_2=Hp_1}p2?=Hp1?,其中HHH就是單應(yīng)矩陣。可以通過(guò)四對(duì)點(diǎn)求解。單應(yīng)性的重要性在于,當(dāng)相機(jī)發(fā)生純旋轉(zhuǎn)或者特征點(diǎn)共面時(shí),基礎(chǔ)矩陣的自由度會(huì)下降,就出現(xiàn)退化,這時(shí)候如果我們繼續(xù)用八點(diǎn)法求基礎(chǔ)矩陣,基礎(chǔ)矩陣多余出來(lái)的自由度將主要由噪聲決定。
3. 3D-2D:PnP
PnP是求解3D到2D點(diǎn)對(duì)運(yùn)動(dòng)的方法,即問(wèn)題描述為,我們的已知條件是n個(gè)3D空間點(diǎn)以及它們作為特征點(diǎn)的位置(以歸一化平面齊次坐標(biāo)表示),我們求解的是相機(jī)的位姿R,tR,tR,t,如果3D空間點(diǎn)的位置是世界坐標(biāo)系的位置,那么這個(gè)R,tR,tR,t也是世界坐標(biāo)系下的。特征點(diǎn)的3D位置可以通過(guò)三角化或者RGBD相機(jī)的深度圖確定。
(1)直接線性變換方法
根據(jù)推導(dǎo),一對(duì)特征點(diǎn)(一個(gè)3D點(diǎn)加一個(gè)2D點(diǎn))可以提供兩個(gè)線性約束,因此12維的齊次變換矩陣需要6對(duì)特征點(diǎn)。
(2)P3P方法
P3P的作用是將利用三對(duì)特征點(diǎn),講空間點(diǎn)在世界坐標(biāo)系下的坐標(biāo),轉(zhuǎn)換到像極坐標(biāo)系中的坐標(biāo),將PnP問(wèn)題轉(zhuǎn)化為ICP問(wèn)題,推導(dǎo)過(guò)程是利用三角形特征完成的。
(3)Bundle Adjustment方法
其本質(zhì)是一個(gè)最小化重投影誤差的問(wèn)題,公式如下:
即理解為調(diào)整相機(jī)的位姿使得重投影誤差變小,而最小的重投影誤差就對(duì)應(yīng)著實(shí)際的位姿。需要求這里要注意的是這里僅僅是采用了BA的方法,但是實(shí)際做BA優(yōu)化的時(shí)候,是同時(shí)優(yōu)化位姿和路點(diǎn)位置,因此有兩個(gè)相關(guān)的雅克比矩陣,但這里僅僅優(yōu)化位姿,因此所求的雅克比矩陣僅僅和位姿有關(guān),可以直接求取JJJ如下,然后就可以進(jìn)行求解δξ\delta \xiδξ進(jìn)行迭代
4. 3D-3D:ICP
其本質(zhì)就是確定兩個(gè)點(diǎn)集之間的匹配關(guān)系。
(1)SVD方法
其問(wèn)題構(gòu)建為:
求解過(guò)程是先對(duì)每個(gè)點(diǎn)進(jìn)行去質(zhì)心坐標(biāo),然后根據(jù)優(yōu)化問(wèn)題計(jì)算旋轉(zhuǎn)矩陣RRR(這里會(huì)用到SVD),最后求ttt
(2)非線性?xún)?yōu)化方法
其問(wèn)題構(gòu)建為:
這里的推導(dǎo)和PnP的類(lèi)似,即求位姿導(dǎo)數(shù)。
5. 直接法和光流法
(1)光流法
光流法的基本假設(shè)是灰度不變假設(shè),即同一個(gè)空間點(diǎn)的像素灰度值,在各個(gè)圖像中是固定不變的
在LK光流中假設(shè)某一窗口內(nèi)的像素具有相同的運(yùn)動(dòng),因此w×ww×ww×w大小的窗口內(nèi)有w2w^2w2個(gè)像素,即構(gòu)成w2w^2w2個(gè)方程,然后構(gòu)成關(guān)于dxdt\frac{dx}{dt}dtdx?,dydt\frac{dy}{dt}dtdy?的超定線性方程,求其最小二乘解。LK光流是得到特征點(diǎn)之間的對(duì)應(yīng)關(guān)系,如同描述子的匹配,之后還是需要通過(guò)對(duì)極幾何、PnP等求解相機(jī)位姿。
(2)直接法
直接法之所以稱(chēng)為直接法是因?yàn)樗侵苯荧@得相機(jī)位姿,而不需要通過(guò)匹配、求解矩陣等過(guò)程,直接法的思路是根據(jù)當(dāng)前相機(jī)的位姿估計(jì)值,來(lái)尋找 p2p_2p2? 的位置。但若相機(jī)位姿不夠好, p2p_2p2?的外觀和p1p_1p1?會(huì)有明顯差別, 然后通過(guò)優(yōu)化光度誤差來(lái)優(yōu)化相機(jī)位姿。
非常快的框架SVO就是結(jié)合了直接法和特征點(diǎn)法,SVO采用的是提取稀疏特征點(diǎn)(類(lèi)似特征點(diǎn)法),幀間VO用圖像對(duì)齊(類(lèi)似于直接法)。
直接法的缺點(diǎn):1. 非凸性;2. 單個(gè)像素沒(méi)有區(qū)分度;3. 灰度值不變是很強(qiáng)的假設(shè)
6. Bundle Adjustment
我后來(lái)對(duì)后端進(jìn)行了一個(gè)非常全面的總結(jié),參考博客視覺(jué)SLAM總結(jié)——后端總結(jié)
首先注意目標(biāo)函數(shù)如下:
其中FijF_{ij}Fij?為整個(gè)代價(jià)函數(shù)在當(dāng)前狀態(tài)下對(duì)相機(jī)姿態(tài)的偏導(dǎo)數(shù),EijE_{ij}Eij?表示該函數(shù)對(duì)路標(biāo)點(diǎn)位置的偏導(dǎo)數(shù)。因此在非線性?xún)?yōu)化過(guò)程中獲得的HHH矩陣為
H矩陣最重要的一個(gè)特性就是它的稀疏性,其中左上角和右下角為對(duì)角陣且一般左上角較小右下角較大。左下角和右上角可能稀疏也可能稠密,矩陣的非對(duì)角線上的非零矩陣塊,表示了該處對(duì)應(yīng)的兩個(gè)相機(jī)變量之間存在著共同觀測(cè)的路標(biāo)點(diǎn),有時(shí)候稱(chēng)為共視(Co-visibility)。其對(duì)應(yīng)關(guān)系如下:
其求解HΔx=g\bm{H\Delta x=g}HΔx=g的過(guò)程中消元的過(guò)程即Marginalization(邊緣化),首先消元結(jié)果如下:
先求解
將解得的Δxc\Delta \bm x_cΔxc?帶入原方程,再求解Δxp\Delta \bm x_pΔxp?,其優(yōu)勢(shì)在于:
從概率角度來(lái)看,我們稱(chēng)這一步為邊緣化,是因?yàn)槲覀儗?shí)際上把求 (Δxc\Delta \bm x_cΔxc? ,Δxp\Delta \bm x_pΔxp?) 的問(wèn)題,轉(zhuǎn)化成先求Δxc\Delta \bm x_cΔxc? ,再求 Δxp\Delta \bm x_pΔxp?的過(guò)程。這一步相當(dāng)于做了條件概率展開(kāi):
所謂魯棒核函數(shù)就是減小誤匹配帶來(lái)的誤差,如Huber核,其實(shí)就是改變一下目標(biāo)函數(shù)的定義:
當(dāng)誤差eee大于某個(gè)閾值δ\deltaδ后,函數(shù)增長(zhǎng)由二次形式變成了一次形式,相當(dāng)于限制了梯度的最大值.
回環(huán)檢測(cè)
這一部分之前并沒(méi)有花很多時(shí)間去研究,主要是知道目前SLAM中用的比較多的方法是詞袋模型,詞袋模型中涉及到字典的生成和使用的問(wèn)題,這一部分和機(jī)器學(xué)習(xí)的只是掛鉤比較深。
字典的生成問(wèn)題就是非監(jiān)督聚類(lèi)問(wèn)題,可以采用K-means對(duì)特征點(diǎn)進(jìn)行聚類(lèi),然后通過(guò)K叉樹(shù)進(jìn)行表達(dá),相似度判斷采用是TD-IDF的方法。
相關(guān)問(wèn)題
我將更多的問(wèn)題總結(jié)到了視覺(jué)SLAM面試題匯總中
問(wèn)題及部分回答來(lái)源:
https://www.cnblogs.com/xtl9/p/8053331.html
https://zhuanlan.zhihu.com/p/46694678
http://www.voidcn.com/article/p-ngqfdzqe-ot.html
https://zhuanlan.zhihu.com/p/28565563
1. SIFT和SUFT的區(qū)別
2. 相似變換、仿射變換、射影變換的區(qū)別
等距變換:相當(dāng)于是平移變換(t)和旋轉(zhuǎn)變換(R)的復(fù)合,等距變換前后長(zhǎng)度,面積,線線之間的角度都不變。自由度為6(3+3)
相似變換:等距變換和均勻縮放(S)的一個(gè)復(fù)合,類(lèi)似相似三角形,體積比不變。自由度為7(6+1)
仿射變換:一個(gè)平移變換(t)和一個(gè)非均勻變換(A)的復(fù)合,A是可逆矩陣,并不要求是正交矩陣,仿射變換的不變量是:平行線,平行線的長(zhǎng)度的比例,面積的比例。自由度為12(9+3)
隱射變換:當(dāng)圖像中的點(diǎn)的齊次坐標(biāo)的一般非奇異線性變換,射影變換就是把理想點(diǎn)(平行直線在無(wú)窮遠(yuǎn)處相交)變換到圖像上,射影變換的不變量是:重合關(guān)系、長(zhǎng)度的交比。自由度為15(16-1)
參考:https://blog.csdn.net/try_again_later/article/details/81281688
3. Homography、Essential和Fundamental Matrix的區(qū)別
Homography Matrix可以將一個(gè)二維射影空間的點(diǎn)變換該另一個(gè)二維射影空間的點(diǎn),如下圖所示,在不加任何限制的情況下,僅僅考慮二維射影空間中的變換,一個(gè)單應(yīng)矩陣HHH可由9個(gè)參數(shù)確定,減去scale的一個(gè)自由度,自由度為8。
Fundamental Matrix對(duì)兩幅圖像中任何一對(duì)對(duì)應(yīng)點(diǎn)x\bm xx和x′\bm x'x′基礎(chǔ)矩陣F\bm FF都滿(mǎn)足條件:xTFx′=0\bm{x^T F x' = 0}xTFx′=0,秩只有2,因此F的自由度為7。它自由度比本質(zhì)矩陣多的原因是多了兩個(gè)內(nèi)參矩陣。
Essential matrix:本質(zhì)矩是歸一化圖像坐標(biāo)下的基本矩陣的特殊形式,其參數(shù)由運(yùn)動(dòng)的位姿決定,與相機(jī)內(nèi)參無(wú)關(guān),其自由度為6,考慮scale的話自由度為5。
4. 視差與深度的關(guān)系
在相機(jī)完成校正后,則有 d/b=f/zd/b=f/zd/b=f/z,其中 ddd 表示視差,bbb 表示基線,fff 是焦距,zzz 是深度
5. 描述PnP算法
已知空間點(diǎn)世界坐標(biāo)系坐標(biāo)和其像素投影,公式如下
目前一共有兩種解法,直接線性變換方法(一對(duì)點(diǎn)能夠構(gòu)造兩個(gè)線性約束,因此12個(gè)自由度一共需要6對(duì)匹配點(diǎn)),另外一種就是非線性?xún)?yōu)化的方法,假設(shè)空間坐標(biāo)點(diǎn)準(zhǔn)確,根據(jù)最小重投影誤差優(yōu)化相機(jī)位姿。
目前有兩個(gè)主要場(chǎng)景場(chǎng)景,其一是求解相機(jī)相對(duì)于某2維圖像/3維物體的位姿;其二就是SLAM算法中估計(jì)相機(jī)位姿時(shí)通常需要PnP給出相機(jī)初始位姿。
在場(chǎng)景1中,我們通常輸入的是物體在世界坐標(biāo)系下的3D點(diǎn)以及這些3D點(diǎn)在圖像上投影的2D點(diǎn),因此求得的是相機(jī)坐標(biāo)系相對(duì)于世界坐標(biāo)系(Twc)的位姿
在場(chǎng)景2中,通常輸入的是上一幀中的3D點(diǎn)(在上一幀的相機(jī)坐標(biāo)系下表示的點(diǎn))和這些3D點(diǎn)在當(dāng)前幀中的投影得到的2D點(diǎn),所以它求得的是當(dāng)前幀相對(duì)于上一幀的位姿變換
6. 閉環(huán)檢測(cè)常用方法
本人知道的現(xiàn)在常用的就是利用詞袋模型進(jìn)行閉環(huán)檢測(cè),也有利用深度學(xué)習(xí)進(jìn)行閉環(huán)檢測(cè)的方法,暫時(shí)沒(méi)有去了解過(guò)
7. 給一個(gè)二值圖,求最大連通域
這個(gè)之后單獨(dú)寫(xiě)一篇博客來(lái)研究這個(gè)好了,二值圖的連通域應(yīng)該是用基于圖論的深度優(yōu)先或者廣度優(yōu)先的方法,后來(lái)還接觸過(guò)基于圖的分割方法,采用的是并查集的數(shù)據(jù)結(jié)構(gòu),之后再作細(xì)致對(duì)比研究。
8. 梯度下降法、牛頓法、高斯-牛頓法的區(qū)別
在BA優(yōu)化、PnP、直接法里面都有接觸到非線性?xún)?yōu)化問(wèn)題,上面幾種方法都是針對(duì)對(duì)非線性?xún)?yōu)化問(wèn)題提出的方法,將非線性最優(yōu)化問(wèn)題作如下展開(kāi),就可以獲得梯度下降法和牛頓法
梯度下降法是一個(gè)一階最優(yōu)化算法,通常也稱(chēng)為最速下降法。 要使用梯度下降法找到一個(gè)函數(shù)的局部極小值,必須向函數(shù)上當(dāng)前點(diǎn)對(duì)應(yīng)梯度(或者是近似梯度)的反方向的規(guī)定步長(zhǎng)距離點(diǎn)進(jìn)行迭代搜索。因此指保留一階梯度信息。缺點(diǎn)是過(guò)于貪心,容易走出鋸齒路線。
牛頓法是一個(gè)二階最優(yōu)化算法,基本思想是利用迭代點(diǎn)處的一階導(dǎo)數(shù)(梯度)和二階導(dǎo)數(shù)(Hessen矩陣)對(duì)目標(biāo)函數(shù)進(jìn)行二次函數(shù)近似。因此保留二階梯度信息。缺點(diǎn)是需要計(jì)算H\bm HH矩陣,計(jì)算量太大。
Δx?=?JT(x)/H\Delta \bm x^* = -\bm {J^T}(\bm x)/\bm HΔx?=?JT(x)/H
而把非線性問(wèn)題,先進(jìn)行一階展開(kāi),然后再作平方處理就可以得到高斯-牛頓法和列文博格方法
高斯-牛頓法對(duì)上式展開(kāi)并對(duì)Δx\Delta \bm xΔx進(jìn)行求導(dǎo)即可得高斯牛頓方程,其實(shí)其就是使用JJT\bm {JJ^T}JJT對(duì)牛頓法的H\bm HH矩陣進(jìn)行替換,但是JJT\bm {JJ^T}JJT有可能為奇異矩陣或變態(tài),Δx\Delta \bm xΔx也會(huì)造成結(jié)果不穩(wěn)定,因此穩(wěn)定性差
列文博格法就是在高斯-牛頓法的基礎(chǔ)上對(duì)Δx\Delta \bm xΔx添加一個(gè)信賴(lài)區(qū)域,保證其只在展開(kāi)點(diǎn)附近有效,即其優(yōu)化問(wèn)題變?yōu)閹в胁坏仁郊s束的優(yōu)化問(wèn)題,利用Lagrange乘子求解
9. 推導(dǎo)一下卡爾曼濾波、描述下例子濾波
參看我的另外一個(gè)總結(jié)博客概率機(jī)器人總結(jié)——粒子濾波先實(shí)踐再推導(dǎo)
10. 如何求解Ax=bAx=bAx=b的問(wèn)題
參看我的另外一個(gè)總結(jié)博客多視圖幾何總結(jié)——基礎(chǔ)矩陣、本質(zhì)矩陣和單應(yīng)矩陣的求解過(guò)程
11. 什么是極限約束
所謂極線約束就是說(shuō)同一個(gè)點(diǎn)在兩幅圖像上的映射,已知左圖映射點(diǎn)p1,那么右圖映射點(diǎn)p2一定在相對(duì)于p1的極線上,這樣可以減少待匹配的點(diǎn)數(shù)量。如下圖:
12. 單目視覺(jué)SLAM中尺寸漂移是怎么產(chǎn)生的
用單目估計(jì)出來(lái)的位移,與真實(shí)世界相差一個(gè)比例,叫做尺度。這個(gè)比例在單目初始化時(shí)通過(guò)三角化確定,但單純靠視覺(jué)無(wú)法確定這個(gè)比例到底有多大。由于SLAM過(guò)程中噪聲的影響,這個(gè)比例還不是固定不變的。修正方式是通過(guò)回環(huán)檢測(cè)。
10. 解釋SLAM中的綁架問(wèn)題
綁架問(wèn)題就是重定位,是指機(jī)器人在缺少之前位置信息的情況下,如何去確定當(dāng)前位姿。例如當(dāng)機(jī)器人被安置在一個(gè)已經(jīng)構(gòu)建好地圖的環(huán)境中,但是并不知道它在地圖中的相對(duì)位置,或者在移動(dòng)過(guò)程中,由于傳感器的暫時(shí)性功能故障或相機(jī)的快速移動(dòng),都導(dǎo)致機(jī)器人先前的位置信息的丟失,在這種情況下如何重新確定自己的位置。
初始化綁架可以闡述為一種通常狀況初始化問(wèn)題,可使用蒙特卡洛估計(jì)器,即粒子濾波方法,重新分散粒子到三維位形空間里面,被里程信息和隨機(jī)擾動(dòng)不斷更新,初始化粒子聚集到/收斂到可解釋觀察結(jié)果的區(qū)域。追蹤丟失狀態(tài)綁架,即在綁架發(fā)生之前,系統(tǒng)已經(jīng)保存當(dāng)前狀態(tài),則可以使用除視覺(jué)傳感器之外的其他的傳感器作為候補(bǔ)測(cè)量設(shè)備。
11. 描述特征點(diǎn)法和直接法的優(yōu)缺點(diǎn)
特征點(diǎn)法
優(yōu)點(diǎn):1. 沒(méi)有直接法的強(qiáng)假設(shè),更加精確;2. 相較與直接法,可以在更快的運(yùn)動(dòng)下工作,魯棒性好
缺點(diǎn):1. 特征提取和特征匹配過(guò)程耗時(shí)長(zhǎng);2. 特征點(diǎn)少的場(chǎng)景中無(wú)法使用;3.只能構(gòu)建稀疏地圖
直接法:
優(yōu)點(diǎn):1.省去了特征提取和特征匹配的時(shí)間,速度較快;2. 可以用在特征缺失的場(chǎng)合;3. 可以構(gòu)建半稠密/稠密地圖
缺點(diǎn):1. 易受光照和模糊影響;2.運(yùn)動(dòng)必須慢;3.非凸性,易陷入局部極小解
12. EKF和BA的區(qū)別
(1) EKF假設(shè)了馬爾科夫性,認(rèn)為k時(shí)刻的狀態(tài)只與k-1時(shí)刻有關(guān)。BA使用所有的歷史數(shù)據(jù),做全體的SLAM
(2) EKF做了線性化處理,在工作點(diǎn)處用一階泰勒展開(kāi)式近似整個(gè)函數(shù),但在工作點(diǎn)較遠(yuǎn)處不一定成立。BA每迭代一次,狀態(tài)估計(jì)發(fā)生改變,我們會(huì)重新對(duì)新的估計(jì)點(diǎn)做泰勒展開(kāi),可以把EKF看做只有一次迭代的BA
13. 邊緣檢測(cè)算子有哪些?
邊緣檢測(cè)一般分為三步,分別是濾波、增強(qiáng)、檢測(cè)。基本原理都是用高斯濾波器進(jìn)行去噪,之后在用卷積內(nèi)核尋找像素梯度。常用有三種算法:canny算子,sobel算子,laplacian算子
canny算子:一種完善的邊緣檢測(cè)算法,抗噪能力強(qiáng),用高斯濾波平滑圖像,用一階偏導(dǎo)的有限差分計(jì)算梯度的幅值和方向,對(duì)梯度幅值進(jìn)行非極大值抑制,采用雙閾值檢測(cè)和連接邊緣。
sobel算子:一階導(dǎo)數(shù)算子,引入局部平均運(yùn)算,對(duì)噪聲具有平滑作用,抗噪聲能力強(qiáng),計(jì)算量較大,但定位精度不高,得到的邊緣比較粗,適用于精度要求不高的場(chǎng)合。
laplacian算子:二階微分算子,具有旋轉(zhuǎn)不變性,容易受噪聲影響,不能檢測(cè)邊緣的方向,一般不直接用于檢測(cè)邊緣,而是判斷明暗變化。
14. 簡(jiǎn)單實(shí)現(xiàn)cv::Mat()
15. 10個(gè)相機(jī)同時(shí)看到100個(gè)路標(biāo)點(diǎn),問(wèn)BA優(yōu)化的雅克比矩陣多少維
因?yàn)檎`差對(duì)相機(jī)姿態(tài)的偏導(dǎo)數(shù)的維度是2×6,對(duì)路標(biāo)點(diǎn)的偏導(dǎo)數(shù)是2×3,又10個(gè)相機(jī)可以同時(shí)看到100個(gè)路標(biāo)點(diǎn),所以一共有10×100×2行,100×3+10×6個(gè)塊。
16. 介紹經(jīng)典的視覺(jué)SLAM框架
視覺(jué)SLAM總結(jié)——ORB SLAM2中關(guān)鍵知識(shí)點(diǎn)總結(jié)
視覺(jué)SLAM總結(jié)——SVO中關(guān)鍵知識(shí)點(diǎn)總結(jié)
視覺(jué)SLAM總結(jié)——LSD SLAM中關(guān)鍵知識(shí)點(diǎn)總結(jié)
此外,對(duì)SLAM算法感興趣的同學(xué)可以看考我的博客SLAM算法總結(jié)——經(jīng)典SLAM算法框架總結(jié)
總結(jié)
以上是生活随笔為你收集整理的视觉SLAM总结——视觉SLAM十四讲笔记整理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Hough直线检测的理解
- 下一篇: 机器学习总结——机器学习课程笔记整理