劉紹華, 杜 康, 佘春東, 楊 傲
(北京郵電大學電子工程學院, 北京 100080)
在過去幾年的時間里,計算機視覺領域迅猛發展,目標檢測作為計算機視覺的一個重要分支已經被運用于現實中的各種場景下,如智能手機相機中的人臉自動抓取功能,停車場中檢測車位占用情況的攝像頭,以及軍事項目中無人機對于基地目標的檢測任務等。
目前,一些主流的目標檢測網絡都采取殘差神經網絡(residual neural network, ResNet),如ResNet50[1]或者Hourglass[2]作為主干網絡,同時多數實驗中也將這兩種網絡作為參照。ResNet50是一種深度殘差網絡,可以有效地解決深度神經網絡訓練中的梯度消失和梯度爆炸問題,從而提高網絡的準確率。Hourglass網絡具有良好的特征提取以及多尺度建模的能力,同時在目標檢測等任務中表現出色。但是在移動設備、嵌入式平臺、物聯網等資源受限的環境下,上述兩種深度神經網絡需要消耗大量的計算資源,同時其緩慢的訓練推理速度以及龐大的空間占用,使得人們不得不將目光聚焦于輕量化目標檢測網絡。
輕量化目標檢測網絡可以降低計算復雜度和減少空間占用,在各種資源受限或對計算速度、能耗、存儲等有要求的應用場景中具有廣泛的應用前景。同時其也面臨新的挑戰,比如如何提出有效的模型訓練方案,使輕量化目標檢測模型仍然能夠保持優異的性能。
本文介紹了一種基于輕量化CenterNet的多教師聯合知識蒸餾方案。該方案能有效解決模型輕量化帶來的性能惡化問題,可以大大縮小教師模型和學生模型之間的性能差距。將多個大規模復雜模型作為教師網絡,以教導作為學生網絡的輕量化模型進行訓練。相比于使用傳統訓練方式的輕量化目標檢測網絡,使用該知識蒸餾方案可以在相同的訓練輪數后達到更優的檢測性能。
本文提出了針對CenterNet目標檢測網絡特有的知識蒸餾模塊——多教師聯合知識蒸餾。該知識蒸餾模塊采用的蒸餾損失(knowledge distillation loss, LossKD)分為4部分:類別蒸餾損失LossCLSKD、長寬預測蒸餾損失LossWHKD、目標中心點偏移蒸餾損失LossOFFKD、主干網絡蒸餾損失LossBACKBONEKD。在單教師知識蒸餾實驗中,使用加入ImageNet[3]預訓練權重的ResNet50作為教師網絡,對比多種輕量化模型的訓練效果,驗證了該知識蒸餾模塊的有效性。引入蒸餾損失權重參數W,對不同部分蒸餾損失設置不同的權重,通過調整不同蒸餾損失部分的權重,可以快速地優化蒸餾效果。在多教師聯合蒸餾與單教師蒸餾的對比實驗中,使用加入ImageNet預訓練權重的ResNet50、Hourglass作為多教師網絡,提出使用蒸餾注意力機制對不同教師網絡自適應分配不同權重,驗證了多教師聯合蒸餾指導出的學生網絡在泛化能力以及性能指標方面的提升。
在VOC2007數據集上,以MobileNetV2輕量化網絡為例,相較于傳統的CenterNet(主干網絡為ResNet50),所提方案的參數大小壓縮了74.7%,推理速度提升了70.5%,在平均精度(mean average Precision, mAP)上僅有1.99的降低,取得了更好的“性能-速度”平衡。同樣經過100輪訓練,使用多教師聯合知識蒸餾的訓練方式相較于普通訓練方式,mAP提升了11.30。
在目標檢測領域,最早出現的是雙階段目標檢測,如基于區域的卷積神經網絡(region-based convolutional neural network, R-CNN)[4]、空間金字塔池化網絡(spatial pyramid pooling network, SPP-net)[5],第一個階段首先產生候選區域,該區域包含目標大概的位置信息,第二個階段的任務包含對候選區域進行分類和位置微調。由此可見,雙階段目標檢測在產生候選區域時會消耗大量的內存空間,在訓練速度和推理速度上也略顯不足。隨著人們對于目標檢測模型性能要求的提升,單階段目標檢測應運而生。單階段目標檢測算法可以在同一個階段直接產生物體的類別概率和位置坐標值。相比于雙階段目標檢測算法,單階段目標檢測沒有產生候選區域的階段,整體流程更為簡單。同時,單階段目標檢測算法又可以分為基于錨框和無錨框兩類,以基于錨框為代表的模型有更快的R-CNN(Faster RCNN)[6]、YOLOv2[7]、YOLOv3[8];以無錨框為代表的模型有:CornerNet[9]、CenterNet[10]、ExtremeNet[11]。兩者區別在于有沒有利用錨框提取候選目標框。比如YOLOv3,其首先按一定的規則在圖片上生成一系列位置固定的錨框,將這些錨框看作是可能的候選區域,再對錨框是否包含目標物體進行預測,如果經預測判斷包含目標物體,則還需要預測所包含物體的類別以及預測框相對于錨框位置需要調整的位移大小。CenterNet則采用關鍵點檢測,通過特征提取后輸出的熱力圖峰值來確定待檢測目標物體的中心點和種類,再通過對每個中心點預測其對應的預測框來完成檢測任務。
CenterNet網絡的組成包括主干網絡特征提取模塊、特征圖解碼模塊以及分類頭。CenterNet的解碼器一般采用反卷積模塊Deconv進行3次上采樣,得到分辨率更高的特征圖。解碼器輸出的特征圖隨后傳入到CenterNet的分類頭中,假設在目標檢測任務中有C個待檢測類,那么分類頭將輸出C+4個通道的特征圖,其中預測的熱力圖占有C個通道的輸出,每一個類別都有一張熱力圖與之對應。在每一張熱力圖上,若某個坐標處有物體目標的中心點,即在該坐標處產生一個關鍵點。預測框的長寬大小占2個通道的輸出,預測框的中心點偏移占有2個通道的輸出。CenterNet的損失包括3部分,熱力圖類別預測損失LossCLS、目標長寬預測損失LossWH、目標中心點偏移損失LossOFF。其中,LossCLS損失函數采用改進的Focal Loss, LossWH和LossOFF的損失函數均采用L1 Loss。 標準CenterNet的結構示意圖如圖1所示。

