Panoptisk segmentering

Djupinlärning för bilder med PyTorch

Michal Oleszak

Machine Learning Engineer

Utmaningen med panoptisk segmentering

Originalbild

Originalbild

Semantisk segmentering

Semantisk segmentering

Instanssegmentering

Instanssegmentering

Panoptisk segmentering

Panoptisk segmentering

Djupinlärning för bilder med PyTorch

Arbetsflöde för panoptisk segmentering

  • Att kombinera semantisk och instanssegmentering kan vara komplext:

    • Överlappningar
    • Säkerställa unika instans-ID:n
  • Vårt arbetsflöde:

    1. Generera semantiska masker
    2. Kombinera dem till en enda mask
    3. Initiera den panoptiska masken som den semantiska masken
    4. Generera instansmasker
    5. Iterera över instansmasker och lägg detekterade objekt ovanpå den semantiska masken
Djupinlärning för bilder med PyTorch

Semantiska masker

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
)
  • Instantiera modellen
  • Skapa semantiska masker för indatabilden
  • Välj klassen med högst sannolikhet för varje pixel

Semantisk mask

Djupinlärning för bilder med PyTorch

Instansmasker

model = MaskRCNN()

with torch.no_grad(): instance_masks = model(image_tensor)[0]["masks"] print(instance_masks.shape)
torch.Size([80, 1, 427, 640])
  • Läs in instanssegmenteringsmodellen
  • Skapa instansmasker

Instansmask

Djupinlärning för bilder med PyTorch

Panoptiska masker

panoptic_mask = torch.clone(semantic_mask)

instance_id = 3 for mask in instance_masks:
panoptic_mask[mask > 0.5] = instance_id
instance_id += 1
  • Initiera den panoptiska masken som semantic_mask
  • Iterera över instansmasker
  • Sätt den panoptiska masken till instans-ID där mask > 0,5
  • Öka instans-ID-räknaren

Panoptisk mask

Djupinlärning för bilder med PyTorch

Nu kör vi en övning!

Djupinlärning för bilder med PyTorch

Preparing Video For Download...