Panoptická segmentace

Deep Learning pro obrázky s PyTorchem

Michal Oleszak

Machine Learning Engineer

Výzva panoptické segmentace

Původní obrázek

Původní obrázek

Sémantická segmentace

Sémantická segmentace

Instanční segmentace

Instanční segmentace

Panoptická segmentace

Panoptická segmentace

Deep Learning pro obrázky s PyTorchem

Postup panoptické segmentace

  • Kombinace sémantické a instanční segmentace může být složitá:

    • Překryvy
    • Zajištění jedinečných ID instancí
  • Náš postup:

    1. Generování sémantických masek
    2. Sloučení do jedné masky
    3. Inicializace panoptické masky jako sémantické masky
    4. Generování instančních masek
    5. Iterace přes instanční masky a překrytí detekovaných objektů na sémantickou masku
Deep Learning pro obrázky s PyTorchem

Sémantické masky

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
)
  • Vytvoření instance modelu
  • Generování sémantických masek pro vstupní obrázek
  • Výběr třídy s nejvyšší pravděpodobností pro každý pixel

Sémantická maska

Deep Learning pro obrázky s PyTorchem

Instanční masky

model = MaskRCNN()

with torch.no_grad(): instance_masks = model(image_tensor)[0]["masks"] print(instance_masks.shape)
torch.Size([80, 1, 427, 640])
  • Načtení modelu instanční segmentace
  • Generování instančních masek

Instanční maska

Deep Learning pro obrázky s PyTorchem

Panoptické masky

panoptic_mask = torch.clone(semantic_mask)

instance_id = 3 for mask in instance_masks:
panoptic_mask[mask > 0.5] = instance_id
instance_id += 1
  • Inicializace panoptické masky jako semantic_mask
  • Iterace přes instanční masky
  • Nastavení panoptické masky na ID instance, kde maska > 0.5
  • Zvýšení čítače ID instance

Panoptická maska

Deep Learning pro obrázky s PyTorchem

Pojďme si procvičit!

Deep Learning pro obrázky s PyTorchem

Preparing Video For Download...