arrow_back

Extrae, analiza y traduce texto de imágenes con las APIs de AA de Cloud

Unirse Acceder
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Extrae, analiza y traduce texto de imágenes con las APIs de AA de Cloud

Lab 1 hora universal_currency_alt 5 créditos show_chart Intermedio
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP075

Labs de autoaprendizaje de Google Cloud

Descripción general

En este lab, explorarás el poder del aprendizaje automático. Para ello, usarás varias APIs de este tipo juntas. Empieza con el método de detección de texto de la API de Cloud Vision para hacer uso del reconocimiento óptico de caracteres (OCR) y extraer texto de imágenes. Luego, aprende a traducir ese texto con la API de Translation y a analizarlo con la API de Natural Language.

Qué aprenderás

  • Cómo crear una solicitud a la API de Vision y cómo llamar a la API con curl
  • Cómo usar el método de detección de texto (OCR) de la API de Vision
  • Cómo usar la API de Translation para traducir texto extraído de una imagen
  • Cómo usar la API de Natural Language para analizar texto

Configuración y requisitos

Antes de hacer clic en el botón Comenzar lab

Lee estas instrucciones. Los labs son cronometrados y no se pueden pausar. El cronómetro, que comienza a funcionar cuando haces clic en Comenzar lab, indica por cuánto tiempo tendrás a tu disposición los recursos de Google Cloud.

Este lab práctico te permitirá realizar las actividades correspondientes en un entorno de nube real, no en uno de simulación o demostración. Para ello, se te proporcionan credenciales temporales nuevas que utilizarás para acceder a Google Cloud durante todo el lab.

Para completar este lab, necesitarás lo siguiente:

  • Acceso a un navegador de Internet estándar (se recomienda el navegador Chrome)
Nota: Usa una ventana de navegador privada o de Incógnito para ejecutar este lab. Así evitarás cualquier conflicto entre tu cuenta personal y la cuenta de estudiante, lo que podría generar cargos adicionales en tu cuenta personal.
  • Tiempo para completar el lab: Recuerda que, una vez que comienzas un lab, no puedes pausarlo.
Nota: Si ya tienes un proyecto o una cuenta personal de Google Cloud, no los uses en este lab para evitar cargos adicionales en tu cuenta.

Cómo iniciar su lab y acceder a la consola de Google Cloud

  1. Haga clic en el botón Comenzar lab. Si debe pagar por el lab, se abrirá una ventana emergente para que seleccione su forma de pago. A la izquierda, se encuentra el panel Detalles del lab que tiene estos elementos:

    • El botón Abrir la consola de Google
    • Tiempo restante
    • Las credenciales temporales que debe usar para el lab
    • Otra información para completar el lab, si es necesaria
  2. Haga clic en Abrir la consola de Google. El lab inicia recursos y abre otra pestaña en la que se muestra la página de acceso.

    Sugerencia: Ordene las pestañas en ventanas separadas, una junto a la otra.

    Nota: Si ve el diálogo Elegir una cuenta, haga clic en Usar otra cuenta.
  3. Si es necesario, copie el nombre de usuario del panel Detalles del lab y péguelo en el cuadro de diálogo Acceder. Haga clic en Siguiente.

  4. Copie la contraseña del panel Detalles del lab y péguela en el cuadro de diálogo de bienvenida. Haga clic en Siguiente.

    Importante: Debe usar las credenciales del panel de la izquierda. No use sus credenciales de Google Cloud Skills Boost. Nota: Usar su propia Cuenta de Google podría generar cargos adicionales.
  5. Haga clic para avanzar por las páginas siguientes:

    • Acepte los términos y condiciones.
    • No agregue opciones de recuperación o autenticación de dos factores (esta es una cuenta temporal).
    • No se registre para obtener pruebas gratuitas.

Después de un momento, se abrirá la consola de Cloud en esta pestaña.

Nota: Para ver el menú con una lista de los productos y servicios de Google Cloud, haga clic en el Menú de navegación que se encuentra en la parte superior izquierda de la pantalla. Ícono del menú de navegación

Activa Cloud Shell

