0

Cách đọc ảnh bằng PIL và chuyển sang tensor trong Pytorch UwU1

Đọc ảnh PIL và output của nó sau khi đi qua hàm ToTensor()

1.PIL

PIL viết tắt cho Python Image Library. Muốn đọc ảnh dùng PIL, ta dùng code sau:

from PIL import Image

import numpy as np

pil_img = Image.open(image_path)

a = np.array(pil_img)

Đầu ra sẽ

  • một mảng 3 chiều
  • sử dụng kênh màu RGB
  • và thứ tự các chiều được lưu trong ổ cứng là (H, W, C)

Ảnh PIL được sử dụng khá phổ biến khi người ta muốn code deep learning bằng pytorch. Đơn giản vì hàm ToTensor() của torch.transform nhận đầu vào trực tiếp là PIL image (Ngoài ra cũng nhận cả numpy array đúng format nữa nhưng mà đọc ảnh trực tiếp bằng PIL thì sẽ tiện hơn nhiều vì chỉ cần hai bước là đọc + truyền vào)

2. Sau khi đi qua ToTensor()

Sử dụng code sau để chuyển PIL image sang tensor

import torch
import torchvision.transforms as transforms

transform = transforms.Compose([transforms.ToTensor()])
tensor_img = transform(pil_img)

Output sẽ:

  • được lưu trong ổ cứng theo thứ tự C,H,W
  • range các giá trị pixel còn từ [0, 1]
  • chuyển sang tensor (sure vì cái hàm tên là ToTensor() mà 🤡)

All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí