Logotipo de Zephyrnet

Cómo The Barcode Registry detecta productos falsificados mediante la detección de objetos y Amazon SageMaker

Fecha:

Esta es una publicación de invitado escrita por Andrew Masek, ingeniero de software en The Barcode Registry y Erik Quisling, director ejecutivo de The Barcode Registry.

La falsificación de productos es la empresa criminal más grande del mundo. Con un crecimiento de más del 10,000 1.7 % en las últimas dos décadas, las ventas de productos falsificados ascienden ahora a XNUMX billones de dólares al año en todo el mundo, más que las drogas y el tráfico de personas. Si bien los métodos tradicionales de prevención de falsificaciones, como los códigos de barras únicos y la verificación de productos, pueden ser muy efectivos, las nuevas tecnologías de aprendizaje automático (ML) como la detección de objetos parecen muy prometedoras. Con la detección de objetos, ahora puede tomar una foto de un producto y saber casi al instante si es probable que ese producto sea legítimo o fraudulento.

El proyecto Registro de código de barras (junto con su socio Comprarcódigodebarras.com) es una solución de servicio completo que ayuda a los clientes a prevenir el fraude y la falsificación de productos. Lo hace vendiendo códigos de barras únicos registrados en GS1, verificando la propiedad del producto y registrando los productos y códigos de barras de los usuarios en una base de datos completa. Su última oferta, que analizamos en esta publicación, utiliza Amazon SageMaker para crear modelos de detección de objetos que ayuden a reconocer instantáneamente los productos falsificados.

Resumen de la solución

Para usar estos modelos de detección de objetos, primero debe recopilar datos para entrenarlos. Las empresas cargan imágenes anotadas de sus productos en The Barcode Registry página web del NDN Collective . Después de cargar estos datos en Servicio de almacenamiento simple de Amazon (Amazon S3) y procesado por AWS Lambda funciones, puede usarlo para entrenar un modelo de detección de objetos de SageMaker. Este modelo está alojado en un punto final de SageMaker, donde el sitio web lo conecta con el usuario final.

Hay tres pasos clave para crear los usos de The Barcode Registry para crear un modelo de detección de objetos personalizado con SageMaker:

  1. Cree un script de capacitación para que se ejecute SageMaker.
  2. Cree un contenedor Docker a partir del script de entrenamiento y cárguelo en Amazon ECR.
  3. Utilice la consola de SageMaker para entrenar un modelo con el algoritmo personalizado.

Datos del producto

Como requisito previo para entrenar un modelo de detección de objetos, necesitará una cuenta de AWS e imágenes de entrenamiento, que constan de al menos 100 imágenes de alta calidad (alta resolución y en múltiples condiciones de iluminación) de su objeto. Al igual que con cualquier modelo de ML, los datos de alta calidad son primordiales. Para entrenar un modelo de detección de objetos, necesitamos imágenes que contengan los productos relevantes, así como cuadros delimitadores que describan dónde se encuentran los productos en las imágenes, como se muestra en el siguiente ejemplo.

Para entrenar un modelo efectivo, se necesitan imágenes de cada uno de los productos de una marca con diferentes fondos y condiciones de iluminación, aproximadamente de 30 a 100 imágenes únicas con anotaciones para cada producto.

Una vez que las imágenes se cargan en el servidor web, se cargan en Amazon S3 mediante el AWS SDK para PHP. Cada vez que se carga una imagen, se activa un evento Lambda. La función elimina los metadatos Exif de las imágenes, lo que a veces puede hacer que aparezcan rotadas cuando las bibliotecas ML las abren y luego se usan para entrenar el modelo. Los datos del cuadro delimitador asociado se almacenan en archivos JSON y se cargan en Amazon S3 para acompañar a las imágenes.

SageMaker para modelos de detección de objetos

SageMaker es un servicio de aprendizaje automático administrado que incluye una variedad de herramientas para crear, entrenar y alojar modelos en la nube. En particular, TheBarcodeRegistry usa SageMaker para su servicio de detección de objetos debido a los servicios de hospedaje y capacitación de modelos ML confiables y escalables de SageMaker. Esto significa que muchas marcas pueden tener sus propios modelos de detección de objetos entrenados y alojados e incluso si el uso aumenta de forma impredecible, no habrá ningún tiempo de inactividad.

Barcode Registry utiliza contenedores Docker personalizados cargados en Registro de contenedores elásticos de Amazon (Amazon ECR) para tener un control más detallado del algoritmo de detección de objetos empleado para entrenamiento e inferencia, así como soporte para Servidor multimodelo (MMS). MMS es muy importante para el caso de uso de detección de falsificaciones porque permite que los modelos de varias marcas se alojen de manera rentable en el mismo servidor. Alternativamente, puede utilizar el integrado algoritmo de detección de objetos para implementar rápidamente modelos estándar desarrollados por AWS.

Entrene un modelo de detección de objetos personalizado con SageMaker

