yolov8

Was ist YOLOv8? Der ultimative Leitfaden. [2024]

Stefan
19 Min Read
yolov8

Der Bereich Computer Vision macht mit der Veröffentlichung von YOLOv8 Fortschritte , einem Modell, das einen neuen Stand der Technik für Objekterkennung , Instanzsegmentierung und Klassifizierung definiert .

Neben Verbesserungen an der Modellarchitektur selbst führt YOLOv8 Entwicklern über ein PIP-Paket eine neue benutzerfreundliche Schnittstelle zur Verwendung des YOLO-Modells ein.

In diesem Blogbeitrag werden wir uns mit der Bedeutung von YOLOv8 in der Welt der Computervision befassen, es hinsichtlich der Genauigkeit mit ähnlichen Modellen vergleichen und die jüngsten Änderungen im YOLOv8-GitHub-Repository besprechen. Fangen wir an!

Was ist YOLOv8?

YOLOv8 ist das neueste hochmoderne YOLO-Modell, das für Aufgaben zur Objekterkennung, Bildklassifizierung und Instanzsegmentierung verwendet werden kann. YOLOv8 wurde von Ultralytics entwickelt, die auch das einflussreiche und branchenprägende YOLOv5 -Modell entwickelt haben. YOLOv8 enthält zahlreiche Änderungen und Verbesserungen in Bezug auf Architektur und Entwicklererfahrung gegenüber YOLOv5.

Zum Zeitpunkt des Schreibens dieses Beitrags wird YOLOv8 aktiv weiterentwickelt, da Ultralytics an neuen Funktionen arbeitet und auf Feedback aus der Community reagiert. Wenn Ultralytics ein Modell veröffentlicht, genießt es tatsächlich langfristigen Support: Die Organisation arbeitet mit der Community zusammen, um das Modell so gut wie möglich zu machen.

Wie aus YOLO YOLOv8 wurde

Die Modellreihe YOLO (You Only Look Once) ist in der Welt der Computervision berühmt geworden. YOLOs Ruhm ist auf seine beträchtliche Genauigkeit bei gleichzeitig geringer Modellgröße zurückzuführen. YOLO-Modelle können auf einer einzigen GPU trainiert werden, was sie für eine breite Palette von Entwicklern zugänglich macht. Anwender des maschinellen Lernens können sie kostengünstig auf Edge-Hardware oder in der Cloud einsetzen.

YOLO wurde seit seiner Einführung durch Joseph Redmond im Jahr 2015 von der Computer Vision-Community gefördert. In den frühen Tagen (Versionen 1-4) wurde YOLO in C-Code in einem von Redmond geschriebenen benutzerdefinierten Deep-Learning-Framework namens Darknet gepflegt .

Der Autor von YOLOv8, Glenn Jocher von Ultralytics, hat das YOLOv3-Repo in PyTorch (einem Deep-Learning-Framework von Facebook) beschattet. Als das Training im Shadow-Repo besser wurde, brachte Ultralytics schließlich sein eigenes Modell heraus: YOLOv5 .

YOLOv5 wurde aufgrund seiner flexiblen Python-Struktur schnell zum SOTA-Repository der Welt. Diese Struktur ermöglichte es der Community, neue Modellierungsverbesserungen zu entwickeln und diese mit ähnlichen PyTorch-Methoden schnell im gesamten Repository zu teilen.

Neben soliden Modellgrundlagen haben sich die YOLOv5-Betreuer der Unterstützung eines gesunden Software-Ökosystems rund um das Modell verschrieben. Sie beheben aktiv Probleme und erweitern die Funktionen des Repositorys entsprechend den Anforderungen der Community.

In den letzten zwei Jahren wurden verschiedene Modelle aus dem YOLOv5 PyTorch-Repository abgezweigt, darunter Scaled-YOLOv4 , YOLOR und YOLOv7 . Andere Modelle entstanden weltweit aus ihren eigenen PyTorch-basierten Implementierungen, wie YOLOX und YOLOv6 . Im Laufe der Zeit hat jedes YOLO-Modell neue SOTA-Techniken hervorgebracht, die die Genauigkeit und Effizienz des Modells weiter steigern.

