Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Entrena un modelo de etiquetado de imágenes con AutoML Vision Edge

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

Para entrenar un modelo de etiquetado de imágenes, proporcione a AutoML Vision Edge un conjunto de imágenes y las etiquetas correspondientes. AutoML Vision Edge usa este conjunto de datos para entrenar un nuevo modelo en la nube, que puede usar para el etiquetado de imágenes en el dispositivo en su aplicación. (Consulte la descripción general para obtener información general sobre esta función).

AutoML Vision Edge es un servicio de Google Cloud. El uso del servicio está sujeto al Acuerdo de licencia de Google Cloud Platform y a los Términos específicos del servicio y se factura en consecuencia. Para obtener información de facturación, consulte la página de precios de AutoML.

Antes de que empieces

1. Reúne tus datos de entrenamiento

Primero, debe reunir un conjunto de datos de entrenamiento de imágenes etiquetadas. Tenga en cuenta las siguientes pautas:

  • Las imágenes deben estar en uno de los siguientes formatos: JPEG, PNG, GIF, BMP, ICO.

  • Cada imagen debe tener 30 MB o menos. Tenga en cuenta que AutoML Vision Edge reduce la escala de la mayoría de las imágenes durante el preprocesamiento, por lo que, en general, no hay ningún beneficio de precisión al proporcionar imágenes de muy alta resolución.

  • Incluya al menos 10, y preferiblemente 100 o más, ejemplos de cada etiqueta.

  • Incluya múltiples ángulos, resoluciones y fondos para cada etiqueta.

  • Los datos de entrenamiento deben estar lo más cerca posible de los datos sobre los que se van a realizar las predicciones. Por ejemplo, si su caso de uso involucra imágenes borrosas y de baja resolución (como las de una cámara de seguridad), sus datos de entrenamiento deben estar compuestos por imágenes borrosas y de baja resolución.

  • Los modelos generados por AutoML Vision Edge están optimizados para fotografías de objetos en el mundo real. Es posible que no funcionen bien para radiografías, dibujos a mano, documentos escaneados, recibos, etc.

    Además, los modelos generalmente no pueden predecir etiquetas que los humanos no pueden asignar. Por lo tanto, si un humano no puede asignar etiquetas mirando la imagen durante 1 o 2 segundos, es probable que el modelo tampoco pueda ser entrenado para hacerlo.

Cuando tenga listas sus imágenes de entrenamiento, prepárelas para importarlas a Firebase. Tienes tres opciones:

Opción 1: archivo zip estructurado

Organice sus imágenes de entrenamiento en directorios, cada uno con el nombre de una etiqueta y que contenga imágenes que sean ejemplos de esa etiqueta. Luego, comprima la estructura del directorio en un archivo zip.

Los nombres de directorio en este archivo zip pueden tener hasta 32 caracteres ASCII y pueden contener solo caracteres alfanuméricos y el carácter de subrayado ( _ ).

Por ejemplo:

my_training_data.zip
  |____accordion
  | |____001.jpg
  | |____002.jpg
  | |____003.jpg
  |____bass_guitar
  | |____hofner.gif
  | |____p-bass.png
  |____clavier
    |____well-tempered.jpg
    |____well-tempered (1).jpg
    |____well-tempered (2).jpg

Opción 2: almacenamiento en la nube con índice CSV

Cargue sus imágenes de entrenamiento en Google Cloud Storage y prepare un archivo CSV que incluya la URL de cada imagen y, opcionalmente, las etiquetas correctas para cada imagen. Esta opción es útil cuando se utilizan conjuntos de datos muy grandes.

Por ejemplo, cargue sus imágenes en Cloud Storage y prepare un archivo CSV como el siguiente:

gs://your-training-data-bucket/001.jpg,accordion
gs://your-training-data-bucket/002.jpg,accordion
gs://your-training-data-bucket/003.jpg,accordion
gs://your-training-data-bucket/hofner.gif,bass_guitar
gs://your-training-data-bucket/p-bass.png,bass_guitar
gs://your-training-data-bucket/well-tempered.jpg,clavier
gs://your-training-data-bucket/well-tempered%20(1).jpg,clavier
gs://your-training-data-bucket/well-tempered%20(2).jpg,clavier

Las imágenes deben almacenarse en un depósito que sea parte del proyecto de Google Cloud correspondiente de su proyecto de Firebase.

