Cum se configurează smartphone-uri și PC-uri. Portal informativ
  • Acasă
  • In contact cu
  • Câteva cuvinte despre recunoașterea modelelor. Cum va recunoaște și va clasifica Google imaginile în viitorul apropiat

Câteva cuvinte despre recunoașterea modelelor. Cum va recunoaște și va clasifica Google imaginile în viitorul apropiat

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 detectare este formulată într-un mod similar, dar există sunt criterii de evaluare mai stricte.

Î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. le 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.

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: noua 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 sarcinii duale de detectare și recunoaștere a obiectelor dintr-o scenă, și anume, recunoașterea efectivă a unei clase de 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 (texturii) 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ă analiza automată și clasificarea imaginilor corespunzătoare ale obiectelor este posibilă ș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.



(, 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, când direcția de iluminare este schimbată în opus, va deveni, dimpotrivă, o tranziție de la negru la alb și nu puteți remediați acest lucru 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, iar 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ătată” și este mai potrivită pentru recunoaștere) și corelarea unei proiecții cu o imagine tridimensională. -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 schimbarea 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, apariția ochelarilor, coafura / barba pe fata schimbata, desi proprietarul insusi este acelasi).

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 preprocesată corect 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 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 problema de reglare a modelelor din imaginile disponibile, dar, ca și în antrenamentul 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 - obrajii, nasul, bărbia 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ă, de aici provine fanteziile și creativitatea, privind la care, o persoană le poate compara sau simți procese fizice reale care, din punct de vedere științific, nu pot fi descrise de asemenea fantezii. Ș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 spunea, 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. În lucrarea originală despre rețelele convoluționale, se argumentează că o astfel de configurație este simplă, dar nu aș crede autorii prin cuvânt, deoarece 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 în ansamblu. 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 admisibile 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 divizoare 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 este conceput astfel încât o persoană care nu s-a ocupat niciodată de metode de recunoaștere a imaginilor 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ă wavelet clasice î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 de imagine locale, 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, aproape toată matematica este prezentată. 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 PRELUCRAREA SEMNALULUI DIGITAL

Subiectul 18. RECUNOAȘTEREA OBIECTELOR IMAGINEI

Orice cunoaștere umană începe cu intuiție, trece la concepte și se termină cu idei.

Immanuel Kant. filosof german. secolul al XVIII-lea

Când un computer, în loc de o persoană, recunoaște un cal într-o imagine, nu este atât de departe de adevăr, deși se află doar în stadiul inițial al procesului de formare a cunoștințelor despre o persoană.

Georgy Korgul, geofizician Ural. secolul XX

Introducere.

1. Preprocesarea imaginilor. Corectează luminozitatea și contrastul imaginilor. Histograme de luminanță. Nivelarea iluminării imaginilor. Rezoluție spațială îmbunătățită.

2. Determinarea limitelor obiectelor din imagine. Găsiți margini pe baza unui gradient. Găsirea limitelor pe baza laplacianului.

3. Selectarea obiectelor din imagine. Algoritmul baghetei magice. Algoritmul foarfecelor inteligente. Segmentarea folosind tăieturi grafice.

4. Alocarea caracteristicilor obiectelor. Determinarea ariei și a perimetrului. Determinarea razelor cercurilor înscrise și circumscrise. Determinarea laturilor dreptunghiului circumscris. Determinarea numărului și a poziției relative a colțurilor. Determinarea momentelor de inerție ale obiectului.

5. Detectarea și recunoașterea obiectelor imagine. Detectarea obiectelor. O metodă pentru compararea directă a unui obiect cu o imagine de referință. Metoda corelației. Metode de recunoaștere bazate pe un sistem de caracteristici.

INTRODUCERE

O analiză detaliată a aspectelor teoretice ale acestui subiect nu este sarcina acestei secțiuni. Oricine poate obține informații mai complete despre aceste probleme din alte surse. Mai jos sunt prezentate recomandări practice pentru implementarea metodelor individuale legate direct de cele mai tipice probleme, care sunt rezolvate pe baza utilizării algoritmilor discutați în subiectul anterior.

Recunoașterea obiectelor în imagini ale senzorilor optici (fotografii, aerieni, satelit și alte imagini) este o zonă tradițională de procesare a imaginilor. În același timp, metodele de recunoaștere a obiectelor au început să fie utilizate pe scară largă în sistemele automate de observare a televiziunii, în imagistica cu raze X și rezonanță magnetică și alte tipuri de imagini inițial digitale, atât pentru post-procesare, cât și pentru procesare în timp real.

^ 18.1. preprocesarea IMAGINILOR

Operațiile de recunoaștere a imaginilor anumitor obiecte, de regulă, sunt precedate de procesarea imaginilor pentru a crea condiții care să mărească eficiența și calitatea selecției și recunoașterii obiectelor dorite sau studiate. Metodele de preprocesare depind de sarcinile de cercetare, sunt destul de variate și pot include, de exemplu, selecția celor mai informative fragmente, mărirea acestora, obținerea de imagini tridimensionale, maparea culorilor, implementarea rezoluției spațiale mari, creșterea rezoluției contrastului. , îmbunătățirea calității imaginii etc. Luați în considerare printre ele pe acelea fără de care, de obicei, nicio sarcină tipică nu se poate descurca.

Corectarea luminozității și contrastului imaginilor .

Imaginile introduse într-un computer au adesea un contrast scăzut. Contrastul slab, de regulă, se datorează unei game largi de luminozitate reproductibilă, care este adesea combinată cu neliniaritatea caracteristicilor de transfer de nivel. Natura dependenței modificării luminozității paletei de pixeli de la valoarea minimă la valoarea maximă afectează și calitatea imaginii. O funcție liniară de modificare a intensității pixelului este optimă. Cu o caracteristică concavă, imaginea va fi mai întunecată, cu o caracteristică convexă, va fi mai deschisă. În ambele cazuri, trăsăturile obiectelor pot fi distorsionate și nu sunt bine identificate. Corecția (liniarizarea) luminozității paletei îmbunătățește semnificativ calitatea imaginii.

Contrastul scăzut se poate datora și faptului că variațiile funcției de luminozitate a pixelilor din imagine sunt mult mai mici decât intervalul permis al scalei de gri. În acest caz, contrastul imaginii este mărit prin „întinderea” intervalului dinamic real de luminozitate la întreaga scară folosind o transformare liniară în funcție de element.

O altă modalitate de a corecta luminozitatea paletei este inversarea imaginii de intrare. Deoarece este destul de dificil să se facă distincția între semnalele slabe pe un fundal întunecat, forma inversă de reprezentare a unor astfel de imagini are o histogramă diferită de luminozitate, care este mai acceptabilă pentru observare și identificare vizuală.

Unele sarcini de procesare a imaginii implică conversia unei imagini în tonuri de gri (multe grade de luminozitate) într-o imagine binară (două grade). Transformarea se realizează pentru a reduce redundanța informațională a imaginii, pentru a lăsa în ea doar informațiile necesare pentru a rezolva o anumită problemă. Într-o imagine binară, anumite detalii trebuie păstrate (de exemplu, contururile obiectelor reprezentate) și caracteristicile nesemnificative (fondul) trebuie excluse.

Limitarea unei imagini în tonuri de gri constă în împărțirea tuturor elementelor imaginii în două clase A 1 și A 2 în funcție de luminozitate cu un chenar A c și în efectuarea filtrării de prag corespunzătoare cu înlocuirea pixelilor imaginii cu clasele de luminozitate setate. Alegerea marginii este determinată de tipul histogramei de luminozitate a imaginii originale. Pentru imaginile cele mai simple precum desene, text dactilografiat etc., având o distribuție bimodală, granița este stabilită la minim între modurile de distribuție. În cazul general, imaginea poate fi multimodală, iar dacă se stabilește o corespondență suficient de sigură între obiecte și modurile corespunzătoare de luminozitate a acestora, atunci filtrarea de prag poate oferi și mai multe clase de luminozitate a pixelilor.

Intervalul de luminozitate al unei imagini de computer poate diferi de intervalul de luminozitate original, de exemplu, din cauza expunerii insuficiente. Există două moduri posibile de a corecta luminozitatea. Conform primei metode, imaginea este afișată liniar în intervalul luminozității originale. A doua metodă prevede limitarea luminozității pixelilor din imaginea procesată la nivelurile de prag maxim și minim și are o aplicație mai largă. Prezența celor mai deschise și mai întunecate tonuri în imagine dă impresia de contrast bun, totuși, contrastul excesiv duce la faptul că gradațiile maxime afectează tonurile de mijloc, iar majoritatea detaliilor imaginii sunt colorate în tonurile de mijloc și contrastul excesiv. poate duce la pierderea acestor detalii sau le îngreunează selecția.

Histograme de luminanță. Un instrument pentru evaluarea nivelurilor de intensitate a pixelilor este o histogramă - o afișare grafică a caracteristicilor cantitative ale distribuției probabilistice a intensității (luminozității) pixelilor într-o zonă selectată a imaginii. Valoarea maximă a intensității pixelului i se atribuie un nivel de gradație de intensitate de 255 (alb), celei mai întunecate valori i se atribuie o valoare de 0 (negru). Intensitățile din intervalul de la 0 la 255 au o scară liniară de schimbare, sau stabilite în conformitate cu funcția de modificare adoptată, de exemplu, amplificarea semnalelor slabe (scale de gri) și atenuarea semnalelor puternice (în zona albă), ceea ce mărește spațiul și rezoluția de contrast a imaginii sau anumite zone de interes.

Există o metodă cunoscută de îmbunătățire a imaginilor bazată pe calcularea logaritmului coeficienților spectrale ai transformării Fourier a imaginii originale (calcularea cepstrului). Odată cu transformarea inversă a cepstrului într-o imagine, histograma imaginii este aliniată datorită transformării logaritmice a spectrului imaginii.

Multe imagini sunt caracterizate de histograme cu o concentrație mare de linii în anumite zone ale distribuției intensității. Adesea, histograma distribuției luminozității imaginii este înclinată spre niveluri scăzute (luminozitatea majorității elementelor este sub medie). Una dintre metodele de îmbunătățire a calității unor astfel de imagini este modificarea histogramei acestora. Alinierea histogramei poate fi efectuată pe baza creșterii la o putere a modulului coeficienților de transformare Fourier spectrale ai imaginii, în timp ce semnul și faza coeficienților sunt păstrate. Dacă notăm exponentul α, atunci pentru α<1 операция извлечения корня степени α уменьшает большие спектральные коэффициенты и увеличивает малые. Такое перераспределение энергии в частотной плоскости изображения приводит к более эффективному использованию динамического диапазона интенсивностей пикселей изображения в пространственной области.

Alegerea unei măști bune de ajustare a histogramei intensității pixelilor crește contrastul, îmbunătățind astfel rezoluția contrastului detaliilor. Programele de procesare au comenzi care vă permit să setați culori pentru maparea culorilor imaginilor care au tranziții netede sau, dimpotrivă, clare ale detaliilor afișate în zona de interes. Combinată cu inversarea contrastului, care convertește o imagine negativă într-o imagine pozitivă, această metodă îmbunătățește și contrastul detaliilor imaginii mici și medii.

Există un arsenal destul de mare de modele și algoritmi matematici, a căror implementare software poate crește semnificativ rezoluția contrastului imaginilor. Acești algoritmi se bazează pe procese de filtrare a imaginilor liniare și neliniare care transformă histograma intensității.