In den letzten sechs Monaten hat Ultralytics an der Erforschung der neuesten SOTA-Version von YOLO, YOLOv8, gearbeitet. YOLOv8 wurde am 10. Januar 2023 eingeführt.

Warum sollte ich YOLOv8 verwenden?

Hier sind einige Hauptgründe, warum Sie YOLOv8 für Ihr nächstes Computer-Vision-Projekt in Betracht ziehen sollten:

  1. YOLOv8 weist eine hohe Genauigkeit auf, gemessen mit Microsoft COCO und Roboflow 100 .
  2. YOLOv8 bietet zahlreiche praktische Funktionen für Entwickler, von einer benutzerfreundlichen CLI bis hin zu einem gut strukturierten Python-Paket.
  3. Es gibt eine große Community rund um YOLO und eine wachsende Community rund um das YOLOv8-Modell. Das bedeutet, dass es in Computer-Vision-Kreisen viele Leute gibt, die Ihnen möglicherweise weiterhelfen können, wenn Sie Anleitung brauchen.

YOLOv8 erreicht eine hohe Genauigkeit auf COCO. Beispielsweise erreicht das YOLOv8m-Modell – das mittlere Modell – einen mAP von 50,2 % bei Messung auf COCO. Bei der Bewertung mit Roboflow 100, einem Datensatz, der speziell die Modellleistung in verschiedenen aufgabenspezifischen Domänen bewertet, schnitt YOLOv8 deutlich besser ab als YOLOv5. Weitere Informationen hierzu finden Sie in unserer Leistungsanalyse weiter unten im Artikel.

Darüber hinaus sind die benutzerfreundlichen Entwicklerfunktionen von YOLOv8 von Bedeutung. Im Gegensatz zu anderen Modellen, bei denen Aufgaben auf viele verschiedene Python-Dateien verteilt sind, die Sie ausführen können, verfügt YOLOv8 über eine CLI, die das Trainieren eines Modells intuitiver macht. Darüber hinaus gibt es ein Python-Paket, das ein nahtloseres Codierungserlebnis bietet als frühere Modelle.

Die Community rund um YOLO ist wichtig, wenn Sie überlegen, welches Modell Sie verwenden möchten. Viele Computer Vision-Experten kennen YOLO und wissen, wie es funktioniert, und es gibt online zahlreiche Anleitungen zur praktischen Verwendung von YOLO. Obwohl YOLOv8 zum Zeitpunkt des Schreibens dieses Artikels noch neu ist, gibt es online viele Anleitungen, die hilfreich sein können.

Hier sind einige unserer eigenen Lernressourcen, die Sie verwenden können, um Ihr Wissen über YOLO zu erweitern:

  • So erkennen Sie Objekte mit YOLOv8
  • So führen Sie die YOLOv8-Erkennung auf Videos aus
  • YOLOv8-Modellübersicht zu Roboflow-Modellen
  • So trainieren Sie ein YOLOv8-Modell anhand eines benutzerdefinierten Datensatzes
  • So stellen Sie ein YOLOv8-Modell auf einem Raspberry Pi bereit
  • Google Colab-Notebook zum Trainieren von YOLOv8-Objekterkennungsmodellen
  • Google Colab-Notebook zum Trainieren von YOLOv8-Klassifizierungsmodellen
  • Google Colab-Notebook zum Trainieren von YOLOv8-Segmentierungsmodellen
  • Verfolgen und Zählen von Fahrzeugen mit YOLOv8 und ByteTRACK

Lassen Sie uns einen tieferen Einblick in die Architektur gewinnen und herausfinden, was YOLOv8 von früheren YOLO-Modellen unterscheidet.

YOLOv8-Architektur: Ein tiefer Einblick

