Objekterkennung mit YOLOv8
ultralytics YOLO, model.predict(), Bounding Boxes, Filtern nach Konfidenz, benutzerdefiniertes Training.
Objekterkennung mit YOLOv8 ist eine kostenlose Learn AI with Python-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Learn AI with Python-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Learn AI with Python-Kurs umfasst insgesamt 4 Lektionen.
Klassifikation vs. Objekterkennung
Die Bild-Klassifikation gibt an, was sich in einem Bild befindet. Die Objekterkennung geht weiter: Sie findet heraus, wo sich jedes Objekt befindet, und zeichnet Begrenzungsrahmen und Labels ein. YOLO ist der beliebteste Echtzeit-Detektor.
Was ist YOLO?
YOLO (You Only Look Once) erkennt alle Objekte in einem einzigen Vorwärtsdurchlauf und ist dadurch schnell genug für Videos. YOLOv8 von Ultralytics bietet eine übersichtliche Python-API für Inferenz und Training.
pip install ultralyticsEin vortrainiertes Modell laden
Importieren Sie YOLO und laden Sie einen Checkpoint. yolov8n.pt ist das nano-Modell: klein und schnell. Größere Varianten (s, m, l, x) tauschen Geschwindigkeit gegen Genauigkeit. Die Gewichte werden bei der ersten Verwendung automatisch heruntergeladen.
from ultralytics import YOLO
model = YOLO("yolov8n.pt")Inferenz ausführen
Rufen Sie model.predict (oder einfach model(image)) für einen Bildpfad, eine URL oder ein Array auf. Die Methode gibt eine Liste von Results zurück, jeweils ein Element pro Eingabebild.
results = model.predict("street.jpg", conf=0.5)Der conf-Schwellenwert
Der Parameter conf legt die minimale Konfidenz fest, die eine Erkennung haben muss, damit sie behalten wird. Erhöhen Sie den Wert, um unsichere Boxen zu verwerfen (weniger Fehlalarme); senken Sie ihn, um mehr Objekte zu erkennen, allerdings mit höherem Rauschrisiko.
results = model.predict("street.jpg", conf=0.25) # more detections
results = model.predict("street.jpg", conf=0.7) # only confident onesDie Boxen auslesen
Jedes Ergebnis enthält ein boxes-Objekt. boxes.xyxy liefert die Ecken des Begrenzungsrahmens als [x1, y1, x2, y2] (Pixelkoordinaten oben links und unten rechts).
r = results[0]
print(r.boxes.xyxy) # tensor of [x1, y1, x2, y2] rowsKlassen und Konfidenz
Neben den Boxen erhalten Sie boxes.cls (Klassenindizes) und boxes.conf (Konfidenzwerte). Ordnen Sie die Indizes mithilfe von model.names den Namen zu.
for box in r.boxes:
cls_id = int(box.cls)
conf = float(box.conf)
name = model.names[cls_id]
print(name, round(conf, 2))Ergebnisse visualisieren
results[0].plot() gibt ein annotiertes Bild-Array zurück, in das Boxen und Labels eingezeichnet sind und das direkt angezeigt oder gespeichert werden kann. Das eignet sich hervorragend, um Erkennungen schnell zu überprüfen.
annotated = results[0].plot()
import cv2
cv2.imwrite("output.jpg", annotated)Erkennung in Videos
Übergeben Sie eine Videodatei oder einen Webcam-Index, und YOLO verarbeitet jedes Bild. Mit stream=True werden die Ergebnisse Bild für Bild geliefert, sodass der Speicherverbrauch bei langen Videos gering bleibt.
for result in model.predict("clip.mp4", stream=True):
boxes = result.boxes
# process each frameBenutzerdefiniertes Training
Um eigene Objektklassen zu erkennen, trainieren Sie mit einem annotierten Datensatz, der durch eine YAML-Datei beschrieben wird. Rufen Sie model.train mit der Datenkonfiguration, der Epochenanzahl und der Bildgröße auf. YOLO passt die vortrainierten Gewichte an.
model = YOLO("yolov8n.pt")
model.train(
data="my_dataset.yaml",
epochs=50,
imgsz=640
)Die data-YAML
Die YAML-Datei des Datensatzes listet die Bildordner für Training und Validierung sowie die Klassennamen auf. YOLO erwartet für jedes Bild eine passende Labeldatei mit normalisierten Boxkoordinaten für jedes Objekt.
# my_dataset.yaml
# train: images/train
# val: images/val
# names:
# 0: helmet
# 1: vestKurzer Test
Testen Sie Ihr Wissen über YOLOv8.
Zusammenfassung: Objekterkennung mit YOLOv8
Sie haben einen vortrainierten Detektor mit YOLO("yolov8n.pt") geladen, model.predict(img, conf=0.5) ausgeführt und die Erkennungen aus results[0].boxes.xyxy, .cls und .conf ausgelesen. Sie haben die Ergebnisse mit results[0].plot() visualisiert und über model.train mit einer Daten-YAML-Datei auf benutzerdefinierte Klassen feinabgestimmt.
Häufig gestellte Fragen
Ist die Lektion „Objekterkennung mit YOLOv8“ kostenlos?
Ja — der vollständige Text von „Objekterkennung mit YOLOv8“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Learn AI with Python-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Learn AI with Python-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Objekterkennung mit YOLOv8“?
ultralytics YOLO, model.predict(), Bounding Boxes, Filtern nach Konfidenz, benutzerdefiniertes Training. Du übst Learn AI with Python mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Learn AI with Python zu starten?
Keine Vorkenntnisse erforderlich. Learn AI with Python auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.
Wie lange dauert die Lektion „Objekterkennung mit YOLOv8“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Learn AI with Python-Lektion Code schreiben und ausführen?
Ja. Jede Learn AI with Python-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- PyTorch-Tensoren und Autograd
- Benutzerdefinierte Datasets und DataLoader
- CNNs in PyTorch erstellen und trainieren
- Objekterkennung mit YOLOv8