Nivelarea iluminării imaginilor. Adesea, unele zone ale unei imagini sunt prea întunecate pentru a fi văzute. Dacă adăugați luminozitate întregii imagini, atunci zonele inițial luminoase pot fi supraexpuse. Pentru a îmbunătăți aspectul imaginii în astfel de cazuri, se aplică metoda de egalizare a luminii.

Iluminarea se schimbă în spațiu destul de lent și poate fi considerat un semnal de joasă frecvență. Imaginea în sine poate fi considerată, în medie, ca un semnal de frecvență mai mare. Dacă în timpul fotografierii s-au adăugat aceste semnale, atunci ele ar putea fi separate folosind filtre convenționale. Totuși, într-o fotografie reală, obținem produsul imaginii pe care vrem să o vedem și harta iradierii. Și deoarece aceste semnale nu sunt adăugate, ci multiplicate, nu va fi posibil să scăpați de neregulile de iluminare prin simpla filtrare.

Pentru a rezolva astfel de probleme, se utilizează procesarea homomorfă. Ideea procesării este de a reduce o problemă neliniară la una liniară. De exemplu, problema împărțirii semnalelor multiplicate poate fi redusă la problema împărțirii semnalelor multiplicate. Pentru a face acest lucru, trebuie să luați logaritmul produsului imaginilor, care va fi egal cu suma logaritmilor factorilor. În acest caz, problema împărțirii produsului semnalelor se reduce la problema împărțirii sumei semnalelor LF și HF și se rezolvă folosind un filtru HF care elimină frecvențele joase din suma semnalelor. Rămâne să luați un exponent din semnalul primit pentru a reveni la scara de amplitudine inițială.

Un filtru RF poate fi implementat după cum urmează. Mai întâi, se aplică imaginii o operație de estompare (filtru trece-jos), iar apoi cea neclară este scăzută din imaginea originală. Cea mai bună rază de estompare depinde de imaginea specifică. Puteți începe să experimentați cu o rază de aproximativ zece pixeli.

De obicei, un filtru gaussian bidimensional este folosit pentru a estompa imaginea, care are forma h (x, y) = A exp (- (x 2 + y 2) / 2 2). Aici A este o constantă de normalizare (suma tuturor coeficienților filtrului trebuie să fie egală cu 1), σ este „lățimea” filtrului, care controlează gradul de estompare.

Calculul direct al convoluției 2D cu un astfel de nucleu este intensiv de calcul, chiar și cu o dimensiune relativ mică a nucleului. Cu toate acestea, un efect echivalent poate fi obținut prin filtrarea mai întâi a liniilor imaginii cu un gaussian unidimensional și apoi a coloanelor imaginii rezultate. Efectul obținut din egalizarea iluminării poate fi prea puternic (zonele întunecate vor deveni aceleași ca luminozitate cu cele luminoase). Pentru a reduce efectul, puteți pur și simplu să amestecați imaginea procesată cu originalul într-o anumită proporție.

Îmbunătățirea rezoluției spațiale ... Interpretarea imaginilor este strâns legată de calitatea prezentării detaliilor fine, nedistorsionate. În acest caz, este necesar ca odată cu creșterea fragmentelor să nu existe o deteriorare a rezoluției imaginii la efectuarea operațiilor matematice de interpolare 2D a funcției de distribuție spațială a intensității pixelilor în rândurile și coloanele matricei imaginii. Un factor important în identificarea obiectelor este, de asemenea, localizarea și afișarea zonelor de aceeași luminozitate sau cromaticitate, chiar dacă aceste zone au o dimensiune de câțiva pixeli.

Claritatea imaginilor din programele profesionale este corectată, de regulă, prin determinarea valorilor optime de luminozitate și contrast prin alegerea opțiunilor adecvate:

A) „valori” - gradul de influență al impactului asupra clarității imaginii;

B) „raza” - grosimea conturului de claritate;

C) „pragul de discriminare” - definirea contururilor obiectelor prin setarea diferenței de intensitate a pixelilor vecini, suficientă pentru ca programul să crească contrastul dintre ei.

Unele programe conțin o setare automată a raportului optim de contrast și luminozitate, menținând claritatea necesară a imaginii.

În procesarea imaginilor, algoritmii de filtrare a rangului joacă un rol important, care fac posibilă eliminarea „neclarării” detaliilor (pentru a le îmbunătăți focalizarea) prin alegerea unei mască bidimensionale n × n de pixeli, realizând operația de clasare a pixelului. valori de intensitate în cadrul măștii specificate și atribuirea unei valori egale cu valoarea maximă pixelului central prin clasare. Tipul clasat include, de asemenea, procedura de filtrare mediană, care elimină semnalele aleatoare necorelate și zgomotul de impuls din imagine fără a „încețoșa” modificările ascuțite ale luminozității la granițele obiectelor.

Utilizarea informativă a filtrării liniare se datorează capacității sale de a corecta diferite tipuri de distorsiuni care decurg din imperfecțiunea dispozitivelor care formează imaginea. Prin intermediul filtrării liniare, este posibilă reducerea influenței zgomotului de fluctuație și a altor defecte asupra imaginilor reproduse în modul de creștere a contrastului detaliilor cu contrast redus cu o creștere a scarii zonelor de interes.

Corectarea distorsiunilor de deschidere a imaginilor în absența unei componente de zgomot a semnalului se realizează prin filtrare inversă (deconvoluție). Cu toate acestea, trebuie avut în vedere că filtrele de deconvoluție au un câștig de dispersie a zgomotului mai mare de 1 și, în loc să îmbunătățească imaginea, zgomotul poate crește.

