Cum se configurează smartphone-uri și PC-uri. Portal informativ
  • Acasă
  • Programe
  • Recunoașterea obiectelor. Analiza imaginii bazată pe extinderea funcțiilor de bază

Recunoașterea obiectelor. Analiza imaginii bazată pe extinderea funcțiilor de bază

Scanarea unei imagini și detectarea obiectelor din ea este sarcina #1 în procesarea imaginilor și viziunea computerizată. O căutare pentru „recunoaștere automată a imaginii” pe Google Academies va returna multe articole cu ecuații și algoritmi complexi de la începutul anilor 90 până în prezent. Acest lucru sugerează că această problemă a atras oamenii de știință încă de la apariția căutării pe web, dar nu a fost încă rezolvată.

Fondatorul CognitiveSEO, Razvan Gavrilas, crede că în viitorul apropiat, Google își va schimba algoritmii de clasare a imaginilor, ceea ce va afecta căutarea și, de fapt, optimizarea motoarelor de căutare la nivel mondial. Razvan dezvolta acest subiect in acest articol.

De ce este importantă pentru comunitatea digitală globală capacitatea de a recunoaște obiecte în imagini?

Potrivit expertului, detectarea obiectelor din imagini va deveni un fel de factor suplimentar de clasare. De exemplu, o imagine a unui câine albastru ar fi legată indisolubil de cuvântul cheie „câine albastru” și nu de „câine roșu”.

Acest lucru are două implicații importante pentru SEO:

  • numărul de rezultate irelevante la căutarea unui anumit cuvânt cheie va fi mai mic (în funcție de ceea ce este în imagine),
  • recunoașterea obiect în imagine vă va ajuta să asociați conținutul paginii cu imaginea respectivă. Dacă pagina conține o mulțime de poze cu câini albaștri și alte lucruri legate de câini, atunci ratingul acestei pagini ca fiind dedicată câinilor va fi mai mare.

O altă întrebare - recunoașterea modelelor va fi începutul unei „noui ere” pentru manipularea obiectelor din imagini ca o nouă tehnică SEO umbrită? Nu, deoarece algoritmii motoarelor de căutare din zilele noastre detectează cu ușurință acest tip de spam.

Google, inteligența artificială și recunoașterea imaginilor

În 2010, Universitatea Stanford a organizat prima competiție ILSVRC (ImageNet large-scale visual recognition challenge), în care programatorii demonstrează capacitățile sistemelor lor de recunoaștere a imaginilor.

ILSVRC are trei faze principale:

  • clasificare,
  • clasificare cu localizare,
  • detectare.

În primul caz, se evaluează capacitatea algoritmului de a crea „legendele” corecte pentru imagine (etichetare), localizarea implică selectarea obiectelor principale din imagine, problema de detecție este formulată într-un mod similar, dar mai mult se aplică criterii stricte de evaluare.

În cazul detectării, algoritmul de recunoaștere trebuie să descrie o imagine complexă cu multe obiecte, determinând locația acestora și identificând cu exactitate fiecare dintre ele. Aceasta înseamnă că, dacă cineva călărește un moped în imagine, atunci software-ul ar trebui să poată nu numai să distingă mai multe obiecte separate (de exemplu, un moped, o persoană și o cască), ci și să le poziționeze corect în spațiu și să clasifice. corect. După cum putem vedea în imaginea de mai jos, articolele individuale au fost identificate și clasificate corect.

Orice motor de căutare cu această capacitate ar îngreuna oricui să treacă fotografiile persoanelor aflate pe mopede drept fotografii ale șoferilor Porsche prin manipularea metadatelor. Algoritmul capabil să recunoască obiecte este destul de avansat și va putea analiza orice imagine, inclusiv cea mai complexă.

În 2014, competiția ILSVRC a fost câștigată de echipa GoogLeNet. Numele este derivat din cuvintele Google și LeNet - una dintre implementările unei rețele neuronale convoluționale. O astfel de rețea poate învăța rapid și, de asemenea, poate produce rezultate chiar și cu o cantitate mică de memorie datorită reducerii de peste zece ori a numărului de parametri, în comparație cu majoritatea celorlalte modele de viziune computerizată.

Termenul „rețele neuronale” înseamnă rețele neuronale artificiale (ANN), care sunt modele de calcul bazate pe principiile învățării și recunoașterii modelelor. Un exemplu despre cum funcționează algoritmul de detectare a obiectelor este prezentat mai jos:

Echipa GoogLeNet folosește un tip specific de ANN - o rețea neuronală convoluțională, care funcționează în care neuronii individuali răspund la zone diferite (dar care se suprapun) din câmpul vizual. Aceste zone pot fi adunate împreună pentru a crea o imagine mai complexă. Potrivit lui Razvan Gavrilas, acest lucru este similar cu lucrul cu straturi într-un editor de imagini.

Unul dintre avantajele unei rețele neuronale convoluționale este un bun suport de traducere - orice tip de mișcare a unui obiect dintr-un spațiu în altul. Infrastructure DistBelief este capabil să selecteze un obiect indiferent unde se află în imagine.

O altă caracteristică utilă a infrastructurii este invarianța la scară, conform căreia proprietățile obiectelor nu se schimbă dacă scările de lungime sunt înmulțite cu un factor comun. Aceasta înseamnă că cadrul DistBelief trebuie să recunoască clar o imagine a, de exemplu, o „portocală”, indiferent dacă este mare (pe tapetul desktopului) sau mică (pe pictogramă). În ambele cazuri, obiectul este portocaliu și este clasificat drept „portocaliu”.

Este necesar să spunem despre principiul Hebb, conform căruia sunt antrenate rețelele neuronale artificiale. În Organizarea comportamentală: O teorie neuropsihologică, postulatul lui Hebb spune următorul: „Dacă axonul celulei A este suficient de aproape pentru a excita celula B și participă în mod repetat sau constant la excitația acesteia, atunci există un proces de creștere sau modificări metabolice într-una sau ambele celule, conducând la o creștere a eficienței lui A ca una dintre celulele care excită B”.

Razvan Gavrilas simplifică puțin citatul: „Celulele care sunt excitate împreună se leagă împreună”. În cazul ANN, „celulele” ar trebui înlocuite cu „neuroni”. Construind o analogie suplimentară, se poate spune că software-ul va fi capabil să se educe singur pentru a se îmbunătăți continuu.

Google recrutează profesioniști în IA și recunoașterea imaginilor

Google își dezvoltă propria tehnologie de recunoaștere a imaginii pe baza dezvoltărilor terțelor părți, de exemplu, pentru aceasta, a fost achiziționată o companie startup DNNresearch, care este angajată în cercetare în domeniul recunoașterii obiectelor și a vocii. DNNresearch este un startup, la momentul preluării, avea trei angajați care au devenit automat angajați Google. Au primit un grant pentru a sprijini munca în domeniul rețelelor neuronale. Noile tehnologii pe care Google le poate aplica pentru a îmbunătăți calitatea căutării de imagini.

Conform strategiei Google, multe soluții open source rămân disponibile altor companii. Acest lucru se face pentru a dezvolta piața. Potrivit lui Răzvan, de ce să vă sufocați concurenții când vă puteți permite să-l cumpărați după un timp?

O altă achiziție interesantă de la Google este DeepMind, care are o investiție de 400 de milioane de dolari. Aceasta și multe alte achiziții vizează în primul rând atragerea de oameni calificați către Google, și nu soluții gata făcute. Asemenea mișcări de a cumpăra companii sunt o dovadă a Google, Facebook și a altor companii de internet care se întrec după „creiere” pentru dezvoltări ulterioare în domeniul inteligenței artificiale.

Google+ folosește deja detectarea obiectelor în imagini. Următorul pe rând pentru Căutarea Google?

De fapt, un algoritm de detectare a imaginilor bazat pe rețea neuronală rulează pe Google+ de peste un an. O parte din codul software prezentat pe ILSVRC a fost folosit pentru a îmbunătăți algoritmii Google+ pentru a găsi anumite tipuri de fotografii.

Tehnologia de recunoaștere a imaginii de la Google are următoarele caracteristici:

  • Algoritmul Google ține cont de corespondența obiectelor din imaginile web (prim-plan, iluminare artificială, detaliu) cu obiectele din fotografii naturale (plan mediu, lumină naturală cu umbre, grade diferite de detaliu). Cu alte cuvinte - floarea ar trebui să rămână o floare chiar și în imagini cu rezoluții sau condiții de iluminare diferite.
  • Unele clase vizuale specifice sunt mutate din unitățile generale. De exemplu, în lista mare de nume de flori pe care algoritmul o distinge, unele plante individuale sunt marcate, de exemplu, hibiscus sau dalia.
  • Algoritmul de recunoaștere a imaginilor de la Google a reușit să învețe și cum să lucreze cu categorii abstracte de obiecte, evidențiind un anumit număr de imagini care ar putea fi catalogate drept „dans”, „mâncare”, „sărutări”. Este nevoie de mult mai mult timp decât simpla identificare a raporturilor portocale-portocalie.

Clasele cu semnificații diferite sunt de asemenea bine gestionate. Un exemplu este „mașina”. Este acesta un instantaneu al unei mașini dacă vedem întreaga mașină pe ea? O imagine a interiorului unei mașini este considerată o fotografie a unei mașini sau este altceva? Am răspunde afirmativ la ambele întrebări, iar algoritmul de recunoaștere al Google face același lucru.

Trebuie remarcat faptul că sistemul de recunoaștere a imaginii este încă incomplet. Cu toate acestea, chiar și în forma sa „brută”, algoritmul Google este mai presus de toate evoluțiile anterioare în domeniul vederii computerizate.

Tehnologia de recunoaștere a imaginilor face parte din Google Knowledge Graph?

