Amazon Rekognition para el reconocimiento de imágenes
por Massimo Della Rovere · publicado el 17 Agosto 2017 · actualizado el 10 Diciembre 2017

En la conferencia anterior de los Amazon Web Services, que tuvo lugar en Las Vegas se presentaron algunos servicios de inteligencia artificial (IA). Durante este año voy a tratar de publicar algunos artículos sobre el tema y presentar los diferentes servicios que forman parte de este interesante grupo. Hoy empezamos con Amazon Rekognition, el cual permite analizar una imagen y realizar el reconocimiento de escenas y objetos en las fotos, el reconocimiento facial y la comparación de la cara en diferentes fotografías.

Amazon Rekognition

El uso de este servicio es muy sencillo, basta con almacenar una imagen en un recurso como Amazon S3, llamar a una API específica según el tipo de procesamiento que desea realizar y leer el archivo JSON con retorno de la información generada, todos con un tiempo de respuesta increíbles (menos de 0,5 seg). No es necesario configurar ningún servidor.

Para comprender el funcionamiento de las llamadas a la API que proporciona el servicio, en este momento no hay cosa mejor que hacer algunos ejemplos concretos. Vamos a tratar en la continuación de este artículo la función de escenas y reconocimiento objetos presentes en la imagen, la expresión facial y el análisis de reconocimiento facial.

Reconocimiento de escena/objetos

En la consola de los Servicios Web de Amazon podemos encontrar en la página del servicio una herramienta para ejecutar las primeras pruebas sin necesidad de escribir código de programación, pero como se mencionó anteriormente, la operación es tan simple que incluso a tratar ahora con el código es una operación muy rápida y se pierde demasiado tiempo.

La primera foto que hice fue utilizada en un artículo “el chocolate en el Perú” en este mismo sitio web. Hice otros intentos utilizando fotos con los animales de la Selva Peruana y siempre he recibido un resultado consistente con la imagen procesada. El servicio también funciona bien con imágenes que representan paisajes y monumentos históricos.

Desde realizada la carga de procesamiento de imágenes de las etiquetas que aparecen a la derecha de esta pantalla te puedo decir que el tiempo es casi inmediato. Durante muchos años he trabajado como ingeniero de sistemas y me enfrenté a proyectos muy difíciles, pero me sorprende la forma en que han desarrollado esta herramienta, es asombrosa.

Análisis facial

Con esta API se puede analizar una cara y comprender algunas características, como si sonríe, si es hombre o mujer, si usted usa gafas, si usted tiene una barba, si los ojos están abiertos o cerrados, y muchos otros datos. Dado que estos cálculos se pueden realizar en una gran cantidad de imágenes y no sólo en el análisis de una foto a la vez, imaginar la cantidad de utilidad automática que puede realizar.

En este ejemplo he utilizado la fotografía puesta a disposición por Amazon ya que la chica tiene una sonrisa hermosa y merece la publicación. De todas formas he intentado con varias fotos de la familia y salen las cosas aún más divertidas. Sin duda, es un servicio que te puede dar muchas ideas para el desarrollo de tus aplicaciones.

Comparación facial

Con este servicio se puede tomar un origen facial que debe estar presente en una imagen llamada “cara de referencia” y ver otras fotos que serán llamados como “Comparación Caras”. El archivo JSON resultante indicará para cada foto la tasa de reconocimiento que permitan evaluar si la persona se encuentra en ella.

En JSON los archivos también indican las coordenadas de la imagen de destino para indicar la parte exacta de la imagen en la que se ha producido el reconocimiento. Sin duda, esta API es más compleja que la anterior, pero aún así es fácil de implementar. Le recomiendo que lea también la documentación oficial para más detalles.

Ejemplo para los desarrolladores

Estoy seguro que los desarrolladores más curiosos querrán ver de inmediato la estructura de los datos que se genera después de la llamada a la API. Como he mencionado anteriormente es sólo un tipo de ficheros JSON desde el cual extrapolar la información necesaria. Adjunto a continuación el archivo generado a partir del último ejemplo en la comparación del rostro.

{
  "FaceMatches": [
  {
    "Face": {
    "BoundingBox": {
      "Height": 0.07888888567686081,
      "Left": 0.34166666865348816,
      "Top": 0.185555562376976,
      "Width": 0.11833333224058151
    },
    "Confidence": 99.99418640136719
  },
  "Similarity": 98
  },
  {
  "Face": {
    "BoundingBox": {
      "Height": 0.08444444090127945,
      "Left": 0.5766666531562805,
      "Top": 0.2177777737379074,
      "Width": 0.12666666507720947
  },
  "Confidence": 99.98779296875
  },
  "Similarity": 0
  },
  {
  "Face": {
    "BoundingBox": {
      "Height": 0.07444444298744202,
      "Left": 0.46666666865348816,
      "Top": 0.15666666626930237,
      "Width": 0.11166666448116302
    },
    "Confidence": 99.9874267578125
  },
  "Similarity": 0
  }
  ],
  "SourceImageFace": {
    "BoundingBox": {
      "Height": 0.5899999737739563,
      "Left": 0.3288888931274414,
      "Top": 0.1966666728258133,
      "Width": 0.39222222566604614
    },
   "Confidence": 99.97590637207031
  }
}

Aviso sobre este articulo

El español no es el mi idioma nativo, traté de escribir este artículo con la esperanza de que no haya cometido demasiados errores. Quiero agradecer a mi colega Junior por haber corregido algunas cosas, espero que no te molestes si encuentras cualquier inexactitud lingüística, voy a mejorar con el tiempo y con los artículos futuros.

1 Comentario

  1. Los servicios de inteligencia artificial cada vez están más centrados en comprender el lenguaje natural, entender el texto dentro de una conversación del día a día, poder mantener conversaciones usando voz o texto sin problemas de entendimiento e incluso aprender a reconocer caras, objetos y escenas.