Fundamentele AI

Cum funcționează clasificarea imaginilor?

mm
Adaugă Unite.AI la sursele tale preferate pe Google

Cum poate telefonul dvs. să determine ce este un obiect doar prin fotografierea lui? Cum pot site-urile de socializare să eticheteze automat oameni în fotografii? Acest lucru se realizează prin recunoașterea și clasificarea imaginilor cu ajutorul inteligenței artificiale.

Recunoașterea și clasificarea imaginilor este ceea ce permite multe dintre realizările impresionante ale inteligenței artificiale. Dar cum învață calculatoarele să detecteze și să clasifice imagini? În acest articol, vom acoperi metodele generale pe care calculatoarele le folosesc pentru a interpreta și detecta imagini și vom examina unele dintre cele mai populare metode de clasificare a imaginilor.

Clasificarea la nivel de pixel vs. clasificarea bazată pe obiecte

Tehnicile de clasificare a imaginilor pot fi împărțite în principal în două categorii: clasificarea bazată pe pixeli și clasificarea bazată pe obiecte.

Pixelele sunt unitățile de bază ale unei imagini, iar analiza pixelilor este principala modalitate prin care se realizează clasificarea imaginilor. Cu toate acestea, algoritmii de clasificare pot utiliza doar informațiile spectrale din interiorul pixelilor individuali pentru a clasifica o imagine sau pot examina informațiile spațiale (pixelele din apropiere) împreună cu informațiile spectrale. Metodele de clasificare bazate pe pixeli utilizează doar informații spectrale (intensitatea unui pixel), în timp ce metodele de clasificare bazate pe obiecte iau în considerare atât informațiile spectrale ale pixelilor, cât și informațiile spațiale.

Există diferite tehnici de clasificare utilizate pentru clasificarea bazată pe pixeli. Acestea includ distanța minimă la medie, probabilitatea maximă și distanța minimă Mahalanobis. Aceste metode necesită ca mediile și varianțele claselor să fie cunoscute și funcționează prin examinarea “distanței” dintre mediile claselor și pixelii țintă.

Metodele de clasificare bazate pe pixeli sunt limitate de faptul că nu pot utiliza informații din pixelele din apropiere. În contrast, metodele de clasificare bazate pe obiecte pot include și alte pixele și, prin urmare, pot utiliza și informații spațiale pentru a clasifica articolele. Notați că “obiect” se referă doar la regiuni contigue de pixele și nu la faptul că există sau nu un obiect țintă în acea regiune de pixele.

Preprocesarea datelor de imagine pentru detectarea obiectelor

Sistemele de clasificare a imaginilor recente și fiabile utilizează în principal scheme de clasificare la nivel de obiect, iar pentru aceste abordări, datele de imagine trebuie pregătite în moduri specifice. Obiectele/regiunile trebuie selectate și prelucrate.

Înainte ca o imagine și obiectele/regiunile din interiorul acesteia să poată fi clasificate, datele care compun imaginea trebuie interpretate de calculator. Imaginile trebuie prelucrate și pregătite pentru a fi introduse în algoritmul de clasificare, iar acest lucru se realizează prin detectarea obiectelor. Acesta este un pas critic în pregătirea datelor și în pregătirea imaginilor pentru a antrena clasificatorul de învățare automată.

Detectarea obiectelor se realizează prin diverse metode și tehnici. În primul rând, dacă există un singur obiect de interes sau mai multe obiecte de interes, impactează modul în care se realizează prelucrarea imaginii. Dacă există doar un singur obiect de interes, imaginea suferă o localizare a imaginii. Pixelele care compun imaginea au valori numerice care sunt interpretate de calculator și utilizate pentru a afișa culorile și nuanțele corespunzătoare. Un obiect numit “cutie de delimitare” este desenat în jurul obiectului de interes, ceea ce ajută calculatorul să știe care parte a imaginii este importantă și care valori de pixel definesc obiectul. Dacă există mai multe obiecte de interes în imagine, se utilizează o tehnică numită detectare a obiectelor pentru a aplica aceste cutii de delimitare tuturor obiectelor din imagine.

Foto: Adrian Rosebrock via Wikimedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Intersection_over_Union_-_object_detection_bounding_boxes.jpg)

O altă metodă de prelucrare este segmentarea imaginii. Segmentarea imaginii funcționează prin împărțirea întregii imagini în segmente pe baza caracteristicilor similare. Diferite regiuni ale imaginii vor avea valori de pixel similare în comparație cu alte regiuni ale imaginii, astfel încât aceste pixele sunt grupate împreună în măști de imagine care corespund formei și limitelor obiectelor relevante din imagine. Segmentarea imaginii ajută calculatorul să izoleze caracteristicile imaginii care vor ajuta la clasificarea unui obiect, similar cu cutiile de delimitare, dar oferă etichete mult mai precise la nivel de pixel.

După ce s-a realizat detectarea obiectelor sau segmentarea imaginii, se aplică etichete regiunilor în cauză. Aceste etichete sunt introduse, împreună cu valorile pixelilor care compun obiectul, în algoritmii de învățare automată care vor învăța modelele asociate cu diferitele etichete.

Algoritmi de învățare automată

Odată ce datele au fost pregătite și etichetate, datele sunt introduse într-un algoritm de învățare automată, care se antrenează pe date. Vom acoperi unele dintre cele mai comune tipuri de algoritmi de clasificare a imaginilor cu ajutorul învățării automate și a învățării profunde mai jos.

