Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Programi
  • Prepoznavanje objekata. Analiza slike zasnovana na proširenju osnovnih funkcija

Prepoznavanje objekata. Analiza slike zasnovana na proširenju osnovnih funkcija

Skeniranje slike i otkrivanje objekata u njoj je zadatak broj 1 u obradi slike i kompjuterskom vidu. Pretraga za "automatsko prepoznavanje slika" na Google akademijama će vratiti mnoge članke sa složenim jednadžbama i algoritmima od ranih 90-ih do danas. To sugerira da ovaj problem bavi naučnicima od samog pojavljivanja web pretraživanja, ali još uvijek nije riješen.

Osnivač CognitiveSEO-a Razvan Gavrilas vjeruje da će Google u bliskoj budućnosti promijeniti svoje algoritme za rangiranje slika, što će uticati na pretragu i, zapravo, na optimizaciju pretraživača širom svijeta. Razvan razvija ovu temu u ovom članku.

Zašto je sposobnost prepoznavanja objekata na slikama važna za globalnu digitalnu zajednicu?

Prema riječima stručnjaka, detekcija objekata na slikama će postati svojevrsni dodatni faktor rangiranja. Na primjer, slika plavog psa bila bi neraskidivo povezana s ključnom riječi "plavi pas", a ne "crveni pas".

Ovo ima dvije važne implikacije za SEO:

  • broj irelevantnih rezultata pri traženju određene ključne riječi bit će manji (ovisno o tome šta je na slici),
  • Prepoznavanje objekata u slici pomoći će vam da povežete sadržaj stranice s tom slikom. Ako stranica sadrži puno slika plavih pasa i drugih stvari vezanih za pse, tada će ocjena ove stranice kao posvećene psima biti veća.

Još jedno pitanje - da li će prepoznavanje uzoraka biti početak "nove ere" za manipulaciju objektima na slikama kao nova sumnjiva SEO tehnika? Ne, jer algoritmi pretraživača ovih dana lako otkrivaju ovu vrstu neželjene pošte.

Google, umjetna inteligencija i prepoznavanje slika

U 2010. godini, Univerzitet Stanford je održao prvo ILSVRC (ImageNet large-scale visual recognition challenge) takmičenje, na kojem programeri demonstriraju mogućnosti svojih sistema za prepoznavanje slika.

ILSVRC ima tri glavne faze:

  • klasifikacija,
  • klasifikacija sa lokalizacijom,
  • detekcija.

U prvom slučaju procjenjuje se sposobnost algoritma da kreira ispravne "naslove" na slici (označavanje), lokalizacija uključuje odabir glavnih objekata na slici, problem detekcije je formuliran na sličan način, ali više primjenjuju se strogi kriteriji evaluacije.

U slučaju detekcije, algoritam prepoznavanja mora opisati složenu sliku s mnogo objekata, određujući njihovu lokaciju i precizno identificirajući svaki od njih. To znači da ako se neko vozi mopedom na slici, onda bi softver trebao moći ne samo da razlikuje nekoliko zasebnih objekata (na primjer, moped, osobu i kacigu), već i da ih pravilno pozicionira u prostoru i klasifikuje ispravno. Kao što možemo vidjeti na slici ispod, pojedinačne stavke su ispravno identificirane i klasificirane.

Bilo koji pretraživač sa ovom mogućnošću bi otežao bilo kome da fotografije ljudi na mopedima prosledi kao fotografije vozača Porschea manipulisanjem metapodacima. Algoritam sposoban za prepoznavanje objekata je prilično napredan i moći će raščlaniti bilo koju, uključujući i najsloženiju, sliku.

2014. godine na takmičenju ILSVRC pobijedio je tim GoogLeNet. Ime je izvedeno od riječi Google i LeNet - jedne od implementacija konvolucione neuronske mreže. Takva mreža može brzo da uči, ali i da daje rezultate čak i sa malom količinom memorije zbog više od desetostrukog smanjenja broja parametara, u poređenju sa većinom drugih modela kompjuterskog vida.

Termin "neuronske mreže" označava umjetne neuronske mreže (ANN), koje su računski modeli zasnovani na principima učenja i prepoznavanja obrazaca. Dolje je prikazan primjer kako algoritam za detekciju objekata radi:

GoogLeNet tim koristi specifičnu vrstu ANN - konvolucionu neuronsku mrežu, koja radi u kojoj pojedinačni neuroni reaguju na različita (ali preklapajuća) područja u vidnom polju. Ove oblasti se mogu spojiti zajedno kako bi se stvorila složenija slika. Prema Razvanu Gavrilasu, ovo je slično radu sa slojevima u uređivaču slika.

Jedna od prednosti konvolucione neuronske mreže je dobra translacijska podrška - bilo koja vrsta kretanja objekta iz jednog prostora u drugi. Infrastruktura DistBelief može odabrati objekat bez obzira gdje se nalazi na slici.

Još jedna korisna infrastrukturna karakteristika je invarijantnost skale, prema kojoj se svojstva objekata ne mijenjaju ako se skale dužine pomnože sa zajedničkim faktorom. To znači da okvir DistBelief mora jasno prepoznati sliku, na primjer, "narandže", bez obzira da li je velika (na pozadini desktopa) ili sićušna (na ikoni). U oba slučaja, objekat je narandžast i klasifikovan je kao „narandžasti“.

Neophodno je reći i o Hebbovom principu, prema kojem se treniraju umjetne neuronske mreže. U Behavioral Organization: A Neuropsychological Theory, Hebbov postulat glasi kako slijedi: „Ako je akson ćelije A dovoljno blizu da pobuđuje ćeliju B, i stalno ili više puta sudjeluje u njenom pobuđivanju, tada dolazi do nekog procesa rasta ili metaboličkih promjena u jednoj ili obe ćelije, što dovodi do povećanja efikasnosti A kao jedne od ćelija koje pobuđuju B”.

Razvan Gavrilas malo pojednostavljuje citat: "Ćelije koje su pobuđene zajedno se povezuju." U slučaju ANN, "ćelije" treba zamijeniti sa "neuronima". Gradeći dalju analogiju, može se reći da će softver moći da se educira kako bi se stalno usavršavao.

Google zapošljava profesionalce za umjetnu inteligenciju i prepoznavanje slika

Google razvija vlastitu tehnologiju za prepoznavanje slika na bazi razvoja trećih strana, na primjer, za to je kupljena startup kompanija DNNresearch, koja se bavi istraživanjem u području prepoznavanja objekata i glasa. DNNresearch je startup, u trenutku preuzimanja imao je tri zaposlena koji su automatski postali Google zaposlenici. Dobili su grant za podršku radu u oblasti neuronskih mreža. Nove tehnologije koje Google može primijeniti za poboljšanje kvaliteta pretraživanja slika.

Prema Googleovoj strategiji, mnoga rješenja otvorenog koda ostaju dostupna drugim kompanijama. Ovo se radi kako bi se razvilo tržište. Prema Razvanu, zašto gušiti svoje konkurente kada si možete priuštiti da ga kupite nakon nekog vremena?

Još jedna zanimljiva Google akvizicija je DeepMind, koji ima investiciju od 400 miliona dolara. Ova i mnoge druge akvizicije prvenstveno imaju za cilj privlačenje kvalifikovanih ljudi u Google, a ne neka gotova rješenja. Ovakvi potezi kupovine kompanija svedočanstvo su da Gugl, Fejsbuk i druge internet kompanije jure za "mozgom" za daljim razvojem u oblasti veštačke inteligencije.

Google+ već koristi detekciju objekata na slikama. Sljedeći na redu za Google pretragu?

Zapravo, algoritam za detekciju slika zasnovan na neuronskoj mreži radi na Google+ već više od godinu dana. Neki od softverskih kodova predstavljenih na ILSVRC-u korišteni su za poboljšanje Google+ algoritama za pronalaženje određenih vrsta fotografija.

Googleova tehnologija za prepoznavanje slika ima sljedeće karakteristike:

  • Google algoritam uzima u obzir korespondenciju objekata na web slikama (blizu, umjetno osvjetljenje, detalji) sa objektima na prirodnim fotografijama (srednji plan, prirodno svjetlo sa sjenama, različiti stepen detalja). Drugim riječima - cvijet bi trebao ostati cvijet čak i na slikama s različitim rezolucijama ili uvjetima osvjetljenja.
  • Neke specifične vizuelne klase su pomerene iz opštih jedinica. Na primjer, u velikoj listi naziva cvijeća koje algoritam razlikuje, označene su neke pojedinačne biljke, na primjer, hibiskus ili dalija.
  • Guglov algoritam za prepoznavanje slika je takođe uspeo da nauči kako da radi sa apstraktnim kategorijama objekata, ističući određen broj slika koje bi se mogle kategorisati kao "ples", "hrana", "poljupci". Potrebno je mnogo više vremena od jednostavnog utvrđivanja omjera narandžasto-narandžasto.

Časovi s različitim značenjima također se dobro obrađuju. Primjer je "automobil". Da li je ovo snimak automobila ako vidimo ceo auto na njemu? Da li se slika unutrašnjosti automobila smatra fotografijom automobila ili je nešto drugo? Na oba pitanja bismo odgovorili potvrdno, a Googleov algoritam za prepoznavanje čini isto.

Treba napomenuti da je sistem za prepoznavanje slika još nedovršen. Međutim, čak iu svom "sirovom" obliku, Guglov algoritam je iznad svih dosadašnjih razvoja u oblasti kompjuterskog vida.