Noul algoritm Google face parte din „învățarea automată”, care este parțial implementat în Knowledge Graph. Conține entități - obiecte destinate să înlocuiască caractere care nu pot fi întâlnite în forma lor „pură” în text HTML, de exemplu, caracterul „

Fiecare obiect și fiecare clasă de obiecte primesc un cod unic, astfel încât animalul „jaguar” nu va fi niciodată confundat cu mașina cu același nume. Pe baza acestor coduri, algoritmul de recunoaștere poate folosi baza de cunoștințe. De fapt, Google creează „căutare inteligentă” care înțelege și traduce cuvintele și imaginile tale în obiecte simbolice reale.

Cum poate afecta tehnologia de detectare a obiectelor din imagini SEO?

Funcția de recunoaștere a imaginii poate fi utilă oriunde doriți să știți ce este într-o imagine.

Din punct de vedere SEO convențional, recunoașterea imaginii este un mare pas înainte. Acest lucru ajută la îmbunătățirea calității conținutului, deoarece devine aproape imposibil să înșeli un motor de căutare prin etichetarea greșită a fotografiilor sau a unui număr mare de ele.

Conținutul vizual bun (adică calitate înaltă a imaginii, obiecte vizibile clar, relevanța fotografiei) este probabil să joace un rol important în tot ceea ce are legătură cu căutarea vizuală.

Dacă vrei ca imaginea ta să fie prima dintre imaginile din interogările „Câine galben”, atunci optimizarea va trebui să înceapă prin a specifica tipul imaginii tale și a enumera obiectele pe care le conține.

Concluzie

Capacitatea unei persoane de a recunoaște multe obiecte și de a le clasifica este una dintre cele mai uimitoare posibilități de percepție vizuală, ale cărei analogi de computer nu au fost încă inventați. Cu toate acestea, Google face deja pași înainte, de exemplu, deține deja un brevet pentru recunoașterea automată a obiectelor video la scară largă din 2012.

Deci, potrivit lui Razvan Gavrilas, rezultatele căutării organice ale Google sunt pe cale să se schimbe. Motorul de căutare se va muta „de la linii la lucruri”, de fapt, integrându-și graficul de cunoștințe în peisajul căutării. Se vor schimba, de asemenea, algoritmii de căutare, care sunt susceptibili de a se raporta la obiectele reale din conținut și de a determina modul în care aceste obiecte se vor raporta între ele.

Fiecare obiect poate fi caracterizat printr-un set de anumite caracteristici. Numărul de caracteristici depinde de complexitatea obiectului în sine. Precizia selecției caracteristicilor va afecta eficiența recunoașterii obiectului descris de acest set.

Să luăm în considerare un exemplu de recunoaștere a obiectelor simple pe baza unui set de caracteristici. Când implementăm metoda, vom folosi ca principale două funcții bwlabel și imfeature, care sunt încorporate în aplicația Image Processing Toolbox.

Mai întâi, citiți imaginea de testare originală în spațiul de lucru Matlab

L = imread ("test_image.bmp");

și vizualizați-o

Figura, imshow (L);

Să facem câteva comentarii la imaginea originală. În cazul nostru, datele inițiale sunt reprezentate de o imagine binară. Acest lucru ne simplifică oarecum sarcina, deoarece accentul principal în acest exemplu este pe recunoașterea obiectelor. Cu toate acestea, atunci când rezolvăm probleme de recunoaștere bazate pe imagini reale, în cele mai multe cazuri, este important să convertiți imaginea originală într-una binară. Calitatea rezolvării acestei probleme determină în mare măsură eficacitatea recunoașterii ulterioare.

Funcțiile bwlabel și imfeature folosesc imagini 2D în tonuri de gri ca intrare. Deoarece imaginea test_image.bmp a fost generată ca binară, dar salvată în format bmp, este necesar să selectați una dintre bile, de exemplu, prima, din matricea imaginii tridimensionale L, care conține trei bile de culoare identice .

L = L (:,:, 1);

Același rezultat poate fi obținut folosind funcția rgb2gray. Astfel, matricea L reprezintă o imagine binară bidimensională.

Pentru calcule suplimentare, vom determina dimensiunea acestei imagini

Marime (L);

În continuare, trebuie să localizați, de ex. determinați locația obiectelor în imagine. Pentru a face acest lucru, vom folosi funcția bwlabel, care caută într-o imagine binară regiunile conectate ale pixelilor obiectului și creează o matrice, fiecare element al cărei element este egal cu numărul obiectului căruia îi aparține pixelul corespunzător al imaginii originale. Parametrul num returnează în plus numărul de obiecte găsite în imaginea binară originală.

Bwlabel (L, 8);

În plus, în funcția bwlabel este specificat un alt parametru - valoarea conectivității.

În continuare, trecem la calcularea atributelor obiectelor care sunt marcate în matricea numerelor de obiecte L. Să luăm în considerare această problemă mai detaliat. Valorile caracteristicilor sunt returnate într-o serie de structuri de fapte. După cum sa menționat mai devreme, orice set de caracteristici poate fi utilizat în recunoașterea obiectelor.

În cadrul acestui exemplu, vom aplica cea mai vizuală abordare statistică pentru clasificarea obiectelor pe baza caracteristicilor morfometrice. Principalele caracteristici morfometrice includ coeficienții de formă:

  1. „Soliditate” - coeficient de convexitate: egal cu raportul dintre aria și aria convexă a obiectului. Reprezentat printr-un număr din intervalul (0,1).
  2. „Întindere” - factor de umplere: egal cu raportul dintre aria obiectului și aria dreptunghiului de delimitare. Reprezentat printr-un număr din intervalul (0,1).
  3. „Excentricitate” - excentricitatea unei elipse cu momente principale de inerție egale cu momentele principale de inerție ale obiectului. Reprezentat printr-un număr din intervalul (0,1).

Deoarece în acest exemplu este folosită o imagine de testare a obiectelor dintr-o formă simplă, din caracteristicile enumerate în implementarea software vom folosi doar factorul de umplere „întindere”. După cum am menționat mai devreme, parametrul „întindere” este definit ca raportul dintre aria obiectului și aria casetei de delimitare. Pentru un cerc, acest parametru va fi egal, iar pentru un pătrat - 1. Dar aceste date sunt date pentru cazul în care un cerc și un pătrat au o formă ideală. Dacă forma cercului sau pătratului este distorsionată, valorile „întindere” pot diferi, de asemenea, de valorile de mai sus. Prin urmare, factorii de formă pot fi calculați cu o anumită eroare. Astfel, prin introducerea unei erori în raportul de aspect, sunt permise unele dintre distorsiunile acestuia. Mai mult, valoarea erorii este proporțională cu gradul de distorsiune. Cu toate acestea, o valoare prea mare a erorii poate duce la recunoașterea incorectă a obiectelor.

În plus, vom determina și centrul de masă al obiectului folosind opțiunea „centroid”.

Feats = imfeature (L, „Centroid”, „Extent”, 8);

Să rescriem valorile caracteristicilor din matricea structurilor feats în matrice separate:

Extent = zerouri (num); CentX = zerouri (num); CentY = zerouri (num); pentru i = 1: 1: num; Extent (i) = feats (i) .Extent; CentX (i) = feats (i).Centroid (1); CentY (i) = feats (i).Centroid (2); Sfârșit;

De asemenea, în cadrul acestui exemplu, vom implementa următoarele. Pentru claritate, fiecare obiect recunoscut va fi etichetat. Sunt posibile diferite abordări pentru a realiza acest lucru. Una dintre cele mai simple este să plasați o imagine cu numele ei lângă obiectul recunoscut. Pentru a face acest lucru, mai întâi trebuie să generați imagini cu numele obiectelor și să le citiți în spațiul de lucru Matlab. Deoarece imaginea de test conține doar cercuri și pătrate, va genera și va calcula imaginile corespunzătoare.