Consulte Preparar sus datos de entrenamiento en la documentación de Cloud AutoML Vision para obtener más información sobre cómo preparar el archivo CSV.

Opción 3: Imágenes sin etiquetar

Etiquete sus imágenes de entrenamiento en la consola de Firebase después de cargarlas, ya sea individualmente o en un archivo zip no estructurado. Ver el siguiente paso.

2. Entrena a tu modelo

Luego, entrena un modelo usando tus imágenes:

  1. Abra la página Conjuntos de datos de Vision en Google Cloud Console. Seleccione su proyecto cuando se le solicite.

  2. Haga clic en Nuevo conjunto de datos , proporcione un nombre para el conjunto de datos, seleccione el tipo de modelo que desea entrenar y haga clic en Crear conjunto de datos .

  3. En la pestaña Importar de su conjunto de datos, cargue un archivo zip de sus imágenes de entrenamiento o un archivo CSV que contenga las ubicaciones de Cloud Storage en las que las cargó. Consulta Reúne tus datos de entrenamiento .

  4. Una vez completada la tarea de importación, use la pestaña Imágenes para verificar los datos de entrenamiento y etiquetar las imágenes sin etiquetar.

  5. En la pestaña Entrenar , haga clic en Iniciar entrenamiento .

    1. Asigne un nombre al modelo y seleccione el tipo de modelo Edge .

    2. Configure los siguientes ajustes de entrenamiento, que rigen el rendimiento del modelo generado:

      Optimizar modelo para... La configuración del modelo a utilizar. Puede entrenar modelos más pequeños y más rápidos cuando la latencia baja o el tamaño de paquete pequeño son importantes, o modelos más grandes y más lentos cuando la precisión es lo más importante.
      Presupuesto de horas de nodo

      El tiempo máximo, en horas de proceso, para entrenar el modelo. Más tiempo de entrenamiento generalmente da como resultado un modelo más preciso.

      Tenga en cuenta que el entrenamiento se puede completar en menos tiempo del especificado si el sistema determina que el modelo está optimizado y que el entrenamiento adicional no mejoraría la precisión. Se le factura solo por las horas realmente utilizadas.

      Horarios típicos de entrenamiento
      Conjuntos muy pequeños 1 hora
      500 imágenes 2 horas
      1,000 imágenes 3 horas
      5.000 imágenes 6 horas
      10.000 imágenes 7 horas
      50.000 imágenes 11 horas
      100.000 imágenes 13 horas
      1,000,000 de imágenes 18 horas

3. Evalúa tu modelo

Cuando finalice el entrenamiento, puede hacer clic en la pestaña Evaluar para ver las métricas de rendimiento del modelo.

Un uso importante de esta página es determinar el umbral de confianza que mejor se adapte a su modelo. El umbral de confianza es la confianza mínima que debe tener el modelo para asignar una etiqueta a una imagen. Al mover el control deslizante del umbral de confianza , puede ver cómo los diferentes umbrales afectan el rendimiento del modelo. El rendimiento del modelo se mide utilizando dos métricas: precisión y recuperación .

En el contexto de la clasificación de imágenes, la precisión es la relación entre el número de imágenes que se etiquetaron correctamente y el número de imágenes que el modelo etiquetó dado el umbral seleccionado. Cuando un modelo tiene alta precisión, asigna etiquetas incorrectamente con menos frecuencia (menos falsos positivos).

La recuperación es la relación entre la cantidad de imágenes que se etiquetaron correctamente y la cantidad de imágenes que tenían contenido que el modelo debería haber podido etiquetar. Cuando un modelo tiene un alto recuerdo, no asigna ninguna etiqueta con menos frecuencia (menos falsos negativos).

Si optimiza la precisión o la recuperación dependerá de su caso de uso. Consulte la guía para principiantes de AutoML Vision y la guía de ML inclusivo: AutoML para obtener más información.

Cuando encuentre un umbral de confianza que produzca métricas con las que se sienta cómodo, anótelo; utilizará el umbral de confianza para configurar el modelo en su aplicación. (Puede utilizar esta herramienta en cualquier momento para obtener un valor de umbral adecuado).

4. Publica o descarga tu modelo

