無人駕駛雖然入門門檻很高,但是還是可以通過一些簡化的模型迅速上手。例如比較有名的DonkeyCar,其實就是一個簡單低成本的玩具車,基于樹莓派和Python,利用Keras深度學習框架實現(xiàn)自動駕駛。即使沒有實車,也可以在Donkey Car官網(wǎng)下載模擬器,用程序控制模擬器中的小車。感興趣的同學可以看看社區(qū)和文檔
目前還有一些比賽也在使用donkey car幫助大家低門檻地進入自動駕駛領(lǐng)域。例如中國人工智能學會主辦的2018模擬駕駛比賽,比賽提供了一些獎金,還為進入決賽的選手免費提供donkeycar實車線下比拼。此外,中國人工智能學會還會頒發(fā)證書,所以可以向想要入門自動駕駛,想保研、申請獎學金的同學推薦一下。此外,網(wǎng)上還有不少簡單的攻略,例如下面是一篇來自github的自動駕駛相關(guān)研究,我對這篇文章進行了編譯并在此發(fā)布,希望能幫助更多感興趣的朋友上手自動駕駛。
歡迎大家相互交流,項目地址:https://biendata.com/kernel/detail/427
導入相關(guān)庫
步驟1:獲取駕駛數(shù)據(jù)
數(shù)據(jù)集由 ~7900 個圖像和手動開車時收集的轉(zhuǎn)向角組成。大約三分之二的圖像與線之間的汽車。另外三分之一的車開始偏離航線,并且駛回線路之間。
路徑是
數(shù)據(jù)集由 2 個 pickled 數(shù)組組成。X 是圖像陣列,Y 是相應轉(zhuǎn)向角度的陣列。
結(jié)果:
步驟2:拆分數(shù)據(jù)
在這里,我們將洗牌(shuffle)我們的數(shù)據(jù),并將數(shù)據(jù)分成三部分。訓練數(shù)據(jù)將用于訓練我們的駕駛模型,使用驗證數(shù)據(jù)避免過度擬合模型,測試數(shù)據(jù)用于測試我們的模型是否學到了什么。
輸出:7892
輸出:7892
步驟3:增強訓練數(shù)據(jù)
為了加倍我們的訓練數(shù)據(jù)并防止轉(zhuǎn)向偏差,我們翻轉(zhuǎn)每個圖像和轉(zhuǎn)向角并將其添加到數(shù)據(jù)集中。還有其他的方法來增加使用翻譯和假陰影駕駛數(shù)據(jù),但我沒有使用這些自動駕駛儀。
結(jié)果:12626
步驟4:建立駕駛模式
這種駕駛模式將是一個端到端的神經(jīng)網(wǎng)絡,接受圖像陣列作為輸入,并輸出-90(左)和90(右)之間的轉(zhuǎn)向角。 要做到這一點,我們將使用一個完全連接圖層的3層卷積網(wǎng)絡。該模型基于 Otavio 的 Carputer,但不產(chǎn)生油門值輸出,不使用過去的轉(zhuǎn)向值作為模型的輸入,并且使用較少的卷積層。
使用 TensorFlow 后端
輸出:
步驟5:訓練模型
我已經(jīng)學會了很難的方法,即使這一切都是完美的,如果你沒有正確地訓練,你的自動駕駛儀將無法工作。我遇到的最大的問題是過度適應模型,以至于在很少的情況下都不能正常工作。 這里是 2 個 Keras回調(diào),將節(jié)省您的時間。
警告 -如果僅使用CPU,則需要很長時間(3小時)
我在沒有 CUDA 兼容 GPU 的 Dell XPS 筆記本電腦上運行,因此速度非常慢,并且凍結(jié)。為了加速訓練,您可以使用帶有 GPU 的 EC2 實例。Keras 和 Tensorflow 已經(jīng)加載了幾個實例圖像。
對于這個筆記本,我只會訓練模型 4 個時代(epochs)。
輸出:
步驟6:評估性能
我們可以通過繪制預測值和實際值來檢查我們的模型預測是否合理。第一個圖表顯示我們的測試數(shù)據(jù)中存在一個學習的關(guān)系(在訓練期間模型沒有看到)。
第二張圖,使用包含訓練數(shù)據(jù)的非混洗(unshuffled)數(shù)據(jù),來顯示預測角度緊跟實際轉(zhuǎn)向角度。
輸出:
下一步
改善模型,這個模型是純粹(navie)的,因為它不使用過去的值來幫助預測未來。我們可以通過將過去的轉(zhuǎn)向角度作為模型的輸入來進行試驗,添加一個遞歸層,或者只是改變卷積層的結(jié)構(gòu)。
添加更多數(shù)據(jù),隨著我們添加更多駕駛數(shù)據(jù),此模型將會得到改進。預測油門,輸出目前自動駕駛儀只能轉(zhuǎn)向并保持恒定的速度。一個更復雜的模型將加速在直路上,并在路緣之前放緩。
-
人工智能
+關(guān)注
關(guān)注
1804文章
48788瀏覽量
246949 -
機器學習
+關(guān)注
關(guān)注
66文章
8493瀏覽量
134170 -
python
+關(guān)注
關(guān)注
56文章
4825瀏覽量
86281 -
自動駕駛
+關(guān)注
關(guān)注
788文章
14225瀏覽量
169737 -
樹莓派
+關(guān)注
關(guān)注
121文章
1956瀏覽量
107045 -
tensorflow
+關(guān)注
關(guān)注
13文章
330瀏覽量
61050 -
keras
+關(guān)注
關(guān)注
2文章
20瀏覽量
6174
發(fā)布評論請先 登錄
如何為樹莓派 FPV 戰(zhàn)斗無人機構(gòu)建自動駕駛儀的“眼睛”!


樹莓派也能實現(xiàn)海上自動化駕駛?

NVIDIA Halos自動駕駛汽車安全系統(tǒng)發(fā)布
理想汽車推出全新自動駕駛架構(gòu)
【實戰(zhàn)】Python+OpenCV車道線檢測識別項目:實現(xiàn)L2級別自動駕駛必備(配套課程+平臺實踐)

MEMS技術(shù)在自動駕駛汽車中的應用
使用STT全面提升自動駕駛中的多目標跟蹤

評論