首頁  >  文章  >  科技週邊  >  自動駕駛中基於特徵點的全域定位技術解析

自動駕駛中基於特徵點的全域定位技術解析

王林
王林轉載
2023-04-12 15:19:431562瀏覽

在無人駕駛中,感知、定位、規劃決策、控制是四個基本的系統模組。由於目前演算法還無法實現絕對的智能,因此依然需要大量的先驗知識來提高模組性能、穩健性,以實現安全的自動駕駛。其中,高精地圖是道路及週邊環境先驗知識的整合。而建立在地圖之上的準確定位,是判斷行車狀況的重要依據,為後續的感知、規劃決策提供強力支撐。

用於定位的主要資料來源目前主要有 GPS、光達、視覺、毫米波雷達。對於視覺而言,雖然目前還沒有一套產業內公認的足夠可靠的定位方案,但是在這方面探索從未停止過,主要原因如下:

安全性是無人駕駛系統最重要的指標,因此大部分功能的實現,都是多源資料、不同演算法結果的耦合。沒有哪種感測器方案是完美的,例如 GPS RTK 作為廣泛使用的方案,容易受天氣狀況、 資料鏈傳輸狀況影響,在隧道內、室內和高樓密集區無法使用。再者,雷射雷達雖然具有運算量小,提供深度訊息,不受光照影響等優點,但資訊稀疏,造價目前還十分昂貴,還不具備大批量車輛裝配能力。相比較而言,攝影機提供的視覺訊息,雖然會受到光照、天氣影響,但是成本低,內容豐富,是目前輔助駕駛方案主要資料來源,在地圖定位方面也具有很大潛力。

由於主流基於視覺定位演算法的核心思想一脈相承,所以本文僅從一系列重要演算法框架組件角度,介紹了目前實踐中最常用的、基於特徵點的全局定位演算法,即在地圖座標系下進行定位。本文省略了其中涉及的最佳化、幾何約束公式推導,旨在給同學們一個定位演算法的宏觀介紹,具體細節可以參考相關文獻和書籍。

1 視覺全域定位概念

視覺全域定位,指的是根據目前影像,求相機在地圖座標系中的6個自由度(Degree of freedom, DoF) 位姿(Pose) , 即  (x, y, z) 座標,以及環繞三個座標軸的角度偏轉(yaw, pitch, roll) 。目前主要可以分類為基於 3D 結構的方法、基於 2D 影像的方法、基於序列影像的方法、基於深度學習的方法。其中,基於深度學習的方法屬於端對端(End-to-end) 的方法,而其它多階段(Multi-stage) 非端到端方法雖然流程有所差別,但演算法思路大都如Fig. 1 所示:

自動駕駛中基於特徵點的全域定位技術解析

Figure 1: 依據查詢影像,計算 2D-3D 轉換矩陣,求解相機位姿

基於已建立的地圖,匹配歷史中最相似的地圖子集(圖像/點雲/特徵點),根據匹配到的地圖子集所提供的歷史位姿真值、特徵點座標真值,計算點對間的變換矩陣,求解目前相機位姿。

所以,其核心包含圖像描述、建圖查詢、特徵匹配,位姿計算四個面向。這裡只是技術層面的宏觀分類,實際演算法架構不一定按照此順序執行,而學者在研究中主要針對這些技術進行改進。整體而言,基於特徵點的圖像描述基本成熟,發展較少。而位姿計算由於是基於幾何限制的最佳化問題,所以方法也較為固定。相對地,在建圖查詢和特徵匹配中改進技術較多。根據資料來源不同,建圖查詢、比對可以是2D-2D,2D-3D,3D-3D。 2D 影像由相機得到,3D 點雲可以由提供深度的雙眼相機、RGB-D 相機產生。

2 特徵點提取

2D 影像本身是由亮度、色彩組成的矩陣,對視角、光線、色調變化等很敏感,直接使用十分困難。所以,一般會使用代表性的點來進行相關計算。人們希望這樣的點具有旋轉、平移、尺度、光照不變性等優點。這些點稱為影像的特徵 (Feature) 點,包含關鍵點(Key-points) 和描述子 (Descriptor) 兩部分。關鍵點表達了特徵點的位置,而描述子則是對於特徵點視覺特性的描述,大多為向量形式。一般而言,描述子主要是以某種模式,統計關鍵點周圍的灰階/色彩梯度變化。一種穩健的描述子,在不同影像 的不同情況下,同一特徵點的描述子的距離 (Distance) 應當較小。

