Entender los pasos clave en un proyecto de visión artificial
Introducción
La visión artificial es un subcampo 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.
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 diversas industrias, desde la conducción autónoma hasta la imagen médica, para obtener información valiosa.
Trabajar en tus propios proyectos de visión artificial es una forma estupenda de entender y aprender más sobre el campo. Sin embargo, un proyecto de visión artificial puede constar de muchos pasos y al principio puede parecer confuso. Al final de esta guía, estarás familiarizado con los pasos necesarios en un proyecto de visión artificial. Repasaremos todo, desde el principio hasta el final del proyecto, explicando por qué cada parte es importante.
Una visión general de un proyecto de visión artificial
Antes de tratar los detalles de cada paso involucrado en un proyecto de visión artificial, echemos un vistazo al proceso general. Si empezaras un proyecto de visión artificial hoy, seguirías estos pasos:
- Tu primera prioridad sería entender 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, probarías y evaluarías a fondo tu modelo para asegurarte de que funciona de forma coherente en diferentes condiciones.
- Por último, desplegarías tu modelo en el mundo real y lo actualizarías basándote en nuevos conocimientos y comentarios.
Ahora que sabemos qué esperar, sumerjámonos directamente en los pasos y hagamos que tu proyecto avance.
Paso 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 el caso de la visión artificial, ya que 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 alcanzarlos:
-
Objetivo: Desarrollar un sistema que pueda monitorizar 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 la monitorización del tráfico porque localiza e identifica eficientemente 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 tumores en escaneos de imágenes médicas.
- Tarea de visión artificial: La segmentación de imágenes es adecuada para la imagen médica porque proporciona límites precisos y detallados de los tumores, los cuales son cruciales para evaluar el tamaño, la forma y la planificación del tratamiento.
-
Objetivo: Crear un sistema digital que categorice varios 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 considerar la posición del documento en la imagen. Este enfoque simplifica y acelera el proceso de clasificación.
Paso 1.5: Selección del modelo y enfoque de entrenamiento adecuados
Tras 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 adecuado y el enfoque de entrenamiento.
Dependiendo del objetivo, podrías 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 de datos específicos. En ese caso, puede ser más práctico recopilar 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 la forma en que preparas tus datos. Entrenar desde cero requiere un conjunto de datos diverso para construir la comprensión 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, como redimensionar imágenes o añadir anotaciones, según los requisitos específicos del modelo.
Nota: Al elegir un modelo, considera su despliegue para garantizar la compatibilidad y el rendimiento. Por ejemplo, los modelos ligeros son ideales para la computación en el borde 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 meterte de lleno en el trabajo práctico de un proyecto de visión artificial, es importante tener una comprensión clara de estos detalles. Comprueba que has considerado 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 específica de visión artificial 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.
Paso 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 estupendos para descargar conjuntos de datos de alta calidad: Google Dataset Search Engine, UC Irvine Machine Learning Repository y Kaggle Datasets.
Algunas bibliotecas, como Ultralytics, ofrecen soporte integrado para varios conjuntos de datos, facilitando el empezar con datos de alta calidad. Estas bibliotecas suelen incluir 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 eliges recopilar imágenes o hacer tus propias fotos, necesitarás 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 toda la imagen como una única clase.
- Detección de objetos: Dibujarás cuadros delimitadores alrededor de cada objeto en la imagen y etiquetarás cada cuadro.
- Segmentación de imágenes: Etiquetarás cada píxel de la imagen según el objeto al que pertenece, creando límites detallados de los objetos.
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: LabeI Studio, CVAT y Labelme.
Paso 3: Aumento de datos y división de tu conjunto de datos
Tras 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 el aumento de datos. Dividir tu conjunto de datos antes del aumento es crucial para probar y validar tu modelo con datos originales y no alterados. Ayuda a evaluar con precisión qué tan bien se generaliza el modelo ante 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.
Tras 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 con imágenes no vistas.
Bibliotecas como OpenCV, Albumentations y TensorFlow ofrecen funciones de aumento flexibles que puedes utilizar. Además, algunas bibliotecas, como Ultralytics, tienen ajustes de aumento integrados 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 correctamente, puedes desarrollar un modelo bien entrenado, validado y probado que funcione bien en aplicaciones del mundo real.
Paso 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.
Primero, 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 de la GPU y a 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 iniciar el entrenamiento introduciendo datos en el modelo con un código mínimo. Estas bibliotecas gestionan los ajustes de peso, la retropropagación y la validación automáticamente. 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 seguir los cambios y garantizar la reproducibilidad. Herramientas como DVC (Data Version Control) pueden ayudar a gestionar grandes conjuntos de datos.
Paso 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 las áreas en las que el modelo destaca y donde puede necesitar mejoras. El ajuste fino garantiza que el modelo esté optimizado para el mejor rendimiento posible.
- Métricas de rendimiento: Utiliza métricas como la precisión, precision, recall y la puntuación F1 para evaluar el rendimiento de tu modelo. Estas métricas proporcionan información sobre lo bien que tu modelo realiza las predicciones.
- 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 los 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 ajustar las tasas de aprendizaje, los tamaños de lote u otros parámetros del modelo.
Para una comprensión más profunda de las técnicas de evaluación y ajuste fino de modelos, consulta nuestra guía de perspectivas sobre la evaluación de modelos.
Paso 6: Prueba del modelo
En este paso, puedes asegurarte de que tu modelo funciona bien con datos completamente inéditos, confirmando su preparación para el despliegue. La diferencia entre la prueba 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 separado 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, aborda problemas comunes como el sobreajuste, el subajuste 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.
Paso 7: Despliegue del modelo
Una vez que tu modelo haya sido probado exhaustivamente, es hora de desplegarlo. El despliegue del modelo implica hacer que tu modelo esté disponible para su uso en un entorno de producción. Estos son los pasos para desplegar un modelo de visión artificial:
- Configuración del entorno: Configura la infraestructura necesaria para la opción de despliegue que hayas elegido, ya sea basada en la nube (AWS, Google Cloud, Azure) o 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 escalado automático 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 estrategias de despliegue y 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 escalado automático en 43 regiones globales, gestionando la configuración de la infraestructura automáticamente.
Paso 8: Monitorización, mantenimiento y documentación
Una vez desplegado tu modelo, es importante monitorizar 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 seguir los indicadores clave de rendimiento (KPI) y detectar anomalías o caídas en la precisión. Al monitorizar el modelo, puedes ser consciente de la deriva del modelo, donde el rendimiento del modelo 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.
Además de la monitorización y el mantenimiento, la documentación también es clave. Documenta a fondo todo el proceso, incluyendo 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 futuras actualizaciones o la resolución de problemas. Al monitorizar, mantener y documentar tu modelo eficazmente, puedes asegurar que siga siendo preciso, fiable y fácil de gestionar a lo largo de su ciclo de vida.
Participar en la comunidad
Conectar con una comunidad de entusiastas de la visión artificial puede ayudarte a abordar cualquier problema al que te enfrentes mientras trabajas en tu proyecto de visión artificial con confianza. Aquí tienes algunas formas de aprender, solucionar problemas y conectar eficazmente.
Recursos de la comunidad
- GitHub Issues: Echa un vistazo al repositorio de YOLO26 en GitHub y utiliza la pestaña Issues para hacer preguntas, informar de errores y sugerir nuevas funciones. La comunidad activa 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.
Documentación oficial
- Documentación de Ultralytics YOLO26: 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.
Siguientes 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.
Preguntas frecuentes
¿Cómo elijo la tarea de visión artificial adecuada para mi proyecto?
Elegir la tarea de visión artificial adecuada depende del objetivo final de tu proyecto. Por ejemplo, si quieres monitorizar 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 la imagen médica, la segmentación de imágenes es ideal para proporcionar límites 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 clasificación de imágenes y la segmentación de instancias.
¿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: Toda la imagen etiquetada como una única clase.
- Detección de objetos: Cuadros delimitadores dibujados 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.
¿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 no alterados. 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.
Tras 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 ayudar. Ultralytics también ofrece ajustes de aumento integrados para mayor comodidad.
¿Cómo puedo exportar mi modelo de visión artificial entrenado para su despliegue?
Exportar tu modelo asegura la compatibilidad con diferentes plataformas de despliegue. Ultralytics proporciona múltiples formatos, incluidos ONNX, TensorRT y CoreML. Para exportar tu modelo YOLO26, sigue esta guía:
- Usa la función
exportcon el parámetro de formato deseado. - Asegúrate de que el modelo exportado se ajuste a las especificaciones de tu entorno de despliegue (p. ej., dispositivos edge, nube).
Para obtener más información, consulta la guía de exportación de modelos.
¿Cuáles son las mejores prácticas para supervisar y mantener un modelo de visión artificial desplegado?
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 Desempeño (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, incluyendo la arquitectura del modelo, los hiperparámetros y los cambios, para asegurar la reproducibilidad y facilitar futuras actualizaciones. Aprende más en nuestra guía de supervisión y mantenimiento.