Estrategias de recopilación y anotación de datos para visión artificial#
La recopilación y la anotación de datos son los dos pasos fundamentales de cualquier proyecto de visión artificial: reúnes imágenes o vídeos representativos y, después, los etiquetas para que un modelo pueda aprender de ellos. La calidad de estos datos determina directamente el rendimiento del modelo, por lo que la definición de clases, la obtención imparcial de datos y la anotación coherente son importantes antes de comenzar cualquier entrenamiento.
Watch: How to Build Effective Data Collection and Annotation Strategies for Computer Vision 🚀
Esta guía explica cómo configurar clases y recopilar datos, qué es la anotación de datos, junto con los tipos y formatos de anotación que puedes elegir, y estrategias de etiquetado eficientes, con cada decisión alineada con los objetivos de tu proyecto.
Configuración de clases y recopilación de datos#
Recopilar imágenes y vídeos para un proyecto de visión artificial se reduce a tres decisiones: cuántas clases definir, de dónde obtener los datos y cómo mantener el conjunto de datos libre de sesgos.
Elegir las clases adecuadas para tu proyecto#
Una de las primeras preguntas al iniciar un proyecto de visión artificial es cuántas clases incluir. Tienes que determinar la pertenencia a las clases, lo que implica definir las distintas categorías o etiquetas que quieres que tu modelo reconozca y diferencie. El número de clases debe determinarse según los objetivos específicos de tu proyecto.
Por ejemplo, si quieres monitorizar el tráfico, tus clases podrían incluir «coche», «camión», «autobús», «motocicleta» y «bicicleta». En cambio, para realizar el seguimiento de artículos en una tienda, tus clases podrían ser «frutas», «verduras», «bebidas» y «aperitivos». Definir las clases según los objetivos de tu proyecto ayuda a mantener el conjunto de datos relevante y centrado.
Al definir las clases, otra distinción importante es si elegir un número de clases amplio o detallado. «Número» se refiere a la cantidad de clases distintas que te interesan. Esta decisión influye en la granularidad de los datos y en la complejidad del modelo. Estas son las consideraciones de cada enfoque:
- Número de clases amplio: son categorías más generales e inclusivas, como «vehículo» y «no vehículo». Simplifican la anotación y requieren menos recursos computacionales, pero proporcionan menos información detallada, lo que puede limitar la eficacia del modelo en escenarios complejos.
- Número de clases detallado: incluye más categorías con distinciones más precisas, como «berlina», «SUV», «camioneta» y «motocicleta». Capturan información más detallada, lo que mejora la precisión y el rendimiento del modelo. Sin embargo, requieren más tiempo y trabajo para anotarlas, además de más recursos computacionales.
Empezar con clases más específicas puede ser muy útil, especialmente en proyectos complejos en los que los detalles son importantes. Las clases más específicas te permiten recopilar datos más detallados, obtener conocimientos más profundos y establecer distinciones más claras entre categorías. No solo mejora la precisión del modelo, sino que también facilita ajustarlo más adelante si es necesario, ahorrando tiempo y recursos.
Fuentes de datos#
Puedes utilizar conjuntos de datos públicos o recopilar tus propios datos personalizados. Los conjuntos de datos públicos, como los de Kaggle y el motor de búsqueda de conjuntos de datos de Google, ofrecen datos bien anotados y estandarizados, por lo que son un excelente punto de partida para entrenar y validar modelos.
Por otro lado, la recopilación de datos personalizados te permite adaptar el conjunto de datos a tus necesidades específicas. Puedes capturar imágenes y vídeos con cámaras o drones, extraer imágenes de la web o utilizar datos internos existentes de tu organización. Los datos personalizados te proporcionan un mayor control sobre su calidad y relevancia. Combinar fuentes de datos públicas y personalizadas ayuda a crear un conjunto de datos diverso y completo.
Evitar el sesgo en la recopilación de datos#
El sesgo aparece cuando ciertos grupos o escenarios están infrarrepresentados o sobrerrepresentados en tu conjunto de datos. Esto produce un modelo que funciona bien con algunos datos, pero mal con otros. Es fundamental evitar el sesgo en la IA para que tu modelo de visión artificial funcione bien en diversos escenarios.
Así puedes evitar el sesgo al recopilar datos:
- Fuentes diversas: recopila datos de muchas fuentes para captar diferentes perspectivas y escenarios.
- Representación equilibrada: incluye una representación equilibrada de todos los grupos relevantes. Por ejemplo, ten en cuenta distintas edades, géneros y etnias.
- Supervisión continua: revisa y actualiza periódicamente tu conjunto de datos para identificar y abordar cualquier sesgo emergente.
- Técnicas de mitigación del sesgo: utiliza métodos como el sobremuestreo de las clases infrarrepresentadas, el aumento de datos y algoritmos conscientes de la equidad.
Seguir estas prácticas ayuda a crear un modelo más robusto y justo, capaz de generalizar bien en aplicaciones del mundo real.
¿Qué es la anotación de datos?#
La anotación de datos es el proceso de etiquetar datos para que puedan utilizarse en el entrenamiento de modelos de aprendizaje automático. En visión artificial, esto significa etiquetar imágenes o vídeos con la información de la que el modelo necesita aprender. Sin datos correctamente anotados, los modelos no pueden aprender con precisión las relaciones entre las entradas y las salidas.
Tipos de anotación de datos#
Según los requisitos específicos de una tarea de visión artificial, existen distintos tipos de anotación de datos. Estos son algunos ejemplos:
- Cajas delimitadoras: cajas rectangulares dibujadas alrededor de los objetos de una imagen, utilizadas principalmente en tareas de detección de objetos. Estas cajas se definen mediante las coordenadas superior izquierda e inferior derecha.
- Polígonos: contornos detallados de los objetos que permiten una anotación más precisa que las cajas delimitadoras. Los polígonos se utilizan en tareas como la segmentación de instancias, en las que la forma del objeto es importante.
- Máscaras: máscaras binarias en las que cada píxel forma parte de un objeto o del fondo. Las máscaras se utilizan en tareas de segmentación semántica para proporcionar detalle a nivel de píxel.
- Puntos clave: puntos específicos marcados dentro de una imagen para identificar ubicaciones de interés. Los puntos clave se utilizan en tareas como la estimación de poses y la detección de puntos de referencia faciales.
- Cajas delimitadoras orientadas: rectángulos que incluyen un ángulo de rotación y que se utilizan en tareas de OBB, en las que los objetos aparecen con orientaciones arbitrarias, como en las imágenes aéreas.
Formatos de anotación habituales#
Después de seleccionar un tipo de anotación, es importante elegir el formato adecuado para almacenar y compartir las anotaciones. Los formatos más habituales son:
| Formato | Estructura de archivos | Uso habitual |
|---|---|---|
| COCO | Un único archivo JSON | Detección de objetos, segmentación de instancias, detección de puntos clave, segmentación de elementos y segmentación panóptica, generación de pies de imagen |
| Pascal VOC | Un archivo XML por imagen | Detección de objetos |
| YOLO | Un archivo .txt por imagen | Detección de objetos, segmentación, poses y cajas orientadas |
El formato YOLO almacena una fila por objeto, con índices de clase que empiezan en 0. Para la detección de objetos, la fila es class x_center y_center width height, con coordenadas normalizadas entre 0 y 1. En una fila de segmentación, la caja se sustituye por los puntos poligonales normalizados del objeto, mientras que una fila de poses conserva la caja y añade después las coordenadas de los puntos clave, con un indicador de visibilidad por punto clave cuando el conjunto de datos declara kpt_shape: [n, 3]. Una fila de OBB almacena class x1 y1 x2 y2 x3 y3 x4 y4 mediante coordenadas normalizadas de las esquinas.
Si tu herramienta de anotación exporta JSON de COCO, puedes convertirlo en etiquetas YOLO .txt o entrenar directamente con el JSON mediante una clase de conjunto de datos personalizada.
Establecer directrices de anotación#
Una vez elegido el tipo y el formato de anotación, el siguiente paso es establecer reglas de etiquetado claras y objetivas. Estas reglas sirven de hoja de ruta para mantener la coherencia y la precisión durante todo el proceso de anotación. Entre los aspectos clave de estas reglas se incluyen:
- Claridad y detalle: asegúrate de que tus instrucciones sean claras. Utiliza ejemplos e ilustraciones para mostrar lo que se espera.
- Coherencia: mantén uniformes tus anotaciones. Establece criterios estándar para anotar distintos tipos de datos, de modo que todas las anotaciones sigan las mismas reglas.
- Reducir el sesgo: mantente neutral. Entrénate para ser objetivo y minimizar los sesgos personales, con el fin de garantizar anotaciones justas.
- Eficiencia: trabaja de forma más inteligente, no más dura. Utiliza herramientas y flujos de trabajo que automaticen las tareas repetitivas para que el proceso de anotación sea más rápido y eficiente.
Revisar y actualizar periódicamente tus reglas de etiquetado ayudará a mantener tus anotaciones precisas, coherentes y alineadas con los objetivos de tu proyecto.
Herramientas de anotación#
Una buena herramienta de anotación te permite etiquetar todos los tipos que necesita tu tarea, aplica directrices coherentes y exporta las etiquetas en un formato listo para el entrenamiento. Ultralytics Platform incluye un editor de anotaciones integrado que admite detección, segmentación de instancias, segmentación semántica, clasificación, poses y OBB, con anotación inteligente basada en SAM que convierte un solo clic en una máscara para tareas de detección, segmentación de instancias, segmentación semántica y OBB. Como las anotaciones se guardan con la estructura que espera cada tarea — filas YOLO .txt para las tareas espaciales y carpetas de clases para la clasificación —, tu conjunto de datos etiquetado pasa directamente al entrenamiento sin necesidad de conversión.
Calidad de la anotación: exactitud, precisión y valores atípicos#
Antes de anotar a gran escala, conviene entender la exactitud, la precisión, los valores atípicos y el control de calidad para no etiquetar los datos de forma contraproducente.
Comprender la exactitud y la precisión#
Es importante comprender la diferencia entre exactitud y precisión, y su relación con la anotación. La exactitud se refiere a lo cerca que están los datos anotados de los valores reales. Nos ayuda a medir hasta qué punto las etiquetas reflejan situaciones del mundo real. La precisión indica la coherencia de las anotaciones. Comprueba si asignas la misma etiqueta al mismo objeto o característica en todo el conjunto de datos. Una alta exactitud y precisión producen modelos mejor entrenados al reducir el ruido y mejorar la capacidad del modelo para generalizar a partir de los datos de entrenamiento.
Identificar valores atípicos#
Los valores atípicos son puntos de datos que se desvían considerablemente de las demás observaciones del conjunto de datos. En el contexto de las anotaciones, un valor atípico podría ser una imagen etiquetada incorrectamente o una anotación que no encaja con el resto del conjunto de datos. Los valores atípicos son preocupantes porque pueden distorsionar el proceso de aprendizaje del modelo y provocar predicciones imprecisas y una mala generalización.
Puedes utilizar diversos métodos para detectar y corregir valores atípicos:
- Técnicas estadísticas: para detectar valores atípicos en características numéricas como los valores de píxel, las coordenadas de la caja delimitadora o el tamaño de los objetos, puedes utilizar métodos como diagramas de caja, histogramas o puntuaciones z.
- Técnicas visuales: para detectar anomalías en características categóricas como las clases de objetos, los colores o las formas, utiliza métodos visuales como representar imágenes, etiquetas o mapas de calor.
- Métodos algorítmicos: utiliza herramientas como la agrupación (por ejemplo, la agrupación K-means y DBSCAN) y algoritmos de detección de anomalías para identificar valores atípicos según los patrones de distribución de los datos.
Control de calidad de los datos anotados#
Al igual que en otros proyectos técnicos, el control de calidad es imprescindible para los datos anotados. Es recomendable revisar periódicamente las anotaciones para asegurarte de que sean precisas y coherentes. Puedes hacerlo de varias formas:
- Revisar muestras de los datos anotados
- Utilizar herramientas automatizadas para detectar errores habituales
- Pedir a otra persona que compruebe las anotaciones
Si trabajas con varias personas, es importante que haya coherencia entre los distintos anotadores. Un buen acuerdo entre anotadores significa que las directrices son claras y que todo el mundo las sigue de la misma manera. Esto garantiza que todos trabajen con los mismos criterios y que las anotaciones sean coherentes.
Al revisar, si encuentras errores, corrígelos y actualiza las directrices para evitar errores futuros. Proporciona comentarios a los anotadores y ofrece formación periódica para ayudar a reducir los errores. Contar con un proceso sólido para gestionar los errores mantiene tu conjunto de datos preciso y fiable.
Estrategias eficientes de etiquetado de datos#
Para que el proceso de etiquetado de datos sea más fluido y eficaz, considera implementar estas estrategias:
- Directrices de anotación claras: proporciona instrucciones detalladas con ejemplos para garantizar que todos los anotadores interpreten las tareas de forma coherente. Por ejemplo, al etiquetar aves, especifica si se debe incluir el ave completa o solo determinadas partes.
- Comprobaciones de calidad periódicas: establece referencias y utiliza métricas específicas para revisar el trabajo, manteniendo unos estándares elevados mediante comentarios continuos.
- Utiliza herramientas de preanotación: muchas plataformas modernas de anotación ofrecen funciones de preanotación asistida por IA que pueden acelerar considerablemente el proceso al generar automáticamente anotaciones iniciales que después pueden perfeccionar las personas.
- Implementa el aprendizaje activo: este enfoque da prioridad al etiquetado de las muestras más informativas, lo que puede reducir el número total de anotaciones necesarias sin afectar al rendimiento del modelo.
- Procesamiento por lotes: agrupa imágenes similares para anotarlas, con el fin de mantener la coherencia y mejorar la eficiencia.
Estas estrategias pueden ayudar a mantener anotaciones de alta calidad y, al mismo tiempo, reducir el tiempo y los recursos necesarios para el proceso de etiquetado.
Conclusión#
Recopilar datos diversos y sin sesgos, y anotarlos de forma coherente con las herramientas adecuadas, es la base de un modelo de visión artificial fiable. Con el conjunto de datos recopilado y etiquetado, continúa con la guía sobre los pasos de un proyecto de visión artificial para pasar al entrenamiento y la evaluación. Si te surgen preguntas durante el proceso, consulta a la comunidad en el repositorio de Ultralytics en GitHub o en el servidor de Ultralytics en Discord.
Preguntas frecuentes#
Para minimizar el sesgo, recopila datos de fuentes diversas, garantiza una representación equilibrada de todos los grupos relevantes (como distintas edades, géneros y etnias), revisa y actualiza periódicamente tu conjunto de datos para detectar sesgos emergentes y aplica técnicas de mitigación como el sobremuestreo de las clases infrarrepresentadas, el aumento de datos y algoritmos conscientes de la equidad. Evitar el sesgo de esta forma permite que tu modelo de visión artificial funcione bien en distintos escenarios del mundo real y mejora su capacidad de generalización.
Establece directrices de etiquetado claras y objetivas, con instrucciones detalladas, ejemplos e ilustraciones, y aplícalas uniformemente a todos los tipos de datos para que cada anotación siga las mismas reglas. Forma a los anotadores para que sean neutrales y reduzcan sus sesgos personales, revisa y actualiza las directrices con regularidad y utiliza comprobaciones automatizadas de coherencia, junto con los comentarios entre anotadores, para mantener una alta precisión alineada con los objetivos de tu proyecto.
Unos cientos de objetos anotados por clase son suficientes para empezar a experimentar con el aprendizaje por transferencia, pero para obtener un rendimiento fiable en el mundo real, Ultralytics recomienda al menos 1.500 imágenes y 10.000 instancias etiquetadas por clase. Combina un conjunto de datos suficientemente grande con un programa de entrenamiento razonable — alrededor de 300 épocas es un punto de partida habitual, reducido si el modelo presenta sobreajuste pronto — y mantén las anotaciones rigurosas y alineadas con los objetivos específicos de tu proyecto. Consulta estrategias de entrenamiento detalladas en la guía de entrenamiento de YOLO26.
Sí. Ultralytics Platform incluye un editor de anotaciones integrado que admite cajas delimitadoras, polígonos, puntos clave, cajas orientadas y etiquetas de clasificación en un único espacio de trabajo. La anotación inteligente basada en SAM acelera el etiquetado para tareas de detección, segmentación de instancias, segmentación semántica y OBB al generar máscaras con un solo clic, mientras que las poses y la clasificación se anotan manualmente. Las anotaciones se almacenan con la estructura que espera cada tarea — filas YOLO
.txtpara las tareas espaciales y carpetas de clases para la clasificación —, listas para el entrenamiento.Adapta el tipo de anotación a la tarea que quieras entrenar. Las cajas delimitadoras son las más rápidas de dibujar y son todo lo que necesita la detección de objetos. Los polígonos y las máscaras requieren bastante más tiempo por objeto, pero son necesarios para la segmentación de instancias cuando importa la forma exacta de un objeto. Los puntos clave son adecuados para la estimación de poses y la detección de puntos de referencia, mientras que las cajas orientadas son adecuadas para tareas de OBB, como las imágenes aéreas, en las que un rectángulo alineado con los ejes encerraría demasiado fondo. Anotar para la tarea más específica que realmente necesites mantiene el esfuerzo de etiquetado en proporción al resultado.