圖1 標準CenterNet的結構Fig.1 Structure of standard CenterNet
近年來,隨著深度學習應用的不斷拓展和移動設備的廣泛普及,輕量化神經網絡成為了深度學習領域的熱門話題之一。輕量化神經網絡是指在保持神經網絡模型準確性的前提下,通過設計輕量化算法和結構,減小神經網絡的參數數量和計算復雜度,以實現在較低硬件資源條件下的高效運行。
ShuffleNet[12]是由曠視科技提出的一種輕量級卷積神經網絡模型。它通過使用逐通道的1×1卷積和通道重排來減少計算量。通道重排是指將輸入的特征圖進行分組,然后對每個分組內的通道進行混洗,從而將不同的通道分布到不同的分組中。該方法可以有效減少模型中的參數量和計算量。MobileNetV2[13]使用了瓶頸設計以及倒殘差模塊,滿足了在移動設備等資源受限的環境下進行圖像分類和目標檢測的需求。EfficientNet[14]是一個多尺度卷積神經網絡,該網絡通過利用深度網絡和多尺度特征提取,在保證準確性的情況下減小了神經網絡參數量和計算復雜度。小型基于語義理解的深度雙向預訓練Transformer(tiny bidirectional encoder representation from Transformer, TinyBERT)[15]是一個輕量化的基于Transformer的雙向編碼器表示(bidirectional encoder representation from Transformer, BERT)模型,該模型通過蒸餾技術將原版BERT模型的知識遷移到較小的模型中,從而在保證準確性的情況下,減小了模型的參數數量和計算復雜度。2020年華為推出GhostNet[16],該網絡通過Ghost模塊,即一種基于低秩分解的特征重用技術,將參數量減小了50%,同時在ImageNet分類任務中超過了MobileNetV3。MobileBERT[17]相較于原版BERT模型減少了90%的計算量,同時在自然語言理解(natural language understanding, NLU)任務中取得了不錯的性能。Bias Loss[18]是一種輕量化網絡的新型損失函數,將注意力集中在一組有價值的數據點上,并防止特性差的樣本誤導優化過程。Mobile-Former[19]將MobileNet和Transformer進行并行設計,可以實現局部和全局特征的雙向融合。在分類和目標檢測任務中,性能遠超其他輕量級網絡。
知識蒸餾作為一種新興的模型壓縮訓練方法,目前已成為深度學習領域的一個研究熱點和重點[20]。Hinton等[21]認為,學生模型可以利用教師模型傳遞的“暗知識”更好地理解和掌握特征知識,從而增強其泛化能力。最早,知識蒸餾算法主要針對分類問題,分類問題的共同點是模型最后會有一個Softmax層,其輸出值對應了相應類別的概率值。知識蒸餾使用軟標簽,能夠提供高效的遷移泛化能力。軟標簽是指輸入圖像通過教師模型得到Softmax層的輸出。軟標簽相比硬標簽,有著更高的熵、更小的梯度變化,因此學生模型相比教師模型可以使用更少的數據和更大的學習率。在使用軟標簽時,一般會引入溫度系數T:
(1)
式中:T為蒸餾溫度,T=1時,即為普通的Softmax。蒸餾溫度T的升高,可以使標簽變得更軟。通過使用軟標簽,可以獲得比硬標簽更豐富的泛化信息,從而避免學生模型過擬合。雖然知識蒸餾已經獲得了廣泛的應用,但是學生模型的性能通常接近于教師模型。特別地,若學生模型和教師模型使用相同的網絡,學生模型的性能將超越教師模型[22],性能更差的教師模型反而教出了更好的學生模型[23]。一般的知識蒸餾可以統一抽象為如下形式:
L=αLsoft+βLhard
(2)
式中:α和β是超參數,β是學生網絡在硬標簽上的損失,α是學生網絡在教師網絡生成的軟標簽上的損失。為了更好地理解知識蒸餾的作用,一些研究工作從數學或實驗上對知識蒸餾的作用機制進行了證明和解釋,主要分為以下幾類:
(1) 軟標簽為學生模型提供正則化約束。這一結論最早可以追溯到通過貝葉斯優化來控制網絡超參數的對比試驗[24],其表明了教師模型的軟標簽為學生模型提供了顯著的正則化。軟標簽正則化的作用是雙向的,因此能將知識從較弱的教師模型遷移到能力更強大的學生模型中[25-26]。軟標簽通過標簽平滑訓練提供了正則化[25-26],標簽平滑通過避免過分相信訓練樣本的真實標簽來防止訓練的過擬合[25]。
(2) 軟標簽為學生模型提供了“特權信息”。“特權信息”可以被用于教師模型的解釋和評估[27]。教師模型在訓練的過程中,將軟目標的“暗知識”遷移到學生模型中,而學生模型在測試的過程中并不能使用“暗知識”。從這個角度看,知識蒸餾通過軟標簽來為學生模型傳遞“特權信息”。
(3) 軟標簽引導了學生模型優化的方向。Phuong等[28]從模型訓練的角度證明了軟標簽能夠指導學生模型的優化方向。Cheng 等[29]從數學角度驗證了使用軟標簽比使用原始數據進行的優化學習具有更高的學習速度和更好的性能。
同時,為了解決教師網絡特征圖與學生網絡特征圖對應不一致的問題,Lin等[30]提出了Target-aware模型Transformer模型,使得整個學生網絡在蒸餾過程中能夠分別模仿教師網絡的每一個空間組件。通過這種方式,可以提高匹配能力,進而提高知識蒸餾的性能。針對前景和背景特征圖之間的不均勻差異將對蒸餾產生負面影響的問題,Yang等[31]提出局部和全局知識蒸餾(focal and global knowledge distillation, FGD)。局部蒸餾分離了前景和背景,迫使學生將注意力集中在老師的關鍵像素和通道上。全局蒸餾重建了不同像素之間的關系,并將其從教師傳遞給學生,以補償局部蒸餾中丟失的全局信息。
注意力機制是近幾年深度學習中重要的方法之一,在不同領域得到了廣泛的研究。在發展過程中,注意力機制首先被應用在自然語言處理任務之中。而如今,在人工智能領域,注意力機制作為神經網絡體系結構的一個重要組成部分,在數據挖掘、時間序列預測、計算機視覺等領域都有著廣泛的應用。顧名思義,注意力機制就是通過對人類閱讀、聽說中的注意力行為進行模擬操作。注意力機制可以做到重點關注有利于任務完成的信息,而抑制那些不重要的信息。這項技術也可以自然地應用在目標檢測模型中:在執行檢測任務時,網絡會更重視特征更加重要的通道,因此正確利用注意力機制給通道分配不同的注意力分數有利于網絡使用更加重要的特征圖進行特征融合,從而提高目標檢測的準確性。
Transformer[32]模型利用多頭注意力機制加速了模型的訓練,加強了不同位置信息的關聯性,一定程度地解決了RNN系列模型的長距離依賴問題。Transformer模型僅利用注意力機制就實現了機器翻譯等復雜的任務,并且取得了目前最好的效果,向相關研究人員展示了注意力機制的強大作用。
在本節中,首先介紹CenterNet單教師知識蒸餾模塊,然后提出了多教師知識蒸餾模塊的網絡結構,并對在多教師聯合知識蒸餾模塊中加入的蒸餾注意力機制、損失權重參數W進行了描述,最后闡述了聯合訓練與凍結解凍訓練的模型訓練方式。
為了達到模型輕量化的目的,目前常用的方法是將模型的特征提取網絡替換為輕量化網絡。若在模型輕量化后依然采用常規的訓練方式,即使用LossCLS、LossWH、LossOFF組成的損失函數,很難完成對于模型參數的有效更新,導致訓練出的模型檢測性能不佳。于是,為了兼顧模型輕量化以及模型檢測的性能,提出了專門針對于CenterNet的知識蒸餾方案。
目前的知識蒸餾算法大多應用于分類任務,很難直接應用于目標檢測模型。這其中的難點主要有兩個方面:① 檢測任務中大量的背景樣本使得正負樣本不均衡,導致模型的分類更加困難;② 目標檢測的網絡更加復雜,尤其對于雙階段網絡而言,雙階段的網絡由于RPN輸出的不確定性,導致教師網絡和學生網絡的候選區不能精確對齊。而對于這兩個難點,目標檢測模型CenterNet均有良好的解決方案。針對難點①,根據CenterNet的范式,該網絡沒有復雜的正負樣本采樣,只有物體的中心點是正樣本,其他都是負樣本。針對于難點②,如第1節所介紹,CenterNet為單階段目標檢測網絡,結構相對簡單。基于CenterNet的知識蒸餾模塊的結構如圖2所示。

