Industrielle Automatisierung bei Tyson mit Computer Vision, AWS Panorama und Amazon SageMaker

Quellknoten: 1575225

Dies ist der erste Teil einer zweiteiligen Blogserie darüber, wie Tyson Foods, Inc. Amazon SageMaker und AWS Panorama nutzt, um industrielle Prozesse in seinen Fleischverpackungsbetrieben zu automatisieren, indem es die Vorteile von Anwendungen der künstlichen Intelligenz an der Edge nutzt. Im ersten Teil besprechen wir eine Anwendung zur Bestandszählung für Verpackungslinien. Im zweiten Teil besprechen wir eine visionsbasierte Anomalieerkennungslösung am Edge für die vorausschauende Wartung von Industrieanlagen.

Als einer der größten Verarbeiter und Vermarkter von Hühner-, Rind- und Schweinefleisch weltweit Tyson Foods, Inc.ist dafür bekannt, innovative Lösungen für seine Produktions- und Verpackungsanlagen bereitzustellen. Im Februar 2020, Tyson angekündigt seinen Plan, Computer Vision (CV) in seine Hühnerfabriken einzuführen, und startete ein Pilotprojekt mit AWS, um Pionierarbeit bei der Bestandsverwaltung zu leisten. Tyson arbeitete mit zusammen Amazon ML-Lösungslabor um eine hochmoderne CV-Lösung zur Hähnchenschalenzählung zu entwickeln, die Echtzeit-Einblicke in den verpackten Lagerbestand bietet. In diesem Beitrag geben wir einen Überblick über die AWS-Architektur und eine vollständige Komplettlösung durch die Lösung, um die Schlüsselkomponenten der im Tyson-Werk eingerichteten Tray-Counting-Pipeline zu demonstrieren. Wir werden uns auf die Datenerfassung und -kennzeichnung, das Training und die Bereitstellung von CV-Modellen am Rande konzentrieren Amazon Sage Maker, Apache MXNet Gluon und AWS-Panorama.

Operative Exzellenz hat bei Tyson Foods oberste Priorität. Tyson setzt in seinen Verpackungslinien strenge Qualitätssicherungsmaßnahmen (QS) ein, um sicherzustellen, dass nur die verpackten Produkte an seine Kunden versendet werden, die ihre Qualitätskontrollprotokolle bestehen. Um die Kundennachfrage zu erfüllen und etwaigen Produktionsproblemen immer einen Schritt voraus zu sein, überwacht Tyson die Anzahl der verpackten Hähnchenschalen genau. Die derzeitigen manuellen Techniken zur Zählung von Hühnchenschalen, die die Qualitätssicherung bestehen, sind jedoch nicht genau und liefern kein klares Bild von Über-/Unterproduktionsniveaus. Alternative Strategien wie die Überwachung des stündlichen Gesamtgewichts der Produktion pro Rack liefern den Werksmitarbeitern kein unmittelbares Feedback. Bei einer Hühnerverarbeitungskapazität von 45,000,000 Hähnchen pro Woche sind Produktionsgenauigkeit und Effizienz für Tysons Geschäft von entscheidender Bedeutung. CV kann in solchen Szenarien effektiv eingesetzt werden, um die Menge des verarbeiteten Huhns in Echtzeit genau abzuschätzen und es den Mitarbeitern zu ermöglichen, potenzielle Engpässe in Verpackungs- und Produktionslinien zu erkennen, sobald sie auftreten. Dies ermöglicht die Umsetzung von Korrekturmaßnahmen und verbessert die Produktionseffizienz.

Das Streamen und Verarbeiten von On-Premise-Videostreams in der Cloud für CV-Anwendungen erfordert eine hohe Netzwerkbandbreite und die Bereitstellung der entsprechenden Infrastruktur. Dies kann eine kostspielige Aufgabe sein. AWS Panorama beseitigt diese Anforderungen und ermöglicht Tyson die Verarbeitung von Videostreams am Edge auf der AWS Panorama Appliance. Es reduziert die Latenz zur/von der Cloud und die Bandbreitenkosten und bietet gleichzeitig eine benutzerfreundliche Schnittstelle für die Verwaltung von Geräten und Anwendungen am Edge.

