Meet YOLO26: next-gen vision AI.

Link to this sectionComprender los pasos clave en un proyecto de visión artificial#

Link to this sectionIntroducción#

La visión artificial es una subdisciplina de la inteligencia artificial (IA) que ayuda a los ordenadores a ver y comprender el mundo como lo hacen los humanos. Procesa y analiza imágenes o vídeos para extraer información, reconocer patrones y tomar decisiones basadas en esos datos.



Watch: How to Do Computer Vision Projects | A Step-by-Step Guide

Las técnicas de visión artificial como la detección de objetos, la clasificación de imágenes y la segmentación de instancias pueden aplicarse en diversos sectores, desde la conducción autónoma hasta la imágenes médicas para obtener información valiosa.

Trabajar en tus propios proyectos de visión artificial es una forma excelente de comprender y aprender más sobre esta disciplina. Sin embargo, un proyecto de visión artificial puede constar de muchos pasos y puede parecer confuso al principio. Al final de esta guía, estarás familiarizado con los pasos necesarios en un proyecto de visión artificial. Analizaremos todo desde el principio hasta el final de un proyecto, explicando por qué es importante cada parte.

Link to this sectionUna visión general de un proyecto de visión artificial#

Antes de tratar los detalles de cada paso necesario en un proyecto de visión artificial, echemos un vistazo al proceso general. Si iniciaras un proyecto de visión artificial hoy, seguirías estos pasos:

  • Tu primera prioridad sería comprender los requisitos de tu proyecto.
  • Después, recopilarías y etiquetarías con precisión las imágenes que ayudarán a entrenar tu modelo.
  • A continuación, limpiarías tus datos y aplicarías técnicas de aumento para prepararlos para el entrenamiento del modelo.
  • Tras el entrenamiento del modelo, lo probarías y evaluarías a fondo para asegurarte de que funciona de forma coherente en distintas condiciones.
  • Por último, desplegarías tu modelo en el mundo real y lo actualizarías basándote en nuevos conocimientos y comentarios.

Computer Vision Project Steps Overview

Ahora que sabemos qué esperar, profundicemos en los pasos y hagamos que tu proyecto avance.

Link to this sectionPaso 1: Definir los objetivos de tu proyecto#

El primer paso en cualquier proyecto de visión artificial es definir claramente el problema que intentas resolver. Conocer el objetivo final te ayuda a empezar a construir una solución. Esto es especialmente cierto en lo que respecta a la visión artificial, porque el objetivo de tu proyecto afectará directamente a la tarea de visión artificial en la que debes centrarte.

Aquí tienes algunos ejemplos de objetivos de proyectos y las tareas de visión artificial que pueden utilizarse para alcanzar estos objetivos:

  • Objetivo: Desarrollar un sistema que pueda supervisar y gestionar el flujo de diferentes tipos de vehículos en autopistas, mejorando la gestión del tráfico y la seguridad.

    • Tarea de visión artificial: La detección de objetos es ideal para el control del tráfico porque localiza e identifica eficazmente múltiples vehículos. Es menos exigente desde el punto de vista computacional que la segmentación de imágenes, que proporciona detalles innecesarios para esta tarea, garantizando un análisis más rápido y en tiempo real.
  • Objetivo: Desarrollar una herramienta que ayude a los radiólogos proporcionando contornos precisos a nivel de píxel de los tumores en escaneos de imágenes médicas.

    • Tarea de visión artificial: La segmentación de imágenes es adecuada para imágenes médicas porque proporciona límites precisos y detallados de los tumores, algo crucial para evaluar el tamaño, la forma y la planificación del tratamiento.
  • Objetivo: Crear un sistema digital que clasifique diversos documentos (por ejemplo, facturas, recibos, documentos legales) para mejorar la eficiencia organizativa y la recuperación de documentos.

    • Tarea de visión artificial: La clasificación de imágenes es ideal aquí, ya que maneja un documento a la vez, sin necesidad de tener en cuenta la posición del documento en la imagen. Este enfoque simplifica y acelera el proceso de clasificación.

Link to this sectionPaso 1.5: Selección del modelo y el enfoque de entrenamiento correctos#

Después de entender el objetivo del proyecto y las tareas de visión artificial adecuadas, una parte esencial de la definición del objetivo del proyecto es seleccionar el modelo correcto y el enfoque de entrenamiento.

