摘要:針對疲勞駕駛檢測模型需要的實時性與輕量性,在SSD的基礎(chǔ)上提出了SSD-MA網(wǎng)絡(luò)作為人臉部件檢測網(wǎng)絡(luò)。該網(wǎng)絡(luò)通過替換原SSD主干網(wǎng)絡(luò)為MobileNetv3,使得模型參數(shù)量驟減,加上AFF注意力特征融合了不同尺寸的特征圖,進一步提升了對人眼小目標的檢測性能,并結(jié)合疲勞參數(shù)Peclos可以準確地輸出被測人員的疲勞狀態(tài)。經(jīng)實驗驗證,SSD-MA在驗證集上的mAP值達到了96.9%,較原SSD-300提高了5%,網(wǎng)絡(luò)整體體積縮減了89%。
關(guān)鍵詞:深度學(xué)習(xí);SSD-300;疲勞檢測;MobileNetV3;多尺度特征融合
中圖分類號:U472.9" 收稿日期:2023-10-07
DOI:10.19999/j.cnki.1004-0226.2023.12.026
1 前言
疲勞駕駛是指駕駛?cè)擞捎陂L時間的連續(xù)駕駛、睡眠不足、身體疲勞等原因而導(dǎo)致反應(yīng)遲鈍、注意力不集中等癥狀的駕駛行為。這種行為會增加交通事故的風(fēng)險,因此被視為一種安全隱患。
王小玉等[1]首先利用灰度積分投影對人眼進行粗定位,再用自適應(yīng)提升算法檢測人臉,最后借助2個疲勞參數(shù)綜合判斷駕駛員的疲勞狀態(tài)。
李昭慧等[2]提出一種基于改進YOLOv4算法的疲勞駕駛檢測,在框架中的特征金字塔前后增加卷積,提高對深度特征的提取,引入空洞卷積增加感受野,在最后測試中達到了97.29%的mAP。
張博熠等[3]首先通過單階段人臉檢測器RetinaFace進行人臉關(guān)鍵部位提取,再通過眼嘴特征判斷網(wǎng)絡(luò)EMSD-Net實現(xiàn)了對疲勞特征的分類,最后結(jié)合閉眼百分比、持續(xù)閉眼時間和持續(xù)呵欠時間判定疲勞狀態(tài)。
婁平等[4]通過改進MTCNN[5]圖像金字塔的固定縮小比例和用Ghost模塊替換AlexNet中卷積操作大幅降低了網(wǎng)絡(luò)的參數(shù)量實現(xiàn)了檢測網(wǎng)絡(luò)的輕量化。
李泰國等[6]在選擇特征問題上融合了駕駛員面部和身體的特征,通過建立多組疲勞特征計算其離散程度,再將其輸入LSTM網(wǎng)絡(luò)進行分類訓(xùn)練達到疲勞檢測目的。
綜上,目前基于駕駛員面部特征的疲勞檢測手段多是先由目標檢測算法進行人臉特征提取,然后結(jié)合疲勞參數(shù)的計算實現(xiàn)疲勞狀態(tài)檢測。傳統(tǒng)機器視覺方法檢測精度有限,深度學(xué)習(xí)的方法又存在訓(xùn)練困難、移植性差等弊端。本文針對人臉特征提取步驟中的目標檢測網(wǎng)絡(luò)進行優(yōu)化,提出了輕量型人臉部件檢測網(wǎng)絡(luò)SDD-MA。該網(wǎng)絡(luò)能在保證精度的前提下大幅減小模型的參數(shù)量,為基于深度學(xué)習(xí)的疲勞駕駛檢測模型在移動端等邊緣設(shè)備上的移植提供了可選擇的方案。
2 SSD目標檢測算法
SSD-300[7]作為one-stage目標檢測算法的代表作,最早是在2016年的ECCV上由Wei liu提出的,目的是為了完成通用物體檢測任務(wù)。與Two-Stage檢測算法不同,SSD不需要執(zhí)行先生成候選框再進行回歸和分類任務(wù)這樣的步驟,而是采用類似Faster-RCNN[8]中Anchor的概念,通過在主干網(wǎng)絡(luò)提取的特征圖上設(shè)置Prior Box,實現(xiàn)了端到端的訓(xùn)練。具體來講,原SSD選用VGG-16作為back-bone,將VGG-16最后兩個全連接層FC6、FC7替換成了卷積層,并在此之后又新增了額外的4個層,分別是Conv8_2、Conv9_2、Conv10_2、Pool11,如此進行連續(xù)的下采樣。最終,主干網(wǎng)絡(luò)一共提取了6個不同尺寸的特征圖作為Detections的輸入。SSD-300網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
3 SSD算法的改進
3.1 改進SSD-MA的總體框架
SSD-300主干網(wǎng)絡(luò)的參數(shù)量占了總參數(shù)量的80%左右,這也是本文選擇用MobileNetv3去進行替換的原因。同時,SSD-300的多尺寸特征圖與特征金字塔[9]類似,淺層特征圖的分辨率高,對被測目標的局部信息敏感,特征表達相對深層來說更加簡單,其中主要包括一些基礎(chǔ)的邊緣、紋理等特征。而深層特征圖可以包含更高級的語義信息,例如物體的形狀、姿態(tài)和類別等。基于這些特點,融合不同尺寸的特征圖能提升對小目標的識別效果,故在MobileNetv3的第13個卷積層和第14個卷積層提取的特征圖做特征融合時加入AFF結(jié)構(gòu),以求得對小目標更好的檢測效果。由此所得到的SSD-MA網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
3.2 MobileNetV3
MobileNet[10]是由Google開發(fā)的一種輕量級深度神經(jīng)網(wǎng)絡(luò)架構(gòu),旨在為移動設(shè)備和嵌入式設(shè)備等資源有限的環(huán)境提供高效的計算性能,具體網(wǎng)絡(luò)結(jié)構(gòu)如表1所示。其中,input為輸入特征圖維度;Operator為當前層實行的操作模塊,包括普通卷積Conv2d、瓶頸結(jié)構(gòu)Bneck、池化層pool;Exp size為倒殘差塊第一次卷積后輸出維度;#out倒殘差塊最后輸出維度;NL為激活函數(shù);s為卷積步幅;NBN為不使用Batch Normalization層。
圖3所示為殘差結(jié)構(gòu)、倒殘結(jié)構(gòu)、MobileNet結(jié)構(gòu)和SE模塊。MobileNet是由大量的瓶頸結(jié)構(gòu)堆疊而成的。與殘差網(wǎng)絡(luò)[11]中的瓶頸結(jié)構(gòu)稍有不同,MobileNet將瓶頸卷積中的3×3卷積替換成了深度可分離卷積,這樣輸入特征圖在一個瓶頸結(jié)構(gòu)中共經(jīng)歷了如圖3a中所示的4個步驟的特征提?。?/p>
a.1×1擴張卷積層,用于將輸入張量的通道數(shù)擴大,以提供更多的信息。
b.3×3深度可分離卷積層,這種分步操作可以減少計算量和參數(shù)數(shù)量,從而使模型更加輕量級。
c.跳躍連接,該連接允許信息從輸入層直接傳遞到輸出層,以保留更多的原始特征。跳躍連接還有助于緩解梯度消失問題,從而使模型更易于訓(xùn)練。
d.1×1的收縮卷積層,該層用于將輸出張量的通道數(shù)縮小,以減少計算量和模型大小。
MobileNetv3在深度可分離卷積后加入了圖3d所示的SE注意力機制模塊,通過對每個特征圖的全局平均池化和全局最大池化操作,得到特征圖的平均值和最大值,然后將它們連接起來并通過一層全連接層,得到一個向量。接下來,通過一個sigmoid函數(shù),將向量映射到0~1之間的范圍內(nèi),并乘以原特征圖,得到新的加強重要特征的特征圖。
深度可分離卷積(depthwise separable convolution)把一次標準卷積分解成了深度卷積(Depthwise Convolution)和逐點卷積(Pointwise Convolution)兩個步驟。展示了一個標準卷積核被深度卷積和逐點卷積替代以構(gòu)成一個深度可分離卷積的過程。
具體來講,深度卷積的計算過程可以表示為:
[Yi,j,k=p=1kq=1kc=1cinXi+p?1,j+q?1,cKp,q,c,k]" " " " " "(1)
式中,[Yi,j,k∈RH×W×Cout]為深度卷積的輸出特征圖;[i,j]分別為輸出特征圖的高度和寬度坐標;[k]為輸出特征圖的通道數(shù)。對于每個輸入通道[c],卷積核[K]在該通道上的權(quán)重參數(shù)是[Kp,q,c,k]。
逐點卷積的計算過程可以表示為:
[Yi,j,k=c=1CinXi,j,cK1,1,c,k]" " " " " " " " " " " " nbsp; "(2)
式中,[Yi,j,k∈RH×W×Cout]為逐點卷積的輸出特征圖;[i,j]分別為輸出特征圖的高度和寬度坐標;[k]為輸出特征圖的通道數(shù)。對于每個輸出通道[k],卷積核[K]在輸入通道[c]上的權(quán)重參數(shù)是[K1,1,c,k]。
3.3 注意力特征融合AFF
Attention Feature Fusion[12]是一種生成權(quán)重的具體方法。AFF首先融合了input1和input2兩個輸入特征,用lt;E:\臨" 時\專用汽車期刊\2023年\專用汽車2023年-12期\Image\image5.pdfgt;表示特征的元素級別相加,然后將組合后的特征送入MS-CAM模塊。由MS-CAM模塊輸出兩個輸入的權(quán)重參數(shù),最后將兩個輸入input1和input2加權(quán)相加得到該AFF的output。計算式如下:
[Z=M(X⊕Y)?X+(1?M(X⊕Y))?Y]" " " " (3)
式中,[Z]表示最后的output;[M(X⊕Y)]和[1?M(X⊕Y)]表示由MS-CAM模塊輸出的兩個輸入的權(quán)重系數(shù);[X]、[Y]表示兩個輸入特征input1和input2。
展示一個MS-CAM模塊的內(nèi)部結(jié)構(gòu),可以看到從輸入[X∈RC×H×W]到輸出權(quán)重一共有兩條路線,分別為輸入的全局特征上下文[w(X)]和局部通道上下文[L(X)]。[w(X)]的計算過程如下式:
[w(X)=σ(G(X))=σ(β(W2δ(β(W1(g(X))))))]" " " " (4)
式中,[g(X)∈iC]為全局平均池化;[W1∈RC×Cr]為逐點卷積的降維層;[β]為BN層;[W2∈RC×Cr]為升維逐點卷積層;[σ]為Sigmoid激活函數(shù);[δ]為ReLU激活函數(shù);r為通道衰減系數(shù)。局部通道上下文[L(X)]的計算過程如下:
[L(X)=β(PWConv2(δ(β(PWConv1(X)))))]" " " "(5)
式中,[PWConv1]和[PWConv2]是與式(4)中[W1]和[W2]有相同作用兩個逐點卷積層。這樣,我們就能得到從輸入[X]到輸出[X']的映射關(guān)系如下:
[X'=X?M(X)=X?σ(L(X)⊕G(X))]" " " " (6)
4 基于PERCLOS和M的疲勞檢測模型
當駕駛員處于疲勞狀態(tài)下,閉眼、打哈欠的持續(xù)時間和次數(shù)都會和正常狀態(tài)下有明顯的區(qū)別。為了驗證這一點,進一步說明眼嘴特征對于疲勞檢測的意義。以10幀為一個間隔截取1 000 s模擬疲勞駕駛視頻內(nèi)容,并對所得圖片幀進行了標定,標簽為疲勞、清醒、眼嘴的睜閉以及受否有點頭等動作。處于清醒狀態(tài)下的一段時間內(nèi)駕駛員的疲勞狀態(tài)和面部特征之間的關(guān)系??v坐標的不同數(shù)字代表了不同人臉部件在某時刻下的不同狀態(tài)。需要特別說明的是,頭部有三種狀態(tài),即直視前方、點頭、左右環(huán)顧,分別對應(yīng)數(shù)字0、1、2。嘴巴部件則是閉嘴、呵欠、說話,對應(yīng)數(shù)字0、1、2。
結(jié)果表明,在不同的駕駛狀態(tài)下,人臉部件都會呈現(xiàn)相應(yīng)的有規(guī)律的狀態(tài),清醒時,在被測時間內(nèi)駕駛員眼睛幾乎都是睜開的狀態(tài),嘴部除了因為說話而張開,幾乎沒有打呵欠的時候,頭部則處于很頻繁的左右環(huán)顧狀態(tài)下,這是因為駕駛員需要時刻關(guān)注路況信息,頭會自然的移動,而這種移動又區(qū)別于點頭時的垂直方向上的擺動,是水平方向的轉(zhuǎn)動。在疲勞時駕駛員的各臉部部件又會在一種新的狀態(tài)下持續(xù)。
綜合人眼關(guān)鍵點和人臉檢測分析,可以得出以下結(jié)論,眼睛的睜開和閉合狀態(tài)在一段時間內(nèi)所占的比例能反映大部分情況下的疲勞狀態(tài),駕駛員不太可能因為除了疲勞之外的原因,在需要精神高度集中,隨時有可能處理突發(fā)情況的環(huán)境和條件下長時間緊閉雙眼。而頭姿易受到拍攝角度和駕駛員座位高低導(dǎo)致的角度錯估影響。故本文討論的疲勞檢測模型暫時只設(shè)眼嘴狀態(tài)作為檢測的特征要素。
綜上,本文采用PERCLOS[13]和自定義的打呵欠參數(shù)M作為駕駛疲勞判斷依據(jù)。PECLOS是指眼睛閉合時間占某一段特定時間的比例,通過測量眼睛閉合時間的長短就能衡量駕駛疲勞的程度。一般來講,駕駛員眼睛閉合時間越長,PERCLOS值越大,疲勞程度越嚴重。
在本文中,將PERCLOS定義為一段連續(xù)視頻幀內(nèi)檢測到的閉眼圖片占比,并按照P80原則判斷疲勞,PERCLOS的計算式子如下:
[PERCLOS=pcloseptotal×100%]" " " " " " " " " " " "(7)
式中,[pclose]為閉眼圖片幀數(shù);[ptotal]為一段時間內(nèi)的視頻幀圖片總幀數(shù)。
為了使檢測效果更加魯棒,依據(jù)PERCLOS的定義,本文定義了呵欠參數(shù)M,M為一段視頻幀內(nèi)打呵欠圖片所占比例大小。同樣的,疲勞程度和M值大小成正相關(guān)。M的計算公式如下:
[M=pyawptotal×100%]" " " " " " " " " " " "(8)
式中,[pyaw]為打呵欠圖片幀數(shù)。
5 實驗驗證
5.1 實驗平臺
本實驗使用的計算機配置如表1所示。
5.2 數(shù)據(jù)集
本文數(shù)據(jù)集由YAWDD、NTHU-DDD中部分內(nèi)容和自制數(shù)據(jù)集組成,采用了YOLOv4中的Mosaic數(shù)據(jù)增強方案對圖像進行拼接、翻轉(zhuǎn)、縮放、部分遮擋以此增加數(shù)據(jù)集規(guī)模。所得到的訓(xùn)練集和測試集共計750張圖片,其中訓(xùn)練集600張,測試集150張,比例為8∶2。
5.3 網(wǎng)絡(luò)訓(xùn)練
本文采用基于特征的遷移學(xué)習(xí)方法[14],在MobileNetV3預(yù)訓(xùn)練模型基礎(chǔ)上使用微調(diào)策略以此加快網(wǎng)絡(luò)收斂速度。將初始學(xué)習(xí)率定為0.0001,衰減率設(shè)置為0.00001,輸入數(shù)據(jù)尺寸為214×214,Epoch設(shè)置為80,Batch size設(shè)置為10。
微調(diào)即采用在Imagnet上提供的預(yù)訓(xùn)練權(quán)重作為MobileNetV3源模型,刪除最后的全局池化和卷積層,并初始化SSD-300的head參數(shù),因為MobileNetV3預(yù)訓(xùn)練模型參數(shù)已經(jīng)足夠好,只需使用較小的學(xué)習(xí)率來微調(diào)這些參數(shù),而SSD-AFF網(wǎng)絡(luò)的head部分則需要重新初始化,根據(jù)前面的設(shè)置,本文選用10倍backbone部分的學(xué)習(xí)率訓(xùn)練輸出層參數(shù)。
5.4 網(wǎng)絡(luò)改進效果對比
對于分類問題,考慮到預(yù)測樣本屬性和實際樣本屬性會有偏差,將預(yù)測結(jié)果分為幾個種類,并據(jù)此來評價網(wǎng)絡(luò)性能的好壞。
為了驗證網(wǎng)絡(luò)改進效果,在同一數(shù)據(jù)集上用訓(xùn)練好的SSD300、SSD-MA、YOLOV3[14]、Faster-RCNN分別進行性能驗證。用精確率P表示“預(yù)測為正樣本”中“實際為正樣本”占“所有預(yù)測為正樣本”的比例,即精確率為:
[P=TP/(TP+FP)]" " " " " " " " " " " " (9)
召回率為“預(yù)測為正樣本”中“實際為正樣本”占“實際所有正樣本”的比例,即召回率為:
[R=TP/(TP+FN)]" nbsp; " " " " " " " " " "(10)
經(jīng)過替換主干網(wǎng)絡(luò)和引入注意力特征融合的SSD-MA模型在體積和準確率、檢測速度方面都實現(xiàn)了提升。
5 結(jié)語
本文針對疲勞駕駛檢測任務(wù)所需的實時性、輕量性要求,以SSD-300為基礎(chǔ),將主干網(wǎng)絡(luò)替換成MobileNetV3,參考殘差網(wǎng)絡(luò)的跳連結(jié)構(gòu)使得網(wǎng)絡(luò)層數(shù)加深,能提取更多特征的同時,保證了訓(xùn)練效果不會反受影響,為分離卷積削減了參數(shù)量,使最后SSD-AFF模型的體積只有原來的1/10。引入注意力特征融合AFF,減少了速度提升帶來的精度損失。最后通過對比實驗得出,本文網(wǎng)絡(luò)模型的mAP達到了91.9%,精準率達到了96.9%。對比SSD300網(wǎng)絡(luò)有顯著提升,下一步工作會加大訓(xùn)練樣本,增強網(wǎng)絡(luò)魯棒性。
參考文獻:
[1]王小玉,韓彤彤,尚學(xué)達.基于密集連接網(wǎng)絡(luò)的駕駛疲勞狀態(tài)檢測方法[J].北京郵電大學(xué)學(xué)報,2021,44(1):52-8.
[2]李昭慧,張瑋良.基于改進YOLOv4算法的疲勞駕駛檢測[J].電子測量技術(shù),2021,44(13):73-8.
[3]張博熠,者甜甜,趙新旭,等.基于眼嘴狀態(tài)判別網(wǎng)絡(luò)的疲勞駕駛檢測[J].計算機工程,2021(5):1-12.
[4]婁平,楊欣,胡輯偉,等.基于邊緣計算的疲勞駕駛檢測方法[J].計算機工程,2021,47(7):13-20.
[5]Zhang K,Zhang Z,LI Z,et al.Joint face detection and alignment using multitask cascaded convolutional networks[J].IEEE signal processing letters,2016,23(10):1499-503.
[6]李泰國,張?zhí)觳?,李超,?基于人體姿態(tài)空時特征的駕駛員疲勞檢測[J].交通運輸系統(tǒng)工程與信息,2019(7):1-10.
[7]Liu W,Anguelov D,Erhan D,et al.Ssd:Single shot multibox detector; proceedings of the computer vision–ECCV 2016[C]//14th European Conference,Amsterdam,The Netherlands:Proceedings,Part I 14,F(xiàn),2016.
[8]Ren S,He K,Girshick R,et al.Faster r-cnn:towards real-time object detection with region proposal networks [J].Advances in neural information processing systems,2015,28:101-109.
[9]LI Y,Chen Y,Wang N,et al.Scale-aware trident networks for object detection[C]//Proceedings of the IEEE/CVF international conference on computer vision,F(xiàn),2019.
[10]Howard A,Sandler M,Chu G,et al.Searching for mobilenetv3[C]//Proceedings of the IEEE/CVF international conference on computer vision,F(xiàn),2019.
[11]He K,Zhang X,Ren S,et al.Deep residual learning for image recognition[C]//Proceedings of the IEEE conference on computer vision and pattern recognition,F(xiàn),2016.
[12]Dai Y,Gieseke F,Oehmcke S,et al.Attentional feature fusion[C]//Proceedings of the IEEE/CVF Winter Conference on Applications of Computer Vision,F(xiàn),2021.
[13]Liu Z,Peng Y,Hu W.Driver fatigue detection based on deeply-learned facial expression representation[J].Journal of Visual Communication and Image Representation,2020,71:18-27.
[14]石祥濱,房雪鍵,張德園,等.基于深度學(xué)習(xí)混合模型遷移學(xué)習(xí)的圖像分類[J].系統(tǒng)仿真學(xué)報,2016,28(1):167-173+182.
作者簡介:
王嘉誠,男,1997年生,碩士研究生,研究方向為新能源汽車控制與應(yīng)用。