Nutzung von OCI Vision zur Automatisierung des Bestandsmanagements

Die manuelle Bestandsverwaltung kann ein zeitaufwändiger und arbeitsintensiver Prozess sein. Hersteller haben oft Schwierigkeiten, einen aktualisierten Bestand auf dem Laufenden zu halten und ihren Standort zu verfolgen, was zu entgangenen Umsätzen und unzureichendem Kapital führt. Der Inventurprozess vor Ort für große Remotefabriken oder Lagerstätten umfasst zeit- und ressourcenintensive Schritte, Constraints und ist fehleranfällig.

Mit OCI Vision können Sie manuelle Bestandsverwaltungsaufgaben ergänzen, indem Sie Drohnen (oder andere Roboter) verwenden, um Informationen zuverlässig und schneller zu beobachten, zu zählen und zu melden.

OCI Vision ist eines von mehreren KI-Services auf Oracle Cloud Infrastructure. Mit OCI Vision können Sie maschinelles Lernen und künstliche Intelligenz anwenden, ohne dass Data-Science-Kenntnisse erforderlich sind. OCI Vision umfasst vordefinierte Out-of-the-box-Modelle, mit denen Bilderkennung und Texterkennung in Ihre Anwendungen integriert werden können, ohne zuvor Machine Learning-(ML-)Kenntnisse. Mit diesen Modellen können Sie auch visuelle Anomalien in der Fertigung erkennen und Text aus Dokumenten extrahieren, um Geschäftsworkflows zu automatisieren.

Diese Referenzarchitektur beschreibt den kürzlich entwickelten Proof-of-Concept für das Oracle Industry Lab. Ziel war es, gestapelte Rohre als Beispiel für ein automatisiertes Inventur-Szenario mit einer programmierbaren Drohne und einem trainierten, benutzerdefinierten OCI Vision-Modell zu verwenden.

Architektur

Das folgende Diagramm zeigt den logischen Ablauf für diese Referenzarchitektur.


Beschreibung von oci-vision-inventory-flow.png folgt
Beschreibung der Abbildung oci-vision-inventory-flow.png

Im ersten Schritt des Entwicklungsprozesses wurde mit dem OCI Data Labeling-Service ein Dataset von Bildern gestapelter Rohre beschriftet. Nach Abschluss der Beschriftung wurden ein OCI Vision-Projekt und ein benutzerdefiniertes OCI Vision-Modell erstellt. Das benutzerdefinierte OCI Vision-Modell wurde mit dem beschrifteten Dataset von gestapelten Pipe-Images trainiert.

Sobald das OCI-Vision-Modell einsatzbereit war, wurde der Python-Code für die Verarbeitung der folgenden Vorgänge in OCI Functions bereitgestellt:
  • Laden Sie Drohnenbilder über die Skydio Cloud API auf Docking herunter
  • Images in OCI Object Storage hochladen
  • Rohre zählen
  • Aktualisieren Sie die Pipe-Anzahl im Oracle Cloud Enterprise Resource Planning-System mit der Oracle Fusion Cloud Inventory Management-API

Das erstellte OCI Vision-Modell kann nativ als Ausgabe die Metadaten jedes erkannten Objekts (in dieser Referenzarchitektur: Pipe) bereitstellen. Die Metadaten für jedes Objekt enthalten die Koordinaten des Begrenzungsfeldes, der das Objekt umschließt, sowie einen Konfidenzwert. Die Gesamtanzahl ist in der nativen Antwort nicht vorhanden. Daher muss sie in den Code aufgenommen werden.

OCI-Ereignisse wurden zur Automatisierung der Bestandsverwaltungsprozesse verwendet. Wenn Images in Object Storage hochgeladen werden, löst das zugehörige Ereignis OCI Functions aus. Die Funktion ruft dann direkt die Oracle Fusion Cloud Inventory Management-API auf, um die Artikelanzahl zu aktualisieren.

Das folgende Diagramm zeigt die Beispielreferenzarchitektur, die dem obigen logischen Ablaufdiagramm zugeordnet werden kann.


Beschreibung von oci-vision-inventory-arch.png folgt
Beschreibung der Abbildung oci-vision-inventory-arch.png

