符廣,劉彥隆,劉建霞
(太原理工大學(xué)信息與計算機學(xué)院,山西晉中 030600)
目標檢測具有廣泛的應(yīng)用潛力,是深度學(xué)習(xí)的核心領(lǐng)域[1],而車輛檢測是目標檢測的重要應(yīng)用,其檢測的速度與準確度對智能交通、無人駕駛等領(lǐng)域的發(fā)展至關(guān)重要。基于深度學(xué)習(xí)的目標檢測算法,目前可分為雙階段和單階段[2]。雙階段算法的特點為精度較高,但速度慢。單階段算法速度較快,但精度損失較大,該文采用的SSD網(wǎng)絡(luò)[3]屬于單階段算法。
為提高視頻車輛目標檢測在嵌入式設(shè)備上的運行速度,該文所做的工作有:1)對SSD 網(wǎng)絡(luò)進行輕量化改造;2)提出注意力機制卷積GRU,并將其與SSD網(wǎng)絡(luò)結(jié)合,促進時序信息融合;3)提出關(guān)鍵幀檢測網(wǎng)絡(luò)控制的GRU 跳躍連接,實現(xiàn)時序信息從關(guān)鍵幀傳播到非關(guān)鍵幀;4)采用量化對模型進行優(yōu)化。
該文提出的基于時序信息的輕量級視頻車輛目標檢測模型如圖1 所示。It表示t時刻輸入的圖像,輸入的圖像首先經(jīng)過由MobileNetV3-Small[4]組成的主干特征提取網(wǎng)絡(luò)進行特征提取,生成低層特征圖,該特征圖將送入關(guān)鍵幀檢測網(wǎng)絡(luò)以及第一層卷積GRU 中。關(guān)鍵幀檢測網(wǎng)絡(luò)依據(jù)當(dāng)前幀與前一關(guān)鍵幀的特征相似度,進行關(guān)鍵幀判斷并控制卷積GRU。卷積GRU 將輸入的特征圖與時序信息進行融合,輸出的特征圖將被送入檢測網(wǎng)絡(luò)及下一級特征提取網(wǎng)絡(luò)。經(jīng)過主干特征提取網(wǎng)絡(luò)、額外特征提取層以及六層卷積GRU,將生成6 個尺度大小不一的特征圖,用于檢測不同大小的目標。

圖1 基于時序信息的視頻車輛目標檢測模型結(jié)構(gòu)圖
圖1 中ConvGRU*為第一層卷積GRU,該文在其中增加了注意力機制以及跳躍機制,其余5 個卷積GRU 只增加了跳躍機制,關(guān)鍵幀檢測網(wǎng)絡(luò)將對所有卷積GRU 的跳躍機制進行控制。關(guān)鍵幀檢測網(wǎng)絡(luò)使用主干特征提取網(wǎng)絡(luò)輸出的低層特征圖進行關(guān)鍵幀判斷,若判斷為關(guān)鍵幀,則送入卷積GRU 模塊,在此融合存儲在GRU 狀態(tài)中的歷史關(guān)鍵幀信息,增強特征圖的時空信息,輸出精確的、具有時間感知的特征圖,同時更新GRU 狀態(tài),即更新GRU 中存儲的上下文信息,以便后續(xù)時刻輸入圖像特征圖使用;若判斷為非關(guān)鍵幀,則在進入卷積GRU 之后不更新GRU 狀態(tài),直接融合之前幀的信息,并復(fù)制前一GRU 狀態(tài)到當(dāng)前GRU 狀態(tài)。第一層卷積GRU 輸出的特征圖將送入檢測網(wǎng)絡(luò)中以及后續(xù)網(wǎng)絡(luò)繼續(xù)進行特征提取。其余5 個卷積GRU 也將生成5 個特征圖送入檢測網(wǎng)絡(luò)中,每張?zhí)卣鲌D的每個特征圖小格都會生成4~6 個先驗框,在先驗框的基礎(chǔ)之上進行回歸與分類。
文獻[3]提出的SSD 網(wǎng)絡(luò)是一種簡單快速的目標檢測方法,在檢測精度與速度上均有較高的性能。為提高模型在嵌入式設(shè)備上進行視頻車輛目標檢測的速度,該文引入MobileNetV3-Small[4],替換經(jīng)典模型VGG-16 作為主體特征提取部分,同時將SSD框架中其他標準卷積替換為深度可分離卷積[5],MobileNetV3-Small-SSDlite 主體框架如表1 所示。

