1. Konzepte des Transfer Learning
Transfer Learning ist eine Methode des maschinellen Lernens, bei der ein vortrainiertes Modell auf eine neue, aber ähnliche Aufgabe angewendet wird. Anstatt ein Modell von Grund auf zu trainieren, nutzen wir das bereits erlernte Wissen eines Modells und passen es an unsere spezifische Aufgabe an. Dies spart Zeit und Rechenressourcen und kann die Leistung auf kleineren Datensätzen verbessern.
Beispiel: Ein vortrainiertes YOLO-Modell, das auf dem COCO-Datensatz trainiert wurde, kann auf einen benutzerdefinierten Datensatz feingetunt werden, der spezifische Objekte enthält, die im COCO-Datensatz nicht vorhanden sind.
2. Schritte zur Feinabstimmung
Die Feinabstimmung eines YOLOv8-Modells umfasst mehrere Schritte:
Vorbereitung des Datensatzes: Stellen Sie sicher, dass Ihr Datensatz richtig formatiert ist und sowohl Bilder als auch Annotationsdateien enthält, wie in der Struktur, die zuvor beschrieben wurde.
Laden des vortrainierten Modells: Laden Sie ein vortrainiertes YOLOv8-Modell.
Anpassen der Konfigurationsdatei: Passen Sie die Konfigurationsdatei an Ihre spezifischen Anforderungen an, wie die Anzahl der Klassen und die Pfade zu Ihren Trainings- und Validierungsdaten.
Trainieren des Modells: Starten Sie das Training des Modells unter Verwendung Ihrer Daten.
Beispielcode:
from ultralytics import YOLO
# Laden Sie das vortrainierte YOLOv8-Modell
model = YOLO('yolov8n.pt')
# Anpassen der Konfigurationsdatei für benutzerdefinierten Datensatz
config = {
'train': 'path/to/your/train/images',
'val': 'path/to/your/val/images',
'nc': 2, # Anzahl der Klassen
'names': ['class1', 'class2'] # Namen der Klassen
}
# Training des Modells mit dem benutzerdefinierten Datensatz
model.train(data=config, epochs=50, imgsz=640)
Ausgabe: Das Modell wird auf dem benutzerdefinierten Datensatz trainiert und Sie sehen den Fortschritt und die Metriken des Trainings.
3. Evaluierung des feinabgestimmten Modells
Nach der Feinabstimmung des Modells ist es wichtig, die Leistung des Modells zu bewerten. Dies kann durch die Berechnung von Metriken wie Präzision, Recall und mAP (mean Average Precision) erfolgen.
Beispiel zur Evaluierung des Modells:
from ultralytics import YOLO
# Laden Sie das feinabgestimmte YOLOv8-Modell
model = YOLO('path/to/your/fine-tuned/model.pt')
# Evaluieren Sie das Modell auf dem Validierungsdatensatz
results = model.val(data='path/to/your/val/images')
# Ausgabe der Metriken
print(f"mAP: {results['metrics/mAP_50_95']}")
print(f"Precision: {results['metrics/precision']}")
print(f"Recall: {results['metrics/recall']}")
Ausgabe:
Die Leistung des feinabgestimmten Modells wird mit den berechneten Metriken angezeig
mAP: 0.68
Precision: 0.75
Recall: 0.70
Fazit
Die Feinabstimmung von YOLOv8-Modellen mithilfe von Transfer Learning ist eine effektive Methode, um die Leistung auf benutzerdefinierten Datensätzen zu verbessern. Durch die Vorbereitung des Datensatzes, das Laden eines vortrainierten Modells, das Anpassen der Konfigurationsdatei und das Training sowie die Evaluierung des Modells können Sie genaue und leistungsfähige Objekterkennungsmodelle erstellen. Die oben beschriebenen Schritte und Beispiele bieten eine umfassende Anleitung zur Feinabstimmung von YOLOv8.