程 澤,林富生,靳 朝,周鼎賀
(1.武漢紡織大學(xué) 機(jī)械工程與自動(dòng)化學(xué)院, 武漢 430200;2.湖北省數(shù)字化紡織裝備重點(diǎn)實(shí)驗(yàn)室, 武漢 430200;3.三維紡織湖北省工程研究中心, 武漢 430200)
近年來,由于疲勞駕駛造成的交通事故屢見不鮮。頻發(fā)的交通事故給國家和個(gè)人的生命財(cái)產(chǎn)安全帶來了嚴(yán)重的損失。及時(shí)檢測出駕駛員的疲勞駕駛狀態(tài)并做出預(yù)警已成為降低此類安全事故的有效方法之一。
疲勞駕駛狀態(tài)檢測技術(shù)大致可分為基于傳統(tǒng)特征檢測模式和基于深度學(xué)習(xí)檢測模式2種[1-5]。朱名流等[6]通過傳統(tǒng)HOG特征進(jìn)行人臉識(shí)別并使用人臉特征點(diǎn)模型進(jìn)行人眼和嘴部的定位,根據(jù)人眼與嘴部的張開與閉合,最后根據(jù)PERCLOS值判斷疲勞駕駛狀態(tài)。該方法不依賴深層網(wǎng)絡(luò),可大幅度提升檢測速度,但在檢測精度上與深度學(xué)習(xí)網(wǎng)絡(luò)還是有一定差距。徐蓮等[7]通過多任務(wù)級聯(lián)卷積神經(jīng)網(wǎng)絡(luò)對眼部狀態(tài)進(jìn)行識(shí)別,最后根據(jù)PERCLOS判定疲勞駕駛狀態(tài)。該方法雖然使用了深度學(xué)習(xí)網(wǎng)絡(luò)去對特征進(jìn)行分類處理,但是由于多任務(wù)級聯(lián)導(dǎo)致網(wǎng)絡(luò)參數(shù)過多,雖提高了檢測精度但檢測實(shí)時(shí)性略顯不穩(wěn)定。王旭彬等[8]使用目標(biāo)檢測框架Yolo-V3對駕駛員面部定位并對其人臉特征點(diǎn)提取與分析,評價(jià)駕駛員狀態(tài)。該方法雖然利用了深度學(xué)習(xí)網(wǎng)絡(luò),但該網(wǎng)絡(luò)只作用于人臉位置檢測,并沒有作用于人臉特征提取,導(dǎo)致最終的檢測結(jié)果仍舊與傳統(tǒng)特征檢測方法相當(dāng),在檢測精度與實(shí)時(shí)性的平衡性上仍需加強(qiáng)。基于傳統(tǒng)特征的檢測模式多以特征提取與淺層網(wǎng)絡(luò)訓(xùn)練模型的方式進(jìn)行,該模式雖然檢測速度較快,但是檢測精度不穩(wěn)定。基于深度學(xué)習(xí)的檢測模式多以深層網(wǎng)絡(luò)作為特征的訓(xùn)練網(wǎng)絡(luò),由于網(wǎng)絡(luò)層數(shù)多、參數(shù)多,導(dǎo)致檢測速度下降。由于疲勞駕駛檢測對實(shí)時(shí)性要求極高,使用傳統(tǒng)的深度學(xué)習(xí)網(wǎng)絡(luò)進(jìn)行疲勞駕駛檢測缺乏實(shí)用性。
針對以上問題,本文對深層網(wǎng)絡(luò)進(jìn)行輕量化改進(jìn),使得改進(jìn)后的網(wǎng)絡(luò)能夠在盡可能少犧牲檢測精度的前提下大幅度提升檢測速率與實(shí)時(shí)性,同時(shí)有效提升駕駛員疲勞檢測的實(shí)用性與可靠性。
目標(biāo)檢測網(wǎng)絡(luò)Yolo-V4結(jié)構(gòu)[9]如圖1所示。其整個(gè)網(wǎng)絡(luò)結(jié)構(gòu)可以分為3個(gè)部分:首先是主干特征提取網(wǎng)絡(luò)(backbone)模塊,對應(yīng)圖上的CSPDarknet53,用來獲得3個(gè)初步的有效特征層;其次是加強(qiáng)特征提取網(wǎng)絡(luò)模塊,對應(yīng)圖上的SPP和PANet,用來對3個(gè)初步的有效特征層進(jìn)行特征融合,提取出更好的特征;最后是預(yù)測網(wǎng)絡(luò)模塊,對應(yīng)圖上的3個(gè)尺度輸出,用來獲得預(yù)測結(jié)果。圖中左下部分為各個(gè)組件的結(jié)構(gòu)。