Zu YOLOv8 gibt es noch keine veröffentlichte Abhandlung, daher fehlt uns der direkte Einblick in die direkte Forschungsmethodik und die Ablationsstudien, die während seiner Erstellung durchgeführt wurden. Vor diesem Hintergrund haben wir das Repository und die verfügbaren Informationen zum Modell analysiert, um mit der Dokumentation der Neuerungen bei YOLOv8 zu beginnen.

Wenn Sie selbst einen Blick in den Code werfen möchten, sehen Sie sich das YOLOv8-Repository an und sehen Sie sich diese Codedifferenz an , um zu sehen, wie einige der Untersuchungen durchgeführt wurden.

Hier geben wir einen kurzen Überblick über wichtige Modellierungsaktualisierungen und schauen uns anschließend die Auswertung des Modells an, die für sich selbst spricht.

Das folgende Bild des GitHub-Benutzers RangeKing zeigt eine detaillierte Visualisierung der Netzwerkarchitektur.

Ankerfreie Erkennung

YOLOv8 ist ein ankerfreies Modell. Dies bedeutet, dass es direkt den Mittelpunkt eines Objekts vorhersagt, anstatt den Versatz von einer bekannten Ankerbox .

Ankerboxen waren ein notorisch schwieriger Bestandteil früherer YOLO-Modelle, da sie zwar die Verteilung der Boxen des Ziel-Benchmarks darstellen konnten, nicht jedoch die Verteilung des benutzerdefinierten Datensatzes.

Die ankerfreie Erkennung verringert die Anzahl der Boxvorhersagen, was die Non-Maximum-Suppression (NMS) beschleunigt, einen komplizierten Nachbearbeitungsschritt, der nach der Inferenz die Kandidatenerkennungen durchgeht.

Neue Faltungen

6x6Das erste Konv des Stamms wird durch ein ersetzt 3×3, der Hauptbaustein wurde geändert und C3 wurde durch C2f ersetzt . Das Modul ist in der folgenden Abbildung zusammengefasst, wobei „f“ die Anzahl der Merkmale, „e“ die Erweiterungsrate und CBS ein Block ist, der aus einem , einem und einem späteren einem besteht .ConvBatchNormSiLU

In werden C2falle Ausgaben von Bottleneck(ausgefallener Name für zwei 3×3 convsmit Restverbindungen) verkettet. Während in C3nur die Ausgabe des letzten Bottleneckverwendet wurde.

Dies Bottleneckist dasselbe wie in YOLOv5, aber die Kernelgröße der ersten Konvertierung wurde von 1x1auf geändert 3×3. Aus diesen Informationen können wir ersehen, dass YOLOv8 beginnt, zum 2015 definierten ResNet-Block zurückzukehren.

Im Nacken werden die Merkmale direkt verkettet, ohne dass die gleichen Kanaldimensionen erzwungen werden. Dies reduziert die Anzahl der Parameter und die Gesamtgröße der Tensoren.

Abschluss der Mosaikerweiterung

Die Deep-Learning-Forschung konzentriert sich tendenziell auf die Modellarchitektur, aber die Trainingsroutine in YOLOv5 und YOLOv8 ist ein wesentlicher Teil ihres Erfolgs.

YOLOv8 erweitert Bilder während des Online-Trainings. In jeder Epoche sieht das Modell eine leicht unterschiedliche Variante der Bilder, die ihm bereitgestellt wurden.

Eine dieser Erweiterungen heißt Mosaikerweiterung . Dabei werden vier Bilder zusammengefügt, wodurch das Modell gezwungen wird, Objekte an neuen Orten, in teilweiser Okklusion und gegenüber verschiedenen umgebenden Pixeln zu lernen.

Es hat sich jedoch gezeigt, dass diese Erweiterung die Leistung verschlechtert, wenn sie während der gesamten Trainingsroutine durchgeführt wird. Es ist vorteilhaft, sie für die letzten zehn Trainingsepochen auszuschalten.

Diese Art von Änderung ist ein Beispiel für die sorgfältige Aufmerksamkeit, die der YOLO-Modellierung im Laufe der Zeit im YOLOv5-Repo und in der YOLOv8_Forschung gewidmet wurde.