圖2 基于CenterNet的知識蒸餾模塊結構Fig.2 Knowledge distillation module structure based on CenterNet
所采用的總體蒸餾模塊由兩部分構成,分別為基于主干模塊的蒸餾以及基于分類頭的蒸餾。在模型端到端的訓練過程中,總體網絡參數更新由原來的分類頭損失以及蒸餾損失共同決定,模型總體損失定義如下:
LossTOTAL=LossCLS+LossWH+LossOFF+LossKD
(3)
關于教師網絡與學生網絡的選擇,在基于CenterNet多教師聯合知識蒸餾任務中,選用ResNet50、Hourglass等作為教師網絡,它們擁有更復雜的網絡結構以及更多的參數運算量,但模型可以提供更高的檢測性能。選用ResNet18、MobileNetV2等作為學生網絡,模型簡單并擁有較低的計算復雜度,足夠輕量化,但是其檢測性能也相對較低。綜上所述,本文采取的教師網絡與學生網絡可以提供較好的平衡,以滿足知識蒸餾的需求,契合教師帶動學生、“先富帶動后富”的思想,使作為學生網絡的輕量化模型得到性能提升。
根據第2.1節圖2所展示的知識蒸餾的框架,提出基于CenterNet的蒸餾損失函數。
在基于主干模塊的蒸餾上,使用MSE損失作為該部分蒸餾損失:
LossBACKBONEKD=MSE(ReLU(FMt),ReLU(FMs))
(4)
式中:FMt為教師網絡主干模塊輸出的特征圖;FMs為學生網絡主干模塊輸出的特征圖。
根據第1.2節介紹的CenterNet分類頭的特殊結構,擬采取的蒸餾損失也從分類頭的這3類優化目標著手。對于輸出的熱力圖,把教師網絡和學生網絡輸出的特征圖通過一個ReLU層將負數部分去掉,然后使用MSE損失生成LossCLSKD,如下所示:
LossCLSKD=MSE(ReLU(hmt),ReLU(hms))
(5)
式中:hmt為教師網絡輸出的熱力圖,hms為學生網絡輸出的熱力圖。
對于LossWH和LossOFF,根據CenterNet只學習正樣本的原理,將教師網絡輸出熱力圖用非極大值抑制操作后,產生掩膜,再將掩膜與寬高和中心點偏移的對應特征圖相乘作為新特征圖。最后,將教師網絡和學生網絡所有對應的像素點使用L1 Loss作為該部分的蒸餾損失。具體操作過程如下:
LossWHKD=L1(wht·mask/T,whs·mask/T)
(6)
LossOFFKD=L1(offt·mask/T,offs·mask/T)
(7)
式中:wht與offt為教師網絡輸出的特征圖,whs與offs為學生網絡的特征圖;T為溫度系數;“·”為張量乘法符號。
根據CenterNet損失的定義,CenterNet損失主要分為主干模塊損失、熱力圖損失、預測框寬高損失以及中心點偏移損失,這些損失對于目標檢測性能的重要程度不盡相同。于是給予不同類別損失不同的權重W,將分類頭部分總體蒸餾損失定義如下:
LossKD=w1*LossCLSKD+w2*LossWHKD+
w3*LossOFFKD+w4*LossBACKBONEKD
(8)
式中:w1、w2、w3、w4為模型訓練前人工設置的損失權重的超參數,需根據訓練效果進行調節。
為了進一步提升知識蒸餾的效果,可以借鑒Transformer模型中多頭注意力機制的作用,融合多個教師網絡生成的特征圖以及軟標簽。對于同一張圖片,不同的教師網絡生成的軟標簽分布是不同的,如圖3所示。

