陳 哲,程艷云
(南京郵電大學(xué) 自動(dòng)化學(xué)院、人工智能學(xué)院,江蘇 南京 210046)
近年,一般的物體檢測(cè)在PASCAL VOC和COCO數(shù)據(jù)集上取得了不錯(cuò)的成就,但由于含交通標(biāo)志的場(chǎng)景圖中目標(biāo)小,因此這些一般物體的檢測(cè)方法很少能直接應(yīng)用于交通標(biāo)志檢測(cè)的任務(wù)中。本文的檢測(cè)方法都是基于卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)來(lái)進(jìn)行研究的。
Lu等[1]對(duì)于街景中交通標(biāo)志的檢測(cè)和分類問(wèn)題,提出一種基于注意力模型的檢測(cè)框架。注意力模型被設(shè)計(jì)成為適當(dāng)比例的候選區(qū)域,以更好地定位和分類小目標(biāo),雖然達(dá)到了86.8%的F1-measure,但檢測(cè)速度只有3.85 FPS;Wang等[2]提出基于級(jí)聯(lián)掩碼的小目標(biāo)檢測(cè)框架方法來(lái)解決小對(duì)象特征丟失的問(wèn)題。首先對(duì)多個(gè)分辨率圖像從低到高通過(guò)級(jí)聯(lián)的方式丟棄背景區(qū)域,利用Faster R-CNN[3]在前景區(qū)域內(nèi)檢測(cè)目標(biāo),檢測(cè)速度也僅為9.6 FPS。
以上的檢測(cè)算法都是采用兩階段檢測(cè),不能滿足實(shí)時(shí)檢測(cè)場(chǎng)景,這對(duì)于應(yīng)用于自動(dòng)駕駛領(lǐng)域的目標(biāo)檢測(cè)是十分不友好的。
現(xiàn)如今,隨著特征融合和損失函數(shù)的不斷優(yōu)化,單階段檢測(cè)的準(zhǔn)確性可以達(dá)到兩階段的類似效果。一些學(xué)者采用單階段檢測(cè)算法SSD[4]和YOLOv3[5]對(duì)交通標(biāo)志進(jìn)行檢測(cè),F(xiàn)1-measure分別達(dá)到了62.8%和70.7%,檢測(cè)速度分別達(dá)到了19.23 FPS和22.22 FPS。相比于兩階段檢測(cè),速度得到了很大的提升,但精度不高;為了提高精度,Zhang等[6]使用了增強(qiáng)型的YOLOv3(MSA_YOLOv3)進(jìn)行檢測(cè)。該方法引入多尺度空間金字塔匯集塊,并設(shè)計(jì)一條自底向上的增強(qiáng)型路徑,通過(guò)利用低層的細(xì)粒度特征實(shí)現(xiàn)目標(biāo)的精確定位,該方法的F1-measure為81.8%,檢測(cè)速度達(dá)到23.81 FPS。雖然該方法的精度得到了提升,但大大增加了模型計(jì)算的復(fù)雜度。
本文針對(duì)在交通標(biāo)志中常見(jiàn)的檢測(cè)目標(biāo)小和自然環(huán)境干擾的問(wèn)題,通過(guò)對(duì)FCOS(fully convolutional one-stage object detection)[7]算法進(jìn)行研究和改進(jìn),設(shè)計(jì)出一個(gè)檢測(cè)精度和速度兼顧的單階段檢測(cè)算法。主要工作包括:
(1)在特征提取網(wǎng)絡(luò)ResNet-50[8]中引入注意力機(jī)制CBAM(convolutional block attention module)[9],更大程度上利用有效特征,減少了正負(fù)樣本不均衡的現(xiàn)象;
(2)引入swish函數(shù)[10]避免了一定程度的特征丟失現(xiàn)象,提高了檢測(cè)效率;
(3)此外通過(guò)在特征加強(qiáng)網(wǎng)絡(luò)上添加一個(gè)輕量級(jí)的多尺度特征融合來(lái)保護(hù)不同層的特征,對(duì)提高檢測(cè)精度和速度方面有很大的幫助;
(4)原FCOS算法中所用到的數(shù)據(jù)集會(huì)出現(xiàn)目標(biāo)框重疊的情況,所以對(duì)模糊樣本進(jìn)行了處理,但本文的數(shù)據(jù)集不會(huì)出現(xiàn)模糊樣本,因此本文對(duì)該處理進(jìn)行了有效的刪減,減少了不必要的計(jì)算量。
首先,將交通標(biāo)志數(shù)據(jù)集放入引用注意力機(jī)制CBAM的ResNet-50網(wǎng)絡(luò)中初步進(jìn)行特征提取,得到C3、C4、C5有效特征層;然后調(diào)整維度大小,將有效特征層C3、C4、C5進(jìn)行卷積操作得到P3、P4、P5特征層,將P5、P6進(jìn)行上采樣分別得到P6、P7特征層;為了保護(hù)不同大小的特征,本文將得到的P3~P7特征層進(jìn)行通道數(shù)調(diào)整后,進(jìn)行一次多尺度特征融合;最后將得到的特征進(jìn)行分類和回歸操作。對(duì)于遠(yuǎn)離目標(biāo)中心點(diǎn)所出現(xiàn)的低質(zhì)量的預(yù)測(cè)框,本文引入了center-ness來(lái)進(jìn)行抑制;此外,本文的損失函數(shù)由分類損失focal loss、回歸損失IOU loss和center-ness損失BCE構(gòu)成。本文的整體結(jié)構(gòu)如圖1所示。
圖1 整體結(jié)構(gòu)
目前的殘差網(wǎng)絡(luò)ResNet系列主要有ResNet-18、ResNet-34、ResNet-50和ResNet-101等。由于本文采用的數(shù)據(jù)集的圖片中目標(biāo)較小,因此需要選取較深的特征網(wǎng)絡(luò)。經(jīng)過(guò)實(shí)驗(yàn)分析,ResNet-50網(wǎng)絡(luò)所達(dá)到的效果不錯(cuò),而且相對(duì)于ResNet-101耗存小。因此,本文所用到特征提取的主干網(wǎng)絡(luò)是ResNet-50。
ResNet-50有Conv Block和Identity Block兩個(gè)基本塊,其中,Conv Block可以改變輸出特征層的寬高和通道數(shù);Identity Block是用來(lái)加深網(wǎng)絡(luò),改變通道數(shù)。如圖1所示,對(duì)于特征圖C3、C4、C5中Fi的每個(gè)位置(x,y)都可以映射到輸入圖像,計(jì)算公式如下
(1)
其中,s代表特征圖Fi的步長(zhǎng)。
由于本文所采用的TT100K數(shù)據(jù)集中圖片的尺寸是2048*2048,交通標(biāo)志占整個(gè)圖像的比例大約在0.2%~1%左右。和一般物體檢測(cè)相比,交通標(biāo)志檢測(cè)的對(duì)象普遍很小。而且原FCOS算法在檢測(cè)中會(huì)出現(xiàn)的大量正負(fù)樣本不均衡現(xiàn)象,因此需要對(duì)有效特征進(jìn)行保護(hù)。因此本文在ResNet-50網(wǎng)絡(luò)的基礎(chǔ)上加入了注意力模塊CBAM,如圖1所示。值得注意的是,在添加CBAM模塊時(shí),為了維持ResNet-50的網(wǎng)絡(luò)結(jié)構(gòu),我們將CBAM加在ResNet-50網(wǎng)絡(luò)的最后卷積層和第一卷積層。
圖2 CBAM中的通道注意力模塊(上)和空間注意力模塊(下)
此外,本文在ResNet-50網(wǎng)絡(luò)的每一層引入了swish激活函數(shù),替換原來(lái)的ReLU激活函數(shù)
f(x)=x·σ(βx)
(2)
其中,β為可訓(xùn)練參數(shù),可通過(guò)模型控制插值程度,當(dāng)β=0時(shí),swish激活函數(shù)變?yōu)榫€性函數(shù);當(dāng)β等于∞時(shí),swish激活函數(shù)相當(dāng)于ReLU函數(shù)。故swish函數(shù)可以看作是介于線性核函數(shù)和ReLU函數(shù)之間的平滑函數(shù)。
swish函數(shù)具備無(wú)上界有下界、平滑、非單調(diào)的特性,有減少梯度爆炸和梯度消失的作用,在模型效果上優(yōu)于ReLU函數(shù)。ReLU激活函數(shù)和swish激活函數(shù)如圖3所示。
圖3 swish激活函數(shù)和ReLU激活函數(shù)對(duì)比
因EfficientDet[11]檢測(cè)器中的BiFPN影響,又考慮到檢測(cè)的實(shí)時(shí)性,本文采用一個(gè)輕量級(jí)多尺度特征融合提高檢測(cè)器性能。這是由于真實(shí)邊框的尺寸不同,采用此方法是為了更清晰判斷目標(biāo)對(duì)象位于哪一層特征層。如圖1所示,在整體結(jié)構(gòu)圖中的P3、P4、P5通過(guò)是由C3、C4、C5特征圖和1*1卷積獲取的有效特征層,從上而下連接,P6、P7層是高語(yǔ)義特征層,其中P6和P7分別通過(guò)P5和P6應(yīng)用一個(gè)步長(zhǎng)為2的卷積層而產(chǎn)生,由此構(gòu)成了一個(gè)特征金字塔網(wǎng)絡(luò)FPN[12]。之后對(duì)多級(jí)特征進(jìn)行融合,這里的Pi′(i=3,4,5,6,7) 是Pi(i=3,4,5,6,7) 經(jīng)過(guò)1*1卷積調(diào)整通道數(shù)獲得,之后,對(duì)每一層進(jìn)行上采樣和下采樣,具體結(jié)構(gòu)如圖1所示,公式如下
Pi″=upsample(Pi′)⊕P(i+1)′i=4,5,6
(3)
Piout=upsample(P(i+1)″)⊕Pi′i=3
(4)
Piout=downsample(P(i-1)out)⊕Pi″i=4,5,6
(5)
Piout=downsample(P(i-1)out)⊕Pi′i=7
(6)
其中,Piout(i=3,4,5,6,7) 代表Pi(i=3,4,5,6,7) 的有效層,用于后面的分類和回歸操作。
對(duì)于本文的訓(xùn)練損失函數(shù),我們?cè)O(shè)置為
(7)
在損失函數(shù)中,焦點(diǎn)損失函數(shù)是在標(biāo)準(zhǔn)交叉熵?fù)p失(cross entropy loss)函數(shù)基礎(chǔ)上增加一個(gè)調(diào)制因子 (1-pt)γ, 用來(lái)解決單階段檢測(cè)中尤為顯著的類別不均衡的情況,其中,標(biāo)準(zhǔn)交叉熵?fù)p失公式如下
(8)
其中,y代表樣本的標(biāo)簽,當(dāng)為正樣本時(shí),y=1,為負(fù)樣本時(shí),y=0,p∈[0,1] 表示y=1時(shí)所對(duì)應(yīng)類別的預(yù)測(cè)概率。因此,焦點(diǎn)損失函數(shù)的公式為
FL(pt)=-αt(1-pt)γlog(pt)
(9)
其中,γ是調(diào)制參數(shù),且γ≥0,通過(guò)減少易分類樣本的權(quán)重,從而使得模型在訓(xùn)練時(shí)更專注于難分類的樣本,α是平衡變量,當(dāng)為正樣本時(shí),αt=α,當(dāng)為負(fù)樣本時(shí),αt=1-α,通過(guò)設(shè)定α的值來(lái)控制正負(fù)樣本對(duì)總損失的共享權(quán)重,這里γ=2,α=0.25。
如果位置(x,y)落入任何一個(gè)真實(shí)邊框,并且該位置的類標(biāo)簽c*是真實(shí)邊框的類標(biāo)簽,則該位置是正樣本,否則為負(fù)樣本或背景類(c*=0),除此之外,點(diǎn)位置到邊框四邊的距離分別為l、t、r、b,如圖4所示。
圖4 點(diǎn)位置到邊框四邊的距離
對(duì)于低質(zhì)量的樣本,本文通過(guò)一個(gè)簡(jiǎn)單有效的方法進(jìn)行抑制,如結(jié)構(gòu)圖所示,添加了一個(gè)中心度centerness,定義為
(10)
其范圍在[0,1]之間,使用標(biāo)準(zhǔn)交叉熵?fù)p失函數(shù)來(lái)訓(xùn)練,損失被加到式(7)的損失函數(shù)中,在測(cè)試時(shí),通過(guò)將預(yù)測(cè)的中心度與相應(yīng)的分類分?jǐn)?shù)相乘來(lái)計(jì)算最終分?jǐn)?shù),對(duì)于低分?jǐn)?shù)的邊界框最終在非極大抑制(NMS)被過(guò)濾掉,因此,它可以用來(lái)降低遠(yuǎn)離對(duì)象中心邊界分?jǐn)?shù)的權(quán)重,顯著提高了檢測(cè)的性能。
本實(shí)驗(yàn)所采用的數(shù)據(jù)集是清華大學(xué)和騰訊公司聯(lián)合推出的TT100K(tsinghua-tencent 100K)數(shù)據(jù)集[15]。該數(shù)據(jù)集的圖像是在街景中獲取的,具有多樣性,囊括了光照、視角和天氣條件的巨大變化,相對(duì)于其它數(shù)據(jù)集(例如:GTSRB、CTSDB、CCTSDB)更接近于真實(shí)的交通道路場(chǎng)景。因此,本文選擇此數(shù)據(jù)集來(lái)進(jìn)行實(shí)驗(yàn)。TT100K數(shù)據(jù)集及部分檢測(cè)結(jié)果如圖5所示。
圖5 TT100K數(shù)據(jù)集及檢測(cè)(部分)
由于TT100K數(shù)據(jù)集實(shí)際上標(biāo)注了100多個(gè)類別,考慮到類別不均衡會(huì)引起在深度學(xué)習(xí)訓(xùn)練中所出現(xiàn)部分類別的過(guò)擬合現(xiàn)象,影響訓(xùn)練的精度,因此,本文選取了單個(gè)類別的圖像數(shù)據(jù)大于100的45個(gè)類別來(lái)訓(xùn)練。類別如圖6所示。
圖6 實(shí)例超過(guò)100的類別
2.2.1 實(shí)驗(yàn)環(huán)境與設(shè)置
本實(shí)驗(yàn)使用兩塊英偉達(dá)的2080ti的顯卡。采用Ubuntu 18.04的操作系統(tǒng),另外配合顯卡的CUDA 10.1和CUDNN 7.6.3。該實(shí)驗(yàn)的代碼編寫(xiě)是在Pytorch框架進(jìn)行,使用同步隨機(jī)梯度下降(SGD)優(yōu)化器,初始學(xué)習(xí)率設(shè)置為0.01,批處理大小設(shè)置為8,在迭代60 K和80 K時(shí),學(xué)習(xí)率分別降低了10倍,權(quán)重衰減和動(dòng)量分別設(shè)置為0.0001和0.9。本文使用ImageNet[16]預(yù)訓(xùn)練權(quán)重進(jìn)行初始化,并將輸入圖片的短邊設(shè)置為800,長(zhǎng)邊小于或等于1333。
2.2.2 結(jié)果分析
首先,本文是使用F1-measure評(píng)價(jià)指標(biāo)來(lái)評(píng)價(jià)模型的好壞,公式如下
(11)
其中,P是精準(zhǔn)率,R是召回率。F1-measure是精準(zhǔn)率和召回率的加權(quán)調(diào)和平均。F1-measure值越高,說(shuō)明實(shí)驗(yàn)結(jié)果越好。
首先,考慮到原FCOS算法中所用到的數(shù)據(jù)集和本文所用到的數(shù)據(jù)集的差異性,本文并不需要考慮到目標(biāo)框重疊的情況,在實(shí)驗(yàn)中,本文以原本的算法和刪除對(duì)模糊樣本處理的算法進(jìn)行了對(duì)比,發(fā)現(xiàn)刪除模糊樣本的處理并不會(huì)影響整體的性能,為了減少計(jì)算量,本文對(duì)該處理進(jìn)行了有效的刪減,見(jiàn)表1。
此外,本文從注意力機(jī)制CBAM、swish激活函數(shù)、多尺度特征融合3個(gè)部分來(lái)分析其有效性,見(jiàn)表2。
表1 模糊樣本處理前后對(duì)比
表2 有效性分析
由表2可知,在僅用FCOS算法對(duì)TT100K數(shù)據(jù)集進(jìn)行檢測(cè),所達(dá)到的F1-measure是76.4%,當(dāng)我們?cè)谔卣魈崛【W(wǎng)絡(luò)中加入了注意力模塊CBAM和swish激活函數(shù)時(shí),這時(shí)的F1-measure提高了2.3%,和ResNet-50網(wǎng)絡(luò)相比,帶有注意力的ResNet-50網(wǎng)絡(luò)可以有效提高檢測(cè)的精度;當(dāng)我們?cè)贔PN中進(jìn)行了多尺度特征融合時(shí),這時(shí)的F1-measure和FCOS算法相比,提高了5.1%,顯著提高了檢測(cè)器的檢測(cè)性能;最后,經(jīng)過(guò)這三部分的改進(jìn),最終的F1-measure達(dá)到了83.2%,和最初的FCOS算法相比,整整提高了6.8%。
為了驗(yàn)證所提方法的有效性,本文將我們的方法和兩階段檢測(cè)算法Faster R-CNN、單階段檢測(cè)算法SSD和MSA_YOLOv3進(jìn)行對(duì)比分析,見(jiàn)表3。本文的方法與兩階段經(jīng)典算法Faster R-CNN相比,在速度和精度方面都達(dá)到了兩階段檢測(cè)算法的水平,與一階段算法相比,本文的檢測(cè)方法在小、中、大目標(biāo)分別得到了提升,其中,小目標(biāo)的F1-mea-sure 對(duì)比于近期所提出的MSA-YOLOv3算法提升了2.2%,驗(yàn)證了本文的多尺度特征融合對(duì)小目標(biāo)檢測(cè)的有效性。
最后,為了更直觀的觀察各個(gè)類別檢測(cè)的好壞,我們對(duì)本實(shí)驗(yàn)所檢測(cè)的45類交通標(biāo)志分別與其它方法進(jìn)行對(duì)比分析,如圖7所示,具體數(shù)據(jù)見(jiàn)表4。
表3 不同尺寸的交通標(biāo)志的檢測(cè)結(jié)果
圖7 不同方法的檢測(cè)結(jié)果對(duì)比
表4 TT100K數(shù)據(jù)集中每個(gè)類別的F1-measure對(duì)比
表4(續(xù))
為了提高交通標(biāo)志檢測(cè)的準(zhǔn)確性和實(shí)時(shí)性,本文以提出的FCOS算法為基礎(chǔ),設(shè)計(jì)出一個(gè)多尺度特征融合的單階段無(wú)錨檢測(cè)器,用來(lái)解決交通標(biāo)志檢測(cè)出現(xiàn)的檢測(cè)目標(biāo)小、自然環(huán)境干擾等問(wèn)題。通過(guò)引入注意力模塊CABM來(lái)聚合有效特征,并在特征加強(qiáng)網(wǎng)絡(luò)中進(jìn)行一個(gè)輕量級(jí)的多尺度特征融合,更加完整地保存了相關(guān)特征。大量的實(shí)驗(yàn)結(jié)果表明了該方法對(duì)交通標(biāo)志檢測(cè)的有效性,在檢測(cè)速度方面,本文算法優(yōu)于兩階段檢測(cè)算法,在檢測(cè)精度方面,本文算法的檢測(cè)精度也不遜于兩階段算法,并且,和不同主流的檢測(cè)算法相比,本文的方法在此基礎(chǔ)上不僅檢測(cè)精度得到提高,而且在檢測(cè)速度方面也有提升,最重要的是,本文的算法對(duì)于小尺寸的交通標(biāo)志檢測(cè)友好,因此,該算法對(duì)以后的自動(dòng)駕駛研究中檢測(cè)道路交通標(biāo)志方面的效率有一定的幫助。在未來(lái)的工作中,將力求尋找更輕量化的模型來(lái)提高檢測(cè)的精度和速度。