Estrategias de recopilación y anotación de datos para visión artificial#
La recogida y el etiquetado de datos son los dos pasos fundamentales de cualquier proyecto de visión artificial: recopilas imágenes o vídeos representativos y luego los etiquetas para que un modelo pueda aprender de ellos. La calidad de estos datos determina directamente el rendimiento del modelo, razón por la cual la definición de clases, un origen sin sesgos y un etiquetado coherente importan antes de que empiece cualquier entrenamiento.
Watch: How to Build Effective Data Collection and Annotation Strategies for Computer Vision 🚀
Esta guía abarca la configuración de clases y la recopilación de datos, en qué consiste el etiquetado de datos junto con los tipos y formatos de etiquetado entre los que elegir, y estrategias de etiquetado eficientes; cada decisión está alineada con los objetivos de tu proyecto.
Configuración de clases y recopilación de datos#
La recopilación de 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 comenzar un proyecto de visión artificial es cuántas clases incluir. Debes determinar la pertenencia a las clases, lo que implica las diferentes 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". Por otro lado, para el seguimiento de artículos en una tienda, tus clases podrían ser "frutas", "verduras", "bebidas" y "aperitivos". Definir las clases basándote en los objetivos de tu proyecto ayuda a mantener tu conjunto de datos relevante y enfocado.
Cuando defines tus clases, otra distinción importante que debes hacer es si elegir conteos de clases generales o específicos. El 'conteo' se refiere al número de clases distintas que te interesan. Esta decisión influye en la granularidad de tus datos y en la complejidad de tu modelo. Aquí tienes las consideraciones para cada enfoque:
- Conteo de clases general: Son categorías más amplias 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 podría limitar la eficacia del modelo en escenarios complejos.
- Conteo de clases específico: Más categorías con distinciones más precisas, como "sedán", "SUV", "camioneta" y "motocicleta". Capturan información más detallada, mejorando la precisión y el rendimiento del modelo. Sin embargo, su anotación requiere más tiempo y trabajo, además de más recursos computacionales.
Comenzar con clases más específicas puede ser muy útil, especialmente en proyectos complejos donde los detalles son importantes. Las clases más específicas te permiten recopilar datos más detallados, obtener perspectivas más profundas y establecer distinciones más claras entre categorías. No solo mejora la precisión del modelo, sino que también facilita el ajuste del modelo más adelante si es necesario, ahorrando tiempo y recursos.
Fuentes de datos#
Puedes usar conjuntos de datos públicos o recopilar tus propios datos personalizados. Los conjuntos de datos públicos como los de Kaggle y Google Dataset Search Engine ofrecen datos bien etiquetados y estandarizados, lo que los convierte en excelentes puntos de partida para entrenar y validar modelos.
Por otro lado, la recopilación de datos personalizados te permite adaptar tu conjunto de datos a tus necesidades específicas. Puedes capturar imágenes y vídeos con cámaras o drones, rastrear la web en busca de imágenes o utilizar datos internos existentes de tu organización. Los datos personalizados te dan más control sobre su calidad y relevancia. Combinar fuentes de datos tanto públicas como personalizadas ayuda a crear un conjunto de datos diverso y completo.
Evitar el sesgo en la recopilación de datos#
El sesgo se produce cuando ciertos grupos o escenarios están infrarrepresentados o sobrerrepresentados en tu conjunto de datos. Esto da lugar a 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 pueda funcionar bien en una gran variedad de escenarios.
Aquí tienes cómo puedes evitar el sesgo mientras recopilas datos:
- Fuentes diversas: Recopila datos de muchas fuentes para capturar diferentes perspectivas y escenarios.
- Representación equilibrada: Incluye una representación equilibrada de todos los grupos relevantes. Por ejemplo, considera diferentes edades, géneros y etnias.
- Monitorización continua: Revisa y actualiza regularmente tu conjunto de datos para identificar y abordar cualquier sesgo emergente.
- Técnicas de mitigación de sesgos: Utiliza métodos como el sobremuestreo de clases infrarrepresentadas, la auginentación de datos y algoritmos conscientes de la equidad.
Seguir estas prácticas ayuda a crear un modelo más robusto y justo que puede generalizarse bien en aplicaciones del mundo real.
¿Qué es la anotación de datos?#
El etiquetado de datos es el proceso de marcar datos para que se puedan utilizar 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 que un modelo necesita para aprender. Sin datos debidamente etiquetados, los modelos no pueden aprender con precisión las relaciones entre las entradas y las salidas.
Tipos de anotación de datos#
Dependiendo de los requisitos específicos de una tarea de visión artificial, existen diferentes tipos de etiquetado de datos. Aquí tienes algunos ejemplos:
- Cuadros delimitadores (Bounding Boxes): Cajas rectangulares dibujadas alrededor de objetos en una imagen, utilizadas principalmente para tareas de detección de objetos. Estas cajas se definen por sus coordenadas superior izquierda e inferior derecha.
- Polígonos: Contornos detallados para objetos, que permiten un etiquetado más preciso que las cajas delimitadoras. Los polígonos se utilizan en tareas como la segmentación de instancias, donde 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 un nivel de 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 posturas y la detección de puntos de referencia faciales.
- BBoxes orientadas: Rectángulos que contienen un ángulo de rotación, utilizados en tareas de OBB donde los objetos aparecen con orientaciones arbitrarias, como en imágenes aéreas.
Formatos de anotación comunes#
Después de seleccionar un tipo de etiquetado, es importante elegir el formato apropiado para almacenar y compartir las etiquetas. Los formatos más comunes son:
| Formato | Estructura de archivos | Utilizado comúnmente para |
|---|---|---|
| COCO | Un solo archivo JSON | Detección de objetos, segmentación de instancias, detección de puntos clave, segmentación de fondo y segmentación panóptica, subtitulación de imágenes |
| Pascal VOC | Un archivo XML por imagen | Detección de objetos |
| YOLO | Un archivo de .txt por imagen | Detección de objetos, segmentación, pose 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 de 0 a 1. Una fila de segmentación reemplaza la caja por los puntos del polígono normalizados del objeto, mientras que una fila de pose mantiene la caja y añade las coordenadas de los keypoints después de esta, con un indicador de visibilidad por keypoint cuando el dataset declara kpt_shape: [n, 3]. Una fila de OBB almacena class x1 y1 x2 y2 x3 y3 x4 y4 usando coordenadas de esquinas normalizadas.
Si tu herramienta de anotación exporta en COCO JSON, puedes convertirlo a etiquetas YOLO .txt o entrenar directamente con el JSON usando una clase de dataset personalizada.
Establecimiento de pautas de etiquetado#
Una vez elegidos el tipo de etiquetado y el formato, el siguiente paso es establecer reglas de etiquetado claras y objetivas. Estas reglas actúan como una hoja de ruta para garantizar la coherencia y la precisión durante todo el proceso de etiquetado. Los aspectos clave de estas reglas incluyen:
- Claridad y detalle: Asegúrate de que tus instrucciones sean claras. Usa ejemplos e ilustraciones para mostrar lo que se espera.
- Consistencia: Mantén tus anotaciones uniformes. Establece criterios estándar para anotar diferentes tipos de datos, de modo que todas las anotaciones sigan las mismas reglas.
- Reducción del sesgo: Mantente neutral. Entrénate para ser objetivo y minimizar los sesgos personales para garantizar anotaciones justas.
- Eficiencia: Trabaja de forma más inteligente, no más dura. Utiliza herramientas y flujos de trabajo que automaticen tareas repetitivas, haciendo que el proceso de anotación sea más rápido y eficiente.
Revisar y actualizar regularmente tus reglas de etiquetado ayudará a mantener tus anotaciones precisas, consistentes y alineadas con los objetivos de tu proyecto.
Herramientas de anotación#
Una buena herramienta de anotación te permite etiquetar cada tipo que necesite tu tarea, aplica directrices coherentes y exporta las etiquetas en un formato listo para el entrenamiento. Ultralytics Platform proporciona un editor de anotaciones integrado que abarca detección, segmentación de instancias, segmentación semántica, clasificación, pose y OBB, con anotación inteligente impulsada por 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 en el diseño que cada tarea espera —filas YOLO .txt para las tareas espaciales y carpetas de clases para la clasificación—, tu dataset etiquetado pasa directamente al entrenamiento sin ningún paso de conversión.
Calidad del etiquetado: exactitud, precisión y valores atípicos#
Antes de etiquetar a gran escala, ayuda entender la precisión, la exactitud, los valores atípicos y el control de calidad, para que no etiquetes tus datos de una forma contraproducente.
Entender la precisión y la exactitud#
Es importante entender la diferencia entre exactitud y precisión y cómo se relaciona con el etiquetado. La exactitud se refiere a lo cerca que están los datos etiquetados de los valores reales. Nos ayuda a medir hasta qué punto las etiquetas reflejan los escenarios del mundo real. La precisión indica la coherencia de las etiquetas. Comprueba si estás dando la misma etiqueta al mismo objeto o característica en todo el conjunto de datos. Unos niveles altos de exactitud y precisión dan lugar a modelos mejor entrenados al reducir el ruido y mejorar la capacidad del modelo para generalizar a partir de los datos de entrenamiento.
Identificación de valores atípicos#
Los valores atípicos son puntos de datos que se desvían bastante de otras observaciones en el conjunto de datos. Con respecto a 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, lo que lleva a predicciones inexactas y una mala generalización.
Puedes usar varios 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 los píxeles, las coordenadas de las cajas delimitadoras o los tamaños 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 clases de objetos, colores o formas, usa métodos visuales como el trazado de imágenes, etiquetas o mapas de calor.
- Métodos algorítmicos: Utiliza herramientas como el agrupamiento (por ejemplo, agrupamiento K-means, DBSCAN) y algoritmos de detección de anomalías para identificar valores atípicos basándote en patrones de distribución de datos.
Control de calidad de los datos anotados#
Al igual que otros proyectos técnicos, el control de calidad es imprescindible para los datos anotados. Es una buena práctica comprobar regularmente las anotaciones para asegurarse de que sean precisas y consistentes. Esto se puede hacer de varias maneras:
- Revisar muestras de datos anotados
- Usar herramientas automatizadas para detectar errores comunes
- Hacer que otra persona verifique las anotaciones
Si trabajas con varias personas, la consistencia entre diferentes anotadores es importante. Un buen acuerdo entre anotadores significa que las pautas son claras y todos las siguen de la misma manera. Mantiene a todos en la misma página y las anotaciones consistentes.
Durante la revisión, si encuentras errores, corrígelos y actualiza las pautas para evitar futuros fallos. Proporciona retroalimentación a los anotadores y ofrece formación regular para ayudar a reducir los errores. Tener un proceso sólido para manejar los errores mantiene tu conjunto de datos preciso y fiable.
Estrategias eficientes de etiquetado de datos#
Para hacer que el proceso de etiquetado de datos sea más fluido y eficaz, considera implementar estas estrategias:
- Pautas de anotación claras: Proporciona instrucciones detalladas con ejemplos para garantizar que todos los anotadores interpreten las tareas de manera consistente. Por ejemplo, al etiquetar pájaros, especifica si incluir el pájaro completo o solo partes específicas.
- Verificaciones de calidad regulares: Establece puntos de referencia y usa métricas específicas para revisar el trabajo, manteniendo estándares altos a través de retroalimentación continua.
- Usa herramientas de pre-anotación: Muchas plataformas de anotación modernas ofrecen funciones de pre-anotación asistidas por IA que pueden acelerar significativamente el proceso al generar automáticamente anotaciones iniciales que los humanos pueden luego refinar.
- Implementa aprendizaje activo: Este enfoque prioriza el etiquetado de las muestras más informativas primero, lo que puede reducir el número total de anotaciones necesarias mientras se mantiene el rendimiento del modelo.
- Procesamiento por lotes: Agrupa imágenes similares para la anotación para mantener la consistencia y mejorar la eficiencia.
Estas estrategias pueden ayudar a mantener anotaciones de alta calidad mientras se reduce el tiempo y los recursos necesarios para el proceso de etiquetado.
Conclusión#
Recopilar datos diversos e imparciales y anotarlos de forma coherente con las herramientas adecuadas es la base de un modelo de visión artificial fiable. Con tu dataset recopilado y etiquetado, continúa con la guía de pasos de un proyecto de visión artificial para pasar al entrenamiento y la evaluación. Si te surgen dudas por el camino, pregúntale a la comunidad en el repositorio de GitHub de Ultralytics o en el servidor de Discord de Ultralytics.
FAQ#
Para minimizar el sesgo, recopila datos de diversas fuentes, asegúrate de que haya una representación equilibrada en todos los grupos relevantes (como diferentes edades, géneros y etnias), revisa y actualiza regularmente tu conjunto de datos para detectar sesgos emergentes y aplica técnicas de mitigación como el sobremuestreo de clases subrepresentadas, el aumento de datos y algoritmos conscientes de la equidad. Evitar el sesgo de esta manera mantiene el buen rendimiento de tu modelo de visión artificial en escenarios reales variados y mejora su capacidad de generalización.
Establece pautas de etiquetado claras y objetivas con instrucciones, ejemplos e ilustraciones detalladas, y luego aplícalas uniformemente en todos los tipos de datos para que cada etiqueta siga las mismas reglas. Forma a los etiquetadores para que mantengan la neutralidad con el fin de reducir el sesgo personal, revisa y actualiza las pautas regularmente y utiliza comprobaciones de coherencia automatizadas además de comentarios entre etiquetadores para mantener una alta exactitud y alineación con los objetivos de tu proyecto.
Unos cuantos cientos de objetos etiquetados 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 1500 imágenes y 10 000 instancias etiquetadas por clase. Combina un conjunto de datos lo suficientemente grande con un plan de entrenamiento razonable —alrededor de 300 épocas es un punto de partida habitual, que se reduce si el modelo se sobreajusta pronto— y mantén tus etiquetas rigurosas y alineadas con los objetivos específicos de tu proyecto. Explora estrategias de entrenamiento detalladas en la guía de entrenamiento de YOLO26.
Sí. Ultralytics Platform incluye un editor de anotaciones integrado que admite BBoxes, polígonos, keypoints, cajas orientadas y etiquetas de clasificación en un único espacio de trabajo. La anotación inteligente impulsada por SAM acelera el etiquetado para tareas de detección, segmentación de instancias, segmentación semántica y OBB al generar máscaras a partir de un solo clic, mientras que la pose y la clasificación se anotan de forma manual. Las anotaciones se almacenan en el diseño que cada tarea espera —filas YOLO
.txtpara las tareas espaciales, carpetas de clases para la clasificación—, listas para el entrenamiento.Haz que el tipo de anotación coincida con la tarea que pretendes entrenar. Las BBoxes 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 consumen notablemente más tiempo por objeto, pero son necesarios para la segmentación de instancias cuando la forma exacta de un objeto importa. Los keypoints se adaptan a la estimación de pose y a la detección de puntos de referencia, y las cajas orientadas se adaptan a tareas de OBB como imágenes aéreas, donde un rectángulo alineado con los ejes encerraría demasiado fondo. Anotar para la tarea más ajustada que realmente necesites mantiene el esfuerzo de etiquetado proporcional al resultado.