KI-Modelle und Plattformen

Entpacken von Yolov8: Ultralytics’ virales Meisterwerk der Computer-Vision

mm
Unite.AI zu deinen bevorzugten Quellen auf Google hinzufÞgen
Blog featured image for YOLOv8

Bislang war die Objekterkennung in Bildern mit Hilfe von Computer-Vision-Modellen durch eine VerzÃķgerung von einigen Sekunden aufgrund der Verarbeitungszeit behindert. Diese VerzÃķgerung behinderte die praktische Anwendung in AnwendungsfÃĪllen wie dem autonomen Fahren. Die VerÃķffentlichung des YOLOv8-Computer-Vision-Modells durch Ultralytics hat jedoch die VerarbeitungsverzÃķgerung durchbrochen. Das neue Modell kann Objekte in Echtzeit mit unÞbertroffener Genauigkeit und Geschwindigkeit erkennen, was es im Computer-Vision-Bereich beliebt macht.

Dieser Artikel erforscht YOLOv8, seine FÃĪhigkeiten und wie Sie es feinjustieren und Ihre eigenen Modelle Þber sein Open-Source-GitHub-Repository erstellen kÃķnnen.

Yolov8 ErklÃĪrt

YOLOv8-Ultralytics

YOLO (You Only Live Once) ist ein beliebtes Computer-Vision-Modell, das in der Lage ist, Objekte in Bildern zu erkennen und zu segmentieren. Das Modell hat in der Vergangenheit mehrere Updates erfahren, wobei YOLOv8 die 8. Version markiert.

Wie es steht, baut YOLOv8 auf den FÃĪhigkeiten der vorherigen Versionen auf, indem es leistungsstarke neue Funktionen und Verbesserungen einfÞhrt. Dies ermÃķglicht die Echtzeit-Objekterkennung in Bild- und Videodaten mit verbesserter Genauigkeit und PrÃĪzision.

Von v1 bis v8: Eine Kurze Geschichte

Yolov1: VerÃķffentlicht im Jahr 2015, wurde die erste Version von YOLO als einstufiges Objekterkennungsmodell eingefÞhrt. Funktionen umfassten das Lesen des gesamten Bildes, um jeden Begrenzungsrahmen in einer einzigen Auswertung vorherzusagen.

Yolov2: Die nÃĪchste Version, die 2016 verÃķffentlicht wurde, zeigte eine Spitzenleistung auf Benchmarks wie PASCAL VOC und COCO und arbeitet mit hohen Geschwindigkeiten (67-40 FPS). Es konnte auch Þber 9000 Objektkategorien genau erkennen, sogar mit begrenzten spezifischen Erkennungsdaten.

Yolov3: Im Jahr 2018 verÃķffentlicht, prÃĪsentierte Yolov3 neue Funktionen wie ein effektiveres RÞckgratnetzwerk, mehrere Anker und rÃĪumliche Pyramiden-Pooling fÞr die multiscale-Feature-Extraktion.

Yolov4: Mit der VerÃķffentlichung von Yolov4 im Jahr 2020 wurde die neue Mosaik-Datenaugmentierungstechnik eingefÞhrt, die verbesserte TrainingsfÃĪhigkeiten bot.

Yolov5: Im Jahr 2021 verÃķffentlicht, fÞgte Yolov5 leistungsstarke neue Funktionen hinzu, darunter Hyperparameter-Optimierung und integrierte Experiment-Verfolgung.

Yolov6: Mit der VerÃķffentlichung von Yolov6 im Jahr 2022 wurde das Modell Open-Source, um die communitygetriebene Entwicklung zu fÃķrdern. Neue Funktionen wurden eingefÞhrt, wie eine neue Selbst-Destillationsstrategie und eine Anchor-Aided-Training-Strategie.

Yolov7: Im gleichen Jahr, 2022, verÃķffentlicht, verbesserte Yolov7 das bestehende Modell in Bezug auf Geschwindigkeit und Genauigkeit und war zum Zeitpunkt der VerÃķffentlichung das schnellste Objekterkennungsmodell.

Was Macht YOLOv8 Ausgefallen?

Bild zeigt Fahrzeugerkennung

YOLOv8s unÞbertroffene Genauigkeit und hohe Geschwindigkeit machen das Computer-Vision-Modell von den vorherigen Versionen abheben. Es ist ein bedeutendes Ergebnis, da Objekte jetzt in Echtzeit ohne VerzÃķgerung erkannt werden kÃķnnen, im Gegensatz zu den vorherigen Versionen.

Aber abgesehen davon kommt YOLOv8 mit leistungsstarken FÃĪhigkeiten, die Folgendes umfassen:

  1. Anpassbare Architektur: YOLOv8 bietet eine flexible Architektur, die Entwickler an ihre spezifischen Anforderungen anpassen kÃķnnen.
  2. Adaptive TrainingsfÃĪhigkeit: YOLOv8s neue adaptive TrainingsfÃĪhigkeiten, wie die Ausgleichung der Verlustfunktion wÃĪhrend des Trainings und Techniken, verbessern die Lernrate. Nimm Adam, das zu besserer Genauigkeit, schnellerer Konvergenz und insgesamt besserer Modellleistung beitrÃĪgt.
  3. Erweiterte Bildanalyse: Durch neue semantische Segmentierung und Klassen-Vorhersage-FÃĪhigkeiten kann das Modell AktivitÃĪten, Farbe, Textur und sogar Beziehungen zwischen Objekten erkennen, neben seiner Kern-Objekterkennungsfunktion.
  4. Datenaugmentierung: Neue Datenaugmentierungstechniken helfen, Aspekte von Bildvariationen wie niedrige AuflÃķsung, Okklusion usw. in realen Objekterkennungssituationen zu bewÃĪltigen, in denen die Bedingungen nicht ideal sind.
  5. RÞckgrat-UnterstÞtzung: YOLOv8 bietet UnterstÞtzung fÞr mehrere RÞckgrate, einschließlich CSPDarknet (Standard-RÞckgrat), EfficientNet (leichtes RÞckgrat) und ResNet (klassisches RÞckgrat), die Benutzer auswÃĪhlen kÃķnnen.

