Automatisation industrielle chez Tyson avec vision par ordinateur, AWS Panorama et Amazon SageMaker

Nœud source: 1575225

Il s'agit du premier d'une série de blogs en deux parties sur la façon dont Tyson Foods, Inc. utilise Amazon SageMaker et AWS Panorama pour automatiser les processus industriels dans leurs usines de conditionnement de viande en apportant les avantages des applications d'intelligence artificielle à la périphérie. Dans la première partie, nous discutons d'une application de comptage d'inventaire pour les lignes d'emballage. Dans la deuxième partie, nous discutons d'une solution de détection d'anomalies basée sur la vision à la périphérie pour la maintenance prédictive des équipements industriels.

En tant que l'un des plus grands transformateurs et distributeurs de poulet, de bœuf et de porc au monde, Tyson Foods, Inc., est connu pour apporter des solutions innovantes à ses usines de production et de conditionnement. En février 2020, Tyson annoncé son projet d'apporter la vision par ordinateur (CV) à ses usines de poulet et a lancé un projet pilote avec AWS pour lancer des efforts sur la gestion des stocks. Tyson a collaboré avec Laboratoire de solutions Amazon ML pour créer une solution CV de comptage de plateaux de poulet à la pointe de la technologie qui fournit des informations en temps réel sur les niveaux d'inventaire emballés. Dans cet article, nous fournissons un aperçu de l'architecture AWS et une présentation complète de la solution pour démontrer les composants clés du pipeline de comptage de plateaux mis en place à l'usine de Tyson. Nous nous concentrerons sur la collecte et l'étiquetage des données, la formation et le déploiement de modèles de CV à la périphérie en utilisant Amazon Sage Maker, Apache MXNet Gluonet Panorama AWS.

L'excellence opérationnelle est une priorité clé chez Tyson Foods. Tyson utilise des mesures strictes d'assurance qualité (AQ) dans ses lignes d'emballage, garantissant que seuls les produits emballés qui passent leurs protocoles de contrôle qualité sont expédiés à ses clients. Afin de répondre à la demande des clients et de garder une longueur d'avance sur tout problème de production, Tyson surveille de près le nombre de plateaux de poulet emballé. Cependant, les techniques manuelles actuelles pour compter les plateaux de poulet qui réussissent l'AQ ne sont pas précises et ne présentent pas une image claire des niveaux de sur/sous-production. Des stratégies alternatives telles que la surveillance du poids horaire total de la production par rack ne fournissent pas de rétroaction immédiate aux employés de l'usine. Avec une capacité de transformation de poulet de 45,000,000 XNUMX XNUMX têtes par semaine, la précision et l'efficacité de la production sont essentielles pour les activités de Tyson. Le CV peut être utilisé efficacement dans de tels scénarios pour estimer avec précision la quantité de poulet transformé en temps réel, permettant aux employés d'identifier les goulots d'étranglement potentiels dans les lignes d'emballage et de production au fur et à mesure qu'ils se produisent. Cela permet la mise en œuvre de mesures correctives et améliore l'efficacité de la production.

La diffusion et le traitement de flux vidéo sur site dans le cloud pour les applications CV nécessitent une bande passante réseau élevée et la fourniture d'une infrastructure appropriée. Cela peut être une tâche d'un coût prohibitif. AWS Panorama supprime ces exigences et permet à Tyson de traiter les flux vidéo en périphérie sur l'appliance AWS Panorama. Il réduit la latence vers/depuis le cloud et les coûts de bande passante, tout en fournissant une interface facile à utiliser pour la gestion des appareils et des applications à la périphérie.

La détection d'objets est l'un des algorithmes CV les plus couramment utilisés pour localiser la position des objets dans les images et les vidéos. Cette technologie est actuellement utilisée dans diverses applications réelles telles que le repérage des piétons dans les véhicules autonomes, la détection de tumeurs dans les scanners médicaux, les systèmes de comptage de personnes pour surveiller la fréquentation des espaces de vente au détail, entre autres. Il est également crucial pour les cas d'utilisation de la gestion des stocks, tels que le comptage des plateaux de viande pour Tyson, de réduire les déchets en créant une boucle de rétroaction avec les processus de production, les économies de coûts et la livraison des expéditions des clients à temps.