Dependiendo del objetivo, puedes elegir seleccionar el modelo primero o después de ver qué datos puedes recopilar en el Paso 2. Por ejemplo, supongamos que tu proyecto depende en gran medida de la disponibilidad de tipos específicos de datos. En ese caso, puede ser más práctico reunir y analizar los datos primero antes de seleccionar un modelo. Por otro lado, si tienes una comprensión clara de los requisitos del modelo, puedes elegir el modelo primero y luego recopilar los datos que se ajusten a esas especificaciones.

Elegir entre entrenar desde cero o utilizar aprendizaje por transferencia afecta a cómo preparas tus datos. Entrenar desde cero requiere un conjunto de datos diverso para construir el conocimiento del modelo desde cero. El aprendizaje por transferencia, por otro lado, te permite utilizar un modelo preentrenado y adaptarlo con un conjunto de datos más pequeño y específico. Además, elegir un modelo específico para entrenar determinará cómo necesitas preparar tus datos, por ejemplo redimensionando imágenes o añadiendo anotaciones, de acuerdo con los requisitos específicos del modelo.

Training From Scratch Vs. Using Transfer Learning

Nota: Al elegir un modelo, ten en cuenta su despliegue para garantizar la compatibilidad y el rendimiento. Por ejemplo, los modelos ligeros son ideales para edge computing debido a su eficiencia en dispositivos con recursos limitados. Para saber más sobre los puntos clave relacionados con la definición de tu proyecto, lee nuestra guía sobre cómo definir los objetivos de tu proyecto y seleccionar el modelo adecuado.

Antes de empezar con el trabajo práctico de un proyecto de visión artificial, es importante tener una comprensión clara de estos detalles. Comprueba dos veces que has tenido en cuenta lo siguiente antes de pasar al Paso 2:

  • Define claramente el problema que intentas resolver.
  • Determina el objetivo final de tu proyecto.
  • Identifica la tarea de visión artificial específica necesaria (por ejemplo, detección de objetos, clasificación de imágenes, segmentación de imágenes).
  • Decide si entrenar un modelo desde cero o utilizar aprendizaje por transferencia.
  • Selecciona el modelo adecuado para tu tarea y tus necesidades de despliegue.

Link to this sectionPaso 2: Recopilación y anotación de datos#

La calidad de tus modelos de visión artificial depende de la calidad de tu conjunto de datos. Puedes recopilar imágenes de Internet, hacer tus propias fotos o utilizar conjuntos de datos preexistentes. Aquí tienes algunos recursos excelentes para descargar conjuntos de datos de alta calidad: Google Dataset Search Engine, UC Irvine Machine Learning Repository y Kaggle Datasets.

Algunas bibliotecas, como Ultralytics, proporcionan soporte integrado para diversos conjuntos de datos, lo que facilita empezar con datos de alta calidad. Estas bibliotecas a menudo incluyen utilidades para utilizar conjuntos de datos populares sin problemas, lo que puede ahorrarte mucho tiempo y esfuerzo en las fases iniciales de tu proyecto.

Sin embargo, si decides recopilar imágenes o hacer tus propias fotos, tendrás que anotar tus datos. La anotación de datos es el proceso de etiquetar tus datos para transmitir conocimientos a tu modelo. El tipo de anotación de datos con el que trabajarás depende de tu técnica de visión artificial específica. Aquí tienes algunos ejemplos:

  • Clasificación de imágenes: Etiquetarás la imagen completa como una sola clase.
  • Detección de objetos: Dibujarás cajas delimitadoras alrededor de cada objeto en la imagen y etiquetarás cada caja.
  • Segmentación de imágenes: Etiquetarás cada píxel de la imagen según el objeto al que pertenece, creando contornos detallados de los objetos.

Bounding box, polygon, and keypoint annotations

La recopilación y anotación de datos puede ser un esfuerzo manual que requiere mucho tiempo. Las herramientas de anotación pueden ayudar a facilitar este proceso. Aquí tienes algunas herramientas de anotación abiertas útiles: Label Studio, CVAT y Labelme.

Link to this sectionPaso 3: Aumento de datos y división de tu conjunto de datos#

Después de recopilar y anotar tus datos de imagen, es importante dividir primero tu conjunto de datos en conjuntos de entrenamiento, validación y prueba antes de realizar aumento de datos. Dividir tu conjunto de datos antes del aumento es crucial para probar y validar tu modelo con datos originales y sin alterar. Ayuda a evaluar con precisión lo bien que el modelo se generaliza a datos nuevos y no vistos.

