Algoritmi de viziune computerizată: tot ce ați vrut să știți [2022]
Publicat: 2021-01-01Cunoașteți algoritmii pe care computerele îi permit să îi perceapă
Cuprins
Introducere
Cuvântul computer vision înseamnă capacitatea unui computer de a vedea și percepe împrejurimile. O mulțime de aplicații sunt necesare pentru acoperirea vederii computerizate - detectarea și recunoașterea obiectelor, auto-conducerea mașinilor, recunoașterea facială, urmărirea mingii, etichetarea fotografiilor și multe altele. Înainte de a vă scufunda în jargonurile tehnice, mai întâi să discutăm despre întreaga conductă de viziune computerizată.
Întreaga conductă este împărțită în 5 pași de bază, fiecare cu o funcție specifică. În primul rând, intrarea este necesară pentru ca algoritmul să proceseze, care poate fi sub forma unei imagini sau a unui flux de imagini (cadre de imagine). Următorul pas este preprocesarea. În acest pas, funcțiile sunt aplicate imaginilor primite, astfel încât algoritmul să poată înțelege mai bine imaginea.
Unele dintre funcții implică reducerea zgomotului, scalarea imaginii, dilatarea și eroziunea, eliminarea petelor de culoare etc. Următorul pas este selectarea zonei de interes sau a regiunii de interes. Sub aceasta se află algoritmii de detectare a obiectelor și de segmentare a imaginii. În plus, avem extragerea de caracteristici care înseamnă preluarea informațiilor/caracteristicilor relevante din imagini care sunt necesare pentru atingerea scopului final.
Pasul final este recunoașterea sau predicția, în care recunoaștem obiectele dintr-un cadru dat de imagini sau predicăm probabilitatea obiectului într-un cadru de imagine dat.
Exemplu
Să ne uităm la o aplicație din lumea reală a conductei de viziune computerizată. Recunoașterea expresiei faciale este o aplicație a vederii computerizate care este utilizată de multe laboratoare de cercetare pentru a-și face o idee despre efectul unui anumit produs asupra utilizatorilor săi. Din nou, avem date de intrare cărora le aplicăm algoritmii de preprocesare.

Următorul pas implică detectarea fețelor dintr-un anumit cadru și tăierea acelei părți a cadrului. Odată realizat acest lucru, reperele faciale sunt identificate, cum ar fi gura, ochii, nasul etc. - caracteristici cheie pentru recunoașterea emoțiilor.
În final, un model de predicție (model antrenat) clasifică imaginile pe baza caracteristicilor extrase în pașii intermediari.
Algoritmi
Înainte de a începe să menționez algoritmii din viziunea computerizată, vreau să subliniez termenul „Frecvență”. Frecvența unei imagini este rata de schimbare a intensității. Imaginile de înaltă frecvență au schimbări mari de intensitate. O imagine cu frecvență joasă are luminozitate relativ uniformă sau intensitatea se modifică lent.
La aplicarea transformării Fourier la o imagine obținem un spectru de magnitudine care furnizează informații despre frecvența imaginii. Punctul concentrat în centrul imaginii domeniului de frecvență înseamnă că o mulțime de componente de frecvență joasă sunt prezente în imagine. Componentele de înaltă frecvență includ: margini, colțuri, dungi etc. Știm că o imagine este o funcție a lui x și yf(x,y). Pentru a măsura modificarea intensității, luăm doar derivata funcției f(x,y).
Filtru sobru
Operatorul Sobel este utilizat în procesarea imaginilor și viziunea computerizată pentru algoritmii de detectare a marginilor. Filtrul creează o imagine de subliniere a marginilor. Acesta calculează o aproximare a pantei/gradientului funcției de intensitate a imaginii. La fiecare pixel din imagine, rezultatul operatorului Sobel este atât vectorul de gradient corespunzător, cât și norma acestui vector.
Operatorul Sobel convoluează imaginea cu un filtru mic cu valori întregi în direcțiile orizontale și verticale. Acest lucru face ca operatorul să fie ieftin în ceea ce privește complexitatea calculului. Filtrul Sx detectează marginile în direcția orizontală, iar filtrul Sy detectează marginile în direcția verticală. Este un filtru de trecere înaltă.
Aplicând Sx imaginii
Aplicând Sy la imagine
Citiți: Salariul de învățare automată în India
Filtru de mediere
Filtrul mediu este un filtru normalizat care este utilizat pentru a determina luminozitatea sau întunericul unei imagini. Filtrul mediu se deplasează peste pixelul imaginii cu pixel înlocuind fiecare valoare a pixelului cu valoarea medie a pixelilor vecini, inclusiv pe el însuși.
Filtrarea medie (sau medie) netezește imaginile prin reducerea cantității de variație a intensității între pixelii vecini.
Filtru mediu, Sursă imagine
Filtru de estompare Gaussian
Filtrul de estompare gaussian este un filtru trece-jos și are următoarele funcții:
- Netezește o imagine
- Blochează părți de înaltă frecvență ale unei imagini
- Păstrează marginile
Din punct de vedere matematic, aplicând o estompare gaussiană unei imagini, practic convolum imaginea cu o funcție gaussiană.