圖1 Yolo-V4結(jié)構(gòu)框圖
由于Yolo-V4的網(wǎng)絡(luò)參數(shù)量較大,導(dǎo)致在模型訓(xùn)練時(shí)耗時(shí)較長,所得模型占用內(nèi)存空間較大,在處理一些簡單的目標(biāo)檢測任務(wù)時(shí)檢測速度會(huì)受到一定影響。所以針對輕量化與檢測精度2個(gè)因素設(shè)計(jì)了一種EMLite-Yolo-V4超輕量級目標(biāo)檢測網(wǎng)絡(luò)結(jié)構(gòu),如圖2所示。該網(wǎng)絡(luò)結(jié)構(gòu)對Yolo-V4網(wǎng)絡(luò)中3個(gè)部分進(jìn)行了改進(jìn)。

圖2 EMLite-Yolo-V4結(jié)構(gòu)圖
1.2.1主干特征提取網(wǎng)絡(luò)改進(jìn)
首先,由于Yolo-V4的主干特征提取網(wǎng)絡(luò)CSPDarknek53的參數(shù)量較大,導(dǎo)致在模型訓(xùn)練時(shí)耗時(shí)較長,所得模型占用內(nèi)存空間較大,在處理一些簡單的目標(biāo)檢測任務(wù)時(shí)檢測速度會(huì)受到一定影響。所以使用MobileNet-V2替換CSPDarknek53[10]。其中MobileNet-V2是一種輕量級主干特征提取網(wǎng)絡(luò),其網(wǎng)絡(luò)結(jié)構(gòu)如表1所示。其中Input為輸入維度,Operator為操作組件,t為瓶頸層內(nèi)部升維的倍數(shù),c為特征的維度,n為該瓶頸層重復(fù)的次數(shù),s為瓶頸層第一個(gè)卷積的步幅。Operator中的bottleneck表示線性瓶頸層,Conv2d表示二維卷積操作,Avgpool表示平均池化操作。

表1 MobileNet-V2網(wǎng)絡(luò)結(jié)構(gòu)
MobileNet-V2的核心是利用深度可分離卷積塊(圖3)代替普通卷積塊[11-12]大幅度減少參數(shù)量,其中深度可分離卷積過程如圖4所示。

圖3 深度可分離卷積結(jié)構(gòu)圖

圖4 深度可分離卷積過程圖
其中,普通卷積計(jì)算過程如圖5所示。假設(shè)輸入圖片維度為(din,din,C),其中C為圖片的通道數(shù),(din,din)為圖片的大小,假設(shè)卷積核大小為(dk,dk,C),共有N個(gè),執(zhí)行普通卷積計(jì)算后輸出大小為(dout,dout,N)。普通卷積總計(jì)算量S1為:
(1)

圖5 普通卷積計(jì)算過程
深度可分離卷積計(jì)算過程分為2步,如圖6所示。第1步為深度卷積,輸入圖片仍為(din,din,C),在深度卷積操作中卷積一次應(yīng)用于單個(gè)通道,因此卷積核大小為(dk,dk,1),共有C個(gè),則輸出圖片大小為(dout,dout,C);第2步為逐點(diǎn)卷積,輸入圖片為深度卷積的輸出(dout,dout,C),在深度卷積操作中卷積一次應(yīng)用于單個(gè)通道,因此卷積核大小為(1,1,C),共有N個(gè),則輸出圖片大小為(dout,dout,C)。深度可分離卷積的總計(jì)算量S2為:
(2)

