Utilisation d'OCI Vision pour automatiser la gestion des stocks

La gestion manuelle des stocks peut s'avérer un processus chronophage et laborieux. Les fabricants peinent souvent à conserver un stock mis à jour et à suivre leur emplacement, ce qui entraîne une perte de revenus et un sous-utilisation des capitaux. Le processus de comptage des stocks sur site pour de grandes usines ou installations d'entreposage à distance implique des étapes, des contraintes de temps et de ressources et est sujet à des erreurs.

OCI Vision peut être utilisé pour compléter les efforts manuels de gestion des stocks en utilisant des drones (ou d'autres robots) pour observer, compter et signaler les informations de manière fiable et plus rapide.

OCI Vision est l'un des nombreux services d'IA disponibles sur Oracle Cloud Infrastructure. OCI Vision vous donne le pouvoir d'appliquer l'apprentissage automatique et l'intelligence artificielle sans avoir besoin d'une expertise en science des données. OCI Vision inclut des modèles prédéfinis prêts à l'emploi qui permettent la reconnaissance d'images et la reconnaissance de texte dans vos applications, sans expertise préalable en machine learning (ML). Ces modèles peuvent également être utilisés pour détecter des anomalies visuelles dans la fabrication, extraire du texte de documents pour automatiser les workflows de l'entreprise.

Cette architecture de référence décrit l'étude de faisabilité récemment développée pour Oracle Industry Lab, dans laquelle l'objectif était d'utiliser des tuyaux empilés comme exemple de scénario de comptage d'inventaire automatisé, à l'aide d'un drone programmable et d'un modèle OCI Vision personnalisé et entraîné.

Architecture

Le schéma suivant illustre le flux logique de cette architecture de référence.


Description de l'image oci-vision-ventory-flow.png
Description de l'illustration oci-vision-ventory-flow.png

La première étape du processus de développement consistait à étiqueter un ensemble de données d'images de canalisations empilées à l'aide du service OCI Data Labeling. Une fois l'étiquetage terminé, un projet OCI Vision et un modèle personnalisé OCI Vision ont été créés. Le modèle personnalisé OCI Vision a été entraîné à l'aide de l'ensemble de données étiquetées des images de tuyau empilées.

Une fois le modèle OCI Vision prêt à être utilisé, le code Python a été déployé pour la gestion des opérations suivantes dans OCI Functions :
  • Télécharger les images de drone sur le quai via l'API Skydio Cloud
  • Télécharger les images vers OCI Object Storage
  • Compter les tuyaux
  • Mettre à jour le nombre de canaux dans le système Oracle Cloud Enterprise Resource Planning à l'aide de l'API Oracle Fusion Cloud Inventory Management

Le modèle OCI Vision créé est en mesure de fournir en sortie les métadonnées de chaque objet reconnu (dans cette architecture de référence : pipe). Les métadonnées de chaque objet contiennent les coordonnées de la zone de délimitation qui l'entoure et une valeur de confiance. Le nombre total n'est pas présent dans la réponse native, d'où la nécessité de l'inclure dans le code.

Les événements OCI ont été utilisés pour automatiser les processus de gestion des stocks. Lorsque des images sont téléchargées vers Object Storage, l'événement associé déclenche OCI Functions. La fonction appelle ensuite directement l'API Oracle Fusion Cloud Inventory Management pour mettre à jour le nombre d'articles.

Le schéma suivant présente l'exemple d'architecture de référence qui peut être mappé avec le diagramme de flux logique ci-dessus.


Description de l'image oci-vision-ventory-arch.png
Description de l'illustration oci-vision-ventory-arch.png

L'architecture comprend les composants suivants :

  • Vision OCI

    OCI Vision est un service d'IA permettant d'effectuer une analyse d'image basée sur l'apprentissage approfondi à grande échelle. Grâce à la mise à disposition de modèles prédéfinis prêts à l'emploi, les développeurs peuvent facilement intégrer la reconnaissance d'images et la reconnaissance textuelle dans leurs applications sans expertise du machine learning (ML). Pour les cas d'utilisation propres au secteur, les développeurs peuvent automatiquement entraîner des modèles Vision personnalisés avec leurs propres données. Ces modèles peuvent être utilisés pour détecter les anomalies visuelles dans la fabrication, extraire du texte de documents pour automatiser les workflows de l'entreprise et baliser les articles en images afin de compter les produits ou les expéditions.

    En plus d'avoir accès à des modèles prédéfinis, les développeurs peuvent créer des modèles personnalisés sans expertise en data science ni gestion d'infrastructure de modèles personnalisés.

  • Etiquetage des données OCI

    Le service OCI Data Labeling est un service natif OCI qui permet aux clients de créer et de parcourir des ensembles de données, d'afficher des enregistrements de données (texte, images) et d'appliquer des libellés dans le but de créer des modèles d'IA/ML. Le service fournit également des interfaces utilisateur interactives conçues pour faciliter le processus d'étiquetage. Les développeurs peuvent télécharger des images brutes, ajouter des libellés et mettre en évidence des zones d'images. L'ajout de ces libellés aux images permet d'utiliser les jeux de données obtenus pour former des modèles personnalisés de classification d'images et de détection d'objets.

    Une fois les enregistrements étiquetés, l'ensemble de données peut être exporté en tant que JSON délimité par des lignes pour une utilisation dans le développement de modèle AI/ML. L'étiquetage des données OCI est également accessible directement à partir d'autres services tels qu'OCI Vision et le langage OCI dans le cadre d'un workflow de formation de modèle personnalisé. Les data scientists qui préfèrent créer et entraîner leurs propres modèles d'apprentissage en profondeur ou de traitement du langage naturel peuvent utiliser l'ensemble de données étiqueté via OCI Data Science.

  • Stockage d'objets

    Object Storage offre un accès rapide à de grandes quantités de données structurées et non structurées de tout type de contenu, notamment des sauvegardes de base de données, des données analytiques et des contenus enrichis tels que des images et des vidéos. Vous pouvez stocker les données, puis les extraire directement à partir d'Internet ou de la plate-forme cloud, et ce, en toute sécurité. Vous pouvez faire évoluer le stockage de manière transparente sans subir de dégradation des performances ou de la fiabilité du service. Utilisez le stockage standard pour le stockage "à chaud" auquel vous devez accéder rapidement, immédiatement et fréquemment. Utilisez le stockage d'archives pour le stockage "à froid" que vous conservez pendant de longues périodes et auquel vous accédez rarement.

  • Fonctions

    Oracle Functions est une plate-forme Functions-as-a-Service (FaaS) entièrement gérée, colocative, hautement évolutive et à la demande. Il est optimisé par le moteur open source du projet Fn. Les fonctions vous permettent de déployer votre code, puis de l'appeler directement ou de le déclencher en réponse à des événements. Oracle Functions utilise des conteneurs Docker hébergés dans Oracle Cloud Infrastructure Registry.

  • Evénements

    Les services Oracle Cloud Infrastructure émettent des événements, qui sont des messages structurés décrivant les modifications apportées dans les ressources. Les événements sont émis pour les opérations de création, de lecture, de mise à jour ou de suppression (CRUD), les modifications d'état de cycle de vie des ressources et les événements système qui affectent les ressources cloud.

  • Passerelle Internet

    La passerelle Internet autorise le trafic entre les sous-réseaux publics d'un réseau VCN et le réseau Internet public.

  • Passerelle NAT (Network Address Translation)

    Une passerelle NAT permet aux ressources privées d'un VCN d'accéder à des hôtes sur Internet, sans les exposer aux connexions Internet entrantes.

Recommandations

Utilisez les recommandations suivantes comme point de départ. Vos besoins peuvent différer de l'architecture décrite ici.
  • Réseau cloud virtuel

    Lorsque vous créez un VCN, déterminez le nombre de blocs CIDR requis et la taille de chaque bloc en fonction du nombre de ressources que vous prévoyez de joindre aux sous-réseaux du VCN. Utilisez des blocs CIDR qui se trouvent dans l'espace d'adresses IP privées standard.

    Lorsque vous créez un VCN, déterminez le nombre de blocs CIDR requis et la taille de chaque bloc en fonction du nombre de ressources que vous prévoyez de joindre aux sous-réseaux du VCN. Utilisez des blocs CIDR qui se trouvent dans l'espace d'adresses IP privées standard.

    Sélectionnez les blocs CIDR qui ne chevauchent aucun autre réseau (dans Oracle Cloud Infrastructure, votre centre de données on-premise ou un autre fournisseur cloud) sur lequel vous souhaitez configurer des connexions privées.

    Après avoir créé un VCN, vous pouvez modifier, ajouter et supprimer ses blocs CIDR.

    Lorsque vous concevez les sous-réseaux, tenez compte de vos exigences en matière de flux de trafic et de sécurité. Attachez toutes les ressources d'un niveau ou d'un rôle spécifique au même sous-réseau, qui peut servir de limite de sécurité.

    Utiliser des sous-réseaux régionaux.

  • Fonctions

    Cette architecture utilise une fonction pour appeler l'API REST OCI Vision avec une image spécifique, puis stocker les métadonnées renvoyées par OCI Vision. La fonction peut être créée à l'aide du kit SDK Java ou Python.

  • Evénements

    Dans cette architecture, le service OCI Events est configuré pour écouter les modifications apportées à la création d'Object Storage. Le service est appelé après le téléchargement de l'objet vers Object Storage et appelle la fonction pour traitement.

  • Object Storage

    Lorsque des images sont téléchargées vers Object Storage, l'événement associé peut servir de déclencheur pour l'élément comptant les fonctions OCI. La fonction peut ensuite appeler directement l'API Oracle Fusion Cloud Inventory Management pour mettre à jour le nombre d'articles. Dans ce cas, l'implémentation peut être effectuée de manière à ce que les résultats détaillés (y compris les images avec des zones de délimitation ajoutées) soient stockés dans Object Storage, à des fins d'audit. Dans ce scénario, Archive Storage peut être utilisé comme une option plus rentable.

Considérations

Tenez compte des points suivants lors du déploiement de cette architecture.

  • Interface utilisateur

    Dans l'étude de faisabilité du laboratoire d'industrie Oracle, à des fins de démonstration, une application Web simple a été développée pour afficher les zones de contournement au-dessus des images d'entrée, comme étape du processus. Si vous le souhaitez, une telle application Web peut être créée et utilisée de sorte qu'un opérateur valide manuellement le nombre d'objets en examinant les zones de délimitation.

  • Accès

    OCI Vision prend en charge l'accès via la console OCI, le client SDK Java et Python et l'interface de ligne de commande OCI. Lors du test, il est recommandé d'utiliser l'outil CLI ou la console.

Accusés de réception

  • Author: Nuno Goncalves
  • Contributors: Mihai Dragnea, Jason Monden, Hassan Ajan, Surya Kommareddy, Nithin TS