Krug = imread ("krug.bmp"); Kvadrat = imread ("kvadrat.bmp"); d = 0,15; % eroare factor de formă pentru i = 1: num; L (rotund (CentY (i)): rotund (CentY (i)) + 1, rotund (CentX (i)): rotund (CentX (i)) + 1) = 0; dacă (abs (Măsura (i) -0,7822)

Să prezentăm rezultatul recunoașterii

Figura, imshow (L);

Există și alte abordări ale recunoașterii obiectelor bazate pe un set de caracteristici. Ele diferă prin complexitatea lor computațională, eficiență etc. Cu toate acestea, în materialele ulterioare vom lua în considerare acele abordări care pot fi implementate folosind funcțiile încorporate în sistemul Matlab.



(, partea 6.1)

Recunoașterea imaginilor este o zonă care se intersectează cu recunoașterea modelelor, dar se diferențiază oarecum de aceasta. Una dintre principalele diferențe este că imaginile aceleiași imagini pot varia în ceea ce privește caracteristicile geometrice și de luminozitate, dar acest lucru nu este deosebit de interesant pentru noi, acest lucru este corectat prin metode de preprocesare a imaginii bine studiate. A doua dintre principalele diferențe este că imaginile aceleiași imagini suferă deformări non-triviale, de exemplu, unghiuri diferite ale unui obiect tridimensional, direcția luminii, modificări de postură/expresii faciale/gesturi etc., care nu se încadrează în schema împărțirii spațiului imaginilor. Și de aici începe distracția.

În unele locuri voi intra în detaliile recunoașterii imaginii, deoarece subiectul este aproape de mine și voi expune câteva idei și propria mea viziune asupra a ceea ce ar trebui să fie un instrument de recunoaștere a imaginii ideal.

Am descris odată în detaliu multe din asta. Nu fără inexactități, dar în general sănătos. De asemenea, indică de unde au fost luate imaginile și datele exacte ale articolelor științifice.

Cum este prezentată imaginea în sistemul de recunoaștere a modelelor. Cel mai simplu lucru este că fiecare pixel este o axă în spațiul imaginii, luminozitatea unui pixel este o poziție în acest spațiu. Prin urmare, concluzia sugerează imediat că dispozitivul de recunoaștere nu ține cont în niciun fel de natura bidimensională a imaginilor, ci mai târziu. Există și alte reprezentări, se bazează și pe luminozitatea pixelilor și pot reprezenta puțin mai bine (destul de puțin!) relațiile bidimensionale ale pixelilor.

Ce rezultă dintr-o asemenea reprezentare. Schimbarea poziției obiectului recunoscut, rotirea lui într-un plan bidimensional, schimbarea scării este un dezastru pentru recunoscut. Pentru că un pixel corespunzător, de exemplu, vârfului nasului, va merge la marginea urechii sau, din punctul de vedere al recunoașterii, valoarea de intrare, care ar trebui să cadă pe axa sa în spațiul imaginii, va cădea într-o axă complet diferită (nu este clar ce!) (altfel se numește o schimbare a topologiei spațiului). Și o astfel de permutare a axelor rupe complet suprafețele de divizare în spațiul imaginilor. Puteți, desigur, să spuneți, să permiteți recunoașterii să învețe toate pozițiile și scările obiectului din imagine. Dar, din păcate, numărul tuturor prevederilor posibile este atât de mare încât nu este realist să faci asta.

Următoarea consecință este că o modificare a luminozității unei imagini aruncă întreaga imagine într-un punct complet diferit în spațiul imaginilor. Deși axele rămân la locul lor aici, schimbarea luminozității este încă o mare problemă pentru recunoscut.

Ca urmare, dispozitivul de recunoaștere va reacționa nu atât la conținutul imaginii, cât la luminozitatea și dimensiunea/poziția acesteia.

Dar toate acestea nu sunt atât de înfricoșătoare, instrumentele de procesare a imaginii au reușit să corecteze geometria și luminozitatea de mult timp. (O altă problemă, comparabilă ca complexitate și metode aplicate cu recunoașterea imaginii, este aceea de a determina locația și dimensiunea unui obiect în imagine, numită detecție.) Există și transformări de imagine (numite momente), ai căror coeficienți sunt aceiași pentru orice poziție și dimensiune a obiectului. Prin urmare, una dintre primele etape ale recunoașterii imaginii (care este absentă în recunoașterea modelelor) este normalizarea imaginii, care este rezolvată prin instrumente de procesare a imaginii destul de simple. Cum se rezolvă acest lucru în creierul uman este, de asemenea, o întrebare interesantă, să privim mai departe.

Dar cel mai complicat lucru pentru recunoaștere sunt deformările proiecției bidimensionale asociate cu esența tridimensională a obiectului (schimbarea unghiului și direcției de iluminare) și schimbarea obiectului în sine (postură, gesturi, expresii faciale etc. .). Deoarece aceste deformații nu sunt corectate prin metode de procesare a imaginii și, în general, mai întâi trebuie să determinați ce fel de deformare a avut loc. Prin urmare, grebla preferată de recunoaștere, atunci când reacționează mai mult la unghi, recunoscând diferite obiecte în același unghi ca același. Cu iluminare, o glumă similară, de exemplu, în același loc, trecerea de la alb la negru, la schimbarea direcției de iluminare în sens opus, va deveni, dimpotrivă, o tranziție de la negru la alb și nu puteți repara aceasta prin normalizarea luminozității.

Pentru dreptate, trebuie remarcat faptul că există modalități în care un set mare de antrenament este creat cu imagini realizate special sub diferite unghiuri și direcții de iluminare și apoi, imaginea de intrare, dacă se încadrează în limitele acestor condiții, este bine recunoscută. . Mai mult, după o pregătire atât de extinsă, pot fi introduse în sistem obiecte noi, care nu au fost filmate cu o variație atât de mare de unghiuri și iluminare. Dar această metodă este un caz special și, în plus, este destul de grea. Și pentru noi, în general, acest lucru nu este interesant, deoarece este mai mult legat de matematică și statistică.

O altă modalitate este de a restaura o imagine tridimensională dintr-o proiecție bidimensională. Atunci unghiul și iluminarea nu joacă un rol, iar schimbările de postură sunt mai ușor de gestionat. Adevărat, metoda nu este ușor de implementat și nu totul este bine în ea. La restaurarea unei imagini tridimensionale, de obicei este necesar un model mai general al unui obiect (fără el, restaurarea este posibilă, dar va fi „șchiop” și este mai puțin potrivită pentru recunoaștere) și corelarea unei proiecții cu un trei -modelul dimensional are si elemente de recunoastere a modelelor. Dar nici asta nu ne interesează, deoarece aici există o matematică mai exactă.

Un dispozitiv de recunoaștere „curat” ar trebui să facă față singur deformărilor de imagine enumerate, fără modele precise și truse de antrenament special pregătite. Recunoașterea nu ar trebui să opereze cu o imagine, ca o matrice unidimensională, ci ar trebui să înțeleagă că imaginea constă din fragmente bidimensionale, conținutul fragmentului se poate modifica, deși semnificația acestuia rămâne aceeași (exemplul de mai sus este despre schimbare direcția luminii sau o altă expresie facială), fragmentul în sine se poate deplasa față de centrul imaginii și față de alte piese (unghi diferit sau modificarea expresiei faciale), combinația de piese se poate schimba (de exemplu, au apărut ochelari, coafura/barbă pe față schimbată, deși proprietarul însuși este același).

Recunoaștetorii care arată rezultate bune pot face doar multe din cele de mai sus, fiecare în felul său. Dar! Dacă a fost dezvoltat un sistem de recunoaștere privat clar pentru o anumită zonă, atunci va fi dificil să concurezi cu unul mai general, deși recunoașterea generală este aplicabilă pentru condiții mai largi. De exemplu, în recunoașterea feței, metodele de poziționare a feței, normalizare și extragerea caracteristicilor cheie sunt bine dezvoltate pentru fotografiile realizate în condiții bine controlate. Și conform acestor caracteristici cheie, nu cele mai abstruse recunoaștere funcționează perfect, iar acest lucru este mai mult decât suficient. Dacă o imagine corect preprocesată a unei fețe este alimentată la intrarea unei rețele neuronale (perceptron multistrat), atunci aceasta este considerată și un recunoaștere privat, deoarece pentru o imagine neprocesată, o astfel de rețea va avea rezultate dezastruoase.

Cum fac față exact recunoaștetorii deformărilor imaginii de mai sus.

Evidențierea punctelor cheie și a conținutului acestora. De exemplu, pentru o față, se determină poziția vârfului nasului, buzelor, colțurile ochiului, conținutul fragmentelor de imagine din jurul acestor puncte și se calculează distanțele reciproce dintre aceste puncte. Pentru caracterele scrise de mână, acestea pot fi punctele de îndoire ale traseului, unghiul unor astfel de îndoituri și distanța dintre colțuri. Parțial pentru a găsi aceste puncte, sunt folosite metode de recunoaștere a modelelor, parțial acestea sunt reguli logice programate manual de un expert uman. Apoi aceste date sunt transmise unui dispozitiv de recunoaștere convențional. Deoarece relațiile bidimensionale dintre puncte au fost deja selectate și s-a găsit conținutul vecinătăților punctelor, recunoaștetorul poate face deja față deformărilor bidimensionale prin împărțirea spațiului imaginii. Aici, căutarea și compararea axelor a avut deja loc, topologia imaginii este ajustată la topologia spațiului imaginilor de recunoaștere, iar distanțele dintre punctele cheie vă permit să măsurați distorsiunile acestei topologii. , minimizând diferențele de unghiuri și acordând atenție căreia îi aparține fața. Mai mult, căutarea punctelor cheie a fost:

  • iterativă, mai degrabă decât un instantaneu unic de intrare-ieșire, fără a construi lanțuri logice lungi, căutarea a mers „în lățime” cu enumerarea opțiunilor locale,
  • nu au fost încercate toate opțiunile posibile, ci doar cele mai reale,
  • căutarea se încheie când se atinge criteriul optim, optimitatea nu este garantată.


Puncte și distanțe de identificare: a) utilizate în fotografia criminalistică; b) cele mai frecvent utilizate în construcţia sistemelor automate de identificare.

Dezavantajul acestei abordări este că sunt analizate doar un număr mic de puncte, restul imaginii este aruncat, ceea ce poate afecta calitatea recunoașterii. De exemplu, dacă un punct este găsit incorect, atunci acesta este deja fatal, dar dacă analizați zonele înconjurătoare, atunci eroarea poate fi redusă la minimum. Dar pentru anumite domenii dezvoltate (cum ar fi recunoașterea feței), această abordare este suficientă.

Următorul mod este de a deforma imaginea. O rețea este întinsă peste imaginea recunoscută, la nodurile cărora devin pixelii originali. Apoi rețeaua este distorsionată (nodurile își schimbă poziția) și se calculează imaginea distorsionată. Diferența este calculată între fiecare imagine din setul de antrenament și imaginea distorsionată. Imaginea originală, care pentru un anumit număr de iterații de distorsiune a dat cea mai mică diferență față de imaginea distorsionată, este considerată a fi cea mai asemănătoare cu aceasta (distorsiune minimă la potrivire maximă). Pentru a căuta direcția de distorsiune, poate exista fie un criteriu de minimizare bazat pe imaginea originală și distorsionată (ambele în fluxuri optice), fie o căutare aleatorie, cum ar fi recoacere. Deformațiile sunt elastice și inelastice. Elastic înseamnă că, atunci când sunt distorsionate, nodurile rețelei nu pot sări unul peste altul, de exemplu, urechea nu se va târâ în mijlocul nasului. Cele inelastice permit în consecință orice permutări ale nodurilor. Care este mai bună - nu-mi amintesc comparații exacte, dar deformațiile elastice intuitiv sunt mai plăcute. Distorsiunea poate fi trecută prin metoda de recoacere descrisă în partea anterioară, în urma căreia distorsiunea se „solidifică” într-una dintre cele mai asemănătoare imagini de antrenament.


