Focal and Global Knowledge Distillation for Detectors
一. 概述
論文地址:連結
程式碼地址:連結
論文簡介:
- 此篇論文是在CGNet上增加部分限制loss而來
- 核心部分是將gt框變為mask進行蒸餾
註釋:僅為閱讀論文和程式碼,未進行試驗,如有漏錯請不吝指出。文章的疑惑和假設僅代表個人想法。
二. 詳細
2.1 Focal Distillation
2.1.1 mask計算
此篇文章在目標檢測蒸餾中對FPN層進行限制,正常的操作如下公式(1)所示:
\[L_{f e a}=\frac{1}{C H W} \sum_{k=1}^{C} \sum_{i=1}^{H} \sum_{j=1}^{W}\left(F_{k, i, j}^{T}-f\left(F_{k, i, j}^{S}\right)\right)^{2} \]此篇文章將gt的mask引入到蒸餾中:
如下公式(2),目標為1,背景為0,獲得mask矩陣\(M_{i,j}\)
\[M_{i, j}= \begin{cases}1, & \text { if }(i, j) \in r \\ 0, & \text { Otherwise }\end{cases} \]但是會出現一個問題,小目標的mask區域太小,比例嚴重失調會導致小目標的蒸餾效果比較差,解決方法是進行歸一化操作,如下公式(3)所示,引用一個尺度(縮放)量\(S_{i,j}\) , 前景尺度目標大小倒數,目標越大mask越大,但數值越小。背景為mask=0的倒數。也就是每個gt數值和為1,全部背景為1。
疑惑一:
假設一: 假設修改為前景和為1,背景和也為1。前景每個gt數值和相同。如下公式(4)所示,\(N_{gt}\)
2.1.2 注意力特徵計算
這部分參考attention機制,蒸餾也要針對性的對channel和spatial進行學習
以下公式(5)是針對上面兩個注意力的計算方式,注意得加絕對值!沒有可解釋的,就是基礎操作。
\[\begin{gathered} G^{S}(F)=\frac{1}{C} \cdot \sum_{c=1}^{C}\left|F_{c}\right| \\ G^{C}(F)=\frac{1}{H W} \cdot \sum_{i=1}^{H} \sum_{j=1}^{W}\left|F_{i, j}\right| \end{gathered} \] \[\begin{gathered} A^{S}(F)=H \cdot W \cdot \operatorname{softmax}\left(G^{S}(F) / T\right) \\ A^{C}(F)=C \cdot \operatorname{softmax}\left(G^{C}(F) / T\right) \end{gathered} \]2.1.3 loss融合
直接看下面的公式(7),前景和背景分開進行監督,公式比較簡單,\(M_{i,j}\)表示mask,\(S_{i,j}\) 表示mask的尺度,\(A_{i,j}^S/A_k^C\) 表示teacher的注意力特徵。
\[\begin{aligned} &L_{f e a}=\alpha \sum_{k=1}^{C} \sum_{i=1}^{H} \sum_{j=1}^{W} M_{i, j} S_{i, j} A_{i, j}^{S} A_{k}^{C}\left(F_{k, i, j}^{T}-f\left(F_{k, i, j}^{S}\right)\right)^{2} +\beta \sum_{k=1}^{C} \sum_{i=1}^{H} \sum_{j=1}^{W}\left(1-M_{i, j}\right) S_{i, j} A_{i, j}^{S} A_{k}^{C}\left(F_{k, i, j}^{T}-f\left(F_{k, i, j}^{S}\right)\right)^{2} \end{aligned} \]疑惑二: 將上面的公式合併,明顯看出 \(\alpha/\beta\) 就表示前景和背景的比例,這明顯印證了疑惑一的問題。再從論文圖表(7)中調參發現,這兩個引數對實際的精度影響不大 \(\pm0.3\) 的精度差異,是否可直接使用假設一的方案,直接去除此兩個引數。
由於公式(7)僅對teacher的注意力特徵進行了使用,並未對student的注意力特徵進行監督,所以引出下面的公式(8)直接監督
\[L_{a t}=\gamma \cdot\left(l\left(A_{t}^{S}, A_{S}^{S}\right)+l\left(A_{t}^{C}, A_{S}^{C}\right)\right) \]疑惑三: 為什麼公式(7)需要使用teature注意力特徵而不使用student的注意力特徵?論文沒有給出答案,issue上作者也沒有給出答案。
假設三:
- 公式(7)中直接去除 \(A_{i,j}^S/A_k^C\) 是否合適?
- 將公式(8)合併到公式(7)中,比如下式的公式(9)所示,當然可以有其他形式
2.2 Global Distillation
此部分來自於CGNet,不做過多介紹,理解較為容易
三. 題外話
3.1 一些可能的筆誤
此論文的開源專案基於mmdetection實現,其中試驗的YOLOX蒸餾試驗有點瑕疵:
- 第一個問題
以下是此論文的專案readme,YOLOX-m的baseline是45.9,但實際YOLOX官方精度是46.9,差一個點已經是非常大了。
作者說用mmdet跑出來YOLOX-m就是這個精度,本人比較懷疑,因為之前跑的YOLOX-S/nano都沒問題,YOLOX-m正在試驗下週一出結果。
結果: 確實像作者說的達不到官方的精度,本人替換focus到conv,其它未改變,mAP45.2比作者的還低0.7
Student | Teacher | Baseline(mAP) | +FGD(mAP) | config | weight | code |
---|---|---|---|---|---|---|
YOLOX-m | YOLOX-l | 45.9 | 46.6 | config | baidu | af9g |
- 第二個問題
論文中YOLOX-m和repo中的精度不一致,論文45.1,repo是45.9,論文是筆誤?
YOLOX-L的精度mmdet已經試驗為49.4,為啥這裡是48.5?這也是筆誤?
3.2 論文觀後感
之前見過類似的做法,用作弱監督中。但未看到將mask用作蒸餾之內,這讓我開眼界了。
剛開始看論文的效果確實不錯,因為本人對YOLOX較為熟悉,所以仔細看了一下這部分,發現上述問題,作者也沒重視。。。
以後實際專案嘗試一下,這次僅僅作為閱讀論文