林學志,汪涵,章力成,張俊杰,郭城,陳晨
(蚌埠學院計算機與信息工程學院,安徽蚌埠 233030)
隨著社會的發(fā)展,現(xiàn)在人們的生活水平不斷提高,越來越多的家庭擁有了汽車。中國經(jīng)濟網(wǎng)數(shù)據(jù)顯示,我國汽車保有量于2021 年第三季度結(jié)束超過2.5億。汽車數(shù)量的增多,隨之而來的是汽車造成的交通事故也越來越多[1]。華經(jīng)產(chǎn)業(yè)研究院公布的數(shù)據(jù)顯示:2020年全國交通事故發(fā)生數(shù)為244 937起,2021年全國交通事故發(fā)生數(shù)為247 646 起[2]。其中每年因疲勞駕駛導致的交通事故,約占全國交通事故總量的21%。根據(jù)以上數(shù)據(jù)顯示疲勞駕駛已經(jīng)成為我們?nèi)粘q{駛中的重大安全隱患之一。對于研究人員來說,尋找能夠有效預警疲勞駕駛的方法已迫在眉睫。根據(jù)生理學的研究,長時間的保持高強度的精力集中、僵硬的固定姿勢、久坐導致的靜脈壓迫血液不暢,引發(fā)的感官和神經(jīng)的疲勞是車輛駕駛?cè)藛T感到困倦的主要來源[3]。如果駕駛員長時間處于固定的座位上,動作受到一定限制,并且注意力高度集中于車輛行駛的方向,精神狀態(tài)高度緊張,將導致短時間的視力下降、腰腿麻木、脊背僵硬、反射弧刺激減弱、行為遲緩等駕駛疲勞的現(xiàn)象。眼側(cè)、頸部、肩膀、腰側(cè)是疲勞形成的順序。其中主要的疲勞是眼睛、大腦與駕駛部位處肌肉,這些都會成為疲勞駕駛交通事故的誘因。假如繼續(xù)駕駛車輛時駕駛員仍處于疲勞狀態(tài),在駕駛途中,其多巴胺的分泌降低、褪黑素的分泌增加而感到疲倦,進而導致肌肉松弛,反應遲緩,路況處理能力下降,更甚有精神恍惚或瞬間自主意識消失等情況,出現(xiàn)駕駛動作遲誤,操作停頓或修正駕駛路線不當?shù)炔话踩蛩兀瑯O易發(fā)生交通事故[4]。
對于該疲勞駕駛問題,國內(nèi)外對于疲勞駕駛的檢測方法可以分為四個主要方向:1)疲勞駕駛在生理特征指標上的檢測技術(shù)。2)疲勞駕駛在車輛特征狀態(tài)行為的檢測技術(shù)。3)疲勞駕駛在面部駕駛員特征的檢測技術(shù)。4)疲勞駕駛在多特征融合的檢測技術(shù)[5]。第一類檢測法是基于物理設備采集到的生理電信號進行檢測,例如腦電信號、心率、肌電信號等。生理指標具有較高的可信度,可以通過生理指標的非正常變化來判斷駕駛員產(chǎn)生疲勞反應。該檢測裝置具有簡易性,成本低的特點,但在不同環(huán)境下產(chǎn)生的生理信號有差異性,魯棒性較差且不易部署;第二類檢測法是基于大量行車數(shù)據(jù)來判斷駕駛員的疲勞程度,如車輛運行速度、路道偏移角度等。該方法將常態(tài)正常駕駛的車輛行為數(shù)據(jù)進行采集保存,并對在疲勞駕駛下行車的異常數(shù)據(jù)進行分析比較,進而根據(jù)采集的數(shù)據(jù)來判斷其駕駛員的行為狀態(tài)。但其方案易受到道路的復雜環(huán)境、駕駛習慣差異產(chǎn)生波動且檢測裝置煩瑣,普適性較低;第三類檢測法是基于駕駛員的面部信息采集來判斷是否疲勞,例如眼角的狀態(tài),嘴部的狀態(tài)、頭部的狀態(tài)等。通過攝像頭裝置實時采集的駕駛員數(shù)據(jù)來進行算法分析。該方法基于人工智能算法,并利用OpenCV 實現(xiàn)實時的狀態(tài)分析。該方法設備便捷、成本低廉、檢測度相對較好,具有良好的市場前景,但戴眼鏡、光線較暗時可能會降低其檢測的魯棒性。第四類檢測技術(shù)是通過對傳感器裝置技術(shù)與數(shù)字信息圖像信號的處理并在汽車安全性與主動性角度,根據(jù)對駕駛員的多種疲勞特征與疲勞狀態(tài)進行預警判斷。該方案能一定程度上克服光線昏暗的變化、路況顛簸、惡劣環(huán)境等問題,并且可以基于多種人的行為特征,進一步提高檢測的精確性。但該方法尚未成熟,仍需一段時間的發(fā)展。
相對于主動檢測法,其他的方法更具有客觀性、真實性,判斷準確性更高等優(yōu)點。此外,對于疲勞駕駛的檢測設備環(huán)境,仍有許多需要解決的問題:一是接觸設備或非接觸下的光照等環(huán)境的數(shù)據(jù)采集問題;二是檢測設備的運行環(huán)境,需要考慮云端的高延遲性和終端的設備硬件算力等問題;三是檢測實驗數(shù)據(jù)缺乏年齡多樣性與性別差異,此外缺少對駕駛員的疲勞值進行具體的量化;四是大多數(shù)疲勞檢測數(shù)據(jù)多為駕駛模擬或者室內(nèi)檢測,缺乏真實性;五是現(xiàn)今的實際公開道路測試的魯棒性和精確度標準,其疲勞檢測算法并未能達到。
根據(jù)存在的問題,本文自主設計了一款疲勞駕駛預警系統(tǒng)。主要通過在云端訓練好的深度學習算法下發(fā)至邊緣節(jié)點,然后通過邊緣端實時地采集駕駛員的圖像數(shù)據(jù)。在邊緣端AI嵌入式模塊中,調(diào)用內(nèi)置的深度學習算法進行駕駛員當前狀態(tài)判斷。若駕駛員處于疲勞狀態(tài),系統(tǒng)將根據(jù)駕駛員的疲勞程度,做出相對應的預警措施,并將疲勞駕駛的圖像上傳至云端進行豐富訓練用的數(shù)據(jù)集。
圖1 疲勞駕駛預警系統(tǒng)總體設計
本地計算和云計算是兩種傳統(tǒng)的駕駛員疲勞檢測系統(tǒng)方案?;诒镜卦O備的硬件計算疲勞檢測與輸入設備的圖像信息采集,其不需要通過網(wǎng)絡通信技術(shù)傳輸數(shù)據(jù),就解決了檢測延遲的問題。但數(shù)據(jù)存儲存在隱私和安全風險,這是因其數(shù)據(jù)存儲和計算的檢測結(jié)果是基于本地而進行的,又由于通過深度學習等模型對于計算機的硬件要求較高,需要本地的顯卡算力與顯存有一定配置,其檢測成本也會急劇上升。另一種基于云計算的方案,一是可以優(yōu)化其硬件配置問題和本地設備的臃腫問題,所有數(shù)據(jù)被傳感器設備上傳至云端,隨后通過云端進行一系列的數(shù)據(jù)計算與處理、模型訓練等一系列工作,之后再向邊緣端返回其疲勞駕駛模型的數(shù)據(jù);二是云計算解決了其本地計算數(shù)據(jù)存儲安全的問題,大數(shù)據(jù)分析能夠更好地被進行。但是云計算由于需要網(wǎng)絡的實時通信,其網(wǎng)絡的波動可能造成極大的響應延遲。對于高速行駛的汽車而言,有較大的安全隱患。為了優(yōu)化上述設計所存在的問題,本文提出了基于“端-邊-云”協(xié)同計算的駕駛員疲勞監(jiān)測方案。通過終端的數(shù)據(jù)采集與轉(zhuǎn)移,邊緣端的采集數(shù)據(jù)處理和云端的數(shù)據(jù)計算與存儲來實現(xiàn)其疲勞駕駛的檢測,該系統(tǒng)由終端設備、邊緣端設備和云端設備三部分組成。
實時采集對象圖像的工業(yè)相機作為疲勞檢測系統(tǒng)的終端設備,其對圖像采集和進行圖像的預處理是它的主要功能,并且它并不具有計算與判斷能力[4]。邊端設備與終端設備的網(wǎng)絡通信主要是通過以太網(wǎng)光纖進行有線傳輸,通過其通信將所采集到的圖像信息傳輸至邊緣設備當中,解決其本地數(shù)據(jù)的隱私性保護和設備算力問題。
檢測系統(tǒng)的邊緣端設備為嵌入式設備,可以對檢測到的疲勞駕駛進行及時報警,其配備數(shù)據(jù)存儲模塊和數(shù)據(jù)傳輸模塊,實時接受來自終端傳感器設備傳輸?shù)膱D像信息,將圖像信息進行算法處理,判斷出當前的駕駛?cè)藛T是否處于疲勞駕駛狀態(tài)。邊緣層的智能邊緣網(wǎng)關(guān)一方面支持通過多協(xié)議轉(zhuǎn)換方法接入各設備設施系統(tǒng)的運行狀態(tài)數(shù)據(jù),并利用NB-IoT、4G 和5G 等多種通訊方式傳輸數(shù)據(jù)同時完成與云端設備通信。
疲勞檢測系統(tǒng)的云端將持續(xù)接收來自邊緣端的疲勞駕駛圖像傳輸,將圖像數(shù)據(jù)進行模型訓練構(gòu)建出疲勞駕駛模型,以供邊緣端設備下載使用。部署全端可視化軟件平臺對終端、邊緣端和云端進行統(tǒng)一管理和調(diào)度,方便用戶的使用。
終端主要是采用工業(yè)攝像機,用于采集駕駛圖像并在圖像本地預處理后傳輸至邊緣端設備。邊緣端主要采用的是攜帶了AI芯片的嵌入式設備,采用的是NVIDIA Jetson Nano核心板,如圖2所示。NVIDIA Jetson Nano 核心板的大小僅為70×45mm,CPU 搭載四核ARM?Cortex-A57?MPCore 處理器,GPU 為NVIDIA Maxwell"M architecture 架構(gòu)[6]。具有體積小、性能優(yōu),節(jié)能且計算力強的特點,滿足本系統(tǒng)邊緣端對于硬件的需求。
圖2 邊緣端嵌入式AI芯片
云端主要使用阿里云的云端高性能服務器通用網(wǎng)絡增強型sn2ne,處理器與內(nèi)存配比為1:4,處理器為2.5 GHz 主頻的Intel ? Xeon ? E5-2682 v4(Broadwell) 或Platinum 8163(Skylake) ,計算性能穩(wěn)定[7]。能夠?qū)崟r接收邊緣端發(fā)送的疲勞駕駛圖像信息進行模型訓練,生成疲勞駕駛模型后下發(fā)至邊緣端AI嵌入式模塊。
本文提出的疲勞駕駛預警系統(tǒng)在編程時將程序模塊化,系統(tǒng)中每個模塊都是一個完整獨立的子程序。這樣可以提高系統(tǒng)的穩(wěn)定性,也便于后期系統(tǒng)升級、測試和維護。本系統(tǒng)在軟件編程時計劃采用模塊化的編程,系統(tǒng)中每個重要的模塊全部是一個單獨的子程序。在程序很龐大的時候能夠通過模塊化的方式保證程序的可讀性、方便二次調(diào)用以及便于排查錯誤。系統(tǒng)的主要模塊有:數(shù)據(jù)采集模塊、數(shù)據(jù)處理模塊、通信模塊、AI 嵌入式模塊和云端。系統(tǒng)的節(jié)點軟件由主程序和系統(tǒng)初始化、攝像頭數(shù)據(jù)采集和通信模塊子程序等組成。節(jié)點上電運行后首先進入主程序,在主程序中完成系統(tǒng)初始化、鏈接云端流程,以死循環(huán)方式不斷采集攝像頭的數(shù)據(jù)并發(fā)送到云平臺進行數(shù)據(jù)集更新。系統(tǒng)主程序流程圖如圖3所示。
圖3 系統(tǒng)主程序流程圖
本文以疲勞駕駛的監(jiān)測與實時預警為目標,在深度學習與邊緣計算技術(shù)的基礎(chǔ)上,三層協(xié)同的系統(tǒng)架構(gòu)能靈活地適應外界環(huán)境的變化,保持系統(tǒng)較為穩(wěn)定地運行,滿足實時監(jiān)測的需要[8]。同時本系統(tǒng)具有很強的泛化性,只須改變云端訓練所用的數(shù)據(jù)集,就可移植到其他應用場景,具有一定的商用價值。