Da li je tehnologija prepoznavanja slika dio Google Graph znanja?

Googleov novi algoritam je dio "mašinskog učenja", koji je djelimično implementiran u Grafiku znanja. Sadrži entitete - objekte namijenjene zamjeni znakova koji se ne mogu sresti u njihovom "čistom" obliku u HTML-tekstu, na primjer, znak "

Svaki objekat i svaka klasa objekata dobijaju jedinstvenu šifru, tako da se životinja "jaguar" nikada neće pomešati sa automobilom istog imena. Na osnovu ovih kodova, algoritam za prepoznavanje može koristiti bazu znanja. Zapravo, Google stvara "pametnu pretragu" koja razumije i prevodi vaše riječi i slike u stvarne simboličke objekte.

Kako tehnologija detekcije objekata na slikama može uticati na SEO?

Funkcija prepoznavanja slike može biti korisna gdje god želite da znate šta je na slici.

Sa konvencionalnog stanovišta SEO-a, prepoznavanje slika je ogroman korak naprijed. Ovo pomaže u poboljšanju kvaliteta sadržaja, jer postaje gotovo nemoguće prevariti tražilicu pogrešnim označavanjem fotografija ili velikog broja njih.

Dobar vizuelni sadržaj (tj. visok kvalitet slike, jasno vidljivi objekti, relevantnost fotografije) verovatno će igrati važnu ulogu u svemu što se odnosi na vizuelno pretraživanje.

Ako želite da vaša slika bude prva među slikama u upitima "Žuti pas", onda će optimizacija morati započeti navođenjem tipa vaše slike i navođenjem objekata koje sadrži.

Zaključak

Sposobnost osobe da prepozna mnoge predmete i kategorizira ih jedna je od najnevjerovatnijih mogućnosti vizualne percepcije, čiji kompjuterski analozi još nisu izmišljeni. Međutim, Google već čini korake naprijed, na primjer, već posjeduje patent za automatsko prepoznavanje velikih video objekata od 2012. godine.

Dakle, prema riječima Razvana Gavrilasa, Google-ovi rezultati organske pretrage uskoro će se promijeniti. Pretraživač će se kretati "od redova do stvari", u stvari, integrirajući svoj graf znanja u pejzaž pretraživanja. Algoritmi pretraživanja će se također promijeniti, koji će se vjerovatno odnositi na stvarne objekte u sadržaju i odrediti kako će se ti objekti odnositi jedni prema drugima.

Svaki objekat se može okarakterisati skupom određenih karakteristika. Broj karakteristika zavisi od složenosti samog objekta. Preciznost odabira karakteristike će uticati na efikasnost prepoznavanja objekta opisanog ovim skupom.

Razmotrimo primjer prepoznavanja jednostavnih objekata na osnovu skupa karakteristika. Prilikom implementacije metode koristit ćemo dvije funkcije bwlabel i imfeature kao glavne, koje su ugrađene u aplikaciju Image Processing Toolbox.

Prvo pročitajte originalnu probnu sliku u Matlab radni prostor

L = imread ("test_image.bmp");

i vizualizovati ga

Slika, prikaz (L);

Hajde da damo neke komentare na originalnu sliku. U našem slučaju, početni podaci su predstavljeni binarnom slikom. Ovo donekle pojednostavljuje naš zadatak, budući da je glavni naglasak u ovom primjeru na prepoznavanju objekata. Međutim, kada se rješavaju problemi prepoznavanja na osnovu stvarnih slika, u većini slučajeva važno je pretvoriti originalnu sliku u binarnu. Kvalitet rješavanja ovog problema u velikoj mjeri određuje efikasnost daljeg prepoznavanja.

Funkcije bwlabel i imfeature koriste 2D slike u sivim tonovima kao ulaz. Budući da je test_image.bmp slika generirana kao binarna, ali sačuvana u bmp formatu, potrebno je odabrati jednu od kuglica, na primjer, prvu, iz matrice trodimenzionalne slike L, koja sadrži tri kuglice identične boje .

L = L (:,:, 1);

Isti rezultat se može postići korištenjem funkcije rgb2gray. Dakle, matrica L predstavlja binarnu dvodimenzionalnu sliku.

Za daljnje proračune odredit ćemo veličinu ove slike

Veličina (L);

Zatim morate lokalizirati, tj. odrediti lokaciju objekata na slici. Da bismo to učinili, koristit ćemo funkciju bwlabel, koja traži binarnu sliku za povezane regije piksela objekta i kreira matricu čiji je svaki element jednak broju objekta kojem pripada odgovarajući piksel originalne slike. Parametar num dodatno vraća broj objekata pronađenih u originalnoj binarnoj slici.

Bwlabel (L, 8);

Dodatno, još jedan parametar je specificiran u funkciji bwlabel - vrijednost povezivanja.

Zatim prelazimo na izračunavanje atributa objekata koji su označeni u matrici brojeva objekata L. Razmotrimo ovo pitanje detaljnije. Vrijednosti karakteristika se vraćaju u nizu struktura podviga. Kao što je ranije navedeno, bilo koji skup karakteristika može se koristiti u prepoznavanju objekata.

U okviru ovog primera primenićemo najvizuelniji statistički pristup klasifikaciji objekata na osnovu morfometrijskih karakteristika. Glavne morfometrijske karakteristike uključuju koeficijente oblika:

  1. 'Solidnost' - koeficijent konveksnosti: jednak omjeru površine i konveksne površine objekta. Predstavljen brojem u rasponu (0,1).
  2. 'Obuj' - faktor popunjavanja: jednak omjeru površine objekta i površine graničnog pravokutnika. Predstavljen brojem u rasponu (0,1).
  3. 'Ekscentricitet' - ekscentricitet elipse sa glavnim momentima inercije jednakim glavnim momentima inercije objekta. Predstavljen brojem u rasponu (0,1).

Budući da se u ovom primjeru koristi probna slika objekata jednostavnog oblika, od navedenih karakteristika u softverskoj implementaciji koristićemo samo faktor popunjavanja 'extent'. Kao što je ranije spomenuto, parametar 'extent' definira se kao omjer površine objekta i površine graničnog okvira. Za krug će ovaj parametar biti jednak, a za kvadrat - 1. Ali ovi podaci su dati za slučaj kada krug i kvadrat imaju idealan oblik. Ako je oblik kruga ili kvadrata izobličen, vrijednosti 'opsega' se također mogu razlikovati od gornjih vrijednosti. Stoga se faktori oblika mogu izračunati sa određenom greškom. Dakle, uvođenjem neke greške u omjer širine i visine, neka od njegovih izobličenja su dozvoljena. Štaviše, vrijednost greške je proporcionalna stepenu izobličenja. Međutim, prevelika vrijednost greške može dovesti do pogrešnog prepoznavanja objekata.

Osim toga, također ćemo odrediti centar mase objekta koristeći opciju 'centroid'.

Podvige = neobilježje (L, "Centroid", "Extent", 8);

Prepišimo vrijednosti karakteristika iz niza struktura podviga u zasebne nizove:

Obim = nule (broj); CentX = nule (broj); CentY = nule (broj); za i = 1: 1: broj; Obim (i) = podvizi (i) .Obim; CentX (i) = podvizi (i) Centroid (1); CentY (i) = podvizi (i) Centroid (2); kraj;

Također, u okviru ovog primjera implementiraćemo sljedeće. Radi jasnoće, svaki prepoznati objekat će biti označen. Mogući su različiti pristupi da se to postigne. Jedan od najjednostavnijih je postavljanje slike sa njenim imenom u blizini prepoznatog objekta. Da biste to učinili, prvo morate generirati slike s imenima objekata i pročitati ih u Matlab radnom prostoru. Pošto testna slika sadrži samo krugove i kvadrate, ona će generisati i izračunati odgovarajuće slike.

