李姜楠,伍 星,劉競(jìng)升,王洪剛
重慶大學(xué) 計(jì)算機(jī)學(xué)院,重慶 400000
人工智能的快速發(fā)展使深度學(xué)習(xí)技術(shù)廣泛應(yīng)用于目標(biāo)檢測(cè)領(lǐng)域,2014 年Girshick 等人首次將深度學(xué)習(xí)應(yīng)用于目標(biāo)檢測(cè),提出R-CNN[1]二階段檢測(cè)模型,并在此基礎(chǔ)上引入感興趣區(qū)域池化(RoI 池化)得到Fast R-CNN[2],然后使用區(qū)域提取網(wǎng)絡(luò)結(jié)構(gòu)(RPN)代替選擇性搜索算法生成候選框進(jìn)一步得到Faster R-CNN[3]。Lin等人提出特征金字塔網(wǎng)絡(luò)(FPN[4]),通過融合低層特征信息和高層語義信息,提升了小目標(biāo)檢測(cè)效果。Cai等人提出Cascade R-CNN[5],通過不斷提高并交比(IoU)閾值,在保證樣本數(shù)不減少的情況下訓(xùn)練出高質(zhì)量檢測(cè)器。針對(duì)二階段檢測(cè)模型預(yù)測(cè)速度較慢的問題,2016 年Redmon 等人提出YOLO[6]一階段檢測(cè)模型,然后在此基礎(chǔ)上將全連接層替換成卷積層,并利用聚類算法獲得先驗(yàn)框而提出YOLOv2[7],接著使用更強(qiáng)大的特征提取網(wǎng)絡(luò)并引入類FPN結(jié)構(gòu)提出YOLOv3[8]。鄒承明等人[9]在YOLOv3 基礎(chǔ)上引入Focal loss 和GIoU loss,提高了YOLOv3對(duì)小目標(biāo)的檢測(cè)能力。Bochkovskiy等人將CSP 結(jié)構(gòu)引入特征提取網(wǎng)絡(luò)并在特征融合層中使用PAN結(jié)構(gòu)而提出了YOLOv4[10]。Liu等人提出了可在多尺度特征圖上檢測(cè)的SSD[11]模型,彌補(bǔ)了YOLO在小物體檢測(cè)上精度不佳的問題。Lin等人提出RetinaNet[12],通過引入Focal loss[12]消除了大量背景造成數(shù)據(jù)不平衡的影響,使一階段檢測(cè)模型獲得了接近二階段模型的精度。隨著目標(biāo)檢測(cè)模型開始向移動(dòng)端部署,研究人員將目光轉(zhuǎn)向了參數(shù)少且內(nèi)存占用低的輕量級(jí)模型。知識(shí)蒸餾作為一種有效的模型壓縮方法,逐漸受到研究者的青睞。
自2015年Hinton等人提出知識(shí)蒸餾[13]后,大量研究者對(duì)圖像分類領(lǐng)域的知識(shí)蒸餾展開研究,但在目標(biāo)檢測(cè)上的研究依舊較少。Chen 等人[14]打破了這個(gè)僵局,以Faster R-CNN為檢測(cè)網(wǎng)絡(luò),對(duì)特征提取層,分類損失和回歸損失同時(shí)展開蒸餾,提升了二階段目標(biāo)檢測(cè)模型的精度。Wang等人[15]針對(duì)全局特征圖的蒸餾算法會(huì)引入大量背景信息的問題,提出使用信號(hào)圖(mask-map[15])將教師網(wǎng)絡(luò)傳遞的知識(shí)限制在真實(shí)框附近,獲得了更高的精度,但基于二階段檢測(cè)模型蒸餾出的網(wǎng)絡(luò)因速度依然較慢難以在移動(dòng)端部署。Mehta等人[16]將知識(shí)蒸餾應(yīng)用于一階段檢測(cè)模型,通過類FPN 結(jié)構(gòu)優(yōu)化學(xué)生網(wǎng)絡(luò)架構(gòu),加入無標(biāo)簽數(shù)據(jù)集進(jìn)行訓(xùn)練,蒸餾時(shí)使用特征圖非極大值抑制算法(FM-NMS)過濾冗余框,在tiny-yolov2基礎(chǔ)上mAP 提升了14 個(gè)百分點(diǎn),但蒸餾的提升效果有限,mAP只提升不到1個(gè)百分點(diǎn)。
2019年,管文杰等人[17]將知識(shí)蒸餾引入Cascade RCNN,將二、三階段檢測(cè)器回歸分類的結(jié)果作為“軟目標(biāo)”加入損失函數(shù)中進(jìn)行蒸餾,達(dá)到和四階段檢測(cè)相當(dāng)?shù)木取M?,溫靜[18]將知識(shí)蒸餾的Attention轉(zhuǎn)移算法與歸一化后的損失函數(shù)應(yīng)用于智能車駕駛環(huán)境理解中的目標(biāo)檢測(cè)任務(wù),有效提高了小網(wǎng)絡(luò)的準(zhǔn)確性。
針對(duì)目前在一階段目標(biāo)檢測(cè)器上蒸餾的研究較少,且蒸餾提升效果有限的情況,本文以YOLOv3為檢測(cè)網(wǎng)絡(luò),提出將信息圖作為監(jiān)督信號(hào)在特征提取層和特征融合層上同時(shí)展開蒸餾。本文的貢獻(xiàn)點(diǎn)如下:(1)將信息圖作為監(jiān)督信號(hào)對(duì)學(xué)生網(wǎng)絡(luò)展開蒸餾。信息圖是教師網(wǎng)絡(luò)傳遞的知識(shí)重要性的分布圖,不僅過濾掉了教師網(wǎng)絡(luò)傳遞的背景信息,且強(qiáng)化了學(xué)生網(wǎng)絡(luò)對(duì)教師網(wǎng)絡(luò)重點(diǎn)知識(shí)的學(xué)習(xí)。(2)在特征提取層和特征融合層上同時(shí)展開蒸餾。在特征提取層上蒸餾后,特征融合層上的蒸餾對(duì)前者的蒸餾有一個(gè)校正作用,可以進(jìn)一步提升蒸餾效果。
Chen 等人[14]提出對(duì)二階段目標(biāo)檢測(cè)器Faster R-CNN 進(jìn)行蒸餾,教師網(wǎng)絡(luò)和學(xué)生網(wǎng)絡(luò)具有相同的檢測(cè)框架,但是學(xué)生網(wǎng)絡(luò)會(huì)選擇輕量級(jí)的特征提取網(wǎng)絡(luò)(Backbone)。如圖1所示,圖片分別輸入至教師網(wǎng)絡(luò)和學(xué)生網(wǎng)絡(luò),在特征提取層(hint)、分類結(jié)果(classification)、回歸結(jié)果(regression)上產(chǎn)生不同的輸出。通過度量教師網(wǎng)絡(luò)和學(xué)生網(wǎng)絡(luò)輸出的差距,構(gòu)建蒸餾損失。將蒸餾損失加上檢測(cè)的真實(shí)損失(Detection loss)構(gòu)成總損失,計(jì)算方式如式(1)所示:
式中,Lloss為總損失,Lhard為真實(shí)損失,Lsoft為蒸餾損失。s為學(xué)生網(wǎng)絡(luò),T為真實(shí)標(biāo)簽,t為教師網(wǎng)絡(luò),α為平衡真實(shí)損失和蒸餾損失的權(quán)重。通過反向傳播算法更新學(xué)生網(wǎng)絡(luò)的權(quán)重,不斷降低損失值,可以使學(xué)生網(wǎng)絡(luò)的輸出逐漸接近教師網(wǎng)絡(luò)。Lhard的計(jì)算方式如式(2)所示:
式中,Lcls為目標(biāo)檢測(cè)中的分類損失,Lreg為目標(biāo)檢測(cè)中的回歸損失。Lsoft的計(jì)算方式如式(3)所示:
式中,Lhint為hint 損失(度量了學(xué)生網(wǎng)絡(luò)和教師網(wǎng)絡(luò)輸出的特征層的差異,此處使用了平方差損失,即圖1 中的L2 loss),Lsoft_cls為兩者之間的分類損失(交叉熵?fù)p失,即圖1 中的Cross Entropy Loss),Lsoft_reg為兩者之間的回歸損失(平方差損失)。在hint損失中,為了保持學(xué)生網(wǎng)絡(luò)輸出的特征層維度和教師網(wǎng)絡(luò)一致,使用一個(gè)由1×1卷積組成的自適應(yīng)層(adaption)調(diào)節(jié)學(xué)生網(wǎng)絡(luò)輸出的維度。
圖1 二階段檢測(cè)模型蒸餾架構(gòu)Fig.1 Two-stage detection model distillation architecture
Wang 等人[15]發(fā)現(xiàn)圖1 中的hint 損失是針對(duì)特征層的全局信息展開蒸餾,會(huì)引入大量背景信息,對(duì)此提出了改進(jìn)。引入信號(hào)圖(mask-map[15])去掉教師網(wǎng)絡(luò)傳遞的背景信息,只針對(duì)目標(biāo)周圍的特征層進(jìn)行蒸餾(未對(duì)分類和回歸信息進(jìn)行蒸餾)。如圖2 所示,教師網(wǎng)絡(luò)對(duì)學(xué)生網(wǎng)絡(luò)蒸餾時(shí),使用了一張標(biāo)識(shí)目標(biāo)區(qū)域的maskmap做監(jiān)督信號(hào),虛線框描述了由教師網(wǎng)絡(luò)輸出的預(yù)測(cè)框和真實(shí)標(biāo)簽作為輸入,獲得mask-map 的過程,計(jì)算方式如式(4)所示:
圖2 改進(jìn)的二階段檢測(cè)模型蒸餾架構(gòu)Fig.2 Improved distillation architecture of two-stage detection model
式中,Hxyz為相應(yīng)位置mask-map 的取值,IoUxyz為相應(yīng)位置IoU 的取值,φ為控制mask-map 范圍的參數(shù),IoU-map為教師網(wǎng)絡(luò)輸出的預(yù)測(cè)框和真實(shí)標(biāo)簽生成的IoU 的取值。通過max 函數(shù)獲得每組IoU-map的最大值,并和φ的乘積作為閾值,小于該閾值的IoU 置為0。對(duì)每組IoU-map做或操作獲得一張IoU-map,再對(duì)多組IoU-map做或操作,可獲得過濾掉背景信息的maskmap。該蒸餾架構(gòu)的蒸餾損失為基于IoU-map監(jiān)督的教師網(wǎng)絡(luò)和自適應(yīng)層輸出的平方差損失。
Mehta 等人[16]在一階段目標(biāo)檢測(cè)器上進(jìn)行蒸餾,針對(duì)教師網(wǎng)絡(luò)將大量重復(fù)框傳遞給學(xué)生網(wǎng)絡(luò)的問題,提出在教師網(wǎng)絡(luò)的輸出上做非極大值抑制的FM-NMS 算法。如圖3 所示,圖片輸入至教師網(wǎng)絡(luò)和學(xué)生網(wǎng)絡(luò),將教師網(wǎng)絡(luò)的輸出經(jīng)過FM-NMS 過濾(對(duì)同類別預(yù)測(cè)框的得分進(jìn)行排序,只留下同類別得分最高的預(yù)測(cè)框)。將過濾后預(yù)測(cè)框的置信度(Confidence)、分類(Classification)和回歸(Regression)信息與學(xué)生網(wǎng)絡(luò)輸出的預(yù)測(cè)框信息計(jì)算蒸餾損失,加上學(xué)生網(wǎng)絡(luò)的輸出和真實(shí)標(biāo)簽產(chǎn)生的真實(shí)損失(Detection Loss)構(gòu)成總損失,對(duì)該損失進(jìn)行反向傳播來訓(xùn)練學(xué)生網(wǎng)絡(luò)。
圖3 一階段檢測(cè)模型蒸餾架構(gòu)Fig.3 One-stage detection model distillation architecture model
二階段目標(biāo)檢測(cè)器中的區(qū)域提取網(wǎng)絡(luò)可以去除大量冗余框,且蒸餾過程中,通過mask-map過濾掉了背景信息,可以達(dá)到較好的蒸餾效果。但二階段目標(biāo)檢測(cè)器參數(shù)量較多,占用內(nèi)存大,即使是蒸餾后的小網(wǎng)絡(luò),也難以在移動(dòng)端部署,相比之下,蒸餾后的一階段目標(biāo)檢測(cè)器可在移動(dòng)端部署。因此,本文對(duì)圖3中的知識(shí)蒸餾架構(gòu)進(jìn)行改進(jìn),并應(yīng)用于一階段目標(biāo)檢測(cè)器,提出基于信息圖對(duì)特征提取層和特征融合層同時(shí)蒸餾的知識(shí)蒸餾架構(gòu)。如圖4 所示,圖片分別輸入教師網(wǎng)絡(luò)和學(xué)生網(wǎng)絡(luò),在特征提取層(Backbone)和特征融合層(Neck)輸出的特征層上同時(shí)展開蒸餾,計(jì)算損失時(shí),引入信息圖作為監(jiān)督信號(hào)對(duì)蒸餾過程提供指導(dǎo),最后通過反向傳播算法更新學(xué)生網(wǎng)絡(luò)的權(quán)重。
圖4 基于信息圖的知識(shí)蒸餾架構(gòu)Fig.4 Knowledge distillation architecture based on information map
基于信息圖的蒸餾過程分為3個(gè)步驟:(1)如圖5所示,將學(xué)生網(wǎng)絡(luò)輸出的特征層輸入一個(gè)由1×1卷積組成的自適應(yīng)層,使學(xué)生網(wǎng)絡(luò)輸出特征層的維度和教師網(wǎng)絡(luò)保持一致;(2)在信息圖的指導(dǎo)下計(jì)算特征層之間的平方差損失,信息圖對(duì)涵蓋目標(biāo)的區(qū)域均賦予了權(quán)重,非目標(biāo)區(qū)域的值為0;(3)進(jìn)行反向傳播,只更新學(xué)生網(wǎng)絡(luò)的權(quán)重。經(jīng)過模型多次訓(xùn)練,學(xué)生網(wǎng)絡(luò)的輸出將越來越接近教師網(wǎng)絡(luò)的輸出。
圖5 特征提取層的蒸餾Fig.5 Distillation of feature extraction laye
信息圖的生成如圖6所示,首先由教師網(wǎng)絡(luò)的預(yù)測(cè)框和真實(shí)標(biāo)簽獲得mask-map,mask-map 中包含圓圈的部分值為1,表示前景區(qū)域,未包含圓圈的部分值為0,表示背景區(qū)域。在教師網(wǎng)絡(luò)傳遞的前景信息中,越靠近目標(biāo)的關(guān)鍵部分,最終對(duì)目標(biāo)的判斷越具有決定性影響,但mask-map 中只有0 值和1 值,無法對(duì)不同前景信息的重要性進(jìn)行區(qū)分。教師網(wǎng)絡(luò)輸出的置信度包含了前景信息的重要程度,越靠近目標(biāo)核心部分的置信度越大,越遠(yuǎn)離的置信度越小。本文基于教師網(wǎng)絡(luò)輸出的置信度,對(duì)現(xiàn)有的mask-map進(jìn)行改進(jìn),提出了可以在蒸餾過程中提供監(jiān)督信號(hào)的信息圖,信息圖的計(jì)算方式如式(5)所示:
圖6 信息圖的生成Fig.6 Generation of Information-map
式中,Information-map表示信息圖,confidenceteacher表示教師網(wǎng)絡(luò)輸出的置信度。將置信度和mask-map相乘獲得信息圖,可以在值為1的部分獲得有區(qū)分度的權(quán)重,在計(jì)算損失時(shí),權(quán)重更大的位置會(huì)受到更多關(guān)注,加強(qiáng)了學(xué)生網(wǎng)絡(luò)對(duì)教師網(wǎng)絡(luò)傳遞的重點(diǎn)知識(shí)的學(xué)習(xí)。
在網(wǎng)絡(luò)結(jié)構(gòu)中,特征提取層負(fù)責(zé)獲得圖片的特征信息,并以特征層的形式輸出。特征融合層可以將不同尺度的特征層進(jìn)行拼接或相加,獲得來自不同感受野的信息,如圖7所示。目前的知識(shí)蒸餾架構(gòu)大多只針對(duì)特征提取層展開蒸餾,無法獲得教師網(wǎng)絡(luò)在特征融合層的知識(shí)。針對(duì)這個(gè)問題,本文提出同時(shí)對(duì)特征提取層和特征融合層展開蒸餾,相比于現(xiàn)有的知識(shí)蒸餾架構(gòu),可以進(jìn)一步提升蒸餾效果,蒸餾中的損失函數(shù)如式(6)所示:
圖7 特征融合層Fig.7 Feature fusion layer
式中,Lloss為總損失,Lhard為檢測(cè)的真實(shí)損失,Lbackbone和Lneck分別為特征提取層和特征融合層產(chǎn)生的蒸餾損失,α和β是用來平衡三者之間的權(quán)重,這里均設(shè)置為1,Lbackbone和Lneck的計(jì)算方式如下所示:
式(7)中,N為信息圖中不為0 的像素點(diǎn)個(gè)數(shù)的總和。W、H、C分別表示特征提取層輸出的特征層的尺寸,Hxy為mask-map 的取值,conft為教師網(wǎng)絡(luò)輸出的置信度,兩者相乘則為信息圖,對(duì)特征層的蒸餾提供指導(dǎo)。fbackbone_adap(s)為學(xué)生網(wǎng)絡(luò)特征提取層經(jīng)過自適應(yīng)層處理后輸出的特征層,txyz為教師網(wǎng)絡(luò)輸出的特征層。基于特征融合層的蒸餾損失與特征提取層的蒸餾損失類似,如式(8)所示。
本文使用的數(shù)據(jù)集為VOC[19]數(shù)據(jù)集,同時(shí)取VOC2012[19]和VOC2007[19]的訓(xùn)練集和驗(yàn)證集作為訓(xùn)練集,VOC2007 的測(cè)試集作為測(cè)試集。VOC 數(shù)據(jù)集共有20 個(gè)類別,本文選擇的訓(xùn)練集有16 551 張圖片,用來蒸餾出學(xué)生網(wǎng)絡(luò)的權(quán)重參數(shù),測(cè)試集有4 952張圖片,可以測(cè)試出蒸餾的效果。評(píng)價(jià)指標(biāo)為目標(biāo)檢測(cè)模型常用的平均類別精度(mAP),兼顧了模型的準(zhǔn)確率和召回率,mAP的表達(dá)式為:
式中,IAP,C表示每類缺陷的平均精確度,C表示數(shù)據(jù)集的類別,N表示數(shù)據(jù)類別數(shù)目。
實(shí)驗(yàn)基于Pytorch 深度學(xué)習(xí)框架,運(yùn)行在Ubuntu 18.04 系統(tǒng)環(huán)境下,中央處理器為4.7 GHz Intel Core?CPU i7-9700,內(nèi)存為32 GB,顯卡型號(hào)是NVIDIA Ge-Force RTX 2080ti,加速庫為CUDA10.2和CUDNN7.6。
訓(xùn)練時(shí),首先將教師網(wǎng)絡(luò)和學(xué)生網(wǎng)絡(luò)訓(xùn)練出合適的精度,然后將訓(xùn)練好的權(quán)重分別加載到知識(shí)蒸餾框架中,凍結(jié)教師網(wǎng)絡(luò)的權(quán)重,只訓(xùn)練學(xué)生網(wǎng)絡(luò)。蒸餾實(shí)驗(yàn)的訓(xùn)練過程中,動(dòng)量和權(quán)重衰減系數(shù)分別為0.9 和0.000 5,批量大小設(shè)置為4,并交比(IoU)為0.5。采用SGD優(yōu)化器進(jìn)行優(yōu)化,以余弦函數(shù)為周期,周期性地設(shè)置學(xué)習(xí)率,學(xué)習(xí)率的范圍為[10-6,10-4]。
本文選擇YOLOv3為教師網(wǎng)絡(luò),tiny_yolov3為學(xué)生網(wǎng)絡(luò)。教師網(wǎng)絡(luò)在YOLOv3 的基礎(chǔ)上使用Focal loss、GIoU loss 和mix-up 數(shù)據(jù)增強(qiáng)的方式,平均精度提升至84.7%。學(xué)生網(wǎng)絡(luò)在tiny_yolov3 的基礎(chǔ)上加入了一個(gè)52×52的分支,便于蒸餾過程中和YOLOv3的三分支輸出結(jié)構(gòu)匹配。本文將Chen[14]和Wang[15]的知識(shí)蒸餾架構(gòu)應(yīng)用于YOLOv3,做了相關(guān)的對(duì)比實(shí)驗(yàn)。雖然Metha 等人[16]也將知識(shí)蒸餾應(yīng)用于目標(biāo)檢測(cè),在學(xué)生網(wǎng)絡(luò)的基礎(chǔ)上mAP提升了14個(gè)百分點(diǎn),但蒸餾架構(gòu)提升效果有限,mAP只提升了不到1個(gè)百分點(diǎn),所以未加入對(duì)比實(shí)驗(yàn)。
實(shí)驗(yàn)結(jié)果如表1 所示,經(jīng)過蒸餾后,學(xué)生網(wǎng)絡(luò)mAP指標(biāo)均有提升,驗(yàn)證了知識(shí)蒸餾可提升小網(wǎng)絡(luò)的檢測(cè)效果。(1)Chen[14]提出的知識(shí)蒸餾架構(gòu)在tiny_yolov3 的基礎(chǔ)上提升了6.2 個(gè)百分點(diǎn)的mAP,Wang[15]提升了6.8 個(gè)百分點(diǎn)的mAP,本文的知識(shí)蒸餾架構(gòu)提升了9.3個(gè)百分點(diǎn)的mAP,驗(yàn)證了知識(shí)蒸餾的有效性;(2)相比現(xiàn)有的知識(shí)蒸餾架構(gòu),本文提出的知識(shí)蒸餾架構(gòu)高出Chen[14]3.1 個(gè)百分點(diǎn)的mAP,且高出Wang[15]2.5 個(gè)百分點(diǎn)的mAP,充分驗(yàn)證了本文創(chuàng)新點(diǎn)的有效性,且優(yōu)于現(xiàn)有的知識(shí)蒸餾架構(gòu);(3)教師網(wǎng)絡(luò)和學(xué)生網(wǎng)絡(luò)在鳥、貓、狗、沙發(fā)這四類精度的差距最大,蒸餾后這四類的精度相比其他類別均有較大提升,驗(yàn)證了知識(shí)蒸餾可以使學(xué)生網(wǎng)絡(luò)獲得更高的特征提取能力和檢測(cè)能力,大幅度縮小學(xué)生網(wǎng)絡(luò)和教師網(wǎng)絡(luò)的差距。
表1 知識(shí)蒸餾實(shí)驗(yàn)結(jié)果Table 1 Knowledge distillation experiment results
圖8 為訓(xùn)練時(shí)loss 的收斂曲線圖,實(shí)驗(yàn)中使用余弦函數(shù)為周期調(diào)整學(xué)習(xí)率大小,震蕩較為嚴(yán)重。但隨著訓(xùn)練輪數(shù)的增加,loss 曲線逐漸趨于平緩,逐步縮小了學(xué)生網(wǎng)絡(luò)與教師網(wǎng)絡(luò)的差距。
圖8 蒸餾訓(xùn)練曲線圖Fig.8 Distillation training curve graph
為了驗(yàn)證蒸餾的有效性,圖9對(duì)比了蒸餾前后的檢測(cè)效果,左邊一欄為學(xué)生網(wǎng)絡(luò)的輸出,右邊一欄為教師網(wǎng)絡(luò)的輸出,中間一欄為蒸餾后的學(xué)生網(wǎng)絡(luò)的輸出。通過觀察可發(fā)現(xiàn),針對(duì)學(xué)生網(wǎng)絡(luò)沒有檢測(cè)出來的框,蒸餾后的學(xué)生網(wǎng)絡(luò)均可以檢測(cè)出來,且更接近于教師網(wǎng)絡(luò)的預(yù)測(cè)結(jié)果。
圖9 蒸餾效果可視化Fig.9 Visualization of distillation results
本文基于YOLOv3 做了相關(guān)的消融實(shí)驗(yàn)。為了驗(yàn)證該實(shí)驗(yàn)結(jié)果,將圖1網(wǎng)絡(luò)結(jié)構(gòu)中的圖片作為輸入進(jìn)行特征圖的可視化,3.5 節(jié)也采用該圖片作為輸入進(jìn)行蒸餾過程的可視化。
表2 顯示了消融實(shí)驗(yàn)結(jié)果,可分為以下3 個(gè)步驟:(1)首先通過Wang[15]的知識(shí)蒸餾架構(gòu)對(duì)學(xué)生網(wǎng)絡(luò)的特征提取層展開蒸餾,mAP指標(biāo)提升6.8個(gè)百分點(diǎn)。(2)加入信息圖后,在過濾掉教師網(wǎng)絡(luò)傳遞的背景信息的同時(shí),強(qiáng)化了學(xué)生網(wǎng)絡(luò)對(duì)重點(diǎn)知識(shí)的學(xué)習(xí),mAP提升了1.5個(gè)百分點(diǎn)。如圖10所示,相比于圖(b3)、(c3)中的特征圖強(qiáng)化了目標(biāo)核心區(qū)域的特征,邊緣區(qū)域至中心區(qū)域的重要性逐漸升高。(3)同時(shí)對(duì)特征融合層蒸餾,將教師網(wǎng)絡(luò)在特征融合后的知識(shí)有效傳遞給學(xué)生網(wǎng)絡(luò),補(bǔ)充了特征提取層未傳遞的知識(shí),且特征融合層中的卷積層對(duì)特征提取層的蒸餾有一個(gè)校正作用,mAP進(jìn)一步提升1.0個(gè)百分點(diǎn)。如圖10所示,相比于圖(c1)中蒸餾后特征提取層的輸出,圖(d1)中特征融合層的輸出在獲得高層語義信息的同時(shí),依舊保持了物體清晰的輪廓。綜上所述,基于信息圖對(duì)一階段目標(biāo)檢測(cè)器的特征提取層和特征融合層同時(shí)展開蒸餾,可有效提高一階段目標(biāo)檢測(cè)器的精度。
圖10 蒸餾前后特征圖對(duì)比Fig.10 Feature map comparison before and after distillation
表2 消融實(shí)驗(yàn)(mAP)Table 2 Ablation experimen(tmAP)%
為了驗(yàn)證本文方法的有效性,從特征提取層、特征融合層、卷積層這3個(gè)方面對(duì)蒸餾過程進(jìn)行可視化。
特征提取層的可視化。圖11 顯示了蒸餾前后,學(xué)生網(wǎng)絡(luò)經(jīng)自適應(yīng)層輸出和教師網(wǎng)絡(luò)特征提取層輸出的三張?zhí)卣鲌D。相比蒸餾前的(a1),蒸餾后的(b1)更準(zhǔn)確地提取出目標(biāo)的局部特征。相比蒸餾前的(a2),蒸餾后的(b2)更明顯地劃分了前景和背景區(qū)域之間的邊界。相比蒸餾前的(a3),蒸餾后的(b3)與教師網(wǎng)絡(luò)輸出的特征圖更接近,且更準(zhǔn)確地突出了圖片中的前景區(qū)域。
圖11 特征提取層的輸出Fig.11 Output of feature extraction layer
特征融合層的可視化。圖12分別顯示了蒸餾前后的學(xué)生網(wǎng)絡(luò)特征融合層輸出和教師網(wǎng)絡(luò)特征融合層輸出的三張?zhí)卣鲌D。相比蒸餾前的(a1)和(b3),蒸餾后(b1)和(b3)中目標(biāo)的輪廓更加明顯,局部特征更加清晰,更有利于小目標(biāo)的檢測(cè)。
圖12 特征融合層的輸出Fig.12 Output of feature fusion layer
卷積層的可視化。圖13顯示了蒸餾前后學(xué)生網(wǎng)絡(luò)同一層卷積層輸出的三張?zhí)卣鲌D,如圖中所示,蒸餾后輸出的特征圖不僅更好地區(qū)分了目標(biāo)的前景和背景,且更細(xì)致地保留了目標(biāo)的局部特征,有利于提高檢測(cè)精度。
圖13 蒸餾前后學(xué)生網(wǎng)絡(luò)特征圖對(duì)比Fig.13 Comparison of feature maps of student model before and after distillation
本文針對(duì)現(xiàn)有的目標(biāo)檢測(cè)知識(shí)蒸餾架構(gòu)進(jìn)行改進(jìn),提出基于信息圖對(duì)一階段目標(biāo)檢測(cè)器的特征提取層和特征融合層同時(shí)展開蒸餾。信息圖標(biāo)識(shí)了教師網(wǎng)絡(luò)傳遞知識(shí)的重要性,加強(qiáng)了學(xué)生網(wǎng)絡(luò)對(duì)特征層關(guān)鍵區(qū)域的學(xué)習(xí);對(duì)特征融合層展開蒸餾,使學(xué)生網(wǎng)絡(luò)在獲得特征提取層知識(shí)的同時(shí),也獲得了來自教師網(wǎng)絡(luò)特征融合后的知識(shí)。實(shí)驗(yàn)結(jié)果表明,改進(jìn)后的知識(shí)蒸餾架構(gòu),在不改變學(xué)生網(wǎng)絡(luò)結(jié)構(gòu)的基礎(chǔ)上,提升了更高的精度,為小模型在移動(dòng)設(shè)備上部署奠定了基礎(chǔ)。