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

北北北樂發表於2019-01-17

先丟擲大家最關心的——程式碼地址:

github傳送門:github.com/Timthony/se…

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

# 整體流程
電機控制
攝像頭除錯
道路資料採集
搭建深度學習模型,引數除錯
自動駕駛真實道路模擬
引數最終除錯

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

樹莓派上利用Tensorflow實現小車的自動駕駛
# 注意事項:
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等數字,也就表示了樹莓派該怎麼移動,通過樹莓派控制電機即可。


# 正在進行一些改進:
1.使用遷移學習進行fine-tuning是否可以提高精度
2.處理光照問題
3.處理資料類別不平衡的問題 

 
歡迎交流討論    




在這裡推薦咕泡學院的《人工智慧商業實戰》,內容有AI深度學習、機器學習、Python、數學、大資料等等,目的是:通過6個月的學習+實戰,將學員培養達到具備一年專案經驗的人工智慧工程師水平。

想了解課程的朋友可以戳戳這裡 → 直達

為了幫助大家讓學習變得輕鬆、高效,給大家免費分享一大批資料,讓AI越來越普及。在這裡給大家推薦一個人工智慧Python學習交流群:705673780歡迎大家進群交流討論,學習交流,共同進步。

當真正開始學習的時候難免不知道從哪入手,導致效率低下影響繼續學習的信心。

但最重要的是不知道哪些技術需要重點掌握,學習時頻繁踩坑,最終浪費大量時間,所以擁有有效資源還是很有必要的。


相關文章