Die Architektur umfasst die folgenden Komponenten:

  • OCI-Vision

    OCI Vision ist ein KI-Service für tieflernende Bildanalysen im großen Maßstab. Da vorgefertigte Modelle out-of-the-box verfügbar sind, können Entwickler ganz einfach die Bilderkennung und die Texterkennung in ihre Anwendungen ohne Machine Learning-(ML-)Kenntnisse einbauen. Für branchenspezifische Anwendungsfälle können Entwickler benutzerdefinierte Vision-Modelle automatisch mit ihren eigenen Daten trainieren. Mit diesen Modellen können Sie visuelle Anomalien in der Fertigung erkennen, Text aus Dokumenten extrahieren, um Geschäftsworkflows zu automatisieren und Artikel in Bildern zu kennzeichnen, um Produkte oder Lieferungen zu zählen.

    Neben dem Zugriff auf vorab trainierte Modelle können Entwickler benutzerdefinierte Modelle ohne Data-Science-Kenntnisse erstellen oder benutzerdefinierte Modellinfrastruktur verwalten.

  • OCI-Datenlabeling

    Der OCI Data Labeling-Service ist ein OCI-nativer Service, mit dem Kunden Datasets erstellen und durchsuchen, Datensätze (Text, Bilder) anzeigen und Labels zum Erstellen von KI/ML-Modellen anwenden können. Der Service stellt außerdem interaktive Benutzeroberflächen bereit, die für den Etikettierungsprozess konzipiert sind. Entwickler können Raw-Images hochladen, Labels hinzufügen und Bildbereiche hervorheben. Durch Hinzufügen dieser Labels zu Bildern können die resultierenden Datasets verwendet werden, um benutzerdefinierte Imageklassifizierungs- und Objekterkennungsmodelle zu trainieren.

    Nachdem Datensätze beschriftet wurden, kann das Dataset als durch Zeilen getrennte JSON zur Verwendung bei der AI/ML-Modellentwicklung exportiert werden. OCI Data Labeling kann auch direkt von anderen Services wie OCI Vision und OCI Language als Teil eines benutzerdefinierten Workflows zur Modellschulung aufgerufen werden. Data Scientists, die lieber eigene Deep Learning- oder Natural Language Processing-Modelle erstellen und trainieren, können das beschriftete Dataset über OCI Data Science konsumieren.

  • Object Storage

    Object Storage ermöglicht einen schnellen Zugriff auf große Mengen strukturierter und unstrukturierter Daten aller Inhaltstypen, darunter Datenbankbackups, Analysedaten und umfangreiche Inhalte wie Bilder und Videos. Sie können Daten sicher und geschützt speichern und dann direkt aus dem Internet oder aus der Cloud-Plattform abrufen. Sie können den Speicher nahtlos skalieren, ohne dass dies zu einer Beeinträchtigung der Performance oder Servicezuverlässigkeit führt. Verwenden Sie Standardspeicher für "Hot"-Speicher, auf den Sie schnell, sofort und häufig zugreifen müssen. Verwenden Sie den Archivspeicher zum "kalten" Speicher, den Sie über lange Zeiträume beibehalten und selten oder nur selten aufrufen.

  • Funktionen

    Oracle Functions ist eine vollständig verwaltete, mehrmandantenfähige, hochskalierbare On-Demand-Service-(FaaS-)Plattform. Sie basiert auf der Open-Source-Engine Fn-Projekt. Mit Funktionen können Sie Ihren Code bereitstellen und entweder direkt aufrufen oder als Reaktion auf Ereignisse auslösen. Oracle Functions verwendet Docker-Container, die in Oracle Cloud Infrastructure Registry gehostet werden.

  • Ereignisse

    Oracle Cloud Infrastructure-Services geben Ereignisse aus. Hierbei handelt es sich um strukturierte Nachrichten, die Änderungen an Ressourcen beschreiben. Ereignisse werden für CRUD-Vorgänge, Änderungen des Ressourcenlebenszyklusstatus und Systemereignisse, die sich auf Cloud-Ressourcen auswirken, ausgegeben, gelesen, aktualisiert oder gelöscht.

  • Internetgateway

    Das Internetgateway ermöglicht Traffic zwischen den öffentlichen Subnetzen in einem VCN und dem öffentlichen Internet.

  • Network Address Translation-(NAT-)Gateway

    Ein NAT-Gateway ermöglicht privaten Ressourcen in einem VCN den Zugriff auf Hosts im Internet, ohne dass diese Ressourcen für eingehende Internetverbindungen freigegeben werden.

