林學志,汪涵,章力成,張俊杰,郭城,陳晨
(蚌埠學院計算機與信息工程學院,安徽蚌埠 233030)
隨著社會的發展,現在人們的生活水平不斷提高,越來越多的家庭擁有了汽車。中國經濟網數據顯示,我國汽車保有量于2021 年第三季度結束超過2.5億。汽車數量的增多,隨之而來的是汽車造成的交通事故也越來越多[1]。華經產業研究院公布的數據顯示:2020年全國交通事故發生數為244 937起,2021年全國交通事故發生數為247 646 起[2]。其中每年因疲勞駕駛導致的交通事故,約占全國交通事故總量的21%。根據以上數據顯示疲勞駕駛已經成為我們日常駕駛中的重大安全隱患之一。對于研究人員來說,尋找能夠有效預警疲勞駕駛的方法已迫在眉睫。根據生理學的研究,長時間的保持高強度的精力集中、僵硬的固定姿勢、久坐導致的靜脈壓迫血液不暢,引發的感官和神經的疲勞是車輛駕駛人員感到困倦的主要來源[3]。如果駕駛員長時間處于固定的座位上,動作受到一定限制,并且注意力高度集中于車輛行駛的方向,精神狀態高度緊張,將導致短時間的視力下降、腰腿麻木、脊背僵硬、反射弧刺激減弱、行為遲緩等駕駛疲勞的現象。眼側、頸部、肩膀、腰側是疲勞形成的順序。其中主要的疲勞是眼睛、大腦與駕駛部位處肌肉,這些都會成為疲勞駕駛交通事故的誘因。假如繼續駕駛車輛時駕駛員仍處于疲勞狀態,在駕駛途中,其多巴胺的分泌降低、褪黑素的分泌增加而感到疲倦,進而導致肌肉松弛,反應遲緩,路況處理能力下降,更甚有精神恍惚或瞬間自主意識消失等情況,出現駕駛動作遲誤,操作停頓或修正駕駛路線不當等不安全因素,極易發生交通事故[4]。
對于該疲勞駕駛問題,國內外對于疲勞駕駛的檢測方法可以分為四個主要方向:1)疲勞駕駛在生理特征指標上的檢測技術。2)疲勞駕駛在車輛特征狀態行為的檢測技術。3)疲勞駕駛在面部駕駛員特征的檢測技術。4)疲勞駕駛在多特征融合的檢測技術[5]。第一類檢測法是基于物理設備采集到的生理電信號進行檢測,例如腦電信號、心率、肌電信號等。生理指標具有較高的可信度,可以通過生理指標的非正常變化來判斷駕駛員產生疲勞反應。該檢測裝置具有簡易性,成本低的特點,但在不同環境下產生的生理信號有差異性,魯棒性較差且不易部署;第二類檢測法是基于大量行車數據來判斷駕駛員的疲勞程度,如車輛運行速度、路道偏移角度等。該方法將常態正常駕駛的車輛行為數據進行采集保存,并對在疲勞駕駛下行車的異常數據進行分析比較,進而根據采集的數據來判斷其駕駛員的行為狀態。但其方案易受到道路的復雜環境、駕駛習慣差異產生波動且檢測裝置煩瑣,普適性較低;第三類檢測法是基于駕駛員的面部信息采集來判斷是否疲勞,例如眼角的狀態,嘴部的狀態、頭部的狀態等。通過攝像頭裝置實時采集的駕駛員數據來進行算法分析。該方法基于人工智能算法,并利用OpenCV 實現實時的狀態分析。該方法設備便捷、成本低廉、檢測度相對較好,具有良好的市場前景,但戴眼鏡、光線較暗時可能會降低其檢測的魯棒性。第四類檢測技術是通過對傳感器裝置技術與數字信息圖像信號的處理并在汽車安全性與主動性角度,根據對駕駛員的多種疲勞特征與疲勞狀態進行預警判斷。該方案能一定程度上克服光線昏暗的變化、路況顛簸、惡劣環境等問題,并且可以基于多種人的行為特征,進一步提高檢測的精確性。但該方法尚未成熟,仍需一段時間的發展。
相對于主動檢測法,其他的方法更具有客觀性、真實性,判斷準確性更高等優點。此外,對于疲勞駕駛的檢測設備環境,仍有許多需要解決的問題:一是接觸設備或非接觸下的光照等環境的數據采集問題;二是檢測設備的運行環境,需要考慮云端的高延遲性和終端的設備硬件算力等問題;三是檢測實驗數據缺乏年齡多樣性與性別差異,此外缺少對駕駛員的疲勞值進行具體的量化;四是大多數疲勞檢測數據多為駕駛模擬或者室內檢測,缺乏真實性;五是現今的實際公開道路測試的魯棒性和精確度標準,其疲勞檢測算法并未能達到。
根據存在的問題,本文自主設計了一款疲勞駕駛預警系統。主要通過在云端訓練好的深度學習算法下發至邊緣節點,然后通過邊緣端實時地采集駕駛員的圖像數據。在邊緣端AI嵌入式模塊中,調用內置的深度學習算法進行駕駛員當前狀態判斷。若駕駛員處于疲勞狀態,系統將根據駕駛員的疲勞程度,做出相對應的預警措施,并將疲勞駕駛的圖像上傳至云端進行豐富訓練用的數據集。

