Etiqueta imágenes con un modelo de AutoML Vision Edge

En esta guía de inicio rápido, se te guiará por los siguientes procesos:

  • Copia de un conjunto de imágenes en Google Cloud Storage
  • Creación de un CSV que enumere las imágenes y sus etiquetas
  • Uso de AutoML Vision para crear tu conjunto de datos, entrenar un modelo personalizado de AutoML Vision Edge (clasificación de imágenes o detección de objetos) y realizar una predicción
  • Implementación y exportación de tu modelo de AutoML Vision Edge para uno de varios tipos de dispositivos perimetrales, como teléfonos celulares, dispositivos basados en ARM y Coral Edge TPU.

Antes de comenzar

Configura tu proyecto

  1. Accede a tu cuenta de Google Cloud. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  2. Instala Google Cloud CLI.
  3. Para inicializar la CLI de gcloud, ejecuta el siguiente comando:

    gcloud init
  4. Crea o selecciona un proyecto de Google Cloud.

    • Crea un proyecto de Google Cloud:

      gcloud projects create PROJECT_ID

      Reemplaza PROJECT_ID por un nombre para el proyecto de Google Cloud que estás creando.

    • Selecciona el proyecto de Google Cloud que creaste:

      gcloud config set project PROJECT_ID

      Reemplaza PROJECT_ID por el nombre del proyecto de Google Cloud.

  5. Comprueba que la facturación esté habilitada en tu proyecto.

    Descubre cómo puedes habilitar la facturación

  6. Habilita las APIs de AutoML and Cloud Storage:

    gcloud services enable storage-component.googleapis.com automl.googleapis.com storage-api.googleapis.com
  7. Instala Google Cloud CLI.
  8. Para inicializar la CLI de gcloud, ejecuta el siguiente comando:

    gcloud init
  9. Crea o selecciona un proyecto de Google Cloud.

    • Crea un proyecto de Google Cloud:

      gcloud projects create PROJECT_ID

      Reemplaza PROJECT_ID por un nombre para el proyecto de Google Cloud que estás creando.

    • Selecciona el proyecto de Google Cloud que creaste:

      gcloud config set project PROJECT_ID

      Reemplaza PROJECT_ID por el nombre del proyecto de Google Cloud.

  10. Comprueba que la facturación esté habilitada en tu proyecto.

    Descubre cómo puedes habilitar la facturación

  11. Habilita las APIs de AutoML and Cloud Storage:

    gcloud services enable storage-component.googleapis.com automl.googleapis.com storage-api.googleapis.com
  12. Establece la variable de entorno PROJECT_ID para tu ID del proyecto.
    export PROJECT_ID=PROJECT_ID
    Las llamadas a la API de AutoML y los nombres de los recursos incluyen el ID del proyecto. La variable de entorno PROJECT_ID proporciona una manera conveniente de especificar el ID.

Cree un bucket de Cloud Storage

Usa Cloud Shell, una línea de comandos de Linux basada en el navegador conectada a tu proyecto de la consola de Google Cloud, para crear un bucket de Cloud Storage:

  1. Abre Cloud Shell.

  2. Crea un bucket de Google Cloud Storage. El nombre del depósito debe tener el siguiente formato: project-id-vcm Con el siguiente comando, se crea un depósito de almacenamiento llamado project-id-vcm en la región us-central1. Para obtener una lista completa de las regiones disponibles, consulta la página Ubicaciones de depósitos.

    gsutil mb -p ${PROJECT_ID} -c regional -l us-central1 gs://${PROJECT_ID}-vcm/

  3. Configura la variable BUCKET.

    export BUCKET=${PROJECT_ID}-vcm

Copia las imágenes de muestra en tu bucket

A continuación, copia el conjunto de datos de flores que se usa en esta entrada de blog de Tensorflow. Las imágenes se almacenan en un bucket público de Cloud Storage, de modo que puedes copiarlas directo desde allí hasta tu propio bucket.

  1. En tu sesión de Cloud Shell, ingresa:

    gsutil -m cp -R gs://cloud-samples-data/ai-platform/flowers/ gs://${BUCKET}/img/
    

    La copia del archivo tarda unos 20 minutos en completarse.