Die Objekterkennung ist einer der am häufigsten verwendeten CV-Algorithmen, der die Position von Objekten in Bildern und Videos lokalisieren kann. Diese Technologie wird derzeit in verschiedenen realen Anwendungen eingesetzt, wie zum Beispiel beim Erkennen von Fußgängern in autonomen Fahrzeugen, der Erkennung von Tumoren bei medizinischen Scans, Personenzählsystemen zur Überwachung der Passantenfrequenz in Einzelhandelsflächen und anderen. Auch für Anwendungsfälle in der Bestandsverwaltung, wie zum Beispiel beim Zählen von Fleischschalen für Tyson, ist es von entscheidender Bedeutung, Abfall zu reduzieren, indem eine Rückkopplungsschleife mit Produktionsabläufen, Kosteneinsparungen und die pünktliche Lieferung von Kundensendungen geschaffen wird.

In den folgenden Abschnitten dieses Blogbeitrags wird beschrieben, wie wir Live-Stream-Videos aus einem der Werke von Tyson Foods verwenden, um ein Objekterkennungsmodell mit Amazon SageMaker zu trainieren. Anschließend stellen wir es am Edge mit dem AWS Panorama-Gerät bereit.

AWS-Panorama

AWS Panorama ist eine Appliance für maschinelles Lernen (ML), die es Unternehmen ermöglicht, CV an Kameras vor Ort zu übertragen, um lokal Vorhersagen mit hoher Genauigkeit und geringer Latenz zu treffen. Die AWS Panorama Appliance ist ein Hardwaregerät, mit dem Sie Anwendungen ausführen können, die ML verwenden, um Daten aus Videostreams zu sammeln, Videos mit Text- und Grafiküberlagerungen auszugeben und mit anderen AWS-Diensten zu interagieren. Die Appliance kann mehrere CV-Modelle parallel mit mehreren Videostreams ausführen und die Ergebnisse in Echtzeit ausgeben. Es ist für den Einsatz in gewerblichen und industriellen Umgebungen konzipiert.

Mit der AWS Panorama Appliance können Sie eigenständige CV-Anwendungen am Edge ausführen, ohne Bilder an die AWS Cloud zu senden. Sie können das AWS SDK auch auf der AWS Panorama Appliance verwenden, um es in andere AWS-Dienste zu integrieren und diese zum Verfolgen von Daten aus der Anwendung im Laufe der Zeit zu verwenden. Zum Erstellen und Bereitstellen von Anwendungen verwenden Sie die AWS Panorama Application CLI. Die CLI ist ein Befehlszeilentool, das Standardanwendungsordner und Konfigurationsdateien generiert, Container mit Docker erstellt und Assets hochlädt.

AWS Panorama unterstützt Modelle, die mit erstellt wurden Apache MX-Net, DarkNet, GluonCV, Keras, ONNX, PyTorch, TensorFlow und TensorFlow Lite. Beziehen auf fehlen uns die Worte. Blogbeitrag, um mehr über das Erstellen von Anwendungen auf AWS Panorama zu erfahren. Während des Bereitstellungsprozesses kümmert sich AWS Panorama um die Kompilierung des für die Edge-Plattform spezifischen Modells Amazon SageMaker Neo-Zusammenstellung. Die Inferenzergebnisse können an AWS-Dienste wie Amazon S3, Amazon CloudWatch weitergeleitet oder in lokale Branchenanwendungen integriert werden. Die Bereitstellungsprotokolle werden in Amazon CloudWatch gespeichert.

Um Änderungen in der Inferenzskriptlogik oder im trainierten Modell zu verfolgen, kann man eine neue Version der Anwendung erstellen. Anwendungsversionen sind unveränderliche Schnappschüsse der Konfiguration einer Anwendung. AWS Panorama speichert frühere Versionen Ihrer Anwendungen, sodass Sie nicht erfolgreiche Updates rückgängig machen oder verschiedene Versionen auf verschiedenen Appliances ausführen können.

Weitere Informationen finden Sie im Abschnitt AWS Panorama-Seite. Weitere Informationen zum Erstellen von Beispielanwendungen finden Sie unter AWS Panorama-Beispiele.