Vecinii cei mai apropiați (K-Nearest Neighbors)

Vecinii cei mai apropiați este un algoritm de clasificare care examinează exemplele de antrenare cele mai apropiate și verifică etichetele lor pentru a determina eticheta cea mai probabilă pentru un exemplu de test dat. În ceea ce privește clasificarea imaginilor utilizând KNN, vectorii de caracteristici și etichetele imaginilor de antrenare sunt stocate, iar doar vectorul de caracteristici este introdus în algoritm în timpul testării. Vectorii de caracteristici de antrenare și de testare sunt comparați între ei pentru a determina similaritatea.

Algoritmii de clasificare bazate pe KNN sunt extrem de simpli și pot gestiona cu ușurință multiple clase. Cu toate acestea, KNN calculează similaritatea pe baza tuturor caracteristicilor în mod egal. Acest lucru înseamnă că poate fi predispus la clasificarea greșită atunci când i se furnizează imagini în care doar un subset de caracteristici este important pentru clasificarea imaginii.

Mașini de suport vectorial (Support Vector Machines)

Mașinile de suport vectorial sunt o metodă de clasificare care plasează puncte în spațiu și apoi desenează linii de separare între puncte, plasând obiectele în clase diferite în funcție de partea din spațiu în care se află punctele. Mașinile de suport vectorial pot face clasificări neliniare prin utilizarea unei tehnici numite “trucul kernel”. Deși clasificatorii SVM sunt adesea foarte precisi, o limitare semnificativă a clasificatorilor SVM este că tind să fie limitați atât de dimensiune, cât și de viteză, viteza suferind pe măsură ce dimensiunea crește.

Perceptron multi-strat (Neural Nets)

Perceptronii multi-strat, cunoscuți și sub numele de modele de rețele neuronale, sunt algoritmi de învățare automată inspirați de creierul uman. Perceptronii multi-strat sunt compuși din straturi diverse care sunt conectate între ele, similar cu neuronii din creierul uman care sunt legați între ei. Rețelele neuronale fac presupuneri despre modul în care caracteristicile de intrare sunt legate de clasele datelor și aceste presupuneri sunt ajustate pe parcursul antrenării. Modelele simple de rețele neuronale, cum ar fi perceptronul multi-strat, pot învăța relații neliniare și, ca urmare, pot fi mult mai precise decât alte modele. Cu toate acestea, modelele MLP suferă de unele probleme notabile, cum ar fi prezența unor funcții de pierdere neconvexe.

Algoritmi de învățare profundă (CNN)

Foto: APhex34 via Wikimedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Typical_cnn.png)

Algoritmul de clasificare a imaginilor cel mai frecvent utilizat în ultimul timp este Rețeaua Neuronală Convoluțională (CNN). CNN-urile sunt versiuni personalizate ale rețelelor neuronale care combină rețelele neuronale multistrat cu straturi specializate capabile să extragă caracteristicile cele mai importante și relevante pentru clasificarea unui obiect. CNN-urile pot descoperi, genera și învăța automat caracteristici ale imaginilor. Acest lucru reduce semnificativ nevoia de a eticheta și segmenta manual imagini pentru a le pregăti pentru algoritmii de învățare automată. De asemenea, au un avantaj față de rețelele MLP, deoarece pot face față funcțiilor de pierdere neconvexe.

Rețelele Neuronale Convoluționale își primesc numele de la faptul că “convoluează”. CNN-urile funcționează prin plasarea unui filtru și prin deplasarea lui peste o imagine. Puteți imagina acest proces ca privirea unor porțiuni dintr-un peisaj prin intermediul unei ferestre mobile, concentrându-vă doar pe caracteristicile vizibile prin fereastră la un moment dat. Filtrul conține valori numerice care sunt înmulțite cu valorile pixelilor înșiși. Rezultatul este un cadru nou, sau o matrice, plină de numere care reprezintă imaginea originală. Acest proces se repetă pentru un număr ales de filtre, iar apoi cadrele sunt unite într-o imagine nouă care este puțin mai mică și mai puțin complexă decât imaginea originală. Se utilizează o tehnică numită “pooling” pentru a selecta doar valorile cele mai importante din imagine, iar scopul este ca straturile convoluționale să extragă în cele din urmă doar părțile cele mai semnificative ale imaginii care vor ajuta rețeaua neuronală să recunoască obiectele din imagine.

Rețelele Neuronale Convoluționale sunt alcătuite din două părți distincte. Straturile convoluționale sunt cele care extrag caracteristicile imaginii și le convertește într-un format pe care straturile neuronale le pot interpreta și învăța. Straturile convoluționale timpurii sunt responsabile de extragerea elementelor de bază ale imaginii, cum ar fi linii și limite simple. Straturile convoluționale din mijloc încep să capteze forme mai complexe, cum ar fi curbe și colțuri simple. Straturile convoluționale mai profunde extrag caracteristicile de nivel superior ale imaginii, care sunt cele care sunt introduse în partea de rețea neuronală a CNN-ului și care sunt cele pe care clasificatorul le învață.

Blogger și programator cu specializări în Machine Learning și Deep Learning subiecte. Daniel speră să ajute pe alții să folosească puterea inteligenței artificiale pentru binele social.