劉新潮,嚴(yán)英,甘海云
(1.天津職業(yè)技術(shù)師范大學(xué) 汽車與交通學(xué)院,天津 300222;2.智能車路協(xié)同與安全技術(shù)國家地方聯(lián)合工程研究中心,天津 300084)
無人駕駛?cè)诤隙囗?xiàng)檢測技術(shù)是一種新興的高科技創(chuàng)新,其中視覺檢測是保證實(shí)時性和準(zhǔn)確性的基礎(chǔ),視覺不僅具有較高的穩(wěn)定性還可以保障行駛交通環(huán)境中的物體進(jìn)行準(zhǔn)確實(shí)時的檢測.但隨著城市地區(qū)車輛的飽和形成了更多復(fù)雜的交通場景,如交通擁堵、違規(guī)停車與違規(guī)超車等.在這些復(fù)雜動態(tài)環(huán)境下無人駕駛的視覺檢測策略則需要更有效、更準(zhǔn)確地分析場景的動態(tài)與靜態(tài)區(qū)域.一般來說,障礙物的目標(biāo)檢測主要是尋找目標(biāo)的位置,分析目標(biāo)的特征,在密集的動態(tài)障礙物中準(zhǔn)確進(jìn)行識別.檢測設(shè)備一般是固定在無人駕駛車輛上,根據(jù)拍攝距離的遠(yuǎn)近獲取不同尺寸的特征和視角,這對于復(fù)雜的交通而言,障礙物越多識別距離越遠(yuǎn)越難捕捉到有效的特征信息.隨著計(jì)算硬件和視覺算法的進(jìn)步,無人駕駛視覺在城市交通環(huán)境物體的檢測效果有了很大改善,但僅限于障礙物相對稀疏的場景或行駛速度要求較低的城市路徑.
為了提高無人駕駛在城市交通環(huán)境的目標(biāo)檢測精度,宋艷艷等人[1]利用殘差結(jié)構(gòu)的思想,將深層結(jié)構(gòu)的特征與淺層結(jié)構(gòu)的特征進(jìn)行上采樣融合,并利用K-means算法聚類獲取合適的檢測框從而提高目標(biāo)的檢測精度.崔艷鵬等人[2]提出了一種超分辨率進(jìn)行的重建來增強(qiáng)特征細(xì)節(jié)的提取,然后使用維度聚類重新生成預(yù)選框,減緩了檢測速度.本文選取檢測精度與速度比較平衡的YOLOv4[3]目標(biāo)檢測算法,通過在其檢測頭前增加空間金字塔模塊來提高特征提取效果,由于特征提取效果的提升會降低檢測速度,本文提出一種深度模型剪枝的策略,通過修剪冗余的網(wǎng)絡(luò)結(jié)構(gòu)來提升檢測效率.為驗(yàn)證優(yōu)化策略的有效性選擇了開源數(shù)據(jù)集VOC2012進(jìn)行驗(yàn)證.
機(jī)器視覺對圖像的解析主要分為三類:分類、檢測與分割,與分類不同的是目標(biāo)檢測除了解析類別信息外,還要檢測目標(biāo)的位置信息,因此處理過程更加繁瑣.傳統(tǒng)的目標(biāo)檢測算法大多是基于滑動窗口的思想來處理目標(biāo)信息,具有處理過程復(fù)雜與適用性差的缺點(diǎn).隨著硬件的升級,在深度學(xué)習(xí)的基礎(chǔ)上已發(fā)展出結(jié)構(gòu)簡單、運(yùn)行高效的目標(biāo)檢測算法.其中包括R-CNN[4]、Faster R-CNN[5]、SPP-Net[6]、RetinaNet[7]、SSD[8]、YOLO[9]、YOLOv2[10]、YOLOv3[11]、YOLOv4[1]等目標(biāo)檢測器.
這些深層目標(biāo)檢測算法主要分為兩類:一類是由候選區(qū)域、手工特征提取與分類器組成的兩級目標(biāo)檢測算法,兩階段的目標(biāo)檢測算法學(xué)習(xí)一種目標(biāo)檢測器需要CNN提取選擇性搜索產(chǎn)生的特征建議.使用該方法的檢測器一般使用卷積神經(jīng)網(wǎng)絡(luò)來調(diào)用這些區(qū)域,而R-CNN系列可能是兩級目標(biāo)檢測器中最有效的系列之一.雖然檢測精度先進(jìn),但與一級檢測方法相比兩級目標(biāo)檢測器的實(shí)時性較差.YOLO家族的出現(xiàn)使單級目標(biāo)檢測器的精度開始接近兩級目標(biāo)檢測器的精度,同時依然擁有很高的實(shí)時性,經(jīng)過一系列的發(fā)展提出了YOLOv2、YOLOv3甚至是YOLOv4,進(jìn)一步提高了模型的性能.YOLOv4通過shortcut connections、upsampling和concatenation可以獲取三種不同尺度的特征圖.YOLOv4使用了很多先進(jìn)的思想來提高準(zhǔn)確性,在檢測小物體方面也有了很高的提升.因此本文選用YOLOv4目標(biāo)檢測算法作為本優(yōu)化策略的基礎(chǔ)網(wǎng)絡(luò)模型,經(jīng)過優(yōu)化后結(jié)合剪枝策略學(xué)習(xí)一個更“精細(xì)”的目標(biāo)檢測模型,即TidyYOLOv4-SPP3,來實(shí)現(xiàn)無人駕駛目標(biāo)檢測算法在復(fù)雜城市交通中對前方目標(biāo)的實(shí)時精準(zhǔn)檢測.
本文在YOLOv4算法的基礎(chǔ)上添加空間金字塔模塊[6](SPP)來加強(qiáng)深層特征的提取.現(xiàn)實(shí)樣本中往往會存在很多不同的特征尺度,為了保證具有固定大小的樣本,通常有兩種處理方式:第一種,對原圖像進(jìn)行裁剪,裁剪后必然會有相關(guān)的特征被修剪掉,特征提取在一定程度上也會受到影響.第二種,將原始圖像進(jìn)行縮放,得到的圖像變得畸形失真,在一定程度上也會影響特征的提取.而SPP可以讓網(wǎng)絡(luò)模型輸入任意尺寸的圖片,而且還可以保證輸出固定大小圖片.SPP網(wǎng)絡(luò)層分別使用了(4×4)、(2×2)、(1×1)三種大小不同的空間金字塔池化層來提取特征.將一張?zhí)卣鲌D輸?shù)讲煌目臻g金字塔池化層中進(jìn)行最大池化處理.輸入一張任意尺寸的圖片轉(zhuǎn)換成一個固定尺寸的21維特征圖,輸出的特征圖為(16+4+1)×256的大小,因此就解決了輸入圖像大小不一致的問題.在YOLOv4上借鑒這一思想,在其Neck上加入空間金字塔網(wǎng)絡(luò)結(jié)構(gòu),如圖1所示的4個maxpool層,其內(nèi)核大小分別為(1×1)、(5×5)、(9×9)、(13×13),進(jìn)一步為多尺度檢測做鋪墊,增加網(wǎng)絡(luò)結(jié)構(gòu)的魯棒性,減少過擬合,提高模型的性能.
圖1 空間金字塔池化結(jié)構(gòu)圖
YOLOv4在針對檢測精度與實(shí)時性上對YOLO算法做出不斷的優(yōu)化.首先YOLOv4在Darknet-53[11]的基礎(chǔ)上添加Mish[12]函數(shù)和借鑒CSP-Net[13]的思想構(gòu)建一種新的主干網(wǎng),即CSPDarknet53,除此之外在Neck部分還增添了SPP[6]和PAN[14]優(yōu)化特征的提取.在檢測頭部分依然遵循YOLOv3的思想,以三種不同比例的預(yù)測包圍盒,通過建立不同比例的要素地圖來探測不同尺寸的物體.檢測頭的每一個網(wǎng)格都會分配到三個不同的錨盒來預(yù)測三個檢測,其中包含4個邊界框的偏移、1個置信度和C類的預(yù)測.檢測頭由公式N×N×(3×(4+1+C))得出張量的形狀,其中的N×N表示為卷積層輸出特征圖的大小.
因此,經(jīng)過一系列的優(yōu)化,YOLOv4比YOLO系列的其他網(wǎng)絡(luò)檢測效果更好.為了更進(jìn)一步優(yōu)化網(wǎng)絡(luò)特征的提取能力,在YOLOv4三個檢測頭前的第5與第6個卷積層之間融入SPP模塊來加強(qiáng)特征提取,組合成YOLOv4-SPP3.如圖2所示.
圖2 YOLOv4-SPP3架構(gòu)簡圖
由于網(wǎng)絡(luò)在訓(xùn)練過程中不能保證每一部分的權(quán)重都可以起到重要的作用,為了獲得更緊湊和有效的檢測模型,實(shí)驗(yàn)制定剪枝策略修剪目標(biāo)檢測模型的冗余架構(gòu)來減少運(yùn)行資源消耗,提升檢測效率.在YOLO v4-SPP3優(yōu)化網(wǎng)絡(luò)的基礎(chǔ)上進(jìn)行模型精簡,通過圖3網(wǎng)絡(luò)修剪的迭代過程來獲取高效網(wǎng)絡(luò)的檢測模型TidyYOLOv4-SPP3.
圖3 TidyYOLOv4-SPP3的迭代過程
深層模型的信道稀疏訓(xùn)練方便后期剪枝策略對通道和網(wǎng)絡(luò)層的修剪,實(shí)驗(yàn)向每一個channel加入一個比例因子,用其絕對值辨別修剪通道中不重要的部分.主要是依賴卷積層后一層的BN層(不包含檢測頭)來加強(qiáng)泛化能力和提升收斂速度.BN層用小批量統(tǒng)計(jì)來歸一化深層特征,如式(1).
(1)
為了在試驗(yàn)中有效識別channel的重要性,借助BN層的比例因子γ來權(quán)衡channel的有效性.訓(xùn)練權(quán)重與比例因子進(jìn)行聯(lián)合訓(xùn)練,之后對γ因子進(jìn)行L1 正則化[15-16]. 最 后 channel稀疏訓(xùn)練
辨別channel的重要性.如式(2)所示.
(2)
式中:η是用來調(diào)節(jié)Tloss(網(wǎng)絡(luò)中訓(xùn)練參數(shù)的損失)和Χ(·)(比例因子的懲罰),Χ(γ)=|γ|為L1正則化,然后借用次梯度法[17]來優(yōu)化非光滑L1懲罰項(xiàng).
微調(diào):剪枝策略對模型進(jìn)行修剪之后,通常進(jìn)行微調(diào)操作來提升模型性能的暫時衰減,深層模型的修剪對檢測精度有很大的影響.因此,微調(diào)對恢復(fù)模型檢測性能有著至關(guān)重要的作用.微調(diào)的具體方法是對相同條件下的該網(wǎng)絡(luò)重新進(jìn)行訓(xùn)練.
檢測性能的評估:網(wǎng)絡(luò)模型執(zhí)行完剪枝策略后得到新的檢測模型,需要對其檢測性能進(jìn)行評估,判斷是否達(dá)到了所需要的實(shí)驗(yàn)要求或者是達(dá)到了最佳的檢測狀態(tài).
在YOLOv4的基礎(chǔ)上經(jīng)過一系列優(yōu)化,優(yōu)化出符合檢測城市道路中物體的目標(biāo)檢測算法TidyYOLOv4-SPP3.經(jīng)過以下實(shí)驗(yàn)來驗(yàn)證算法的有效性.
實(shí)驗(yàn)過程中需要配置深度學(xué)習(xí)框架來滿足TidyYOLOv4-SPP3的運(yùn)行.
運(yùn)行環(huán)境:中央處理器/GHz(Inter Xeon E5-2603),內(nèi)存/GB(16),GPU(Tesla P4,8GB),GPU加速庫(CUDA10.0,CUDNN7.0),深度學(xué)習(xí)框架(PyTorch),操作系統(tǒng)(Ubuntu 16.04).
為了驗(yàn)證優(yōu)化算法的有效性,選用VOC2012作為本次實(shí)驗(yàn)的數(shù)據(jù)集,VOC2012是從現(xiàn)實(shí)的場景中獲取的20個類別的數(shù)據(jù)集,分別為人、鳥、貓、牛、狗、羊、飛機(jī)、自行車、船、公交車、小轎車、摩托車、火車、杯子、椅子、餐桌、沙發(fā)、電視包,該數(shù)據(jù)集中總共包含17 125張圖片,其中大多數(shù)的類別符合城市道路上出現(xiàn)的類別,因此選用此數(shù)據(jù)集來驗(yàn)證算法的有效性.本文的所有算法模型都是在該數(shù)據(jù)集上學(xué)習(xí)的,并在驗(yàn)證集上進(jìn)行評估.其中訓(xùn)練集包 含13 700 張 圖 片、 驗(yàn) 證 集包含1 713張圖片、 測 試 集 包 含1 712張圖片.
基礎(chǔ)訓(xùn)練:優(yōu)化后的YOLOv4-SPP3模型首先需要進(jìn)行100個迭代,初始學(xué)習(xí)率為0.001,在訓(xùn)練總數(shù)為70%和90%時,分別除以10.權(quán)重衰減設(shè)置為0.000 5,動量參數(shù)為0.9.
稀疏訓(xùn)練:基礎(chǔ)模型訓(xùn)練完成100個迭代之后,為了促進(jìn)網(wǎng)絡(luò)剪枝的進(jìn)行,又完成了300個迭代的稀疏訓(xùn)練.學(xué)習(xí)率不同選擇不同的懲罰因子,本實(shí)驗(yàn)設(shè)置的學(xué)習(xí)率為0.01,因此懲罰因子選擇了比較適宜的0.000 1進(jìn)行訓(xùn)練,其他設(shè)置保持與基礎(chǔ)訓(xùn)練相同的參數(shù).
用以下指標(biāo)來分析優(yōu)化模型的性能:①mAP(平均精度);②Total BFLOPS(浮點(diǎn)數(shù));③Inference time(推理每張圖片所消耗的時間);④Parameters(模型參數(shù));⑤Volume(權(quán)重空間).
由表1實(shí)驗(yàn)結(jié)果分析基礎(chǔ)模型,采用不同優(yōu)化策略學(xué)習(xí)模型的實(shí)驗(yàn)結(jié)果,來選取最優(yōu)的目標(biāo)檢測模型(YOLOv4-SPP3-X,SPP3表示在YOLOv4的基礎(chǔ)上添加了3個空間金字塔池化,X表示修剪X%).
表1 實(shí)驗(yàn)結(jié)果
從表1中可以看出,網(wǎng)絡(luò)設(shè)置輸入尺寸為864×864的YOLOv4與設(shè)置尺寸為416×416的YOLOv4-SPP3檢測精度相當(dāng).當(dāng)YOLOv4-SPP3也設(shè)置864×864的參數(shù)時,在mAP上比YOLOv4高出約5.5%,這說明在YOLOv4上添加SPP模塊來優(yōu)化模型是有效的.因此選用網(wǎng)絡(luò)設(shè)置輸入圖片尺寸為864×864的YOLOv4-SPP3網(wǎng)絡(luò)模型進(jìn)行不同剪枝率的精簡.
實(shí)驗(yàn)中對YOLOv4-SPP3進(jìn)行不同程度的修剪,表2記錄了YOLOv4-SPP3檢測模型的壓縮結(jié)果.從圖4(a)中可以看出模型YOLOv4-SPP3的mAP隨著剪枝率的提高呈加速降低的趨勢.由圖4(b)中可以看出模型參數(shù)都處于較小的空間,并且參數(shù)大小沒有明顯的區(qū)別.對比圖4(c)中YOLOv4-SPP3-94、YOLOv4-SPP3-95、YOLOv4-SPP3-96的評價指標(biāo)可知Total BFLOPS、Inference time(ms)、Volume(MB)隨著剪枝率的升高成均勻下降的趨勢,綜合圖4(a)與圖4(b)的評價指標(biāo)選擇YOLOv4-SPP3-95作為本次實(shí)驗(yàn)得出的最終優(yōu)化算法,即TidyYOLOv4-SPP3.
表2 模型壓縮結(jié)果
(a)mAP
(b)Parameters
(c)Total BFLOPS、Inference time、Volume的性能指標(biāo)圖4 YOLOv4-SPP3修剪得出的評價指標(biāo)對比
模型檢測分析:如表1所示,YOLOv4-SPP3的檢測指標(biāo)最佳,但需要消耗更多的運(yùn)行資源.因此優(yōu)化出“精細(xì)”的TidyYOLOv4-SPP3檢測模型來減少運(yùn)行資源的消耗.YOLOv4-SPP3與TidyYOLOv4-SPP3相比其mAP沒有明顯的區(qū)別, 但是Total BFLOPS縮小約了293.82,Inference time減少了80.77 ms,Parameters減少了62.79 M,Volume減少了242.07 MB.為了證明TidyYOLOv4-SPP3模型的有效性進(jìn)行了可視化檢測如圖5和圖6,兩個檢測器都可以在該幀圖片上精確的檢測出感興趣區(qū)域的對象.
圖5 YOLOv4-SPP3檢測效果
圖6 TidyYOLOv4-SPP3檢測效果
本文提出了一種復(fù)雜城市交通道路中的視覺目標(biāo)檢測算法TidyYOLOv4-SPP3.實(shí)驗(yàn)在YOLOv4的三個檢測頭前添加SPP來提高網(wǎng)絡(luò)的特征提取.結(jié)合層與通道的剪枝策略來修剪YOLOv4-SPP3,消除學(xué)習(xí)模型的冗余,精簡更加有效的模型.通過L1稀疏正則化來施加通道比例因子,自動識別需要剪枝的部分,再進(jìn)行修剪.根據(jù)這種方式在原模型YOLOv4的基礎(chǔ)上優(yōu)化出TidyYOLOv4-SPP模型.TidyYOLOv4-SPP3與YOLOv4相比,檢測速度提高了76.38%,檢測精度沒有明顯變化,優(yōu)化模型的空間體積縮小了93.35%.由此判定TidyYOLOv4-SPP3比YOLOv4更適合應(yīng)用在無人駕駛對復(fù)雜城市交通中障礙物的視覺檢測.