TNW Amsterdam 2025® oczami CEO: przyszłość innowacyjnych technologii
🔥 Gorące wieści z Amsterdamu! Innowacje, mnóstwo dobrych rozmów... i wspomnienie o milczącym barmanie.🤷♂️💡
Po serii poprzednich artykułów wiemy już na czym polega działanie sieci neuronowych oraz czym jest klasyfikacja w zagadnieniu widzenia komputerowego. Komu ten temat nadal wydaje się obcy, zachęcamy do lektury:
https://www.innokrea.pl/sieci-neuronowe-wprowadzenie/
https://www.innokrea.pl/uczenie-maszynowe-cz-1-czy-to-sie-oplaca/
Dziś pójdziemy o krok dalej i skupimy się na temacie detekcji obiektów – na czym polega, czym różni się od “zwykłego” przydzielania klasy całemu obrazowi, do czego się przydaje oraz omówimy podejście do zastosowania jednego z algorytmów (tzw. YOLO) detekcji w praktyce.
Detekcja obiektów to proces zarówno klasyfikowania, jak i lokalizowania ich w obrazie (lub serii obrazów, np. wideo). Celem detekcji, oprócz rozpoznania co znajduje się na obrazie (np. pies, samochód, tablica rejestracyjna), jest także wskazanie, gdzie dokładnie te obiekty się znajdują dzięki określeniu otaczającej je ramki. W praktyce oznacza to, że model detekcji obiektów zwraca współrzędne prostokątnych ramek (ang. bounding boxes) oraz przypisuje odpowiednią etykietę obiektowi w niej zawartemu. Dzięki takiemu podejściu, na jednym obrazie możemy wyróżnić wiele klas obiektów, mogą się one także w ramach jednej próbki powtarzać – a nawet zawierać w sobie. Dopuszczalna jest także sytuacja, w której na obrazie nie zostanie wykryty żaden z poszukiwanych obiektów.
Na przykład: na obrazie przedstawiającym ulicę z samochodami, pieszymi i rowerzystami, model wytrenowany do rozpoznawania pojazdów i twarzy będzie w stanie wskazać, gdzie na obrazie znajdują się samochody, rowery oraz uczestnicy ruchu drogowego – niekiedy możliwe jest to nawet, jeśli twarz kierowcy samochodu będzie całkowicie zawarta wewnątrz ramki pojazdu.
Jednym z najpopularniejszych algorytmów detekcji obiektów jest YOLO (z ang. You Only Look Once). YOLO to model, który w jednym przebiegu obrazu identyfikuje obiekty oraz ich lokalizacje poprzez próbę określenia i sprawdzenia wielu bounding boxes, ocenę występowania obiektu wewnątrz nich, a następnie odrzuceniu części tych ramek, aby uniknąć duplikatów (dla jednego obiektu dążymy do wyznaczenia dokładnie jednej ramki, jak najdokładniej go opisującej).
YOLO najpierw dzieli obraz na siatkę o stałej liczbie komórek, a następnie dla każdej z tych komórek szukana jest taka ramka, która ma środek wewnątrz komórki i z największym prawdopodobieństwem reprezentuje którąś z klas. Określane są wymiary bounding box (x, y – współrzędne narożnika – oraz szerokość, wysokość), a także prawdopodobieństwo przynależności zawartego obiektu do poszczególnych klas.
YOLO działa w sposób, który różni się od tradycyjnych metod detekcji obiektów. W niektórych podejściach obraz jest dzielony na regiony, a detekcja odbywa się w każdym z tych regionów osobno, takie działanie może się również odbywać rekurencyjnie. YOLO natomiast traktuje obraz jako całość i dzięki działaniu tak jak opisano powyżej pozwala w jednym “przebiegu” ocenić zarówno klasy obiektów, jak i ich miejsce występowania.
Rys. 1: Przykładowy wynik działania detekcji obiektów za pomocą YOLO.
Za najważniejszą korzyść ze stosowania YOLO można uznać szybkość działania – ten algorytm jest jednym z najszybszych w kwestii detekcji obiektów, co czyni go odpowiednim do zastosowań w czasie rzeczywistym. YOLO osiąga też wysoką dokładność – potrafi wykrywać obiekty o różnych rozmiarach, nawet w przypadkach, gdzie obiekty częściowo zasłaniają się. Kolejną zaletą jest to, że YOLO można łatwo trenować na nowych zbiorach danych i dostosować do różnych problemów detekcyjnych.
Choć YOLO jest jednym z najchętniej wybieranych algorytmów detekcji, ma również pewne ograniczenia. Jednym z nich jest trudność w wykrywaniu bardzo małych obiektów w porównaniu do innych algorytmów (np. Faster R-CNN). Wynika to z opisanej powyżej mechaniki działania modelu – jedna komórka siatki, na którą dzieli się obraz, może wyznaczyć tylko jeden bounding box. Jeżeli zatem środek dwóch obiektów wypadnie wewnątrz jednej komórki, wyznaczony zostanie tylko jeden z tych obiektów. Ponadto, w zależności od wersji YOLO, może występować kompromis między szybkością a dokładnością detekcji – modele YOLO mają kilka generacji, a także dostępne są w różnych rozmiarach (tiny, small, medium etc.) – im nowszy i większy model, tym jego działanie bardziej precyzyjne – kosztem dłuższego czasu działania.
Dostępne jest wiele gotowych bibliotek oferujących możliwość skorzystania z już zaimplementowanych wersji modelu YOLO, a także repozytoria pretrenowanych do różnych zastosowań wag modeli. Niezależnie od wybranego zbioru klas oraz wersji sieci, proces detekcji odbywa się zazwyczaj w dość podobny sposób. Należy:
Biblioteką, która umożliwia łatwe korzystanie z YOLO jest opencv w pythonie. Przykład skryptu dostępny jest w dokumentacji pakietu [2].
Detekcja obiektów to jeden z kluczowych problemów w dziedzinie komputerowego widzenia, który pozwala systemom zrozumieć, co zawiera obraz oraz gdzie dokładnie znajdują się obiekty. W porównaniu do klasyfikacji obrazów, detekcja nie tylko przypisuje etykiety, ale również lokalizuje. Do dziś znane są algorytmy, które pozwalają wydajnie przeprowadzać rozpoznawanie obiektów na obrazach, a ich zastosowanie w podstawowych przypadkach wymaga dosłownie kilku linijek skryptu w Pythonie. To wszystko na dziś!
[1] https://medium.com/analytics-vidhya/non-max-suppression-nms-6623e6572536
[2] https://opencv-tutorial.readthedocs.io/en/latest/yolo/yolo.html
TNW Amsterdam 2025® oczami CEO: przyszłość innowacyjnych technologii
🔥 Gorące wieści z Amsterdamu! Innowacje, mnóstwo dobrych rozmów... i wspomnienie o milczącym barmanie.🤷♂️💡
InnowacjaSztuczna InteligencjaWydarzeniaZielone IT
Ekologiczne centra danych – jak wybrać dostawcę IT dbającego o planetę?
Przewodnik dla firm poszukujących partnerów IT korzystających z energooszczędnych rozwiązań.
Zielone IT
Helm po raz drugi – czyli wersjonowanie i rollbacki dla Twojej aplikacji
Opisujemy jak wykonać aktualizację i rollback w Helm, jak elastycznie nadpisywać wartości oraz odkryjemy, czym są i jak działają szablony.
AdministracjaInnowacja