Zum Inhalt springen

Orientierte Bounding Boxes Objekterkennung

Die Erkennung von ausgerichteten Objekten geht einen Schritt weiter als die Standard-Objekterkennung, indem sie einen zusätzlichen Winkel einführt, um Objekte in einem Bild genauer zu lokalisieren.

Die Ausgabe eines orientierten Objektdetektors ist eine Menge von rotierten Begrenzungsrahmen, die die Objekte im Bild präzise umschließen, zusammen mit Klassenbezeichnungen und Konfidenzwerten für jeden Rahmen. Orientierte Begrenzungsrahmen sind besonders nützlich, wenn Objekte in verschiedenen Winkeln erscheinen, wie z. B. in Luftaufnahmen, wo traditionelle achsenparallele Begrenzungsrahmen unnötigen Hintergrund enthalten können.

Tipp

YOLO26 OBB-Modelle verwenden die -obb Suffix, d.h., yolo26n-obb.pt, und sind vortrainiert auf DOTAv1.



Ansehen: Objekterkennung mit Ultralytics YOLO Oriented Bounding Boxes (YOLO-OBB)

Visuelle Beispiele

Schiffserkennung mit OBBFahrzeugerkennung mit OBB
Schiffserkennung mit OBBFahrzeugerkennung mit OBB

Modelle

Hier werden vortrainierte YOLO26 OBB-Modelle gezeigt, die auf dem DOTAv1-Datensatz vortrainiert sind.

Modelle werden beim ersten Gebrauch automatisch von der neuesten Ultralytics Version heruntergeladen.

ModellGröße
(Pixel)
mAPtest
50-95(e2e)
mAPtest
50(e2e)
Geschwindigkeit
CPU ONNX
(ms)
Geschwindigkeit
T4 TensorRT10
(ms)
Parameter
(M)
FLOPs
(B)
YOLO26n-obb102452.478.997.7 ± 0.92.8 ± 0.02.514.0
YOLO26s-obb102454.880.9218.0 ± 1.44.9 ± 0.19.855.1
YOLO26m-obb102455.381.0579.2 ± 3.810.2 ± 0.321.2183.3
YOLO26l-obb102456.281.6735.6 ± 3.113.0 ± 0.225.6230.0
YOLO26x-obb102456.781.71485.7 ± 11.530.5 ± 0.957.6516.5
  • mAPtest Werte gelten für Single-Model Multiscale auf DOTAv1 Datensatz.
    Reproduzieren durch yolo val obb data=DOTAv1.yaml device=0 split=test und übermitteln zusammengeführte Ergebnisse an DOTA-Evaluierung.
  • Geschwindigkeit gemittelt über DOTAv1 val Bilder mit einem Amazon EC2 P4d Instanz.
    Reproduzieren durch yolo val obb data=DOTAv1.yaml batch=1 device=0|cpu

Trainieren

Trainieren Sie YOLO26n-obb auf dem DOTA8-Datensatz für 100 Epochen bei einer Bildgröße von 640. Eine vollständige Liste der verfügbaren Argumente finden Sie auf der Seite Konfiguration.

Hinweis

OBB-Winkel sind auf den Bereich 0–90 Grad beschränkt (90 Grad ausgeschlossen). Winkel von 90 Grad oder mehr werden nicht unterstützt.

Beispiel

from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-obb.yaml")  # build a new model from YAML
model = YOLO("yolo26n-obb.pt")  # load a pretrained model (recommended for training)
model = YOLO("yolo26n-obb.yaml").load("yolo26n.pt")  # build from YAML and transfer weights

# Train the model
results = model.train(data="dota8.yaml", epochs=100, imgsz=640)
# Build a new model from YAML and start training from scratch
yolo obb train data=dota8.yaml model=yolo26n-obb.yaml epochs=100 imgsz=640

# Start training from a pretrained *.pt model
yolo obb train data=dota8.yaml model=yolo26n-obb.pt epochs=100 imgsz=640

# Build a new model from YAML, transfer pretrained weights to it and start training
yolo obb train data=dota8.yaml model=yolo26n-obb.yaml pretrained=yolo26n-obb.pt epochs=100 imgsz=640



Ansehen: Trainieren von Ultralytics YOLO-OBB (Orientierte Bounding Boxes) Modellen auf dem DOTA-Datensatz mit der Ultralytics-Plattform

Datensatzformat