圖1 疲勞駕駛預警系統總體設計
本地計算和云計算是兩種傳統的駕駛員疲勞檢測系統方案。基于本地設備的硬件計算疲勞檢測與輸入設備的圖像信息采集,其不需要通過網絡通信技術傳輸數據,就解決了檢測延遲的問題。但數據存儲存在隱私和安全風險,這是因其數據存儲和計算的檢測結果是基于本地而進行的,又由于通過深度學習等模型對于計算機的硬件要求較高,需要本地的顯卡算力與顯存有一定配置,其檢測成本也會急劇上升。另一種基于云計算的方案,一是可以優化其硬件配置問題和本地設備的臃腫問題,所有數據被傳感器設備上傳至云端,隨后通過云端進行一系列的數據計算與處理、模型訓練等一系列工作,之后再向邊緣端返回其疲勞駕駛模型的數據;二是云計算解決了其本地計算數據存儲安全的問題,大數據分析能夠更好地被進行。但是云計算由于需要網絡的實時通信,其網絡的波動可能造成極大的響應延遲。對于高速行駛的汽車而言,有較大的安全隱患。為了優化上述設計所存在的問題,本文提出了基于“端-邊-云”協同計算的駕駛員疲勞監測方案。通過終端的數據采集與轉移,邊緣端的采集數據處理和云端的數據計算與存儲來實現其疲勞駕駛的檢測,該系統由終端設備、邊緣端設備和云端設備三部分組成。
實時采集對象圖像的工業相機作為疲勞檢測系統的終端設備,其對圖像采集和進行圖像的預處理是它的主要功能,并且它并不具有計算與判斷能力[4]。邊端設備與終端設備的網絡通信主要是通過以太網光纖進行有線傳輸,通過其通信將所采集到的圖像信息傳輸至邊緣設備當中,解決其本地數據的隱私性保護和設備算力問題。
檢測系統的邊緣端設備為嵌入式設備,可以對檢測到的疲勞駕駛進行及時報警,其配備數據存儲模塊和數據傳輸模塊,實時接受來自終端傳感器設備傳輸的圖像信息,將圖像信息進行算法處理,判斷出當前的駕駛人員是否處于疲勞駕駛狀態。邊緣層的智能邊緣網關一方面支持通過多協議轉換方法接入各設備設施系統的運行狀態數據,并利用NB-IoT、4G 和5G 等多種通訊方式傳輸數據同時完成與云端設備通信。
疲勞檢測系統的云端將持續接收來自邊緣端的疲勞駕駛圖像傳輸,將圖像數據進行模型訓練構建出疲勞駕駛模型,以供邊緣端設備下載使用。部署全端可視化軟件平臺對終端、邊緣端和云端進行統一管理和調度,方便用戶的使用。
終端主要是采用工業攝像機,用于采集駕駛圖像并在圖像本地預處理后傳輸至邊緣端設備。邊緣端主要采用的是攜帶了AI芯片的嵌入式設備,采用的是NVIDIA Jetson Nano核心板,如圖2所示。NVIDIA Jetson Nano 核心板的大小僅為70×45mm,CPU 搭載四核ARM?Cortex-A57?MPCore 處理器,GPU 為NVIDIA Maxwell"M architecture 架構[6]。具有體積小、性能優,節能且計算力強的特點,滿足本系統邊緣端對于硬件的需求。

圖2 邊緣端嵌入式AI芯片
云端主要使用阿里云的云端高性能服務器通用網絡增強型sn2ne,處理器與內存配比為1:4,處理器為2.5 GHz 主頻的Intel ? Xeon ? E5-2682 v4(Broadwell) 或Platinum 8163(Skylake) ,計算性能穩定[7]。能夠實時接收邊緣端發送的疲勞駕駛圖像信息進行模型訓練,生成疲勞駕駛模型后下發至邊緣端AI嵌入式模塊。
本文提出的疲勞駕駛預警系統在編程時將程序模塊化,系統中每個模塊都是一個完整獨立的子程序。這樣可以提高系統的穩定性,也便于后期系統升級、測試和維護。本系統在軟件編程時計劃采用模塊化的編程,系統中每個重要的模塊全部是一個單獨的子程序。在程序很龐大的時候能夠通過模塊化的方式保證程序的可讀性、方便二次調用以及便于排查錯誤。系統的主要模塊有:數據采集模塊、數據處理模塊、通信模塊、AI 嵌入式模塊和云端。系統的節點軟件由主程序和系統初始化、攝像頭數據采集和通信模塊子程序等組成。節點上電運行后首先進入主程序,在主程序中完成系統初始化、鏈接云端流程,以死循環方式不斷采集攝像頭的數據并發送到云平臺進行數據集更新。系統主程序流程圖如圖3所示。

圖3 系統主程序流程圖
本文以疲勞駕駛的監測與實時預警為目標,在深度學習與邊緣計算技術的基礎上,三層協同的系統架構能靈活地適應外界環境的變化,保持系統較為穩定地運行,滿足實時監測的需要[8]。同時本系統具有很強的泛化性,只須改變云端訓練所用的數據集,就可移植到其他應用場景,具有一定的商用價值。