Si está satisfecho con el rendimiento del modelo y desea usarlo en una aplicación, tiene tres opciones, de las cuales puede elegir cualquier combinación: implementar el modelo para la predicción en línea, publicar el modelo en Firebase o descargar el modelo y empaquetarlo. con tu aplicación

Implementar el modelo

En la pestaña Prueba y uso de su conjunto de datos, puede implementar su modelo para la predicción en línea, que ejecuta su modelo en la nube. Esta opción está cubierta en los documentos de Cloud AutoML . Los documentos en este sitio tratan con las dos opciones restantes.

Publicar el modelo

Al publicar el modelo en Firebase, puede actualizar el modelo sin lanzar una nueva versión de la aplicación, y puede usar Remote Config y A/B Testing para entregar dinámicamente diferentes modelos a diferentes conjuntos de usuarios.

Si elige proporcionar el modelo solo alojándolo con Firebase y no incluirlo en su aplicación, puede reducir el tamaño de descarga inicial de su aplicación. Tenga en cuenta, sin embargo, que si el modelo no está incluido con su aplicación, ninguna funcionalidad relacionada con el modelo estará disponible hasta que su aplicación descargue el modelo por primera vez.

Para publicar su modelo, puede utilizar uno de estos dos métodos:

  • Descargue el modelo TF Lite de la página de prueba y uso de su conjunto de datos en Google Cloud Console y luego cargue el modelo en la página de modelo personalizado de Firebase console. Esta suele ser la forma más fácil de publicar un solo modelo.
  • Publica el modelo directamente desde tu proyecto de Google Cloud en Firebase con el SDK de administrador. Puede usar este método para publicar por lotes varios modelos o para ayudar a crear canales de publicación automatizados.

Para publicar el modelo con la API de administración de modelos del SDK de administrador:

  1. Instale e inicialice el SDK .

  2. Publicar el modelo.

    Deberá especificar el identificador de recursos del modelo, que es una cadena similar al siguiente ejemplo:

    projects/PROJECT_NUMBER/locations/us-central1/models/MODEL_ID
    PROJECT_NUMBER El número de proyecto del depósito de Cloud Storage que contiene el modelo. Este podría ser su proyecto de Firebase u otro proyecto de Google Cloud. Puede encontrar este valor en la página Configuración de Firebase console o en el panel de control de Google Cloud Console.
    MODEL_ID El ID del modelo, que obtuvo de la API de AutoML Cloud.

    Pitón

    # First, import and initialize the SDK.
    
    # Get a reference to the AutoML model
    source = ml.TFLiteAutoMlSource('projects/{}/locations/us-central1/models/{}'.format(
        # See above for information on these values.
        project_number,
        model_id
    ))
    
    # Create the model object
    tflite_format = ml.TFLiteFormat(model_source=source)
    model = ml.Model(
        display_name="example_model",  # This is the name you will use from your app to load the model.
        tags=["examples"],             # Optional tags for easier management.
        model_format=tflite_format)
    
    # Add the model to your Firebase project and publish it
    new_model = ml.create_model(model)
    new_model.wait_for_unlocked()
    ml.publish_model(new_model.model_id)
    

    Nodo.js

    // First, import and initialize the SDK.
    
    (async () => {
      // Get a reference to the AutoML model. See above for information on these
      // values.
      const automlModel = `projects/${projectNumber}/locations/us-central1/models/${modelId}`;
    
      // Create the model object and add the model to your Firebase project.
      const model = await ml.createModel({
        displayName: 'example_model',  // This is the name you use from your app to load the model.
        tags: ['examples'],  // Optional tags for easier management.
        tfliteModel: { automlModel: automlModel },
      });
    
      // Wait for the model to be ready.
      await model.waitForUnlocked();
    
      // Publish the model.
      await ml.publishModel(model.modelId);
    
      process.exit();
    })().catch(console.error);
    

Descarga y agrupa el modelo con tu aplicación

Al agrupar su modelo con su aplicación, puede asegurarse de que las funciones de ML de su aplicación sigan funcionando cuando el modelo alojado en Firebase no esté disponible.

Si publica el modelo y lo empaqueta con su aplicación, la aplicación utilizará la última versión disponible.

Para descargar su modelo, haga clic en TF Lite en la página de prueba y uso de su conjunto de datos.

Próximos pasos

Ahora que ha publicado o descargado el modelo, aprenda a usarlo en sus aplicaciones iOS+ y Android .