Détection d’objets avec Ultralytics YOLO#
La détection d’objets 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é d’étiquettes de classe et de 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 forme exacte.
Regarder : Détection d’objets avec un modèle Ultralytics YOLO préentraîné.
Les modèles YOLO26 Detect 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 YOLO26 Detect préentraînés sur le jeu de données COCO sont présentés ci-dessous.
Les modèles sont automatiquement téléchargés depuis la dernière version d’Ultralytics lors de leur 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 |
- Valeurs mAPval calculées avec un seul modèle et une seule échelle sur le jeu de données COCO val2017.
Reproduis-les avecyolo detect val data=coco.yaml device=0. Ajoutenms=Falsepour reproduire la colonne e2e. - Vitesse moyenne calculée sur les images COCO val avec ONNX sur CPU et TensorRT10 sur un GPU NVIDIA T4.
Reproduis-la avecyolo detect val data=coco.yaml batch=1 device=0|cpu nms=False - Les valeurs Params et FLOPs correspondent aux modèles fusionnés après la fusion Conv/BatchNorm et la suppression de la branche de détection inutilisée. Les checkpoints préentraînés conservent l’architecture d’entraînement complète et peuvent afficher des valeurs plus élevées.
Consulte l’aperçu non publié de YOLO27 pour découvrir les résultats préliminaires de détection sur COCO.
Entraînement#
Entraîne YOLO26n sur le jeu de données COCO8 pendant 100 époques, avec une taille d’image de 640. Pour consulter la liste complète des arguments disponibles, voir la page Configuration.
from ultralytics import YOLO
# Charger un modèle
model = YOLO("yolo26n.yaml") # créer un nouveau modèle à partir du fichier YAML
model = YOLO("yolo26n.pt") # charger un modèle préentraîné (recommandé pour l’entraînement)
model = YOLO("yolo26n.yaml").load("yolo26n.pt") # créer à partir du fichier YAML et transférer les poids
# Entraîner le modèle
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 aussi être entraînés avec l’entraînement dans le cloud d’Ultralytics Platform.
Format du jeu de données#
Le format des jeux de données de détection YOLO est expliqué en détail dans le guide des jeux de données. Pour convertir un jeu de données COCO JSON existant au format YOLO, utilise la fonction intégrée convert_coco décrite dans le guide de conversion de 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 l’IA d’Ultralytics Platform.
Validation#
Valide la précision du modèle YOLO26n entraîné. Aucun argument n’est nécessaire, car model conserve data ainsi que les arguments de l’entraînement en tant qu’attributs du modèle : path/to/best.pt de l’exemple Train effectue la validation sur COCO8. Les poids officiels indiquent un chemin vers un jeu de données d’entraînement qui n’existe pas sur ta machine ; ils utilisent donc par défaut coco8.yaml, associé à la tâche, et affichent un avertissement. Passe data pour valider le modèle sur un autre jeu de données.
from ultralytics import YOLO
# Charger un modèle
model = YOLO("yolo26n.pt") # charger un modèle officiel
model = YOLO("path/to/best.pt") # charger un modèle personnalisé
# Valider le modèle
metrics = model.val() # aucun argument nécessaire, le jeu de données et les paramètres sont mémorisés
metrics.box.map # map50-95
metrics.box.map50 # map50
metrics.box.map75 # map75
metrics.box.maps # une liste contenant mAP50-95 pour chaque catégorie
metrics.box.image_metrics # dictionnaire de métriques par image comprenant la précision, le rappel, le F1, les TP, FP et FNPrédiction#
Utilise un modèle YOLO26n entraîné pour effectuer des prédictions sur des images.
from ultralytics import YOLO
# Charger un modèle
model = YOLO("yolo26n.pt") # charger un modèle officiel
model = YOLO("path/to/best.pt") # charger un modèle personnalisé
# Effectuer des prédictions avec le modèle
results = model("https://ultralytics.com/images/bus.jpg") # effectuer une prédiction sur une image
# Accéder aux résultats
for result in results:
xywh = result.boxes.xywh # centre-x, centre-y, largeur, hauteur
xywhn = result.boxes.xywhn # normalized
xyxy = result.boxes.xyxy # haut-gauche-x, haut-gauche-y, bas-droite-x, bas-droite-y
xyxyn = result.boxes.xyxyn # normalized
names = [result.names[cls.item()] for cls in result.boxes.cls.int()] # nom de classe de chaque boîte
confs = result.boxes.conf # score de confiance de chaque boîteConsulte les détails complets du mode predict sur la page Predict.
Sortie des résultats#
La détection d’objets renvoie un objet Results par image. Le principal champ de prédiction est result.boxes, qui contient les coordonnées des boîtes, les ID 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] bruts, avec 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-les en int pour obtenir les noms. |
Pour connaître les champs Results propres à chaque tâche, consulte la section Résultats des prédictions par tâche.
Export#
Exporter un modèle YOLO26n vers un autre format, comme ONNX, CoreML, etc.
from ultralytics import YOLO
# Charger un modèle
model = YOLO("yolo26n.pt") # charger un modèle officiel
model = YOLO("path/to/best.pt") # charger un modèle personnalisé
# Exporter le modèle
model.export(format="onnx")Les formats d’exportation YOLO26 disponibles sont indiqués dans le tableau ci-dessous. Tu peux exporter vers n’importe quel format avec l’argument format, par exemple format='onnx' ou format='engine'. Tu peux effectuer des prédictions ou valider directement les modèles exportés, par exemple avec yolo predict model=yolo26n.onnx. Des exemples d’utilisation de ton modèle s’affichent 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 |
| Apple Core AI | coreai | yolo26n.aimodel | ✅ | imgsz, batch, quantize |
| TF SavedModel | saved_model | yolo26n_saved_model/ | ✅ | imgsz, 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 |
| LiteRT | litert | yolo26n.tflite | ✅ | imgsz, quantize, batch, 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 |
| Hailo | hailo | yolo26n_hailo_model/ | ✅ | imgsz, name, quantize, data, fraction, simplify, conf, iou, device |
| Huawei Ascend | ascend | yolo26n_ascend_model/ | ✅ | imgsz, batch, name, quantize, opset, simplify, nms, device |
| AMD Xilinx | xilinx | yolo26n_xilinx_model/ | ✅ | imgsz, name, quantize, data, fraction, opset, simplify, device |
nms=None produit par défaut des sorties brutes pour la NMS externe. Définis nms=False pour sélectionner une tête disponible sans NMS ; les formats non pris en charge utilisent leur voie de sortie native. Les entrées nms ci-dessus désignent les formats qui peuvent intégrer la NMS avec nms=True.
Consulte tous les détails de export sur la page Exportation.
FAQ#
Oui. Le guide de démarrage rapide d’Ultralytics Platform présente un flux de travail dans le navigateur pour annoter des jeux de données, entraîner des modèles de détection sur des GPU dans le cloud et les déployer sur des points de terminaison d’inférence.
L’entraînement d’un modèle YOLO26 sur un jeu de données personnalisé comporte quelques étapes :
- Préparer le jeu de données : assure-toi que ton jeu de données est au format YOLO. Pour obtenir des conseils, consulte notre guide des jeux de données.
- Charger le modèle : utilise la bibliothèque Ultralytics YOLO pour charger un modèle préentraîné ou créer un nouveau modèle à partir d’un fichier YAML.
- Entraîner le modèle : exécute la méthode
traindans Python ou la commandeyolo detect traindans la CLI.
Exemplefrom ultralytics import YOLO # Charger un modèle préentraîné model = YOLO("yolo26n.pt") # Entraîner le modèle sur ton jeu de données personnalisé model.train(data="my_custom_dataset.yaml", epochs=100, imgsz=640)Pour connaître les options de configuration détaillées, consulte la page Configuration.
Ultralytics YOLO26 propose divers modèles préentraînés pour la détection d’objets, la segmentation d’instances, la segmentation sémantique, l’estimation de profondeur, la classification, l’estimation de pose et les boîtes englobantes orientées. Ces modèles sont préentraînés sur le jeu de données COCO, Cityscapes pour la segmentation sémantique, un mélange de plusieurs jeux de données pour l’estimation de profondeur, ImageNet pour la classification ou DOTAv1 pour l’OBB. Voici quelques-uns des 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 ainsi des métriques telles que mAP50-95, mAP50 et bien d’autres.Exemplefrom ultralytics import YOLO # Charger le modèle model = YOLO("path/to/best.pt") # Valider le modèle 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, tels que ONNX, TensorRT, CoreML et bien d’autres, afin d’assurer leur compatibilité avec diverses plateformes et appareils.
Exemplefrom ultralytics import YOLO # Charger le modèle model = YOLO("yolo26n.pt") # Exporter le modèle au format ONNX 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 courants comme COCO et ImageNet pour accélérer le développement.
- Grande précision : 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 sur notre blog des cas d’utilisation et des réussites qui montrent YOLO26 en action.