天天看點

關于資料增強

資料增強

線下:事先執行所有轉換,實質上會增加的資料集的大小,适用于較小的資料集。

線上:在送入機器學習之前,在小批量(mini-batch)上執行這些轉換,适用于較大的資料集,一些機器學習架構支援線上增強,可以在GPU上加速。

主要有以下幾類:

  • 幾何變換:例如平移、旋轉、翻轉、縮放等。(有小目标,必須裁剪
  • 顔色變換:①噪聲:為了讓模型更加魯棒,可以考慮在訓練集内加入高斯噪聲、椒鹽噪聲等對模型進行幹擾。② 顔色擾動:改變亮度、灰階、飽和度、對比度等,色調歸一化
  • 類别不平衡(待補充):重采樣;執行個體平衡增強
  • 去模糊:中值/高斯/動态模糊、去霧算法(GCANet、FFA-Net、AOD-Net等等)、MSRCR等
  • 目标遮擋或重疊:Cutout、Random Erasing、Mixup、Cutmix等
  • 其他:使用copy-paste 、泊松融合等增加資料量,使用标簽平滑等防止過拟合,……

細節補充

  1. 執行個體平衡增強

    執行個體平衡增強(Instance-Balanced Augmentation)技術,即對圖像按照特定的尺度(如 1.5 倍和 2 倍大小)進行縮放操作,即定義了一批大小不同的「滑窗」。同時也會定義滑窗的步長。定義後,使用滑動視窗在樣本圖像中滑動,産生滑動區域。在這些滑窗中,選擇包含少量目标的最優資料加入到訓練集中。

    選擇滑窗注意:①參考資料集已有樣本的類别分類情況選擇滑窗目标;②可根據分辨率和尺度等對選出的滑窗目标加入一些随機擾動,達到增強原有資料集的目的

    關于資料增強
  2. 遮擋重疊方法比較

Cutout:利用固定大小的矩形對圖像進行遮擋,在矩形範圍内,所有的值都被設定為0,或者其他純色值。而且擦除矩形區域存在一定機率不完全在原圖像中的(文中設定為50%)。motivation是“遮擋”,即删除的矩形區域可以看成是被遮擋的位置

Random Erasing:通過均勻分布取樣得到擦除矩形面積,以及長寬值。選擇一個滿足所有矩形部分都在圖像内的左上角坐标,将這個矩形區域都設定為統一的和圖像其他區域無關的純色值。

(最主要的差別在于在cutout中,擦除矩形區域存在一定機率不完全在原圖像中的。而在Random Erasing中,擦除矩形區域一定在原圖像内。Cutout變相的實作了任意大小的擦除,以及保留更多重要區域。)

Mixup:兩張圖像每個位置的像素根據一定比例進行疊加,label根據像素疊加比例進行配置設定。/從訓練樣本中随機抽取兩個樣本進行簡單的随機權重求和,同時樣本的标簽也對應權重求和,然後預測結果與權重求和之後的标簽求損失,在反向求導更新參數。

Cutmix:随機删除一個矩形區域,并通過另一張圖像的同一位置像素值填充,label根據像素所占比例進行配置設定

關于資料增強
  1. github資料增強

    Image augmentation for machine learning experiments.

    Fast image augmentation library and an easy-to-use wrapper around other libraries.

    Image augmentation library in Python for machine learning.

參考:

  1. 重新整理PascalVOC紀錄,阿裡圖靈實驗室怎樣目标檢測
  2. Cutout、Random Erasing、Mixup、Cutmix
  3. 目标檢測比賽思路、tricks集錦、資料彙總
  4. 目标檢測類算法比賽的經驗總結

繼續閱讀