Asignación de formato a un archivo CSV de datos de entrenamiento

Luego de preparar datos de entrenamiento que sean lo suficientemente representativos y subir esas imágenes a Google Cloud Storage, puedes crear un archivo CSV con cuadros de límite y etiquetas a fin de importar imágenes a un conjunto de datos.

En esta página, se describe cómo darle formato al archivo CSV.

Lineamientos del formato CSV

Para usar el método importData, el archivo CSV y las imágenes a las que se orienta deben estar en un depósito de Google Cloud Storage.

Además, el archivo CSV también debe cumplir con los siguientes requisitos:

  • El archivo puede tener cualquier nombre, pero debe estar en el mismo bucket que el archivo de imagen.
  • Debe estar codificado en UTF-8.
  • Debe terminar con una extensión .csv.
  • Debe tener una fila para cada cuadro de límite en el conjunto que deseas subir, o una fila para cada imagen sin cuadro de límite (como la fila 4, que se muestra a continuación).
  • Debe contener una imagen por línea. Una imagen con varios cuadros de límite se repetirá en una cantidad de filas igual al número de cuadros de límite que tenga.

    Por ejemplo, las filas 1 y 2 hacen referencia a la misma imagen que tiene 2 anotaciones (car,0.1,0.1,,,0.3,0.3,, y bike,.7,.6,,,.8,.9,,). La fila 3 hace referencia a una imagen que tiene solo 1 anotación (car,0.1,0.1,0.2,0.1,0.2,0.3,0.1,0.3), mientras que la fila 4 hace referencia a una imagen sin anotaciones.

Cuatro filas de muestra:

 TRAIN,gs://folder/image1.png,car,0.1,0.1,,,0.3,0.3,,
 TRAIN,gs://folder/image1.png,bike,.7,.6,,,.8,.9,,
 UNASSIGNED,gs://folder/im2.png,car,0.1,0.1,0.2,0.1,0.2,0.3,0.1,0.3
 TEST,gs://folder/im3.png,,,,,,,,,

Cada fila tiene las siguientes columnas:

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

    • TRAIN: Usa la imagen para entrenar el modelo. Este conjunto debe ser el más grande, ya que estas imágenes se usarán para compilar el modelo.
    • VALIDATION: Usa la imagen para validar los resultados que muestra el modelo durante el entrenamiento (también conocidos como conjuntos de datos de desarrollo). La detección de objetos de AutoML Vision usará estas imágenes para determinar cuándo detener el proceso de entrenamiento del modelo.
    • TEST: Usa la imagen para cuantificar los resultados del modelo después de entrenarlo (también conocidos como datos de exclusión). Estas imágenes se usan para la evaluación después de la creación de un modelo con los dos conjuntos anteriores.
    • UNASSIGNED: Estas imágenes se asignan a uno de los tres conjuntos anteriores mediante la detección de objetos de AutoML Vision. Usa esta etiqueta de conjunto si no tienes preferencias sobre el conjunto en el que se ubicarán las imágenes.
  2. El contenido que se anotará. 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 etiqueta que identifica cómo se categoriza el objeto. Las etiquetas deben comenzar con una letra y solo deben contener letras, números y guiones bajos. La detección de objetos de AutoML Vision también te permite usar etiquetas con espacios en blanco.

    Luego de entrenar la importación de imágenes, también puedes etiquetar de forma manual en la IU o usar el servicio de etiquetado manual de Google para etiquetar imágenes de entrenamiento.

  4. Un cuadro de límite de un objeto en la imagen. El cuadro de límite de un objeto se puede especificar de las siguientes maneras:

    • con solo 2 vértices (que consisten en un conjunto de coordenadas x, y) si son puntos del rectángulo que se oponen diagonalmente (x_relative_min, y_relative_min, x_relative_max, y_relative_max)
    • con los 4 vértices(x_relative_min, y_relative_min, x_relative_max, y_relative_min, x_relative_max, y_relative_max, x_relative_min, y_relative_max)

    Cada vertex se especifica mediante valores de coordenadas x, y. Estas coordenadas deben ser un número de punto flotante en el rango del 0 al 1, en el que 0 representa el valor de x o y mínimo, y 1 representa el valor de x o y máximo.

    Por ejemplo, (0,0) representa la esquina superior izquierda, y (1,1) representa la esquina inferior derecha; un cuadro de límite para toda la imagen se expresa como (0,0,,,1,1,,) o (0,0,1,0,1,1,0,1).

    La API de AutoML Vision no requiere un orden de vértices específico. Además, si 4 vértices especificados no forman un rectángulo paralelo a los vértices de la imagen, la API de AutoML Vision calcula y usa los vértices que forman ese rectángulo.

Por ejemplo:

  • No asignado a un conjunto: UNASSIGNED,gs://my-storage-bucket/img/salad_089.jpg,Baked goods,0.56,0.25,,,0.97,0.50,,
  • Asignado a un conjunto: TRAIN,gs://my-storage-bucket/img/salad_089.jpg,Baked goods,0.56,0.25,,,0.97,0.50,,

    Las filas anteriores usan el siguiente formato, ya que la API supone que dos puntos son vértices diagonales rectangulares (el vértice superior izquierdo y el vértice inferior derecho):

    set,path,label,x_min,y_min,,,x_max,y_max,,

    El siguiente formato también es válido porque transmite la misma información:

    set,path,label,x_min,y_min,x_max,y_min,x_max,y_max,x_min,y_max

    Esto significa que la fila “Asignado a un conjunto” que se muestra arriba también se puede expresar si indicas los 4 vértices:

    TRAIN,gs://my-storage-bucket/img/salad_089.jpg,Baked goods,0.56,0.25,0.97,0.25,0.97,0.50,0.56,0.50

Opciones de coordenadas de imagen

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

Errores comunes con CSV

  • Usar caracteres unicode en las etiquetas: P. ej., no se admiten caracteres japoneses
  • Usar caracteres que no sean alfanuméricos en las etiquetas
  • Líneas vacías
  • Colocar mayúsculas de manera incorrecta en las rutas de imágenes de Cloud Storage
  • Control de acceso incorrecto configurado para tus archivos de imagen. La cuenta de servicio de AutoML que se creó cuando habilitaste la API debería tener acceso de lectura o uno superior
  • Referencias a archivos que no sean de imagen (como archivos PDF o PSD). Del mismo modo, los archivos que no sean de imagen (JPEG, PNG, GIF, BMP o ICO), pero que se les cambió el nombre con una extensión de imagen, generarán un error
  • Archivos sin formato CSV