Segmentación de instancias y seguimiento con Ultralytics YOLO26 🚀
¿Qué es la segmentación de instancias?
La segmentación de instancias es una tarea de visión artificial que consiste en identificar y contornear objetos individuales en 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 etiqueta de forma única y delimita con precisión cada instancia de objeto, lo que la hace crucial para aplicaciones que requieren una comprensión espacial detallada, como la imagenología médica, la conducción autónoma y la automatización industrial.
Ultralytics YOLO26 proporciona potentes capacidades de segmentación de instancias que permiten la detección precisa de los límites de los objetos, manteniendo al mismo tiempo la velocidad y la eficiencia por las que se conocen los modelos YOLO.
Existen dos tipos de seguimiento de segmentación de instancias disponibles en el paquete de Ultralytics:
-
Segmentación de instancias con objetos de clase: A cada objeto de clase se le asigna un color único para una clara separación visual.
-
Segmentación de instancias con seguimiento de objetos: Cada seguimiento está representado por un color distinto, lo que facilita su identificación y seguimiento a través de los fotogramas de vídeo.
Watch: Instance Segmentation with Object Tracking using Ultralytics YOLO26
Muestras
| Segmentación de instancias | Segmentación de instancias + Seguimiento de objetos |
|---|---|
![]() | |
| Segmentación de instancias de Ultralytics 😍 | Segmentación de instancias de Ultralytics con seguimiento de objetos 🔥 |
# 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:
| Argumento | Tipo | Predeterminado | Descripción |
|---|---|---|---|
model | str | None | Ruta a un archivo de modelo Ultralytics YOLO. |
region | list | '[(20, 400), (1260, 400)]' | Lista de puntos que definen la región de conteo. |
También puedes aprovechar los argumentos de track dentro de la solución InstanceSegmentation:
| Argumento | Tipo | Predeterminado | Descripción |
|---|---|---|---|
tracker | str | 'botsort.yaml' | Especifica el algoritmo de seguimiento a utilizar, p. ej., bytetrack.yaml o botsort.yaml. |
conf | float | 0.1 | Establece el umbral de confianza para las detecciones; valores más bajos permiten el seguimiento de más objetos pero pueden incluir falsos positivos. |
iou | float | 0.7 | Establece el umbral de Intersection over Union (IoU) para filtrar detecciones solapadas. |
classes | list | None | Filtra los resultados por índice de clase. Por ejemplo, classes=[0, 2, 3] solo sigue las clases especificadas. |
verbose | bool | True | Controla la visualización de los resultados de seguimiento, proporcionando una salida visual de los objetos seguidos. |
device | str | None | Especifica el dispositivo para la inferencia (p. ej., cpu, cuda:0 o 0). Permite a los usuarios seleccionar entre CPU, una GPU específica u otros dispositivos de computación para la ejecución del modelo. |
Además, están disponibles los siguientes argumentos de visualización:
| Argumento | Tipo | Predeterminado | Descripción |
|---|---|---|---|
show | bool | False | Si es True, muestra las imágenes o vídeos anotados en una ventana. Útil para obtener información visual inmediata durante el desarrollo o las pruebas. |
line_width | int or None | None | Especifica el ancho de línea de las cajas delimitadoras. Si es None, el ancho de línea se ajusta automáticamente según el tamaño de la imagen. Proporciona personalización visual para mayor claridad. |
show_conf | bool | True | Muestra la puntuación de confianza para cada detección junto a la etiqueta. Ofrece información sobre la certeza del modelo para cada detección. |
show_labels | bool | True | Muestra etiquetas para cada detección en el resultado visual. Proporciona una comprensión inmediata de los objetos detectados. |
Aplicaciones de la segmentación de instancias
La segmentación de instancias con YOLO26 tiene numerosas aplicaciones en el mundo real en diversas industrias:
Gestión de residuos y reciclaje
YOLO26 puede utilizarse en instalaciones de gestión de residuos para identificar y clasificar diferentes tipos de materiales. El modelo puede segmentar residuos plásticos, cartón, metal y otros materiales reciclables con gran precisión, permitiendo a los sistemas de clasificación automatizados procesar los residuos de forma más eficiente. Esto es especialmente valioso si consideramos que solo se recicla alrededor del 10 % de los 7000 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 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 crucial para la navegación y las decisiones de seguridad. El rendimiento en tiempo real de YOLO26 lo hace ideal para estas aplicaciones críticas en cuanto al tiempo.
Imagenología médica
La segmentación de instancias puede identificar y contornear tumores, órganos o estructuras celulares en escaneos médicos. 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 de tratamientos.
Monitorización de obras de construcción
En las obras de construcción, la segmentación de instancias puede hacer un seguimiento de maquinaria pesada, trabajadores y materiales. Esto ayuda a garantizar la seguridad mediante la monitorización de las posiciones de los equipos y la detección de cuando los trabajadores entran en zonas peligrosas, al mismo tiempo que optimiza el flujo de trabajo y la asignación de recursos.
Nota
Para cualquier consulta, no dudes en publicar tus preguntas en la sección de incidencias de Ultralytics o en la sección de discusión mencionada más abajo.
Preguntas frecuentes
¿Cómo realizo la segmentación de instancias con Ultralytics YOLO26?
Para realizar la segmentación de instancias utilizando Ultralytics YOLO26, inicializa el modelo YOLO con una versión de segmentación de YOLO26 y procesa los fotogramas de vídeo a través de él. Aquí tienes 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()Aprende más sobre la segmentación de instancias en la guía de Ultralytics YOLO26.
¿Cuál es la diferencia entre la segmentación de instancias y el seguimiento de objetos en Ultralytics YOLO26?
La segmentación de instancias identifica y contornea objetos individuales dentro de una imagen, dando a cada objeto una etiqueta y una máscara únicas. El seguimiento de objetos amplía esto asignando identificadores coherentes a los objetos a través de los fotogramas de vídeo, lo que facilita el seguimiento continuo de los mismos objetos a lo largo del tiempo. Cuando se combinan, como en la implementación de YOLO26, obtienes potentes capacidades para analizar el movimiento y el comportamiento de los objetos en vídeos mientras mantienes información precisa sobre sus límites.
¿Por qué debería usar Ultralytics YOLO26 para segmentación de instancias y seguimiento en lugar de otros modelos como Mask R-CNN o Faster R-CNN?
Ultralytics YOLO26 ofrece un rendimiento en tiempo real, una 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 en una etapa), lo que lo hace significativamente más rápido manteniendo una alta precisión. También proporciona una integración perfecta con la plataforma de Ultralytics, lo que permite a los usuarios gestionar modelos, conjuntos de datos y tuberías de entrenamiento de manera eficiente. Para aplicaciones que requieren tanto velocidad como precisión, YOLO26 proporciona un equilibrio óptimo.
¿Existen conjuntos de datos proporcionados por Ultralytics adecuados para entrenar modelos YOLO26 para la segmentación de instancias y el seguimiento?
Sí, Ultralytics ofrece varios conjuntos de datos adecuados para entrenar modelos YOLO26 para la segmentación de instancias, incluyendo COCO-Seg, COCO8-Seg (un subconjunto más pequeño para pruebas rápidas), Package-Seg y Crack-Seg. Estos conjuntos de datos vienen con 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. La información completa sobre los conjuntos de datos y las instrucciones de uso se pueden encontrar en la documentación de conjuntos de datos de Ultralytics.
