Diplomski rad (PDF)

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,€N€W,X
pF e B, U
QW,X,€N€W,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
…2†‡S 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;Žk9BŒp !" }SŒD" − 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 G‹S 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:
‹SŒD" B
= cS ‹SŒ B
+ 1 − cS SŒ B
‡SŒD" 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