Pytorch 圖片處理與數據增廣
本方法總結自《動手學深度學習》(Pytorch版)github項目
- Pytorch 數據增廣主要依賴於 torchvision.transform 庫
圖片讀取
from PIL import Image
img = Image.open('./a.jpg')
圖片增廣
- 單一增廣
import torchvision
aug1 = torchvision.transforms.RandomHorizontalFlip(p=0.5) # 隨機水平翻轉, p 默認爲 0.5
img = aug1(img) # 增廣處理
aug2 = torchvision.transforms.RandomVerticalFlip() # 垂直翻轉
aug3 = torchvision.transforms.RandomResizedCrop(size=200, scale=(0.1, 1), ratio=(0.2, 2))
# size 爲裁剪加上再 resize 後的最終size, scale: 裁剪圖像爲原圖像的 10% ~ 100% 不等,裁剪的寬高比爲 0.2 ~ 2 不等
# 將圖片轉爲 tensor 形式
aug4 = torchvision.transform.ToTensor()
- 同時進行多個處理
augs = torchvision.transforms.Compose([
aug1, aug2, aug3, aug4
])
img = augs(img)
在實現時一定要將圖片轉化爲 tensor 再進行網絡訓練