Automatizare industrială la Tyson cu viziune computerizată, AWS Panorama și Amazon SageMaker

Nodul sursă: 1575225

Acesta este primul dintr-o serie de bloguri în două părți despre modul în care Tyson Foods, Inc. utilizează Amazon SageMaker și AWS Panorama pentru a automatiza procesele industriale din fabricile lor de ambalare a cărnii, aducând beneficiile aplicațiilor de inteligență artificială la vârf. În prima parte, discutăm despre o aplicație de numărare a stocurilor pentru liniile de ambalare. În partea a doua, discutăm despre o soluție de detectare a anomaliilor bazată pe viziune la margine pentru întreținerea predictivă a echipamentelor industriale.

Fiind unul dintre cei mai mari procesatori și vânzători de pui, vită și porc din lume, Tyson Foods, Inc., este cunoscut pentru că aduce soluții inovatoare fabricilor lor de producție și ambalare. În februarie 2020, Tyson a anunțat planul său de a aduce Computer Vision (CV) în fabricile sale de pui și a lansat un pilot cu AWS pentru a iniția eforturile de gestionare a stocurilor. Cu Tyson a colaborat Laboratorul Amazon ML Solutions pentru a crea o soluție CV de ultimă generație de numărare a tăvilor de pui care oferă informații în timp real asupra nivelurilor de inventar ambalate. În această postare, oferim o prezentare generală a arhitecturii AWS și o prezentare completă a soluției pentru a demonstra componentele cheie din conducta de numărare a tăvilor instalată la fabrica Tyson. Ne vom concentra pe colectarea și etichetarea datelor, instruirea și implementarea modelelor de CV la marginea utilizării Amazon SageMaker, Apache MXNet Gluon, și AWS Panorama.

Excelența operațională este o prioritate cheie la Tyson Foods. Tyson folosește măsuri stricte de asigurare a calității (QA) în liniile lor de ambalare, asigurându-se că numai acele produse ambalate care trec protocoalele de control al calității sunt expediate clienților săi. Pentru a satisface cererea clienților și pentru a rămâne înaintea oricărei probleme de producție, Tyson monitorizează îndeaproape numărul de tăvi de pui ambalate. Cu toate acestea, tehnicile manuale actuale de numărare a tăvilor de pui care trec QA nu sunt exacte și nu prezintă o imagine clară a nivelurilor de producție peste/sub producție. Strategiile alternative, cum ar fi monitorizarea greutății totale orare a producției pe raft, nu oferă feedback imediat angajaților fabricii. Cu o capacitate de procesare a puilor de 45,000,000 de capete pe săptămână, precizia și eficiența producției sunt esențiale pentru afacerea Tyson. CV poate fi utilizat eficient în astfel de scenarii pentru a estima cu exactitate cantitatea de pui procesată în timp real, dând putere angajaților să identifice potențiale blocaje în ambalarea și liniile de producție pe măsură ce apar. Acest lucru permite implementarea măsurilor corective și îmbunătățește eficiența producției.

Transmiterea în flux și procesarea fluxurilor video on-premise în cloud pentru aplicații CV necesită o lățime de bandă mare a rețelei și furnizarea unei infrastructuri relevante. Aceasta poate fi o sarcină prohibitivă. AWS Panorama elimină aceste cerințe și îi permite lui Tyson să proceseze fluxuri video la marginea dispozitivului AWS Panorama. Reduce latența către/de la cloud și costurile lățimii de bandă, oferind în același timp o interfață ușor de utilizat pentru gestionarea dispozitivelor și aplicațiilor la margine.

Detectarea obiectelor este unul dintre algoritmii CV cei mai des utilizați care pot localiza poziția obiectelor în imagini și videoclipuri. Această tehnologie este utilizată în prezent în diverse aplicații din viața reală, cum ar fi reperarea pietonilor în vehicule autonome, detectarea tumorilor în scanările medicale, sistemele de numărare a persoanelor pentru a monitoriza pasajul în spațiile comerciale, printre altele. De asemenea, este esențial pentru cazurile de utilizare a gestionării stocurilor, cum ar fi numărarea tăvilor de carne pentru Tyson, pentru a reduce risipa prin crearea unei bucle de feedback cu procesele de producție, economii de costuri și livrarea la timp a livrărilor clienților.

