Stummel Auspacken von Yolov8: Das virale Computer Vision-Meisterwerk von Ultralytics – Unite.AI
Vernetzen Sie sich mit uns

Künstliche Intelligenz

Auspacken von Yolov8: Das virale Computer Vision-Meisterwerk von Ultralytics

mm
Aktualisiert on
Blog-Beitragsbild für YOLOv8

Bisher wurde die Objekterkennung in Bildern verwendet Computer-Vision-Modelle Aufgrund der Verarbeitungszeit gab es eine große Hürde, nämlich einige Sekunden Verzögerung. Diese Verzögerung behinderte die praktische Umsetzung in Anwendungsfällen wie dem autonomen Fahren. Die Veröffentlichung des Computer-Vision-Modells YOLOv8 durch Ultralytics hat jedoch die Verarbeitungsverzögerung durchbrochen. Das neue Modell kann Objekte in Echtzeit mit beispielloser Genauigkeit und Geschwindigkeit erkennen, was es im Bereich Computer Vision beliebt macht.

Dieser Artikel untersucht YOLOv8, seine Fähigkeiten und wie Sie über das Open-Source-Github-Repository Ihre eigenen Modelle verfeinern und erstellen können.

Yolov8 erklärt

YOLOv8-Ultralytics

YOLO (Man lebt nur einmal) ist ein beliebtes Computer-Vision-Modell, das dazu in der Lage ist Erkennen und Segmentieren von Objekten in Bildern. Das Modell hat mehrere durchlaufen Updates in der Vergangenheit, wobei YOLOv8 die 8. Version markiert.

Derzeit baut YOLOv8 auf den Fähigkeiten früherer Versionen auf, indem es leistungsstarke neue Funktionen und Verbesserungen einführt. Dies ermöglicht eine Echtzeit-Objekterkennung in den Bild- und Videodaten mit erhöhter Genauigkeit und Präzision.

Von v1 bis v8: Eine kurze Geschichte

Yolov1: Die 2015 veröffentlichte erste Version von YOLO wurde als einstufiges Objekterkennungsmodell eingeführt. Zu den Funktionen gehörte, dass das Modell das gesamte Bild liest, um jeden Begrenzungsrahmen in einer Auswertung vorherzusagen.

Yolov2: Die nächste Version, die 2016 veröffentlicht wurde, zeigte eine Spitzenleistung bei Benchmarks wie PASCAL VOC und COCO und arbeitet mit hohen Geschwindigkeiten (67–40 FPS). Es konnte auch über 9000 Objektkategorien genau erkennen, selbst mit begrenzten spezifischen Erkennungsdaten.

Yolov3: Yolov2018 wurde 3 eingeführt und präsentierte neue Funktionen wie ein effektiveres Backbone-Netzwerk, mehrere Anker und räumliches Pyramiden-Pooling für die Extraktion von Merkmalen in mehreren Maßstäben.

Yolov4: Mit der Veröffentlichung von Yolov4 im Jahr 2020 wurde die neue Mosaik-Datenerweiterungstechnik eingeführt, die verbesserte Trainingsmöglichkeiten bot.

Yolov5: Yolov2021 wurde 5 veröffentlicht und fügte leistungsstarke neue Funktionen hinzu, darunter Hyperparameteroptimierung und integrierte Experimentverfolgung.

Yolov6: Mit der Veröffentlichung von Yolov6 im Jahr 2022 wurde das Modell als Open-Source-Version bereitgestellt, um eine von der Community vorangetriebene Entwicklung zu fördern. Es wurden neue Funktionen eingeführt, beispielsweise eine neue Selbstdestillationsstrategie und eine Anchor-Aided Training (AAT)-Strategie.

Yolov7: Yolov2022 wurde im selben Jahr, 7, veröffentlicht und verbesserte das bestehende Modell in Geschwindigkeit und Genauigkeit und war zum Zeitpunkt der Veröffentlichung das schnellste Objekterkennungsmodell.

Was zeichnet YOLOv8 aus?

Bild zeigt Fahrzeugerkennung

Die beispiellose Genauigkeit und hohe Geschwindigkeit von YOLOv8 heben das Computer-Vision-Modell von früheren Versionen ab. Dies ist eine bedeutende Errungenschaft, da Objekte jetzt im Gegensatz zu früheren Versionen in Echtzeit und ohne Verzögerungen erkannt werden können.

Aber darüber hinaus verfügt YOLOv8 über zahlreiche leistungsstarke Funktionen, darunter:

  1. Anpassbare Architektur: YOLOv8 bietet eine flexible Architektur, die Entwickler an ihre spezifischen Anforderungen anpassen können.
  2. Adaptives Training: Die neuen adaptiven Trainingsfähigkeiten von YOLOv8, wie z. B. Verlustfunktionsausgleich während des Trainings und Techniken, verbessern die Lernrate. Nehmen Sie Adam, der zu einer besseren Genauigkeit, schnelleren Konvergenz und insgesamt einer besseren Modellleistung beiträgt.
  3. Erweiterte Bildanalyse: Durch neue Funktionen zur semantischen Segmentierung und Klassenvorhersage kann das Modell neben seiner Kernfunktion zur Objekterkennung auch Aktivitäten, Farben, Texturen und sogar Beziehungen zwischen Objekten erkennen.
  4. Datenanreicherung: Neue Datenerweiterungstechniken helfen dabei, Aspekte von Bildvariationen wie niedrige Auflösung, Verdeckung usw. in realen Objekterkennungssituationen zu bewältigen, in denen die Bedingungen nicht ideal sind.
  5. Backbone-Unterstützung: YOLOv8 bietet Unterstützung für mehrere Backbones, darunter CSPDarknet (Standard-Backbone), EfficientNet (Lightweight-Backbone) und ResNet (klassisches Backbone), aus denen Benutzer wählen können.