Así es como debes dividir tus datos:

  • Conjunto de entrenamiento: Es la mayor parte de tus datos, normalmente el 70-80% del total, utilizados para entrenar tu modelo.
  • Conjunto de validación: Normalmente alrededor del 10-15% de tus datos; este conjunto se utiliza para ajustar los hiperparámetros y validar el modelo durante el entrenamiento, ayudando a prevenir el sobreajuste.
  • Conjunto de prueba: El 10-15% restante de tus datos se reserva como conjunto de prueba. Se utiliza para evaluar el rendimiento del modelo con datos no vistos una vez completado el entrenamiento.

Después de dividir tus datos, puedes realizar el aumento de datos aplicando transformaciones como rotar, escalar y voltear imágenes para aumentar artificialmente el tamaño de tu conjunto de datos. El aumento de datos hace que tu modelo sea más robusto ante variaciones y mejora su rendimiento en imágenes no vistas.

Data augmentation examples

Bibliotecas como OpenCV, Albumentations y TensorFlow ofrecen funciones de aumento flexibles que puedes utilizar. Además, algunas bibliotecas, como Ultralytics, tienen configuraciones de aumento integradas directamente dentro de su función de entrenamiento de modelos, simplificando el proceso.

To understand your data better, you can use tools like Matplotlib or Seaborn to visualize the images and analyze their distribution and characteristics. Visualizing your data helps identify patterns, anomalies, and the effectiveness of your augmentation techniques. The Ultralytics Platform Charts tab can surface many of these insights without any code by automatically generating split distribution, class counts, image-dimension histograms, and annotation-position heatmaps for every uploaded dataset.

Al entender, dividir y aumentar tus datos adecuadamente, puedes desarrollar un modelo bien entrenado, validado y probado que funcione bien en aplicaciones del mundo real.

Link to this sectionPaso 4: Entrenamiento del modelo#

Una vez que tu conjunto de datos esté listo para el entrenamiento, puedes centrarte en configurar el entorno necesario, gestionar tus conjuntos de datos y entrenar tu modelo.

En primer lugar, tendrás que asegurarte de que tu entorno esté configurado correctamente. Normalmente, esto incluye lo siguiente:

  • Instalar bibliotecas y marcos esenciales como TensorFlow, PyTorch o Ultralytics.
  • Si utilizas una GPU, instalar bibliotecas como CUDA y cuDNN ayudará a habilitar la aceleración por GPU y acelerar el proceso de entrenamiento.

A continuación, puedes cargar tus conjuntos de datos de entrenamiento y validación en tu entorno. Normaliza y preprocesa los datos mediante redimensionamiento, conversión de formato o aumento. Con tu modelo seleccionado, configura las capas y especifica los hiperparámetros. Compila el modelo estableciendo la función de pérdida, el optimizador y las métricas de rendimiento.

Bibliotecas como Ultralytics simplifican el proceso de entrenamiento. Puedes empezar a entrenar introduciendo datos en el modelo con un código mínimo. Estas bibliotecas manejan automáticamente los ajustes de pesos, la propagación hacia atrás y la validación. También ofrecen herramientas para supervisar el progreso y ajustar los hiperparámetros fácilmente. Tras el entrenamiento, guarda el modelo y sus pesos con unos pocos comandos.

Es importante tener en cuenta que una gestión adecuada del conjunto de datos es vital para un entrenamiento eficiente. Utiliza el control de versiones para los conjuntos de datos para realizar un seguimiento de los cambios y garantizar la reproducibilidad. Herramientas como DVC (Data Version Control) pueden ayudar a gestionar grandes conjuntos de datos.

Link to this sectionPaso 5: Evaluación y ajuste fino del modelo#

Es importante evaluar el rendimiento de tu modelo utilizando varias métricas y perfeccionarlo para mejorar la precisión. La evaluación ayuda a identificar áreas en las que el modelo destaca y donde puede necesitar mejoras. El ajuste fino garantiza que el modelo esté optimizado para obtener el mejor rendimiento posible.

  • Métricas de rendimiento: Utiliza métricas como exactitud, precisión, exhaustividad (recall) y puntuación F1 para evaluar el rendimiento de tu modelo. Estas métricas ofrecen información sobre cómo de bien está realizando predicciones tu modelo.
  • Ajuste de hiperparámetros: Ajusta los hiperparámetros para optimizar el rendimiento del modelo. Técnicas como la búsqueda en cuadrícula o la búsqueda aleatoria pueden ayudar a encontrar los mejores valores de hiperparámetros.
  • Ajuste fino: Realiza pequeños ajustes en la arquitectura del modelo o en el proceso de entrenamiento para mejorar el rendimiento. Esto podría implicar retocar las tasas de aprendizaje, los tamaños de lote (batch sizes) u otros parámetros del modelo.

