陳志軍,胡軍楠,冷姚,錢闖,吳超仲
(武漢理工大學,智能交通系統(tǒng)研究中心,武漢 430063)
智能車在提高行車安全、減輕駕駛員負擔方面具有重要作用,并有助于節(jié)能環(huán)保和提高交通效率,是實現(xiàn)智能交通的關鍵載體[1]。在復雜行駛環(huán)境下,準確高效的實時感知能力可為智能車提供可靠的環(huán)境信息,對保障車輛安全性和穩(wěn)定性至關重要[2]。
在智能車感知領域,主要采用基于深度學習的目標檢測方法。經(jīng)典算法如YOLOv3(You Only Look Once v3)[3]、Faster RCNN (Faster Region Convolution Neural Network)[4]等,國內(nèi)外學者根據(jù)智能車的感知需求對檢測算法做了一系列改進,Possatti等[5]將交通燈數(shù)據(jù)集進行樣本增強,同時將感知算法與智能車使用的先驗地圖相結合,實現(xiàn)對真實場景交通燈的準確識別。Mohd-Isa等[6]通過在YOLOv3框架中集成空間金字塔池化,進一步識別真實環(huán)境中的遠小交通標志。邵毅明等[7]通過動態(tài)路由協(xié)議對物體的實例化參數(shù)進行表達和傳遞,保留了各特征對象間的空間層級關系,提高了智能車對道路環(huán)境中行人目標檢測的準確率。由于智能車對感知實時性要求較高,上述算法網(wǎng)絡模型較大,且難以平衡檢測速度與精度,無法滿足智能車實時感知的需求。近年來,學術界和工業(yè)界將研究重點放在感知算法輕量化上,結合輕量化網(wǎng)絡改進的目標識別網(wǎng)絡在節(jié)省計算資源方面效果顯著,經(jīng)典輕量化模型包括MobileNet[8]和ShuffleNet[9]等,MobileNet 提出了深度分離卷積,并使用逐點卷積進行通道間信息融合來實現(xiàn)模型壓縮,ShuffleNet利用逐點群卷積和通道混洗實現(xiàn)了參數(shù)量的降低。Deng 等[10]采用MobileNetv3 作為特征提取塊,利用YOLOv4[11]作為分支來檢測車輛和車道線,適用于跟車場景的車輛和車道線多任務實時檢測模型。史寶岱等[12]采用特征拼接的方式多支路并行,并將通道注意力機制與深度可分離卷積結合,實現(xiàn)了對道路圖像的快速檢測。張凡[13]針對現(xiàn)有交通標志檢測與識別網(wǎng)絡檢測速度慢的問題,采用壓縮激勵模塊,提出基于輕量化多尺度特征融合的交通標志識別方法。Chen 等[14]在Tiny-YOLOv3 的網(wǎng)絡層結構上進行裁剪,提升了智能車在道路環(huán)境中的檢測速度,但損失了檢測精度。現(xiàn)有智能車輕量化感知方法大多從模型壓縮的角度出發(fā),未考慮圖像特征之間的關聯(lián)和冗余性,且存在檢測精度下降的問題。
針對這些問題,本文兼顧算法檢測速度和準確性需求,提出一種基于GhostNet[15]的智能車輕量化目標識別方法。為了降低YOLOv4 算法特征提取過程中圖像參數(shù)的冗余計算和提高推理速度,使用改進后的GhostNet 網(wǎng)絡替換YOLOv4 原始的主干特征提取網(wǎng)絡,改變模型的卷積計算方式,使網(wǎng)絡參數(shù)計算量顯著降低;智能車主要關注復雜行駛環(huán)境中的車輛和行人等信息,且輕量化網(wǎng)絡會造成精度損失,采用結合軟閾值化改進的CBAM(Convolutional Block Attention Module)注意力模塊[16]使算法獲取到更多的關鍵特征;最終在保證檢測精度的同時滿足智能車的實時檢測需求。
GhostNet 是一種基于MobileNet[8]模型改進的輕量化網(wǎng)絡結構,通過計算量更小的操作來生成常規(guī)特征提取方法中的冗余特征圖,避免大量的卷積計算,從而在不影響模型精度的情況下減少模型的計算復雜度。GhostNet 的思想是將傳統(tǒng)的卷積分成兩步[15]:第1 步使用1×1 卷積核生成輸入特征層的特征濃縮,第2步對生成的特征圖使用計算量較低的逐層卷積獲得另一半特征圖,最后將兩組特征圖拼接在一起,得到與傳統(tǒng)卷積層同等特征表達能力的相似特征圖。Ghost卷積與傳統(tǒng)卷積的計算參數(shù)量對比為
式中:m為輸入通道數(shù);h為輸入特征圖高度;w為輸入特征圖寬度;n為輸出通道數(shù);h′為輸出特征圖高度;w′為輸出特征圖寬度;k×k為卷積核的尺寸;s為Ghost 特征圖的個數(shù),且s遠小于m,則理論參數(shù)壓縮比約等于Ghost 特征圖的個數(shù)s,因此Ghost 卷積極大減少了網(wǎng)絡參數(shù)計算量。式(1)分子表示Ghost 卷積的參數(shù)量,分母表示傳統(tǒng)卷積的參數(shù)量。
利用GhostNet 對特征提取網(wǎng)絡進行輕量化改進后計算參數(shù)顯著減少,但由于特征稀疏的影響,會導致部分精度損失。通過加入注意力機制獲得需要重點關注的目標區(qū)域,相比于原始特征提取方式,注意力機制在僅增加少量計算參數(shù)的情況下,獲取到目標更多的關鍵特征,從而提高檢測準確率。
本文結合軟閾值化機理對CBAM 注意力機制[16]做出改進。在計算機視覺領域,由于圖像信息中存在噪聲冗余,通過軟閾值函數(shù)可實現(xiàn)降噪處理,利用神經(jīng)網(wǎng)絡自動選取閾值從而削弱冗余特征對識別任務的影響,避免了閾值難以選取的問題。將軟閾值化與注意力機制結合,針對特征的重要程度自適應設置不同的閾值,同時可通過注意力機制進行自動閾值調(diào)整,從而實現(xiàn)對圖像關鍵特征的強化和對冗余特征的抑制。軟閾值函數(shù)和其偏導公式為
式中:x為輸入特征;y為輸出特征;τ為閾值。通過注意力機制生成的權重系數(shù)自動調(diào)整閾值,當輸入特征大于閾值時對特征進行收縮;當輸入特征小于閾值時,視為冗余噪聲,將特征置為0。軟閾值化函數(shù)的導數(shù)只為0 或1,可以有效防止梯度的消失與爆炸問題。
在CBAM 注意力機制中,輸入特征依次經(jīng)過通道注意力模塊和空間注意力模塊進行強化。其中,通道注意力模塊的特點是保持通道維度不變,壓縮空間維度,主要關注目標的種類信息;空間注意力模塊的特點是保持空間維度不變,壓縮通道維度,主要關注目標的位置信息。將從通道注意力機制和空間注意力機制提取的特征依次進行軟閾值化處理,利用軟閾值化函數(shù)改進的CBAM 注意力機制網(wǎng)絡結構如圖1所示,通道注意力模塊和空間注意力模塊的具體結構如圖2 所示。通道注意力首先沿著空間維度將輸入進行最大池化和平均池化;然后利用共享的全連接層對兩者進行處理,通道數(shù)先調(diào)整為原來的1/8,再恢復到原來的通道數(shù),實現(xiàn)特征轉(zhuǎn)換和信息重組;對獲取到的新特征進行相加和激活,得到最終的輸出??臻g注意力首先沿著通道維度將輸入進行最大池化和平均池化,并將兩者進行堆疊;然后進行卷積和激活,得到最終的輸出。
圖1 結合軟閾值化的CBAM模塊網(wǎng)絡結構Fig.1 CBAM module network structure combined with soft thresholding
圖2 通道注意力和空間注意力結構Fig.2 Channel attention and spatial attention specific structures
將結合軟閾值化改進的CBAM 注意力模塊SCBAM (Soft-threshold Convolutional Block Attention Module)嵌入到GhostNet 中,SCBAM 模塊的部署位置如圖3所示,通過在GhostNet中應用注意力機制,實現(xiàn)了在降低計算參數(shù)的情況下提取到更多關鍵特征。
圖3 改進GhostNet整體結構Fig.3 Improve overall structure of GhostNet
本文選用YOLOv4[11]算法進行改進,結合GhostNet 和注意力機制提出一種智能車輕量化目標識別方法,整體結構如圖4所示。
圖4 改進YOLOv4整體網(wǎng)絡結構Fig.4 Improve overall network structure of YOLOv4
使用改進后的GhostNet 輕量化網(wǎng)絡替代YOLOv4的原始特征提取網(wǎng)絡,在不影響提取特征的情況下,實現(xiàn)算法的輕量化目標。輸入特征首先經(jīng)過常規(guī)卷積、正則化和激活函數(shù),保留足量特征;然后,經(jīng)過多個Ghost 模塊實現(xiàn)輕量化的特征提取。SPP(Spatial Pyramid Pooling)多重池化代表將從GhostNet輸出的特征進行多尺度最大池化,然后將特征拼接后輸入到特征金字塔部分。上采樣卷積拼接和下采樣卷積拼接代表特征金字塔中的一些特定模塊,將這些模塊通過不同的級聯(lián)方式進行連接,獲得不同尺寸的預測頭輸出,從而實現(xiàn)對不同大小目標的精確識別。
結合GhostNet輕量化網(wǎng)絡和SCABAM注意力機制改進后的YOLOv4 算法具體結構如圖5 所示。使用GhostNet 作為YOLOv4 新的特征提取網(wǎng)絡,同時將SCBAM注意力模塊添加在GhostNet的第4層和第6層,獲取到更多圖像特征;將GhostNet的第6、7、8三層分別輸入到特征金字塔網(wǎng)絡PANet(Path Aggregation Network)和SPP 多重池化結構中。SPP 結構中包括4 種尺度的最大池化,池化核大小分別是1×1、5×5、9×9和13×13,這種結構可以有效增加感受野,從而分離出最顯著的目標上下文信息。
在特征金字塔PANet部分,添加了深度可分離卷積和結合軟閾值化改進的注意力模塊,即SCBAM。 通過深度可分離卷積(Depthwise Separable Convolution)進一步降低網(wǎng)絡計算參數(shù),深度可分離卷積在MobileNet[8]中首次提出,極大降低了模型的參數(shù)量,適合部署于計算資源有限的設備中。特征金字塔PANet 的核心思想是對特征進行反復提取,將PANet的特征從上到下視為一、二、三共3層。從GhostNet主干網(wǎng)絡第6層輸出的特征視為第一層,其經(jīng)過卷積和來自PANet中第二層上采樣的特征拼接之后,再在后面疊加SCBAM注意力模塊,最終輸出一個YoloHead預測頭,預測框尺寸大小為76×76;從GhostNet 主干網(wǎng)絡第7 層輸出的特征視為第二層,其經(jīng)過卷積和來自第三層上采樣的特征拼接之后,再將特征疊加第一層下采樣的特征,經(jīng)過拼接和深度可分離卷積后輸出一個YoloHead 預測頭,此預測框尺寸大小為38×38;從SPP多重池化輸出的特征首先進行拼接和卷積,視為第三層,然后在其后添加一個SCBAM注意力模塊,然后將其與來自第二層下采樣的特征進行拼接,經(jīng)過深度可分離卷積后輸出YoloHead預測頭,此預測框尺寸大小為19×19。最終,得到3 種尺寸大小的預測框,從而可以對圖像中不同大小的目標進行有效預測。算法整體的輸入特征、提取的關鍵特征和輸出特征參數(shù)如表1 所示,其中特征的3 個維度代表長度、寬度和通道數(shù),輸出特征里的通道數(shù)k隨數(shù)據(jù)集中的目標種類數(shù)而變化。
表1 DwGhost-SCBAM-YOLOv4算法關鍵參數(shù)Table 1 Key parameter setting of DwGhost-SCBAM-YOLOv4
為解決YOLOv4 模型在輕量化后準確率損失的問題,在模型的特征金字塔層添加4 個SCBAM注意力模塊,由于特征在經(jīng)過拼接或采樣處理后不夠突出,因此主要將4 個SCBAM 注意力機制添加到經(jīng)過拼接的特征層后和上下采樣處理的特征層后,具體位置如圖5所示。對特征金字塔提取的特征進行多次注意力機制強化,使輸入到預測層的特征更聚合,增強預測層的特征表達能力,最終實現(xiàn)算法檢測速度和精度的提升。
圖5 DwGhost-SCBAM-YOLOv4算法具體結構Fig.5 Specific structure of DwGhost-SCBAM-YOLOv4 algorithm
本文選擇公開數(shù)據(jù)集PASCAL VOC2007、KITTI 和自制武漢市城市道路實車實驗數(shù)據(jù)集用于訓練測試。VOC2007 數(shù)據(jù)集共包含21504 張帶標簽的圖片,分為20個種類,每張圖片內(nèi)的目標特征區(qū)分度明顯;KITTI數(shù)據(jù)集是目前國際上最大的自動駕駛場景下的計算機視覺算法評測數(shù)據(jù)集,包含7481張帶標簽的圖片,本文對數(shù)據(jù)集中的汽車、卡車、行人和自行車進行訓練與識別;自制城市道路實車實驗數(shù)據(jù)集采集于夜晚武漢市的城市道路,包含3000張圖片,標簽包含汽車、行人和大巴車這3 類。3 個數(shù)據(jù)集采用相同的比例劃分方法,訓練集和測試集的劃分比例為9∶1,并在后期實驗中使用K 折交叉驗證和多種比例劃分方法測試算法的穩(wěn)定性,數(shù)據(jù)集部分圖片如圖6所示。
圖6 3個數(shù)據(jù)集部分樣本圖像Fig.6 Partial sample images of three data sets
本文算法訓練過程使用的顯卡為NVIDIA GeForce RTX 3080,顯存大小為10 GB,CPU 型號為Intel Core i7-10700KF,所使用的深度學習框架版本為Pytorch1.2-GPU,Cuda 版本為11.1;在RTX3080顯卡上進行訓練時,算法訓練的初始學習率為0.01,采用余弦退火技術對學習率進行動態(tài)調(diào)整;優(yōu)化器采用SGD隨機梯度下降方法,算法共訓練150個epoch,BatchSize設置為8。
對算法性能進行測試和對比:首先,將原始YOLOv4 算法、使用原始GhostNet 輕量化改進的Ghost-YOLOv4 和引入注意力機制的輕量化DwGhost-SCBAM-YOLOv4 算法進行對比;然后,將本文的DwGhost-SCBAM-YOLOv4 算法與業(yè)界主流目標檢測算法進行對比。
實驗主要從算法檢測速度和精度方面對各項指標進行對比。使用的評價指標包括平均準確率mAP(mean Average Precision)和對數(shù)平均誤檢率lamr(log average miss rate),其中l(wèi)amr代表對數(shù)平均漏檢率,其定義為檢測錯誤正樣本的數(shù)量與圖片中全部正樣本的比例,經(jīng)過對數(shù)平均調(diào)整后,可體現(xiàn)算法對負樣本的特征抑制和對正樣本持續(xù)穩(wěn)定的篩選能力,體現(xiàn)了算法的檢測穩(wěn)定性;在檢測速度方面,使用平均單張圖片的處理時間FPS(Frames Per Second)和模型權重大小作為評價指標。在VOC2007數(shù)據(jù)集、KITTI數(shù)據(jù)集和自制夜晚城市道路數(shù)據(jù)集上對本文所采用的優(yōu)化方法和原始方法進行評估和對比,結果如表2所示。
表2 本文方法與原始YOLOv4方法在各數(shù)據(jù)集上的性能對比Table 2 Performance comparison between this method and original YOLOv4 method on each data set
由表2 可知,在不增加注意力機制的情況下,Ghost-YOLOv4算法的模型權重在3個數(shù)據(jù)集上平均降低到18.4%,檢測速度FPS平均增加了66%,顯著提升了算法檢測速度,但是檢測精度有所下降。添加SCBAM注意力機制和深度可分離卷積后,提出的DwGhost-SCBAM-YOLOv4方法平均檢測準確度相比Ghost-YOLOv4 增加6.3%,相比原始YOLOv4 增加1.7%,且算法的穩(wěn)定性指標lamr 也有所優(yōu)化,同時模型大小降低到18.7%,檢測速度FPS 增加了66%,在保證精度的情況下,實現(xiàn)了算法的輕量化目標。在VOC 和KITTI 公開數(shù)據(jù)集上的檢測效果優(yōu)于原始YOLOv4 方法和數(shù)據(jù)集官方指標,3個數(shù)據(jù)集具體的檢測準確率如圖7所示,圖像檢測效果對比如圖8所示。
圖7 不同數(shù)據(jù)集檢測準確率Fig.7 Detection accuracy of different data sets
圖8 算法檢測效果對比Fig.8 Comparison of algorithm detection effect
在圖7 中,本文提出的DwGhost-SCBAM-YOLOv4 算法在VOC 數(shù)據(jù)集上的平均檢測準確率達到88.47%,其中,汽車、大巴、火車和行人等常見交通目標的檢測準確率均在90%以上;在KITTI數(shù)據(jù)集上進行檢測,汽車的檢測準確率達到83%;在自制夜晚城市道路數(shù)據(jù)集上進行檢測,由于黑暗環(huán)境下目標特征難以提取,汽車的檢測準確率為56%,仍優(yōu)于大部分專為黑夜環(huán)境設計的車輛檢測方法,證明了本文方法在檢測精度上的有效性。
為進一步驗證本文方法在檢測速度和精度上的有效性,選取目前主流的目標檢測算法進行對比,其中主流常規(guī)檢測算法包括Faster Rcnn[4]、SSD[17]和YOLOv3[3],輕量化目標檢測算法包括MobileNet[8]、ShuffleNet[9]和YOLOv5s。將這些算法在VOC 數(shù)據(jù)集和相同軟硬件環(huán)境下進行訓練,訓練集和測試集的比例為9∶1,結果對比如表3所示,不同算法檢測速度對比如圖9所示。
圖9 不同算法檢測速度對比Fig.9 Comparison of detection speed of different algorithms
表3 本文方法與其他目標檢測算法性能對比Table 3 Performance of this method is compared with other target detection algorithms
由表3可知,本文算法模型大小是YOLOv3和YOLOv4 的1/5,是Faster Rcnn 和SSD 的1/2,是ShuffleNet 的1/3,小于MobileNetv3-YOLOv4,僅比YOLOv5最輕量化的s模型略大;在檢測速度方面,僅YOLOv3 與YOLOv5s 可接近本文方法,但這兩者檢測精度較低,相比于Faster Rcnn 等其他算法,本文方法在檢測速度方面具有較大優(yōu)勢;在VOC數(shù)據(jù)集上的檢測精度對比顯示,本文方法仍優(yōu)于其他目標檢測算法。證明了所提出方法的有效性,兼顧了檢測速度與精度,能夠滿足目標實時檢測需求。
為驗證算法的穩(wěn)定性和泛化能力,采用10 折交叉驗證,數(shù)據(jù)集按照8∶2 和7∶3 劃分訓練集和測試集的保留法進行驗證。本文10折交叉驗證使用云服務器GPU并行實驗,在3個數(shù)據(jù)集上對改進后的DwGhost-SCBAM-YOLOv4算法進行測試,結果如表4所示。表4中,最佳mAP和最低mAP分別代表在10折交叉驗證中表現(xiàn)最佳一輪和最差一輪的算法準確率,平均mAP 代表10 次訓練結果的準確率平均值,由3個數(shù)據(jù)集的10折平均mAP可看出:算法的平均準確率與單獨一次訓練測試的準確率基本相同,證明算法訓練未出現(xiàn)過擬合;當訓練集和測試集劃分比例為8∶2和7∶3時算法準確率與劃分比例為9∶1 時基本相同,說明算法魯棒性強,檢測效果穩(wěn)定。
表4 交叉驗證與多種比例劃分后的DwGhost-SCBAM-YOLOv4算法準確率Table 4 Accuracy of DwGhost-SCBAM-YOLOv4 algorithm after cross-validation and multi-scale partition
本文提出一種基于輕量化網(wǎng)絡和注意力機制的智能車快速目標識別方法。為了提高算法速度引入GhostNet 輕量化模型替換YOLOv4 的主干特征提取網(wǎng)絡;為了提高算法精度在GhostNet和特征金字塔部分加入結合軟閾值化改進的SCBAM 注意力機制。為驗證所提方法的有效性,本文選取公開數(shù)據(jù)集VOC、KITTI和自制城市道路數(shù)據(jù)集進行算法測試。實驗結果表明:本文方法相比原方法使算法模型大小降低到18.7%,檢測速度增加了66%,同時檢測精度提升了1.7%;對算法進行交叉驗證和數(shù)據(jù)集的多種比例劃分實驗,結果證明算法檢測效果穩(wěn)定;與其他主流目標檢測算法相比,本文方法在檢測速度和精度上均優(yōu)于其他算法。證明了優(yōu)化后的算法能夠在保證檢測準確率的情況下顯著提升檢測速度,滿足智能車的實時感知需求。