Sztuczna inteligencja

Rozpakowywanie Yolov8: Ultralytics’ Viralny Mistrzostwo Komputerowego Widzenia

mm
Blog featured image for YOLOv8

Do tej pory wykrywanie obiektów w obrazach przy użyciu modeli komputerowego widzenia napotykało na poważną przeszkodę w postaci kilku sekund opóźnienia spowodowanego czasem przetwarzania. To opóźnienie utrudniało praktyczne zastosowanie w przypadkach takich jak samochody autonomiczne. Jednakże, wydanie modelu YOLOv8 przez Ultralytics przełamało opóźnienie przetwarzania. Nowy model może wykrywać obiekty w czasie rzeczywistym z niezrównaną dokładnością i szybkością, co sprawia, że jest popularny w przestrzeni komputerowego widzenia.

Ten artykuł opisuje YOLOv8, jego możliwości oraz jak można dostosować i utworzyć własne modele za pomocą jego otwartego repozytorium Github.

Yolov8 Wyjaśnione

YOLOv8-Ultralytics

YOLO (You Only Live Once) to popularny model komputerowego widzenia, który może wykrywać i segmentować obiekty w obrazach. Model przeszedł przez kilka aktualizacji w przeszłości, z YOLOv8 jako 8. wersją.

Jak jest, YOLOv8 buduje na możliwościach poprzednich wersji, wprowadzając nowe, potężne funkcje i ulepszenia. To umożliwia wykrywanie obiektów w czasie rzeczywistym w danych obrazowych i wideo z zwiększoną dokładnością i precyzją.

Od v1 do v8: Krótka Historia

Yolov1: Wydany w 2015 roku, pierwsza wersja YOLO została wprowadzona jako model wykrywania obiektów w jednej fazie. Funkcje obejmowały model, który czytał cały obraz, aby przewidzieć każdy prostokąt ograniczający w jednej ocenie.

Yolov2: Następna wersja, wydana w 2016 roku, osiągnęła najlepsze wyniki na benchmarkach takich jak PASCAL VOC i COCO, oraz działała z wysoką szybkością (67-40 FPS). Mogła również dokładnie wykrywać ponad 9000 kategorii obiektów, nawet z ograniczonymi danymi specyficznymi.

Yolov3: Wydany w 2018 roku, Yolov3 wprowadził nowe funkcje, takie jak bardziej efektywna sieć podstawowa, wiele kotwic i piramida przestrzenna do ekstrakcji funkcji wieloskalowych.

Yolov4: Z wydaniem Yolov4 w 2020 roku, wprowadzono nową technikę augmentacji danych Mosaic, która oferowała ulepszone możliwości szkolenia.

Yolov5: Wydany w 2021 roku, Yolov5 dodał potężne nowe funkcje, w tym optymalizację hiperparametrów i zintegrowane śledzenie eksperymentów.

Yolov6: Z wydaniem Yolov6 w 2022 roku, model został udostępniony jako otwarty, aby promować rozwój prowadzony przez społeczność. Wprowadzono nowe funkcje, takie jak nowa strategia samodystylacji i strategia szkolenia z kotwicami (AAT).

Yolov7: Wydany w tym samym roku, 2022, Yolov7 poprawił istniejący model pod względem szybkości i dokładności, i był najszybszym modelem wykrywania obiektów w momencie wydania.

Czym Wyróżnia Się YOLOv8?

Image showing vehicle detection

YOLOv8 wyróżnia się niezrównaną dokładnością i wysoką szybkością, co sprawia, że jest wyjątkowym modelem komputerowego widzenia. Jest to wielkie osiągnięcie, ponieważ obiekty mogą teraz być wykrywane w czasie rzeczywistym bez opóźnień, w przeciwieństwie do poprzednich wersji.

Ale poza tym, YOLOv8 posiada potężne możliwości, które obejmują:

  1. Architektura dostosowywalna: YOLOv8 oferuje elastyczną architekturę, którą deweloperzy mogą dostosować do swoich specyficznych wymagań.
  2. Szkolenie adaptacyjne: Nowe możliwości szkolenia adaptacyjnego YOLOv8, takie jak bilansowanie funkcji straty podczas szkolenia i techniki, poprawiają szybkość uczenia. Weźmy na przykład Adam, który przyczynia się do lepszej dokładności, szybszego zbieżności i lepszych wyników modelu.
  3. Zaawansowana analiza obrazu: Dzięki nowym możliwościom segmentacji semantycznej i predykcji klasy, model może wykrywać działania, kolor, teksturę i nawet relacje między obiektami, poza jego podstawową funkcjonalnością wykrywania obiektów.
  4. Augmentacja danych: Nowe techniki augmentacji danych pomagają rozwiązać problemy związane z wariacjami obrazu, takimi jak niska rozdzielczość, zakrycie itp., w sytuacjach wykrywania obiektów w świecie rzeczywistym, gdzie warunki nie są optymalne.
  5. Wsparcie dla sieci podstawowych: YOLOv8 oferuje wsparcie dla wielu sieci podstawowych, w tym CSPDarknet (domyślna sieć podstawowa), EfficientNet (lekka sieć podstawowa) i ResNet (klasyczna sieć podstawowa), z których użytkownicy mogą wybierać.

