江 穎,李全彬
(江蘇師范大學 物理與電子工程學院,江蘇 徐州 221100)
在車輛行駛過程中,駕駛員疲勞駕駛、判斷失誤等將大概率造成交通事故。為避免交通事故的發生,智能汽車應運而生[1]。為有效降低交通事故發生率,本文從智能輔助駕駛技術出發,對智能汽車的預警避障技術進行研究,設計了基于樹莓派的智能預警避障小車。
在此方面,已有研究人員針對障礙物檢測和避障路線規劃提出了一些方案。車雨紅[2]將STM32芯片作為主控芯片,建立模糊控制規則,使小車能夠精準躲避不同方向的障礙物。岳俊峰等[3]利用STM32單片機協同機器視覺模塊OpenCV組成智能小車系統,實現了在靜態障礙物環境下小車對障礙物的有效識別與規避障礙路徑規劃,但該系統并未對小車在動態障礙物環境下的預警避障問題進行研究。吳波濤等[4]以Arduino為核心控制器,實現了對小車的驅動控制、遙控和避障等功能;以樹莓派為視頻流服務器,實現了實時視頻圖像傳輸功能。穆元杰等[5]利用樹莓派設計實現了果園智能噴藥車遙控器,該設計驗證了利用樹莓派可實現智能車前方實時圖像的采集和無線網絡傳輸。
上述研究對象一般是針對障礙物和小車本身。由于技術和價格問題,目前無人駕駛尚未普及[6],因而在駕駛輔助系統設計中應當將駕駛員考慮在內。本設計以樹莓派為核心處理器,通過人臉識別功能提取駕駛員年齡和性別,并根據提取的相關信息劃分駕駛者類別,然后基于模糊邏輯確定不同的安全預警距離[7]。當車輛與障礙物之間的距離小于安全距離時,則根據不同場景選擇相對合理的預警避障方案。
本系統以樹莓派3B+為核心控制器。首先,通過攝像頭拍攝駕駛員臉部照片,識別獲取駕駛員年齡和性別;其次,利用紅外避障模塊和超聲波測距模塊實時檢測小車周圍的障礙物距離;最后,樹莓派通過分析實際采集的駕駛者信息和動態環境數據判斷安全距離,構建具有針對性的預警避障方案。駕駛員如果未在預警條件下及時做出反應,或者無法達到安全駕駛要求,則系統將緊急制動。系統流程設計如圖1所示。
圖1 系統流程設計
樹莓派3B+板卡配備1.4 GHz、64位四核Cortex-A53處理器,1 GB RAM,全尺寸HDMI,4個標準USB端口,CSI攝像頭連接器,DSI顯示連接器,40針GPIO接頭等。系統可通過軟件編程的方法實現人臉識別、預警避障等功能。
超聲波測距傳感器具有頻率高、波長短、繞射小、方向性好、定向傳播等特點。超聲波對液體、固體的穿透性好,尤其適用于光線穿透性差的固體[8]。本系統采用帶有舵機云臺的超聲波測距傳感器,可以實現180°障礙物測距[9]。
紅外避障模塊具有一對紅外線發射與接收管,發射管發射一定頻率的紅外線,當檢測方向遇到障礙物時,紅外線反射回來后被接收管接收,經過比較器電路處理之后,綠色指示燈亮起,并輸出數字信號。正常工作情況下,模塊電壓約為5 V,紅外避障模塊上的紅外接收器遇到障礙物而折回時,電壓下降[10]約0.1 V。紅外避障傳感器原理如圖2所示。
圖2 紅外避障傳感器原理
聲光預警模塊利用紅外避障傳感器的指示燈及BST-4WD拓展板上的蜂鳴器實現預警模式下的聲光報警。當探測到有障礙物時,紅外避障探測器的指示燈亮起;當車輛與障礙物的距離小于安全距離時,蜂鳴器發出警報,提醒駕駛員采取相應避障措施。若超過預警時間,駕駛員仍未采取行動,系統將緊急制動。蜂鳴器電路如圖3所示。
圖3 蜂鳴器電路
完善的軟件控制系統是智能車穩定運行的核心。本系統在Linux環境下采用Python腳本語言編寫代碼。Python是常用的解釋型腳本語言,而C語言是常用的編譯語言,相比而言,Python編程更加快捷。軟件設計流程如圖4所示。
本系統通過攝像頭對駕駛員面部拍照,然后將圖片保存至設置的文件夾中。樹莓派采用OpenCV DNN模塊和Dlib庫實現人員性別、年齡及圖片中人臉框位置的檢測,最后將檢測結果可視化。人臉識別效果如圖5所示。
圖4 軟件設計流程
圖5 人臉識別效果
當駕駛員未能在預警條件下及時作出反應時,本系統將自主避障,或在達到危險距離時緊急制動。在靜態障礙物環境下,如小車遇到墻體且在安全距離內則自主避障;當小車被多種障礙物圍繞時,則會迅速規劃出避障路線并及時避障。在動態障礙物環境下,如小車檢測到有行駛車輛和行人時,則會在安全距離內主動避障。避障流程如圖6所示。
圖6 避障流程
現場測試時,測試對象為一名45歲中年男士。小車啟動后,對測試對象進行人臉識別,認為駕駛者是一名48歲男士(檢測數據與實際數據存在一定偏差,但偏差在系統設置范圍內,對系統影響較小)。當小車檢測到障礙物時,紅外傳感器指示燈亮起;障礙物距離小于安全反應距離時,蜂鳴器報警,進入預警模式。測試小車遇到4種不同狀態障礙物時的結果如圖7、圖8、圖9、圖10所示。當小車遇到墻體時,可以在安全距離內成功避障;當小車被多種障礙物包圍時,能夠規劃出避障路線并成功避障;當小車遇到正在行駛的車輛和行走的路人時,可以完成自主避障;當小車即將撞上障礙物時,小車將緊急制動。
圖7 小車遇到墻體
圖8 小車被多種障礙物包圍
圖9 小車遇到正在行駛的車輛
圖10 小車遇到行走的路人
測試結果表明,本系統能夠通過分析實際采集的駕駛者信息和動態環境數據判斷安全距離,構建具有針對性的預警、避障方案,且在駕駛員未及時做出反應,或無法達到安全駕駛要求時能自主避障和緊急制動。
智能預警避障小車的研究,不僅要考慮外界障礙物和小車自身因素,還要考慮駕駛員。本文通過識別駕駛員年齡和性別,根據安全距離對駕駛員進行類別劃分,結合環境檢測數據為不同類型的駕駛者提供了相對合理的預警避障方案,并且能夠在駕駛員未及時做出反應時緊急制動。本系統選用樹莓派作為核心控制器,不僅能識別駕駛員的年齡和性別,利用5G的高速率、低延時、大容量優勢構建系統云端數據庫,還能添加駕駛員駕照信息讀取等功能,對智能輔助駕駛技術的研究而言意義重大。
本文采用紅外傳感器和超聲波傳感器檢測障礙物的狀態時,由于紅外傳感器對黑色物體靈敏度不高,導致障礙物狀態檢測時發生錯誤,影響了小車預警避障結果。未來,我們將用激光雷達測距傳感器檢測障礙物,以提升小車在車速較快情況下的預警避障功能。