Das OBB-Datensatzformat wird im Datensatz-Leitfaden ausführlich beschrieben. Das YOLO-OBB-Format kennzeichnet Begrenzungsrahmen durch ihre vier Eckpunkte, deren Koordinaten zwischen 0 und 1 normalisiert sind, und folgt dieser Struktur:

class_index x1 y1 x2 y2 x3 y3 x4 y4

Intern verarbeitet YOLO Verluste und Ausgaben im xywhr Format, das den BegrenzungsrahmenMittelpunkt (xy), die Breite, die Höhe und die Drehung von 's darstellt.

Validieren

Trainiertes YOLO26n-obb Modell validieren Genauigkeit auf dem DOTA8-Datensatz. Es sind keine Argumente erforderlich, da die model behält sein Training data und Argumente als Modellattribute.

Beispiel

from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-obb.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom model

# Validate the model
metrics = model.val(data="dota8.yaml")  # no arguments needed, dataset and settings remembered
metrics.box.map  # map50-95(B)
metrics.box.map50  # map50(B)
metrics.box.map75  # map75(B)
metrics.box.maps  # a list containing mAP50-95(B) for each category
yolo obb val model=yolo26n-obb.pt data=dota8.yaml         # val official model
yolo obb val model=path/to/best.pt data=path/to/data.yaml # val custom model

Vorhersagen

Ein trainiertes YOLO26n-obb Modell verwenden, um Vorhersagen auf Bildern auszuführen.

Beispiel

from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-obb.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/boats.jpg")  # predict on an image

# Access the results
for result in results:
    xywhr = result.obb.xywhr  # center-x, center-y, width, height, angle (radians)
    xyxyxyxy = result.obb.xyxyxyxy  # polygon format with 4-points
    names = [result.names[cls.item()] for cls in result.obb.cls.int()]  # class name of each box
    confs = result.obb.conf  # confidence score of each box
yolo obb predict model=yolo26n-obb.pt source='https://ultralytics.com/images/boats.jpg'  # predict with official model
yolo obb predict model=path/to/best.pt source='https://ultralytics.com/images/boats.jpg' # predict with custom model



Ansehen: So erkennen und verfolgen Sie Lagertanks mit Ultralytics YOLO-OBB | Orientierte Begrenzungsrahmen | DOTA

Vollständige predict Details zum Modus finden Sie auf der Vorhersagen Seite.

Export

Ein YOLO26n-obb Modell in ein anderes Format wie ONNX, CoreML usw. exportieren.

Beispiel

from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-obb.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom-trained model

# Export the model
model.export(format="onnx")
yolo export model=yolo26n-obb.pt format=onnx  # export official model
yolo export model=path/to/best.pt format=onnx # export custom-trained model

Verfügbare YOLO26-obb Exportformate finden Sie in der folgenden Tabelle. Sie können in jedes Format exportieren, indem Sie die format Argument, d.h. format='onnx' oder format='engine'. Sie können direkt auf exportierten Modellen vorhersagen oder validieren, d.h., yolo predict model=yolo26n-obb.onnx. Anwendungsbeispiele werden nach Abschluss des Exports für Ihr Modell angezeigt.

Formatformat ArgumentModellMetadatenArgumente
PyTorch-yolo26n-obb.pt-
TorchScripttorchscriptyolo26n-obb.torchscriptimgsz, half, dynamic, optimize, nms, batch, device
ONNXonnxyolo26n-obb.onnximgsz, half, dynamic, simplify, opset, nms, batch, device
OpenVINOopenvinoyolo26n-obb_openvino_model/imgsz, half, dynamic, int8, nms, batch, data, fraction, device
TensorRTengineyolo26n-obb.engineimgsz, half, dynamic, simplify, workspace, int8, nms, batch, data, fraction, device
CoreMLcoremlyolo26n-obb.mlpackageimgsz, dynamic, half, int8, nms, batch, device
TF SavedModelsaved_modelyolo26n-obb_saved_model/imgsz, keras, int8, nms, batch, device
TF GraphDefpbyolo26n-obb.pbimgsz, batch, device
TF Litetfliteyolo26n-obb.tfliteimgsz, half, int8, nms, batch, data, fraction, device
TF Edge TPUedgetpuyolo26n-obb_edgetpu.tfliteimgsz, device
TF.jstfjsyolo26n-obb_web_model/imgsz, half, int8, nms, batch, device
PaddlePaddlepaddleyolo26n-obb_paddle_model/imgsz, batch, device
MNNmnnyolo26n-obb.mnnimgsz, batch, int8, half, device
NCNNncnnyolo26n-obb_ncnn_model/imgsz, half, batch, device
IMX500imxyolo26n-obb_imx_model/imgsz, int8, data, fraction, device
RKNNrknnyolo26n-obb_rknn_model/imgsz, batch, name, device
ExecuTorchexecutorchyolo26n-obb_executorch_model/imgsz, device
Axeleraaxelerayolo26n-obb_axelera_model/imgsz, int8, data, fraction, device