表1 MobileNetV3-Small-SSDlite主體框架
表1 中Bneck[4]為MobileNetV3 的基本模塊,將SE注意力機制[6]和殘差連接結(jié)合,增強了模型的效率。為進一步減少計算量,該文將SSD 框架中用于生成特征圖的第15、16、17、18 卷積塊中第二層3×3 標準卷積層,替換為由3×3 逐通道卷積[5]和1×1 逐點卷積[5]組成的深度可分離卷積,生成新的卷積塊,即表1 中的DConv。
文獻[4]中MobileNetV3-Small 的激活函數(shù)為ReLU 與h-swish,但h-swish 函數(shù)引入的非線性計算在計算量有限的設(shè)備中會造成一定的延遲。考慮到h-swish 函數(shù)對精度的提升影響較小且會增加大量計算,該文將網(wǎng)絡(luò)中的激活函數(shù)都設(shè)置為ReLU函數(shù)。
SSD 計算目標檢測的邊界框損失時,采用的SmoothL1 損失函數(shù),獨立求出邊界框4 個值的損失,與衡量框檢測準確率使用的IoU 并不等價,多個邊界框可能有相同大小的損失,但IoU 差距可能很大,為提升SSD 檢測的準確性,該文采用CIoU 損失函數(shù)[7]作為邊界框回歸損失函數(shù)。CIoU 充分考慮到邊界框和目標框之間的重疊面積大小、中心點距離以及寬高比的一致性,能有效提升檢測精度。CIoU 損失函數(shù)為:
GRU 在文獻[8]用于融合多個視頻序列圖像的信息,利用歷史幀的信息加強當(dāng)前幀目標的檢測,取得了較高的檢測精度。受其啟發(fā),該文在SSD 中直接插入卷積GRU[9],融合歷史幀的時序信息。但GRU 本身的參數(shù)量對于嵌入式設(shè)備而言仍是較大的。為提升模型在嵌入式設(shè)備上的運行速度,該文對標準GRU 進行以下四處改進,如圖2 所示。首先,使用卷積GRU 替代傳統(tǒng)GRU,為進一步減少計算量,將卷積GRU 中的標準卷積替換為深度可分離卷積;增加注意力機制;在輸入與輸出之間增加連接;增加跳躍機制。