描述子一般是人為手工設計的 (Hand-crafted features) 。經典的描述如 HOG(Histogram of oriented gradients)[1],SIFT(Scale-invariant feature transform)[2],SURF(Speeded up robust features)[3],AKAZE(Accelerated KAZE)[4] 等。

為了即時性的要求,一些計算速度更快的二值模式描述子被設計出來,如LBP(Local binary patterns)[5],BRIEF(Binary robust independent elementary features),ORB(Oriented FAST and rotated BRIEF)[6],BRISK(Binary robust invariant scalable key-point)[7],FREAK(Fast retina key-point)[8] 等。

在深度學習流行之前,這些手工特徵一直引領著整個運算視覺產業,直到今天,這些特徵在那些缺少標註資料、約束較多的場景下,依然被廣泛應用。以下簡單介紹兩類常用的描述子。

SIFT

SIFT 描述子可以算是CV 界最具影響力的技術之一。從關鍵點檢測層面,主要使用高斯差分 (Difference of Gaussian, DoG) 方法檢測多尺度空間上的極值點,作為關鍵點。而 Babaud 等人 [9] 證明了高斯平滑是唯一的能用多尺度空間平滑濾波核,為相關方法提供了充足的理論支持。

那麼為什麼這樣的方法可以找到特徵關鍵點呢?

#由於高斯核可以透過模糊的方式把影像縮放到不同尺度空間,而梯度變化較小的平滑區域在不同尺度空間的數值差距較小。相反,邊緣、點、角、紋理等區域則差距較大。這樣透過對相鄰尺度的影像做差分,最後可以算得多尺度空間的極值點。但是,不同的影像細節本身就處於不同的尺度中。例如一副人物畫像中,人臉可能經過較小的模糊就會被平滑為一片,而畫框的角則可能需要更大尺度的平滑才會體現出局部「極值」。

因此,如 Fig. 2 所示,首先利用影像金字塔將影像先分組 (Octave) ,每組再使用不同尺度的高斯核,形成一系列的圖層。這種方式比單純地使用更多尺度的高斯核效果更好,可以偵測到更多的特徵點。需要注意的是,雖然 SIFT 使用了 DoG 進行關鍵點檢測,但其它檢測方法也是可行的,並不影響 SIFT 描述子的建立。

自動駕駛中基於特徵點的全域定位技術解析

Figure 2: 高斯差分方法

SIFT 特徵點的描述子,可以理解為一種簡單統計版的HOG。如 Fig. 3所示,以偵測到的關鍵點為中心,選取周圍 16 × 16 的區域,將區域再組織為 4 個 4 × 4 的區塊(Patch)。對每一個區塊,使用 8-bins 的直方圖對梯度進行統計,梯度方向決定落入哪個 bin,而梯度的模決定值的大小。為了確保尺度一致性,梯度大小需要進行歸一化。為了確保旋轉不變性,會根據 16 × 16 的區域內的所有梯度計算出一個主方向, 所有梯度都按照主方向旋轉。最終形成 4 × 4 × 8 的 128 維向量。

自動駕駛中基於特徵點的全域定位技術解析

Figure 3: 基於梯度分塊統計的SIFT 描述子

二值描述子

#雖然在SIFT 提出後,又產生了一些改進演算法如SURF、AKAZE 等,但即使放在2019 年的今天, 依然難以保證一些場景對演算法即時性的要求。例如,手持設備一般算力有限。而無人駕駛中,CPU、GPU資源需要被多個運算密集模組同時調度。因此,效率是考察演算法實用性的重要指標。

為了提高效率,一些二值描述子被學者提出。一般地,這些方法都是在特徵關鍵點周圍進行點採 樣。接著比較一對點的灰階大小,結果以 0/1 表示,形成 N 維的二元描述向量,構成特徵點的二值模式。而不同二值描述子最大的差別,主要在於特徵採樣模式不同、點對選取方法​​不同。

自動駕駛中基於特徵點的全域定位技術解析

Figure 4: LBP 描述子取樣模式

