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 de segmentation YOLO11 pré-entraînés sont présentés ici. Les modèles de détection, de segmentation et de pose sont pré-entraînés sur l'ensemble de données COCO, tandis que les modèles de classification sont pré-entraînés sur l'ensemble 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)
mAPboîte
50-95
mAPmasque
50-95
Vitesse
CPU ONNX
(ms)
Vitesse
T4 TensorRT10
(ms)
paramètres
(M)
FLOPs
(B)
YOLO11n-seg 640 38.9 32.0 65.9 ± 1.1 1.8 ± 0.0 2.9 10.4
YOLO11s-seg 640 46.6 37.8 117.6 ± 4.9 2.9 ± 0.0 10.1 35.5
YOLO11m-seg 640 51.5 41.5 281.6 ± 1.2 6.3 ± 0.1 22.4 123.3
YOLO11l-seg 640 53.4 42.9 344.2 ± 3.2 7,8 ± 0,2 27.6 142.2
YOLO11x-seg 640 54.7 43.8 664,5 ± 3,2 15,8 ± 0,7 62.1 319.0

Entraîner

Entraîner YOLO11n-seg sur l'ensemble de données COCO8-seg pour 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 de l'ensemble de données de segmentation YOLO est décrit en détail dans le Guide de l'ensemble de données. Pour convertir votre ensemble de données existant à partir 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 contains map50-95(B) of each category
metrics.seg.map  # map50-95(M)
metrics.seg.map50  # map50(M)
metrics.seg.map75  # map75(M)
metrics.seg.maps  # a list contains map50-95(M) of 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.

Format format Argument Modèle Métadonnées Arguments
PyTorch - yolo11n-seg.pt -
TorchScript torchscript yolo11n-seg.torchscript imgsz, half, dynamic, optimize, nms, batch, device
ONNX onnx yolo11n-seg.onnx imgsz, half, dynamic, simplify, opset, nms, batch, device
OpenVINO openvino yolo11n-seg_openvino_model/ imgsz, half, dynamic, int8, nms, batch, data, fraction, device
TensorRT engine yolo11n-seg.engine imgsz, half, dynamic, simplify, workspace, int8, nms, batch, data, fraction, device
CoreML coreml yolo11n-seg.mlpackage imgsz, half, int8, nms, batch, device
TF SavedModel saved_model yolo11n-seg_saved_model/ imgsz, keras, int8, nms, batch, device
TF GraphDef pb yolo11n-seg.pb imgsz, batch, device
TF Lite tflite yolo11n-seg.tflite imgsz, half, int8, nms, batch, data, fraction, device
TF Edge TPU edgetpu yolo11n-seg_edgetpu.tflite imgsz, device
TF.js tfjs yolo11n-seg_web_model/ imgsz, half, int8, nms, batch, device
PaddlePaddle paddle yolo11n-seg_paddle_model/ imgsz, batch, device
MNN mnn yolo11n-seg.mnn imgsz, batch, int8, half, device
NCNN ncnn yolo11n-seg_ncnn_model/ imgsz, half, batch, device
IMX500 imx yolo11n-seg_imx_model/ imgsz, int8, data, fraction, device
RKNN rknn yolo11n-seg_rknn_model/ imgsz, batch, name, 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 ses performances en temps réel, ce qui le rend idéal pour les tâches de segmentation d'instance. Les modèles YOLO11 Segment sont pré-entraînés sur l'ensemble de données COCO, ce qui garantit 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("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 comme 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 1 an ✏️ Mis à jour il y a 5 mois

Commentaires