圖3 不同網絡對于同一張圖片生成的軟標簽分布Fig.3 Soft label distribution generated for the same image by different networks

由于不同教師網絡的性能效果存在差異(與標簽之間的損失),若直接使用Softmax對損失進行權重分配,容易發生權重的極限偏移,使權重分布更加尖銳(極端情況為其中一個教師網絡權重接近于1,其余教師網絡權重接近于0),此時多教師蒸餾網絡退化為單教師蒸餾網絡。為避免上述情況發生,得到更加平緩的權重分布,需要先對不同教師網絡的損失進行歸一化,如下所示:
(9)

(10)

(11)

多教師聯合知識蒸餾模塊如圖4所示,使用N個不同的教師網絡對同一學生網絡進行知識蒸餾。

圖4 多教師聯合知識蒸餾模型Fig.4 Multi-teacher joint knowledge distillation network
根據知識蒸餾的特性,使用教師網絡與學生網絡聯合訓練的方式。具體來說,教師網絡在硬標簽上單獨訓練N個輪次,學生網絡在硬標簽上單獨訓練N個輪次,然后使用教師網絡指導學生網絡,并保留原本的硬標簽損失,再訓練N個輪次。實驗證明,這種訓練方式得到的模型性能是最佳的。
借鑒遷移學習的思想,神經網絡主干特征提取部分所提取到的特征是通用的,所以將主干模塊凍結起來訓練可以加快訓練效率,也可以防止訓練好的主干模塊權值被破壞。在凍結訓練階段,模型主干模塊的初始參數加載了其在ImageNet上預訓練得到的模型參數,在新任務的訓練過程中參數被凍結了,主干網絡權重不發生改變,只改變解碼模塊以及分類頭模塊的權重,占用的顯存較小,僅對網絡進行微調。 在解凍訓練階段,模型的主干網絡不被凍結,主干模塊、解碼模塊以及分類頭模塊的參數都可以得到更新。在解凍訓練階段,模型訓練占用的顯存較大,凍結解凍訓練方式如圖5所示。

