基于神經網絡的智能RC小車(Python+OpenCV)
看代碼時發現的一個有趣的例子,實現使用四大利器:
Raspberry Pi + Arduino + OpenCV Neural Network + RC CAR
硬件速覽
指示停車
參考:https://github.com/hamuchiwa/AutoRCCar.git
效果如下:
綠燈行
紅燈停
~~~~下面為機器人翻譯結果~~~~
上網小助手:http://download.csdn.net/detail/zhangrelay/9840220
AutoRCCar
看到行動中的自駕(Youtube)
使用RC車,Raspberry Pi,Arduino和開源軟件的自動駕駛系統的縮小版本。該系統使用帶有相機和超聲波傳感器的Raspberry Pi作為輸入,處理轉向,物體識別(停車標志和交通燈)和距離測量的處理計算機以及用于RC車輛控制的Arduino板。
依賴
樹莓Pi:
Picamera
電腦:
NumPy的
OpenCV的
Pygame的
PiSerial
關于
raspberrt_pi /
stream_client.py:以jpeg格式將視頻幀流式傳輸到主機
ultrasonic_client.py:將由傳感器測量的距離數據發送到主機
Arduino的/
rc_keyboard_control.ino:作為rc控制器和計算機之間的接口,允許用戶通過USB串行接口發送命令
電腦/
cascade_xml /
訓練級聯分類器xml文件
棋盤/
用于校準的圖像,由pi相機捕獲
training_data /
以npz格式訓練神經網絡的圖像數據
testing_data /
以npz格式測試神經網絡的圖像數據
training_images /
在圖像訓練數據采集階段保存視頻幀(可選)
mlp_xml /
在xml文件中訓練神經網絡參數
rc_control_test.py:帶鍵盤的驅動RC車(測試目的)
picam_calibration.py:pi相機校準,返回相機矩陣
collect_training_data.py:接收流式視頻幀和標簽框以供后續培訓
mlp_training.py:神經網絡訓練
mlp_predict_test.py:用測試數據測試訓練有素的神經網絡
rc_driver.py:多線程服務器程序接收視頻幀和傳感器數據,并允許RC車載驅動器本身具有停車標志,交通燈檢測和前碰撞避免能力
如何開車
Flash Arduino:Flash?“rc_keyboard_control.ino”到Arduino并運行“rc_control_test.py”來驅動rc車用鍵盤(測試目的)
Pi相機校準:使用pi相機以各種角度拍攝多張棋盤圖像,并將其放入“chess_board”文件夾中,運行“picam_calibration.py”,并返回相機矩陣,這些參數將用于“rc_driver.py”
收集培訓數據和測試數據:首先運行“collect_training_data.py”,然后在raspberry pi上運行“stream_client.py”。用戶按鍵盤驅動RC車,只有當有按鍵動作時才保存框架。完成駕駛后,按“q”退出,數據保存為npz文件。
神經網絡訓練:運行“mlp_training.py”,取決于所選擇的參數,需要一些時間訓練。培訓后,參數保存在“mlp_xml”文件夾中
神經網絡測試:運行“mlp_predict_test.py”從“test_data”文件夾加載測試數據,并從“mlp_xml”文件夾中的xml文件中訓練參數
級聯分類器訓練(可選):訓練有素的停車標志和交通燈分類器包含在“cascade_xml”文件夾中,如果您有興趣培訓您自己的分類器,請參考OpenCV文檔和Thorsten Ball
自駕駕駛:首先運行“rc_driver.py”在計算機上啟動服務器,然后在raspberry pi上運行“stream_client.py”和“ultrasonic_client.py”。
OpenCV 神經網絡
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。