SVEUČILIŠTE U SPLITU FAKULTET ELEKTROTEHNIKE, STROJARSTVA I BRODOGRADNJE DIPLOMSKI RAD PREPOZNAVANJE DIMA I VATRE TEMELJENO NA ANALIZI DIGITALNE SLIKE Marin Bugarić Split, Prosinac 2007. Zahvaljujem se mentoru Dr.sc. Darku Stipaničevu, Mr.sc. Damiru Krstiniću, te Uğur Tőreyin-u na pomoći prilikom izrade ovog diplomskog rada. SADRŽAJ 1. UVOD ............................................................................................................................................. 3 2. OPIS ALGORITMA ..................................................................................................................... 5 2.1. Algoritam 1 - Inteligentna metoda detekcije vatre u realnom vremenu temeljena na obradi pokretne slike ....................................................................................................................................... 5 2.1.1. Autori: .............................................................................................................................. 5 2.1.2. O Algoritmu: .................................................................................................................... 5 2.2. Algoritam 2 - Metoda detekcije vatre i plamena u realnom vremenu temeljena na vizualno računalnoj metodi ................................................................................................................................ 9 2.2.1. Autori ............................................................................................................................... 9 2.2.2. O Algoritmu ..................................................................................................................... 9 2.3. Algoritam 3 - Detekcija dima u realnom vremenu na videu bazirana na wavelet transformaciji ..................................................................................................................................... 13 2.3.1. Autori ............................................................................................................................. 13 2.3.2. O Algoritmu ................................................................................................................... 13 2.4. Algoritam 4 - Metoda automatskog nadgledanja šumskog požara na slici u vidljivom dijelu spektra ............................................................................................................................................... 17 2.4.1. Autori ............................................................................................................................. 17 2.4.2. O Algoritmu ................................................................................................................... 17 2.5. Algoritam 5 - Detekcija dima na videu u svrhu sustava ranog alarmiranja u slučaju vatre... 20 2.5.1. Autori ............................................................................................................................. 20 2.5.2. O Algoritmu ................................................................................................................... 20 2.6. boja Algoritam 6 - Klasifikacija piksela vatre korištenjem neizrazite logike i statističkog modela .............................................................................................................................................. 23 2.6.1. Autori ............................................................................................................................. 23 2.6.2. O Algoritmu ................................................................................................................... 23 2.7. Algoritam 7 - Prepoznavanje plamena na videu .................................................................... 26 2.7.1. Autori ............................................................................................................................. 26 2.7.2. O Algoritmu ................................................................................................................... 26 2.8. Algoritam 8 - Detekcija vatre u video sekvencama korištenjem statističkog modela boja ... 30 2.8.1. Autori ............................................................................................................................. 30 2.8.2. O Algoritmu ................................................................................................................... 30 1 3. RAČUALA IMPLEMETACIJA ALGORITAMA .......................................................... 34 3.1. Odabir algoritama .................................................................................................................. 34 3.2. Algoritam: Detekcija dima u realnom vremenu na videu bazirana na wavelet transformaciji (Wavelet based real-time smoke detection in video) ......................................................................... 35 3.2.1. Uvod u algoritam: .......................................................................................................... 35 3.2.2. Prvi korak: Detekcija pokreta ........................................................................................ 35 3.2.3. Drugi korak: Prostorna Wavelet transformacija ............................................................ 40 3.2.4. Treći korak: Vremenska Wavelet transformacija .......................................................... 46 3.2.5. Četvrti korak: Provjera boje dima .................................................................................. 48 3.2.6. Peti korak: Provjera konveksnosti oblika ..................................................................... 50 3.3. Algoritam: Inteligentna metoda detekcije vatre u realnom vremenu temeljena na obradi pokretne slike (An Intelligent Real-Time Fire-Detection Method Based on Video Processing) ...... 52 3.3.1. Uvod u algoritam ........................................................................................................... 52 3.3.2. Prva faza ........................................................................................................................ 52 3.3.3. Druga faza ...................................................................................................................... 57 3.4. Algoritam: Metoda automatskog nadgledanja šumskog požara na slici u vidljivom dijelu spektra (Tehnique for Automatic Forest Fire Surveillance Using Visible Light Image)................... 60 3.4.1. Uvod u algoritam: .......................................................................................................... 60 3.4.2. Prva faza ........................................................................................................................ 60 3.4.3. Druga faza:..................................................................................................................... 64 3.5. Algoritam: Detekcija dima na videu u svrhu sustava ranog alarmiranja u slučaju vatre (The Smoke Detection for Early Fire-Alarming System Base on Video Processing)................................ 68 3.5.1. Uvod u algoritam: .......................................................................................................... 68 3.5.2. Prva faza: ....................................................................................................................... 68 3.5.3. Druga faza:..................................................................................................................... 71 4. ZAKLJUČAK .............................................................................................................................. 76 5. LITERATURA ............................................................................................................................. 78 2 1. UVOD Svakodnevno smo svjedoci tragedija uzrokovanih požarima i svima nam je jasno kolika je važnost ranog uočavanja vatre i brze reakcije kako bi se ona ugasila. Korištenje tradicionalnih metoda, poput detektora dima, termometara i sličnih uređaja, jednostavno nije moguće primijeniti ukoliko je riječ o otvorenom prostoru kao što je to, na primjer, šumski krajolik. Te tehnologije funkcioniraju samo u slučaju da je vatra, odnosno dim, u neposrednoj blizini detektora. Detekcija šumskog požara do nedavno je ovisila isključivo o čovjeku. Promatrač koji je bio smješten na uzvišenoj promatračnici, imao je izuzetno zahtjevan i dugotrajan posao. Ovisno o njegovom raspoloženju ili umoru, ovisio je i uspjeh detekcije. U današnje vrijeme, pristupačne cijene opreme korištene za automatsku detekciju požara, omogućile su razvoj ove tehnologije. Nadzorne kamere koje se koriste prilikom detekcije, u većini su slučajeva obične kamere koje snimaju u vidljivom dijelu spektra. Štoviše, ukoliko postoje već postavljene kamere, one se mogu iskoristiti. Uspješnost detekcije vatre, odnosno dima, uvelike ovisi o odabranom algoritmu. Obzirom na relativno nov pristup rješavanja ovog problema, još nije pronađeno idealno rješenje koje u potpunosti zadovoljava zahtjeve korisnika, a to bi bila stopostotna učinkovitost detekcije požara. Ipak, postoji veliki broj algoritama koji su razvijeni ili se razvijaju, a nude rješenja koja su zadovoljavajuća za određene situacije i uz određene uvjete. Lako je zaključiti da uspješnost algoritama ovisi o mnogo faktora. Vremenski uvjeti se mijenjaju i nije svejedno je li riječ o sunčanom ili o maglovitom danu, ljetu ili zimi. Jedan od značajnih problema jest i drhtanje kamere, koje zna uvelike otežati rad algoritama. Udaljenost dima, odnosno vatre od kamere, također može biti kritično za detekciju. Ovo su samo neki od problema koji se javljaju, a algoritmi su ti koji te probleme trebaju što uspješnije eliminirati. Obzirom na taj nedostatak, važno je napomenuti da algoritmi koji se koriste imaju cilj detektirati potencijalni požar, odnosno alarmirati čovjeka, koji potom ima zadatak provjeriti je li uistinu riječ o požaru ili o lažnom alarmu. U ovom diplomskom radu, cilj je bio odabrati nekoliko algoritama detekcije vatre i dima koji su mi bili literarno dostupni, te proučiti i objasniti svakog od njih, što je i učinjeno u drugom poglavlju. Algoritmi obrađeni u ovom poglavlju su sljedeći: „Inteligentna metoda detekcije vatre u realnom vremenu temeljena na obradi pokretne slike“;„Metoda detekcije 3 vatre i plamena u realnom vremenu temeljena na vizualno računalnoj metodi„;„Detekcija dima u realnom vremenu na videu bazirana na wavelet transformaciji“;„Metoda automatskog nadgledanja šumskog požara na slici u vidljivom dijelu spektra“;„Detekcija dima na videu u svrhu sustava ranog alarmiranja u slučaju vatre “;„Klasifikacija piksela vatre korištenjem neizrazite logike i statističkog modela boja“„Prepoznavanje plamena na videu“;„Detekcija vatre u video sekvencama korištenjem statističkog modela boja“. U trećem poglavlju dana je detaljna analiza i dijelovi računalne implementacije četiri odabrana algoritma: „Detekcija dima u realnom vremenu na videu bazirana na wavelet transformaciji“;“Inteligentna metoda detekcije vatre u realnom vremenu temeljena na obradi pokretne slike“;“Metoda automatskog nadgledanja šumskog požara na slici u vidljivom dijelu spektra“;“Detekcija dima na videu u svrhu sustava ranog alarmiranja u slučaju vatre„. Proučene su njihove prednosti i mane, kako bi se pobliže shvatila srž problema stvaranja idealnog algoritma. Računalno su implementirani u C programskom jeziku, te se na temelju odabranih primjera, odnosno slika i videa, provjerila njihova djelotvornost. Svaki dio algoritma je proučen i objašnjen uz odgovarajući slikovni primjer kao i programerski kod. Ukoliko je pronađena zamjerka u radu tog dijela algoritma često je ponuđeno i odgovarajuće rješenje koje daje zadovoljavajući rezultat. 4 2. OPIS ALGORITMA 2.1. Algoritam 1 „Inteligentna metoda detekcije vatre u realnom vremenu temeljena na obradi pokretne slike“; „An Intelligent Real-Time Fire-Detection Method Based on Video Processing“ 2.1.1. Autori: Thou-Ho (Chao-Ho) Chen, Department of Electronic Engineering, ;ational Kaohsiung University of Applied Sciences Kaohsiung 807, Taiwan, R.O.C. Cheng-Liang Kao and Sju-Mo Chang Department uf Electronic Engineering, Southern Taiwan University of Technology Tainan 710, Taiwan, R.O.C. 2.1.2. O Algoritmu: Algoritam na temelju dviju faza odlučivanja zaključuje postoji li vatra na videu koji se obrađuje. Prva faza odlučivanja odnosi se na izdvajanje piksela vatre iz slike, dok se u drugoj fazi provjerava povećava li se broj piksela vatre tijekom vremena, odnosno, izračunava se razlika u broju piksela vatre između dvije slike tog videa. Ukoliko je ta razlika veća od prethodno definirane granične vrijednosti, odnosno thresholda, velika je vjerojatnost da je riječ upravo o vatri. Druga faza odlučivanja ponavlja se nekoliko puta, povećavajući pritom vrijednost granične vrijednosti. Kod prve faze odlučivanja koristi se RGB model boja, radi povoljne računske zahtjevnosti. Kako su eksperimenti pokazali, a i čovjeku je lako uočljivo, kod piksela vatre je izražen intenzitet i zasićenost crvene boje. Kod druge faze odlučivanja, vrijednost thresholda, odnosno granične vrijednosti temelji se na eksperimentima, i djelotvornost ovog algoritma uvelike ovisi o ispravno odabranim vrijednostima ove varijable. Prva faza: Neke karakteristike vatre, odnosno boje emitiranog svjetla prilikom izgaranja, uzete su u obzir kod prve faze odlučivanja. Pri nižim temperaturama te se boje nalaze u rasponu između crvene i žute, dok pri višim temperaturama boja nerijetko postaje i bijela. Nadalje, poneki gorivi materijali izazivaju i emitiranje plavog svjetla prilikom izgaranja. 5 Uz to treba uzeti u obzir i to da tijekom dana ili uz dodatak umjetnog svjetla, boja vatre ima veću zasićenost od one vatre koja gori noću i bez prisustva umjetnog svjetla. Analiza boja često se odvija u HSI modelu, koji je bliži ljudskom shvaćanju boja od RGB modela. Konverzija RGB u HSI model boja odvija se prema sljedećim formulama: = =1− 1 + + , 3 0≤≤1 3 min, , , + + = = !" # 360 − 0≤≤1 ≤ > 1 − + + 2 − % + − − 0° ≤ ≤ 360° "& % Vrijednost hue komponente, odnosno , plamena se nalazi unutar raspona od 0° do 60°. Sama zasićenost se mijenja ovisno o pozadinskom svjetlu. Ukoliko imamo sunčevu ili umjetnu svjetlost, njena vrijednost će biti veća. Ovo treba također uzeti u obzir kod formiranja uvjeta. Slika 2.1.1. Hue distribucija boja 6 Uvjeti su sljedeći: 1. 0° ≤ ≤ 60° 2. Svjetlija pozadina: 30 ≤ ≤ 100 Tamnija pozadina: 20 ≤ ≤ 100 3. 127 ≤ ≤ 255 Kao što je već spomenuto, algoritam koristi RGB model boja. U RGB modelu, raspon nijanse boje od 0° do 60° možemo zapisati u obliku: ≥ > (rang boja između crvene i žute). Također, kod slika vatre R postaje glavna komponenta, stoga se definira i vrijednost RT kao eksperimentalno utvrđena granična vrijednost, threshold. Kako bi se smanjio utjecaj ranije spomenutoga pozadinskog osvjetljenja, uvodi se i granična vrijednost, threshold, zasićenosti, te odgovarajuća formula. Sada imamo tri glavna uvjeta: 1. > * 2. ≥ > 3. + , ≥ -255 − ∗ 10 23 / 45 67 89:;6 0 <=< >?6 45 67 89:;6 Kako se vrijednost R komponente povećava prema 255, zasićenje pada prema 0. Samo oni pikseli koji zadovoljavaju ova tri uvjeta i uz to su detektirani kao pikseli u pokretu korištenjem jedne od metoda, smatraju se pikselima potencijalne vatre. Druga faza: Samo izdvajanje piksela koji zadovoljavaju ova tri uvjeta nije dovoljno za prepoznavanje vatre. Postoje objekti istih ili sličnih boja, stoga je potrebno iskoristiti dodatne karakteristike vatre, kako bi se izbjegla lažna uzbuna. Ovaj algoritam se temelji na pretpostavci da je vatra dinamična, to jest da se tijekom vremena širi. 7 Vatra se širi na temelju dva faktora: materijalnog faktora (fizička svojstva materijala i kemijski sastav), te faktora okoliša (temperatura i utjecaj kretanja zraka). Dvije se varijable koriste u drugoj fazi algoritma: @1 i A/ . Interval, odnosno vrijeme koje je proteklo između dvije slike označavamo sa @1 . Ukoliko je razlika u broju piksela vatre između te dvije slike veća od granične vrijednosti, koju označavamo sa A/ , zaključujemo da se vatra širi i javljamo uzbunu. I ovdje algoritam preporuča iterativno provjeravanje broja, odnosno razlike piksela vatre, u intervalima @1 . Obe vrijednosti @1 i A/ temelje se na eksperimentalnim rezultatima. 8 2.2. Algoritam 2 „Metoda detekcije vatre i plamena u realnom vremenu temeljena na vizualno računalnoj metodi„; „Computer vision based method for real-time fire and flame detection“ 2.2.1. Autori Ugur Toreyin , A. Enis Cetin Department of Electrical and Electronics Engineering, Bilkent University, 06800 Bilkent, Ankara, Turkey Yigithan Dedeoglu , Ugur Gudukbay - Department of Computer Engineering, Bilkent University, 06800 Bilkent, Ankara, Turkey 2.2.2. O Algoritmu Algoritam se odvija u 4 koraka. Prvi korak jest pronalazak piksela, odnosno segmenata slike, koji su u pokretu. Drugi korak podrazumijeva provjeru boja tih piksela, pripadaju li prije definiranim „pikselima vatre“. Treći korak je vremenska, a četvrti prostorna wavelet transformacija. Prvi korak: Pronalazak piksela, odnosno segmenata slike koji su u pokretu. Pretpostavimo da je BC 5, 7 intenzitet pikela koji se nalazi na poziciji 5, 7 unutar n-te sličice videa BC . Prvo je potrebno izračunati procijenjenu vrijednost pozadine pikela na poziciji 5, 7, korištenjem ovih formula: 9 5, 7 + 1 − 9 BC 5, 7 CD" 5, 7 = C C 5, 7 5, 7 ?6 45 67 5? >?6 E 45;6:E 5, 7 ?6 45 67 5? ?6 E 45;6:E gdje je C 5, 7 predhodno procijenjena vrijednost intenziteta pozadine, dodatno F 5, 7 poprima vrijednost BF 5, 7, i posljednje 9 je pozitivan broj blizu 1. 9 Nadalje, piksel 5, 7 je u pokretu ako zadovoljava sljedeće: GBC 5, 7 − BC!" 5, 7G > HC 5, 7 gdje je HC 5, 7 granična vrijednost, odnosno threshold. Oduzimanjem procijenjene pozadine od trenutačne pozadine, dobijamo segmente slike u pokretu: GBC 5, 7 − C 5, 7G > HC 5, 7 One piksele koji zadovoljavaju ovaj uvjet grupiramo u Blobs[k,l], to jest u skupine, a time i završava prvi korak algoritma. Drugi korak: Drugi korak algoritma provjerava boje piksela koji su izdvojeni kao pikseli u pokretu. Eksperimentalno se došlo do boja koje emitira vatra tijekom izgaranja. Tim bojama se dodaje mogućnost odstupanja, te se formiraju područja oblika sfere u 3D prikazu RGB modela boja. Ukoliko boja piksela u pokretu upada u jednu od tih sfera, on zadovoljava uvjet drugog koraka algoritma. Pikseli koji zadovoljavaju ovaj uvjet se grupiraju u vatra[k,l]. Treći korak: Treći korak algoritma je pratiti povijest frekvencija piksela u „vatreno obojanom“ segmentu slike, te analizirati tu povijest. To nam omogućuje 1D vremenska wavelet transformacija. Treba imati na umu da ne snimaju sve kamere jednak broj sličica u sekundi i da treba voditi računa o tome. Da bi se titranje od 10Hz uhvatilo potrebno je da kamera snima barem 20 sličica u sekundi. Svaki piksel BC 5, 7 koji se nalazi u vatra[k,l] se provlači kroz filterski slog od dva koraka, i to na temelju crvene komponente RGB reprezentacije boja. Slika 2.2.1. Dvorazinski filterski slog 10 Filter se sastoji od polupojasnog visokopropusnog filtera sa koeficijentima {-0.25,0.5,-0.25} i niskopropusnog filtera sa koeficijentima {0.25,0.5,0.25}. Time se dobiju signali IC 5, 7 i 6C 5, 7. Ako postoji visoko frekventna aktivnost na lokaciji [k,l], onda IC i 6C poprime vrijednosti različite od 0, dok za stacionarne piksele vrijednosti ovih signala su ili 0 ili su vrlo blizu 0. Ukoliko je riječ o nekom objektu koji je obojan bojama vatre, onda ćemo imati samo jedan skok u jednom od ovih podsignala. Broj prolazaka kroz nulu podsignala IC i 6C se koristi za procjenu je li riječ o vatri ili ne. Ukoliko je taj broj veći od određene granične vrijednosti, piksel je zadovoljio uvjet trećeg koraka ovog algoritma. Četvrti korak: Četvrti korak algoritma podrazumijeva 2D prostornu wavelet transformaciju pokretnih segmenata slike. Kod prostorne wavelet transformacije običnog vatreno obojanog objekta postojati će male varijacije, za razliku od prave vatre. Definiramo parametar odluke 8J na sljedeći način: 8J = 1 MGBNO 5, 7G% + GBON 5, 7G% + GBOO 5, 7G% K×A P,N gdje je K × A broj piksela obojanih kao vatra a spadaju u segmente slike koji su u pokretu (hh – highhigh subimage, lh lowhigh subimage, hl – highlow subimage). Odluka: Algoritam koristi verziju m-od-n princip glasovanja, bolje rečeno gleda se = QS RS 8S > H gdje je RS težine definirane od strane korisnika, a 8S odluke četiri koraka algoritma, a T je predefinirana granična vrijednost, odnosno threshold. Parametar 8S poprima vrijednost 0 ili 1, detaljnije: 8" – 1 ako je piksel u pokretu, 0 ako nije 8% - 1 ako je piksel boje vatre, 0 ako nije 8T - 1 ako je broj prelazaka preko 0 IC i 6C veći od granične vrijednosti, 0 ako nije 8J – definiran jednadžbom u četvrtom koraku 11 12 2.3.Algoritam 3 „Detekcija dima u realnom vremenu na videu bazirana na wavelet transformaciji“ „Wavelet based real-time smoke detection in video“ 2.3.1. Autori B. Ugur Toreyin, A. Enis Cetin - Department of Electrical and Electronics Engineering Yigithan Dedeogu - Department of Computer Engineering, Bilkent University 2.3.2. O Algoritmu Algoritam se temelji na nekim karakteristikama dima. Na primjer, dim postepeno izglađuje rubove na slici dok ne postane potpuno gust. Rubovi na slici odgovaraju lokalnim ekstremima u wavelet domeni. Postepeno smanjivanje u oštrini rubova rezultira smanjivanjem vrijednosti lokalnih ekstrema. Ipak, oni ne izgube u potpunosti svoju vrijednost. Druga karakteristika dima jest frekvencija titranja. Poznato je da plamen titra frekvencijama oko 10Hz. Rezultat toga je da i granični prostor dima oscilira malo nižom frekvencijom, pri ranijim fazama vatre. Algoritam se odvija u koraka. Prvi korak jest pronaći segmente slike u pokretu, drugi je provjera smanjenja visokih frekvencija koje odgovaraju rubovima korištenjem wavelet transformacije. Treći korak je smanjenje U i V kanala, četvrti je analiza titranja korištenjem vremenske wavelet transformacije. Posljednji korak jest provjera oblika segmenta slike u pokretu, odnosno provjerava se je li riječ o konveksnom obliku. Prvi korak: U prvom koraku algoritma pronalazimo piksele koji su u pokretu. Pretpostavimo da je BC 5, 7 intenzitet pikela koji se nalazi na poziciji 5, 7 unutar n-te sličice videa BC . Prvo je potrebno izračunati procijenjenu vrijednost pozadine piksela na poziciji 5, 7, korištenjem ovih formula: 9 5, 7 + 1 − 9 BC 5, 7 CD" 5, 7 = C C 5, 7 13 5, 7 ?6 45 67 5? >?6 E 45;6:E 5, 7 ?6 45 67 5? ?6 E 45;6:E gdje je C 5, 7 predhodno procijenjena vrijednost intenziteta pozadine, dodatno F 5, 7 poprima vrijednost BF 5, 7, i posljednje 9 je pozitivan broj blizu 1. Nadalje, piksel 5, 7 je u pokretu ako zadovoljava sljedeće: GBC 5, 7 − BC!" 5, 7G > HC 5, 7 gdje je HC 5, 7 granična vrijednost, odnosno threshold. Oduzimanjem procijenjene pozadine od trenutačne pozadine, dobijamo segmente slike u pokretu: GBC 5, 7 − C 5, 7G > HC 5, 7 Drugi korak: Koristi se karakteristika dima da rubovi na slici pokriveni dimom postaju glađi, a time se lokalni ekstremi prostorne wavelet transformacije smanjuju. Ukoliko uočimo smanjenje u lokalnim energijama, to može biti posljedica dima na slici. Pomoću wavelet transformacije možemo doći i do zaključka gdje se dim nalazi. Ako imamo: RC B, U = G=C B, U G% + G=C B, U G% + GC B, U G% gdje LH, HL i HH predstavljaju horizontalne, vertikalne i dijagonalne rubove originalne slike, onda tu podpojasnu sliku podijelimo u blokove veličine V" , V% te izračunamo energije 67" , 7% prema formuli: 67" , 7% = M RC B + 7" V" , U + 7% V% W,X ∈1Z gdje S predstavlja blok veličine V" , V% u wavelet podslici. Ovaj algoritam kristi luminance (osvjetljenost) signal i blok veličine 8x8 piksela. Ukoliko postoji smanjenje vrijednosti određenog 67" , 7% to znači da unutar tog bloka slika, rubovi su izgubili na svojoj oštrini te postoji vjerojatnost da je to upravo zbog pojave dima. Opet se uzima granična vrijednost, threshold, kako bi se odredilo je li taj pad vrijednosti značajan ili ne. 14 S druge strane, trenutni pad ili pojava wavelet ekstrema gotovo sigurno ne predstavlja dim, već je riječ o nekom običnom objektu u pokretu. Stoga je potrebno definirati dvije granične vrijednosti odnosno thresholda kako bismo regulirali ovu situaciju. Treći korak: Dim je poluproziran, stoga održava RGB vektor pozadinske slike. Ipak, sjene objekata koji se kreću također imaju ovu karakteristiku, stoga ona nije dovoljna za raspoznavanje dima. Kako dim postaje gušći U i V postaju manje. Samo oni pikseli koji imaju manju chrominance (sjajnost) se smatraju dimom. Četvrti korak: Praćenje titranja dima je sljedeći korak. Dim titra u rangu frekvencija između 1-3Hz. Koristi se dvorazinski filterski slog isti kao na Slici 2.2.1., te se izračunaju podsignali IC i 6C . Kod stacionarnog pixela njihove su vrijednosti 0 ili blizu 0. Ako imamo obični objekt koji se kreće, to će rezultirati jednim skokom u jednom od ovih podsignala. Ukoliko je riječ o dimu ili sličnim pojavama tih skokova će biti nekoliko u sekundi. Peti korak: Zadnji korak jest provjeravanje konveksnosti oblika. Dim se u nekontroliranoj vatri širi tijekom vremena što rezultira konveksnim oblikom. Algoritam radi na principu da se uzme pet horizontalnih i pet vertikalnih linija. Provjeravaju se pripadaju li pikseli segmentu slike u pokretu ili ne. Barem tri uzastopna piksela na linijama koje sijeku pokretne segmente moraju pripadati pozadini. Ako se dug linije ne zadovolji konveksnost, odbacuju se pikseli dima. 15 16 2.4.Algoritam 4 „Metoda automatskog nadgledanja šumskog požara na slici u vidljivom dijelu spektra“; „Tehnique for Automatic Forest Fire Surveillance Using Visible Light Image“ 2.4.1. Autori Jin Li, Qingwn Qi, Xiuping Zou, Hu Peng, Lili Jiang, Yajuan Liang Cartography Departement, IGS;RR, CAS, Beijing, China 2.4.2. O Algoritmu U normalnim uvjetima, slika šume se sastoji od dijelova kao što su biljke, područje bez vegetacije, nebo i slično. Kada se pojavi vatra, dim i smog prekriju područje, a to rezultira promjenom boja na slici. Istraživanjem se došlo do sljedećih podataka prikazanih u Tablici 2.4.1: Objekti Pozadinski objekti Rang valnih dužina šumski 0.38-0.76 µm Tlo šume 0.47-0.59 µm Dim Cijeli rang Boja 0.56-0.76 µm vidljivom dijelu spektra Razne boje Cijan, Zelena, Žuta (R0.1, G0.85, B0.4) Siva (R0.7, G0.7, B0.7) Žuta, Vatra u Narančasta, Crvena (R0.9, G0.7, B0.1) Tablica 2.4.1 – Analiza boja objekata na slici šume u vidljivom dijelu spektra Ova metoda se temelji na ovim podacima, odnosno na mogućnosti prepoznavanja dima i vatre na slici. 17 Algoritam se odvija u dvije faze. U prvoj fazi uzima se samo jedna slika, te se na njoj pronalaze pikseli koji zadovoljavaju određene uvjete. U drugoj fali se uzima u obzir moguća greška prve faze, te se na slijedu slika korištenjem određenih pravila zanemaruju pogrešni alarmi. Prva faza: 1. RGB slika se transformira u sivu sliku korištenjem transformacijske formule 2. Postavlja se granična vrijednost: Ovisno o uvjetima poput godišnjeg doba, doba dana, vremenu i slično ova granična vrijednost može poprimati različite vrijednosti. Te se vrijednosti određuju na temelju eksperimenata. 3. Slika se pretvara u binarnu sliku, gdje je piksel označen sa 1 piksel koji je zadovoljio uvjet granične vrijednosti, a 0 ako taj uvjet nije zadovoljen. 4. Prepoznavanje sumnjivih površina: Površina koja se sastoji od piksela označenih sa 1 u binarnoj slici se označava sa „A“ 5. Ako vrijedi da je A ≤ a, odnosno broj piksela u A manji ili jednak graničnoj vrijednosti a, riječ je o šumu na slici 6. Ukoliko je A ≥ b, riječ je o objektu poput oblaka 7. Ukoliko je 9 < \ < ] , riječ je o sumljivom dijelu slike, odnosno potencijalnoj vatri Druga faza: 1. Ukoliko se na tri uzastopne slike površina ne prepozna kao sumnjiva vatra, ona se odbacuje 2. Ako su tri uzastopne slike 1B, U , 2B, U , 3B, U , a B, U su koordinate slike, onda se izračuna sljedeće: ^1B, U = G_1B, U ` − _2B, U `G ^2B, U = G_2B, U ` − _3B, U `G 3. Prvo se eliminira šum, zatim se izračuna i označi sa „S“: ^B, U = G^1B, U − ^2B, U G 18 4. Ukoliko je ≥ objekt je oblak, neizraslo područje i slično 5. Ukoliko je < objekt je potencijalna vatra 19 2.5.Algoritam 5 „Detekcija dima na videu u svrhu sustava ranog alarmiranja u slučaju vatre “; „The Smoke Detection for Early Fire-Alarming System Base on Video Processing“ 2.5.1. Autori Thou-Ho (Chao-Ho) Chen, Yen-Hui Yin, Shi-Feng Huang and Yan-Ting Ye Department of Electronic Engineering, ;ational Kaohsiung University of Applied Sciences, Kaohsiung, Taiwan 807, R. O. C. 2.5.2. O Algoritmu Proučavajući dim, došlo se do zaključka da je u većini slučajeva dim sive boje. Štoviše, boja dima ovisi i o fazi izgaranja, odnosno o temperaturi samog dima. Ukoliko je temperatura dima mala, boja varira od bijelo-plave do bijele. Ako je temperatura velika, nekoliko trenutaka prije nego što se pojavi vatra, boja dima varira od sivo-crne do crne. Nažalost, neka područja na slici jednakih su boja poput dima, što predstavlja problem za ispravnu detekciju. Ova se područja slična dimu događaju u dva slučaja: objekti koji nisu dim, ali su sličnih boja, te pozadinsko osvjetljenje čiji izvor emitira boje slične bojama dima. Zbog tih razloga, mora se u obzir uzeti i dinamička svojstva dima, odnosno detekcija se mora vršiti na pokretnoj slici. Algoritam se, dakle, sastoji od dva koraka, statičke analize i dinamičke analize. Prvi korak: Statička analiza Kako je već rečeno, dim se često pojavljuje u sivim bojama. Te se sive boje mogu prikazati kao dvije nijanse: svijetlo-siva i tamno-siva. Ova se karakteristika dima može iskoristiti u RGB modelu boja na sljedeći način: ±b = ±c = ±d 20 Također, pokazalo se vrlo učinkovito koristiti HSI model boja, jer se sive boje mogu predstaviti I (intensity) komponentom. Intenziteti svijetlo-sivih i tamno sivih boja mogu se predstaviti na sljedeći način: =" ≤ ≤ =% e" ≤ ≤ e% Gdje su =" , =% , e" i e% granične vrijednosti. Eksperimentalno se došlo do sljedećih vrijednosti pomoću kojih se dobiju zadovoljavajući rezultati: 15 ≤ b ≤ 20 e" = 80, e% = 150 =" = 150, =% = 220 Drugi korak: Dinamička analiza Vjetar uzrokuje neočekivane kretnje dima, stoga nije moguće dinamičku analizu vršiti na način da se pronađe točno određeni oblik dima, jer takav ne postoji. Ipak koristi se sljedeće pravilo: <h g i ≥ He Hh Hℎ6> k56 <7 A: k56 Gdje je SEP suma opsega segmentiranih područja dima, STP broj piksela koji su detektirani kao dim, a STD je eksperimentalno određena granična vrijednost. Uz ovu karakteristiku, dinamička analiza pretpostavlja sljedeći korak. Provjeru brzine povećanja površine koju dim obuhvaća na slici. Površina na slici može se predstaviti brojem piksela, a vremenski trenutak se može shvatiti kao slika (frame). Stoga vrijedi: ∆\mZ = Ih hSDP − hS = I: + 5 − 21 Izračuna se srednja vrijednost: C 1 oooooo ∆\ mn = M ∆\mZ > Sp" Više se puta treba provjeravati oooooo ∆\mn , jer se pod utjecajem vjetra područje dima konstantno mijenja. AEkqe" < oooooo ∆\mn < e% r > Am Hℎ6> k56 <7 A: k56 gdje su e" i e% granične vrijednosti koje osiguravaju donju i gornju granicu brzine povećavanja, a Am je granična vrijednost kojom se zahtjeva određeni broj zadovoljavanja oooooo uvjeta e" < ∆\ mn < e% . Sekvenca slika Segmentiranje pokretnih dijelova pomoću razlike slika Ne Izdvajanje piksela dima na temelju uvjeta Je li riječ o dimu na temelju dinamičke analize Da Alarm 22 2.6.Algoritam 6 „Klasifikacija piksela vatre korištenjem neizrazite logike i statističkog modela boja“ „Fire pixel classification using fuzzy logic and statistical color model“ 2.6.1. Autori Turgay Çelik*, Hüseyin Özkaramanli, Hasan Demirel Department of Electrical and Electronic Engineering, Eastern Mediterranean University , Gazimağusa, TR;C, Mersin 10, TURKEY 2.6.2. O Algoritmu Algoritam koristi YCbCr model boja kako bi se odvojio luminance signal od chrominance. Ako se promatra slika u RGB modelu boja, može se zaključiti da za piksele vatre vrijedi sljedeće pravilo. ≥≥ ≥ tuvC Ovi se uvjeti mogu primijeniti i na YcbCr model boja na sljedeći način: wB, U > x]B, U x;B, U > x]B, U Ove se jednadžbe mogu opravdati činjenicom da vatra ima veliko zasićenje crvene boje. Eksperimentima se pokazalo da se povećanjem razlike između wB, U i x]B, U komponenti piksela, povećava i vjerojatnost da je riječ o pikselu vatre. Također, veće razlikovanje između x;B, U i x]B, U povećava vjerojatnost da je piksel upravo piksel vatre. Definira se hy B, U kao mjera kolika je vjerojatnost da je određeni piksel na lokaciji B, U piksel vatre. Vrijednosti ove varijable su iz ranga 0,1. Koristi se neizrazita logika, te se koristi sljedeća tablica za formiranje pravila logike, uz napomenu da su oznake sljedeće: N-negativan, P-pozitivan, B-veliki, S-mali, ZE-nula. 23 Primjer pravila bi, dakle, bio sljedeći: if wB, U − x]B, U is B and x;B, U − x]B, U is S then hy B, U is B Tablica 2.6.1. Tablica pravila za neizrazitu logiku Vrijednosti wB, U − x]B, U i x;B, U − x]B, U su normalizirane u rangu −1,1, Primjenom jednog od ovih 25 uvjeta neizrazite logike dobije se izlaz koji je prikazan na Slici 2.6.1. Slika 2.6.1. 3D reprezentacija uvjeta neizrazite logike Definira se i nova vrijednost y B, U = 1 hy B, U ≥ 0.5 0 :ℎ6;R 6 Na temelju detaljnog istraživanja se došlo do zaključka da se pikseli vatre u YCbCr modelu boja mogu prikazati kao sjecište triju polinoma Ex; , 7x; Ix; : 24 Može se definirati sljedeće pravilo pomoću kojeg se može provjeriti pripada li piksel skupini piksela koji su potencijalni pikseli vatre. zx]B, U ≥ Eqx;B, U r{ ∩ zx]B, U ≤ Iqx;B, U r{ ∩ x]B, U ≤ 7qx]B, U r 25 2.7.Algoritam 7 „Prepoznavanje plamena na videu“; „Flame Recognition in Video“ 2.7.1. Autori Walter Fillips III Mubarak Shah ;iels da Vitoria Lobo Computer Vision Laboratory School of Electrical Engeneering and Computer Science University of Central Florida 2.7.2. O Algoritmu Algoritam se temelji na informacijama o boji i pokretu na videu kako bi se na automatiziran način detektirao plamen. Ovaj pristup se temelji na formiranju Gausovog histograma boja kako bi se detektirali pikseli potencijalne vatre, a onda se na temelju vremenske varijacije piksela odlučuje je li uistinu riječ o pikselima vatre. Nadalje se dodatnim tehnikama provjerava imaju li pronađeni pikseli svojstva vatre. Uz sve to, algoritam je smišljen kako bi bio neosjetljiv na pomicanje kamere. Prvi korak: Prvi korak algoritma jest detekcija boje. U ovom koraku algoritma vrlo je vjerojatno da će doći do pogreške u detektiranju, odnosno, vrlo je vjerojatno da će se kao vatra detektirati segmenti slike koji to nisu. Ipak, to nije kritično za algoritam, jer će se ti segmenti izdvojiti u kasnijim fazama algoritma. Kreiraju se parovi slika koji sudjeluju u „učenju“ koje boje su boje vatre. Prva slika je slika u boji, a druga je Booleova slika. Ako piksel na poziciji x,y poprima vrijednost 1, onda boja piksela na istoj poziciji u prvoj slici pripada boji vatre. Ukoliko je vrijednost 0, ona ne pripada. Kreira se histogram na sljedeći način: za svaku lokaciju piksela u slici se provjeri odgovarajuća vrijednost Booleove slike. Ako je vrijednost 1 onda se doda Gausova distribucija histogramu boja središnjoj vrijednosti koja odgovara boji tog individualnog piksela. Ukoliko je vrijednost na Booleovoj slici 0, onda se oduzima manja Gausova distribucija od histograma boja centriranog na boju koja odgovara boji tog piksela. 26 Na kraju se pomoću granične vrijednosti izgladi histogram na odgovarajuću razinu, čime se dobije funkcija Colorlookup, koja za danu RGB vrijednost vraća 1 ili 0, ovisno je li riječ o pikselu boje vatre ili ne. Drugi korak: Vatra je plinovita stoga može postati poluprozirna. Stoga je potrebno naći srednju procijenjenu vrijednost boje vatre u vremenu. To se radi na sljedeći način: QCSp" x7;75E4hS B, U > 1 x7;4;]B, U > 5S x7;B, U = 0 x7;4;]B, U ≤ 5S x7;4;]B, U = Gdje je hS i-ta sličica u sekvenci, hS B, U je RGB vrijednost, 5S je eksperimentalno odabrana konstanta, a > je broj sličica u sekvenci. Vrijednosti > je najbolje odabrati između 3 i 7 kod 30 sličica u sekundi. Vatra treba biti detektirana u barem 1/5 slučajeva, odnosno 5S = 0.2. Treći korak: Kako je već spomenuto, vatra se ne može pronaći samo na temelju boje. Stoga se uzima u obzir i pokret, jer se zna kako vatra nije stacionarna, već je u stalnom pokretu. Za svaki se piksela izračuna Diffs na sljedeći način: e B, U = QCSp%}qxS B, U r − xS!" B, U } >−1 Gdje je xS i-ta sličica u sekvenci od n sličica, a je funkcija + + /3. Ovdje ne završava ovaj korak algoritma, već se još treba izračunati i ;onfirediffs kako bi se eliminirao pokret kamere. A>;6I = Nakon toga se izračuna : QW,X,NW,X pF e B, U QW,X,NW,X pF 1 ∆B, U = e B, U − A>;6I 27 Ako je neki segment slike obojen bojama vatre, ali je za te piksele izračunata vrijednost ∆B, U mala, vjerojatno nije riječ o vatri. Četvrti korak: Kreira se Booleova slika na temelju uvjeta: 1 x7;B, U = 1 9>I ∆B, U > 5% +;6B, U = 0 :ℎ6;R 6 Ukoliko je srednja vrijednost intenziteta veća od konstante 5T , onda se vatra ne može detektirati ali postoji vjerojatnost da je riječ o plamenu koji je preblizu kameri i kod kojeg se ne vide njegovi rubovi. Treba izračunati broj 1 u Color i taj broj nazvati ;umfire. Također, izračuna se broj 1 u Fire, te se on nazove Foundfire. Ako je Foundfire/Numfire manji od 5J onda vjerojatno nije riječ o vatri, odnosno ne može se detektirati vatra. Peti korak: Provjerava se osam susjeda piksela, te se eliminiraju svi pikseli u Fire koji nemaju barem pet od osam susjeda čija je vrijednost 1, odnosno koji su također vatra. Time se eliminira refleksija vatre. Na kraju se koristi „region-growing“ algoritam. Rekurzivno se pretražuju svi spojeni susjedi Fire piksela i označe se sa Fire ako su boje vatre. Na temelju granične vrijednosti, može se dogoditi da se piksel koji nije detektiran kao plamen označi kao vatra ako ima susjede koji su prepoznati kao vatra. 28 29 2.8.Algoritam 8 „Detekcija vatre u video sekvencama korištenjem statističkog modela boja“ „Fire detection in video sequences using statistical color model“ 2.8.1. Autori T. Celik, H. Demirel, H. Ozkaramanli, M. Uyguruglu Department of Electrical and Electronic Engineering, Eastern Mediterranean University 2.8.2. O Algoritmu Cilj ovog algoritma jest osigurati detekciju vatre u realnom vremenu na video sljedećih karakteristika: 30 sličica u sekundi i rezolucija 176x144 piksela. Prvo je potrebno definirati postupak kreiranja pozadine, koja će se koristiti u samome algoritmu. Pozadina se modelira korištenjem unimodalne Gaussove distribucije. Za svaki piksel, ukupna vjerojatnost se procjenjuje na sljedeći način: 4qB r = 41 1 B 4 B 4 B Gdje su 41 , 4 , 4 distribucije za crvenu, zelenu i plavu komponentu boje, a B vrijednost intenziteta piksela na lokaciji B . Svaka distribucija je neovisna o drugim distribucijama i računa se na sljedeći način: 4S qS B r = 1 2S B exp - S B − S B % 2 , ∈ _, , ` 2 % B Gdje je S B vrijednost B na -tom kanalu boja, S B je srednja vrijednost od S B , S B je standardna devijacija od S B . 30 Ako se uzme N sličica da bi se izgradila pozadina, onda je procjena S B jednostavna, ali je za procjenu S B potrebno dva prolaska, što nije poželjno za aplikaciju u realnom vremenu. No, postoji način za izračunavanje tih varijabli u jednom prolasku: 1 S B = M S B A p" S B = 9;k9Bp !" }SD" − S } Korištenjem ovih parametara može se izračunati binarna mapa promjena CM koja pokazuje kod kojih je piksela došlo do promjene korištenjem sljedeće formule: xKB = # 1 -M 0 S B 2 ≥ 2 Sp_1,,` :ℎ6;R 6 1 GS B − S B G ≥ bS S B S B = 0 :ℎ6;R 6 S B pokazuje promjenu u kanalima boje, a bS je globalna konstanta koja se odredi eksperimentalno. CM nam govori da se smatra da je došlo do promjene ako postoji promjena u barem dva kanala boja na lokaciji x. Kako bi se eliminirale promjene osvjetljenja i ostale prirodne promjene, potrebno je popraviti vrijednosti parametara na sljedeći način: SD" B = cS S B + 1 − cS S B SD" B = cS S B + 1 − cS GS B −S B G Radi jednostavnosti se može uzeti: b = b1 = b = b i c = c1 = c = c . Nakon procjene pozadine, izvrši se oduzimanje trenutne slike i procijenjene pozadine. Drugi korak je provjera sljedećih nejednadžbi: B > tuvC tuvC 1 = M BS V Sp" 31 B > B > B 0.25 ≤ B ≤ 0.65 B + 1 0.20 ≤ B ≤ 0.60 B + 1 0.05 ≤ B ≤ 0.45 B + 1 Treći korak jest morfološka erozija i dilatacija kako bi se eliminirao šum ,dok se u četvrtom koraku detektiraju blobovi, odnosno nakupine piksela, kao i njihove karakteristike. Formira se „guard area“, odnosno pravokutnik koji opisuje blob. Veličina tog područja se računa na sljedeći način: R ℎ = = 2.0 R ℎ Gdje su R i ℎ dimenzije bloba, a R i ℎ dimenzije „guard area“. Centar prostora bloba se treba pomicati, jer vatra ima karakteristiku da se „ljulja“, odnosno pomiče, te također broj piksela bloba koji je detektiran kao vatra se treba mijenjati, ili povećavati ili smanjivati. Ukoliko su svi ovi uvjeti zadovoljeni, može se detektirati vatra. 32 33 3. RAČUALA IMPLEMETACIJA ALGORITAMA 3.1.Odabir algoritama Odabir osam algoritama opisanih u prethodnom poglavlju bio uvjetovan ograničenom dostupnošću odgovarajuće literature, obzirom da je većinom riječ o člancima IEEE organizacije. Sami algoritmi odabrani su na temelju povoljnih eksperimentalnih rezultata rada koje nude autori algoritama, ali također i na temelju vlastite procjene kvalitete istih. Štoviše, na odabir je uvelike utjecala i sposobnost izražavanja samih autora, ali i njihova odluka o količini podataka koje su bili spremni otkriti o samom algoritmu. Upravo je to i jedan od razloga koji je uvjetovao odabir četiri algoritma koje sam računalno implementirao i detaljno analizirao. Stoga se znalo dogoditi da sam morao odustati od implementacije određenog algoritma, koji iako je obećavao, radi nedostatka potrebnih podataka, nije bilo moguće realizirati. 34 3.2.Algoritam: Detekcija dima u realnom vremenu na videu bazirana na wavelet transformaciji (Wavelet based real-time smoke detection in video) 3.2.1. Uvod u algoritam: Kako je prethodno spomenuto, ovaj algoritam temelji se na nekoliko karakteristika dima snimljenog u vidljivom dijelu spektra. Točnije rečeno, temelji se na sljedećih pet karakteristika: 1. Dim se može na slici pronaći korištenjem detekcije pokreta 2. Rubovi na dijelu slike gdje se pojavljuje dim postaju manje izraženi, odnosno glađi 3. Jedna točka na slici nekoliko puta u sekundi mijenja vrijednost intenziteta piksela ukoliko je riječ o dimu 4. Dio slike gdje se pojavljuje dim poprima manju vrijednost chrome 5. Dim se vremenom širi što rezultira time da segment slike koji predstavlja dim ima konveksan oblik U ovom dijelu diplomskog rada, pobliže ću objasniti svaku od ovih pet navedenih karakteristika dotičnog algoritma, zajedno sa odgovarajućim slikama i dijelovima koda, kako bi se što bolje mogla shvatiti njegova funkcionalnost. Nadalje, ukazati ću i na neke od nedostataka algoritma, ukoliko dotične postoje. 3.2.2. Prvi korak: Detekcija pokreta Algoritam se zasniva na ideji da su segmenti slike u pokretu oni dijelovi slike kod kojih je razlika u vrijednosti piksela veća od prethodno postavljene granične vrijednosti. Sam dim relativno se sporo kreće, a kako ovaj algoritam pretpostavlja da se uzima nekoliko sličica u sekundi, segmenti slike koji bi se otkrili kao pikseli u pokretu usporedbom dvije uzastopno uzete slike bio bi nedovoljan za točan rad algoritma. Stoga se došlo do ideje da se trenutna slika ne uspoređuje sa prethodnom, već sa prvom slikom u nizu. Ipak, ni to nije bilo dovoljno za efikasan i točan rad algoritma, jer postoji vjerojatnost da je na prvoj slici neki objekt u pokretu. To bi rezultiralo jako lošom efikasnošću algoritma, obzirom da bi se na svakoj sljedećoj slici detektirao nepostojeći pokret. Stoga je uveden pojam pozadine, te postupak procjenjivanja pozadine. Sama ideja je ostala ista, ali sada se dopušta mijenjanje slike, odnosno pozadine, s kojom se uspoređuje trenutna slika, upravo iz razloga kako bi se eliminirao pokret u početnoj slici. 35 Kao primjer možemo uzeti niz od pet slika koje imamo prikazane na Slici 3.2.1, na kojoj je prikazana snimka dima. Prvi korak koji je potrebno učiniti jest postaviti vrijednost pozadine na prvu sliku u nizu, odnosno, BF = xF , gdje je xF prva slika u nizu, a B prva procijenjena pozadina. Ostale pozadinske slike procjenjuju se na temelju formule: 9 5, 7 + 1 − 9 BC 5, 7 CD" 5, 7 = C C 5, 7 piksel 5, 7 je u pokretu ako zadovoljava sljedeće: 5, 7 ?6 45 67 5? >?6 E 45;6:E 5, 7 ?6 45 67 5? ?6 E 45;6:E GBC 5, 7 − BC!" 5, 7G > HC 5, 7 gdje je HC 5, 7 granična vrijednost, odnosno threshold. Na Slici 3.2.2, prikazane su procijenjene pozadine "-J, a može se napomenuti da je iz prethodnih formula očito da je F = " . Iz toga se može zaključiti da je prva pozadinska slika " ujedno identična prvoj slici u nizu BF . Slika 3.2.1. ;iz od pet slika na kojem vršimo detekciju pokreta Granična vrijednost HC je veoma bitna jer dvije slike, snimljene jedna za drugom, nikada nemaju potpuno identične vrijednosti, iako ljudskom oku to može tako izgledati. Povećanjem granične vrijednosti smanjujemo šum (pogrešno detektiran pokret), ali i segment slike koji je uistinu pod utjecajem pokreta. Stoga je bitno odrediti idealan iznos granične vrijednosti. Na Slici 3.2.2. možemo vidjeti primjer procijenjenih pozadina. 36 Slika 3.2.2. Četiri procijenjene pozadine Sve četiri procijenjene pozadine su slične, iako ne posve jednake. Vrijednost parametra 9 u praksi bi trebala biti blizu 1, ali u ovom slučaju radi demostracije ima znatno manju vrijednost, 0.4. Prva slika u nizu ima dodanu crnu točku, dok su ostale slike ostale nepromijenjene. Time je simuliran pokret u prvoj slici. Crna točka se vremenom gubi. Rezultat je vidljiv na Slici 3.2.3. Slika 3.2.3. Procjenjivanje pozadine (prva slika u nizu je u pokretu) 37 Nakon što se procijene pozadine, može se izvršiti sljedeći korak, a on jest oduzimanje trenutne slike od procijenjene pozadine, prema formuli: GBC 5, 7 − C 5, 7G > HC 5, 7 Opet treba uočiti da u ovoj formuli postoji granična vrijednost, koju treba pažljivo odabrati. Rezultat ovog algoritma u našem primjeru dan je Slikom 3.2.4. Slika 3.2.4. Rezultat procijenjivanja pozadine char* detect_movement_8bit(unsigned char *Bprev, unsigned char*previous, unsigned char*current,unsigned char* esB, int width, int height, int thresmatrix, int thresdiff, float a) { ... matrix = detect_movement_matrix_8bit(previous, current, width, height, thresmatrix); //Prvo pronañemo piksele u pokretu obzirom na predhodnu sliku Bcur=detect_movement_estimate_B(Bprev, previous, matrix, width, height, a); //Zatim procjenimo pozadinu diff = detect_movement_difference (Bcur, current, width, height, thresdiff); //Na kraju pronañemo prave piksele u pokretu ... return diff; } Na kraju ovog koraka, potrebno je još pronaći i na slici označiti pravokutnikom sve pronađene grupe piksela (veličina najmanje grupe određena graničnom vrijednosti). Na Slici 3.2.5. je rezultat tog postupka odrađen na petoj slici ulaznog niza. Grupirani pikseli nazivaju se blob. 38 Slika 3.2.5. Pronađene grupe piksela kod detekcije pokreta i područja označena na slici Postupak pronalaženja grupe piksela je sveden na pronalaženje piksela bijele boje koji imaju barem jednog susjeda (8 piksela koji okružuju promatrani piksel) koji je također bijele boje. Jedna od mogućih implementacija je rekurzivno pozivanje funkcije, tako da se odmah kod prvog nailaska na bijeli piksel on označi zajedno sa svim svojim bijelim susjedima. void labeln(int y,int x,int width,int height, unsigned char slika[height][width], int nlabel) { ... if(slika[y-1][x-1] != 1 && slika[y-1][x]!= 1 && slika[y-1][x+1]!= 1 && slika[y][x-1]!= 1 && slika[y][x+1]!= 1 && slika[y+1][x-1]!= 1 && slika[y+1][x]!= 1 && slika[y+1][x+1]!= 1 ) {//Ukoliko piksel nema susjeda koji zadovoljavaju uvjet} else { if(x==0 || y==0 || x==(width-1) || y==(height-1)) { if(x==0 && y!=0 && y!=(height-1)) { if(slika[y-1][x+1]==1) { slika[y-1][x+1]=nlabel; labeln(y-1,x+1, width, height, slika, nlabel); //Rekurzivno pozivanje } ... } Ovime završava prvi korak algoritma, to jest detekcija pokreta. 39 3.2.3. Drugi korak: Prostorna Wavelet transformacija Ovaj dio algoritma je zasnovan na pretpostavci da područje koje je obavijeno dimom na slici ima manje izražene rubove nego što je to bilo prije nego se dim pojavio. Wavelet transformacija na 2D slici ima karakteristiku da jasno izdvoji horizontalne, vertikalne i dijagonalne rubove. Slika 3.2.6. Primjena prostorne wavelet transformacije na 2D sliku Na Slici 3.2.6. prikazan je način primjene prostorne Wavelet transformacije na 2D slici. Prvo je potrebno primijeniti Wavelet transformaciju po recima, čime se dobije slika podijeljena u dva dijela L i H, gdje L stoji za „low“, a H za „high“. Nakon toga se ista Wavelet transformacija primjeni po stupcima, a rezultat tog postupka je nova slika podijeljena na četiri dijela kao što je to vidljivo u Slici 3.2.6. Područje LL, iako sliči na umanjenu originalnu sliku, ipak se razlikuje u jednoj bitnoj pojedinosti, a to je da je „provlačenjem“ kroz niskopropusne filtere došlo do neke vrste osrednjavanja vrijednosti piksela, a time i manje izraženim rubovima na slici. Za razliku od toga, područja LH, HL i HH prikazuju upravo te rubove koji su u području LL „izgubljeni“. Važno je napomenuti da područje LH predstavlja horizontalne, područje HL vertikalne, a područje HH dijagonalne rubove na slici. Ako uzmemo prvu sliku iz Slike 3.2.1. te na njoj primijenimo Wavelet transformaciju po recima sa filtrima: {0.25,0.5,0.25} – niskopropusni filter {-0.25,0.5,-0.25}- visokopropusni filter dobit ćemo rezultat koji je prikazan na Slici 3.2.7. 40 for(j=0; j<height; j++) {... for(i=0; i<width; i=i+1) { if(i==0 && j==0) {temp3=0;} else {temp3=(float)slika[j][i-1];} if((i==width-1 && j==height-1)) {temp4=0;} else {temp4=(float)slika[j][i+1];} temp1=(float)slika[j][i]*0.5 + temp4*0.25 + temp3*0.25; temp2=(float)slika[j][i]*0.5 - temp4*0.25 - temp3*0.25; wavelet[j][k]=temp1; wavelet[j][k+width/2]=temp2; k++; } } Slika 3.2.7. Wavelet transformacija po recima Kako je već prije opisano, nakon primjene Wavelet transformacije po recima, ista se primjenjuje i po stupcima. Rezultat je vidljiv na Slici 3.2.8. Ipak, važno je napomenuti da rezultati transformacija prikazani na Slici 3.2.7 i Slici 3.2.8 nisu posve točni. Naime vrijednosti intenziteta boje u određenom pikselu je u rasponu 0-255, a vrijednosti koje se dobiju wavelet transformacijama često izlaze iz tog raspona, a nerijetko su i negativni. Stoga treba ovaj prikaz shvatiti samo kao reprezentativni. 41 Taj prikaz se može i do neke razine prilagoditi prikazu, kao što je vidljivo na Slici 3.2.9. U tom je primjeru očito isticanje horizontalnih, vertikalnih i dijagonalnih rubova. Slika 3.2.8. Wavelet transformacija po recima i stupcima Slika 3.2.9. Wavelet transformacija sa i bez prilagođavanja prikaza Sljedeći korak jest pronaći sve RC prema sljedećoj formuli: RC B, U = G=C B, U G% + G=C B, U G% + GC B, U G% Ipak, radi veće efikasnosti ovog dijela algoritma, ne uspoređuju se RC -ovi, već se usporedba temelji na blokovima od 8x8 piksela. Uvedena je vrijednost 67" , 7% , energija bloka, koja se jednostavno izračuna zbrojem svih 64 vrijednosti RC unutar dotičnog bloka. 42 67" , 7% = M RC B + 7" V" , U + 7% V% W,X ∈1Z gdje S predstavlja blok veličine V" , V% u wavelet podslici. Usporedba temeljena na energijama bloka, a ne na vrijednostima RC , vrlo je bitna jer je ona manje ovisna o pomicanju kamere tijekom snimanja. Bez obzira na to, pokazalo se da pomicanje kamere, kao i promjena osvjetljenja uvjetovana suncem ili jačinom bljeskalice, i dalje uvelike utječe na ovaj dio algoritma. Na Slici 3.2.10. i Slici 3.2.11. prikazana su dva primjera. Na Slici 3.2.10. obe ulazne slike su potpuno identične (riječ je o istoj slici), osim u jednom dijelu slike koji je umjetnim putem zamučen (blur). Slika 3.2.10. Usporedba energija blokova u slučaju istih slika sa umjetnim zamućivanjem Algoritam bez problema pronalazi segment slike koji je zamućen, to jest, kod kojeg je došlo do smanjenja izraženosti rubova. Na Slici 3.2.11. riječ je o pravim slikama (prva i peta slika prikazana na Slici 3.2.1), te ja lako uočljivo da iako na prvi pogled nema razlike u slikama osim u dijelovima gdje ima dima, pokazalo se da algoritam pronalazi smanjenje u energijama i na mjestima gdje dima nema. 43 Slika 3.2.11. Usporedba energija blokova pravih slika, iznosi graničnih vrijednosti su: a) 100 b) 700 Objašnjenje toga jest lagano pomicanje kamere, pokreti lišća, grana ili sličnih objekata, promjena osvjetljenja uvjetovanog suncem ili bljeskalicom, ili samom ograničenošću tehnike. Važno je napomenuti da je ipak pronađen i segment slike kod kojeg je uistinu došlo do izglađivanja rubova uvjetovanog dimom, što je i vidljivo na Slici 3.2.11b). To postaje još izraženije ukoliko povećamo vrijednost granične vrijednosti. U ovom dijelu su moguće različite implementacije algoritma, ovisno o načinu odabira graničnih vrijednosti, odnosno thresholda. Jedna od mogućnosti je rješenje sa jednom graničnom vrijednosti „t1“, a rezultati su prikazani na Slici 3.2.11.: if(e2[k]-e1[k]<-t1) { /*Uvjet zadovoljen, došlo do smanjenja vrijednosti energije i=k%block_in_row; for(l1=j*8;l1<j*8+8;l1++) { for(l2=i*8;l2<i*8+8;l2++) { data[l1][l2]=255; } } */ } 44 else { /*Uvjet nije zadovoljen i=k%block_in_row; for(l1=j*8;l1<j*8+8;l1++) { for(l2=i*8;l2<i*8+8;l2++) { data[l1][l2]=0; } } */ } Druga mogućnost jest korištenjem dviju graničnih vrijednosti za koje vrijedi 1 > H" > H% > 0 tj, H" 6 7" , 7% > 67" , 7% > H% 6 7" , 7% , uz H% > 0, čime je dodano ograničenje da rubovi ne smiju u potunosti nestati sa slike, jer se smatra da je dim poluproziran. Kod za zadovoljeni uvjet bi izgledao ovako: if(((t1*e1[k])>e2[k])&&(e2[k]>(t2*e1[k]))) { /* i=k%block_in_row; for(l1=j*8;l1<j*8+8;l1++) { for(l2=i*8;l2<i*8+8;l2++) { data[l1][l2]=255; } } */ } Time završava drugi korak algoritma, koji se pokazao pomalo problematičan ukoliko je riječ o slikama prirode, jer je riječ o području koje nije nikada u stanju potpunog mirovanja. 45 3.2.4. Treći korak: Vremenska Wavelet transformacija Treći korak algoritma koristi istu wavelet transformaciju, iste filtere, kao i drugi korak ovog algoritma. Cilj ovog koraka jest pratiti titranje dima, a smatra se da dim titra frekvencijama između 1 i 3Hz. Na Slici 3.2.12. Prikazan je dvorazinski filterski slog pomoću kojeg se dolazi do vrijednosti dvaju signala: IC i 6C . Slika 3.2.12. Dvorazinski filterski slog Odabere se jedan piksel na slici koji se nalazi unutar područja koje je detektirano kao područje u pokretu. Pamti se vrijednost tog piksela u vremenu te se zapisuje u niz, a nakon dovoljnog broja uzetih vrijednosti izvrši se wavelet transformacija. Na Slici 3.2.13. prikazane su vrijednosti ovih podsignala u različitim slučajevima. Kod stacionarnog piksela njihove su vrijednosti 0 ili blizu 0. Ako imamo obični objekt koji se kreće, to će rezultirati jednim skokom u jednom od ovih podsignala. Ukoliko je riječ o dimu ili sličnim pojavama tih skokova će biti nekoliko u sekundi. 46 300 250 200 Signal 150 100 50 dn en 0 -50 1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 -100 250 200 150 Signal 100 dn 50 en 0 -50 1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 -100 Slika 3.2.13. Grafovi podsignala IC i 6C kod dima i kod uobičajenog objekta u pokretu Na Slici 3.2.13. u prvom slučaju riječ je o mogućem dimu jer vrijednosti podsignala često imaju nagle skokove koji prelaze preko nule. U drugom slučaju, naprotiv, mala je vjerojatnost da je riječ o dimu, već se vrlo vjerojatno radi o uobičajenom objektu radi jednog naglog skoka. . float * temporal_wavelet_8bit(unsigned char *pixelbuff, int frames, float *e) { ... for(i=0;i<frames;i=i+2) { ... temp1=(float)pixelbuff[i]*0.5 + pixelbuff[i-1]*0.25 + pixelbuff[i+1]*0.25; temp2=(float)pixelbuff[i]*0.5 - pixelbuff[i-1]*0.25 pixelbuff[i+1]*0.25; d[k]=temp2; //dn e_temp[k]=temp1; k++; } 47 for(i=0;i<frames/2;i=i+2) { ... temp2=e_temp[i]*0.5 - e_temp[i-1]*0.25 - e_temp[i+1]*0.25; e[k]=temp2; //en k++; } ... } Problem ovog koraka algoritma jest kako odabrati pravi piksel koji će biti reprezentativan. Taj piksel se svakako mora nalaziti unutar grupe piksela koji su detektirani kao pikseli u pokretu. Drugo rješenje jest pratiti sve piksele unutar te grupe, ali time algoritam postaje veoma zahtjevan. Iako se ovdje gleda broj prelazaka preko nule podsignala IC i 6C , važno je napomenuti da kao i u ostalim dijelovima algoritma, treba postaviti graničnu vrijednost kako bi se nula „smatrala“ područjem [-t,t]. 3.2.5. Četvrti korak: Provjera boje dima Informacija o boji vrlo je važan faktor kod detekcije dima na slici. Područja slike zahvaćena dimom imaju manju vrijednost chrominance nego što je isti segment slike imao prije nego što se dim pojavio. Algoritam predlaže YUV model boja, odnosno predlaže da se provjere U i V komponente, te da se, ukoliko je došlo do smanjenja njihovih vrijednosti, područje označi kao potencijalni dim. YUV vrijednosti boja se računaju prema sljedećim formulama: w = 0.299 ∗ + 0.587 ∗ + 0.144 ∗ = 0.436 ∗ − w /1 − 0.144 = 0.615 ∗ − w /1 − 0.299 Rezultat usporedbe vrijednosti U i V, odnosno svi pikseli kod kojih je došlo do smanjenja vrijednosti U i V, je prikazan na Slici 3.2.14. Ulazne slike su i dalje slike prikazane na Slici 3.2.1. 48 Slika 3.2.14. Usporedba boja pozadine i trenutne slike na temelju U i V vrijednosti Kao što je iz slike vidljivo, rezultat nije očekivan. Ukoliko se umjesto YUV modela boja uzme HSI model, te se usporedba vrši na temelju saturation, odnosno zasićenosti, dobije se sljedeći rezultat, prikazan na Slici 3.2.15. Slika 3.2.15. Usporedba boja pozadine i trenutne slike na temelju saturation Ukoliko segment slike koji je detektiran kao pokret zadovoljava i ovaj uvjet, riječ je o potencijalnom dimu. 49 3.2.6. Peti korak: Provjera konveksnosti oblika Posljednji korak algoritma koristi karakteristiku dima da ima konveksan oblik. Konveksnost se provjerava na način da se napravi mreža NxN, na primjer 5x5, te se provjerava pripadnost piksela te mreže pozadini ili području potencijalnog dima. Mreža 5x5 se formira na način da se odredi pet horizontalnih i pet vertikalnih, međusobno jednako razdvojenih linija, kao što je prikazano na Slici 3.2.16. Slika 3.2.16. Konveksnost oblika Sam algoritam se temelji na segmentima slike odnosno blobovima koji su rezultat prvog koraka algoritma. Ukoliko postoje tri uzastopna piksela koja pripadaju pozadini, kao što je to vidljivo na Slici 3.2.16. zaključuje se da oblik nije konveksan, a samim time nije riječ o dimu. Treba napomenuti da se ne gledaju prva i posljednja horizontalna (vertikalna) linija, jer je velika vjerojatnost da većina piksela ipak pripada pozadini, iako sam oblik može biti konveksnog oblika. Na Slici 3.2.17. provjerava se oblik koji je detektiran kao pokret u primjeru iz Slike 3.2.1. 50 Slika 3.2.17. Detektirani pokret je konveksnog oblika U ovom koraku algoritma je zaključeno da je oblik koji je detektiran kao pokret konveksnog oblika. Ovime su zadovoljeni svi koraci algoritma te se podiže uzbuna da je na slici detektiran dim. 51 3.3.Algoritam: Inteligentna metoda detekcije vatre u realnom vremenu temeljena na obradi pokretne slike (An Intelligent Real-Time Fire-Detection Method Based on Video Processing) 3.3.1. Uvod u algoritam Ovaj algoritam temelji se na dvije glavne karakteristike vatre, odnosno plamena. Prva karakteristika je da plamen poprima određen spektar boja koji se može prikazati uz pomoć nekoliko uvjeta, a druga karakteristika jest da je plamen uvijek u pokretu, i što je još važnije, da se plamen prilikom pojavljivanja širi i povećava. U prvoj fazi algoritma izdvoje se pikseli vatre, a zatim se ti pikseli ograniče samo na one koji su u pokretu. U drugoj fazi se iterativno provjerava povećava li se broj piksela vatre vremenom. U ovom dijelu diplomskog rada pobliže ću objasniti ovaj algoritam, ali i način vlastite implementacije na računalu, zajedno sa odgovarajućim primjerima. 3.3.2. Prva faza Za prvu fazu rada ovog algoritma najvažnija su tri sljedeća uvjeta, a do njih se došlo prema postupku objašnjenom u poglavlju 2.1.2 ovog diplomskog rada: 1. > * 2. ≥ > / 3. + , ≥ -255 − ∗ 10 23 45 67 89:;6 0 <=< >?6 45 67 89:;6 RGB model boja koristi se zbog manje računske zahtjevnosti. Ipak, ovaj algoritam zahtijeva i korištenje HSI modela boja, kao što je to i očito u 3. uvjetu. Na Slici 3.3.1. i Slici 3.3.2. mogu se vidjeti rezultati prvog dijela algoritma na slikama vatre po danu i po noći. 52 Slika 3.3.1. Snimka vatre po danu i rezultat prvog dijela algoritma Slika 3.3.2. Snimka vatre po noći i rezultat prvog dijela algoritma Za opis rada algoritma, posebno druge njegove faze, koristi se niz od 230 slika snimke nastajanja plamena vatre. Niz je prikazan na Slici 3.3.3. Slika 3.3.3. Snimka nastajanja plamena 53 Odgovarajući kod je sljedeći: if( (imgbuff[i]>rt) && \ ((imgbuff[i]>=imgbuff[i+1])&&(imgbuff[i+1]>imgbuff[i+2])) && \ (slika_hsi[i+1]>=((255-imgbuff[i])*(st/rt))) ) {...} Prvi uvjet, odnosno imgbuff[i]>rt, gdje je imgbuff[i] crvena komponenta boje ove slike (imgbuff[i+1] zelena, a imgbuff[i+2] plava), a rt predefinirana granična vrijednost, definira da se vatrom može smatrati samo onaj segment slike koji ima dovoljno visoku vrijednost intenziteta crvene boje. Eksperimentalno se došlo do zaključka da je najbolje za graničnu vrijednost rt uzeti intenzitete između 115 i 135. Drugi uvjet, odnosno imgbuff[i]>=imgbuff[i+1] && imgbuff[i+1]>imgbuff[i+2] se temelji na konverziji HSI u RGB model boja, gdje ≥ > označava prijelaze boja od crvene do žute. ≥ > odgovara rasponu od 0° do 60°, prikazano na Slici 3.3.4. Slika 3.3.4. Distribucija boja u HSI Treći uvjet, slika_hsi[i+1]>=((255-imgbuff[i])*(st/rt)),ujedno je i najkompliciraniji i zahtjeva prethodnu konverziju RGB u HSI model boja. Ovdje imamo dvije granične vrijednosti, rt i st. Granična vrijednost rt već je korištena u prvom uvjetu, i ona poprima istu vrijednost kao i prije. Nadalje, st obilježava vrijednost saturation koja se na istom pikselu dobije kada vrijednost crvene boje poprimi intenzitet rt. Vrijednost saturation opada kako se povećava vrijednost crvene komponente. Stoga, izraz 255 − ∗ 10 upravo to i prikazuje. Povećanjem R komponente prema njezinoj najvećoj / 0 54 vrijednosti 255 saturation opada prema 0, prikazano na Slici 3.3.5. Eksperimentalno se došlo do zaključka da je najbolje uzeti vrijednosti za st u rasponu od 0.55 do 0.65, naravno ovisno o intenzitetu rt. Slika 3.3.5. Ovisnost saturation i crvene komponente boje u 3. uvjetu Na Slici 3.3.6. je isti primjer kao i na Slici 3.3.1., ali ovaj put je riječ o prikazu svakog od tri uvjeta pojedinačno. Slika 3.3.6. Tri glavna uvjeta i njihove reprezentacije na primjeru Ipak, iako je algoritam na predloženim primjerima već u prvoj fazi pronašao segmente slike na kojima je riječ o vatri, važno je napomenuti da bi bez druge faze algoritma vrlo često dolazilo do neispravnog i neistinitog podizanja alarma. Kao primjer se može uzeti slika zalaska sunca prikazana na Slici 3.3.7., te rezultat prvog koraka algoritma za dotičnu sliku, prikazan na Slici 3.3.8. Uistinu, boja neba na ovom primjeru odgovara mogućim bojama plamena. 55 Slika 3.3.7. Slika zalaska sunca Slika 3.3.8. Pronalazak piksela vatre na slici zalaska sunca Iz ovog primjera je očito da se vatra na slici ne može pronaći samo na temelju boje. Treba uzeti u obzir i pokret koji je karakterističan za plamen. Jedna od stvari koja se u ovom algoritmu koristi je i osnovna detekcija pokreta. Za detekciju pokreta u ovom algoritmu nije točno definirana metoda koju treba koristiti. Stoga u mojoj implementaciji koristim istu metodu kao u algoritmu „Detekcija dima 56 u realnom vremenu na videu bazirana na wavelet transformaciji“, opisana u poglavlju 3.2.2. ovog diplomskog rada, stoga nema potrebe za detaljnim objašnjavanjem. Na kraju prve faze algoritma, izdvajaju se oni segmenti slike koji su i u pokretu i čije vrijednosti boja zadovoljavaju tri navedena glavna uvjeta. Dotične piksele, koji zadovoljavaju sve navedene uvjete, nazivamo pikseli potencijalne vatre. 3.3.3. Druga faza Druga faza algoritma uzima u obzir dinamiku vatre, odnosno plamena. Treba napomenuti da je dinamika već uzeta u obzir i u prvoj fazi algoritma, kod detekcije pokreta. U ovom dijelu se dinamika vatre temelji na nekim dodatnim svojstvima. Glavna pretpostavka je da se od trenutka kada plamen nastane, do trenutka kada plamen gori punom snagom, konstantno povećava broj piksela potencijalne vatre. Vatra se širi na temelju dva faktora: materijalnog faktora (fizička svojstva materijala i kemijski sastav), te faktora okoliša (temperatura i utjecaj kretanja zraka). Na početku, kamera ne zabilježi gotovo niti jedan piksel potencijalne vatre. Slika 3.3.9. Pregled promjene količine piksela potencijalne vatre u vremenu To je očito i u primjeru na Slici 3.3.9. Od sličice 30 nadalje naglo se povećava broj piksela potencijalne vatre, a plamen od 150 sličice nadalje gori ujednačenom jačinom. 57 Algoritam definira dvije vrijednosti: @1 i A/ . Interval, odnosno vrijeme koje je proteklo između dvije slike koje se promatraju označavamo sa @1 . Točnije rečeno @1 označava broj sličica koje se propuste između dvije promatrane slike. A/ je granična vrijednost koja definira koliko se mora povećati broj piksela potencijalne vatre u odnosu na prethodno promatranu sliku. if(...) { if(firepiksels[i]-firepiksels[i-T]>0) { temp_k++; } if(firepiksels[i]-firepiksels[i-T]<=0) { temp_k=0; } U kodu, firepiksels[i],označava broj piksela potencijalne vatre u trenutnoj slici, a firepiksels[i-T]označava broj piksela u prethodno promatranoj slici, jer vrijedi T=@1 . Što se tiče varijabli temp_k i k uz pomoć njih se određuje koliko je potrebno uzastopnih pronalazaka povećanja broja piksela vatre, kako bi se detektirala vatra. To je vidljivo i iz nastavka koda: if(temp_k>=k && firepiksels[i]-firepiksels[i-T]>Ns) { printf("FIRE ALARM!!!\n"); ... } } Ovdje se pojavljuje i Ns, odnosno granična vrijednost koja zahtijeva da razlika u broju piksela vatre u zadnjem izmjerenom slučaju bude veća od predefinirane vrijednosti. Ukoliko se k puta za redom dogodi povećanje u broju piksela vatre, a zatim da je u posljednjem koraku to povećanje bilo značajno, podiže se uzbuna za vatru. Na primjeru prikazanom na Slici 3.3.9. uz parametre k=5, T=5, Ns=100 alarm za uzbunu je podignut 2 puta, kao što je to vidljivo na Slici 3.3.10. 58 Slika 3.3.10. Podignute uzbune na primjeru snimke vatre (k=5, T=5, ;s=100) Koliko često i koliko osjetljivo će sustav reagirati ovisi prvenstveno o parametrima k, T i Ns. Treba biti pažljiv prilikom odabira ovih vrijednosti, te uzeti u obzir da se vatra ne povećava konstantno. Primjer se može vidjeti na Slici 3.3.10. Iako se u razdoblju između 46. i 136. sličice plamen povećavao, nije podignuta uzbuna. Između 46. i 61. sličice dolazi do smanjenja broja piksela vatre, stoga se ne zadovoljava uvjet da se kod k uzastopnih mjerenja mora povećati broj piksela vatre. Slično je i kod 76., te 121. sličice. Rješenje ovog problema može biti i uvođenje dodatne granične vrijednosti koja će dopuštati određeno smanjenje broja piksela potencijalne vatre u jednom ili više koraka tijekom mjerenja. Poput ostalih algoritama, i ovaj je potrebno doraditi i usavršiti, ali u ovom primjeru algoritam je uspio detektirati vatru. 59 3.4.Algoritam: Metoda automatskog nadgledanja šumskog požara na slici u vidljivom dijelu spektra (Tehnique for Automatic Forest Fire Surveillance Using Visible Light Image) 3.4.1. Uvod u algoritam: Algoritam sliku u RGB modelu boja pretvara u sivu sliku pomoću transformacijske formule koja je određena na temelju eksperimentalnih ispitivanja. Pomoću granične vrijednosti se izdvoje samo oni dijelovi slike koji zadovoljavaju uvjet. Slijed od 3 slike u nizu na kojima se detektira potencijalna vatra se dalje proučava te se eliminiraju krivo detektirana područja. 3.4.2. Prva faza Prvi korak algoritma je transformacija slike iz RGB modela boja u sivu sliku korištenjem transformacijske formule. Kao što su intenziteti piksela u RGB modelu boja u rangu 0-255, tako su i intenziteti piksela novonastale sive slike u istom rangu. Transformacijska formula je sljedeća: 89B, U = 0.11 ∗ B, U + 0.59 ∗ B, U ∗ 0.3 ∗ B, U Primjeri transformacija prikazani su na slikama Slika 3.4.1. i Slika 3.4.2. Slika 3.4.1. Primjer transformacije iz RGB slike u sivu sliku 60 Slika 3.4.2. Primjer transformacije iz RGB slike u sivu sliku Uz pomoć granične vrijednosti se siva slika koja je dobivena u prethodnom koraku pretvara u binarnu sliku. for(i=0;i<width*height;i++) { if(imgbuff[i]>threshold) imgbuff[i]=1; if(imgbuff[i]<=threshold) imgbuff[i]=0; } Pikseli na sivoj slici koji imaju vrijednost intenziteta veći od zadane granične vrijednosti u binarnoj slici imaju vrijednost 1. Pikseli koji vrijednost intenziteta imaju manju od dotične granične vrijednosti, imaju 0. Na Slici 3.4.3. prikazan je rezultat ovog koraka primijenjen na Sliku 3.4.1. 61 Slika 3.4.3. Uvjet granične vrijednosti intenziteta na sivoj slici Na Slici 3.4.3. je binarna slika prikazana u crno-bijeloj varijanti, odnosno pikseli koji imaju vrijednost 1 su prikazani kao da imaju vrijednost 255. Površina koja se sastoji od piksela označenih sa 1 u binarnoj slici se označava sa „A“. Ako vrijedi da je A ≤ a, odnosno broj piksela u A manji ili jednak graničnoj vrijednosti a, riječ je o šumu na slici. Ukoliko je A ≥ b, riječ je o objektu poput oblaka. Očito je da je i nebo prepoznato kao mogući dim. Da bi se eliminirao šum s jedne, te veliki objekti poput neba i neizraslog terena s druge strane, koristi se algoritam koji na slici kao vatru označava samo one skupine piksela koji se nalaze u grupi piksela koji imaju vrijednost 1 (odnosno 255), gdje je broj piksela u toj grupi veći od donje granične vrijednosti, a manji od gornje granične vrijednosti. Za implementaciju ovog dijela algoritma koristi se rekurzija. Provjerom osam susjednih piksela prvo se izbroji koliko se piksela sa vrijednosti intenziteta 1 (odnosno 255) nalazi u grupi, a potom se, ukoliko je taj broj zadovoljavajući, ti pikseli označe kao grupa koja zadovoljava uvjete odnosno kao potencijalni dim. Ako je broj piksela u grupi nezadovoljavajući, odnosno premalen ili preveliki, pikseli se označe labelom koja opisuje odbačene grupe. Odbacivanjem malih skupina na slici se eliminiraju nakupine piksela nastali šumom, dok se odbacivanjem velikih skupina odbacuju objekti poput oblaka, udaljenih, neizraslih područja i slično. Primjer ovog dijela algoritma je prikazan na Slici 3.4.4. 62 Slika4. Primjer odbacivanja premalih i prevelikih nakupina piksela na slici Odgovarajući kod za ovaj dio algoritma: for(j=0;j<height;j++) { for(i=0;i<width;i++) {if(slika[j][i]==1) //slika[j][i]==255 { //Prvo se rekurzivno izbroji koliko se piksela nalazi u pronañenoj grupi rcount=countn(j,i,width,height,slika); //Ako Broj piksela NIJE zadovoljavajući if(rcount<threshold_min || rcount >threshold_max) { labeln(j,i,width,height,slika,2); } //Ako je broj piksela zadovoljavajući if(rcount>=threshold_min && rcount<=threshold_max) { //Označavanje svakog piksela u grupi labeln(j,i,width,height,slika,nlabel); //Priprema oznake za _u108 ?jedeću grupu nlabel++; //Broj pronañenih grupa *(number)=*(number)+1; } } } 63 } Ovaj dio algoritma ima veliki nedostatak. Primjer može biti Slika 3.4.2. U ovom slučaju dim se proširio i na neki način „povezao sa nebom“, kao što se vidi na Slici 3.4.5. Nakon što se primjeni prije spomenuti dio koda, dolazi do eliminacije i piksela dima i piksela neba, iako se to nije trebalo dogoditi. a) Siva slika b) Binarna slika c) ;akon eliminiranja grupa sa previše i premalo piksela Slika 3.4.5. Primjer pogrešne procjene algoritma 3.4.3. Druga faza: Ukoliko se pomoću prve faze na tri uzastopne slike detektira potencijalni požar, te se tri slike dalje proučavaju u drugoj fazi u cilju eliminiranja krivo detektiranih površina. Prvo se izračunaju razlike između ove tri slike, i time se dobiju dvije diferencijalne slike. Kod je: 64 for(i=0;i<width*height;i++) { d1[i]=imgbuff1[i]-imgbuff2[i]; d2[i]=imgbuff2[i]-imgbuff3[i]; if(d1[i]<0) d1[i]=-d1[i]; if(d2[i]<0) d2[i]=-d2[i]; ... } Na Slici 3.4.6. Su prikazane ulazne slike, odnosno imgbuff1, imgbuff2 i imgbuff3, te rezultat ovog koda, odnosno d1 i d2, odnosno diferencijalne slike. a) imgbuff1 b) imgbuff2 d) d1 c) imgbuff3 e) d2 Slika 3.4.6. a)b)c) Tri ulazne slike iz prve faze kod kojih je detektiran požar d)e) Diferencijalne slike 65 Slijedi računanje razlike susjednih diferencijalnih slika: for(i=0;i<width*height;i++) { ... d[i]=d1[i]-d2[i]; if(d[i]<0) d[i]=-d[i]; } Slika 3.4.7. Razlika susjednih diferencijalnih slika Nakon eliminiranja šuma, algoritam preporuča sljedeće: 1. Ukoliko je broj piksela u grupi piksela pronađenoj na razlici susjednih diferencijalnih slika veći od granične vrijednosti c, riječ je o objektu poput oblaka ili neizraslog tla. 2. Ukoliko je taj broj manji od granične vrijednosti c, podiže se alarm za vatru. Druga faza algoritma ne funkcionira, što je očito i na primjeru Slika 3.4.7. Razlika susjednih diferencijalnih slika nije eliminirala krivo detektiran požar na području brda u pozadini, u gornjem desnom dijelu slike. Nije vidljiva razlika između bijelih piksela koji predstavljaju pravi dim i piksela koji predstavljaju dio brda u pozadini. Sve tri slike u nizu koje su uzete u obzir u ovom algoritmu, nisu idealne, odnosno kamera koja snima područje nije idealna. Stoga postoji mala razlika u intenzitetima piksela koji reprezentiraju brdo u pozadini. Obzirom da nije uzeta u obzir granična vrijednost koja bi tu razliku eliminirala, i taj dio slike je detektiran kao dim. 66 Razlog lošeg funkcioniranja druge faze algoritma je sljedeći: diferencija slika nosi informaciju o promjeni pokreta, stoga algoritam može eliminirati samo one objekte koji rezultiraju velikim promjenama u slikama. Autor navodi da se time eliminiraju objekti poput oblaka ili poput neizraslog zemljišta koje je u prvoj fazi detektirano kao potencijalni dim, što nema smisla jer to zemljište nije u pokretu, a kao što je već napomenuto, većinom se može razlikovati samo u promjeni intenziteta piksela nastale pod utjecajem različitog osvjetljenja u tom trenutku, pomicanju kamere i slično. A i ti pokreti su manji od granične vrijednosti c (koja služi za eliminiranje prevelikih grupa piksela), te će biti detektirani kao dim. Jedina stvar koju druga faza algoritma može eliminirati jest objekt koji na jednoj slici postoji, a na drugoj slici većinom ili u potpunosti nestane. Općenito algoritam se nije pokazao dovoljno praktičan, te je vidljivo mnogo propusta u radu samo na temelju nekoliko primjera. Algoritam čak ni u prvoj fazi nije dobro detektirao dim u slučaju na Slici 3.4.5. Algoritam, za razliku od većine ostalih algoritama, detektira pokret tek u drugoj fazi, što se pokazalo kao loše rješenje, pa je zaključak da pomoću ovog algoritma nije moguće kvalitetno detektirati požar. 67 3.5.Algoritam: Detekcija dima na videu u svrhu sustava ranog alarmiranja u slučaju vatre (The Smoke Detection for Early Fire-Alarming System Base on Video Processing) 3.5.1. Uvod u algoritam: Algoritam u dvije faze, statičkoj i dinamičkoj, dolazi do zaključka je li na slici riječ o dimu. Statička faza se temelji na karakteristikama boja dima, u RGB i HSI modelu. Što se dinamičke analize tiče, provjerava se odnos opsega i površine koju dim obuhvaća, te se proučava brzina povećavanja površine koja je zahvaćena dimom. 3.5.2. Prva faza: Prva faza se, kako je ranije spomenuto, sastoji od statičke analize slike. Sastav i količina dima ovisi o kemijskim komponentama materijala koji izgara, temperaturi izgaranja, dovodu kisika i sličnim svojstvima. Autori ovog algoritma su proučavanjem došli do zaključka da se boja dima u većini slučajeva pojavljuje kao plavo-bijela i bijela, u slučaju da je temperatura niska, odnosno crnosiva i crna kada se temperatura poveća. Za većinu slučajeva, dim je sive boje. Prvi korak statičke analize ovog algoritma jest detektirati pokret. Obzirom da autori ne predlažu konkretni algoritam detekcije požara, koristi se algoritam detekcije pokreta opisan u algoritmu „Detekcija dima u realnom vremenu na videu bazirana na wavelet transformaciji“. Iz tog razloga nije potrebno ponovo objašnjavati način funkcioniranja ovog algoritma. Osnovna ideja statičke analize algoritma temelji se na boji dima. Obzirom da je dim sive boje, crvena, zelena i plava komponenta u RGB modelu boja trebale bi imati približno jednake vrijednosti. if( ((imgbuff[i]<=imgbuff[i+1]+alfa)&&(imgbuff[i]>=imgbuff[i+1]-alfa))&& ((imgbuff[i]<=imgbuff[i+2]+alfa)&&(imgbuff[i]>=imgbuff[i+2]-alfa))&& ((imgbuff[i+1]<=imgbuff[i+2]+alfa)&&(imgbuff[i+1]>=imgbuff[i+2]-alfa)) ... odnosno ±b = ±c = ±d 68 Sam kod je pojednostavljen, te je dovoljno provjeriti sljedeće nejednakosti (kao što je vidljivo iz primjera koda): ≤ + b ; ≥ − b ; ≤ + b ; ≥ − b ; ≤ + b ; ≥ − b Osim RGB modela boja, autori predlažu i korištenje HSI modela, radi dodatne provjere. if( ... (D1<=slika_hsi[i+2])&&(slika_hsi[i+2]<=D2) || (L1<=slika_hsi[i+2])&&(slika_hsi[i+2]<=L2)) gdje je slika_hsi[i+2] intensity, odnosno I u HSI modelu boja. Vrijednosti varijabli korištenih u ovim uvjetima koje autor predlaže su sljedeće: 15 ≤ b ≤ 20; e" = 80, e% = 150; =" = 150, =% = 220 Vrijednosti e" , e% , =" =% su u implementaciji algoritma normalizirane u područje 0,1, te iznose: double D1=0.317, D2=0.588; double L1=0.588, L2=0.862; Na Slici 3.5.1. je prikazan primjer primjene ovih uvjeta na slikama. U oba slučaja, algoritam je sa određenom preciznošću točno prepoznao dim. Potrebno je napomenuti da su ovo primjeri primjene ovih uvjeta bez detekcije pokreta, te bi se prethodnom detekcijom eliminirao velik dio pogrešno detektiranog dima. 69 Slika 3.5.1. Primjer točno pronađenog dima na temelju statičke analize Na Slici 3.5.2. primjer je u kojem vrijednosti b, e" , e% , =" =% nisu prilagođene, te dim nije izdvojen. Naime, dim na Slici 3.5.2. je svjetliji, odnosno bliži bijeloj nego sivoj boji, a kako varijabla L2 nije Slika 3.5.2. Primjer netočnog rada prve faze algoritma Prva faza algoritma, odnosno odabir b, e" , e% , =" =% varijabli, pokazao se efikasan na slikama dima koji se nalazi bliže kameri, dok je na slikama udaljenog dima potrebno te vrijednosti prilagoditi. 70 3.5.3. Druga faza: Nažalost, postoje objekti koji zadovoljavaju ove uvjete opisane u statičkoj analizi, a koji nisu dim, što je i očito na primjerima. Većina ovih pogrešno detektiranih segmenata slike se eliminira detekcijom pokreta. No ipak, postoje objekti koji su u pokretu a istih su boja kao i dim, ili pod utjecajem pozadinskog osvjetljenja imaju slične boje. Da bi se eliminirali i takvi pogrešno detektirani segmenti slike, algoritam ima i drugu fazu, takozvanu dinamičku analizu. Za drugu fazu rada algoritma koristi se niz slika prikazan na Slici 3.5.3. Riječ je o dimu sa crnom pozadinom. Prva faza uspješno detektira taj dim. Slika 3.5.3. ;iz slika korišten u drugoj fazi algoritma Prvi korak jest izračunati omjer broja piksela koji čine sumu opsega svih segmenata koji su detektirani kao dim, i broja piksela koji čine sumu površina tih segmenata. Potrebno je pronaći sve grupe piksela na sličan način kao što je to učinjeno u algoritmu „Detekcija dima u realnom vremenu na videu bazirana na wavelet transformaciji“. Ovaj algoritam rekurzivno pronalazi sve piksele koji se nalaze u grupi koja sadrži više piksela od zadane granične vrijednosti. Svaka pronađena grupa je označena brojevima 3,4,5,... U ovom slučaju granična vrijednost broja piksela koji je potreban da bi se grupa tretirala kao takva je 100, a razlog tome je eliminiranje šuma. Da bi se izračunao broj piksela koji pripada opsegu i površini segmenata slike detektiranih kao dim, koristi se upravo slika kod koje su grupe piksela označene labelama, odnosno brojevima 3,4,5,... Radi jednostavnosti algoritma, pikseli koji se nalaze na rubovima slike se ne provjeravaju. 71 Površina se inkrementima nailaskom na bilo koji piksel čija je vrijednost, odnosno labela veća od 3, dok se za provjeru pripada je piksel opsegu mora zadovoljiti dodatni uvjet. Ukoliko barem jedan od susjednih piksela označen sa 0, 1 ili 2, tada je riječ o pikselu koji pripada opsegu dima. for(j=1;j<height;j++) { for(i=1;i<width;i++) { if(slika[j][i]>2) { *(povrsina)=*(povrsina)+1; if(slika[j-1][i-1]<=2 || slika[j-1][i]<=2 || slika[j-1][i+1]<=2 || slika[j][i-1]<=2 || slika[j][i+1]<=2 || slika[j+1][i-1]<=2 || slika[j+1][i]<=2 || slika[j+1][i+1]<=2) { opseg++; } k++; } } } 72 Na Slici 3.5.4. je prikazan rezultat algoritma koji je pronašao piksele koji pripadaju opsegu i koji pripadaju površini na jednoj od slika iz niza prikazanog na Slici 3.5.3. Slika 3.5.4. Označeni pikseli koji pripadaju opsegu i površini segmenta slike detektiranog kao dim 60000 50000 40000 30000 Opseg Povrsina 20000 10000 0 1 5 9 13 17 21 25 29 33 37 41 45 49 53 57 61 65 Slika 3.5.5. Odnos opsega i površine segmenta slike detektiranog kao dim na primjeru Na Slici 3.5.5. je prikazan odnos broja piksela koji pripadaju opsegu i broja piksela koji pripadaju površini segmenta slike koji je detektiran kao dim. 73 int stpsep(int SEP, int STP, float STD) { float result; result=(float)SEP/STP; if(result>=STD) return 1; else return 0; } SEP predstavlja opseg, STP površinu, a STD graničnu vrijednost koja je određena na temelju eksperimentalnih primjera. Ukoliko se tijekom algoritma dovoljan broj puta zadovolji ovaj uvjet, može se zaključiti da je i dalje riječ o potencijalnom dimu. Posljednji korak kojim se provjerava dinamička analiza jest provjera brzine rasta površine dima. Potrebno je izračunati: ∆\mZ = Ih hSDP − hS = I: + 5 − gdje je P površina (STP), a k predstavlja broj sličica između dviju slika koje su uzete kao ulazne slike. Potrebno je izračunati prosječnu vrijednost ∆\mZ , pomoću formule: C 1 oooooo ∆\ mn = M ∆\mZ > Sp" Na kraju je potrebno provjeriti upada li vrijednost oooooo ∆\mn unutar dviju predhodno eksperimentalno određenih graničnih vrijednosti D1 i D2. for(i=0;i<frames/n;i++) { if(Adi[i]>D1 && Adi[i]<D2) {counter++;} } Ukoliko su zadovoljeni svi uvjeti, na slici je detektiran dim, kao što je to na slučaju sa primjera prikazanog na Slici 3.5.3. Na Slici 3.5.6. prikazan je još jedan primjer dima, ali ovog puta snimka udaljenog dima u prirodi. 74 Slika 3.5.6. Primjer snimke udaljenog dima Prva faza algoritma ne detektira dim cijelom njegovom površinom, ali na Slici 3.5.7. se može uočiti da je ipak detektiran jedan segment dima koji je bio dovoljan kako bi se u dinamičkoj analizi mogao točno detektirati dim. Slika 3.5.7. Dim je detektiran i na snimci udaljenog dima Algoritam je bez problema detektirao dim na primjeru na Slici 3.5.3., ali se u primjeru na Slici 3.5.6. pokazalo da je uz pravilno postavljene granične vrijednosti, algoritam u stanju detektirati i udaljeni dim na slici. 75 4. ZAKLJUČAK Razvoj algoritma koji bez greške prepoznaje dim ili vatru na digitalnoj slici, odnosno videu, bez daljnjega nije jednostavan zadatak. Kako je i očekivano, autori svoje algoritme žele prikazati u najboljem svjetlu, te se na temelju eksperimentalnih rezultata koji oni nude brzopleto može zaključiti kako je ovaj problem odavno riješen. Smisao ovog diplomskog rada, zajedno sa kratkim pregledom osam odabranih algoritama detekcije dima i vatre, bio je i provjeriti vjerodostojnost rezultata rada četiri odabrana algoritma, na temelju vlastite računalne implementacije u C jeziku. Problem koji je zajednički većini ovih algoritama jest često idealiziranje situacije, poput pretpostavke da je kamera tijekom snimanja izuzetno mirna, što je vrlo teško realizirati u praksi. Obzirom da je riječ o detekciji požara u prirodi, ta činjenica jasno govori koliko je ona uvjetovana prirodnim fenomenima poput godišnjeg doba, dijelu dana, količini naoblake… Ipak, neki algoritmi, odnosno njihovi dijelovi, pokazali su se dovoljno kvalitetni, te su bez velikih poteškoća uspjeli obaviti svoj dio detekcije. Algoritam „Detekcija dima u realnom vremenu na videu bazirano na wavelet transformaciji“ pokazao se kao kvalitetan algoritam, no ipak ne bez nedostataka. Njegova najveća mana u ovom slučaju jest činjenica da se većom udaljenošću dima od kamere smanjuje i vjerojatnost točnog rada drugog i trećeg koraka algoritma temeljenog na (prostornoj i vremenskoj) wavelet transformaciji. Jedno od mogućih rješenja može biti i korištenje „zoom“ opcije kamere, nakon što se pomoću ostalih dijelova algoritma detektira potencijalni požar. Štoviše, autor nije definirao način odabira piksela na kojem se vrši vremenska wavelet transformacija, te je upitno može li se algoritam i dalje odvijati u realnom vremenu ukoliko se ona vrši nad svim pikselima. Detekcija pokreta riješena je na vrlo kvalitetan i zadovoljavajući način. Ipak, četvrti korak algoritma, najslabija je njegova točka, te se na temelju U i V vrijednosti nije uspio točno prepoznati dim. Stoga je jedno od rješenja korištenje HSI modela boja i prepoznavanje na temelju saturation, odnosno zasićenosti. Zadnji korak algoritma, odnosno provjera konveksnosti oblika, također funkcionira bez problema, s tim da pretpostavku da dim nikad nije konveksan možda ipak treba uzeti s oprezom. „Inteligentna metoda detekcije vatre u realnom vremenu temeljena na obradi pokretne slike“, algoritam je koji se pokazao djelotvoran kod detekcije vatre. Kao nedostatak bi se mogla navesti činjenica da nije osmišljen kako bi detektirao dim, već samo plamen. Obzirom da je u šumskom požaru brzina uočavanja jako bitna, a vatra se uoči mnogo kasnije nego dim, detekcija temeljena samo na plamenu možda i nije najbolje rješenje. Ipak, prvi korak 76 algoritma, odnosno detekcija boje radi bez zamjerke, dok je drugi korak nepovoljan za plamen koji se nalazi u daljini. Sve u svemu, uz dobro odabrane varijable i granične vrijednosti, algoritam detektira plamen u šumskom požaru. Za razliku od prethodna dva, algoritam „Metoda automatskog nadgledanja šumskog požara na slici u vidljivom dijelu spektra“ nije pokazao dobre rezultate prilikom detekcije. Sama ideja pretvaranja slike u sivu sliku radi pronalaska požara možda i nije loša, ali detekcija pokreta koja se odvija tek u drugom koraku pokazala se katastrofalna. Štoviše sama detekcija pokreta uzima u obzir dvije susjedne slike, što nikako nije poželjno jer je sam pokret iznimno mali u tako kratkom vremenskom razdoblju. Četvrti algoritam „Detekcija dima na videu u svrhu sustava ranog alarmiranja u slučaju vatre“ donio je neke nove ideje zanimljive za detekciju dima, a one se odnose na drugi korak rada algoritma. Naime, provjera odnosa opsega i površine u vremenu rješenje je koje u svakom slučaju izgleda obećavajuće. Što se prvog koraka tiče, odnosno dijela koji se odnosi na boju dima, postoje i bolja rješenja. Naime, autori pretpostavljaju da je dim uvijek sive boje, što se nerijetko pokazalo kao netočna pretpostavka. Na samom kraju se može zaključiti kako niti jedan od ovih algoritama nije u potpunosti zadovoljavajući, te da svaki od njih ima svoje nedostatke. Ipak, ova nas je analiza u mom diplomskom radu dovela jedan korak bliže pronalasku idealnog algoritma. 77 5. LITERATURA 1. Thou-Ho Chen; Cheng-Liang Kao; Sju-Mo Chang; An intelligent real-time firedetection method based on video processing; Security Technology, 2003. Proceedings. IEEE 37th Annual 2003 International Carnahan Conference on 14-16 Oct. 2003 Page(s):104 - 111 2. B. Uğur Töreyin, Yiğithan Dedeoğlu, Uğur Güdükbay, A. Enis Çetin, “Computer Vision Based System for Real-time Fire and Flame Detection”, Pattern Recognition Letters, 27 (2006) 49-58. 3. B. Uğur Töreyin, Yiğithan Dedeoğlu, A. Enis Çetin, “Wavelet Based Real-Time Smoke Detection in Video”, 13th European Signal Processing Conference EUSIPCO 2005, Antalya. 4. B. Uğur Töreyin, Yiğithan Dedeoğlu, A. Enis Çetin, “Contour Based Smoke Detection in Video Using Wavelets”, 14th European Signal Processing Conference EUSIPCO 2006, Florance, Italy. 5. B. Uğur Töreyin, Yiğithan Dedeoğlu, Uğur Güdükbay, A. Enis Çetin, “Computer Vision Based System for Real-time Fire and Flame Detection”, Pattern Recognition Letters, 27 (2006) 49-58. 6. Yiğithan Dedeoğlu, B. Uğur Töreyin, Uğur Güdükbay, A. Enis Çetin, “Real-time Fire and Flame Detection in Video”, IEEE 30th Int. Conf. on Acoustics, Speech and Signal Processing, ICASSP’05, Philadelphia, USA, 2005. 7. Pujita Pinnamaneni, Joerg Meyer; 3-D Haar Wavelet Transformation in Java 8. Wavelets for Computer Graphics: A Primer IEEE Computer Graphics and Applications,15(3):76–84, May 1995 9. Jin Li; Qingwen Qi; Xiuping Zou; Hu Peng; Lili Jiang; Yajuan Liang; Technique for automatic forest fire surveillance using visible light image; Geoscience and Remote Sensing Symposium, 2005. IGARSS '05. Proceedings. 2005 IEEE International Volume 5, 25-29 July 2005 Page(s):3135 - 3138 10. Thou-Ho Chen; Yen-Hui Yin; Shi-Feng Huang; Yan-Ting Ye; The Smoke Detection for Early Fire-Alarming System Base on Video Processing; Intelligent Information Hiding and Multimedia Signal Processing, 2006. IIH-MSP '06. International Conference on Dec. 2006 Page(s):427 - 430 78 11. Celik, T.; Ozkaramanli, H.; Demirel, H.;Fire Pixel Classification using Fuzzy Logic and Statistical Color Model;Acoustics, Speech and Signal Processing, 2007. ICASSP 2007. IEEE International Conference on Volume 1, 15-20 April 2007 Page(s):I-1205 - I-1208 12. Phillips, W., III; Shah, M.; Da Vitoria Lobo, N.; Flame recognition in video; Applications of Computer Vision, 2000, Fifth IEEE Workshop on. 4-6 Dec. 2000 Page(s):224 - 229 13. Celik, T.; Demirel, H.; Ozkaramanli, H.; Uyguroglu, M.; Fire Detection in Video Sequences Using Statistical Color Model; Acoustics, Speech and Signal Processing, 2006. ICASSP 2006 Proceedings. 2006 IEEE International Conference on Volume 2, 14-19 May 2006 Page(s):II - II 14. http://www.cs.toronto.edu/~kyros/courses/320/Lectures.s07/lecture.2007s.22.pdf Last time visited: 01.12.2007. 15. http://homepages.inf.ed.ac.uk/rbf/CVonline/LOCAL_COPIES/TOREYIN1/index.html Last time visited: 01.12.2007. 16. http://signal.ee.bilkent.edu.tr/VisiFire/ Last time visited: 01.12.2007. 17. http://www.mrfootage.com/ Last time visited: 01.12.2007. 79
© Copyright 2024 Paperzz