孫世若 王天琪 張淼
摘 要:智能行車守護系統具有疲勞駕駛監測、酒駕預防和兒童安全防護三大功能,可全方位保障行車安全。疲勞駕駛監測模塊基于主流的OpenCV計算機視覺庫開發,采用基于Dlib機器學習庫的人臉檢測模塊,運用SVM特征分類方法,實現駕駛員駕駛狀態的精準判別和疲勞駕駛的預警防范。酒駕預防模塊運用高靈敏度酒精傳感器對駕駛員酒精含量進行精準檢測,基于酒精含量檢測結果對汽車總線發出相應的邏輯指令,通過總線控制汽車組件完成相應操作,實現酒精含量的強制檢測和酒駕的事前預防。兒童安全防護模塊利用紅外傳感器判斷發動機關閉后車內是否留人,車內留人時,實時監測車內溫度、氧氣含量,實現車內環境的綜合判斷,環境異常時,通過向汽車總線發送邏輯指令進行報警和智能解救,消除兒童滯留車內的隱患。作品以ARM開發板為硬件基礎,采用基于Linux內核的操作系統,具有極高的車載應用潛質,使用更加方便高效,彌補了當前技術的不足,致力于為駕駛員營造更安全的駕駛環境。
關鍵詞:機器學習;計算機視覺;Linux;ARM;多傳感器模塊;多進程通信
1 作品簡介
“守衛者”智能行車守護系統具有疲勞駕駛監測、酒駕預防和兒童安全防護三大功能模塊,可多角度開展行車安全防護,開創了安全行車系統的新模式。
團隊選取ARM作為硬件基礎,采用基于Linux內核的操作系統,使作品具有開源、可移植性強等特點,便于在車載平臺上推廣應用。此外,系統操作簡單,便于使用。
2 方案設計及功能
2.1 疲勞駕駛監測
疲勞駕駛監測模塊用于實時監測駕駛員的駕駛狀態。疲勞駕駛監測模塊以主流的OpenCV計算機視覺庫進行開發,采用基于Dlib機器學習庫的人臉檢測模塊對人臉及檢測部位進行精確捕獲,運用SVM特征分類方法,建立左右眼開闔庫,以精確判定駕駛員的駕駛狀態。當系統判斷駕駛員進入疲勞駕駛狀態時,通過向汽車總線發送邏輯指令,控制汽車相應組件,進行危險預警并采取相應防范措施:首先通過語音提示告知駕駛員并提醒其盡快停止駕駛;語音提示一段時間后,若駕駛員并未采取制動措施,則通過喇叭報警、開啟雙閃燈等方式,對周邊車輛進行預警,降低疲勞駕駛引發交通事故的概率。
目前,該模塊已實現疲勞駕駛狀態的精準判別及語音提示功能,并可依據監測結果向汽車總線發送相應的邏輯指令;實現喇叭報警、開啟雙閃燈等操作需要將系統與實際汽車總線連接,涉及汽車總線的硬件改造,需與汽車廠商合作,依靠專業技術實現。
2.2 酒駕預防
酒駕預防模塊用于在發動汽車前對駕駛員進行酒精含量的強制檢測并實現酒駕的事前預防。酒駕預防模塊通過嵌入高靈敏度酒精傳感器實現對駕駛員酒精含量的精準檢測,并通過適當的改造,使汽車總線控制點火開關。僅當酒精檢測結果合格時,向汽車總線發送開啟的邏輯指令,使駕駛員可用鑰匙發動汽車。當駕駛員未進行酒精含量檢測或檢測結果超標時,則無法使用鑰匙發動汽車。
目前,該模塊已實現酒精含量檢測及檢測結果分析功能,可依據檢測結果向汽車總線發送邏輯指令。開啟系統后的自動檢測功能還在研發調試階段,對于汽車發動的實際控制需要對汽車的點火開關進行改造,同時涉及汽車總線的硬件改造,需與汽車廠商合作實現。
2.3 消除兒童滯留安全隱患
兒童安全防護模塊用于兒童滯留車內時安全隱患的消除。在發動機關閉后,兒童安全防護模塊會利用紅外傳感器判斷發動機關閉時車內是否留人,車內留人時,通過車內溫度、氧氣含量監測實現車內環境的實時綜合判斷,環境異常時,通過向汽車總線發送邏輯指令,控制喇叭、車窗等組件進行報警和智能解救,消除兒童滯留車內的潛在危險。
目前,該模塊已實現紅外探測和溫度檢測,并可依據傳感器檢測結果,向汽車總線發送相應邏輯指令,實現對喇叭、車窗等汽車組件的邏輯控制;氧氣含量檢測目前還在調試階段,對汽車組件的實際控制涉及硬件改造,需與汽車廠商合作完成。
2.4 系統整體設計
本系統采用多模塊、多進程同步處理方式,具有提高多核處理器利用率、方便程序調試和維護、提高系統穩定性等優點。父進程負責維護子進程,進程間通信采用命名管道方式。
疲勞駕駛監測模塊由疲勞駕駛監測進程執行,一旦發現駕駛員處于疲勞駕駛狀態立即向日志記錄進程發送信號(SIGUSR2)。日志記錄進程在未接收到信號時處于阻塞狀態,一旦接收到信號(SIGUSR2),便立即向本地日志文件寫入“drive fatigue”并記錄本地時間,同時向語音提示進程發送信號(SIGUSR1)。語音提示進程接收到信號(SIGUSR1)后播放疲勞駕駛警告語音。
酒駕預防模塊和兒童安全防護模塊由串口通信進程處理。STM32單片機獲取各傳感器數據并由串口將數據發送到嵌入式系統。串口通信進程負責接收和處理接收到的數據,并將判定的邏輯結果通過文件系統輸出到相應的文件中,同時向數據庫服務進程發送信號(SIGUSR1)和數據。數據庫服務進程接收到信號后讀取數據,并將數據發送到本地或遠程MySQL數據庫中。
3 可行性分析
疲勞駕駛模塊采用的處理器架構為雙核ARM Coretx-A72+四核ARM Cortex A53,性能與移動端設備類似,能夠在保持一定幀率的情況下完成人眼開闔狀態的檢測。若在車載部分采用性能更好的處理器,則可進一步提升模塊處理速度,縮短延遲時間,模塊性能還將有更大提升,開發潛力巨大。
疲勞駕駛模塊采用的機器學習算法在未來有廣闊的前景以及發展空間,并且可通過增加訓練樣本、優化算法來提高檢測準確性。
利用開發板豐富的接口,可讀取酒精傳感器、溫度傳感器等數據,同時,系統基于Linux內核,便于開發、設計算法,對返回至系統的傳感器檢測結果進行分析處理,設置酒精含量、車內溫度、氧氣含量等安全閾值,進行超閾值情況下的報警,實現酒駕預防和兒童安全防護功能。
4 性能優勢
疲勞駕駛監測模塊采用基于機器視覺的檢測方法,主要通過視頻圖像處理技術實時監控駕駛員的眼睛變化情況,綜合判斷駕駛員是否處于疲勞駕駛狀態。相較于基于生理信號的檢測方法,此方法無需接觸駕駛員身體,不會影響駕駛;同時,隨著處理器性能的提升,模塊可以達到更高的檢測頻率,相較于基于駕駛行為的檢測方法,具有更低的誤判率,更具發展潛力。
酒駕預防模塊通過嵌入高靈敏度酒精檢測傳感器實現對駕駛員酒精含量的精準檢測。當駕駛員不進行酒精檢測或酒精檢測結果超標時,駕駛員無法發動汽車。通過酒精檢測結果對點火開關的控制,實現了酒駕的事前防范,從源頭制止酒駕行為,彌補了目前交警抽測的不足;此外,該模塊可實現酒精含量的強制檢測,有效防止目前車載酒精檢測儀人為棄用現象的發生,具有極高的推廣價值。
兒童安全防護模塊通過多種傳感器獲取數據,對車內環境進行綜合判斷,通過汽車總線控制車內必要的硬件設備,全方位消除兒童滯留時的潛在安全隱患。填補了目前市面上針對此問題的技術空缺。
5 創新點
5.1 基于機器學習的疲勞駕駛檢測
區別于傳統的生理信號檢測,疲勞駕駛模塊采用SVM特征分類方法,建立左右眼開闔庫,能夠更精確地判定駕駛員是否處于疲勞駕駛狀態,彌補了目前疲勞駕駛檢測技術的不足。同時,疲勞駕駛模塊采用了基于Dlib機器學習庫的人臉檢測模塊,能夠有效對人臉及檢測部位進行精確捕獲,可提高系統目標識別的可靠性。
5.2 借助汽車總線實現對汽車組件的控制
系統基于各模塊數據分析結果,通過向汽車總線發送相關邏輯指令,控制車內必要的硬件設備,實現危險駕駛狀態的報警、酒精含量的強制檢測、車內環境異常時對兒童的智能解救等操作。
5.3 消除兒童滯留隱患
通過多種傳感器獲取數據,對車內環境進行綜合判斷。通過CAN總線控制車內必要的硬件設備,全方位消除兒童滯留時的潛在安全隱患,填補該領域的技術空白。
5.4 高效安全的系統平臺
基于Linux內核的操作系統具有安全高效、可移植性強等特點,便于在PC端進行程序開發。對用戶權限的控制機制可防止用戶隨意篡改系統預設功能及數據。
5.5 多模塊的硬件設計
系統硬件設計基于多模塊、多傳感器并行的思想,集成度高,通過設置檢測模式判定功能,對不同實際環境采用不同的檢測和處理方案,提高系統應變能力并有效降低功耗。
6 市場前景
6.1 應用前景
可與汽車廠商合作開發產品,由團隊提供軟件技術,汽車廠商完成汽車總線及相關組件的硬件改造,并完成系統的車載內嵌,借助高性能芯片,進一步提升系統處理速度,優化系統性能。這一發展方向中,可尤其重視與長途運輸汽車廠商的合作,由于長途運輸行業的特殊性,使得本系統更具應用和統一推廣價值。
當產品具有一定的市場普及度和較高的行業認可度后,可與交管部門合作,對某一地區的車輛進行系統的統一安裝,通過聯網獲取車輛駕駛行為記錄,依據記錄對危險駕駛行為進行懲處,實現疲勞駕駛、酒后駕駛的統一監管。
6.2 技術發展前景
機器學習極具發展潛力。隨著技術的不斷革新,疲勞駕駛監測模塊的性能也將獲得更大的提升空間,駕駛狀態的監測和判別精度將進一步提升,依據這一技術原理,也可開發更多智能功能,豐富系統模塊。
借助汽車總線實現對汽車組件的控制,可實現許多強制功能。隨著系統各模塊對汽車總線邏輯控制度的提升,系統可開發出更多基于檢測結果的相關控制功能。
與AI芯片廠商以及互聯網公司合作,使用專門針對機器學習、具備強大并行計算與浮點運算的電路,從硬件層面全方位提升運算速度,實現更高效率的疲勞駕駛檢測,使得整套系統性能大幅提升。
隨著數字圖像處理技術的發展及相關技術的融合,可研發基于面部信息或虹膜信息的身份識別技術,為駕駛員建立面部ID,開發基于面部ID的防盜、智能啟動等功能模塊。