從視覺圖像直接恢復出相機位姿和場景結構的方法主要可以分爲兩類:
第一類是基於特徵的方法。這種方法的標準流程就是:對每一幀圖像進行特徵提取,並構建描述子,然後通過計算幀與幀之間描述子的距離匹配特徵點,再通過對極幾何的進行相機的位姿初步計算以及最小化重投影誤差進行位姿和特徵點三維座標優化。
第二類是基於直接法。即不需要進行特徵提取,用局部像素的梯度和方向值進行計算,優化出相機的位姿和三維點。
基於特徵的方法主要的是ORBSLAM, 對每一幀圖像進行FAST特徵提取,而後通過比較特徵點之間brief描述子的距離進行特徵點匹配。匹配後的特徵點通過2D-2D的方式計算出兩幀圖像之間的轉換矩陣,而後再通過最小化重投影誤差進行優化。這就是Tracking部分的主要工作,當然,在LOcalMapping 和 loopclosing線程還有對特徵點的三維點進行優化,當然也是通過最小化重投影誤差。
直接法:
1. 思路:
已知三維點P在相機1中對應的像素點爲p1,則可以根據當前相機位姿的估計值,尋找到P在相機2中對應的像素值p2;
2. 優化變量:
優化光度誤差,也就是P在兩張圖片中對應的兩個像素點p1,p2之間的亮度誤差;
3. 分類:根據在圖像中選用的P的來源,可以將直接法分爲以下三類
1. 稀疏直接法: P來自於稀疏關鍵點,只比較關鍵點周圍區域的像素值,不使用描述子;
2. 半稠密:只使用有梯度值的像素點
3. 稠密直接法:使用所有的像素點,但是需要使用GPU加速;