Benutzer kÃķnnen sogar das RÞckgrat anpassen, indem sie das CSPDarknet53 durch eine andere CNN-Architektur ersetzen, die mit YOLOv8s Eingabe- und Ausgabedimensionen kompatibel ist.

Trainieren und Feinjustieren von YOLOv8

Das YOLOv8-Modell kann entweder feinjustiert werden, um bestimmte AnwendungsfÃĪlle zu erfÞllen, oder von Grund auf trainiert werden, um ein spezialisiertes Modell zu erstellen. Weitere Informationen zu den Trainingsverfahren finden Sie in der offiziellen Dokumentation.

Lassen Sie uns erkunden, wie Sie beide Operationen durchfÞhren kÃķnnen.

Feinjustieren von YOLOV8 Mit einem Benutzerdefinierten Datensatz

Die Feinjustierung lÃĪdt ein vorheriges Modell und verwendet dessen Standardgewichte als Startpunkt fÞr das Training. Intuitiv gesagt, erinnert sich das Modell an all sein vorheriges Wissen, und die Feinjustierung fÞgt neue Informationen hinzu, indem es die Gewichte anpasst.

Das YOLOv8-Modell kann mit Ihrem Python-Code oder Þber die Kommandozeilen-Schnittstelle (CLI) feinjustiert werden.

1. Feinjustieren eines YOLOv8-Modells mit Python

Beginnen Sie damit, das Ultralytics-Paket in Ihren Code zu importieren. Laden Sie dann das benutzerdefinierte Modell, das Sie trainieren mÃķchten, mit dem folgenden Code:

# Installieren Sie das Ultralytics-Paket aus PyPI
pip install ultralytics

FÞhren Sie dann den folgenden Code in einer Python-Datei aus:

from ultralytics import YOLO

# Laden Sie ein Modell
model = YOLO(‘yolov8n.pt’) # Laden Sie ein vorge trainiertes Modell (empfohlen fÞr das Training)

# Trainieren Sie das Modell auf dem MS COCO-Datensatz
results = model.train(data=’coco128.yaml’, epochs=100, imgsz=640)

StandardmÃĪßig wird der Code das Modell mit dem COCO-Datensatz fÞr 100 Epochen trainieren. Sie kÃķnnen jedoch diese Einstellungen konfigurieren, um die GrÃķße, die Epochen usw. in einer YAML-Datei festzulegen.

Sobald Sie das Modell mit Ihren Einstellungen und dem Datenpfad trainiert haben, Þberwachen Sie den Fortschritt, testen und justieren Sie das Modell und trainieren es weiter, bis Sie die gewÞnschten Ergebnisse erzielt haben.

2. Feinjustieren eines YOLOv8-Modells mit der CLI

Um ein Modell mit der CLI zu trainieren, fÞhren Sie den folgenden Befehl in der Kommandozeile aus:

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

Der CLI-Befehl lÃĪdt das vorge trainierte `yolov8n.pt`-Modell und trainiert es weiter auf dem Datensatz, der in der `coco8.yaml`-Datei definiert ist.

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: Dieser Ansatz ermÃķglicht es Ihnen, die vordefinierte YOLOv8-Architektur zu verwenden, aber keine vorge trainierten Gewichte. Das Training erfolgt von Grund auf.
  • Benutzerdefinierte Architektur: Sie passen die Standard-YOLO-Architektur an und trainieren die neue Struktur von Grund auf.

Die Implementierung beider Methoden bleibt dieselbe. Um ein YOLO-Modell von Grund auf zu trainieren, fÞhren Sie den folgenden Python-Code aus:

from ultralytics import YOLO

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

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

Beachten Sie, dass diesmal eine `.yaml`-Datei anstelle einer `.pt`-Datei geladen wird. Die YAML-Datei enthÃĪlt die Architekturinformationen fÞr das Modell, und keine Gewichte werden geladen. Der Trainingsbefehl wird das Training dieses Modells von Grund auf starten.

Um eine benutzerdefinierte Architektur zu trainieren, mÞssen Sie die benutzerdefinierte Struktur in einer `.yaml`-Datei definieren, ÃĪhnlich wie die `yolov8n.yaml` oben. Dann laden Sie diese Datei und trainieren das Modell mit dem gleichen Code wie oben.

Um mehr Þber die Objekterkennung mit KI und die neuesten KI-Trends zu erfahren, besuchen Sie unite.ai.

Haziqa ist ein Data Scientist mit umfangreicher Erfahrung in der Erstellung von technischem Inhalt fÞr KI- und SaaS-Unternehmen.