Primero, debe agregar su algoritmo de detección de objetos. En este caso, cargue un contenedor Docker con scripts para entrenar un modelo de detección de objetos Yolov5 a Amazon ECR:

  1. En la consola de SageMaker, en Notebook en el panel de navegación, elija Instancias de cuaderno.
  2. Elige Crear instancia de cuaderno.
  3. Ingrese un nombre para la instancia del cuaderno y debajo Permisos y cifrado elige un Gestión de identidades y accesos de AWS (IAM) con los permisos necesarios.
  4. Abra la Repositorios Git .
  5. Seleccione Clonar un repositorio público de Git solo a esta instancia de notebook y pega lo siguiente URL del repositorio Git: https://github.com/portoaj/SageMakerObjectDetection
  6. Haga Clic en Crear instancia de cuaderno y espere unos cinco minutos para que se actualice el estado de la instancia Pendiente a En servicio existentes Instancia de cuaderno .
  7. Una vez que el cuaderno está En servicio, selecciónelo y haga clic en Acciones y Jupyter abierto para iniciar la instancia del cuaderno en una nueva pestaña.
  8. Seleccione Detección de objetos de SageMaker directorio y luego haga clic en sagemakerobjectdetection.ipynb para iniciar el cuaderno Jupyter.
  9. Seleccione conda_python3 núcleo y haga clic Establecer núcleo.
  10. Seleccione la celda de código y configure el aws_account_id variable a su ID de cuenta de AWS.
  11. Haga Clic en Ejecutar para comenzar el proceso de creación de un contenedor Docker y cargarlo en Amazon ECR. Este proceso puede tardar unos 20 minutos en completarse.
  12. Una vez cargado el contenedor Docker, regrese a la Instancias de cuaderno seleccione su instancia y haga clic en Acciones y Detener para cerrar la instancia de su notebook.

Después de compilar el algoritmo y enviarlo a Amazon ECR, puede usarlo para entrenar un modelo a través de la consola de SageMaker.

  1. En la consola de SageMaker, en Formación en el panel de navegación, elija Empleos de entrenamiento.
  2. Elige Crear trabajo de formación.
  3. Ingrese un nombre para el trabajo y elija el Gestión de identidades y accesos de AWS (IAM) con los permisos necesarios.
  4. Fuente del algoritmo, seleccione Tu propio contenedor de algoritmos en ECR.
  5. Envase, ingrese la ruta del registro.
  6. Establecer una sola instancia de ml.p2.xlarge en la configuración de recursos debería ser suficiente para entrenar un modelo Yolov5.
  7. Especifique las ubicaciones de Amazon S3 para sus datos de entrada y la ruta de salida y cualquier otra configuración, como configurar una VPC a través de Nube privada virtual de Amazon (Amazon VPC) o habilitando Managed Spot Training.
  8. Elige Crear trabajo de formación.

Puede realizar un seguimiento del progreso del entrenamiento del modelo en la consola de SageMaker.

Entrenamiento de modelo automatizado

El siguiente diagrama ilustra el flujo de trabajo de entrenamiento de modelos automatizado:

Para que SageMaker comience a entrenar el modelo de detección de objetos tan pronto como un usuario termine de cargar sus datos, el servidor web utiliza Puerta de enlace API de Amazon para avisar a una función de Lambda que la marca ha terminado y para empezar un trabajo de formación.

Cuando el modelo de una marca se entrena con éxito, Puente de eventos de Amazon llama a una función de Lambda que mueve el modelo entrenado al depósito de S3 del extremo en vivo, donde finalmente está listo para la inferencia. Una alternativa más nueva al uso de Amazon EventBridge para mover modelos a través del ciclo de vida de MLOps que debe considerar es Tuberías de SageMaker.

Aloja el modelo para la inferencia

El siguiente diagrama ilustra el flujo de trabajo de inferencia:

Para usar los modelos entrenados, SageMaker requiere que un punto final aloje un modelo de inferencia. El punto final es el servidor o la matriz de servidores que se utilizan para alojar realmente el modelo de inferencia. De manera similar al contenedor de capacitación que creamos, Amazon ECR aloja un contenedor Docker para la inferencia. El modelo de inferencia usa ese contenedor Docker y toma la imagen de entrada que el usuario tomó con su teléfono, la ejecuta a través del modelo de detección de objetos entrenado y genera el resultado.

Una vez más, Barcode Registry utiliza contenedores Docker personalizados para el modelo de inferencia para permitir el uso de Multi Model Server, pero si solo se necesita un modelo, se puede alojar fácilmente a través del algoritmo de detección de objetos integrado.

Conclusión

Barcode Registry (junto con su socio Buyabarcode.com) utiliza AWS para toda su canalización de detección de objetos. El servidor web almacena datos de manera confiable en Amazon S3 y utiliza las funciones API Gateway y Lambda para conectar el servidor web a la nube. SageMaker entrena y aloja fácilmente modelos ML, lo que significa que un usuario puede tomar una foto de un producto en su teléfono y ver si el producto es una falsificación. Esta publicación muestra cómo crear y alojar un modelo de detección de objetos con SageMaker, además de cómo automatizar el proceso.

En las pruebas, el modelo pudo lograr más del 90 % de precisión en un conjunto de entrenamiento de 62 imágenes y un conjunto de prueba de 32 imágenes, lo cual es bastante impresionante para un modelo entrenado sin intervención humana. Para comenzar a entrenar modelos de detección de objetos usted mismo, consulte el oficial documentación o aprender a implementar un modelo de detección de objetos en el perímetro con AWS IoT Greengrass.

El contenido y las opiniones de esta publicación pertenecen al autor externo y AWS no es responsable del contenido o la precisión de esta publicación.


Acerca de los autores

andres masek, ingeniero de software en The Barcode Registry.

Erik Quisling, director general de Registro de códigos de barras.

punto_img

café vc

vidacienciav

Información más reciente

punto_img