Prepara tus datos de entrenamiento

Prepara tus imágenes

  • Las imágenes deben estar en un formato compatible (ver la lista a continuación).

  • Los modelos de AutoML Vision están optimizados para fotografías de objetos del mundo real.

  • Los datos de entrenamiento deben ser lo más parecidos posible a los datos sobre los que se harán las predicciones. Por ejemplo, si tu caso práctico incluye imágenes borrosas y de baja resolución (como las de una cámara de seguridad), tus datos de entrenamiento deben estar compuestos por imágenes borrosas de baja resolución. En general, también deberías tratar de proporcionar imágenes de entrenamiento con múltiples ángulos, resoluciones y fondos.

  • Por lo general, los modelos de AutoML Vision no pueden predecir las etiquetas que las personas no pueden asignar. Por lo tanto, si no se puede entrenar a las personas para que asignen etiquetas con tan solo mirar la imagen durante 1 o 2 segundos, es probable que tampoco se pueda entrenar al modelo para que lo haga.

  • Recomendamos que agregues aproximadamente 1,000 imágenes de entrenamiento por etiqueta. El mínimo por etiqueta es de 10 (50 para los modelos avanzados). En general, se necesitan más ejemplos por etiqueta para entrenar modelos con múltiples etiquetas por imagen. Además, las puntuaciones resultantes son más difíciles de interpretar.

  • En el entrenamiento de un modelo, se admiten los siguientes formatos de imagen. El tamaño máximo del archivo es 30 MB.

    • JPEG
    • PNG
    • GIF
    • BMP
    • ICO

    Cuando se solicita una predicción (una consulta) de un modelo, se admiten los siguientes formatos de imagen. El tamaño máximo del archivo es 1.5 MB.

    • JPEG
    • PNG
    • GIF
  • El modelo funciona mejor cuando hay, como máximo, 100 veces más imágenes destinados a la etiqueta más común que a la etiqueta menos común. Recomendamos quitar las etiquetas de frecuencia muy baja.

  • Considera incluir una etiqueta None_of_the_above y, también, imágenes que no coincidan con ninguna de tus etiquetas definidas. Por ejemplo, para un conjunto de datos de flores, incluye imágenes de flores fuera de tus variedades etiquetadas y etiquétalas como None_of_the_above. Esto puede mejorar la exactitud de tu modelo. Ten en cuenta que, si bien cualquier nombre de etiqueta funcionará, el sistema trata a None_of_the_above de forma especial y siempre aparecerá al final de la lista de etiquetas en la IU.

Comparación entre los conjuntos de datos de entrenamiento y los de evaluación

Los datos en un conjunto de datos se dividen en tres cuando se entrena un modelo: un conjunto de datos de entrenamiento, uno de validación y uno de prueba.

Un conjunto de datos de entrenamiento se usa para compilar un modelo. El modelo prueba múltiples algoritmos y parámetros mientras busca patrones en los datos de entrenamiento. A medida que el modelo identifica patrones, usa el conjunto de datos de validación para probar los algoritmos y patrones. Los algoritmos y patrones con mejor rendimiento se eligen a partir de aquellos identificados durante la etapa de entrenamiento.

Una vez identificados, se comprueba la tasa de errores, la calidad y la exactitud mediante el conjunto de datos de prueba.

Se usa tanto una validación como un conjunto de datos de prueba para evitar sesgos en el modelo. Durante la etapa de validación, se usan los parámetros óptimos del modelo, lo que puede dar como resultado métricas sesgadas. El uso del conjunto de datos de prueba para evaluar la calidad del modelo después de la etapa de validación proporciona una evaluación imparcial sobre la calidad del modelo.

De forma predeterminada, AutoML Vision divide tu conjunto de datos en 3 conjuntos separados de forma aleatoria:

  • El 80% de las imágenes se usa para entrenamiento.
  • El 10% de las imágenes se usa para la optimización de hiperparámetros o con el fin de decidir cuándo detener el entrenamiento.
  • El 10% de las imágenes se usa para evaluar el modelo. Estas imágenes no se usan en el entrenamiento.

