谷歌簡單粗暴“復制-粘貼”數據增廣,刷新COCO目標檢測與實例分割新高度
近日,谷歌、UC伯克利與康奈爾大學的研究人員公布了一篇論文 Simple Copy-Paste is a Strong Data Augmentation Method for Instance Segmentation ,使用簡單粗暴的“復制-粘貼”術,再次刷新COCO數據集上目標檢測與實例分割的新高度。
該論文全文無公式,也無算法流程圖,介紹方法只用了3句話,如下:
其余全是實驗,但結果異常好,其最好模型在COCO數據集上實例分割和目標檢測任務中分別達到49.1 mask AP 和 57.3 box AP,比之前最好結果分別高0.6 和1.5 個點!
該文作者信息:
該文主要使用了訓練集中實例分割對象復制粘貼實現訓練階段的數據增廣,其增廣方法三個字概括為“無限制”,CV君把其過程總結為 5 個隨機:
-
隨機選擇兩幅訓練圖像
-
隨機尺度抖動縮放
-
隨機水平翻轉
-
隨機選擇一幅圖像中的目標子集
-
粘貼在另一幅圖像中隨機的位置
以上 5 個隨機后把mask和box標注進行更新。
是不是就是你心中那個最簡單粗暴的想法?
可能有些同學看到過其他論文在使用復制粘貼術增強數據的時候對位置和尺度進行建模,使其符合這個世界的常識(這樣好像更合理),但谷歌學者在論文中一再說明:不需要!亂放其實挺好!
請看下圖:
數據增廣后,長頸鹿飛到運動員的手臂上,鴕鳥進入比賽場,一邊在激烈比賽一邊還有動物在悠閑觀看。。。
這樣的場景看起來不合理,但論文實驗結果顯示,這樣的數據增廣卻真實提高了模型精度。
另外,也許我們會想,目標邊緣是不是要處理一下?畢竟直接放進去看起來不自然。但谷歌學者發現這個其實也沒必要處理,反正他們信了一些論文處理了也沒發現有提升。
總結起來就是:數據增強的結果看起來不自然,沒關系!又不是給人看。
特別值得一提的是,作者除了重點強調復制粘貼要簡單粗暴外,還在論文實驗中發現,對於尺度抖動也不要太溫柔。
一種標准的尺度抖動,把圖像縮放到原來的0.8-1.25,這個標准看起來對原數據的改變不是太大,應該是大部分人的選擇。但谷歌學者發現把圖像縮放到0.1到2.0之間其實更好。
一組標准的尺度抖動縮放示例:
更“大膽”的大尺度抖動:
最右下角很顯然已經小到人眼不可辨了。
不過沒關系,反正不是給人看。
另外作者發現,這種方法也可以提高自訓練方法的最終訓練效果。
好了,我們已經完全理解這個算法了(其實就是簡單粗暴復制粘貼+更大膽的尺度縮放),一起來看看實驗結果如何。
作者做了很多實驗,證明了此策略的兩個優點:
-
很有效,精度提高很明顯;
-
一直很有效,無論數據有改變、模型有改變還是任務有改變,精度提升一直很明顯。
與其他SOTA目標檢測算法在COCO數據集上的結果比較:
使用Cascade - Mask RCNN-EfficientNet-B7 NAS-FPN算法時(因其天然的可以得到實例分割和目標檢測的結果,方便比較),在該文復制粘貼術+自訓練的加持下將該數據集的最高精度推高到57.3 box AP,超過了YOLOv4-P7。(當然YOLOv4-P7並沒有使用同樣的數據增廣方法,如果使用了也許更高,各位同學不妨一試)其實例分割結果也超過了之前的最好結果。
在LVIS數據集上的結果:
同樣顯著提高了相應基模型的精度。
另外,作者研究了在各種不同情況下,簡單粗暴復制粘貼術都能提高模型精度。
比如:
不同初始化方法下,增廣后精度都有大度提高:
SS為標准尺度抖動,LS為大尺度抖動。
不同尺度抖動方法下,增廣后精度都有提高:
不同模型,不同輸入分辨率,依然有效果:
Copy-Paste與mixup增廣方法相比,精度提升更明顯:
自訓練和復制粘貼術聯合使用,效果更好:
由上圖可知,精度增益幾乎是實打實的“1+1=2”了,說明他們合起來真是絕配。
另外,作者還將通過這種增強方法得到的模型用於其他數據集任務的預訓練模型,同樣獲得了精度提升:
在下游任務為VOC 2007 目標檢測中:
在下游任務為VOC 2012 實例分割中:
總之,這篇論文說明:簡單粗暴復制粘貼+更加大膽尺度抖動的數據增廣,盡管看起來不太合理,但對於改進目標檢測與實例分割的模型效果是立竿見影的,而且與自訓練方法結合效果更佳!
論文地址:
https://arxiv.org/pdf/2012.07177.pdf
目前沒發現該文有開源代碼(可能是官方覺得太簡單了,沒必要開源吧。。。)