Kako postaviti pametne telefone i računala. Informativni portal
  • Dom
  • Programi
  • Prepoznavanje objekata. Analiza slike na temelju proširenja osnovnih funkcija

Prepoznavanje objekata. Analiza slike na temelju proširenja osnovnih funkcija

Skeniranje slike i otkrivanje objekata u njoj je zadatak broj 1 u obradi slike i računalnog vida. Pretraživanje za "automatsko prepoznavanje slike" na Google akademijama vratit će mnoge članke sa složenim jednadžbama i algoritmima od ranih 90-ih do danas. To sugerira da ovaj problem zaokuplja znanstvenike od samog pojavljivanja web pretraživanja, ali još nije riješen.

Osnivač CognitiveSEO-a Razvan Gavrilas vjeruje da će Google u bliskoj budućnosti promijeniti svoje algoritme za rangiranje slika, što će utjecati na pretraživanje, a zapravo i na optimizaciju tražilica diljem 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, otkrivanje objekata na slikama postat će 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 nerelevantnih rezultata prilikom pretraživanja određene ključne riječi bit će manji (ovisno o tome što 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 - hoće li prepoznavanje uzoraka biti početak "nove ere" za manipulaciju objektima na slikama kao nova mutna SEO tehnika? Ne, jer algoritmi tražilice ovih dana lako otkrivaju ovu vrstu neželjene pošte.

Google, umjetna inteligencija i prepoznavanje slika

Sveučilište Stanford je 2010. godine održalo prvo natjecanje ILSVRC (ImageNet large-scale visual recognition challenge) na kojem programeri demonstriraju mogućnosti svojih sustava za prepoznavanje slika.

ILSVRC ima tri glavne faze:

  • klasifikacija,
  • klasifikacija s lokalizacijom,
  • otkrivanje.

U prvom slučaju procjenjuje se sposobnost algoritma da stvori ispravne "naslove" na slici (označavanje), lokalizacija uključuje odabir glavnih objekata na slici, problem detekcije je formuliran na sličan način, ali postoji su stroži kriteriji ocjenjivanja.

U slučaju detekcije, algoritam prepoznavanja mora opisati složenu sliku s mnogo objekata, odrediti njihovu lokaciju i točno identificirati svaki od njih. To znači da ako se netko vozi mopedom na slici, tada bi softver trebao moći ne samo razlikovati nekoliko zasebnih objekata (na primjer, moped, osobu i kacigu), već i pravilno ih pozicionirati u prostoru i klasificirati ispravno. Kao što vidimo na donjoj slici, pojedinačne stavke su točno identificirane i razvrstane.

Bilo koja tražilica s ovom sposobnošću bi otežala svakome da fotografije ljudi na mopedima promiče kao fotografije vozača Porschea manipuliranjem metapodacima. Algoritam sposoban prepoznati objekte je prilično napredan i moći će raščlaniti bilo koju, uključujući i najsloženiju, sliku.

2014. godine na natjecanju ILSVRC pobijedio je tim GoogLeNet. Ime je izvedeno iz riječi Google i LeNet - jedna od implementacija konvolucione neuronske mreže. Takva mreža može brzo učiti, a također proizvoditi rezultate čak i s malom količinom memorije zbog više od deseterostrukog smanjenja broja parametara, u usporedbi s većinom drugih modela računalnog vida.

Pojam "neuralne mreže" označava umjetne neuronske mreže (ANN), koje su računski modeli temeljeni na principima učenja i prepoznavanja uzoraka. Primjer rada algoritma za otkrivanje objekata prikazan je u nastavku:

GoogLeNet tim koristi specifičnu vrstu ANN - konvolucionu neuronsku mrežu, koja radi u kojoj pojedini neuroni reagiraju na različita (ali preklapajuća) područja u vidnom polju. Ta se područja mogu spojiti 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 konvolucijske neuronske mreže je dobra translacijska podrška – bilo koja vrsta kretanja objekta iz jednog prostora u drugi. Infrastruktura DistBelief može odabrati objekt bez obzira gdje se nalazi na slici.

Još jedna korisna infrastrukturna značajka je invarijantnost mjerila, prema kojoj se svojstva objekata ne mijenjaju ako se ljestvice duljine pomnože sa zajedničkim faktorom. To znači da okvir DistBelief mora jasno prepoznati sliku, na primjer, "naranče", neovisno o tome je li velika (na pozadi stola) ili sićušna (na ikoni). U oba slučaja, objekt je narančast i klasificiran je kao "narančasti".

Potrebno je reć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 stanice A dovoljno blizu da pobuđuje stanicu B i stalno ili više puta sudjeluje u njenom pobuđivanju, tada postoji neki proces rasta ili metaboličke promjene u jednoj ili obje stanice, što dovodi do povećanja učinkovitosti A kao jedne od stanica koje pobuđuju B”.

Razvan Gavrilas malo pojednostavljuje citat: "Stanice koje su pobuđene zajedno se vežu." U slučaju ANN-a, "stanice" treba zamijeniti s "neuronima". Gradeći daljnju analogiju, može se reći da će se softver moći educirati kako bi se neprestano usavršavao.

Google zapošljava stručnjake za umjetnu inteligenciju i prepoznavanje slika

Google razvija vlastitu tehnologiju za prepoznavanje slika na temelju razvoja trećih strana, na primjer, za to je kupljena startup tvrtka DNNresearch, koja se bavi istraživanjem u području prepoznavanja objekata i glasa. DNNresearch je startup, u trenutku preuzimanja imao je troje zaposlenika koji su automatski postali zaposlenici Googlea. Dobili su bespovratna sredstva za potporu radu u području neuronskih mreža. Nove tehnologije koje Google može primijeniti za poboljšanje kvalitete pretraživanja slika.

Prema Googleovoj strategiji, mnoga rješenja otvorenog koda ostaju dostupna drugim tvrtkama. To se radi radi razvoja tržišta. Prema Razvanu, zašto gušiti svoje konkurente kada si ga nakon nekog vremena možete priuštiti kupiti?

Još jedna zanimljiva Googleova akvizicija je DeepMind, koji ima ulaganje od 400 milijuna dolara. Ova i mnoge druge akvizicije prvenstveno su usmjerene na privlačenje kvalificiranih ljudi u Google, a ne na neka gotova rješenja. Ovakvi potezi kupnje tvrtki svjedočanstvo su da Google, Facebook i druge internetske tvrtke jure za "mozgom" za daljnjim razvojem u području umjetne inteligencije.

Google+ već koristi prepoznavanje objekata na slikama. Sljedeći na redu za Google pretraživanje?

Zapravo, algoritam za detekciju slike utemeljen na neuronskoj mreži radi na Google+ već više od godinu dana. Neki od softverskih kodova prikazanih 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 značajke:

  • Googleov algoritam uzima u obzir korespondenciju objekata na web slikama (izbliza, umjetna rasvjeta, detalji) s objektima na prirodnim fotografijama (srednji plan, prirodno svjetlo sa sjenama, različiti stupnjevi detalja). Drugim riječima – cvijet bi trebao ostati cvijet čak i na slikama s različitim razlučivostima ili uvjetima osvjetljenja.
  • Neki specifični vizualni razredi se pomiču iz općih jedinica. Na primjer, na velikom popisu naziva cvijeća koje algoritam razlikuje, neke su pojedinačne biljke označene, na primjer, hibiskus ili dalija.
  • Googleov algoritam za prepoznavanje slika također je uspio naučiti raditi s apstraktnim kategorijama objekata, ističući određeni broj slika koje bi se mogle kategorizirati kao "ples", "hrana", "poljupci". Potrebno je mnogo više vremena od jednostavnog utvrđivanja omjera naranče i naranče.

Klase s različitim značenjima također se dobro obrađuju. Primjer je "automobil". Je li ovo snimak automobila ako na njemu vidimo cijeli auto? Smatra li se slika interijera automobila fotografijom automobila ili je nešto drugo? Na oba pitanja bismo odgovorili potvrdno, a isto radi i Googleov algoritam za prepoznavanje.

Treba napomenuti da je sustav za prepoznavanje slika još nedovršen. Međutim, čak iu svom "sirovom" obliku, Googleov algoritam je iznad svih dosadašnjih razvoja u području računalnog vida.

Je li tehnologija prepoznavanja slika dio Googleovog grafikona znanja?

Googleov novi algoritam dio je "strojnog učenja", koji je dijelom implementiran u Grafikon znanja. Sadrži entitete - objekte namijenjene zamjeni znakova koji se ne mogu susresti u njihovom "čistom" obliku u HTML-tekstu, na primjer, znak "

Svaki objekt i svaka klasa objekata dobivaju jedinstvenu šifru, tako da se životinjski "jaguar" nikada neće zamijeniti s istoimenim automobilom. Na temelju ovih kodova, algoritam za prepoznavanje može koristiti bazu znanja. Zapravo, Google stvara "pametno pretraživanje" koje razumije i prevodi vaše riječi i slike u stvarne simboličke objekte.

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

Značajka prepoznavanja slike može biti korisna gdje god želite znati što je na slici.

S konvencionalnog stajališta SEO-a, prepoznavanje slika je veliki korak naprijed. To pomaže poboljšanju kvalitete sadržaja, jer postaje gotovo nemoguće prevariti tražilicu pogrešno označavanjem fotografija ili velikog broja njih.

Dobar vizualni sadržaj (tj. visoka kvaliteta slike, jasno vidljivi objekti, relevantnost fotografije) vjerojatno će igrati važnu ulogu u svemu što se odnosi na vizualno pretraživanje.

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

Zaključak

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

Dakle, prema riječima Razvana Gavrilasa, Googleovi organski rezultati pretraživanja uskoro će se promijeniti. Tražilica će se kretati "od redaka do stvari", zapravo, integrirajući svoj graf znanja u krajolik pretraživanja. Algoritmi pretraživanja također će se promijeniti, koji će se vjerojatno odnositi na stvarne objekte u sadržaju i odrediti kako će se ti objekti međusobno povezati.

Svaki objekt može se okarakterizirati skupom određenih značajki. Broj značajki ovisi o složenosti samog objekta. Točnost odabira značajke utjecat će na učinkovitost prepoznavanja objekta opisanog ovim skupom.

Razmotrimo primjer prepoznavanja jednostavnih objekata na temelju skupa značajki. 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 testnu sliku u Matlab radni prostor

L = imread ("test_image.bmp");

i vizualizirati ga

Slika, prikaz (L);

Napravimo nekoliko komentara na izvornu sliku. U našem slučaju početni podaci su predstavljeni binarnom slikom. To donekle pojednostavljuje naš zadatak, budući da je glavni naglasak u ovom primjeru na prepoznavanju objekata. Međutim, kod rješavanja problema prepoznavanja na temelju stvarnih slika, u većini je slučajeva važno originalnu sliku pretvoriti u binarnu. Kvaliteta rješavanja ovog problema uvelike određuje učinkovitost daljnjeg prepoznavanja.

Funkcije bwlabel i imfeature koriste 2D slike u sivim tonovima kao ulaz. Budući da je slika test_image.bmp generirana kao binarna, ali spremljena 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 može se postići korištenjem funkcije rgb2gray. Dakle, matrica L predstavlja binarnu dvodimenzionalnu sliku.

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

Veličina (L);

Dalje, trebate lokalizirati, t.j. odrediti položaj objekata na slici. Da bismo to učinili, koristit ćemo funkciju bwlabel, koja traži binarnu sliku za povezane regije piksela objekta i stvara matricu čiji je svaki element jednak broju objekta kojem pripada odgovarajući piksel izvorne slike. Parametar num dodatno vraća broj objekata pronađenih u izvornoj binarnoj slici.

Bwlabel (L, 8);

Osim toga, u funkciji bwlabel naveden je još jedan parametar - vrijednost povezivanja.

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

U okviru ovog primjera primijenit ćemo najvizualniji statistički pristup klasifikaciji objekata na temelju morfometrijskih obilježja. Glavne morfometrijske značajke uključuju koeficijente oblika:

  1. 'Čvrstoća' - koeficijent konveksnosti: jednak omjeru površine i konveksne površine objekta. Predstavljeno brojem u rasponu (0,1).
  2. 'Prosjek' - faktor popunjavanja: jednak omjeru površine objekta i površine graničnog pravokutnika. Predstavljeno brojem u rasponu (0,1).
  3. 'Ekscentricitet' - ekscentricitet elipse s glavnim momentima tromosti jednakim glavnim momentima tromosti objekta. Predstavljeno brojem u rasponu (0,1).

Budući da se u ovom primjeru koristi probna slika objekata jednostavnog oblika, od navedenih značajki u softverskoj implementaciji koristit ćemo samo faktor ispune 'opseg'. 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 ti su podaci dati za slučaj kada krug i kvadrat imaju idealan oblik. Ako je oblik kruga ili kvadrata izobličen, vrijednosti 'opseg' također se mogu razlikovati od gornjih vrijednosti. Stoga se faktori oblika mogu izračunati s određenom pogreškom. Dakle, uvođenjem neke pogreške u omjer slike, neka od njegovih izobličenja su dopuštena. Štoviše, vrijednost pogreške je proporcionalna stupnju izobličenja. Međutim, prevelika vrijednost pogreške može dovesti do pogrešnog prepoznavanja objekata.

Dodatno ćemo također odrediti središte mase objekta pomoću opcije 'centroid'.

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

Prepišimo vrijednosti značajki iz niza struktura podviga u zasebne nizove:

Opseg = nule (broj); CentX = nule (broj); CentY = nule (broj); za i = 1: 1: broj; Opseg (i) = podvizi (i) .Obuj; 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 objekt bit će označen. Mogući su različiti pristupi da se to postigne. Jedan od najjednostavnijih je postaviti sliku s njenim imenom u blizini prepoznatog objekta. Da biste to učinili, prvo morate generirati slike s nazivima objekata i pročitati ih u Matlab radni prostor. Budući da testna slika sadrži samo krugove i kvadrate, ona će generirati i izračunati odgovarajuće slike.

Krug = imread ("krug.bmp"); Kvadrat = imread ("kvadrat.bmp"); d = 0,15; % pogreške faktora oblika za i = 1: broj; L (okruglo (CentY (i)): okruglo (CentY (i)) + 1, okruglo (CentX (i)): okruglo (CentX (i)) + 1) = 0; if (abs (opseg (i) -0,7822)

Predstavljamo rezultat prepoznavanja

Slika, prikaz (L);

Postoje i drugi pristupi prepoznavanju objekata koji se temelje na skupu značajki. Razlikuju se po računskoj složenosti, učinkovitosti itd. Međutim, u daljnjim materijalima razmotrit ćemo one pristupe koji se mogu implementirati korištenjem funkcija ugrađenih u Matlab sustav.



(, dio 6.1)

Prepoznavanje slika je područje koje se presijeca s 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 predobrade slike. Druga od glavnih razlika je ta što slike iste slike prolaze kroz netrivijalne deformacije, na primjer, različiti kutovi trodimenzionalnog objekta, smjer osvjetljenja, promjene u držanju / izrazima lica / gestama itd. uklopiti u shemu podjele prostora slika. I tu počinje zabava.

Na nekim mjestima ću se upuštati u detalje prepoznavanja slika, budući da mi je tema bliska, te ću iznijeti neke ideje i svoje viđenje onoga što bi trebao biti idealan prepoznavanje slika.

Jednom sam dosta toga detaljno opisao. Ne bez netočnosti, ali općenito razumno. Također označava odakle su preuzete slike i točni podaci znanstvenih članaka.

Kako je slika predstavljena u sustavu za prepoznavanje uzoraka. Najjednostavnije je da je svaki piksel os u prostoru slike, svjetlina piksela je pozicija u tom prostoru. Stoga 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, također se temelje na svjetlini piksela i mogu malo bolje (prilično!) predstaviti dvodimenzionalne odnose piksela.

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

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

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

Ali sve to nije tako strašno, alati za obradu slike već dugo vremena mogu ispraviti geometriju i svjetlinu. (Drugi problem, usporediv po složenosti i primijenjenim metodama s prepoznavanjem slike, je određivanje položaja i veličine objekta na slici, što se naziva detekcija.) Postoje i transformacije slike (zvane momenti) čiji su koeficijenti isti za bilo koji položaj i veličinu 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 najzamršenije za prepoznavača su deformacije dvodimenzionalne projekcije povezane s trodimenzionalnom suštinom objekta (promjena kuta i smjera osvjetljenja) i promjena samog objekta (držanje, geste, izrazi lica, itd.). Budući da se te 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 reagiraju na kut, prepoznajući različite objekte u istom kutu kao isti. S rasvjetom, slična šala, na primjer, na istom mjestu, prijelaz iz bijelog u crno, kada se smjer osvjetljenja promijeni u suprotan, postat će, naprotiv, prijelaz iz crnog u bijelo, a ne možete popravite to normalizacijom svjetline.

Pošteno radi, treba napomenuti da postoje načini kada se stvara veliki skup za vježbanje sa slikama posebno snimljenim pod različitim kutovima i smjerovima osvjetljenja, a zatim se ulazna slika, ako spada u granice tih uvjeta, dobro prepoznaje. Štoviše, nakon tako opsežnog treninga u sustav se mogu ubaciti novi objekti koji nisu snimljeni s tako širokim varijacijama kutova i osvjetljenja. Ali ova metoda je poseban slučaj i, štoviše, prilično je teška. A nama, općenito, to nije zanimljivo, 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ćenitiji model objekta (bez njega je restauracija moguća, ali će biti "hroma" i manje je prikladna za prepoznavanje), te korelacija projekcije s trodimenzionalnom slikom. -dimenzionalni model također ima elemente za prepoznavanje uzoraka. Ali ni to nas ne zanima, jer ovdje postoji egzaktnija matematika.

S navedenim deformacijama slike "čist" bi se prepoznavač trebao nositi sam, bez točnih modela i posebno pripremljenih kompleta za obuku. Prepoznavač ne bi trebao raditi sa slikom kao jednodimenzionalnim nizom, ali treba shvatiti da se slika sastoji od dvodimenzionalnih fragmenata, sadržaj fragmenta se može promijeniti, iako njegovo značenje ostaje isto (gornji primjer govori o promjeni smjer osvjetljenja ili neki drugi izraz lica), sam fragment se može pomaknuti 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, frizura / brada na licu promijenjena, iako je sam vlasnik isti).

Prepoznavači koji pokažu dobre rezultate mogu napraviti baš puno od navedenog, svaki na svoj način. Ali! Ako je za neko područje razvijen jasan privatni prepoznavanje, tada će biti teško konkurirati općenitijem, iako je opće priznanje primjenjivo za šire uvjete. Na primjer, u prepoznavanju lica, metode pozicioniranja lica, normalizacije i izdvajanja ključnih značajki dobro su razvijene za fotografije snimljene u dobro kontroliranim uvjetima. A prema ovim ključnim značajkama, 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 točno prepoznavači nose s gore navedenim deformacijama slike.

Isticanje ključnih točaka i njihovog sadržaja. Na primjer, za lice se utvrđuje položaj vrha nosa, usana, kutova oka, sadržaj fragmenata slike oko tih točaka i izračunavaju se međusobne udaljenosti između tih točaka. Za rukom pisane znakove to mogu biti točke zavoja staze, kut takvih zavoja i udaljenost između uglova. Djelomično za pronalaženje ovih toč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 ti podaci predaju konvencionalnom prepoznavaču. Budući da su dvodimenzionalni odnosi između točaka već odabrani te je pronađen sadržaj susjedstava točaka, prepoznavač se već može nositi s dvodimenzionalnim deformacijama dijeljenjem prostora slike. Ovdje je pretraga i usporedba osi već obavljena, topologija slike je prilagođena topologiji prostora slika prepoznavača, a udaljenosti između ključnih točaka omogućuju mjerenje izobličenja ove topologije , minimizirajući razlike u kutovima i obraćajući pažnju na to kojoj osobi pripada lice. Štoviše, potraga za ključnim točkama bila je:

  • iterativno, umjesto jednokratne snimke ulaza-izlaza, 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 najstvarnije,
  • pretraga se prekida kada se postigne optimalni kriterij, optimalnost nije zajamčena.


Identifikacijske točke i udaljenosti: a) koriste se u forenzičkoj fotografiji; b) najčešće korišteni u izgradnji automatiziranih identifikacijskih sustava.

