馬迎杰, 王佳斌, 鄭力新, 朱新龍
( 華僑大學(xué) 工學(xué)院, 福建 泉州 362021 )
根據(jù)國際標(biāo)準(zhǔn)化組織(ISO)的定義,分心駕駛是指駕駛時注意力指向與正常駕駛不相關(guān)的活動,從而導(dǎo)致駕駛操作能力下降的一種現(xiàn)象.美國運輸部表示,分心駕駛是導(dǎo)致危險發(fā)生的最大因素.另外,根據(jù)美國國家公路交通安全管理局(NHTSA)的數(shù)據(jù),2015年,共有35 092人死于美國道路的交通事故,較2014年死亡人數(shù)上升了7.2%,其中分心駕駛需要為39.1萬名傷者和3 477名死者負(fù)責(zé)[1].
早期,研究人員運用生理數(shù)據(jù)[2-4]和車輛控制數(shù)據(jù)[5]來進(jìn)行疲勞檢測.Zhao等[6]提出了一種使用隨機(jī)森林(RF)分類器的特征提取方法.Berri等[7]提出了一種基于支持向量機(jī)(SVM)的模型,對于視覺系統(tǒng)獲得91.57%的成功率.Craye等[8]提出基于有源傳感器Kinect和計算機(jī)視覺工具,但是他們的解決方案的數(shù)據(jù)來源于室內(nèi)的模擬,與真實駕駛環(huán)境還是有很大不同.Le等[9]設(shè)計了一個快速RCNN(regions with convolutional neural network features)模型來檢測駕駛員是否正在使用手機(jī),以及駕駛員的手是否在方向盤上.Ruiz等[10]通過在300W-LP數(shù)據(jù)集上訓(xùn)練多損耗卷積神經(jīng)網(wǎng)絡(luò)來提供一種優(yōu)雅而穩(wěn)健的方法來確定姿勢.
現(xiàn)有的駕駛?cè)藸顟B(tài)檢測方法大都基于某一單項指標(biāo),在限定條件下能夠達(dá)到一定的精度.然而,在實際復(fù)雜多變的行車環(huán)境下,其準(zhǔn)確性和可靠性上還存在問題,難以達(dá)到預(yù)期要求,且大多數(shù)模型不易移植到嵌入式系統(tǒng)中.基于此,本文提出基于快速下采樣網(wǎng)絡(luò)結(jié)構(gòu)(MF-Net)的駕駛狀態(tài)識別系統(tǒng).
實驗數(shù)據(jù)集來源于Kaggle“國家農(nóng)場分心駕駛員檢測”競賽,包括具有22 400張標(biāo)記的樣本訓(xùn)練集(這些樣本在各類之間平均分配),以及79 700張未標(biāo)記的測試樣本.考慮到攝像頭的畫面、位置、角度差異、司機(jī)調(diào)整座椅和方向盤位置,以及訓(xùn)練圖像大小只有約22 KB,因此希望從訓(xùn)練集中綜合獲取更多圖像,以確保模型不會因神經(jīng)網(wǎng)絡(luò)具有數(shù)百萬個參數(shù)而學(xué)到不必要的特征,從而產(chǎn)生過擬合[11].
為了防止這種原因?qū)е碌倪^擬合,在訓(xùn)練數(shù)據(jù)之前,要對訓(xùn)練數(shù)據(jù)做數(shù)據(jù)增強.在圖像數(shù)據(jù)中,數(shù)據(jù)增強的常用方法包括:對圖片進(jìn)行角度偏移、左右偏移、上下偏移、隨機(jī)放大,以及縮小、水平翻轉(zhuǎn)等.如果將上述方法組合排列起來,對圖片進(jìn)行放大后再進(jìn)行角度偏移,將會產(chǎn)生大量圖像.在此使用Keras中的圖片生成器Image Data Generator()來創(chuàng)建更多圖像,其中垂直平移范圍(height_shift_range)=0.5,水平平移范圍(width_shift_range)=0.5,隨機(jī)縮放范圍(zoom_range)=0.5,圖像旋轉(zhuǎn)角度范圍(rotation_range)=40.
圖1是某一位駕駛員身體姿勢狀態(tài)數(shù)據(jù).其識別狀態(tài)中,C0為安全類,C1~C9為非安全類.除了簡單的對圖像進(jìn)行幾何上的形變,還可以對圖片的飽和度、亮度色彩進(jìn)行小范圍的冪次縮放或者乘法縮放等數(shù)學(xué)操作.另外還可以在不破壞圖像質(zhì)量的前提下,對圖像的每個像素進(jìn)行整體加減法等操作.
對于此數(shù)據(jù),“圖像增強”還具有其他一些優(yōu)勢.有時來自兩個不同類別的圖像之間的差異可能非常細(xì)微,如圖2所示.在這種情況下,通過不同角度對同一幅圖像進(jìn)行多次查看會有所幫助.如果不仔細(xì)觀察圖2的兩張對比圖像,幾乎認(rèn)為他們屬于同一類別.但是,圖2(a)的圖像是C2(右手打電話)類別,而圖2(b)圖像是C8(頭發(fā)和化妝)類別.通過數(shù)據(jù)增強,網(wǎng)絡(luò)可以更好的發(fā)現(xiàn)其特征,以利于分類.
(a) C0(正常駕駛) (b) C1(右手打字) (c) C2(右手打電話)
(d) C3(左手打字) (e) C4(左手打電話) (f) C5(調(diào)收音機(jī))
(g) C6(喝飲料) (h) C7(拿后面東西)
(i) C8(整理頭發(fā)和化妝) (j) C9(和其他乘客說話) 圖1 駕駛員身體姿勢識別狀態(tài)數(shù)據(jù)Fig.1 Driver body posture recognition status data
(a) C2(右手打電話) (b) C8(整理頭發(fā)和化妝)圖2 兩幅不同類別的圖像對比Fig.2 Comparison of two images of different categories
卷積神經(jīng)網(wǎng)絡(luò)(CNN)采用類激活映射(class activation mapping)和類特定顯著圖(class-specific saliency map)尋找目標(biāo)及改變視頻中的注意力.即使用一種CNN中的全局平均池(GAP)生成類激活映射的技術(shù)[12],用于特定類別的類激活圖表示CNN用于識別該類別的區(qū)別圖像區(qū)域.類激活映射過程,如圖3所示.
圖3 類激活映射過程Fig.3 Class activation mapping process
圖4 CAM類激活圖Fig.4 CAM activation diagram
類激活圖可用于對CNN的預(yù)測決策進(jìn)行透視,而CNN由圖像的不同語義區(qū)域觸發(fā),用于不同的預(yù)測.此外,網(wǎng)絡(luò)的深層功能可以用于通用本地化,使用最新訓(xùn)練的SVM的權(quán)重來生成類激活映射,然后獲得類特定的顯著映射.隨著神經(jīng)網(wǎng)絡(luò)訓(xùn)練次數(shù)的演化,重要的特征點對應(yīng)的權(quán)重,通過一層層傳遞,會比較大;反之,不能作為特征的點,就會幾乎沒有權(quán)重.對于CAM圖而言,權(quán)重大的點會從紅到藍(lán)分布,顏色越紅說明這個地方越是特征部位.圖4為CAM類激活圖.
采用卷積神經(jīng)網(wǎng)絡(luò)(CNN),把圖片的部分相鄰像素變成長寬更小,高度更深的單元,從而提煉出局部的特征;然后一層一層將特征往后映射,并提取出最終的特征.MF-Net利用深度可分離卷積[13]作為構(gòu)建塊,在一定程度上可降低網(wǎng)絡(luò)的復(fù)雜度.深度可分離卷積實質(zhì)上是將標(biāo)準(zhǔn)卷積分成了兩步:1) 深度卷積,即對每個輸入通道單獨使用一個卷積核處理;2) 逐點卷積,即1×1卷積用于將深度卷積的輸出組合起來,并且深度卷積和逐點卷積的輸入與輸出都是相同的.
圖5 標(biāo)準(zhǔn)卷積參數(shù)示意圖Fig.5 Schematic diagram of standard convolution parameters
為更好地理解,在此舉例說明.首先輸入的是2維數(shù)據(jù),然后進(jìn)行3×3卷積并輸出3維數(shù)據(jù).標(biāo)準(zhǔn)卷積參數(shù)和深度可分離卷積參數(shù)示意圖,分別如圖5,6所示.標(biāo)準(zhǔn)卷積參數(shù)量為2×3×3×3=54,而深度可分離卷積參數(shù)量為2×3×3⊕2×1×1×3=24.將兩個參數(shù)量進(jìn)行對比,可得24÷54≈0.44,可以看到深度可分離卷積的參數(shù)量是正常卷積參數(shù)量的一半,甚至更少,只不過在輸入與輸出維度相差不大的情況下,效果不那么明顯.
當(dāng)計算能力非常小時,信息容量在網(wǎng)絡(luò)性能中起著更重要的作用.常規(guī)地,減少信道的數(shù)量可使緊湊的網(wǎng)絡(luò)架構(gòu)適應(yīng)一定的復(fù)雜性.在采用慢速下采樣方案的情況下,網(wǎng)絡(luò)變得太狹窄而無法編碼獲得足夠的信息,從而導(dǎo)致嚴(yán)重的性能下降.因此擬采用快速下采樣策略,可以在有限的計算能力下實現(xiàn)了較高精度和較高效率.
圖6 深度可分離卷積參數(shù)示意圖Fig.6 Schematic diagram of depth separable convolution parameters
快速下采樣策略是指,在現(xiàn)代的CNN采用分層架構(gòu)中,同一階段內(nèi)各層的空間尺寸保持相同,而下階段的空間尺寸則通過下采樣來減小.鑒于計算能力有限,緊湊型網(wǎng)絡(luò)的特征表示能力和信息容量均受到限制.不同的下采樣策略為緊湊型網(wǎng)絡(luò)提供了詳細(xì)的功能表示和大量的信息容量之間的折衷.在低速下采樣策略中,下采樣是在網(wǎng)絡(luò)的后續(xù)層中執(zhí)行的,故更多的層具有較大的空間尺寸;相反,在網(wǎng)絡(luò)的開始以快速的下采樣策略執(zhí)行下采樣,這將大大降低計算成本.因此,在固定的計算預(yù)算下,慢速下采樣策略傾向于生成更詳細(xì)的功能,而快速下采樣策略則可以增加通道數(shù)量并允許更多信息進(jìn)行編碼.
(a) VGG16模型 (b) MF-Net模型圖7 不同CNN模型的結(jié)構(gòu)對比示意Fig.7 Comparison of structure of different CNN models
不同CNN模型的結(jié)構(gòu)對比示意,如圖7所示.從圖7可知:VGG16模型的輸入圖像是224 px×224 px×3,結(jié)構(gòu)中通道數(shù)翻倍,由64→128→256→512后保持不變,不再翻倍,而高和寬變均減半,即224→112→56→28→14→7;MF-Net模型采用更快的下采樣策略并利用更多的渠道,從而擴(kuò)大了信息容量并提高了性能.DS Conv:深度方向可分離卷積.每個深度可分離卷積都由兩層組成.
基于以上見解,決定在MF-Net的體系結(jié)構(gòu)中采用快速下采樣策略,并通過在網(wǎng)絡(luò)開始時以較大步幅連續(xù)應(yīng)用深度可分離卷積來實現(xiàn),同時將特征提取過程推遲到最小分辨率.這里不使用最大池化,因為發(fā)現(xiàn)它不能提高性能,反而會引入額外的計算.所提出的MF-Net接受尺寸為224 px×224 px的圖像,并在前2層內(nèi)執(zhí)行4倍下采樣,其后在12層內(nèi)執(zhí)行32倍下采樣.更具體地說,這12個層由1個標(biāo)準(zhǔn)卷積層,5個深度可分離卷積(每個都有一個深度卷積層和一個點向卷積層)和1個深度卷積層組成.
MF-Net采用24層的堆疊架構(gòu),包括1個標(biāo)準(zhǔn)卷積層,11個深度可分離卷積和1個全連接層,如表1所示.表1中:“/2”表示該層的步幅為2;DWConv表示深度卷積.由表1可知:在建議的體系結(jié)構(gòu)中可以利用更多的層和更多的通道.這里利用6個深度可分離卷積來提高生成特征的表示能力,前5個深度可分離卷積的輸出通道是512個,而最后一個是1 024個.信道數(shù)量的增加有助于獲取更大的信息容量,這對于在有限的計算資源下的網(wǎng)絡(luò)性能至關(guān)重要.
表1 MF-Net的網(wǎng)絡(luò)架構(gòu)圖Tab.1 MF-Net network architecture diagram
與此同時,引入微調(diào)策略來訓(xùn)練框架.結(jié)果表明,該方法取得良好的效果.為提高訓(xùn)練速度,減輕深層神經(jīng)網(wǎng)絡(luò)過度參數(shù)化,防止過擬合,經(jīng)過試驗在BatchNormalization之后將Dropout比率設(shè)置為0.5,以減少復(fù)雜的共適應(yīng)關(guān)系,從而創(chuàng)造一個稀疏的網(wǎng)絡(luò)架構(gòu).另外,采用遷移學(xué)習(xí)以減少訓(xùn)練時間.
(1)
而常用的二分分類模型一般采用的是Binary_Crossentropy的方法,其數(shù)學(xué)表達(dá)式為
(2)
面對的問題是10個分類,而不僅僅是2個分類,因此應(yīng)采用 Categorical_Crossentropy的方法,而不該采用Binary_Crossentropy的方法.
(3)
RMSprop有兩個特點:1) RMSprop依然依賴于全局學(xué)習(xí)率;2) RMSprop是Adagrad的一種發(fā)展和Adadelta的變體,效果趨于二者之間,適合處理非平穩(wěn)目標(biāo).
Adam方法將慣性保持和環(huán)境感知兩個優(yōu)點集于一身.一方面,Adam記錄梯度的一階矩,即過往梯度與當(dāng)前梯度的平均,這體現(xiàn)了慣性保持;另一方面,Adam還記錄梯度的二階矩,即過往梯度平方與當(dāng)前梯度平方的平均.這類似AdaGrad方法,體現(xiàn)了環(huán)境感知能力,為不同參數(shù)產(chǎn)生自適應(yīng)的學(xué)習(xí)率.一階矩和二階矩采用類似于滑動窗口內(nèi)求平均的思想進(jìn)行融合,即當(dāng)前梯度和近一段時間內(nèi)梯度的平均值,時間久遠(yuǎn)的梯度對當(dāng)前平均值的貢獻(xiàn)呈指數(shù)衰減.具體來說,它利用梯度的一階矩估計和二階矩估計動態(tài)調(diào)整每個參數(shù)的學(xué)習(xí)率.Adam的優(yōu)點主要在于經(jīng)過偏置校正后,每一次迭代學(xué)習(xí)率都有個確定范圍,使得參數(shù)比較平穩(wěn),其計算式為
(4)
實驗環(huán)境包括硬件設(shè)備和軟件配置,測試所用的計算機(jī)配置為:GPUTesla K80,RAM 25.51GB.軟件環(huán)境為:Linux 內(nèi)核版本4.14.137+;Python3.6;tensorflow 1.15.0;keras 2.2.5.將文中所提出的算法與其他算法進(jìn)行比較,結(jié)果如表2所示.表2中:AT,AV分別為訓(xùn)練準(zhǔn)確率和驗證準(zhǔn)確率;LT,LV分別為訓(xùn)練損失和驗證損失;M為參數(shù)量;N為模型大小;modified VGG16模型是參考文獻(xiàn)[14]的相關(guān)研究進(jìn)行實驗得到的.
表2 不同算法的實驗結(jié)果比較Tab.2 Comparison of experimental results of different algorithms
由表2可知:MF-Net模型在相同的計算能力下比其他幾種模型都有一定的改進(jìn).MF-Net模型驗證準(zhǔn)確率比ResNet 50模型提升了1.4%,驗證損失函數(shù)值提升0.241 2;MF-Net模型驗證準(zhǔn)確率比Xception模型提升了0.81%,驗證損失函數(shù)值提升了0.108 6.將這些改進(jìn)歸因于MF-Net中快速下采樣策略的有效性.最初的Xception模型采用后期慢速采樣策略,更多的層具有相對較大的特征圖,從而計算量也更大;而為保持計算效率,Xception模型相對較窄,這就限制了信息容量.MF-Net采用更快的下采樣策略,這樣可以利用更多的信道并減輕信息容量的下降.
由表2可知:MF-Net模型的參數(shù)量最少,為3.24×106個,這也意味著訓(xùn)練出來的模型最小,為25 MB,而其他的訓(xùn)練模型都大于100 MB,需要的存儲容量大,不利于部署.如存儲ResNet 50模型的權(quán)重值文件大小為188 MB,模型過大不利于移植到嵌入式系統(tǒng)中.Xception模型訓(xùn)練時間過長,調(diào)參難度較大.對于移動或嵌入式設(shè)備,內(nèi)存和緩存資源是有限的,復(fù)雜的計算圖可能導(dǎo)致頻繁的內(nèi)存/高速緩存切換,從而降低實際推斷速度.通過分析表2的迭代次數(shù)與準(zhǔn)確率間的關(guān)系發(fā)現(xiàn):MF-Net網(wǎng)絡(luò)可以在相同迭代次數(shù)情況下可以達(dá)到更高的準(zhǔn)確率.另外在實驗過程中,ResNet 50模型和Xception模型在迭代將近40次時才達(dá)到表2中的實驗結(jié)果,而MF-Net模型只迭代了19次,這也就是說MF-Net模型可以降低計算成本.當(dāng)前的MF-Net深度學(xué)習(xí)網(wǎng)絡(luò)通過構(gòu)建非循環(huán)計算圖來實現(xiàn)神經(jīng)網(wǎng)絡(luò)的推理,繼承了VGG16的簡單體系結(jié)構(gòu),結(jié)合了深度可分離卷積,并采用了前期快速下采樣策略,使得MF-Net對工程實施非常友好,并在移動物理設(shè)備上比較高效.
F1-score是分類問題的一個衡量指標(biāo),它是精確率和召回率的調(diào)和平均數(shù),最大為1,最小為0,一些多分類問題常常將F1-score作為最終測評的方法.將文中提出的算法與其他算法的F1-score值進(jìn)行比較,結(jié)果如表3所示.由表3可知:文中所提算法在F1-score均值比較中表現(xiàn)最好,其值為0.87.
表3 不同算法的F1-score值比較Tab.3 Comparison of F1-score values of different algorithms
文中提出利用深度可分離卷積作為網(wǎng)絡(luò)結(jié)構(gòu)MF-Net構(gòu)建塊,并結(jié)合快速下采樣策略構(gòu)建駕駛狀態(tài)識別系統(tǒng).與VGG 16,ResNet 50等神經(jīng)網(wǎng)絡(luò)相比,該模型的深度可分離卷積大大減少了參數(shù)量,快速下采樣方案的運用增加了網(wǎng)絡(luò)的信息容量.這種設(shè)計有助于性能的提升且所需存儲容量小,便于今后嵌入式系統(tǒng)的移植.實驗結(jié)果表明,文中所提的MF-Net網(wǎng)絡(luò)模型在駕駛員狀態(tài)識別任務(wù)上具有有效性與優(yōu)越性.