Meet YOLO26: next-gen vision AI.

Link to this sectionSegmentación de instancias#

Instance segmentation examples

La segmentación de instancias va un paso más allá de la detección de objetos e implica identificar objetos individuales en una imagen y segmentarlos del resto de la imagen.

El resultado de un modelo de segmentación de instancias es un conjunto de máscaras o contornos que delinean cada objeto en la imagen, junto con etiquetas de clase y puntuaciones de confianza para cada objeto. La segmentación de instancias es útil cuando no solo necesitas saber dónde están los objetos en una imagen, sino también cuál es su forma exacta.



Watch: Run Segmentation with Pretrained Ultralytics YOLO Model in Python.
Consejo

Los modelos de segmentación de YOLO26 utilizan el sufijo -seg, por ejemplo, yolo26n-seg.pt, y están preentrenados en COCO.

Link to this sectionModelos#

Aquí se muestran los modelos de segmentación preentrenados de YOLO26. Los modelos de detección (Detect), segmentación (Segment) y pose (Pose) están preentrenados en el conjunto de datos COCO, los modelos semánticos están preentrenados en Cityscapes y los modelos de clasificación (Classify) están preentrenados en el conjunto de datos ImageNet.

Los modelos se descargan automáticamente desde la última versión de Ultralytics al utilizarlos por primera vez.

Modelotamaño
(píxeles)
mAPbox
50-95(e2e)
mAPmask
50-95(e2e)
Velocidad
CPU ONNX
(ms)
Velocidad
T4 TensorRT10
(ms)
params
(M)
FLOPs
(B)
YOLO26n-seg64039.633.953.3 ± 0.52.1 ± 0.02.79.1
YOLO26s-seg64047.340.0118.4 ± 0.93.3 ± 0.010.434.2
YOLO26m-seg64052.544.1328.2 ± 2.46.7 ± 0.123.6121.5
YOLO26l-seg64054.445.5387.0 ± 3.78.0 ± 0.128.0139.8
YOLO26x-seg64056.547.0787.0 ± 6.816.4 ± 0.162.8313.5
  • Los valores de mAPval corresponden a un modelo único a escala única en el conjunto de datos COCO val2017.
    Reproduce esto mediante yolo val segment data=coco.yaml device=0
  • La velocidad (Speed) se calculó promediando las imágenes de validación de COCO utilizando una instancia Amazon EC2 P4d.
    Reproduce esto mediante yolo val segment data=coco.yaml batch=1 device=0|cpu
  • Los valores de Params y FLOPs corresponden al modelo fusionado tras ejecutar model.fuse(), que combina las capas Conv y BatchNorm y, para los modelos integrales (end2end), elimina la cabecera de detección auxiliar de uno a muchos. Los checkpoints preentrenados conservan la arquitectura de entrenamiento completa y pueden mostrar cifras mayores.

Link to this sectionEntrenar#

Entrena YOLO26n-seg en el conjunto de datos COCO8-seg durante 100 épocas con un tamaño de imagen de 640. Para obtener una lista completa de los argumentos disponibles, consulta la página de Configuración.

Ejemplo
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)

Consulta todos los detalles del modo train en la página de Entrenamiento. Los modelos de segmentación también pueden entrenarse en GPU en la nube a través de la Plataforma Ultralytics.

Link to this sectionFormato del conjunto de datos#

El formato del conjunto de datos de segmentación de YOLO se puede encontrar en detalle en la Guía de conjuntos de datos. Para convertir tu conjunto de datos existente desde otros formatos (como COCO, etc.) al formato YOLO, utiliza la herramienta JSON2YOLO de Ultralytics. También puedes crear máscaras de segmentación en la Plataforma Ultralytics usando herramientas de polígonos y anotación inteligente basada en SAM.

Link to this sectionValidar#

Valida el modelo YOLO26n-seg entrenado accuracy en el conjunto de datos COCO8-seg. No se necesitan argumentos, ya que el model conserva sus data de entrenamiento y sus argumentos como atributos del modelo.

Ejemplo
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 FN

Link to this sectionPredecir#

Utiliza un modelo YOLO26n-seg entrenado para ejecutar predicciones en imágenes.

Ejemplo
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.uint8

Consulta todos los detalles del modo predict en la página Predecir.

Link to this sectionResultado de la salida#

La segmentación de instancias de YOLO devuelve un objeto Results por imagen. Cada resultado almacena predicciones a nivel de objeto, donde cada instancia detectada tiene su propia máscara binaria, clase, confianza y caja.

AtributoTipoFormaDescripción
result.masksMasks(N)Máscaras de instancia.
result.masks.datatorch.uint8(N,H,W)Máscaras binarias, valores 0 o 1.
result.masks.xynp.float32list[(P,2)]Polígonos de píxeles.
result.masks.xynnp.float32list[(P,2)]Polígonos normalizados.
result.boxesBoxes(N)Cajas/clases/confianzas de instancia.
result.boxes.clstorch.float32(N,)IDs de clase; convertir a int para obtener los nombres.

Para ver los campos de Results específicos de cada tarea, consulta la sección Resultados de predicción por tarea.

Link to this sectionEn qué se diferencia esto de la segmentación semántica#

La segmentación de instancias es una segmentación a nivel de objeto: dos coches producen dos máscaras, dos cajas y dos puntuaciones de confianza. La segmentación semántica es una clasificación a nivel de píxel: esos mismos coches se convierten en píxeles con el mismo ID de clase en un mapa de clases del tamaño de la imagen, sin cajas por objeto, confianzas ni listas de polígonos predeterminadas.

