張 斌,付俊怡,夏金祥
(1. 電子科技大學信息與軟件工程學院,成都 610051;2. 中國地質(zhì)大學(武漢)經(jīng)濟管理學院,武漢 430000)
分心駕駛行為,如使用手機、吃東西、與乘客聊天、調(diào)整中控等,會引起大量的交通事故。美國高速公路安全管理局的數(shù)據(jù)顯示,僅2019年美國就有3142 人因駕駛員分心駕駛在車禍中喪生,約424000人受傷,因此分心駕駛行為識別研究對保障人民生命財產(chǎn)安全具有重要意義,同時也是高級輔助駕駛系統(tǒng)(advanced driving assistance system,ADAS)的一個研究熱點。目前的分心駕駛行為識別方法可以分為以下3類:
(1)基于駕駛員體征的分心駕駛行為識別方法;
(2)基于視頻流的分心駕駛行為識別方法;
(3)基于單幀圖像的分心駕駛行為識別方法。
基于駕駛員體征的分心駕駛行為識別方法要求駕駛員穿戴各種體征傳感器,通過讀取駕駛員的體征信號,如EEG 信號等,來識別駕駛員是否有分心駕駛行為。此類方法只能識別疲勞駕駛之類的行為,且會影響駕駛員的駕駛體驗。
基于視頻流的分心駕駛行為識別方法要求在車內(nèi)部署攝像頭,一次性提取多幀的圖像信息來進行行為識別。文獻[5]中使用3D 卷積識別動作,3D 卷積相對于2D 卷積多出1 個通道,可以一次性對多幀進行處理;文獻[6]中使用Kinect設備來提取視頻幀中駕駛員的骨架圖,然后將多幀的骨架圖序列送入圖神經(jīng)網(wǎng)絡完成分心駕駛行為分類;文獻[7]中采用基于空間信息的卷積神經(jīng)網(wǎng)絡模型和基于時間光流信息的卷積神經(jīng)網(wǎng)絡模型共同識別分心駕駛行為。這些方法雖然取得了很好的效果,但是要求模型一次性處理多幀的圖像,對終端設備的計算能力有極高的要求。
基于單幀圖像的分心駕駛行為識別方法將分心駕駛行為識別任務轉(zhuǎn)化為駕駛圖像分類任務,通過采集單張圖像判別駕駛員的動作。由于模型一次僅處理一幀圖像,對終端設備的算力要求不高,本文所提改進方法屬于該類。
當前圖像分類方法不斷進行改進。文獻[8]中首先使用一個區(qū)域提取網(wǎng)絡(region proposal network,RPN)來提取圖像中與駕駛行為有關(guān)的ROI(region of interests),然后再使用卷積神經(jīng)網(wǎng)絡對ROI 進行分類,排除了無關(guān)區(qū)域的干擾。文獻[9]中提出雙注意力卷積神經(jīng)網(wǎng)絡(double attention convolutional neural network,DACNN),通過在卷積神經(jīng)網(wǎng)絡中添加注意力模塊,使模型更好地關(guān)注重要區(qū)域的特征。文獻[10]中提出了一種模型融合方法(hybrid CNN framework,HCF),將3 個高性能的卷積神經(jīng)網(wǎng)絡模型融合,使用融合后的模型來對駕駛圖像分類。本文在2.1 節(jié)中將所提類間距優(yōu)化方法與DACNN、HCF這兩種典型方法進行對比。
與圖像分類的通常方法相比,這些改進方法在提高識別準確率的同時,在模型中添加了其他模塊,增加了模型的推理時延,在一定程度上降低了實時性。
與上述文獻[8]~文獻[10]不同,本文提出的基于類間距優(yōu)化的分心駕駛行為識別模型訓練方法,不是對模型結(jié)構(gòu)進行優(yōu)化,而是對模型的訓練過程進行優(yōu)化。雖然該方法對模型進行了略微修改,需要模型同時輸出預測值與特征向量,但是并未添加任何模塊,因此不增加模型的推理時延,保證了實時性。
在細粒度圖像分類方法中,文獻[11]中提出了Part-RCNN 方法,該方法首先提取出圖像中一些重要的區(qū)域,然后使用RCNN 算法對這些區(qū)域進行進一步處理,綜合所有區(qū)域的信息最后得出該圖像的類別,然而該方法要求額外的監(jiān)督信息(需要對圖像中重要區(qū)域的位置進行標注)。文獻[12]中提出了雙線性卷積神經(jīng)網(wǎng)絡,該網(wǎng)絡中含有兩個卷積神經(jīng)網(wǎng)絡,其中一個網(wǎng)絡用來提取位置信息,一個網(wǎng)絡用于提取內(nèi)容信息,這兩個信息都用向量表示,最后對這兩個向量的外積使用softmax 函數(shù)完成分類。雖然該網(wǎng)絡取得了很好的效果且不需要額外的監(jiān)督信息,但是該網(wǎng)絡在訓練與推理時的計算開銷極大。文獻[13]中的方法與本文類似,應用在細粒度車輛圖像分類領(lǐng)域,該方法在訓練過程中引入了類間特征向量的距離損失,然而該損失函數(shù)使用的是triplet loss,一次反向傳播要求輸入3 個樣本(2 個同類樣本,1 個異類樣本),由于triplet loss 需要二分類的標簽,當分類任務的類別大于2 時,需要構(gòu)造標簽結(jié)構(gòu)樹,也就引入額外的監(jiān)督信息。相較于文獻[11]~文獻[13],本文提出的方法既不引入額外的監(jiān)督信息,又不增加模型推理時的計算開銷。
分心駕駛行為識別也可以看作為一個細粒度圖像分類任務,即圖像中一小部分區(qū)域決定了該圖像的類別。如圖1 所示,一張圖像是正常駕駛還是與副駕駛聊天完全由駕駛員的臉部朝向來決定。對于類似的這種圖像差異很小的類別,按照圖像分類通常訓練方法得到的模型無法實現(xiàn)高準確率的分類。針對這一問題,本文借鑒了FaceNet與原型網(wǎng)絡的思想,提出了基于類間距優(yōu)化的訓練方法。
圖1 正常駕駛和與副駕聊天
FaceNet 將每一張人臉圖像轉(zhuǎn)化為一個特征向量(通常由卷積神經(jīng)網(wǎng)絡最后一個卷積層的輸出經(jīng)過全局平均池化得到),并在訓練時要求不同人臉的特征向量之間的距離大于一定閾值,來強迫模型學習到不同人臉間細微的區(qū)別。因此,增大不同類的特征向量之間的距離,可以提高模型對那些圖像差異很小的類別的分類準確率。由于FaceNet 使用的triplet loss 僅適用于二分類任務,因此在訓練時,對于特征向量的優(yōu)化,采用原型網(wǎng)絡的損失函數(shù)。模型訓練完畢后本文還使用CAM 圖(class activation mapping)對模型進行解釋。
本文的主要創(chuàng)新點如下。
(1)通過繪制混淆矩陣與特征向量經(jīng)過PCA(主成分分析)降維的散點圖,得出以下結(jié)論:對于容易混淆的兩類分心駕駛行為,模型對這兩類圖像提取的特征向量之間的距離過小是導致容易混淆的原因?;谏鲜鼋Y(jié)論,本文中將類間距優(yōu)化的思想應用于分心駕駛行為識別場景。
(2)提出了基于類間距優(yōu)化的分心駕駛行為識別模型訓練方法,該方法在一次反向傳播過程中,同時對模型預測值與特征向量進行優(yōu)化,實現(xiàn)了端到端的訓練。該方法通過提高模型對那些圖像差異很小的類別(易混淆類)的分類準確率,進而提高總體的準確率,既不增加模型的推理時延,又不引入額外監(jiān)督信息。
為了探究模型無法高精度地區(qū)分圖像差異很小的類別的原因,本文中使用公開的分心駕駛行為識別State Farm 數(shù)據(jù)集(部分樣本見圖2)進行實驗,State Farm 數(shù)據(jù)集為2015年State Farm 公司在kaggle平臺上舉辦的駕駛行為圖片分類比賽所使用的數(shù)據(jù)集,包含10 類分心駕駛動作:正常駕駛、左手打電話、右手打電話、左手玩手機、右手玩手機、調(diào)整中控、化妝、側(cè)身取物、喝水、與副駕聊天。為了方便試驗,本文對數(shù)據(jù)集進行了裁剪,在State Farm 數(shù)據(jù)集中選取每類1000 張組合成10 類共10000 張樣本的測試集,另選取每類200張組合成為10類共2000張樣本的訓練集。
圖2 State Farm數(shù)據(jù)集部分樣本
本文使用通常的圖像分類訓練方法和基于類間距優(yōu)化的訓練方法分別訓練CNN 模型(見2.1 節(jié)),訓練好的模型分別標記為模型X 和模型Y。CNN 模型選用MobileNetV2,其原因是車載設備算力有限,只能選擇輕量級的卷積神經(jīng)網(wǎng)絡模型,而MobileNetV2正是目前使用最廣泛的輕量級模型。
模型在測試集上的混淆矩陣如圖3所示,0~9標簽分別表示正常駕駛、左手打電話、右手打電話、左手玩手機、右手玩手機、調(diào)整中控、化妝、側(cè)身取物、喝水、與副駕聊天,圖3(a)為模型X在測試集上的混淆矩陣,圖3(b)為模型Y在測試集上的混淆矩陣。
通過圖3(a)可知,有195 張正常駕駛的測試樣本被誤判為與副駕聊天,這類誤判也是模型X 最容易混淆的一類(圖3(a)中195 是除對角線以外最大的數(shù)),本文中使用模型X提取所有正常駕駛和與副駕聊天這兩類測試樣本的特征向量(特征向量為CNN 全局平均池化層的輸出,詳見圖5),并使用PCA 將特征向量降到2 維,如圖4(a)所示,圓點代表正常駕駛樣本的特征向量,三角點代表與副駕聊天樣本的特征向量。
圖3 模型在測試集上的混淆矩陣
圖4 模型對正常駕駛和與副駕聊天兩類樣本提取特征向量的PCA降維散點圖
從圖4(a)中可見,圓點與三角點之間并沒有清晰的邊界,尤其是正中間的一些點混在一起,模型X對正常駕駛和與副駕聊天兩類樣本提取的特征向量都容易混淆,更不可能使用這些特征向量完成高精度的分類。相對而言,本文提出的基于類間距優(yōu)化的訓練方法在訓練時就要求增強不同類別樣本的特征向量之間的距離,如圖4(b)所示,使用模型Y提取的兩類特征向量雖然還是有一些混淆,但是大體上已經(jīng)呈現(xiàn)左右兩個分布,因此在圖3(b)模型Y 的混淆矩陣中,與圖3(a)相比,模型混淆正常駕駛和與副駕聊天這兩類的樣本數(shù)量已經(jīng)大幅下降(195+22 下降到89+60)。
本文提出的基于類間距優(yōu)化的訓練方法如圖6所示,在一次反向傳播的過程中,本文的訓練方法要求輸入一個-way、-shot的支持集:
圖6 基于類間距優(yōu)化的訓練方法示意圖
一個個樣本的查詢集:
查詢集的樣本與支持集的樣本沒有重疊,這與原型網(wǎng)絡的輸入一致。與原型網(wǎng)絡不同的是,原型網(wǎng)絡僅對模型輸出的特征向量進行優(yōu)化,而本文所提方法還需要對預測值進行優(yōu)化(使預測值貼近標簽)。因此本文對CNN 模型進行了修改,使得該CNN模型不僅輸出特征向量,還輸出預測值,這樣給定一張圖片,模型就可以輸出其預測值與特征向量,修改后的CNN 模型如圖5 所示(CNN 模型具體為MobileNetV2,包含上百層,中間層沒有繪制)。
圖5 輸出特征向量與預測值的CNN模型示意圖
本文所提的訓練方法包括3 個損失函數(shù):、、,總的損失函數(shù)記為(,,),其計算公式如下:
式中:表示CNN 模型的參數(shù);為超參數(shù);表示計算的函數(shù),用于優(yōu)化特征向量;表 示 計 算的 函 數(shù);表 示 計算的函數(shù),這兩個損失用于優(yōu)化預測值,使預測值貼近標簽。如果去掉,那么本文的改進方法可視為輸入batch size 為的圖像分類的通常方法。下面分別介紹這3 個損失函數(shù)。
1.2.1
為優(yōu)化特征向量所用的損失函數(shù),計算步驟如下。
(1)首先提取支持集所有樣本的特征向量,由于支持集是-way、-shot 的,對每一類樣本的特征向量進行平均,可以得到個原型。其公式如下:
式中:S為支持集中標簽為的所有樣本的集合;p為該類特征向量的原型;h(x)表示對一樣本x提取特征向量;為CNN模型的參數(shù)。
(2)對于查詢集的任意一個樣本x,僅使用其特征向量與每個原型之間的歐式距離進行預測,預測的函數(shù)記為θ(x,),具體公式如下:
(3)平均查詢集所有樣本的預測值與標簽的交叉熵即為,其公式如下:
式中為交叉熵函數(shù)。
1.2.2&
、為圖像分類的通常訓練方法所用的損失函數(shù),其公式如下:
式中f(x)表示模型對樣本x進行預測的函數(shù)。
為驗證基于類間距優(yōu)化的訓練方法的有效性,本文在State Farm 數(shù)據(jù)集上構(gòu)造了3 個不同大小的訓練集來進行模型訓練。3個訓練集如表1所示,測試集與1.1節(jié)中所使用的保持一致。
表1 使用數(shù)據(jù)集情況
本文定義圖像分類的通常訓練方法為式(8),其中訓練集為={(,),(,),...,(x,y)};表示交叉熵;f(x)表示模型對樣本x的預測值,表示模型的參數(shù)。
在上述3個訓練集上進行3次對照試驗,在每一次對照試驗中分別使用4 種方法訓練一個MoibleNetV2 模型,訓練完畢后,測試模型在測試集上的準確率。4 種方法分別為:圖像分類通常訓練方法(記作baseline)、DACNN、HCF和基于類間距優(yōu)化的訓練方法。具體設置如下。
baseline:batch size=100,優(yōu)化器Adam,epoch=40。前30 個epoch 設 置 學 習 率=3×10;后10 個epoch設置學習率=3×10,不使用數(shù)據(jù)增強。
DACNN:batch size=100,優(yōu)化器Adam,epoch=40。前30 個epoch 設 置 學 習 率=3×10;后10 個epoch設置學習率=3×10,不使用數(shù)據(jù)增強。
HCF: 選 用 MobileNetV2、 ResNet50與Xception進行 模 型融 合,dropout rate=0.5,batch size=100,優(yōu)化器Adam,epoch=40。前30 個epoch 設置學習率=3×10;后10個epoch設置學習率=3×10,不使用數(shù)據(jù)增強。
基于類間距優(yōu)化的方法:支持集與查詢集均為10-way,5-shot,優(yōu)化器Adam,epoch=40。前30 個epoch設置學習率=3×10,=0.1;后10個epoch設置學習率=3×10,=10,不使用數(shù)據(jù)增強。
3次對照實驗結(jié)果如表2所示。
表2 3次對照實驗結(jié)果
由表2 可知,在對照實驗3 中,所有方法的準確率提升都不明顯,這是因為測試集中有些駕駛員并未在訓練集中出現(xiàn),96%左右的準確率已經(jīng)是模型的上限。
在任意一次對照實驗中,本文中所提方法的準確率提升均超過了DACNN,且DACNN 添加的注意力模塊會增加模型推理的計算開銷,而本文所提方法在模型推理時不增加任何計算開銷。在對照實驗1 與對照實驗2 中,DACNN 的表現(xiàn)甚至不如baseline,這可能是因為訓練數(shù)據(jù)不夠,導致其注意力過擬合所致。
在對照實驗1與對照實驗2中,本文所提方法的準確率提升也超過了HCF,雖然在對照實驗3 中,HCF 的準確率提升略微超過了本文所提方法,但是HCF 是將3 個模型融合在一起,其模型推理的計算開銷成倍增加,難以真正的部署。相比之下,本文所提方法在模型推理時不增加任何計算開銷,具有更高的應用價值。
綜上,本文所提方法在3 次對照實驗中準確率均優(yōu)于DACNN,與HCF相比,亦具有相當大的優(yōu)勢。
本文將對照實驗1 中使用圖像分類通常訓練方法和基于類間距優(yōu)化的訓練方法分別訓練好的模型分別標記為模型X和模型Y(與1.1節(jié)一致),將對照實驗2 中使用圖像分類通常訓練方法和基于類間距優(yōu)化的訓練方法分別訓練好的模型分別標記為模型E和模型F。
使用模型X、模型Y、模型E、模型F 分別提取測試集所有樣本的特征向量,使用PCA 將這些特征向量壓縮至2 維,不同類的特征向量使用不同顏色區(qū)分,如圖7所示。
觀察圖7 可知,圖7(b)中每類特征向量之間的距離相較于圖7(a)中要大了很多,圖7(d)中每類特征向量之間的距離部分相較于圖7(c)中要大了很多,這樣在全連接層進行分類時,輸入全連接層的每類特征向量的相似度變小,全連接層可更好地分類,模型的準確率也會更高。
圖7 模型所提取特征向量的PCA散點圖
為了更好說明本文所提出的基于類間距優(yōu)化的訓練方法的有效性,將模型Y 與模型X 通過繪制一些樣本(取模型X 錯誤分類但是模型Y 正確分類的樣本)的熱力圖來進行對比,對比結(jié)果如圖8(a)所示。
人類識別駕駛員是否正常駕駛主要關(guān)注圖中駕駛員手臂是否伸直,駕駛員雙手是否握住轉(zhuǎn)向盤等信息,而模型X對于某些正常駕駛樣本,其關(guān)注點在背部、頭部,這顯然是關(guān)注區(qū)域錯誤,相比之下模型Y就可以關(guān)注到同樣的樣本中正確的位置。
人類識別駕駛員是否在與副駕駛聊天主要關(guān)注駕駛員的頭部朝向,而模型X 對于某些與副駕駛聊天的樣本,其關(guān)注點在手部,這顯然是因為模型沒有學到頭部的細微特征,從而無法區(qū)分正常駕駛和與副駕聊天這兩類樣本,相比之下模型Y 就可以關(guān)注到駕駛員的頭部位置,這得益于基于類間距優(yōu)化的訓練方法在訓練模型Y 時要求這兩類樣本特征向量之間保持一定距離。
模型E與模型F對一些樣本的CAM圖如圖8(b)所示,不難發(fā)現(xiàn)模型F比模型E的關(guān)注點更加準確。
圖8 模型對一些樣本的CAM圖
2.4.1 訓練時額外計算開銷分析
本文所提方法與圖像分類的通常方法相比需要額外計算,本文通過測試添加了后較未添加前模型一次反向傳播所需時間的變化來定量評價本文所提方法的額外計算開銷,測試結(jié)果如表3所示。
表3 反向傳播時間對比
該測試在NVIDIA Tesla K8024GB RAM 顯卡上進行。圖像分類的通常方法設置batch size 為100,本文所提方法設置支持集10-way,5-shot,查詢集50張樣本,保持兩種方法batch size一致。
由表3可知,添加了后,僅增加了7 ms的反向傳播時間,不足原反向傳播時間的1%,可見本文所提方法的額外計算開銷很小。
2.4.2 推理時額外計算開銷分析
在推理時,給定一張樣本作為輸入,模型會輸出該樣本的預測值與特征向量,僅取預測值即可(特征向量僅在訓練時計算使用)。由于本文所提方法未在模型中添加任何模塊,所以不增加任何額外計算開銷。
本文將分心駕駛行為識別轉(zhuǎn)換為一個細粒度圖像分類任務。圖像分類通常訓練方法所訓練的模型,對于一些圖像差異較小的類別無法實現(xiàn)高精度的分類,其原因是模型對這兩類圖像提取的特征向量之間的距離過小。為了解決上述問題,提高模型的分類準確率,本文中提出了基于類間距優(yōu)化的訓練方法。該方法通過增大模型從異類圖像中提取特征向量之間的歐式距離,使得模型學到可以區(qū)分那些圖像差異很小的類別的細微特征,進而提高模型對這些類別的分類準確率。但是該方法對訓練集與測試集的同分布程度要求較高,若兩者分布差異過大則無法取得好的效果,后期希望對模型進行一些改進。