Segmentation d'instance

La segmentation d'instance va encore plus loin que la détection d'objets et implique l'identification d'objets individuels dans une image et leur segmentation du reste de l'image.
La sortie d'un modèle de segmentation d'instance est un ensemble de masques ou de contours qui délimitent chaque objet dans l'image, ainsi que des étiquettes de classe et des scores de confiance pour chaque objet. La segmentation d'instance est utile lorsque vous avez besoin de savoir non seulement où se trouvent les objets dans une image, mais aussi quelle est leur forme exacte.
Regarder : Exécuter la segmentation avec un modèle YOLO Ultralytics pré-entraîné en Python.
Astuce
Les modèles YOLO26 Segment utilisent le -seg suffixe, c'est-à-dire, yolo26n-seg.pt, et sont pré-entraînés sur COCO.
Modèles
Les modèles YOLO26 Segment 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, tandis que 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) | mAPbox 50-95(e2e) | mAPmasque 50-95(e2e) | Vitesse CPU ONNX (ms) | Vitesse T4 TensorRT10 (ms) | paramètres (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 |
- mAPval Les valeurs COCO val2017 dataset.
Reproduire en utilisantyolo val segment data=coco.yaml device=0 - Vitesse moyennée sur les images COCO val en utilisant un instance Amazon EC2 P4d. instance.
Reproduire en utilisantyolo val segment data=coco.yaml batch=1 device=0|cpu
Entraîner
Entraînez YOLO26n-seg sur le jeu de données COCO8-seg pendant 100 époques avec une taille d'image de 640. Pour une liste complète des arguments disponibles, consultez la page de configuration.
Exemple
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.pt") # build from YAML and transfer weights
# Train the model
results = model.train(data="coco8-seg.yaml", epochs=100, imgsz=640)
# Build a new model from YAML and start training from scratch
yolo segment train data=coco8-seg.yaml model=yolo26n-seg.yaml epochs=100 imgsz=640
# Start training from a pretrained *.pt model
yolo segment train data=coco8-seg.yaml model=yolo26n-seg.pt epochs=100 imgsz=640
# Build a new model from YAML, transfer pretrained weights to it and start training
yolo segment train data=coco8-seg.yaml model=yolo26n-seg.yaml pretrained=yolo26n-seg.pt epochs=100 imgsz=640
Format du jeu de données
Le format du jeu de données de segmentation YOLO est décrit en détail dans le Guide des jeux de données. Pour convertir votre jeu de données existant d'autres formats (comme COCO, etc.) au format YOLO, veuillez utiliser l'outil JSON2YOLO d'Ultralytics.
Valider
Valider le modèle YOLO26n-seg entraîné précision sur l'ensemble de données COCO8-seg. Aucun argument n'est nécessaire car le model conserve son entraînement data et ses arguments en tant qu'attributs du modèle.
Exemple
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.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
yolo segment val model=yolo26n-seg.pt # val official model
yolo segment val model=path/to/best.pt # val custom model
Prédire
Utiliser un modèle YOLO26n-seg entraîné pour exécuter des prédictions sur des images.
Exemple
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 in polygon format
xyn = result.masks.xyn # normalized
masks = result.masks.data # mask in matrix format (num_objects x H x W)
yolo segment predict model=yolo26n-seg.pt source='https://ultralytics.com/images/bus.jpg' # predict with official model
yolo segment predict model=path/to/best.pt source='https://ultralytics.com/images/bus.jpg' # predict with custom model
Voir tous les predict détails du mode dans la Prédire page.
Exporter
Exporter un modèle YOLO26n-seg vers un format différent comme ONNX, CoreML, etc.
Exemple
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")
yolo export model=yolo26n-seg.pt format=onnx # export official model
yolo export model=path/to/best.pt format=onnx # export custom-trained model
Les formats d'exportation YOLO26-seg disponibles sont dans le tableau ci-dessous. Vous pouvez exporter vers n'importe quel format en utilisant le format argument, c'est-à-dire format='onnx' ou format='engine'. Vous pouvez prédire ou valider directement sur les modèles exportés, c'est-à-dire, yolo predict model=yolo26n-seg.onnx. Des exemples d'utilisation sont présentés pour votre modèle une fois l'exportation terminée.
| Format | format Argument | Modèle | Métadonnées | Arguments |
|---|---|---|---|---|
| PyTorch | - | yolo26n-seg.pt | ✅ | - |
| TorchScript | torchscript | yolo26n-seg.torchscript | ✅ | imgsz, half, dynamic, optimize, nms, batch, device |
| ONNX | onnx | yolo26n-seg.onnx | ✅ | imgsz, half, dynamic, simplify, opset, nms, batch, device |
| OpenVINO | openvino | yolo26n-seg_openvino_model/ | ✅ | imgsz, half, dynamic, int8, nms, batch, data, fraction, device |
| TensorRT | engine | yolo26n-seg.engine | ✅ | imgsz, half, dynamic, simplify, workspace, int8, nms, batch, data, fraction, device |
| CoreML | coreml | yolo26n-seg.mlpackage | ✅ | imgsz, dynamic, half, int8, nms, batch, device |
| TF SavedModel | saved_model | yolo26n-seg_saved_model/ | ✅ | imgsz, keras, int8, nms, batch, device |
| TF GraphDef | pb | yolo26n-seg.pb | ❌ | imgsz, batch, device |
| TF Lite | tflite | yolo26n-seg.tflite | ✅ | imgsz, half, int8, nms, batch, data, fraction, device |
| TF Edge TPU | edgetpu | yolo26n-seg_edgetpu.tflite | ✅ | imgsz, device |
| TF.js | tfjs | yolo26n-seg_web_model/ | ✅ | imgsz, half, int8, nms, batch, device |
| PaddlePaddle | paddle | yolo26n-seg_paddle_model/ | ✅ | imgsz, batch, device |
| MNN | mnn | yolo26n-seg.mnn | ✅ | imgsz, batch, int8, half, device |
| NCNN | ncnn | yolo26n-seg_ncnn_model/ | ✅ | imgsz, half, batch, device |
| IMX500 | imx | yolo26n-seg_imx_model/ | ✅ | imgsz, int8, data, fraction, device |
| RKNN | rknn | yolo26n-seg_rknn_model/ | ✅ | imgsz, batch, name, device |
| ExecuTorch | executorch | yolo26n-seg_executorch_model/ | ✅ | imgsz, device |
| Axelera | axelera | yolo26n-seg_axelera_model/ | ✅ | imgsz, int8, data, fraction, device |
Voir tous les export détails dans la section Exporter page.
FAQ
Comment 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é, vous devez d'abord préparer votre jeu de données au format de segmentation YOLO. Vous pouvez utiliser des outils comme JSON2YOLO pour convertir des jeux de données d'autres formats. Une fois votre jeu de données prêt, vous pouvez entraîner le modèle en utilisant des commandes python ou CLI :
Exemple
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)
yolo segment train data=path/to/your_dataset.yaml model=yolo26n-seg.pt epochs=100 imgsz=640
Consultez la page Configuration pour plus d'arguments disponibles.
Quelle est la différence entre la détection d'objets et la segmentation d'instances dans YOLO26 ?
La détection d'objets identifie et localise les objets dans une image en traçant des boîtes englobantes autour d'eux, tandis que la segmentation d'instances non seulement identifie les boîtes englobantes, mais délimite également la forme exacte de chaque objet. Les modèles de segmentation d'instances YOLO26 fournissent des masques ou des contours qui délimitent chaque objet detect, ce qui est particulièrement utile pour les tâches où la connaissance de la forme précise des objets est importante, comme l'imagerie médicale ou la conduite autonome.
Pourquoi utiliser YOLO26 pour la segmentation d'instances ?
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'instances. Les modèles YOLO26 Segment sont 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 les fonctionnalités d'entraînement, de validation, de prédiction et d'exportation avec une intégration transparente, ce qui le rend très polyvalent pour les applications de recherche et industrielles.
Comment charger et valider un modèle de segmentation YOLO pré-entraîné ?
Le chargement et la validation d'un modèle de segmentation YOLO pré-entraîné sont simples. Voici comment vous pouvez le faire en utilisant python et CLI :
Exemple
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)
yolo segment val model=yolo26n-seg.pt
Ces étapes vous fourniront des métriques de validation telles que la Précision moyenne moyenne (mAP), cruciale pour évaluer les performances du modèle.
Comment exporter un modèle de segmentation YOLO au format ONNX ?
L'exportation d'un modèle de segmentation YOLO au format ONNX est simple et peut être effectuée à l'aide de commandes python ou CLI :
Exemple
from ultralytics import YOLO
# Load a pretrained model
model = YOLO("yolo26n-seg.pt")
# Export the model to ONNX format
model.export(format="onnx")
yolo export model=yolo26n-seg.pt format=onnx
Pour plus de détails sur l'exportation vers différents formats, consultez la page Exportation.