##如Fig. 4所示,LBP 描述子採用對關鍵點周圍,進行環形取樣,並與中心關鍵點的灰階進行比較的方案。圓環上展示了灰階比較結果,黑色的點是 0,白色的點是 1。 LBP 是二值描述子最簡單的形式,而 ORB 改進了 BRIEF 特徵,是目前比較常用的二值描述子。如 Fig. 5所示,在點對選取上,與單純使用中心點不同,ORB 採取了隨機的方式,更全面地描述局部細節。但點對的相關性會比較大,進而降低描述子的判別性(Discriminative)。 ORB 直接採用了貪婪法、窮舉法來解決這個問題,尋找相關性低的隨機點對。

自動駕駛中基於特徵點的全域定位技術解析

Figure 5: ORB 描述子點對選取模式

以上二值描述子的取樣方式和點對選取方式符合人們一般直覺,而BRISK、FREAK 等描述子則提供了更規則化、自帶尺度資訊的二值模式建構方法。例如,FREAK 描述子模仿了人眼的視覺取樣模式。如 Fig. 6所示,每個取樣點的值是紅色圓圈範圍內的灰階平均值,藍線則表示點對選取方案。

自動駕駛中基於特徵點的全域定位技術解析

Figure 6: FREAK 描述子取樣、點對選取摸式

二值描述子的高效率,主要體現在三個方面。

(1)二值描述子使用二進位向量作為特徵描述,只需要 比較點對大小而不需要計算具體梯度。

(2)兩個描述子之間比較可以使用計算更快,更容易優化的漢明距離 (Hamming distance)。

(3)由於每個二進位向量都對應一個十進制數,所以其本身也代了表一種模 式,而不需要像 SIFT 一樣使用直方圖進行表示。

二值描述子一般判別性不如SIFT 家族描述子,但在特定場景下,配合平行化編程,可以在保證相似判別能力的同時,效率高出幾十甚至百倍。

3 資料庫建立與查詢

資料庫可以理解為地圖 索引的整合。地圖可以是由單純的 2D 影像組成,也可以是由 3D 點雲地圖組成,也可以是 2D 影像和 3D 點雲的結合。 3D 點雲地圖產生主要使用三維重建的方法 SfM(Structure from motion),從時間序列的 2D 影像中推算 3D 資訊。如果有雙眼、RGB-D 相機提供深度,可以獲得 更準確的 3D 點資訊。其中也包含了一些關鍵影格(Key-frame)的選取策略,具體方法超出了本文的討論範圍,有興趣的同學可以自行查閱相關資料。資料庫的功能在於:

對於一張輸入的觀測影像,透過資料庫,查詢建圖歷史(影像/點雲/特徵點),得到目前影像最可能觀測到的地圖子集(影像/點雲/特徵點),將地圖與觀測資訊進行匹配,計算變換矩陣,得到觀測相機的位姿。

索引則是加速這過程的關鍵。資料庫本身往往是巨大的。以美團的小袋機器人在北京朝陽大悅城二層試運作為例,安裝有 3 個深度相機,即使經過篩選,也使用了將近 8 萬張 900 × 600 的圖片。考慮到定位所需的即時性,查詢時不可能每次都和 8 萬張圖片一一對比,所以要使用索引技術加速整個演算法。這方面技術與 SLAM 中的回環測試,視覺中的影像檢索、位置辨識等高度重合,以下僅介紹一般方法。

一張影像內有若干特徵點,需要先對特徵點進行編碼,如 VLAD(Vector of locally aggregated descriptors) 編碼,用局部描述子形成影像的全域描述。再使用索引,如 kd-tree,進行影像層級查詢。當然,編碼和索引也可以同時進行,如層次化詞袋模型(Bag-of-words,BoW) 正向索引 逆向索引的方法。

VLAD 編碼

VLAD(Vector of locally aggregated descriptors)[10],如Fig. 7所示,是一種透過聚合局部描述子形成碼本 (Codebook) ,透過累加計算描述子與碼詞 (Word) 的距離,進行全域編碼的簡單方法。一個 自動駕駛中基於特徵點的全域定位技術解析 維描述子 自動駕駛中基於特徵點的全域定位技術解析 透過 自動駕駛中基於特徵點的全域定位技術解析 個碼詞的碼本編碼,可以形成一個 自動駕駛中基於特徵點的全域定位技術解析# 維的描述向量,向量中的值是描述子與第 自動駕駛中基於特徵點的全域定位技術解析 個碼詞在第 自動駕駛中基於特徵點的全域定位技術解析 維的差。之後進行 自動駕駛中基於特徵點的全域定位技術解析 歸一化,形成最後的 VLAD 向量。