Nedostatak ovog pristupa je što se analizira samo mali broj točaka, a ostatak slike se izbacuje, što može utjecati na kvalitetu prepoznavanja. Na primjer, ako je točka pronađena pogrešno, to je već fatalno, ali ako analizirate okolna područja, pogreška se može svesti na minimum. Ali za određena razvijena područja (poput prepoznavanja 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. Tada 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 vježbanje i iskrivljene slike. Izvorna slika, koja je za određeni broj iteracija izobličenja dala najmanju razliku s iskrivljenom slikom, smatra se najsličnijom njoj (minimalno izobličenje pri maksimalnom podudaranju). Za traženje smjera izobličenja može postojati ili kriterij minimizacije koji se temelji na izvornoj i izobličenoj slici (oboje u optičkim strujama) 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 neće puzati u sredinu nosa. Neelastične prema tome dopuštaju bilo kakve permutacije čvorova. Koji je bolji - ne sjećam se točne usporedbe, ali intuitivno elastične deformacije su ugodnije. Distorzija se može proći metodom žarenja opisanom u prethodnom dijelu, uslijed čega se izobličenje "učvrsti" u jednoj od najsličnijih slika treninga.


Elastična deformacija - miješanje piksela u izvornoj 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). Preslikavanje nepoznate slike na sliku iz baze podataka. Slike različitih ljudi. Kvaliteta prikaza je lošija.