圖6 深度可分離卷積計(jì)算過程

1.2.2加強(qiáng)特征提取網(wǎng)絡(luò)改進(jìn)
Yolo-V4的加強(qiáng)特征提取網(wǎng)絡(luò)PANet、SPP中的卷積結(jié)構(gòu)比較復(fù)雜,也導(dǎo)致了整個(gè)網(wǎng)絡(luò)參數(shù)量的增加。因此,EMLite-Yolo-V4中將 PANet、SPP替換為一種輕量級的特征金字塔FPN-tiny,如圖7所示。FPN-tiny利用多尺度手段有效提升了小目標(biāo)的檢測效果,同時(shí)由于FPN-tiny獲得了更加魯棒的高層語義特征,使得模型學(xué)習(xí)過程更為高效,進(jìn)而提升模型準(zhǔn)確率,以彌補(bǔ)整體網(wǎng)絡(luò)參數(shù)減少而帶來的精度損失。

圖7 FPN-tiny結(jié)構(gòu)
1.2.3柔性非極大值抑制(Soft-NMS)與卷積通道參數(shù)alpha改進(jìn)
針對本文數(shù)量較少且目標(biāo)大小中等的檢測目標(biāo)時(shí),由于先驗(yàn)框數(shù)量固定為3個(gè)尺度共類聚9個(gè)中心點(diǎn),導(dǎo)致需要比較的預(yù)測框數(shù)量較多,此時(shí)若進(jìn)行柔性非極大值抑制,每個(gè)預(yù)測框需要計(jì)算得分與重合度2個(gè)指標(biāo)。由于待檢測目標(biāo)大小適中,檢測背景較為簡單,且在檢測過程中被檢測目標(biāo)為無相對位移的目標(biāo),不會(huì)出現(xiàn)被檢測目標(biāo)重合問題,這樣導(dǎo)致計(jì)算預(yù)測框重合度就為冗余操作,檢測精度并沒有提升,反而使得檢測速度變慢。所以EMLite-Yolo-V4網(wǎng)絡(luò)結(jié)構(gòu)中將柔性非極大值抑制剔除計(jì)算預(yù)測框重合度的因素,在不丟失檢測精度的同時(shí)提高檢測速度。如表2所示,對同一幀圖像進(jìn)行眼嘴特征檢測,分別使用改進(jìn)前后的柔性非極大值抑制進(jìn)行實(shí)驗(yàn),結(jié)果表明,改進(jìn)后的非極大值抑制在單幀檢測時(shí)間上可減少將近一半,使得EMLite-Yolo-V4網(wǎng)絡(luò)的檢測速率進(jìn)一步加快。

表2 柔性非極大值抑制改進(jìn)對比結(jié)果
為了繼續(xù)縮減網(wǎng)絡(luò)參數(shù)量,通過修改卷積通道alpha系數(shù),將默認(rèn)值1改為0.5,使得主干提取網(wǎng)絡(luò)與加強(qiáng)特征提取網(wǎng)絡(luò)中卷積通道數(shù)減少,使得EMLite-Yolo-V4網(wǎng)絡(luò)的參數(shù)量只有9 MB。
YawDD(a yawning detetion dataset)為公開的疲勞駕駛打哈欠數(shù)據(jù)集[13]。ZJU(Zhejiang University dataset)為浙江大學(xué)公開的人臉眨眼視頻數(shù)據(jù)集[14]。融合2個(gè)數(shù)據(jù)集構(gòu)成一個(gè)包含具有睜眼、閉眼、張嘴、閉嘴4種特征的完整數(shù)據(jù)集。該數(shù)據(jù)集包含2組具有不同面部特征駕駛員的視頻數(shù)據(jù),且視頻均是在真實(shí)和變化的駕駛狀態(tài)光線條件下拍攝的。該數(shù)據(jù)集包括來自不同膚色的、戴或不戴眼鏡的男女駕駛員的面部信息,根據(jù)本實(shí)驗(yàn)要求標(biāo)注了睜眼、閉眼、張嘴、閉嘴4種特征。為了滿足實(shí)驗(yàn)需求,在保證訓(xùn)練與驗(yàn)證結(jié)果一致性的前提下,對數(shù)據(jù)集進(jìn)行了部分裁剪,裁剪后的新數(shù)據(jù)集包含4個(gè)眼嘴特征,共有5 544張駕駛員面部圖像。表3給出了數(shù)據(jù)集按8∶1∶1的比例劃分后的訓(xùn)練、驗(yàn)證和測試集。

