Object Detection with Ultralytics YOLO#
Object detection ist eine Aufgabe, die das Identifizieren der Position und der Klasse von Objekten in einem Bild oder Videostream umfasst.
Das Ergebnis eines Objektdetektors ist eine Reihe von Begrenzungsrahmen, die die Objekte im Bild umschließen, zusammen mit Klassenbeschriftungen und Konfidenzwerten für jeden Rahmen. Objekterkennung ist eine gute Wahl, wenn du Objekte von Interesse in einer Szene identifizieren musst, aber nicht genau wissen musst, wo sich das Objekt befindet oder welche genaue Form es hat.
Watch: Object Detection with Pretrained Ultralytics YOLO Model.
YOLO26 Detect-Modelle sind die Standard-YOLO26-Modelle, d. h. yolo26n.pt, und sind auf COCO vorab trainiert.
Models#
Hier werden vorab trainierte YOLO26 Detect-Modelle gezeigt. Detect-, Segment- und Pose-Modelle sind auf dem COCO-Datensatz vorab trainiert, Semantic-Modelle sind auf Cityscapes vorab trainiert und Classify-Modelle sind auf dem ImageNet-Datensatz vorab trainiert.
Modelle werden bei der ersten Verwendung automatisch vom neuesten Ultralytics-Release heruntergeladen.
| Modell | Größe (Pixel) | mAPval 50-95 | mAPval 50-95(e2e) | Geschwindigkeit CPU ONNX (ms) | Geschwindigkeit T4 TensorRT10 (ms) | Parameter (M) | FLOPs (B) |
|---|---|---|---|---|---|---|---|
| YOLO26n | 640 | 40.9 | 40.1 | 38.9 ± 0.7 | 1.7 ± 0.0 | 2.4 | 5.4 |
| YOLO26s | 640 | 48.6 | 47.8 | 87.2 ± 0.9 | 2.5 ± 0.0 | 9.5 | 20.7 |
| YOLO26m | 640 | 53.1 | 52.5 | 220.0 ± 1.4 | 4.7 ± 0.1 | 20.4 | 68.2 |
| YOLO26l | 640 | 55.0 | 54.4 | 286.2 ± 2.0 | 6.2 ± 0.2 | 24.8 | 86.4 |
| YOLO26x | 640 | 57.5 | 56.9 | 525.8 ± 4.0 | 11.8 ± 0.2 | 55.7 | 193.9 |
- mAPval-Werte gelten für ein einzelnes Modell im Einzelskalierungsmodus auf dem COCO val2017-Datensatz.
Reproduzieren mityolo val detect data=coco.yaml device=0 - Geschwindigkeit gemittelt über COCO-val-Bilder unter Verwendung einer Amazon EC2 P4d-Instanz.
Reproduzieren mityolo val detect data=coco.yaml batch=1 device=0|cpu - Params- und FLOPs-Werte gelten für das fusionierte Modell nach
model.fuse(), welches Conv- und BatchNorm-Schichten zusammenführt und bei End-to-End-Modellen den zusätzlichen One-to-Many-Erkennungskopf entfernt. Vorab trainierte Checkpoints behalten die vollständige Trainingsarchitektur bei und können höhere Anzahlen aufweisen.
Trainieren#
Trainiere YOLO26n auf dem COCO8-Datensatz für 100 Epochen bei einer Bildgröße von 640. Eine vollständige Liste der verfügbaren Argumente findest du auf der Konfigurations-Seite.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n.yaml") # build a new model from YAML
model = YOLO("yolo26n.pt") # load a pretrained model (recommended for training)
model = YOLO("yolo26n.yaml").load("yolo26n.pt") # build from YAML and transfer weights
# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)Siehe vollständige train-Modusdetails auf der Train-Seite. Erkennungsmodelle können auch mit dem Ultralytics Platform Cloud-Training trainiert werden.
Datensatzformat#
Das YOLO-Erkennungsdatenformat wird im Detail im Dataset Guide beschrieben. Um deinen bestehenden Datensatz aus anderen Formaten (wie COCO usw.) in das YOLO-Format zu konvertieren, verwende bitte das JSON2YOLO-Tool von Ultralytics. Du kannst Erkennungsdatensätze auch mit den KI-gestützten Annotationstools der Ultralytics Platform annotieren und verwalten.
Validieren#
Validiere die Genauigkeit des trainierten YOLO26n-Modells auf dem COCO8-Datensatz. Es sind keine Argumente erforderlich, da model seine Trainings-[data] und Argumente als Modelleigenschaften beibehält.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n.pt") # load an official model
model = YOLO("path/to/best.pt") # load a custom model
# Validate the model
metrics = model.val() # no arguments needed, dataset and settings remembered
metrics.box.map # map50-95
metrics.box.map50 # map50
metrics.box.map75 # map75
metrics.box.maps # a list containing mAP50-95 for each category
metrics.box.image_metrics # per-image metrics dictionary with precision, recall, F1, TP, FP, and FNVorhersagen#
Verwende ein trainiertes YOLO26n-Modell, um Vorhersagen auf Bildern auszuführen.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n.pt") # load an official model
model = YOLO("path/to/best.pt") # load a custom model
# Predict with the model
results = model("https://ultralytics.com/images/bus.jpg") # predict on an image
# Access the results
for result in results:
xywh = result.boxes.xywh # center-x, center-y, width, height
xywhn = result.boxes.xywhn # normalized
xyxy = result.boxes.xyxy # top-left-x, top-left-y, bottom-right-x, bottom-right-y
xyxyn = result.boxes.xyxyn # normalized
names = [result.names[cls.item()] for cls in result.boxes.cls.int()] # class name of each box
confs = result.boxes.conf # confidence score of each boxWeitere Details zum predict-Modus findest du auf der Predict-Seite.
Ergebnisausgabe#
Die Objekterkennung gibt ein Results-Objekt pro Bild zurück. Das primäre Vorhersagefeld ist result.boxes, welches
Box-Koordinaten, Klassen-IDs und Konfidenzwerte für jedes erkannte Objekt enthält.
| Attribut | Typ | Form | Beschreibung |
|---|---|---|---|
result.boxes | Boxes | (N) | Erkennungsboxen. |
result.boxes.data | torch.float32 | (N,6/7) | Rohe [x1,y1,x2,y2,conf,cls] plus optionale Track-ID. |
result.boxes.xyxy | torch.float32 | (N,4) | xyxy-Pixelboxen. |
result.boxes.conf | torch.float32 | (N,) | Konfidenzwerte. |
result.boxes.cls | torch.float32 | (N,) | Klassen-IDs; zu int casten für Namen. |
Aufgabenspezifische Results-Felder für alle Aufgaben findest du im Abschnitt Predict Results by Task.
Exportieren#
Exportiere ein YOLO26n-Modell in ein anderes Format wie ONNX, CoreML usw.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n.pt") # load an official model
model = YOLO("path/to/best.pt") # load a custom-trained model
# Export the model
model.export(format="onnx")Die verfügbaren YOLO26-Exportformate sind in der Tabelle unten aufgeführt. Du kannst mit dem Argument format, d. h. format='onnx' oder format='engine', in jedes Format exportieren. Du kannst direkt mit exportierten Modellen vorhersagen oder validieren, d. h. yolo predict model=yolo26n.onnx. Nach Abschluss des Exports werden Nutzungsbeispiele für dein Modell angezeigt.
| Format | format-Argument | Modell | Metadaten | Argumente |
|---|---|---|---|---|
| PyTorch | - | yolo26n.pt | ✅ | - |
| TorchScript | torchscript | yolo26n.torchscript | ✅ | imgsz, quantize, dynamic, nms, batch, device |
| ONNX | onnx | yolo26n.onnx | ✅ | imgsz, quantize, dynamic, simplify, opset, nms, batch, data, fraction, device |
| OpenVINO | openvino | yolo26n_openvino_model/ | ✅ | imgsz, quantize, dynamic, nms, batch, data, fraction, device |
| TensorRT | engine | yolo26n.engine | ✅ | imgsz, quantize, dynamic, simplify, opset, workspace, nms, batch, data, fraction, device |
| CoreML | coreml | yolo26n.mlpackage | ✅ | imgsz, dynamic, quantize, nms, batch, device |
| TF SavedModel | saved_model | yolo26n_saved_model/ | ✅ | imgsz, keras, quantize, opset, nms, batch, data, fraction, device |
| TF GraphDef | pb | yolo26n.pb | ❌ | imgsz, opset, batch, device |
| TF Edge TPU | edgetpu | yolo26n_edgetpu.tflite | ✅ | imgsz, quantize, opset, data, fraction, device |
| PaddlePaddle | paddle | yolo26n_paddle_model/ | ✅ | imgsz, batch, device |
| MNN | mnn | yolo26n.mnn | ✅ | imgsz, batch, dynamic, quantize, simplify, opset, nms, device |
| NCNN | ncnn | yolo26n_ncnn_model/ | ✅ | imgsz, quantize, batch, device |
| IMX500 | imx | yolo26n_imx_model/ | ✅ | imgsz, quantize, data, fraction, nms, device |
| RKNN | rknn | yolo26n_rknn_model/ | ✅ | imgsz, batch, name, quantize, simplify, opset, data, fraction, device |
| ExecuTorch | executorch | yolo26n_executorch_model/ | ✅ | imgsz, batch, device |
| Axelera | axelera | yolo26n_axelera_model/ | ✅ | imgsz, batch, quantize, data, fraction, device |
| DEEPX | deepx | yolo26n_deepx_model/ | ✅ | imgsz, quantize, simplify, opset, data, optimize, device |
| Qualcomm QNN | qnn | yolo26n_qnn.onnx | ✅ | imgsz, batch, name, quantize, simplify, opset, data, fraction, device |
| LiteRT | litert | yolo26n.tflite | ✅ | imgsz, quantize, batch, data, fraction, device |
| Hailo | hailo | yolo26n_hailo_model/ | ✅ | imgsz, name, quantize, data, fraction, simplify, conf, iou |
| Huawei Ascend | ascend | yolo26n_ascend_model/ | ✅ | imgsz, batch, name, quantize, opset, simplify, nms |
Weitere Details zum export-Modus findest du auf der Export-Seite.
FAQ#
Ja. Der Ultralytics Platform Schnellstart behandelt einen browserbasierten Workflow zum Annotieren von Datensätzen, Trainieren von Erkennungsmodellen auf Cloud-GPUs und deren Bereitstellung für Inferenz-Endpunkte.
Das Training eines YOLO26-Modells auf einem benutzerdefinierten Datensatz umfasst einige Schritte:
- Datensatz vorbereiten: Stelle sicher, dass dein Datensatz im YOLO-Format vorliegt. Hinweise dazu findest du in unserem Dataset Guide.
- Modell laden: Verwende die Ultralytics YOLO-Bibliothek, um ein vortrainiertes Modell zu laden oder ein neues Modell aus einer YAML-Datei zu erstellen.
- Modell trainieren: Führe die Methode
trainin Python oder den Befehlyolo detect trainin der CLI aus.
Beispielfrom ultralytics import YOLO # Load a pretrained model model = YOLO("yolo26n.pt") # Train the model on your custom dataset model.train(data="my_custom_dataset.yaml", epochs=100, imgsz=640)Detaillierte Konfigurationsoptionen findest du auf der Konfigurations-Seite.
Ultralytics YOLO26 bietet verschiedene vortrainierte Modelle für Objekterkennung, Instanzsegmentierung, semantische Segmentierung und Posenschätzung. Diese Modelle sind auf dem COCO-Datensatz, Cityscapes für semantische Segmentierung oder ImageNet für Klassifizierungsaufgaben vortrainiert. Hier sind einige der verfügbaren Modelle:
Eine detaillierte Liste und Leistungsmetriken findest du im Abschnitt Modelle.
Um die Genauigkeit deines trainierten YOLO26-Modells zu validieren, kannst du die Methode
.val()in Python oder den Befehlyolo detect valin der CLI verwenden. Dies liefert Metriken wie mAP50-95, mAP50 und mehr.Beispielfrom ultralytics import YOLO # Load the model model = YOLO("path/to/best.pt") # Validate the model metrics = model.val() print(metrics.box.map) # mAP50-95Weitere Details zur Validierung findest du auf der Val-Seite.
Ultralytics YOLO26 ermöglicht den Export von Modellen in verschiedene Formate wie ONNX, TensorRT, CoreML und weitere, um die Kompatibilität über verschiedene Plattformen und Geräte hinweg sicherzustellen.
Beispielfrom ultralytics import YOLO # Load the model model = YOLO("yolo26n.pt") # Export the model to ONNX format model.export(format="onnx")Die vollständige Liste der unterstützten Formate und Anweisungen findest du auf der Export-Seite.
Ultralytics YOLO26 wurde entwickelt, um erstklassige Leistung für Objekterkennung, Instanzsegmentierung, semantische Segmentierung und Posenschätzung zu bieten. Hier sind einige Hauptvorteile:
- Vortrainierte Modelle: Nutze Modelle, die auf beliebten Datensätzen wie COCO und ImageNet vortrainiert sind, für eine schnellere Entwicklung.
- Hohe Genauigkeit: Erreicht beeindruckende mAP-Werte und sorgt für eine zuverlässige Objekterkennung.
- Geschwindigkeit: Optimiert für Echtzeit-Inferenz, wodurch es ideal für Anwendungen ist, die eine schnelle Verarbeitung erfordern.
- Flexibilität: Exportiere Modelle in verschiedene Formate wie ONNX und TensorRT für die Bereitstellung auf mehreren Plattformen.
Entdecke unseren Blog für Anwendungsfälle und Erfolgsgeschichten, die YOLO26 im Einsatz zeigen.