Empfehlungen

Verwenden Sie die folgenden Empfehlungen als Ausgangspunkt. Ihre Anforderungen können sich von der hier beschriebenen Architektur unterscheiden.
  • Virtuelles Cloud-Netzwerk (VCN)

    Wenn Sie ein VCN erstellen, bestimmen Sie die Anzahl der erforderlichen CIDR-Blöcke und die Größe jedes Blocks basierend auf der Anzahl der Ressourcen, die Sie an Subnetze im VCN anhängen möchten. Verwenden Sie CIDR-Blöcke, die sich im privaten Standardadressbereich befinden.

    Wenn Sie ein VCN erstellen, bestimmen Sie die Anzahl der erforderlichen CIDR-Blöcke und die Größe jedes Blocks basierend auf der Anzahl der Ressourcen, die Sie an Subnetze im VCN anhängen möchten. Verwenden Sie CIDR-Blöcke, die sich im privaten Standardadressbereich befinden.

    Wählen Sie CIDR-Blöcke aus, die sich nicht mit einem anderen Netzwerk (in Oracle Cloud Infrastructure, Ihrem On-Premise-Data Center oder einem anderen Cloud-Provider) überschneiden, für das Sie private Verbindungen einrichten möchten.

    Nachdem Sie ein VCN erstellt haben, können Sie die zugehörigen CIDR-Blöcke ändern, hinzufügen und entfernen.

    Berücksichtigen Sie bei der Entwicklung der Subnetze Ihren Trafficfluss und Ihre Sicherheitsanforderungen. Hängen Sie alle Ressourcen innerhalb einer bestimmten Tier oder Rolle an dasselbe Subnetz an, das als Sicherheitsgrenze dienen kann.

    Verwenden Sie regionale Subnetze.

  • Funktionen

    Diese Architektur verwendet eine Funktion, um die OCI-Vision-REST-API mit einem bestimmten Image aufzurufen und die von OCI Vision zurückgegebenen Metadaten dann zu speichern. Die Funktion kann mit dem Java- oder Python-SDK erstellt werden.

  • Ereignisse

    In dieser Architektur ist der OCI-Events-Service so konfiguriert, dass er auf Änderungen bei der Erstellung von Object Storage horcht. Der Service wird aufgerufen, nachdem das Objekt in Object Storage hochgeladen wurde, und ruft die Funktion zur Verarbeitung auf.

  • Object Storage

    Wenn Images in Object Storage hochgeladen werden, kann das zugehörige Ereignis als Trigger für die Artikelanzahl von OCI Functions dienen. Die Funktion kann dann direkt die Oracle Fusion Cloud Inventory Management-API aufrufen, um die Artikelanzahl zu aktualisieren. In diesem Fall kann die Implementierung so durchgeführt werden, dass die detaillierten Ergebnisse (einschließlich Bilder mit hinzugefügten Begrenzungsfeldern) für das Auditing in Object Storage gespeichert werden. Archivspeicher kann in diesem Szenario als kostengünstigere Option verwendet werden.

Hinweise

Beachten Sie beim Deployment dieser Architektur die folgenden Punkte.

  • Benutzeroberfläche

    Im Oracle Industry Lab Proof-of-Concept wurde zu Demozwecken eine einfache Webanwendung entwickelt, um Begrenzungsfelder als Schritt des Prozesses auf den Eingabebildern anzuzeigen. Bei Bedarf kann eine solche Webanwendung erstellt und verwendet werden, sodass ein Operator die Objektanzahl manuell validiert, indem die Begrenzungsfelder betrachtet werden.

  • Zugriff

    OCI Vision unterstützt den Zugriff über die OCI-Konsole, den Java- und Python-SDK-Client und die OCI-CLI. Beim Testen wird die Verwendung des CLI-Tools oder der Konsole empfohlen.

Bestätigungen

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