基于Grad-CAM與KL損失的SSD目標(biāo)檢測(cè)算法
來源:《電子學(xué)報(bào)》,作者侯慶山等
摘 要:?鑒于Single Shot Multibox Detector (SSD)算法對(duì)中小目標(biāo)檢測(cè)時(shí)會(huì)出現(xiàn)漏檢甚至錯(cuò)檢的情況,提出一種改進(jìn)的SSD目標(biāo)檢測(cè)算法,以提高中小目標(biāo)檢測(cè)的準(zhǔn)確性.運(yùn)用Gradient-weighted Class Activation Mapping (Grad-CAM)技術(shù)對(duì)檢測(cè)過程中的細(xì)節(jié)作可視化處理,并以類激活圖的形式呈現(xiàn)各檢測(cè)層細(xì)節(jié),分析各檢測(cè)層的類激活圖發(fā)現(xiàn)SSD算法中待檢測(cè)目標(biāo)的錯(cuò)檢以及中小目標(biāo)的漏檢現(xiàn)象與回歸損失函數(shù)相關(guān).據(jù)此,采用Kullback-Leibler (KL)邊框回歸損失策略,利用Non Maximum Suppression (NMS)算法輸出最終預(yù)測(cè)框.實(shí)驗(yàn)結(jié)果表明,改進(jìn)算法相較于已有檢測(cè)算法具有更高的準(zhǔn)確率以及穩(wěn)定性.
關(guān)鍵詞:?目標(biāo)檢測(cè);可視化;類激活圖;Grad-CAM;SSD;KL損失
1 引言
目標(biāo)檢測(cè)技術(shù)的不斷完善和發(fā)展,引起智能化交通系統(tǒng)[1]、智能監(jiān)控系統(tǒng)[2]、軍事目標(biāo)檢測(cè)[3]及醫(yī)學(xué)導(dǎo)航手術(shù)中手術(shù)器械定位[4]等領(lǐng)域的廣泛關(guān)注,是計(jì)算機(jī)視覺領(lǐng)域的核心技術(shù)之一.在國內(nèi)外相關(guān)研究機(jī)構(gòu)的努力下,高效的目標(biāo)檢測(cè)算法如雨后春筍般層出不窮,如基于單階段過程的You Only Look Once (YOLO)算法[5]、SSD算法[6]、基于雙階段過程的Region with CNN features (R-CNN)算法[7]等.
針對(duì)SSD算法在中小目標(biāo)檢測(cè)中漏檢甚至錯(cuò)檢的問題,Wen,Zhan[8]等人改進(jìn)原SSD算法的激活函數(shù),并引入Atrous濾波器.Wu[9]等人在傳統(tǒng)的SSD檢測(cè)算法中加入轉(zhuǎn)置卷積結(jié)構(gòu),將低分辨率、高語義與高分辨率、低語義的輸出特征圖進(jìn)行融合.針對(duì)圖像中某些待檢測(cè)目標(biāo)被遮擋的情況,Xing[10]等人根據(jù)檢測(cè)目標(biāo)的分布規(guī)律調(diào)整了輸出特征層的縮放系數(shù),一定程度上解決了漏檢問題.Tang[11]等人提出了多視窗的方法,但由于該方法存在目標(biāo)被拆分檢測(cè)等問題,使得其準(zhǔn)確性及穩(wěn)定性受到影響.針對(duì)SSD模型的低特征層,Chen[12]等人采用區(qū)域放大提取的方法提升了算法的中小目標(biāo)檢測(cè)能力.Fu[13]等人提出Deconvolutional Single Shot Detector (DSSD)模型,但其網(wǎng)絡(luò)結(jié)構(gòu)也隨之變得更復(fù)雜,導(dǎo)致模型的檢測(cè)實(shí)時(shí)性下降.Jeong?[14]等人提出的Rainbow Single Shot Multibox Detector (RSSD)模型改進(jìn)了特征融合的方式,對(duì)各輸出層特征更加充分的利用,提升算法對(duì)中小目標(biāo)的檢測(cè)效果.Li[15]等人通過特征融合與下采樣的方法獲取更多輸出特征層細(xì)節(jié)信息,從而提出Feature fusion Single Shot multibox Detector (FSSD)目標(biāo)檢測(cè)模型.
為了方便對(duì)SSD算法在中小目標(biāo)檢測(cè)方面性能的提高,本文引入可視化技術(shù)[16]對(duì)原算法的檢測(cè)過程進(jìn)行分析,優(yōu)化了原算法的損失函數(shù).改進(jìn)后的檢測(cè)算法對(duì)中小目標(biāo)的檢測(cè)能力更強(qiáng),總體檢測(cè)效果更好,并且目標(biāo)漏檢、錯(cuò)檢問題也得到相應(yīng)改善.
2 相關(guān)研究
2.1 SSD模型
SSD算法使用多尺度特征層進(jìn)行目標(biāo)檢測(cè),是一種直接預(yù)測(cè)目標(biāo)類別和邊界框的多目標(biāo)檢測(cè)算法.與雙階段過程的目標(biāo)檢測(cè)算法相比SSD算法將所有計(jì)算在單階段過程中進(jìn)行,沒有候選框區(qū)域的生成和后續(xù)特征重采樣階段的過程,提升了SSD算法的檢測(cè)速度.該算法以Visual Geometry Group 16 (VGG-16)[17]為基礎(chǔ)網(wǎng)絡(luò),中上部分采用采樣金字塔結(jié)構(gòu)[18],將最后兩個(gè)全連接層替換為卷積層,并在其后增加四個(gè)卷積層.
2.2 KL損失函數(shù)
現(xiàn)有的目標(biāo)檢測(cè)算法在大規(guī)模數(shù)據(jù)集上進(jìn)行某些邊界框標(biāo)定時(shí)存在歧義.KL損失[19]針對(duì)邊界框的移動(dòng)與位置間的方差進(jìn)行學(xué)習(xí),在同等計(jì)算量下提升不同結(jié)構(gòu)定位的準(zhǔn)確率.KL邊界框回歸損失可以獲取到數(shù)據(jù)集中的模糊,從而降低預(yù)測(cè)邊界框的回歸損失.
基于對(duì)Faster R-CNN[20],Mask R-CNN[21]檢測(cè)網(wǎng)絡(luò)的認(rèn)知,KL損失將原本的回歸框參數(shù)由(x,y,w,h)替換為(x1,y1,x2,y2),這樣便于在每個(gè)維度上單獨(dú)優(yōu)化,預(yù)測(cè)邊界框與真實(shí)邊界框的偏差可由式(1)表達(dá).
(1)
(x1,y1,x2,y2)表示預(yù)測(cè)邊界框左上角和右下角的坐標(biāo),
表示真實(shí)邊界框左上角以及右下角的坐標(biāo).(x1a,x2a,y1a,y2a,wa,ha)是由真實(shí)邊界框聚類產(chǎn)生的錨框.
KL損失重點(diǎn)評(píng)估位置的置信度,在預(yù)測(cè)位置的同時(shí)給出置信度.假設(shè)坐標(biāo)間互相獨(dú)立并使用單變量高斯模型,將邊界框坐標(biāo)表示為x,單獨(dú)對(duì)每個(gè)坐標(biāo)進(jìn)行獨(dú)立優(yōu)化,可由式(2)表達(dá).
(2)
式(2)中Θ表示一組要學(xué)習(xí)的參數(shù),xe表示預(yù)測(cè)邊界框的位置,xe∈(x1,y1,x2,y2),σ表示位置估計(jì)的置信度.
真實(shí)邊界框也可以表示為σ→0的高斯分布,如式(3)所示.式(3)中的xg表示真實(shí)邊界框的位置.
PD(x)=δ(x-xg)
(3)
選取N個(gè)樣本,將這些樣本的預(yù)測(cè)邊界框分布PΘ(x)和真實(shí)邊界框分布PD(x)之間的誤差最小化,進(jìn)而對(duì)
進(jìn)行評(píng)估,獲取位置定位的目標(biāo),可由式(4)表達(dá).
(4)
基于KL損失的檢測(cè)算法中,邊界框回歸的損失函數(shù)采用KL損失,對(duì)于單個(gè)樣本的邊界框回歸損失由式(5)定義.
Lreg=DKL(PD(x)‖PΘ(x))
(5)
xe表示預(yù)測(cè)邊界框的位置,當(dāng)預(yù)測(cè)邊界框的坐標(biāo)位置不準(zhǔn)確時(shí),網(wǎng)絡(luò)通過預(yù)測(cè)更大的方差σ2,使回歸損失降低,由于式(5)中的后兩部分與參數(shù)Θ無關(guān),得式(6).
(6)
當(dāng)σ=1時(shí),損失變?yōu)闅W氏距離,如式(7).
(7)
對(duì)式(6)中預(yù)測(cè)邊界框的位置估計(jì)和定位標(biāo)準(zhǔn)偏差σ分別求偏導(dǎo),如式(8)、(9)所示.
(8)
(9)
為了防止在訓(xùn)練開始時(shí)發(fā)生梯度爆炸,令α=log(σ2),在進(jìn)行測(cè)試時(shí),將α重新變回為σ,變換后的損失可由式(10)表達(dá).
(10)
用隨機(jī)高斯分布對(duì)全連接層初始化,KL損失在開始訓(xùn)練時(shí)類似于smooth?L1損失,當(dāng)│xg-xe│>1時(shí),損失可定義為式(11).
(11)
2.3 類激活圖
為解決卷積神經(jīng)網(wǎng)絡(luò)模型中的不可見問題,通過Grad-CAM技術(shù)[22]可將網(wǎng)絡(luò)模型對(duì)輸入圖像中感興趣的區(qū)域表示出來,將網(wǎng)絡(luò)模型可視化,直觀的表達(dá)了算法得出分類結(jié)果的原因.在Grad-CAM技術(shù)中,利用類別輸出結(jié)果對(duì)卷積層的輸出特征圖求導(dǎo)獲取特征激活圖,由式(12)計(jì)算得到權(quán)重值
將
與特征圖累加得到可視化結(jié)果,權(quán)重
說明了類別c對(duì)特征映射的重要度.
(12)
通過ReLU函數(shù)除去特征圖上負(fù)值對(duì)分類結(jié)果的影響,最終的分類任務(wù)由式(13)、(14)表達(dá).
(13)
(14)
3 改進(jìn)框架設(shè)計(jì)
3.1 SSD檢測(cè)算法的可視化
Grad_CAM技術(shù)根據(jù)輸入圖像中各目標(biāo)的類別標(biāo)簽判別目標(biāo)區(qū)域.將該技術(shù)運(yùn)用到SSD檢測(cè)算法,使該算法的執(zhí)行過程可視化,針對(duì)用于目標(biāo)檢測(cè)的各卷積層,對(duì)這些層的特征輸出層進(jìn)行分析,構(gòu)建各檢測(cè)層的類激活圖.
SSD檢測(cè)算法的可視化,能夠更好的理解網(wǎng)絡(luò)的目標(biāo)檢測(cè)過程,通過分析類激活圖,得出中小目標(biāo)檢測(cè)不準(zhǔn)確或漏檢的原因,針對(duì)該原因做出相應(yīng)的改進(jìn)策略,提高檢測(cè)效率.SSD 300目標(biāo)檢測(cè)算法的可視化過程如圖1所示.
3.2 基于KL損失的SSD算法
3.2.1 默認(rèn)框設(shè)定
檢測(cè)算法沿用了原SSD算法中默認(rèn)框的設(shè)定方法,針對(duì)多個(gè)目標(biāo)檢測(cè)層的輸出特征圖進(jìn)行設(shè)定,對(duì)于特征圖中的每個(gè)像素點(diǎn)生成大小不同的兩個(gè)正方形及多個(gè)長(zhǎng)方形默認(rèn)框.比例值ar的數(shù)目決定了特征輸出圖中某一像素點(diǎn)下默認(rèn)框的數(shù)目,默認(rèn)框的大小取決于Sk值的設(shè)定,默認(rèn)框的長(zhǎng)和寬可由式(15)、(16)進(jìn)行表達(dá).
(15)
其中m為特征圖的個(gè)數(shù),Smin=0.2 ,Smax=0.9.
(16)
其中默認(rèn)框長(zhǎng)寬比ar∈(1,2,3,1/2,1/3),另外設(shè)置一個(gè)
的默認(rèn)框.默認(rèn)框中心點(diǎn)的位置可由式(17)計(jì)算.
(17)
其中│fk│為第k個(gè)特征圖的大小,i,j∈[0,│fk│].
3.2.2 正負(fù)樣本標(biāo)定
利用檢測(cè)算法對(duì)輸入圖像中的目標(biāo)進(jìn)行檢測(cè)時(shí),需要對(duì)默認(rèn)邊界框進(jìn)行類別標(biāo)定.通過IoU值進(jìn)行匹配,IoU值由式(18)定義.對(duì)于每一個(gè)待檢測(cè)目標(biāo)的真實(shí)邊界框,對(duì)應(yīng)默認(rèn)邊界框的匹配規(guī)則如下:設(shè)定IoU的閾值為0.5,當(dāng)默認(rèn)邊界框與真實(shí)邊界框的IoU值大于0.5時(shí),將此默認(rèn)邊界框標(biāo)定為正例樣本,否則標(biāo)定為負(fù)例樣本.
(18)
其中Areadb,Areagt分別表示默認(rèn)邊界框與真實(shí)邊界框的面積.
3.2.3 損失策略
改進(jìn)的SSD目標(biāo)檢測(cè)算法的訓(xùn)練損失由目標(biāo)分類損失和預(yù)測(cè)邊界框的回歸損失兩部分組成,改進(jìn)算法訓(xùn)練損失可由式(19)表達(dá).
(19)
式中N為正例樣本數(shù),α表示用于控制分類損失和回歸損失的比重.
目標(biāo)分類損失采用交叉熵?fù)p失[23],損失由式(20)表達(dá).
(20)
表示的是第i個(gè)默認(rèn)邊界框與第j個(gè)真實(shí)邊界框關(guān)于目標(biāo)類別p是否匹配,當(dāng)
時(shí)不匹配,
時(shí)匹配.
預(yù)測(cè)邊界框的回歸損失采用KL損失,回歸損失由式(21)定義.
(21)
式中p,g分別表示預(yù)測(cè)邊界框和真實(shí)邊界框與默認(rèn)邊界框之間的偏移量,在邊界框的回歸損失中,通常期望p和g差距較小.
對(duì)經(jīng)過NMS算法處理后所選中的邊界框位置投票,選擇最大得分邊界框M{x1,y1,x2,y2,s,σx1,σy1,σx2,σy2},根據(jù)自身和相鄰邊界框的參數(shù)更新坐標(biāo)位置,鄰近邊界框權(quán)重值Pi和新坐標(biāo)的計(jì)算式由式(22)定義.
pi=e-(1-IoU(bi,b))2/σt
?
(22)
式中σt表示變量投票表決時(shí)的可調(diào)參數(shù).
4 圖像數(shù)據(jù)預(yù)處理
為增強(qiáng)檢測(cè)算法的通用性和穩(wěn)定性,采取數(shù)據(jù)增廣的方法對(duì)數(shù)據(jù)預(yù)處理.通常將圖像目標(biāo)區(qū)域分割掩碼中像素?cái)?shù)量小于1024的目標(biāo)定義為小目標(biāo),大于1024且小于9216的目標(biāo)定義為中等目標(biāo).為此,針對(duì)改進(jìn)的SSD算法制定如下數(shù)據(jù)增廣規(guī)則:
(a)對(duì)原始的輸入圖像進(jìn)行隨機(jī)位置的采樣,采樣圖像與原始圖像的比例取1/64、1/32、1/16、1/8、1/4、1/2、1.
(b)對(duì)采樣圖像以一定的概率作翻轉(zhuǎn)和裁剪處理.
(c)對(duì)采樣圖像以一定的概率添加色彩變換.
與原SSD算法的采樣比例相比,更小的采樣比例可以使得由隨機(jī)采樣得到的小目標(biāo)經(jīng)過圖像尺寸恢復(fù)后被更明顯的表示出來.
5 實(shí)驗(yàn)設(shè)計(jì)
5.1 實(shí)驗(yàn)數(shù)據(jù)集說明
以PASCAL VOC和MS COCO 2017三種數(shù)據(jù)集為基礎(chǔ),設(shè)計(jì)相關(guān)實(shí)驗(yàn)數(shù)據(jù)集,數(shù)據(jù)集的說明如下:
選取MS COCO數(shù)據(jù)集中的30類目標(biāo)作為檢測(cè)類別.分別從MS COCO和PASCAL VOC數(shù)據(jù)集的訓(xùn)練集中選取3000張和2000張帶有檢測(cè)類別的圖像,將選取的5000張圖像作為訓(xùn)練集;從MS COCO數(shù)據(jù)集的驗(yàn)證集中選取1000張圖像作為驗(yàn)證集,用于調(diào)控模型的超參數(shù),監(jiān)測(cè)過擬合現(xiàn)象;分別從MS COCO和PASCAL VOC數(shù)據(jù)集的測(cè)試集中選取800張圖像作為檢測(cè)算法的測(cè)試集.
5.2 實(shí)驗(yàn)相關(guān)過程描述
基于設(shè)計(jì)好的實(shí)驗(yàn)數(shù)據(jù)集,對(duì)改進(jìn)的SSD目標(biāo)檢測(cè)算法進(jìn)行訓(xùn)練測(cè)試.改進(jìn)的SSD目標(biāo)檢測(cè)算法采用了隨機(jī)梯度下降的方法,對(duì)改進(jìn)算法的初始學(xué)習(xí)率、動(dòng)量、權(quán)重大小、批量等參數(shù)進(jìn)行設(shè)定.檢測(cè)算法在訓(xùn)練數(shù)據(jù)時(shí)將初始學(xué)習(xí)率設(shè)定為0.001,對(duì)訓(xùn)練集中的圖像進(jìn)行30000次的迭代訓(xùn)練;進(jìn)一步將學(xué)習(xí)率設(shè)定為0.0001,對(duì)訓(xùn)練集中的圖像進(jìn)行10000次的迭代訓(xùn)練;最后將學(xué)習(xí)率下降至0.00005,對(duì)訓(xùn)練集中的圖像進(jìn)行10000次的迭代訓(xùn)練.此外,設(shè)置IoU閾值為0.5,利用驗(yàn)證集對(duì)超參數(shù)進(jìn)行調(diào)節(jié),監(jiān)測(cè)過擬合現(xiàn)象.
利用測(cè)試集對(duì)訓(xùn)練好的改進(jìn)目標(biāo)檢測(cè)算法進(jìn)行測(cè)試,與原算法的mPA及fps值作對(duì)比,體現(xiàn)改進(jìn)檢測(cè)算法的優(yōu)勢(shì),驗(yàn)證算法改進(jìn)的合理性和有效性.
5.3 實(shí)驗(yàn)結(jié)果分析
5.3.1 各檢測(cè)層結(jié)果對(duì)比
檢測(cè)算法的低檢測(cè)層對(duì)小目標(biāo)特征進(jìn)行提取,對(duì)原SSD目標(biāo)檢測(cè)算法中各檢測(cè)層的檢測(cè)效果進(jìn)行測(cè)試,與原檢測(cè)算法相比,改進(jìn)算法對(duì)小目標(biāo)檢測(cè)的準(zhǔn)確度明顯提升,檢測(cè)精度提升約12%.計(jì)算原算法和改進(jìn)算法各檢測(cè)層的mPA值和fps值,如表1所示.
表1 目標(biāo)檢測(cè)算法各檢測(cè)層mPA值和fps值對(duì)比
由表1數(shù)據(jù)可知,改進(jìn)后的低特征層對(duì)小目標(biāo)的檢測(cè)效果提升明顯,能夠收集到更豐富的語義信息.通過fps值的對(duì)比,改進(jìn)后的SSD目標(biāo)檢測(cè)算法保持了良好的檢測(cè)實(shí)時(shí)性,SSD算法得到明顯改進(jìn).
5.3.2 SSD相關(guān)改進(jìn)算法對(duì)比
對(duì)現(xiàn)有的一些SSD改進(jìn)算法在相關(guān)數(shù)據(jù)集上訓(xùn)練和預(yù)測(cè), 將訓(xùn)練和預(yù)測(cè)結(jié)果與改進(jìn)的SSD 300目標(biāo)檢測(cè)算法做對(duì)比,對(duì)比結(jié)果如表2所示。
分析表2可知,與選取的SSD改進(jìn)算法相比,本文提出的改進(jìn)算法檢測(cè)精度有較明顯的提高,算法的檢測(cè)實(shí)時(shí)性得到較好保持.
表2 SSD相關(guān)改進(jìn)算法mPA和fps對(duì)比
5.3.3 常見目標(biāo)檢測(cè)算法框架對(duì)比
對(duì)現(xiàn)有的一些目標(biāo)檢測(cè)算法在實(shí)驗(yàn)設(shè)計(jì)數(shù)據(jù)集上訓(xùn)練和預(yù)測(cè),將訓(xùn)練和預(yù)測(cè)結(jié)果與改進(jìn)的SSD目標(biāo)檢測(cè)算法做對(duì)比,對(duì)比結(jié)果如表3所示.
將改進(jìn)算法訓(xùn)練過程的mPA值與YOLO、YOLOv2算法訓(xùn)練過程的mPA值對(duì)比,對(duì)比結(jié)果如圖2所示.另外選取基于兩階段過程的Fast R-CNN、Faster R-CNN算法,訓(xùn)練過程的mPA值對(duì)比結(jié)果如圖3所示.
對(duì)比改進(jìn)算法與原SSD算法訓(xùn)練過程的mPA值,對(duì)比結(jié)果如圖4所示.
與現(xiàn)有的目標(biāo)檢測(cè)算法對(duì)比,改進(jìn)后的SSD目標(biāo)檢測(cè)算法檢測(cè)精度有較明顯的提高,算法的檢測(cè)實(shí)時(shí)性較好.一方面,對(duì)原SSD目標(biāo)檢測(cè)算法的損失策略進(jìn)行改進(jìn),進(jìn)一步縮小了檢測(cè)算法訓(xùn)練時(shí)的損失;另一方面,針對(duì)圖像中的中小目標(biāo)做出相應(yīng)的圖像增廣策略,
表3 目標(biāo)檢測(cè)算法mPA和fps對(duì)比
使得檢測(cè)算法對(duì)中小目標(biāo)特征的收集更加全面,提高了對(duì)輸入圖像上中小目標(biāo)的檢測(cè)精度.
5.3.4 效果圖對(duì)比
將改進(jìn)算法的檢測(cè)效果圖與原算法的檢測(cè)效果圖進(jìn)行對(duì)比,對(duì)比效果圖如圖5、6所示.改進(jìn)后的SSD目標(biāo)檢測(cè)算法對(duì)輸入圖像中的中小目標(biāo)能夠更加精準(zhǔn)的檢測(cè)和分類,對(duì)由于遮擋現(xiàn)象造成的目標(biāo)漏檢問題有良好改善.在復(fù)雜場(chǎng)景中,與原SSD檢測(cè)算法相比,改進(jìn)的SSD目標(biāo)檢測(cè)算法能夠檢測(cè)到更多的目標(biāo);在簡(jiǎn)單場(chǎng)景中,改進(jìn)算法對(duì)待檢測(cè)目標(biāo)類型的判別更加精確,目標(biāo)的正確分類得分更高。此外,在處理模糊場(chǎng)景及小目標(biāo)場(chǎng)景時(shí),改進(jìn)算法能夠檢測(cè)到更多的模糊目標(biāo)與小目標(biāo)。
6 結(jié)束語
改進(jìn)的SSD目標(biāo)檢測(cè)算法提高了原SSD目標(biāo)檢測(cè)算法的穩(wěn)定性和準(zhǔn)確率,改善了在遮擋情況下造成的目標(biāo)錯(cuò)檢現(xiàn)象,對(duì)中小目標(biāo)的檢測(cè)效果有明顯的提升.改進(jìn)算法的貢獻(xiàn)主要體現(xiàn)在以下方面:
(1)對(duì)SSD目標(biāo)檢測(cè)算法進(jìn)行可視化,分析SSD目標(biāo)檢測(cè)算法的檢測(cè)過程.
(2)針對(duì)原算法的不足,改進(jìn)了輸入圖像的增廣策略.
(3)基于對(duì)可視化結(jié)果的分析,優(yōu)化了傳統(tǒng)SSD目標(biāo)檢測(cè)算法的邊界框回歸損失.
(4)利用改進(jìn)的NMS算法輸出目標(biāo)的預(yù)測(cè)邊界框.
審核編輯:符乾江
評(píng)論
查看更多