如果一輛車子要實現(xiàn)自動駕駛,那么障礙物感知絕對是最基礎也是最核心的功能。Apollo 障礙物感知系統(tǒng)分為3D 檢測、ROI 濾波、識別、運算、感知五大板塊。其感知過程如下:首先 LiDAR 探測到信號,傳遞給 ROI 的 Filter,濾波后的信號通過 Obstacle Segmentation 和 Detection 做識別,然后是 Tracking,Apollo 在運算這一塊采用的是 NVIDIA GPU,運算能力強勁,可以實現(xiàn) 10Hz 的輸出,最后是 Obstacles 感知。
當系統(tǒng)感知到障礙物后,需要對障礙物進行行為預測,如障礙物是否是動態(tài)的,其下一步動作是什么。Apollo 障礙物行為預測系統(tǒng)采用 MLP 多層感知機制,通過深度神經(jīng)網(wǎng)絡與規(guī)劃算法,達到精準預測路徑的目的。
訓練MLP深度學習模式有2個前提條件:
請從官網(wǎng)下載并安裝Anaconda軟件
運行以下命令安裝必要的依賴項:
安裝numpy: conda install numpy
安裝tensorflow: conda install tensorflow
安裝keras (version 1.2.2): conda install -c conda-forge keras=1.2.2
安裝h5py: conda install h5py
安裝protobuf: conda install -c conda-forge protobuf
接下來要遵循的步驟是使用發(fā)布的演示數(shù)據(jù)來訓練MLP模型。為了方便起見,我們把阿波羅作為本地阿波羅儲存庫的路徑,例如,/home/username/apollo
如果用來存儲離線預測數(shù)據(jù)的文件夾不存在的話,則使用命令
mkdir APOLLO/data/prediction
創(chuàng)建一個新文件夾
打開apollo/modules/prediction/conf/prediction.conf.通過改變--noprediction_offline_mode成--prediction_offline_mode來啟動離線模式
在apollo文件夾中用bash docker/scripts/dev_start.sh啟動dev docker
在apollo文件夾中用bash docker/scripts/dev_into.sh進入dev docker
在docker中,/apollo/下運行bash apollo.sh build進行編譯
在docker中,/apollo/下通過python docs/demo_guide/rosbag_helper.py demo_2.0.bag下載演示用rosbag
在docker中,/apollo/下通過bash scripts/prediction.sh start_fe運行預測模塊
打開一個新的終端窗口,使用步驟4進入apollo dev docker
在新的終端窗口中,在/apollo/下,使用rosbag play demo_2.0.bag播放演示rosbag
當rosbag在新終端中運行結束后,在原來的終端按下Ctrl + C停止預測模塊。
在/apollo/data/prediction/文件夾中檢查是否有feature.0.bin文件存在
在docker中進入
/apollo/modules/tools/prediction/mlp_train/
使用python generate_labels.py -f /apollo/data/prediction/feature.0.bin標記數(shù)據(jù)。然后在/apollo/data/prediction/文件夾中檢查是否有feature.0.label.bin文件存在
更新:
在docker中進入
/apollo/modules/tools/prediction/mlp_train/
使用python generate_labels.py /apollo/data/prediction/feature.0.bin /apollo/data/prediction/feature.0.label.bin標記數(shù)據(jù)。然后在/apollo/data/prediction/文件夾中檢查是否有feature.0.label.bin文件存在
在docker中,/apollo/modules/tools/prediction/mlp_train/下,通過python generate_h5.py -f /apollo/data/prediction/feature.0.label.bin生成 H5文件。然后檢查feature.0.label.h5是否被創(chuàng)建
更新:在docker中,/apollo/modules/tools/prediction/mlp_train/下, 通過python generate_h5.py /apollo/data/prediction/feature.0.label.bin/apollo/data/prediction/feature.0.label.h5生成 H5文件。然后檢查feature.0.label.h5是否被創(chuàng)建
退出dev docker
進入APOLLO/modules/tools/prediction/mlp_train/proto/文件夾并運行protoc--python_out=./fnn_model.proto來生成fnn_model_pb2.py
進入APOLLO/modules/tools/prediction/mlp_train/文件夾通過python mlp_train.py APOLLO/data/prediction/feature.0.label.h5啟動訓練模型
模型的評估報告在APOLLO/modules/tools/prediction/mlp_train/evaluation_report.log
模型會被存放在APOLLO/modules/tools/prediction/mlp_train/mlp_model.bin,如果你覺得你的模型更好可替換在APOLLO/modules/prediction/data/mlp_vehicle_model.bin中原來的模型
-
深度學習
+關注
關注
73文章
5561瀏覽量
122800 -
MLP
+關注
關注
0文章
57瀏覽量
4621
原文標題:技術文檔 | 如何訓練MLP深度學習模式
文章出處:【微信號:Apollo_Developers,微信公眾號:Apollo開發(fā)者社區(qū)】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
人臉檢測算法及新的快速算法
誰會小波神經(jīng)網(wǎng)絡預測算法的設計?
請問基于模型預測算法的DC/DC變換器電壓出現(xiàn)很大跳變是什么原因?
基于YOLOX目標檢測算法的改進
三操作數(shù)的前導1預測算法糾錯編碼模塊的設計與實現(xiàn)
基于網(wǎng)絡表示學習與隨機游走的鏈路預測算法

評論