Sii Polska

SII UKRAINE

SII SWEDEN

  • Szkolenia
  • Kariera
Dołącz do nas Kontakt
Wstecz

Sii Polska

SII UKRAINE

SII SWEDEN

Wstecz

05.02.2025

Algorytm YOLO – jak stworzyć własną sieć neuronową do rozpoznawania obrazów. Część I

05.02.2025

Algorytm YOLO – jak stworzyć własną sieć neuronową do rozpoznawania obrazów. Część I

Rozpoznawanie obrazów to jeden z najważniejszych obszarów sztucznej inteligencji. Algorytm YOLO (You Only Look Once) zrewolucjonizował podejście do detekcji obiektów na zdjęciach i wideo, łącząc wysoką dokładność z szybkością działania. Jego kluczowa cecha to jednoczesne analizowanie całego obrazu w jednym przebiegu sieci neuronowej, co pozwala na detekcję obiektów w czasie rzeczywistym.

YOLO znajduje zastosowanie w takich dziedzinach jak monitorowanie uliczne, analiza obrazów medycznych czy automatyzacja w handlu. Oprócz tego, jest również powszechnie używane w projektach badawczych, dzięki łatwej implementacji i możliwości dostosowania do wielu różnych przypadków użycia.

Z artykułu dowiecie się, jak działa YOLO oraz jak podejść praktycznie do tworzenia własnej sieci neuronowej do rozpoznawania obrazów.

Jak działa YOLO?

YOLO dzieli obraz na siatkę i dla każdego pola tej siatki przewiduje:

  • pozycję obiektu (współrzędne ramki ograniczającej, tzw. bounding box),
  • klasyfikację obiektu (np. samochód, pies, rower),
  • wskaźnik pewności (confidence score), określający prawdopodobieństwo występowania obiektu w danym miejscu.

W przeciwieństwie do innych algorytmów, takich jak R-CNN czy Fast R-CNN, YOLO analizuje obraz w jednym przebiegu (forward pass), dzięki czemu działa szybciej i może być stosowane w aplikacjach czasu rzeczywistego, takich jak kamery monitoringu czy drony.

Dzięki jednemu przebiegowi obraz jest przetwarzany jako całość, co zmniejsza ryzyko pomijania obiektów lub generowania nadmiarowych ramek ograniczających. Przewidywania YOLO opierają się na regresji, a nie na generowaniu wielu kandydatów (jak w tradycyjnych algorytmach).

Działanie YOLO
Ryc. 1 Działanie YOLO

YOLO w praktyce: instalacja i konfiguracja

Rozpoczęcie pracy z YOLO wymaga przygotowania odpowiedniego środowiska. Oto kroki, jak to zrobić:

  1. Wymagania sprzętowe – YOLO wymaga karty graficznej obsługującej CUDA, np. NVIDIA GTX/RTX. Alternatywnie można korzystać z procesora, ale będzie to znacznie wolniejsze.
  2. Frameworki – najczęściej YOLO wykorzystuje biblioteki PyTorch lub TensorFlow. Popularne wersje YOLO to YOLOv5 i YOLOv8.
  3. Instalacja YOLO
# Przykład instalacji YOLOv5
git clone https://github.com/ultralytics/yolov5.git
cd yolov5
pip install -r requirements.txt
  1. Przygotowanie danych – do trenowania własnego modelu YOLO potrzebne są zdjęcia i odpowiadające im etykiety (np. w formacie COCO lub YOLO). Narzędzia takie jak LabelImg pozwalają na ręczne oznaczanie obiektów na zdjęciach. Warto zadbać o różnorodność danych, by model był bardziej odporny na zmienne warunki (np. różne oświetlenie, kąty kamery).

Tworzenie własnej sieci opartej na YOLO

Oto kroki, jakie powinieneś wykonać, jeśli chcesz zastosować YOLO do własnych danych:

  1. Pozyskanie danych:
    • skorzystaj z publicznych zbiorów danych, takich jak COCO, Pascal VOC lub Open Images,
    • przygotuj własne dane i oznacz je ręcznie.
  2. Dostosowanie YOLO do własnych potrzeb:
    • wykorzystaj transfer learning, by zacząć od wstępnie wytrenowanego modelu YOLO i dostosowania go do swojego zbioru danych,
    • skonfiguruj plik treningowy, wskazując ścieżki do zdjęć i etykiet.
  3. Trening modelu:
python train.py --img 640 --batch 16 --epochs 50 --data data.yaml --weights yolov5s.pt
    • –img – rozdzielczość obrazu,
    • –batch – liczba obrazów przetwarzanych jednocześnie,
    • –epochs – liczba epok treningowych,
    • –data – plik konfiguracyjny z informacjami o zbiorze danych,
    • –weights – wstępnie wytrenowane wagi modelu YOLOv5.
  1. Ewaluacja i testowanie – po zakończeniu treningu przetestuj model na zdjęciach testowych, aby ocenić jego jakość.
Przykładowa detekcja obrazów (źródło: Imerit)
Ryc. 2 Przykładowa detekcja obrazów (źródło: Imerit)

