Phân đoạn panoptic

Deep Learning cho Ảnh với PyTorch

Michal Oleszak

Machine Learning Engineer

Thử thách phân đoạn panoptic

Ảnh gốc

Ảnh gốc

Phân đoạn ngữ nghĩa

Phân đoạn ngữ nghĩa

Phân đoạn instance

Phân đoạn instance

Phân đoạn panoptic

Phân đoạn panoptic

Deep Learning cho Ảnh với PyTorch

Quy trình phân đoạn panoptic

  • Kết hợp phân đoạn ngữ nghĩa và instance có thể phức tạp:

    • Chồng lấn
    • Đảm bảo ID instance là duy nhất
  • Quy trình của chúng ta:

    1. Tạo mặt nạ ngữ nghĩa
    2. Gộp thành một mặt nạ duy nhất
    3. Khởi tạo panoptic mask từ semantic mask
    4. Tạo mặt nạ instance
    5. Lặp qua mặt nạ instance và chồng đối tượng phát hiện lên semantic mask
Deep Learning cho Ảnh với PyTorch

Mặt nạ ngữ nghĩa

model = UNet()

with torch.no_grad():
    semantic_masks = model(image_tensor) 
    print(semantic_masks.shape)
torch.Size([1, 3, 427, 640])
semantic_mask = torch.argmax(
  semantic_masks, dim=1
)
  • Khởi tạo mô hình
  • Tạo mặt nạ ngữ nghĩa cho ảnh đầu vào
  • Chọn lớp xác suất cao nhất cho mỗi pixel

Mặt nạ ngữ nghĩa

Deep Learning cho Ảnh với PyTorch

Mặt nạ instance

model = MaskRCNN()

with torch.no_grad(): instance_masks = model(image_tensor)[0]["masks"] print(instance_masks.shape)
torch.Size([80, 1, 427, 640])
  • Tải mô hình phân đoạn instance
  • Tạo các mặt nạ instance

Mặt nạ instance

Deep Learning cho Ảnh với PyTorch

Mặt nạ panoptic

panoptic_mask = torch.clone(semantic_mask)

instance_id = 3 for mask in instance_masks:
panoptic_mask[mask > 0.5] = instance_id
instance_id += 1
  • Khởi tạo panoptic mask từ semantic_mask
  • Lặp qua các mặt nạ instance
  • Gán ID instance cho vị trí mask > 0.5
  • Tăng bộ đếm ID instance

Mặt nạ panoptic

Deep Learning cho Ảnh với PyTorch

Vamos praticar!

Deep Learning cho Ảnh với PyTorch

Preparing Video For Download...