自動駕駛中基於特徵點的全域定位技術解析

Figure 7: VLAD 透過描述子與碼詞的距離進行編碼

這裡要特別提介紹一下 DenseVLAD[11] 和 NetVLAD[12] 。 Torii 等人證明,DenseSIFT 在查詢、配對上都優於標準 SIFT。 DenseVLAD 在四個尺度,以 2 個像素間隔的網格狀採樣模式,提取 SIFT 點。在全域隨機取樣 25M 個描述子,用 k-means 演算法產生 128 個碼詞的碼本。 VLAD 向量在歸一化後使用 PCA(Principal component analysis) 降維,形成最後 4096 維的 DenseVLAD 向量。如 Fig. 8所示,使用DenseSIFT 配對後的內點(綠色)數量更多。

自動駕駛中基於特徵點的全域定位技術解析

Figure 8: DenseSIFT 與標準 SIFT 特徵點,搭配後內點(綠色)對比

而NetVLAD,VLAD 中加入了監督訊息,加強VLAD 編碼的判別性。如 Fig. 9所示,假設紅、綠兩個描述子來自於不應匹配到一起的兩張圖片。由於它們都離 VLAD 中心(×)半徑較大且距離相似,因此經過 L2 歸一化,它們編碼後值也會很相似。而加入了紅、綠描述子所對應圖片不匹配的監督資訊後,NetVLAD 產生的中心點(★)則可以更好地區分兩個描述子,增加他們編碼後的距離(半徑)差。

自動駕駛中基於特徵點的全域定位技術解析

Figure 9: NetVLAD 聚類中心(×)與VLAD 聚類中心(★)比較

#BoW 編碼索引

#基於詞袋模型BoW[ 13, 14] 的特徵編碼及其設計想法在電腦視覺發展中具有舉足輕重的地位,這裡不再展開介紹。本文以 2D 查詢影像符合 2D 影像資料庫為例,介紹一種常見的 BoW 編碼、索引一體化的模型。如 Fig. 10所示,字典 (Vocabulary) 生成採用層次化方法,對於資料集中的所有描述子,按樹狀結構進行空間劃分,每一層都是由 k-means 聚類計算。最終葉子節點就相當於碼詞(Fig. 10中有 9個碼詞)。

自動駕駛中基於特徵點的全域定位技術解析

Figure 10: 帶有正向索引、逆向索引的層次化BoW 模型

樹的建構過程,其實就是將原始影像編碼的過程。但編碼本身並不能加快搜尋過程,與 VLAD 相似,還是需要與資料庫中的圖像逐一比較。因此,這裡設計了一種逆向索引(Inverse index) ,不需要比較編碼後的向量。其原理如 Fig. 11所示,對於一張查詢圖像 (Query image) ,將提取的描述子輸入到 BoW 中,最終會落入碼詞葉子結點 (Visual word) k 中。

而每個碼詞對應一個索引,記錄碼詞 自動駕駛中基於特徵點的全域定位技術解析 而對資料庫中第 自動駕駛中基於特徵點的全域定位技術解析 張圖的權重 自動駕駛中基於特徵點的全域定位技術解析自動駕駛中基於特徵點的全域定位技術解析自動駕駛中基於特徵點的全域定位技術解析自動駕駛中基於特徵點的全域定位技術解析

自動駕駛中基於特徵點的全域定位技術解析


# (Fig.10)。這裡權重使用 TF-IDF(Term frequency–inverse document frequency) 計算。也就是如果一個字 

 在某個圖像 

 中出現頻率高,在其它影像出現頻率低,則這個字對於影像判別性較好,權重值

 較高。最終透過投票 (Voting) 機制,選出匹配影像。同樣需要注意的是,逆向索引不一定建立在樹狀結構的 BoW 上,它只是提供一種快速查詢的方法。

自動駕駛中基於特徵點的全域定位技術解析

Figure 11: 透過反向索引投票機制,直接查詢映像

自動駕駛中基於特徵點的全域定位技術解析

