Comprender los pasos clave de un proyecto de visión artificial
Introducción
Computer vision is a subfield of artificial intelligence (AI) that helps computers see and understand the world like humans do. It processes and analyzes images or videos to extract information, recognize patterns, and make decisions based on that data.
Observa: How to Do Computer Vision Projects | A Step-by-Step Guide
Las técnicas de visión por ordenador, 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 a la obtención de imágenes médicas, para obtener información valiosa.
Trabajar en sus propios proyectos de visión artificial es una excelente manera de comprender y aprender más sobre la visión por computadora. 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á familiarizado con los pasos involucrados en un proyecto de visión artificial. Repasaremos todo, desde el principio hasta el final de un proyecto, explicando por qué cada parte es importante. ¡Empecemos y hagamos que su proyecto de visión artificial sea un éxito!
Visión general de un proyecto de visión por ordenador
Antes de discutir los detalles de cada paso involucrado en un proyecto de visión por computadora, echemos un vistazo al proceso general. Si comenzara un proyecto de visión artificial hoy, seguiría los siguientes pasos:
- Su primera prioridad sería comprender los requisitos de su proyecto.
- A continuación, recopilaría y etiquetaría con precisión las imágenes que ayudarán a entrenar el modelo.
- A continuación, limpiaría los datos y aplicaría técnicas de aumento para prepararlos para el entrenamiento del modelo.
- Después del entrenamiento del modelo, probaría y evaluaría minuciosamente el modelo para asegurarse de que funciona de manera consistente en diferentes condiciones.
- Por último, implementaría el modelo en el mundo real y lo actualizaría en función de la nueva información y los comentarios.
Ahora que ya sabemos qué esperar, vamos a meternos de lleno en los pasos y a poner en marcha tu proyecto.
Paso 1: Definir los objetivos de tu proyecto
El primer paso en cualquier proyecto de visión artificial es definir claramente el problema que está tratando de resolver. Conocer el objetivo final te ayuda a empezar a construir una solución. Esto es especialmente cierto cuando se trata de visión por computadora, ya que el objetivo de su proyecto afectará directamente a la tarea de visión por computadora en la que debe concentrarse.
He aquí algunos ejemplos de objetivos de proyectos y de tareas de visión artificial que pueden utilizarse para alcanzar dichos objetivos:
Objetivo: Desarrollar un sistema que pueda controlar y gestionar el flujo de distintos tipos de vehículos en las autopistas, mejorando la gestión del tráfico y la seguridad.
- Tarea de visión por ordenador: La detección de objetos es ideal para la vigilancia del tráfico porque localiza e identifica eficazmente varios vehículos. Es menos exigente computacionalmente que la segmentación de imágenes, que proporciona detalles innecesarios para esta tarea, lo que garantiza 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 las exploraciones médicas por imagen.
- Tarea de visión por ordenador: La segmentación de imágenes es adecuada para las imágenes médicas porque proporciona límites precisos y detallados de los tumores que son cruciales para evaluar el tamaño, la forma y la planificación del tratamiento.
Objetivo: Crear un sistema digital que categorice diversos documentos (por ejemplo, facturas, recibos, papeleo legal) para mejorar la eficacia organizativa y la recuperación de documentos.
- Computer Vision Task: Image classification is ideal here as it handles one document at a time, without needing to consider the document's position in the image. This approach simplifies and accelerates the sorting process.
Paso 1.5: Seleccionar el modelo y el enfoque de entrenamiento adecuados
Tras comprender el objetivo del proyecto y las tareas de visión por ordenador adecuadas, una parte esencial de la definición del objetivo del proyecto es seleccionar el modelo y el enfoque de entrenamiento adecuados.
Dependiendo del objetivo, puedes optar por seleccionar el modelo primero o después de ver qué datos eres capaz de recopilar en el Paso 2. Por ejemplo, supongamos que tu proyecto depende en gran medida de la disponibilidad de determinados tipos de datos. En ese caso, puede resultar más práctico reunir y analizar primero los datos antes de seleccionar un modelo. Por otra parte, si tienes una idea clara de los requisitos del modelo, puedes elegir primero el modelo y luego recoger los datos que se ajusten a esas especificaciones.
Choosing between training from scratch or using transfer learning affects how you prepare your data. Training from scratch requires a diverse dataset to build the model's understanding from the ground up. Transfer learning, on the other hand, allows you to use a pre-trained model and adapt it with a smaller, more specific dataset. Also, choosing a specific model to train will determine how you need to prepare your data, such as resizing images or adding annotations, according to the model's specific requirements.
Note: When choosing a model, consider its deployment to ensure compatibility and performance. For example, lightweight models are ideal for edge computing due to their efficiency on resource-constrained devices. To learn more about the key points related to defining your project, read our guide on defining your project's goals and selecting the right model.
Antes de ponerte manos a la obra con un proyecto de visión artificial, es importante que tengas claros estos detalles. Comprueba que has tenido en cuenta lo siguiente antes de pasar al Paso 2:
- Define claramente el problema que estás tratando de resolver.
- Determina el objetivo final de tu proyecto.
- Identifica la tarea específica de visión por ordenador 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 el aprendizaje por transferencia.
- Selecciona el modelo adecuado para tu tarea y necesidades de despliegue.
Paso 2: Recogida 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, tomar tus propias fotos o utilizar conjuntos de datos preexistentes. Aquí tienes algunos recursos estupendos para descargar conjuntos de datos de alta calidad: Google Motor de Búsqueda de Conjuntos de Datos, Repositorio de Aprendizaje Automático de UC Irvine y Conjuntos de Datos de Kaggle.
Algunas bibliotecas, como Ultralytics, ofrecen soporte incorporado para varios conjuntos de datos, lo que facilita empezar a trabajar con datos de alta calidad. Estas bibliotecas suelen incluir utilidades para utilizar sin problemas los conjuntos de datos más populares, lo que puede ahorrarte mucho tiempo y esfuerzo en las fases iniciales de tu proyecto.
Sin embargo, si eliges recopilar imágenes o tomar tus propias fotografías, tendrás que anotar tus datos. La anotación de datos es el proceso de etiquetar los datos para impartir conocimiento al modelo. El tipo de anotación de datos con el que trabajará depende de su técnica específica de visión artificial. Estos son algunos ejemplos:
- Clasificación de imágenes: Etiquetarás toda la imagen como una única clase.
- Object Detection: You'll draw bounding boxes around each object in the image and label each box.
- Image Segmentation: You'll label each pixel in the image according to the object it belongs to, creating detailed object boundaries.
La recogida y anotación de datos puede ser un esfuerzo manual que lleve mucho tiempo. Las herramientas de anotación pueden facilitar este proceso. Aquí tienes algunas herramientas abiertas de anotación útiles: LabeI Studio, CVAT y Labelme.
Step 3: Data Augmentation and Splitting Your Dataset
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 el aumento de datos. Dividir tu conjunto de datos antes del aumento es crucial para probar y validar tu modelo en los datos originales, inalterados. Ayuda a evaluar con precisión lo bien que se generaliza el modelo a datos nuevos y desconocidos.
He aquí cómo dividir tus datos:
- Conjunto de entrenamiento: Es la mayor parte de tus datos, normalmente el 70-80% del total, que se utiliza para entrenar tu modelo.
- Validation Set: Usually around 10-15% of your data; this set is used to tune hyperparameters and validate the model during training, helping to prevent overfitting.
- Conjunto de prueba: El 10-15% restante de tus datos se reserva como conjunto de prueba. Se utiliza para evaluar el rendimiento del modelo en datos no vistos una vez finalizado el entrenamiento.
Después de dividir tus datos, puedes aumentarlos aplicando transformaciones como rotar, escalar y voltear las 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 a las variaciones y mejora su rendimiento en imágenes no vistas.
Libraries like OpenCV, Albumentations, and TensorFlow offer flexible augmentation functions that you can use. Additionally, some libraries, such as Ultralytics, have built-in augmentation settings directly within its model training function, simplifying the process.
Para comprender mejor tus datos, puedes utilizar herramientas como Matplotlib o Seaborn para visualizar las imágenes y analizar su distribución y características. Visualizar tus datos ayuda a identificar patrones, anomalías y la eficacia de tus técnicas de aumento. También puedes utilizar Ultralytics Explorer, una herramienta para explorar conjuntos de datos de visión por ordenador con búsqueda semántica, consultas SQL y búsqueda de similitud vectorial.
Si comprendes, divides y aumentas adecuadamente tus datos, podrás 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.
En primer lugar, deberá asegurarse de que el entorno está configurado correctamente. Normalmente, esto incluye lo siguiente:
- Installing essential libraries and frameworks like TensorFlow, PyTorch, or Ultralytics.
- Si utilizas GPU, instalar bibliotecas como CUDA y cuDNN te ayudará a activar la aceleración de GPU y a acelerar el proceso de entrenamiento.
Then, you can load your training and validation datasets into your environment. Normalize and preprocess the data through resizing, format conversion, or augmentation. With your model selected, configure the layers and specify hyperparameters. Compile the model by setting the loss function, optimizer, and performance metrics.
Libraries like Ultralytics simplify the training process. You can start training by feeding data into the model with minimal code. These libraries handle weight adjustments, backpropagation, and validation automatically. They also offer tools to monitor progress and adjust hyperparameters easily. After training, save the model and its weights with a few commands.
Es importante tener en cuenta que una gestión adecuada de los conjuntos de datos es vital para una formación eficaz. Utiliza el control de versiones de los conjuntos de datos para realizar un seguimiento de los cambios y garantizar la reproducibilidad. Herramientas como DVC (Control de Versiones de Datos) pueden ayudar a gestionar grandes conjuntos de datos.
Step 5: Model Evaluation and Model Finetuning
It's important to assess your model's performance using various metrics and refine it to improve accuracy. Evaluating helps identify areas where the model excels and where it may need improvement. Fine-tuning ensures the model is optimized for the best possible performance.
- Performance Metrics: Use metrics like accuracy, precision, recall, and F1-score to evaluate your model's performance. These metrics provide insights into how well your model is making predictions.
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.
Fine-Tuning: Make small adjustments to the model architecture or training process to enhance performance. This might involve tweaking learning rates, batch sizes, or other model parameters.
Paso 6: Prueba del modelo
En este paso, puedes asegurarte de que tu modelo funciona bien con datos completamente desconocidos, confirmando que está listo para su despliegue. La diferencia entre la prueba de modelos y la evaluación de modelos es que ésta 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 es coherente y fiable.
Also, address common problems such as overfitting, underfitting, and data leakage. Use techniques like cross-validation and anomaly detection to identify and fix these issues.
Step 7: Model Deployment
Una vez que tu modelo ha sido probado a fondo, es hora de desplegarlo. El despliegue consiste en hacer que tu modelo esté disponible para su uso en un entorno de producción. He aquí los pasos para desplegar un modelo de visión por ordenador:
Configurar el entorno: Configura la infraestructura necesaria para la opción de despliegue que hayas elegido, ya esté basada en la nube (AWS, Google Cloud, Azure) o en el borde (dispositivos locales, IoT).
Exporting the Model: Export your model to the appropriate format (e.g., ONNX, TensorRT, CoreML for YOLO11) to ensure compatibility with your deployment platform.
- Desplegar el modelo: Despliega el modelo configurando API o puntos finales e integrándolo con tu aplicación.
- Garantizar la escalabilidad: Implementa equilibradores de carga, grupos de autoescalado y herramientas de supervisión para gestionar los recursos y manejar el aumento de datos y peticiones de los usuarios.
Paso 8: Supervisión, mantenimiento y documentación
Una vez implementado el modelo, es importante supervisar continuamente su rendimiento, mantenerlo para controlar 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 a detectar anomalías o caídas en la precisión. Supervisando el modelo, puedes ser consciente de la deriva del modelo, cuando 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 supervisión y el mantenimiento, la documentación también es clave. Documenta minuciosamente 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 la implantación y el mantenimiento. Una buena documentación garantiza la reproducibilidad y facilita futuras actualizaciones o la resolución de problemas. Si supervisas, mantienes y documentas eficazmente tu modelo, puedes asegurarte de que siga siendo preciso, fiable y fácil de gestionar a lo largo de su ciclo de vida.
Comprometerse con la Comunidad
Conectar con una comunidad de entusiastas de la visión por ordenador puede ayudarte a abordar con confianza cualquier problema que se te plantee mientras trabajas en tu proyecto de visión por ordenador. He aquí algunas formas de aprender, solucionar problemas y trabajar en red con eficacia.
Recursos comunitarios
- GitHub Issues: Check out the YOLO11 GitHub repository and use the Issues tab to ask questions, report bugs, and suggest new features. The active community and maintainers are there to help with specific issues.
- Ultralytics Servidor Discord: Únete al servidor Discord deUltralytics para interactuar con otros usuarios y desarrolladores, obtener ayuda y compartir opiniones.
Documentación oficial
- Ultralytics YOLO11 Documentation: Explore the official YOLO11 documentation for detailed guides with helpful tips on different computer vision tasks and projects.
Utilizar estos recursos te ayudará a superar los retos y a mantenerte al día de las últimas tendencias y las mejores prácticas de la comunidad de visión por ordenador.
¡Pon en marcha hoy tu proyecto de visión artificial!
Emprender un proyecto de visión por ordenador 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 adquieras experiencia, descubrirás técnicas y herramientas avanzadas para mejorar tus proyectos. Mantén la curiosidad, sigue aprendiendo y explora nuevos métodos e innovaciones.
PREGUNTAS FRECUENTES
¿Cómo elijo la tarea de visión artificial adecuada para mi proyecto?
Elegir la tarea de visión por ordenador adecuada 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 varios tipos de vehículos en tiempo real. Para las imágenes médicas, la segmentación de imágenes es ideal para proporcionar límites detallados de los tumores, lo que ayuda en el diagnóstico y la planificación del tratamiento. Más información 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 computerizada?
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 sola 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 recogida de datos y anotación.
¿Qué pasos debo seguir para aumentar y dividir eficazmente mi conjunto de datos?
Dividir tu conjunto de datos antes del aumento ayuda a validar el rendimiento del modelo en los datos originales, no alterados. Sigue estos pasos:
- Conjunto de entrenamiento: 70-80% de tus datos.
- Validation Set: 10-15% for hyperparameter tuning.
- Conjunto de pruebas: El 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 incorporados para mayor comodidad.
¿Cómo puedo exportar mi modelo de visión por ordenador entrenado para desplegarlo?
Exportar tu modelo garantiza la compatibilidad con distintas plataformas de despliegue. Ultralytics proporciona varios formatos, como ONNX, TensorRT y CoreML. Para exportar tu modelo YOLO11, sigue esta guía:
- Utiliza el
export
con el parámetro de formato deseado. - Asegúrate de que el modelo exportado se ajusta a las especificaciones de tu entorno de despliegue (por ejemplo, dispositivos de borde, nube).
Para 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 por ordenador desplegado?
La supervisión y el mantenimiento continuos son esenciales para el éxito a largo plazo de un modelo. Pon en marcha herramientas de seguimiento de los Indicadores Clave de Rendimiento (KPI) y de detección de anomalías. Vuelve a entrenar periódicamente el modelo con datos actualizados para contrarrestar la deriva del modelo. Documenta todo el proceso, incluida la arquitectura del modelo, los hiperparámetros y los cambios, para garantizar la reproducibilidad y la facilidad de futuras actualizaciones. Más información en nuestra guía de supervisión y mantenimiento.