Optički tok (neelastična deformacija). Izobličenje rešetke slike pri pretvaranju jedne slike u drugu. S lijeve strane - slike jedne osobe, s desne strane - različite.

Nedostatak ovog pristupa je što glupo deformira 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, dopuštena je bilo kakva 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 što bi se dogodilo da područje ne doživi izobličenje, ali su se, primjerice, pojavile naočale koje nisu bile na izvornoj slici. Deformacija će vjerojatno "poludjeti" pokušavajući transformirati naočale u oči :)

Još jedna važna točka je da takva deformacija traži samo sličnosti, a da ne pokušava odgonetnuti razlikovne značajke, razliku koja razlikuje jedan objekt od drugog (kao što to čini neuronska mreža u prethodnim dijelovima). Zbog toga su moguće šale kada će takav prepoznavač biti uhvaćen za šik, identičnu frizuru, zanemarujući male promjene u predjelu očiju (usput, dobri sustavi prepoznavanja izbacuju frizure i druge faktore "buke" čak i na faza predobrade slike).

Postoji varijacija kada se preko slike ne povlači rešetka, već značajniji okvir, na primjer, za lice, uključujući toč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. Te točke ne morate ni tražiti, dovoljno je postaviti približan kostur, a ostatak će se sam pronaći tijekom deformacije. Druga stvar je da u skupu za obuku te točke moraju biti jasno razmaknute (a to je zaseban i težak zadatak, ili se izvodi djelomično ručno), a zatim možete usporediti referentni model s nepoznatim iskrivljenim ne samo sadržajem točkama, ali i prirodom izobličenja rešetke. Ovo se zove dinamički grafovi (ili elastični, ne sjećam se točno).


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



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