Vollständige export Details auf der Export Seite.

Anwendungen in der realen Welt

OBB detect mit YOLO26 hat zahlreiche praktische Anwendungen in verschiedenen Branchen:

  • Maritime und Hafenverwaltung: Erkennung von Schiffen und Booten in verschiedenen Winkeln für Flottenmanagement und -überwachung.
  • Stadtplanung: Analyse von Gebäuden und Infrastruktur aus Luftaufnahmen.
  • Landwirtschaft: Überwachung von Feldfrüchten und landwirtschaftlichen Geräten aus Drohnenaufnahmen.
  • Energiesektor: Inspektion von Solarmodulen und Windkraftanlagen in verschiedenen Ausrichtungen.
  • Transport: Verfolgung von Fahrzeugen auf Straßen und Parkplätzen aus verschiedenen Perspektiven.

Diese Anwendungen profitieren von der Fähigkeit von OBB, Objekte in jedem Winkel präzise anzupassen, was eine genauere Erkennung als herkömmliche Begrenzungsrahmen ermöglicht.

FAQ

Was sind Oriented Bounding Boxes (OBB) und wie unterscheiden sie sich von regulären Bounding Boxes?

Orientierte Begrenzungsrahmen (OBB) enthalten einen zusätzlichen Winkel, um die Genauigkeit der Objekterkennung in Bildern zu verbessern. Im Gegensatz zu regulären Begrenzungsrahmen, die achsenparallele Rechtecke sind, können OBBs gedreht werden, um sich besser an der Ausrichtung des Objekts anzupassen. Dies ist besonders nützlich für Anwendungen, die eine präzise Objektplatzierung erfordern, wie z. B. Luft- oder Satellitenbilder (Dataset Guide).

Wie trainiere ich ein YOLO26n-obb-Modell mit einem benutzerdefinierten Datensatz?

Um ein YOLO26n-obb Modell mit einem benutzerdefinierten Datensatz zu trainieren, folgen Sie dem untenstehenden Beispiel mithilfe von Python oder CLI:

Beispiel

from ultralytics import YOLO

# Load a pretrained model
model = YOLO("yolo26n-obb.pt")

# Train the model
results = model.train(data="path/to/custom_dataset.yaml", epochs=100, imgsz=640)
yolo obb train data=path/to/custom_dataset.yaml model=yolo26n-obb.pt epochs=100 imgsz=640

Weitere Trainingsargumente finden Sie im Abschnitt Konfiguration.

Welche Datensätze kann ich zum Trainieren von YOLO26-OBB-Modellen verwenden?

YOLO26-OBB Modelle sind auf Datensätzen wie DOTAv1 vortrainiert, aber Sie können jeden für OBB formatierten Datensatz verwenden. Detaillierte Informationen zu OBB Datensatzformaten finden Sie im Dataset Guide.

Wie kann ich ein YOLO26-OBB-Modell in das ONNX-Format exportieren?

Der Export eines YOLO26-OBB Modells in das ONNX-Format ist mithilfe von Python oder CLI unkompliziert:

Beispiel

from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-obb.pt")

# Export the model
model.export(format="onnx")
yolo export model=yolo26n-obb.pt format=onnx

Weitere Exportformate und Details finden Sie auf der Export-Seite.

Wie validiere ich die Genauigkeit eines YOLO26n-obb-Modells?

Um ein YOLO26n-obb Modell zu validieren, können Sie Python- oder CLI-Befehle verwenden, wie unten gezeigt:

Beispiel

from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-obb.pt")

# Validate the model
metrics = model.val(data="dota8.yaml")
yolo obb val model=yolo26n-obb.pt data=dota8.yaml

Vollständige Validierungsdetails finden Sie im Abschnitt Val.



📅 Erstellt vor 2 Jahren ✏️ Aktualisiert vor 2 Tagen
glenn-jocherBurhan-QY-T-GRizwanMunawarambitious-octopusLaughing-qUltralyticsAssistantpderrengerjk4eMatthewNoyceAyushExel

Kommentare