Deformare elastică - amestecarea pixelilor în imaginea originală și cea nouă





Flux optic (deformare inelastică). Maparea unei imagini necunoscute cu una cunoscută, aceeași persoană. De la stânga la dreapta: imagine necunoscută, imagine din baza de date, imagine necunoscută în care blocurile sunt înlocuite cu blocuri dintr-o imagine cunoscută.


Flux optic (deformare inelastică). Maparea unei imagini necunoscute la o imagine din baza de date. Imagini cu diferite persoane. Calitatea afișajului este mai proastă.


Flux optic (deformare inelastică). Distorsiunea rețelei imaginii la conversia unei imagini în alta. În stânga - imagini cu o persoană, în dreapta - diferite.

Dezavantajul acestei abordări este că deformează stupid imaginea, încercând să minimizeze diferența per-pixel, complet fără a ține cont de sensul imaginii. De exemplu, zâmbetul unei persoane poate fi netezit în expresia altei persoane, deoarece diferența pixel cu pixel este mai mică. Sau cu alte cuvinte, este permisă orice traiectorie de distorsiune a imaginii (chiar și elastică), deși pentru imaginile reale aceste traiectorii sunt strict fixate, și sunt asociate cu o schimbare a perspectivei, a expresiilor faciale etc. În plus, nu este clar ce s-ar întâmpla dacă zona nu ar prezenta distorsiuni, dar, de exemplu, au apărut ochelari care nu erau în imaginea originală. Probabil că deformarea va „înnebuni” încercând să transforme ochelarii în ochi :)

Un alt punct important este că o astfel de deformare caută doar asemănări, fără a încerca să descopere trăsăturile distinctive, diferența care distinge un obiect de altul (cum face rețeaua neuronală în părțile anterioare). În consecință, glumele sunt posibile atunci când un astfel de dispozitiv de recunoaștere va fi prins pentru o coafură șic, identică, ignorând micile modificări în secțiunea ochilor (apropo, sistemele de recunoaștere bune aruncă coafuri și alți factori „zgomot” chiar și la etapa de preprocesare a imaginii).

Există o variație atunci când nu o rețea este trasă peste imagine, ci un cadru mai semnificativ, de exemplu, pentru față, inclusiv puncte precum vârful nasului, vârfurile buzelor, ochi, urechi, sprâncene. Astfel de dispozitive de recunoaștere acționează mai semnificativ, datorită faptului că le-au fost deja strecurate datele necesare. Nici măcar nu trebuie să căutați aceste puncte, este suficient să setați un schelet aproximativ, iar restul se va găsi de la sine în timpul deformării. Un alt lucru este că în setul de antrenament, aceste puncte trebuie să fie clar distanțate (și aceasta este o sarcină separată și dificilă sau este efectuată parțial manual), iar apoi puteți compara modelul de referință cu o necunoscută distorsionată nu numai de conținutul punctele, dar și prin natura distorsiunilor latice. Aceasta se numește grafice dinamice (sau elastice, nu-mi amintesc exact).


Următoarea metodă se numește Hidden Markov Models (HMM). Esența sa este descrisă mai jos vag (dar pe scurt), dar exemplul cu recunoaștere a imaginii clarifică totul. În linii mari, HMM este o matrice de probabilități de tranziție între stările unui sistem fizic sau semnal. Când intră într-o stare, sistemul scoate una dintre „valorile” din setul de „valori” acestei stări. Fiecare „valoare” a acestei stări are propria probabilitate de a fi emisă. Mai mult, unele „sensuri” pot fi caracteristice altor state. De obicei nu știm prin ce stări trece procesul unui semnal sau al unui sistem fizic, dar vedem doar „valorile” care sunt emise în exterior, de aceea modelele se numesc ascunse.



Diagrama modelului Markov, un exemplu de succesiune de observații O și o succesiune de stări S

Pentru recunoaștere, HMM-urile sunt utilizate după cum urmează. Fiecare imagine este considerată ca o secvență a unor astfel de „înțelesuri”. Pentru fiecare clasă, se calculează propriul HMM. Apoi, pentru imaginea necunoscută, sunt lansate toate modelele disponibile și printre ele se caută cel care produce cea mai asemănătoare secvență de „valori”. Aceasta se numește problema recunoașterii și există o formulă exactă pentru a o rezolva. Nu există formule exacte pentru sarcina de reglare a modelelor din imaginile disponibile, dar, ca și în antrenarea rețelelor neuronale, există metode euristice (suboptimale, un fel de coborâre a gradientului).

Pentru recunoașterea imaginilor, HMM-urile 2D au funcționat bine. În ele, „valoarea” este considerată conținutul unui pătrat al unei imagini cu o latură de mai mulți pixeli. Starea este poziția acestui pătrat în imagine. Imaginea este acoperită dens cu o rețea de astfel de stări (mai mult, granițele pătratelor învecinate se pot suprapune parțial, ceea ce oferă cel mai bun rezultat de recunoaștere). Matricea de tranziție este construită în așa fel încât tranzițiile sunt posibile numai între stările adiacente rețelei de imagine bidimensionale. Adică pătratul cu vârful nasului va fi căutat între obraji și gură, dar nu în spatele urechii, iar dacă nasul din imaginea necunoscută este găsit în stânga, atunci se vor căuta și pătratele învecinate pentru a stânga - obraji, nas, bărbie etc.








Există o variație a antrenamentului HMM, când fiecare HMM a fost inițial „antrenat” pe toate imaginile de antrenament și abia apoi au fost rafinate cu „al lor”, rezultatul recunoașterii a fost mai mare. Adică, SMM a învățat cum arată și se schimbă un obiect tipic „în general”, apoi s-a adaptat la aspectul și modificările unui anumit obiect. Și acest lucru s-a întâmplat nu datorită cunoașterii modelului fizic exact și specific, ci datorită procedurii generale de antrenament și a exemplelor specifice din lumea reală.

Se pare că în interiorul HMM este construit un model plauzibil al obiectului (se aplică și rețelelor convoluționale, vezi mai jos). Acesta nu este modelul care se obține, de exemplu, cu reconstrucția tridimensională a unei imagini și nu este modelul când un set de caracteristici cheie și relații dintre ele sunt determinate manual. HMM, pe de altă parte, nu recreează un model fizic precis, ci un model plauzibil. Un model care produce un comportament similar al unui obiect, dar în detrimentul unor procese care nu au nimic de-a face cu fizica reală a obiectului. Când este configurat corect, modelul fizic și cel plauzibil se vor potrivi în ieșire, în condițiile în care am antrenat modelul plauzibil. Dar în afara acestor condiții încep discrepanțe, uneori cu efecte interesante. De exemplu, o persoană poate recunoaște cu ușurință o altă persoană după o caricatură, deși din punct de vedere matematic, imaginea unei caricaturi nu este în niciun fel comparabilă cu o imagine digitalizată a feței unei persoane. Alte exemple de zi cu zi sunt ușor de găsit. O persoană în acțiunile sale este ghidată nu de legile exacte ale fizicii, ci de fizica „naivă”, care funcționează în condiții de zi cu zi, dar este complet inaplicabilă atunci când depășim limitele acestor condiții. Un lucru asemănător poate fi găsit în gândirea logică și imaginativă, deci fantezii și creativitate, după ce s-a uitat la care, o persoană se poate compara cu ele sau poate simți procese fizice reale, care, din punct de vedere științific, nu pot fi descrise de asemenea fantezii în oricum. Și, apropo, pentru astfel de recunoașteri nu este dificil să le inverseze, astfel încât pentru un anumit obiect să emită variații ale modificărilor sale. Desigur, pe lângă imaginile reale, vom primi și o grămadă de „fantezii” de la recunoscut, ciudate după părerea noastră. Aceasta este, de asemenea, baza pentru determinarea zonelor cheie ale imaginii - acele zone care aduc cea mai mare contribuție la recunoaștere. Dar vom reveni la fantezii și modele plauzibile, acum vom continua despre recunoașterea imaginilor.

Astfel, HMM este un instrument de recunoaștere a imaginii aproape perfect:

  • poate face față deformărilor imaginii prin căutarea piesei dorite într-un anumit cartier,
  • deformarea elastică a imaginii, ținând cont de specificul obiectelor recunoscute (nasul nu trece în spatele urechii),
  • poate face față schimbării combinațiilor de piese (cum ar fi schimbarea coafurilor sau aspectul ochelarilor), datorită faptului că fiecarei stare corespund mai multor valori ale pieselor sale,
  • imaginea este acoperită strâns de grila de căutare și este analizată în ansamblu.

Dar SMM are un dezavantaj. SMM-urile nu pot face diferența între clasele recunoscute, nu pot găsi caracteristici distinctive. Rețelele neuronale, de exemplu, spun „da” clasei recunoscute și „nu” tuturor celorlalte, în timp ce SMM spune „da” tuturor claselor, iar dintre acestea „da” este selectat maximul, care este considerat cel recunoscut. clasă. Și, din câte am înțeles, HMM-ul nu măsoară modificarea distanței dintre piese, ceea ce ar putea îmbunătăți rezultatul, ci doar caută cum să aranjeze mai bine piesele pe imagine, ținând cont de proximitatea lor. Deși ar fi interesant să punem rețeaua distorsionată găsită în acest fel (sub formă de distanțe între noduri, unde nodul este poziția piesei) în recunoaștere.