Za prepoznavanje, HMM se koriste na sljedeći način. Svaka slika se smatra nizom takvih "značenja". Za svaki razred 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 slijed "vrijednosti". To se zove problem prepoznavanja i postoji točna formula za njegovo rješavanje. Ne postoje točne formule za problem ugađanja modela iz dostupnih slika, ali, kao i u obučavanju 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 položaj ovog kvadrata na slici. Slika je gusto prekrivena rešetkom takvih stanja (štoviš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 tražit će se između obraza i usta, ali ne iza uha, a ako se nos na nepoznatoj slici pronađ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 "treniran" 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 točnog i specifičnog fizičkog modela, već zbog općeg trenažnog postupka i konkretnih primjera iz stvarnog svijeta.

Ispada da je unutar HMM-a (to se također odnosi na konvolucijske mreže, vidi dolje) izgrađen uvjerljivi model objekta. To nije model koji se dobiva, primjerice, trodimenzionalnom rekonstrukcijom slike, a nije ni model kada se ručno određuje skup ključnih značajki i odnosa među njima. HMM, s druge strane, ne rekreira toč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 konfiguriran, fizički i model vjerojatnosti će se podudarati na izlazu, pod uvjetima u kojima smo trenirali vjerodostojni model. Ali izvan ovih uvjeta počinju odstupanja, ponekad sa zanimljivim učincima. Na primjer, osoba može lako prepoznati drugu osobu po karikaturi, iako matematički slika karikature nikako nije usporediva s digitaliziranom slikom nečijeg lica. Lako je pronaći i druge svakodnevne primjere. Čovjek se u svojim postupcima ne vodi 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 pronaći u logičkom i maštovitom mišljenju, dakle fantazijama i kreativnosti, gledajući koje, čovjek može usporediti s njima ili osjetiti stvarne fizičke procese, koji se sa znanstvenog stajališta ne mogu opisati takvim fantazijama u na bilo koji način. I usput, 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 hrpu "fantazija", po našem mišljenju čudnih. To je također osnova za određivanje ključnih područja slike – onih područja koja daju najveći doprinos prepoznatljivosti. No, vratit ćemo se fantazijama i vjerojatnim modelima, a sada ćemo nastaviti s prepoznavanjem slika.

Dakle, HMM je gotovo savršen prepoznavanje 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 (poput promjene frizure ili izgleda naočala), zbog činjenice da svako stanje odgovara nekoliko vrijednosti svojih komada,
  • slika je čvrsto pokrivena mrežom pretraživanja i analizirana je 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, govore "da" prepoznatoj klasi i "ne" svim ostalima, dok SMM kaže "da" svim klasama, a od tih "da" odabire se maksimum koji se smatra prepoznatim razreda. I, koliko razumijem, 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 udaljenosti između čvorova, gdje je čvor pozicija komada) staviti u prepoznavač.



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

Sljedeći način prepoznavanja slika su kognitroni, neokognitroni i konvolucijske 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 izolirana je racionalna jezgra.

