Saltar al contenido

Comprender los pasos clave de un proyecto de visi贸n artificial

Introducci贸n

La visi贸n por ordenador 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 por ordenador, como la detecci贸n de objetos, la clasificaci贸n de im谩genes y la segmentaci贸n de instancias, pueden aplicarse a diversos sectores, desde la conducci贸n aut贸noma a la obtenci贸n de im谩genes m茅dicas, para obtener informaci贸n valiosa.

Visi贸n general de las t茅cnicas de visi贸n por ordenador

Working on your own computer vision projects is a great way to understand and learn more about computer vision. However, a computer vision project can consist of many steps, and it might seem confusing at first. By the end of this guide, you'll be familiar with the steps involved in a computer vision project. We'll walk through everything from the beginning to the end of a project, explaining why each part is important. Let's get started and make your computer vision project a success!

Visi贸n general de un proyecto de visi贸n por ordenador

Before discussing the details of each step involved in a computer vision project, let's look at the overall process. If you started a computer vision project today, you'd take the following steps:

  • Your first priority would be to understand your project's requirements.
  • Then, you'd collect and accurately label the images that will help train your model.
  • Next, you'd clean your data and apply augmentation techniques to prepare it for model training.
  • After model training, you'd thoroughly test and evaluate your model to make sure it performs consistently under different conditions.
  • Finally, you'd deploy your model into the real world and update it based on new insights and feedback.

Visi贸n computerizada Pasos del proyecto

Ahora que ya sabemos qu茅 esperar, vamos a meternos de lleno en los pasos y a poner en marcha tu proyecto.

Step 1: Defining Your Project's Goals

The first step in any computer vision project is clearly defining the problem you're trying to solve. Knowing the end goal helps you start to build a solution. This is especially true when it comes to computer vision because your project's objective will directly affect which computer vision task you need to focus on.

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.

    • Tarea de Visi贸n Artificial: La clasificaci贸n de im谩genes es ideal en este caso, ya que maneja un documento cada 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.

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.

Formar desde cero vs. Utilizar el aprendizaje por transferencia

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:

  • Clearly define the problem you're trying to solve.
  • 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 Dataset Search Engine, UC Irvine Machine Learning Repository y Kaggle Datasets.

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.

However, if you choose to collect images or take your own pictures, you'll need to annotate your data. Data annotation is the process of labeling your data to impart knowledge to your model. The type of data annotation you'll work with depends on your specific computer vision technique. Here are some examples:

  • Image Classification: You'll label the entire image as a single class.
  • 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.

Diferentes tipos de anotaci贸n de im谩genes

Data collection and annotation can be a time-consuming manual effort. Annotation tools can help make this process easier. Here are some useful open annotation tools: LabeI Studio, CVAT, and Labelme.

Paso 3: Aumento de datos y divisi贸n del 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 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.
  • Conjunto de validaci贸n: Normalmente en torno al 10-15% de tus datos; este conjunto se utiliza para ajustar los hiperpar谩metros y validar el modelo durante el entrenamiento, ayudando a evitar 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 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.

Ejemplos de aumento de datos

Bibliotecas como OpenCV, Albumentations y TensorFlow ofrecen funciones flexibles de aumento que puedes utilizar. Adem谩s, algunas bibliotecas, como Ultralytics, tienen incorporados ajustes de aumento directamente dentro de su funci贸n de entrenamiento del modelo, lo que simplifica el proceso.

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.

La herramienta Explorador Ultralytics

By properly understanding, splitting, and augmenting your data, you can develop a well-trained, validated, and tested model that performs well in real-world applications.

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.

First, you'll need to make sure your environment is configured correctly. Typically, this includes the following:

  • Instalar bibliotecas y frameworks esenciales como TensorFlow, PyTorch, o Ultralytics.
  • Si utilizas una GPU, instalar librer铆as como CUDA y cuDNN te ayudar谩 a activar 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 empezar el entrenamiento introduciendo datos en el modelo con un c贸digo m铆nimo. Estas bibliotecas manejan los ajustes de pesos, la retropropagaci贸n y la validaci贸n autom谩ticamente. Tambi茅n ofrecen herramientas para supervisar el progreso y ajustar f谩cilmente los hiperpar谩metros. Tras el entrenamiento, guarda el modelo y sus pesos con unos pocos comandos.

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.

Paso 5: Evaluaci贸n y ajuste del modelo

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.

  • Ajuste fino: Haz peque帽os ajustes en la arquitectura del modelo o en el proceso de entrenamiento para mejorar el rendimiento. Esto puede implicar ajustar los ritmos de aprendizaje, el tama帽o de los lotes u otros par谩metros del modelo.

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.

Adem谩s, aborda problemas comunes como el sobreajuste, el infraajuste 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.

Paso 7: Despliegue del modelo

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).

  • Exportar el modelo: Exporta tu modelo al formato adecuado (por ejemplo, ONNX, TensorRT, CoreML para YOLOv8) para garantizar la compatibilidad con tu plataforma de despliegue.

  • 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

Once your model is deployed, it's important to continuously monitor its performance, maintain it to handle any issues, and document the entire process for future reference and improvements.

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.

Supervisi贸n de modelos

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.

Preguntas frecuentes

He aqu铆 algunas preguntas habituales que pueden surgir durante un proyecto de visi贸n artificial:

  • P1: 驴C贸mo cambian los pasos si ya tengo un conjunto de datos o datos al iniciar un proyecto de visi贸n artificial?

    • A1: Starting with a pre-existing dataset or data affects the initial steps of your project. In Step 1, along with deciding the computer vision task and model, you'll also need to explore your dataset thoroughly. Understanding its quality, variety, and limitations will guide your choice of model and training approach. Your approach should align closely with the data's characteristics for more effective outcomes. Depending on your data or dataset, you may be able to skip Step 2 as well.
  • Q2: I'm not sure what computer vision project to start my AI learning journey with.

  • Q3: I don't want to train a model. I just want to try running a model on an image. How can I do that?

    • A3: Puedes utilizar un modelo preentrenado para realizar predicciones sobre una imagen sin entrenar un nuevo modelo. Consulta la p谩ginaYOLOv8 predict docs para obtener instrucciones sobre c贸mo utilizar un modelo YOLOv8 preentrenado para hacer predicciones sobre tus im谩genes.
  • P4: 驴D贸nde puedo encontrar art铆culos m谩s detallados y actualizaciones sobre aplicaciones de visi贸n por ordenador y YOLOv8?

    • A4: Para obtener art铆culos m谩s detallados, actualizaciones y conocimientos sobre aplicaciones de visi贸n por ordenador y YOLOv8, visita la p谩gina del blogUltralytics . El blog cubre una amplia gama de temas y proporciona informaci贸n valiosa para ayudarte a estar al d铆a y mejorar tus proyectos.

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

  • Cuestiones de GitHub: Echa un vistazo al repositorio GitHub deYOLOv8 y utiliza la pesta帽a Cuestiones 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.
  • Ultralytics Servidor Discord: 脷nete al servidor Discord deUltralytics para interactuar con otros usuarios y desarrolladores, obtener ayuda y compartir opiniones.

Documentaci贸n oficial

  • Ultralytics YOLOv8 Documentaci贸n: Explora la documentaci贸n oficial de YOLOv8 para obtener gu铆as detalladas con consejos 煤tiles sobre diferentes tareas y proyectos de visi贸n por ordenador.

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.



Created 2024-05-29, Updated 2024-06-10
Authors: glenn-jocher (4), abirami-vina (2)

Comentarios