宦 海,陳逸飛,張 琳,李鵬程,朱蓉蓉
(南京信息工程大學(xué)電子與信息工程學(xué)院,南京 210044)
目標(biāo)檢測作為計(jì)算機(jī)視覺領(lǐng)域的主要研究方向,長期以來受到廣泛關(guān)注,相關(guān)技術(shù)已被應(yīng)用于醫(yī)學(xué)圖像檢測、火災(zāi)檢測、汽車無人駕駛等領(lǐng)域。
基于深度學(xué)習(xí)的目標(biāo)檢測是近年來研究的熱點(diǎn),國內(nèi)外研究人員針對目標(biāo)檢測網(wǎng)絡(luò)中存在的不足進(jìn)行改進(jìn)。針對網(wǎng)絡(luò)訓(xùn)練效率低的問題,HE 等[1]通過殘差網(wǎng)絡(luò)解決了深層網(wǎng)絡(luò)難以收斂的問題。LOFFE 等[2]提出批歸一化(Batch Normalization)解決網(wǎng)絡(luò)訓(xùn)練過程中梯度消失的問題。REDMON等[3]等提出目標(biāo)預(yù)測與檢測過程一體化,大幅縮短了網(wǎng)絡(luò)檢測時(shí)間。針對待檢測目標(biāo)尺寸差異大、難以有效檢測的問題,LIU 等[4-5]通過多尺度特征信息的融合,提升了網(wǎng)絡(luò)對多尺度目標(biāo)的檢測能力。SIEGEDY 等[6-7]使用Inception 結(jié)構(gòu)及改 進(jìn)金字塔結(jié)構(gòu),提升網(wǎng)絡(luò)對的尺度信息獲取。DAI 等[8]通過空洞卷積思想構(gòu)建可變性卷積,提升了網(wǎng)絡(luò)對多尺寸目標(biāo)的檢測能力。針對網(wǎng)絡(luò)檢測時(shí)存在過多冗余信息的問題,MA 等[9]使用注意力機(jī)制,實(shí)現(xiàn)目標(biāo)特征權(quán)重再分配,減少了冗余信息的干擾。ZHU 等[10]通過Anchor-free 實(shí)現(xiàn)對目標(biāo)位置及大小的預(yù)測,通過減少網(wǎng)絡(luò)議框產(chǎn)生的數(shù)量以減少冗余信息。針對網(wǎng)絡(luò)目標(biāo)定位能力弱的問題,XIAO 等[11]通過對多尺度顯著圖進(jìn)行融合以提升對顯著目標(biāo)的檢測完整性。ZHENG 等[12-13]通過引入目標(biāo)區(qū)域懲罰項(xiàng)提升目標(biāo)定位能力。QING 等[14]使用層級偏移,提升目標(biāo)預(yù)測區(qū)域的定位以及檢測精度。針對網(wǎng)絡(luò)中淺層目標(biāo)特征信息難以實(shí)現(xiàn)目標(biāo)的分類問題。LI 等[15-17]通過使用空洞卷積提升網(wǎng)絡(luò)層感受野的大小,豐富網(wǎng)絡(luò)中特征語義信息的同時(shí)提高了網(wǎng)絡(luò)的目標(biāo)識別能力。ZHU 等[18]采用擴(kuò)張卷積的策略提升對淺層特征的提取。但鮮有文獻(xiàn)針對目標(biāo)檢測網(wǎng)絡(luò)難以檢測多尺寸目標(biāo)的問題進(jìn)行研究。
本文針對經(jīng)典網(wǎng)絡(luò)YOLOv3 在目標(biāo)定位以及識別問題上的不足,使用LossGIOU作為新的定位損失函數(shù),實(shí)現(xiàn)目標(biāo)預(yù)測區(qū)域回歸過程的整體化以降低目標(biāo)區(qū)域漏檢的概率,將空洞感受野模塊與雙向特征金字塔模塊聯(lián)結(jié)使用,增強(qiáng)各預(yù)測分支輸出特征的語義強(qiáng)度,并通過淺深層特征的雙向融合,提升整網(wǎng)絡(luò)的對多尺寸目標(biāo)的定位與分類能力。
如圖1(a)所示,YOLOv3[12]共包含3 個(gè)模塊,分別為Darknet53 特征提取模塊、特征金字塔模(Feature Pyramid Network,F(xiàn)PN)及預(yù)測分支模塊。圖1(b)為特征提取模塊Darknet53 的基本網(wǎng)絡(luò)結(jié)構(gòu),此模塊由5 個(gè)殘差結(jié)構(gòu)組成,每個(gè)殘差結(jié)構(gòu)將輸入特征尺寸壓縮至原尺寸的1/2。以輸入圖像大小為416×416×3 為例,殘差模塊1、2、3、4、5的輸出特征圖譜大小分別為208×208×64,104×104×128,52×52×256,26×26×512,13×13×1 024。其中殘差模塊3、4、5 的輸出特征圖譜將作為下一模塊的輸入。圖1(c)為FPN模塊的結(jié)構(gòu)圖。圖中DBL結(jié)構(gòu)由卷積層、批歸一化層、激活層串聯(lián)組成。FPN 模塊包含3 個(gè)預(yù)測分支結(jié)構(gòu),依次為大、中、小尺寸目標(biāo)的檢測提供特征信息。模塊通過自頂向下的特征流,將來自高層預(yù)測分支中包含強(qiáng)語義特征信息融入到淺層特征中,為淺層預(yù)測分支提供更強(qiáng)的語義特征信息。圖1(d)為預(yù)測分支結(jié)構(gòu),以FPN 結(jié)構(gòu)生成的包含多尺度特征信息的融合特征1、2、3 為特征,通過DBL 結(jié)構(gòu)與1×1大小的卷積層,產(chǎn)生模型的最終特征輸出Output1、Output2、Output3。
圖1 YOLOv3 網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Structure of YOLOv3 network
其中:Area(A)表示目標(biāo)真實(shí)區(qū)域面積;Area(B)表示預(yù)測區(qū)域面積;∩表示交集;∪表示并集。通過真實(shí)區(qū)域與預(yù)測區(qū)域交集面積比上真實(shí)區(qū)域與預(yù)測區(qū)域并集面積,獲得2 區(qū)域交并比(Intersection of Union,IoU)的值。通過預(yù)先設(shè)定好的IoU 閾值對預(yù)測區(qū)域進(jìn)行篩選,篩選出IoU 值大于閾值的區(qū)域。
對式(2)篩選出的區(qū)域,計(jì)算其對應(yīng)的值,函數(shù)表達(dá)式如式(3)所示:
其中:mask 表示預(yù)測框中包含目標(biāo)的概率;x、y、w、h依次為目標(biāo)預(yù)測區(qū)域中心點(diǎn)橫坐標(biāo)、縱坐標(biāo)、以及區(qū)域的寬和高的值;i表示第i個(gè)預(yù)測框;n表示真實(shí)框所對應(yīng)預(yù)測框的總個(gè)數(shù);j表示對應(yīng)預(yù)測分支號;下標(biāo)p表示該值為預(yù)測框的值;下標(biāo)t表示該值為目標(biāo)預(yù)測框的值。
針對YOLOv3 在多尺寸目標(biāo)檢測精度較差的問題,使用LossGIoU函數(shù)替換原有目標(biāo)定位損失函數(shù),通過目標(biāo)定位過程一體化以提升目標(biāo)定位精度。通過在網(wǎng)絡(luò)中添加空洞感受野模塊,提升網(wǎng)絡(luò)層感受野大小,從而增強(qiáng)特征語義強(qiáng)度。改進(jìn)FPN 為雙向特征金字塔模塊,通過將高層特征與淺層特征實(shí)現(xiàn)雙向融合,最終構(gòu)建BR-YOLOv3 目標(biāo)檢測模型。
針對YOLOv3 目標(biāo)定位損失函數(shù)對目標(biāo)預(yù)測區(qū)域中心點(diǎn)的橫縱坐標(biāo),以及預(yù)測區(qū)域的寬高進(jìn)行獨(dú)立的偏移量計(jì)算,割裂了目標(biāo)預(yù)測區(qū)域的整體性。使用LossGIoU作為目標(biāo)定位損失函數(shù),通過將目標(biāo)定位回歸過程整體化以提升網(wǎng)絡(luò)的目標(biāo)定位能力。此處仍以式(2)篩選區(qū)域作為目標(biāo)區(qū)域的產(chǎn)生形式。式(4)為懲罰項(xiàng)σ1的計(jì)算公式:
其中:Area(C)表示真實(shí)區(qū)域與預(yù)測區(qū)域外界矩形的面積;符號/表示從Area(C)中排除Area(A)∪Area(B)的面積。
式5 所示為GIoU 的計(jì)算公式,通過預(yù)測區(qū)域與真實(shí)區(qū)域間的IoU 值減去懲罰項(xiàng)σ1計(jì)算得出:
LossGIoU的計(jì)算公式如下:
通過σ2(1-GIoU)獲得最終的預(yù)測區(qū)域定位損失值,如式(7)所示:
其中:σ2為不同尺寸預(yù)測目標(biāo)間的懲罰項(xiàng);OBW為預(yù)測目標(biāo)的寬度;OBH為預(yù)測目標(biāo)的高度;Image_size為輸入圖像尺寸。該懲罰項(xiàng)的使用有效改善了目標(biāo)定位損失由較大預(yù)測區(qū)域所主導(dǎo)的弊端。
通過使用LossGIoU作為目標(biāo)定位損失函數(shù),使預(yù)測區(qū)域的回歸調(diào)整過程一體化,從而滿足目標(biāo)區(qū)域整體性的要求。此外,解決了預(yù)測區(qū)域回歸調(diào)整過程中,當(dāng)出現(xiàn)調(diào)整后的預(yù)測區(qū)域與真實(shí)區(qū)域間的IoU為零時(shí),預(yù)測區(qū)域無法回歸而導(dǎo)致的目標(biāo)漏檢問題。
如圖2 所示,淺色框代表目標(biāo)預(yù)測區(qū)域,深色框代表目標(biāo)真實(shí)區(qū)域,圖2 中兩個(gè)真實(shí)框?yàn)榻y(tǒng)一真實(shí)框。圖2(a)中,真實(shí)框與預(yù)測框的二范數(shù)‖ .‖2的值,即定位損失值為10,2 框GIoU 的計(jì)算值為17/56,LossGIoU的值為39/56;圖2(b)中,真實(shí)框與預(yù)測框的定位損失值同為10,2框的GIoU 值為7/18,LossGIoU的值為11/18。圖2中的例子對比顯示,通過使用LossGIoU作為損失函數(shù)能更好地刻畫了目標(biāo)預(yù)測區(qū)域與真實(shí)區(qū)域的位置關(guān)系。在目標(biāo)回歸計(jì)算的過程中,若2 區(qū)域的IoU 值為0,則無法進(jìn)行回歸計(jì)算,導(dǎo)致該預(yù)測區(qū)域的直接丟失,通過使用IoU 作為目標(biāo)位置關(guān)系的刻畫函數(shù),在對預(yù)測區(qū)域進(jìn)行回歸調(diào)整時(shí),當(dāng)出現(xiàn)2 區(qū)域不相交時(shí),IoU 為一負(fù)值,將會繼續(xù)對目標(biāo)區(qū)域進(jìn)行回歸計(jì)算,而不會導(dǎo)致預(yù)測區(qū)域丟失,即出現(xiàn)漏檢情況。
圖2 同一目標(biāo)區(qū)域定位損失函數(shù)值Fig.2 Location loss function value for the same target area
YOLOv3 利用3 個(gè)來自不同特征層級、具有不同分辨率的特征圖譜,實(shí)現(xiàn)對不同尺寸的目標(biāo)進(jìn)行差異化的檢測。但淺層特征語義強(qiáng)度較弱,不能充分滿足目標(biāo)識別的任務(wù)需求。原檢測網(wǎng)絡(luò)中雖然使用了FPN 將深層特征層中包含的強(qiáng)特征語義信息融入到淺層特征中,但由于深層特征層對輸入圖像進(jìn)行了高倍數(shù)的特征壓縮,因此其對于小目標(biāo)的敏感性極低。如圖1 中的特征圖譜4、5 是在輸入信息上進(jìn)行16、32 倍的特征壓縮后的特征輸出,其對于小目標(biāo)的敏感性極低,對于尺寸小于16×16,32×32 的目標(biāo),高層的特征信息無法為淺層特征帶來高質(zhì)量特征強(qiáng)度的提升,難以彌補(bǔ)網(wǎng)絡(luò)在小目標(biāo)上的檢測缺陷。針對上述不足,構(gòu)建空洞感受野模塊(Atrous Receptive Module,ARM),并將該模塊直接作用于特征提取網(wǎng)絡(luò)輸出的特征圖譜上,直接增大相應(yīng)網(wǎng)絡(luò)層的感受野大小,提升輸出特征的語義強(qiáng)度。
通過利用空洞卷積以包含更大的感受野,使其能夠捕捉到多尺度信息。在感受野模塊的不同分支使用不同大小、不同數(shù)量的傳統(tǒng)卷積及不同膨脹率的空洞卷積,構(gòu)建如圖3 所示的空洞感受野模塊。其 中Branch1、Branch2、Branch3、Branch4 對應(yīng)模塊的4 個(gè)分支結(jié)構(gòu)。圖3 中1×1conv,3×3conv 分別表示卷積核大小為1×1 和3×3 的卷積層;3×3conv rate=2,表示卷積核大小為3×3,膨脹率為2 的空洞卷積;當(dāng)rate=3,表示膨脹率為3 的空洞卷積。DBL 層是由卷積層、批歸一化層和激活層組成的層級結(jié)構(gòu)。concat 表示在特征的最后一個(gè)維度進(jìn)行堆疊運(yùn)算,以產(chǎn)生融合特征。Add 表示進(jìn)行矩陣相加運(yùn)算。其中F1、F2、F3、F4分別表示 Branch1、Branch2、Branch3、Branch4 的特征輸出,F(xiàn)5為融合特征,O 為模塊最終輸出。
圖3 空洞感受野模塊Fig.3 Atrous receptive module
感受野模塊的輸出特征計(jì)算過程如式(8)~式(12)所示。其中:F0表示感受野模塊的輸入;W、H、C分別表示輸入特征圖譜的寬、高和特征通道數(shù);A表示空洞卷積;B表示普通卷積;k表示卷積核大小;r表示空洞卷積的膨脹率;DBL表示依次進(jìn)行卷積、批歸一化,以及激活運(yùn)算;*表示卷積計(jì)算;⊕表示矩陣相加;Θ 表示進(jìn)行特征通道的連接,即圖3 中的concat 運(yùn)算。在此模塊中所有的卷積步長均為1。
對輸入特征F0進(jìn)行2 次卷積運(yùn)算,輸出特征圖大小為W×H×(C/4),Branch1 的感受野大小為3×3。F1的計(jì)算公式如式(8)所示:
輸出特征F2的大小為W×H×(C/4),Branch2 感受野大小為7×7。F2的計(jì)算公式如式(9)所示:
輸出特征F3的大小為W×H×(C/4),Branch3 的感受野大小為11×11。F3的計(jì)算公式如式(10)所示:
輸出特征F4的大小為W×H×C,Branch4 的感受野大小為1×1。F4的計(jì)算公式如式(11)所示:
如圖3 所示,將Branch1、2、3 輸出F1、F2、F3進(jìn)行concat 運(yùn)算,并將輸出結(jié)果進(jìn)行一次DBL 算法獲得融合特征F5。輸出特征F5的大小為W×H×C。F5的計(jì)算公式如式(12)所示:
如圖3 所示,將融合特征F5特征與F4特征進(jìn)行跳躍連接,進(jìn)行矩陣相加運(yùn)算,并進(jìn)卷積大小為1×1的DBL層進(jìn)行通道調(diào)整,獲得最終輸出特征O。特征O的大小為W×H×C。O的計(jì)算公式如式(13)所示:
原網(wǎng)絡(luò)中以FPN 為特征融合方式,該結(jié)構(gòu)僅包含單向的自頂向下的特征融合過程,僅為淺層特征提供了特征語義增強(qiáng),忽略了高層特征對于上下文信息的缺失。高層特征由于經(jīng)過高倍數(shù)的特征壓縮導(dǎo)致特征圖譜中丟失了大量的細(xì)節(jié)信息,難以滿足精確目標(biāo)定位任務(wù)的需求。本文通過使用雙向特征金字塔(Bidirectional Feature Pyramid Network,BiFPN)替代原有FPN 結(jié)構(gòu),實(shí)現(xiàn)淺、深層特征的雙向融合,提升網(wǎng)絡(luò)目標(biāo)檢測的能力。
如圖4 所示,BiFPN 包含雙向的特征傳遞信息流,即下行信息流和上行信息流。圖中Fi表示各層級結(jié)構(gòu)的特征輸出,Ti表示輸入特征圖譜編號。降維操作層表示對輸入特征的維度降為原特征的1/2;上采樣降維層表示對傳入網(wǎng)絡(luò)特征,將特征維度降維到原特征維度的1/2,對變換后的特征進(jìn)行上采樣,將特征圖譜的尺寸放大1 倍。特征融合表示將2 個(gè)傳入特征在特征的最后一個(gè)維度上進(jìn)行連接。圖中的5×DBL 結(jié)構(gòu),表示依次將特征傳入5 個(gè)DBL 層進(jìn)行運(yùn)算,每個(gè)DBL 層由1 個(gè)卷積層、1 個(gè)批歸化層和1 個(gè)激活層組成。該結(jié)構(gòu)的使用可充分增加網(wǎng)絡(luò)對于非線性特征的表達(dá)能力。下采樣升維層表示對輸入特征,先將其特征圖譜的維度數(shù)擴(kuò)大1 倍,再將其特征圖譜的尺寸下采樣壓縮為原尺寸的1/2。
圖4 雙向特征金字塔結(jié)構(gòu)Fig.4 Bidirectional feature pyramid structure
改進(jìn)模塊中,在每個(gè)特征圖譜后添加了降維層,目的在于降低輸出特征維度數(shù),減少模塊參數(shù),從而降低網(wǎng)絡(luò)運(yùn)算的開支。在改進(jìn)模型中多次使用5×DBL 結(jié)構(gòu),原因在于該結(jié)構(gòu)可以提升模型對于非線性特征的表達(dá)能力。改進(jìn)結(jié)構(gòu)中通過自頂向下的特征融合信息流,將深層特征中強(qiáng)語義特征信息融入到淺層特征中,提升了網(wǎng)絡(luò)淺層目標(biāo)預(yù)測分支目標(biāo)分類的能力。通過自底向上的特征融合特征流,將淺層特征中豐富上下文細(xì)節(jié)特征信息融入到深層特征中,提升了深層目標(biāo)預(yù)測分支的目標(biāo)定位能力。
為解決YOLOv3 網(wǎng)絡(luò)在多尺寸目標(biāo)檢測較差的問題,首先通過使用改進(jìn)LossGIOU損失函數(shù),將預(yù)測目標(biāo)回歸區(qū)域整體化,降低目標(biāo)漏檢率;其次,通過在網(wǎng)絡(luò)不同位置添加空洞感受野模塊,測試相應(yīng)模型目標(biāo)檢測精度,確定空洞感受野模塊的最佳添加位置;然后,通過對使用FPN 以及BiFPN 的網(wǎng)絡(luò)檢測其目標(biāo)檢測精度,確定檢測精度更高的模型結(jié)構(gòu);最終將2 個(gè)改進(jìn)模塊進(jìn)行融合,獲得BR-YOLOv3 目標(biāo)檢測網(wǎng)絡(luò),并測試最終改進(jìn)網(wǎng)絡(luò)的檢測精度。本文的實(shí)驗(yàn)流程如圖5 所示。
圖5 實(shí)驗(yàn)流程Fig.5 Experimental procedure
實(shí)驗(yàn)采用Pascal VOC 數(shù)據(jù)集,該數(shù)據(jù)集是圖像識別與分割領(lǐng)域公開的標(biāo)準(zhǔn)化數(shù)據(jù)集。實(shí)驗(yàn)數(shù)據(jù)分為2 部分:訓(xùn)練數(shù)據(jù)集(Trainval),包含VOC2012 數(shù)據(jù)集的全部以及VOC2007 數(shù)據(jù)集的Trainval 部分,共包含16 552 張完整標(biāo)注的圖片;測試集(Test)采用VOC2007 數(shù)據(jù)集的test 部分,共包含4 953 張完整標(biāo)注的圖片。
實(shí)驗(yàn)中采用AP、Recall、mAP 作為實(shí)驗(yàn)結(jié)果評價(jià)標(biāo)準(zhǔn)。Precision 表示某一類別預(yù)測目標(biāo)中預(yù)測正確占總真實(shí)標(biāo)簽個(gè)數(shù)的比例。Recall 表示預(yù)測目標(biāo)正確的數(shù)量占目標(biāo)預(yù)測總數(shù)的比例。AP 值由精度(Precision)和召回率(Recall)組成的PR 曲線與x,y軸所圍成面積計(jì)算得到。本文所采用的數(shù)據(jù)集共包含20 個(gè)樣本種類。mAP 為20 個(gè)類別的AP 值相加除以總類別數(shù)計(jì)算得到。
實(shí)驗(yàn)中使用在ImageNet 上訓(xùn)練好的Darknet53 的參數(shù)為模型特征提取網(wǎng)絡(luò)的初始化參數(shù)。在模型訓(xùn)練過的前2 個(gè)批次采用預(yù)熱學(xué)習(xí)率,對特征提取網(wǎng)絡(luò)以外的參數(shù)進(jìn)行初步調(diào)整。在2~50 個(gè)epoch 間,采用余弦退火學(xué)習(xí)方式,學(xué)習(xí)率逐步由0.000 1 下降到0.000 001。在2~20 個(gè)批次,對特征提取網(wǎng)絡(luò)部分模型參數(shù)進(jìn)行固定,對其余網(wǎng)絡(luò)參數(shù)進(jìn)行調(diào)整。在20~50個(gè)批次,對整體網(wǎng)絡(luò)的參數(shù)進(jìn)行微調(diào)。訓(xùn)練過程中每次傳入網(wǎng)絡(luò)的圖片數(shù)量(Batch Size)為4。
本文實(shí)驗(yàn)在LINUX 系統(tǒng)下進(jìn)行,使用顯卡型號為RTX2080Ti,CPU 型號為i9-9900k,所使用的編程語言為python3.6,使用深度框架為Tensorflow 1.11.0。
針對本文所使用的數(shù)據(jù)集,使用kmeans 算法對數(shù)據(jù)集中包含的所有真實(shí)區(qū)域進(jìn)行聚類計(jì)算,獲得實(shí)驗(yàn)中所使用Anchor 框的大小。通過kmeans 獲得的Anchor 框的尺寸大小如下:(26,40),(48,98),(125,98),(73,199),(173,184),(123,297),(330,192),(220,329),(361,362)。
首先對定位損失函數(shù)LossGIOU的改進(jìn)模型與使用MSE做為定位損失函數(shù)的原模型的結(jié)果進(jìn)行對比實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果如表1 所示。
表1 不同損失定位損失函數(shù)模型檢測精度Table 1 Different loss positioning loss function model detection accuracy
實(shí)驗(yàn)結(jié)果表明,通過使用LossGIoU作為網(wǎng)絡(luò)目標(biāo)定位損失函數(shù),實(shí)驗(yàn)檢測精度達(dá)到76.48%,在原網(wǎng)絡(luò)的基礎(chǔ)上提升了0.76 個(gè)百分點(diǎn)。通過使用LossGIoU損失函數(shù)有助于提升目標(biāo)定位精度,并最終提升了目標(biāo)檢測精度。為進(jìn)一步論證LossGIoU定位損失函數(shù)的有效性及魯棒性,通過分別計(jì)算測試集大、中、小尺寸的目標(biāo)的檢測精度。其中,目標(biāo)尺寸大于206×206 的目標(biāo)為大尺寸目標(biāo),尺寸在206×206 與104×104 之間的目標(biāo)為中尺寸目標(biāo),尺寸小于104×104 的目標(biāo)為小尺寸目標(biāo)。多尺寸目標(biāo)檢測精度的實(shí)驗(yàn)結(jié)果如圖6 所示。使用定位損失函數(shù)為LossGIoU的改進(jìn)檢測模型在大、中、小尺寸目標(biāo)的檢測精度分別為88.45%、81.51%、70.53%;以MSE 為目標(biāo)定位損失函數(shù)的檢測模型在大、中、小目標(biāo)上的檢測精度依次為87.75%、78.51%、60.37%。實(shí)驗(yàn)結(jié)果表明,使用LossGIoU作為定位損失函數(shù)的檢測模型,在小尺寸目標(biāo)的檢測精度上較原模型檢測精度獲得較大提升,且改進(jìn)目標(biāo)定位損失函數(shù)具有良好的穩(wěn)定性。
圖6 不同定位損失函數(shù)下不同尺寸目標(biāo)檢測精度Fig.6 Object detection accuracy of different sizes under different positioning loss functions
實(shí)驗(yàn)第2 階段,將ARM 模塊加入網(wǎng)絡(luò)的不同結(jié)構(gòu)位置,分析在不同結(jié)構(gòu)位置使用空洞感受野模塊所帶來的精度變化。如圖7(b)所示,將ARM 連接到特征提取網(wǎng)絡(luò)之后,并將該網(wǎng)絡(luò)命名為ARM(1)-YOLOv3;如圖7(c)所示,將ARM 連接在FPN 結(jié)構(gòu)后,并將該網(wǎng)絡(luò)命名為ARM(2)-YOLOv3。圖7(a)為原網(wǎng)絡(luò)結(jié)構(gòu)。
圖7 測試模型結(jié)構(gòu)Fig.7 Test model structure
實(shí)驗(yàn)對比結(jié)果如表2 所示。由實(shí)驗(yàn)結(jié)果可知,在特征提取網(wǎng)路后添加ARM 模塊相較于在FPN 結(jié)構(gòu)后添加ARM 模塊對總體網(wǎng)絡(luò)的檢測精度的提升更大。實(shí)驗(yàn)C 的檢測精度達(dá)到了76.93%,在原網(wǎng)絡(luò)檢測精度上提升1.21個(gè)百分點(diǎn)。在E、F這2組實(shí)驗(yàn)中,將LossGIoU融入改進(jìn)網(wǎng)絡(luò)進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果表明,在使用空洞感受野模型的基礎(chǔ)上使用LossGIoU損失函數(shù)可以使目標(biāo)檢測精度得到進(jìn)一步提升,達(dá)到77.96%,在原網(wǎng)絡(luò)檢測精度的基礎(chǔ)上提升了2.96 個(gè)百分點(diǎn)。
表2 不同位置添加ARM 的模型檢測精度Table 2 Model detection accuracy of adding ARMs in different locations %
實(shí)驗(yàn)第3 階段,在YOLOv3 網(wǎng)絡(luò)的基礎(chǔ)上使用雙向特征金字塔結(jié)構(gòu)代替原有的FPN 網(wǎng)絡(luò)結(jié)構(gòu),網(wǎng)絡(luò)結(jié)構(gòu)如圖7(d)所示。實(shí)驗(yàn)結(jié)果如表3 所示,實(shí)驗(yàn)G 的檢測精度達(dá)到77.20%,相較于原網(wǎng)絡(luò)在檢測精度上提升1.48 個(gè)百分點(diǎn)。實(shí)驗(yàn)結(jié)果表明通過使用雙向特征金字塔提升網(wǎng)絡(luò)共享特征利用率,不僅提升了深層檢測分支的目標(biāo)定位能力,而且提升了整體網(wǎng)絡(luò)的目標(biāo)檢測能力。實(shí)驗(yàn)H 中,將雙向特征金字塔結(jié)構(gòu)融入到實(shí)驗(yàn)E 所用目標(biāo)檢測模型ARM(1)-YOLOv3(LossGIoU)中,得到模型G,即BiFPN-ARM(1)-YOLOv3。模型結(jié)構(gòu)如圖7(e)所示。實(shí)驗(yàn)結(jié)果表明,該整體網(wǎng)絡(luò)檢測精度進(jìn)一步提升到了79.24%,在原YOLOv3 的基礎(chǔ)上提升了3.52 個(gè)百分點(diǎn)。
表3 采用BIFPN 模塊不同模型的檢測精度Table 3 Detection accuracy of different models using BIFPN module %
以實(shí)驗(yàn)H 中所獲模型為最終改進(jìn)目標(biāo)檢測網(wǎng)絡(luò)的結(jié)構(gòu),改進(jìn)網(wǎng)絡(luò)結(jié)構(gòu)如圖7(e)所示。
在Darknet53 特征提取網(wǎng)絡(luò)后添加ARM-BiFPN 組合結(jié)構(gòu),代替原有的FPN 網(wǎng)絡(luò)結(jié)構(gòu),并替換原有目標(biāo)定位損失函數(shù)為LossGIOU,獲得最終改進(jìn)檢測網(wǎng)絡(luò)BRYOLOv3。如表4所示,對主流經(jīng)典目標(biāo)檢測網(wǎng)絡(luò)Faster RCNN(Faster Region Convolution Nerual network)及SSD在同一實(shí)驗(yàn)環(huán)境下進(jìn)行對比實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果表明,改進(jìn)的BR-YOLOv3 在12 個(gè)目標(biāo)類別的檢測結(jié)果上均取得了最優(yōu)的結(jié)果。改進(jìn)網(wǎng)絡(luò)在Bird、Cat、Cow、Dog 等目標(biāo)上,相較于YOLOv3 網(wǎng)絡(luò)的檢測精度結(jié)果均獲得了明顯的提升。BR-YOLOv3 最終檢測精度均優(yōu)于當(dāng)下的主流目標(biāo)檢測網(wǎng)絡(luò)。
表4 VOC2012 測試集檢測精度Table 4 VOC2012 test set detection accuracy %
圖8(a)和圖8(c)為YOLO v3 的實(shí)例檢測結(jié)果,圖8(b)和圖8(d)為改進(jìn)網(wǎng)絡(luò)BR-YOLOv3 的實(shí)例檢測結(jié)果。通過對比發(fā)現(xiàn),圖8(a)和圖8(c)均未能檢測到圖像右下角的小尺寸目標(biāo),而圖8(b)和圖8(d)的改進(jìn)模型成功檢測到了位于圖像右下角的Boat以及Horse。
圖8 YOLOv3 與BR-YOLOv3 多尺寸目標(biāo)檢測結(jié)果Fig.8 YOLOv3 and BR-YOLOv3 multi-size target detection results
2 組模型在相同輸入圖像上產(chǎn)生差異化檢測結(jié)果的原因在于:YOLOv3 采用了以MSE 為目標(biāo)函數(shù)的目標(biāo)定位損失函數(shù),在網(wǎng)絡(luò)的訓(xùn)練過程中,通過對1個(gè)batch內(nèi)所有預(yù)測框選區(qū)域進(jìn)行回歸調(diào)整,使小目標(biāo)預(yù)測框所貢獻(xiàn)的定位損失較小,而針對目標(biāo)區(qū)域產(chǎn)生的損失值由尺寸較大的目標(biāo)預(yù)測區(qū)域所主導(dǎo),最終導(dǎo)致預(yù)測區(qū)域在調(diào)整過程中,出現(xiàn)由于調(diào)整尺度過大而造成小目標(biāo)預(yù)測框偏離真實(shí)區(qū)域的現(xiàn)象,致使網(wǎng)絡(luò)無法計(jì)算其回傳梯度值,最終導(dǎo)致目標(biāo)的丟失。這使得網(wǎng)絡(luò)對于小目標(biāo)的檢測缺乏有效的學(xué)習(xí),原網(wǎng)絡(luò)在測試過程中出現(xiàn)邊緣小目標(biāo)漏檢現(xiàn)象。改進(jìn)網(wǎng)絡(luò)通過引入LossGIoU定位損失函數(shù),有效避免了當(dāng)預(yù)測區(qū)域發(fā)生偏離無法進(jìn)行回歸調(diào)整的問題。在LossGIoU定位損失函數(shù)中添加對不同尺寸目標(biāo)的懲罰項(xiàng),通過衰減大目標(biāo)預(yù)測區(qū)損失以提升小目標(biāo)預(yù)測區(qū)域貢獻(xiàn)的損失占比,為網(wǎng)絡(luò)學(xué)習(xí)小目標(biāo)檢測提供更多機(jī)會。通過使用ARM 模塊提升淺層預(yù)測分支使用特征的語義強(qiáng)度,提升淺層目標(biāo)預(yù)測分支對小目標(biāo)的準(zhǔn)確定位與有效分類的能力。通過以上分析可知,改進(jìn)模型在多尺寸目標(biāo)的檢測上具有更優(yōu)異的表現(xiàn)。
本文基于空洞感受野模塊和雙向特征金字塔結(jié)構(gòu)提出BR-YOLOv3 目標(biāo)檢測網(wǎng)絡(luò),將空洞感受野模塊嵌入特征提取網(wǎng)絡(luò),提升各層預(yù)測分支輸出特征的語義強(qiáng)度,使用雙向特征金字塔結(jié)構(gòu)提高共享特征的利用率。將豐富目標(biāo)位置信息、邊緣信息融入深層特征中,提升深層特征預(yù)測分支的目標(biāo)定位能力。實(shí)驗(yàn)結(jié)果表明,改進(jìn)模型提升了對多尺寸目標(biāo)檢測的性能,相較于Faster RCNN、SSD 等主流目標(biāo)檢測算法具有更高的準(zhǔn)確率,整體平均檢測精度達(dá)到79.24%。下一步將采用Mixup、Cutmix 等圖像增強(qiáng)方法及風(fēng)格遷移對抗以提升對數(shù)據(jù)集中困難數(shù)據(jù)樣本的識別率,并嘗試使用隨機(jī)遮擋目標(biāo)的訓(xùn)練方法,提升網(wǎng)絡(luò)對所識別目標(biāo)各個(gè)部分的敏感性,以充分發(fā)掘網(wǎng)絡(luò)對殘缺目標(biāo)的識別能力。