Da biste razumjeli kako te mreže funkcioniraju, morate shvatiti najvažniji koncept – karte značajki. 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 zbrojnu ponderiranu vrijednost svih piksela. Jedno jedino značenje. Ali budući da postoji mnogo položaja prozora, dobiva se dvodimenzionalna rešetka takvih vrijednosti. Ovaj prozor detektira prisutnost neke kombinacije piksela (značajke) na slici. Kao rezultat toga, na izlaznoj mreži će se dobiti visoke vrijednosti 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 se mreža naziva karta značajki. Štoviše, ne tražimo jednu značajku, već mnogo različitih, za svaku od njih svoj prozor s vlastitim skupom težina, a kao rezultat dobivamo nekoliko paralelnih mapa značajki na izlazu. Svaka karta značajki (kao slika) se dovodi na ulaz svog sljedećeg sloja prepoznavača, a također prima još nekoliko paralelnih karata na izlazu. U završnom sloju sve kartice se unose na ulaz završ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 karte značajki dodatno paraleliziraju dodavanjem karata u kojima se dijelovi skeniraju pod različitim kutovima. Zahvaljujući tome, prepoznavač može podnijeti zavoje. Nastavljajući razmišljanje u tom smjeru, možete učiniti mnogo zanimljivih stvari, kao što su prozori različitih veličina i nepromjenjivost skale 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 će karta značajki sljedećeg sloja skenirati ne na jednoj prethodnoj karti, već sve odjednom (kao što je bilo u izvornom neokognitronu). Obrada odmah postaje teža (trodimenzionalni prozor), ali i moćnija, nažalost, ne znam je li takva opcija proučavana u konvolucijskoj mreži. Ili umjesto ovoga, barem do konačnog prepoznavača, nahrani izlaze ne samo posljednje kartice, već sve iz hijerarhije.



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

Zahvaljujući takvim mapama značajki, konvolucijske mreže dobivaju kvalitativno drugačiju, snažniju obradu slike (razmislite zašto, zamislite tijek formiranja obilježja pri kretanju prema gore 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 kartama značajki).

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

Obično se uz mape značajki uvode i slojevi usrednjavanja koji, prije slanja karte sljedećem sloju, smanjuju njezinu veličinu prosječenjem susjednih piksela (poput skaliranja slike), inače se dobiva golema količina izračuna, a u osim toga postiže se dodatna generalizacija raznih izobličenja izvornika.Slike.

Kako su takve mreže obučene. Prva opcija, možete izgraditi topografsku kartu dijelova pronađenih na izvornoj slici, a zatim uzeti vrijednosti s ove karte i na temelju njih izgraditi karte značajki. Topografske karte su izgrađene na isti način za sljedeće slojeve u hijerarhiji, ali karte značajki su već isporučene kao ulaz. Topografska karta, to znači da sastavljamo svojevrsni rječnik od prosječnih dijelova koji se nalaze na slici. Štoviše, dijelovi će, prvo, biti raspoređeni u n-dimenzionalnu rešetku, gdje će susjedi biti slični, a drugo, ono što je za nas najzanimljivije, dijelovi iz rječnika dobro su prikladni za izradu karata značajki, budući da su karakteristični i česti fragmenti slike jer apstraktni ili rijetki dijelovi neće biti uključeni u ovu kartu, ali će slični dijelovi biti grupirani u jedan prosjek. U ovoj verziji, obuka se provodi bez nastavnika, budući da pogreška između željenog i stvarnog izlaza mreže nije potrebna za izgradnju topografske karte, značajke se automatski grupiraju prema njihovoj sličnosti. Samo konačni prepoznavač se obučava s učiteljem, koji prima izlaze iz karata značajki posljednjeg sloja.


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

Druga opcija je da se težine za mape značajki prilagođavaju kao težine neurona u slučaju povratnog širenja pogreške. Odnosno, postavka dolazi iz mrežnog izlaza, koja govori koje značajke moraju biti izvučene iz slike da bi se dobio rezultat. U izvornom 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 izvornoj verziji, konvolucijska mreža uči i radi vrlo brzo, te daje točnost blisku CMM-u (ali još manje). SMM, s druge strane, sa svojom nevjerojatnom preciznošću, traje jako dugo za obuku.

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

Iz opisa arhitekture konvolucijskih mreža, pogledajmo što one mogu učiniti:

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