Următoarele secțiuni ale acestei postări de blog prezintă modul în care folosim videoclipuri în flux live de la una dintre fabricile Tyson Foods pentru a antrena un model de detectare a obiectelor folosind Amazon SageMaker. Apoi îl implementăm la margine cu dispozitivul AWS Panorama.

AWS Panorama

AWS Panorama este un dispozitiv de învățare automată (ML) care permite organizațiilor să aducă CV-ul camerelor locale pentru a face predicții la nivel local, cu precizie ridicată și latență scăzută. AWS Panorama Appliance este un dispozitiv hardware care vă permite să rulați aplicații care utilizează ML pentru a colecta date din fluxuri video, a scoate videoclipuri cu text și suprapuneri grafice și pentru a interacționa cu alte servicii AWS. Aparatul poate rula mai multe modele de CV pe mai multe fluxuri video în paralel și poate scoate rezultatele în timp real. Este conceput pentru utilizare în medii comerciale și industriale.

Dispozitivul AWS Panorama vă permite să rulați aplicații de CV autonome la margine, fără a trimite imagini către AWS Cloud. De asemenea, puteți utiliza SDK-ul AWS pe AWS Panorama Appliance pentru a vă integra cu alte servicii AWS și a le utiliza pentru a urmări datele din aplicație în timp. Pentru a construi și a implementa aplicații, utilizați CLI-ul AWS Panorama Application. CLI este un instrument de linie de comandă care generează foldere implicite de aplicații și fișiere de configurare, construiește containere cu Docker și încarcă active.

AWS Panorama acceptă modele construite cu Apache MX Net, plasă întunecată, GluonCV, Keras, ONNX, PyTorch, TensorFlow, și TensorFlow Lite. A se referi la acest postare pe blog pentru a afla mai multe despre crearea de aplicații pe AWS Panorama. În timpul procesului de implementare, AWS Panorama se ocupă de compilarea modelului specific platformei edge Compilare Amazon SageMaker Neo. Rezultatele inferenței pot fi direcționate către servicii AWS, cum ar fi Amazon S3, Amazon CloudWatch sau integrate cu aplicații de linie de afaceri on-premise. Jurnalele de implementare sunt stocate în Amazon CloudWatch.

Pentru a urmări orice modificare a logicii scriptului de inferență sau a modelului antrenat, se poate crea o nouă versiune a aplicației. Versiuni de aplicație sunt instantanee imuabile ale configurației unei aplicații. AWS Panorama salvează versiunile anterioare ale aplicațiilor dvs., astfel încât să puteți anula actualizările care nu au succes sau să rulați versiuni diferite pe dispozitive diferite.

Pentru mai multe informații, consultați secțiunea Pagina AWS Panorama. Pentru a afla mai multe despre construirea de exemple de aplicații, consultați Exemple AWS Panorama.

Abordarea

Un angajat al fabricii umple continuu tăvi de pui ambalate în coșuri de plastic și le stivuiește în timp, așa cum se arată în figura anterioară. Dorim să fim capabili să detectăm și să numărăm numărul total de tăvi din toate pubele stivuite vertical.

Un model antrenat de detectare a obiectelor poate prezice casetele de delimitare ale tuturor tăvilor plasate într-un coș la fiecare cadru video. Acesta poate fi folosit pentru a măsura numărul de tăvi dintr-un coș la o anumită instanță. De asemenea, știm că în orice moment, un singur coș este umplut cu tăvi ambalate; numărul de tăvi oscilează continuu de la mare (în timpul umplerii) la scăzut (atunci când un nou coș blochează vederea coșului umplut).

Cu aceste cunoștințe, adoptăm următoarea strategie pentru a număra numărul total de tăvi de pui:

  1. Mențineți două contoare diferite - locale și globale. Contorul global menține totalul tăvilor depozitate, iar contorul local stochează numărul maxim de tăvi plasate într-un coș nou.
  2. Actualizați contorul local pe măsură ce tăvi noi sunt plasate în coș.
  3. Detectați un nou eveniment bin în următoarele moduri:
    1. Numărul de tăvi într-un cadru dat ajunge la zero. (sau)
    2. Fluxul de numere de tăvi din ultimul n cadrele scade continuu.
  4. Odată ce noul eveniment bin este detectat, adăugați valoarea contorului local la contorul global.
  5. Resetați contorul local la zero.

Am testat acest algoritm pe câteva ore de videoclip și am obținut rezultate consistente.

