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