Czym jest widzenie komputerowe?
Widzenie komputerowe (ang. computer vision, CV) to dziedzina sztucznej inteligencji zajmująca się automatyczną ekstrakcją informacji z obrazów i wideo. Jej celem jest umożliwienie maszynom „widzenia" — rozpoznawania obiektów, scen, twarzy, tekstu, gestów i działań z danych wizualnych.
Ludzki mózg przetwarza obrazy pozornie bez wysiłku — rozpoznajemy twarz przyjaciela w tłumie, oceniamy odległość do przeszkody, odczytujemy tekst z tablicy. Dla komputera obraz to macierz pikseli — siatka liczb (wartości jasności/koloru). Zadaniem widzenia komputerowego jest przejście od pikseli do semantyki: od „piksel (127, 84, 201) na pozycji (340, 560)" do „To jest golden retriever biegnący po plaży".
Problem ten jest fundamentalnie trudny ze względu na zmienność wizualną: ten sam obiekt wygląda inaczej pod różnym kątem, oświetleniem, w częściowym przesłonięciu, w różnych skalach i kontekstach. Przełom nastąpił dzięki głębokiemu uczeniu — konwolucyjne sieci neuronowe (CNN) automatycznie uczą się hierarchii cech wizualnych z danych.
Fundamenty: od pikseli do cech
Obraz cyfrowy
Obraz cyfrowy to macierz pikseli. Obraz w skali szarości to macierz 2D (H × W), gdzie każdy piksel ma wartość 0-255 (0 = czarny, 255 = biały). Obraz kolorowy (RGB) to macierz 3D (H × W × 3) — trzy kanały: czerwony, zielony, niebieski.
Klasyczne cechy wizualne
Przed erą deep learning, widzenie komputerowe opierało się na ręcznie zaprojektowanych deskryptorach cech:
- Krawędzie (filtr Sobela, Canny'ego) — wykrywają granice obiektów
- SIFT (Scale-Invariant Feature Transform) — punkty kluczowe odporne na skalę i rotację
- HOG (Histogram of Oriented Gradients) — histogramy gradientów w blokach; skuteczne w detekcji pieszych
- Haar features — proste wzorce jasność/ciemność; podstawa detekcji twarzy Viola-Jones (2001)
Pipeline klasyczny: ekstrakcja cech → klasyfikator (SVM, Random Forest) → decyzja. Ograniczenie: cechy projektowane ręcznie, specyficzne dla zadania.
Konwolucyjne sieci neuronowe (CNN)
Przełom: ImageNet i AlexNet
W 2012 roku Alex Krizhevsky zaprezentował AlexNet — głęboką konwolucyjną sieć neuronową, która wygrała konkurs ImageNet Large Scale Visual Recognition Challenge z błędem top-5 16.4% (poprzedni rekord: 25.8%). Ten moment — zwany „Big Bang deep learning" — zrewolucjonizował widzenie komputerowe.
Warstwa konwolucyjna
Warstwa konwolucyjna stosuje filtry (kernele) — małe macierze wag (np. 3×3 lub 5×5) — przesuwane po obrazie. Każdy filtr wykrywa specyficzny wzorzec: krawędzie, tekstury, kształty. Wynik to mapa cech (feature map). Wczesne warstwy wykrywają proste cechy (krawędzie, kolory), głębsze — złożone (oczy, koła, fragmenty twarzy).
Architektura CNN
Typowa CNN składa się z:
- Warstwy konwolucyjne — ekstrakcja cech z coraz większych pól recepcyjnych
- Pooling (np. max pooling 2×2) — redukcja rozdzielczości, zwiększenie odporności na przesunięcia
- Funkcje aktywacji (ReLU) — wprowadzenie nieliniowości
- Batch Normalization — stabilizacja treningu
- Warstwy w pełni połączone (FC) — klasyfikacja na podstawie wyekstrahowanych cech
- Softmax — rozkład prawdopodobieństwa klas
Kluczowe architektury
- VGGNet (2014) — głęboka sieć z małymi filtrami 3×3; prosta, ale kosztowna
- GoogLeNet/Inception (2014) — moduły Inception łączące filtry różnych rozmiarów
- ResNet (2015) — połączenia rezydualne (skip connections) umożliwiające trening sieci 100+ warstw
- EfficientNet (2019) — systematyczne skalowanie głębokości, szerokości i rozdzielczości
- Vision Transformer (ViT) (2020) — architektura transformerowa zastosowana do obrazów (dzielenie na patche)
Główne zadania widzenia komputerowego
Klasyfikacja obrazów
Przypisanie jednej etykiety do całego obrazu (np. „kot", „samochód", „krajobraz"). To najprostsze zadanie CV, ale fundamentalne — architektury klasyfikacyjne stanowią backbone dla bardziej złożonych zadań.
Rozpoznawanie obrazów to szczegółowy temat obejmujący klasyfikację, transfer learning i fine-tuning.
Detekcja obiektów (Object Detection)
Lokalizacja i klasyfikacja wielu obiektów na obrazie. Wynik: lista bounding boxów (prostokątów) z etykietami i pewności.
Podejścia dwuetapowe:
- R-CNN, Fast R-CNN, Faster R-CNN — najpierw generowanie propozycji regionów (Region Proposal Network), potem klasyfikacja każdego regionu
Podejścia jednoetapowe:
- YOLO (You Only Look Once) — dzieli obraz na siatkę, każda komórka jednocześnie przewiduje bounding boxy i klasy. YOLOv8 to aktualnie najpopularniejsza implementacja: szybki i dokładny.
- SSD (Single Shot MultiBox Detector) — wieloskalowa detekcja w jednym przebiegu
Segmentacja semantyczna
Przypisanie klasy każdemu pikselowi obrazu. Nie rozróżnia poszczególnych instancji (dwa psy = jeden region „pies").
Architektury: U-Net (2015, medycyna), DeepLab (Google), FCN (Fully Convolutional Network). U-Net z kodowaniem i dekodowaniem (encoder-decoder) z połączeniami skip jest standardem w segmentacji medycznej.
Segmentacja instancji
Kombinacja detekcji i segmentacji — rozróżnia poszczególne obiekty tego samego typu. Mask R-CNN (2017) rozszerza Faster R-CNN o gałąź generującą maski segmentacji.
Estymacja pozy (Pose Estimation)
Wykrywanie punktów kluczowych ciała (stawy, oczy, nos) na obrazie. Zastosowania: analiza ruchu sportowców, animacja postaci, interakcja człowiek-komputer. OpenPose, MediaPipe to popularne narzędzia.
OCR (Optical Character Recognition)
Rozpoznawanie tekstu na obrazach. Współczesne systemy (Tesseract, PaddleOCR, EasyOCR) radzą sobie z tekstem drukowanym i ręcznym w wielu językach, w naturalnych scenach (znaki drogowe, tablice rejestracyjne).
Transfer learning w widzeniu komputerowym
Transfer learning to technika przenoszenia wiedzy z jednego zadania na drugie. W CV: CNN wytrenowana na ImageNet (14M obrazów, 1000 klas) uczy się ogólnych cech wizualnych (krawędzie, tekstury, kształty). Te cechy są przydatne w nowych zadaniach — nawet tak odległych jak diagnostyka medyczna.
Podejścia:
- Feature extraction — zamroź wagi CNN, użyj jako ekstraktor cech + nowy klasyfikator
- Fine-tuning — odmroź ostatnie warstwy CNN, dotrenuj na nowych danych z niskim learning rate
Transfer learning umożliwia trening na małych zbiorach (setki-tysiące obrazów), gdy od zera potrzebne byłyby miliony.
Zastosowania widzenia komputerowego
Pojazdy autonomiczne
Widzenie komputerowe to „oczy" samochodu autonomicznego. Systemy łączą:
- Detekcję obiektów (piesi, pojazdy, znaki, sygnalizacja)
- Segmentację semantyczną (jezdnia, chodnik, trawnik)
- Estymację głębi (odległość do obiektów)
- Śledzenie obiektów (tracking w wideo)
Tesla, Waymo i Mobileye stosują kombinację kamer, LiDAR i radarów z modelami CV.
Medycyna
CV rewolucjonizuje diagnostykę obrazową:
- Dermatologia — klasyfikacja zmian skórnych (melanoma vs. łagodne)
- Radiologia — detekcja guzków płucnych na CT, złamań na RTG
- Okulistyka — diagnostyka retinopatii cukrzycowej z fundoskopii
- Patologia — analiza wycinków histopatologicznych
Modele CV osiągają trafność porównywalną z ekspertami w wielu zadaniach diagnostycznych.
Przemysł i kontrola jakości
Automatyczna inspekcja wizualna: wykrywanie defektów na liniach produkcyjnych, sortowanie produktów, kontrola montażu. Systemy CV działają 24/7 z powtarzalnością nieosiągalną dla ludzkiego inspektora.
Bezpieczeństwo i monitoring
Rozpoznawanie twarzy, detekcja intruzji, analiza zachowań tłumu. Kontrowersyjne zastosowania rodzą pytania etyczne o prywatność i nadzór — EU AI Act klasyfikuje rozpoznawanie twarzy w przestrzeni publicznej jako „wysokie ryzyko".
Handel i e-commerce
Wyszukiwanie wizualne (visual search): znajdź produkt na podstawie zdjęcia. Wirtualna przymierzalnia (AR). Automatyczne tagowanie produktów.
Generowanie obrazów
Generowanie obrazów AI to osobna, dynamicznie rozwijająca się gałąź widzenia komputerowego. Modele generatywne (GAN, VAE, modele dyfuzyjne) tworzą fotorealistyczne obrazy z opisów tekstowych, szkiców lub innych obrazów.
Wyzwania i kierunki rozwoju
Aktualne wyzwania
- Adversarial attacks — minimalne perturbacje pikseli mogą oszukać CNN (zmiana jednego piksela zmienia klasyfikację)
- Domain shift — model trenowany w jednym środowisku źle działa w innym (np. dzień → noc)
- Bias i sprawiedliwość — systemy rozpoznawania twarzy gorzej działają na osobach z ciemną karnacją
- Efektywność — modele SOTA wymagają ogromnych zasobów GPU
Kierunki rozwoju
- Vision-Language Models — CLIP, GPT-4V łączą rozumienie obrazów z tekstem
- Foundation models — SAM (Segment Anything Model) — jeden model do segmentacji wszystkiego
- 3D Computer Vision — NeRF, Gaussian Splatting — rekonstrukcja scen 3D z zdjęć
- Video understanding — rozumienie akcji, zdarzeń i narracji w wideo
Podsumowanie
Widzenie komputerowe przeszło drogę od ręcznych filtrów krawędziowych do modeli rozumiejących sceny na poziomie zbliżonym do ludzkiego. CNN zrewolucjonizowały ekstrakcję cech, transformery przyniosły nowe architektury, a modele generatywne tworzą obrazy nieodróżnialne od zdjęć. CV jest dziś wszechobecne — od aparatów w telefonach po diagnostykę medyczną i autonomiczne pojazdy.