圖5 解凍和凍結訓練Fig.5 Unfreeze and freeze training
在本節中,首先介紹了實驗使用的數據集、硬件設備以及訓練方法。其次,對比了多種輕量化主干網絡是否使用知識蒸餾訓練的檢測效果,評價指標主要包括不同主干網絡下CenterNet的目標檢測性能mAP和模型參數大小。同時,通過消融實驗對比單教師與多教師知識蒸餾,證明了多教師聯合知識蒸餾帶來的性能提升。基于CenterNet的知識蒸餾訓練方案可以分為以下3步。
(1) 訓練教師模型:使用硬標簽,即正常的標簽訓練教師模型。
(2) 計算“軟標簽”:利用訓練好的教師模型來計算“軟標簽”,也就是教師模型“軟化后”的輸出。
(3) 訓練學生模型:在學生模型硬標簽損失函數的基礎上加入教師模型輸出軟標簽的損失函數,共同指導學生模型的訓練。
采用VOC2007作為數據集。其中,訓練集包括19 352張分辨率為500×375的圖片和對應標簽,驗證集采用隨機分割訓練集的方式生成,每一輪訓練中,訓練集和驗證集的比例為9∶1。測試集由3 870張分辨率為500×375的圖片和對應標簽組成。在將數據集導入模型時,需要對圖片進行尺寸歸一化和數據增強的預處理,將圖片尺寸歸一化為512×512。
使用2塊GPU Tesla T4對不同模型進行ImageNet[22]預訓練權重加載的訓練。使用ResNet50作為教師網絡,對學生網絡ResNet18、ResNet34、MobileNetV2、EfficientNet-b0等都設置100輪訓練。在訓練過程中,采用第3節中的聯合訓練、凍結訓練與解凍訓練結合的方法,將100輪訓練分為2步, 1~50輪采用學習率為1e-3、權重衰減為5e-5的Adam優化器,使用凍結訓練方式;51~100輪采用學習率為1e-4、權重衰減為5e-5的Adam優化器,使用解凍訓練方式。采用不同主干模塊的CenterNet模型大小、參數大小、浮點運算次數(floating point operations per second,FLOPs)如表1所示。