Metodele de filtrare neliniară bazate pe măști de frecvență sunt considerate promițătoare, permițând reducerea influenței componentelor de joasă frecvență ale semnalului imaginii și sporirea influenței componentelor de înaltă frecvență, ceea ce mărește rezoluția spațială a detaliilor descrise în spectrul imaginii printr-un spațiu spațial mai mare. frecvente.

^ 18.2. DETERMINAREA DEFINIȚIILOR OBIECTELOR DIN IMAGINE

Din punctul de vedere al recunoașterii și analizei obiectelor din imagine, cele mai informative nu sunt valorile luminozității obiectelor, ci caracteristicile limitelor lor - contururile. Cu alte cuvinte, principala informație nu constă în luminozitatea zonelor individuale, ci în contururile acestora. Sarcina de a evidenția contururile este de a construi o imagine a limitelor obiectelor și a contururilor zonelor omogene.

De obicei, marginea unui subiect dintr-o fotografie este afișată prin diferența de luminozitate dintre două zone relativ uniforme. Dar diferența de luminozitate poate fi cauzată și de textura subiectului, umbre, lumini, modificări ale iluminării etc.

Vom numi un contur de imagine un set de pixeli ai acestuia, în apropierea căruia se observă o schimbare bruscă a funcției de luminozitate. Deoarece în procesarea digitală imaginea este prezentată în funcție de argumente întregi, contururile sunt reprezentate prin linii de cel puțin un pixel lățime. Dacă imaginea originală, pe lângă zonele cu luminozitate constantă, conține zone cu luminozitate variabilă, atunci continuitatea liniilor de contur nu este garantată. Pe de altă parte, dacă există zgomot într-o imagine „constant pe bucăți”, atunci contururile „extra” pot fi găsite în puncte care nu sunt limite ale regiunii.

Când se dezvoltă algoritmi pentru selectarea contururilor, este necesar să se țină cont de caracteristicile specificate ale comportamentului liniilor de contur. Prelucrarea suplimentară specială a contururilor selectate vă permite să eliminați golurile și să suprimați liniile de contur false.

Procedura de construire a unei imagini binare a granițelor obiectelor constă de obicei din două operații secvențiale: selectarea contururilor și limitarea lor.

Imaginea originală este supusă unei procesări lineare sau neliniare, cu un răspuns la modificările luminozității. Ca rezultat al acestei operațiuni, se formează o imagine, a cărei funcție de luminozitate diferă semnificativ de zero numai în zonele cu schimbări bruște ale luminozității imaginii. Thresholding formează un obiect de contur din această imagine. Alegerea pragului în a doua etapă ar trebui să se bazeze pe următoarele considerații. Dacă pragul este prea mare, pot apărea rupturi de margine și diferențe ușoare de luminozitate nu vor fi detectate. Dacă pragul este prea scăzut, pot apărea contururi false din cauza zgomotului și a neuniformității zonelor.

Găsiți margini pe baza unui gradient. Una dintre cele mai simple moduri de a izola granițele este diferențierea spațială a funcției de luminanță. Pentru o funcție de luminanță bidimensională A (x, y), diferențele în direcțiile x și y sunt înregistrate de derivatele parțiale A (x, y) / x și A (x, y) / y, care sunt proporționale cu rata de modificare a luminozității în direcțiile corespunzătoare.

Orez. 18.2.1.


Izolarea diferențelor de luminozitate este ilustrată în Fig. 18.2.1. Se poate observa că sublinierea contururilor perpendiculare pe axa x este asigurată de derivata A (x, y) / x (Fig. B), iar sublinierea contururilor perpendiculare pe axa y este asigurată de A (x, y) / y (Fig. . v).

În sarcinile practice, este necesară selectarea contururilor, a căror direcție este arbitrară. În aceste scopuri, puteți utiliza modulul de gradient al funcției de luminozitate

| A (x, y) | = ,

Care este proporțională cu rata maximă (în direcție) de modificare a funcției de luminozitate la un punct dat și nu depinde de direcția conturului. Modulul gradientului, spre deosebire de derivatele parțiale, ia doar valori nenegative, prin urmare, în imaginea rezultată (Fig. D), punctele corespunzătoare contururilor au un nivel crescut de luminozitate.

Pentru imaginile digitale, analogii derivatelor parțiale și modulul de gradient sunt funcții de diferență.

Un exemplu practic de detectare a graniței într-o imagine fotografică este prezentat în Fig. 18.2.2. Imaginea originală (1) este monocromatică. Imaginea (2) arată rezultatul calculării vectorului gradient de luminozitate Аx, y) = (A / x, A / y). După cum puteți vedea în figură, în punctele unei diferențe mari de luminozitate, gradientul are o lungime mare. Prin filtrarea pixelilor cu o lungime a gradientului mai mare decât un anumit prag , obținem o imagine a limitelor (3).



Orez. 18.2.2.
Dezavantajul algoritmului este omiterea marginii cu mici diferențe de luminozitate și includerea detaliilor imaginii cu modificări mari de luminozitate în numărul de margini (piele de chipmunk). Când imaginea este zgomotoasă, harta punctelor de limită va fi poluată și doar zgomot, deoarece nu se ține cont de faptul că punctele de limită corespund nu numai diferențelor de luminozitate, ci diferențelor de luminozitate dintre zonele relativ monotone.

Pentru a reduce efectul acestui dezavantaj, imaginea este mai întâi supusă la filtrarea de netezire gaussiană. Cu filtrarea anti-aliasing, micile detalii nesemnificative sunt estompate mai repede decât diferențele dintre zone. Rezultatul operației poate fi văzut în imagine (4). Cu toate acestea, în acest caz, granițele clar definite se estompează în linii aldine.

