Ultralytics YOLO27:

Segmentación de instancias y seguimiento mediante Ultralytics YOLO26#

¿Qué es la segmentación de instancias?#

La segmentación de instancias es una tarea de visión por ordenador que consiste en identificar y delimitar objetos individuales de una imagen a nivel de píxel. A diferencia de la segmentación semántica, que solo clasifica los píxeles por categoría, la segmentación de instancias asigna una etiqueta única y delimita con precisión cada instancia de objeto, por lo que es esencial para aplicaciones que requieren una comprensión espacial detallada, como la obtención de imágenes médicas, la conducción autónoma y la automatización industrial.

Ultralytics YOLO26 ofrece potentes capacidades de segmentación de instancias que permiten detectar con precisión los límites de los objetos, manteniendo al mismo tiempo la velocidad y la eficiencia por las que son conocidos los modelos YOLO.

En el paquete de Ultralytics hay disponibles dos tipos de seguimiento mediante segmentación de instancias:

  • Segmentación de instancias con objetos de clase: A cada objeto de clase se le asigna un color único para facilitar la separación visual.

  • Segmentación de instancias con seguimientos de objetos: Cada seguimiento se representa con un color distinto, lo que facilita la identificación y el seguimiento a través de los fotogramas del vídeo.



Watch: Instance Segmentation with Object Tracking using Ultralytics YOLO26

Muestras#

Segmentación de instanciasSegmentación de instancias + seguimiento de objetos
Segmentación de instancias de UltralyticsSegmentación de instancias de Ultralytics con seguimiento de objetos
Segmentación de instancias de Ultralytics 😍Segmentación de instancias de Ultralytics con seguimiento de objetos 🔥

Segmenta y sigue objetos con YOLO26#

La solución InstanceSegmentation ejecuta un modelo de segmentación YOLO26 en cada fotograma, dibuja máscaras para cada objeto y colorea cada instancia por separado para que puedas seguir objetos individuales a lo largo de un vídeo. Carga un modelo -seg y ejecútalo sobre tu fuente con la API de Python o la CLI.

Segmentación de instancias con Ultralytics YOLO
# Instance segmentation using Ultralytics YOLO26
yolo solutions isegment show=True

# Pass a source video
yolo solutions isegment source="path/to/video.mp4"

# Monitor the specific classes
yolo solutions isegment classes="[0, 5]"

Argumentos de InstanceSegmentation#

Aquí tienes una tabla con los argumentos de InstanceSegmentation:

ArgumentoTipoPredeterminadoDescripción
modelstrNoneRuta al archivo del modelo YOLO de Ultralytics.
line_widthint2Grosor de línea de las cajas, los puntos clave y los recuentos que dibuja la solución.
verboseboolTrueActiva el registro por fotograma de la solución, que incluye la forma de entrada, los recuentos de clases y la velocidad de procesamiento. La llamada de seguimiento en sí siempre es silenciosa.

También puedes aprovechar los argumentos de track en la solución InstanceSegmentation:

ArgumentoTipoPredeterminadoDescripción
trackerstr'botsort.yaml'Especifica el algoritmo de seguimiento que se utilizará. Opciones integradas: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml.
conffloat0.25Establece el umbral de confianza para las detecciones; los valores más bajos permiten seguir más objetos, pero pueden incluir falsos positivos.
ioufloat0.7Establece el umbral de intersección sobre unión (IoU) para filtrar las detecciones superpuestas.
classeslistNoneFiltra los resultados por índice de clase. Por ejemplo, classes=[0, 2, 3] solo sigue las clases especificadas.
devicestrNoneEspecifica el dispositivo para la inferencia (por ejemplo, cpu, cuda:0 o 0). Permite seleccionar entre la CPU, una GPU específica u otros dispositivos de cálculo para ejecutar el modelo.
imgszint or tuple640Tamaño de imagen de inferencia objetivo: un número entero para una imagen cuadrada o un par (height, width). Las formas se ajustan al paso del modelo.
max_detint300Número máximo de detecciones conservadas por fotograma antes del seguimiento, lo que limita los objetos que procesa una solución en escenas densas.
quantizeint or strNonePrecisión de inferencia: 16 (FP16) o 32/sin definir (FP32) para los modelos de PyTorch y TorchScript; otros formatos calculan a la precisión que seleccionan su artefacto y su motor de ejecución. Sustituye al indicador obsoleto half.

Además, están disponibles los siguientes argumentos de visualización:

ArgumentoTipoPredeterminadoDescripción
showboolFalseSi True, muestra las imágenes o vídeos anotados en una ventana. Es útil para obtener información visual inmediata durante el desarrollo o las pruebas.
show_confboolTrueMuestra la puntuación de confianza de cada detección junto a su etiqueta. Permite conocer el grado de certeza del modelo para cada detección.
show_labelsboolTrueMuestra las etiquetas de cada detección en la salida visual. Proporciona una comprensión inmediata de los objetos detectados.
show_boxesboolTrueDibuja cuadros delimitadores alrededor de los objetos detectados. Esencial para la identificación visual y la ubicación de objetos en imágenes o fotogramas de vídeo.

