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 encadrent les objets dans l'image, accompagnées d'étiquettes de classe et de scores de confiance pour chaque boîte. La détection d'objets est un bon choix lorsque tu as besoin d'identifier des objets d'intérêt dans une scène, mais que tu n'as pas besoin de connaître exactement l'emplacement ou la forme précise de l'objet.
Watch: Object Detection with Pretrained Ultralytics YOLO Model.
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 Detect préentraînés YOLO26 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) | params (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 valeurs pour un modèle unique et une échelle unique sur le jeu de données COCO val2017.
Reproduire avecyolo val detect data=coco.yaml device=0 - Vitesse moyennée sur les images de validation COCO en utilisant une instance Amazon EC2 P4d.
Reproduire avecyolo val detect data=coco.yaml batch=1 device=0|cpu - Les valeurs de Params et FLOPs concernent le modèle fusionné après
model.fuse(), qui fusionne les couches Conv et BatchNorm et, pour les modèles end2end, supprime la tête de détection auxiliaire one-to-many. 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.
Entraîner (Train)#
Entraîne YOLO26n sur le jeu de données COCO8 pendant 100 époques à une taille d'image de 640. Pour une 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 tous les détails du mode train sur la page Train. Les modèles de détection peuvent également être entraînés avec l'entraînement cloud de la plateforme Ultralytics.
Format de jeu de données#
Le format du jeu de données de détection YOLO se trouve en détail dans le Guide des jeux de données. Pour convertir ton jeu de données existant depuis d'autres formats (comme COCO, etc.) vers le format YOLO, utilise l'outil JSON2YOLO d'Ultralytics. Tu peux également annoter et gérer les jeux de données de détection avec les outils d'annotation assistés par IA de la plateforme Ultralytics.
Valider (Val)#
Valide l'précision du modèle YOLO26n entraîné sur le jeu de données COCO8. Aucun argument n'est nécessaire car le model conserve son data d'entraînement et ses arguments en tant d'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édire (Predict)#
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 tous les détails du mode predict dans la page Prédire.
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 de la boîte, 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] brut, plus l'ID de suivi optionnel. |
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 les noms. |
Pour les champs Results spécifiques à chaque tâche, consulte la section Résultats de prédiction par tâche.
Exporter (Export)#
Exporte un modèle YOLO26n vers un format différent 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 YOLO26 disponibles se trouvent dans le tableau ci-dessous. Tu peux exporter vers n'importe quel format en utilisant l'argument format, c'est-à-dire format='onnx' ou format='engine'. Tu peux prédire ou valider directement sur les modèles exportés, c'est-à-dire yolo predict model=yolo26n.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.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 |
Consulte tous les détails de export dans la page Exporter.
FAQ#
Oui. Le démarrage rapide de la plateforme Ultralytics couvre un flux de travail basé sur 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 divers 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, Cityscapes pour la segmentation sémantique, ou ImageNet pour les tâches de classification. Voici quelques-uns des modèles disponibles :
Pour une liste détaillée et des métriques de performance, réfère-toi à la section Modèles.
Pour valider l'précision de ton modèle YOLO26 entraîné, tu peux utiliser la méthode
.val()en Python ou la commandeyolo detect valdans le CLI. Cela fournira des métriques telles que mAP50-95, mAP50, et plus encore.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, visite la page Val.
Ultralytics YOLO26 permet d'exporter des modèles vers différents formats tels que ONNX, TensorRT, CoreML et bien d'autres pour garantir la compatibilité entre différentes plates-formes et 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 pour la détection d'objets, la segmentation d'instances, la segmentation sémantique et l'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 un développement plus rapide.
- Haute précision : Atteint des scores mAP impressionnants, garantissant 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 tes modèles vers divers formats comme ONNX et TensorRT pour un déploiement sur plusieurs plateformes.
Explore notre Blog pour découvrir des cas d'utilisation et des témoignages de réussite mettant en vedette YOLO26 en action.
L'entraînement d'un modèle YOLO26 sur un jeu de données personnalisé implique quelques étapes :
trainen Python ou la commandeyolo detect traindans le CLI.Pour des options de configuration détaillées, visite la page Configuration.