YOLOv8-Genauigkeitsverbesserungen

Die YOLOv8-Forschung wurde hauptsächlich durch die empirische Auswertung des COCO-Benchmarks motiviert . Während jedes Teil des Netzwerks und der Trainingsroutine optimiert wird, werden neue Experimente durchgeführt, um die Auswirkungen der Änderungen auf die COCO-Modellierung zu validieren.

YOLOv8 COCO-Genauigkeit

COCO (Common Objects in Context) ist der Industriestandard zur Bewertung von Objekterkennungsmodellen. Beim Vergleich von Modellen auf COCO betrachten wir den mAP-Wert und die FPS-Messung für die Inferenzgeschwindigkeit. Modelle sollten bei ähnlichen Inferenzgeschwindigkeiten verglichen werden.

Das folgende Bild zeigt die Genauigkeit von YOLOv8 auf COCO anhand von Daten, die vom Ultralytics-Team gesammelt und in ihrer YOLOv8_README-Datei veröffentlicht wurden :

Zum Zeitpunkt des Schreibens dieses Beitrags entspricht die Genauigkeit von YOLOv8 COCO dem neuesten Stand der Technik für Modelle mit vergleichbaren Inferenzlatenzen.

RF100 Genauigkeit

Bei Roboflow haben wir 100 Beispieldatensätze aus Roboflow Universe , einem Repository mit über 100.000 Datensätzen, entnommen, um zu bewerten, wie gut sich Modelle auf neue Domänen übertragen lassen. Unser mit Unterstützung von Intel entwickelter Benchmark ist ein Benchmark für Computer Vision-Anwender, der eine bessere Antwort auf die Frage liefern soll: „Wie gut funktioniert dieses Modell mit meinem benutzerdefinierten Datensatz?“

Wir haben YOLOv8 in unserem RF100 -Benchmark zusammen mit YOLOv5 und YOLOv7 bewertet. Die folgenden Boxplots zeigen die mAP@.50 jedes Modells.

Wir führen die kleine Version jedes Modells 100 Epochen lang aus, einmal haben wir es mit einem einzigen Seed ausgeführt, nehmen Sie dieses Ergebnis also aufgrund der Gradientenlotterie mit Vorsicht .

Das Boxplot unten zeigt, dass YOLOv8 im Vergleich zum Roboflow 100-Benchmark weniger Ausreißer und insgesamt einen besseren mAP hatte.

Das folgende Balkendiagramm zeigt den durchschnittlichen mAP@.50 für jede RF100-Kategorie. Auch hier übertrifft YOLOv8 alle vorherigen Modelle.

Im Vergleich zur YOLOv5-Auswertung erzeugt das YOLOv8_Modell bei jedem Datensatz ein ähnliches Ergebnis oder verbessert das Ergebnis erheblich.

YOLOv8-Repository und PIP-Paket

Das YOLOv8_Code-Repository ist als Ort konzipiert, an dem die Community das Modell verwenden und iterieren kann. Da wir wissen, dass dieses Modell kontinuierlich verbessert wird, können wir die anfänglichen Ergebnisse des YOLOv8_Modells als Grundlage nehmen und zukünftige Verbesserungen erwarten, wenn neue Miniversionen veröffentlicht werden.

Das beste Ergebnis, auf das wir hoffen können, ist, dass Forscher beginnen, ihre Netzwerke auf der Grundlage des Ultralytics-Repositorys zu entwickeln. Die Forschung wurde in Forks von YOLOv5 durchgeführt, aber es wäre besser, wenn die Modelle an einem Ort erstellt und schließlich in die Hauptlinie integriert würden.

YOLOv8-Repository-Layout

Die YOLOv8_Modelle verwenden ähnlichen Code wie YOLOv5 mit einer neuen Struktur, bei der die Aufgabentypen Klassifizierung, Instanzsegmentierung und Objekterkennung mit denselben Coderoutinen unterstützt werden.