Gradientul de luminozitate în fiecare punct este caracterizat de lungime și direcție. Mai sus, la căutarea punctelor de limită, a fost folosită doar lungimea vectorului. Direcția gradientului este direcția de creștere maximă a funcției, ceea ce vă permite să utilizați procedura de suprimare non-maximă. În această procedură, pentru fiecare punct, se consideră un segment cu o lungime de mai mulți pixeli, orientat în direcția gradientului și cu centrul în pixelul considerat. Un pixel este considerat a fi maxim dacă și numai dacă lungimea gradientului din el este maximă între toate lungimile gradientelor pixelilor din segment. Toți pixelii maximi cu lungimi de gradient mai mari decât un anumit prag pot fi recunoscuți ca și limită. Gradientul de luminozitate în fiecare punct este perpendicular pe graniță, așa că, după suprimarea non-maxima, nu rămân linii îndrăznețe. La fiecare secțiune perpendiculară a liniei aldine, va rămâne un pixel cu lungimea maximă a gradientului.

Perpendicularitatea gradientului de luminozitate la margine poate fi folosită pentru a urmări marginea pornind de la un pixel de margine. Această urmărire este utilizată în filtrarea histerezis maxim al pixelilor. Ideea din spatele filtrării prin histerezis este că un contur de frontieră stabil lung conține cel mai probabil pixeli cu o diferență de luminozitate deosebit de mare și, pornind de la un astfel de pixel, conturul poate fi urmărit prin pixelii de limită cu o diferență de luminozitate mai mică.


Orez. 18.2.3.
Când se efectuează filtrarea prin histerezis, nu se introduc una, ci două valori de prag. Cel mai mic () corespunde lungimii minime a gradientului la care un pixel poate fi recunoscut ca pixel de limită. Mai mare (), corespunde lungimii minime a gradientului la care un pixel poate inițializa o cale. După ce conturul este inițializat la pixelul maxim P cu o lungime a gradientului mai mare de , fiecare pixel maxim adiacent acestuia este considerat Q... Dacă pixelul Q are o lungime a gradientului mai mare decât , și un unghi între vectori PQși  ( P) este aproape de 90 o, atunci P se adaugă la contur, iar procesul sare recursiv la Q. Rezultatul său pentru imaginea originală din Fig. 18.2.2 este prezentat în Fig. 18.2.3.

Astfel, algoritmul de găsire a limitelor pe baza gradientului constă în aplicarea secvenţială a următoarelor operaţii:

Filtrare de netezire gaussiană;

Găsirea gradientului de luminozitate în fiecare pixel;

Găsirea maximului de pixeli;

Filtrarea cu histerezis maxim al pixelilor.

Acest algoritm se numește algoritmul Canny și este cel mai adesea folosit pentru găsirea limitelor.

Găsirea limitelor pe baza laplacianului. Se știe că o condiție necesară și suficientă pentru valoarea extremă a primei derivate a unei funcții într-un punct arbitrar este egalitatea cu zero a derivatei a doua în acest punct, iar derivata a doua trebuie să aibă semne opuse pe laturile opuse ale punct.

În versiunea bidimensională, analogul derivatei a doua este laplacianul - operatorul scalar   f) = (2 f / x + 2 f / y).


Orez. 18.2.3.
Găsirea limitelor imaginii folosind laplacianul se poate face prin analogie cu cazul unidimensional: punctele limită sunt recunoscute ca punctele la care laplacianul este egal cu zero și în jurul cărora are semne diferite. Estimarea laplacianului folosind filtrarea liniară este, de asemenea, precedată de filtrarea de netezire gaussiană pentru a reduce sensibilitatea algoritmului la zgomot. Netezirea gaussiană și căutarea laplaciană pot fi efectuate simultan, astfel încât găsirea limitelor cu acest filtru este mai rapidă decât folosind algoritmul lui Canny. Filtrul este utilizat în sistemele în care atât calitatea rezultatului (de obicei inferioară algoritmului Canny) cât și performanța sunt importante. Pentru a reduce sensibilitatea la detalii nesemnificative, le puteți exclude și din numărul de puncte de limită pe acelea a căror lungime a gradientului este mai mică decât un anumit prag (Fig. 18.2.3).

^ 18.3. Izolarea obiectelor din imagine

Când lucrați cu o imagine, este adesea necesar să separați o parte care are sens pentru utilizator (obiect) de orice altceva (fond). Deci, de exemplu, în imaginile medicale un anumit obiect este evidențiat pentru măsurarea parametrilor acestuia. Algoritmii pentru rezolvarea acestei probleme sunt interactivi, deoarece numai utilizatorul poate determina care este obiectul de interes și care este fundalul.

În principiu, sarcina poate fi rezolvată în cel mai simplu mod - utilizatorul pur și simplu urmărește obiectul cu cursorul mouse-ului, dar pentru obiecte complexe acest lucru va necesita efort și timp semnificativ.

Algoritmul Baghetei Magice (Bagheta magică) a fost unul dintre primii algoritmi de segmentare interactivă. Utilizatorul specifică secvenţial punctele obiectului, iar algoritmul selectează pixelii din jur cu o culoare similară şi (la discreţia utilizatorului) adaugă aria selectată obiectului. Pentru a evalua „asemănarea”, utilizatorul stabilește o matrice de praguri pentru sensibilitatea distanței dintre culori. Cu cât este mai mare, cu atât mai mulți pixeli vor ieși în evidență într-un singur pas. În acest caz, numai pixelii conectați sunt alocați zonei de culori „similare”.

Algoritmul funcționează bine atunci când selectează obiecte care sunt destul de monotone la culoare. Cu variații puternice de culoare, este imposibil să separați cu precizie subiectul de fundal folosind acest algoritm. Dacă pragul de sensibilitate este prea scăzut, este posibil ca o parte semnificativă a obiectului să nu iasă în evidență. Creșterea pragului face ca selecția să „curgă” din obiect. În cazul unui obiect pestriț sau al unei granițe neclare între fundal și obiect, algoritmul este aproape neajutorat.

