Prepara tus datos de entrenamiento

Prepara tus imágenes

Requisitos generales de imagen
Tipos de archivos admitidos
  • JPEG
  • PNG
  • GIF
  • BMP
  • ICO
Tipos de imágenes

Los modelos de detección de objetos de AutoML Vision se optimizan para las fotografías de objetos del mundo real.

Tamaño del archivo de imagen de entrenamiento (MB) Tamaño máximo: 30 MB.
Tamaño del archivo de imagen de predicción* (MB) Tamaño máximo: 1.5 MB.
Tamaño de la imagen (píxeles)

1,024 por 1,024 píxeles como máximo sugerido.

En imágenes mucho más grandes que 1,024 por 1,024 píxeles, puede perderse un poco de calidad durante el proceso de normalización de la imagen de la detección de objetos de AutoML Vision.

Requisitos de cuadros de límite y etiquetas
Etiqueta instancias para entrenamiento

10 anotaciones (instancias) como mínimo.

Requisitos de anotación

Para cada etiqueta, debes tener al menos 10 imágenes, cada una con al menos una anotación (cuadro de límite y etiqueta).

Sin embargo, para entrenar los modelos, se recomienda el uso de alrededor de 1,000 anotaciones por etiqueta. En general, mientras más imágenes tengas por etiqueta, mejor funcionará el modelo.

Proporción de etiquetas (de la etiqueta más común a la menos común):

El modelo funciona mejor cuando hay, como máximo, 100 veces más imágenes destinadas a la etiqueta más común que a la menos común.

Para el rendimiento del modelo, se recomienda quitar las etiquetas de muy baja frecuencia.

Longitud perimetral del cuadro de límite Al menos 0.01 * longitud de un lado de la imagen. Por ejemplo, una imagen de 1,000 * 900 píxeles requeriría cuadros de límite de al menos 10 * 9 píxeles.
Tamaño del cuadro de límite (píxeles) 8 píxeles por 8 píxeles como mínimo.
Cuadros de límite por imagen distinta Máximo de 500.
Cuadros de límite que se muestran en una solicitud de predicción

100 (de forma predeterminada), 500 como máximo.

Puedes especificar este valor como parte de la solicitud predict en el campo params.max_bounding_box_count.

Datos de entrenamiento y requisitos de los conjuntos de datos
Características de las imágenes de entrenamiento

Los datos de entrenamiento deben parecerse lo máximo posible a los datos sobre los que se harán las predicciones.

Por ejemplo, si tu caso práctico implica imágenes desenfocadas y de baja resolución (como las de una cámara de seguridad), los datos de entrenamiento deben estar compuestos por imágenes con esas características. En general, se recomienda proporcionar imágenes de entrenamiento con varios ángulos, resoluciones y fondos.

Por lo general, los modelos de detección de objetos de AutoML Vision no pueden predecir etiquetas que las personas no pueden asignar. Por lo tanto, si no se puede entrenar a una persona para que asigne 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.

Imágenes en cada conjunto de datos 150,000 como máximo
Total de cuadros de límite anotados en cada conjunto de datos 1,000,000 como máximo
Número de etiquetas en cada conjunto de datos 1 como mínimo, 1,000 como máximo

Guía de prácticas recomendadas

¿Qué tipo de datos de imagen puedes usar?

  • Formatos de archivos de imagen admitidos: JPEG, PNG, GIF, BMP o ICO.
  • Los datos de entrenamiento deben parecerse lo máximo posible a los datos sobre los que se harán las predicciones. Por ejemplo, si tu caso práctico involucra imágenes de baja resolución de cámaras de teléfonos celulares, los datos de entrenamiento deben estar compuestos por imágenes de baja resolución. En general, también deberías tratar de proporcionar imágenes de entrenamiento con varios ángulos, resoluciones y fondos. Otro ejemplo: si deseas detectar regiones en imágenes de alta resolución, no entrenes el modelo con imágenes recortadas.

¿Cuáles son las condiciones mínimas para los datos?

  • Las etiquetas que uses deben ser strings válidas (sin comas). La coma es solo un problema en la importación basada en CSV. Una forma de abordar este problema es usar esto: "file_comma,path","label,comma",0,0,,,1,1,,.
  • Los cuadros de límite deben ser mayores que 8 por 8 píxeles en todos los casos. Los cuadros de límite que sean más pequeños se filtrarán.
  • Las imágenes pueden exceder los 1,024 * 1,024 píxeles, pero se las reducirá de forma automática, lo que puede ocasionar una pérdida en la calidad de la imagen. Por esta razón, recomendamos un tamaño de imagen máximo de 1,024 * 1,024 píxeles. Las imágenes más pequeñas que estas dimensiones no se podrán ampliar.
  • Todos los cuadros de límite deben estar dentro de las imágenes.
  • Los cuadros de límite deben estar etiquetados de forma exhaustiva: si en una imagen hay dos autos, deben etiquetarse.