Ieșirea rețelei neuronale în timpul recunoașterii - diferența dintre clasa recunoscută (s11) și toate celelalte este clar vizibilă. Modelele Markov nu fac asta.

Următorul mod de a recunoaște imaginile este cognitronii, neocognitronii și rețelele neuronale convoluționale (CNN). Inițial, cognitronii, așa cum ar fi, au fost inventați pe baza structurii neuronilor din cortexul vizual, apoi au fost îmbunătățiți, iar în rețelele convoluționale, un nucleu rațional a fost izolat din întreaga structură.

Pentru a înțelege cum funcționează aceste rețele, trebuie să înțelegeți cel mai important concept - hărțile caracteristicilor. Imaginați-vă că scanați o imagine cu o fereastră pătrată mică. Pozițiile ferestrelor din imagine se pot suprapune. În pătratul ferestrei, fiecare pixel scanat are propria sa greutate, iar fereastra emite valoarea ponderată însumată a tuturor pixelilor. Un singur sens. Dar, deoarece există multe poziții de fereastră, se obține o rețea bidimensională de astfel de valori. Această fereastră detectează prezența unei combinații de pixeli (funcție) în imagine. Ca urmare, pe grila de ieșire se vor obține valori mari acolo unde este prezentă combinația dorită de pixeli și valori scăzute, unde conținutul nu este în niciun fel similar cu ceea ce căutăm. Această grilă se numește harta caracteristicilor. Mai mult decât atât, căutăm nu o singură caracteristică, ci multe altele diferite, pentru fiecare dintre ele propria fereastră cu propriul set de greutăți și, ca rezultat, obținem mai multe hărți paralele de caracteristici la ieșire. Fiecare hartă caracteristică (ca imagine) este alimentată la intrarea următorului său strat de recunoaștere și primește, de asemenea, mai multe hărți paralele la ieșire. În stratul final, toate cardurile sunt alimentate la intrarea recunoașterii finale, ceea ce poate fi destul de simplu; în original, a fost folosit un perceptron multistrat.



Este clar că o astfel de prelucrare a imaginii poate ține cont de mici deformații și deplasări. Există o opțiune când hărțile caracteristicilor sunt paralelizate în continuare prin adăugarea de hărți în care piesele sunt scanate în unghiuri diferite. Datorită acestui fapt, dispozitivul de recunoaștere poate gestiona virajele. Continuând gândirea în această direcție, puteți face o mulțime de lucruri interesante, cum ar fi ferestre de diferite dimensiuni și invarianța la scara imaginii. Puteți face conexiuni suplimentare care să meargă nu doar către cărțile anterioare din ierarhie, ci și către cele mai îndepărtate (miroase a analiză intelectuală a scenei). O altă opțiune interesantă este atunci când harta caracteristicilor stratului următor va scana nu pe o hartă anterioară, ci pe toate odată (cum era în neocognitronul original). Procesarea devine imediat mai grea (fereastră tridimensională), dar și mai puternică, din păcate, nu știu dacă o astfel de opțiune a fost studiată într-o rețea convoluțională. Sau, în loc de aceasta, cel puțin, către dispozitivul de recunoaștere final, alimentați ieșirile nu numai de pe ultimul card, ci și din ierarhie.



Arhitectura rețelei neuronale convoluționale. Straturi convoluționale și de subeșantionare.

Datorită unor astfel de hărți de caracteristici, rețelele convoluționale obțin o procesare calitativ diferită, mai puternică a imaginii (gândiți-vă de ce, imaginați-vă cursul formării caracteristicilor atunci când urcați în ierarhie). După cum puteți vedea, nici aici nu există lanțuri logice lungi de inferență și enumerare a opțiunilor, căutarea este scurtă și „largă” (simultan paralelă pe toate hărțile de caracteristici).

În matematică, ceea ce face fereastra cu setul original de pixeli se numește convoluție (un fel de transformare a frecvenței spațiale), iar greutățile din fereastră acționează ca un filtru. Prin urmare, rețelele sunt numite convoluționale. Straturile care fac acest lucru sunt numite și straturi convoluționale.

De obicei, pe lângă hărțile de caracteristici, sunt introduse și straturi de mediere care, înainte de a trimite o hartă la stratul următor, își reduc dimensiunea prin mediarea pixelilor învecinați (cum ar fi scalarea unei imagini), în caz contrar se obține o cantitate imensă de calcule, iar în în plus, se realizează o generalizare suplimentară a diferitelor distorsiuni ale originalului.Imagini.

Cum sunt antrenate astfel de rețele. Prima opțiune, puteți construi o hartă topografică a pieselor găsite în imaginea originală, apoi puteți lua valorile de pe această hartă și puteți construi hărți de caracteristici pe baza acestora. Hărțile topografice sunt construite în același mod pentru straturile următoare din ierarhie, dar hărțile caracteristicilor sunt deja furnizate ca intrare. O hartă topografică, asta înseamnă că compunem un fel de dicționar din piesele medii găsite în imagine. Mai mult, piesele, în primul rând, vor fi aranjate într-o rețea n-dimensională, unde vecinii vor fi asemănători, iar în al doilea rând, ceea ce este cel mai interesant pentru noi, piesele din dicționar sunt potrivite pentru construirea hărților de caracteristici, deoarece sunt fragmente de imagine caracteristice și care apar frecvent, deoarece piese abstracte sau rare nu vor fi incluse în această hartă, dar piese similare vor fi grupate într-o singură medie. În această versiune, instruirea se desfășoară fără un profesor, deoarece nu este necesară o eroare între ieșirea dorită și cea reală a rețelei pentru a construi o hartă topografică, caracteristicile sunt grupate automat în funcție de similitudinea lor. Doar recunoașterea finală este instruită cu un profesor, care primește rezultate de la hărțile de caracteristici ale ultimului strat.


Aplicarea hărților Kohonen (bidimensionale) pentru a reduce dimensionalitatea zonelor imaginilor faciale. În stânga este o hartă topografică a zonelor de imagine înainte de antrenament, în dreapta - după antrenament.

A doua opțiune este ca ponderile pentru hărțile caracteristicilor să fie ajustate ca ponderi ale neuronilor în cazul propagării înapoi a erorii. Adică, o setare vine de la ieșirea rețelei, care spune ce caracteristici trebuie scoase din imagine pentru a obține rezultatul. Lucrarea originală despre rețelele convoluționale afirmă că o astfel de configurație este simplă, dar nu aș crede autorii prin cuvânt, pentru că există o mulțime de opțiuni și nu toate vor da ceva bun. În versiunea originală, rețeaua convoluțională învață și funcționează foarte repede și oferă o precizie apropiată de CMM (dar tot mai puțin). SMM, pe de altă parte, cu precizia sa uimitoare, se antrenează foarte mult timp.

Care opțiune este mai bună - nu știu. În teorie, având în vedere că recunoașterea finală este instruită cu un profesor, rezultatele ar trebui să fie similare.

Din descrierea arhitecturii rețelelor convoluționale, să vedem ce pot face acestea:

  • face față deformărilor imaginii, datorită faptului că caracteristica este scanată pe întreaga imagine,
  • știi să combini piese (ochelari / coafură / ...), datorită unui set de hărți de caracteristici paralele,
  • deformari elastice (nasul nu trece in spatele urechii), datorate cautarii si medierii in vecinatate.

Ceea ce nu pot face. În primul rând, seturile de caracteristici sunt compilate pentru întreaga imagine. De fapt, ar fi util ca, la fel ca în HMM, fiecare cartier (mai precis, pentru traiectoria de căutare) să aibă propriile seturi de caracteristici. Adică, astfel încât în ​​zona ochilor să existe filtre exclusiv cu diferite fragmente ale ochilor, dar nu și gura, chiar dacă nu se va găsi niciodată acolo. Acest lucru ar face posibilă realizarea unui vocabular mai precis pentru fiecare zonă și nu o medie pe întreaga imagine. Dar, în același timp, ar face recunoașterea mai inhibitoare. În al doilea rând (și strâns legat de primul), astfel încât traiectoriile permise ale fiecărui fragment să fie clar distinse și, în procesul de recunoaștere, să fie măsurate modificările distanțelor dintre fragmentele învecinate (mai precis, deoarece toți vecinii din zăbrelele sunt conectate, astfel încât distorsiunile admisibile ale întregii zăbrele sunt construite și apoi verificate). Desigur, rețelele convoluționale fac deja acest lucru într-o anumită formă, dar intuitiv pare că se poate face mai optim. O opțiune mai simplă și mai rapidă este de a realiza hărți de caracteristici locale (ținând cont de zona subiectului). De exemplu, zona ochilor, gurii, nasului, urechilor.

Asta e tot cu principalele metode de recunoaștere a imaginii (de exemplu, recunoașterea feței). Pentru alte tipuri de imagini, principiile de recunoaștere sunt aceleași, adaptate la zona lor, la seturile lor de caracteristici.

Linia de jos este după cum urmează. La recunoașterea imaginilor, imaginea este mai întâi preprocesată, apoi caracteristicile sunt extrase manual și/sau automat, aceste caracteristici sunt transmise oricărui dispozitiv de recunoaștere, dintre care cea mai dificilă este suprafețele de divizare neliniare din spațiul caracteristicilor. Etapa extragerii caracteristicilor poate avea loc folosind modele fizice pentru a reconstrui esența unui obiect, dar aceasta este deja matematică exactă. Regulile de recunoaștere se pot baza pe logica unui expert uman în acest domeniu. Un alt tip de recunoaștere (deformații de imagine, modele Markov, rețele convoluționale) încearcă să folosească metode euristice pentru a recrea un model plauzibil al domeniului și a-l suprapune unei imagini necunoscute.

