關文彬
(武漢理工大學自動化學院,湖北武漢,430060)
隨著經濟的發展,國民對于汽車的需求量越來越大,但伴隨著石油資源的逐漸減少、對環境保護和可持續發展的需求以及電池技術的發展,電動汽車已經成為未來的一個趨勢。但由于電動汽車由電動機驅動,沒有發動機特有的聲音,在低速行駛時接近靜音狀態。這對于駕駛員來說是駕駛的享受,然而對于一些視力障礙者及老年人、兒童等反應力不佳的特殊人群來說,因為難以提前判斷汽車的靠近可能會導致交通事故的發生。本文介紹了一種基于計算機視覺的智能臨近車輛行人警示聲音系統的設計實現方案。
智能臨近車輛行人警示聲音系統主要由控制器、攝像頭和喇叭組件三大部分構成。整體系統結構如圖1所示。

圖1 系統結構
系統控制器采用安裝了Raspbian系統的Raspberry Pi,控制器通過讀取VCU傳來的當前車輛狀態數據,如數度,前進方向,充電等,判斷出汽車當前的運行情況以及車主是否打開行人警示系統常開的功能。在系統控制器依據車輛狀態判斷出可以播放音頻的情況下,通過攝像頭判斷出是否需要播放音頻,確定需要播放音頻后由系統控制器發出音頻信號傳遞給喇叭組件來發出相應的聲音。
通常電動汽車存在電壓為12V的供電輸入口,但是因為電動汽車內部環境復雜,需要對智能行人警示系統的電源部分進行一定保護處理,防止系統因此而損壞。所以在電源模塊中需要加入防浪涌,濾波等功能的小模塊來保證整個直流電源的穩定運行。對于喇叭組件來說,供電可以采用4~15V的電壓。為了保證聲音的質量,同時也為了減少電路的數量以確保穩定性,采用12V電壓給喇叭組件供電。對于系統控制器部分和攝像頭部分來說,供電所需電壓均為5V。一般而言無法直接從車輛供電系統中獲得此電壓值,需要進行降壓處理。一般常用的12V到5V降壓為線性穩壓器,不過考慮到在電動車中使用的效率問題和散熱問題線性穩壓器并不是良好的選擇,而使用小型BUCK降壓模塊可以達到極高的效率同時具有體積小、散發的熱量遠低于線性穩壓器等優點,所以選擇添加一DC—DCBUCK斬波器來完成降壓環節。 電源模塊結構如圖2所示。
因為本系統需要運行機器視覺算法,需要足夠大的內存來運行程序,市面上常見的STM32系列單片機無法很好的滿足需要,同時市面上專用于運行機器學習算法的NPU供應稀少,故系統控制器采用Raspberry Pi 3B。Raspberry Pi 3B具 有Broadcom BCM2837內 核、1G內 存、4個USB2.0接口、3.5mm音頻輸出、17個GPIO和15—針頭MIPI 相機 (CSI) 界面且僅有信用卡大小。可能用Raspberry Pi運行完整的機器學習程序無法實現,但如果僅運行機器學習模型是能夠滿足要求并且有效的降低開發難度的。同時,使用Raspberry Pi作為系統控制器可以很方便的進行后續的系統升級,以提供更好的用戶體驗。

圖2 電源模塊
為了檢測到整輛車周圍的環境采用六個攝像頭來進行檢測。因為Raspberry Pi沒辦法同時讀取六個攝像頭的全部數據,所以需要一塊含有六片FIF存儲模塊的短時存儲板進行輔助,使Raspberry Pi能夠按順序讀取攝像頭信息。
Raspberry Pi直接輸出的音頻信號十分微弱,無法正常驅動車載喇叭,因此無法滿足實際需求。所以需要在電路中添加一功放板。功放板采用12V電壓供給電壓工作,可以驅動合計160W的多個全頻喇叭,可以滿足汽車對外喇叭的使用需求。同時這樣可以方便更換不同的驅動板和喇叭型號來滿足不同檔次的車輛需求。
本系統的程序部分分為在Windows系統上進行的模型訓練以及在Raspberry Pi 3B以及相應的系統Raspbian上的運行環境兩部分。
本系統在Windows端下進行神經網絡訓練時的軟件開發環境為Python,同時采用Google的機器學習庫TensorFlow和基于TensorFlow的Keras。而在Raspberry Pi 3B端則需要配置OpenCV 3這一開源的計算機視覺庫,同時運行已訓練好的模型的腳本為Python編寫的腳本程序。
對于Windows端來說可以通過不斷的采集數據以優化機器學習模型的準確度。然后通過更新的形式發送給Raspberry Pi 3B來不斷的提高系統的準確度。
當用戶以警示系統常開的模式運行時,在車輛的速度位于0~30km/h的低速行駛情況下,系統不會去讀取攝像頭采集的信息,直接按照每3km一個區間得到劃分播放對應的音頻,可以完成正常的行人警示系統的功能。
當用戶以智能檢測的模式運行時,系統在車輛速度位于0~30km/h的情況下會讀取攝像頭得到信息來進行行人檢測。在此時采用的檢測行人的方法是檢測行人的面部,因為對于車輛來說除了前方其余方向靠近車輛的時候均為面對車輛的情況,此時通過人臉來判斷是否存在行人可以有效提高準確率和降低模型的訓練難度。然后,我們在循環內部調用FIFO存儲的攝像頭數據,并讓OpenCV 3以 grayscale 模式加載我們輸入的圖像。在程序檢測到人臉后調用控制音頻的Python腳本播放對應的音頻。整體程序框架如圖3所示。
因為控制器采用了Raspberry Pi 3B,使得用戶可以獲得更多的附加功能,如:可以更改自己想要的警示聲音,可以在充電的時候播放特殊的警示聲音,可以在戶外露營時直接控制喇叭播放想要聽的音樂以調節氣氛等功能。

圖3 程序框架