圖2 卷積GRU結(jié)構(gòu)圖
圖2 中Concat 為通道數(shù)相加,E-channel 為單通道特征圖分別與多通道特征圖的每個通道對應(yīng)元素相乘,E-wise 表示哈達瑪積,即元素乘積,矩陣對應(yīng)元素相乘。
該文使用第8 層輸出的低層特征圖識別小目標,因其富含細節(jié)信息且感受野較小。而小目標相關(guān)特征遠小于背景,為抑制背景提高檢測準確率,該文在與網(wǎng)絡(luò)第8 層連接的卷積GRU 層中增加注意力機制。注意力模塊的輸入為當(dāng)前特征圖xt和之前的GRU 狀態(tài)ht-1通道數(shù)相加之后生成的新特征圖。新特征圖通過三層卷積以及Sigmoid 激活函數(shù)之后,生成一個元素值在0~1 之間的單通道注意特征圖。之后單通道注意力特征圖將與多通道特征圖xt逐通道對應(yīng)元素相乘生成注意力感知特征圖,代替當(dāng)前特征圖xt作為卷積GRU 輸入的一極,另一極仍為前一隱藏狀態(tài)ht-1。SSD 剩余5 個特征圖連接的卷積GRU 中不增加注意力模塊,則輸入為特征圖xt和前一幀狀態(tài)ht-1。
該文還在xt、ht-1通道相加之后與輸出之間增加一條連接,可使輸出中包含時間相關(guān)性較小的特征,而無需存儲在內(nèi)存中,減輕了內(nèi)存的負擔(dān)。
由于視頻相鄰幀一般存在較強的相似性,特征圖的變化可能較小,為了減少計算量并加快模型訓(xùn)練時的收斂速度,該文在卷積GRU 中引入跳躍機制[10],由二進制門st控制,st的值為0 或者1。當(dāng)st=1 時,GRU 更新神經(jīng)元狀態(tài),st=0 時,則不更新。該文使用自適應(yīng)關(guān)鍵幀檢測網(wǎng)絡(luò)來確定二進制門st。
視頻幀的特征相似性是關(guān)鍵幀檢測網(wǎng)絡(luò)的基礎(chǔ),相鄰視頻幀往往信息冗余度較高,若逐幀處理將會導(dǎo)致計算量和處理時間的增加,因此一個效率較高的關(guān)鍵幀檢測策略對于提升模型檢測效率至關(guān)重要。與高層語義特征圖相比,低層細節(jié)特征圖可以更好地反映視頻幀的變化。該文從低層細節(jié)特征相似性的角度出發(fā),提出一種基于自適應(yīng)關(guān)鍵幀決策方法控制的GRU 跳躍連接。
關(guān)鍵幀檢測網(wǎng)絡(luò)以當(dāng)前視頻幀特征圖fi作為輸入,輸出為特征相似度。首先將網(wǎng)絡(luò)第8 層卷積塊輸出的特征圖經(jīng)過一個1×1 卷積核,將多通道特征圖轉(zhuǎn)化為單通道特征圖,再將其展開為特征向量vt,通過計算上一關(guān)鍵幀特征向量vk和vt的余弦相似度來衡量兩幀圖像的相似度。
通過式(4)求出兩向量的余弦相似度,式(5)為st判斷標準,當(dāng)余弦相似度不大于閾值時,說明兩幀差距較大,當(dāng)前視頻幀可判斷為關(guān)鍵幀,令卷積GRU的二進制門st=1,控制所有卷積GRU 狀態(tài)更新,卷積GRU 的輸出為更新之后的狀態(tài)ht和特征圖yt;而當(dāng)余弦相似度大于閾值時,表明當(dāng)前幀與上一關(guān)鍵幀差異較小,判斷當(dāng)前幀為非關(guān)鍵幀,并令st=0,控制所有卷積GRU 復(fù)制之前狀態(tài)。經(jīng)過實驗驗證,該文選取閾值α=0.95。
深度神經(jīng)網(wǎng)絡(luò)大多因高昂的計算和存儲成本,阻礙了其在計算力和存儲資源有限的情況下部署,對神經(jīng)網(wǎng)絡(luò)進行量化可以極大提高其效率[11]。量化即使用縮小寬度的數(shù)據(jù)類型替換原數(shù)據(jù)類型。若采用先訓(xùn)練后量化的方法,對于該文所使用的小模型會導(dǎo)致顯著的精度下降,因此該文采用量化感知訓(xùn)練,在訓(xùn)練的過程中對網(wǎng)絡(luò)進行8 位偽量化,減少量化帶來的模型精度損失,主要使用pytorch 庫BREVITAS 中的均勻?qū)ΨQ量化。
該文數(shù)據(jù)集采用UA-DETRAC[12],該數(shù)據(jù)集包括100 個視頻,其中包含了140 131 幀真實交通場景,訓(xùn)練集為83 791 幀,測試集為56 340 幀。這些視頻幀標記了121 萬個車輛邊界框以及其他屬性,如場景照明情況、車輛類型等。
該文使用SGD 在pytorch 上訓(xùn)練模型,輸入分辨率為320×320,學(xué)習(xí)率設(shè)置為0.003,訓(xùn)練設(shè)備為一臺配備GTX 1660Ti GPU 和Intel Core i7 CPU 的計算機,性能測試環(huán)境為Intel Core i7 CPU 和一塊樹莓派4B,CPU 為Broadcom BCM2711。
訓(xùn)練時首先訓(xùn)練以MobileNetV3-Small 為主干特征提取網(wǎng)絡(luò)的SSD 模型,訓(xùn)練完成之后凍結(jié)基礎(chǔ)網(wǎng)絡(luò)中的所有權(quán)重,在模型中增加卷積GRU 層繼續(xù)進行訓(xùn)練。
該文比較了所提出的基于時序信息的輕量級視頻車輛目標檢測方法與其他先進的視頻目標檢測方法在UA-DETRAC 數(shù)據(jù)集上的檢測精度與速度,結(jié)果如表2 所示,其中LAFS[13]和該文由于均使用了關(guān)鍵幀策略,在測試檢測速度時使用的是平均單幀圖像檢測時間。

表2 UA-DETRAC數(shù)據(jù)集測試結(jié)果
該文提出的視頻車輛目標檢測方法在典型嵌入式設(shè)備樹莓派4B 上檢測準確率達到了78.81%,在該數(shù)據(jù)集上取得了較好的效果。雖然與FFAVOD 和SpotNet 的精度存在較大的差距,但在檢測速度方面由于該文所采取的輕量化模型設(shè)計及利用量化優(yōu)化模型,所以優(yōu)勢明顯,且能夠部署在低計算能力的樹莓派4B 上。相較于TT-YOLO 有明顯的速度優(yōu)勢,而與LFAS 相比,平均單幀圖像的檢測時間縮短了151 ms,同時有0.69%的精度優(yōu)勢。
為證明該文所采用的各種設(shè)計方法的有效性,該文進行了模型分解實驗。首先對該文輕量化改造SSD的有效性進行實驗,在UA-DETRAC 數(shù)據(jù)集上分別對基于VGG-16 的SSD、基于MobileNetV3-Small 的SSD 以及MobileNetV3-Small-SSDlite 進行實驗,并在樹莓派4B上測試檢測精度與速度,結(jié)果如表3所示。

