最近遇到數據樣本數目不足的問題,自己寫的增強工具生成數目還是不夠,終於在網上找到一個數據增強工具包,足夠高級,足夠傻瓜。想要多少就有多少!再也不怕數據不夠了!
簡介
Augmentor是一個Python包,旨在幫助機器學習任務的圖像數據人工生成和數據增強。它主要是一種數據增強工具,但也將包含基本的圖像預處理功能。
特色
Augmentor是用於圖像增強的軟件包,重點在於提供通常用於生成機器學習問題的圖像數據的操作。
Augmentor包含許多用於標准圖像處理功能的類,例如Rotate 旋轉類、Crop 裁剪類等等。 包含的操作有:旋轉rotate、裁剪crop、透視perspective skewing、shearing、彈性形變Elastic Distortions、亮度、對比度、顏色等等;更多的操作及其參數設定,點擊
數據增強通常是一個多階段過程,Augmentor因此采用基於管道的處理方法,操作依次添加形成最終的操作管道。圖像送到管道中,管道的操作依次作用到圖片上形成新的圖片,保存下來。
Augmentor 管道中定義的操作按照一定的概率隨機地作用於圖片上。
安裝
控制台輸入:
pip install Augmentor
安裝成功。
使用Examples
分3步:
- 實例化Pipeline 對象,通過指定包含要處理圖片所在的目錄;
- 定義數據增強操作,crop、rotate等等,添加到pipeline中;
- 調用pipeline的sample(n)函數,同時指定增強后的樣本總量;
import Augmentor
# 1. 指定圖片所在目錄
p = Augmentor.Pipeline("./images")
# 2. 增強操作
# 旋轉 概率0.7,向左最大旋轉角度10,向右最大旋轉角度10
p.rotate(probability=0.7,max_left_rotation=10, max_right_rotation=10)
# 放大 概率0.3,最小為1.1倍,最大為1.6倍;1不做變換
p.zoom(probability=0.3, min_factor=1.1, max_factor=1.6)
# resize 同一尺寸 200 x 200
p.resize(probability=1,height=200,width=200)
# 3. 指定增強后圖片數目總量
p.sample(2000)
增強后的圖片文件保存在images下的output中。
總結
- 個人認為其最大的亮點是只需要指定要增強圖片所在的路徑即可,不用進行讀入、以及numpy數據轉換;
- 增強時只需要指定最后的數目N,無論原始圖片有多少,總能生成你想要的數目!!!
- API也高度抽象;容易理解、上手!
- 增強后的圖片會保存在指定增強圖片所在目錄下的output目錄里;
推薦自己動手試一試。網址