Link to this sectionBoîtes englobantes orientées Détection d'objets#
La détection d'objets orientés va plus loin que la détection d'objets standard en introduisant un angle supplémentaire pour localiser les objets plus précisément dans une image.
La sortie d'un détecteur d'objets orientés est un ensemble de boîtes englobantes pivotées qui encadrent précisément les objets dans l'image, accompagnées d'étiquettes de classe et de scores de confiance pour chaque boîte. Les boîtes englobantes orientées sont particulièrement utiles lorsque les objets apparaissent sous divers angles, comme dans l'imagerie aérienne, où les boîtes englobantes traditionnelles alignées sur les axes peuvent inclure un arrière-plan inutile.
Les modèles YOLO26 OBB utilisent le suffixe -obb, par ex. yolo26n-obb.pt, et sont pré-entraînés sur DOTAv1.
Watch: How to Detect & Track Objects with Ultralytics YOLO26 Oriented Bounding Boxes (OBB) | Ship Tracking 🚢
Link to this sectionExemples visuels#
| Détection de navires utilisant OBB | Détection de véhicules utilisant OBB |
|---|---|
![]() | ![]() |
Link to this sectionModèles#
Les modèles OBB pré-entraînés YOLO26 sont présentés ici, lesquels sont pré-entraînés sur le jeu de données DOTAv1.
Les modèles se téléchargent automatiquement depuis la dernière version d'Ultralytics lors de la première utilisation.
| Modèle | taille (pixels) | mAPtest 50-95(e2e) | mAPtest 50(e2e) | Vitesse CPU ONNX (ms) | Vitesse T4 TensorRT10 (ms) | params (M) | FLOPs (B) |
|---|---|---|---|---|---|---|---|
| YOLO26n-obb | 1024 | 52.4 | 78.9 | 97.7 ± 0.9 | 2.8 ± 0.0 | 2.5 | 14.0 |
| YOLO26s-obb | 1024 | 54.8 | 80.9 | 218.0 ± 1.4 | 4.9 ± 0.1 | 9.8 | 55.1 |
| YOLO26m-obb | 1024 | 55.3 | 81.0 | 579.2 ± 3.8 | 10.2 ± 0.3 | 21.2 | 183.3 |
| YOLO26l-obb | 1024 | 56.2 | 81.6 | 735.6 ± 3.1 | 13.0 ± 0.2 | 25.6 | 230.0 |
| YOLO26x-obb | 1024 | 56.7 | 81.7 | 1485.7 ± 11.5 | 30.5 ± 0.9 | 57.6 | 516.5 |
- Les valeurs mAPtest concernent le modèle unique multi-échelle sur le jeu de données DOTAv1.
Reproduis-les avecyolo val obb data=DOTAv1.yaml device=0 split=testet soumets les résultats fusionnés à l'évaluation DOTA. - La Vitesse est calculée en moyenne sur des images de validation DOTAv1 en utilisant une instance Amazon EC2 P4d.
Reproduis-la avecyolo val obb data=DOTAv1.yaml batch=1 device=0|cpu - Les valeurs Params et FLOPs correspondent au modèle fusionné après
model.fuse(), qui combine les couches Conv et BatchNorm et, pour les modèles de bout en bout, supprime la tête de détection auxiliaire un-vers-plusieurs. Les points de contrôle pré-entraînés conservent l'architecture d'entraînement complète et peuvent afficher des nombres plus élevés.
Link to this sectionEntraîner (Train)#
Entraîne YOLO26n-obb sur le jeu de données DOTA8 pendant 100 époques avec une taille d'image de 640. Pour une liste complète des arguments disponibles, consulte la page Configuration.
Une OBB et sa rotation à 180° sont identiques, donc la rotation est définie modulo 180° et la boîte n'a pas de direction. En interne, l'angle est stocké en radians et normalisé à [-π/4, 3π/4) ([-45°, 135°)), la largeur w de la boîte est considérée comme le côté le plus long, et l'angle est défini comme l'angle horaire depuis l'axe x positif vers la direction de w. La forme [0°, 90°) est la convention régularisée de style DOTA et n'est pas appliquée lors de l'entraînement ou de l'inférence.
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-obb.pt") # build from YAML and transfer weights
# Train the model
results = model.train(data="dota8.yaml", epochs=100, imgsz=640)Watch: How to Train Ultralytics YOLO-OBB (Oriented Bounding Boxes) Models on DOTA Dataset using Ultralytics Platform
Link to this sectionFormat de jeu de données#
Le format du jeu de données OBB peut être trouvé en détail dans le Guide des jeux de données. Le format YOLO OBB désigne les boîtes englobantes par leurs quatre points d'angle avec des coordonnées normalisées entre 0 et 1, en suivant cette structure. Ultralytics Platform prend en charge l'annotation OBB avec un outil de dessin de boîte englobante orientée dédié :
class_index x1 y1 x2 y2 x3 y3 x4 y4
En interne, YOLO traite les pertes et les sorties au format xywhr, qui représente le point central (xy) de la boîte englobante, la largeur, la hauteur et la rotation.
Link to this sectionValider (Val)#
Valide la précision du modèle YOLO26n-obb entraîné sur le jeu de données DOTA8. Aucun argument n'est nécessaire car le model conserve ses data d'entraînement et ses arguments en tant qu'attributs du modèle.
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
metrics.box.image_metrics # per-image metrics dictionary with precision, recall, F1, TP, FP, and FNLink to this sectionPrédire (Predict)#
Utilise un modèle YOLO26n-obb entraîné pour exécuter des prédictions sur des images.
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 boxWatch: How to Detect and Track Storage Tanks using Ultralytics YOLO-OBB | Oriented Bounding Boxes | DOTA
Voir les détails complets du mode predict sur la page Predict.
Link to this sectionSortie des résultats#
La détection de boîte englobante orientée renvoie un objet Results par image. Le champ de prédiction principal est result.obb, qui contient les boîtes pivotées, les IDs de classe et les scores de confiance pour chaque objet détecté.
| Attribut | Type | Forme | Description |
|---|---|---|---|
result.obb | OBB | (N) | Boîtes orientées. |
result.obb.data | torch.float32 | (N,7/8) | Boîtes orientées brutes avec confiance/classe. |
result.obb.xywhr | torch.float32 | (N,5) | Boîtes orientées xywhr. |
result.obb.xyxyxyxy | torch.float32 | (N,4,2) | Quatre points d'angle. |
result.obb.conf | torch.float32 | (N,) | Scores de confiance. |
Pour les champs Results spécifiques à chaque tâche, consulte la section Predict Results by Task.
Link to this sectionExporter (Export)#
Exporte un modèle YOLO26n-obb vers un format différent comme ONNX, CoreML, etc.
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")Les formats d'exportation YOLO26-obb disponibles sont dans le tableau ci-dessous. Tu peux exporter vers n'importe quel format en utilisant l'argument format, par ex. format='onnx' ou format='engine'. Tu peux prédire ou valider directement sur les modèles exportés, par ex. yolo predict model=yolo26n-obb.onnx. Des exemples d'utilisation sont affichés pour ton modèle une fois l'exportation terminée.
| Format | Argument format | Modèle | Métadonnées | Arguments |
|---|---|---|---|---|
| PyTorch | - | yolo26n-obb.pt | ✅ | - |
| TorchScript | torchscript | yolo26n-obb.torchscript | ✅ | imgsz, quantize, dynamic, optimize, nms, batch, device |
| ONNX | onnx | yolo26n-obb.onnx | ✅ | imgsz, quantize, dynamic, simplify, opset, nms, batch, data, fraction, device |
| OpenVINO | openvino | yolo26n-obb_openvino_model/ | ✅ | imgsz, quantize, dynamic, nms, batch, data, fraction, device |
| TensorRT | engine | yolo26n-obb.engine | ✅ | imgsz, quantize, dynamic, simplify, workspace, nms, batch, data, fraction, device |
| CoreML | coreml | yolo26n-obb.mlpackage | ✅ | imgsz, dynamic, quantize, nms, batch, device |
| TF SavedModel | saved_model | yolo26n-obb_saved_model/ | ✅ | imgsz, keras, quantize, nms, batch, data, fraction, device |
| TF GraphDef | pb | yolo26n-obb.pb | ❌ | imgsz, batch, device |
| TF Edge TPU | edgetpu | yolo26n-obb_edgetpu.tflite | ✅ | imgsz, quantize, data, fraction, device |
| PaddlePaddle | paddle | yolo26n-obb_paddle_model/ | ✅ | imgsz, batch, device |
| MNN | mnn | yolo26n-obb.mnn | ✅ | imgsz, batch, quantize, device |
| NCNN | ncnn | yolo26n-obb_ncnn_model/ | ✅ | imgsz, quantize, batch, device |
| IMX500 | imx | yolo26n-obb_imx_model/ | ✅ | imgsz, quantize, data, fraction, nms, device |
| RKNN | rknn | yolo26n-obb_rknn_model/ | ✅ | imgsz, batch, name, quantize, data, fraction, device |
| ExecuTorch | executorch | yolo26n-obb_executorch_model/ | ✅ | imgsz, batch, device |
| Axelera | axelera | yolo26n-obb_axelera_model/ | ✅ | imgsz, batch, quantize, data, fraction, device |
| DEEPX | deepx | yolo26n-obb_deepx_model/ | ✅ | imgsz, quantize, data, optimize, device |
| Qualcomm QNN | qnn | yolo26n-obb_qnn.onnx | ✅ | imgsz, batch, name, quantize, data, fraction, device |
| LiteRT | litert | yolo26n-obb.tflite | ✅ | imgsz, quantize, batch, data, fraction, device |
Consulte les détails complets de export sur la page Export.
Link to this sectionApplications concrètes#
La détection OBB avec YOLO26 a de nombreuses applications pratiques dans diverses industries :
- Gestion maritime et portuaire : Détection des navires et des vaisseaux sous divers angles pour la gestion de flotte et la surveillance.
- Urbanisme : Analyse des bâtiments et des infrastructures à partir de l'imagerie aérienne.
- Agriculture : Surveillance des cultures et de l'équipement agricole à partir de séquences de drone.
- Secteur de l'énergie : Inspection des panneaux solaires et des éoliennes sous différentes orientations.
- Transport : Suivi des véhicules sur les routes et dans les parkings sous diverses perspectives.
Ces applications bénéficient de la capacité de l'OBB à s'adapter précisément aux objets sous n'importe quel angle, offrant une détection plus précise que les boîtes englobantes traditionnelles.
Link to this sectionFAQ#
Link to this sectionQue sont les boîtes englobantes orientées (OBB) et en quoi diffèrent-elles des boîtes englobantes classiques ?#
Les boîtes englobantes orientées (OBB) incluent un angle supplémentaire pour améliorer la précision de la localisation des objets dans les images. Contrairement aux boîtes englobantes classiques, qui sont des rectangles alignés sur les axes, les OBB peuvent pivoter pour mieux s'adapter à l'orientation de l'objet. Ceci est particulièrement utile pour les applications nécessitant un placement précis des objets, telles que l'imagerie aérienne ou satellite (Guide des jeux de données).
Link to this sectionComment entraîner un modèle YOLO26n-obb en utilisant un jeu de données personnalisé ?#
Pour entraîner un modèle YOLO26n-obb avec un jeu de données personnalisé, suis l'exemple ci-dessous en utilisant Python ou CLI :
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)Pour plus d'arguments d'entraînement, consulte la section Configuration.
Link to this sectionQuels jeux de données puis-je utiliser pour entraîner des modèles YOLO26-OBB ?#
Les modèles YOLO26-OBB sont pré-entraînés sur des jeux de données comme DOTAv1 mais tu peux utiliser n'importe quel jeu de données formaté pour OBB. Des informations détaillées sur les formats de jeu de données OBB peuvent être trouvées dans le Guide des jeux de données.
Link to this sectionComment puis-je exporter un modèle YOLO26-OBB vers le format ONNX ?#
L'exportation d'un modèle YOLO26-OBB vers le format ONNX est simple en utilisant soit Python soit CLI :
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-obb.pt")
# Export the model
model.export(format="onnx")Pour plus de formats d'exportation et de détails, reporte-toi à la page Export.
Link to this sectionComment valider la précision d'un modèle YOLO26n-obb ?#
Pour valider un modèle YOLO26n-obb, tu peux utiliser des commandes Python ou CLI comme indiqué ci-dessous :
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-obb.pt")
# Validate the model
metrics = model.val(data="dota8.yaml")Vois les détails complets de validation dans la section Val.

