1. 程式人生 > >深度學習項目 | 一招讓你的mao(貓)片十倍增長

深度學習項目 | 一招讓你的mao(貓)片十倍增長

abc cdd cal orien images gem sta 項目 保存

我們知道深度學習模型訓練時通常都需要大量的訓練集,我們在做圖像相關的應用時同樣需要進行圖像數據增加,下面我將給大家總結10種圖像數據增強常用的方式,並給出keras的實現方法。

一. 水平翻轉

隨機的對圖片進行水平翻轉,這個參數適用於水平翻轉不影響圖片語義的時候

技術分享圖片

技術分享圖片

二. 豎直翻轉

隨機的對圖片進行豎直翻轉,這個參數適用於豎直翻轉不影響圖片語義的時候

技術分享圖片

技術分享圖片

三. 隨機旋轉角度

設置一個0~180的度數,用來指定隨機旋轉圖片的角度

技術分享圖片

技術分享圖片

四. 隨機水平平移

用來指定水平方向隨機移動的程度

技術分享圖片

技術分享圖片

五. 隨機豎直平移

用來指定豎直方向隨機移動的程度

技術分享圖片

技術分享圖片

六. 隨機錯切變換

在某方向上,按照一定的比例對圖形的每個點到某條平行於該方向的直線的有向距離做放縮得到的平面圖形

技術分享圖片

技術分享圖片

七. 隨機放大

進行隨機的放大

技術分享圖片

技術分享圖片

八. 顏色抖動

改變圖片的顏色,通過對顏色通道的數值偏移,改變圖片的整體的顏色
技術分享圖片

技術分享圖片

九. rescale

rescale的作用是對圖片的每個像素值均乘上這個放縮因子,這個操作在所有其它變換操作之前執行,在一些模型當中,直接輸入原圖的像素值可能會落入激活函數的飽和區,因此設置放縮因子為1/255,把像素值放縮到0和1之間有利於模型的收斂,避免神經元飽和。圖片經過rescale之後,保存到本地的圖片用肉眼看是沒有任何區別的

十. fill_mode

fill_mode為填充模式,如前面提到,當對圖片進行平移、放縮、錯切等操作時,圖片中會出現一些缺失的地方,就由fill_mode中的參數確定。包括:“constant”、“nearest”(默認)、“reflect”和“wrap”。

  • ‘constant‘: kkkkkkkk|abcd|kkkkkkkk (cval=k)

  • ‘nearest‘: aaaaaaaa|abcd|dddddddd

  • ‘reflect‘: abcddcba|abcd|dcbaabcd

  • ‘wrap‘: abcdabcd|abcd|abcdabcd

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

通常來說我們不會只使用單一的數據增加方法,而是會多種方式結合使用,比如使用多種數據增加的方法後得到的結果如下圖:

技術分享圖片

項目打包

百度網盤:
https://pan.baidu.com/s/1U9YwXCTRF0oBxENfh_JsWQ

深度學習項目 | 一招讓你的mao(貓)片十倍增長