Détection d’objets avec Ultralytics YOLO#
La détection d’objets est une tâche qui consiste à identifier l’emplacement et la classe des objets dans une image ou un flux vidéo.
La sortie d’un détecteur d’objets est un ensemble de boîtes englobantes qui entourent les objets de l’image, accompagné des étiquettes de classe et des scores de confiance pour chaque boîte. La détection d’objets est un bon choix lorsque tu dois identifier les objets d’intérêt dans une scène, sans avoir besoin de connaître leur emplacement exact ni leur forme précise.
Watch: Object Detection with Pretrained Ultralytics YOLO Model.
Les modèles Detect YOLO26 sont les modèles YOLO26 par défaut, c’est-à-dire yolo26n.pt, et sont préentraînés sur COCO.
Modèles#
Les modèles Detect YOLO26 préentraînés sont présentés ici. Les modèles Detect, Segment et Pose sont préentraînés sur le jeu de données COCO, les modèles Semantic sont préentraînés sur Cityscapes, et les modèles Classify sont préentraînés sur le jeu de données ImageNet.
Les modèles sont téléchargés automatiquement depuis la dernière version d’Ultralytics lors de la première utilisation.
| Modèle | taille (pixels) | mAPval 50-95 | mAPval 50-95(e2e) | Vitesse CPU ONNX (ms) | Vitesse T4 TensorRT10 (ms) | paramètres (M) | FLOPs (B) |
|---|---|---|---|---|---|---|---|
| YOLO26n | 640 | 40.9 | 40.1 | 38.9 ± 0.7 | 1.7 ± 0.0 | 2.4 | 5.5 |
| YOLO26s | 640 | 48.6 | 47.8 | 87.2 ± 0.9 | 2.5 ± 0.0 | 9.5 | 20.9 |
| YOLO26m | 640 | 53.1 | 52.5 | 220.0 ± 1.4 | 4.7 ± 0.1 | 20.4 | 68.4 |
| YOLO26l | 640 | 55.0 | 54.4 | 286.2 ± 2.0 | 6.2 ± 0.2 | 24.8 | 86.8 |
| YOLO26x | 640 | 57.5 | 56.9 | 525.8 ± 4.0 | 11.8 ± 0.2 | 55.7 | 194.4 |
- mAPval values are for single-model single-scale on COCO val2017 dataset.
Reproduce byyolo val detect data=coco.yaml device=0. Addnms=Falseto reproduce the e2e column. - La vitesse est calculée comme la moyenne sur les images COCO val à l’aide d’une instance Amazon EC2 P4d.
Reproduis-la avecyolo val detect data=coco.yaml batch=1 device=0|cpu nms=False - Params and FLOPs values are for fused models after Conv/BatchNorm folding and removal of the unused detection branch. Pretrained checkpoints retain the full training architecture and may show higher counts.
Consulte l'aperçu non publié de YOLO27 (https://ultralytics-translation-0.invalid) pour les résultats préliminaires de détection COCO.
Entraîner#
Entraîne YOLO26n sur le jeu de données COCO8 pendant 100 époques avec une taille d’image de 640. Pour obtenir la liste complète des arguments disponibles, consulte la page Configuration.
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)Consulte les détails complets du mode train sur la page Train. Les modèles de détection peuvent également être entraînés avec l’entraînement cloud d’Ultralytics Platform.
Format du dataset#
Le format de jeu de données de détection YOLO se trouve en détail dans le Guide des jeux de données. Pour convertir un jeu de données JSON COCO existant au format YOLO, utilise la fonction intégrée convert_coco décrite dans le Guide COCO vers YOLO. Tu peux aussi annoter et gérer des jeux de données de détection avec les outils d'annotation assistés par IA de la plateforme Ultralytics.
Validation#
Évalue la précision du modèle YOLO26n entraîné sur le jeu de données COCO8. Aucun argument n’est nécessaire, car model conserve ses data et arguments d’entraînement comme attributs du modèle.
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 FNPrédiction#
Utilise un modèle YOLO26n entraîné pour effectuer des prédictions sur des images.
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 boxConsulte les détails complets du mode predict dans la page Prédiction.
Sortie des résultats#
La détection d’objets renvoie un objet Results par image. Le champ de prédiction principal est result.boxes, qui contient
les coordonnées des boîtes, les identifiants de classe et les scores de confiance pour chaque objet détecté.
| Attribut | Type | Forme | Description |
|---|---|---|---|
result.boxes | Boxes | (N) | Boîtes de détection. |
result.boxes.data | torch.float32 | (N,6/7) | [x1,y1,x2,y2,conf,cls] brut, avec un ID de suivi facultatif. |
result.boxes.xyxy | torch.float32 | (N,4) | Boîtes de pixels xyxy. |
result.boxes.conf | torch.float32 | (N,) | Scores de confiance. |
result.boxes.cls | torch.float32 | (N,) | ID de classe ; convertis en int pour obtenir les noms. |
Pour connaître les champs Results spécifiques à chaque tâche, consulte la section Résultats des prédictions par tâche.
Exportation#
Exporte un modèle YOLO26n vers un autre format, comme ONNX, CoreML, etc.
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")Les formats d’exportation disponibles pour YOLO26 sont indiqués dans le tableau ci-dessous. Tu peux exporter vers n’importe quel format à l’aide de l’argument format, c’est-à-dire format='onnx' ou format='engine'. Tu peux effectuer des prédictions ou des validations directement sur les modèles exportés, c’est-à-dire yolo predict model=yolo26n.onnx. Des exemples d’utilisation de ton modèle sont présentés une fois l’exportation terminée.
| Format | Argument format | Modèle | Métadonnées | Arguments |
|---|---|---|---|---|
| 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 |
| Apple Core AI | coreai | yolo26n.aimodel | ✅ | imgsz, batch, quantize |
nms=None utilise par défaut des sorties brutes pour NMS externe. Définis nms=False pour sélectionner une tête sans NMS disponible ; les formats non pris en charge reviennent à leur chemin de sortie natif. Les entrées nms ci-dessus identifient les formats capables d'intégrer NMS avec nms=True.
Consulte les détails complets du mode export dans la page Exportation.
FAQ#
Oui. Le guide de démarrage rapide d’Ultralytics Platform présente un workflow dans le navigateur pour annoter des jeux de données, entraîner des modèles de détection sur des GPU cloud et les déployer sur des points de terminaison d’inférence.
Ultralytics YOLO26 propose différents modèles préentraînés pour la détection d’objets, la segmentation d’instances, la segmentation sémantique et l’estimation de pose. Ces modèles sont préentraînés sur le jeu de données COCO, sur Cityscapes pour la segmentation sémantique ou sur ImageNet pour les tâches de classification. Voici quelques modèles disponibles :
Pour obtenir la liste détaillée et les métriques de performance, consulte la section Modèles.
Pour valider la précision de ton modèle YOLO26 entraîné, tu peux utiliser la méthode
.val()dans Python ou la commandeyolo detect valdans la CLI. Tu obtiendras des métriques telles que mAP50-95, mAP50, et bien d’autres.Exemplefrom ultralytics import YOLO # Load the model model = YOLO("path/to/best.pt") # Validate the model metrics = model.val() print(metrics.box.map) # mAP50-95Pour plus de détails sur la validation, consulte la page Val.
Ultralytics YOLO26 permet d’exporter les modèles vers différents formats, notamment ONNX, TensorRT, CoreML, et bien d’autres, afin d’assurer leur compatibilité avec différentes plateformes et différents appareils.
Exemplefrom ultralytics import YOLO # Load the model model = YOLO("yolo26n.pt") # Export the model to ONNX format model.export(format="onnx")Consulte la liste complète des formats pris en charge et les instructions sur la page Export.
Ultralytics YOLO26 est conçu pour offrir des performances de pointe en détection d’objets, segmentation d’instances, segmentation sémantique et estimation de pose. Voici quelques avantages clés :
- Modèles préentraînés : utilise des modèles préentraînés sur des jeux de données populaires comme COCO et ImageNet pour accélérer le développement.
- Précision élevée : obtient des scores mAP impressionnants, pour une détection d’objets fiable.
- Vitesse : optimisé pour l’inférence en temps réel, ce qui le rend idéal pour les applications nécessitant un traitement rapide.
- Flexibilité : exporte les modèles vers différents formats, comme ONNX et TensorRT, pour les déployer sur plusieurs plateformes.
Découvre notre blog pour consulter des cas d’utilisation et des témoignages de réussite présentant YOLO26 en action.
L’entraînement d’un modèle YOLO26 sur un jeu de données personnalisé comporte plusieurs étapes :
traindans Python ou la commandeyolo detect traindans la CLI.Pour connaître les options de configuration détaillées, consulte la page Configuration.