表3 不同SSD模型對比
從表3 可以看出,該文將SSD 特征提取模塊和標準卷積層替換為MobileNetV3-Small,雖然導(dǎo)致準確率下降了2.34%,但單幀圖像處理速度獲得顯著提高。而在MobileNetV3-Small-SSD 基礎(chǔ)之上,使用深度可分離卷積、更換激活函數(shù)及邊界框損失函數(shù),檢測速度進一步提升,準確率也有小幅提升。
為對比不同RNN 融合時序信息的效果,該文分別將卷積LSTM[9]、瓶頸LSTM[13]、標準卷積GRU[9]以及該文提出的改進卷積GRU 注入到基于MobileNetV3-Small-SSDlite 網(wǎng)絡(luò)中,結(jié)果如表4 所示,其中該文方法1 為注意力機制卷積GRU,該文方法2 為基于關(guān)鍵幀檢測網(wǎng)絡(luò)的跳躍連接卷積GRU,該文方法3 為結(jié)合注意力機制與跳躍連接的卷積GRU,三種方法均使用深度可分離卷積,表4 中該文方法2 與該文方法3 的檢測時間均為平均單幀檢測時間。

表4 網(wǎng)絡(luò)注入不同RNN對比
從表4 中可以看出,相較于使用其他RNN 進行時序信息融合,該文提出的改進卷積GRU 在準確率及檢測速度上均有較大的優(yōu)勢。相較于卷積GRU,在其中增加注意力機制可以有效提升檢測準確率,雖會增加一定的計算量,但對檢測時間的上升影響較小。關(guān)鍵幀檢測網(wǎng)絡(luò)控制的跳躍機制對減少計算量和檢測時間的效果明顯,而對準確率的影響比較小,該文同時增加注意力機制與關(guān)鍵幀控制的跳躍機制對于準確率與檢測速度的提升都有較好的效果。
關(guān)鍵幀檢測網(wǎng)絡(luò)的閾值α十分重要,它決定了關(guān)鍵幀的密度,影響檢測精度與速度。該文對閾值α的選擇進行實驗,結(jié)果如圖3 所示,當(dāng)閾值α處于0.95~1.00 之間時,隨著α的減小檢測精度略微下降,但平均單幀檢測時間明顯減少;當(dāng)α小于0.95 時,檢測時間雖隨著α的繼續(xù)減少而繼續(xù)減小,但檢測精度隨之大幅降低。基于以上分析,該文選擇0.95 作為關(guān)鍵幀檢測網(wǎng)絡(luò)的閾值,當(dāng)關(guān)鍵幀檢測網(wǎng)絡(luò)輸出的特征相似度不大于0.95 時,則判斷當(dāng)前幀為關(guān)鍵幀,該網(wǎng)絡(luò)控制所有卷積GRU 更新狀態(tài),若特征相似度大于0.95,則卷積GRU 復(fù)制此前狀態(tài)。閾值為0.95 的關(guān)鍵幀檢測網(wǎng)絡(luò)使模型的平均單幀檢測時間縮短了223 ms,精度只下降了0.72%。

圖3 關(guān)鍵幀閾值選擇
該文所使用的量化感知訓(xùn)練,對模型最終能夠在樹莓派4B 上以較快的速度運行,起到了決定性作用,量化之后模型大小從17.2 MB 減少至4.3 MB,縮小了4 倍,平均每幀運行時間達到了最終的134 ms,準確率為78.81%,損失為1.03%。
圖4 為該文方法在UA-DETRAC 數(shù)據(jù)集上的檢測結(jié)果。

圖4 UA-DETRAC檢測結(jié)果
該文提出了基于時序信息的輕量級視頻車輛目標檢測方法,在CPU 上單幀檢測時間減少至18 ms,且支持部署在樹莓派等嵌入式設(shè)備上。該方法主體為SSD 網(wǎng)絡(luò),以MobileNetV3-Small 為主干特征提取網(wǎng)絡(luò),在其后增加關(guān)鍵幀檢測網(wǎng)絡(luò)與卷積GRU 層,關(guān)鍵幀檢測網(wǎng)絡(luò)控制卷積GRU 狀態(tài)是否更新,卷積GRU 層則進行時序信息融合,并通過增加注意力機制與跳躍連接提升檢測精度與速度。該文還使用量化感知訓(xùn)練,極大地提升了檢測速度。在UA-DETRAC數(shù)據(jù)集上的實驗結(jié)果表明,該文所提出的方法在樹莓派等嵌入式設(shè)備上能夠取得較好的檢測精度與速度。今后的研究工作在此基礎(chǔ)上,將嘗試如何在不明顯增加計算量的前提下提高模型的檢測準確度。