Hộp giới hạn

Deep Learning cho Ảnh với PyTorch

Michal Oleszak

Machine Learning Engineer

Nhận dạng đối tượng là gì?

Nhận dạng đối tượng xác định đối tượng trong ảnh:

  • Vị trí từng đối tượng trong ảnh (hộp giới hạn)

  • Nhãn lớp của từng đối tượng

Ứng dụng: giám sát, chẩn đoán y khoa, quản lý giao thông, phân tích thể thao

  • Video này: gán nhãn bằng hộp giới hạn
  • Video sau: đánh giá và mô hình

 

phát hiện khi lái xe

Deep Learning cho Ảnh với PyTorch

Biểu diễn hộp giới hạn

  • Hộp chữ nhật mô tả vị trí không gian của đối tượng
  • Dùng trong gán nhãn dữ liệu huấn luyện và đầu ra mô hình
  • Hộp giới hạn chuẩn (ground truth): vị trí chính xác của đối tượng

tọa độ hộp giới hạn

Deep Learning cho Ảnh với PyTorch

Biểu diễn hộp giới hạn

  • Hộp chữ nhật mô tả vị trí không gian của đối tượng
  • Dùng trong gán nhãn dữ liệu huấn luyện và đầu ra mô hình
  • Hộp giới hạn chuẩn (ground truth): vị trí chính xác của đối tượng
  • Tọa độ hộp giới hạn:
    • Góc trên trái và góc dưới phải
    • Hộp giới hạn = (x1, y1, x2, y2)
    • x1 = x_min, x2 = x_max, ...

tọa độ hộp giới hạn

Deep Learning cho Ảnh với PyTorch

Pixel và tọa độ

tọa độ hộp

  • Tọa độ: x - số cột, y - số hàng
  • Gốc: (0, 0) - góc trên bên trái
Deep Learning cho Ảnh với PyTorch

Chuyển pixel thành tensor

Chuyển đổi với ToTensor()

  • Kiểu tensor:
    • torch.float
  • Miền giá trị đã chuẩn hóa:
    • [0.0, 1.0]
import torchvision.transforms as transforms

transform = transforms.Compose([ transforms.Resize(224), transforms.ToTensor() ]) image_tensor = transform(image)

Chuyển đổi với PILToTensor()

  • Kiểu tensor:
    • torch.uint8 (số nguyên 8 bit)
  • Miền giá trị chưa chuẩn hóa:
    • [0, 255]
import torchvision.transforms as transforms
transform = transforms.Compose([
            transforms.Resize(224),
            transforms.PILToTensor()
            ])
image_tensor = transform(image)
Deep Learning cho Ảnh với PyTorch

Vẽ hộp giới hạn

from torchvision.utils import draw_bounding_boxes


bbox = torch.tensor([x_min, y_min, x_max, y_max]) bbox = bbox.unsqueeze(0)
bbox_image = draw_bounding_boxes( image_tensor, bbox, width=3, colors="red" )
transform = transforms.Compose([ transforms.ToPILImage() ]) pil_image = transform(bbox_image) import matplotlib.pyplot as plt plt.imshow(pil_image)
  • Import draw_bounding_boxes
  • Gom tọa độ vào một tensor
  • Unsqueeze thành hai chiều
  • Chuyển sang ảnh và vẽ

mèo với hộp

Deep Learning cho Ảnh với PyTorch

Ayo berlatih!

Deep Learning cho Ảnh với PyTorch

Preparing Video For Download...