表3 YawDD-ZJU數(shù)據(jù)集劃分情況 張
為了提高模型的泛化能力與魯棒性,本文使用了2種數(shù)據(jù)增強(qiáng)方式,分別為離線數(shù)據(jù)增強(qiáng)和Mosaic數(shù)據(jù)增強(qiáng)。
離線數(shù)據(jù)增強(qiáng)包括數(shù)據(jù)翻轉(zhuǎn)、數(shù)據(jù)旋轉(zhuǎn)、數(shù)據(jù)縮放、數(shù)據(jù)剪裁、數(shù)據(jù)移位、增加高斯噪聲和顏色增強(qiáng)7個(gè)方法。由于本文訓(xùn)練數(shù)據(jù)為人臉眼嘴特征,其中數(shù)據(jù)縮放、數(shù)據(jù)剪裁和數(shù)據(jù)移位會(huì)破壞特征的完整性。故只使用數(shù)據(jù)翻轉(zhuǎn)、數(shù)據(jù)旋轉(zhuǎn)、增加高斯噪聲和顏色增強(qiáng)4種方法來增強(qiáng)數(shù)據(jù)集。如圖8所示為4種數(shù)據(jù)增強(qiáng)方法的效果。

圖8 離線數(shù)據(jù)增強(qiáng)方法
Mosaic數(shù)據(jù)增強(qiáng)直接對4張圖片進(jìn)行隨機(jī)拼接,將拼接后的新圖片傳入訓(xùn)練網(wǎng)絡(luò)中進(jìn)行特征提取。使用Mosaic數(shù)據(jù)增強(qiáng)可以大大豐富檢測目標(biāo)的背景,進(jìn)而提升檢測精度。Mosaic數(shù)據(jù)增強(qiáng)方法如圖9所示。

圖9 Mosaic數(shù)據(jù)增強(qiáng)方法
實(shí)驗(yàn)以主頻2.30 GHz、內(nèi)存16 G的Intel(r)Core(TM)i5-8300H處理器和Nvidia GeForce GTX 1060 GPU(6G顯存)為實(shí)驗(yàn)平臺(tái),采用Tensorflow/Keras平臺(tái)建立神經(jīng)網(wǎng)絡(luò)模型,并選擇Tensorflow框架作為Keras平臺(tái)的后端。訓(xùn)練時(shí),采用凍結(jié)訓(xùn)練法和早停法(early stopping)加快訓(xùn)練速度。初始學(xué)習(xí)率設(shè)置為0.000 1,學(xué)習(xí)率衰減設(shè)置為0.000 01。輸入數(shù)據(jù)維度為416*416,訓(xùn)練總世代數(shù)(Epoch)設(shè)置為100,凍結(jié)世代數(shù)設(shè)置為50,一次訓(xùn)練所選取的樣本數(shù)(Batch size)設(shè)置為8。訓(xùn)練過程中的損失曲線與精度曲線如圖10、11所示。

圖10 損失曲線

