分散式車輛協同:伯克利DeepDrive無人機數據集B3D
深藍學院是專註於人工智能的在線教育平台,已有數萬名夥伴在深藍學院平台學習,很多都來自於國內外知名院校,比如清華、北大等。
1. 引言
研究自動駕駛車輛在複雜路況下的行為決策具有重要意義,但目前大多數自動駕駛數據集只關注結構化場景,很少有人去研究非結構化道路環境,更少人去研究複雜非結構化場景中的車輛行為。
本文將介紹一個重要的慣性框架數據集:Berkeley DeepDrive Drone (B3D),該數據集由相機採集,廣泛包含大量的複雜非結構化場景,包括有交通事故的高速公路、無信號燈交叉路口等。
該數據集有助於研究複雜路況下的自動駕駛車輛行為,並啟發自動駕駛汽車和倉庫機械人的分散運動規劃算法的新設計。
2. 摘要
分散式多智能體規劃一直是機械人領域的一個重要研究方向。在該領域的一個有趣和有影響力的應用是非結構化道路環境中的分散車輛協調。
例如,在一個交叉路口,在沒有中央協調器的情況下,對相交路徑的多個車輛進行拆分是有用的,但卻是困難的。我們從常識中了解到,要讓車輛通過這種非結構化的環境,駕駛員必須理解並遵守附近駕駛員所觀察到的隱含的社交禮儀。為了研究這種隱式駕駛協議,我們收集了伯克利Deep Drive Drone數據集。
該數據集包含1 )一組記錄非結構化駕駛的航拍視頻,2 )一組用於訓練車輛檢測模型的圖像和注釋,以及3 )一組用於說明典型用法的開發腳本。我們認為,該數據集對於研究人類駕駛員所採用的分散多智能體規划具有主要意義,對於遙感環境中的計算機視覺具有次要意義。
3. 數據集介紹
3.1 數據集格式
B3D數據集由20個後處理視頻、16002個帶注釋的圖像和一個開發工具包組成,數據集鏈接為//github.com/b3d-project/b3d。視頻、帶注釋的圖像和開發工具包的大小分別為84.5 GB、1.55 GB和225 MB,總計約86.3 GB。在20個經過處理的視頻中,有8個是在路口上錄製的,12個是在高速公路上錄製的,視頻格式為mp4,數據集的結構如圖1所示。
圖1 B3D數據集的文件結構
如圖2所示是B3D數據集中所展示的追尾事故,分別發生在hwy00.mp4,以及hwy01.mp4中。在hwy00.mp4的00:45,可以觀察到框架左邊緣附近的第一次事故。在hwy01.mp4的13:10,在幀中間發現了另一個碰撞事故。
圖2 hwy00.mp4和hwy01.mp4的追尾碰撞。
第一次事故涉及至少兩輛車,而第二起事件涉及四輛車。
無信號控制的交叉路口可以在jnc00.mp4、jnc01.mp4、jnc02.mp4和jnc07.mp4的視頻中找到。如圖3a所示和數字3b所示,視頻jnc00.mp4和jnc01.mp4是三叉路口的兩種變體。如圖3c和3d所示數字,視頻jnc02.mp4和jnc07.mp4是四向交叉口的兩種變體。
jnc03.mp4、jnc04.mp4、jnc05.mp4和jnc06.mp4都有無信號環形交叉口。如圖3e所示,視頻jnc03.mp4和jnc04.mp4是兩個ve-way環島的記錄。如圖3f和3g所示,視頻jnc05.mp4和jnc06.mp4是四向環形交叉口的兩種變體。
hwy04.mp4和hwy05.mp4記錄了走走停停的車流。第一個走走停停行為在hwy04.mp4時間02:30到05:07之間形成。第二次停停走走的浪潮出現在hwy04.mp4時間06:06到08:10之間。第三次停停走走的波動出現在hwy04.mp4時間的10:26到12:25之間。第四次發生在hwy05.mp4時間00:00到01:33之間。最後一次出現在hwy05.mp4時間05:19到06:07之間。停停走走波的形成和消散過程如圖4所示。
hwy06.mp4、hwy07.mp4和hwy08.mp4都記錄了道路工程引發的車輛合併。如圖3j所示,該場景的拓撲是一個四車道到兩車道的瓶頸。
hwy09.mp4、hwy10.mp4和hwy11.mp4記錄了匝道誘導合併。如圖3k所示,匝道的拓撲結構是一條三車道的入口匝道正在併入一條四車道的擁堵公路。在合併點之前和之後,車流保持堵塞。
圖3 B3D數據集中的典型道路拓撲。
(a)-(d)無信號燈交叉口,(e)-(g)無信號燈環形交叉口,(h)-(i)高速公路,以及(i)-(k)合流瓶頸。
圖4 走走停停車流的時間線。
綠色表示正常交通,紅色表示由強降雨引起的擁堵,淺紅色表示由走走停停引起的擁堵。
3.2 圖片標註
為了定性分析視頻中觀察到的車輛行為,需要獲得場景中每輛相關車輛的精確軌跡。為了構建車輛的軌跡,作者首先在每一幀中檢測其位置,然後使用跟蹤算法將跨幀的每個檢測位置關聯起來。
為此,作者建立了一個圖像數據集,可用於訓練車輛檢測模型。該數據集由16002個帶注釋的圖像組成,其中80%被分割用於訓練,10%用於驗證,10%用於測試。圖5顯示了一個示例注釋。
數據集中,總共有135303個邊界框被注釋為路口圖像,總共有129939個邊界框被創建為高速公路圖像。注意,所有車輛均被不加區分得定義為vehicle類。
圖5 注釋圖像示例。彩色矩形是場景中車輛的軸向對齊邊界框。
3.3 開發工具包
除了視頻和帶注釋的圖片,作者還提供了一個開發工具包,其中包含三個示例腳本:train.py、test.py和mask.py。
其中,腳本train.py用於顯示注釋圖像數據如何用來訓練用於車輛檢測的神經網絡模型。在這個腳本中,作者使用對象檢測庫Detectron2來訓練RetinaNet模型,用於檢測輸入圖像中車輛的位置。
腳本test.py將通過train.py腳本訓練的訓練模型應用於輸入圖像,用於訓練後的評估和推理。作者提供了預訓練模型,可以直接用於推理,使用預訓練模型的檢測結果的實例如圖6所示。
圖6 帶有檢測結果的示例圖像。彩色矩形是軸向對齊的邊界框。黑色數字是估計邊界框的置信分數,其中1.0表示完全確定,0.0表示完全不確定。
最後,mask.py根據預先定義的多邊形遮罩來裁剪圖像。圖7顯示了腳本如何根據紅色遮罩裁剪掉環島圖像的不相關部分。該腳本旨在幫助用戶專註於場景中唯一相關的部分,其中的相關性由用戶通過CVAT工具確定。要裁剪視頻,只需為視頻的一幀定義一個多邊形遮罩,然後對視頻的每一幀應用遮罩。此外,作者還提供了Docker文件。
圖7 mask過程的演示。紅色多邊形面具由CVAT設計。蒙版之外的像素被認為是不相關的,並被標記為黑色。
4. 視頻採集和處理
4.1 數據採集時間
在每次視頻拍攝期間,作者將四軸無人機直接懸停。然後使用內置相機以4K和30 FPS記錄俯視視頻。實驗設置的可視化如圖8所示。由於電池容量有限,每次拍攝被限制在15到20分鐘之間。
圖8 實驗裝置的圖解。四軸無人機懸停在感興趣的道路上,內置攝像機記錄每個交通參與者進出場景的俯視圖。
為了訓練用於車輛檢測的神經網絡模型,作者從20個視頻中每15秒提取一個幀,然後手動標記一個軸向對齊的邊界框,在選定的幀中的每個車輛。此外,作者裁剪了視頻幀中不相關的部分,如樹木、屋頂和停車場,以此來減小圖像的大小。
4.2 應用領域
在運動規劃任務中,B3D數據集典型的應用過程如下:
1)運行mask腳本以選擇視頻數據集的相關部分;
2)應用檢測模型提取mask場景中每輛車的位置;
3)檢查檢測結果,並且手動校正檢測錯誤;
4)使用SORT等跟蹤算法,將檢測到的位置關聯到軌跡中;
5)基於估計的軌跡學習和驗證人類駕駛模型。
以此估計得到的模型可以部署在自動駕駛系統上,用於在特殊非結構化場景中導航。此外,所得到的模型可以作為倉庫機械人開發分散協調算法的基線。
在計算機視覺中,B3D主要用於開發或評估遙感環境中的小型道路目標的CV算法。從空中視頻中檢測行人或騎單車的人對於最先進的計算機視覺來說仍然是一個挑戰。這很大程度上是由於這些小物體的低分辨率,因為低分辨率使物體在視覺上模糊不清。如圖9所示,檢測模型可能會將行人與水印混淆,或弄混行人和騎單車的人。為此,B3D可以作為構建訓練數據和驗證候選算法的數據源。
圖9 低分辨率物體的視覺模糊
5. 總結
本文介紹了伯克利DeepDrive無人機數據集,該數據集拓展了自動駕駛中的非結構化場景,對於研究複雜路況下的自動駕駛車輛行為具有重要意義。
該數據集包含總共20個視頻序列、16002個帶注釋的圖像和一個開發工具包。它可用於以下應用:1)在底層結構道路環境中模擬駕駛員行為,2)設計去中心化運動規划算法,以及3)開發用於低分辨率道路目標的檢測方法。