Amazon Rekognition es un servicio de AWS basado en tecnología Deep Learning, con la capacidad de reconocimiento de rostros, etiquetas, objetos, lugares, etc a partir del análisis de imágenes y videos.
El servicio de reconocimiento de Etiquetas Personalizadas, permite reconocer imágenes que correspondan a tu marca, o elementos en una fotografía de tu interés.
Para entrenar un modelo de Amazon Rekognition que identifique etiquetas, sólo necesitarás un conjunto de datos con imágenes que contengan el elemento que deseas reconocer.
Entre más grande el dataset, más preciso será el comportamiento del modelo.
Flujo del proceso

Preparación del proyecto
Para saber cómo configurar tu proyecto Amazon Rekognition para detectar etiquetas, sigue los pasos del siguiente video.

Una vez entrenado el modelo, lo podemos usar a través de llamadas API desde nuestra aplicación.
IMPLEMENTACIÓN EN JAVA
Para llamar a la API necesitamos un cliente Rekognition:

Construir un request con la imagen que queremos analizar, el ARN del proyecto y el mínimo de coincidencia, para este ejemplo usamos 90%

Finalmente hacer la llamada y almacenarla en un response

Recuerda que para modelos de Machine Learning, la respuesta no es determinística true/false, es probabilística, un ejemplo de la respuesta es:

En este ejemplo, la API detectó la etiqueta zenta-square-black, con una coincidencia del 99,99500%, la respuesta también indica la ubicación de la imagen y el tamaño del área que ocupa en la fotografía original.
Con el tamaño original de la imagen y estos datos, puedes calcular dónde está la etiqueta y, vía programación, dibujar la etiqueta.
Si tomas el tamaño de la imagen y las coordenadas de la respuesta, puedes calcular cómo dibujar un rectángulo en la imagen que indique donde AWS reconoció la etiqueta.
Una solución en Java para dibujar los rectángulos en la imagen sería la siguiente:

EJECUCIÓN DE PRUEBAS
Para probar el modelo se enviaron 3 imágenes con alguno de los logos zenta, y en las 3 ocasiones la implementación detectó la marca, y dibujó un rectángulo basado en las coordenadas que devuelve la respuesta.
Un ejemplo de la respuesta del sistema, indicando el porcentaje de coincidencia, el nombre de la etiqueta y la posición del logo en la imagen.



AWS proporciona un servicio fácil de usar para el entrenamiento de modelos capaces de reconocer fragmentos de imágenes dentro de otras imágenes. Adicionalmente, una API que puede ser usada desde varios lenguajes de programación como Java, Python, JavaScript, NodeJS, etc.
Con esta solución, es posible reconocer tu marca, logotipos, objetos, productos en un almacén, etc. en una imagen, utilizando el servicio de Amazon Rekognition, sin la necesidad de desarrollar un modelo personalizado que puede tomar una cantidad de tiempo y esfuerzo considerable.
El código fuente está disponible aquí: GitHub