Algoritmul foarfecelor inteligente folosit din 1996, a câștigat popularitate și a fost integrat în editorul foto principal Adobe Photoshop. Când folosește algoritmul, utilizatorul desenează o chenar între obiect și fundal, indicând puncte de pe margine cu un anumit spațiu, iar „foarfecele inteligente” desenează o linie de delimitare între punctele specificate consecutiv.


Orez. 18.3.1.
Imaginează-ți un raster al unei imagini sub forma unui grafic (Fig. 18.3.1) cu marginile formate de laturile pixelilor. Când utilizatorul specifică două puncte consecutive P și Q, algoritmul „foarfece” calculează distanța minimă dintre punctele P și Q de-a lungul marginilor graficului, în timp ce lungimea geometrică condiționată a fiecărei margini de-a lungul acestei căi are o relație inversă cu culoarea. diferența de pixeli de-a lungul laturilor sale. Deoarece marginile corespunzătoare schimbărilor ascuțite de culoare vor avea o lungime condiționată mai mică, „foarfecele inteligente” tind să deseneze marginea de-a lungul acestor margini.

„Foarfecele inteligente” accelerează semnificativ procesul de selectare a unui obiect. Cu toate acestea, nu funcționează foarte bine în prezența unui fundal pestriț și/sau a unui obiect pestriț. În astfel de cazuri, sunt necesare mai multe puncte finale.

Segmentarea folosind tăieturi grafice. A treia modalitate de a evidenția un obiect pe fundal se bazează, de asemenea, pe teoria grafurilor. Utilizatorul marchează pur și simplu un set de pixeli A aparținând obiectului și un set de pixeli B aparținând fundalului. Deoarece acești pixeli nu trebuie să se afle în apropierea graniței, un astfel de marcaj nu necesită mult efort din partea utilizatorului. Rezultatul algoritmului este segmentarea, în care întregul set A aparține obiectului, iar mulțimea B fondului.

Dacă rezultatul selecției nu satisface utilizatorul prima dată, acesta adaugă pixeli la seturile originale, adăugându-i la imagine. De exemplu, dacă algoritmul a atribuit în mod greșit o bucată dintr-un obiect fundalului, utilizatorul marchează unii dintre pixelii acestei piese ca pixeli obiect (setul A). Rezultatul repornirii algoritmului este segmentarea rafinată.

Să vedem cum funcționează algoritmul. Să construim un grafic pe un raster după cum urmează. Punem vârfurile pixelilor graficului în centrul fiecărui pixel, iar prin culoarea vârfurilor înțelegem culoarea pixelului. Conectăm fiecare vârf cu vârfuri învecinate și obținem opt muchii care conectează centrele pixelilor vecini. Să adăugăm o greutate la fiecare margine:

( / L) exp (-  (C 2, C 2)),

Unde L este lungimea geometrică a muchiei, C 1 și C 2 sunt culorile vârfurilor legate de muchie, λ și σ sunt câțiva parametri (pozitivi),  (..) este matricea de sensibilitate a diferențelor de culoare. Cu cât diferența dintre culorile vârfurilor este mai mare, cu atât această greutate este mai mică.

Să adăugăm două vârfuri terminale la grafic, numite sursă și scurgere, și să le conectăm cu muchii la fiecare vârf al graficului. Atribuim o greutate infinită muchiilor care leagă sursa cu vârfurile mulțimii A și muchiile care leagă chiuveta cu vârfurile mulțimii B.

Luați în considerare distribuția culorilor vârfurilor mulțimii A (de exemplu, ca histogramă). Pentru toate vârfurile pixelilor care nu sunt din setul A, atribuim muchiilor care le conectează cu sursa o pondere proporțională cu consistența culorii lor cu această distribuție a culorii, în timp ce greutatea marginii va fi cu atât mai mare, cu atât culoarea este mai mare. a vârfului este „asemănătoare” cu culorile vârfurilor mulțimii A. Similar se efectuează procedura pentru mulțimea B și muchiile care leagă vârfurile pixelilor cu drenul.

Vom „tai” toate marginile graficului în două seturi care nu se intersectează - sursa și stocul și vom presupune că vârfurile care se încadrează în setul sursă corespund pixelilor obiectului, iar restul, care intră în setul stoc, corespund pixelilor de fundal. Numărul de variante posibile de tăieturi este egal cu 2 P, unde P este numărul de pixeli, deoarece fiecare vârf de pixeli poate fi atribuit fie sursei, fie setului de scurgere.


Orez. 18.3.2.
O greutate tăiată este suma greutăților tuturor muchiilor tăiate, excluzând muchiile cu greutate infinită. Tăierea minimă este tăierea cu greutatea minimă, în timp ce pixelii sursă ai acestei tăieturi vor fi respectiv alocați pixelilor obiectului, iar pixelii stoc - fundalului. Limita dintre subiect și fundal va fi trasată, dacă este posibil, între pixeli cu culori foarte diferite.

Desigur, nu poate exista o separare ideală. De exemplu, o zonă a unei imagini poate fi asemănătoare ca culoare cu fundalul (pixeli din setul B), dar înconjurată de pixeli din setul A și nu este separată de ei printr-un chenar ascuțit. În astfel de cazuri, alegerea parametrului λ în formula ponderii muchiei stabilește un echilibru între ultimele două puncte. Pe măsură ce λ crește, devine mai important ca granița dintre fundal și obiect să se afle între pixeli cu culori diferite, iar pe măsură ce λ scade, devine mai important ca pixeli similari ca culoare cu pixelii setului A (sau B) să fie alocați. la obiect ( fundal). Un exemplu de selecție a obiectelor este prezentat în Fig. 18.3.2.

^ 18.4. Izolarea caracteristicilor obiectelor