În formula de mai sus, x este distanța orizontală de la punctul de origine, y este distanța verticală de la punctul de origine și σ este abaterea standard a distribuției gaussiene. În două dimensiuni, formula reprezintă o suprafață ale cărei profiluri sunt cercuri concentrice cu o distribuție gaussiană din punctul de origine.
Filtru de estompare Gaussian, sursă imagine
Un lucru de remarcat aici este importanța alegerii unei dimensiuni corecte a nucleului. Este important deoarece, dacă dimensiunea nucleului este prea mare, caracteristicile mici prezente în imagine pot dispărea, iar imaginea va părea neclară. Dacă este prea mic, zgomotul din imagine nu va fi eliminat.
Citește și: Tipuri de algoritm AI pe care ar trebui să le cunoști
Detectorul Canny Edge
Este un algoritm care utilizează patru filtre pentru a detecta marginile orizontale, verticale și diagonale în imaginea neclară. Algoritmul îndeplinește următoarele funcții.
- Este un algoritm de detectare precis a marginilor utilizat pe scară largă
- Filtrează zgomotul folosind Gaussian Blur
- Găsește puterea și direcția marginilor folosind filtrul Sobel
- Aplică o suprimare non-max pentru a izola cele mai puternice margini și a le subțire la o linie de pixeli
- Utilizează histerezis (metoda de dublu prag) pentru a izola cele mai bune margini
Detectorul Canny Edge pe o fotografie cu un motor cu abur, imagine de Wikipedia
Cascada Haar
Aceasta este o abordare bazată pe învățarea automată în care o funcție în cascadă este antrenată pentru a rezolva probleme de clasificare binară. Funcția este antrenată dintr-o multitudine de imagini pozitive și negative și este folosită în continuare pentru a detecta obiecte din alte imagini. Detectează următoarele:
- Margini
- Linii
- Modele dreptunghiulare
Pentru a detecta modelele de mai sus, sunt utilizate următoarele caracteristici:
Straturi convoluționale
În această abordare, rețeaua neuronală învață caracteristicile unui grup de imagini aparținând aceleiași categorii. Învățarea are loc prin actualizarea greutăților neuronilor folosind tehnica de propagare înapoi și coborârea gradientului ca optimizator.
Este un proces iterativ care urmărește să scadă eroarea dintre rezultatul real și adevărul de bază. Straturile/blocurile de convoluție astfel obținute în proces acționează ca straturi caracteristice care sunt utilizate pentru a distinge o imagine pozitivă de una negativă. Mai jos este dat un exemplu de strat de convoluție.

Rețea neuronală convoluțională, sursă imagine
Straturile complet conectate, împreună cu o funcție SoftMax la sfârșit, clasifică imaginea primită într-una dintre categoriile în care este antrenat. Scorul de ieșire este un scor probabilistic cu un interval între 0 și 1.
Trebuie citit: Tipuri de algoritm de clasificare în ML
Concluzie
O prezentare generală a celor mai obișnuiți algoritmi utilizați în Computer Vision a fost tratată în acest blog, împreună cu o conductă generală. Acești algoritmi formează baza unor algoritmi mai complicati precum SIFT, SURF, ORB și multe altele.
Dacă sunteți interesat să aflați mai multe despre învățarea automată, consultați Diploma PG de la IIIT-B și upGrad în Învățare automată și AI, care este concepută pentru profesioniști care lucrează și oferă peste 450 de ore de pregătire riguroasă, peste 30 de studii de caz și sarcini, IIIT- B Statut de absolvenți, peste 5 proiecte practice practice și asistență pentru locuri de muncă cu firme de top.
Care este diferența dintre Procesarea imaginii și Viziunea pe computer?
Procesarea imaginii îmbunătățește forma brută a imaginilor pentru a produce o versiune mai bună. Este folosit și pentru extragerea unor caracteristici ale imaginii primare. Procesarea imaginii este, prin urmare, o secțiune distinctă în câmpul Computer Vision în sine. Cu toate acestea, Computer Vision se concentrează pe recunoașterea obiectelor stimuli pentru o clasificare precisă. Ambele folosesc, de asemenea, tehnologii similare în procedura lor. Prin urmare, procesarea imaginilor poate fi procesul principal în Computer Vision. Rămâne să fie un domeniu proeminent în inteligența artificială. Procesarea imaginilor se concentrează pe îmbunătățirea imaginilor; Tehnologia Computer Vision se concentrează pe analize detaliate și precise pentru a crea sisteme mai bune.
De ce se folosește Deep Learning pentru a construi algoritmi de computer Vision?
Computer Vision a făcut ca inteligența artificială (AI) să fie mai robustă datorită cercetării riguroase bazate pe date și analizei vizuale consecvente a datelor. Deep Learning este un proces continuu de introducere a datelor prin intermediul rețelelor neuronale. Informațiile sunt derivate din procesele creierului uman pentru a perfecționa algoritmul pentru învățare, procesare și rezultate eficiente. Deep Learning îmbunătățește clasificarea precisă a datelor, asigură un model AI de încredere. Computer Vision folosește această metodă pentru a alinia AI la rețeaua neuronală a creierului uman. Deep Learning a permis sisteme de încredere pentru a ajuta oamenii și a le îmbunătăți calitatea vieții.
Ce este un filtru Low Pass și High Pass?
În algoritmii de computer Vision, mai multe filtre produc rezultatele dorite dintr-o imagine brută. Aceste filtre îndeplinesc numeroase funcții pentru a netezi, a ascuți și a accentua aspectul după cum doriți. Filtrele diferă ca frecvență și propun efecte diferite. De exemplu, filtrul Gaussian Blur funcționează în esență la netezirea imaginii prin modificarea părților de înaltă frecvență ale imaginii și păstrarea marginilor. Se numește filtru Low Pass deoarece diminuează locațiile de înaltă frecvență și menține locațiile de joasă frecvență, oferindu-i o imagine mai fină. În filtrele High Pass, locațiile cu frecvență joasă sunt reduse, iar primele sunt păstrate, ceea ce are ca rezultat o imagine mai clară.