# #而正向索引 (Direct Index) 的作用主要是記錄構造BoW 時,資料庫圖片的特徵點都落入了哪些結點中,這樣當查詢到影像後,不需要計算特徵點,可以直接透過索引提取特徵點。

3D 點雲查詢###########################2D在影像查詢中,是先從語意層面查詢影像,因此可以透過影像對特徵點的空間範圍進行約束。 3D 點雲查詢沒有這樣的約束,所以有許多難點。如需考慮空間連續性,查詢到的點是否都在可觀測範圍內等。這裡僅介紹 Sattler 在 TPAMI 2016 上發表的方法 [15],經過多年的打磨,這套方法框架相對簡潔、完善。由於其中的字典編碼搜尋步驟與上節內容重疊,這裡僅介紹 Active Search 和 Visbility Filtering 兩種機制。 ############Active Search 主要是為了讓配對到的 3D 點盡可能在空間中接近、有幾何意義。如 Fig. 12所示,紅 色的點經過一系列編碼、精化過程(紅線),配對到了點雲中一個點。根據所提出優先排序(Prioritization) 框架,從點雲中找到一個機率最大的 3D 點,並反向(藍線)匹配查詢影像中的一個對應的 2D 點。 ########################Figure 12: Active Search##################### ######Figure 13: Visbility Filtering ##########

Visbility Filtering 主要是為了讓配對到的點盡可能可以被相機觀測到(定位是無監督的,並不能知道所匹配到的點是否正確)。這裡採用的方法是在使用 SfM 建立 3D 點雲地圖時,同時建立一個雙向可見圖 (Bipartite visibility graph) 。如 Fig. 13(左)所示,當一個點可以同時被兩台相機觀測時,則建立拓樸關係。 Fig. 13(中)裡,藍色的點為匹配到的點,它們從觀測視角上存在衝突。透過在已有拓樸上進 行圖聚類,將相機兩兩分組,如 Fig. 13(右)。這樣就可以產生新的圖拓樸關係。之後透過判斷每個子圖(Sub-graph)間的重合情況,過濾掉那些那大機率不可見的點。

需要說明的是,雖然雙眼相機和RGB-D 相機可以獲得深度,查詢2D 影像也可以獲得限定範圍內的3D 特徵點座標,但由於目前技術限制,在室內材質複雜,室外大尺度場景下,深度並不可靠。所以 2D影像點和 3D 點雲地圖的匹配依然是重要的方法。

4 特徵點匹配

特徵點匹配過程可以是在資料庫查詢中自適應完成的,這多見於基於3D 結構的查詢。配對也可以是在查詢後單獨進行,多見於基於 2D 影像查詢。特徵匹配的目的是,為後續的變換矩陣計算提供匹配的點對集,實現位姿的解算。

經典RANSAC

#隨機抽樣一致演算法 (Random sample consensus,RANSAC)[16] 是一種經典的資料濾波、參數擬合演算法。它假設資料(內點,Inliers)分佈符合一定的數學模型,透過迭代計算,去除外點 (Outliers) 、雜訊點, 同時取得機率上最佳的模型參數。在全域定位中,內點指正確的匹配,外點指錯誤的匹配,參數模型指匹配點對的空間變換矩陣。如 Fig. 14所示,經過 RANSAC 演算法優化後,匹配更加合理。 RANSAC 所期望找到的匹配子集需要滿足兩個指標:內點重投影誤差盡可能小;內點數量盡可能多。所以基本流程如下:

  • ①取樣初始子集。
  • ②計算變換矩陣。
  • ③ 根據變換矩陣計算匹配點的重投影誤差。
  • ④ 去除誤差較大的點
  • #⑤ 迴圈①-④,保留最符合指標的配對方案。

自動駕駛中基於特徵點的全域定位技術解析

Figure 14: (上)原始特徵匹配;(下)經過RANSAC 演算法優化後的匹配

#其中,初始候選匹配是根據描述子之間的距離產生的,但重投影誤差則只和關鍵點的空間位置有關, 與描述子本身無關。具體投影矩陣方法請參考「2.4 位姿計算」。需要指出的是,RANSAC 演算法受到原始匹 配誤差和參數選擇的影響,只能保證演算法有足夠高的機率合理,不一定會得到最優的結果。演算法參數主要包括閾值和迭代次數。 RANSAC 得到可信模型的機率與迭代次數成正比,所得到的匹配數量和閾值成反比。因此實際使用時,可能需要反覆嘗試不同的參數設定才能得到較優的結果。

