1. 程式人生 > >Jigsaw pre-training:擺脫ImageNet,拼圖式主幹網路預訓練方法 | ECCV 2020

Jigsaw pre-training:擺脫ImageNet,拼圖式主幹網路預訓練方法 | ECCV 2020

> Jigsaw pre-training以拼圖的方式從檢測資料集中生成用於主幹網路預訓練的資料集,而不需要額外的預訓練資料集,如ImageNet。另外為了讓網路更好的適應拼圖資料,論文提出ERF-adaptive密集分類方法,能夠很好地擴大預訓練主幹網路的有效感受域。整體而言,Jigsaw pre-training方便且高效,效能比使用ImageNet預訓練模型效果要好。   來源:曉飛的演算法工程筆記 公眾號 **論文: Cheaper Pre-training Lunch: An Efficient Paradigm for Object Detection** ![image.png](https://upload-images.jianshu.io/upload_images/20428708-e2868772705fb8e9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) * **論文地址:[https://arxiv.org/abs/2004.12178](https://arxiv.org/abs/2004.12178)** # Introduction ***   目標檢測網路一般都使用如ImageNet的大型分類資料集進行主幹網路的預訓練,藉助大規模資料集上學習到的特徵表達,能幫助檢測演算法更快地收斂,但這種方法帶來的額外資料集需求和計算消耗是不可忽視的。儘管有一些方法通過改善權值初始化來優化直接訓練檢測網路的效果,但這種方法通常收斂都比較慢,需要更多的訓練時間,主要由於主幹網路在直接訓練時會面對大量的無效資訊,過多的背景會帶來冗餘的計算消耗,造成收斂過慢且效果不好。   基於上面的分析,論文提出了很“實惠”的預訓練方法Jigsaw pre-training,從檢測資料集中提取出目標樣本和背景樣本,根據目標的長寬比以拼圖的方式將其組合成一個訓練樣本進行模型預訓練。為了提高預訓練網路的有效感受域,論文設計了ERF-adaptive密集分類策略,根據有效感受域(ERF)來給每個特徵點指定平滑標籤(soft label)。論文的貢獻如下: * 提出高效且通用的預訓練正規化,僅需檢測資料集,消除了額外的預訓練資料需求。 * 設計了樣本提取規則,以拼圖策略和ERF-adaptive密集分類來高效地進行主幹網路的預訓練,提高了訓練效率和最終效能。 * 在不同的檢測框架驗證了Jigsaw pre-training的有效性,展示其通用型。 # Methodology *** ![](https://upload-images.jianshu.io/upload_images/20428708-c461494cc5242b24.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)   Jigsaw pre-training方法如圖1所示,能夠用於各種目標檢測框架中。給定檢測資料集$\mathcal{D}$,從中提取正負目標儲存為分類資料集,這些目標以拼圖的形式組合並用於檢測器主幹網路的預訓練,訓練使用論文提出的ERF-adaptive損失。在完成預訓練後,以fine-tuned的方式在$\mathcal{D}$上訓練目標檢測模型。 ### Sample Selection   在目標檢測模型訓練中,正負樣本平衡是十分重要的。為了高效的預訓練,論文小心地將原圖提取的目標劃分為正負樣本,正負樣本的提取都有其對應的規則。 * ##### Positive samples ![](https://upload-images.jianshu.io/upload_images/20428708-d27a18fd6fb077bc.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)   根據GT bbox從原圖提取區域,考慮到上下文資訊對特徵表達的學習有幫助,隨機擴大bbox大小來包含更多的上下文資訊。具體做法為移動bbox的左上角和右下角,最大可擴充套件為原邊長的兩倍,若bbox超過原圖邊界則進行裁剪,如上圖所示。 * ##### Negative samples   為了讓預訓練模型更適應檢測場景,從背景區域提取一些負樣本。首先隨機生成一些候選區域,然後獲取$IoU(pos, neg)=0$的所有負樣本,這樣正負樣本就是互斥的。在論文的實驗中,正負樣本的比例為10:1。 ### Jigsaw Assembly ![](https://upload-images.jianshu.io/upload_images/20428708-797a08d9c35f551a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)   有很多方法能夠處理樣本進行預訓練,比如warping以及padding,但warping會破壞原本的上下文資訊和形狀,而padding會加入無意義的填充畫素,帶來額外的計算時間和資源消耗。為了更有效地進行預訓練,論文基於目標的尺寸和長寬比,採用拼圖的方式處理樣本,每次拼四個目標。在獲得所有樣本後,根據長寬比將他們分為3組: * Group S(square):長寬比在0.5到1.5直接 * Group T(tall):長寬比小於0.5 * Group W(wide):長寬比大於1.5 ![](https://upload-images.jianshu.io/upload_images/20428708-8f114194a6e676cf.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)   如上圖所示,每次拼圖隨機選擇兩個S樣本、1個T樣本和1個W樣本填充到預設的區域中。較小的S樣本放置於左上角,較大的S樣本放置於右下角,而T樣本和W樣本分別放置於左下角和右上角。若樣本大小不符合預設的拼圖區域大小不一致,根據其大小選擇填充或隨機裁剪,根據實驗結果,不會對目標進行縮放和warping。 ### ERF-adaptive Dense Classification   由於拼圖樣本可能包含多個類別的目標,因此需要特殊的訓練方法,論文先介紹了兩種用於對比的策略: ![](https://upload-images.jianshu.io/upload_images/20428708-5857693b9faadac3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) * Global classification,給整張圖片一個全域性的標籤,該標籤為4個目標標籤的區域大小加權和,有點類似CutMix資料增強方法,最後使用全域性池化,進行交叉熵損失更新。 * Block-wise classification,保留每個目標的標籤,在池化的時候對每個區域對應的特徵進行獨立的池化和預測,最後也單獨地進行交叉熵損失計算。 ![](https://upload-images.jianshu.io/upload_images/20428708-5ae04cc9c7244ec3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)   但論文通過視覺化左上角區域的有效感受域發現,上面兩種方法的左上角區域的有效感受域都集中在了對應小S-sample區域,這種侷限的有效感受域可能會降低深度模型的效能。   為了儘量考慮每個畫素,論文提出ERF-adaptive密集分類策略,對特徵圖$X$的每個位置進行分類,而每個位置的soft label基於其對應的有效感受域計算。定義每個區域$R_i$的原標籤$y_i$,對於特徵圖$X$的每個位置$(j,k)$,soft label $\tilde{y}^{j,k}$為4個標籤的加權和: ![](https://upload-images.jianshu.io/upload_images/20428708-8a976e88f84bbd23.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)   權重$w^{j,k}_i$取決於有效感受域,對於位置$(j,k)$,其對應的輸入空間的有效感受域為$G^{j,k}\in \mathbb{R}^{H\times W}$後,權重$w^{j,k}_i$為有效感受域在區域$i$內的權值之和與整體有效感受域權值之和的比值。另外,如果位置$(j,k)$在區域$i$內,設定$w^{j,k}_i$的最小閾值$\tau$,保證$y_i$主導soft label。整體的公式可表示為: ![](https://upload-images.jianshu.io/upload_images/20428708-29ed27b18e621372.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)   $M^i \in \{ 0,1\}^{H\times W}$為二值掩膜,用來標記ERF在區域$i$中部分。 ![](https://upload-images.jianshu.io/upload_images/20428708-7cea56d36daad1d8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)   在得到位置$(j,k)$的權重$\{ w^{j,k}_i \}$後,計算每個位置的soft label。在對特徵$x^{j,k}$進行稠密分類時,將最後的全連線層替換為$1\times 1$卷積進行預測,最後對預測特徵圖的每個位置與soft label進行交叉熵損失。為了公平起見,對loss map進行block-wise池化。需要注意的是,權重在每5k次迭代更新一次,而不是每次迭代都更新。 ![](https://upload-images.jianshu.io/upload_images/20428708-5fb5bd7dc6dcb041.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)   同樣是左上角區域對應的有效感受域的視覺化,ERF-adaptive有更大的有效感受域。 ![](https://upload-images.jianshu.io/upload_images/20428708-b6eca4d245194965.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)   論文也對3種策略的效果進行了對比。 # Experiments *** ![](https://upload-images.jianshu.io/upload_images/20428708-8a284cd19f59dccc.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)   與ImageNet預訓練方法對比,Cost為耗時,單位為GPU day。 ![](https://upload-images.jianshu.io/upload_images/20428708-74e5611b34af3101.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)   不同訓練引數的效能差異。 ![](https://upload-images.jianshu.io/upload_images/20428708-0ea037b5d6c8a95d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)   不同主幹網路上的效果對比。 ![](https://upload-images.jianshu.io/upload_images/20428708-a38c1b8771bac08d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)   在多種檢測框架和策略上進行對比。 ![](https://upload-images.jianshu.io/upload_images/20428708-4905d4abe7fff5a8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)   與直接訓練方法的對比。   # Conclustion ***   論文提出了一種高效的預訓練方法Jigsaw pre-training,該方法以拼圖的方式從檢測資料集中生成用於主幹網路預訓練的資料集,而不需要額外的預訓練資料集,如ImageNet。另外為了讓網路更好的適應拼圖資料,論文提出ERF-adaptive密集分類方法,能夠很好地擴大預訓練主幹網路的有效感受域。整體而言,Jigsaw pre-training方便且高效,效能比使用ImageNet預訓練模型效果要好。       > 如果本文對你有幫助,麻煩點個贊或在看唄~ 更多內容請關注 微信公眾號【曉飛的演算法工程筆記】 ![work-life balance.](https://upload-images.jianshu.io/upload_images/20428708-7156c0e4a2f49bd6.png?imageMogr2/auto-orient/strip%7CimageView2/2