Krug = imread ("krug.bmp"); Kvadrat = imread ("kvadrat.bmp"); d = 0,15; % greške faktora oblika za i = 1: broj; L (okruglo (CentY (i)): okruglo (CentY (i)) + 1, okruglo (CentX (i)): okruglo (CentX (i)) + 1) = 0; ako (trbušnjaci (Obim (i) -0,7822)

Predstavimo rezultat prepoznavanja

Slika, prikaz (L);

Postoje i drugi pristupi prepoznavanju objekata zasnovani na skupu karakteristika. Razlikuju se po složenosti računanja, efikasnosti itd. Međutim, u daljnjim materijalima ćemo razmotriti one pristupe koji se mogu implementirati korištenjem funkcija ugrađenih u Matlab sistem.



(, dio 6.1)

Prepoznavanje slika je područje koje se ukršta sa prepoznavanjem uzoraka, ali je nešto odvojeno od njega. Jedna od glavnih razlika je u tome što slike iste slike mogu varirati u svojim geometrijskim i svjetlinskim karakteristikama, ali to nam nije posebno zanimljivo, to se ispravlja dobro proučenim metodama preprocesiranja slike. Druga od glavnih razlika je u tome što slike iste slike prolaze kroz netrivijalne deformacije, na primjer, različiti uglovi trodimenzionalnog objekta, smjer osvjetljenja, promjene u držanju / izrazima lica / gestikulaciji itd. uklapaju se u šemu podjele prostora slika. I tu počinje zabava.

Na nekim mjestima ću ulaziti u detalje prepoznavanja slika, pošto mi je tema bliska, te ću iznijeti neke ideje i svoj pogled na to kakav bi trebao biti idealan prepoznavanje slika.

Jednom sam dosta toga detaljno opisao. Ne bez nepreciznosti, ali općenito razumno. Takođe pokazuje odakle su slike i tačni podaci naučnih članaka uzeti.

Kako je slika predstavljena u sistemu za prepoznavanje uzoraka. Najjednostavnije je da je svaki piksel os u prostoru slike, a svjetlina piksela je pozicija u tom prostoru. Otuda se odmah nameće zaključak da prepoznavač ni na koji način ne vodi računa o dvodimenzionalnosti slika, već o tome kasnije. Postoje i drugi prikazi, oni su također zasnovani na svjetlini piksela i mogu malo bolje (prilično!) predstaviti dvodimenzionalne odnose piksela.

Šta slijedi iz takvog prikaza. Promena položaja prepoznatog objekta, rotacija u dvodimenzionalnoj ravni, promena razmera je katastrofa za prepoznavača. Zato što će piksel koji odgovara, na primjer, vrhu nosa, otići do ruba uha, ili, sa stanovišta prepoznavača, ulazna vrijednost, koja bi trebala pasti na svoju os u prostoru slike, će pasti u sasvim drugu (nije jasno koju!) Os (inače se zove promjena topologije prostora). A takva permutacija osi potpuno razbija razdjelne površine u prostoru slika. Možete, naravno, reći, prepustiti prepoznavaču da nauči sve pozicije i razmjere objekta na slici. Ali, nažalost, broj svih mogućih odredbi je toliko ogroman da je to nerealno učiniti.

Sljedeća posljedica je da promjena svjetline slike baca cijelu sliku na potpuno drugu tačku u prostoru slika. Iako osi ostaju na svom mjestu, promjena svjetline i dalje predstavlja veliki problem za prepoznavač.

Kao rezultat toga, prepoznavač će reagirati ne toliko na sadržaj slike koliko na njenu svjetlinu i veličinu/poziciju.

Ali sve ovo nije tako strašno, alati za obradu slika već dugo vremena mogu ispraviti geometriju i svjetlinu. (Drugo pitanje, uporedivo po složenosti i primijenjenim metodama sa prepoznavanjem slike, je određivanje lokacije i veličine objekta na slici, što se naziva detekcija.) Postoje i transformacije slike (zvane momenti), čiji su koeficijenti isti za bilo kojoj poziciji i veličini objekta. Stoga je jedna od prvih faza prepoznavanja slike (koje nema kod prepoznavanja uzoraka) normalizacija slike, koja se rješava prilično jednostavnim alatima za obradu slike. Kako se to rješava u ljudskom mozgu također je zanimljivo pitanje, pogledajmo dalje.

Ali najzahtjevnija stvar za prepoznavača su deformacije dvodimenzionalne projekcije povezane s trodimenzionalnom suštinom objekta (promjena ugla i smjera osvjetljenja) i promjena samog objekta (držanje, geste, izrazi lica itd. .). Budući da se ove deformacije ne ispravljaju metodama obrade slike, i općenito, prvo morate utvrditi kakva se deformacija dogodila. Stoga je omiljena graba prepoznavača, kada više reaguju na ugao, prepoznajući različite objekte pod istim uglom kao isti. Sa rasvjetom, slična šala, na primjer, na istom mjestu, prijelaz iz bijelog u crno, kada promijenite smjer osvjetljenja na suprotan, postat će, naprotiv, prijelaz iz crnog u bijelo, a ne možete popraviti ovo normalizacijom svjetline.

Pošteno radi, treba napomenuti da postoje načini kada se kreira veliki set za obuku sa slikama posebno snimljenim pod različitim uglovima i pravcima osvetljenja, a zatim se ulazna slika, ako spada u granice ovih uslova, dobro prepoznaje. . Štaviše, nakon ovako opsežne obuke, u sistem se mogu ubaciti novi objekti koji nisu snimljeni sa tako širokom varijacijom uglova i osvetljenja. Ali ova metoda je poseban slučaj i, osim toga, prilično je teška. A nama, generalno, to nije interesantno, jer se više odnosi na matematiku i statistiku.

Drugi način je vraćanje trodimenzionalne slike iz dvodimenzionalne projekcije. Tada kut i osvjetljenje ne igraju ulogu, a promjene držanja su lakše podnošljive. Istina, metodu nije lako implementirati i nije sve glatko u njoj. Prilikom restauracije trodimenzionalne slike obično je potreban opštiji model objekta (bez njega je restauracija moguća, ali će biti "hroma" i manje pogodna za prepoznavanje), a korelacija projekcije sa trodimenzionalnim -dimenzionalni model takođe ima elemente za prepoznavanje obrazaca. Ali ni ovo nas ne zanima, jer ovdje postoji egzaktnija matematika.

„Čist“ prepoznavač treba da se sam nosi sa navedenim deformacijama slike, bez tačnih modela i posebno pripremljenih kompleta za obuku. Prepoznavač ne treba da radi sa slikom, kao jednodimenzionalnim nizom, ali treba da shvati da se slika sastoji od dvodimenzionalnih fragmenata, sadržaj fragmenta se može promeniti, iako njegovo značenje ostaje isto (primer iznad govori o promeni smjer osvjetljenja ili neki drugi izraz lica), sam fragment se može pomjeriti u odnosu na središte slike i u odnosu na druge dijelove (različiti kut ili promjena izraza lica), kombinacija dijelova može se promijeniti (na primjer, pojavile su se naočale, promijenjena frizura/brada na licu, iako je sam vlasnik isti).

Prepoznavači koji pokažu dobre rezultate mogu da urade baš mnogo od navedenog, svaki na svoj način. Ali! Ako je za neku oblast razvijen jasan privatni prepoznavanje, onda će biti teško konkurisati opštijem, iako je opšte priznanje primenjivo za šire uslove. Na primjer, u prepoznavanju lica, metode pozicioniranja lica, normalizacije i izdvajanja ključnih karakteristika su dobro razvijene za fotografije snimljene u dobro kontroliranim uvjetima. A prema ovim ključnim karakteristikama, ne najsmutljiviji prepoznavači rade savršeno, i to je više nego dovoljno. Ako se ispravno obrađena slika lica unese na ulaz neuronske mreže (višeslojni perceptron), onda se i to smatra privatnim prepoznavačom, jer će za neobrađenu sliku takva mreža imati katastrofalne rezultate.

Kako se tačno prepoznavači nose sa gore navedenim deformacijama slike.

Isticanje ključnih tačaka i njihovog sadržaja. Na primjer, za lice se određuje položaj vrha nosa, usana, uglova oka, sadržaj fragmenata slike oko ovih tačaka i izračunavaju se međusobne udaljenosti između ovih tačaka. Za rukom pisane znakove, to mogu biti točke savijanja putanje, ugao takvih krivina i udaljenost između uglova. Djelomično za pronalaženje ovih tačaka koriste se metode prepoznavanja uzoraka, dijelom su to logička pravila koja su ručno programirana od strane stručnjaka za ljude. Zatim se ovi podaci šalju konvencionalnom prepoznavaču. Pošto su dvodimenzionalni odnosi između tačaka već odabrani i sadržaj susedstva tačaka je pronađen, prepoznavač se već može nositi sa dvodimenzionalnim deformacijama podelom prostora slike. Ovdje je pretraga i poređenje osa već izvršeno, topologija slike je prilagođena topologiji prostora slika prepoznavača, a udaljenosti između ključnih tačaka omogućavaju mjerenje izobličenja ove topologije. , minimizirajući razlike u uglovima i obraćajući pažnju na to kojoj osobi pripada lice. Štaviše, potraga za ključnim tačkama bila je:

  • iterativni, a ne jednokratni snimak input-outputa, bez izgradnje dugih logičkih lanaca, pretraga je išla "u širinu" s nabrajanjem lokalnih opcija,
  • nisu isprobane sve moguće opcije, već samo one najrealnije,
  • pretraga se prekida kada se postigne optimalni kriterijum, optimalnost nije zagarantovana.


Identifikacione tačke i udaljenosti: a) koriste se u forenzičkoj fotografiji; b) najčešće korišćeni u izgradnji automatizovanih identifikacionih sistema.

Nedostatak ovog pristupa je što se analizira samo mali broj tačaka, a ostatak slike se izbacuje, što može uticati na kvalitet prepoznavanja. Na primjer, ako je točka pronađena pogrešno, to je već fatalno, ali ako analizirate okolna područja, greška se može svesti na minimum. Ali za određena razvijena područja (kao što je prepoznavanje lica), ovaj pristup je dovoljan.

Sljedeći način je deformacija slike. Preko prepoznate slike rastegnuta je rešetka na čijim čvorovima postaju originalni pikseli. Zatim se rešetka izobličuje (čvorovi mijenjaju svoj položaj) i izračunava se izobličena slika. Razlika se izračunava između svake slike iz skupa za obuku i iskrivljene slike. Originalna slika, koja je za određeni broj iteracija izobličenja dala najmanju razliku sa izobličenom slikom, smatra se najsličnijom njoj (minimalno izobličenje pri maksimalnom podudaranju). Za traženje smjera izobličenja, može postojati ili kriterij minimizacije na temelju originalne i izobličene slike (oboje u optičkim tokovima), ili slučajna pretraga, poput žarenja. Deformacije su elastične i neelastične. Elastično znači da kada su izobličeni, čvorovi rešetke ne mogu preskočiti jedni druge, na primjer, uho se neće uvući u sredinu nosa. Neelastični prema tome dozvoljavaju bilo kakve permutacije čvorova. Koja je bolja - ne sjećam se tačnih poređenja, ali intuitivno elastične deformacije su ugodnije. Distorzija se može prenijeti metodom žarenja opisanom u prethodnom dijelu, uslijed čega se distorzija "učvrsti" u jednoj od najsličnijih slika treninga.


