Una red convolucional puede ser muy buena en teoría, pero si el dataset está mal construido, el resultado final será pobre. En visión por computadora, la calidad del conjunto de datos suele ser tan importante como la arquitectura del modelo.
Preparar un dataset no consiste solo en juntar muchas imágenes. Implica definir el problema correctamente, recolectar ejemplos representativos, etiquetarlos bien, limpiarlos, organizarlos y dividirlos de forma adecuada para entrenamiento, validación y prueba.
En este tema veremos cómo se prepara un dataset de imágenes de manera seria, qué errores conviene evitar y por qué esta etapa tiene un impacto enorme sobre el rendimiento real del sistema.
Un dataset de imágenes es un conjunto organizado de ejemplos visuales que se utiliza para entrenar, validar y evaluar modelos. Cada imagen suele estar acompañada de algún tipo de anotación o etiqueta.
La forma de esa etiqueta depende de la tarea:
Por eso, preparar un dataset implica mucho más que almacenar archivos de imagen en una carpeta.
Un dataset no es una colección neutra de imágenes. Es una representación del problema real que queremos resolver. Si esa representación está incompleta, sesgada o mal etiquetada, el modelo aprenderá justamente esas limitaciones.
Por ejemplo, si entrenamos un clasificador de frutas solo con imágenes tomadas en estudio, podría fallar al enfrentarse a frutas reales en una cocina, un supermercado o un entorno con iluminación distinta.
Antes de recolectar datos conviene definir con precisión qué tarea vamos a resolver. Esto incluye preguntas como:
Una mala definición inicial suele generar datasets inconsistentes, etiquetas ambiguas y objetivos poco claros.
Una vez definido el problema, hay que reunir imágenes representativas. Las fuentes pueden ser variadas:
Lo importante no es solo la cantidad, sino la diversidad y la relevancia de los ejemplos.
Un buen dataset debe reflejar las variaciones reales del problema. Eso incluye:
Si el dataset solo contiene casos ideales, el modelo probablemente fallará en producción.
Es tentador pensar que más imágenes siempre significan un mejor dataset. En la práctica, la calidad de los ejemplos y de las etiquetas importa muchísimo. Un conjunto pequeño pero bien curado puede ser más útil que uno enorme y caótico.
Esto no significa que la cantidad no importe. Sí importa. Pero su valor depende de la calidad y representatividad de lo que se recolecta.
Una vez reunidas las imágenes, hay que anotarlas. El etiquetado es una de las etapas más delicadas de todo el proceso, porque el modelo aprenderá directamente de esas etiquetas.
Según la tarea, el etiquetado puede consistir en:
Las anotaciones deben ser consistentes, claras y alineadas con la definición exacta del problema.
Cuando varias personas etiquetan, conviene definir una guía explícita. Esa guía debe responder preguntas como:
Una guía reduce inconsistencias y mejora la calidad del dataset.
Las etiquetas incorrectas son uno de los problemas más dañinos para un dataset. Algunos errores frecuentes son:
Un modelo potente entrenado con etiquetas pobres puede aprender patrones erróneos o volverse inestable.
Después de recolectar y etiquetar, conviene limpiar el dataset. Esta etapa puede incluir:
La limpieza mejora la consistencia y evita que el entrenamiento se contamine con errores fáciles de prevenir.
Un problema especialmente importante es la presencia de imágenes duplicadas o casi duplicadas repartidas entre entrenamiento y prueba. Esto produce una fuga de información que puede inflar artificialmente las métricas.
El modelo parece generalizar bien, pero en realidad solo está viendo versiones casi idénticas de ejemplos ya conocidos.
Una práctica estándar consiste en dividir el dataset en tres subconjuntos:
Esta separación es fundamental para evaluar de forma honesta la capacidad de generalización.
No existe una única división correcta, pero algunas proporciones frecuentes son:
La mejor elección depende del tamaño total del dataset y de cuánta precisión queramos en la evaluación.
Si el problema es de clasificación, conviene que la partición respete aproximadamente la distribución de clases. Esto se llama estratificación.
Además, es importante mirar si el dataset está balanceado. Un conjunto donde una clase domina fuertemente puede producir modelos sesgados que aprendan a predecir casi siempre la clase mayoritaria.
El desbalance aparece cuando algunas clases tienen muchos más ejemplos que otras. Esto puede ser problemático porque el modelo recibe más señales de unas clases que de otras.
Algunas estrategias para manejarlo son:
La solución concreta depende del problema, pero primero hay que detectar el desbalance.
Para clasificación, una organización muy común es por carpetas:
dataset/
train/
gatos/
perros/
val/
gatos/
perros/
test/
gatos/
perros/
Esta estructura es simple y funciona muy bien con herramientas como torchvision.datasets.ImageFolder.
En tareas como detección y segmentación, ya no alcanza con carpetas por clase. Se necesitan formatos más expresivos. Algunos esquemas comunes incluyen:
Más adelante, cuando tratemos detección y segmentación, estos formatos cobrarán mucha más importancia.
No todas las imágenes del dataset tienen por qué venir con el mismo tamaño. Sin embargo, para entrenar modelos suele ser necesario normalizar la resolución de entrada o definir un pipeline de resize.
Esto implica decidir:
Estas decisiones afectan tanto la eficiencia como la calidad de la representación visual.
También conviene analizar la calidad visual del dataset:
No siempre estas variaciones deben eliminarse. A veces representan justamente la realidad del problema y el modelo debe aprender a lidiar con ellas. La decisión depende del escenario final de uso.
Un buen dataset no solo contiene imágenes. También suele incluir metadatos útiles, como:
Esta información ayuda a auditar, depurar y evolucionar el conjunto de datos con el tiempo.
Cuando el dataset cambia, conviene versionarlo. Si se agregan imágenes, se corrigen etiquetas o se eliminan duplicados, es importante saber exactamente con qué versión se entrenó cada modelo.
Esto mejora la reproducibilidad y evita confusiones al comparar resultados entre experimentos.
Un dataset puede estar sesgado de muchas maneras:
El problema del sesgo es que el modelo puede aprender correlaciones espurias en lugar del patrón que realmente nos interesa.
No siempre contamos con miles o millones de imágenes. En muchos proyectos reales el dataset es moderado o pequeño. En esos casos conviene:
Un dataset pequeño bien preparado puede seguir siendo muy valioso si el problema está bien definido.
Antes de entrenar, conviene mirar una muestra del dataset de forma manual. Esto ayuda a detectar problemas que no siempre aparecen en tablas o métricas:
La inspección visual sigue siendo una herramienta muy poderosa en preparación de datasets.
Un flujo típico de preparación de dataset puede ser:
Este flujo no es rígido, pero resume bastante bien la lógica general.
Preparar un dataset de imágenes es una tarea mucho más estratégica de lo que suele parecer al principio. No es una etapa administrativa ni secundaria: es una parte central del diseño del sistema.
Un modelo aprende exactamente aquello que el dataset le enseña. Por eso, reunir imágenes representativas, etiquetarlas bien, evitar fugas y organizar el conjunto con criterio tiene un impacto directo sobre la calidad final del proyecto.
En el próximo tema estudiaremos el data augmentation para imágenes, una técnica muy importante para enriquecer datasets y mejorar la capacidad de generalización de los modelos.