Modelle werden weiterhin mit demselben YOLOv5 YAML-Format initialisiert und das Datensatzformat bleibt ebenfalls dasselbe.

YOLOv8-Befehlszeilenschnittstelle

Das ultralyticsPaket wird mit einer CLI verteilt. Dies wird vielen YOLOv5-Benutzern bekannt vorkommen, da die Kerninteraktionen Training, Erkennung und Export ebenfalls über die CLI durchgeführt wurden.

Sie können ein taskin [detect, classify, segment], ein modein [train, predict, val, export], ein modelals nicht initialisierte .yamloder als zuvor trainierte .ptDatei übergeben.

YOLOv8 Python-Paket

Zusätzlich zum verfügbaren CLI-Tool wird YOLOv8 jetzt als PIP-Paket verteilt. Dies erschwert die lokale Entwicklung etwas, eröffnet aber alle Möglichkeiten, YOLOv8 in Ihren Python-Code einzubinden.

Das YOLOv8-Annotationsformat

YOLOv8 verwendet das Annotationsformat YOLOv5 PyTorch TXT, eine modifizierte Version des Darknet-Annotationsformats. Wenn Sie Daten zur Verwendung in Ihrem YOLOv8_Modell in YOLOv5 PyTorch TXT konvertieren müssen, sind Sie bei uns richtig. Sehen Sie sich unser Roboflow Convert- Tool an, um zu erfahren, wie Sie Daten zur Verwendung in Ihrem neuen YOLOv8_Modell konvertieren.

YOLOv8-Beschriftungstool

Ultralytics, der Entwickler und Betreuer von YOLOv8, hat sich mit Roboflow zusammengetan, um ein empfohlenes Annotations- und Exporttool für Ihre YOLOv8_Projekte bereitzustellen. Mit Roboflow können Sie Daten für alle von YOLOv8 unterstützten Aufgaben annotieren – Objekterkennung, Klassifizierung und Segmentierung – und Daten exportieren, sodass Sie sie mit der YOLOv8-CLI oder dem Python-Paket verwenden können.

Erste Schritte mit YOLOv8

Um mit der Anwendung von YOLOv8 auf Ihren eigenen Anwendungsfall zu beginnen, lesen Sie unsere Anleitung zum Trainieren von YOLOv8 anhand eines benutzerdefinierten Datensatzes .

Um zu sehen, was andere mit YOLOv8 machen, durchsuchen Sie Roboflow Universe nach anderen YOLOv8_Modellen , Datensätzen und Inspirationen.

Für Praktiker, die ihr Modell in die Produktion einführen und aktive Lernstrategien verwenden, um ihr Modell kontinuierlich zu aktualisieren, haben wir einen Pfad hinzugefügt, über den Sie Ihr YOLOv8_Modell bereitstellen und es in unseren Inferenzmaschinen und zur Beschriftungsunterstützung für Ihren Datensatz verwenden können. Alternativ können Sie YOLOv8 auf dem Gerät mithilfe von Roboflow Inference bereitstellen , einem Open-Source-Inferenzserver.

Bereitstellen in Roboflow

Sobald Sie mit dem Training eines YOLOv8_Modells fertig sind, verfügen Sie über einen Satz trainierter Gewichte, die Sie mit einem gehosteten API-Endpunkt verwenden können . Sie können Ihre Modellgewichte mit der Funktion deploy() im Roboflow-Pip-Paket in Roboflow Deploy hochladen , um Ihre trainierten Gewichte in der Cloud zu verwenden.

Um Modellgewichte hochzuladen, erstellen Sie zunächst ein neues Projekt in Roboflow, laden Sie Ihren Datensatz hoch und erstellen Sie eine Projektversion. Lesen Sie unsere vollständige Anleitung zum Erstellen und Einrichten eines Projekts in Roboflow . Schreiben Sie dann ein Python-Skript mit dem folgenden Code:

Ersetzen Sie PROJECT_ID durch die ID Ihres Projekts und DATASET_VERSION durch die Versionsnummer, die Ihrem Projekt zugeordnet ist. Erfahren Sie, wie Sie Ihre Projekt-ID und die Versionsnummer Ihres Datensatzes finden.

Kurz nach dem Ausführen des obigen Codes steht Ihr Modell auf der Bereitstellungsseite Ihres Roboflow-Projekt-Dashboards zur Verwendung bereit.

Stellen Sie Ihr Modell am Rand bereit

Zusätzlich zur Verwendung der von Roboflow gehosteten API für die Bereitstellung können Sie Roboflow Inference verwenden , eine Open-Source-Inferenzlösung, die Millionen von API-Aufrufen in Produktionsumgebungen ermöglicht hat. Inference funktioniert mit CPU und GPU und bietet Ihnen sofortigen Zugriff auf eine Reihe von Geräten, vom NVIDIA Jetson über TRT-kompatible Geräte bis hin zu ARM-CPU-Geräten.

Mit Roboflow Inference können Sie Ihr Modell selbst hosten und auf dem Gerät bereitstellen.

Sie können Anwendungen mithilfe der Inference-Docker-Container oder des Pip-Pakets bereitstellen . In dieser Anleitung verwenden wir die Inference-Docker-Bereitstellungslösung. Installieren Sie zunächst Docker auf Ihrem Gerät . Lesen Sie dann die Inference-Dokumentation, um den Docker-Container für Ihr Gerät zu finden .

Für diese Anleitung verwenden wir den GPU-Docker-Container:

Dieser Befehl lädt den Docker-Container herunter und startet den Inferenzserver. Dieser Server ist unter verfügbar http://localhost:9001. Um die Inferenz auszuführen, können wir den folgenden Python-Code verwenden:

Legen Sie oben Ihre Roboflow-Arbeitsbereichs-ID, Modell-ID und Ihren API-Schlüssel fest.

  • Finden Sie Ihren Arbeitsbereich und Ihre Modell-ID
  • Finden Sie Ihren API-Schlüssel

Legen Sie außerdem die URL eines Bildes fest, für das Sie die Inferenz ausführen möchten. Dies kann eine lokale Datei sein.

Um Ihr YOLOv8_Modell kommerziell mit Inference zu nutzen, benötigen Sie eine Roboflow Enterprise-Lizenz, mit der Sie eine Pass-Through-Lizenz für die Nutzung von YOLOv8 erhalten. Eine Enterprise-Lizenz gewährt Ihnen außerdem Zugriff auf Funktionen wie erweiterte Geräteverwaltung, Multi-Modell-Container, automatische Batch-Inferenz und mehr.

Um mehr über die Bereitstellung kommerzieller Anwendungen mit Roboflow Inference zu erfahren, wenden Sie sich an das Roboflow-Vertriebsteam .

Häufig gestellte Fragen zu YOLOv8

Welche Versionen von YOLOv8 gibt es?

YOLOv8 hat zum Zeitpunkt seiner Veröffentlichung am 10. Januar 2023 fünf Versionen, von YOLOv8n (dem kleinsten Modell mit einem mAP-Score von 37,3 auf COCO) bis YOLOv8x (dem größten Modell mit einem mAP-Score von 53,9 auf COCO).

Für welche Aufgaben kann YOLOv8 verwendet werden?

YOLOv8 unterstützt standardmäßig die Objekterkennung, Instanzsegmentierung und Bildklassifizierung.

Zitieren Sie diesen Beitrag

Verwenden Sie den folgenden Eintrag, um diesen Beitrag bei Ihrer Recherche zu zitieren:

Jacob Solawetz , Francesco . (11. Januar 2023). Was ist YOLOv8? Der ultimative Leitfaden. [2024]. Roboflow-Blog: https://blog.roboflow.com/whats-new-in-yolov8/

Besprechen Sie diesen Beitrag

Wenn Sie Fragen zu diesem Blogbeitrag haben, starten Sie eine Diskussion im Roboflow-Forum .