Benutzer können das Backbone sogar anpassen, indem sie CSPDarknet53 durch eine andere CNN-Architektur ersetzen, die mit den Eingabe- und Ausgabedimensionen von YOLOv8 kompatibel ist.

Training und Feinabstimmung YOLOv8

Das YOLOv8-Modell kann entweder an bestimmte Anwendungsfälle angepasst oder komplett von Grund auf trainiert werden, um ein spezielles Modell zu erstellen. Weitere Einzelheiten zu den Ausbildungsabläufen finden Sie im offizielle Dokumentation.

Lassen Sie uns untersuchen, wie Sie diese beiden Vorgänge ausführen können.

Feinabstimmung von YOLOV8 mit einem benutzerdefinierten Datensatz

Der Feinabstimmungsvorgang lädt ein bereits vorhandenes Modell und verwendet seine Standardgewichte als Ausgangspunkt für das Training. Intuitiv gesprochen merkt sich das Modell sein gesamtes Vorwissen und die Feinabstimmung fügt neue Informationen hinzu, indem es die Gewichte anpasst.

Das YOLOv8-Modell kann mit Ihrem Python-Code oder über die Befehlszeilenschnittstelle (CLI) verfeinert werden.

1. Optimieren Sie ein YOLOv8-Modell mit Python

Beginnen Sie mit dem Importieren des Ultralytics-Pakets in Ihren Code. Laden Sie dann das benutzerdefinierte Modell, das Sie trainieren möchten, mit dem folgenden Code:

Installieren Sie zunächst die Ultralytics-Bibliothek aus der offiziellen Distribution.

# Installieren Sie das Ultralytics-Paket von PyPI
Pip Install Ultralytics

Führen Sie als Nächstes den folgenden Code in einer Python-Datei aus:

von Ultralytics importieren YOLO

# Laden Sie ein Modell
model = YOLO(‘yolov8n.pt')  # ein vorab trainiertes Modell laden (für das Training empfohlen)

# Trainieren Sie das Modell anhand des MS COCO-Datensatzes
Ergebnisse = model.train(data='coco128.yaml', epochs=100, imgsz=640)

Standardmäßig trainiert der Code das Modell mithilfe des COCO-Datensatzes für 100 Epochen. Sie können diese Einstellungen jedoch auch konfigurieren, um die Größe, Epoche usw. in einer YAML-Datei festzulegen.

Sobald Sie das Modell mit Ihren Einstellungen und Ihrem Datenpfad trainiert haben, überwachen Sie den Fortschritt, testen und optimieren Sie das Modell und trainieren Sie erneut, bis die gewünschten Ergebnisse erreicht sind.

2. Optimieren Sie ein YOLOv8-Modell mithilfe der CLI

Um ein Modell mithilfe der CLI zu trainieren, führen Sie das folgende Skript in der Befehlszeile aus:

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

Der CLI-Befehl lädt das vorab trainierte Modell „yolov8n.pt“ und trainiert es weiter anhand des in der Datei „coco8.yaml“ definierten Datensatzes.

Erstellen Sie Ihr eigenes Modell mit YOLOv8

Es gibt im Wesentlichen zwei Möglichkeiten, ein benutzerdefiniertes Modell mit dem YOLO-Framework zu erstellen:

  • Training von Grund auf: Mit diesem Ansatz können Sie die vordefinierte YOLOv8-Architektur verwenden, jedoch KEINE vorab trainierten Gewichte. Die Ausbildung erfolgt von Grund auf.
  • Benutzerdefinierte Architektur: Sie optimieren die Standard-YOLO-Architektur und trainieren die neue Struktur von Grund auf.

Die Implementierung dieser beiden Methoden bleibt gleich. Um ein YOLO-Modell von Grund auf zu trainieren, führen Sie den folgenden Python-Code aus:

von Ultralytics importieren YOLO

# Laden Sie ein Modell
model = YOLO(‘yolov8n.yaml')  # Erstellen Sie ein neues Modell aus YAML

# Trainieren Sie das Modell
Ergebnisse = model.train(data='coco128.yaml', epochs=100, imgsz=640)

Beachten Sie, dass wir dieses Mal eine „.yaml“-Datei anstelle einer „.pt“-Datei geladen haben. Die YAML-Datei enthält die Architekturinformationen für das Modell und es werden keine Gewichtungen geladen. Der Trainingsbefehl beginnt mit dem Training dieses Modells von Grund auf.

Um eine benutzerdefinierte Architektur zu trainieren, müssen Sie die benutzerdefinierte Struktur in einer „.yaml“-Datei ähnlich der „yolov8n.yaml“ oben definieren. Anschließend laden Sie diese Datei und trainieren das Modell mit demselben Code wie oben.

Um mehr über die Objekterkennung mithilfe von KI zu erfahren und über die neuesten KI-Trends auf dem Laufenden zu bleiben, besuchen Sie unite.ai.