王春鵬, 王冬青, 傅 強(qiáng), 劉緯驊
(青島大學(xué) 電氣工程學(xué)院,山東 青島 266071)
目標(biāo)檢測(cè)是一種計(jì)算機(jī)視覺(jué)技術(shù),用于識(shí)別圖像或視頻中的對(duì)象,它是自動(dòng)駕駛、天網(wǎng)控制系統(tǒng)、智慧城市交通等領(lǐng)域?qū)崿F(xiàn)的基礎(chǔ)。隨著技術(shù)的迭代,目標(biāo)檢測(cè)算法也經(jīng)過(guò)幾次進(jìn)化;在2001年,Viola P A和Jones M T合作發(fā)明了Viola-Jones結(jié)構(gòu)分類(lèi)器[1],以及Felzenszwal P F利用方向梯度直方圖(histogram of oriented gradient,HOG)與支持向量機(jī)(support vector machine,SVM)結(jié)合提出DPM(defor-mable part model)算法[2]。2012年后,由于圖形處理器(graphics processing unit,GPU)算力的提升和基于深度學(xué)習(xí)(deep learning,DL)理論的深度卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)的圖像分類(lèi)算法的到來(lái)[3~6],提升了圖像分類(lèi)的準(zhǔn)確率和提高了目標(biāo)檢測(cè)的正確率。由于深度學(xué)習(xí)的優(yōu)勢(shì),可以提取圖像的特征信息進(jìn)行訓(xùn)練。
近些年,涌現(xiàn)了許多優(yōu)秀的目標(biāo)檢測(cè)結(jié)構(gòu)算法,分為:基于兩階的目標(biāo)檢測(cè)算法如Region-CNN(R-CNN)算法[7]、Faster R-CNN算法[8]以及Mask R-CNN算法[9]等;基于一階的目標(biāo)檢測(cè)算法如YOLO算法[10]和SSD(single shot multibox detector)算法[11]。由于二階目標(biāo)檢測(cè)算法精度高而速度慢,而一階目標(biāo)檢測(cè)算法是速度快而精度低;這些算法自身的缺陷以至不能滿(mǎn)足對(duì)準(zhǔn)確度和速度同時(shí)要求高的場(chǎng)合,如自動(dòng)駕駛等。為此許多學(xué)者對(duì)一階目標(biāo)檢測(cè)算法進(jìn)行許多改進(jìn),例如溫捷文設(shè)計(jì)了Atrous[12]濾波器與一階檢測(cè)網(wǎng)絡(luò)融合;以及文獻(xiàn)[13]在SSD深層網(wǎng)絡(luò)引入正則化改進(jìn);在一定程度上提升了性能。
2018年,張士峰等人通過(guò)對(duì)SSD算法網(wǎng)絡(luò)進(jìn)行改進(jìn),衍生出RefineDet[14]算法,它沿用了經(jīng)典的分類(lèi)和回歸損失,是一種有代表性的目標(biāo)檢測(cè)方法。RefineDet同時(shí)兼顧一階與二階目標(biāo)檢測(cè)算法的優(yōu)點(diǎn);并且具有先進(jìn)性。但該算法在使用損失函數(shù)進(jìn)行權(quán)重更新時(shí),存在類(lèi)別樣本數(shù)量不平衡和存在困難樣本難挖掘的問(wèn)題;以及由于RefineDet網(wǎng)絡(luò)的ARM在獲取特征信息時(shí)比較粗略,不利于達(dá)到好的訓(xùn)練效果。文獻(xiàn)[15]提出RefineDet網(wǎng)絡(luò)融合注意力機(jī)制的方法,雖然檢測(cè)精度有提高,但犧牲了檢測(cè)速度性能。
本文針對(duì)RefineDet算法存在的問(wèn)題,提出了一種權(quán)重平衡調(diào)節(jié)損失(weight balance adjustment loss,WBALoss)函數(shù),以緩解類(lèi)別樣本數(shù)量不平衡和困難樣本難挖掘的矛盾;通過(guò)將傳輸連接塊(transformation connection block,TCB)輸出的圖層信息與輸入到Anchor細(xì)化模塊(anchor refinement module,ARM)的圖層信息進(jìn)行融合后再傳入ARM,和添加金字塔卷積(pyramidal convolution,PyConv)[16]來(lái)優(yōu)化RefineDet算法部分結(jié)構(gòu),以達(dá)到提高網(wǎng)絡(luò)整體檢測(cè)準(zhǔn)確度的目的。
RefineDet算法基于前饋卷積網(wǎng)絡(luò),如圖1所示,分成三部分組成,分別是ARM、目標(biāo)檢測(cè)模塊(object detection module,ODM)和TCB。
圖1 RefineDet網(wǎng)絡(luò)
ARM是用于移除負(fù)樣本和進(jìn)行初級(jí)的邊框校正,為ODM提供更好的邊框回歸起點(diǎn)。TCB是實(shí)現(xiàn)特征的轉(zhuǎn)換功能,也就是將ARM輸出的特征圖的信息回饋到前層特征圖,實(shí)現(xiàn)了特征信息的特征金字塔融合。ODM的一部分輸入是TCB轉(zhuǎn)換后細(xì)節(jié)充足、內(nèi)容抽象的特征;另一部分的輸入是從ARM得到的Refined Anchors,即ARM生成細(xì)化的錨框。通過(guò)進(jìn)一步的分類(lèi)和回歸,最終得到更準(zhǔn)確的檢測(cè)效果。
Ltotal=LARM({pi},{xi})+LODM({ci},{ti})
(1)
式中LARM為錨框調(diào)整模塊ARM的損失函數(shù),包括二分類(lèi)損失LARM-b和先驗(yàn)框粗調(diào)整的回歸損失LARM-r,分別表示為
(2)
LODM為目標(biāo)檢測(cè)模塊ODM的損失函數(shù),包括多分類(lèi)損失LODM-cla和回歸目標(biāo)位置的損失LODM-reg,分別表示為
(3)
由式(3)可以看出,多分類(lèi)損失是所有樣本分類(lèi)損失之和的平均值,它作為部分變量進(jìn)行網(wǎng)絡(luò)參數(shù)的權(quán)值更新時(shí),這會(huì)導(dǎo)致樣本數(shù)量少的類(lèi)別得到的關(guān)注度越低。在訓(xùn)練進(jìn)行反向傳播時(shí),該模型網(wǎng)絡(luò)中的權(quán)值wk+1更新如下式所示
(4)
將式(4)中的目標(biāo)檢測(cè)模塊損失函數(shù)LODM展開(kāi)
(5)
式中λ為學(xué)習(xí)率,LODM-b(i)和LODM-r(i)分別為第i個(gè)樣本的ODM分類(lèi)損失和回歸損失。通過(guò)式(5)發(fā)現(xiàn)在ODM中每個(gè)樣本分類(lèi)損失對(duì)訓(xùn)練更新的權(quán)值的作用是一樣,這會(huì)導(dǎo)致多樣本的類(lèi)別在訓(xùn)練中占據(jù)大部分更新的權(quán)值,而削弱少樣本類(lèi)別在更新權(quán)值的地位;最后導(dǎo)致少樣本類(lèi)別的識(shí)別率下降。以及RefineDet算法的ARM,由于該結(jié)構(gòu)的影響;在獲取位置信息和特征信息比較粗略;最終訓(xùn)練效果不佳。因此RefineDet網(wǎng)絡(luò)的性能仍然具有提升的潛力。
為了解決訓(xùn)練時(shí)類(lèi)別樣本數(shù)量差異、困難樣本難挖掘的問(wèn)題,提出了權(quán)重平衡調(diào)節(jié)損失函數(shù)WBALoss。通過(guò)每次訓(xùn)練樣本的類(lèi)別數(shù)量來(lái)計(jì)算類(lèi)別樣本平衡因子αj,通過(guò)每次訓(xùn)練每個(gè)樣本的預(yù)測(cè)概率pi計(jì)算難易樣本平衡因子bi;作為權(quán)重值分別來(lái)緩解類(lèi)別樣本數(shù)量差異和難易樣本挖掘不均衡的矛盾。表示式如下
(6)
式中cj為第j類(lèi)樣本在某次訓(xùn)練內(nèi)的數(shù)量,n為出現(xiàn)的類(lèi)別數(shù)。由于y=(1+x)1/x在(0,1]區(qū)間內(nèi)是嚴(yán)格單調(diào)減函數(shù);當(dāng)某個(gè)類(lèi)別樣本數(shù)量在訓(xùn)練中呈少數(shù)時(shí),通過(guò)上式計(jì)算權(quán)重αj來(lái)增加該類(lèi)在整體損失的比重;pi為第i樣本的預(yù)測(cè)概率,由于簡(jiǎn)單樣本的pi大,而困難樣本的pi小,通過(guò)式(6)計(jì)算出bi可以提高困難樣本在多分類(lèi)損失里的比重。WBALoss式子表示如下
(7)
WBALoss的多分類(lèi)損失權(quán)值更新如式(8)所示
(8)
將式(4)、式(7)、式(8)聯(lián)立可得
(9)
當(dāng)進(jìn)行反向傳播時(shí),式(9)相比式(5)內(nèi)多分類(lèi)損失,由于每個(gè)類(lèi)別的αj不同,使得它們?cè)跈?quán)值調(diào)整過(guò)程中貢獻(xiàn)不同,并且由于難易樣本的bi不同,可以提高困難樣本的貢獻(xiàn);意味著不同類(lèi)別之間和難易樣本擁有不同的學(xué)習(xí)率。因此,提高了網(wǎng)絡(luò)訓(xùn)練時(shí)對(duì)少樣本的類(lèi)別類(lèi)和困難樣本的關(guān)注度。
雖然RefineDet算法增加TCB,使得ODM的輸入淺層的特征圖和深層的特征層融合,優(yōu)點(diǎn)是不會(huì)丟失淺層信息和深層信息,使得網(wǎng)絡(luò)對(duì)遮擋目標(biāo)和小型目標(biāo)的檢測(cè)精度更佳,從而提升整體檢測(cè)準(zhǔn)確度;但由于輸入到ARM的卷積層是主框架卷積層的輸出,會(huì)遺失部分特征信息;并且由1×1和3×3卷積核構(gòu)成的Extras層處在深層,雖然越深的特征層可得到越抽象的特征,但是也丟掉了很多位置信息,使得不能收集更有用的特征信息,最后導(dǎo)致檢測(cè)能力變差。
為解決上述問(wèn)題,本文添加PyConv金字塔卷積來(lái)替換Extras層的卷積結(jié)構(gòu)。PyConv是包含一個(gè)Kernel的金字塔結(jié)構(gòu)如圖2所示,相比于卷積核串聯(lián)處理圖像,PyConv中大小與深度可變的卷積核并聯(lián)處理提取圖像特征,可以提取不同尺度的細(xì)節(jié)信息。文獻(xiàn)[16]證明了PyConv卷積層可以提取多尺度信息,相比標(biāo)準(zhǔn)卷積,性能高效的PyConv即不會(huì)提升額外的計(jì)算量與參數(shù)量。其次利用TCB優(yōu)點(diǎn),將TCB輸出的特征信息和輸入ARM的特征信息進(jìn)行信息融合再輸入ARM;這樣可以使得該模塊獲取更多特征信息,進(jìn)一步提高了ARM泛化的能力;最后促進(jìn)訓(xùn)練效果的提升,并且提高算法檢測(cè)準(zhǔn)確度。優(yōu)化結(jié)構(gòu)圖3所示。
圖2 PyConv金字塔卷積網(wǎng)絡(luò)
圖3 優(yōu)化的RefineDet網(wǎng)絡(luò)
本文的目標(biāo)檢測(cè)實(shí)驗(yàn)計(jì)算機(jī)硬件配置是Intel Xeon CPU E5-2620v4和NVIDIA GTX TITAN Xp 12G,使用Pytorch深度學(xué)習(xí)框架來(lái)進(jìn)行GPU訓(xùn)練網(wǎng)絡(luò)參數(shù)進(jìn)行試驗(yàn)。訓(xùn)練所采用的圖像數(shù)據(jù)來(lái)自公開(kāi)數(shù)據(jù)集(Pattern Analysis,Statical Modeling and Computational Learning,Visual Object Classes Challenge 2007、2012; Pascal VOC2007、Pascal VOC2012)。
VGG16網(wǎng)絡(luò)結(jié)構(gòu)的權(quán)值是加載預(yù)訓(xùn)練模型,采用Xavier方法對(duì)Extras層結(jié)構(gòu)、ARM、TCB和ODM的權(quán)值初始化。最后通過(guò)SGD算法優(yōu)化損失函數(shù),動(dòng)量、權(quán)重衰減以及學(xué)習(xí)率分別設(shè)置為0.9,0.0005和0.001。
首先,為了解基于WBALoss的Refinenet(320)的檢測(cè)效果;設(shè)置4組實(shí)驗(yàn):原Refinenet(320)、基于WBALoss(αj,bi=1)的Refinenet(320)、基于WBALoss(αj=1,bi)的Refinenet(320)和基于WBALoss(αj,bi)的Refinenet(320)算法。圖4是四組實(shí)驗(yàn)在VOC07和VOC12數(shù)據(jù)集上各類(lèi)別訓(xùn)練樣本數(shù)量總和與在VOC07上各類(lèi)別測(cè)試精度。由圖4可見(jiàn):1)在訓(xùn)練出現(xiàn)類(lèi)別樣本數(shù)量差異時(shí)如數(shù)量多類(lèi)別Person的準(zhǔn)確度稍降低,而Sheep,Bus和Cow等數(shù)量少類(lèi)別準(zhǔn)確度提高了。表明WBALoss里的類(lèi)別樣本平衡因子αj可以增加對(duì)類(lèi)別樣本數(shù)少的關(guān)注度,提高該類(lèi)別檢測(cè)效果,并且可以抑制數(shù)量多類(lèi)別的關(guān)注度;其整體的mAP提高0.52 %。2)當(dāng)bi作為變量時(shí)各類(lèi)別的檢測(cè)精度稍微提升;其整體的mAP提升了0.58 %;表明了難易樣本平衡因子bi強(qiáng)化了對(duì)困難樣本的學(xué)習(xí),增加對(duì)困難樣本的關(guān)注度。當(dāng)WBALoss的兩個(gè)因子都共同作用時(shí)其性能效果比原RefineDet表現(xiàn)突出,其mAP提升了1.03 %。最后可以得出所提的WBALoss損失函數(shù)可以緩解類(lèi)別數(shù)量不平衡和困難樣本難訓(xùn)練的矛盾。
圖4 VOC0712數(shù)據(jù)集各類(lèi)訓(xùn)練樣本數(shù)量及測(cè)試精度
其次,使用其他模型與本文提出基于WBALoss的結(jié)構(gòu)優(yōu)化網(wǎng)絡(luò)模型進(jìn)行實(shí)驗(yàn)對(duì)比,部分結(jié)果如圖5和圖6所示;從主觀視覺(jué)上可以看出,本文所提的具有權(quán)重平衡調(diào)節(jié)損失函數(shù)RefineDet算法在實(shí)際中檢測(cè)到更細(xì)微的物體,性能優(yōu)于經(jīng)典RefineDet算法。
圖5 具有權(quán)重平衡調(diào)節(jié)損失函數(shù)RefineDet算法的識(shí)別結(jié)果
圖6 RefineDet算法的識(shí)別結(jié)果
為了解所提算法的性能,進(jìn)一步將目前幾種比較優(yōu)秀的目標(biāo)檢測(cè)模型與本文框架在VOC07和VOC12上測(cè)試,并對(duì)比mAP性能指標(biāo),最后將數(shù)據(jù)整理如表1所示。由表1可知:1)本文所提的模型在測(cè)試集上的mAP都要比其他模型更高,相比RefinenDet(320)的mAP分別上漲了1.49 %和1.51 %,本文框架的速度FPS同樣取得了略低于原RefinenDet的優(yōu)秀成績(jī);證明了WBALoss損失函數(shù)和基于RefineDet結(jié)構(gòu)的優(yōu)化的算法進(jìn)一步提高了性能。2)通過(guò)分別添加基于WBALoss(αj,bi=1)、基于WBALoss(αj=1,bi)、基于WBALoss(αj,bi)和基于RefineDet結(jié)構(gòu)優(yōu)化的變量在數(shù)據(jù)集上進(jìn)行訓(xùn)練與測(cè)試,它們的mAP分別提高了0.52 %,0.58 %,1.03 %,0.59 %和0.54 %,0.61 %,1.08 %,0.57 %。結(jié)果表明了對(duì)于RefinenDet存在的缺點(diǎn),本文提出改進(jìn)部分是可行性的和有效的。
表1 目標(biāo)檢測(cè)算法性能對(duì)比
本文針對(duì)RefineDet目標(biāo)檢測(cè)網(wǎng)絡(luò)在訓(xùn)練時(shí),存在樣本數(shù)量少的類(lèi)別檢測(cè)性能低和困難樣本難挖掘的問(wèn)題,以及ARM獲取特征信息比較粗略和深層卷積運(yùn)算后特征信息遺失嚴(yán)重,提出基于融合PyConv卷積的優(yōu)化結(jié)構(gòu)和WBALoss損失函數(shù)RefineDet算法。優(yōu)化部分結(jié)構(gòu)提升了在深層里提取特征信息的能力,提高了ARM輸出細(xì)化瞄框精度和進(jìn)一步增強(qiáng)ODM的效果;在多分類(lèi)損失函數(shù)中引入類(lèi)別樣本平衡因子αj和難易樣本平衡因子bi,緩解類(lèi)別樣本不平衡和困難樣本難挖掘的問(wèn)題。實(shí)驗(yàn)表明:上述的損失函數(shù)可以緩解RefineDet檢測(cè)網(wǎng)絡(luò)中的類(lèi)別樣本數(shù)量和難易樣本不平衡問(wèn)題,不僅提高小類(lèi)樣本的檢測(cè)精度,而且進(jìn)一步增強(qiáng)算法的檢測(cè)能力。本文模型雖然關(guān)注了類(lèi)間數(shù)據(jù)不平衡問(wèn)題和難易樣本的訓(xùn)練比重,但是只粗略改變樣本的貢獻(xiàn)比重,尚未理論分析兩個(gè)因子共同引入帶來(lái)的問(wèn)題。以及融合ARM的信息特征會(huì)帶來(lái)額外的計(jì)算,優(yōu)化加速該神經(jīng)網(wǎng)絡(luò)也是一個(gè)需要思考的問(wèn)題。