Detectarea automată a defectelor folosind viziunea computerizată ajută la îmbunătățirea calității și la reducerea costurilor inspecției. Detectarea defectelor implică identificarea prezenței unui defect, clasificarea tipurilor de defecte și identificarea unde sunt localizate defectele. Multe procese de producție necesită detectarea la o latență scăzută, cu resurse de calcul limitate și cu conectivitate limitată.
Amazon Lookout pentru Vision este un serviciu de învățare automată (ML) care ajută la identificarea defectelor produsului folosind viziunea computerizată pentru a automatiza procesul de inspecție a calității în liniile dvs. de producție, fără a fi necesară expertiza în ML. Lookout for Vision include acum capacitatea de a furniza locația și tipul anomaliilor folosind modele ML de segmentare semantică. Aceste modele ML personalizate pot fi implementate fie în AWS Cloud folosind API-uri cloud sau la personalizarea hardware de margine folosind AWS IoT Greengrass. Lookout for Vision acceptă acum inferența pe o platformă de calcul x86 care rulează Linux cu sau fără un accelerator GPU NVIDIA și pe orice dispozitiv edge bazat pe NVIDIA Jetson. Această flexibilitate permite detectarea defectelor hardware-ului existent sau nou.
În această postare, vă arătăm cum să detectați piesele defecte folosind modelele Lookout for Vision ML care rulează pe un aparat de margine, pe care le simulăm folosind un Cloud Elastic de calcul Amazon (Amazon EC2). Ne parcurgem antrenarea noilor modele de segmentare semantică, exportându-le ca componente AWS IoT Greengrass și rulând inferențe în modul numai CPU cu cod exemplu Python.
Prezentare generală a soluțiilor
În această postare, folosim un set de imagini cu extratereștrii de jucărie compus din imagini normale și defecte, cum ar fi lipsa membrelor, a ochilor sau a altor părți. Antrenăm un model Lookout for Vision în cloud pentru a identifica extratereștrii jucării defecte. Compilăm modelul pe un procesor țintă X86, împachetăm modelul Lookout for Vision antrenat ca componentă AWS IoT Greengrass și implementăm modelul într-o instanță EC2 fără un GPU folosind consola AWS IoT Greengrass. În cele din urmă, demonstrăm o aplicație eșantion bazată pe Python care rulează pe instanța EC2 (C5a.2xl) care generează imaginile extraterestre de jucărie din sistemul de fișiere al dispozitivului de margine, rulează inferența pe modelul Lookout for Vision folosind gRPC interfață și trimite datele de inferență către un MQTT subiect în AWS Cloud. Scripturile produc o imagine care include culoarea și locația defectelor pe imaginea anormală.
Următoarea diagramă ilustrează arhitectura soluției. Este important să rețineți pentru fiecare tip de defect pe care doriți să îl detectați în localizare, trebuie să aveți 10 imagini anomalii marcate în antrenament și 10 în datele de testare, pentru un total de 20 de imagini de acest tip. Pentru această postare, căutăm membre lipsă de pe jucărie.
Soluția are următorul flux de lucru:
- Încărcați un set de date de antrenament și un set de date de testare în Serviciul Amazon de stocare simplă (Amazon S3).
- Utilizați noua interfață de utilizare Lookout for Vision pentru a adăuga un tip de anomalie și a marca unde se află acele anomalii în imaginile de antrenament și de testare.
- Antrenați un model Lookout for Vision în cloud.
- Compilați modelul în arhitectura țintă (X86) și implementați modelul în instanța EC2 (C5a.2xl) folosind consola AWS IoT Greengrass.
- Imagini sursă de pe discul local.
- Rulați inferențe asupra modelului implementat prin interfața gRPC și preluați o imagine a măștilor de anomalii suprapuse pe imaginea originală.
- Postați rezultatele inferenței pe un client MQTT care rulează pe instanța edge.
- Primiți mesajul MQTT pe un subiect în AWS IoT Core în AWS Cloud pentru monitorizare și vizualizare ulterioară.
Pașii 5, 6 și 7 sunt coordonați cu exemplul de aplicație Python.
Cerințe preliminare
Înainte de a începe, completați următoarele cerințe preliminare. Pentru această postare, folosim o instanță EC2 c5.2xl și instalăm AWS IoT Greengrass V2 pe ea pentru a încerca noile funcții. Dacă doriți să rulați pe un NVIDIA Jetson, urmați pașii din postarea noastră anterioară, Amazon Lookout for Vision acceptă acum inspecția vizuală a defectelor produsului la margine.
- Creați un cont AWS.
- Porniți o instanță EC2 pe care să putem instala AWS IoT Greengrass și folosiți noul mod de inferență numai pentru procesor. Puteți utiliza și o mașină Intel X86 pe 64 de biți cu 8 gigaocteți de memorie RAM sau mai mult (folosim un c5a.2xl, dar orice cu mai mult de 8 gigaocteți pe platforma x86 ar trebui să funcționeze) rulând Ubuntu 20.04.
- Instalați AWS IoT Greengrass V2:
- Instalați sistemul necesar și dependențele Python 3 (Ubuntu 20.04):
Încărcați setul de date și antrenați modelul
Noi folosim set de date despre extratereștrii jucării pentru a demonstra soluția. Setul de date conține imagini normale și anormale. Iată câteva exemple de imagini din setul de date.
Următoarea imagine arată un extraterestru normal de jucărie.
Următoarea imagine arată un extraterestru jucărie căruia îi lipsește un picior.
Următoarea imagine arată un extraterestru jucărie căruia îi lipsește un cap.
În această postare, căutăm membre lipsă. Folosim noua interfață cu utilizatorul pentru a desena o mască în jurul defectelor din datele noastre de antrenament și teste. Acest lucru va spune modelelor de segmentare semantică cum să identifice acest tip de defect.
- Începeți prin a încărca setul de date, fie prin Amazon S3, fie de pe computer.
- Sortați-le în foldere intitulate
normal
șianomaly
. - Când creați setul de date, selectați Atașați automat etichete la imagini pe baza numelui folderului.Acest lucru ne permite să sortăm imaginile anormale mai târziu și să desenăm zonele care urmează să fie etichetate cu un defect.
- Încercați să rețineți câteva imagini pentru a le testa mai târziu
normal
șianomaly
. - După ce toate imaginile au fost adăugate la setul de date, alegeți Adăugați etichete de anomalii.
- Începeți să etichetați datele alegând Începeți să etichetați.
- Pentru a accelera procesul, puteți selecta mai multe imagini și le puteți clasifica ca
Normal
orAnomaly
.
Dacă doriți să evidențiați anomaliile pe lângă clasificarea lor, trebuie să evidențiați unde se află anomaliile. - Alegeți imaginea pe care doriți să o adnotați.
- Utilizați instrumentele de desen pentru a arăta zona în care lipsește o parte a subiectului sau trageți o mască peste defect.
- Alege Trimiteți și închideți pentru a păstra aceste modificări.
- Repetați acest proces pentru toate imaginile dvs.
- Când ai terminat, alege Economisiți pentru a-ți persista modificările. Acum ești gata să-ți antrenezi modelul.
- Alege Model de tren.
După ce finalizați acești pași, puteți naviga la proiect și la modele pagina pentru a verifica performanța modelului antrenat. Puteți începe procesul de exportare a modelului pe dispozitivul de margine țintă în orice moment după ce modelul este antrenat.
Reantrenează modelul cu imagini corectate
Uneori, etichetarea anomaliei poate să nu fie corectă. Aveți șansa de a vă ajuta modelul să vă învețe mai bine anomaliile. De exemplu, următoarea imagine este identificată ca o anomalie, dar nu arată missing_limbs
etichetă.
Să deschidem editorul și să reparăm asta.
Parcurgeți toate imaginile pe care le găsiți astfel. Dacă descoperiți că este etichetat incorect o anomalie, puteți utiliza instrumentul de șters pentru a elimina eticheta incorectă.
Acum vă puteți antrena din nou modelul și puteți obține o precizie mai bună.
Compilați și ambalați modelul ca componentă AWS IoT Greengrass
În această secțiune, parcurgem pașii pentru a compila modelul extraterestră de jucărie pe dispozitivul nostru de margine țintă și pentru a împacheta modelul ca componentă AWS IoT Greengrass.
- Pe consola Lookout for Vision, alegeți proiectul dvs.
- În panoul de navigare, alegeți Pachete model Edge.
- Alege Creați un job de ambalare a modelului.
- Pentru Numele locului de munca, introduceți un nume.
- Pentru Descrierea postului, introduceți o descriere opțională.
- Alege Răsfoiți modele.
- Selectați versiunea modelului (modelul extraterestru de jucărie construit în secțiunea anterioară).
- Alege Alege.
- Dacă rulați acest lucru pe Amazon EC2 sau pe un dispozitiv X86-64, selectați Platformă țintă Și alegeți Linux, X86, și Procesor.
Dacă utilizați CPU, puteți lăsa opțiunile compilatorului goale dacă nu sunteți sigur și nu aveți un GPU NVIDIA. Dacă aveți o platformă bazată pe Intel care acceptă AVX512, puteți adăuga aceste opțiuni de compilare pentru a optimiza performanțe mai bune:{"mcpu": "skylake-avx512"}
.
Puteți vedea numele și starea postului dvs. afișând caIn progress
. Finalizarea lucrării de ambalare a modelului poate dura câteva minute. Când lucrarea de ambalare a modelului este finalizată, starea arată caSuccess
. - Alegeți numele postului dvs. (în cazul nostru este
aliensblogcpux86
) pentru a vedea detaliile postului. - Alege Creați un job de ambalare a modelului.
- Introduceți detaliile pentru Denumirea componentei, Descrierea componentei (optional), Versiune componentă, și Locația componentelor.Lookout for Vision stochează rețetele componente și artefactele în această locație Amazon S3.
- Alege Continuați implementarea în Greengrass pentru a implementa componenta pe dispozitivul de margine țintă.
Componenta AWS IoT Greengrass și artefactele modelului au fost create în contul dvs. AWS.
Implementați modelul
Asigurați-vă că aveți AWS IoT Greengrass V2 instalat pe dispozitivul țintă pentru contul dvs. înainte de a continua. Pentru instrucțiuni, consultați Instalați software-ul AWS IoT Greengrass Core.
În această secțiune, parcurgem pașii pentru a implementa modelul extraterestru de jucărie pe dispozitivul de margine folosind consola AWS IoT Greengrass.
- Pe consola AWS IoT Greengrass, navigați la dispozitivul dvs. edge.
- Alege Lansa pentru a iniția pașii de implementare.
- Selectați Dispozitiv de bază (deoarece implementarea este pe un singur dispozitiv) și introduceți un nume pentru Nume țintă.Numele țintă este același nume pe care l-ați folosit pentru a denumi dispozitivul de bază în timpul procesului de instalare AWS IoT Greengrass V2.
- Alegeți-vă componenta. În cazul nostru, numele componentei este
aliensblogcpux86
, care conține modelul extraterestru de jucărie. - Alege Pagina Următoare →.
- Configurați componenta (opțional).
- Alege Pagina Următoare →.
- Extinde Politici de implementare.
- Pentru Politica de actualizare a componentelor, Selectați Notifică componente.Acest lucru permite componentei deja implementate (o versiune anterioară a componentei) să amâne o actualizare până când sunteți gata să actualizați.
- Pentru Politica de gestionare a eșecului, Selectați Nu te întoarce înapoi.În cazul unei eșecuri, această opțiune ne permite să investigăm erorile de implementare.
- Alege Pagina Următoare →.
- Examinați lista de componente care vor fi implementate pe dispozitivul țintă (de margine).
- Alege Pagina Următoare →.Ar trebui să vedeți mesajul
Deployment successfully created
. - Pentru a valida implementarea modelului a avut succes, rulați următoarea comandă pe dispozitivul dvs. de margine:
Ar trebui să vedeți o ieșire similară care rulează aliensblogcpux86
script de pornire ciclului de viață:
Componente care rulează în prezent în Greengrass:
Executați inferențe pe model
notițe: Dacă rulați Greengrass ca alt utilizator decât cel pentru care sunteți autentificat, va trebui să modificați permisiunile fișierului /tmp/aws.iot.lookoutvision.EdgeAgent.sock
:
Acum suntem gata să facem inferențe asupra modelului. Pe dispozitivul Edge, rulați următoarea comandă pentru a încărca modelul (înlocuiți cu numele modelului utilizat în componenta dvs.):
Pentru a genera inferențe, executați următoarea comandă cu numele fișierului sursă (înlocuiți cu calea și numele fișierului imaginii de verificat și înlocuit cu numele modelului folosit pentru componenta dvs.):
Modelul prezice corect imaginea ca fiind anormală (missing_limbs
) cu un scor de încredere de 0.9996867775917053. Ne spune masca etichetei de anomalie missing_limbs
și suprafața procentuală. Răspunsul conține și date bitmap pe care le puteți decoda din ceea ce a găsit.
Descărcați și deschideți fișierul blended.png
, care arată ca imaginea următoare. Observați zona evidențiată cu defectul din jurul picioarelor.
Poveștile clienților
Cu AWS IoT Greengrass și Lookout for Vision, acum puteți automatiza inspecția vizuală cu viziune computerizată pentru procese precum controlul calității și evaluarea defectelor, totul la limită și în timp real. Puteți identifica în mod proactiv probleme precum deteriorarea pieselor (cum ar fi lovituri, zgârieturi sau sudură defectuoasă), componente lipsă ale produsului sau defecte cu modele repetate pe linia de producție în sine, economisind timp și bani. Clienți precum Tyson și Baxter descoperă puterea Lookout for Vision de a crește calitatea și de a reduce costurile operaționale prin automatizarea inspecției vizuale.
„Excelența operațională este o prioritate cheie la Tyson Foods. Întreținerea predictivă este un atu esențial pentru atingerea acestui obiectiv prin îmbunătățirea continuă a eficienței generale a echipamentelor (OEE). În 2021, Tyson Foods a lansat un proiect de viziune computerizată bazat pe învățarea automată pentru a identifica purtătorii de produse care nu au defect în timpul producției, pentru a preveni ca aceștia să afecteze siguranța membrilor echipei, operațiunile sau calitatea produsului. Modelele instruite folosind Amazon Lookout for Vision au avut rezultate bune. Modelul de detectare a pinului a atins o precizie de 95% în ambele clase. Modelul Amazon Lookout for Vision a fost reglat pentru a funcționa cu o precizie de 99.1% pentru detectarea eșuării pinului. De departe cel mai interesant rezultat al acestui proiect a fost accelerarea timpului de dezvoltare. Deși acest proiect utilizează două modele și un cod de aplicație mai complex, a fost nevoie de 12% mai puțin timp dezvoltator pentru finalizare. Acest proiect de monitorizare a stării transportatorilor de produse la Tyson Foods a fost finalizat în timp record folosind servicii gestionate de AWS, cum ar fi Amazon Lookout for Vision.”
—Audrey Timmerman, dezvoltator senior de aplicații, Tyson Foods.
„Latența și viteza de inferență sunt esențiale pentru evaluarea în timp real și verificările critice ale calității proceselor noastre de producție. Amazon Lookout for Vision Edge pe un dispozitiv CPU ne oferă capacitatea de a realiza acest lucru pe echipamente de nivel de producție, permițându-ne să oferim soluții de viziune AI rentabile la scară.”
—AK Karan, Global Senior Director – Transformare digitală, Lanț de aprovizionare integrat, Baxter International Inc.
A curăța
Parcurgeți următorii pași pentru a elimina activele pe care le-ați creat din cont și pentru a evita orice facturare în curs:
- În consola Lookout for Vision, navigați la proiectul dvs.
- Pe Acţiuni meniu, ștergeți seturile de date.
- Ștergeți modelele dvs.
- Pe consola Amazon S3, goliți gălețile pe care le-ați creat, apoi ștergeți-le.
- Pe consola Amazon EC2, ștergeți instanța pe care ați început să rulați AWS IoT Greengrass.
- Pe consola AWS IoT Greengrass, alegeți Implementări în panoul de navigare.
- Ștergeți versiunile componentelor dvs.
- Pe consola AWS IoT Greengrass, ștergeți obiectele, grupurile și dispozitivele AWS IoT.
Concluzie
În această postare, am descris un scenariu tipic pentru detectarea defectelor industriale la margine folosind localizarea defectelor și implementat pe un dispozitiv numai cu CPU. Am parcurs componentele cheie ale ciclului de viață cloud și edge cu un exemplu de la capăt la capăt folosind Lookout for Vision și AWS IoT Greengrass. Cu Lookout for Vision, am antrenat un model de detectare a anomaliilor în cloud folosind set de date pentru extratereștri jucării, a compilat modelul într-o arhitectură țintă și a împachetat modelul ca o componentă AWS IoT Greengrass. Cu AWS IoT Greengrass, am implementat modelul pe un dispozitiv de vârf. Am demonstrat un exemplu de aplicație bazat pe Python care generează imagini extraterestre de jucărie din sistemul de fișiere local al dispozitivului de margine, rulează inferențe pe modelul Lookout for Vision la margine folosind interfața gRPC și trimite datele de inferență la un subiect MQTT din AWS. Nor.
Într-o postare viitoare, vom arăta cum să rulăm inferențe pe un flux de imagini în timp real folosind o conductă media GStreamer.
Începeți călătoria către detectarea și identificarea anomaliilor industriale, vizitând site-ul Amazon Lookout pentru Vision și AWS IoT Greengrass pagini de resurse.
Despre autori
Manish Talreja este un Senior Industrial ML Practice Manager cu AWS Professional Services. El îi ajută pe clienții AWS să-și atingă obiectivele de afaceri prin arhitectura și construirea de soluții inovatoare care utilizează serviciile AWS ML și IoT pe AWS Cloud.
Ryan Vanderwerf este un arhitect de soluții partener la Amazon Web Services. Anterior, a oferit consultanță și dezvoltare de proiecte axate pe mașini virtuale Java ca inginer software la OCI în echipa Grails și Micronaut. A fost arhitect șef/director de produse la ReachForce, cu accent pe arhitectura software și a sistemului pentru soluțiile AWS Cloud SaaS pentru managementul datelor de marketing. Ryan a construit mai multe soluții SaaS în mai multe domenii, cum ar fi companii financiare, media, telecomunicații și e-learning din 1996.
Prakash Krishnan este Senior Software Development Manager la Amazon Web Services. El conduce echipele de inginerie care construiesc sisteme distribuite la scară largă pentru a aplica algoritmi rapidi, eficienți și foarte scalabili la problemele de recunoaștere a imaginilor și video bazate pe învățarea profundă.
- AI
- ai art
- ai art generator
- ai robot
- Amazon Lookout pentru Vision
- inteligență artificială
- certificare de inteligență artificială
- inteligența artificială în domeniul bancar
- robot cu inteligență artificială
- roboți cu inteligență artificială
- software de inteligență artificială
- AWS IoT Greengrass
- Învățare automată AWS
- blockchain
- conferință blockchain ai
- coingenius
- inteligența artificială conversațională
- criptoconferință ai
- dall-e
- învățare profundă
- google ai
- masina de învățare
- Plato
- platoul ai
- Informații despre date Platon
- Jocul lui Platon
- PlatoData
- platogaming
- scara ai
- sintaxă
- zephyrnet