Les sections suivantes de cet article de blog expliquent comment nous utilisons les vidéos en direct de l'une des usines de Tyson Foods pour former un modèle de détection d'objets à l'aide d'Amazon SageMaker. Nous le déployons ensuite en périphérie avec l'appareil AWS Panorama.

Panorama AWS

AWS Panorama est une appliance d'apprentissage automatique (ML) qui permet aux organisations d'apporter des CV aux caméras sur site pour faire des prédictions localement avec une grande précision et une faible latence. L'AWS Panorama Appliance est un périphérique matériel qui vous permet d'exécuter des applications qui utilisent ML pour collecter des données à partir de flux vidéo, produire des vidéos avec des superpositions de texte et graphiques et interagir avec d'autres services AWS. L'appliance peut exécuter plusieurs modèles CV sur plusieurs flux vidéo en parallèle et produire les résultats en temps réel. Il est conçu pour une utilisation dans des environnements commerciaux et industriels.

L'appliance AWS Panorama vous permet d'exécuter des applications de CV autonomes à la périphérie, sans envoyer d'images au cloud AWS. Vous pouvez également utiliser le kit SDK AWS sur l'appliance AWS Panorama pour l'intégrer à d'autres services AWS et les utiliser pour suivre les données de l'application au fil du temps. Pour créer et déployer des applications, vous utilisez l'AWS Panorama Application CLI. La CLI est un outil de ligne de commande qui génère des dossiers d'application et des fichiers de configuration par défaut, crée des conteneurs avec Docker et télécharge des actifs.

AWS Panorama prend en charge les modèles créés avec Apache MXNet, filet sombre, GluonCV, Keras, ONNX, PyTorch, TensorFlowet TensorFlow Lite. Faire référence à this article de blog pour en savoir plus sur la création d'applications sur AWS Panorama. Pendant le processus de déploiement, AWS Panorama se charge de compiler le modèle spécifique à la plate-forme périphérique via Compilation Amazon SageMaker Neo. Les résultats d'inférence peuvent être acheminés vers des services AWS tels qu'Amazon S3, Amazon CloudWatch ou intégrés à des applications métier sur site. Les journaux de déploiement sont stockés dans Amazon CloudWatch.

Pour suivre tout changement dans la logique du script d'inférence ou le modèle formé, on peut créer une nouvelle version de l'application. Variantes d'applications sont des instantanés immuables de la configuration d'une application. AWS Panorama enregistre les versions précédentes de vos applications afin que vous puissiez annuler les mises à jour qui ont échoué ou exécuter différentes versions sur différents appareils.

Pour plus d'informations, reportez-vous à la Page Panorama AWS. Pour en savoir plus sur la création d'exemples d'applications, reportez-vous à Exemples de panoramas AWS.

Approche

Un employé de l'usine remplit continuellement des plateaux de poulet emballés dans des bacs en plastique et les empile au fil du temps, comme le montre la figure précédente. Nous voulons pouvoir détecter et compter le nombre total de plateaux sur tous les bacs empilés verticalement.