圖11 精度曲線
表4為4種眼嘴特征在EMLite-Yolo-V4模型下的性能數(shù)據(jù),由表中數(shù)據(jù)可以得出模型對于4種眼嘴特征具有較高精度與檢出率,平均分類精度達(dá)到97.39%,平均mAP為80.02%。

表4 4種眼嘴特征的模型性能數(shù)據(jù)
由表5數(shù)據(jù)可得,模型針對本文改進(jìn)方法均較前階段mAP值有一定提升,由于檢測目標(biāo)為駕駛員面部眼嘴特征,通過MobileNet-V2作為主干特征提取網(wǎng)絡(luò),融合FPN-tiny輕量級特征金字塔,在盡量不犧牲精度的情況下大幅度提升檢測速度,使得EMLite-Yolo-V4模型檢測效果顯著提升,從而驗(yàn)證了本文改進(jìn)方案的有效性。

表5 EMLite-Yolo-V4分模塊對比結(jié)果
對比其他Yolo-V4的改進(jìn)方案,將本文EMLite-Yolo-V4與Yolo-V4和基于文獻(xiàn)[15-17]網(wǎng)絡(luò)訓(xùn)練好的模型做評價(jià)測試,該測試包含檢測模型的預(yù)測時(shí)間、模型大小和模型平均分類精度。如表6所示,EMLite-Yolo-V4網(wǎng)絡(luò)在預(yù)測時(shí)間、模型大小、mAP值上均優(yōu)于文獻(xiàn)[15-17]網(wǎng)絡(luò)。EMLite-Yolo-V4網(wǎng)絡(luò)的精度略小于Yolo-V4網(wǎng)絡(luò),但在預(yù)測時(shí)間與模型大小上均優(yōu)于Yolo-V4。

表6 5種網(wǎng)絡(luò)結(jié)構(gòu)訓(xùn)練結(jié)果對比
為進(jìn)一步驗(yàn)證在模型參數(shù)量降低后對檢測精度的影響,針對卷積通道系數(shù)alpha值為1、0.75、0.5時(shí)3種情況,并進(jìn)行對比實(shí)驗(yàn)。實(shí)驗(yàn)數(shù)據(jù)如表7所示。由表7可知,alpha值在1、0.75、0.5時(shí),模型大小顯著變化,由alpha為1時(shí)的149 MB減少到alpha為0.5時(shí)的9 MB。對比alpha為1與alpha為0.5時(shí)的模型平均分類精度可知,隨著模型參數(shù)量大幅度減少,模型檢測精度會(huì)受到一定影響,但該影響并不大,由表7中數(shù)據(jù)可知,alpha值從1減少為0.5,其平均分類精度分別減少了0.45%、0.05%,即模型在盡可能少犧牲檢測精度的前提下大幅度提升檢測速度。

表7 卷積通道系數(shù)alpha對比實(shí)驗(yàn)數(shù)據(jù)
為驗(yàn)證FPN-tiny對模型精度的提升,針對alpha為0.5時(shí)添加與未添加FPN-tiny模塊進(jìn)行對比實(shí)驗(yàn)。實(shí)驗(yàn)數(shù)據(jù)如表8所示。由表8中數(shù)據(jù)可知,在添加FPN-tiny模塊后模型檢測精度提升較多,且一定程度上可加快檢測速度。驗(yàn)證了FPN-tiny具有提升模型識(shí)別精度的作用。

表8 FPN-tiny模塊對比實(shí)驗(yàn)
本文疲勞檢測流程如圖12所示,首先將實(shí)時(shí)采集到的駕駛員人臉圖像輸入至基于Haar特征的人臉檢測分類器模塊中[18]定位檢測目標(biāo),然后將定位后的檢測數(shù)據(jù)送至EMLite-Yolo-V4眼嘴特征檢測模型進(jìn)行疲勞特征提取與檢測,最后將提取到的特征送入疲勞特征參數(shù)計(jì)算模塊進(jìn)行計(jì)算并輸出最終的判定結(jié)果。