Što ne mogu. Prvo, skupovi značajki se sastavljaju za cijelu sliku u cjelini. Zapravo, bilo bi korisno da, kao iu HMM-u, svako susjedstvo (točnije, za putanju pretraživanja) ima svoj vlastiti skup značajki. Odnosno, tako da u području 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. To bi omogućilo izradu točnijeg rječnika za svako područje, a ne prosječno po cijeloj slici. Ali u isto vrijeme to bi prepoznavača učinilo inhibitivnijim. Drugo (i usko povezano s prvim), tako da se jasno razlikuju dopuštene putanje svakog fragmenta, te se u procesu prepoznavanja mjere promjene udaljenosti između susjednih fragmenata (točnije, budući da su svi susjedi u rešetke povezuju, tako da se grade i provjeravaju dopuštena izobličenja cijele rešetke ). Naravno, konvolucijske mreže to već čine u nekom obliku, ali intuitivno se čini da se to može učiniti optimalnije. Jednostavnija i brža opcija je izrada lokalnih karata značajki (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 značajki.

Zaključak je sljedeći. Prilikom prepoznavanja slika, slika se najprije predobradi, zatim se značajke ručno i/ili automatski izdvajaju, te se značajke unose u bilo koji prepoznavač, od kojih je najteže nelinearne površine dijeljenja u prostoru značajki. 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 temeljiti na logici ljudskog stručnjaka u ovom području. Druga vrsta prepoznavača (deformacije slike, Markovljevi modeli, konvolucijske mreže) pokušava heurističkim metodama rekreirati vjerodostojan model domene i postaviti ga na nepoznatu sliku.

I nema čuda. Ili točne formule plus znanje stručnjaka za ljude, ili teške i univerzalne vjerodostojne modele. Spominjati kako navodno dolazi do prepoznavanja slike kod ljudi ipak su ljepše riječi od praktične primjene.

  • Vodič

Odavno sam želio napisati opći članak koji će sadržavati same osnove prepoznavanja slika, vodič kroz osnovne metode, govoreći kada ih primijeniti, koje zadatke rješavaju, što se može raditi navečer na koljenima, a što je bolje ne razmišljati 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 najvjerojatnije profesionalac u srodnoj temi, ali zna vrlo malo o metodama optičkog prepoznavanja. A najvrednije je što pokušava primijeniti metodu iz obližnjeg područja znanja, što je logično, ali ne radi 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 zahtijeva 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čet ću s nekoliko načela 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 objesiti narančastu etiketu na osobu nego pratiti osobu, ističući je kaskadama. Mnogo je lakše uzeti kameru s višom rezolucijom nego razviti algoritam super-razlučivosti.
  • Stroga formulacija problema u metodama optičkog prepoznavanja je redova veličine važnija nego u problemima programiranja sustava: jedna dodatna riječ u tehničkoj specifikaciji može dodati 50% posla.
  • Ne postoje univerzalna rješenja za probleme prepoznavanja. Ne možete stvoriti algoritam koji će jednostavno "prepoznati bilo koji natpis". Znak na ulici i list teksta bitno su različiti objekti. Vjerojatno možete napraviti opći algoritam (ovdje je dobar primjer iz Googlea), ali to će zahtijevati puno rada velikog tima i sastoji se od desetaka različitih potprograma.
  • OpenCV je biblija koja ima mnogo metoda i s kojom možete riješiti 50% volumena gotovo svakog problema, no 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, dakle, nerješiv je." Pokušajte to izbjeći, ne budite lijeni i trezveno procijenite trenutni zadatak svaki put ispočetka, bez korištenja OpenCV predložaka.
Vrlo je teško dati nekakav univerzalni savjet, ili vam reći kako stvoriti neku vrstu strukture oko koje možete izgraditi rješenje za proizvoljne probleme računalnog vida. Svrha ovog članka je strukturirati ono što možete koristiti. Pokušat ću postojeće metode podijeliti u tri skupine. Prva skupina je preliminarno filtriranje i priprema slike. Druga skupina je logička obrada rezultata filtriranja. Treća skupina su algoritmi donošenja odluka temeljeni na logičkoj obradi. Granice između grupa su vrlo uvjetne. Za rješavanje problema nije uvijek potrebno primijeniti metode iz svih skupina, ponekad su dovoljne dvije, a ponekad čak i jedna.

Popis ovdje navedenih metoda nije potpun. Predlažem da u komentare dodate kritičke metode koje nisam napisao i svakom pripišem 2-3 popratne riječi.

Dio 1. Filtracija

U ovu grupu sam smjestio metode koje vam omogućuju da na slikama istaknete područja interesa bez njihove analize. Većina ovih metoda primjenjuje neku vrstu uniformne transformacije na sve piksele na slici. Na razini filtriranja slika se ne analizira, ali se točke koje se filtriraju mogu smatrati područjima s posebnim karakteristikama.
Binarizacija praga, odabir područja histograma
Najjednostavnija transformacija je granična binarizacija slike. Za RGB sliku i sliku u sivim tonovima, 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 uvelike određuje sam proces binarizacije. U ovom slučaju, slika je binarizirana prosječnom bojom. Obično se binarizacija provodi pomoću algoritma koji adaptivno odabire prag. Ovaj algoritam može biti izbor očekivanja ili načina. I možete odabrati najveći vrh histograma.

Binarizacija može dati vrlo zanimljive rezultate pri radu s histogramima, uključujući i kada razmatramo sliku ne u RGB-u, već u HSV-u. 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 radara i obrade signala mogu se uspješno primijeniti u raznim zadacima prepoznavanja uzoraka. Tradicionalna metoda radara, koja se gotovo nikada ne koristi u čistim slikama, je Fourierova transformacija (točnije, FFT). Jedna od rijetkih iznimaka 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 zapravo izračuna, obično je puno brže i lakše koristiti konvoluciju područja od interesa s gotovim filterom izoštrenim za visoke (HPF) ili niske (LPF) frekvencije. Ova metoda, naravno, ne dopušta analizu spektra, ali određeni zadatak obrade videa obično ne zahtijeva analizu, već rezultat.


Najjednostavniji primjeri filtara koji naglašavaju niske frekvencije (Gaussov filtar) i visoke frekvencije (Gaborov filtar).
Za svaku točku na slici odabire se prozor i množi s filtrom iste veličine. Rezultat ove konvolucije je nova vrijednost bodova. Prilikom implementacije niskopropusnog i visokopropusnog filtra dobivaju se slike sljedećeg tipa:



Talasi
Ali što ako upotrijebimo neku proizvoljnu karakterističnu funkciju za konvoluciju sa signalom? Tada će se zvati "Wavelet transform". Ova definicija talasa nije točna, ali tradicionalno se razvilo da je u mnogim naredbama wavelet analiza potraga za proizvoljnim uzorkom na slici pomoću konvolucije s modelom ovog uzorka. Postoji skup klasičnih funkcija koje se koriste u wavelet analizi. To uključuje Haar val, Morlet val, meksički šešir, 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 valova. 3D Haar val, 2D Meyerov val, Meksički šešir val, Daubechiesov val. Dobar primjer korištenja proširene interpretacije valova je problem pronalaženja bljeska u oku, za koji je sama baklja valovit:

Klasični talasi se obično koriste za komprimiranje slika ili za njihovu klasifikaciju (opisano u nastavku).
Poveznica
Nakon tako slobodnog tumačenja valova 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 također, u određenom smislu, korelator razlike. Tamo gdje slike nisu u korelaciji, bilo je kretanja.

Funkcije filtriranja
Zanimljiva klasa filtara je filtriranje funkcija. To su čisto matematički filtri koji vam omogućuju otkrivanje jednostavne matematičke funkcije na slici (pravac, parabola, krug). Izrađuje se akumulirajuća slika u kojoj se za svaku točku izvorne slike iscrtava skup funkcija koje je generiraju. Najklasičnija transformacija je Houghova transformacija za linije. U ovoj transformaciji za svaku točku (x; y) nacrta se skup točaka (a; b) ravne linije y = ax + b, za koje vrijedi jednakost. Dobijamo prekrasne slike:


(prvi plus je onome tko prvi pronađe kvaku na slici i takvu definiciju i objasni je, drugi plus onome tko prvi kaže što je ovdje prikazano)
Houghova transformacija omogućuje vam da pronađete bilo koje funkcije koje se mogu parametrirati. Na primjer, krug. Postoji modificirana transformacija koja vam omogućuje traženje bilo kojeg oblika. Ova transformacija je užasno draga matematičarima. Ali prilikom obrade slika, to, nažalost, ne radi uvijek. Vrlo mala brzina, vrlo visoka osjetljivost na kvalitetu binarizacije. Čak i u idealnim situacijama, radije sam se snalazio s drugim metodama.
Analog Houghove transformacije za ravne 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
Zasebna klasa filtara je filtriranje obruba i obruba. Obrisi su vrlo korisni kada želimo prijeći s rada sa slikom na rad s 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 riješiti 80-90% problema. No, osim njih, postoje rijetki filtri koji se koriste u lokalnim zadacima. Takvih filtera ima na desetke, neću ih sve nabrajati. Zanimljivi su iterativni filtri (na primjer, model aktivnog izgleda), kao i ridgelet i curvlet transformacije, koji su legura klasičnog valnog filtriranja i analize u polju transformacije radona. Beamlet transformacija lijepo radi na granici valne transformacije i logičke analize, omogućujući vam da istaknete konture:

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

Dio 2. Logička obrada rezultata filtriranja

Filtriranje daje skup podataka prikladnih za obradu. Ali često ne možete jednostavno uzeti i koristiti te podatke bez obrade. U ovom odjeljku bit će nekoliko klasičnih metoda koje vam omogućuju da prijeđete sa slike na svojstva objekata ili na same objekte.
Morfologija
Prijelaz s filtriranja na logiku, po mom mišljenju, su metode matematičke morfologije (,,). Zapravo, ovo su najjednostavnije operacije stvaranja i erodiranja binarnih slika. Ove metode omogućuju uklanjanje šuma s binarne slike povećanjem ili smanjenjem postojećih elemenata. Na temelju matematičke morfologije postoje algoritmi za konturiranje, ali obično koriste neke vrste hibridnih algoritama ili algoritama u sprezi.
Analiza konture
Algoritmi za dobivanje granica već su spomenuti u odjeljku o filtriranju. Rezultirajuće granice jednostavno se pretvaraju u konture. Za Cannyjev algoritam to se događa automatski; za druge algoritme potrebna je dodatna binarizacija. Možete dobiti konturu za binarni algoritam, na primjer, algoritmom buba.
Obris je jedinstvena karakteristika objekta. To često omogućuje prepoznavanje objekta duž konture. Postoji moćan matematički aparat koji vam to omogućuje. Aparat se naziva analiza kontura (,).

Da budem iskren, nikada nisam uspio primijeniti analizu kontura u stvarnim problemima. Potrebni su previše idealni uvjeti. 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 vrlo brzo, lijepa matematika i jasna logika.
Posebne točke
Pojedinačne točke su jedinstvene karakteristike objekta koje vam omogućuju povezivanje objekta sa samim sobom ili sa sličnim klasama objekata. Postoji nekoliko desetaka načina za isticanje takvih točaka. Neke metode ističu posebne točke u susjednim okvirima, neke nakon dugog vremenskog razdoblja i pri promjeni rasvjete, neke vam omogućuju da pronađete posebne točke koje ostaju tako čak i kada se objekt zakreće. Počnimo s metodama koje nam omogućuju da pronađemo singularne točke koje nisu toliko stabilne, ali se brzo izračunavaju, a zatim idemo u sve veću složenost:
Prvi razred. Singularne točke koje su stabilne sekundama. Takve se točke koriste za vođenje objekta između susjednih video okvira ili za spajanje slika sa susjednih kamera. Te točke uključuju lokalne maksimume slike, kutove slike (najbolji od detektora, možda Haris detektor), točke na kojima se postižu maksimumi disperzije, određene gradijente itd.
Drugi razred. Posebne točke koje su stabilne s promjenama osvjetljenja i malim pokretima objekta. Takve se točke prvenstveno koriste za obuku i naknadnu klasifikaciju tipova objekata. Na primjer, klasifikator za pješake ili klasifikator lica proizvod je sustava izgrađenog oko takvih točaka. Neki od prethodno spomenutih valova mogu biti baza za takve točke. Na primjer, Haar primitivi, pretraživanje odsjaja, traženje drugih specifičnih funkcija. Ove točke uključuju točke pronađene metodom histograma usmjerenog gradijenta (HOG).
Treći razred. Stabilne točke. Znam samo za dvije metode koje daju potpunu stabilnost i za njihove modifikacije. To su SURF i SIFT. Omogućuju vam da pronađete posebne točke čak i kada rotirate sliku. Izračun takvih točaka traje dulje od ostalih metoda, ali je prilično ograničeno vrijeme. Nažalost, ove metode su patentirane. Iako, u Rusiji, algoritmi nisu patentirani, pa ga koristite za domaće tržište.

Dio 3. Trening

Treći dio priče bit će posvećen metodama koje ne rade izravno sa slikom, ali omogućuju donošenje odluka. To su uglavnom različite metode strojnog učenja i donošenja odluka. Nedavno je Yandyks objavio tečaj na ovu temu na Habru, postoji jako dobar izbor. Evo ga u tekstualnoj verziji. Za ozbiljno proučavanje teme, toplo preporučam da ih pogledate. Ovdje ću pokušati ocrtati nekoliko osnovnih metoda koje se koriste u prepoznavanju uzoraka.
U 80% situacija suština učenja u problemu prepoznavanja je sljedeća:
Postoji testni skup koji sadrži nekoliko klasa objekata. Neka to bude prisutnost / odsutnost osobe na fotografiji. Za svaku sliku postoji skup značajki koje su identificirane nekom značajkom, bilo da je to Haar, HOG, SURF ili neka vrsta vala. 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 točka je u prostoru značajki. Njegove koordinate su težina svake od značajki na slici. Neka naši znakovi budu: "Prisutnost očiju", "Prisutnost nosa", "Prisutnost dviju ruku", "Prisutnost ušiju" itd. ... ljudski. Za osobu u takvom prostoru poanta će biti točna. Za majmuna, poanta je za konja. Klasifikator je obučen na uzorku primjera. No, nisu na svim fotografijama prikazane ruke, druge nemaju oči, a na trećima majmun ima ljudski nos zbog greške u klasifikatoru. Uvježbani ljudski klasifikator automatski dijeli prostor značajki na način da kaže: ako je prva značajka u rasponu 0,5 U biti, svrha klasifikatora je ucrtati u prostor značajki područja koja su karakteristična 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 na mnogo je načina umjetnost. Evo nekoliko lijepih slika na temu.
Jednostavno kućište, jednodimenzionalno razdvajanje
Analizirajmo primjerom najjednostavniji slučaj klasifikacije, kada je prostor obilježja 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 usporediti uzorak s uzorkom. Recimo da imamo uzorak za obuku. U tom slučaju se dobiva slika, gdje će na X-osi biti mjera sličnosti, a na Y-osi - broj događaja s takvom mjerom. Kada traženi objekt izgleda kao sam, dobiva se lijevi Gaussian. Kad ne kao - pravo. Vrijednost X = 0,4 dijeli uzorke tako da pogrešna odluka minimizira vjerojatnost donošenja pogrešne odluke. Upravo je potraga za takvim separatorom problem klasifikacije.


Mala primjedba. Kriterij koji minimizira pogrešku neće uvijek biti optimalan. Sljedeći graf je graf stvarnog sustava za prepoznavanje šarenice. Za takav sustav odabran je kriterij da se minimizira vjerojatnost lažnog ulaska neovlaštene osobe u objekt. Ta se vjerojatnost naziva "pogreška prve vrste", "vjerojatnost 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 kaskada Haar. Obično se koriste kada je potrebna binarna klasifikacija, ali ništa vas ne sprječava da podučavate za veći broj sati.
SVM (,,,) Jedan od najmoćnijih klasifikatora s mnogo implementacija. Uglavnom, na zadacima učenja s kojima sam se susreo, radio je na sličan način kao adabusta. Smatra se dovoljno brzim, ali je njegov trening teži od onog kod Adabuste i potreban je odabir ispravne jezgre.

Tu su i neuronske mreže i regresija. No da bismo ih ukratko razvrstali i pokazali po čemu se razlikuju, potreban je članak puno više od ovoga.
________________________________________________
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 nedorečen i nema ni riječi o radu sa stereo slikama, niti o OLS-u s Kalmanovim filterom, niti o adaptivnom Bayesovskom 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 konačno

Što čitati?
1) Jednom mi se jako svidjela knjiga B. Yanea "Digitalna obrada slike" koja je napisana jednostavno i jasno, ali je u isto vrijeme predstavljena gotovo sva matematika. Dobro za upoznavanje s 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 strojnog vida" - napisano na temelju kolegija koji se izvodi na jednom od odsjeka PhysTech. Postoji mnogo metoda i njihovih detaljnih opisa. No, po mom mišljenju, knjiga ima dvije velike mane: knjiga je snažno fokusirana na softverski paket koji dolazi s njom, u knjizi se prečesto opis jednostavne metode pretvara u matematičku džunglu iz 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