Elastična deformacija - miješanje piksela u originalnoj i novoj slici





Optički tok (neelastična deformacija). Preslikavanje nepoznate slike na poznatu, istu osobu. S lijeva na desno: nepoznata slika, slika iz baze podataka, nepoznata slika u kojoj su blokovi zamijenjeni blokovima poznate slike.


Optički tok (neelastična deformacija). Mapiranje nepoznate slike u sliku iz baze podataka. Slike različitih ljudi. Kvalitet ekrana je lošiji.


Optički tok (neelastična deformacija). Izobličenje rešetke slike pri pretvaranju jedne slike u drugu. Na lijevoj strani - slike jedne osobe, na desnoj - različite.

Nedostatak ovog pristupa je što glupo deformiše sliku, pokušavajući minimizirati razliku po pikselu, potpuno ne vodeći računa o značenju slike. Na primjer, osmijeh jedne osobe može se ugladiti u izraz druge osobe, jer je razlika piksel po piksel manja. Ili drugim riječima, dozvoljena je svaka putanja izobličenja slike (čak i elastična), iako su za stvarne slike te putanje strogo fiksirane i povezane su s promjenom perspektive, izraza lica itd. Osim toga, nije jasno šta bi se dogodilo da područje ne doživi izobličenje, ali su se, na primjer, pojavile naočale koje nisu bile na originalnoj slici. Deformacija će vjerovatno "poludjeti" pokušajem transformacije naočala u oči :)

Još jedna važna stvar je da takva deformacija traži samo sličnosti, bez pokušaja da se otkriju distinktivne karakteristike, razlika koja razlikuje jedan objekt od drugog (kao što to radi neuronska mreža u prethodnim dijelovima). Kao rezultat toga, moguće su šale kada će takav prepoznavač biti uhvaćen za šik, identičnu frizuru, zanemarujući male promjene na dijelu očiju (usput, dobri sistemi prepoznavanja izbacuju frizure i druge faktore "buke" čak i na faza predobrade slike).

Postoji varijacija kada preko slike nije povučena rešetka, već smisleniji okvir, na primjer, za lice, uključujući tačke kao što su vrh nosa, vrhovi usana, oči, uši, obrve. Takvi prepoznavači djeluju smislenije, jer su im već ubačeni potrebni podaci. Ne morate čak ni tražiti ove tačke, dovoljno je postaviti približan kostur, a ostatak će se sam pronaći tokom deformacije. Druga stvar je da u setu za obuku ove tačke moraju biti jasno razmaknute (a to je zaseban i težak zadatak, ili se izvodi djelimično ručno), a zatim možete uporediti referentni model s nepoznatim iskrivljenim ne samo sadržajem tačkama, ali i po prirodi distorzije rešetke. Ovo se zove dinamički graf (ili elastični, ne sjećam se tačno).


Sljedeća metoda se zove Hidden Markov Models (HMM). Njegova suština je u nastavku nejasno (ali ukratko) opisana, ali primjer s prepoznavanjem slike sve pojašnjava. Grubo govoreći, HMM je matrica vjerovatnoća prijelaza između stanja fizičkog sistema ili signala. Kada uđe u stanje, sistem izlazi jednu od "vrijednosti" iz skupa "vrijednosti" ovog stanja. Svaka "vrijednost" ovog stanja ima svoju vlastitu vjerovatnoću izdavanja. Štaviše, neka "značenja" mogu biti karakteristična za druga stanja. Obično ne znamo kroz koja stanja prolazi proces signala ili fizičkog sistema, ali vidimo samo "vrijednosti" koje se emituju spolja, pa se modeli nazivaju skrivenim.



Dijagram Markovljevog modela, primjer niza opažanja O i niza stanja S

Za prepoznavanje, HMM se koriste na sljedeći način. Svaka slika se smatra nizom takvih "značenja". Za svaku klasu izračunava se vlastiti HMM. Zatim se za nepoznatu sliku pokreću svi dostupni modeli i među njima se traži onaj koji daje najsličniji niz "vrijednosti". To se zove problem prepoznavanja i postoji tačna formula za njegovo rješavanje. Ne postoje tačne formule za problem podešavanja modela iz dostupnih slika, ali, kao iu obuci neuronskih mreža, postoje heurističke (suboptimalne, neka vrsta gradijentnog spuštanja) metode.

Za prepoznavanje slika, 2D HMM-i su se dobro pokazali. U njima se "vrijednost" uzima kao sadržaj kvadrata slike sa stranicom od nekoliko piksela. Stanje je pozicija ovog kvadrata na slici. Slika je gusto prekrivena rešetkom takvih stanja (štaviše, granice susjednih kvadrata mogu se djelomično preklapati, što daje najbolji rezultat prepoznavanja). Prijelazna matrica je izgrađena na način da su prijelazi mogući samo između stanja koja su susjedna dvodimenzionalnoj rešetki slike. Odnosno, kvadrat s vrhom nosa će se pretraživati ​​između obraza i usta, ali ne iza uha, a ako se nos na nepoznatoj slici nađe lijevo, onda će se pretraživati ​​i susjedni kvadrati lijevo - obrazi, nos, brada itd.








Postoji varijacija HMM treninga, kada je svaki HMM u početku bio „obučen“ na sve slike treninga, a tek onda su dorađene „svojim“, rezultat prepoznavanja je bio veći. Odnosno, SMM je naučio kako tipičan objekt izgleda i mijenja se "općenito", a zatim se prilagodio izgledu i promjenama određenog objekta. I to se nije dogodilo zbog poznavanja tačnog i specifičnog fizičkog modela, već zbog općeg trenažnog postupka i konkretnih primjera iz stvarnog svijeta.

Ispostavilo se da je uvjerljiv model objekta izgrađen unutar HMM-a (to se također odnosi na konvolucione mreže, vidi dolje). Ovo nije model koji se dobija, na primer, trodimenzionalnom rekonstrukcijom slike, a nije ni model kada se ručno određuje skup ključnih karakteristika i odnosa između njih. HMM, s druge strane, ne rekreira tačan fizički model, već uvjerljiv model. Model koji proizvodi slično ponašanje objekta, ali na račun procesa koji nemaju nikakve veze sa stvarnom fizikom objekta. Kada je ispravno postavljen, fizički i vjerodostojni model će se podudarati na izlazu, pod uvjetima u kojima smo trenirali vjerodostojni model. Ali van ovih uslova počinju odstupanja, ponekad sa zanimljivim efektima. Na primjer, osoba može lako prepoznati drugu osobu po karikaturi, iako se matematički slika karikature nikako ne može uporediti s digitaliziranom slikom nečijeg lica. Lako je pronaći i druge svakodnevne primjere. Čovjek se u svojim postupcima ne rukovodi egzaktnim zakonima fizike, već "naivnom" fizikom, koja djeluje u svakodnevnim uvjetima, ali je potpuno neprimjenjiva kada prelazimo granice tih uvjeta. Slično se može naći i u logičkom i imaginativnom razmišljanju, odavde dolaze fantazije i kreativnost, gledajući koje, čovjek može uporediti ili osjetiti stvarne fizičke procese koji se sa znanstvenog stanovišta ne mogu opisati takvim fantazijama. I uzgred, takvim prepoznavačima nije teško preokrenuti ih tako da za dati objekt daju varijacije njegovih promjena. Naravno, osim stvarnih slika, od prepoznavača ćemo dobiti i gomilu "fantazija", po našem mišljenju čudnih. Ovo je ujedno i osnova za određivanje ključnih područja imidža – onih područja koja daju najveći doprinos prepoznatljivosti. Ali vratit ćemo se na fantazije i vjerodostojne modele, a sada ćemo nastaviti s prepoznavanjem slika.

Dakle, HMM je gotovo savršen prepoznavač slika:

  • može se nositi s deformacijama slike tražeći željeni komad u određenom susjedstvu,
  • elastična deformacija slike, uzimajući u obzir specifičnosti prepoznatih objekata (nos ne ide iza uha),
  • može se nositi s promjenjivim kombinacijama komada (kao što je promjena frizure ili izgleda naočala), zbog činjenice da svakom stanju odgovara nekoliko vrijednosti svojih komada,
  • slika je čvrsto pokrivena mrežom za pretraživanje i analizira se kao cjelina.

Ali SMM ima nedostatak. SMM-ovi ne mogu razlikovati prepoznatljive klase, ne mogu pronaći karakteristične karakteristike. Neuronske mreže, na primjer, kažu "da" prepoznatoj klasi i "ne" svim ostalim, dok SMM kaže "da" svim klasama, a od tih "da" se bira maksimum koji se smatra prepoznatim. klasa. I, koliko sam shvatio, HMM ne mjeri promjenu udaljenosti između dijelova, što bi moglo poboljšati rezultat, već samo traži kako bolje rasporediti dijelove na slici, uzimajući u obzir njihovu blizinu. Iako bi bilo zanimljivo ovako pronađenu iskrivljenu rešetku (u obliku razmaka između čvorova, gdje je čvor pozicija komada) staviti u prepoznavač.