Ansatz

Ein Werksmitarbeiter füllt kontinuierlich verpackte Hähnchenschalen in Plastikbehälter und stapelt sie im Laufe der Zeit, wie in der vorherigen Abbildung dargestellt. Wir möchten in der Lage sein, die Gesamtzahl der Tabletts in allen vertikal gestapelten Behältern zu erkennen und zu zählen.

Ein trainiertes Objekterkennungsmodell kann bei jedem Videobild die Begrenzungsrahmen aller in einem Behälter platzierten Tabletts vorhersagen. Dies kann verwendet werden, um die Anzahl der Tabletts in einem Behälter zu einem bestimmten Zeitpunkt zu messen. Wir wissen auch, dass zu jedem Zeitpunkt nur ein Behälter mit gepackten Tabletts gefüllt ist; Die Zählwerte der Behälter schwanken kontinuierlich von hoch (während des Befüllens) zu niedrig (wenn ein neuer Behälter die Sicht auf den gefüllten Behälter versperrt).

Mit diesem Wissen wenden wir die folgende Strategie an, um die Gesamtzahl der Hähnchenschalen zu zählen:

  1. Pflegen Sie zwei verschiedene Zähler – lokal und global. Der globale Zähler verwaltet die Gesamtzahl der in den Behältern abgelegten Behälter und der lokale Schalter speichert die maximale Anzahl der Behälter, die in einen neuen Behälter gelegt werden.
  2. Aktualisieren Sie den lokalen Zähler, wenn neue Tabletts in den Behälter gelegt werden.
  3. Erkennen Sie ein neues Bin-Ereignis auf folgende Weise:
    1. Die Fachanzahl in einem bestimmten Rahmen geht auf Null. (oder)
    2. Der Strom der Fachnummern im letzten n Frames fallen kontinuierlich ab.
  4. Sobald das neue Bin-Ereignis erkannt wird, addieren Sie den lokalen Zählerwert zum globalen Zähler.
  5. Lokalen Zähler auf Null zurücksetzen.

Wir haben diesen Algorithmus an mehreren Stunden Video getestet und konsistente Ergebnisse erhalten.

Trainieren eines Objekterkennungsmodells mit Amazon SageMaker

Datensatzerstellung:

Aufnahme neuer Bilder für Etikettierungsaufträge

Aufnahme neuer Bilder für Etikettierungsaufträge

Mit der AWS Panorama Appliance haben wir Bildbeispiele von der Verpackungslinie gesammelt. Das Skript zum Verarbeiten und Speichern von Bildern wurde als Anwendung gepackt und auf AWS Panorama bereitgestellt. Die Anwendung sammelt Videobilder von einer Kamera vor Ort, die in der Nähe der Verpackungszone aufgestellt ist, und speichert sie in 60-Sekunden-Intervallen in einem Amazon S3 Eimer; Dadurch wird verhindert, dass in der Videosequenz ähnliche Bilder aufgenommen werden, die nur wenige Sekunden voneinander entfernt sind. Wir maskieren auch angrenzende Bereiche im Bild, die für den Anwendungsfall nicht relevant sind.

Wir haben die Hühnchenschalen mit Begrenzungsrahmen beschriftet Amazon SageMaker Ground Truth's Streaming-Labeling-Job. Wir haben außerdem eine Amazon S3-Ereignisbenachrichtigung eingerichtet, die veröffentlicht wird Von Objekten erstellte Ereignisse ein Amazon Simple Notification Service (SNS)-Thema, das als Eingabequelle für den Etikettierungsauftrag fungiert. Wenn das AWS Panorama-Anwendungsskript ein Bild in einem S3-Bucket speichert, wird eine Ereignisbenachrichtigung im SNS-Thema veröffentlicht, das dieses Bild dann an den Beschriftungsauftrag sendet. Während die Annotatoren jedes eingehende Bild beschriften, speichert Ground Truth die Beschriftungen in einer Manifestdatei, die den S3-Pfad des Bildes sowie die Koordinaten der Begrenzungsrahmen der Hühnerschale enthält.

