170 likes | 454 Views
Modeliranje slike kao slučajnog procesa. Dejan Drača Ivica Dvoršćak Mladen Skelin Viktor Vilman. Sveučilište u Zagrebu Fakultet elektrotehnike i računarstva Zavod za elektroničke sustave i obradbu informacija. Zagreb, svibanj 2005. Uvod.
E N D
Modeliranje slike kao slučajnog procesa Dejan Drača Ivica Dvoršćak Mladen Skelin Viktor Vilman Sveučilište u Zagrebu Fakultet elektrotehnike i računarstva Zavod za elektroničke sustave i obradbu informacija Zagreb, svibanj 2005.
Uvod • Cilj ovog projekta je uvidjeti mogućnost upotrebe markovljeva lanca u obradi slike • Odnosno, primjena teorijskih principa markovljevog slučajnog procesa u praktičnoj primjeni, u našem slučaju: • prepoznavanje osoba na osnovi slike • rekonstrukcija slike iz "kompresiranih“ podataka
Markovljev lanac • Markovljev lanac je niz diskretnih slučajnih varijabli X0,X1, ... koji zadovoljavaju uvjete: • varijable opisuju stanje nekog fizičkog sistema u vremenima t0, t1, t2, ... • prijelaz iz jednog stanja u drugo u trenutku tn opisan je prijelaznim vjerojatnostima: • matrica s elementima pij(n) naziva se matrica prijelaznih vrijednosti, a zbroj elemenata u svakom njezinom retku jednak je jedinici, to je stohastička matrica • lanac je markovljev ukoliko stanje sistema u trenutku tn ovisi samo o stanju u prethodnom trenutku, tj. P { Xn = sin | Xn-1 =sin-1 , ... , X1 = si1 } = P { Xn = sin | Xn-1 =sin-1 } pij(n) : = P { Xn = sj | Xn-1 =si}
Mogućnosti upotrebe markovljeva lanca • Markovljevi lanci danas imaju široki spektar upotrebe, tako da se upotrebljavaju u statistici, biologiji, pa čak i u književnosti • Neka od područja primjene: • modeliranje različitih procesa u teoriji redova i statistici • aritmetičko kodiranje • populacijski procesi • upotreba u bioinformatici za genetsko kodiranj • prepoznavanje osobe • predviđanje vremenske prognoze • skladanje glazbe, generiranje teksta, itd.
Realizacija projekta • Glavne faze projekta: • fotografiranje i obrada dobivenih slika • pretvorba obrađenih slika u pogodan oblik • definiranje matrica prijelaza • upotreba dobivenih matrica prijelaza u praktičnoj primjeni
Slike i obrada slika • Slike koje su nam poslužile kao realizacije slučajnog procesa su bile slike naših kolega sa smjera Primjer prvobitne neobrađene slike Veličina: 1200 x 900 pixela Dubina : 24 bita
Slike i obrada slika • Snimanjem smo dobili 33 slike dubine 24 bita i velicine 1200x900pixela. Zbog kompliciranosti rada sa slikama tih specifikacija morali smo te slike pretvorit u format koji je odgovarao našim zahtjevima • Slike smo izrezali na veličinu 100x130 pixela, pazeći pritom da na slikama budu samo glave, oduzeli smo im RGB komponentu i dobili slike u sivoj skali, te na kraju smanjili dubinu na 4 bita Primjer obrađene slike Veličina: 100 x 130 pixela Dubina : 4 bita
˝Razvlačenje˝ slike • Naime,da bi vrijedila svojstva markovljevog lanca matrice smo • morali razvući na način da susjedni pixeli međusobno koreliraju • Druga faza svodila se na to da obrađene slike prebacimo u MatLab i razvučemo učitane slike, odnosno matrice veličine 100x130 u vektore • Ukoliko bi razvukli matricu na način da jedan redak slijedi • iza drugog narušili bi markovljev teorem, odnosno posljednji pixel • i-tog retka i prvi pixel i+1 retka ne bi međusobno korelirali Korektan način pretvorbe matrice u vektor
Generiranje matrica prijelaza • Nakon što smo matrice prebacili u vektore bilo je potrebno definirati matrice prijelaza • S obzirom da imamo 16 nijansi sive boje, to znači da svaki pixel može prelaskom iz i-tog u i+1 položaj poprimiti samo jedno od mogućih 16 stanja. Time smo ograničili matrice prijelaza na 16 redaka i 16 stupaca • Budući da imamo 33 realizacije, u jednu matricu prijelaza brojili smo stanja u koje je prelazio i-ti pixel svake realizacije • Za svaki redak mora vrijediti da je zbroj svih elemenata u retku jednak jedinici, jer je to zapravo zbroj svih vjerojatnosti, odnosno svih mogućih prijelaza nekog pixela iz nekog stanja u novo stanje (razinu sivila), zato smo morali podijeliti svaki redak matrice sa zbrojem elemenata u matrici • Kako svaki vektor sadrži 13000 pixela generirali smo programski 13000-1 matricu prijelaza i tako dobili jednu 3-dimenzionalnu matricu prijelaza
Upotreba matrica prijelaza u prepoznavanju osobe • Ovdje smo snimili i obradili nekoliko novih fotografija koje će nam poslužiti u procesu prepoznavanja određene osobe. Ideja je bila da novu fotografiju zamjenimo sa starom u matrici slučajnog procesa i onda na temelju te matrice računamo prijelazne matrice procesa • To smo učinili za svaku staru sliku redom te tako dobili ukupno 33 3-D matrice prijelaza. Onda smo te matrice uspoređivali s početnom i dobili ukupno 33 broja koji su nam predstavljali ''razliku'' između takve dvije matrice
Upotreba matrica prijelaza u prepoznavanju osobe • Što je taj broj manji to je i razlika između takve dvije matrice manja, odnosno na slici koju smo ubacili je osoba čiju smo sliku izbacili (ili osoba koja je po nekim karakteristikama slična drugoj, što će se pokazati eksperimentom) • Rezultat našeg eksperimenta je bio jako dobar. Nove fotografije pojedinih osoba iz grupe koju smo slikali malo su se razlikovale od prvobitnih, jer su na tim fotografijama te osobe napravile malo drugčiji izraz lica, nakosili glavu i slično, a slikane su mjesec dana kasnije. Međutim, čak 80% osoba s tih fotografija uspješno je prepoznato
Rekonstrukcija slike • Još jedna zanimljiva primjena teorije markovljevih lanaca mogla bi biti u rekonstrukciji "degenerirane" slike. Naš drugi "eksperiment" sastojao se od od toga da svakoj od 33 slike "oduzmemo" dvije trećine piksela • To smo radili na slijedeći način: ostavljamo prvi, mičemo drugi i treći, pa ostavljamo četvrti, mičemo peti i šesti te tako redom do kraja • Takvu sliku rekonstruirali smo koristeći prijelaznu matricu procesa gledajući vrijednost i-tog poznatog piksela i vrijedost i+1 piksela za koji je je najveća vjerojatnost prijelaza
Rekonstrukcija slike • Na taj način slike ne mogu biti savršeno rekonstruirane, ali su osobe • bile više nego prepoznatljive, što se ne bi moglo reći za sliku kad bi • na mjesta "oduzetih" piksela upisali neku proizvoljnu vrijednost, • npr. 15 (bijelo) Primjer rekonstruirane slike Primjer “degenerirane” slike
Zaključak • Uspješnost, odnosno neuspješnost, implementiranja markovljeve teorije najbolje se vidi ako se pokrenu napisani programi za prepoznavanje i rekonstrukciju, te prouče rezultati koje je naš eksperiment polučio. • Razrađivanjem prvobitne ideje za raspoznavanje osoba shvatili smo da za prepoznavanje osobe nisu potrebne sve informacije koje nam početna slika nudi, već da je sa malom rezolucijom uspješnost raspoznavanja neke osobe veća od 80%. • Nadalje to nas je natjeralo na razmišljanje da se Markovljevi lanci mogu sa popriličnom efikasnošću upotrijebiti i za rekonstrukciju slike, naime program rekonstruira sliku koja je unaprijed svedena na svega 1/3 početne "težine". • Na naše zadovoljstvo rezultati su prilično dobri, tako da smo zaključili da Markovljevi lanaci imaju veliki potencijal u raznim područjima, a njihova upotreba ovisi o maštovitosti pojedinaca.
Literatura • www.mathworks.com • materijali s predavanja i auditornih vježbi iz kolegija SPUS, (spus.zesoi.fer.hr) • prof. dr.sc. Neven Elezović: Stohastički Procesi , predavanja 1999./2000.
Zahvaljujemo se kolegama koji su nam pozirali za fotografije, te na taj način potpomogli naš projekt. HVALA NA PAŽNJI!!