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