Un modèle de détection d'objet formé peut prédire les boîtes englobantes de tous les plateaux placés dans un bac à chaque image vidéo. Cela peut être utilisé pour évaluer le nombre de plateaux dans un casier à une instance donnée. Nous savons également qu'à tout moment, un seul bac est rempli de plateaux emballés ; le plateau compte oscille continuellement de haut (pendant le remplissage) à bas (lorsqu'un nouveau bac obstrue la vue du bac rempli).

Avec cette connaissance, nous adoptons la stratégie suivante pour compter le nombre total de plateaux de poulet :

  1. Maintenez deux compteurs différents - local et global. Le compteur global maintient le nombre total de plateaux mis en bac et le compteur local stocke le nombre maximum de plateaux placés dans un nouveau bac.
  2. Mettre à jour le compteur local au fur et à mesure que de nouveaux plateaux sont placés dans le bac.
  3. Détectez un nouvel événement bin des manières suivantes :
    1. Le nombre de plateaux dans une trame donnée passe à zéro. (ou alors)
    2. Le flux de numéros de plateau dans le dernier n les images chutent continuellement.
  4. Une fois le nouvel événement bin détecté, ajoutez la valeur du compteur local au compteur global.
  5. Remise à zéro du compteur local.

Nous avons testé cet algorithme sur plusieurs heures de vidéo et obtenu des résultats cohérents.

Formation d'un modèle de détection d'objet avec Amazon SageMaker

Création de jeu de données :

Capture de nouvelles images pour les travaux d'étiquetage

Capture de nouvelles images pour les travaux d'étiquetage

Nous avons collecté des échantillons d'images de la ligne d'emballage à l'aide de l'appliance AWS Panorama. Le script pour traiter les images et les enregistrer a été packagé en tant qu'application et déployé sur AWS Panorama. L'application collecte les images vidéo d'une caméra sur site installée à proximité de la zone d'emballage et les enregistre toutes les 60 secondes sur un Amazon S3 baquet; cela empêche de capturer des images similaires dans la séquence vidéo qui sont distantes de quelques secondes. Nous masquons également les régions adjacentes de l'image qui ne sont pas pertinentes pour le cas d'utilisation.

Nous avons étiqueté les plateaux de poulet avec des boîtes englobantes en utilisant Vérité au sol d'Amazon SageMaker travail d'étiquetage en continu. Nous avons également mis en place une notification d'événement Amazon S3 qui publie événements créés par un objet à un Service de notification simple d'Amazon (SNS), qui sert de source d'entrée pour la tâche d'étiquetage. Lorsque le script d'application AWS Panorama enregistre une image dans un compartiment S3, une notification d'événement est publiée dans la rubrique SNS, qui envoie ensuite cette image à la tâche d'étiquetage. Au fur et à mesure que les annotateurs étiquettent chaque image entrante, Ground Truth enregistre les étiquettes dans un fichier manifeste, qui contient le chemin S3 de l'image ainsi que les coordonnées des boîtes de délimitation du plateau de poulet.

Nous effectuons plusieurs augmentations de données (par exemple : bruit aléatoire, contraste et luminosité aléatoires, mélange de canaux) sur les images étiquetées pour rendre le modèle robuste aux variations de la vie réelle. Les images originales et augmentées ont été combinées pour former un ensemble de données unifié.

Modèle de formation:

Une fois le travail d'étiquetage terminé, nous déclenchons manuellement une AWS Lambda une fonction. Cette fonction Lambda regroupe les images et leurs étiquettes correspondantes du manifeste de sortie dans un Fichier LST. Nos fichiers de formation et de test comportaient des images collectées à partir de différentes lignes d'emballage pour éviter toute fuite de données lors de l'évaluation. La fonction Lambda déclenche ensuite une tâche de formation Amazon SageMaker.

Nous utilisons Mode de script SageMaker, qui vous permet d'apporter vos propres algorithmes de formation et de former directement des modèles tout en restant dans les limites conviviales d'Amazon SageMaker. Nous formons des modèles tels que SSD, Yolo-v3 (pour la latence d'inférence en temps réel) avec diverses combinaisons de réseaux fédérateurs de GluonCV Model Zoo pour la détection d'objets en mode script. Les réseaux de neurones ont tendance à suradapter les données d'entraînement, ce qui entraîne de mauvais résultats hors échantillon. GluonCV fournit une normalisation d'image et des augmentations d'image, telles que le retournement et le recadrage d'images aléatoires, pour aider à réduire le surajustement pendant l'entraînement. Les modèle de code de formation est conteneurisé et utilise l'image Docker dans notre AWS Elastic Container Registry. La tâche d'entraînement utilise le dossier d'image S3 et les chemins d'accès au fichier LST comme entrées et enregistre le meilleur artefact de modèle (.params ainsi que .json) à S3 une fois terminé.

Pipeline d'évaluation du modèle

Pipeline d'évaluation du modèle

Les 2 meilleurs modèles basés sur notre ensemble de tests étaient SSD-resnet50 ainsi que Yolov3-darketnet53, avec un score mAP de 0.91 chacun. Nous avons également effectué des tests dans le monde réel en déployant une application d'inférence sur l'appareil AWS Panorama avec le modèle formé. Le script d'inférence enregistre les prédictions et les images vidéo dans un compartiment Amazon S3. Nous avons créé une autre tâche SageMaker Ground Truth pour annoter la vérité terrain, puis effectué une évaluation quantitative supplémentaire du modèle. La vérité terrain et les étiquettes de boîte englobante prédites sur les images ont été enregistrées dans S3 pour une évaluation qualitative. Les modèles ont pu généraliser sur les données du monde réel et ont donné des performances constantes similaires à celles de notre ensemble de tests.

Vous pouvez trouver des exemples complets de bout en bout de création de tâches de formation personnalisées, de formation de modèles de détection d'objets de pointe, de mise en œuvre de l'optimisation des hyperparamètres (HPO) et de déploiement de modèles sur Amazon SageMaker sur le Référentiel AWS Labs GitHub.

Déploiement d'une application de comptage de plateaux à viande

Architecture de production

Architecture de production

Avant le déploiement, nous regroupons tous nos actifs - modèle, script d'inférence, caméra et configuration de variable globale dans un seul conteneur, comme mentionné dans ce blog. Notre pipeline d'intégration et de déploiement continus (CI/CD) met à jour toute modification du script d'inférence en tant que nouvelle version de l'application. Une fois la nouvelle version de l'application publiée, nous la déployons par programmation à l'aide du SDK boto3 en Python.

Lors du déploiement de l'application, AWS Panorama crée d'abord une tâche AWS SageMaker Neo Compilation pour compiler le modèle pour l'appareil AWS Panorama. Le script d'application d'inférence importe le modèle compilé sur l'appareil et effectue la détection du plateau de poulet à chaque image. En plus de SageMaker Neo-Compilation, nous avons activé la quantification post-formation en ajoutant un os.environ['TVM_TENSORRT_USE_FP16'] = '1' drapeau dans le script. Cela réduit la taille des pondérations du modèle de float 32 à float 16, diminuant la taille du modèle de moitié et améliorant la latence sans dégradation des performances. Les résultats d'inférence sont saisis dans Moniteur AWS SiteWise via les messages MQTT de l'appareil AWS Panorama via Cœur AWS IoT. Les résultats sont ensuite poussés vers Amazon S3 et visualisés dans Amazon QuickSight Tableaux de bord. Les directeurs d'usine et les employés peuvent visualiser directement ces tableaux de bord pour comprendre le débit de chaque ligne d'emballage en temps réel.

Conclusion

En combinant un service cloud AWS comme Amazon SageMaker, Amazon S3 et un service de pointe comme AWS Panorama, Tyson Foods Inc., infuse l'intelligence artificielle pour automatiser les processus industriels à forte intensité humaine comme le comptage des stocks dans ses usines de fabrication. Les capacités d'inférence de bord en temps réel permettent à Tyson d'identifier la sur/sous-production et d'ajuster dynamiquement son flux de production pour maximiser l'efficacité. De plus, en possédant l'appareil AWS Panorama à la périphérie, Tyson est également en mesure d'économiser les coûts associés à la bande passante réseau coûteuse pour transférer des fichiers vidéo vers le cloud et peut désormais traiter tous ses actifs vidéo/image localement dans son réseau.

Cet article de blog vous fournit une vue d'ensemble des applications de bout en bout et des architectures de référence pour développer une application CV avec AWS Panorama. Nous avons discuté de 3 aspects différents de la création d'une application CV de pointe.

  1. Données: Collecte, traitement et étiquetage des données à l'aide d'AWS Panorama et d'Amazon SageMaker Ground Truth.
  2. Modèle: Formation et évaluation de modèles à l'aide d'Amazon SageMaker et d'AWS Lambda
  3. Package d'application: Regroupement de modèles formés, de scripts et de fichiers de configuration pour AWS Panorama.

Restez à l'écoute pour la deuxième partie de cette série sur la façon dont Tyson utilise AWS Panorama pour la maintenance prédictive basée sur CV des machines industrielles.

Cliquez ici pour commencer votre voyage avec AWS Panorama. Pour en savoir plus sur la collaboration avec ML Solutions Lab, consultez Laboratoire de solutions Amazon Machine Learning.


À propos des auteurs

Divya Bhargavi est un scientifique des données au Laboratoire de solutions Amazon ML où elle travaille avec des clients dans divers secteurs verticaux et applique une résolution créative de problèmes pour générer de la valeur pour les clients avec des solutions ML/AI de pointe.

Dilip Subramaniam est développeur senior au sein de l'équipe Emerging Technologies chez Tyson Foods. Il est passionné par la création d'applications distribuées à grande échelle pour résoudre des problèmes commerciaux et simplifier les processus en utilisant ses connaissances en développement logiciel, en apprentissage automatique et en Big Data.

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

Horodatage:

Plus de Blog sur l'apprentissage automatique AWS