可實現自動駕駛和人臉識別-基于樹莓派的智能機器人小車

2019年11月06日 作者:Teardown

在學習電子工程專業的四年級時,我決定為上學期參加的課程付諸行動制作一個機器人。我著迷于我們可以通過簡單的數學運算來完成的事情,這些運算由Matlab等程序或Python等編程語言的計算能力提供支持。

開發的主要應用包括用于自動駕駛的機器學習,用于語音識別,遠程控制遠程信息處理,增強現實和QR碼識別以及面部識別,并且為此我需要開發了一個Android應用來控制機器人。

該機器人基于配置有自定義Wheezy OS的Raspberry Pi B +型。我有一個WiFi卡,用于創建自己的網絡以進行遠程連接和遠程控制。這樣,開發板就可以連接到計算機,并訪問開發板和arduino中包含的遠程信息處理數據。通信連接是基于SSH的,更新可以通過互補的TCP協議發送到主板。

樹莓派顯然已經具備我想要實現的基本功能(自動駕駛和圖像處理),因此采用這種方式只可以處理外部計算機中的內容,然后讓機器人行動。因此,主要的機器人應用程序將在機器人外部的計算機中運行,并且該機器人將長期充當機器的“人偶”。這樣,我們還可以使用操縱桿遠程控制機器人,并獲取自動駕駛所需的遠程信息處理數據。這以較低的成本解決了處理能力的問題,使我們能夠測試更高級的算法,例如VGG16神經體系結構。

該機器人能夠在以下方面提供遠程信息處理信息:

  • RGB圖像以60 FPS的視頻饋送,分辨率為1080 x 720
  • 基于PWM脈沖頻率的車輪轉速
  • 攝像機的伺服角度和目標位置
  • 相機麥克風的單聲道音頻輸入
  • Raspberry PI中包含的任何信息,例如存儲的圖像,文件和GPIO數據

自動駕駛

對于自動駕駛部分,我們主要使用VGG16網絡。這意味著我們刪除了對圖像特征進行分類的密集網絡,并用我們自己的網絡代替,該網絡可以提供所需的車輪速度作為輸出。為了進行訓練,我用紙條在我公寓的地板上畫了一條電路,并配置了機器人進行遠程控制。我通過不同的電路對機器人進行了操縱,以確保每經過幾步就對其進行更改。結果是一個龐大的數據集,其中包含圖像信息和每幀記錄的車輪速度。我們花了幾個小時在我大學的計算機超強GPU上訓練了神經網絡。考慮到圖像的網絡傳輸和處理中的延遲,其結果是對自動駕駛是一個很好的推薦,其速度相當合理。每幀花費80毫秒來處理黑白大小調整后的圖像。未來的測試將包括用于RGB處理的更快的GPU和更完善的神經網絡。

人臉識別

機器人的另一個應用是識別人臉。當我介紹機器人時,這也是最吸引人的地方。該人臉識別算法是眾所周知的人臉識別算法,它使用Python編碼的類似Haar的功能。一旦找到面部,伺服器就會移動,以使面部在相機中居中。簡單但很有效,對許多人來說顯然很友好。像這樣的簡單交互可以確保人類和機器人有基本的互動,認為機器人是平易近人的,而不是外星人。

 

版權聲明:電路城原創編譯,翻譯自Hackaday,轉載請注明出處!

相關文章

tracer ?? 广西快乐十分即时开奖 极速飞艇能玩吗 托雷斯总进球 彩票平台注册开户 汽修如何赚钱 北京pk10 2018什么微商好赚钱 什么样的模式赚钱 金博棋牌app官网 快乐十分常出前组3 做房子装修赚钱吗 河南十一选五走势图 cf手游挑战翻牌技巧 麻将来了外挂 小财神彩票苹果 九乐棋牌这两天怎么下载不了 做人别昩着良心赚钱