Detekcja obiektów (ang. object detection) to jedno z fundamentalnych zadań widzenia komputerowego. W odróżnieniu od klasyfikacji obrazów, która odpowiada na pytanie „co jest na obrazie?", detekcja odpowiada na pytanie „co jest na obrazie i gdzie dokładnie się znajduje?". Wyjście to lista obiektów, każdy z ramką ograniczającą (bounding box), etykietą klasy i wynikiem pewności (confidence score).
Problem detekcji obiektów
Wejście i wyjście
Wejście: obraz (np. 640×640 pikseli) Wyjście: lista detekcji, każda zawiera:
- Bounding box: (x, y, szerokość, wysokość) lub (x_min, y_min, x_max, y_max)
- Klasa: „samochód", „pieszy", „pies"
- Confidence: 0.0 - 1.0 (pewność detekcji)
Wyzwania
- Wielu obiektów na jednym obrazie (dziesiątki-setki)
- Różne skale — mały pieszy w tle i duży samochód w centrum
- Okluzja — obiekty częściowo zasłonięte przez inne
- Różne proporcje — pionowy człowiek, poziomy autobus
- Szybkość — real-time w autonomicznych pojazdach (30+ FPS)
Podejścia: Two-Stage vs One-Stage
Two-Stage Detectors
Dwuetapowe: najpierw generuj propozycje regionów (region proposals), potem klasyfikuj i precyzuj każdy region.
R-CNN (2014): Selective Search generuje ~2000 propozycji regionów. Każdy region jest wycinany, skalowany do stałego rozmiaru i przepuszczany przez CNN. Bardzo wolny — CNN osobno na każdym regionie.
Fast R-CNN (2015): CNN raz na całym obrazie (feature map). RoI Pooling wycina regiony z mapy cech zamiast z obrazu. 10x szybszy niż R-CNN.
Faster R-CNN (2015): Zamiast Selective Search, Region Proposal Network (RPN) — mała sieć neuronowa generująca propozycje regionów z mapy cech. Cały pipeline end-to-end trenowalny. Architektura referencyjna dla two-stage detectorów.
Architektura Faster R-CNN
- Backbone: CNN (ResNet, VGG) ekstraktor cech — obraz → mapa cech
- RPN: sieć generująca anchors (predefined bounding boxes) i oceniająca, czy zawierają obiekt
- RoI Pooling: wyrównanie regionów do stałego rozmiaru
- Head: klasyfikacja klasy + regresja bounding box dla każdego regionu
Zalety: wysoka dokładność, szczególnie na małych obiektach. Wady: wolniejszy niż one-stage detectors (10-15 FPS na GPU).
One-Stage Detectors
Jednoetapowe: jedna sieć bezpośrednio przewiduje bounding boxy i klasy z mapy cech. Brak etapu propozycji regionów.
YOLO — You Only Look Once
YOLO (Redmon et al., 2016) to przełomowy one-stage detector, który zdefiniował nowy paradygmat: cały obraz analizowany jednym przejściem sieci.
Zasada działania
- Podziel obraz na siatkę S×S (np. 7×7)
- Każda komórka siatki przewiduje B bounding boxów i ich confidence
- Każda komórka przewiduje prawdopodobieństwa C klas
- Wynik: S × S × (B × 5 + C) tensor predykcji
Ewolucja YOLO
YOLOv1 (2016): pierwszy model, szybki ale mało precyzyjny na małych obiektach.
YOLOv2/YOLO9000 (2017): anchors, batch normalization, multi-scale training. Poprawa dokładności.
YOLOv3 (2018): Feature Pyramid Network (FPN) do detekcji na trzech skalach. Darknet-53 backbone.
YOLOv4 (2020): CSPDarknet53, Mosaic augmentation, CIoU loss. Bag of Freebies + Bag of Specials.
YOLOv5 (Ultralytics, 2020): reimplementacja w PyTorch, łatwy w użyciu, popularny w przemyśle.
YOLOv8 (Ultralytics, 2023): anchor-free, decoupled head, nowoczesna architektura. Stan sztuki w kompromisie szybkość/dokładność.
YOLOv9, YOLOv10, YOLO11 (2024-2025): ciągłe ulepszenia architektury i efektywności.
YOLO w praktyce
from ultralytics import YOLO
model = YOLO('yolov8n.pt') # nano - najszybszy
results = model('zdjecie.jpg')
for result in results:
for box in result.boxes:
print(f"Klasa: {result.names[int(box.cls)]}, "
f"Pewność: {box.conf:.2f}, "
f"Pozycja: {box.xyxy[0]}")
SSD — Single Shot MultiBox Detector
SSD (Liu et al., 2016) to kolejny one-stage detector, działający na wielu skalach cech jednocześnie:
- Backbone CNN (VGG-16) generuje mapy cech
- Dodatkowe warstwy konwolucyjne o malejącym rozmiarze
- Predykcje z wielu warstw — większe mapy wykrywają małe obiekty, mniejsze — duże
SSD vs YOLO
SSD był szybszy od YOLOv1 i dokładniejszy na małych obiektach dzięki multi-scale predictions. Nowsze wersje YOLO (v3+) przejęły te idee i przewyższyły SSD.
Kluczowe koncepcje
Anchor Boxes
Predefined bounding boxes o różnych proporcjach i rozmiarach. Model nie przewiduje boxów od zera — regresuje offsety od anchorów. Anchory pokrywają różne kształty obiektów (wysoki człowiek, szeroki samochód).
Non-Maximum Suppression (NMS)
Detector generuje wiele nakładających się boxów dla tego samego obiektu. NMS:
- Sortuj boxy po confidence
- Weź box z najwyższym confidence
- Usuń wszystkie boxy z IoU > próg (np. 0.5) z wybranym
- Powtarzaj
IoU (Intersection over Union)
Metryka nakładania się boxów:
IoU = (Pole przecięcia) / (Pole sumy)
IoU = 1.0 → idealne pokrycie IoU > 0.5 → detekcja „poprawna" (standardowy próg w COCO)
Feature Pyramid Network (FPN)
Architektura łącząca cechy z wielu warstw sieci:
- Niskie warstwy → wysoka rozdzielczość, słabe cechy semantyczne → małe obiekty
- Wysokie warstwy → niska rozdzielczość, silne cechy semantyczne → duże obiekty
- FPN łączy oba → detekcja na wszystkich skalach
Metryki oceny
mAP (mean Average Precision)
Główna metryka detekcji obiektów. AP obliczane per klasa z krzywej precision-recall, potem uśredniane po klasach.
- mAP@0.5 — detekcja poprawna przy IoU > 0.5
- mAP@0.5:0.95 — uśrednione po progach IoU od 0.5 do 0.95 co 0.05 (metryka COCO — surowsza)
FPS (Frames Per Second)
Szybkość inferencji — ile obrazów model przetwarza na sekundę. Kluczowe dla real-time:
- YOLO11n: 300+ FPS na GPU
- Faster R-CNN: 10-15 FPS
- Wymaganie autonomous driving: 30+ FPS
Zastosowania
Autonomiczne pojazdy
Detekcja pieszych, pojazdów, znaków drogowych, sygnalizacji. Real-time, krytyczne bezpieczeństwo.
Bezpieczeństwo i monitoring
Detekcja osób, pojazdów, przedmiotów pozostawionych na CCTV. Automatyczne alerty.
Przemysł i kontrola jakości
Detekcja defektów na linii produkcyjnej. Kontrola wymiarów, brakujących komponentów.
Handel detaliczny
Analiza półek sklepowych (planogram compliance), automatyczne kasy (Amazon Go), liczenie klientów.
Medycyna
Detekcja zmian na zdjęciach RTG, mammogramach, dermoskopowych. Wspomaganie diagnostyki.
Rolnictwo
Detekcja chorób roślin, dojrzałości owoców, chwastów. Drony z detekcją obiektów.
Podsumowanie
Detekcja obiektów ewoluowała od wolnych dwuetapowych detectorów (R-CNN) przez przełomowe YOLO do nowoczesnych architektur real-time. YOLO (v8+) dominuje w zastosowaniach produkcyjnych dzięki kompromisowi szybkość-dokładność. Faster R-CNN pozostaje referencją dla zadań wymagających najwyższej dokładności. Wybór zależy od wymagań: szybkość (YOLO), dokładność na małych obiektach (Faster R-CNN), lub kompromis (SSD).