Passer au contenu

Segmentation d'instance

Exemples de 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 le modèle Ultralytics YOLO pré-entraîné en python.

Astuce

Les modèles de segmentation YOLO11 utilisent le -seg suffixe, c'est-à-dire yolo11n-seg.pt et sont pré-entraînés sur COCO.

Modèles

Les modèles Segment pré-entraînés YOLO11 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èleTaille
(pixels)
mAPbox
50-95
mAPmask
50-95
Vitesse
CPU ONNX
(ms)
Vitesse
T4 TensorRT10
(ms)
paramètres
(M)
FLOPs
(B)
YOLO11n-seg64038.932.065.9 ± 1.11.8 ± 0.02.99.7
YOLO11s-seg64046.637.8117.6 ± 4.92.9 ± 0.010.133.0
YOLO11m-seg64051.541.5281.6 ± 1.26.3 ± 0.122.4113.2
YOLO11l-seg64053.442.9344.2 ± 3.27,8 ± 0,227.6132.2
YOLO11x-seg64054.743.8664,5 ± 3,215,8 ± 0,762.1296.4
  • mAPval Les valeurs COCO val2017 dataset.
    Reproduire en utilisant yolo 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 utilisant yolo val segment data=coco.yaml batch=1 device=0|cpu

Entraîner

Entraînez YOLO11n-seg sur l'ensemble de données COCO8-seg pendant 100 epochs à une taille d'image de 640. Pour une liste complète des arguments disponibles, consultez la page Configuration.

Exemple

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-seg.yaml")  # build a new model from YAML
model = YOLO("yolo11n-seg.pt")  # load a pretrained model (recommended for training)
model = YOLO("yolo11n-seg.yaml").load("yolo11n.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=yolo11n-seg.yaml epochs=100 imgsz=640

# Start training from a pretrained *.pt model
yolo segment train data=coco8-seg.yaml model=yolo11n-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=yolo11n-seg.yaml pretrained=yolo11n-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 YOLO11n-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("yolo11n-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=yolo11n-seg.pt  # val official model
yolo segment val model=path/to/best.pt # val custom model

Prédire

Utiliser un modèle YOLO11n-seg entraîné pour exécuter des prédictions sur des images.

Exemple

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-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=yolo11n-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 YOLO11n-seg vers un format différent comme ONNX, CoreML, etc.

Exemple

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-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=yolo11n-seg.pt format=onnx  # export official model
yolo export model=path/to/best.pt format=onnx # export custom trained model

Les formats d'exportation YOLO11-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=yolo11n-seg.onnx. Des exemples d'utilisation sont présentés pour votre modèle une fois l'exportation terminée.

Formatformat ArgumentModèleMétadonnéesArguments
PyTorch-yolo11n-seg.pt-
TorchScripttorchscriptyolo11n-seg.torchscriptimgsz, half, dynamic, optimize, nms, batch, device
ONNXonnxyolo11n-seg.onnximgsz, half, dynamic, simplify, opset, nms, batch, device
OpenVINOopenvinoyolo11n-seg_openvino_model/imgsz, half, dynamic, int8, nms, batch, data, fraction, device
TensorRTengineyolo11n-seg.engineimgsz, half, dynamic, simplify, workspace, int8, nms, batch, data, fraction, device
CoreMLcoremlyolo11n-seg.mlpackageimgsz, dynamic, half, int8, nms, batch, device
TF SavedModelsaved_modelyolo11n-seg_saved_model/imgsz, keras, int8, nms, batch, device
TF GraphDefpbyolo11n-seg.pbimgsz, batch, device
TF Litetfliteyolo11n-seg.tfliteimgsz, half, int8, nms, batch, data, fraction, device
TF Edge TPUedgetpuyolo11n-seg_edgetpu.tfliteimgsz, device
TF.jstfjsyolo11n-seg_web_model/imgsz, half, int8, nms, batch, device
PaddlePaddlepaddleyolo11n-seg_paddle_model/imgsz, batch, device
MNNmnnyolo11n-seg.mnnimgsz, batch, int8, half, device
NCNNncnnyolo11n-seg_ncnn_model/imgsz, half, batch, device
IMX500imxyolo11n-seg_imx_model/imgsz, int8, data, fraction, device
RKNNrknnyolo11n-seg_rknn_model/imgsz, batch, name, device
ExecuTorchexecutorchyolo11n-seg_executorch_model/imgsz, device
Axeleraaxelerayolo11n-seg_axelera_model/imgsz, int8, data, fraction, device

Voir tous les export détails dans la section Exporter page.

FAQ

Comment former un modèle de segmentation YOLO11 sur un ensemble de données personnalisé ?

Pour entraîner un modèle de segmentation YOLO11 sur un ensemble de données personnalisé, vous devez d'abord préparer votre ensemble de données au format de segmentation YOLO. Vous pouvez utiliser des outils comme JSON2YOLO pour convertir des ensembles de données à partir d'autres formats. Une fois votre ensemble 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 YOLO11 segment model
model = YOLO("yolo11n-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=yolo11n-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'instance dans YOLO11 ?

La détection d’objets identifie et localise les objets dans une image en dessinant des cadres de délimitation autour d’eux, tandis que la segmentation d’instance identifie non seulement les cadres de délimitation, mais délimite également la forme exacte de chaque objet. Les modèles de segmentation d’instance YOLO11 fournissent des masques ou des contours qui délimitent chaque objet détecté, 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 YOLO11 pour la segmentation d’instance ?

Ultralytics YOLO11 est un modèle de pointe reconnu pour sa haute précision et sa performance en temps réel, ce qui le rend idéal pour les tâches de segmentation d'instances. Les modèles YOLO11 Segment sont pré-entraînés sur l'ensemble de données COCO dataset, ce qui garantit une performance robuste 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("yolo11n-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=yolo11n-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("yolo11n-seg.pt")

# Export the model to ONNX format
model.export(format="onnx")
yolo export model=yolo11n-seg.pt format=onnx

Pour plus de détails sur l'exportation vers différents formats, consultez la page Exportation.



📅 Créé il y a 2 ans ✏️ Mis à jour il y a 25 jours
glenn-jocherBurhan-Qambitious-octopusUltralyticsAssistantY-T-Gjk4eMatthewNoyceRizwanMunawar

Commentaires