Extragerea caracteristicilor face posibilă simplificarea implementării recunoașterii sau identificării obiectelor. Atunci când alegeți cele mai informative caracteristici, este necesar să luați în considerare atât proprietățile obiectelor în sine, cât și capacitățile de rezoluție ale formatoarelor de semnal de imagine primare. Vom efectua selecția caracteristicilor folosind exemplul de procesare a imaginilor monocrome (cu un singur strat). În imaginile color, algoritmii considerați pot fi aplicați fiecărei culori separat.

În timpul procesării, sunt preferate următoarele caracteristici ale obiectelor:

- aria și perimetrul imaginii obiect;

- dimensiunile celor mai simple figuri geometrice înscrise (cercuri, dreptunghiuri, triunghiuri etc.);

- numarul si pozitia relativa a colturilor;

- momentele de inerție ale imaginilor obiectelor.

O caracteristică importantă a majorității trăsăturilor geometrice este invarianța față de rotația imaginii obiectului, iar prin normalizarea trăsăturilor geometrice unele față de altele, se realizează invarianța față de scara imaginii obiectului.

Determinarea ariei și a perimetrului. Aria imaginii unui obiect este calculată prin numărarea numărului de elemente legate de obiect:

A = S (x, y), S (x, y) =,

Unde L este mulțimea de coordonate ale tabloului S (x, y) aparținând obiectului selectat.

Perimetrul imaginii obiectului P este calculat după ce limitele obiectului sunt selectate prin însumarea mai multor puncte de contur ale imaginii obiectului.

Pe baza caracteristicilor selectate, o caracteristică normalizată invariabilă la scara imaginii U = A / P 2 sau V = P /.

Determinarea razelor cercurilor înscrise și circumscrise (fig. 18.4.1) constă din două etape.


Orez. 18.4.1.
1. Determinarea coordonatelor centrului geometric al imaginii obiect:

X q = xS (x, y) / S (x, y), Y q = yS (x, y) / S (x, y),

Unde Xși y- numărul de rânduri și coloane ale tuturor pixelilor S (x, y) incluși în obiect.

2. Calculul distanțelor minime și maxime de la centru până la limitele imaginii obiect.

R (x, y) = .

R max = r (x, y max); R min = r (x, y min), unde x, y  P (punctele de perimetru).

Caracteristica normalizată R ′ = R max ⁄ R min este invariabilă la scara imaginii obiectului.


Orez. 18.4.2.
Determinarea laturilor dreptunghiului circumscris (fig. 18.4.2) se realizează după cum urmează. Se determină valorile maxime și minime ale absciselor și ordonatelor imaginii obiect x max și x min, y max și y min, după care se determină înălțimea și baza dreptunghiului:

L = x max - x min, H = y max - y min.

Această caracteristică nu este invariabilă cu rotația imaginii obiectului.

Determinarea numărului și a poziției relative a colțurilor. Modul clasic de a determina punctele de colț ale unei imagini obiect este de a analiza un mic fragment al conturului în vecinătatea unui punct dat și de a determina raza curburii acestuia. Dacă raza este mai mică decât pragul, este un element de colț, altfel nu este.


Orez. 18.4.3.
Din punct de vedere practic, un algoritm mai simplu pare a fi de preferat. Constă în estimarea distanțelor dintre punctele de început și de sfârșit ale unui fragment de contur, de exemplu, între elementele de contur cu numere de serie k - 2 și k + 2 din Fig. 18.4.3.

Fie x (k) și y (k) abscisa și, respectiv, ordonata elementelor de contur. Atunci regula de decizie ar putea arăta astfel:

(| x (k-2) −x (k + 2) | + | y ​​​​(k − 2) −y (k + 2) | ≤H).

Dacă condiția este îndeplinită, atunci punctul dat al conturului aparține mulțimii de puncte de colț L. Aici H este valoarea prag selectată ținând cont de proprietățile obiectelor.

Determinarea momentelor de inerție ale obiectului. Termenul „momente de inerție ale unei imagini obiect” nu are legătură cu mecanică. Pur și simplu pentru a calcula caracteristica indicată, se folosesc expresii matematice, similare cu calculul momentelor de inerție ale unui corp material, unde în loc de valorile maselor punctelor individuale ale corpului, valorile iluminării la punctele corespunzătoare ale imaginii sale sunt substituite. Momentele de inerție sunt semne informaționale pentru recunoașterea ulterioară a modelului.



Orez. 18.4.4.
Să desemnăm principalele momente de inerție necesare ale imaginii obiectului prin J 1 și J 2. Pentru a găsi J 1 și J 2, este necesar să se determine mai întâi așa-numitele momente intermediare J x și J y, adică. momentele de inerție față de axele verticală și orizontală ale sistemului de coordonate, precum și momentul mixt J x, y (Fig. 18.4.4a).

Ordine de calcul:

1. Se determină coordonatele centrului de „gravitație” (centrul de energie) al imaginii obiectului.

X tse = xA (x, y) / A (x, y), Y tse = yA (x, y) / A (x, y),

2. Se determină momentele intermediare J x, J y, J x, y.

J x = [(x- X tse) 2 A (x, y)], Y x = [(y- Y tse) 2 A (x, y)],

J xy = [(x- X tse) (y- Y tse) A (x, y)].

3. Se calculează punctele principale.

J 1,2 = .

^ 18.5. detectarea și recunoașterea obiectelor IMAGINI

Detectarea obiectelor. Detectarea (identificarea) imaginilor obiectelor dintr-o imagine distorsionată de zgomot și interferență poate fi definită ca o procedură de verificare a unei anumite condiții pentru compararea a două numere - rezultatul transformării imaginii analizate și o anumită valoare de prag:

L ≥ P. (18.5.1)

