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 misma.

El resultado de un modelo de segmentación de instancias es un conjunto de máscaras o contornos que perfilan cada objeto en la imagen, junto con etiquetas de clase y puntuaciones de confianza para cada uno. La segmentación de instancias es útil cuando necesitas saber no solo 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 YOLO26 Segment usan el sufijo -seg, por ejemplo, yolo26n-seg.pt, y están preentrenados en COCO.

Link to this sectionModelos#

Aquí se muestran los modelos Segment preentrenados de YOLO26. Los modelos de detección, segmentación y 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 están preentrenados en el conjunto de datos ImageNet.

Los modelos se descargan automáticamente desde la última versión de Ultralytics en el primer uso.

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 una sola escala en el conjunto de datos COCO val2017.
    Reproduce con yolo val segment data=coco.yaml device=0
  • Velocidad promediada sobre imágenes de validación de COCO usando una instancia Amazon EC2 P4d.
    Reproduce con yolo val segment data=coco.yaml batch=1 device=0|cpu
  • Los valores de Params y FLOPs son para el modelo fusionado tras model.fuse(), que combina las capas Conv y BatchNorm y, para modelos de extremo a extremo, elimina la cabeza de detección auxiliar de uno a muchos. Los puntos de control preentrenados conservan la arquitectura de entrenamiento completa y pueden mostrar conteos más altos.

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 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 los detalles completos del modo train en la página de Entrenamiento. Los modelos de segmentación también se pueden entrenar en GPU en la nube a través de Ultralytics Platform.

Link to this sectionFormato de conjunto de datos#

Puedes encontrar el formato de conjunto de datos de segmentación YOLO 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 Ultralytics Platform usando herramientas de polígonos y anotación inteligente con tecnología SAM.

Link to this sectionValidar#

Validate trained YOLO26n-seg model accuracy on the COCO8-seg dataset. No arguments are needed as the model retains its training data and arguments as model attributes.

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#

Usa 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 los detalles completos del modo predict en la página de Predicción.

Link to this sectionSalida de resultados#

La segmentación de instancias 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 nombres.

For task-specific Results fields across every task, see the Predict Results by Task section.

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

La segmentación de instancias es 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 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 o lista de polígonos predeterminada.

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 a continuación. Puedes exportar a cualquier formato usando el argumento format, por ejemplo, format='onnx' o format='engine'. Puedes predecir o validar directamente en modelos exportados, por ejemplo, yolo predict model=yolo26n-seg.onnx. Se muestran ejemplos de uso para tu modelo una vez que se completa la exportación.

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

Consulta los detalles completos de export en la página de Exportación.

Link to this sectionPreguntas frecuentes#

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 de la 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 otros 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 cuadros delimitadores a su alrededor, mientras que la segmentación de instancias no solo identifica los cuadros delimitadores, 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 perfilan cada objeto detectado, lo cual es especialmente útil para tareas en las que 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é usar 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 YOLO26 Segment vienen preentrenados en el conjunto de datos COCO, lo que garantiza un rendimiento sólido en una amplia 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 muy versátil tanto para la 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í te explicamos cómo puedes hacerlo tanto con Python como con la 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 Media Promedio (mAP), fundamental 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 sencillo y se puede hacer mediante comandos de Python o de la 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