Uso de OCI Vision para automatizar la gestión de inventario
La gestión manual de inventario puede ser un proceso laborioso y laborioso. A menudo, los fabricantes tienen dificultades para mantener un stock actualizado de inventario y realizar un seguimiento de su ubicación, lo que conduce a la pérdida de ingresos y al capital infrautilizado. El proceso de recuento de inventario in situ para fábricas o almacenes remotos de gran tamaño implica pasos y restricciones que requieren mucho tiempo y recursos, y es propenso a errores.
OCI Vision se puede utilizar para complementar los esfuerzos de gestión de inventario manual mediante drones (u otros robots) para observar, contar e informar información de forma fiable y más rápida.
OCI Vision es uno de varios servicios de IA disponibles en Oracle Cloud Infrastructure. Visión de OCI le ofrece la capacidad de aplicar aprendizaje automático e inteligencia artificial sin necesidad de experiencia en ciencia de datos. OCI Vision incluye modelos predefinidos disponibles listos para usar, que permiten integrar el reconocimiento de imágenes y el reconocimiento de texto en sus aplicaciones, sin experiencia previa en aprendizaje automático (ML). Estos modelos también se pueden utilizar para detectar anomalías visuales en la fabricación, extraer texto de los documentos para automatizar los flujos de trabajo empresariales.
En esta arquitectura de referencia se describe la prueba de concepto desarrollada recientemente para Oracle Industry Lab, donde el objetivo era utilizar las tuberías apiladas como ejemplo de un escenario de recuento de inventario automatizado, mediante un dron programable y un modelo de visión de OCI personalizado entrenado.
Arquitectura
El siguiente diagrama ilustra el flujo lógico para esta arquitectura de referencia.
Descripción de la ilustración oci-vision-inventory-flow.png
El primer paso del proceso de desarrollo era etiquetar un juego de datos de imágenes de tubos apilados mediante el servicio OCI Data Labeling. Después de completar el etiquetado, se crearon un proyecto de visión de OCI y un modelo personalizado de visión de OCI. El modelo personalizado de OCI Vision se entrenó mediante el juego de datos etiquetados de imágenes de canalización apiladas.
- Descargue las imágenes de dron en el acoplamiento a través de la API de Skydio Cloud
- Cargar las imágenes en OCI Object Storage
- Contar las tuberías
- Actualice el recuento de canalizaciones en el sistema Oracle Cloud Enterprise Resource Planning mediante la API de Oracle Fusion Cloud Inventory Management.
El modelo de visión de OCI creado puede proporcionar como salida los metadatos de cada objeto reconocido (en esta arquitectura de referencia: canal). Los metadatos de cada objeto contienen las coordenadas del cuadro de límite que encierra el objeto y un valor de confianza. El recuento total no está presente en la respuesta nativa, por lo que es necesario incluirlo en el código.
Los eventos de OCI se utilizaron para automatizar los procesos de gestión de inventario. Cuando las imágenes se cargan en Object Storage, el evento asociado dispara OCI Functions. A continuación, la función llama directamente a la API de Oracle Fusion Cloud Inventory Management para actualizar el recuento de artículos.
El siguiente diagrama muestra la arquitectura de referencia de ejemplo que se puede asignar al diagrama de flujo lógico anterior.
Descripción de la ilustración oci-vision-inventory-arch.png
La arquitectura tiene los siguientes componentes:
- Visión de OCI
OCI Vision es un servicio de IA para realizar análisis de imágenes basados en el aprendizaje exhaustivo a escala. Con los modelos predefinidos disponibles listos para usar, los desarrolladores pueden crear fácilmente reconocimiento de imágenes y reconocimiento de texto en sus aplicaciones sin experiencia en aprendizaje automático (AA). En los casos de uso específicos del sector, los desarrolladores pueden entrenar automáticamente modelos de Vision personalizados con sus propios datos. Estos modelos se pueden utilizar para detectar anomalías visuales en la fabricación, extraer texto de los documentos para automatizar los flujos de trabajo de negocio y etiquetar artículos en imágenes para contabilizar productos o envíos.
Además de acceder a modelos preentrenados, los desarrolladores pueden crear modelos personalizados sin experiencia en ciencia de datos ni gestionar la infraestructura de modelos personalizados.
- Etiquetado de datos de OCI
El servicio OCI Data Labeling es un servicio nativo de OCI que permite a los clientes crear y examinar conjuntos de datos, ver registros de datos (texto, imágenes) y aplicar etiquetas para crear modelos de IA/AA. El servicio también proporciona interfaces de usuario interactivas diseñadas para ayudar en el proceso de etiquetado. Los desarrolladores pueden cargar imágenes raw, agregar etiquetas y resaltar áreas de imágenes. Al agregar estas etiquetas a las imágenes, los conjuntos de datos resultantes se pueden utilizar para entrenar modelos personalizados de clasificación de imágenes y detección de objetos.
Una vez etiquetados los registros, el conjunto de datos se puede exportar como JSON delimitado por línea para utilizarlo en el desarrollo de modelos de IA/AA. También se puede acceder al etiquetado de datos de OCI directamente desde otros servicios como OCI Vision y OCI Language como parte del flujo de trabajo personalizado de formación de modelos. Los científicos de datos que prefieren crear y entrenar sus propios modelos de aprendizaje exhaustivo o de procesamiento de lenguaje natural pueden consumir el conjunto de datos etiquetado a través de OCI Data Science.
- Object Storage
El almacenamiento de objetos proporciona acceso rápido a grandes cantidades de datos estructurados y no estructurados de cualquier tipo de contenido, incluidas copias de seguridad de bases de datos, datos analíticos y contenido enriquecido, como imágenes y vídeos. Puede almacenar datos de forma segura y, a continuación, recuperarlos directamente desde Internet o desde la plataforma en la nube. Puede ampliar el almacenamiento sin problemas sin experimentar ninguna degradación del rendimiento o la fiabilidad del servicio. Utilice el almacenamiento estándar para el almacenamiento "en caliente" al que necesita acceder de forma rápida, inmediata y frecuente. Utilice el almacenamiento de archivos para el almacenamiento "en frío" que conserva durante largos períodos de tiempo y a los que rara vez se accede o que rara vez se accede.
- Funciones
Oracle Functions es una plataforma de funciones como servicio (FaaS) totalmente gestionada, multitenant, altamente escalable. Se basa en el motor de código abierto Fn Project. Las funciones permiten desplegar el código, llamarlo directamente o dispararlo en respuesta a eventos. Oracle Functions utiliza los contenedores de Docker alojados en Oracle Cloud Infrastructure Registry.
- Eventos
Los servicios de Oracle Cloud Infrastructure emiten eventos, que son mensajes estructurados que describen los cambios en los recursos. Se emiten eventos para operaciones de creación, lectura, actualización o supresión (CRUD), cambios de estado del ciclo de vida de los recursos y eventos del sistema que afectan a los recursos en la nube.
- Gateway de Internet
El gateway de Internet permite el tráfico entre las subredes públicas de una VCN y la red pública de Internet.
- Gateway de traducción de direcciones de red (NAT)
Un gateway de NAT permite que los recursos privados en una VCN accedan a los hosts en Internet, sin exponer dichos recursos a las conexiones de Internet entrantes.
Recomendaciones
- Red virtual en la nube (VCN)
Al crear una VCN, determine el número de bloques CIDR necesarios y el tamaño de cada bloque según el número de recursos que planea asociar a subredes en la VCN. Utilice bloques CIDR que estén dentro del espacio de dirección IP privada estándar.
Al crear una VCN, determine el número de bloques CIDR necesarios y el tamaño de cada bloque según el número de recursos que planea asociar a subredes en la VCN. Utilice bloques CIDR que estén dentro del espacio de dirección IP privada estándar.
Seleccione bloques CIDR que no se solapen con ninguna otra red (en Oracle Cloud Infrastructure, su centro de datos local u otro proveedor en la nube) en la que desea configurar conexiones privadas.
Después de crear una VCN, puede cambiar, agregar y eliminar sus bloques CIDR.
Al diseñar las subredes, tenga en cuenta los requisitos de seguridad y flujo de tráfico. Conecte todos los recursos de un nivel o rol específico a la misma subred, que puede servir como límite de seguridad.
Utilice subredes regionales.
- Funciones
Esta arquitectura utiliza una función para llamar a la API de REST de visión de OCI con una imagen específica y, a continuación, almacena los metadatos que devuelve OCI Vision. La función se puede crear con el SDK de Java o Python.
- Eventos
En esta arquitectura, el servicio OCI Events está configurado para recibir cambios en la creación de Object Storage. El servicio se llama después de cargar el objeto en Object Storage y llama a la función para su procesamiento.
- Object Storage
Cuando las imágenes se cargan en Object Storage, el evento asociado puede servir como disparador para el elemento que cuenta funciones de OCI. A continuación, la función puede llamar directamente a la API de Oracle Fusion Cloud Inventory Management para actualizar el recuento de artículos. En este caso, la implantación se puede realizar de forma que los resultados detallados (incluidas las imágenes con cuadros delimitadores agregados) se almacenen en Object Storage para la auditoría. El almacenamiento de archivos se puede utilizar en este escenario, como una opción más rentable.
Consideraciones
Tenga en cuenta los siguientes puntos al desplegar esta arquitectura.
- Interfaz de Usuario
En la prueba de concepto del laboratorio de la industria de Oracle, con fines de demostración, se desarrolló una sencilla aplicación web para mostrar cuadros delimitadores sobre las imágenes de entrada, como un paso del proceso. Si se desea, dicha aplicación web se puede construir y utilizar para que un operador valide manualmente el recuento de objetos consultando las cajas delimitadoras.
- Acceso
Visión de OCI soporta el acceso a través de la consola de OCI, el cliente SDK de Java y Python y la CLI de OCI. Al realizar pruebas, se recomienda usar la herramienta de CLI o la consola.