周揚(yáng)
江蘇科技大學(xué),江蘇鎮(zhèn)江,212003
隨著中國(guó)國(guó)民經(jīng)濟(jì)的穩(wěn)步提升和道路交通的快速發(fā)展,機(jī)動(dòng)車(chē)數(shù)量、駕駛員數(shù)量、道路里程和交通流量、道路客貨運(yùn)輸量均逐年增加,機(jī)動(dòng)車(chē)已經(jīng)處于飽和狀態(tài)。2021年,中國(guó)機(jī)動(dòng)車(chē)保有量達(dá)到4億輛,同比增長(zhǎng)6.2%;汽車(chē)保有量達(dá)到3億輛,同比增長(zhǎng)7.5%;機(jī)動(dòng)車(chē)駕駛員數(shù)量達(dá)到4.81億人,同比增長(zhǎng)5.5%;新領(lǐng)證駕駛員數(shù)2750萬(wàn)人,同比增長(zhǎng)23.3%[1]。主要職能部門(mén)注重法治引導(dǎo)、標(biāo)本兼治、綜合治理,進(jìn)一步夯實(shí)了道路交通安全的基礎(chǔ)。道路交通安全形勢(shì)總體穩(wěn)定,主要道路和特殊道路的特重大交通事故逐年減少。然而,中國(guó)道路交通安全管理的基礎(chǔ)還比較薄弱,還存在許多根本性的問(wèn)題,道路交通事故總量仍然很大,造成集體傷亡的道路交通事故仍然頻發(fā)多發(fā)。
危險(xiǎn)駕駛是當(dāng)今交通安全的嚴(yán)重隱患。當(dāng)駕駛員疲勞或分心時(shí),對(duì)周?chē)h(huán)境的感知能力、情況判斷能力和操控車(chē)輛的能力都有不同程度的下降,因此很容易引發(fā)交通事故。統(tǒng)計(jì)數(shù)據(jù)表明,近三年,中國(guó)交通事故發(fā)生數(shù)量在20萬(wàn)起以上,其中2020年中國(guó)交通事故發(fā)生數(shù)量244674起;交通事故直接財(cái)產(chǎn)損失金額為131360.6萬(wàn)元[2],而疲勞駕駛、酒后駕駛等因素占據(jù)較大比例(圖1)。因此,研究和開(kāi)發(fā)高質(zhì)量的駕駛員疲勞和危險(xiǎn)駕駛行為的實(shí)時(shí)監(jiān)測(cè)預(yù)警系統(tǒng),對(duì)于改善中國(guó)的交通安全狀況具有重要意義[3]。
圖1 道路交通事故成因及比例
目前,疲勞駕駛檢測(cè)方法大致可以分為以下三類:基于駕駛員生理信息的疲勞檢測(cè)、基于駕駛行為及行車(chē)狀態(tài)的疲勞檢測(cè)和基于分析駕駛員面部特征的疲勞檢測(cè)。
(1)基于駕駛員生理信息的疲勞檢測(cè)
該方法主要利用動(dòng)態(tài)心電儀、腦電波掃描儀等檢測(cè)設(shè)備對(duì)腦電圖、心率、肌電圖和脈搏等[4]各項(xiàng)生理指標(biāo)進(jìn)行信息采集,然后對(duì)數(shù)據(jù)進(jìn)行分析,判斷駕駛員是否處于疲勞狀態(tài)。這種方法最接近疲勞的本質(zhì),能夠高精度識(shí)別疲勞狀態(tài)[5],但需要駕駛員在駕駛汽車(chē)時(shí)穿戴檢測(cè)設(shè)備,這無(wú)疑會(huì)干擾駕駛操作,增加事故發(fā)生的風(fēng)險(xiǎn)[6]。此外,此類數(shù)據(jù)的檢測(cè)設(shè)備價(jià)格昂貴,檢測(cè)成本高,難以應(yīng)用到實(shí)際的駕駛疲勞狀態(tài)檢測(cè)中。
(2)基于駕駛行為及行車(chē)狀態(tài)的疲勞檢測(cè)
當(dāng)駕駛員長(zhǎng)時(shí)間行車(chē)疲勞時(shí),他們的肌肉和神經(jīng)反應(yīng)會(huì)延遲,導(dǎo)致他們對(duì)車(chē)輛控制能力顯著下降[7]?;隈{駛行為及行車(chē)狀態(tài)的疲勞檢測(cè)方法通過(guò)監(jiān)測(cè)汽車(chē)踏板使用頻率、方向盤(pán)轉(zhuǎn)動(dòng)規(guī)律等駕駛行為,以及分析車(chē)輛行駛軌跡、速度等行車(chē)狀態(tài),實(shí)現(xiàn)對(duì)駕駛員疲勞狀態(tài)的判定[8]。這種方法只需要少量的硬件設(shè)備,且不會(huì)對(duì)駕駛員產(chǎn)生干擾,是一種非接觸式的檢測(cè)方法。然而,這種方法也存在一定的局限性,檢測(cè)過(guò)程容易受到駕駛員駕車(chē)習(xí)慣、車(chē)輛差異、天氣變化、道路場(chǎng)景等多方面因素影響,檢測(cè)結(jié)果的可靠性難以保證。
(3)基于駕駛員面部特征的疲勞檢測(cè)
當(dāng)駕駛員處于疲勞狀態(tài)時(shí),會(huì)表現(xiàn)出一系列如目光呆滯、頻頻點(diǎn)頭、打哈欠、長(zhǎng)時(shí)間閉眼等非常明顯的面部特征?;诿娌刻卣鞯钠跈z測(cè)方法就是基于這些面部特征,通過(guò)攝像頭采集人臉信息,利用圖像處理技術(shù)挖掘面部信息中最具特征的部分,最后通過(guò)打哈欠、閉眼時(shí)間及閉眼頻率等指標(biāo)來(lái)進(jìn)行駕駛員疲勞狀態(tài)的判定[9-10]?;诿娌刻卣鞯钠跈z測(cè)方法在檢測(cè)過(guò)程中不會(huì)對(duì)駕駛員產(chǎn)生干擾,可實(shí)現(xiàn)性高。
此外,在駕車(chē)時(shí)吸煙、接打電話會(huì)分散駕駛員注意力,增加出行風(fēng)險(xiǎn),嚴(yán)重影響道路交通安全,實(shí)時(shí)檢測(cè)吸煙、接打電話等危險(xiǎn)駕駛行為是保證行車(chē)安全不可缺少的一部分。疲勞駕駛以及危險(xiǎn)駕駛行為檢測(cè)模型需要快速、準(zhǔn)確地完成目標(biāo)檢測(cè)與識(shí)別,為安全駕駛提供實(shí)時(shí)檢測(cè)服務(wù)。本文提出并設(shè)計(jì)了一款疲勞駕駛和駕駛?cè)水惓I頂?shù)據(jù)多元檢測(cè)、深度學(xué)習(xí)算法與傳感器監(jiān)測(cè)相結(jié)合的安全駕駛監(jiān)測(cè)輔助系統(tǒng)。
本智能安全駕駛監(jiān)測(cè)預(yù)警系統(tǒng)采用深度學(xué)習(xí)算法與傳感器監(jiān)測(cè)相結(jié)合,設(shè)計(jì)了軟件端和硬件端。在車(chē)輛駕駛艙內(nèi)設(shè)置攝像頭(實(shí)時(shí)監(jiān)測(cè)駕駛?cè)诵袨椋┖途凭珎鞲衅鳎ūO(jiān)測(cè)駕駛?cè)耸欠窬岂{),為駕駛?cè)嗽O(shè)置頸枕,頸枕中裝有心率傳感器和溫度傳感器。監(jiān)測(cè)數(shù)據(jù)經(jīng)藍(lán)牙實(shí)時(shí)傳輸?shù)紸PP上處理。
智能安全駕駛監(jiān)測(cè)預(yù)警系統(tǒng)選取ResNet50模型來(lái)對(duì)司機(jī)狀態(tài)進(jìn)行檢測(cè),使用拓展后的數(shù)據(jù)集進(jìn)行初步訓(xùn)練,檢測(cè)司機(jī)危險(xiǎn)行為影響安全行駛的狀態(tài),搜尋相關(guān)的數(shù)據(jù)集,在訓(xùn)練以后得到檢測(cè)模型,將檢測(cè)模型接入邊緣計(jì)算端,通過(guò)調(diào)用攝像頭,將司機(jī)當(dāng)前行駛中的照片傳入模型并進(jìn)行檢測(cè)。根據(jù)模型的結(jié)果,進(jìn)行參數(shù)調(diào)優(yōu),在驗(yàn)證集上優(yōu)化精度,提高模型精度,解決在復(fù)雜背景下司機(jī)異常行為監(jiān)測(cè)的問(wèn)題,并搭配邊緣計(jì)算端、傳感器、單機(jī)片等硬件設(shè)施,以及APP軟件開(kāi)發(fā)。
硬件設(shè)施利用攝像頭、MQ3型酒精傳感器、DS18B20溫度傳感器[11]、LCD顯示模塊等各類硬件,實(shí)現(xiàn)酒精濃度檢測(cè)、溫度測(cè)量等核心模塊功能。將PC端的檢測(cè)模型部署到邊緣計(jì)算端運(yùn)行,同時(shí)借助Android開(kāi)發(fā),實(shí)現(xiàn)APP數(shù)據(jù)傳輸、緊急撥號(hào)報(bào)警、實(shí)時(shí)顯示檢測(cè)數(shù)據(jù)等多個(gè)模塊功能。系統(tǒng)服務(wù)的結(jié)構(gòu)框圖如圖2所示。
圖2 系統(tǒng)服務(wù)的結(jié)構(gòu)框圖
監(jiān)測(cè)模塊對(duì)疲勞駕駛、發(fā)短信、打電話、操作收音機(jī)、喝酒/飲料、伸手到后面等多種類別的危險(xiǎn)駕駛行為識(shí)別。訓(xùn)練迭代流程如圖3所示。
圖3 訓(xùn)練迭代流程
用Pytorch自帶的遷移學(xué)習(xí)模型,采用多個(gè)卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行識(shí)別,使用拓展后的數(shù)據(jù)集進(jìn)行初步訓(xùn)練。根據(jù)這些多個(gè)遷移學(xué)習(xí)模型的結(jié)果,改造了模型和自己建模,進(jìn)行參數(shù)調(diào)優(yōu),在驗(yàn)證集上優(yōu)化精度,提高模型精度,解決在復(fù)雜背景下司機(jī)異常行為監(jiān)測(cè)的問(wèn)題,并采用CAM可視化的方案分析各個(gè)模型的情況(圖4)。
圖4 CAM 可視化示意圖
通過(guò)CAM可視化及各個(gè)模型的最終精度選擇ResNet50模型作為檢測(cè)端模型對(duì)司機(jī)危險(xiǎn)行為進(jìn)行監(jiān)測(cè)。殘差網(wǎng)絡(luò)改變了梯度值隨著網(wǎng)絡(luò)的不斷增加而出現(xiàn)梯度爆炸或梯度消失進(jìn)而使網(wǎng)絡(luò)訓(xùn)練難以收斂的現(xiàn)狀,采用ResNet網(wǎng)絡(luò)進(jìn)行特征提取時(shí),網(wǎng)絡(luò)的深度獲得了極大增加,從最初的十幾層,增加到現(xiàn)在的151層,并且不會(huì)產(chǎn)生過(guò)擬合現(xiàn)象。而在本設(shè)計(jì)中,選擇精度高而模型體量小的ResNet50網(wǎng)絡(luò)來(lái)解決邊緣端算力不足的問(wèn)題。ResNet50的結(jié)構(gòu)圖如圖5所示。
圖5 ResNet50 網(wǎng)絡(luò)結(jié)構(gòu)圖
頸枕端設(shè)備模塊如圖6所示。
圖6 頸枕端設(shè)備模塊
2.2.1 控制模塊
單片機(jī)STC89C52具有價(jià)格低、速度快、可靠性高、抗靜電強(qiáng)、抗干擾能力強(qiáng)等特點(diǎn),因此被選為控制模塊的核心部件。STC89C52芯片采用Flash ROM,它可以在3V的超低電壓下工作,與MCS-51系列單片機(jī)能夠完全兼容,芯片內(nèi)存是8KB的ROM,具備STC89C52的功能,并支持在線編程可擦除技術(shù)。在調(diào)試電路時(shí),不需要因?yàn)槌绦蝈e(cuò)誤或需要在程序中刻錄新功能而對(duì)芯片進(jìn)行多次插拔,芯片故障率低。
2.2.2 酒精檢測(cè)模塊
對(duì)于駕駛員的酒駕檢測(cè),本系統(tǒng)選用MQ3酒精傳感器置于駕駛位附近,對(duì)呼出的氣體進(jìn)行檢測(cè)。MQ3酒精傳感器是一種氣敏傳感器,具有靈敏度高、選擇性好、使用時(shí)間長(zhǎng)、穩(wěn)定性可靠等特點(diǎn)[12]。監(jiān)測(cè)系統(tǒng)對(duì)氣體進(jìn)行檢測(cè)的基本步驟如圖7所示,首先單片機(jī)采集酒精傳感器的響應(yīng)信號(hào),然后將其轉(zhuǎn)換并存儲(chǔ)在數(shù)據(jù)存儲(chǔ)器中,最后單片機(jī)通過(guò)特定的算法識(shí)別氣體濃度,將檢測(cè)值與設(shè)定值進(jìn)行比較,超過(guò)設(shè)定值則報(bào)警,并將結(jié)果輸出到屏幕。酒精檢測(cè)設(shè)備模塊如圖7所示。
圖7 酒精檢測(cè)設(shè)備模塊
2.2.3 心率檢測(cè)模塊
心率檢測(cè)模塊采用光電容積法對(duì)人體組織在血管搏動(dòng)時(shí)造成透光率不同來(lái)進(jìn)行脈搏測(cè)量。脈搏是隨心臟的搏動(dòng)而周期性變化的信號(hào),動(dòng)脈血管容積也周期性變化,因此光電變換器的電信號(hào)變化周期就是脈搏率。心率檢測(cè)使用的傳感器由光源和光電變換器兩部分組成,固定在頸枕上,對(duì)頸部血管進(jìn)行檢測(cè)。心率傳感器如圖8所示。
圖8 心率傳感器
當(dāng)心率傳感器采集到當(dāng)前的數(shù)據(jù)后,把模擬量傳輸給ADC0832進(jìn)行處理,ADC0832進(jìn)行初始化后逐位讀取數(shù)據(jù),把當(dāng)前讀取的信息轉(zhuǎn)換為數(shù)字量,換算成當(dāng)前的電壓值,進(jìn)而轉(zhuǎn)換為數(shù)據(jù)顯示當(dāng)前的心率[13-14]。心率檢測(cè)設(shè)備模塊如圖9所示。
圖9 心率檢測(cè)設(shè)備模塊
2.2.4 溫度檢測(cè)設(shè)備
用心率傳感器和溫度傳感器來(lái)監(jiān)測(cè)心率與體溫,再通過(guò)模數(shù)轉(zhuǎn)換電路送到單片機(jī)里,同時(shí)通過(guò)藍(lán)牙發(fā)送到手機(jī)端顯示,并激發(fā)報(bào)警電路。DS18B20溫度傳感器如圖10所示。
圖10 DS18B20 溫度傳感器
體溫檢測(cè)設(shè)備選用DS18B20溫度傳感器,它具有微型化、低功耗、高性能、抗干擾能力強(qiáng)、易配微處理器等優(yōu)點(diǎn)。DS18B20溫度傳感器通過(guò)溫度對(duì)振蕩器的頻率影響來(lái)測(cè)量溫度。DS18B20內(nèi)部有兩個(gè)溫度系數(shù)不同的振蕩器。低溫系數(shù)振蕩器輸出的時(shí)鐘脈沖信號(hào)通過(guò)高溫系數(shù)振蕩器產(chǎn)生的開(kāi)閘周期進(jìn)行計(jì)數(shù),通過(guò)該計(jì)數(shù)值來(lái)測(cè)量溫度。
軟件端信息傳輸流程如圖11所示。數(shù)據(jù)采集模塊監(jiān)測(cè)的數(shù)據(jù)通過(guò)藍(lán)牙與APP實(shí)現(xiàn)連接(圖12),按照?qǐng)D13流程傳輸?shù)娇蛻舳恕?/p>
圖11 信息傳輸流程
圖12 藍(lán)牙連接的開(kāi)發(fā)實(shí)現(xiàn)
圖13 信息傳輸客戶端的實(shí)現(xiàn)
為了使算法模型的效果更具可視性、更加直觀,我們選擇對(duì)兩個(gè)模型進(jìn)行了CAM可視化測(cè)試。
從圖14和圖15可以清晰地看出,VGG16模型的關(guān)注點(diǎn)主要集中在司機(jī)的前面到方向盤(pán)這片區(qū)域,而ResNet50模型的專注點(diǎn)在司機(jī)頭部、收音機(jī)處、手臂處,以及若發(fā)生喝飲料動(dòng)作時(shí)飲料所在的位置。因此可以判斷ResNet50模型的關(guān)注點(diǎn)要比VGG16模型的關(guān)注點(diǎn)更加精準(zhǔn)有效。
圖14 VGG16 模型CAM 可視化
圖15 ResNet50 模型CAM 可視化
算法精度對(duì)比表如表1所示。
表1 算法精度對(duì)比表
算法精度對(duì)比雷達(dá)圖如圖16所示。其中,紅色代表VGG16模型,藍(lán)色代表ResNet50模型。從圖中可以看出,在右手發(fā)短信、操作收音機(jī)這兩類的測(cè)試集中,VGG16模型的精度要稍優(yōu)于ResNet50;但在整理發(fā)型化妝、和乘客說(shuō)話這兩類測(cè)試集上,VGG16的精度遠(yuǎn)低于ResNet50;在其他類別上,兩種模型的精度不相上下。而在平均準(zhǔn)確率上,VGG16模型為0.9856,ResNet50為0.9889。在模型體量上,VGG16模型大小在900MB左右,而ResNet50模型大小為92MB,由此可以看出ResNet50模型小而精的特點(diǎn)。因邊緣端存儲(chǔ)容量和算力有限,最終選擇了ResNet50模型,并將其成功部署到邊緣端。
圖16 算法精度對(duì)比雷達(dá)圖
算法時(shí)延對(duì)比表如表2所示,從表中可看出推理時(shí)間比較少,VGG16推理一張圖片平均要用到近3s,而ResNet50推理一張圖片平均只需要用到1.23s。并且在部署到邊緣端后,利用邊緣端的模型加速功能,ResNet50最終的推理時(shí)間只需0.9s,基本可以做到實(shí)時(shí)監(jiān)測(cè)。
表2 算法時(shí)延對(duì)比表
本系統(tǒng)裝置通電后,各模塊初始化,具體實(shí)現(xiàn)工作如圖17所示。
圖17 智能安全駕駛監(jiān)測(cè)預(yù)警系統(tǒng)總體流程
精確度高:對(duì)多種卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行了準(zhǔn)確率對(duì)比,采用殘差神經(jīng)網(wǎng)絡(luò)ResNet50,得到了最優(yōu)的結(jié)果。高效:基于傳感器檢測(cè)的單片機(jī)系統(tǒng)的解決方案,通過(guò)實(shí)時(shí)收集并分析現(xiàn)場(chǎng)數(shù)據(jù)的方式,解決司機(jī)行為監(jiān)測(cè)領(lǐng)域特有問(wèn)題,打造基于深度學(xué)習(xí)和移動(dòng)開(kāi)發(fā)的智慧安全駕駛平臺(tái),保障司機(jī)安全。用戶友好:UI界面簡(jiǎn)潔美觀,整體控件按鈕觸控及使用情況非常友好,司機(jī)行為及生理指標(biāo)一目了然。全面性:項(xiàng)目涉及APP端、監(jiān)控管理端等,可以實(shí)時(shí)監(jiān)測(cè)司機(jī)的行車(chē)情況并返回,實(shí)現(xiàn)多方聯(lián)動(dòng)。監(jiān)測(cè)類別廣:實(shí)現(xiàn)了包括安全駕駛、發(fā)短信、打電話、操作收音機(jī)、喝酒/飲料、伸手到后面、發(fā)型化妝和乘客說(shuō)話等多種類別的危險(xiǎn)駕駛行為識(shí)別。