Și fără miracole. Sau formule exacte plus cunoștințele unui expert uman, sau modele plauzibile grele și universale. Menționarea modului în care se presupune că are loc recunoașterea imaginilor la oameni este încă cuvinte mai frumoase decât aplicarea practică.

  • Tutorial

Îmi doream de mult să scriu un articol general care să conțină elementele de bază ale recunoașterii imaginilor, un ghid al metodelor de bază, să spun când să le aplic, ce sarcini rezolvă, ce se poate face seara în genunchi și ce este mai bine să nu nu la care să te gândești fără o echipă de oameni în 20.

De mult scriu câteva articole despre recunoașterea optică, așa că de câteva ori pe lună îmi scriu diverse persoane cu întrebări pe această temă. Uneori ai senzația că trăiești cu ei în lumi diferite. Pe de o parte, înțelegi că o persoană este cel mai probabil un profesionist într-un subiect conexe, dar știe foarte puține despre metodele de recunoaștere optică. Și cel mai ofensator este că încearcă să aplice o metodă dintr-o zonă apropiată de cunoaștere, ceea ce este logic, dar nu funcționează complet în Recunoașterea imaginilor, dar nu înțelege acest lucru și este foarte ofensat dacă începe să spună ceva. chiar de la bază. Și având în vedere că a spune de la bază este mult timp, ceea ce adesea nu este, devine și mai trist.

Acest articol a fost conceput astfel încât o persoană care nu s-a ocupat niciodată de metode de recunoaștere a imaginii să poată, în 10-15 minute, să-și creeze în cap o anumită imagine de bază a lumii corespunzătoare subiectului și să înțeleagă în ce direcție ar trebui să sape. Multe dintre tehnicile descrise aici sunt aplicabile procesării radar și audio.
Voi începe cu câteva principii pe care începem întotdeauna să le spunem unui potențial client sau unei persoane care dorește să înceapă să facă Recunoaștere optică:

  • Când rezolvați o problemă, mergeți întotdeauna de la cel mai simplu. Este mult mai ușor să atârzi o etichetă portocalie pe o persoană decât să urmărești o persoană, evidențiind-o cu cascade. Este mult mai ușor să luați o cameră cu o rezoluție mai mare decât să dezvoltați un algoritm de super-rezoluție.
  • O formulare strictă a problemei în metodele de recunoaștere optică este ordine de mărime mai importantă decât în ​​problemele de programare a sistemului: un cuvânt în plus din specificația tehnică poate adăuga 50% din muncă.
  • Nu există soluții universale pentru problemele de recunoaștere. Nu puteți crea un algoritm care pur și simplu „recunoaște orice inscripție”. Un semn pe stradă și o foaie de text sunt obiecte fundamental diferite. Probabil, puteți face un algoritm general (iată un exemplu bun de la Google), dar va necesita multă muncă a unei echipe mari și va consta din zeci de subrutine diferite.
  • OpenCV este o biblie care are multe metode și cu care poți rezolva 50% din volumul aproape oricărei probleme, dar OpenCV este doar o mică parte din ceea ce poți face de fapt. Într-un studiu au fost scrise concluziile: „Problema nu este rezolvată prin metode OpenCV, prin urmare, este de nerezolvat”. Încercați să evitați acest lucru, să nu fiți leneși și să evaluați sobru sarcina curentă de fiecare dată de la zero, fără a utiliza șabloane OpenCV.
Este foarte dificil să dai un fel de sfaturi universale sau să-ți spun cum să creezi un fel de structură în jurul căreia să poți construi o soluție la probleme arbitrare de viziune computerizată. Scopul acestui articol este de a structura ceea ce puteți folosi. Voi încerca să împart metodele existente în trei grupuri. Primul grup este filtrarea preliminară și pregătirea imaginii. Al doilea grup este procesarea logică a rezultatelor de filtrare. Al treilea grup sunt algoritmii de luare a deciziilor bazați pe procesare logică. Granițele dintre grupuri sunt foarte condiționate. Pentru a rezolva o problemă, este departe de a fi întotdeauna necesar să se aplice metode din toate grupurile; uneori două, și alteori chiar una, sunt suficiente.

Lista metodelor furnizate aici este incompletă. Vă sugerez să adăugați metode critice în comentarii pe care nu le-am scris și să atribuiți fiecăruia câte 2-3 cuvinte însoțitoare.

Partea 1. Filtrarea

În acest grup, am plasat metode care vă permit să evidențiați zonele de interes din imagini fără a le analiza. Majoritatea acestor metode aplică un fel de transformare uniformă tuturor pixelilor din imagine. La nivel de filtrare, imaginea nu este analizată, dar punctele care sunt filtrate pot fi considerate ca zone cu caracteristici deosebite.
Binarizarea pragului, selectarea zonei histogramei
Cea mai simplă transformare este binarizarea de prag a imaginii. Pentru o imagine RGB și o imagine în tonuri de gri, pragul este valoarea culorii. Există sarcini ideale în care o astfel de transformare este suficientă. Să presupunem că doriți să selectați automat obiectele de pe o foaie albă de hârtie:




Alegerea pragului la care are loc binarizarea determină în mare măsură procesul de binarizare în sine. În acest caz, imaginea a fost binarizată de culoarea medie. De obicei, binarizarea se face folosind un algoritm care selectează adaptiv pragul. Acest algoritm poate fi alegerea așteptării sau a modului. Și puteți alege cel mai mare vârf al histogramei.

Binarizarea poate da rezultate foarte interesante atunci când lucrăm cu histograme, inclusiv atunci când luăm în considerare o imagine nu în RGB, ci în HSV. De exemplu, segmentați culorile de interes. Acest principiu poate fi folosit pentru a construi atât un detector de etichete, cât și un detector de piele umană.
Filtrare clasică: Fourier, LPF, HPF
Metodele clasice de filtrare de la radar și procesarea semnalului pot fi aplicate cu succes într-o varietate de sarcini de recunoaștere a modelelor. Metoda tradițională în radar, care nu este aproape niciodată folosită în imaginile pure, este transformata Fourier (mai precis, FFT). Una dintre puținele excepții la care se folosește transformata Fourier unidimensională este compresia imaginii. Pentru analiza imaginilor, o transformare unidimensională nu este de obicei suficientă; trebuie să utilizați o transformare bidimensională mult mai intensivă în resurse.

Puțini oameni o calculează de fapt, de obicei, este mult mai rapid și mai ușor de utilizat convoluția regiunii de interes cu un filtru gata făcut ascuțit pentru frecvențe înalte (HPF) sau joase (LPF). Această metodă, desigur, nu permite analiza spectrului, dar o sarcină specifică de procesare video necesită de obicei nu o analiză, ci un rezultat.


Cele mai simple exemple de filtre care pun accent pe frecvențele joase (filtru Gaussian) și frecvențele înalte (filtru Gabor).
Pentru fiecare punct din imagine, se selectează o fereastră și se înmulțește cu un filtru de aceeași dimensiune. Rezultatul acestei convoluții este noua valoare a punctului. La implementarea unui filtru trece-jos și a unui filtru trece-înalt, se obțin imagini de următorul tip:



Wavelets
Dar ce se întâmplă dacă folosim o funcție caracteristică arbitrară pentru convoluția cu un semnal? Apoi se va numi „Transformarea Wavelet”. Această definiție a waveleturilor nu este corectă, dar în mod tradițional s-a dezvoltat că în multe comenzi analiza wavelet este căutarea unui model arbitrar într-o imagine folosind convoluția cu un model al acestui model. Există un set de funcții clasice utilizate în analiza wavelet. Acestea includ wavelet Haar, Morlet wavelet, mexican hat wavelet etc. Primitivele Haar, despre care au existat mai multe dintre articolele mele anterioare (,), se referă la astfel de funcții pentru spațiul bidimensional.


Mai sus sunt 4 exemple de wavelets clasice. wavelet 3D Haar, wavelet 2D Meyer, wavelet Mexican Hat, wavelet Daubechies. Un bun exemplu de utilizare a interpretării extinse a wavelets este problema găsirii erupției în ochi, pentru care erupția în sine este wavelet:

Waletele clasice sunt de obicei folosite pentru a comprima imaginile sau pentru a le clasifica (descrise mai jos).
Corelație
După o astfel de interpretare liberă a waveleturilor din partea mea, merită menționată corelația reală care stă la baza acestora. Este un instrument indispensabil pentru filtrarea imaginilor. Aplicația clasică este corelarea fluxului video pentru a găsi schimbări sau fluxuri optice. Cel mai simplu detector de schimbare este, într-un fel, un corelator de diferență. Acolo unde imaginile nu se corelează, era mișcare.

Funcții de filtrare
O clasă interesantă de filtre este filtrarea funcțiilor. Acestea sunt filtre pur matematice care vă permit să detectați o funcție matematică simplă în imagine (linie, parabolă, cerc). Se construiește o imagine acumulatoare în care pentru fiecare punct al imaginii originale sunt desenate un set de funcții care o generează. Cea mai clasică transformare este transformarea Hough pentru linii. În această transformare, pentru fiecare punct (x; y), se trasează mulțimea punctelor (a; b) ale dreptei y = ax + b, pentru care egalitatea este adevărată. Obținem poze frumoase:


(primul plus este pentru cel care este primul care găsește captura din imagine și o astfel de definiție și explică-o, al doilea plus pentru cel care este primul care spune ceea ce este afișat aici)
Transformarea Hough vă permite să găsiți orice funcții parametrizabile. De exemplu, un cerc. Există o transformare modificată care vă permite să căutați orice formă. Această transformare este teribil de pasionată de matematicieni. Dar atunci când procesăm imagini, nu funcționează întotdeauna. Viteză foarte mică, sensibilitate foarte mare la calitatea binarizării. Chiar și în situații ideale, am preferat să mă descurc cu alte metode.
Analogul transformării Hough pentru linii drepte este transformarea Radon. Se calculează prin FFT, care oferă un beneficiu de performanță într-o situație în care sunt multe puncte. În plus, poate fi aplicat unei imagini nebinarizate.
Filtrarea contururilor
O clasă separată de filtre este filtrarea marginilor și a conturului. Contururile sunt foarte utile atunci când dorim să trecem de la lucrul cu o imagine la lucrul cu obiectele din imaginea respectivă. Când un obiect este suficient de complex, dar bine definit, atunci de multe ori singura modalitate de a lucra cu el este să îi selectezi contururile. Există o serie de algoritmi care rezolvă problema de filtrare a contururilor:

Cel mai adesea, Kenny este folosit, care funcționează bine și a cărui implementare este în OpenCV (Sobel este și el acolo, dar arată mai rău pentru contururi).



Alte filtre
Mai sus sunt filtrele, ale căror modificări ajută la rezolvarea a 80-90% din probleme. Dar, pe lângă ele, există filtre mai rare folosite în sarcinile locale. Există zeci de astfel de filtre, nu le voi enumera pe toate. Interesante sunt filtrele iterative (de exemplu, un model de aspect activ), precum și transformările ridgelet și curvlet, care sunt un aliaj de filtrare și analiză clasică wavelet în domeniul transformării radonului. Transformarea fasciculului funcționează frumos la marginea transformării wavelet și a analizei logice, permițându-vă să evidențiați contururile:

Dar aceste transformări sunt foarte specifice și sunt adaptate pentru sarcini rare.

Partea 2. Procesarea logică a rezultatelor de filtrare

Filtrarea oferă un set de date potrivite pentru prelucrare. Dar de multe ori nu puteți pur și simplu să luați și să utilizați aceste date fără a le procesa. În această secțiune, vor exista câteva metode clasice care vă permit să treceți de la imagine la proprietățile obiectelor sau la obiectele în sine.
Morfologie
Trecerea de la filtrare la logică, după părerea mea, este metodele morfologiei matematice (,,). De fapt, acestea sunt cele mai simple operații de construire și erodare a imaginilor binare. Aceste metode vă permit să eliminați zgomotul dintr-o imagine binară prin creșterea sau scăderea elementelor existente. Pe baza morfologiei matematice, există algoritmi de conturare, dar de obicei folosesc un fel de algoritmi hibridi sau algoritmi în conjuncție.
Analiza conturului
Algoritmii pentru obținerea limitelor au fost deja menționați în secțiunea privind filtrarea. Limitele rezultate sunt pur și simplu convertite în contururi. Pentru algoritmul lui Canny, acest lucru se întâmplă automat; pentru alți algoritmi, este necesară o binarizare suplimentară. Puteți obține un contur pentru un algoritm binar, de exemplu, prin algoritmul gândacului.
Conturul este o caracteristică unică a unui obiect. Acest lucru face adesea posibilă identificarea obiectului de-a lungul conturului. Există un aparat matematic puternic care vă permite să faceți acest lucru. Aparatul se numește analiză de contur (,).

Sincer să fiu, nu am reușit niciodată să aplic analiza conturului în probleme reale. Sunt necesare condiții prea ideale. Fie nu există graniță, fie este prea mult zgomot. Dar, dacă trebuie să recunoașteți ceva în condiții ideale, atunci analiza conturului este o opțiune excelentă. Funcționează foarte repede, matematică frumoasă și logică clară.
Puncte speciale
Punctele singulare sunt caracteristici unice ale unui obiect care vă permit să asociați un obiect cu el însuși sau cu clase de obiecte similare. Există câteva zeci de moduri de a evidenția astfel de puncte. Unele metode evidențiază puncte speciale în cadrele adiacente, unele după o perioadă lungă de timp și la schimbarea luminii, unele vă permit să găsiți puncte speciale care rămân așa chiar și atunci când obiectul este rotit. Să începem cu metode care ne permit să găsim puncte singulare care nu sunt atât de stabile, dar care sunt calculate rapid, apoi mergem într-o complexitate crescândă:
Clasa întâi. Puncte singulare care sunt stabile pentru câteva secunde. Astfel de puncte sunt folosite pentru a ghida obiectul între cadrele video adiacente sau pentru a îmbina imaginile de la camerele învecinate. Aceste puncte includ maxime locale ale imaginii, unghiuri de imagine (cel mai bun dintre detectoare, poate, detectorul Haris), puncte la care sunt atinse maximele de dispersie, anumiți gradienți etc.
Clasa a doua. Puncte speciale care sunt stabile cu modificări ale luminii și mișcări mici ale subiectului. Astfel de puncte sunt utilizate în principal pentru antrenament și clasificarea ulterioară a tipurilor de obiecte. De exemplu, un clasificator pentru pietoni sau un clasificator facial este un produs al unui sistem construit în jurul unor astfel de puncte. Unele dintre waveletele menționate anterior pot fi baza pentru astfel de puncte. De exemplu, primitivele Haar, căutarea strălucirii, căutarea altor funcții specifice. Aceste puncte includ puncte găsite prin metoda histogramei de gradient direcțional (HOG).
Clasa a treia. Puncte stabile.Știu doar două metode care dau stabilitate completă și despre modificările lor. Acestea sunt SURF și SIFT. Ele vă permit să găsiți puncte speciale chiar și atunci când rotiți imaginea. Calcularea unor astfel de puncte durează mai mult decât alte metode, dar mai degrabă timp limitat. Din păcate, aceste metode sunt brevetate. Deși, în Rusia, algoritmii nu sunt brevetați, deci folosiți-l pentru piața internă.

Partea 3. Antrenament

A treia parte a poveștii va fi dedicată metodelor care nu funcționează direct cu imaginea, dar care permit luarea deciziilor. Acestea sunt în principal diferite metode de învățare automată și de luare a deciziilor. Recent, Yandyks a postat un curs pe acest subiect pe Habr, există o selecție foarte bună. Iată-l în versiunea text. Pentru un studiu serios al subiectului, vă recomand cu tărie să le priviți. Aici voi încerca să subliniez câteva metode de bază utilizate în recunoașterea modelelor.
În 80% din situații, esența învățării în problema recunoașterii este următoarea:
Există un set de testare care conține mai multe clase de obiecte. Să fie prezența/absența unei persoane din fotografie. Pentru fiecare imagine există un set de caracteristici care au fost identificate printr-o anumită caracteristică, fie că este Haar, HOG, SURF sau un fel de wavelet. Algoritmul de învățare trebuie să construiască un astfel de model, conform căruia va putea să analizeze o nouă imagine și să decidă care dintre obiecte se află în imagine.
Cum se face? Fiecare dintre imaginile de testare este un punct în spațiul caracteristic. Coordonatele sale sunt greutatea fiecăreia dintre caracteristicile din imagine. Să fie semnele noastre: „Prezența ochilor”, „Prezența unui nas”, „Prezența a două mâini”, „Prezența urechilor”, etc... uman. Pentru o persoană într-un astfel de spațiu, punctul va fi corect. Pentru maimuță, ideea este pentru cal. Clasificatorul este antrenat pe un eșantion de exemple. Dar nu toate fotografiile au arătat mâini, altele nu au ochi, iar în a treia, maimuța are nas uman din cauza unei erori în clasificator. Clasificatorul uman antrenat împarte automat spațiul caracteristicilor astfel încât să spună: dacă prima caracteristică se află în intervalul 0,5 În esență, scopul clasificatorului este de a desena în spațiul caracteristic zonele care sunt caracteristice obiectelor de clasificare. Așa va arăta aproximarea succesivă a răspunsului pentru unul dintre clasificatori (AdaBoost) în spațiul bidimensional:


Există mulți clasificatori. Fiecare dintre ei lucrează mai bine într-o sarcină proprie. Sarcina de a selecta un clasificator pentru o anumită sarcină este în multe privințe o artă. Iată câteva poze frumoase pe această temă.
Caz simplu, separare unidimensională
Să analizăm prin exemplu cel mai simplu caz de clasificare, când spațiul caracteristic este unidimensional și trebuie să împărțim 2 clase. Situația apare mai des decât s-ar putea imagina: de exemplu, atunci când trebuie să distingeți între două semnale sau să comparați un model cu un eșantion. Să presupunem că avem un eșantion de antrenament. În acest caz, se obține o imagine, unde pe axa X va exista o măsură de similitudine, iar pe axa Y - numărul de evenimente cu o astfel de măsură. Când obiectul căutat arată ca el însuși, se obține Gaussianul din stânga. Când nu-mi place - corect. O valoare de X = 0,4 împarte eșantioanele astfel încât o decizie eronată să minimizeze probabilitatea luării unei decizii greșite. Cautarea unui astfel de separator este problema de clasificare.


O mica observatie. Criteriul care minimizează eroarea nu va fi întotdeauna optim. Următorul grafic este un grafic al unui sistem real de recunoaștere a irisului. Pentru un astfel de sistem, criteriul este ales astfel încât să minimizeze probabilitatea unei admiteri false a unei persoane neautorizate la obiect. Această probabilitate se numește „eroare de primul fel”, „probabilitate de alarmă falsă”, „fals pozitiv”. În literatura de limba engleză „Rata de acces fals”.
) AdaBusta este unul dintre cele mai comune clasificatoare. De exemplu, cascada Haar este construită pe ea. De obicei sunt folosite atunci când este nevoie de o clasificare binară, dar nimic nu vă împiedică să predați pentru un număr mai mare de clase.
SVM (,,,) Unul dintre cei mai puternici clasificatori cu multe implementări. Practic, pe sarcinile de învățare pe care le-am întâlnit, a funcționat într-un mod similar cu adabusta. Este considerat suficient de rapid, dar antrenamentul său este mai dificil decât cel al lui Adabusta și este necesară selectarea miezului corect.

