Segmentacja obrazu to jedno z najważniejszych zadań widzenia komputerowego, które wykracza daleko poza klasyfikację i detekcję obiektów. Podczas gdy klasyfikacja przypisuje jedną etykietę całemu obrazowi, a detekcja lokalizuje obiekty ramkami prostokątnymi, segmentacja przypisuje klasę każdemu pikselowi — dając precyzyjny kształt każdego obiektu.
Typy segmentacji
Segmentacja semantyczna (Semantic Segmentation)
Przypisuje klasę każdemu pikselowi obrazu. Nie rozróżnia poszczególnych instancji — wszystkie piksele „samochodu" mają tę samą etykietę, niezależnie od tego, ile samochodów jest na obrazie.
Wejście: obraz (np. 512×512) Wyjście: mapa etykiet (512×512), gdzie każdy piksel ma przypisaną klasę
Przykład: na zdjęciu ulicy piksele są klasyfikowane jako „droga", „chodnik", „budynek", „niebo", „samochód", „pieszy", „drzewo".
Segmentacja instancyjna (Instance Segmentation)
Rozszerzenie segmentacji semantycznej: nie tylko klasyfikuje piksele, ale rozróżnia poszczególne instancje obiektów. Dwa samochody na obrazie mają różne maski — „samochód_1" i „samochód_2".
Wyjście: lista obiektów, każdy z maską (binary mask), klasą i confidence.
Segmentacja panoptyczna (Panoptic Segmentation)
Łączy obie: semantyczna dla „rzeczy" niezliczalnych (niebo, droga, trawa) + instancyjna dla „rzeczy" zliczalnych (samochody, ludzie, zwierzęta). Każdy piksel ma klasę i opcjonalnie ID instancji.
Architektury do segmentacji semantycznej
FCN (Fully Convolutional Network)
FCN (Long et al., 2015) — pierwsza architektura do end-to-end segmentacji semantycznej. Zamienia warstwy w pełni połączone CNN na konwolucyjne, umożliwiając wejście dowolnego rozmiaru i wyjście mapa pikseli. Upsampling przez dekonwolucje (transposed convolutions).
U-Net
U-Net (Ronneberger et al., 2015) to architektura zaprojektowana do segmentacji obrazów medycznych, która stała się standardem w wielu domenach.
Architektura:
Kształt litery „U" z dwiema ścieżkami:
Ścieżka kurcząca (Contracting/Encoder): Sekwencja konwolucji + max pooling → zmniejszanie rozdzielczości, zwiększanie liczby kanałów. Wydobywa cechy od niskiego do wysokiego poziomu.
Ścieżka rozszerzająca (Expanding/Decoder): Sekwencja up-convolution + konwolucje → zwiększanie rozdzielczości z powrotem do oryginału. Odtwarza precyzyjną lokalizację.
Skip connections: Kluczowa innowacja — łączenie (konkatenacja) map cech z enkodera z odpowiadającymi warstwami dekodera. Dzięki temu dekoder ma dostęp zarówno do cech wysokiego poziomu (kontekst) jak i niskiego (precyzyjne krawędzie).
Zastosowania U-Net:
- Segmentacja organów na CT/MRI
- Segmentacja komórek w mikroskopii
- Segmentacja budynków z satelity
- Segmentacja dróg z dronów
U-Net jest popularny w medycynie, bo działa dobrze na małych zbiorach danych (dziesiątki-setki obrazów) — skip connections i augmentacja kompensują brak danych.
DeepLab (v1, v2, v3, v3+)
Seria modeli Google do segmentacji semantycznej z kluczowymi innowacjami:
Atrous Convolution (Dilated Convolution): Konwolucja z „dziurami" — zwiększa pole recepcyjne (receptive field) bez zmniejszania rozdzielczości i bez dodatkowych parametrów.
ASPP (Atrous Spatial Pyramid Pooling): Równoległe atrous convolutions z różnymi rate — wychwytuje kontekst na wielu skalach jednocześnie.
Encoder-Decoder w DeepLab v3+: Łączy ASPP z dekoderem podobnym do U-Net. Obecnie jeden z najlepszych modeli segmentacji semantycznej.
SegFormer
Architektura oparta na transformerach — hierarchiczny Vision Transformer jako enkoder, prosty MLP jako dekoder. Efektywniejszy i dokładniejszy niż modele konwolucyjne na wielu benchmarkach.
Architektury do segmentacji instancyjnej
Mask R-CNN
Mask R-CNN (He et al., 2017) to rozszerzenie Faster R-CNN o gałąź maski — dodatkowa sieć generująca binarną maskę segmentacji dla każdego wykrytego obiektu.
Architektura:
- Backbone + FPN: ekstrakcja cech wieloskalowych
- RPN: generowanie propozycji regionów (jak w Faster R-CNN)
- RoI Align: precyzyjne wycinanie regionów z mapy cech (zamiast RoI Pooling — brak kwantyzacji)
- Head — trzy gałęzie równoległe:
- Klasyfikacja klasy
- Regresja bounding box
- Predykcja maski (sieć konwolucyjna generująca maskę 28×28)
Mask R-CNN generuje jednocześnie bounding box, klasę i pikselową maskę każdego obiektu — kompletna segmentacja instancyjna.
YOLACT / YOLOv8-seg
One-stage instance segmentation — szybsze niż Mask R-CNN, nieco mniej dokładne. YOLOv8 Ultralytics oferuje wariant segmentacji obok detekcji.
SAM — Segment Anything Model
SAM (Meta, 2023) to przełomowy model foundation do segmentacji. Wytrenowany na 11 milionach obrazów i ponad miliardzie masek, SAM potrafi segmentować dowolny obiekt na dowolnym obrazie bez dodatkowego treningu.
Architektura SAM
- Image Encoder: Vision Transformer (ViT-H) — generuje embedding obrazu
- Prompt Encoder: koduje wskazówki użytkownika (punkt, bounding box, tekst)
- Mask Decoder: lekka sieć generująca maskę na podstawie embeddingu i promptu
Tryby użycia
- Punkt: kliknij na obiekcie → maska tego obiektu
- Bounding box: narysuj prostokąt → maska obiektu wewnątrz
- Tekst: opisz obiekt → maska (SAM 2 / Grounding DINO + SAM)
- Automatycznie: segmentuj wszystko na obrazie (grid of points)
SAM 2 (2024)
Rozszerzenie na wideo — segmentacja i śledzenie obiektów w sekwencjach wideo. Pamiętanie kontekstu między klatkami.
Funkcje straty w segmentacji
Cross-Entropy Loss
Standardowa strata klasyfikacyjna per piksel. Problematyczna przy niezbalansowanych klasach (np. mały guz na dużym tle).
Dice Loss
Oparta na współczynniku Dice'a (F1-score):
Dice = 2|A ∩ B| / (|A| + |B|)
Łagodzi problem niezbalansowania klas — nie zdominowana przez klasę tła.
Focal Loss
Kara za łatwe piksele jest zmniejszana, trudne piksele (granice obiektów, rzadkie klasy) dostają większą wagę. Przydatna przy silnym niezbalansowaniu.
Kombinacje
W praktyce często łączy się: L = α · CE + β · Dice
Metryki oceny
mIoU (mean Intersection over Union)
Główna metryka segmentacji semantycznej. IoU obliczane per klasa, potem uśredniane.
Pixel Accuracy
Procent poprawnie sklasyfikowanych pikseli. Prosta, ale myląca przy niezbalansowaniu (99% tła → 99% accuracy nawet bez wykrycia obiektu).
AP (Average Precision)
Dla segmentacji instancyjnej — jak w detekcji, ale z progiem na IoU masek zamiast bounding boxów.
Zastosowania
Medycyna
- Segmentacja organów (wątroba, nerka, serce) na CT/MRI
- Segmentacja guzów nowotworowych
- Liczenie komórek w mikroskopii
- Pomiar objętości struktur anatomicznych
Autonomiczne pojazdy
- Segmentacja drogi, chodnika, pasa ruchu
- Rozróżnianie pieszych, pojazdów, znaków
- Zrozumienie sceny 360°
Teledetekcja
- Segmentacja budynków z obrazów satelitarnych
- Klasyfikacja użytkowania ziemi
- Detekcja zmian (deforestation, urbanization)
Robotyka
- Manipulacja obiektami (grasp detection)
- Nawigacja w nieznanym środowisku
- Bin picking (wybieranie przedmiotów z pojemnika)
Podsumowanie
Segmentacja obrazu — od semantycznej przez instancyjną po panoptyczną — zapewnia najgłębsze zrozumienie zawartości obrazu. U-Net dominuje w medycynie, DeepLab/SegFormer w ogólnej segmentacji semantycznej, Mask R-CNN w instancyjnej. SAM rewolucjonizuje dziedzinę jako foundation model do segmentacji „czegokolwiek". Wybór metody zależy od wymagań: czy potrzebujemy rozróżniać instancje, jaka jest dostępność danych i wymagania dotyczące szybkości.