Link to this sectionSegmentation d'instance#
La segmentation d'instance va plus loin que la détection d'objets et implique d'identifier des objets individuels dans une image et de les segmenter du reste de l'image.
Le résultat d'un modèle de segmentation d'instance est un ensemble de masques ou de contours qui délimitent chaque objet dans l'image, accompagnés d'étiquettes de classe et de scores de confiance pour chaque objet. La segmentation d'instance est utile lorsque tu as besoin de savoir non seulement où se trouvent les objets dans une image, mais aussi quelle est leur forme exacte.
Watch: Run Segmentation with Pretrained Ultralytics YOLO Model in Python.
Les modèles YOLO26 Segment utilisent le suffixe -seg, par ex. yolo26n-seg.pt, et sont pré-entraînés sur COCO.
Link to this sectionModèles#
Les modèles Segment pré-entraînés de 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 se téléchargent automatiquement depuis la dernière version d'Ultralytics lors de la première utilisation.
| Modèle | taille (pixels) | mAPbox 50-95(e2e) | mAPmask 50-95(e2e) | Vitesse CPU ONNX (ms) | Vitesse T4 TensorRT10 (ms) | params (M) | FLOPs (B) |
|---|---|---|---|---|---|---|---|
| YOLO26n-seg | 640 | 39.6 | 33.9 | 53.3 ± 0.5 | 2.1 ± 0.0 | 2.7 | 9.1 |
| YOLO26s-seg | 640 | 47.3 | 40.0 | 118.4 ± 0.9 | 3.3 ± 0.0 | 10.4 | 34.2 |
| YOLO26m-seg | 640 | 52,5 | 44.1 | 328.2 ± 2.4 | 6.7 ± 0.1 | 23.6 | 121.5 |
| YOLO26l-seg | 640 | 54,4 | 45.5 | 387.0 ± 3.7 | 8.0 ± 0.1 | 28.0 | 139.8 |
| YOLO26x-seg | 640 | 56.5 | 47.0 | 787.0 ± 6.8 | 16.4 ± 0.1 | 62.8 | 313.5 |
- Les valeurs mAPval concernent un modèle unique à une seule échelle sur le jeu de données COCO val2017.
Reproduis cela avecyolo val segment data=coco.yaml device=0 - Vitesse calculée en moyenne sur les images de validation COCO en utilisant une instance Amazon EC2 P4d.
Reproduis cela avecyolo val segment data=coco.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-seg sur le jeu de données COCO8-seg pendant 100 epochs avec 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-seg.yaml") # build a new model from YAML
model = YOLO("yolo26n-seg.pt") # load a pretrained model (recommended for training)
model = YOLO("yolo26n-seg.yaml").load("yolo26n-seg.pt") # build from YAML and transfer weights
# Train the model
results = model.train(data="coco8-seg.yaml", epochs=100, imgsz=640)Découvre tous les détails du mode train sur la page Train. Les modèles de segmentation peuvent également être entraînés sur des GPU cloud via Ultralytics Platform.
Link to this sectionFormat de jeu de données#
Le format du jeu de données de segmentation YOLO est détaillé 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 créer des masques de segmentation sur Ultralytics Platform en utilisant des outils de polygone et l'annotation intelligente basée sur SAM.
Link to this sectionValider (Val)#
Valide la précision d'un modèle YOLO26n-seg entraîné sur le jeu de données COCO8-seg. 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-seg.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(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 for det with precision, recall, F1, TP, FP, and FN
metrics.seg.map # map50-95(M)
metrics.seg.map50 # map50(M)
metrics.seg.map75 # map75(M)
metrics.seg.maps # a list containing mAP50-95(M) for each category
metrics.seg.image_metrics # per-image metrics dictionary for seg with precision, recall, F1, TP, FP, and FNLink to this sectionPrédire (Predict)#
Utilise un modèle YOLO26n-seg entraîné pour effectuer des prédictions sur des images.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-seg.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:
xy = result.masks.xy # mask polygons in pixel coordinates
xyn = result.masks.xyn # normalized mask polygons
masks = result.masks.data # binary masks, shape (N,H,W), dtype torch.uint8Voir les détails complets du mode predict sur la page Predict.
Link to this sectionSortie des résultats#
La segmentation d'instance YOLO renvoie un objet Results par image. Chaque résultat stocke des prédictions au niveau de l'objet, où chaque instance détectée possède son propre masque binaire, sa classe, sa confiance et sa boîte.
| Attribut | Type | Forme | Description |
|---|---|---|---|
result.masks | Masks | (N) | Masques d'instance. |
result.masks.data | torch.uint8 | (N,H,W) | Masques binaires, valeurs 0 ou 1. |
result.masks.xy | np.float32 | list[(P,2)] | Polygones de pixels. |
result.masks.xyn | np.float32 | list[(P,2)] | Polygones normalisés. |
result.boxes | Boxes | (N) | Boîtes/classes/confiances d'instance. |
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 Predict Results by Task.
Link to this sectionEn quoi cela diffère-t-il de la segmentation sémantique ?#
La segmentation d'instance est une segmentation au niveau de l'objet : deux voitures produisent deux masques, deux boîtes et deux scores de confiance. La segmentation sémantique est une classification au niveau du pixel : ces mêmes voitures deviennent des pixels avec le même ID de classe dans une carte de classe de la taille de l'image, sans boîtes, confidences ou liste de polygones par objet.
Link to this sectionExporter (Export)#
Exporte un modèle YOLO26n-seg vers un format différent tel que ONNX, CoreML, etc.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-seg.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-seg 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 effectuer des prédictions ou valider directement sur les modèles exportés, par ex. yolo predict model=yolo26n-seg.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-seg.pt | ✅ | - |
| TorchScript | torchscript | yolo26n-seg.torchscript | ✅ | imgsz, quantize, dynamic, optimize, nms, batch, device |
| ONNX | onnx | yolo26n-seg.onnx | ✅ | imgsz, quantize, dynamic, simplify, opset, nms, batch, data, fraction, device |
| OpenVINO | openvino | yolo26n-seg_openvino_model/ | ✅ | imgsz, quantize, dynamic, nms, batch, data, fraction, device |
| TensorRT | engine | yolo26n-seg.engine | ✅ | imgsz, quantize, dynamic, simplify, workspace, nms, batch, data, fraction, device |
| CoreML | coreml | yolo26n-seg.mlpackage | ✅ | imgsz, dynamic, quantize, nms, batch, device |
| TF SavedModel | saved_model | yolo26n-seg_saved_model/ | ✅ | imgsz, keras, quantize, nms, batch, data, fraction, device |
| TF GraphDef | pb | yolo26n-seg.pb | ❌ | imgsz, batch, device |
| TF Lite | tflite | yolo26n-seg.tflite | ✅ | imgsz, quantize, nms, batch, data, fraction, device |
| TF Edge TPU | edgetpu | yolo26n-seg_edgetpu.tflite | ✅ | imgsz, quantize, data, fraction, device |
| TF.js | tfjs | yolo26n-seg_web_model/ | ✅ | imgsz, quantize, nms, batch, data, fraction, device |
| PaddlePaddle | paddle | yolo26n-seg_paddle_model/ | ✅ | imgsz, batch, device |
| MNN | mnn | yolo26n-seg.mnn | ✅ | imgsz, batch, quantize, device |
| NCNN | ncnn | yolo26n-seg_ncnn_model/ | ✅ | imgsz, quantize, batch, device |
| IMX500 | imx | yolo26n-seg_imx_model/ | ✅ | imgsz, quantize, data, fraction, nms, device |
| RKNN | rknn | yolo26n-seg_rknn_model/ | ✅ | imgsz, batch, name, quantize, data, fraction, device |
| ExecuTorch | executorch | yolo26n-seg_executorch_model/ | ✅ | imgsz, batch, device |
| Axelera | axelera | yolo26n-seg_axelera_model/ | ✅ | imgsz, batch, quantize, data, fraction, device |
| DEEPX | deepx | yolo26n-seg_deepx_model/ | ✅ | imgsz, quantize, data, optimize, device |
| Qualcomm QNN | qnn | yolo26n-seg_qnn.onnx | ✅ | imgsz, batch, name, quantize, data, fraction, device |
Consulte les détails complets de export sur la page Export.
Link to this sectionFAQ#
Link to this sectionComment entraîner un modèle de segmentation YOLO26 sur un jeu de données personnalisé ?#
Pour entraîner un modèle de segmentation YOLO26 sur un jeu de données personnalisé, tu dois d'abord préparer ton jeu de données au format de segmentation YOLO. Tu peux utiliser des outils comme JSON2YOLO pour convertir des jeux de données depuis d'autres formats. Une fois ton jeu de données prêt, tu peux entraîner le modèle en utilisant Python ou des commandes CLI :
from ultralytics import YOLO
# Load a pretrained YOLO26 segment model
model = YOLO("yolo26n-seg.pt")
# Train the model
results = model.train(data="path/to/your_dataset.yaml", epochs=100, imgsz=640)Consulte la page Configuration pour plus d'arguments disponibles.
Link to this sectionQuelle est la différence entre la détection d'objets et la segmentation d'instance dans YOLO26 ?#
La détection d'objets identifie et localise les objets dans une image en dessinant des boîtes englobantes autour d'eux, tandis que la segmentation d'instance identifie non seulement les boîtes englobantes mais délimite également la forme exacte de chaque objet. Les modèles de segmentation d'instance YOLO26 fournissent des masques ou des contours qui soulignent chaque objet détecté, ce qui est particulièrement utile pour les tâches où il est important de connaître la forme précise des objets, comme en imagerie médicale ou pour la conduite autonome.
Link to this sectionPourquoi utiliser YOLO26 pour la segmentation d'instance ?#
Ultralytics YOLO26 est un modèle de pointe reconnu pour sa grande précision et ses performances en temps réel, ce qui le rend idéal pour les tâches de segmentation d'instance. Les modèles YOLO26 Segment sont fournis pré-entraînés sur le jeu de données COCO, garantissant des performances robustes sur une variété d'objets. De plus, YOLO prend en charge l'entraînement, la validation, la prédiction et les fonctionnalités d'exportation avec une intégration transparente, ce qui le rend très polyvalent pour la recherche et les applications industrielles.
Link to this sectionComment charger et valider un modèle de segmentation YOLO pré-entraîné ?#
Charger et valider un modèle de segmentation YOLO pré-entraîné est simple. Voici comment tu peux le faire en utilisant Python et CLI :
from ultralytics import YOLO
# Load a pretrained model
model = YOLO("yolo26n-seg.pt")
# Validate the model
metrics = model.val()
print("Mean Average Precision for boxes:", metrics.box.map)
print("Mean Average Precision for masks:", metrics.seg.map)Ces étapes te fourniront des métriques de validation telles que la Mean Average Precision (mAP), cruciale pour évaluer les performances du modèle.
Link to this sectionComment puis-je exporter un modèle de segmentation YOLO vers le format ONNX ?#
Exporter un modèle de segmentation YOLO au format ONNX est simple et peut être effectué en utilisant Python ou des commandes CLI :
from ultralytics import YOLO
# Load a pretrained model
model = YOLO("yolo26n-seg.pt")
# Export the model to ONNX format
model.export(format="onnx")Pour plus de détails sur l'exportation vers divers formats, reporte-toi à la page Export.