趙 霞,李 朝,付 銳,葛振振,王 暢
(長(zhǎng)安大學(xué)汽車(chē)學(xué)院,西安 710064)
隨著人工智能技術(shù)、傳感器技術(shù)、互聯(lián)網(wǎng)技術(shù)、大數(shù)據(jù)以及5G網(wǎng)絡(luò)的發(fā)展,自動(dòng)駕駛在近年來(lái)取得了重大突破[1]。然而受交通立法、倫理、現(xiàn)有道路狀況以及更高精深技術(shù)的限制,完全自動(dòng)駕駛在短時(shí)間內(nèi)很難實(shí)現(xiàn),這就意味著以人為中心的人機(jī)共駕模式將繼續(xù)持續(xù)很長(zhǎng)一段時(shí)間[2]。隨著人機(jī)共駕策略的深入發(fā)展,研究人員逐漸意識(shí)到駕駛?cè)藸顟B(tài)對(duì)于人機(jī)共駕系統(tǒng)決策制定的必要性。于是駕駛?cè)藸顟B(tài)逐漸成為人機(jī)系統(tǒng)多元感知的重要部分,車(chē)輛系統(tǒng)實(shí)時(shí)理解駕駛?cè)说臓顟B(tài)有利于制定出更人性化的駕駛?cè)私庸懿呗?。其次,隨著V2X 技術(shù)的發(fā)展,如果駕駛?cè)说臓顟B(tài)可以被實(shí)時(shí)檢測(cè),那么駕駛?cè)说臓顟B(tài)信息可以在車(chē)輛周?chē)木植拷煌ňW(wǎng)之間傳遞共享,相鄰車(chē)輛和其他道路參與者分別可以根據(jù)這些信息調(diào)整行車(chē)策略和過(guò)街策略[3]。這不僅有利于減少交通事故、提高交通效率,還有利于節(jié)約能源保護(hù)環(huán)境。因此,如何實(shí)現(xiàn)實(shí)時(shí)可靠的駕駛?cè)藸顟B(tài)檢測(cè)是一項(xiàng)非常有意義的研究工作。
在駕駛?cè)藸顟B(tài)檢測(cè)中包含駕駛?cè)朔中臋z測(cè)、壓力檢測(cè)、疲勞檢測(cè)、酒駕以及異常駕駛行為檢測(cè)等。本文的分心駕駛行為檢測(cè)本質(zhì)上是檢測(cè)分心源,屬于駕駛分心檢測(cè)進(jìn)一步的細(xì)分檢測(cè)。不同的分心行為,如右手操作手機(jī)和與乘客交談,有不同的駕駛績(jī)效,因此在駕駛分心檢測(cè)的基礎(chǔ)上有必要進(jìn)一步細(xì)分分心行為。從廣義上講,駕駛狀態(tài)檢測(cè)分為基于駕駛?cè)松硇盘?hào)(如心電、腦電、皮電)[4-5],駕駛績(jī)效(速度、車(chē)輛位置、加速踏板位置和制動(dòng)踏板位置等)[6-7],眼動(dòng)數(shù)據(jù)(眼睛離開(kāi)道路時(shí)長(zhǎng)、眨眼頻率、視線廣度等)[8]和基于圖像的檢測(cè)方法?;隈{駛?cè)松硇盘?hào)和駕駛績(jī)效的方法雖然在駕駛?cè)藸顟B(tài)檢測(cè)中取得了很好的效果,但在駕駛行為檢測(cè)中,這兩種方法存在一定局限性。不同的分心行為,如左手操作手機(jī)和右手操作手機(jī),可能導(dǎo)致相同或相似的駕駛?cè)松硇盘?hào)和駕駛績(jī)效,因此這兩種檢測(cè)方法可能導(dǎo)致分心行為間的混淆[9]。此外,當(dāng)駕駛?cè)擞写蠓阮^部或轉(zhuǎn)身動(dòng)作時(shí),安裝在車(chē)輛儀表盤(pán)附近的傳感器很難捕捉到其眼動(dòng)特征,因此尹智帥等[10]指出基于眼動(dòng)數(shù)據(jù)的分心駕駛行為相關(guān)研究仍較為欠缺?;谟?jì)算機(jī)視覺(jué)的檢測(cè)方法主要是通過(guò)圖像監(jiān)測(cè)駕駛?cè)说念^部、面部、手部等部位,然后采用機(jī)器學(xué)習(xí)或深度學(xué)習(xí)的方法實(shí)現(xiàn)圖像特征提取進(jìn)而實(shí)現(xiàn)駕駛行為分類(lèi)。基于計(jì)算機(jī)視覺(jué)的方法是目前最具有前景的分心駕駛行為檢測(cè)方法[11],本文正是基于計(jì)算機(jī)視覺(jué)方法開(kāi)展駕駛行為檢測(cè)研究的。
在基于計(jì)算機(jī)視覺(jué)(computer vision, CV)方法識(shí)別分心駕駛行為的研究工作中,廣泛應(yīng)用的深度學(xué)習(xí)模型為卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks, CNN)[12-14]。CNN 的主要網(wǎng)絡(luò)構(gòu)建包括AlexNet[15]、VGG[16]、Inception[17]、ResNet[18]和Xception[19]。Xing 等[20]將分心駕駛行為分為正常駕駛、檢查后視鏡、檢查左右后視鏡、使用車(chē)載視頻設(shè)備、發(fā)短信和接聽(tīng)電話7 種類(lèi)型。首先使用高斯混合模型(GMM)對(duì)原始圖像進(jìn)行分割從背景中提取出駕駛?cè)藚^(qū)域,隨后使用AlexNet網(wǎng)絡(luò)預(yù)訓(xùn)練的CNN模型對(duì)分心駕駛行為進(jìn)行識(shí)別分類(lèi),通過(guò)這種端對(duì)端的分心駕駛行為檢測(cè)方法實(shí)現(xiàn)了7 種分心駕駛行為平均準(zhǔn)確率79%的檢測(cè)。Hssayeni 等[21]證明了在駕駛?cè)诵袨闄z測(cè)領(lǐng)域深度CNN 比支持向量機(jī)有更高的分類(lèi)精度。尹智帥等[10]通過(guò)將駕駛姿態(tài)估計(jì)網(wǎng)絡(luò)與ResNet 分類(lèi)網(wǎng)絡(luò)融合,建立了基于駕駛?cè)俗藨B(tài)估計(jì)的分心駕駛行為檢測(cè)模型。Zhang 等[22]比較了基于VGG-16 和ResNet-50 預(yù)訓(xùn)練模型的駕駛分心模型改進(jìn)訓(xùn)練的實(shí)際效果,最后利用VGG16 網(wǎng)絡(luò)構(gòu)建了駕駛分心檢測(cè)模型。Tran等[23]考慮了包括正常駕駛在內(nèi)的10 種駕駛行為,評(píng)估了基于VGG-16、AlexNet、GoogleNet 和ResNet 4 種網(wǎng)絡(luò)架構(gòu)分心駕駛行為檢測(cè)模型的準(zhǔn)確性和實(shí)時(shí)性。結(jié)果表明這4 種模型的分類(lèi)準(zhǔn)確率分別為86%、88%、89%和92%。雖然這些基于CNN 的分心駕駛行為檢測(cè)方法取得了令人鼓舞的結(jié)果,不可否認(rèn)基于CNN 的模型在常規(guī)任務(wù)中的優(yōu)越性,但是CNN 模型內(nèi)在的缺陷使分心駕駛行為檢測(cè)模型存在局限性。CNN模型擅長(zhǎng)從數(shù)據(jù)中提取局部特征,但很難捕捉全局特征信息,因此其模型結(jié)果可能會(huì)過(guò)度依賴局部信息,從而導(dǎo)致模型在一定程度上具有不可靠性。
最近,Transformer 算法在自然語(yǔ)言處理領(lǐng)域取得了卓越成績(jī),研究人員開(kāi)始嘗試將此算法應(yīng)用于CV領(lǐng)域。Transformer拋棄了傳統(tǒng)的CNN建模路線,整個(gè)網(wǎng)絡(luò)結(jié)構(gòu)完全由Attention 機(jī)制組成,其核心是多頭注意力機(jī)制。多頭注意力機(jī)制能夠抽象地理解整個(gè)圖像不同區(qū)域語(yǔ)義元素之間的關(guān)系,這就像被打亂的拼圖游戲,Transformer 通過(guò)圖片像素之間關(guān)系,依然能夠記住它們的組合順序,可以有效區(qū)分不同空間像素的重要性。2020 年,Dosovitskiy 等[24]基于Transformer 算法的位置編碼通過(guò)將一張224×224的常規(guī)圖片劃分為16×16 的圖像塊來(lái)構(gòu)建一個(gè)Tokens 序列,成功實(shí)現(xiàn)了將此算法應(yīng)用于CV 領(lǐng)域,這種變體的Transformer 算法稱(chēng)為視覺(jué)Transformer。ViT 最大程度地繼承了Transformer 的原理,能夠出色完成圖像分類(lèi)任務(wù)[25-26]。Wu 等[27]使用ResNet 作為基準(zhǔn)網(wǎng)絡(luò)來(lái)提取低級(jí)特征,并將低級(jí)特征輸入到ViT 模型中轉(zhuǎn)換為視覺(jué)Tokens,最終與圖像的分類(lèi)結(jié)果相聯(lián)系。Han 等[28]提出一種嵌套Transformer 結(jié)構(gòu),其本質(zhì)上是對(duì)第1 層Transformer 結(jié)構(gòu)變換得到的圖像塊進(jìn)行第2 次Transformer 變換,以獲取圖像更加細(xì)微的特征。在很多任務(wù)中,ViT 模型的績(jī)效已經(jīng)被證明優(yōu)于基于CNN 的模型,這表明了全局信息的重要性[29]。然而ViT 并不是完美的,由于ViT算法缺乏提取局部特征的能力,使它很難很好地從背景信息中提取前景信息?,F(xiàn)有傳統(tǒng)的ViT 模型是通過(guò)增加網(wǎng)絡(luò)參數(shù)來(lái)提高模型性能,其代價(jià)是增加了模型參數(shù)量和延長(zhǎng)了推理時(shí)間[30]。顯然,資源受限的車(chē)載平臺(tái)不適合參數(shù)量大、推理速度低的模型[31]。
為解決上述問(wèn)題,本文提出了融合CNN 的局部性、ViT 的全局性和注意力機(jī)制的Co-Td-ViT 模型,主要工作是:(1)采用卷積投影代替線性投影將輸入圖像轉(zhuǎn)換為圖像塊序列,提高圖像塊編碼的靈活性;(2)使用深度卷積來(lái)提取局部特征,增強(qiáng)相鄰Tokens在空間維度上的相關(guān)性,通過(guò)加入更多局部特征降低模型對(duì)編碼器深度的依賴,減少模型參數(shù)量,提高ViT 的性能和效率;(3)基于注意力機(jī)制理論增加了Tokens 降維模塊,并將其放在兩個(gè)Transformer 編碼器塊之間,降低Tokens 在Transformer 編碼器中傳播時(shí)的維度,減小模型計(jì)算復(fù)雜度;(4)為提高模型的訓(xùn)練性能以及泛化能力,基于遷移學(xué)習(xí)的思想使用公開(kāi)數(shù)據(jù)集對(duì)Co-Td-ViT 進(jìn)行預(yù)訓(xùn)練,然后使用實(shí)際道路試驗(yàn)數(shù)據(jù)集對(duì)模型進(jìn)行參數(shù)微調(diào),提高模型的泛化能力;(5)引入基于深度泰勒分解原理分配局部相關(guān)性的方法實(shí)現(xiàn)了Co-Td-ViT 模型注意力機(jī)制的可視化分析,從而解決端到端深度學(xué)習(xí)模型的“黑箱”問(wèn)題,增強(qiáng)模型的可解釋性;(6)最后開(kāi)展真實(shí)車(chē)輛平臺(tái)在線驗(yàn)證試驗(yàn),驗(yàn)證本文所提的分心駕駛行為檢測(cè)模型的可行性和實(shí)用性。
圖1 所示為傳統(tǒng)ViT 模型結(jié)構(gòu),由線性變換、位置編碼、類(lèi)別向量嵌入、Transformer 編碼器以及分類(lèi)器組成。線性變換是將圖片轉(zhuǎn)換為二維圖像塊序列。二維特征經(jīng)過(guò)位置編碼和類(lèi)別向量嵌入之后被稱(chēng)為T(mén)okens,其數(shù)量和維度影響模型的參數(shù)量和計(jì)算復(fù)雜度。Tokens被送入Transformer編碼器中并執(zhí)行多頭注意力機(jī)制,Transformer 編碼器塊的數(shù)量同樣影響模型參數(shù)量。用來(lái)分類(lèi)的向量被稱(chēng)為類(lèi)別Token,其從Tokens中分離出來(lái)進(jìn)入分類(lèi)器用于判斷圖像的類(lèi)別。
圖1 傳統(tǒng)ViT結(jié)構(gòu)
圖2 示出本文所提出基于ViT 改進(jìn)的Co-Td-ViT 模型的框架結(jié)構(gòu)。與傳統(tǒng)ViT 模型不同,Co-Td-ViT 模型包括了卷積圖像塊分割、位置編碼和類(lèi)別嵌入、卷積前饋層、Transformer 編碼器、Tokens 降維、MLP分類(lèi)層。下面簡(jiǎn)單介紹每個(gè)模塊的功能。
圖2 Co-Td-ViT模型結(jié)構(gòu)
(1)卷積圖片塊分割 為減小Co-Td-ViT 計(jì)算消耗,使用卷積投影替換傳統(tǒng)的線性投影來(lái)獲取圖像塊序列[32]。
(2)位置編碼和類(lèi)別向量嵌入 位置編碼的作用是將圖片塊的位置信息融入特征矩陣中,以增強(qiáng)網(wǎng)絡(luò)對(duì)于不同圖像塊的位置感以及對(duì)于圖像不同信息的感知范圍;類(lèi)別向量嵌入是在特征矩陣中增加一個(gè)可學(xué)習(xí)的類(lèi)別向量,在模型的最后被提取出來(lái)用于識(shí)別圖像的類(lèi)別。
(3)卷積前饋層 為減小模型的Transformer 編碼器的深度,降低參數(shù)量,且讓模型更易于訓(xùn)練,本文基于CNN 的平移不變性和局部性提高模型獲取底層特征的能力。具體方法是在Transformer編碼器之前添加卷積前饋層,改善模型對(duì)于底層特征的提取性能。
(4)Transformer 編碼器 來(lái)自卷積前饋層的特征被送入Transformer 編碼器中,并執(zhí)行多頭注意力機(jī)制,然后經(jīng)過(guò)層歸一化、提取類(lèi)別Token。值得說(shuō)明的是本文創(chuàng)新性地提出在Transformer編碼器塊之間添加了一個(gè)基于注意力機(jī)制的Tokens 降維模塊,從而降低模型的參數(shù)量和減小計(jì)算復(fù)雜度。
(5)Tokens 降維 送入Transformer 編碼器中Tokens的維度是影響模型參數(shù)量的重要因素。由于駕駛?cè)诵袨闄z測(cè)區(qū)域中包含大量與分心駕駛行為信息無(wú)關(guān)的特征,所以輸入到Transformer 編碼器中的部分Tokens 對(duì)于分類(lèi)分心駕駛行為沒(méi)有實(shí)際幫助,且高維Tokens經(jīng)過(guò)多頭注意力層和層歸一化會(huì)產(chǎn)生大量的計(jì)算量。為改善這一問(wèn)題,提高模型對(duì)重點(diǎn)Tokens 的關(guān)注度,本文基于注意力機(jī)制對(duì)Tokens 進(jìn)行降維,在提高模型性能的同時(shí)減少參數(shù)量。
(6)MLP 分類(lèi)層 在MLP 層中加入了全連接層FC 和SoftMax,輸入類(lèi)別Token 對(duì)分心駕駛行為進(jìn)行分類(lèi)。
經(jīng)過(guò)2D 卷積之后的特征維度變?yōu)镠i×Wi×C',其中,令Mi=Hi×Wi,然后經(jīng)過(guò)扁平化操作將三維特征轉(zhuǎn)換為二維特征。
式中:GELU 代表激活函數(shù);BN 代表批量歸一化;Concat代表向量拼接。
如圖3 所示,Transformer 編碼器由交替的多頭自注意力層和多層感知機(jī)塊(MLP)構(gòu)成。在每個(gè)模塊前應(yīng)用了層歸一化,在每個(gè)模塊后應(yīng)用殘差連接。
圖3 多頭注意力機(jī)制
多頭自注意力將查詢、鍵和值拆分為h個(gè)部分,h為多頭注意力模塊中的頭數(shù),每個(gè)頭的輸出值串聯(lián)并線性投影形成最終輸出:
MLP用于非線性特征轉(zhuǎn)換,此過(guò)程可以表示為
式中:FC代表全連接層;W和b分別為全連接層的權(quán)重和偏置;σ(·)代表激活函數(shù)。
層歸一化是Transformer 結(jié)構(gòu)的關(guān)鍵組成部分,表示為
式中:LN表示層歸一化;x為輸入;μ和δ分別為特征的平均值和標(biāo)準(zhǔn)差;°代表向量或矩陣每個(gè)元素相乘;γ和β是可學(xué)習(xí)的仿射變換參數(shù)。
令Transformer 編碼器的過(guò)程為T(mén)E(x),提取類(lèi)別Token的過(guò)程可以表示為
式中:CT 代表從Tokens 中分離出類(lèi)別Token;TE 代表Transformer編碼器。
基于注意力機(jī)制[33],創(chuàng)新性地對(duì)Tokens 進(jìn)行降維。首先引入一個(gè)隨機(jī)生成的可學(xué)習(xí)的查詢向量q∈RN×C',然后執(zhí)行以下運(yùn)算:
MLP 分類(lèi)層包括全連接層FC 和類(lèi)別分?jǐn)?shù)判別層SoftMax 函數(shù),總類(lèi)別Tokenxt最終通過(guò)MLP 層轉(zhuǎn)換為分心駕駛行為類(lèi)別分?jǐn)?shù)y:
目前的公開(kāi)駕駛?cè)诵袨閿?shù)據(jù)集大都由國(guó)外提供,其駕駛?cè)说奶卣骱婉{駛習(xí)慣與中國(guó)人存在一定差異。為進(jìn)一步彌補(bǔ)基于我國(guó)駕駛?cè)诵袨闄z測(cè)研究的空缺,本研究開(kāi)展真實(shí)駕駛環(huán)境下的駕駛?cè)诵袨閿?shù)據(jù)采集試驗(yàn)。為提高模型的泛化能力,基于遷移學(xué)習(xí)理論,首先使用大型公開(kāi)分心駕駛行為數(shù)據(jù)集對(duì)模型進(jìn)行預(yù)訓(xùn)練,然后使用實(shí)際道路試驗(yàn)數(shù)據(jù)集對(duì)模型進(jìn)行參數(shù)微調(diào),最終獲得符合我國(guó)駕駛?cè)笋{駛習(xí)慣的駕駛員行為檢測(cè)模型。
2.1.1 公開(kāi)數(shù)據(jù)集
使用大型公開(kāi)分心駕駛行為數(shù)據(jù)集SFD2[34]和AUCD2[35]對(duì)模型進(jìn)行預(yù)訓(xùn)練。每個(gè)數(shù)據(jù)集由真實(shí)駕駛場(chǎng)景下所采集的駕駛員分心圖片組成,且兩種數(shù)據(jù)集具有相同的分心駕駛行為分類(lèi)標(biāo)簽,如圖4和圖5所示。兩種數(shù)據(jù)集將分心駕駛行為劃分成10類(lèi)。合并后的數(shù)據(jù)集包含不同膚色和體型的被試共70 人,共計(jì)36902 幀圖像。按照8∶2 的比例將數(shù)據(jù)集劃分為訓(xùn)練集和驗(yàn)證集。
圖4 SFD2數(shù)據(jù)集分心駕駛行為分類(lèi)
圖5 AUCD2數(shù)據(jù)集分心駕駛行為分類(lèi)
2.1.2 實(shí)際道路試驗(yàn)分心駕駛行為數(shù)據(jù)集
為獲取符合中國(guó)人駕駛習(xí)慣的分心駕駛行為數(shù)據(jù)集,本文招募了42 名被試,基于一輛2020 款?yuàn)W迪A4L 轎車(chē)在城市道路開(kāi)展真實(shí)駕駛試驗(yàn)。試驗(yàn)過(guò)程中攝像頭的安裝位置和檢測(cè)區(qū)域如圖6所示。
圖6 攝像頭安裝位置與檢測(cè)區(qū)域
結(jié)合我國(guó)駕駛?cè)说鸟{駛情況,將分心駕駛行為劃分為包括正常駕駛和單手駕駛在內(nèi)的8 類(lèi)行為,如圖7所示。為驗(yàn)證模型的泛化能力和性能,按照不同駕駛?cè)藢?shù)據(jù)集劃分為訓(xùn)練集、驗(yàn)證集和測(cè)試集。其中28名被試的數(shù)據(jù)用作訓(xùn)練集,7名被試的數(shù)據(jù)用于模型驗(yàn)證,最后7名被試的數(shù)據(jù)用于模型測(cè)試。
圖7 實(shí)際道路試驗(yàn)數(shù)據(jù)集中駕駛?cè)诵袨榉诸?lèi)
試驗(yàn)基于一臺(tái)配置有Ubantu18.4 系統(tǒng)的服務(wù)器進(jìn)行,基于Python-Pytorch 軟件包完成模型代碼的編寫(xiě)。CPU 型號(hào)為i9-12000k,運(yùn)行內(nèi)存為64 GB;GPU 型號(hào)為GTX3090,內(nèi)存為24 GB。試驗(yàn)分兩階段進(jìn)行,第1 階段使用公開(kāi)數(shù)據(jù)集對(duì)模型進(jìn)行預(yù)訓(xùn)練,第2 階段使用實(shí)際道路試驗(yàn)數(shù)據(jù)集對(duì)模型進(jìn)行參數(shù)微調(diào)。在第1 階段結(jié)束時(shí),對(duì)預(yù)訓(xùn)練模型最后層的神經(jīng)元個(gè)數(shù)進(jìn)行修改,以適應(yīng)分心駕駛行為類(lèi)別數(shù)量的變化。
各模型及其參數(shù)設(shè)置如表1 所示。在所有模型中,ViT-2 為傳統(tǒng)ViT 模型,其保留了傳統(tǒng)ViT 模型的參數(shù)設(shè)置;ViT-1 為本文修改的淺層ViT 模型,相比于傳統(tǒng)ViT 具有更少的編碼器塊、多頭注意力機(jī)制的頭數(shù)以及MLP 節(jié)點(diǎn)個(gè)數(shù);Co-ViT 為ViT-1 基礎(chǔ)上增加了卷積優(yōu)化模塊的模型;Td-ViT 為ViT-1 基礎(chǔ)上增加了Tokens 降維模塊。在模型參數(shù)中,Layer是Transformer 編碼器塊的數(shù)量,F(xiàn)TN 為降維前Tokens 的數(shù)量,BTN 為降維后Tokens 的數(shù)量,Hidden size 是每個(gè)Token 的長(zhǎng)度,MLP size 是Transformer 編碼器中第一個(gè)全連接的節(jié)點(diǎn)個(gè)數(shù),Heads代表多頭注意力模塊中頭的數(shù)量,L1為T(mén)okens降維模塊之前的編碼器塊的數(shù)量,L2是Tokens 降維模塊之后的編碼器塊的數(shù)量。在預(yù)訓(xùn)練階段,所有模型均執(zhí)行200 次Epoch,批處理大小為32,使用動(dòng)量?jī)?yōu)化方法,動(dòng)態(tài)學(xué)習(xí)率初始值為0.001。在參數(shù)微調(diào)階段中,所有模型的Epoch均設(shè)置為30次,批處理大小為32,使用動(dòng)量?jī)?yōu)化方法,動(dòng)態(tài)學(xué)習(xí)率的初始值為0.001。
表1 各模型參數(shù)設(shè)置
本文所研究的分心駕駛行為檢測(cè)問(wèn)題本質(zhì)上是圖像分類(lèi)問(wèn)題,為準(zhǔn)確評(píng)價(jià)模型性能,使用深度學(xué)習(xí)領(lǐng)域常用的交叉熵?fù)p失和混淆矩陣評(píng)價(jià)模型。交叉熵?fù)p失用于評(píng)價(jià)模型訓(xùn)練過(guò)程中訓(xùn)練集和驗(yàn)證集的性能,混淆矩陣用于評(píng)價(jià)模型在測(cè)試集上的分類(lèi)性能。
(1)交叉熵?fù)p失
交叉熵?fù)p失經(jīng)常用來(lái)衡量深度神經(jīng)網(wǎng)絡(luò)輸出和標(biāo)簽的差異[36-37],然后利用這種差異反向傳播優(yōu)化模型參數(shù)。其主要原理是評(píng)價(jià)實(shí)際輸出結(jié)果(概率分布)和期望輸出(概率分布)的接近程度,兩個(gè)概率分布越接近,交叉熵值越小,其表達(dá)式表示為
式中:p為期望輸出概率分布;q為實(shí)際輸出概率分布。
(2)混淆矩陣
混淆矩陣是用來(lái)總結(jié)一個(gè)分類(lèi)器結(jié)果的矩陣[38-39],它既可以反映總體的分類(lèi)精度,又可以反映不同類(lèi)別各自的分類(lèi)精度,且可以直觀了解正確分類(lèi)和錯(cuò)誤分類(lèi)的比例。對(duì)于n元分類(lèi)任務(wù),混淆矩陣就是一個(gè)n×n的矩陣。對(duì)于典型的二元分類(lèi)任務(wù),常用的評(píng)價(jià)指標(biāo)包括準(zhǔn)確度Acc,精確度P,召回率R以及F1分?jǐn)?shù),各評(píng)價(jià)指標(biāo)定義如下:
式中:TP為真陽(yáng)性,代表預(yù)測(cè)為陽(yáng)性的樣本數(shù)量;TN為真陰性,代表預(yù)測(cè)為陰性的樣本數(shù)量;FP為假陽(yáng)性,代表預(yù)測(cè)為陽(yáng)性的陰性樣本數(shù)量;FN為假陰性,代表預(yù)測(cè)為陰性的陽(yáng)性樣本數(shù)量。對(duì)于圖像多分類(lèi)問(wèn)題,常用各指標(biāo)在各類(lèi)別下的平均值來(lái)評(píng)價(jià)分類(lèi)性能,即mAcc、mP、mR以及mF1。
為驗(yàn)證所提模型的優(yōu)異性能,開(kāi)展對(duì)比試驗(yàn)和消融試驗(yàn)。對(duì)比試驗(yàn)中,將Co-Td-ViT 與基于CNN的DenseNet、ResNet-101、EfficientNet、Inception-v4模型以及基于Transformer 的Swin 模型進(jìn)行對(duì)比。在消融試驗(yàn)中,將Co-Td-ViT 與Td-ViT、CoViT、ViT-1、ViT-2 進(jìn)行對(duì)比以驗(yàn)證卷積前饋層和Tokens降維方法的有效性。對(duì)比試驗(yàn)和消融試驗(yàn)中所有模型均經(jīng)過(guò)預(yù)訓(xùn)練和參數(shù)微調(diào)兩個(gè)階段的訓(xùn)練過(guò)程。在分析過(guò)程中,首先對(duì)比了在參數(shù)微調(diào)階段訓(xùn)練集和驗(yàn)證集的損失及精度隨迭代次數(shù)的變化情況;然后使用評(píng)價(jià)參數(shù)mAcc、mP、mR、mF1以及混淆矩陣對(duì)模型在測(cè)試集上的性能進(jìn)行對(duì)比;最后考慮到車(chē)載平臺(tái)資源的限制性,對(duì)比了各模型處理圖像的幀率以及參數(shù)量,比較哪種模型更適用于車(chē)載平臺(tái)。
3.1.1 對(duì)比試驗(yàn)
對(duì)比試驗(yàn)結(jié)果如圖8、圖10 和表2~表4 所示。圖8 表示各模型在微調(diào)階段訓(xùn)練集和驗(yàn)證集的精度及損失隨Epoch 次數(shù)的變化情況;圖10 示出各模型的混淆矩陣;表2 列出了模型的所有評(píng)價(jià)指標(biāo)結(jié)果;表3 和表4 分別給出模型的精確度和召回率。總結(jié)以上結(jié)果可以得出:
表2 不同模型性能對(duì)比
表3 各模型P和mP
表4 各模型R和mR
圖8 對(duì)比試驗(yàn)參數(shù)微調(diào)過(guò)程對(duì)比
圖9 消融試驗(yàn)參數(shù)微調(diào)過(guò)程對(duì)比
圖10 各模型的混淆矩陣
(1)Co-Td-ViT 模型在訓(xùn)練集和驗(yàn)證集上的性能都超過(guò)了CNN 模型和Swin,訓(xùn)練集的損失和精度分別為0.08 和0.973,驗(yàn)證集損失和精度分別為0.104和0.958。
(2)相比于其它模型,Co-Td-ViT 模型在測(cè)試集上的性能最高,其mAcc為96.93%,相比于DenseNet提高了0.62%。同時(shí),模型的P、R以及混淆矩陣顯示所提Co-Td-ViT 模型對(duì)于每種分心駕駛行為的識(shí)別準(zhǔn)確度均最高,其mP和mR均為96.95%。此外,各模型對(duì)于單手駕駛的識(shí)別準(zhǔn)確性均較差,Co-Td-ViT 錯(cuò)誤識(shí)別單手分心駕駛行為的個(gè)數(shù)為12,低于其它模型。
(3)從表2 可以看出,Co-Td-ViT 模型除具有最高的mAcc、mP、mR、mF1外,還具有更高的推理速度和最小的參數(shù)量,相比ResNet-101 參數(shù)量減少了21.30 M,推理速度提升了96.56 fps,證明了Co-Td-ViT更適用于分心駕駛行為的實(shí)時(shí)檢測(cè)。
3.1.2 消融試驗(yàn)
消融試驗(yàn)結(jié)果如圖9、圖10 和表5~表7 所示,總結(jié)以上結(jié)果可以得出:
表5 不同模型性能對(duì)比
表6 各模型P和mP
表7 各模型R和mR
(1)相比于Td-ViT 和Co-ViT,Co-Td-ViT 分別增加了卷積前饋層和Tokens 降維模塊,雖然參數(shù)量相比于CoViT和Td-ViT分別增加了2.43和20.61 M,然而模型的性能改善顯而易見(jiàn)。Co-Td-ViT 的訓(xùn)練集損失相比于Co-ViT 和Td-ViT 分別減少了0.017和0.053,訓(xùn)練集的精度分別增加了0.013和0.018。在驗(yàn)證集上同樣表現(xiàn)出性能的提升。Co-ViT 相比于ViT-1 訓(xùn)練集和驗(yàn)證集的損失分別減少了0.088和0.083,訓(xùn)練集和驗(yàn)證集的精度分別增加了0.023和0.029,證明提出的卷積優(yōu)化方法能夠幫助模型提高局部特征的提取能力;Td-ViT 相比于ViT-1 訓(xùn)練集和驗(yàn)證集的損失分別減少了0.025 和0.047,訓(xùn)練集和驗(yàn)證集的精度分別增加了0.008 和0.017,模型的參數(shù)量減少了2.45 M,證明提出的Tokens 降維方法能夠在降低參數(shù)量的同時(shí)提高模型的性能。
(2)Co-Td-ViT 同樣在測(cè)試集上表現(xiàn)出最佳性能,各模型的P、R以及混淆矩陣表明所提Co-Td-ViT 可以降低模型對(duì)于每種分心駕駛行為的錯(cuò)誤預(yù)測(cè)的個(gè)數(shù)。
(3)從表5 可以看出,Co-Td-ViT 模型具有最高的mAcc、mP、mR、mF1,相比于Co-ViT、Td-ViT、ViT-1 和ViT-2,mAcc分別提高了2%、2.53%、4.16%和3.54%。然而由于增加了優(yōu)化模塊,使模型的推理速度有所降低,模型的參數(shù)量相比于ViT-1 模型增加了0.32 M,推理速度下降了12.33 fps;相比于Td-ViT增加了2.77 M,推理速度降低了34.82 fps。
3.2.1 Co-Td-ViT注意力區(qū)域分析
如圖11 所示,對(duì)于雙手分心行為,Co-Td-ViT的注意力集中在兩只手上,而在駕駛?cè)藛问竹{駛時(shí),注意力可以準(zhǔn)確關(guān)注到在轉(zhuǎn)向盤(pán)上的右手或左手(圖11(h));當(dāng)駕駛?cè)耸褂檬謾C(jī)或喝水時(shí),注意力集中在手機(jī)或水瓶上(圖11(b)、(c)、(e)、(f));當(dāng)駕駛?cè)瞬僮髦锌叵到y(tǒng)時(shí),注意力集中到中控區(qū)域(圖11(d));當(dāng)駕駛?cè)嘶仡^和后排乘客聊天時(shí),注意力更多地集中到了人的臉部(圖11(g))。另外,Co-Td-ViT可以區(qū)分不同關(guān)鍵信息的重要性,在雙手駕駛(圖11(a))的樣本3 中,注意力準(zhǔn)確地聚焦到駕駛員的雙手上,沒(méi)有受到手機(jī)的干擾;在看手機(jī)(圖11(b))的樣本1 中,Co-Td-ViT 的注意力準(zhǔn)確地關(guān)注到手機(jī)位置;在操控中控系統(tǒng)(圖11(d))的樣本2 中,注意力沒(méi)有受亮屏手機(jī)的干擾;在喝水動(dòng)作(圖11(e))的樣本2中,注意力集中到手和瓶子相關(guān)聯(lián)的部分,沒(méi)有受儲(chǔ)物格中水瓶的干擾。由此可見(jiàn)Co-Td-ViT 的注意力機(jī)制能夠有效區(qū)分不同像素區(qū)域的重要性。
圖11 Co-Td-ViT注意力區(qū)域在試驗(yàn)數(shù)據(jù)集上的可視化
3.2.2 各模型注意力區(qū)域?qū)Ρ确治?/p>
為解析模型識(shí)別結(jié)果,將不同模型的注意力區(qū)域進(jìn)行對(duì)比。首先隨機(jī)抽取每種駕駛行為中的一張圖片(圖12(a)),并輸入到模型中,然后對(duì)每個(gè)模型的注意力區(qū)域進(jìn)行可視化分析。試驗(yàn)結(jié)果如圖12所示。得益于多頭注意力機(jī)制以及ViT 模型表達(dá)全局信息的能力,所提的Co-Td-ViT 模型(圖12(b))的注意力能夠完全捕捉駕駛?cè)说男袨樘卣鳎谊P(guān)注的區(qū)域相對(duì)更加集中和精細(xì)。對(duì)比CNN 模型(圖12(c)~圖12(f)),雖然也能夠捕捉到主要特征,但注意力比較分散,例如圖12(d)樣本1,圖12(e)樣本3、4、7,圖12(f)樣本4、7,且存在注意力分配錯(cuò)誤的現(xiàn)象(圖12(c)樣本7、8,圖12(d)樣本7,圖12(e)樣本7、8,圖12(f)樣本4、7、8)。Swin 模型的注意力區(qū)域相對(duì)集中,但注意力分配錯(cuò)誤的情況較多(圖12(g)樣本1、7、8),綜上,所提Co-Td-ViT 模型特征識(shí)別和提取能力相比于對(duì)比的CNN 模型和Swin 模型更強(qiáng)。
圖12 各模型注意力區(qū)域可視化
為驗(yàn)證本文提出的Co-Td-ViT 模型的實(shí)時(shí)推理性能,基于實(shí)車(chē)平臺(tái)進(jìn)行在線分心駕駛行為識(shí)別。硬件平臺(tái)為一臺(tái)GPU 型號(hào)為GTX 1050ti 的筆記本電腦。試驗(yàn)中要求被試在一段時(shí)間內(nèi)完成用手機(jī)導(dǎo)航、操作中控以及看手機(jī)的動(dòng)作。試驗(yàn)結(jié)果如圖13所示,圖中不同顏色的曲線代表不同分心駕駛行為的識(shí)別概率隨圖像幀數(shù)的變化情況。可以看出Co-Td-ViT 能夠準(zhǔn)確識(shí)別每種動(dòng)作,且每種動(dòng)作的識(shí)別概率變化較為平穩(wěn),在兩種動(dòng)作之間概率值波動(dòng)較大,這可能是因?yàn)樵趧?dòng)作切換的過(guò)程中包含了沒(méi)有訓(xùn)練到的動(dòng)作類(lèi)型,從而導(dǎo)致了識(shí)別錯(cuò)誤。試驗(yàn)中得到模型的在線推理速度為23.32 fps,能夠滿足實(shí)時(shí)性檢測(cè)的要求。因此,Co-Td-ViT 模型能夠?qū)崟r(shí)地、高精度地識(shí)別分心駕駛行為。
圖13 分心駕駛行為識(shí)別概率曲線
以分心駕駛行為檢測(cè)為出發(fā)點(diǎn),引入ViT 算法,提出了一種基于深度卷積與Tokens 降維的ViT 模型用于分心駕駛行為實(shí)時(shí)檢測(cè),改善了ViT 算法不善于捕捉局部特征和模型參數(shù)量較大的問(wèn)題?;贑NN 的平移不變性和局部性特點(diǎn),在Transformer 編碼器之前添加卷積前饋層,以此來(lái)增強(qiáng)模型對(duì)底層特征的獲取能力;首次在Transformer 編碼器塊之間添加了基于注意力機(jī)制的Tokens 降維模塊,提高了模型對(duì)重點(diǎn)Tokens 的關(guān)注度,在改善模型性能的同時(shí)減少了模型的參數(shù)量?;谶w移學(xué)習(xí)的思想,通過(guò)預(yù)訓(xùn)練和參數(shù)微調(diào)兩階段的模型訓(xùn)練過(guò)程提高了模型的泛化性能。通過(guò)與現(xiàn)有模型的對(duì)比試驗(yàn)、消融試驗(yàn)以及模型注意力區(qū)域可視化分析,對(duì)Co-Td-ViT模型進(jìn)行了驗(yàn)證。
對(duì)比試驗(yàn)結(jié)果表明:Co-Td-ViT 相比于CNN 模型和傳統(tǒng)ViT 模型具有性能優(yōu)勢(shì),通過(guò)對(duì)比模型參數(shù)量和推理速度證明了Co-Td-ViT 模型具有較強(qiáng)的實(shí)時(shí)檢測(cè)性能。消融試驗(yàn)結(jié)果表明:所提的卷積優(yōu)化方法和Tokens 降維方法是有效的。此外,通過(guò)注意力區(qū)域的可視化分析探究了端到端“黑箱”模型的注意力機(jī)制,Co-Td-ViT 模型能夠區(qū)分不同像素區(qū)域的重要性,相比于CNN 模型能將更多注意力集中到駕駛?cè)说膭?dòng)作關(guān)鍵信息上。最后,基于真實(shí)車(chē)輛平臺(tái)在線驗(yàn)證的結(jié)果表明所提的Co-Td-ViT 模型能夠準(zhǔn)確實(shí)時(shí)地檢測(cè)駕駛?cè)诵袨椤?/p>