Para una comprensión más profunda de la evaluación de modelos y las técnicas de ajuste fino, consulta nuestra guía de conocimientos sobre evaluación de modelos.

Link to this sectionPaso 6: Pruebas del modelo#

En este paso, puedes asegurarte de que tu modelo funciona bien con datos completamente nuevos, confirmando su preparación para el despliegue. La diferencia entre las pruebas del modelo y la evaluación del modelo es que se centra en verificar el rendimiento del modelo final en lugar de mejorarlo iterativamente.

Es importante probar a fondo y depurar cualquier problema común que pueda surgir. Prueba tu modelo en un conjunto de datos de prueba independiente que no se haya utilizado durante el entrenamiento o la validación. Este conjunto de datos debe representar escenarios del mundo real para garantizar que el rendimiento del modelo sea coherente y fiable.

Además, soluciona problemas comunes como el sobreajuste, el subajuste (underfitting) y la fuga de datos. Utiliza técnicas como la validación cruzada y la detección de anomalías para identificar y solucionar estos problemas. Para obtener estrategias de prueba exhaustivas, consulta nuestra guía de pruebas de modelos.

Link to this sectionPaso 7: Despliegue del modelo#

Una vez que tu modelo haya sido probado a fondo, es hora de desplegarlo. El despliegue del modelo implica poner tu modelo a disposición para su uso en un entorno de producción. Aquí tienes los pasos para desplegar un modelo de visión artificial:

  • Configuración del entorno: Configura la infraestructura necesaria para la opción de despliegue elegida, ya sea basada en la nube (AWS, Google Cloud, Azure) o basada en el borde (dispositivos locales, IoT).
  • Exportación del modelo: Exporta tu modelo al formato adecuado (por ejemplo, ONNX, TensorRT, CoreML para YOLO26) para garantizar la compatibilidad con tu plataforma de despliegue.
  • Despliegue del modelo: Despliega el modelo configurando APIs o puntos finales e integrándolo con tu aplicación.
  • Garantizar la escalabilidad: Implementa equilibradores de carga, grupos de autoescalado y herramientas de monitorización para gestionar los recursos y manejar el aumento de datos y las solicitudes de los usuarios.

Para obtener una guía más detallada sobre las estrategias de despliegue y las mejores prácticas, consulta nuestra guía de prácticas de despliegue de modelos. La Plataforma Ultralytics también proporciona puntos finales de despliegue gestionados con autoescalado en 43 regiones globales, gestionando la configuración de la infraestructura automáticamente.

Link to this sectionPaso 8: Monitorización, mantenimiento y documentación#

Una vez desplegado tu modelo, es importante supervisar continuamente su rendimiento, mantenerlo para gestionar cualquier problema y documentar todo el proceso para futuras referencias y mejoras.

Las herramientas de monitorización pueden ayudarte a realizar un seguimiento de los indicadores clave de rendimiento (KPI) y detectar anomalías o caídas en la precisión. Al supervisar el modelo, puedes ser consciente de la deriva del modelo, donde el rendimiento del mismo disminuye con el tiempo debido a cambios en los datos de entrada. Vuelve a entrenar periódicamente el modelo con datos actualizados para mantener la precisión y la relevancia.

Model monitoring and maintenance lifecycle

Además de la monitorización y el mantenimiento, la documentación también es clave. Documenta exhaustivamente todo el proceso, incluida la arquitectura del modelo, los procedimientos de entrenamiento, los hiperparámetros, los pasos de preprocesamiento de datos y cualquier cambio realizado durante el despliegue y el mantenimiento. Una buena documentación garantiza la reproducibilidad y facilita las futuras actualizaciones o la resolución de problemas. Al supervisar, mantener y documentar tu modelo con eficacia, puedes asegurarte de que siga siendo preciso, fiable y fácil de gestionar a lo largo de su ciclo de vida.

Link to this sectionParticipar en la comunidad#

Conectar con una comunidad de entusiastas de la visión artificial puede ayudarte a abordar cualquier problema que te surja mientras trabajas en tu proyecto con confianza. Aquí tienes algunas formas de aprender, solucionar problemas y establecer contactos eficazmente.

