摘要:為了探究垃圾的智能分類等問題,由中關村海華信息研究院、清華大學交叉信息研究院以及Biendata舉辦的2020海華AI垃圾分類大賽吸引了大量工程師以及高校學生的參與
01賽題介紹
隨着我國經濟的發展,城市化進程不斷加速,生活垃圾對城市環境的威脅日益增加。如何高效、環保地解決處理生活垃圾迫在眉睫。因此垃圾的智能分類對於智能化分揀垃圾、提高垃圾分揀效率就顯得十分重要。為了探究這一問題,由中關村海華信息研究院、清華大學交叉信息研究院以及Biendata舉辦的2020海華AI垃圾分類大賽吸引了大量工程師以及高校學生的參與。由華為NAIE平台提供的算力支持,也為比賽的順利開展奠定了基礎。該比賽旨在激發更廣泛的科研探索熱情,挖掘更有價值的算法優化和創新。
02數據分析
我們參與的是該比賽的專業賽道,因此有兩種數據集可以使用。一種為單類數據集,共80,000張垃圾圖像,每張圖像中只有一個類別。此外,還提供了圖中唯一對象的邊框的信息。多類別數據集包含訓練集中的2998張垃圾圖像,驗證集中的1000張垃圾圖像,測試集中的1000張垃圾圖像,每幅圖像最多包含20個類別。
不同於VOC、COCO、OID等常見的目標數據集,這些數據集具有不同的特點:
1. 對於205個類別,單類垃圾數據集的大小就足夠了。然而,這個數據集中的垃圾圖像與多類數據集中的垃圾圖像有很大的不同,即使是同一類別的垃圾。直接使用該數據集來訓練模型可能會導致特征不匹配和性能下降(圖1)。

圖1:左圖為多類數據集中的鏡子,右圖為單類數據集中的鏡子
2. 多類數據集在訓練集中只包含2998張垃圾圖像。而在125個類別的情況下,該數據量是比較小的,且類別存在不平衡的現象。因此大規模數據集的遷移學習和減少過擬合的技術是非常需要的。
3. 在大多數多類圖像中,垃圾密集地堆積在圖像的中心,並且形狀大小不一。它會導致垃圾相互遮擋,使檢測任務更加困難。並且每張圖像的背景都比較干凈(圖2)。

圖2:多類數據集圖像示例
4. 數據集中存在許多混淆類別的垃圾,導致類別標簽的不一致性。人工檢查和更正標簽可能有幫助,但也可能存在導致數據不匹配的風險(圖3)。

圖3:左右圖為同一類物體,但在多類數據集中
左圖被標定為食品塑料盒,而右圖被標定為食品外包裝盒
03Baseline
為了完成該比賽的任務,我們借鑒了其他大型的目標檢測競賽中的解決方案,如COCO、Objects365和OID。在這些解決方案中,我們借鑒了百度在OID 2019中的解決方案。Baseline模型選用的是基於Class-aware的Cascade R-CNN,且同時使用ResNet200-Vd作為模型的backbone並且加入了FPN、Dcnv2和Non-local方法來提高模型的整體效果。訓練使用多尺度訓練(480:1440:32)和常見的數據增強方法如水平翻轉。
遷移學習可以在小數據集上獲得良好的性能,因此在該比賽中使用該方法理論上應當可以取得較好的效果。因此,我們選擇了COCO、Objects365和OID混合的預訓練模型。具體效果如表1所示。

表1:使用不同預訓練參數的Baseline的AP
訓練方面,由於龐大的模型以及多尺度訓練方法,所以在Tesla V100 上batch size只能設置為1,這里感謝華為NAIE提供的算力支持。使用引用動量的SGD作為訓練的優化器。基礎學習率設置為0.001,權重衰減速率為0.0001。使用了Cosine annealing with warmup的學習率調度策略,從0.0001的學習率開始,1000次迭代后到達基礎學習率。我們訓練Baseline進行了120K次迭代,訓練時間大約40個小時。
04數據增強方案
為了減少在如此小的數據集上的過擬合,就需要大量的數據擴充。我們嘗試了許多數據增強方案,最終發現RandomVerticalFlip、AutoAugment和GridMask能有效提高模型性能。
不同於自然圖像,對於垃圾圖像,水平翻轉和垂直翻轉的效果是等同的,因此我們使用了RandomVerticalFlip而並非RandomHorizontalFlip。
並且我們將廣泛使用於圖像分類中的AutoAugment方法遷移到了目標檢測中。實驗證明,該方法對各種目標檢測數據集都是有效的。並且我們在baseline中嘗試了三種不同的自動增強策略(表2),發現AutoAugment v0的效果是最好的,最終我們也使用了它。

表2:不同AutoAugment策略下模型的AP
再者我們使用了GridMask的數據增強方法,該方法包括random erasing、hide-and-seek、Dropout以及DropBlock。實驗表明,GridMask可以有效減少目標檢測的過擬合。並且使用GridMask長時間訓練模型可以顯著提高模型性能。在本實驗中,我們嘗試了不同概率和訓練時間下的GridMask。如表3所示,使用GridMask的訓練模型需要比baseline更長的訓練時間。使用0.3的概率足以減少過擬合,且訓練時間越長越好。概率為0.5和0.7甚至會導欠擬合的現象。所以如果以較高的GridMask概率訓練超過300K次迭代理論上來說可以進一步提高結果。

表3:不同GridMask概率與迭代次數下模型的AP
05模型融合
在最終提交階段,我們只能在RTX 2080上測試兩個小時,但是模型大小不受限制。所以考慮到這些約束條件,我們訓練了僅隨機種子不同的6個相同的模型來進行模型融合,且使用了前面提到的所有有效技巧。同時使用了Top-k voting nms對6個模型的檢測結果進行合並,設置top-k voting的nms的IoU閾值為0.7,該閾值與Cascade R-CNN第三階段的IoU閾值一致。
06總結
最終我們在測試集上以0.910的成績取得了第一名,我們認為我們能夠取勝的原因主要有以下幾點:
(1)參考了大型目標檢測比賽前幾名的方案
(2)使用了COCO,Object365以及OIDV5的混合預訓練模型
(3)使用了多種數據增強方法
(4)在模型融合中使用了top-k voting nms
最后感謝華為提供的NAIE平台,為比賽訓練提供了巨大的幫助,平台功能也十分強大。在我們使用平台遇到問題時,官方都及時地進行了解答和協助,十分的給力。我們也非常榮幸能有這次機會和大家分享這次比賽的歷程,謝謝!
