樹莓派上利用Tensorflow實現小車的自動駕駛

先拋出你們最關心的——代碼地址:git

github傳送門:https://github.com/Timthony/self_drivegithub

碼雲傳送門:https://gitee.com/tiantianhang/self_drive網絡

基於樹莓派的人工智能自動駕駛小車工具

# 總體流程
電機控制    
攝像頭調試    
道路數據採集    
搭建深度學習模型,參數調試    
自動駕駛真實道路模擬    
參數最終調試    學習

使用方法:    
1. 先將樹莓派小車硬件組裝好
2. 使用zth_car_control.py來控制小車的先後左右移動,配合zth_collect_data.py來人工操做,使小車在本身製做的跑道進行數據採集。(該過程在樹莓派進行)
3. 數據採集完成之後使用zth_process_img.py來對採集的數據進行處理,以前當前先完成一些數據清洗的工做。(電腦上執行)
4. 使用神經網絡模型對數據進行訓練zth_train.py,獲得訓練好的模型。(電腦上執行)
5. 在樹莓派小車上使用zth_drive和訓練好的模型,載入模型,便可實如今原先跑道的自動駕駛。(樹莓派上執行)    
注意:只須要使用上述提到的代碼便可,別的都是一些初始版本或者正在增長的一些新模塊。    人工智能

 


# 注意事項:
1. 賽道須要本身製做,很重要,決定了數據質量。(我是在地板上,貼的有色膠帶,而後貼成了跑道的形狀)。
2. 賽道的寬度大約是車身的兩倍。
3. 大約採集了五六萬張圖像,而後篩選出三四萬張。
4. 攝像頭角度問題調試

# 具體制做流程: 
1. 小車原始模型,某寶購買玩具車便可,好比:有電機,有自帶電池盒(給電機供電)
2. 樹莓派,攝像頭,蓄電電池組(用於樹莓派供電)
3. 使用一些螺栓,螺柱,亞克力板將樹莓派,蓄電電池固定在小車上(具體方法,看手頭的工具吧)
4. 組裝好之後,樹莓派經過VNC鏈接電腦,登錄樹莓派,在樹莓派安裝keras環境,以便最後調用訓練好的模型。
5. 關於小車的控制(電機控制,攝像頭採集數據),都在源文件,有註釋,大體思路就是經過方向鍵AWSD來控制方向,使用了pygame的工具包。
6. 經過電腦端的wasd方向鍵手動控制小車(已經VNC鏈接好)在製做好的賽道上進行圖像採集,直線部分按w,左拐彎按a,右拐彎按d等,建議採集50000張以上。
(採集的圖像命名要求爲,0_xxxx,1_xxxx,其中首位字母就表明了你按下的是哪一個鍵,好比圖像是0開頭,那麼這張圖像就是直行,按下的是w鍵,這些0,1,2,3,4 數字就至關於數據的標籤值)
7. 將圖片從樹莓派拷貝下來,進行數據清洗,使用電腦端的深度學習環境進行模型訓練,使用的模型能夠自行定義。
8. 將訓練好的模型文件.h5拷貝到樹莓派,而後經過樹莓派調用載入模型,便可處理實時的圖像,而且根據圖像預測出是0,1,2,3,4等數字,也就表示了樹莓派該怎麼移動,經過樹莓派控制電機便可。blog


# 正在進行一些改進:    
1.使用遷移學習進行fine-tuning是否能夠提升精度    
2.處理光照問題    
3.處理數據類別不平衡的問題    
歡迎交流討論    圖片

相關文章
相關標籤/搜索