Aplicarea învățării automate în analiza imaginilor din sistemele de viziune industriale
Aplicarea învățării automate în analiza imaginilor în sistemele de viziune industrială
Introducere
Sistemele de viziune industrială sunt ansambluri de camere și software care permit mașinilor „să vadă” și să ia decizii pe baza imaginii. Acestea sunt utilizate, printre altele, pentru controlul calității produselor, măsurători dimensionale, identificarea componentelor sau ghidarea roboților pe liniile de producție. În mod tradițional, multe dintre aceste sisteme se bazau pe algoritmi descriși manual (reguli) – de exemplu, programe simple care verifică nivelul de umplere al unei sticle sau dimensiunile unui element.
Totuși, odată cu dezvoltarea inteligenței artificiale, metodele de învățare automată joacă un rol tot mai important – în aceste metode, computerul „învață” să recunoască tipare din date, în loc să se bazeze exclusiv pe reguli programate. În ultimii ani, rețelele neuronale profunde (deep learning) au revoluționat analiza imaginilor – acestea permit automatizarea sarcinilor care anterior nu puteau fi rezolvate eficient prin metode clasice.
Mai jos explicăm conceptele-cheie (inteligență artificială, învățare automată, rețele neuronale, învățare profundă) în contextul analizei imaginilor și al aplicațiilor industriale, precum și o comparație între cerințele hardware și viteza de execuție a acestor tehnologii pe dispozitive locale (fără utilizarea cloud-ului).
Inteligența artificială vs. sistemele tradiționale de viziune
Inteligența artificială (IA) este cel mai larg concept și include toate tehnicile care permit mașinilor să imite inteligența umană în rezolvarea sarcinilor complexe. Nu toate metodele IA învață din date – sistemele clasice de inteligență artificială se bazau adesea pe logică și reguli programate de experți (așa-numitele sisteme expert).
În contextul analizei imaginilor, acest lucru înseamnă sisteme de viziune tradiționale bazate pe reguli, în care inginerul programează algoritmi specifici de prelucrare a imaginii: de exemplu, thresholding (pragul de culoare), potrivirea formelor, măsurarea distanțelor dintre margini etc. Aceste sisteme funcționează bine în sarcini care pot fi definite matematic cu precizie – cum ar fi măsurători dimensionale exacte, detectarea defectelor cu contrast ridicat, identificarea produsului sau poziționarea componentelor.
Astfel de sisteme operează în mod determinist și, de obicei, foarte rapid – analiza unui singur cadru de imagine durează zeci de milisecunde pe un PC industrial sau chiar pe un procesor încorporat al camerei. Datorită acestui fapt, viziunea artificială clasică poate controla sute sau mii de obiecte pe minut, acoperind complet linia de producție.
Un avantaj al metodelor bazate pe reguli este claritatea funcționării – este ușor de urmărit de ce un obiect a fost clasificat ca defect (deoarece încalcă o anumită regulă). Totuși, o limitare majoră este lipsa de flexibilitate: când caracteristicile obiectelor sau condițiile de iluminare se schimbă, inginerul trebuie adesea să ajusteze manual parametrii algoritmului sau chiar să scrie reguli noi.
Dacă un defect sau o caracteristică nu poate fi descrisă prin metrici simple (de exemplu, zgârieturi fine cu forme neregulate pe o suprafață), sau aspectul produsului variază mult (de exemplu, diferențele naturale între fructe), sistemele tradiționale de viziune ating limitele eficienței. În astfel de cazuri, se apelează la metode de învățare, capabile să generalizeze cunoștințele pe baza unor exemple.
Învățarea automată (ML) în analiza imaginilor
Învățarea automată (Machine Learning, ML) este un subdomeniu al inteligenței artificiale care se concentrează pe algoritmi capabili să învețe din date, în loc să se bazeze exclusiv pe reguli programate. În practică, acest lucru înseamnă că un program antrenează un model pe baza unor exemple (de exemplu, imagini), ajustând parametrii interni pentru a îndeplini tot mai bine sarcina dată – de exemplu, să distingă produsele bune de cele defecte.
În sistemele de viziune, învățarea automată a fost folosită de ani de zile, chiar dacă nu era întotdeauna numită explicit „inteligență artificială”. De exemplu, un instrument popular de potrivire a șabloanelor (eng. pattern matching) învață pe baza unei imagini de referință cum arată un obiect corect, iar apoi este capabil să identifice obiecte similare în imagini noi – aceasta este de asemenea o formă de învățare automată, bazată pe antrenarea unui clasificator al caracteristicilor imaginii.
Cum funcționează? Mai întâi este necesar un set de date de antrenament – în cazul viziunii artificiale, acestea sunt de obicei imagini ale obiectelor etichetate (de exemplu, care imagini reprezintă produse bune și care defecte, sau ce clase de obiecte conțin). Apoi se alege un algoritm de ML și se antrenează folosind aceste date, ceea ce de obicei presupune optimizarea unei funcții de eroare astfel încât modelul să poată prezice corect etichetele imaginilor.
În ML tradițional, este adesea necesară o preprocesare a datelor – în loc să se furnizeze imaginea brută, inginerul extrage din ea caracteristici relevante (așa-numitul feature extraction), cum ar fi statistici de culoare, textură, forma conturului etc. Acest lucru necesită cunoștințe de domeniu – expertul trebuie să indice ce caracteristici ale imaginii sunt importante pentru a distinge clasele. De exemplu, în clasificarea fructelor, un model ML simplu poate folosi caracteristica de circularitate și suprafața în pixeli pentru a diferenția merele de pere.
Alți algoritmi ML populari utilizați în analiza imaginilor includ:
- k-NN (cei mai apropiați k vecini) – o metodă de clasificare care atribuie o clasă pe baza majorității etichetelor dintre cei mai asemănători k vecini (în spațiul caracteristicilor); este simplă, rapidă și eficientă, inclusiv în recunoașterea de șabloane simple și este folosită și în OCR.
- Arbori de decizie și păduri aleatoare (random forests) – algoritmi care creează un model sub forma unui arbore de condiții (sau mai multe arbori), care decid clasificarea pe baza caracteristicilor imaginii; sunt potriviți pentru sarcini mai puțin complexe, în care se pot extrage reguli clare de decizie sau pentru analiza datelor hiperspectrale.
- Rețele neuronale superficiale (de ex. MLP) – modele inspirate din rețelele neuronale, dar care conțin doar unul sau câteva straturi ascunse; pot capta relații neliniare în date, dar sunt mai puțin precise decât rețelele neuronale profunde pentru sarcini mai complexe.
Avantajele ML tradițional:
Comparativ cu deep learning, algoritmii ML clasici necesită de obicei mai puține date de antrenament și pot fi antrenați mai rapid. Adesea, este suficient să ai câteva zeci sau sute de imagini pentru a învăța eficient un model care să distingă 2–3 clase de obiecte simple. În plus, aceste modele sunt, în general, mai ușoare din punct de vedere computațional – antrenarea durează de la câteva secunde până la câteva minute, nu zile. Inferența lor poate fi realizată chiar și pe procesoare mai slabe, fără acceleratoare hardware, ceea ce facilitează implementarea pe stații industriale tipice. Literatura de specialitate subliniază că algoritmii ML tradiționali pot fi mai eficienți decât rețelele neuronale complexe în multe sarcini de viziune artificială – mai ales când problema este bine definită, iar variația datelor este limitată. În plus, rezultatul modelelor ML este de obicei mai ușor de interpretat (de exemplu, se poate urmări ce caracteristică a influențat clasificarea), în timp ce rețelele neuronale profunde sunt adesea considerate „cutii negre”.
Limitările ML:
Principala provocare este nevoia menționată de extragere a caracteristicilor – elaborarea unui set adecvat de caracteristici poate fi consumatoare de timp și necesită expertiză specializată, iar totuși modelul poate fi sensibil la schimbările de condiții (de exemplu, iluminarea diferită modifică valorile caracteristicilor). Modelele ML se descurcă de obicei mai slab cu imagini foarte complexe și dezordonate, unde este dificil să se indice manual caracteristicile care separă clasele. Când numărul de variații posibile ale obiectului este mare (formă, textură, orientare, fundal etc.), performanța modelelor superficiale scade drastic – în astfel de cazuri, rețelele neuronale sunt mai potrivite, deoarece pot învăța singure reprezentări complexe ale datelor.
Rețele neuronale artificiale
Rețelele neuronale sunt o familie de algoritmi de învățare automată inspirați de structura creierului biologic. Modelul rețelei este format din multe unități de calcul simple – neuroni – organizați în straturi, care procesează semnalele de intrare și transmit rezultatul către următoarele straturi. Fiecare conexiune dintre neuroni are o greutate asociată, care determină influența semnalului; în timpul antrenării rețelei, aceste greutăți sunt ajustate astfel încât rețeaua să ofere răspunsuri dorite. Rețelele neuronale pot aproxima dependențe neliniare complexe – chiar și un singur strat ascuns permite modelului să învețe tipare neliniare simple, iar adăugarea mai multor straturi face posibilă reprezentarea caracteristicilor din ce în ce mai abstracte ale datelor (de exemplu, în primele straturi rețeaua poate detecta muchii ale imaginii, în următoarele – combinații de muchii care formează forme specifice etc.).
În contextul analizei imaginilor, rețelele neuronale artificiale erau deja utilizate în secolul XX – un exemplu clasic este recunoașterea cifrelor scrise de mână. Încă din anii ’90, rețelele convoluționale mici erau capabile să recunoască coduri poștale pe plicuri cu o precizie ridicată, deși aveau doar o fracțiune din puterea modelelor actuale. Astfel de rețele superficiale (de exemplu, perceptronul multistrat – MLP) conțineau, de obicei, 1–3 straturi ascunse și un număr redus de neuroni. Acestea necesitau mai puține resurse de calcul comparativ cu rețelele profunde moderne, ceea ce le făcea antrenabile și utilizabile pe echipamentele vremii, dar și mai puțin eficiente pentru sarcini complexe (de exemplu, recunoașterea a mii de clase de obiecte). Pentru multe aplicații industriale simple, MLP sau alte rețele superficiale pot fi în continuare utile – de exemplu, pentru analize în care semnalul poate fi descris prin câteva variabile semnificative. Totuși, adevărata revoluție în viziunea artificială a venit odată cu dezvoltarea învățării profunde, adică a rețelelor neuronale cu multe straturi, care au crescut semnificativ capacitățile sistemelor de viziune.
Învățare profundă (Deep Learning)
Deep learning este o subramură a învățării automate care utilizează rețele neuronale profunde (cu multe straturi) pentru analiza automată a datelor. Pe scurt, deep learning înseamnă antrenarea unor rețele neuronale artificiale cu mult mai multe straturi ascunse decât modelele tradiționale. Dacă o rețea neuronală de bază poate avea unul sau două straturi ascunse, rețelele profunde pot avea zeci sau chiar sute – ceea ce le permite să învețe reprezentări mult mai complexe ale datelor. În contextul imaginilor, cea mai populară arhitectură este rețeaua neuronală convoluțională (CNN), concepută special pentru procesarea datelor vizuale. CNN-urile extrag automat caracteristici din imagini, parcurgându-le cu filtre (nuclee convoluționale) – primele straturi învață să detecteze tipare simple (muchii, texturi), următoarele – forme și obiecte mai complexe. Ca urmare, rețelele profunde învață caracteristici fără intervenție umană, reducând nevoia de a defini manual features. Aceasta este diferența esențială: rețeaua descoperă singură la ce trebuie să fie atentă, optimizându-se pentru sarcina dată – ceea ce face ca deep learning să fie extrem de eficient în sarcini unde nu știm dinainte care caracteristici sunt relevante.
Aplicații ale învățării profunde în viziunea artificială:
Învățarea profundă a deschis calea automatizării multor sarcini care anterior erau dificile sau imposibil de realizat cu reguli sau modele superficiale. În industrie, aceasta este utilizată, printre altele, pentru:
- Detecția anomaliilor și defectelor – rețelele învață să recunoască dacă o imagine diferă de un model de referință (de exemplu, detectarea unei zgârieturi, a unui defect de material sau a unei erori de imprimare, chiar și atunci când defectele au forme variate).
- Clasificarea obiectelor în imagini – de exemplu, recunoașterea tipului de produs, evaluarea calității (bun/rău), sortarea vizuală a mărfurilor (cum ar fi separarea fructelor în funcție de clasa de calitate).
- Detectarea și localizarea obiectelor – indicarea poziției obiectelor de un anumit tip într-o imagine (de exemplu, numărarea elementelor de pe bandă, verificarea prezenței tuturor componentelor într-un modul electronic asamblat).
- Segmentarea imaginilor – împărțirea imaginii în regiuni aparținând unor clase definite (de exemplu, segmentarea defectelor față de fundalul unei suprafețe, delimitarea unei regiuni de interes pentru o analiză ulterioară).
- Citirea textului (OCR) și recunoașterea caracterelor – algoritmii moderni Deep OCR sunt capabili să citească chiar și inscripții dificile, distorsionate, variabile sau cu contrast scăzut de pe produse, acolo unde metodele OCR tradiționale eșuează.
Un aspect important este faptul că deep learning depășește adesea performanța umană în inspecția vizuală repetitivă – rețelele pot detecta diferențe subtile invizibile pentru ochiul uman și o fac cu o consistență ridicată, fără oboseală. De exemplu, pentru un inspector uman, evaluarea fiecărui fruct în parte din punctul de vedere al tuturor defectelor posibile este o sarcină obositoare și subiectivă; o rețea neuronală poate învăța un interval acceptabil de variații naturale (pete, decolorări ale cojii etc.) și să aplice uniform criteriile de calitate.
Cerințe și provocări ale învățării profunde:
Prețul pentru această eficiență ridicată este însă considerabil. Modelele de deep learning necesită de obicei seturi de date de antrenament foarte mari și o putere de calcul considerabilă pentru învățare. Antrenarea unei rețele neuronale profunde este un proces iterativ de optimizare a mii sau milioane de parametri – de obicei sunt necesare sute sau mii de imagini și multe ore de procesare pe procesoare grafice (GPU) sau procesoare tensoriale (TPU) performante. Acest proces poate dura multe ore, zile, sau în cazuri extreme, chiar săptămâni. Deși un model deja antrenat poate fi optimizat pentru inferență (executare) în timp real, rețelele mai complexe necesită totuși accelerare hardware (GPU, FPGA/ASIC, sau unități neuronale specializate – NPU), în special atunci când dorim să procesăm zeci de imagini pe secundă.
Implementarea învățării profunde în sistemele de viziune poate fi simplificată prin utilizarea de pachete software industriale care oferă modele de rețele preconfigurate pentru sarcini specifice (ex.: detectarea anomaliilor, localizarea obiectelor, clasificarea obiectelor), precum și unelte pentru pregătirea dataseturilor de antrenament (inclusiv augmentarea imaginilor pentru a crește nivelul de generalizare în cazul dataseturilor mici). Un exemplu este Zebra Aurora Vision Deep Learning™, care reduce semnificativ timpul de antrenare, diminuează cantitatea necesară de date, oferă compresie de rețea și un motor de inferență performant. De asemenea, software-ul include un model OCR gata de utilizare care nu necesită antrenare.
O altă provocare este explicabilitatea – după cum am menționat, deep learning este adesea perceput ca o „cutie neagră”. Este dificil de interpretat pe ce bază a luat rețeaua o decizie (de exemplu, semnalarea unui defect). În aplicațiile industriale, unde încrederea și auditabilitatea sunt critice, acest lucru poate ridica întrebări (deși există metode XAI – inteligență artificială explicabilă – care încearcă să arunce lumină asupra modului în care rețeaua funcționează). În ciuda acestor dezavantaje, beneficiile aduse de deep learning – în special creșterea preciziei și capacităților – sunt atât de mari încât această tehnologie a devenit o piatră de temelie a sistemelor moderne de viziune industrială.
Cerințe de putere de calcul și viteză de execuție locală (fără utilizarea cloud-ului)
Procesarea locală (edge computing) joacă un rol esențial în sistemele de viziune industriale, deoarece acestea necesită funcționare în timp real și fiabilitate independentă de conexiunea la internet. În aplicații precum inspecția pe linia de producție, fiecare milisecundă contează – decizia (de exemplu, respingerea unui produs defect) trebuie luată instantaneu, motiv pentru care procesarea este efectuată direct pe dispozitiv, în loc să fie trimisă imaginea către un server în cloud. Eliminarea întârzierilor de rețea asigură un timp de răspuns determinist și scăzut, esențial pentru sincronizarea cu benzi transportoare sau roboți care se mișcă rapid. Un avantaj suplimentar al procesării locale este securitatea – imaginile (care adesea conțin proprietate intelectuală a companiei, cum ar fi produse noi) nu părăsesc fabrica, ceea ce face mai ușoară respectarea cerințelor de protecție a datelor și a confidențialității.
Sistemele clasice de viziune și modelele ML simple funcționează, de obicei, pe hardware standard: un PC industrial sau un procesor integrat într-o cameră inteligentă este adesea suficient pentru a obține viteza dorită. După cum s-a menționat, algoritmii tradiționali bazați pe reguli și modelele simple de învățare automată necesită semnificativ mai puține resurse computaționale decât rețelele neuronale profunde – consumul lor de CPU/GPU este minim, iar antrenarea este rapidă. Multe biblioteci ML (cum ar fi Zebra Aurora Vision, OpenCV) rulează eficient pe procesoare CPU și nu necesită echipamente specializate sau servicii cloud. Astfel, implementarea unei inspecții bazate pe ML (de exemplu, un SVM care clasifică defectele pe baza câtorva caracteristici) poate fi realizată fără investiții suplimentare în infrastructură – aceste modele pot fi rulate pe calculatoare industriale standard, menținând procesarea imaginilor în timp real (chiar și în câteva milisecunde per imagine).
Pe de altă parte, deep learning impune cerințe mai mari. În faza de antrenare a modelului este necesară utilizarea hardware-ului accelerat – procesoarele GPU sunt practic standardul, deoarece pot executa în paralel mii de operații necesare pentru antrenarea rețelelor. Fără GPU, învățarea pe seturi mari de date ar dura nejustificat de mult. Mai mult, chiar și inferența (rularea modelului antrenat) a rețelelor neuronale profunde poate consuma multe resurse – în special atunci când modelul este complex și trebuie să proceseze multe cadre pe secundă. Deși o singură predicție poate fi realizată într-o fracțiune de secundă pe CPU, atingerea unor rate precum 60 FPS cu o rețea CNN mare poate necesita accelerare. Din acest motiv, multe soluții folosesc GPU-uri locale sau camere inteligente specializate cu acceleratoare încorporate, capabile să execute rețele de viziune direct pe fluxul de imagine din cameră.
În concluzie, învățarea automată și deep learning pot fi implementate cu succes pe dispozitive locale, dar este important să se aleagă platforma hardware potrivită cerințelor aplicației. Pentru sarcini simple de clasificare este suficient un CPU, în timp ce pentru sarcini mai complexe este necesar un GPU sau un cip specializat. Este, de asemenea, importantă optimizarea modelelor: în aplicațiile edge se folosesc frecvent tehnici precum quantization sau pruning (reducerea dimensiunii rețelei) pentru a scădea încărcarea computațională cu o pierdere minimă de acuratețe. Scopul este de a obține un timp de răspuns stabil al sistemului de viziune care să corespundă ritmului producției.
Concluzie
Soluțiile de inteligență artificială pătrund tot mai profund în sistemele industriale de viziune, sporindu-le eficiența și flexibilitatea. Inteligența artificială este un concept general care include atât algoritmii tradiționali bazați pe reguli, cât și metodele moderne de învățare automată. În cadrul AI, se distinge machine learning (ML) – metode în care modelul învață pe baza datelor. Algoritmii ML clasici, precum arborii de decizie, SVM sau rețelele neuronale superficiale, îmbunătățesc de ani buni aplicațiile de viziune, în special în cazurile unde problema este bine definită, iar caracteristicile pot fi extrase manual. Rețelele neuronale sunt fundamentul majorității realizărilor moderne în domeniul inteligenței artificiale (AI) – ele imită creierul biologic și sunt capabile să învețe relații nelineare complexe. Când o rețea neuronală devine foarte adâncă, vorbim despre învățare profundă (deep learning) – o abordare care domină în prezent analiza avansată a imaginilor. Deep learning-ul a permis rezolvarea unor probleme anterior imposibil de abordat: de la detectarea fiabilă a defectelor minore de suprafață, la recunoașterea obiectelor în scene complexe, până la interpretarea imaginilor medicale sau controlul vehiculelor autonome. Alegerea metodei depinde de sarcina specifică: simplitate vs. complexitate, interpretabilitate vs. acuratețe, cerințe privind datele și puterea de calcul – toate acestea sunt factori care trebuie luați în considerare. Adesea, cele mai bune rezultate sunt obținute prin combinarea abordărilor: de exemplu, un algoritm vizual clasic localizează cu precizie regiunea de interes, iar rețeaua de deep learning evaluează dacă există un defect în acea zonă. Indiferent de metodă, aspectul esențial este că sistemele moderne de viziune pot funcționa în timp real pe dispozitive locale, datorită progreselor în hardware (procesoare rapide, acceleratoare AI), precum și îmbunătățirilor aduse algoritmilor în sine. Drept rezultat, industria a dobândit instrumente puternice pentru automatizarea controlului calității și a proceselor de producție, crescând eficiența și reducând costurile, în timp ce asigură un nivel ridicat de calitate al produselor.