表1 不同結構CenterNet的模型大小、參數大小、FLOPsTable 1 Model size, parameter size, FLOPs of different structures of CenterNet
經過100輪訓練后,不同模型使用普通訓練以及知識蒸餾訓練,得到數據集中“汽車”類別的精度(average precision, AP)如圖6所示。

圖6 不同模型在兩種訓練方式下對汽車類別的APFig.6 AP of different models trained in two ways in car category
對同一輕量化網絡模型,分別使用普通訓練方式和基于CenterNet知識蒸餾的訓練方式,在VOC2007數據集上得到的mAP的交并比(intersection over union, IoU)閾值取0.5,如表2所示。

表2 不同輕量化結構CenterNet的mAP、訓練輪數以及預訓練 模型加載情況(VOC數據集下)Table 2 mAP, number of training rounds, and loading of pre-trained models in different light-weight structures of CenterNet (with VOC dataset)
可以看出,在100輪訓練后,使用知識蒸餾訓練方式的輕量級特征提取網絡相較于使用普通訓練方式的輕量化特征提取網絡可以得到更高的mAP,實驗的4種輕量化模型的mAP平均提升了4.52。
為了測試多教師知識蒸餾的效果,采用ResNet50和Hourglass組成多教師網絡對輕量化網絡進行知識蒸餾。在實驗中主要采用了ResNet18、ResNet34、MobileNetV2、EfficientNet-b0作為BACKBONE的CenterNet目標檢測模型進行消融實驗。
使用4塊GPU Tesla T4對不同模型在VOC2007數據集上進行ImageNet[22]預訓練權重加載的解凍訓練與凍結訓練。訓練輪數設置為100輪,其中1~50輪訓練采用學習率為1e-3,權重衰減為5e-4的Adam優化器,使用凍結訓練方式;51~100輪采用學習率為1e-4,權重衰減為5e-5的Adam優化器,使用解凍訓練方式。經過訓練后,不同模型對于VOC2007數據集中數據集中“摩托車”類別的AP如圖7所示。

圖7 不同模型在兩種訓練方式下對于摩托車類別的APFig.7 AP of different models trained in two ways in motorbike category
不同模型使用單教師知識蒸餾與多教師知識蒸餾,在VOC2007數據集訓練得到的mAP如表3所示。