Crea el archivo CSV

El conjunto de datos de muestra contiene un archivo CSV con todas las ubicaciones de las imágenes y las etiquetas de cada imagen. Lo usarás para crear tu propio archivo CSV:

  1. Actualiza el archivo CSV para que se oriente a los archivos en tu propio bucket:

    gsutil cat gs://${BUCKET}/img/flowers/all_data.csv | sed "s:cloud-ml-data/img/flower_photos/:${BUCKET}/img/flowers/:" > all_data.csv
    
  2. Copia el archivo CSV a tu bucket:

    gsutil cp all_data.csv gs://${BUCKET}/csv/
    

Crea tu conjunto de datos

Visita la IU de AutoML Vision para comenzar el proceso de creación de tu conjunto de datos y entrenamiento de tu modelo.

Cuando se te solicite, asegúrate de seleccionar el proyecto que usaste para el bucket de Cloud Storage.

  1. En la página de AutoML Vision, haz clic en New dataset (Conjunto de datos nuevo):

    Botón de conjunto de datos nuevo en la consola

  2. Especifica un nombre para este conjunto de datos (opcional), selecciona el objetivo del modelo y haz clic en Crear conjunto de datos a fin de continuar con el proceso de creación del conjunto de datos.

    Campo de nombre de conjunto de datos nuevo

  3. En la pantalla Select files to import (Seleccionar archivos para importar), elige el botón de selección Select a CSV file on Cloud Storage (Seleccionar un archivo CSV en Cloud Storage). Especifica el URI de Cloud Storage de tu archivo CSV. En esta guía de inicio rápido, el archivo CSV se encuentra en la siguiente ubicación:

    • gs://${PROJECT_ID}-vcm/csv/all_data.csv

    Reemplaza PROJECT_ID por el ID de tu proyecto específico.

    Ventana de seleccionar archivos para importar

  4. Haz clic en Continue (Continuar) para comenzar la importación de imágenes. El proceso de importación tarda unos minutos en completarse. Cuando finalice, se te redirigirá a la siguiente página, que contiene detalles de todas las imágenes identificadas para tu conjunto de datos, tanto las etiquetadas como las no etiquetadas.

    Lista de imágenes luego de que se completó la importación

Entrena tu modelo

  1. Una vez que se creó y procesó el conjunto de datos, selecciona la pestaña Train (Entrenar) para iniciar el entrenamiento del modelo.

    selecciona la pestaña de entrenar

  2. Selecciona Start training (Comenzar entrenamiento) para continuar. Se abrirá una ventana Train new model (Entrenar un modelo nuevo) con opciones de entrenamiento.

  3. En la sección Define your model (Define tu modelo) de la ventana de entrenamiento del modelo nuevo, cambia el nombre del modelo (opcional) y selecciona el botón de selección del modelo Edge. Selecciona Continue (Continuar) para pasar a la siguiente sección.

    sección de entrenamiento para definir tu modelo

  4. En la sección Optimizar el modelo en función de:, acepta la opción Mejor compensación y selecciona Continue (Continuar).

  5. En la sección Set a node hour budget (Configura un presupuesto por hora de procesamiento de nodo), acepta el presupuesto de nodo sugerido (4 node hours [4 horas de procesamiento de nodo]).

    Entrena el modelo de Edge

  6. Selecciona Comenzar entrenamiento para comenzar el entrenamiento de modelos.

    Se inicia el entrenamiento del modelo, que debería tomar alrededor de una hora. Es posible que el entrenamiento se detenga antes de la hora de procesamiento de nodo que seleccionaste. El servicio te enviará un correo electrónico una vez que se complete el entrenamiento o si se produce algún error.

Implementa el modelo

Antes de que puedas exportar tu modelo, debes implementarlo para su uso.

  1. Para implementar tu modelo, selecciona la pestaña Test & use (Probar y usar). En la pestaña, haz clic en la opción Deploy model (Implementar modelo) cerca del nombre del modelo.

  2. En la ventana que aparece a continuación, especifica 1 nodo para implementar y selecciona Deploy (Implementar) a fin de comenzar el proceso de implementación del modelo.

    elige las horas de procesamiento de nodo en las que implementarás