Aplicaciones de la segmentación de instancias#

La segmentación de instancias con YOLO26 tiene numerosas aplicaciones en el mundo real en diversos sectores:

Gestión y reciclaje de residuos#

YOLO26 puede utilizarse en instalaciones de gestión de residuos para identificar y clasificar distintos tipos de materiales. El modelo puede segmentar residuos de plástico, cartón, metal y otros materiales reciclables con gran precisión, lo que permite a los sistemas de clasificación automatizada procesar los residuos de forma más eficiente. Esto resulta especialmente valioso si tenemos en cuenta que solo se recicla aproximadamente el 10 % de los 7 000 millones de toneladas de residuos plásticos que se generan en todo el mundo.

Vehículos autónomos#

En los coches autónomos, la segmentación de instancias ayuda a identificar y seguir a peatones, vehículos, señales de tráfico y otros elementos de la carretera a nivel de píxel. Esta comprensión precisa del entorno es fundamental para tomar decisiones de navegación y seguridad. El rendimiento en tiempo real de YOLO26 lo hace ideal para estas aplicaciones en las que el tiempo es un factor crítico.

Obtención de imágenes médicas#

La segmentación de instancias puede identificar y delimitar tumores, órganos o estructuras celulares en exploraciones médicas. La capacidad de YOLO26 para delimitar con precisión los límites de los objetos lo hace valioso para el diagnóstico médico y la planificación del tratamiento.

Supervisión de obras de construcción#

En las obras de construcción, la segmentación de instancias puede seguir maquinaria pesada, trabajadores y materiales. Esto ayuda a garantizar la seguridad mediante la supervisión de la posición de los equipos y la detección de la entrada de trabajadores en zonas peligrosas, además de optimizar el flujo de trabajo y la asignación de recursos.

Preguntas frecuentes#

  • Para realizar la segmentación de instancias con Ultralytics YOLO26, inicializa el modelo YOLO con una versión de YOLO26 para segmentación y procesa los fotogramas del vídeo con él. Este es un ejemplo de código simplificado:

    import cv2
    
    from ultralytics import solutions
    
    cap = cv2.VideoCapture("path/to/video.mp4")
    assert cap.isOpened(), "Error reading video file"
    
    # Video writer
    w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
    video_writer = cv2.VideoWriter("instance-segmentation.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
    
    # Init InstanceSegmentation
    isegment = solutions.InstanceSegmentation(
        show=True,  # display the output
        model="yolo26n-seg.pt",  # model="yolo26n-seg.pt" for object segmentation using YOLO26.
    )
    
    # Process video
    while cap.isOpened():
        success, im0 = cap.read()
        if not success:
            print("Video frame is empty or processing is complete.")
            break
        results = isegment(im0)
        video_writer.write(results.plot_im)
    
    cap.release()
    video_writer.release()
    cv2.destroyAllWindows()

    Obtén más información sobre la segmentación de instancias en la guía de Ultralytics YOLO26.

  • La segmentación de instancias identifica y delimita objetos individuales dentro de una imagen, asignando a cada objeto una etiqueta y una máscara únicas. El seguimiento de objetos amplía esta función al asignar identificadores coherentes a los objetos a través de los fotogramas del vídeo, lo que facilita el seguimiento continuo de los mismos objetos a lo largo del tiempo. Al combinar ambas funciones, como en la implementación de YOLO26, obtienes potentes capacidades para analizar el movimiento y el comportamiento de los objetos en vídeos, manteniendo al mismo tiempo información precisa sobre sus límites.

  • Ultralytics YOLO26 ofrece rendimiento en tiempo real, precisión superior y facilidad de uso en comparación con otros modelos como Mask R-CNN o Faster R-CNN. YOLO26 procesa las imágenes en una sola pasada (detección de una etapa), por lo que es considerablemente más rápido y mantiene una gran precisión. También proporciona una integración fluida con Ultralytics Platform, lo que permite gestionar modelos, conjuntos de datos y canalizaciones de entrenamiento de forma eficiente. Para aplicaciones que requieren velocidad y precisión, YOLO26 ofrece un equilibrio óptimo.

  • Sí, Ultralytics ofrece varios conjuntos de datos adecuados para entrenar modelos YOLO26 para la segmentación de instancias, como COCO-Seg, COCO8-Seg (un subconjunto más pequeño para realizar pruebas rápidas), Package-Seg y Crack-Seg. Estos conjuntos de datos incluyen las anotaciones a nivel de píxel necesarias para las tareas de segmentación de instancias. Para aplicaciones más especializadas, también puedes crear conjuntos de datos personalizados siguiendo el formato de Ultralytics. Encontrarás información completa sobre los conjuntos de datos e instrucciones de uso en la documentación de conjuntos de datos de Ultralytics.

Comentarios