基於視覺的位姿求解總結

1. 根據匹配點對估計相機運動,不同相機原理估計方法:(1)當相機爲單目時,只知道2D的像素座標,根據兩組2D點估計運動。該問題用對極幾何來解決。(2)當相機爲雙目、RGB-D時,或者通過某種方法獲得了距離信息,問題就是根據兩組3D點估計運動。該問題通常用ICP來解決。(3)如果有3D點及其在相機的投影位置,也能估計相機的運動。該問題通過PnP求解。
	1. 2D-2D:通過二維圖像點的對應關係,恢復出在兩幀之間攝像機的運動。
		1. 方法
			1. 對極約束,八點法求本質矩陣,分解得旋轉矩陣和平移矩陣
				1. 5個自由度,8對點來估計
					1. SVD分解
			2. 單應矩陣:描述兩個平面之間的映射關係,若場景中的特徵點都落在同一平面上(如牆、地面),可以通過單應性來進行運動估計。
				1. 8個自由度,4對匹配點(八點法求)
					1. DLT求解
		2. 優勢:對單目相機也可以估計出位姿。
		3. 劣勢:
			1. 尺度不確定性
			2. 初始化
			3. 純旋轉
			4. 八點法求解基礎矩陣,基礎矩陣多出來的自由度主要由噪聲決定。
		4. 折中辦法:爲了避免退化現象造成的影響,同時估計基礎矩陣F和單應矩陣H,選擇重投影誤差比較小的哪個作爲最終的運動估計矩陣。
	2. 3D-2D:求解3D到2D點對運動的方法。描述了當知道n個3D空間點及其投影位置時,如何估計相機的位姿。
		1. 方法:如果兩張圖象中其中一張特徵點的3D位置已知,那麼最少只需要3個點對(需要至少一個額外點驗證結果),就可以估計相機運動。特徵點的3D位置可以由三角化或者RGB-D相機的深度圖確定。
			1. 直接線性變換
				1. DLT
				2. SVD(匹配點大於6對)
			2. P3P
				1. 求解投影點在相機座標系下的3D座標,將問題轉換成3D-3D的位姿估計。
					1. 存在問題:
						1. P3P只用3個點的信息,當給定的配對點多於3組時,難以利用更多的信息。
						2. 如果3D點或2D點受噪聲影響,或者存在誤匹配,算法失效。
					2. 改進:(1)EPnP、UPnP等,利用更多信息,並且採用迭代的方式對相機位姿進行優化,儘可能消除噪聲影響。(閱讀原始論文通過實踐理解PnP過程。)。(2)SLAM中,通常先用P3P/EPnP等方法估計相機位姿,然後構建最小二乘優化問題對估計值進行調整(Bundle Adjustment)。
			3. Bundle Adjustment
		2. 優勢:在雙目或RGB-D視覺里程計中,可以直接使用PnP估計相機運動。在單目視覺里程計中,必須先進行初始化,然後才能使用PnP。3D-2D方法不需要使用對極約束,可以在很少的匹配點中獲得較好的運動估計。
	3. 3D-3D:ICP配對好的3D點
		1. 方法
			1. SVD
			2. ICP
				1. 使用非線性優化,以迭代的方式去找最優解。使用李代數擾動模型,在非線性優化中只需要不斷迭代,就能找到極小值。
					1. 優勢:(1)ICP問題存在唯一解或無窮多解的情況。在唯一解的情況下,只要能找到極小值解,那麼這個極小值就是全局最優解,不會遇到局部極小而非全局最小的情況。ICP求解可以任意選定初始值。至少已匹配點時求解ICP的一大好處。(2)此處ICP是指已由圖像特徵給定了匹配的情況下進行位姿估計的問題。在匹配已知的情況下,這個最小二乘問題具有解析解,沒有必要進行迭代優化。由於RGB-D SLAM中,一個像素的深度數據可能測量不到,可以混合着使用PnP和ICP優化:對深度已知的特徵點,建模它們的3D-3D誤差;對深度未知的特徵點,建模3D-2D的重投影誤差。於是可以將所有誤差放在同一個問題中考慮,求解更加方便。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章