天天看點

百度Apollo(二):障礙物感覺子產品

Apollo感覺子產品具有識别障礙物和交通燈的能力。

其中,Apollo解決的障礙物感覺問題:

1. 高精地圖ROI過濾器(HDMap ROI Filter)

2. 基于卷積神經網絡分割(CNN Segmentation)

3. MinBox 障礙物邊框建構(MinBox Builder)

4. HM對象跟蹤(HM Object Tracker)

其源碼在:apollo\modules\perception\obstacle\lidar

高精地圖 ROI 過濾器

高精地圖 ROI 過濾器處理在ROI(包含路面、路口的可駕駛區域)之外的雷射雷達點,去除背景對象,如路邊建築物和樹木等,剩餘的點雲留待後續處理。

主要有以下步驟

1. 坐标轉換:使世界坐标系和點雲坐标系處于同一相同坐标系下。

2. ROI LUT構造:采用LUT(網格顯示查找表),将ROI量化為俯視圖2D網格(8*8的網格,每個網格為70 / 8 = 8.75米,對應于量化後的網格每個網格為25 / 8 = 3.128厘米)。

百度Apollo(二):障礙物感覺子產品

3. ROI LUT點查詢:查詢ROI内的點。

基于CNN的障礙物分割

經過高精地圖 ROI 過濾器後,檢測和劃分前景障礙物,例如汽車,卡車,自行車和行人。

主要有以下步驟

1. 通道特征提取:在俯視圖2D網格中計算每個單元格的8個統計測量(這裡面用到了點雲的反射率,也就是單元格的強度),這8個統計測量則為CNN的輸入通道特征。

2. 基于CNN的障礙物預測:使用全卷積神經網絡來預測單元格障礙物的屬性(center offset(中心偏移)、objectness(對象性,是否有物體)、positiveness(積極性,是否為正目标)、object height(物體高度)、class probability(物體的類别))。

百度Apollo(二):障礙物感覺子產品

3. 障礙物聚類:使用CNN預測得到的單元格障礙物屬性(objectness屬性門檻值為0.5)生成候選對象叢集。

百度Apollo(二):障礙物感覺子產品

4. 後期處理:Apollo首先對所涉及的單元格的積極性和物體高度值,平均計算每個候選群體的檢測置信度分數(預設門檻值為0.1)和物體高度。 然後,Apollo去除相對于預測物體高度太高的點(預設為0.5米),并收集每個候選集中的有效單元格的點。 最後,Apollo删除具有非常低的可信度分數或小點數(小于3個點)的候選聚類,以輸出最終的障礙物集/分段。

MinBox障礙物邊框建構

使用CNN學習的方法得到的障礙物是由一個個網格組合而成,在這裡使用MinBox的方法得到物體的最終邊界框。具體方法是任意選擇一條邊,将其他多邊形上的點投影到這條邊上,建立具有最大距離的交點對,其具有最大距離的點的集合則為邊框的邊緣,然後通過疊代所有邊,選擇最小面積的方案得到最終的邊界框。

百度Apollo(二):障礙物感覺子產品

結論:Apollo通過用點雲進行學習得到物體俯視圖邊界框,結合相機圖像進行學習得到的物體邊界框,則可得到物體3D的邊界框。

HM對象跟蹤

HM對象跟蹤器跟蹤分段檢測到的障礙物。通常,它通過将目前檢測與現有跟蹤清單相關聯,來形成和更新跟蹤清單,如不再存在,則删除舊的跟蹤清單,并在識别出新的檢測時生成新的跟蹤清單。 更新後的跟蹤清單的運動狀态将在關聯後進行估計。 在HM對象跟蹤器中,匈牙利算法(Hungarian algorithm)用于檢測到跟蹤關聯,并采用魯棒卡爾曼濾波器(Robust Kalman Filter) 進行運動估計。

特别說明:本文為本人學習所做筆記。

具體參考:https://github.com/ApolloAuto/apollo/blob/master/docs/specs/3d_obstacle_perception_cn.md

繼續閱讀