Wir führen verschiedene Datenerweiterungen (z. B. zufälliges Rauschen, zufälliger Kontrast und Helligkeit, Kanalmischung) an den beschrifteten Bildern durch, um das Modell robust gegenüber Variationen im realen Leben zu machen. Die ursprünglichen und erweiterten Bilder wurden zu einem einheitlichen Datensatz kombiniert.

Modelltraining:

Sobald der Etikettierungsauftrag abgeschlossen ist, lösen wir manuell eine aus AWS Lambda Funktion. Diese Lambda-Funktion bündelt Bilder und ihre entsprechenden Beschriftungen aus dem Ausgabemanifest in einem LST-Datei. In unseren Schulungs- und Testdateien wurden Bilder von verschiedenen Verpackungslinien gesammelt, um Datenlecks bei der Auswertung zu verhindern. Die Lambda-Funktion löst dann einen Amazon SageMaker-Trainingsauftrag aus.

Wir verwenden SageMaker-Skriptmodus, wodurch Sie Ihre eigenen Trainingsalgorithmen mitbringen und Modelle direkt trainieren können, während Sie innerhalb der benutzerfreundlichen Grenzen von Amazon SageMaker bleiben. Wir trainieren Modelle wie SSD, Yolo-v3 (für Echtzeit-Inferenzlatenz) mit verschiedenen Backbone-Netzwerkkombinationen von GluonCV Model Zoo zur Objekterkennung im Script-Modus. Neuronale Netze neigen dazu, Trainingsdaten zu überanpassen, was zu schlechten Out-of-Sample-Ergebnissen führt. GluonCV bietet Bildnormalisierung und Bildvergrößerungen wie zufälliges Spiegeln und Zuschneiden von Bildern, um eine Überanpassung während des Trainings zu reduzieren. Der Modelltrainingscode ist containerisiert und verwendet das Docker-Image in unserer AWS Elastic Container Registry. Der Trainingsjob verwendet den S3-Bildordner und die LST-Dateipfade als Eingaben und speichert das beste Modellartefakt (.params und .json) bis S3 nach Abschluss.

Modellbewertungspipeline

Modellbewertungspipeline

Die Top-2-Modelle basierend auf unserem Testset waren SSD-resnet50 und Yolov3-darketnet53, mit einem mAP-Score von jeweils 0.91. Wir haben auch Tests in der Praxis durchgeführt, indem wir zusammen mit dem trainierten Modell eine Inferenzanwendung auf dem AWS Panorama-Gerät bereitgestellt haben. Das Inferenzskript speichert die Vorhersagen und Videobilder in einem Amazon S3-Bucket. Wir haben einen weiteren SageMaker Ground Truth-Job zum Kommentieren von Ground Truth erstellt und anschließend eine zusätzliche quantitative Modellbewertung durchgeführt. Die Grundwahrheit und die vorhergesagten Begrenzungsrahmenbeschriftungen auf Bildern wurden zur qualitativen Auswertung in S3 gespeichert. Die Modelle waren in der Lage, die realen Daten zu verallgemeinern und lieferten eine konsistente Leistung, die der unseres Testsatzes ähnelte.

Vollständige End-to-End-Beispiele für die Erstellung benutzerdefinierter Trainingsjobs, das Training hochmoderner Objekterkennungsmodelle, die Implementierung der Hyperparameteroptimierung (HPO) und die Modellbereitstellung auf Amazon SageMaker finden Sie auf der Website AWS Labs GitHub-Repository.

Bereitstellung einer Anwendung zur Zählung von Fleischschalen

Produktionsarchitektur

Produktionsarchitektur

Vor der Bereitstellung packen wir alle unsere Assets – Modell, Inferenzskript, Kamera und globale Variablenkonfiguration – in einen einzigen Container, wie in beschrieben dieser Blog-Post. Unsere Pipeline für kontinuierliche Integration und kontinuierliche Bereitstellung (CI/CD) aktualisiert jede Änderung im Inferenzskript als neue Anwendungsversion. Sobald die neue Anwendungsversion veröffentlicht ist, stellen wir sie programmgesteuert mithilfe des boto3 SDK in Python bereit.