Izlaz neuronske mreže prilikom prepoznavanja - razlika između prepoznate klase (s11) i svih ostalih je jasno vidljiva. Markovi modeli to ne rade.

Sljedeći način za prepoznavanje slika su kognitroni, neokognitroni i konvolucione neuronske mreže (CNN). U početku su kognitroni, takoreći, izmišljeni na temelju strukture neurona u vizualnom korteksu, zatim su poboljšani, a u konvolucijskim mrežama iz cijele ove strukture izolirano je racionalno jezgro.

Da biste razumjeli kako ove mreže funkcionišu, morate shvatiti najvažniji koncept – mape karakteristika. Zamislite da skenirate sliku s malim kvadratnim prozorom. Položaji prozora na slici mogu se preklapati. U kvadratu prozora, svaki skenirani piksel ima svoju težinu, a prozor daje zbirnu ponderisanu vrijednost svih piksela. Jedno jedino značenje. Ali budući da postoji mnogo pozicija prozora, dobiva se dvodimenzionalna rešetka takvih vrijednosti. Ovaj prozor detektuje prisustvo neke kombinacije piksela (obilježja) na slici. Kao rezultat toga, na izlaznoj mreži će se dobiti visoke vrijednosti tamo gdje je prisutna željena kombinacija piksela, a niske vrijednosti, gdje sadržaj ni na koji način nije sličan onome što tražimo. Ova mreža se zove mapa karakteristika. Štaviše, tražimo ne jednu karakteristiku, već mnogo različitih, za svaku od njih svoj prozor sa svojim skupom težina, a kao rezultat dobijamo nekoliko paralelnih mapa karakteristika na izlazu. Svaka mapa karakteristika (kao slika) se dovodi na ulaz svog sljedećeg sloja prepoznavača, a također prima još nekoliko paralelnih mapa na izlazu. U završnom sloju sve kartice se unose na ulaz konačnog prepoznavača, što može biti prilično jednostavno; u originalu je korišten višeslojni perceptron.



Jasno je da takva obrada slike može uzeti u obzir male deformacije i pomake. Postoji opcija kada se mape karakteristika dodatno paraleliziraju dodavanjem mapa u kojima se dijelovi skeniraju pod različitim uglovima. Zahvaljujući tome, prepoznavač može upravljati okretima. Nastavljajući razmišljanje u ovom smjeru, možete učiniti mnogo zanimljivih stvari, kao što su prozori različitih veličina i nepromjenjivost u odnosu na skalu slike. Možete napraviti dodatne veze koje bi išle ne samo na prethodne karte u hijerarhiji, već i na one udaljenije (miriše na intelektualnu analizu scene). Još jedna zanimljiva opcija je kada mapa karakteristika sljedećeg sloja neće skenirati na jednoj prethodnoj mapi, već sve odjednom (kao što je bilo u originalnom neokognitronu). Obrada odmah postaje teža (trodimenzionalni prozor), ali i moćnija, nažalost, ne znam da li je takva opcija proučavana u konvolucionoj mreži. Ili umjesto ovoga, barem do konačnog prepoznavača, ubacite izlaze ne samo posljednje kartice, već i svih iz hijerarhije.



Arhitektura konvolucione neuronske mreže. Konvolucijski slojevi i slojevi poduzorkovanja.

Zbog ovakvih mapa karakteristika, konvolucione mreže dobijaju kvalitativno drugačiju, moćniju obradu slike (razmislite zašto, zamislite tok formiranja obeležja kada se krećete naviše u hijerarhiji). Kao što vidite, ni ovdje nema dugih logičkih lanaca zaključivanja i nabrajanja opcija, pretraga je kratka i "široka" (istovremeno paralelna na svim mapama karakteristika).

U matematici, ono što prozor radi s originalnim skupom piksela naziva se konvolucija (neka vrsta transformacije prostorne frekvencije), a težine u prozoru djeluju kao filter. Stoga se mreže nazivaju konvolucijskim. Slojevi koji to rade nazivaju se i konvolucijskim slojevima.

Obično se pored karata karakteristika uvode i slojevi usrednjavanja koji, prije nego što mapu predaju sljedećem sloju, smanjuju njenu veličinu usrednjavanjem susjednih piksela (poput skaliranja slike), u suprotnom se dobije ogromna količina proračuna, a u Osim toga, postiže se dodatna generalizacija raznih izobličenja originala.

Kako su takve mreže obučene. Prva opcija, možete napraviti topografsku kartu dijelova pronađenih na originalnoj slici, a zatim uzeti vrijednosti s ove karte i na osnovu njih izgraditi mape karakteristika. Topografske karte su izgrađene na isti način za sljedeće slojeve u hijerarhiji, ali karte karakteristika su već dostavljene kao ulaz. Topografska karta, to znači da sastavljamo neku vrstu rječnika od prosječnih dijelova koji se nalaze na slici. Štaviše, delovi će, prvo, biti raspoređeni u n-dimenzionalnu rešetku, gde će susedi biti slični, a drugo, ono što je za nas najinteresantnije, delovi iz rečnika su veoma pogodni za konstruisanje mapa obeležja, jer su karakteristični i česti fragmenti slike, jer apstraktni ili rijetki dijelovi neće biti uključeni u ovu mapu, ali će slični dijelovi biti grupisani u jedan prosjek. U ovoj verziji obuka se izvodi bez nastavnika, budući da greška između željenog i stvarnog izlaza mreže nije potrebna za pravljenje topografske karte, karakteristike se automatski grupišu prema njihovoj sličnosti. Samo konačni prepoznavač je obučen sa nastavnikom, koji prima izlaze iz mapa karakteristika posljednjeg sloja.


Primjena Kohonenovih karata (dvodimenzionalnih) za smanjenje dimenzionalnosti područja slika lica. Na lijevoj strani je topografska karta područja slike prije treninga, desno - nakon treninga.

Druga opcija je da se težine za mape karakteristika prilagođavaju kao težine neurona u slučaju povratnog širenja greške. Odnosno, postavka dolazi iz mrežnog izlaza, koja kaže koje karakteristike moraju biti izvučene iz slike da bi se dobio rezultat. U originalnom radu o konvolucijskim mrežama stoji da je takva postavka jednostavna, ali ne bih vjerovao autorima na riječ, jer postoji puno opcija, a neće sve dati nešto dobro. U originalnoj verziji, konvoluciona mreža uči i radi veoma brzo, i daje tačnost blizu CMM (ali još manje). SMM, sa druge strane, sa svojom neverovatnom preciznošću, treba veoma dugo da se obuče.

Koja je opcija bolja - ne znam. U teoriji, s obzirom da je konačni prepoznavač obučen s nastavnikom, rezultati bi trebali biti slični.

Iz opisa arhitekture konvolucijskih mreža, da vidimo šta one mogu učiniti:

  • nositi se s deformacijama slike, zbog činjenice da se karakteristika skenira preko cijele slike,
  • znati kako kombinirati komade (naočale/frizuru/...), zbog seta paralelnih karata karakteristika,
  • elastične deformacije (nos ne zalazi iza uha), zbog pretraživanja i usrednjavanja u blizini.

Šta ne mogu. Prvo, skupovi karakteristika se kompajliraju za cijelu sliku u cjelini. U stvari, bilo bi korisno da, kao iu HMM-u, svako susjedstvo (tačnije, za putanju pretraživanja) ima svoj vlastiti skup karakteristika. Odnosno, tako da u predjelu očiju postoje filteri isključivo s različitim fragmentima očiju, ali ne i usta, čak i ako se tamo nikada neće naći. Ovo bi omogućilo da se napravi precizniji vokabular za svako područje, a ne prosječan po cijeloj slici. Ali u isto vrijeme to bi učinilo prepoznavača inhibitivnijim. Drugo (i usko povezano s prvim), tako da se dozvoljene putanje svakog fragmenta jasno razlikuju, a u procesu prepoznavanja se mjere promjene udaljenosti između susjednih fragmenata (tačnije, budući da su svi susjedi u rešetke povezuju, tako da se grade i provjeravaju dozvoljena izobličenja cijele rešetke). Naravno, konvolucione mreže to već rade u nekom obliku, ali intuitivno se čini da se to može učiniti optimalnije. Jednostavnija i brža opcija je izrada lokalnih karata karakteristika (uzimajući u obzir predmetno područje). Na primjer, područje očiju, usta, nosa, ušiju.

To je sve s glavnim metodama prepoznavanja slika (na primjer, prepoznavanje lica). Za druge vrste slika, principi prepoznavanja su isti, prilagođeni njihovom području, njihovim skupovima karakteristika.

Zaključak je sljedeći. Prilikom prepoznavanja slika, slika se prvo predobradi, zatim se karakteristike ručno i/ili automatski izdvajaju, te karakteristike se unose u bilo koji prepoznavač, od kojih je najteža nelinearna podjela površina u prostoru karakteristika. Faza ekstrakcije obilježja može se odvijati korištenjem fizičkih modela za rekonstrukciju suštine objekta, ali to je već egzaktna matematika. Pravila prepoznavanja mogu se zasnivati ​​na logici ljudskog stručnjaka u ovoj oblasti. Druga vrsta prepoznavača (deformacije slike, Markovljevi modeli, konvolucione mreže) pokušava da koristi heurističke metode da ponovo kreira uvjerljiv model domene i da ga superponira na nepoznatu sliku.

I nema čuda. Ili tačne formule plus znanje stručnjaka za ljude, ili teške i univerzalne vjerodostojne modele. Spominjanje načina na koji navodno dolazi do prepoznavanja slike kod ljudi ipak je ljepše riječi nego praktična primjena.

  • Tutorial

