Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.

Entrene un modelo de detección de objetos con AutoML Vision Edge

Un modelo de detección de objetos es similar a un modelo de etiquetado de imágenes, pero en lugar de asignar etiquetas a imágenes completas, asigna etiquetas a regiones de imágenes. Puede utilizar modelos de detección de objetos para reconocer y ubicar objetos en una imagen o para rastrear los movimientos de un objeto en una serie de imágenes.

Para entrenar un modelo de detección de objetos, proporcione a AutoML Vision Edge un conjunto de imágenes con las etiquetas y los límites de los objetos correspondientes. AutoML Vision Edge usa este conjunto de datos para entrenar un nuevo modelo en la nube, que puede usar para la detección de objetos en el dispositivo.

Antes de que empieces

1. Reúna sus datos de entrenamiento

Primero, debe armar 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 realizarán las predicciones. Por ejemplo, si su caso de uso implica 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. Entonces, si un humano no puede asignar etiquetas mirando la imagen durante 1-2 segundos, es probable que el modelo tampoco pueda ser entrenado para hacerlo.

Cuando tenga sus imágenes de entrenamiento listas, prepárelas para importarlas a Google Cloud. Tienes dos opciones:

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

Sube tus imágenes de entrenamiento a Google Cloud Storage y prepara un archivo CSV con la URL de cada imagen y, opcionalmente, las etiquetas de objeto correctas y las regiones limítrofes para cada imagen. Esta opción es útil cuando se utilizan grandes conjuntos de datos.

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

gs://your-training-data-bucket/001.jpg,accordion,0.2,0.4,,,0.3,0.5,,
gs://your-training-data-bucket/001.jpg,tuba,0.2,0.5,,,0.4,0.8,,
gs://your-training-data-bucket/002.jpg,accordion,0.2,0.2,,,0.9,0.8,,

Los cuadros delimitadores de objetos se especifican como coordenadas relativas en la imagen. Consulta Dar formato a un archivo CSV de datos de entrenamiento .

Las imágenes deben almacenarse en un depósito que se encuentra en la región us-central1 y es parte del proyecto de Google Cloud correspondiente de su proyecto de Firebase.

Opción 2: imágenes sin etiqueta

Etiqueta tus imágenes de entrenamiento y dibuja los límites de los objetos en Google Cloud Console después de subirlas. Esto solo se recomienda para conjuntos de datos pequeños. Vea el siguiente paso.

2. Entrena tu modelo

A continuación, entrena un modelo usando tus imágenes:

  1. Abra la página Conjuntos de datos de visión 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 sus imágenes de entrenamiento, un archivo zip de sus imágenes de entrenamiento o un archivo CSV que contenga las ubicaciones de Cloud Storage donde las cargó. Consulta Recopila 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.

  5. Si no cargó un CSV, para cada imagen, dibuje cuadros delimitadores alrededor de los objetos que desea reconocer y etiquete cada objeto.

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

    1. Nombra el modelo y selecciona el tipo de modelo Edge .

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

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

      El tiempo máximo, en horas de cálculo, para dedicar a entrenar el modelo. Más tiempo de entrenamiento generalmente resulta en un modelo más preciso.

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

      Tiempos típicos de formación
      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 imágenes 18 horas

3. Evalúe su 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 funciona mejor para 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 de 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).

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

La optimización de 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 AA 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 apropiado).

4. Publica o descarga tu modelo.

Si está satisfecho con el rendimiento del modelo y desea usarlo en una aplicación, tiene tres opciones, entre 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 se trata en los documentos de Cloud AutoML . Los documentos de este sitio tratan las dos opciones restantes.

Publica 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 empaquetarlo con su aplicación, puede reducir el tamaño de descarga inicial de su aplicación. Sin embargo, tenga en cuenta que si el modelo no está incluido con su aplicación, las funciones relacionadas con el modelo no estarán disponibles hasta que su aplicación descargue el modelo por primera vez.

Para publicar su modelo, puede utilizar cualquiera de 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 la consola de Firebase. Esta suele ser la forma más sencilla de publicar un solo modelo.
  • Publique el modelo directamente desde su proyecto de Google Cloud en Firebase con el SDK de administrador. Puede utilizar este método para publicar varios modelos por lotes o para ayudar a crear canalizaciones de publicación automatizadas.

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

  1. Instale e inicialice el SDK .

  2. Publica el modelo.

    Deberá especificar el identificador de recurso del modelo, que es una cadena que se parece 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 Google Cloud Console.
    MODEL_ID El ID del modelo, que obtuvo de AutoML Cloud API.

    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)
    

    Node.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);
    

Descargue y empaquete el modelo con su aplicación

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

Si publica el modelo y lo agrupa 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 usar el modelo en sus aplicaciones de iOS y Android .