Link to this sectionExportar#

Exporta un modelo YOLO26n-seg a un formato diferente como ONNX, CoreML, etc.

Ejemplo
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")

Los formatos de exportación disponibles para YOLO26-seg se encuentran en la tabla siguiente. Puedes exportar a cualquier formato usando el argumento format, por ejemplo, format='onnx' o format='engine'. Puedes predecir o validar directamente sobre modelos exportados, por ejemplo, yolo predict model=yolo26n-seg.onnx. Se muestran ejemplos de uso para tu modelo después de completar la exportación.

FormatoArgumento formatModeloMetadatosArgumentos
PyTorch-yolo26n-seg.pt-
TorchScripttorchscriptyolo26n-seg.torchscriptimgsz, quantize, dynamic, optimize, nms, batch, device
ONNXonnxyolo26n-seg.onnximgsz, quantize, dynamic, simplify, opset, nms, batch, data, fraction, device
OpenVINOopenvinoyolo26n-seg_openvino_model/imgsz, quantize, dynamic, nms, batch, data, fraction, device
TensorRTengineyolo26n-seg.engineimgsz, quantize, dynamic, simplify, workspace, nms, batch, data, fraction, device
CoreMLcoremlyolo26n-seg.mlpackageimgsz, dynamic, quantize, nms, batch, device
TF SavedModelsaved_modelyolo26n-seg_saved_model/imgsz, keras, quantize, nms, batch, data, fraction, device
TF GraphDefpbyolo26n-seg.pbimgsz, batch, device
TF Litetfliteyolo26n-seg.tfliteimgsz, quantize, nms, batch, data, fraction, device
TF Edge TPUedgetpuyolo26n-seg_edgetpu.tfliteimgsz, quantize, data, fraction, device
TF.jstfjsyolo26n-seg_web_model/imgsz, quantize, nms, batch, data, fraction, device
PaddlePaddlepaddleyolo26n-seg_paddle_model/imgsz, batch, device
MNNmnnyolo26n-seg.mnnimgsz, batch, quantize, device
NCNNncnnyolo26n-seg_ncnn_model/imgsz, quantize, batch, device
IMX500imxyolo26n-seg_imx_model/imgsz, quantize, data, fraction, nms, device
RKNNrknnyolo26n-seg_rknn_model/imgsz, batch, name, quantize, data, fraction, device
ExecuTorchexecutorchyolo26n-seg_executorch_model/imgsz, batch, device
Axeleraaxelerayolo26n-seg_axelera_model/imgsz, batch, quantize, data, fraction, device
DEEPXdeepxyolo26n-seg_deepx_model/imgsz, quantize, data, optimize, device
Qualcomm QNNqnnyolo26n-seg_qnn.onnximgsz, batch, name, quantize, data, fraction, device

Consulta los detalles completos de export en la página Export.

Link to this sectionFAQ#

Link to this section¿Cómo entreno un modelo de segmentación YOLO26 con un conjunto de datos personalizado?#

Para entrenar un modelo de segmentación YOLO26 con un conjunto de datos personalizado, primero debes preparar tu conjunto de datos en el formato de segmentación de YOLO. Puedes utilizar herramientas como JSON2YOLO para convertir conjuntos de datos desde otros formatos. Una vez que tu conjunto de datos esté listo, puedes entrenar el modelo mediante comandos de Python o CLI:

Ejemplo
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)

Consulta la página de Configuración para ver más argumentos disponibles.

Link to this section¿Cuál es la diferencia entre la detección de objetos y la segmentación de instancias en YOLO26?#

La detección de objetos identifica y localiza objetos dentro de una imagen dibujando cajas delimitadoras a su alrededor, mientras que la segmentación de instancias no solo identifica las cajas, sino que también delinea la forma exacta de cada objeto. Los modelos de segmentación de instancias de YOLO26 proporcionan máscaras o contornos que delinean cada objeto detectado, lo cual es especialmente útil para tareas donde es importante conocer la forma precisa de los objetos, como en imágenes médicas o conducción autónoma.

Link to this section¿Por qué utilizar YOLO26 para la segmentación de instancias?#

Ultralytics YOLO26 es un modelo de última generación reconocido por su alta precisión y rendimiento en tiempo real, lo que lo hace ideal para tareas de segmentación de instancias. Los modelos de segmentación de YOLO26 vienen preentrenados en el conjunto de datos COCO, asegurando un rendimiento robusto en una gran variedad de objetos. Además, YOLO admite funcionalidades de entrenamiento, validación, predicción y exportación con una integración perfecta, lo que lo hace altamente versátil tanto para investigación como para aplicaciones industriales.

Link to this section¿Cómo cargo y valido un modelo de segmentación YOLO preentrenado?#

Cargar y validar un modelo de segmentación YOLO preentrenado es sencillo. Aquí tienes cómo hacerlo tanto con Python como con CLI:

Ejemplo
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)

Estos pasos te proporcionarán métricas de validación como la Precisión Promedio Media (mAP), crucial para evaluar el rendimiento del modelo.

Link to this section¿Cómo puedo exportar un modelo de segmentación YOLO al formato ONNX?#

Exportar un modelo de segmentación YOLO al formato ONNX es simple y puede realizarse mediante comandos de Python o CLI:

Ejemplo
from ultralytics import YOLO

# Load a pretrained model
model = YOLO("yolo26n-seg.pt")

# Export the model to ONNX format
model.export(format="onnx")

Para obtener más detalles sobre la exportación a varios formatos, consulta la página de Exportación.

Comentarios