Bei der Anwendungsbereitstellung erstellt AWS Panorama zunächst einen AWS SageMaker Neo-Kompilierungsauftrag, um das Modell für das AWS Panorama-Gerät zu kompilieren. Das Inferenzanwendungsskript importiert das kompilierte Modell auf das Gerät und führt bei jedem Frame eine Chicken-Tray-Erkennung durch. Zusätzlich zur SageMaker Neo-Compilation haben wir die Quantisierung nach dem Training durch Hinzufügen von a aktiviert os.environ['TVM_TENSORRT_USE_FP16'] = '1' Flag im Skript. Dadurch wird die Größe der Modellgewichte von Float 32 auf Float 16 reduziert, wodurch die Modellgröße um die Hälfte verringert und die Latenz ohne Leistungseinbußen verbessert wird. Die Inferenzergebnisse werden in erfasst AWS SiteWise Monitor über MQTT-Nachrichten vom AWS Panorama-Gerät über AWS IoT-Kern. Die Ergebnisse werden dann an Amazon S3 übertragen und dort visualisiert Amazon QuickSight Dashboards. Die Werksleiter und Mitarbeiter können diese Dashboards direkt einsehen, um den Durchsatz jeder Verpackungslinie in Echtzeit zu verstehen.

Zusammenfassung

Durch die Kombination von AWS-Cloud-Diensten wie Amazon SageMaker, Amazon S3 und Edge-Diensten wie AWS Panorama führt Tyson Foods Inc. künstliche Intelligenz ein, um personalintensive Industrieprozesse wie die Bestandszählung in seinen Produktionsstätten zu automatisieren. Echtzeit-Edge-Inferenzfunktionen ermöglichen es Tyson, Über-/Unterproduktion zu erkennen und den Produktionsfluss dynamisch anzupassen, um die Effizienz zu maximieren. Darüber hinaus kann Tyson durch den Besitz des AWS Panorama-Geräts am Edge auch Kosten sparen, die mit der teuren Netzwerkbandbreite für die Übertragung von Videodateien in die Cloud verbunden sind, und kann nun alle seine Video-/Bildbestände lokal in seinem Netzwerk verarbeiten.

Dieser Blogbeitrag bietet Ihnen einen Überblick über End-End-Edge-Anwendungen und Referenzarchitekturen für die Entwicklung einer CV-Anwendung mit AWS Panorama. Wir haben drei verschiedene Aspekte der Erstellung einer Edge-CV-Anwendung besprochen.

  1. Datum: Datenerfassung, -verarbeitung und -kennzeichnung mit AWS Panorama und Amazon SageMaker Ground Truth.
  2. Modell: Modellschulung und -bewertung mit Amazon SageMaker und AWS Lambda
  3. Anwendungspaket: Bündelung trainierter Modelle, Skripte und Konfigurationsdateien für AWS Panorama.

Seien Sie gespannt auf den zweiten Teil dieser Serie darüber, wie Tyson AWS Panorama für die CV-basierte vorausschauende Wartung von Industriemaschinen nutzt.

Klicken Sie auf Kostenlos erhalten und dann auf Installieren. hier um Ihre Reise mit AWS Panorama zu beginnen. Weitere Informationen zur Zusammenarbeit mit ML Solutions Lab finden Sie unter Amazon Machine Learning Solutions Lab.


Über die Autoren

Divya Bhargavi ist Data Scientist bei der Amazon ML-Lösungslabor wo sie mit Kunden aus verschiedenen Branchen zusammenarbeitet und kreative Problemlösungen anwendet, um mit modernsten ML/KI-Lösungen Mehrwert für Kunden zu schaffen.

Dilip Subramaniam ist Senior Developer im Emerging Technologies-Team bei Tyson Foods. Seine Leidenschaft ist die Entwicklung groß angelegter verteilter Anwendungen zur Lösung von Geschäftsproblemen und zur Vereinfachung von Prozessen, wobei er sein Wissen in den Bereichen Softwareentwicklung, maschinelles Lernen und Big Data einsetzt.

Quelle: https://aws.amazon.com/blogs/machine-learning/industrial-automation-at-tyson-with-computer-vision-aws-panorama-and-amazon-sagemaker/

Zeitstempel:

Mehr von AWS-Blog für maschinelles Lernen