trick—Data Augmentation -- 基於海康威視經驗

MachineLP發表於2017-08-15

海康威視研究院ImageNet2016競賽經驗分享

海康威視經驗


        資料增強對最後的識別效能和泛化能力都有著非常重要的作用。我們使用下面這些資料增強方法。第一,對顏色的資料增強,包括色彩的飽和度、亮度和對比度等方面,主要從Facebook的程式碼裡改過來的。第二,PCA Jittering,最早是由Alex在他2012年贏得ImageNet競賽的那篇NIPS中提出來的. 我們首先按照RGB三個顏色通道計算了均值和標準差,對網路的輸入資料進行規範化,隨後我們在整個訓練集上計算了協方差矩陣,進行特徵分解,得到特徵向量和特徵值,用來做PCA Jittering。第三,在影像進行裁剪和縮放的時候,我們採用了隨機的影像差值方式。第四, Crop Sampling,就是怎麼從原始影像中進行縮放裁剪獲得網路的輸入。比較常用的有2種方法:一是使用Scale Jittering,VGG和ResNet模型的訓練都用了這種方法。二是尺度和長寬比增強變換,最早是Google提出來訓練他們的Inception網路的。我們對其進行了改進,提出Supervised Data Augmentation方法。


        尺度和長寬比增強變換有個缺點,隨機去選Crop Center的時候,選到的區域有時候並不包括真實目標的區域。這意味著,有時候使用了錯誤的標籤去訓練模型。如圖所示,左下角的圖真值標籤是風車農場,但實際上裁剪的區域是藍天白雲,其中並沒有任何風車和農場的資訊。我們在Bolei今年CVPR文章的啟發下,提出了有監督的資料增強方法。我們首先按照通常方法訓練一個模型,然後用這個模型去生成真值標籤的Class Activation Map(或者說Heat Map), 這個Map指示了目標物體出現在不同位置的概率. 我們依據這個概率,在Map上隨機選擇一個位置,然後對映回原圖,在原圖那個位置附近去做Crop。

        如圖所示,對比原始的尺度和長寬比增強變換,我們方法的優點在於,我們根據目標物體出現在不同位置的概率資訊,去選擇不同的Crop區域,送進模型訓練。通過引入這種有監督的資訊,我們可以利用正確的資訊來更好地訓練模型,以提升識別準確率。 (+0.5~0.7)

還可以參考:聊一聊深度學習中的資料增強與實現

相關文章