學者們對經典RANSAC 演算法進行了許多改進,如Fig. 15所示,提出了全局RANSAC(Universal- RANSAC)[17] 的結構圖,形成了具有普適性的RANSAC 架構,涵蓋了幾乎所有的RANSAC 的改進方面,如預濾波、最小子集取樣、由最小子集產生可靠模型、參數校驗、模型精修。

自動駕駛中基於特徵點的全域定位技術解析

Figure 15: Universal-RANSAC 通用演算法框架

可微分RANSAC

#由於手工描述子在定位領域依然表現出較高的效能,所以一些學者開始探索使用深度學習代替演算法框架中的某些部分,而不是直接使用端到端的位姿估計模型完全取代傳統方法。可微分RANSAC(Differentiable RANSAC,DSAC)[18] 旨在用機率假說選擇代替確定性假說選擇,使得RANSAC 過程可以被求導,流程如Fig. 16所示,其中「Scoring」步驟依然採用重投影誤差作為指標,不同的是,誤差是基於整張影像而不是特徵點,而原先篩選特徵點匹配的過程被換為了直接以機率篩選相機位姿假設h 的過程。雖然目 前方法限制比較大,但 DSAC 為如何在目前無監督為主的定位演算法架構中加入先驗知識,提供了一個可行的思路。

自動駕駛中基於特徵點的全域定位技術解析

Figure 16: 差分RANSAC 演算法框架

5 位元姿計算

對於已獲得的正確匹配點對,需要透過幾何限制計算對應的變換矩陣  (Transformation matrix) 。由於資料庫中的點座標,採樣時的相機位姿已知,所以可以透過匹配點對於地圖點的變換矩陣,得到目前相機的位姿。此處定義一些基本符號。相機內參為 自動駕駛中基於特徵點的全域定位技術解析 ,變換矩 自動駕駛中基於特徵點的全域定位技術解析# 的均勻形式為:

其中, 為旋轉矩陣,   為平移矩陣。

2.4.1 2D-2D 變換矩陣計算

自動駕駛中基於特徵點的全域定位技術解析

Figure 17: 2D- 2D 變換矩陣計算中的對極幾何

對於兩張二維影像中的已匹配好的特徵點對() ,它們在歸一化平面上的座標為(),需要透過對極約束計算出對應的變換矩陣。如Fig. 17所示,其幾何意義是  三者共面,此面又稱為極平面,自動駕駛中基於特徵點的全域定位技術解析 稱為基線,自動駕駛中基於特徵點的全域定位技術解析  稱為極線。對極約束中同時包含了平移和旋轉,定義為:

自動駕駛中基於特徵點的全域定位技術解析

#

其中,自動駕駛中基於特徵點的全域定位技術解析 是 自動駕駛中基於特徵點的全域定位技術解析 在歸一化平面上的座標,∧ 是外積運算子。將公式中間部分計為基礎矩陣 自動駕駛中基於特徵點的全域定位技術解析 與本質矩陣 自動駕駛中基於特徵點的全域定位技術解析# ,則有:

自動駕駛中基於特徵點的全域定位技術解析

#由於本質矩陣 自動駕駛中基於特徵點的全域定位技術解析 不具有尺度訊息,所以E 乘以任意非零常數後對極約束依然成立。 自動駕駛中基於特徵點的全域定位技術解析 可以用經典的 8 點法來解(Eight-point-algorithm),然後分解得到 自動駕駛中基於特徵點的全域定位技術解析自動駕駛中基於特徵點的全域定位技術解析#。因此可以看出 2D-2D 的變換矩陣解法方式有兩個缺點,首先單目視覺具有尺度不確定性,而尺度資訊需要在初始化中由 自動駕駛中基於特徵點的全域定位技術解析 提供。相對地,單目初始化不能只有純旋轉,必須要有足夠程度的平移,否則會導致 自動駕駛中基於特徵點的全域定位技術解析 為零。

2D-3D 變換矩陣計算

2D-3D 匹配是位姿估計中重要的一種方法。一般使用 PnP 法,即已知 自動駕駛中基於特徵點的全域定位技術解析 對 2D-3D 匹配點,求解變換矩陣,以獲得相機位姿。我們將 3D 點 P(X, Y, Z) 投影到相機成像平面 (自動駕駛中基於特徵點的全域定位技術解析) 上:

自動駕駛中基於特徵點的全域定位技術解析

其中,自動駕駛中基於特徵點的全域定位技術解析 為尺度,自動駕駛中基於特徵點的全域定位技術解析 。這個等式的求解可以化為一個線性方程式問題,每個特徵可以提供兩個線性限制:

自動駕駛中基於特徵點的全域定位技術解析

#這樣,最少可以透過6對匹配點進行求解,而匹配數大於6 時可以使用SVD 等方法透過構造最小平方法求解。 P3P 法可視為 PnP 法的特殊解法,如 Fig. 18所示,利用三角形相似性增加更多約束,只需要 3 對點就可以求解。其它解法還有直接線性變換法 (Direct linear transformation,DLT),EPnP(Efficient PnP) 法,和 UPnP(Uncalibrated PnP)等。相對於上述線性最佳化方法,非線性最佳化方法如Bundle Adjustment(BA) 也有廣泛的應用。 BA 方法在視覺SLAM 中是一種「萬金油」的存在,可以同時優化多個變量,這樣可以一定程度緩解局部誤差帶來的系統不穩健,有興趣的同學可以翻閱相關資料更深入地進行了解。

自動駕駛中基於特徵點的全域定位技術解析

Figure 18: 2D-3D 轉換矩陣計算中的P3P 方法

#3D-3D 變換矩陣計算

#3D 點之間的變換矩陣可以用迭代最近點(Iterative closet point, ICP)演算法求解。假設點對符合 (自動駕駛中基於特徵點的全域定位技術解析) 結果正確,則求得的轉換矩陣應盡量減少重投影誤差 自動駕駛中基於特徵點的全域定位技術解析。可以使用SVD 求解最小平方法問題:

自動駕駛中基於特徵點的全域定位技術解析

或使用建立在李代數上的非線性最佳化方法Bundle Adjustment 來求解

自動駕駛中基於特徵點的全域定位技術解析

自動駕駛中基於特徵點的全域定位技術解析自動駕駛中基於特徵點的全域定位技術解析

#####其中,######### 表示相機位姿。這裡的優化目標與2D-3D 匹配中的Bundle Adjustment 的類似,但是不需要考慮相機內參 ######### ,因為透過雙眼相機或RGB-D 深度相機,已經把原本影像上的2D 點從相機成像平面投影到3D 世界。 ############ICP 問題已被證明有唯一解和無窮多解的情況。因此,在存在唯一解的情況下,最佳化函數相當於是凸函數,極小值即是全域最優解,無論採取何種初始化,都可以求得這一唯解。這是 ICP 方法的一大優點。 ######

本文從圖像描述、建圖查詢、特徵匹配,位姿計算四個面向介紹了基於特徵點的位姿估計演算法。雖然傳統視覺全局定位方法目前依然是實際應用中的首選,但是,傳統方法是建立在特徵點被正確定義、正確提取、正確匹配、正確觀測的前提下進行的,這一前提對於視覺本身而言就是巨大的挑戰。其次,由於傳統方法是multi-stage 框架,而非end-to-end,所以中間每個環節,環節之間的交互,都需要眾多參數調整,每個環節的技術都可以作為一個單獨的研究方向。實際應用時,也需要加入大量對應具體場景的tricks,工程上較為複雜。

而人們對 end-to-end 方法的期望催生出瞭如 PoseNet,VLocNet,HourglassNet 等網絡,在 benchmark上取得了不錯的成績。筆者認為目前end-to-end 的方法還存在很多問題,主要有loss function 缺少幾何約束,建圖時位姿的6 自由度空間並不連續,與輸入空間難以形成良好映射,而且缺少相應的位姿回歸、 精化機制等。不能否認,作為非線性空間最有力的建模工具,深度學習在未來會更多地出現在定位領域。

回歸到視覺定位本身,由於視覺最重要的優勢就是成本低、語意豐富、使用場景限制少。因此,以視覺為主,其它低成本感測器為輔的定位融合方案在未來也將是一個重要的課題。

以上是自動駕駛中基於特徵點的全域定位技術解析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:51cto.com。如有侵權,請聯絡admin@php.cn刪除