表3 單教師知識蒸餾和多教師知識蒸餾對比Table 3 Comparison of single teacher knowledge distillation and multi-teacher knowledge distillation
可以看出,在100輪訓練后,使用多教師聯合知識蒸餾訓練方式相較于單教師知識蒸餾訓練得到的輕量級特征提取網絡可以得到更高的mAP。實驗中4種輕量化模型的mAP平均提升了1.83。
根據第2節對于損失權重參數W的定義,W由w1、w2、w3、w4組合而成,其中w1、w2、w3、w4分別為LossCLSKD、LossWHKD、LossOFFKD、LossBACKBONEKD的權重。由式(8)可知損失權重參數W選擇的不同會直接影響蒸餾損失的構成。在模型訓練前,需要人工設置損失權重參數W的可選取值,W∈{0.1,1,10,100,1 000},采取網格搜索算法枚舉多種蒸餾權重組合進行實驗。在VOC2007數據集下,不同權重組合的模型性能如表4所示。

表4 由不同損失權重參數W蒸餾訓練得到的CenterNet性能 對比(主干網絡為ResNet18)Table 4 Comparison of CenterNet performance obtained by distillation training with different loss weight parameters W (withResNet18 as backbone)
根據表4中使用不同損失權重參數W訓練出的模型的檢測性能效果對比,對于VOC2007數據集而言,當w1,w2,w3,w4分別為1 000,1,0.1,100時,mAP相較w1,w2,w3,w4分別為0.1,10,1 000,1時提升了6.48,說明了W超參數對于模型調優的重要性,即如果找到更加適配模型的損失權重參數,可以使訓練效果得到提升。其中,w1,w2,w3,w4分別為1 000,1,0.1,100時訓練出的ResNet18-CenterNet模型的檢測效果圖如圖8所示。

圖8 ResNet18-CenterNet目標檢測效果Fig.8 ResNet18-CenterNet object’s detection effect
綜上所述,當訓練條件發生變化時,可以選擇更換損失權重參數W,以快速達到更好的訓練效果以及檢測效果。
使用BACKBONE為MobileNetV2的CenterNet目標檢測模型,使用普通訓練與多教師聯合知識蒸餾訓練兩種不同方式下得到的模型進行目標檢測的測試,效果對比如圖9所示,圖9(a)、圖9(b)、圖9(c)左側為普通訓練方式檢測效果圖,圖9(a)、圖9(b)、圖9(c)右側為多教師蒸餾檢測效果圖。

圖9 普通訓練方式檢測效果圖(各分圖左側)及多教師蒸餾訓練檢測效果圖(各分圖右側)Fig.9 Detection performance diagram of the regular training(left) and detection performance diagram of the multi-teacher distillation training (right)
由圖9可見,使用了多教師知識蒸餾訓練得到的模型,無論在檢測的置信度還是檢測出的目標的數量上,都更加優異。圖9(c)圖片存在多目標重疊的情況,使用多教師聯合知識蒸餾后的模型也能很好地解決這一問題,可將多重疊目標進行準確分割。
本文回顧了目前國內外對于目標檢測領域的研究現狀,總結了一些輕量化目標檢測模型的實現方法以及一些優秀的知識蒸餾方案。本文提出了基于CenterNet的多教師聯合知識蒸餾訓練方案,定義了基于CenterNet的蒸餾損失函數,提出了利用蒸餾注意力機制來有效融合多個教師網絡的“暗知識”,可應用于多種輕量化主干網絡CenterNet的訓練過程。實驗結果表明,本蒸餾訓練方案在VOC2007數據集上表現出了比普通訓練方案更加優異的性能。以使用了本文的多教師聯合蒸餾訓練后的MobileNet-CenterNet為例,相較于傳統的CenterNet(主干網絡為ResNet50),參數大小壓縮了74.7%,推理速度提升了70.5%,而mAP只有1.99的降低,取得了更好的“性能-速度”平衡。同樣經過100輪訓練,多教師聯合知識蒸餾訓練方式相較于普通訓練方式,mAP提升了11.30。未來,還將繼續改進CenterNet多教師聯合知識蒸餾損失函數,以更優的蒸餾結構訓練得到更好的輕量化目標檢測模型。