Link to this sectionRecursos de la comunidad#

  • GitHub Issues: Echa un vistazo al repositorio de GitHub de YOLO26 y utiliza la pestaña de Issues para hacer preguntas, informar de errores y sugerir nuevas funciones. La activa comunidad y los mantenedores están ahí para ayudar con problemas específicos.
  • Servidor de Discord de Ultralytics: Únete al servidor de Discord de Ultralytics para interactuar con otros usuarios y desarrolladores, obtener soporte y compartir conocimientos.

Link to this sectionDocumentación oficial#

  • Documentación de YOLO26 de Ultralytics: Explora la documentación oficial de YOLO26 para obtener guías detalladas con consejos útiles sobre diferentes tareas y proyectos de visión artificial.

Utilizar estos recursos te ayudará a superar desafíos y a mantenerte al día con las últimas tendencias y mejores prácticas en la comunidad de visión artificial.

Link to this sectionPróximos pasos#

Emprender un proyecto de visión artificial puede ser emocionante y gratificante. Siguiendo los pasos de esta guía, puedes construir una base sólida para el éxito. Cada paso es crucial para desarrollar una solución que cumpla tus objetivos y funcione bien en escenarios del mundo real. A medida que ganes experiencia, descubrirás técnicas y herramientas avanzadas para mejorar tus proyectos.

Link to this sectionFAQ#

Link to this section¿Cómo elijo la tarea de visión artificial adecuada para mi proyecto?#

Elegir la tarea de visión artificial correcta depende del objetivo final de tu proyecto. Por ejemplo, si quieres controlar el tráfico, la detección de objetos es adecuada, ya que puede localizar e identificar múltiples tipos de vehículos en tiempo real. Para imágenes médicas, la segmentación de imágenes es ideal para proporcionar contornos detallados de tumores, ayudando en el diagnóstico y la planificación del tratamiento. Aprende más sobre tareas específicas como la detección de objetos, la segmentación de instancias, la segmentación semántica y la clasificación de imágenes.

Link to this section¿Por qué es crucial la anotación de datos en los proyectos de visión artificial?#

La anotación de datos es vital para enseñar a tu modelo a reconocer patrones. El tipo de anotación varía según la tarea:

  • Clasificación de imágenes: Imagen completa etiquetada como una sola clase.
  • Detección de objetos: Cajas delimitadoras dibujadas alrededor de los objetos.
  • Segmentación de imágenes: Cada píxel etiquetado según el objeto al que pertenece.

Herramientas como Label Studio, CVAT y Labelme pueden ayudar en este proceso. Para más detalles, consulta nuestra guía de recopilación y anotación de datos.

Link to this section¿Qué pasos debo seguir para aumentar y dividir mi conjunto de datos eficazmente?#

Dividir tu conjunto de datos antes del aumento ayuda a validar el rendimiento del modelo con datos originales y sin alterar. Sigue estos pasos:

  • Conjunto de entrenamiento: 70-80% de tus datos.
  • Conjunto de validación: 10-15% para el ajuste de hiperparámetros.
  • Conjunto de prueba: 10-15% restante para la evaluación final.

Después de la división, aplica técnicas de aumento de datos como rotación, escalado y volteo para aumentar la diversidad del conjunto de datos. Bibliotecas como Albumentations y OpenCV pueden ayudarte. Ultralytics también ofrece configuraciones de aumento integradas por comodidad.

Link to this section¿Cómo puedo exportar mi modelo de visión artificial entrenado para su implementación?#

Exportar tu modelo garantiza la compatibilidad con diferentes plataformas de implementación. Ultralytics proporciona múltiples formatos, incluidos ONNX, TensorRT y CoreML. Para exportar tu modelo YOLO26, sigue esta guía:

  • Utiliza la función export con el parámetro de formato deseado.
  • Asegúrate de que el modelo exportado se ajuste a las especificaciones de tu entorno de implementación (por ejemplo, dispositivos edge, nube).

Para obtener más información, consulta la guía de exportación de modelos.

Link to this section¿Cuáles son las mejores prácticas para supervisar y mantener un modelo de visión artificial implementado?#

La supervisión y el mantenimiento continuos son esenciales para el éxito a largo plazo de un modelo. Implementa herramientas para realizar un seguimiento de los Indicadores Clave de Rendimiento (KPIs) y detectar anomalías. Reentrena el modelo regularmente con datos actualizados para contrarrestar la degradación del modelo (model drift). Documenta todo el proceso, incluida la arquitectura del modelo, los hiperparámetros y los cambios, para garantizar la reproducibilidad y facilitar futuras actualizaciones. Aprende más en nuestra guía de supervisión y mantenimiento.

Comentarios