Există, de asemenea, rețele neuronale și regresie. Dar pentru a le clasifica pe scurt și a arăta cum diferă, este nevoie de un articol mult mai mult decât acesta.
________________________________________________
Sper că am reușit să fac o privire de ansamblu rapidă a metodelor folosite fără să mă scufund în matematică și descriere. Poate va ajuta pe cineva. Deși, desigur, articolul este incomplet și nu există o vorbă despre lucrul cu imagini stereo, sau despre OLS cu filtru Kalman sau despre abordarea adaptivă bayesiană.
Dacă vă place articolul, atunci voi încerca să fac a doua parte cu o selecție de exemple despre cum sunt rezolvate sarcinile existente de ImageRecognition.

Și, în sfârșit

Ce să citești?
1) Odată mi-a plăcut foarte mult cartea „Digital Image Processing” de B. Yane, care este scrisă simplu și clar, dar, în același timp, este prezentată aproape toată matematica. Bun pentru familiarizarea cu metodele existente.
2) Clasicii genului sunt R. Gonzalez, R. Woods „Digital Image Processing”. Din anumite motive, mi-a fost mai dificil decât primul. Mult mai puțină matematică, dar mai multe metode și imagini.
3) „Prelucrarea și analiza imaginilor în sarcinile de viziune artificială” – scrisă pe baza unui curs predat la una dintre catedrele PhysTech. Există o mulțime de metode și descrierile lor detaliate. Dar, după părerea mea, cartea are două mari dezavantaje: cartea este puternic axată pe pachetul de software care vine cu ea, în carte de prea multe ori o descriere a unei metode simple se transformă în junglă matematică, din care este dificil să se facă un diagrama structurală a metodei. Dar autorii au creat un site convenabil unde este prezentat aproape tot conținutul - wiki.technicalvision.ru Adaugă etichete

Detectarea și recunoașterea obiectelor este o parte integrantă a activității umane. Încă nu este complet clar cum o persoană reușește atât de precis și atât de rapid să izoleze și să recunoască obiectele necesare într-o varietate de medii. Fiziologii și psihologii încearcă să afle de mai bine de o sută de ani. Totuși, aici scopul nostru nu este să înțelegem mecanismul de percepție al oamenilor (și animalelor), ci să descriem metodele de recunoaștere automată a obiectelor din imaginile lor: o nouă tehnologie a informației, puternică, practică și, într-un sens, metodologie universală pentru procesarea și evaluarea informațiilor și dezvăluirea tiparelor ascunse.

Recunoașterea obiectelor tridimensionale din imaginile lor bidimensionale a devenit recent una dintre cele mai importante sarcini în analiza scenei și viziunea artificială. Informațiile inițiale pentru recunoaștere conțin imagini din diverse părți ale întregului spectru de radiații (optice, infraroșii, ultrasonice etc.), obținute prin diverse metode (televiziune, fotografică, laser, radar, radiații etc.), convertite în formă digitală și prezentate sub forma unei matrice numerice. Prin obiect înțelegem nu numai (și nu atât) o reprezentare digitală a unui fragment local al unei scene bidimensionale, ci o descriere aproximativă a acestuia, sub forma unui set de proprietăți (trăsături) caracteristice. Scopul principal al descrierilor (imaginilor obiectelor) este utilizarea lor în procesul de stabilire a corespondenței obiectelor, realizat prin comparație (colationare). Sarcina recunoașterii este de a determina apartenența „ascunsă” a unui obiect la o anumită clasă prin analiza vectorului de valori ale caracteristicilor observate. Algoritmul de recunoaștere trebuie să extragă informații despre relația dintre valorile atributelor unui obiect și apartenența acestuia la o anumită clasă din setul de antrenament al obiectelor pentru care fie sunt cunoscute valorile atât ale atributelor, cât și ale claselor, fie numai valorile atributelor lor. În primul caz, sarcina se numește sarcina de a preda recunoașterea modelelor cu un profesor, iar în al doilea - fără profesor. Se presupune aici că fiecare obiect „aparține” unei imagini dintr-un set fix. La atribuirea (clasificarea) obiectelor este necesar să se aplice o regulă stabilită anterior pentru a decide cărei imagine (clasă) îi aparține obiectul. În problema recunoașterii cu antrenament, regula de clasificare ar trebui elaborată pe baza studiului unui set de obiecte cu apartenență cunoscută la diferite clase. Aceste obiecte sunt numite colectiv set de antrenament sau eșantion. În problema formării automate a imaginilor, obiectele sunt prezentate „observatorului” fără a indica apartenența lor la clase (recunoaștere fără profesor). Observatorul (algoritmul de recunoaștere) trebuie să construiască independent o definiție adecvată a claselor (analiza cluster). Desigur, o astfel de abordare a analizei imaginii este adecvată doar unuia dintre cele două aspecte ale problemei duale de detectare și recunoaștere a obiectelor dintr-o scenă, și anume recunoașterea efectivă a unei clase a unui fragment de imagine (selectat) destul de definit, considerat ca manifestare exterioară a unei imagini ascunse. În acest caz, este forțat să presupunem că problema segmentării a fost deja rezolvată, adică determinarea limitelor fragmentelor, fiecare dintre acestea putând fi considerată ca un singur întreg (obiect).

Cercetările privind recunoașterea imaginilor obiectelor spațiale se disting printr-o mare varietate în formularea problemelor și alegerea mijloacelor de rezolvare a acestora (metode de prelucrare a fragmentelor corespunzătoare de imagini), care este o consecință a varietății de domenii de aplicare practică. Sarcinile tradiționale, care au fost rezolvate chiar și în primele dezvoltări experimentale ale sistemelor de viziune automată, sunt sarcinile de detectare și recunoaștere a obiectelor cu o formă dată pe baza imaginilor zgomotoase și (eventual) deformate. Deci, una dintre primele probleme practice care a stimulat formarea și dezvoltarea teoriei recunoașterii obiectelor a fost problema identificării și recunoașterii fețelor umane.

Orez. 9.1. Ilustrarea problemei recunoașterii feței umane și abordări ale selecției fragmentelor informative (sursa)

Complexitatea acestei sarcini se datorează varietatii de unghiuri posibile (scale, poziții, unghiuri de rotație) ale fețelor recunoscute (vezi Fig. 9.1). Aici trebuie mai întâi să construiți o reprezentare internă a obiectelor, inclusiv proiecții de imagini. Această sarcină este încă utilizată pe scară largă în sistemele de securitate, verificarea cardurilor de credit, criminalistică, teleconferințe etc. Pentru rezolvarea acesteia se propun metode de recunoaștere bazate pe teoria rețelelor de neurocalculatoare, algoritmi de corelație-extremă, metode de calcul al momentelor statistice și algebrice, analiză de contur, modelare 3D etc. Printre acestea, o atenție deosebită este acordată direcției asociate cu selecția automată a trăsăturilor caracteristice (informative) ale obiectelor scenei, în acest caz, elementele ochilor, nasului, gurii, bărbiei - Fig. 9.1.

Puțin mai târziu, în sarcinile de monitorizare (control) a mediului natural din imagini aerospațiale, au fost conturate câteva abordări mai importante ale construcției caracteristicilor informative. În special, când au fost obținute primele date de teledetecție multispectrale și multispectrale, majoritatea dezvoltatorilor de metode de interpretare a mașinilor s-au orientat către studierea proprietăților spectrale ale obiectelor naturale, deoarece luminozitatea elementelor de imagine corespunzătoare în diferite intervale spectrale a făcut posibilă identificarea acestora la costuri de calcul relativ mici.

Orez. 9.2. Analiza cluster a luminozității spectrale a obiectelor naturale, planul mapat și bidimensional al unei perechi de canale spectrale informative

Cea mai comună metodă de procesare a fost „clasificarea nesupravegheată” bazată pe analiza cluster, cu ajutorul căreia spațiul caracteristicilor spectrale a fost împărțit în grupuri distincte (clustere, vezi Fig. 9.2), iar clasificarea elementelor imaginii a făcut posibilă simultan segmentează scena în regiuni omogene din punct de vedere spectral.

În plus, s-a constatat că în recunoașterea formațiunilor naturale, pe lângă trăsăturile spectrozonale, s-au dovedit a fi extrem de importante trăsăturile care caracterizează organizarea spațială locală a semitonurilor (textura) obiectelor de analiză. Un operator de decodor experimentat se bazează pe astfel de informații (forma, orientarea, distribuția elementelor caracteristice, contextul și alte caracteristici spațiale) uneori mai mult decât pe caracteristicile multispectrale. În orice caz, atracția caracteristicilor texturale poate crește semnificativ fiabilitatea recunoașterii și poate crește numărul de clase distincte de obiecte naturale.

În studiile experimentale axate pe rezolvarea unor probleme specifice, datele inițiale sunt un set de fragmente de imagine (obiecte de scenă), descifrate de specialiști în materie și servind drept material de instruire și control. Aici, scopul principal al dezvoltării unui algoritm de recunoaștere este de a răspunde la întrebarea dacă este posibilă analiza și clasificarea automată a imaginilor corespunzătoare ale obiectelor și, dacă da, ce set de caracteristici de decriptare este cel mai eficient și ce structură ar trebui să guverneze decizia și metoda de decriptare au.

Top articole similare