圖12 疲勞駕駛檢測流程圖
其中疲勞特征參數(shù)計(jì)算模塊功能是將駕駛員睜眼、閉眼、張嘴、閉嘴4種特征的檢測結(jié)果記錄并根據(jù)PERCLOS和單位分鐘打哈欠閾值數(shù)計(jì)算出疲勞程度,依據(jù)疲勞程度分?jǐn)?shù)得出最終的疲勞駕駛檢測結(jié)果。其中疲勞程度分為3個(gè)等級,分別為正常駕駛狀態(tài)(NDS)、輕微疲勞駕駛(LFDS) 、嚴(yán)重疲勞駕駛(EFDS)。分類依據(jù)如表9所示。

表9 疲勞程度分類依據(jù)
為驗(yàn)證本文模型對3種疲勞駕駛狀態(tài)的檢測效果,隨機(jī)抽取了3名實(shí)驗(yàn)人員進(jìn)行檢測實(shí)驗(yàn)。實(shí)驗(yàn)?zāi)M真實(shí)駕駛環(huán)境,由實(shí)驗(yàn)人員正前方攝像頭實(shí)時(shí)采集面部信息,并且實(shí)驗(yàn)人員按照要求分別模擬出3種疲勞駕駛狀態(tài)。每位實(shí)驗(yàn)人員分別進(jìn)行100次模擬實(shí)驗(yàn),共進(jìn)行300次模擬實(shí)驗(yàn)。實(shí)驗(yàn)數(shù)據(jù)如表10所示。由表10可知,3種疲勞駕駛狀態(tài)的誤檢率較低,且平均分類準(zhǔn)確率達(dá)到98.28%,證明3種疲勞駕駛狀態(tài)分類精度較高;其漏檢率較低,證明本模型實(shí)際檢測更具穩(wěn)定性與魯棒性;模型檢測速度較快,實(shí)時(shí)FPS可達(dá)到46幀/s,檢測實(shí)時(shí)性較高。實(shí)驗(yàn)過程中實(shí)時(shí)監(jiān)測情況如圖13所示。

表10 疲勞程度實(shí)驗(yàn)數(shù)據(jù)

圖13 疲勞程度實(shí)驗(yàn)實(shí)時(shí)監(jiān)測圖
針對疲勞駕駛檢測的準(zhǔn)確性與實(shí)時(shí)性不平衡的問題,提出一種基于輕量化卷積神經(jīng)網(wǎng)絡(luò)EMLite-Yolo-V4的疲勞駕駛檢測方法。通過使用輕量化卷積神經(jīng)網(wǎng)絡(luò)MobileNet-V2替換了Yolo-V4原有的主干提取網(wǎng)絡(luò),聯(lián)合卷積通道參數(shù)alpha的縮小,使得整個(gè)EMLite-Yolo-V4網(wǎng)絡(luò)的層數(shù)更少,檢測速度更快。加入FPN-tiny輕量級特征金字塔模塊過濾圖像中的冗余信息,減少了EMLite-Yolo-V4在檢測速度提升時(shí)帶來的精度損失。同時(shí),針對本文檢測目標(biāo)體積改進(jìn)了Yolo-V4原有的Soft-NMS,在檢測過程中無需再同時(shí)考慮目標(biāo)框的得分與重合度,使得本文方法檢測速度進(jìn)一步提升。最后通過對比實(shí)驗(yàn)證實(shí)了本文網(wǎng)絡(luò)模型的有效性,整體檢測精度達(dá)到97.39%,mAP值達(dá)到80.02%,較當(dāng)前主流目標(biāo)檢測網(wǎng)絡(luò)模型具有更高的精度。本方法在光線條件較好時(shí)具有較為穩(wěn)定的檢測效果,在后續(xù)工作中會(huì)加入紅外圖像,檢測光線條件較差時(shí)的疲勞狀態(tài)。