Odavno sam želio napisati opći članak koji će sadržavati same osnove prepoznavanja slika, vodič kroz osnovne metode, koji govori kada ih primijeniti, koje zadatke rješavaju, šta se može raditi uveče na koljenima, a šta je bolje ne za razmišljanje bez tima ljudi u 20.

Već duže vrijeme pišem neke članke o optičkom prepoznavanju, pa mi par puta mjesečno pišu razni ljudi s pitanjima na ovu temu. Ponekad imate osjećaj da živite s njima u različitim svjetovima. S jedne strane, razumijete da je osoba najvjerovatnije profesionalac u srodnoj temi, ali zna vrlo malo o metodama optičkog prepoznavanja. A najvrednije je to što pokušava primijeniti metodu iz obližnjeg područja znanja, što je logično, ali ne funkcionira u potpunosti u prepoznavanju slika, ali to ne razumije i jako se uvrijedi ako počne nešto pričati od samih osnova. A s obzirom na to da pričanje iz osnova oduzima puno vremena, što često nije, postaje još tužnije.

Ovaj članak je zamišljen tako da osoba koja se nikada nije bavila metodama prepoznavanja slika može u roku od 10-15 minuta u svojoj glavi stvoriti određenu osnovnu sliku svijeta koja odgovara temi i shvatiti u kojem smjeru treba kopati. Mnoge od ovdje opisanih tehnika primjenjive su na radarsku i audio obradu.
Počeću s nekoliko principa o kojima uvijek počinjemo govoriti potencijalnom kupcu ili osobi koja želi početi raditi optičko prepoznavanje:

  • Kada rješavate problem, uvijek idite od najjednostavnijeg. Mnogo je lakše okačiti narandžastu etiketu na osobu nego pratiti osobu, ističući je kaskadama. Mnogo je lakše uzeti kameru sa višom rezolucijom nego razviti algoritam super rezolucije.
  • Stroga formulacija problema u metodama optičkog prepoznavanja je za redove veličine važnija nego u problemima sistemskog programiranja: jedna dodatna riječ u tehničkoj specifikaciji može dodati 50% posla.
  • Ne postoje univerzalna rješenja za probleme prepoznavanja. Ne možete kreirati algoritam koji će jednostavno “prepoznati bilo koji natpis”. Znak na ulici i list teksta su suštinski različiti objekti. Vjerovatno možete napraviti opći algoritam (ovdje je dobar primjer iz Google-a), ali to će zahtijevati puno rada velikog tima i sastoji se od desetina različitih potprograma.
  • OpenCV je biblija koja ima mnogo metoda i pomoću koje možete riješiti 50% obima gotovo svakog problema, ali OpenCV je samo mali dio onoga što zapravo možete učiniti. U jednoj studiji, zaključci su napisani: "Problem se ne rješava OpenCV metodama, stoga je nerješiv." Pokušajte to izbjeći, ne budite lijeni i trezveno procijenite trenutni zadatak svaki put od nule, bez korištenja OpenCV šablona.
Vrlo je teško dati neki univerzalni savjet, ili vam reći kako da napravite neku vrstu strukture oko koje možete izgraditi rješenje za proizvoljne probleme kompjuterskog vida. Svrha ovog članka je strukturirati ono što možete koristiti. Pokušaću da podelim postojeće metode u tri grupe. Prva grupa je preliminarno filtriranje i priprema slike. Druga grupa je logička obrada rezultata filtriranja. Treća grupa su algoritmi za donošenje odluka zasnovani na logičkoj obradi. Granice između grupa su vrlo uslovne. Za rješavanje problema nije uvijek potrebno primijeniti metode iz svih grupa, ponekad su dovoljne dvije, a ponekad čak i jedna.

Lista metoda koja je ovdje navedena je nepotpuna. Predlažem da u komentare dodate kritičke metode koje nisam napisao i da svakom pripišete 2-3 popratne riječi.

Dio 1. Filtracija

U ovu grupu sam stavio metode koje vam omogućavaju da istaknete područja od interesa na slikama bez njihove analize. Većina ovih metoda primjenjuje neku vrstu uniformne transformacije na sve piksele na slici. Na nivou filtriranja, slika se ne analizira, ali se tačke koje se filtriraju mogu smatrati oblastima sa posebnim karakteristikama.
Binarizacija praga, izbor područja histograma
Najjednostavnija transformacija je granična binarizacija slike. Za RGB sliku i sliku u nijansama sive, prag je vrijednost boje. Postoje idealni zadaci u kojima je takva transformacija dovoljna. Recimo da želite automatski odabrati objekte na bijelom listu papira:




Izbor praga na kojem dolazi do binarizacije u velikoj mjeri određuje sam proces binarizacije. U ovom slučaju, slika je binarizirana prosječnom bojom. Obično se binarizacija vrši pomoću algoritma koji adaptivno bira prag. Ovaj algoritam može biti izbor očekivanja ili moda. I možete odabrati najveći vrh histograma.

Binarizacija može dati vrlo zanimljive rezultate kada se radi sa histogramima, uključujući i kada razmatramo sliku ne u RGB, već u HSV. Na primjer, segmentirajte boje koje vas zanimaju. Ovaj princip se može koristiti za izgradnju i detektora oznaka i detektora ljudske kože.
Klasično filtriranje: Fourier, LPF, HPF
Klasične metode filtriranja od radara i obrade signala mogu se uspješno primijeniti u različitim zadacima prepoznavanja uzoraka. Tradicionalna metoda u radaru, koja se gotovo nikada ne koristi u čistim slikama, je Fourierova transformacija (tačnije, FFT). Jedan od rijetkih izuzetaka za koje se koristi jednodimenzionalna Fourierova transformacija je kompresija slike. Za analizu slike, jednodimenzionalna transformacija obično nije dovoljna; morate koristiti mnogo više resursno intenzivnu dvodimenzionalnu transformaciju.

Malo ljudi to stvarno izračuna, obično je mnogo brže i lakše koristiti konvoluciju područja od interesa sa gotovim filterom naoštrenim za visoke (HPF) ili niske (LPF) frekvencije. Ova metoda, naravno, ne dozvoljava analizu spektra, ali specifičan zadatak obrade video zapisa obično ne zahtijeva analizu, već rezultat.


Najjednostavniji primjeri filtera koji naglašavaju niske frekvencije (Gausov filter) i visoke frekvencije (Gaborov filter).
Za svaku tačku na slici odabire se prozor koji se množi sa filterom iste veličine. Rezultat ove konvolucije je nova vrijednost bodova. Prilikom implementacije niskopropusnog i visokopropusnog filtera dobijaju se slike sljedećeg tipa:



Wavelets
Ali što ako koristimo neku proizvoljnu karakterističnu funkciju za konvoluciju sa signalom? Tada će se zvati "Wavelet transform". Ova definicija talasa nije tačna, ali tradicionalno se razvilo da je u mnogim naredbama talasna analiza potraga za proizvoljnim uzorkom na slici koristeći konvoluciju sa modelom ovog uzorka. Postoji skup klasičnih funkcija koje se koriste u talasnoj analizi. To uključuje Haar talas, Morlet talas, meksički šešir talas, itd. Haar primitivi, o kojima je bilo nekoliko mojih prethodnih članaka (,), odnose se na takve funkcije za dvodimenzionalni prostor.


Iznad su 4 primjera klasičnih talasa. 3D Haar wavelet, 2D Meyer wavelet, Mexican Hat wavelet, Daubechies wavelet. Dobar primjer korištenja proširene interpretacije talasa je problem pronalaženja bljeska u oku, za koji je sama bljesak talas:

Klasični talasi se obično koriste za kompresiju slika ili za njihovu klasifikaciju (opisano u nastavku).
Korelacija
Nakon ovako slobodnog tumačenja talasa s moje strane, vrijedno je spomenuti stvarnu korelaciju koja je u njihovoj osnovi. To je nezamjenjiv alat za filtriranje slika. Klasična aplikacija je korelacija video tokova za pronalaženje pomaka ili optičkih tokova. Najjednostavniji detektor pomaka je u izvesnom smislu i korelator razlike. Tamo gdje slike nisu u korelaciji, bilo je kretanja.

Funkcije filtriranja
Zanimljiva klasa filtera je filtriranje funkcija. Ovo su čisto matematički filteri koji vam omogućavaju da otkrijete jednostavnu matematičku funkciju na slici (prava, parabola, krug). Gradi se akumulirajuća slika u kojoj se za svaku tačku originalne slike iscrtava skup funkcija koje je generiraju. Najklasičnija transformacija je Houghova transformacija za linije. U ovoj transformaciji, za svaku tačku (x; y), crta se skup tačaka (a; b) prave linije y = ax + b, za koje je tačna jednakost. Dobijamo prelepe slike:


(prvi plus je onome ko prvi pronađe kvaku na slici i takvu definiciju i objasni je, drugi plus onome ko prvi kaže ovo što je prikazano)
Hough transformacija vam omogućava da pronađete bilo koju funkciju koja se može parametrirati. Na primjer, krug. Postoji modificirana transformacija koja vam omogućava da tražite bilo koji oblik. Ova transformacija je užasno draga matematičarima. Ali prilikom obrade slika, to, nažalost, ne funkcionira uvijek. Vrlo mala brzina, vrlo visoka osjetljivost na kvalitet binarizacije. Čak iu idealnim situacijama, radije sam se snalazio sa drugim metodama.
Analog Houghove transformacije za prave linije je Radon transformacija. Izračunava se putem FFT-a, što daje prednost performansama u situaciji kada ima puno bodova. Osim toga, može se primijeniti na nebinariziranu sliku.
Filtriranje obrisa
Posebna klasa filtera je filtriranje granica i obrisa. Obrisi su veoma korisni kada želimo da pređemo sa rada sa slikom na rad sa objektima na toj slici. Kada je objekt dovoljno složen, ali dobro definiran, tada je često jedini način rada s njim odabir njegovih kontura. Postoji niz algoritama koji rješavaju problem filtriranja kontura:

Najčešće se koristi Kenny, koji dobro radi i čija implementacija je u OpenCV-u (Sobel je također tu, ali lošije izgleda za konture).



Ostali filteri
Iznad su filteri čije modifikacije pomažu u rješavanju 80-90% problema. Ali osim njih, postoje rijetki filteri koji se koriste u lokalnim zadacima. Takvih filtera ima na desetine, neću ih sve nabrajati. Zanimljivi su iterativni filteri (na primjer, model aktivnog izgleda), kao i ridgelet i curvlet transformacije, koji su legura klasičnog talasnog filtriranja i analize u polju transformacije radona. Beamlet transformacija radi lijepo na granici wavelet transformacije i logičke analize, omogućavajući vam da istaknete konture:

Ali ove transformacije su vrlo specifične i prilagođene su rijetkim zadacima.

Dio 2. Logička obrada rezultata filtriranja

Filtriranje pruža skup podataka pogodnih za obradu. Ali često ne možete samo uzeti i koristiti ove podatke bez obrade. U ovom odeljku biće nekoliko klasičnih metoda koje vam omogućavaju da od slike pređete na svojstva objekata ili na same objekte.
Morfologija
Prelazak sa filtriranja na logiku, po mom mišljenju, su metode matematičke morfologije (,,). Zapravo, ovo su najjednostavnije operacije stvaranja i erodiranja binarnih slika. Ove metode vam omogućavaju da uklonite šum iz binarne slike povećanjem ili smanjenjem postojećih elemenata. Na osnovu matematičke morfologije postoje algoritmi za konturiranje, ali obično koriste neku vrstu hibridnih algoritama ili algoritama u sprezi.
Analiza konture
Algoritmi za dobijanje granica su već pomenuti u odeljku o filtriranju. Rezultirajuće granice se jednostavno pretvaraju u konture. Za Cannyjev algoritam to se događa automatski, za druge algoritme je potrebna dodatna binarizacija. Možete dobiti konturu za binarni algoritam, na primjer, algoritmom buba.
Kontura je jedinstvena karakteristika objekta. Ovo često omogućava identifikaciju objekta duž konture. Postoji moćan matematički aparat koji vam to omogućava. Aparat se naziva analiza kontura (,).

Da budem iskren, nikada nisam uspio primijeniti analizu kontura u stvarnim problemima. Potrebni su previše idealni uslovi. Ili nema granice, ili je previše buke. Ali, ako trebate nešto prepoznati u idealnim uvjetima, onda je analiza kontura odlična opcija. Radi veoma brzo, lepa matematika i jasna logika.
Posebne tačke
Pojedinačne tačke su jedinstvene karakteristike objekta koje vam omogućavaju da povežete objekat sa samim sobom ili sa sličnim klasama objekata. Postoji nekoliko desetina načina za isticanje takvih tačaka. Neke metode ističu posebne tačke u susjednim okvirima, neke nakon dužeg vremenskog perioda i pri promjeni osvjetljenja, neke vam omogućavaju da pronađete posebne točke koje ostaju tako čak i kada se objekt rotira. Počnimo s metodama koje nam omogućavaju da pronađemo singularne tačke koje nisu tako stabilne, ali se brzo izračunavaju, a zatim idemo u sve veću složenost:
Prvi razred. Singularne tačke koje su stabilne sekundama. Takve tačke se koriste za vođenje objekta između susjednih video okvira ili za spajanje slika sa susjednih kamera. Ove tačke uključuju lokalne maksimume slike, uglove slike (najbolji od detektora, možda Haris detektor), tačke u kojima se postižu maksimumi disperzije, određene gradijente itd.
Druga klasa. Posebne tačke koje su stabilne sa promenama osvetljenja i malim pokretima subjekta. Takve tačke se prvenstveno koriste za obuku i naknadnu klasifikaciju tipova objekata. Na primjer, pješački klasifikator ili klasifikator lica je proizvod sistema izgrađenog oko takvih tačaka. Neki od prethodno navedenih talasa mogu biti osnova za takve tačke. Na primjer, Haar primitivi, pretraživanje odsjaja, traženje drugih specifičnih funkcija. Ove tačke uključuju tačke pronađene metodom histograma usmjerenog gradijenta (HOG).
Treća klasa. Stabilne tačke. Znam samo za dvije metode koje daju potpunu stabilnost i za njihove modifikacije. To su SURF i SIFT. Oni vam omogućavaju da pronađete posebne tačke čak i kada rotirate sliku. Izračunavanje takvih bodova traje duže od drugih metoda, ali je prilično ograničeno vrijeme. Nažalost, ove metode su patentirane. Iako u Rusiji algoritmi nisu patentirani, pa ih koristite za domaće tržište.

Dio 3. Obuka

Treći dio priče će biti posvećen metodama koje ne rade direktno sa slikom, ali koje omogućavaju donošenje odluka. To su uglavnom različite metode mašinskog učenja i donošenja odluka. Nedavno je Yandyks objavio kurs na ovu temu na Habru, postoji jako dobar izbor. Evo ga u tekstualnoj verziji. Za ozbiljno proučavanje teme, toplo preporučujem da ih pogledate. Ovdje ću pokušati opisati nekoliko osnovnih metoda koje se koriste u prepoznavanju obrazaca.
U 80% situacija, suština učenja u problemu prepoznavanja je sljedeća:
Postoji testni set koji sadrži nekoliko klasa objekata. Neka to bude prisustvo/odsustvo osobe na fotografiji. Za svaku sliku postoji skup karakteristika koje su identifikovane nekom karakteristikom, bilo da je to Haar, HOG, SURF ili neka vrsta talasa. Algoritam učenja mora izgraditi takav model, prema kojem će moći analizirati novu sliku i odlučiti koji se od objekata nalazi na slici.
Kako se to radi? Svaka od testnih slika je tačka u prostoru obeležja. Njegove koordinate su težina svake od karakteristika na slici. Neka naši znaci budu: "Prisustvo očiju", "Prisustvo nosa", "Prisustvo dve ruke", "Prisustvo ušiju" itd... čoveka. Za osobu u takvom prostoru, poenta će biti tačna. Za majmuna, poenta je za konja. Klasifikator je obučen na uzorku primjera. Ali nisu na svim fotografijama prikazane ruke, druge nemaju oči, a na trećoj majmun ima ljudski nos zbog greške u klasifikatoru. Obučeni ljudski klasifikator automatski deli prostor obeležja na način da kaže: ako prva karakteristika leži u opsegu 0,5 U suštini, svrha klasifikatora je da u prostor obeležja uvuče oblasti koje su karakteristične za objekte klasifikacije. Ovako će izgledati uzastopna aproksimacija odgovora za jedan od klasifikatora (AdaBoost) u dvodimenzionalnom prostoru:


Postoji mnogo klasifikatora. Svaki od njih bolje radi u nekom svom zadatku. Zadatak odabira klasifikatora za određeni zadatak je na mnogo načina umjetnost. Evo nekoliko lijepih slika na ovu temu.
Jednostavno kućište, jednodimenzionalno razdvajanje
Analizirajmo na primjeru najjednostavniji slučaj klasifikacije, kada je prostor karakteristika jednodimenzionalan, a trebamo podijeliti 2 klase. Situacija se događa češće nego što se može zamisliti: na primjer, kada trebate razlikovati dva signala ili uporediti uzorak s uzorkom. Recimo da imamo uzorak za obuku. U ovom slučaju se dobija slika, gde će na X-osi biti mera sličnosti, a na Y-osi - broj događaja sa takvom merom. Kada traženi objekat izgleda kao sam, dobija se lijevi Gaussian. Kad ne kao - tačno. Vrijednost X = 0,4 dijeli uzorke tako da pogrešna odluka minimizira vjerovatnoću donošenja bilo kakve pogrešne odluke. Potraga za takvim separatorom je problem klasifikacije.


Mala primedba. Kriterijum koji minimizira grešku neće uvijek biti optimalan. Sljedeći graf je graf stvarnog sistema za prepoznavanje šarenice. Za takav sistem kriterijum se bira tako da se minimizira verovatnoća lažnog ulaska neovlašćenog lica u objekat. Ova vjerovatnoća se naziva "greška prve vrste", "vjerovatnoća lažnog alarma", "lažno pozitivna". U literaturi na engleskom jeziku "False Access Rate".
) AdaBusta je jedan od najčešćih klasifikatora. Na primjer, na njemu je izgrađena Haar kaskada. Obično se koriste kada je potrebna binarna klasifikacija, ali ništa vas ne sprečava da predajete za veći broj časova.
SVM (,,,) Jedan od najmoćnijih klasifikatora sa mnogo implementacija. U osnovi, na zadacima učenja s kojima sam se susreo, radio je na sličan način kao adabusta. Smatra se da je dovoljno brz, ali je njegov trening teži od onog kod Adabuste i potreban je odabir ispravnog jezgra.