Użytkownicy mogą nawet dostosować sieć podstawową, zastępując CSPDarknet53 dowolną inną architekturą CNN kompatybilną z wymiarami wejścia i wyjścia YOLOv8.

Szkolenie i Dostosowywanie YOLOv8

Model YOLOv8 może być dostosowany do konkretnych przypadków użycia lub szkolony od podstaw, aby utworzyć specjalistyczny model. Więcej informacji na temat procedur szkolenia można znaleźć w oficjalnej dokumentacji.

Zobaczmy, jak można przeprowadzić obie te operacje.

Dostosowywanie YOLOV8 Z Niestandardowym Zestawem Danych

Operacja dostosowywania ładuje istniejący model i używa jego domyślnych wag jako punktu startowego dla szkolenia. Intuicyjnie mówiąc, model pamięta wszystkie swoje poprzednie wiadomości, a operacja dostosowywania dodaje nowe informacje, dostosowując wagi.

Model YOLOv8 może być dostosowany za pomocą kodu Python lub za pomocą interfejsu linii poleceń (CLI).

1. Dostosowywanie Modelu YOLOv8 Za Pomocą Pythona

Zacznij od importowania pakietu Ultralytics do swojego kodu. Następnie, ładuj niestandardowy model, który chcesz szkolić, za pomocą następującego kodu:

Najpierw zainstaluj bibliotekę Ultralytics z oficjalnej dystrybucji.

# Zainstaluj pakiet ultralytics z PyPI
pip install ultralytics

Następnie wykonaj następujący kod w pliku Python:

from ultralytics import YOLO

# Ładuj model
model = YOLO(‘yolov8n.pt’) # ładuj wstępnie wyszkolony model (zalecane do szkolenia)

# Szkol model na zestawie danych MS COCO
results = model.train(data=’coco128.yaml’, epochs=100, imgsz=640)

Domyślnie, kod będzie szkolił model za pomocą zestawu danych COCO przez 100 epok. Można jednak również skonfigurować te ustawienia, aby ustawić rozmiar, epokę itp., w pliku YAML.

Po przeszkoleniu modelu z Twoimi ustawieniami i ścieżką danych, monitoruj postępy, testuj i dostosowuj model, i kontynuuj szkolenie, aż do osiągnięcia pożądanych wyników.

2. Dostosowywanie Modelu YOLOv8 Za Pomocą CLI

Aby szkolić model za pomocą CLI, uruchom następujący skrypt w linii poleceń:

yolo train model=yolov8n.pt data=coco8.yaml epochs=100 imgsz=640

Polecenie CLI ładuje wstępnie wyszkolony model `yolov8n.pt` i szkoli go dalej na zestawie danych zdefiniowanym w pliku `coco8.yaml`.

Tworzenie Własnego Modelu Z YOLOv8

Istnieją podstawowo 2 sposoby tworzenia niestandardowego modelu z frameworkiem YOLO:

  • Szkolenie Od Podstaw: Ten podejście pozwala użyć wstępnie zdefiniowanej architektury YOLOv8, ale NIE użyje żadnych wstępnie wyszkolonych wag. Szkolenie będzie odbywać się od podstaw.
  • Niestandardowa Architektura: Można dostosować domyślną architekturę YOLO i szkolić nową strukturę od podstaw.

Implementacja obu tych metod pozostaje taka sama. Aby szkolić model YOLO od podstaw, uruchom następujący kod Python:

from ultralytics import YOLO

# Ładuj model
model = YOLO(‘yolov8n.yaml’) # zbuduj nowy model z YAML

# Szkol model
results = model.train(data=’coco128.yaml’, epochs=100, imgsz=640)

Zwróć uwagę, że tym razem ładujemy plik `.yaml` zamiast `.pt`. Plik YAML zawiera informacje o architekturze modelu, a nie ładuje wag. Polecenie szkolenia rozpocznie szkolenie tego modelu od podstaw.

Aby szkolić niestandardową architekturę, należy zdefiniować niestandardową strukturę w pliku `.yaml` podobnym do `yolov8n.yaml` powyżej. Następnie ładuj ten plik i szkol model za pomocą tego samego kodu co powyżej.

Aby dowiedzieć się więcej o wykrywaniu obiektów przy użyciu sztucznej inteligencji i pozostać na bieżąco z najnowszymi trendami AI, odwiedź unite.ai.

Haziqa jest naukowcem danych z bogatym doświadczeniem w tworzeniu treści technicznych dla firm AI i SaaS.