Si deseas especificar a qué conjunto de datos pertenece cada imagen de tu archivo CSV, puedes usar un archivo .csv como se describe en la siguiente sección.

Crea un archivo CSV con URI de imagen y etiquetas

Una vez que tus archivos se hayan subido a un depósito de Cloud Storage con el formato requerido (gs://bucket-name-vcm), puedes crear un archivo CSV que enumere todos tus datos de entrenamiento y las etiquetas de categoría para esos datos. El archivo .csv puede tener cualquier nombre de archivo, debe estar en el mismo bucket que tus archivos de imagen, estar codificado en UTF-8 y terminar con una extensión .csv. El archivo tiene una fila para cada imagen en el conjunto que subes y estas columnas en cada fila:

  1. A qué conjunto asignar el contenido de esta fila. Este campo es opcional y puede ser uno de estos valores:

    • TRAIN: Usa el image para entrenar el modelo.
    • VALIDATION: Usa el image para validar los resultados que muestra el modelo durante el entrenamiento.
    • TEST: Usa el image para verificar los resultados del modelo después de entrenarlo.

    Si no especificas un conjunto para la imagen en una fila, AutoML Vision lo coloca en uno de los tres conjuntos de forma automática a fin de garantizar que haya suficiente contenido de entrenamiento, validación y prueba. AutoML Vision usa el 80% de tus documentos de contenido para entrenamiento, el 10% para validación y el 10% para pruebas. El tamaño máximo de un conjunto de datos de prueba es de 50,000 imágenes, incluso si el 10% del conjunto de datos total supera ese máximo.

  2. El contenido a clasificar. Este campo contiene el URI de Google Cloud Storage para la imagen. Los URI de Google Cloud Storage distinguen entre mayúsculas y minúsculas.

  3. Una lista de etiquetas separadas por comas que identifican cómo se clasifica la imagen. Las etiquetas deben comenzar con una letra y solo deben contener letras, números y guiones bajos. Puedes incluir hasta 20 etiquetas por cada imagen. También puedes dejar etiquetas en blanco para un etiquetado manual a través de la IU o del servicio de etiquetado realizado por personas.

Por ejemplo:

  • Etiquetadas: gs://my-storage-bucket-vcm/flowers/images/img100.jpg,daisy
  • Sin etiqueta: gs://my-storage-bucket-vcm/flowers/images/img403.jpg
  • Varias etiquetas: gs://my-storage-bucket-vcm/flowers/images/img384.jpg,dandelion,tulip,rose
  • Asignada a un conjunto: TEST,gs://my-storage-bucket-vcm/flowers/images/img805.jpg,daisy

Guarda el contenido como un archivo CSV en tu bucket de Cloud Storage.

Genera un archivo CSV para imágenes sin etiqueta almacenadas en Cloud Storage

Si ya subiste imágenes sin etiquetar a Cloud Storage y quieres generar un archivo CSV que apunte a ellas, ejecuta el siguiente código en Cloud Shell:

for f in $(gsutil ls gs://YOUR_BUCKET/YOUR_IMAGES_FOLDER/);
do echo UNASSIGNED,$f;
done >> labels.csv;

Luego, copia el archivo CSV generado en un bucket de Google Storage:

gsutil cp labels.csv gs://YOUR_BUCKET/labels.csv

Errores comunes con CSV

  • Usar caracteres unicode en las etiquetas: p. ej., no se admiten caracteres japoneses
  • Usar espacios y caracteres no alfanuméricos en las etiquetas
  • Líneas vacías
  • Columnas vacías (líneas con dos comas sucesivas)
  • Colocar mayúsculas de manera incorrecta en las rutas de imagen de Cloud Storage
  • Control de acceso configurado incorrecto para tus archivos de imagen: tu cuenta de servicio debe tener acceso de lectura o uno superior, o bien los archivos deben tener acceso público de lectura
  • Referencias a archivos que no son de imagen (como archivos PDF o PSD): del mismo modo, los archivos que no son archivos de imagen, pero se renombraron con una extensión de imagen, causarán un error
  • El URI de la imagen apunta a un bucket diferente que el del proyecto actual: solo se puede acceder a las imágenes en el bucket del proyecto
  • Archivos sin formato CSV