Cloud Shell es una máquina virtual que cuenta con herramientas para desarrolladores. Ofrece un directorio principal persistente de 5 GB y se ejecuta en Google Cloud. Cloud Shell proporciona acceso de línea de comandos a tus recursos de Google Cloud.

  1. Haz clic en Activar Cloud Shell Ícono de Activar Cloud Shell en la parte superior de la consola de Google Cloud.

Cuando te conectes, habrás completado la autenticación, y el proyecto estará configurado con tu PROJECT_ID. El resultado contiene una línea que declara el PROJECT_ID para esta sesión:

Your Cloud Platform project in this session is set to YOUR_PROJECT_ID

gcloud es la herramienta de línea de comandos de Google Cloud. Viene preinstalada en Cloud Shell y es compatible con la función de autocompletado con tabulador.

  1. Puedes solicitar el nombre de la cuenta activa con este comando (opcional):
gcloud auth list
  1. Haz clic en Autorizar.

  2. Ahora, el resultado debería verse de la siguiente manera:

Resultado:

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. Puedes solicitar el ID del proyecto con este comando (opcional):
gcloud config list project

Resultado:

[core] project = <project_ID>

Resultado de ejemplo:

[core] project = qwiklabs-gcp-44776a13dea667a6 Nota: Para obtener toda la documentación de gcloud, consulta la guía con la descripción general de gcloud CLI en Google Cloud.

Tarea 1. Crea una clave de API

Como usarás curl para enviar una solicitud a la API de Vision, genera una clave de API con el objetivo de pasarla en la URL de la solicitud.

  1. Para crear una clave de API, navega a: menú de navegación > APIs y servicios > Credenciales:

Menú de navegación expandido, en el que se destaca el submenú APIs y servicios y la opción Credenciales

  1. Haz clic en + Crea credenciales.

  2. En el menú desplegable, selecciona Clave de API:

Opción de clave de API destacada en el menú desplegable

  1. Luego, copia la clave que acabas de generar y haz clic en Cerrar.

  2. Ahora, guarda la clave de API en una variable de entorno para no tener que insertar su valor en cada solicitud.

  3. Ejecuta lo siguiente en Cloud Shell, y reemplaza <your_api_key> por la clave que acabas de copiar:

export API_KEY=<YOUR_API_KEY>

Haz clic en Revisar mi progreso para verificar la tarea realizada.

Crea una clave de API

Tarea 2. Sube una imagen a un bucket de Cloud Storage

Crea un bucket de Cloud Storage

Hay dos maneras de enviar una imagen a la API de Vision para su detección: enviar una cadena de imagen codificada en base64 a la API o pasarle la URL de un archivo almacenado en Cloud Storage. En este lab, crearás un bucket de Cloud Storage para almacenar tus imágenes.

  1. Navega al menú de navegación > navegador de Cloud Storage en la consola y, luego, haz clic en Crear bucket.

  2. Otorga al bucket un nombre único:-bucket.

  3. Luego de hacerlo, haz clic en Elige cómo controlar el acceso a los objetos.

  4. Desmarca la casilla Aplicar la prevención de acceso público a este bucket.

  5. Elige Preciso en Control de acceso y haz clic en Crear.

Sube una imagen al bucket

  1. Haz clic con el botón derecho en la imagen siguiente de un letrero francés, haz clic en Guardar imagen como y guárdala en tu computadora como sign.jpg.

Letrero en francés con el texto “Le Bien Public”

  1. Navega al bucket que acabas de crear en el navegador de Cloud Storage y haz clic en Subir archivos; luego, elige sign.jpg.

A continuación, debes permitir que el archivo se vea de forma pública, al mismo tiempo que mantienes privado el acceso al bucket.

  1. Haz clic en los 3 puntos del archivo de imagen:

Pestaña Objetos con el archivo de imagen del letrero subido, y el botón Más opciones destacado

  1. Selecciona Editar acceso.

  2. Luego, haz clic en Agregar entrada y configura lo siguiente:

  • En Entidad, selecciona Pública.
  • Asegúrate de que el valor allUsers sea el valor para el campo Nombre.
  • En Acceso, elige Lector.