Optymalizacja i wdrażanie sieci

  1. Poprawa dokładności:
    • użyj augmentacji danych (np. losowe obroty, zmiany jasności),
    • dostosuj hiperparametry, takie jak współczynnik uczenia czy liczba neuronów, w warstwach sieci.
  2. Wdrażanie YOLO w systemach rzeczywistych:
    • na serwerach – uruchomienie modelu na platformach chmurowych, takich jak AWS czy Google Cloud,
    • na urządzeniach mobilnych – konwersja modelu do formatu TFLite, by działał na smartfonach,
    • na urządzeniach wbudowanych – użycie narzędzi takich jak NVIDIA TensorRT lub ONNX Runtime.

Zastosowania YOLO są praktycznie nieograniczone – można je wykorzystać do takich projektów jak rozpoznawanie obiektów w czasie rzeczywistym, zbieranie danych z dużych zbiorów zdjęć lub tworzenie botów automatyzujących różne procesy. Wszystko zależy od naszej kreatywności!

Przykład zastosowania YOLO – stworzenie własnego bota do automatyzacji procesów

YOLO można również wykorzystać do tworzenia własnych botów do rozpoznawania obiektów, które mogą automatyzować różnorodne procesy, na przykład w grach komputerowych. Dzięki temu da się nauczyć sieć rozpoznawania określonych obiektów (np. przedmiotów w grze, przeciwników czy celów) i integrować ją z oprogramowaniem. Proces ten obejmuje:

  1. Zbieranie danych z gry – zrzuty ekranu lub nagrania wideo z gry, na których widoczne są obiekty do rozpoznania.
  2. Ręczne oznaczanie danych – przy użyciu narzędzi takich jak LabelImg można oznaczyć interesujące nas obiekty.
  3. Trening sieci – przygotowana sieć może być uczona w sposób nadzorowany – dostarczamy jej obrazy z grą oraz etykiety, dzięki czemu model uczy się automatyzować procesy, takie jak wykrywanie przeciwników czy celowanie.
  4. Rozwój modelu – w miarę zdobywania nowych danych model można dalej ulepszać, co sprawia, że bot staje się coraz skuteczniejszy i bardziej precyzyjny.
Przykładowe zastosowanie w grach komputerowych – Gothic II (kod/źródło – twórcy)
Ryc. 3 Przykładowe zastosowanie w grach komputerowych – Gothic II (kod/źródło – twórcy)
Przykładowe zastosowanie w grach komputerowych – Diablo II (kod/źródło – twórcy)
Ryc. 4 Przykładowe zastosowanie w grach komputerowych – Diablo II (kod/źródło – twórcy)

Przyszłość YOLO i rozpoznawania obrazów

YOLO stale ewoluuje. Najnowsze wersje, takie jak YOLOv8, oferują jeszcze lepszą wydajność i możliwości dostosowania. W przyszłości możemy spodziewać się dalszego rozwoju tego algorytmu, w tym lepszego wsparcia dla urządzeń o ograniczonej mocy obliczeniowej czy bardziej intuicyjnych narzędzi do trenowania.

Banner AI Offer Sample Desktop - Algorytm YOLO – jak stworzyć własną sieć neuronową do rozpoznawania obrazów. Część I

Artificial Intelligence

Dostarczamy rozwiązania AI dopasowane do Twojego biznesu, które zwiększają efektywność i podnoszą produktywność Twojego zespołu.

Oferta AI

Podsumowanie

YOLO to zaawansowane narzędzie, które łączy prostotę implementacji z efektywnością. Wykorzystanie go do stworzenia własnej sieci neuronowej pozwala na budowanie rozwiązań w wielu dziedzinach życia. Dzięki szerokiej dokumentacji i wsparciu społeczności, algorytm YOLO jest idealnym punktem startowym dla każdego, kto chce rozwijać się w dziedzinie sztucznej inteligencji.

***

Jeśli interesuje Cię tematyka sztucznej inteligencji, zajrzyj koniecznie również do innych artykułów naszych specjalistów 🙂

4.9/5
Ocena
4.9/5
Avatar

O autorze

Jakub Kawalerski

Ukończył studia inżynierskie na kierunku informatyka stosowana, a swoją karierę rozpoczął w maju 2024 roku, podejmując pracę na stanowisku IT Support Specialist w Sii. W najbliższej przyszłości planuje rozwijać się jako programista. Jego zainteresowania obejmują sprzęt komputerowy, grafikę 3D, AI oraz piłkę nożną. Łączy pasję do technologii z chęcią ciągłego doskonalenia swoich umiejętności, co motywuje go do odkrywania nowych możliwości w świecie IT i realizowania coraz bardziej ambitnych projektów

Wszystkie artykuły autora

Zostaw komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Może Cię również zainteresować

ZAPISZ SIĘ I BĄDŹ NA BIEŻĄCO

Newsletter blogowy

Dołącz do nas

Sprawdź oferty pracy

Pokaż wyniki
Dołącz do nas Kontakt

This content is available only in one language version.
You will be redirected to home page.

Are you sure you want to leave this page?