¿Qué tan grande debe ser el conjunto de datos?

  • Cuanto más, mejor. Esto aplica casi siempre. Sin embargo, una excepción sería si agregar más muestras generara un desequilibrio o una filtración (consulta la siguiente información).
  • La cantidad de datos necesarios para entrenar un buen modelo depende de factores diferentes:
    • La cantidad de clases. Cuantas más clases únicas tengas, más muestras se necesitarán por clase.
    • Complejidad/diversidad de las clases. Es similar a las personas: Es probable que una persona pueda aprender rápido a distinguir entre la cerveza y el vino con tan solo algunas muestras. Pero deberá probar vinos diferentes con mucha más frecuencia a fin de distinguir entre 5 o 6 tipos de vinos tintos diferentes, y para muchas personas será difícil aprender a distinguir entre 50 sabores diferentes de vinos tintos. Al menos una tendrá que practicar mucho. Del mismo modo, las redes neuronales podrían distinguir rápido entre elefantes y gatos, pero necesitarían muchas más muestras para clasificar 30 animales diferentes.
  • Como regla general, te recomendamos que cuentes con al menos 100 muestras de entrenamiento por clase si tienes pocas clases distintivas, y más de 200 muestras de entrenamiento si tienes más de 50 clases diferentes que, además, tienen más matices.

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

Por lo general, cuando entrenas modelos de aprendizaje automático, el conjunto de datos se divide en tres conjuntos diferentes:

  1. un conjunto de datos de entrenamiento
  2. un conjunto de datos de validación
  3. un conjunto de datos de prueba

Un conjunto de datos de entrenamiento se usa para compilar un modelo. El modelo que se está entrenando prueba varios hiperparámetros mientras busca patrones en los datos de entrenamiento. Durante el proceso de identificación de patrones, la detección de objetos de AutoML Vision usa el conjunto de datos de validación para probar los hiperparámetros del modelo. La detección de objetos de AutoML Vision elige los algoritmos y patrones con mejor rendimiento de todas las opciones que se identifican durante la etapa de entrenamiento.

Una vez que se identifican estos algoritmos y patrones, se realizan pruebas para determinar la tasa de errores, la calidad y la exactitud mediante el conjunto de datos de prueba. Los clientes deben tener un conjunto de datos de prueba individual que puedan usar para probar el modelo de forma independiente. A este conjunto de datos de prueba lo especifica el usuario en el conjunto de entrenamiento o se elige de forma automática al momento del entrenamiento.

Para evitar sesgos en el modelo, se usan un conjunto de datos de validación y uno de prueba. Durante la etapa de validación, se usan los parámetros óptimos del modelo. El uso de estos parámetros puede generar 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 de la calidad del modelo al proceso de entrenamiento.

Si eliges las muestras de los conjuntos de datos de forma manual, debes estructurar los conjuntos de manera que se represente la misma población. Del mismo modo, debes crear divisiones de los conjuntos de datos que tengan imágenes parecidas, y que estas cuenten con una distribución similar de etiquetas.

Divisiones manuales y automáticas de los conjuntos de datos

Puedes especificar de forma manual la división de entrenamiento, validación y prueba cuando importes conjuntos de datos en un archivo CSV.

Si no lo especificas, la detección de objetos de AutoML Vision dividirá los datos de forma aleatoria. Las divisiones se crean de la siguiente manera:

  • 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.

Problemas comunes

  • Datos desequilibrados: En muchos casos, el número de muestras por clase (etiqueta) no es igual. Por lo general, los desequilibrios menores no generan problemas, pero las discrepancias más grandes entre clases sí pueden causarlos. Cuando hay un desequilibrio mayor, por ejemplo, algunas clases se representan más de 10 veces que otras, esto se convierte en un problema para la compilación del modelo. Si bien existen enfoques que permiten contrarrestar los desequilibrios de clases, esta no es una configuración ideal para el entrenamiento de modelos. Siempre que sea posible, trata de evitar el entrenamiento de modelos con datos muy desequilibrados.

    Como regla general, mantén la proporción entre las clases más comunes y las menos comunes por debajo de 2 a 1.

  • Divisiones incorrectas: Cuando proporcionas datos de entrenamiento, la detección de objetos de AutoML Vision puede dividirlos de forma automática en conjuntos de datos de entrenamiento, validación y prueba. También puedes asignar las etiquetas de división de entrenamiento de forma manual.

    No se garantiza que obtendrás la misma división si importas los mismos datos varias veces.

    Los datos de entrenamiento, validación y prueba no deben tener una correlación estrecha. Por ejemplo, un caso de error común es cuando las imágenes provienen de videos, lo que hace que muchas de ellas sean muy similares entre sí. Si permites que el sistema divida de forma aleatoria el conjunto de datos por ti, es probable que obtengas imágenes muy similares en los datos de entrenamiento y los de validación o prueba. Esto generará una exactitud alta que se obtiene de forma incorrecta en los datos de prueba.

  • Filtración de datos: La filtración de datos es un problema importante que puede sesgar los modelos. La filtración de datos ocurre cuando, durante el entrenamiento del modelo, el algoritmo puede usar información que no debería y que no estará disponible durante las predicciones futuras. Esto genera resultados demasiado optimistas en los conjuntos de datos de entrenamiento, validación y, tal vez, de prueba. Sin embargo, es posible que este rendimiento no sea tan bueno en algunos datos futuros no vistos. Esto sucede con frecuencia involuntariamente y requiere un cuidado especial durante la preparación de los datos.

    Ejemplos de filtración: positivos y negativos de diferentes fuentes de imágenes o ángulos de vista.