劉 毅 安 移
(上海理工大學(xué)光電信息與計(jì)算機(jī)工程學(xué)院 上海 200093)
交通標(biāo)志識(shí)別是目前計(jì)算機(jī)視覺(jué)識(shí)別在實(shí)際場(chǎng)景的應(yīng)用之一,也是輔助自動(dòng)駕駛[1]至關(guān)重要的環(huán)節(jié),在檢測(cè)物體方面看和思考的機(jī)制應(yīng)用到了計(jì)算機(jī)視覺(jué)識(shí)別實(shí)例化中,隨著深度學(xué)習(xí)和圖像處理的發(fā)展王[2]等將傳統(tǒng)的特征提?。ㄈ鏢IFT、HOG特征等)換成了深度卷積網(wǎng)絡(luò)提取的特征;隨后為了減少重復(fù)卷積和推算時(shí)間提出Fast R-CNN 算法[3]?;?于 區(qū) 域 全 卷 積 網(wǎng) 絡(luò)(R-FCN)方 法Light-Head R-CNN[4]都是二階段方法,二階段目標(biāo)檢測(cè)算法的檢測(cè)精度雖然比一階段法更高,但一階段法在檢測(cè)速度上具有更快更優(yōu)的表現(xiàn)。作為一階段算法的代表YOLOv2[5]設(shè)計(jì)了一個(gè)DarkNet-19的網(wǎng)絡(luò)結(jié)構(gòu)并使用錨點(diǎn)框用來(lái)預(yù)測(cè)邊界框,大大提升了模型的速率。隨后Redmon 等在YOLOv2 的基礎(chǔ)上提出YOLOv3[6],引入二進(jìn)制交叉熵?fù)p失來(lái)提高檢測(cè)精度,但對(duì)低級(jí)信息融合不充分,針對(duì)這一問(wèn)題Chen等提出YOLOv3-dense[7]實(shí)現(xiàn)多樣化的感受野來(lái)提升特征信息融合能力。Gkioxari等針對(duì)特征圖識(shí)別和分割中出現(xiàn)正負(fù)樣本不均衡、置信度差的問(wèn)題,提出Mask R-CNN[8]算法使模型均衡性得到改進(jìn)。Alexey 等提出的YOLOv4 算法[9]引入空間金字塔池網(wǎng)絡(luò)結(jié)構(gòu)來(lái)提升識(shí)別速率和檢測(cè)精度,但導(dǎo)致原始圖中的上下文信息損失嚴(yán)重。
通過(guò)以上分析,本文提出一種改進(jìn)YOLOv4-tiny交通標(biāo)志識(shí)別算法LYOLOv4(Loop YOLOv4),為了提升模型檢測(cè)速度和性能,引入深度可分離卷積塊減少參數(shù)量和計(jì)算量,在特征提取和融合時(shí)采用遞歸特征金字塔(RFP)建立在特征金字塔網(wǎng)絡(luò)(FPN)的基礎(chǔ)上,將遞歸結(jié)構(gòu)展開(kāi)為一個(gè)順序?qū)崿F(xiàn),獲得了一個(gè)觀察圖像兩次或更多次的對(duì)象檢測(cè)網(wǎng)絡(luò)模型。使用標(biāo)簽平滑(label smoothing)[10]策略優(yōu)化網(wǎng)絡(luò)的損失函數(shù)。
YOLOv4-tiny[11]是在YOLOv4 的基礎(chǔ)上進(jìn)行改進(jìn),具有更高效快捷的實(shí)時(shí)目標(biāo)檢測(cè)速度,使用的是1080Ti GPU 檢測(cè)速度每秒可達(dá)到371 幀,YOLOv4-tiny 使用的是CSPDarknet53-tiny 替代原有YOLOv4 使用的CSPDarknet53 作為主干網(wǎng)絡(luò),該網(wǎng)絡(luò)結(jié)構(gòu)在跨級(jí)部分網(wǎng)絡(luò)中使用的是CSPBlock 模塊,該模塊可以將提取的特征圖分為兩部分,并通過(guò)跨階段殘差網(wǎng)絡(luò)塊將提取的兩部分合并。當(dāng)梯度流可以在不同網(wǎng)絡(luò)路徑進(jìn)行傳輸時(shí)就增加梯度信息的相關(guān)性和差異性。YOLOv4-tiny 改進(jìn)了激活函數(shù),LeakyReLU替換了原有的Mish激活函數(shù)提升性能。
特征金子塔(FPN)采用的是自上而下的路徑順序組合不同尺度的特征,PANet[12]基于FPN 增加了另一條自下而上的路徑;BiFPN[13]在PANet 基礎(chǔ)添加一條額外的邊在不增加耗時(shí)的同時(shí)融合更多的特征。G-FRNet[14]則是增加了帶有門(mén)控單元的反饋,NAS-FPN[15]通過(guò)神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索尋找最佳的FPN 結(jié)構(gòu),但模糊信息的前向傳遞會(huì)限制后面的精準(zhǔn)識(shí)別。為了達(dá)到更精準(zhǔn)快速地識(shí)別本文采用最近Qian 等提出特征融合策略更復(fù)雜的遞歸特征金字塔(RFP)替代原有的特征金字塔網(wǎng)絡(luò)(FPN)作為特征增強(qiáng)網(wǎng)絡(luò)。
深度分離可卷積[16]包括逐通道卷積和逐點(diǎn)卷積,其中逐通道卷積的一個(gè)卷積核負(fù)責(zé)一個(gè)通道,一個(gè)通道只能被一個(gè)卷積核卷積,提取到的每個(gè)單通道的內(nèi)部特征再繼續(xù)進(jìn)行逐點(diǎn)卷積,它的卷積核的尺寸為1×1×C,C 為上一層的通道數(shù)。卷積運(yùn)算會(huì)將上一步的特征圖在深度方向上進(jìn)行加權(quán)組合,有幾個(gè)卷積核會(huì)生成幾個(gè)新的特征圖。深度分離可卷積有效減少了模型的參數(shù),計(jì)算量得到顯著減小,有效提升算法的效率。
LYOLOv4-tiny 模型整體執(zhí)行流程是:引入可分離卷積LCSPDarknet-tiny 作為特征提取網(wǎng)絡(luò),提取三個(gè)不同尺度特征圖傳給RFP多尺度特征融合,并且將來(lái)自FPN 層額外反饋再傳送給自下而上的主干層,可重復(fù)對(duì)特征圖進(jìn)行回歸和預(yù)測(cè)。采用權(quán)重衰減、標(biāo)簽平滑策略優(yōu)化損失函數(shù)防止過(guò)擬合,使用Mosaic數(shù)據(jù)增強(qiáng)等方法擴(kuò)充數(shù)據(jù)集。
由圖1 可知主干特征提取網(wǎng)絡(luò)引入兩個(gè)可分離卷積塊替換原有的標(biāo)準(zhǔn)卷積塊減少模型的參數(shù)量,特征提取過(guò)程中的圖層中MCSP 殘差塊優(yōu)化了網(wǎng)絡(luò)層數(shù)并降低梯度爆炸和消失的問(wèn)題。最終得到的特征圖僅有原本圖像的1/32,深度可分離卷積塊結(jié)構(gòu)如圖2所示。
圖1 LYOLOv4-tiny網(wǎng)絡(luò)結(jié)構(gòu)圖
圖2 深度可分離卷積塊
RFP實(shí)現(xiàn)了一個(gè)看和思考兩次的順序設(shè)計(jì),其中自下而上的主干和FPN運(yùn)行多次,它們的輸出特性依賴于前面步驟中的輸出特性,在將特征轉(zhuǎn)換連接自下而上的主干之前進(jìn)行編碼,加入空洞空間卷積池化金字塔(ASPP))[17]對(duì)所給定的輸入以不同采樣率的空洞卷積并行采樣,實(shí)現(xiàn)了多個(gè)比例捕捉圖像的上下文。將遞歸結(jié)構(gòu)展開(kāi)為一個(gè)順序?qū)崿F(xiàn),可以觀察圖像兩次或者更多次的對(duì)象檢測(cè)器主干如圖3所示。
圖3 RFP展開(kāi)為一個(gè)兩步順序網(wǎng)絡(luò)
LYOLOv4 目標(biāo)檢測(cè)算法的損失函數(shù)計(jì)算式如式(1)所示:
loss1置信度損失函數(shù)(Lconf)使用判別器執(zhí)行域自適應(yīng)存在一個(gè)問(wèn)題是鑒別器給不同的樣本分配相同的重要性特征,從而導(dǎo)致了負(fù)轉(zhuǎn)移,為了解決這個(gè)問(wèn)題將熵應(yīng)用到公式,如式(2)所示:
其中S2表示特征圖中的網(wǎng)格數(shù),表示一個(gè)先驗(yàn)框?qū)ο?,B 表示網(wǎng)格中邊界框數(shù)量,和C i分別表示的是預(yù)測(cè)置信度和真實(shí)置信度,obj 是一個(gè)重量參數(shù)。
loss2類(lèi)別損失函數(shù)(Lcls)判斷預(yù)測(cè)框與真實(shí)框之間的誤差,采用交叉熵算是函數(shù)進(jìn)行判斷,如式(3)所示:
其中S2代表的是特征圖的上網(wǎng)格數(shù)量(S×S),當(dāng)?shù)趇 網(wǎng)格上的第j 先驗(yàn)框負(fù)責(zé)檢測(cè)當(dāng)前對(duì)象時(shí)Wijobj=1,否則Wijobj=0,z 為 目 標(biāo) 的 類(lèi) 別,pi(z) 和pi(z)分別表示當(dāng)前檢測(cè)對(duì)象的真實(shí)概率和預(yù)測(cè)概率。在訓(xùn)練過(guò)程中為抑制過(guò)擬合現(xiàn)象和提高模型的精度和性能,本文算法加入了標(biāo)簽平滑策略,加入label Smoothing 前后真實(shí)概率的分布公式如式(4)所示:
其中ε為超參數(shù)取0.1,y 表示真實(shí)類(lèi)別。loss3邊界框定位損失函數(shù)(Lclou)如式(5)所示,CIoU是預(yù)測(cè)邊界框和真實(shí)邊界框之間的交集不是并集,CIoU對(duì)尺度變化敏感,收斂速度更快并且讓別界框的回歸更加穩(wěn)定。
其中IoU 是交并比,ρ2(B,Bgt) 表示真實(shí)框和邊界框中心之間的歐式距離,β為權(quán)重函數(shù),V 是衡量邊界框長(zhǎng)寬比參數(shù),C2表示預(yù)測(cè)框與真實(shí)框組成的最小矩形區(qū)域的對(duì)角線距離長(zhǎng)度。
本文算法是基于Python3.7 的Ubuntu18.04 系統(tǒng)環(huán)境下使用PyTorch1.7.1 框架實(shí)現(xiàn),GPU GeForceRTX2080Ti。
本文實(shí)驗(yàn)數(shù)據(jù)集為T(mén)T100K 數(shù)據(jù),共9350 幅圖像包含196 類(lèi)交通標(biāo)志。在檢測(cè)模型訓(xùn)練之前,為了評(píng)估該模型的泛化能力隨機(jī)選取20%的圖像(1870)圖像作為測(cè)試集。在模型訓(xùn)練過(guò)程中,訓(xùn)練集和驗(yàn)證集按照9∶1 隨機(jī)劃分,其中驗(yàn)證集則是用來(lái)優(yōu)化和調(diào)整算法模型的超參數(shù)。為了獲得更好的訓(xùn)練效果采用Mosaic 數(shù)據(jù)增強(qiáng)如圖4 所示,通常是對(duì)訓(xùn)練樣本的圖像進(jìn)行隨機(jī)縮放、隨機(jī)裁減翻轉(zhuǎn)拼接、以及不同色域變化,對(duì)訓(xùn)練的數(shù)據(jù)集是一定的擴(kuò)充,并且模型的魯棒性得到提升。
圖4 Mosaic數(shù)據(jù)增強(qiáng)
根據(jù)遷移學(xué)習(xí)[18]的思想方法,首先將COCO 數(shù)據(jù)集上預(yù)訓(xùn)練YOLOv4-tiny 的特征提取網(wǎng)絡(luò)CSPDarknet53-tiny 參數(shù)初始化本文算法中提高模型訓(xùn)練的效率,訓(xùn)練第一步只對(duì)RFP 網(wǎng)絡(luò)參數(shù)微調(diào),學(xué)習(xí)率初始值設(shè)為1e-3,批量大小設(shè)為64,weight_decay(權(quán)重衰減參數(shù))=5e-4 訓(xùn)練50 輪,第二步訓(xùn)練MYOLOv4-tiny所有的網(wǎng)絡(luò)參數(shù)學(xué)習(xí)率初始值設(shè)為1e-4,批量大小設(shè)為32,weight_decay=5e-6 訓(xùn) 練100 輪,通過(guò)分析損失函數(shù)變化修改學(xué)習(xí)率變化策略找到最優(yōu)解。將LYOLOv4-tiny 模型40000 次迭代訓(xùn)練如圖5所示,損失值在前10000次明顯衰減,之后損失值緩慢衰減下降呈現(xiàn)收斂趨勢(shì)。
圖5 LYOLOv4-tiny損失曲線
特征提取網(wǎng)絡(luò)引入深度可分離卷積后網(wǎng)絡(luò)參數(shù)和大小得到顯著降低,參數(shù)量減低到原來(lái)CSPDarknet53-tiny 的56%并且mAP 提高了0.5%,二者對(duì)比如表1所示。
表1 引入深度可分離卷積前后對(duì)比
在特征提取網(wǎng)絡(luò)主干LCSPDarknet-tiny 下參數(shù)和環(huán)境一致的條件,對(duì)不同多尺度特征融合網(wǎng)絡(luò)比較如表2,可知FPN 只能單向端到端訓(xùn)練檢測(cè)精度較低,NAS-FPN 跨范圍融合特性改善分辨率但檢索空間過(guò)小,PANet 在FPN 基礎(chǔ)上增加從下而上融合路徑,BiFPN 尋找一個(gè)有效的block 重復(fù)疊加但精度都未得到明顯提升,G-FRNet 參數(shù)量過(guò)多,RFP在特征融合方法中無(wú)論是預(yù)測(cè)精度、參數(shù)量都優(yōu)于其他方法。
表2 不同多尺度特征融合網(wǎng)絡(luò)對(duì)比
本文算法和YOLOv4-tiny 在相同環(huán)境條件下對(duì)比交通標(biāo)志目標(biāo)識(shí)別的P-R 曲線如圖6 所示。本文算法檢置信度和性能均優(yōu)于原算法YOLOv4-tiny,對(duì)相同目標(biāo)檢測(cè)如圖7所示中小目標(biāo)和遮擋目標(biāo):限速、禁止鳴笛、禁止停車(chē)、行人慢行標(biāo)志檢測(cè)效果可知改進(jìn)算法檢測(cè)速度均優(yōu)于原算法。
圖6 P-R曲線對(duì)比
圖7 算法改進(jìn)前后對(duì)比
通過(guò)表3 列出目前幾種主要算法在TT100K 數(shù)據(jù)集輸入圖像尺寸相同條件下mAP 和FPS 的指標(biāo)對(duì)比,可以得到Faster R-CNN 算法mAP 與本文相近,但檢測(cè)速度FPS 過(guò)低。SSD 算法前幾年是主流目標(biāo)檢測(cè)算法,但隨著YOLOv3和YOLOv4推出,檢測(cè)速度和精度都低于這兩者,而相比于YOLOv3 算法本文AP 值下降了0.6%,但mAP 值提升了5.8%,并且檢測(cè)速度提升了50%,YOLOv4 雖在檢測(cè)精度達(dá)到87.6%,相比本文算法有2.5%的少量提升,但不屬于輕量級(jí)檢測(cè)算法,過(guò)多的參數(shù)和計(jì)算量導(dǎo)致FPS 只有23,只有本文改進(jìn)算法的31%,很難滿足交通標(biāo)志識(shí)別的要求。
表3 不同算法性能比較
本文提出基于YOLOv4-tiny 基礎(chǔ)上改進(jìn)的輕量級(jí)實(shí)時(shí)目標(biāo)檢測(cè)模型LYOLOv4-tiny,目的是解決當(dāng)前交通標(biāo)志識(shí)別方法精度低、速度慢以及模型參數(shù)冗余的問(wèn)題。在特征提取階段引入深度可分離卷積,有效減少參數(shù)量和計(jì)算量,融合階段采用RFP 結(jié)構(gòu),RFP 使用空洞空間卷積池化金字塔和FPN 融合模塊執(zhí)行遞歸計(jì)算,可獲得更豐富的特征信息。交通標(biāo)志檢測(cè)多任務(wù)聯(lián)合損失過(guò)程中將標(biāo)簽平滑策略和CIoU 損失函數(shù)相結(jié)合進(jìn)行優(yōu)化,標(biāo)簽平滑提高圖像分類(lèi)的準(zhǔn)確性,Mosaic數(shù)據(jù)增強(qiáng)方法提高了網(wǎng)絡(luò)的魯棒性。實(shí)驗(yàn)結(jié)果表明,本文算法在交通標(biāo)志檢測(cè)精度相比于YOLOv4-tiny 算法mAP提升了4.6%,F(xiàn)PS提升了4%,并且模型大小僅為原算法的56%。LYOLOv4-tiny 在各種場(chǎng)景下能滿足交通標(biāo)志檢測(cè)要求。