Otkrivanje 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 to otkriti više od stotinu godina. No, ovdje naš cilj nije razumjeti mehanizam percepcije ljudi (i životinja), već opisati metode automatiziranog prepoznavanja objekata s njihovih slika: nova informacijska tehnologija, moćna, praktična i, u određenom smislu, univerzalna metodologija za obrada i evaluacija informacija te otkrivanje skrivenih obrazaca.

Prepoznavanje trodimenzionalnih objekata iz njihovih dvodimenzionalnih slika nedavno je postalo jedan od najvažnijih zadataka u analizi scene i strojnom vidu. Početne informacije za prepoznavanje sadrže slike u različitim dijelovima punog spektra zračenja (optičko, infracrveno, ultrazvučno, itd.), dobivene raznim 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) digitalni prikaz lokalnog fragmenta dvodimenzionalnog prizora, već neki njegov približni opis, u obliku skupa karakterističnih svojstava (obilježja). Glavna svrha opisa (slike objekata) je njihova upotreba u procesu utvrđivanja korespondencije objekata, koji se provodi usporedbom (upoređivanjem). Zadatak prepoznavanja je odrediti "skrivenu" pripadnost objekta određenoj klasi analizom vektora vrijednosti promatranih značajki. 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 naziva zadatkom podučavanja prepoznavanja uzoraka s učiteljem, au drugom - bez učitelja. 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) predmet pripada. U problemu prepoznavanja s obukom, pravilo klasifikacije treba razviti na temelju proučavanja skupa objekata za koje je poznato da pripadaju različitim klasama. Ti se objekti zajednički nazivaju skup za obuku ili uzorak. U problemu automatskog formiranja slika, objekti se prezentiraju "promatraču" bez navođenja njihove pripadnosti razredima (prepoznavanje bez nastavnika). Promatrač (algoritam prepoznavanja) mora samostalno konstruirati odgovarajuću definiciju klasa (klaster analiza). Naravno, takav pristup analizi slike primjeren je samo jednom od dva aspekta dvojnog problema otkrivanja i prepoznavanja objekata u sceni, odnosno stvarnom prepoznavanju klase sasvim određenog (odabranog) fragmenta slike, koji se smatra kao vanjska manifestacija neke skrivene slike. U ovom slučaju, prisiljeno 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živanja o slikovnom prepoznavanju prostornih objekata odlikuju se velikom raznolikošću u formuliranju problema i izboru sredstava za njihovo rješavanje (metode obrade odgovarajućih fragmenata slika), što je posljedica raznolikosti područja praktične primjene. Tradicionalni zadaci, koji su riješeni još u prvim eksperimentalnim razvojima sustava strojnog vida, su zadaci otkrivanja i prepoznavanja objekata zadanog oblika na temelju bučnih i (eventualno) deformiranih 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.