Antrenarea unui model de detectare a obiectelor cu Amazon SageMaker

Crearea setului de date:

Captarea de noi imagini pentru etichetarea lucrărilor

Captarea de noi imagini pentru etichetarea lucrărilor

Am colectat mostre de imagini de la linia de ambalare folosind AWS Panorama Appliance. Scriptul pentru procesarea imaginilor și salvarea lor a fost împachetat ca aplicație și implementat pe AWS Panorama. Aplicația colectează cadre video de la o cameră instalată în apropierea zonei de ambalare și le salvează la intervale de 60 de secunde într-un Amazon S3 găleată; acest lucru împiedică capturarea de imagini similare în secvența video, care sunt distanță de câteva secunde. De asemenea, mascăm regiunile adiacente din imagine care nu sunt relevante pentru cazul de utilizare.

Am etichetat tăvile de pui cu cutii de delimitare folosind Amazon SageMaker Ground Truth's job de etichetare în flux. De asemenea, am configurat o notificare de eveniment Amazon S3 care publică evenimente create de obiect la un Serviciul de notificare simplă Amazon (SNS), care acționează ca sursă de intrare pentru jobul de etichetare. Când scriptul de aplicație AWS Panorama salvează o imagine într-un compartiment S3, o notificare de eveniment este publicată la subiectul SNS, care trimite apoi această imagine la jobul de etichetare. Pe măsură ce adnotatorii etichetează fiecare imagine primită, Ground Truth salvează etichetele într-un fișier manifest, care conține calea S3 a imaginii, precum și coordonatele casetelor de delimitare a tăvii de pui.

Efectuăm mai multe creșteri de date (de exemplu: zgomot aleatoriu, contrast și luminozitate aleatoriu, amestecarea canalelor) pe imaginile etichetate pentru a face modelul robust la variațiile din viața reală. Imaginile originale și augmentate au fost combinate pentru a forma un set de date unificat.

Antrenament model:

Odată ce lucrarea de etichetare este finalizată, declanșăm manual un AWS Lambdas funcţie. Această funcție Lambda reunește imaginile și etichetele lor corespunzătoare din manifestul de ieșire într-un fișier LST. Fișierele noastre de instruire și testare au avut imagini colectate de la diferite linii de ambalare pentru a preveni orice scurgere de date în evaluare. Funcția Lambda declanșează apoi un job de instruire Amazon SageMaker.

Noi folosim Modul Script SageMaker, care vă permite să vă aduceți proprii algoritmi de antrenament și să antrenați direct modele, rămânând în limitele ușor de utilizat ale Amazon SageMaker. Antrenăm modele precum SSD, Yolo-v3 (pentru latența de inferență în timp real) cu diverse combinații de rețea backbone de la GluonCV Model Zoo pentru detectarea obiectelor în modul script. Rețelele neuronale au tendința de a supraadapta datele de antrenament, ceea ce duce la rezultate slabe în afara eșantionului. GluonCV oferă normalizarea imaginii și creșteri ale imaginii, cum ar fi răsturnarea și decuparea aleatorie a imaginii, pentru a ajuta la reducerea supraajustării în timpul antrenamentului. The model de cod de antrenament este containerizat și utilizează imaginea Docker în Registrul nostru de containere AWS Elastic. Lucrarea de antrenament ia folderul de imagini S3 și căile fișierelor LST ca intrări și salvează cel mai bun artefact de model (.params și .json) la S3 la finalizare.

Conducta de evaluare a modelului

Conducta de evaluare a modelului

Top-2 modele bazate pe setul nostru de testare au fost SSD-resnet50 și Yolov3-darketnet53, cu un scor mAP de 0.91 fiecare. De asemenea, am efectuat teste în lumea reală prin implementarea unei aplicații de inferență pe dispozitivul AWS Panorama împreună cu modelul antrenat. Scriptul de inferență salvează predicțiile și cadrele video într-o găleată Amazon S3. Am creat o altă lucrare SageMaker Ground Truth pentru adnotarea adevărului la sol și apoi am efectuat o evaluare cantitativă suplimentară a modelului. Adevărul de bază și etichetele casetei de delimitare prezise de pe imagini au fost salvate în S3 pentru evaluare calitativă. Modelele au putut să se generalizeze pe datele din lumea reală și au avut performanțe consistente similare cu cele din setul nostru de testare.

