Al hacer clic en “Aceptar todas las cookies”, aceptas el almacenamiento de cookies en tu dispositivo para mejorar la navegación del sitio, analizar el uso del sitio y ayudar en nuestros esfuerzos de marketing. Más información
Configuración de cookies
Al hacer clic en “Aceptar todas las cookies”, aceptas el almacenamiento de cookies en tu dispositivo para mejorar la navegación del sitio, analizar el uso del sitio y ayudar en nuestros esfuerzos de marketing. Más información
Aprenda a entrenar Ultralytics de forma personalizada para la segmentación de instancias, donde el modelo identifica y separa cada objeto individual utilizando máscaras a nivel de píxel.
Gracias a los recientes avances tecnológicos, muchos sistemas inteligentes que desempeñan un papel silencioso pero impactante en nuestras vidas funcionan con IA. Por ejemplo, cuando un coche se salta un semáforo en rojo y una cámara graba automáticamente la infracción, o cuando un sistema automatizado de control de calidad detecta un defecto de fabricación en una línea de producción, la IA está trabajando entre bastidores.
En concreto, una rama de la IA conocida como visión artificial permite a las máquinas interpretar y comprender imágenes y vídeos. La visión artificial permite a los sistemas reconocer objetos, track y analizar detalles visuales en tiempo real, lo que la hace esencial para aplicaciones como la supervisión del tráfico, la inspección industrial y la robótica.
Estas capacidades son posibles gracias a modelos de visión artificial como Ultralytics , que admite diversas tareas de visión, entre ellas la detección de objetos y la segmentación de instancias. Mientras que la detección de objetos identifica objetos mediante sencillos cuadros delimitadores, la segmentación de instancias va más allá al delinear cada objeto a nivel de píxeles, lo que permite obtener resultados más precisos y fiables en situaciones reales.
Fig. 1. Segmentación de objetos en una imagen utilizando YOLO26.
Los modelos como YOLO26 están preentrenados y pueden segment objetos segment como personas, coches y animales nada más sacarlos de la caja. Sin embargo, para aplicaciones más específicas, también se pueden entrenar a medida. En otras palabras, los modelos pueden aprender a comprender cómo son los objetos y cómo delinearlos con precisión.
En este artículo, explicaremos cómo entrenar Ultralytics de forma personalizada para la segmentación de instancias. ¡Empecemos!
¿Qué es la segmentación de instancias?
Antes de profundizar en los modelos de entrenamiento, demos un paso atrás y comprendamos qué significa realmente la segmentación de instancias.
La segmentación de instancias es una tarea de visión artificial que permite a un modelo encontrar cada objeto individual en una imagen y delinear su forma exacta. En lugar de limitarse a identificar que existe un objeto, el modelo examina cada píxel de la imagen y decide si pertenece a un objeto específico.
Esto significa que puede separar objetos incluso cuando se superponen o están muy juntos. Un concepto clave que facilita la visualización de la segmentación de instancias es una máscara.
Una máscara es un contorno a nivel de píxeles que solo cubre el área de un objeto. Se puede considerar como si se coloreara el objeto con un marcador resaltador sin tocar el resto.
Cada objeto tiene su propia máscara, lo que permite al modelo distinguir un objeto de otro, incluso si son del mismo tipo, como dos coches o dos personas que están una al lado de la otra.
Fig. 2. Una mirada a la segmentación de instancias.
Para tener una idea más clara de lo que es la segmentación de instancias, podemos compararla con otras tareas comunes de visión artificial. La detección de objetos utiliza cuadros delimitadores, que son simples rectángulos dibujados alrededor de los objetos. Los cuadros delimitadores son rápidos y útiles, pero no capturan la forma exacta de un objeto.
Por su parte, la segmentación semántica etiqueta cada píxel de la imagen por categoría, pero no distingue entre objetos separados de la misma clase. La segmentación de instancias combina lo mejor de ambos enfoques al identificar categorías de objetos y asignar una máscara separada a cada objeto individual.
Dado que la segmentación de instancias proporciona información tan detallada, resulta especialmente útil en aplicaciones del mundo real, como la inspección automática de calidad, las imágenes médicas y la robótica. Las tareas que requieren mediciones precisas, límites exactos o separación de objetos pueden beneficiarse de esta comprensión a nivel de píxeles.
Ultralytics admite la segmentación de instancias.
Ultralytics es un modelo de visión artificial integral, sin supresión no máxima (NMS) y de última generación, diseñado para gestionar tareas de visión del mundo real de forma rápida y eficiente. Pertenece a laYOLO de modelos de detección Ultralytics YOLO , que pueden procesar imágenes y vídeos en tiempo real y ofrecer resultados precisos.
YOLO26 admite múltiples tareas de visión dentro de un único marco, incluyendo la detección de objetos, la estimación de poses, la clasificación de imágenes, la detección de cuadros delimitadores orientados (obb ) y la segmentación de instancias.
YOLO26 viene preentrenado de fábrica, lo que significa que ya ha aprendido a reconocer objetos comunes, como personas, vehículos y artículos cotidianos, a partir de grandes conjuntos de datos ampliamente utilizados, como el COCO y el ImageNet . Puede empezar a utilizar el modelo inmediatamente sin necesidad de entrenamiento adicional.
Sin embargo, cuando su aplicación implica objetos únicos, entornos específicos o condiciones de iluminación inusuales, el entrenamiento de modelos personalizados puede mejorar significativamente los resultados. Al entrenar YOLO26 con sus propias imágenes etiquetadas, puede enseñar al modelo exactamente qué buscar y cómo delinear objetos con mayor precisión para su caso de uso específico.
Este proceso también se conoce como ajuste fino. En lugar de entrenar un modelo desde cero, el ajuste fino comienza con un modelo YOLO26 preentrenado y lo adapta suavemente utilizando sus propios datos. Dado que el modelo ya comprende patrones visuales generales como bordes, formas y texturas, necesita muchas menos imágenes etiquetadas y mucho menos tiempo para aprender sus objetos específicos.
En pocas palabras, el ajuste fino es más rápido, más eficiente y más accesible que entrenar un modelo desde cero. El entrenamiento personalizado YOLO26 es una opción práctica incluso para principiantes o equipos que trabajan con datos y recursos informáticos limitados.
Exploración de las aplicaciones de segmentación de instancias de YOLO26
Entonces, ¿en qué situaciones puede resultar útil la segmentación de instancias? En situaciones en las que es importante distinguir objetos y comprender sus formas exactas, especialmente cuando hay muchos objetos o se superponen.
A continuación se muestran algunos flujos de trabajo habituales en los que la segmentación de instancias marca una diferencia real:
Imágenes aéreas y con drones: Esta tarea permite a los drones separar objetos como edificios, vehículos y vegetación en imágenes aéreas para cartografía, inspección y topografía.
Análisis deportivo: la segmentación de instancias ayuda a analizar los movimientos y las interacciones de los jugadores separando a cada deportista del fondo durante los partidos o las sesiones de entrenamiento.
Supervisión de construcciones e infraestructuras: ayuda a identificar elementos estructurales, grietas o zonas dañadas en edificios, puentes y carreteras para planificar su mantenimiento.
Atención sanitaria e imágenes médicas: la segmentación de instancias permite delinear con precisión células, tejidos o instrumentos médicos, lo que facilita un análisis y un diagnóstico más precisos.
Agricultura y vigilancia medioambiental: puede identificar y separar cultivos, frutos o enfermedades de las plantas, lo que facilita la estimación de los rendimientos y la aplicación de tratamientos específicos.
Fig. 3. Ejemplo de segmentación de malas hierbas utilizando YOLO26 (Fuente)
Cómo funciona el entrenamiento personalizado YOLO26 para la segmentación de instancias
A continuación, veamos cómo funciona el entrenamiento personalizado. Aunque entrenar un modelo puede parecer algo técnico, el proceso general es sencillo.
Puede preparar sus imágenes, etiquetar los objetos que desea que el modelo aprenda, configurar un pequeño archivo de ajustes y, a continuación, entrenar YOLO26 utilizando el Python Ultralytics Python . ElPython Ultralytics Python es una biblioteca de software que proporciona herramientas listas para usar para entrenar, probar e implementar YOLO sin necesidad de crear todo desde cero.
Paso 1: Prepare su conjunto de datos personalizado.
El primer paso es preparar tu conjunto de datos de segmentación personalizado. Un conjunto de datos es simplemente una colección de imágenes que muestran los objetos que deseas que el modelo aprenda.
Intenta incluir imágenes que reflejen condiciones del mundo real, como diferentes ángulos, iluminación, fondos y tamaños de objetos. Cuanto más variadas sean tus imágenes, mejor funcionará tu modelo.
Para la segmentación de objetos, tus imágenes también necesitan anotaciones. La anotación consiste en etiquetar los objetos de cada imagen para que el modelo sepa qué debe aprender. En lugar de dibujar simples recuadros, dibujarás contornos detallados (polígonos) alrededor de cada objeto para marcar su forma exacta. Estos contornos se convierten en las máscaras que el modelo aprende a predecir.
Existen varias herramientas de anotación de código abierto que puede utilizar para crear estas etiquetas. Muchas de estas herramientas ofrecen interfaces fáciles de usar en las que puede cargar imágenes y dibujar contornos de objetos directamente sobre ellas.
Una vez que tus imágenes y anotaciones estén listas, puedes organizarlas en carpetas de entrenamiento y validación. Una división típica es el 80 % de las imágenes para entrenamiento y el 20 % para validación, aunque también es común el 70 % para entrenamiento y el 30 % para validación, dependiendo del tamaño de tu conjunto de datos. El conjunto de entrenamiento enseña al modelo, mientras que el conjunto de validación se utiliza para medir su rendimiento en imágenes que no ha visto antes.
Es importante mantener este equilibrio y asegurarse de que ambas carpetas contengan una variedad de ejemplos. Un conjunto de datos limpio y bien etiquetado, con una división adecuada entre entrenamiento y validación, constituye la base de un modelo sólido de segmentación de instancias.
Paso 2: Crear un archivo YAML con el conjunto de datos
Después de preparar las imágenes y las anotaciones, el siguiente paso es crear un archivo YAML con el conjunto de datos. Este archivo indica dónde se encuentra el conjunto de datos y qué clases de objetos debe aprender el modelo durante el entrenamiento.
En este archivo, puede definir el directorio raíz del conjunto de datos, las rutas a las carpetas de imágenes de entrenamiento y validación, y la lista de nombres de clases. Los nombres de las clases deben aparecer en el mismo orden que los números de clase utilizados en los archivos de anotación, para que todo coincida correctamente.
Ahora que su conjunto de datos y el archivo YAML están listos, el siguiente paso es instalar elPython Ultralytics Python .
Este paquete incluye las herramientas necesarias para entrenar, validar, ejecutar inferencias y exportar modelos YOLO26. Proporciona una forma optimizada de trabajar con YOLO sin tener que crear complejos procesos de entrenamiento desde cero.
Antes de instalar elPython Ultralytics Python , también es importante elegir dónde desea ejecutar su código. Puede trabajar con el Ultralytics en varios entornos de desarrollo diferentes, como:
Interfaz de línea de comandos (CLI): Es un entorno basado en texto en el que interactúas con tu ordenador escribiendo comandos. En lugar de hacer clic en botones o navegar por menús como lo harías en una interfaz gráfica, introduces instrucciones escritas para ejecutar programas y realizar tareas directamente.
Jupyter Notebooks: un entorno interactivo en el que se escribe y ejecuta código en pequeñas secciones y se ve inmediatamente el resultado. Esto resulta útil para la experimentación y el aprendizaje.
Google : una plataforma de cuadernos basada en la nube que no requiere instalación local y ofrece acceso opcional a unidades de procesamiento gráfico (GPU). A menudo, esta es la opción más sencilla para los principiantes.
Una vez que haya elegido su entorno, puede instalar elPython Ultralytics Python . Para instalarlo, ejecute el siguiente comando:
pip install ultralytics
Si utiliza un entorno basado en cuadernos, como Google o Jupyter Notebook, añada un signo de exclamación al principio del comando. Si tiene algún problema con la instalación, puede consultar la Ultralytics o la guía de resolución de problemas para obtener soluciones comunes y consejos de configuración del entorno.
Después de la instalación, estará listo para cargar un modelo de segmentación YOLO26 preentrenado y comenzar el entrenamiento.
Paso 4: Entrenar YOLO26 para la segmentación de instancias
Antes de comenzar el entrenamiento, deberá elegir un tamaño de modelo. Los modelos YOLO26 están disponibles en diferentes tamaños: Nano (n), Pequeño (s), Mediano (m), Grande (l) y Extragrande (x).
Los modelos más pequeños se entrenan más rápido y funcionan de manera más eficiente en unidades centrales de procesamiento (CPU) o dispositivos periféricos, mientras que los modelos más grandes suelen ofrecer una mayor precisión, pero requieren más memoria y se benefician de GPU . Si recién está comenzando o trabaja con hardware limitado, la versión Nano (YOLO26n) es una opción práctica.
Una vez seleccionado el tamaño del modelo, el siguiente paso es cargar un modelo de segmentación preentrenado y comenzar a entrenarlo con su conjunto de datos personalizado. Para ello, deberá especificar el archivo del modelo preentrenado, la ruta al archivo YAML de su conjunto de datos, el número de épocas y el tamaño de la imagen, tal y como se muestra a continuación.
from ultralytics import YOLO
model = YOLO(""yolo26n-seg.pt")
results = model.train(data="path/to/file.yaml", epochs=100, imgsz=640)
El número de épocas determina cuántas veces el modelo recorre todo el conjunto de datos de entrenamiento. Con cada época, el modelo realiza predicciones, las compara con las anotaciones correctas, calcula los errores y actualiza sus parámetros internos para mejorar el rendimiento.
Si el entrenamiento comienza correctamente, verá la configuración del modelo, el escaneo del conjunto de datos y el progreso del entrenamiento en su terminal o cuaderno. A medida que continúa el entrenamiento, los valores de pérdida y las métricas de evaluación se actualizarán después de cada época, mostrando cómo mejora el modelo con el tiempo.
Paso 5: Evaluar el rendimiento del modelo entrenado a medida.
Una vez completado el proceso de entrenamiento, puede revisar y validar las métricas de rendimiento del modelo. En Google , puede navegar a la carpeta «runs», luego a la carpetasegmenty, finalmente, a la carpeta «train», donde encontrará registros que muestran los indicadores clave de rendimiento.
Para los usuarios que trabajan en un Python , los resultados del entrenamiento se guardan de forma predeterminada en el directorio «runs/train/» dentro del directorio de trabajo actual. Cada ejecución de entrenamiento crea un nuevo subdirectorio, como runs/train/exp o runs/train/exp2, donde se pueden encontrar registros, pesos guardados y otros resultados relacionados con ese experimento.
Si utiliza la CLI, puede acceder a estos resultados y gestionarlos mediante el comandoyolo Este comando le permite ver o modificar las rutas y configuraciones relacionadas con los registros de entrenamiento y los detalles del experimento.
Entre los resultados guardados, también encontrarás gráficos generados durante el entrenamiento. Estos gráficos muestran cómo mejoró el modelo con el tiempo. Por ejemplo, muestran cómo disminuyó la pérdida a medida que el modelo aprendía y cómo aumentaron las métricas de evaluación, como la precisión, la recuperación y la precisión media, a lo largo de las épocas.
Fig. 4. Tipos de gráficos que se pueden analizar para evaluar el modelo (Fuente)
Estas tendencias visuales pueden ayudarte a comprender si el modelo se ha entrenado correctamente y en qué medida ha mejorado desde el inicio hasta el final del entrenamiento. Al revisar tanto las métricas numéricas como los gráficos, obtendrás una imagen más clara del rendimiento de tu modelo de segmentación de instancias antes de pasar a la fase de prueba con nuevas imágenes.
Paso 6: Prueba tu modelo y ejecuta inferencias.
Después de validar tu modelo, el último paso es probarlo con nuevas imágenes. Este proceso se denomina inferencia, lo que simplemente significa utilizar tu modelo entrenado para hacer predicciones sobre datos no vistos.
Puedes ejecutar la inferencia en Python la siguiente manera:
En este ejemplo, «path/to/image.jpg» se puede sustituir por la ruta de la imagen que desee probar.
La configuración «save=True» indica al modelo que genere y almacene una nueva imagen que incluya las máscaras de segmentación previstas dibujadas sobre la imagen original.
La configuración «conf=0.3» controla el umbral de confianza, lo que significa que el modelo solo mostrará predicciones que considere correctas con una confianza mínima del 30 %. Si se reduce este valor, es posible que se muestren más detecciones, mientras que si se aumenta, el modelo será más selectivo.
Después de ejecutar el comando, el modelo crea una nueva carpeta dentro del directorio de ejecuciones donde guarda la imagen de salida. Puede abrir esa imagen guardada para comprobar visualmente si las máscaras de segmentación siguen correctamente los límites de los objetos y si los objetos superpuestos se separan correctamente.
Probar el modelo con diferentes imágenes, fondos y condiciones de iluminación puede ayudarte a comprender mejor cómo funciona fuera del conjunto de datos de entrenamiento. Una vez que los resultados parezcan coherentes y precisos, el modelo estará listo para exportarse e implementarse.
Paso 7: Exporta e implementa tu modelo.
Después de probar tu modelo y confirmar que funciona correctamente, el último paso es exportarlo e implementarlo. La exportación convierte tu modelo YOLO26 entrenado a un formato que se puede ejecutar en diferentes entornos, como servidores de producción, dispositivos periféricos o aplicaciones móviles.
Ultralytics múltiples formatos de exportación, lo que le permite elegir el que mejor se adapte a su configuración de implementación. Por ejemplo, puede exportar a ONNX una amplia compatibilidad entre plataformas, TensorRT optimizar GPU en NVIDIA , o OpenVINO una implementación eficiente CPU en Intel . Estas integraciones facilitan la ejecución de su modelo fuera del entorno de entrenamiento y obtienen un sólido rendimiento en tiempo real.
Puede exportar su modelo en Python el siguiente comando:
model.export(format="onnx")
Este comando convierte el modelo entrenado al ONNX . Puede sustituironnx por otros formatos compatibles en función de sus necesidades de implementación.
Una vez exportado, su modelo se puede integrar en aplicaciones como servicios web, sistemas de visión integrados, plataformas robóticas o sistemas de inspección industrial. En esta fase, su modelo de segmentación de instancias YOLO26 entrenado a medida puede pasar de la fase experimental a la implementación en el mundo real.
Conclusiones clave
El entrenamiento personalizado Ultralytics para la segmentación de instancias le ofrece la flexibilidad necesaria para crear un modelo que se adapte realmente a su caso de uso específico. Al preparar un conjunto de datos claro, configurar su archivo YAML, entrenar con pesos de segmentación preentrenados y revisar los resultados, puede enseñar al modelo a delinear con precisión cada objeto a nivel de píxel. Una vez probado y exportado, su modelo YOLO26 puede pasar del desarrollo a aplicaciones multiescala en el mundo real.