Tu su i neuronske mreže i regresija. Ali da bismo ih ukratko klasifikovali i pokazali po čemu se razlikuju, potreban je članak mnogo više od ovog.
________________________________________________
Nadam se da sam uspio napraviti brzi pregled korištenih metoda bez poniranja u matematiku i opis. Možda će nekome pomoći. Iako je, naravno, članak nepotpun i nema ni riječi o radu sa stereo slikama, niti o OLS-u sa Kalmanovim filterom, niti o adaptivnom Bayesovom pristupu.
Ako vam se sviđa članak, pokušat ću napraviti drugi dio s izborom primjera kako se rješavaju postojeći zadaci ImageRecognition.

I na kraju

Šta čitati?
1) Jednom mi se jako svidjela knjiga "Digitalna obrada slike" B. Yanea, koja je napisana jednostavno i jasno, ali je u isto vrijeme predstavljena gotovo sva matematika. Dobro za upoznavanje sa postojećim metodama.
2) Klasici žanra su R. Gonzalez, R. Woods "Digitalna obrada slike". Iz nekog razloga mi je bilo teže od prvog. Mnogo manje matematike, ali više metoda i slika.
3) "Obrada i analiza slike u zadacima mašinskog vida" - napisano na osnovu predmeta koji se izvodi na jednom od odsjeka PhysTech. Postoji mnogo metoda i njihovih detaljnih opisa. Ali po mom mišljenju, knjiga ima dvije velike mane: knjiga je snažno fokusirana na softverski paket koji dolazi uz nju, u knjizi se prečesto opis jednostavne metode pretvara u matematičku džunglu, od koje je teško napraviti strukturni dijagram metode. Ali autori su napravili zgodnu stranicu na kojoj je predstavljen gotovo sav sadržaj - wiki.technicalvision.ru Dodaj oznake

Detekcija i prepoznavanje objekata sastavni je dio ljudske aktivnosti. Još uvijek nije sasvim jasno kako čovjek uspijeva tako precizno i ​​tako brzo izolirati i prepoznati potrebne objekte u raznolikom okruženju. Fiziolozi i psiholozi pokušavaju da otkriju više od stotinu godina. Međutim, ovdje naš cilj nije razumjeti mehanizam percepcije ljudi (i životinja), već opisati metode automatiziranog prepoznavanja objekata sa njihovih slika: nova informatička tehnologija, moćna, praktična i, u izvjesnom smislu, univerzalna metodologija za obrada i evaluacija informacija i otkrivanje skrivenih obrazaca.

Prepoznavanje trodimenzionalnih objekata iz njihovih dvodimenzionalnih slika nedavno je postao jedan od najvažnijih zadataka u analizi scene i mašinskom vidu. Početne informacije za prepoznavanje sadrže slike u različitim dijelovima punog spektra zračenja (optičko, infracrveno, ultrazvučno, itd.), dobivene različitim metodama (televizijskim, fotografskim, laserskim, radarskim, radijacijskim itd.), pretvorene u digitalni oblik i predstavljen u obliku neke numeričke matrice. Pod objektom podrazumijevamo ne samo (i to ne toliko) digitalnu predstavu lokalnog fragmenta dvodimenzionalne scene, već neki njegov približni opis, u obliku skupa karakterističnih svojstava (obilježja). Osnovna svrha opisa (slike objekata) je njihova upotreba u procesu utvrđivanja korespondencije objekata, koji se vrši upoređivanjem (upoređivanjem). Zadatak prepoznavanja je utvrditi "skrivenu" pripadnost objekta određenoj klasi analizom vektora vrijednosti promatranih karakteristika. Algoritam za prepoznavanje mora izdvojiti informacije o odnosu između vrijednosti atributa objekta i njegove pripadnosti određenoj klasi iz skupa objekata za obuku za koje su ili poznate vrijednosti i atributa i klasa, ili samo vrijednosti njihovih atributa. U prvom slučaju, zadatak se zove zadatak podučavanja prepoznavanja obrazaca s nastavnikom, au drugom - bez nastavnika. Ovdje se pretpostavlja da svaki objekt "pripada" jednoj slici iz nekog fiksnog skupa. Prilikom dodjele (klasifikacije) objekata potrebno je primijeniti neko prethodno utvrđeno pravilo kako bi se odlučilo kojoj slici (klasi) objekt pripada. U problemu prepoznavanja uz obuku, pravilo klasifikacije treba razviti na osnovu proučavanja skupa objekata za koje je poznato da pripadaju različitim klasama. Ovi objekti se zajednički nazivaju skup za obuku ili uzorak. U problemu automatskog formiranja slika, objekti se predstavljaju "posmatraču" bez navođenja njihove pripadnosti razredima (prepoznavanje bez nastavnika). Posmatrač (algoritam za prepoznavanje) mora samostalno konstruisati odgovarajuću definiciju klasa (klaster analiza). Naravno, takav pristup analizi slike je adekvatan samo jednom od dva aspekta dvojnog problema detekcije i prepoznavanja objekata u sceni, odnosno stvarnom prepoznavanju klase sasvim određenog (odabranog) fragmenta slike, koji se smatra kao spoljašnja manifestacija neke skrivene slike. U ovom slučaju, prinuđeno je pretpostaviti da je problem segmentacije već riješen, odnosno određivanje granica fragmenata, od kojih se svaki može smatrati jedinstvenom cjelinom (objektom).

Istraživanje prepoznavanja slika prostornih objekata odlikuje se velikom raznolikošću u formulaciji problema i izboru sredstava za njihovo rješavanje (metode obrade odgovarajućih fragmenata slika), što je posljedica raznovrsnosti područja praktične primjene. Tradicionalni zadaci, koji su rešeni još u prvim eksperimentalnim razvojima sistema mašinskog vida, su zadaci detekcije i prepoznavanja objekata zadatog oblika na osnovu bučnih i (eventualno) deformisanih slika. Dakle, jedan od prvih praktičnih problema koji je potaknuo formiranje i razvoj teorije prepoznavanja objekata bio je problem identifikacije i prepoznavanja ljudskih lica.

Rice. 9.1. Ilustracija problema prepoznavanja ljudskog lica i pristupi odabiru informativnih fragmenata (izvor)

Složenost ovog zadatka je zbog raznovrsnosti mogućih uglova (skala, položaja, uglova rotacije) prepoznatih lica (vidi sliku 9.1). Ovdje prvo trebate izgraditi internu reprezentaciju objekata, uključujući projekcije slike. Ovaj zadatak se još uvijek široko koristi u sigurnosnim sistemima, verifikaciji kreditnih kartica, forenzici, telekonferencijama itd. Za njegovo rješavanje predlažu se metode prepoznavanja zasnovane na teoriji neurokompjuterskih mreža, korelaciono-ekstremalni algoritmi, metode za izračunavanje statističkih i algebarskih momenata, analiza kontura, 3D modeliranje itd. Među njima se posebna pažnja posvećuje smjeru koji je povezan s automatskim odabirom karakterističnih (informativnih) karakteristika objekata scene, u ovom slučaju elemenata očiju, nosa, usta, brade - sl. 9.1.

Nešto kasnije, u zadacima praćenja (kontrole) prirodnog okruženja sa vazduhoplovnih snimaka, zacrtano je nekoliko važnijih pristupa konstrukciji informativnih obeležja. Konkretno, kada su dobijeni prvi multispektralni i multispektralni podaci daljinskog istraživanja, većina programera metoda mašinske interpretacije okrenula se proučavanju spektralnih svojstava prirodnih objekata, budući da je svjetlina odgovarajućih elemenata slike u različitim spektralnim rasponima omogućila njihovu identifikaciju na relativno niske računske troškove.

Rice. 9.2. Klaster analiza spektralne svjetline prirodnih objekata, mapirana i dvodimenzionalna ravan para informativnih spektralnih kanala

Najčešći metod obrade bila je „nenadzirana klasifikacija“ zasnovana na klaster analizi, uz pomoć koje je prostor spektralnih karakteristika podeljen na prepoznatljive grupe (klasteri, vidi sliku 9.2), a klasifikacija elemenata slike je omogućila da se istovremeno segmentirati scenu u spektralno homogene regije.

Osim toga, utvrđeno je da su se u prepoznavanju prirodnih formacija, pored spektrozonskih karakteristika, od izuzetne važnosti pokazala obilježja koja karakteriziraju lokalnu prostornu organizaciju polutonova (teksture) objekata analize. Iskusni operater dekodera oslanja se na takve informacije (oblik, orijentacija, distribucija karakterističnih elemenata, kontekst i druge prostorne karakteristike) ponekad više nego na multispektralne karakteristike. U svakom slučaju, privlačnost teksturnih karakteristika može značajno povećati pouzdanost prepoznavanja i povećati broj prepoznatljivih klasa prirodnih objekata.

U eksperimentalnim studijama usmjerenim na rješavanje specifičnih problema, početni podaci su skup fragmenata slike (objekata scene), koje dešifriraju stručnjaci za predmet i koji služe kao materijal za obuku i kontrolu. Ovdje je primarni cilj razvoja algoritma za prepoznavanje da se odgovori na pitanje da li je moguća automatska analiza i klasifikacija odgovarajućih slika objekata i, ako jeste, koji skup karakteristika dešifriranja je najefikasniji i koju strukturu treba da vlada odluka i metoda dešifriranja imaju.

Top srodni članci