[筆記] 手刻的圖片前處理步驟 Understanding Torchvision transform.Normalize
Understanding Torchvision transform.Normalize 做 Deep Learning 影像辨識實驗時最常用的 pre-train model 就是以 ImageNet 資料訓練出來的 model,此時使用 model 時的圖片前處理就要注意幾個事項: model 架構中要求的圖片長寬 (Height, Width) 讀取圖片時的 Channel 順序 RGB 或 BGR ImageNet 資料集的圖片 Channel 的平均值(mean)與標準差(std) 以下順序為 [R, G, B] Mean = [0.485, 0.456, 0.406] Std = [0.229, 0.224, 0.225] 知名的深度學習框架 pytorch 有提供一個好用的圖片處理工具 torchvision 來做各式各樣常用圖片前處理,因此可以很簡地透過 torchvision 裡的 transform 做完以上幾件事 以下範例以 Inception V3 架構為例 這個模型要求圖片輸入尺寸為 299x299 Inception V3 paper: https://arxiv.org/abs/1512.00567v3 pytorch code: from PIL import Image from torchvision import transform height = 299 width = 299 test_transform = transforms.Compose([ transforms.Resize((height, width), interpolation= 3 ), transforms.ToTensor(), transforms.Normalize(mean=[ 0.485 , 0.456 , 0.406 ], std=[ 0.229 , 0.224 , 0.225 ]) ]) image_path = 'data/dog.jpg' # 圖片所在的路徑 image = Image.open(image_path) image = test_transform(image) 補充一個容易出錯的小重點 Pillow 跟 OpenCV