Campos Entidad, Nombre y Acceso resaltados de la nueva entrada agregada

  1. Haz clic en Guardar.

Verás que el archivo es de acceso público.

Ahora que el archivo está en tu bucket, está todo listo para que crees una solicitud a la API de Vision y le pases la URL de esta foto.

Haz clic en Revisar mi progreso para verificar la tarea realizada.

Sube una imagen al bucket

Tarea 3: Crea tu solicitud a la API de Cloud Vision

  1. En el entorno de Cloud Shell, crea un archivo ocr-request.json y, luego, agrégale el código siguiente; recuerda reemplazar my-bucket-name por el nombre del bucket que creaste. Puedes crear el archivo con tu editor de línea de comandos preferido (nano, vim o emacs) o hacer clic en el ícono de lápiz para abrir el editor de código en Cloud Shell:

Botón Abrir editor en el que se muestra el ícono de lápiz

  1. Agrega lo siguiente al archivo ocr-request.json:
{ "requests": [ { "image": { "source": { "gcsImageUri": "gs://my-bucket-name/sign.jpg" } }, "features": [ { "type": "TEXT_DETECTION", "maxResults": 10 } ] } ] }

Deberás usar el atributo TEXT_DETECTION de la API de Cloud Vision para ejecutar el reconocimiento óptico de caracteres (OCR) en la imagen y extraer el texto.

Tarea 4. Llama al método de detección de texto

  1. En Cloud Shell, llama a la API de Cloud Vision con curl:
curl -s -X POST -H "Content-Type: application/json" --data-binary @ocr-request.json https://vision.googleapis.com/v1/images:annotate?key=${API_KEY}

La primera parte de la respuesta debería verse de la manera siguiente:

{ "responses": [ { "textAnnotations": [ { "locale": "fr", "description": "LE BIEN PUBLIC\nles dépêches\nPour Obama,\nla moutarde\nest\nde Dijon\n", "boundingPoly": { "vertices": [ { "x": 138, "y": 40 }, { "x": 622, "y": 40 }, { "x": 622, "y": 795 }, { "x": 138, "y": 795 } ] } }, { "description": "LE", "boundingPoly": { "vertices": [ { "x": 138, "y": 99 }, { "x": 274, "y": 82 }, { "x": 283, "y": 157 }, { "x": 147, "y": 173 } ] } }, { "description": "BIEN", "boundingPoly": { "vertices": [ { "x": 291, "y": 79 }, { "x": 413, "y": 64 }, { "x": 422, "y": 139 }, { "x": 300, "y": 154 } ] } ... ] }] }

El método de OCR puede extraer mucho texto de la imagen.

El primer dato que obtienes de textAnnotations es el bloque de texto entero que la API encontró en la imagen. Esto incluye lo siguiente:

  • el código de idioma (en este caso, fr para francés)
  • una cadena del texto
  • un cuadro delimitador que indica en qué parte de la imagen se encontró el texto

Luego, obtienes un objeto por cada palabra encontrada en el texto con un cuadro delimitador para esa palabra específica.

Nota: Para imágenes que tienen más texto, la API de Cloud Vision también tiene un atributo DOCUMENT_TEXT_DETECTION. Esta respuesta incluye información adicional y desglosa el texto en páginas, bloques, párrafos y palabras.

A menos que hables francés, es probable que no sepas lo que dice aquí. El paso siguiente es la traducción.

  1. Ejecuta el siguiente comando curl para guardar la respuesta en un archivo ocr-response.json, de manera que se pueda hacer referencia a ella más tarde:
curl -s -X POST -H "Content-Type: application/json" --data-binary @ocr-request.json https://vision.googleapis.com/v1/images:annotate?key=${API_KEY} -o ocr-response.json

Tarea 5. Envía texto desde la imagen hasta la API de Translation

La API de Translation puede traducir texto a más de 100 idiomas. También puede detectar el idioma del texto de entrada. Para traducir el texto en francés al inglés, pasa el texto y el código del idioma meta (en-US) a la API de Translation

  1. Primero, crea un archivo translation-request.json y agrégale lo siguiente:
{ "q": "your_text_here", "target": "en" }

q indica por dónde pasarás la cadena que quieres traducir.

  1. Guarda el archivo.

  2. Ejecuta este comando Bash en Cloud Shell para extraer el texto de la imagen del paso anterior y copiarlo en un archivo translation-request.json nuevo (todo en un solo comando):

STR=$(jq .responses[0].textAnnotations[0].description ocr-response.json) && STR="${STR//\"}" && sed -i "s|your_text_here|$STR|g" translation-request.json
  1. Ahora ya puedes llamar a la API de Translation. Este comando también copiará la respuesta en un archivo translation-response.json:
curl -s -X POST -H "Content-Type: application/json" --data-binary @translation-request.json https://translation.googleapis.com/language/translate/v2?key=${API_KEY} -o translation-response.json
  1. Ejecuta este comando para inspeccionar el archivo con la respuesta de la API de Translation:
cat translation-response.json

Ahora puedes comprender un poco más el significado del letrero.

{ "data": { "translations": [ { "translatedText": "TO THE PUBLIC GOOD the dispatches For Obama, the mustard is from Dijon", "detectedSourceLanguage": "fr" } ] } }

En la respuesta, figura lo siguiente:

  • translatedText, que contiene la traducción resultante.
  • detectedSourceLanguage, que es fr, el código de idioma ISO para el francés.

La API de Translation admite más de 100 idiomas, los cuales figuran en la referencia de idiomas admitidos.

Además de traducir el texto de la imagen, es posible que quieras analizarlo en mayor profundidad. Aquí es donde resulta útil la API de Natural Language. Avancemos al siguiente paso.

Tarea 6. Analiza el texto de la imagen con la API de Natural Language

La API de Natural Language nos ayuda a comprender textos. Para ello, extrae entidades, analiza las opiniones y la sintaxis, y clasifica el texto en categorías. Usa el método analyzeEntities para ver qué entidades puede encontrar la API de Natural Language en el texto de tu imagen.

  1. Para configurar la solicitud a la API, crea un archivo nl-request.json con lo siguiente:
{ "document":{ "type":"PLAIN_TEXT", "content":"your_text_here" }, "encodingType":"UTF8" }

En la solicitud, le informas a la API de Natural Language sobre el texto que estás enviando:

  • Los valores de tipo admitidos (type:) son PLAIN_TEXT y HTML.

  • Pasa el texto para enviarlo a la API de Natural Language y analizarlo (content:). La API de Natural Language también admite el envío de archivos almacenados en Cloud Storage para el procesamiento de texto. Si necesitas enviar un archivo desde Cloud Storage, debes reemplazar content por gcsContentUri y usar el valor del URI del archivo de texto en Cloud Storage.

  • El valor encodingType: le informa a la API qué tipo de codificación de texto se debe emplear cuando procesa el texto. La API utilizará esta información para calcular dónde aparecen entidades específicas en el texto.

  1. Ejecuta este comando Bash en Cloud Shell para copiar el texto traducido en el bloque de contenido de la solicitud a la API de Natural Language:
STR=$(jq .data.translations[0].translatedText translation-response.json) && STR="${STR//\"}" && sed -i "s|your_text_here|$STR|g" nl-request.json

El archivo nl-request.json ahora contiene el texto traducido en inglés de la imagen original. Es hora de analizarlo.

  1. Llama al extremo analyzeEntities de la API de Natural Language con esta solicitud curl:
curl "https://language.googleapis.com/v1/documents:analyzeEntities?key=${API_KEY}" \ -s -X POST -H "Content-Type: application/json" --data-binary @nl-request.json

Si te desplazas por la respuesta, verás las entidades que encontró la API de Natural Language:

{ "entities": [ { "name": "dispatches", "type": "OTHER", "metadata": {}, "salience": 0.3560996, "mentions": [ { "text": { "content": "dispatches", "beginOffset": 23 }, "type": "COMMON" } ] }, { "name": "mustard", "type": "OTHER", "metadata": {}, "salience": 0.2878307, "mentions": [ { "text": { "content": "mustard", "beginOffset": 38 }, "type": "COMMON" } ] }, { "name": "Obama", "type": "PERSON", "metadata": { "mid": "/m/02mjmr", "wikipedia_url": "https://en.wikipedia.org/wiki/Barack_Obama" }, "salience": 0.16260329, "mentions": [ { "text": { "content": "Obama", "beginOffset": 31 }, "type": "PROPER" } ] }, { "name": "Dijon", "type": "LOCATION", "metadata": { "mid": "/m/0pbhz", "wikipedia_url": "https://en.wikipedia.org/wiki/Dijon" }, "salience": 0.08129317, "mentions": [ { "text": { "content": "Dijon", "beginOffset": 54 }, "type": "PROPER" } ] } ], "language": "en" }

En el caso de las entidades que tienen página de Wikipedia, la API proporciona metadatos, incluida la URL de esa página junto con el elemento mid de la entidad. El elemento mid es un ID que se asigna a esta entidad en el Gráfico de conocimiento de Google. Para obtener más información al respecto, llama a la API de Gráfico de conocimiento y pásale este ID. En todas las entidades, la API de Natural Language indica los lugares en los que apareció en el texto (mentions), el type (tipo) de entidad y el valor salience (un rango [0,1] que indica qué tan importante es la entidad para el texto como unidad). Además del inglés, la API de Natural Language admite los idiomas que figuran en la referencia de idiomas admitidos.

Si observas esta imagen, es relativamente fácil identificar las entidades importantes, pero si tuvieras una biblioteca de miles de imágenes, sería mucho más difícil. La OCR, la traducción y el procesamiento de lenguaje natural pueden ayudar a extraer significado de grandes conjuntos de datos de imágenes.

Haz clic en Revisar mi progreso para verificar la tarea realizada.

Analiza el texto de la imagen con la API de Natural Language

¡Felicitaciones!

Aprendiste a combinar 3 APIs de aprendizaje automático diferentes: el método de OCR de la API de Vision extrajo texto de una imagen; luego, la API de Translation tradujo ese texto al inglés y, por último, la API de Natural Language encontró entidades en ese texto.

Temas abordados

  • Casos de uso para combinar varias APIs de aprendizaje automático
  • Cómo crear una solicitud de OCR a la API de Vision y cómo llamar a la API con curl
  • Cómo traducir texto con la API de Translation
  • Cómo extraer entidades de texto con la API de Natural Language

Finaliza la Quest

Este lab de autoaprendizaje forma parte de las Quests Integrate with Machine Learning APIs y Intro to ML: Image Processing. Una Quest es una serie de labs relacionados que forman una ruta de aprendizaje. Si completas esta Quest, obtendrás una insignia como reconocimiento por tu logro. Puedes hacer públicas tus insignias y agregar vínculos a ellas en tu currículum en línea o en tus cuentas de redes sociales. Inscríbete en cualquier Quest que contenga este lab y obtén un crédito inmediato de finalización. Consulta el catálogo de Google Cloud Skills Boost para ver todas las Quests disponibles.

Completa el próximo lab

Prueba otro lab sobre APIs de aprendizaje automático, como los que figuran a continuación:

Pasos siguientes y más información

Capacitación y certificación de Google Cloud

Recibe la formación que necesitas para aprovechar al máximo las tecnologías de Google Cloud. Nuestras clases incluyen habilidades técnicas y recomendaciones para ayudarte a avanzar rápidamente y a seguir aprendiendo. Para que puedas realizar nuestros cursos cuando más te convenga, ofrecemos distintos tipos de capacitación de nivel básico a avanzado: a pedido, presenciales y virtuales. Las certificaciones te ayudan a validar y demostrar tus habilidades y tu conocimiento técnico respecto a las tecnologías de Google Cloud.

Actualización más reciente del manual: 6 de octubre de 2023

Prueba más reciente del lab: 6 de octubre de 2023

Copyright 2024 Google LLC. All rights reserved. Google y el logotipo de Google son marcas de Google LLC. Los demás nombres de productos y empresas pueden ser marcas de las respectivas empresas a las que estén asociados.