如果一輛車子要實(shí)現(xiàn)自動(dòng)駕駛,那么障礙物感知絕對(duì)是最基礎(chǔ)也是最核心的功能。Apollo 障礙物感知系統(tǒng)分為3D 檢測(cè)、ROI 濾波、識(shí)別、運(yùn)算、感知五大板塊。其感知過(guò)程如下:首先 LiDAR 探測(cè)到信號(hào),傳遞給 ROI 的 Filter,濾波后的信號(hào)通過(guò) 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ī)制,通過(guò)深度神經(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
接下來(lái)要遵循的步驟是使用發(fā)布的演示數(shù)據(jù)來(lái)訓(xùn)練MLP模型。為了方便起見(jiàn),我們把阿波羅作為本地阿波羅儲(chǔ)存庫(kù)的路徑,例如,/home/username/apollo
如果用來(lái)存儲(chǔ)離線預(yù)測(cè)數(shù)據(jù)的文件夾不存在的話,則使用命令
mkdir APOLLO/data/prediction
創(chuàng)建一個(gè)新文件夾
打開(kāi)apollo/modules/prediction/conf/prediction.conf.通過(guò)改變--noprediction_offline_mode成--prediction_offline_mode來(lái)啟動(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/下通過(guò)python docs/demo_guide/rosbag_helper.py demo_2.0.bag下載演示用rosbag
在docker中,/apollo/下通過(guò)bash scripts/prediction.sh start_fe運(yùn)行預(yù)測(cè)模塊
打開(kāi)一個(gè)新的終端窗口,使用步驟4進(jìn)入apollo dev docker
在新的終端窗口中,在/apollo/下,使用rosbag play demo_2.0.bag播放演示rosbag
當(dāng)rosbag在新終端中運(yùn)行結(jié)束后,在原來(lái)的終端按下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/下,通過(guò)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/下, 通過(guò)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來(lái)生成fnn_model_pb2.py
進(jìn)入APOLLO/modules/tools/prediction/mlp_train/文件夾通過(guò)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,如果你覺(jué)得你的模型更好可替換在APOLLO/modules/prediction/data/mlp_vehicle_model.bin中原來(lái)的模型
-
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5554瀏覽量
122461 -
MLP
+關(guān)注
關(guān)注
0文章
57瀏覽量
4480
原文標(biāo)題:技術(shù)文檔 | 如何訓(xùn)練MLP深度學(xué)習(xí)模式
文章出處:【微信號(hào):Apollo_Developers,微信公眾號(hào):Apollo開(kāi)發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
人臉檢測(cè)算法及新的快速算法
誰(shuí)會(huì)小波神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)算法的設(shè)計(jì)?
請(qǐng)問(wèn)基于模型預(yù)測(cè)算法的DC/DC變換器電壓出現(xiàn)很大跳變是什么原因?
請(qǐng)問(wèn)h.264幀內(nèi)預(yù)測(cè)算法的各個(gè)子模塊的代碼怎么設(shè)計(jì)?
請(qǐng)問(wèn)h.264的幀內(nèi)預(yù)測(cè)算法的ding層怎么設(shè)計(jì)
請(qǐng)問(wèn)h.264幀內(nèi)預(yù)測(cè)算法的fpga實(shí)現(xiàn)怎么設(shè)計(jì)?
基于YOLOX目標(biāo)檢測(cè)算法的改進(jìn)
三操作數(shù)的前導(dǎo)1預(yù)測(cè)算法糾錯(cuò)編碼模塊的設(shè)計(jì)與實(shí)現(xiàn)
基于網(wǎng)絡(luò)表示學(xué)習(xí)與隨機(jī)游走的鏈路預(yù)測(cè)算法

基于移動(dòng)模式匹配的目標(biāo)軌跡預(yù)測(cè)算法
基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法

評(píng)論