Recibirás una notificación cuando se complete la implementación del modelo.

Exporta el modelo

El último paso para usar un modelo de AutoML Vision Edge es exportar (optimizar y descargar) e implementar (usar) el modelo.

Existen varias formas de exportar y de implementar los modelos para usarlos en predicciones en dispositivos Edge.

En esta guía de inicio rápido, usarás Tensorflow Lite (TF Lite) como ejemplo. Los modelos TF Lite son fáciles de usar y tienen un amplio conjunto de casos prácticos.

  1. En la sección Usa tu modelo de la pestaña Probar y usar, selecciona la opción TF Lite.

    Exporta el modelo de TF Lite

  2. En la ventana Exportar paquete de TF Lite que se muestra, especifica una ubicación de bucket de Cloud Storage para exportar un paquete de TF Lite y, luego, selecciona Exportar. El proceso de exportación suele llevar varios minutos.

    ventana lateral para exportar tu modelo de TF Lite

En la ubicación de destino de Google Cloud Storage, encontrarás una carpeta con un nombre que contiene el formato de marca de tiempo y de modelo, en la cual puedes encontrar los siguientes archivos:

  • un archivo de tflite (model.tflite)
  • un archivo de diccionario (dict.txt)
  • un archivo de metadatos (tflite_metadata.json)

Realiza una limpieza

Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos que se usaron en esta página, borra el proyecto de Cloud que tiene los recursos.

¿Qué sigue?

Con estos archivos, puedes seguir instructivos para implementar en dispositivos Android, dispositivos iOS, Raspberry Pi 3 o en la Web.

Otras opciones de uso del modelo

  • Puedes exportar el modelo como un modelo compatible con CoreML (iOS/macOS). Después del entrenamiento, puedes exportar el modelo si seleccionas la opción CoreML en Probar y usar y seguir elInstructivo de CoreML.
  • Puedes exportar el modelo para ejecutarlo en Coral Edge TPU. Después de entrenar, selecciona la opción Coral en la pestaña Probar y usar para exportar el modelo. Sin embargo, debido a la incompatibilidad actual con nuestro modelo de detección de objetos, te recomendamos que solo exportes modelos de clasificación de imágenes para Edge TPU (para entrenar un modelo de detección de objetos para Edge TPU, sigue uno de estos instructivos de Colab de Google. Después de exportar el modelo, sigue la documentación oficial de Coral sobre cómo ejecutar una inferencia en Edge TPU.
  • Puedes exportar el modelo como modelo guardado de Tensorflow y usarlo con un contenedor de Docker. Después del entrenamiento, puedes exportar el modelo si seleccionas la opción Contenedor en la pestaña Probar y usar y seguir el Instructivo de contenedores de Edge para exportar a un contenedor.
  • Puedes exportar el modelo para usarlo en un navegador o en Node.js como un modelo de Tensorflow.js. Después del entrenamiento, puedes exportar el modelo si seleccionas la opción Tensorflow.js en la pestaña Probar y usar y seguir el Instructivo de Edge sobre TensorFlow.js.

Limpieza

Si ya no necesitas tu conjunto de datos o modelo personalizado, puedes borrarlos.

A fin de evitar cargos innecesarios en Google Cloud Platform, usa GCP Console para borrar tu proyecto si no lo necesitas.

Anula la implementación de tu modelo

Tu modelo generará cargos mientras esté implementado.

  1. Selecciona la pestaña Probar y usar, que se encuentra justo debajo de la barra de título.
  2. Selecciona Remove deployment (Quitar implementación) en el cuadro que se encuentra debajo del nombre del modelo para abrir la ventana de la opción de anulación de la implementación.

    Menú emergente para anular la implementación

  3. Selecciona Quitar implementación (Remove deployment) para anular la implementación del modelo.

    Implementación del modelo

  4. Recibirás un correo electrónico cuando se complete la anulación de la implementación del modelo.

Borra tu proyecto (opcional)

A fin de evitar cargos innecesarios en Google Cloud Platform, usa la consola de Google Cloud para borrar tu proyecto si no lo necesitas.