Riža. 9.1. Ilustracija problema prepoznavanja ljudskog lica i pristupi odabiru informativnih fragmenata (izvor)

Složenost ovog zadatka posljedica je raznolikosti mogućih kutova (skala, položaja, kutova rotacije) prepoznatih lica (vidi sliku 9.1). Ovdje prvo trebate izgraditi interni prikaz objekata, uključujući projekcije slike. Ovaj zadatak se još uvijek široko koristi u sigurnosnim sustavima, provjeri kreditnih kartica, forenzici, telekonferencijama itd. Za njegovo rješavanje predlažu se metode prepoznavanja temeljene na teoriji neuroračunalnih mreža, korelacijsko-ekstremalni algoritmi, metode za izračunavanje statističkih i algebarskih momenata, analiza kontura, 3D modeliranje itd. Među njima se posebna pozornost posvećuje smjeru povezanom s automatskim odabirom karakterističnih (informativnih) obilježja scenskih objekata, u ovom slučaju elemenata očiju, nosa, usta, brade - Sl. 9.1.

Nešto kasnije, u zadacima praćenja (kontrole) prirodnog okoliša sa zrakoplovnih snimaka, zacrtano je nekoliko važnijih pristupa izgradnji informativnih obilježja. Konkretno, kada su dobiveni prvi multispektralni i multispektralni podaci daljinskog istraživanja, većina razvijača metoda strojne 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.

Riža. 9.2. Klaster analiza spektralne svjetline prirodnih objekata, mapirana i dvodimenzionalna ravnina para informativnih spektralnih kanala

Najčešća metoda obrade bila je "nenadzirana klasifikacija" temeljena na klaster analizi, uz pomoć koje je prostor spektralnih obilježja podijeljen u prepoznatljive skupine (klasteri, vidi sl. 9.2), a klasifikacija elemenata slike omogućila je istovremeno segmentirati scenu u spektralno homogena područja.

Osim toga, utvrđeno je da su se u prepoznavanju prirodnih formacija, osim spektrozonskih obilježja, iznimno važne pokazale značajke koje karakteriziraju lokalnu prostornu organizaciju polutonova (teksture) objekata analize. Iskusni operater dekodera oslanja se na takve informacije (oblik, orijentaciju, distribuciju karakterističnih elemenata, kontekst i druge prostorne karakteristike) ponekad više nego na multispektralne značajke. U svakom slučaju, privlačnost teksturnih značajki 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 (scenskih objekata), 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 odgovoriti na pitanje je li moguća automatska analiza i klasifikacija odgovarajućih slika objekata i, ako jeste, koji je skup značajki dešifriranja najučinkovitiji i kakvom strukturom treba vladati odluka i metoda dešifriranja imaju.

Vrhunski povezani članci