Puteți găsi exemple complete, de la capăt la capăt, de creare a joburilor de instruire personalizate, de formare a modelelor de detectare a obiectelor de ultimă generație, de implementare a Hyperparameter Optimization (HPO) și de implementare a modelului pe Amazon SageMaker pe site-ul AWS Labs GitHub depozit.

Implementarea aplicației de numărare a tăvilor de carne

Arhitectura de productie

Arhitectura de productie

Înainte de implementare, împachetăm toate activele noastre – model, script de inferență, cameră și configurație variabilă globală într-un singur container, așa cum este menționat în acest blog. Conducta noastră de integrare continuă și implementare continuă (CI/CD) actualizează orice modificare a scriptului de inferență ca o nouă versiune de aplicație. Odată ce noua versiune a aplicației este publicată, o implementăm programatic folosind SDK boto3 în Python.

La implementarea aplicației, AWS Panorama creează mai întâi un job de compilare AWS SageMaker Neo pentru a compila modelul pentru dispozitivul AWS Panorama. Scriptul aplicației de inferență importă modelul compilat pe dispozitiv și efectuează detectarea tăvii de pui la fiecare cadru. Pe lângă SageMaker Neo-Compilation, am activat cuantizarea post-antrenament prin adăugarea unui os.environ['TVM_TENSORRT_USE_FP16'] = '1' steag în scenariu. Acest lucru reduce dimensiunea greutăților modelului de la float 32 la float 16, scăzând dimensiunea modelului la jumătate și îmbunătățind latența fără degradarea performanței. Rezultatele inferenței sunt capturate în Monitor AWS SiteWise prin mesaje MQTT de pe dispozitivul AWS Panorama prin Core AWS IoT. Rezultatele sunt apoi trimise la Amazon S3 și vizualizate în Amazon QuickSight Tablouri de bord. Managerii fabricii și angajații pot vizualiza direct aceste tablouri de bord pentru a înțelege debitul fiecărei linii de ambalare în timp real.

Concluzie

Combinând serviciul AWS Cloud precum Amazon SageMaker, Amazon S3 și serviciul edge precum AWS Panorama, Tyson Foods Inc., infuzează inteligența artificială pentru a automatiza procesele industriale intensive în oameni, cum ar fi numărarea stocurilor în fabricile sale de producție. Capacitățile de inferență de margine în timp real îi permit lui Tyson să identifice supra/sub producția și să își ajusteze dinamic fluxul de producție pentru a maximiza eficiența. În plus, deținând dispozitivul AWS Panorama la margine, Tyson este, de asemenea, capabil să economisească costurile asociate cu lățimea de bandă costisitoare a rețelei pentru a transfera fișiere video în cloud și acum își poate procesa toate activele video/imagine local în rețeaua lor.

Această postare de blog vă oferă o prezentare generală a aplicației de vârf și arhitecturi de referință pentru dezvoltarea unei aplicații CV cu AWS Panorama. Am discutat 3 aspecte diferite ale construirii unei aplicații de CV de vârf.

  1. Date: Colectarea, procesarea și etichetarea datelor folosind AWS Panorama și Amazon SageMaker Ground Truth.
  2. Model: Instruire și evaluare model folosind Amazon SageMaker și AWS Lambda
  3. Pachetul de aplicații: Gruparea modelului instruit, scripturilor și fișierelor de configurare pentru AWS Panorama.

Rămâneți la curent cu partea a doua a acestei serii despre modul în care Tyson utilizează AWS Panorama pentru întreținerea predictivă bazată pe CV a mașinilor industriale.

Clic aici pentru a vă începe călătoria cu AWS Panorama. Pentru a afla mai multe despre colaborarea cu ML Solutions Lab, consultați Laboratorul de soluții Amazon Machine Learning Solutions.


Despre Autori

Divya Bhargavi este cercetător de date la Laboratorul Amazon ML Solutions unde lucrează cu clienți din diferite verticale și aplică soluții creative de rezolvare a problemelor pentru a genera valoare pentru clienți cu soluții de ML/AI de ultimă generație.

Dilip Subramaniam este dezvoltator senior cu echipa de tehnologii emergente de la Tyson Foods. Este pasionat de construirea de aplicații distribuite la scară largă pentru a rezolva problemele de afaceri și a simplifica procesele folosind cunoștințele sale în Dezvoltare software, Învățare automată și Big Data.

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

Timestamp-ul:

Mai mult de la Blog de AWS Machine Learning