Aici L [.] este operatorul de transformare a imaginii originale, P [.] este operatorul de formare a valorii prag. Decizia privind disponibilitatea unui obiect se ia dacă condiția este îndeplinită. Calitatea detectării este caracterizată de probabilitatea de a îndeplini condiția în prezența unui obiect din imaginea analizată.

Tipul specific de operatori L [.], P [.] Și calitatea detectării depind de disponibilitatea informațiilor a priori despre obiectele așteptate, zgomot, interferențe și distorsiuni. Baza pentru determinarea parametrilor optimi ai operatorilor este teoria deciziilor statistice.

Deci, de exemplu, atunci când se selectează obiecte punctuale, forma imaginii obiectului este determinată în mod unic de funcția punctului de împrăștiere a lentilei, care poate fi considerată cunoscută, iar problema se reduce la procedura clasică de detectare a unui semnal cunoscut. forma pe fundalul zgomotului normal aditiv cu o valoare medie zero. În acest caz, operatorii de transformare sunt integrale de corelație calculate folosind o descriere dată a unei imagini cunoscute a unui obiect și, respectiv, zgomotul tipic. Identificarea constă în compararea imaginii unui obiect cu standardele unei clase date. Obiectul este decis de cea mai bună potrivire.

O metodă pentru compararea directă a unui obiect cu o imagine de referință. Fie S (x, y) - imaginea originală a obiectului, F (x, y) - imaginea de referință. Algoritmul de comparare directă este următorul:

T = (S (x, y) - F (x, y)) 2 ≤ D, (18.5.2)

Unde D este pragul de diferență.

Metoda este simplă și poate fi ușor implementată. Cu toate acestea, în prezența unor factori destabilizatori în condiții reale, fiabilitatea metodei este scăzută. La o valoare mai mare a pragului D, condiția (18.5.2) poate fi satisfăcută de diverse obiecte și pot apărea erori asociate cu identificarea incorectă a obiectului (erori de primul fel). Pe măsură ce D scade, pot apărea erori precum lipsa unui obiect (erori de al doilea fel). Prin ajustarea valorii lui D, se poate modifica raportul dintre probabilitățile de apariție a erorilor de primul și al doilea fel în conformitate cu un criteriu dat de optimitate.

Metoda corelației pe baza calculului corelaţiei încrucişate dintre obiecte şi standarde. Din setul de k opțiuni alternative, este selectat obiectul (sau standardul), la care se obține suma maximă a corelației încrucișate:

K (k) = S k (x, y) F k (x, y). (18.5.3)

La identificarea obiectelor, este convenabil să folosiți coeficienții de corelație, care, în prima aproximare, oferă și o estimare a probabilității de a trimite un obiect la un anumit standard:

R (k) = K (k) / K max (k), K max (k) = F k 2 (x, y), (18.5.3)

Unde K max (k) - valorile de autocorelare ale standardelor.

Metoda de corelare este mai fiabilă, dar necesită mult mai multe calcule. Dar atunci când procesăm imagini binare, acest lucru nu este atât de important, deoarece multiplicarea numerelor de un bit se reduce la o simplă operațiune logică „ȘI”.

Metodele considerate mai sus necesită aceeași orientare a imaginilor obiectului și referinței, alinierea lor în coordonate spațiale și menținerea acelorași scale.

Metode de recunoaștere bazate pe sistemul de caracteristici utilizați, de asemenea, standarde de obiecte, dar ca elemente de comparație sunt utilizate caracteristici ale obiectului și standardul, care vă permite să reduceți cantitatea de date de referință și timpul de procesare a informațiilor. Cu toate acestea, trebuie avut în vedere că, în practică, selecția caracteristicilor obiectelor este întotdeauna efectuată cu o anumită eroare și, prin urmare, este necesar să se identifice și să se țină seama de natura și gradul posibilei dispersări a estimărilor caracteristici utilizate pentru fiecare dintre obiectele așteptate, de ex utilizați histograme ale distribuției valorilor caracteristicilor.

Cu un număr mare de variante posibile de obiecte, se recomandă un algoritm (ierarhic) în mai multe etape. În acest caz, la fiecare etapă de recunoaștere, se folosește oricare dintre caracteristicile obiectului (aria, perimetrul, razele cercurilor înscrise și circumscrise, momentele de inerție, numărul și locația colțurilor etc.). La nivelurile inferioare sunt utilizate caracteristici care nu necesită costuri de calcul mari (de exemplu, suprafețe și perimetre ale obiectelor), iar cele mai informative (de exemplu, momente de inerție) sunt utilizate la nivelul superior, unde numărul de alternativele sunt minime.

A.V.Davydov.

literatură

46. ​​​​Huang T.S. și alți algoritmi rapidi în procesarea digitală a imaginilor. - M .: Radio şi comunicare, 1984 .-- 224 p.

47. Soifer V.A. Procesarea imaginilor pe computer. Partea 2. Metode și algoritmi. - Jurnal Educaţional Soros Nr. 3, 1996.

48. Apalkov I.V., Hryashchev V.V. Eliminarea zgomotului din imagini pe baza algoritmilor neliniari folosind statistici de rang. - Universitatea de Stat din Iaroslavl, 2007.

49. Andreev A.L. Sisteme automate de supraveghere televizată. Partea a II-a. Fundamente și algoritmi aritmetici și logici. Tutorial. - SPb: SPb, GUITMO, 2005 .-- 88p.

50. Rosenfeld L. G. si altele.Posibilitati de post-procesare a imaginilor de diagnostic CT si RMN pe un computer personal. - Chasopis medical ucrainean - № 6 (56) - XI / XII, 2006.

51. Lukin A. Introducere în procesarea digitală a semnalului (fundamente matematice) .- M .: Universitatea de Stat din Moscova, Laborator

Top articole similare