obdelava slik za nenavadne dogodke s pomoČjo metod … · 2018. 8. 24. · sledi nekaj definicij...
TRANSCRIPT
Marko Avguštin
OBDELAVA SLIK ZA NENAVADNE DOGODKE S POMOČJO METOD STROJNEGA UČENJA
Diplomsko delo
Maribor, september 2011
I
Diplomsko delo visokošolskega strokovnega študijskega programa
OBDELAVA SLIK ZA NENAVADNE DOGODKE S POMOČJO METOD
STROJNEGA UČENJA
Študent: Marko Avguštin
Študijski program: VS ŠP Računalništvo in informacijske tehnologije
Mentor: izred. prof. dr. Milan Zorman
Somentorica: asist. dr. Mateja Verlič
Lektorica: Jelka Cigler Plošinjak
Maribor, september 2011
III
ZAHVALA
Zahvaljujem se mentorju izred. prof. dr. Milanu
Zormanu in somentorici dr. Mateji Verlič za
pomoč in vodenje pri opravljanju diplomskega
dela.
Prav tako se zahvaljujem svojim staršem, ki so
me spodbujali pri študiju in delu. Hvala tudi
vsem ostalim, ki so mi na takšen ali drugačen
način pomagali pri diplomskem delu.
IV
OBDELAVA SLIK ZA NENAVADNE DOGODKE S POMOČJO METOD STROJNEGA UČENJA
Ključne besede: računalniški vid, strojno učenje, zaznavanje dogodkov, EMGU CV, WEKA UDK:
Povzetek Diplomsko delo vključuje študij literature in obstoječih rešitev na področju
računalniškega vida in metod strojnega učenja. Diplomsko delo podrobneje naslavlja
obdelavo in procesiranje slik s pomočjo strojnega učenja.
V različnih okoljih, npr. v gospodinjstvu, lahko pride do pričakovanih in
nepričakovanih dogodkov. V okviru diplomske naloge smo razvili prototipno aplikacijo,
ki nadzira dogodke v enem prostoru. Aplikacija beleži dogodke preko kamere in jih nato
s pomočjo metod strojnega učenja skuša razpoznati kot pričakovane ali nepričakovane.
V
IMAGE PROCESSING FOR DETECTION OF UNUSUAL EVENTS
WITH MACHINE LEARNING TECHNIQUES
Key words: computer vision, machine learning, event detection, EMGU CV, WEKA
UDK:
Abstract
Diploma thesis includes the study of literature and of existing solutions in the fields of
computer vision and in machine learning techniques. Furthermore, the thesis addresses
digital image processing with the help of machine learning in greater detail.
In different environments, e.g. in household, we can encounter expected but also
unexpected – unusual events. We developed a prototype application to detect such
unusual events and classify them as expected or unexpected.
I
VSEBINA
1 UVOD ...................................................................................................................... 1
2 RAČUNALNIŠKI VID .......................................................................................... 2
2.1 KAJ JE RAČUNALNIŠKI VID ................................................................................. 2
2.2 PODROČJA UPORABE .......................................................................................... 3
3 METODE STROJNEGA UČENJA ...................................................................... 5
3.1 NEVRONSKE MREŽE ........................................................................................... 7
3.1.1 Zgradba nevrona .......................................................................................... 8
3.1.2 Feed-forward nevronske mreže .................................................................... 9
3.2 ODLOČITVENA DREVESA ................................................................................. 11
3.3 OBSTOJEČI PRIMERI UPORABE METOD STROJNEGA UČENJA ZA RAZPOZNAVO SLIK
13
4 OPIS IZDELANE APLIKACIJE ....................................................................... 15
4.1 UPORABA EMGU CV ....................................................................................... 15
4.2 OPIS OKOLJA .................................................................................................... 18
4.3 UPORABA KNJIŽNICE WEKA ........................................................................... 21
5 MERITVE IN REZULTATI MERITEV ........................................................... 24
6 ZAKLJUČEK ....................................................................................................... 35
7 VIRI IN LITERATURA ...................................................................................... 36
8 PRILOGE .............................................................................................................. 37
8.1 SEZNAM SLIK ................................................................................................... 37
8.2 SEZNAM TABEL ................................................................................................ 38
II
UPORABLJENI SIMBOLI
f – vhodna funkcija nevrona
Wi – utež v vhodni funkciji
Ai – vhod v vhodno funkcijo nevronske mreže
III
UPORABLJENE KRATICE
WEKA – Waikato Environment for Knowledge Analysis
ARFF - Attribute-Relation File Format
Obdelava slik za nenavadne dogodke s pomočjo metod strojnega učenja Stran 1
1 UVOD
Naš vsakdan v gospodinjstvu običajno vsebuje zaporedje pričakovanih dogodkov, to so
dogodki, ki jih sicer nismo nujno načrtovali, so pa pričakovani. Včasih lahko pride tudi do
nepričakovanih dogodkov, npr. prižiganje luči, ko ni nikogar v prostoru, odpiranje vhodnih
vrat ponoči, nepooblaščeno vstopanje tretjih oseb v naše prostore. Veliko prostorov je že
opremljenih s kamero, ki lahko zajamejo takšne dogodke. Le-te običajno pregleda
uporabnik, ki se odloči, ali je bil dogodek pričakovan ali ne. Mi smo želeli ta del
avtomatizirati z uporabo metod strojnega učenja in sicer s pomočjo nevronske mreže
naučiti našo aplikacijo razpoznati nenavadne dogodke.
Na uspešnost računalniškega vida vpliva veliko dejavnikov, npr. osvetljenost prostora in
objektov v njem, gibanje, sence, pa tudi raznovrstnost dogodkov. Zaradi tega smo se
odločili, da bomo kamero postavili v en sam prostor (kuhinjo) in omejili nabor dogodkov
na nekaj preprostih primerov, kot so odpiranje hladilnika in prižgane luči v prostoru. Pri
implementaciji smo uporabili obstoječo knjižnico metod strojnega učenja.
Diplomsko delo je razdeljeno na dva dela. V prvem delu je predstavljen teoretični del in
osnovne definicije. V drugem poglavju smo predstavili računalniški vid, njegovo vlogo
nekoč in danes ter predstavitev nekaterih področij uporabe. Tretje poglavje zajema metode
strojnega učenja, kjer je predstavljena kratka zgodovina in nekaj splošnih definicij
strojnega učenja. V tem poglavju smo podrobneje predstavili tudi dve metodi in sicer
nevronske mreže ter odločitvena drevesa, ki smo ju uporabili za našo rešitev. V drugem
delu smo predstavili uporabo teoretičnih spoznanj na praktičnem izdelku ter predstavili
izdelavo aplikacije. V tem poglavju smo tudi na kratko predstavili že obstoječo
programsko knjižnico, v kateri se nahajajo implementirane metode strojnega učenja iz
programskega paketa WEKA [1].
Obdelava slik za nenavadne dogodke s pomočjo metod strojnega učenja Stran 2
2 RAČUNALNIŠKI VID
Razvoj računalniškega vida (angl. computer vision) sega v 70-a leta 20. stoletja, ko so
računalniki pridobili dovolj na procesorski moči, da so lahko procesirali večje zbirke
podatkov, med katere sodijo tudi slike. Področje računalniškega vida izhaja iz umetne
inteligence, ki si je zadala nalogo reševanja kompleksnih problemov, ki jih je sposoben
rešiti človeški razum s pomočjo računalnikov [2].
2.1 Kaj je računalniški vid
Računalniški vid je reševanje nalog s pomočjo vizualnih informacij, ki jih lahko rešuje
človek z lastnim vidom. Vid je naše najpomembnejše čutilo, saj nam omogoča inteligentno
interakcijo z našim okoljem brez fizičnega dotika.
Žal smo dandanes še zelo daleč od cilja, da bi bili računalniki sposobni človeku
enakovrednega reševanja nalog, kajti računalniški vid še zdaleč ni tako razvit, prilagodljiv
in univerzalen kot so biološki sistemi. Komercialni sistemi računalniškega vida so
namenjeni predvsem ozkim in dobro definiranim problemom. Pri reševanju konkretnih
uporabniških problemov se uporabljajo raznovrstne in za posamezne vrste nalog zelo
specifične metode. S tega stališča težko govorimo o standardni metodologiji reševanja
nalog računalniškega vida in tako posledično tudi ne obstajajo univerzalni produkti, ki bi
jih lahko uporabili za reševanje širokega spektra vizualnih nalog.
Računalniški vid v osnovi sodi v umetno inteligenco, zato se pri tem uporabljajo številne
metode razvite na področju umetne inteligence, kot so metode strojnega učenja, med njimi
tudi nevronske mreže. Po aplikacijski plati je računalniški vid bližje robotiki, saj so
industrijski roboti in avtonomna vozila danes običajno opremljena s kamerami. V tem
kontekstu se računalniški vid pogosto imenuje strojni vid (angl. machine vision) ali
robotski vid (angl. robot vision).
Ker se računalniški vid še vedno zgleduje po bioloških sistemih, je povezan z
nevrofiziologijo, ki preučuje biološke vizualne sisteme na organskem nivoju, in psihologijo
zaznavanja, ki preučuje vizualne sisteme na sistemskem nivoju. V zadnjih sto letih nas je
preučevanje oči, možganskih struktur in nevronov, posvečenih procesiranju vizualnih
Obdelava slik za nenavadne dogodke s pomočjo metod strojnega učenja Stran 3
signalov, pripeljalo do dobrega, toda nepopolnega razumevanja o delovanju vida oziroma
zaznavanja pri človeku in različnih živali.
Veliko problemov računalniškega vida lahko rešujemo z vidika matematike, kjer mnogo
rešitev temelji na optimizacijskih metodah, geometrijskih modelih in statistiki. Pri
računalniškem vidu kamera predstavlja oko kot senzor za svetlobo, prav tako pa lahko
zajem in formiranje slike kot rezultat interakcije 3D scene, iluminacije in objektiva
kamere, preučujemo tudi z vidika fizike.
Ker je računalniški vid precej heterogena znanstvena disciplina, ne obstajata niti
standardna definicija niti standardna formulacija, kako reševati probleme na tem področju.
2.2 Področja uporabe
Računalniški vid se je najprej začel uporabljati na področjih, kjer je cena implementacije
visoka. Zagotavljanje dovolj zmogljive strojne opreme, ki vključuje dovolj procesorske
moči, spominskih kartic in senzorjev, je bilo v ne tako daljni preteklosti zelo drago. Sprva
se je računalniški vid uporabljal predvsem v vojski za detekcijo sovražnih vojakov in vozil,
interpretacijo dogajanja na bojišču, interpretacijo satelitskih slik in za vodenje raket z
namenom lažjega strateškega odločanja.
Med novejše aplikacije spadajo avtonomna vozila, med katere štejemo zračna vozila,
podmornice in vozila za ceste in brezpotja (avtomobili, tovornjaki, vesoljska plovila, roboti
na kolesih in hodeči roboti). Popolna avtonomija omogoča vožnjo brez voznika ali pilota,
računalniški vid pa lahko pomaga v določenih situacijah. Tipična naloga avtonomnih vozil
je iskanje ovir pred njim in umikanje, ali gradnja modela okolja, v katerem se nahajajo, na
osnovi slik. Pri takih vozilih so še posebej koristni senzorji, ki zaznavajo z vseh strani.
Najbolj se je računalniški vid uveljavil v industriji, kjer je nadomestil naloge, ki so jih
včasih opravljali ljudje. Predvsem mislimo na kontrolo kvalitete končnih sestavnih delov,
kjer so delo ljudi prevzeli računalniki, saj so za enostavne ponavljajoče naloge veliko bolj
natančni, hitri in neutrudljivi. Vizualna kontrola se uporablja tako v farmacevtski,
avtomobilski in računalniški industriji, kot tudi v prehrambni industriji. Natančneje kot je
naloga definirana (npr. štetje objektov na tekočem traku, branje serijske številke,
ugotavljanje površinskih napak), lažje je sistem programirati.
Obdelava slik za nenavadne dogodke s pomočjo metod strojnega učenja Stran 4
Aplikacije računalniškega vida imajo vedno večjo vlogo na področju medicine, kjer
raznovrstne slike pomagajo zdravnikom pri diagnosticiranju bolezni ali pri načrtovanju in
izvajanju operacij. Cilj teh aplikacij je iz slik izločiti informacije, ki lahko zdravniku
pomagajo pri lažji postavitvi medicinske diagnoze za posameznega pacienta. Primeri
medicinskih slik so rentgenske, ultrazvočne, angiografske, tomografske in mikroskopske
slike. Iz njih želijo zdravniki dobiti informacije za detekcijo tumorjev, meritve pretoka
krvi, meritve dimenzij organov, maligne spremembe tkiv in organov ter podobno. Te
informacije podpirajo tudi medicinske raziskave o strukturi možganov ali kvaliteti
zdravstvene terapije.
Zaradi političnih in družbenih sprememb postajajo vse pomembnejši tudi varnostni sistemi,
ki s pomočjo kamer zaznavajo obraze ter druge biometrične značilnosti ter tako
avtomatsko preverijo identiteto ljudi, ali opozorijo na nenavadno obnašanje. Takšne
sisteme srečamo na letališčih ob vstopu v državo ali na večjih stadionih za pregledovanje
navijačev, uporabljajo se lahko tudi na varnostno-kritičnih področjih in podobno.
Obdelava slik za nenavadne dogodke s pomočjo metod strojnega učenja Stran 5
3 METODE STROJNEGA UČENJA
Pojem umetne inteligence se v književnih delih piscev znanstvene fantastike začne
pojavljati že v 17. in 18. stoletju, na priljubljenosti pa je pridobila po prvi svetovni vojni,
ko so se v filmih in knjigah začeli pojavljati roboti, androidi in podobni primeri umetne
inteligence. Z rojstvom tako imenovanih »elektronskih možganov« v 50. letih se umetna
inteligenca pojavi kot znanstvena disciplina. Žal ali pa na srečo, se je v 80. in 90. letih
izkazalo, da kljub velikim obljubam in navdušenju, prave umetne inteligence, takšne, ki bi
znala posnemati ali celo prehiteti človeško, še hitro ne bomo dosegli, če jo sploh kdaj
bomo. Tej ugotovitvi navkljub se je rodilo novo področje, imenovano inteligentni sistemi,
pri katerem se je spremenil način razmišljanja: namesto, da bi se trudili posnemati
človeško inteligenco, ji želimo pomagati. Inteligentni sistemi torej niso »pametnejši« od
ekspertnih sistemov, ampak skušajo iz podanih podatkov izluščiti znanje v obliki vzorcev
in se iz njih samostojno naučiti. Pri poskusu definiranja umetne inteligence naletimo na
težavo, saj obstaja veliko različnih mnenj že o tem, kaj je človeška inteligenca, kaj šele, kaj
je to umetna inteligenca. Sledi nekaj definicij umetne inteligence, povzetih iz [3]:
Niz (mentalnih akcij) je inteligenten, če doseže »nekaj«, kar bi imenovali inteligentno, če bi
to »nekaj« dosegel človek.
V Websterjevem slovarju najdemo definicijo: »Umetna inteligenca je sposobnost
računalnika ali računalniškega programa, da oponaša človekove miselne procese, na
primer sklepanje in učenje.«
Alan Turing , eden iz-med očetov računalništva si je zamislil test, zdaj imenovan Turingov
test umetne inteligence na naslednji način:
V neki sobi je skrit pameten stroj ali človek. Izpraševalec ne ve, kaj je v sobi, in tej entiteti
postavlja vprašanja. Če iz odgovorov ne moremo ugotoviti, ali se pogovarja s človekom ali
strojem, in če je v sobi stroj, potem je ta stroj inteligenten.
V splošnem lahko definiramo tri vrste inteligentnih sistemov:
• avtonomni sistemi, ki samostojno planirajo in izvajajo akcije v realnem svetu, npr.
roboti pri tekočih trakovih,
• podporni sistemi, ki sodelujejo pri sprejemanju odločitev, vendar samostojno ne
morejo delovati in
Obdelava slik za nenavadne dogodke s pomočjo metod strojnega učenja Stran 6
• svetovalni sistemi, ki posredujejo informacijo, s pomočjo katere naredijo odločanje
bolj učinkovito in uspešno.
Našteti sistemi se razlikujejo po svojih akcijah, načinu sodelovanja z ljudmi ter
pridobivanju informacij. Kljub vsemu, na nekem višjem abstraktnem nivoju posedujejo
nekaj skupnih lastnosti:
• ljudje morajo z njimi komunicirati enostavno in naravno,
• biti morajo kompetentni in operirati s splošnim in problemsko usmerjenim
znanjem o svetu, uporabniku in delu, ki ga opravljajo,
• znati morajo pojasniti svoje akcije in
• biti morajo adaptivni, se učiti ter izboljševati.
Gledano iz drugega vidika inteligentni sistemi [3]:
• izražajo adaptivno ciljno usmerjeno obnašanje,
• se učijo iz izkušenj,
• uporabljajo velike »količine« znanja,
• izražajo samozavedanje,
• komunicirajo z ljudmi z uporabo jezika in govora
• tolerirajo napake pri komunikacijah in
• odgovarjajo v realnem času.
Strojno učenje je področje umetne inteligence, ki se ukvarja z razvojem tehnik, ki
omogočajo računalnikom oz. strojem, da se lahko učijo. Osnovni princip strojnega učenja
je opisovanje (modeliranje) pojavov iz podatkov. Rezultat učenja so lahko pravila,
funkcije, relacije, sistemi enačb, verjetnostne porazdelitve ipd. Močno se opira na
statistiko, saj se tudi statistika ukvarja s podatki, vendar se v nasprotju z njo strojno
učenje bolj ukvarja s samimi algoritmi in računskimi operacijami.
Strojno učenje ima širok spekter uporabnosti, in se med drugim uporablja pri iskalnikih
(splet), medicinski diagnozah, detekciji ponarejenih dokumentov, analizi gibanja tečajev
na borzah, razpoznavanju DNA sekvenc, razpoznavanju govora in pisave, razpoznavanju
objektov pri strojnem vidu, računalniških igrah in robotiki.
Obdelava slik za nenavadne dogodke s pomočjo metod strojnega učenja Stran 7
Nekateri sistemi strojnega učenja poskušajo eliminirati potrebo po človeški intuiciji pri
analizi podatkov, medtem ko drugi sistemi temeljijo na sodelovanju med človekom in
strojem.
Algoritme strojnega učenja delimo na več vrst glede na to, kaj je njihov cilj oz. rezultat
učenja [4].
Učenje z ojačitvijo algoritma se poskuša naučiti preslikav iz stanj v akcijo. Vzorci niso
označeni s pravo akcijo. Namesto te se priložnostno poda ojačitveni signal, ki označuje
uporabnost dobljenega stanja.
Nenadzorovano učenje je učenje, kjer se vsi vzorci uporabljajo za učenje in so
neoznačeni. Algoritem skuša najti strukturo oziroma urejenost v učnih vzorcih.
Nadzorovano učenje je postopek učenja glede na učno množico vzorcev. Učna množica
vzorcev je par množice vzorcev in množice njihovih oznak razredov oz. par množice
vhodnih podatkov sistema in množice želenih izhodov sistema. Izhod sistema je lahko
zvezno področje vrednosti – v tem primeru gre za regresijo ali pa enolična oznaka
razreda, kateremu pripada dan vzorec oz. vhodni podatki – v tem primeru govorimo o
klasifikaciji. Naloga učnega sistema je, da generalizira znanje, ki ga dobi iz učne množice
na pravilen način. V nadaljevanju bomo predstavili dve najpogostejši metodi
nadzorovanega učenja.
3.1 Nevronske mreže
Začetek nevronskih mrež sega v štirideseta leta 20. stoletja, ko sta McCulloch in Pitts
predstavila matematični model živčne celice – nevrona, ki se vse do danes ni bistveno
spremenil. Med pomembne napredke tega področja spada Hebbova predstavitev učnega
algoritma leta 1949 in Widrowov adaptivni sistem, ki temelji na pragovnem elementu in
omogoča spreminjanje uteži. Šele leta 1986 so se pokazali pomembni rezultati, ko so
Rumelhart, Hilton in Williams predstavili algoritem za adaptacijo uteži v več-nivojskih
nevronskih mrežah. Sledil je zelo hiter razvoj področja, pojavljati so se začeli zelo različni
algoritmi za učenje nevronskih mrež, prav tako pa so se pojavile prve komercialne in
industrijske aplikacije [3].
Obdelava slik za nenavadne dogodke s pomočjo metod strojnega učenja Stran 8
3.1.1 Zgradba nevrona
Nevron je osnovni element nevronskih mrež, ki je sestavljen iz nekaj delov. Njegov model
se uporablja že od leta 1943 in se od takrat do danes ni kaj bistveno spremenil (slika 1)[3].
Slika 1: Zgradba nevrona
Vhode v nevron predstavljajo oznake A0 do An, kjer je vhod A0 navadno nastavljen na
vrednost 1. Za to nastavitev je odgovorna utež W0, ker ta utež predstavlja parameter v
aktivacijski funkciji, ki tekom procesa učenja spreminja vrednost uteži. Uteži torej
predstavljajo vrednosti od W0 do Wn . Operacije, ki jih opravlja nevron, so razdeljene na
dva dela. Prvi del imenujemo vhodna funkcija f (1), ki je linearna in predstavlja seštevek
produktov vhodov in uteži.
i
n
ii AWf *
1∑=
= (1)
Drugi del predstavlja aktivacijska (pragovna) funkcija o, ki ima za vhod izhod iz prve
komponente. Izhod funkcije o, ki je tudi izhod nevrona, lahko ima diskretno ali v primeru
sigmoidne funkcije s pragom tudi analogno vrednost. Način kako zaobiti omejitve nevrona
najdemo v človeškem organizmu, kjer so nevroni medsebojno povezani tako, da izhod
enega nevrona predstavlja vhod drugega. Takšno povezavo imenujemo nevronska mreža.
Topologijo nevronske mreže predstavljata število nevronov in način povezave nevronov v
mrežo. Mreže, ki nimajo omejitev glede povezav med nivoji (povratne povezave),
imenujemo nevronske mreže s povratnimi vezavami.
Obdelava slik za nenavadne dogodke s pomočjo metod strojnega učenja Stran 9
3.1.2 Feed-forward nevronske mreže
Nevronske mreže delimo na dva osnovna tipa (slika 2): na mreže brez povratnih zank in na
mreže s povratnimi zankami. Pri prvih teče signal vedno od vhodnih nevronov proti
izhodnim. Vsak vhodni podatek se obravnava kot ločena entiteta. Predhodni podatki na
delovanje mreže nimajo vpliva. Drugi tip mrež pa vsebuje t.i. povratne povezave. Pri njih
je delovanje odvisno od zaporedja vhodnih signalov oz. od predhodnih vhodnih
podatkov[5].
Slika 2: Delitev nevronskih mrež [6]
V veliki večini aplikacij se uporabljajo tako imenovane feed-forward nevronske mreže. Te
nevronske mreže imajo naslednja pravila oziroma omejitve [3]:
• Povezave med nevroni na istem nivoju niso dovoljene;
• Niso dovoljene povezave nazaj na prejšnje nivoje;
• Prav tako ni dovoljeno preskakovanje enega ali več nivojev pri povezavi naprej
Ko govorimo o topologiji te vrste nevronskih mrež, imamo v mislih število nivojev mreže
in število posameznih nevronov na teh nivojih. Ločujemo med mrežami, ki imajo enega,
dva ali več nivojev nevronov (slika 3)[3].
Obdelava slik za nenavadne dogodke s pomočjo metod strojnega učenja Stran 10
Slika 3: Primer več nivojske nevronske mreže [5]
Ena najbolj razširjena vrsta feed-forward nevronskih mrež je tako imenovana perceptron
mreža. Kot prvi jo je predstavil Frank Rosenblatt leta 1958 [7]. Vse povezave med nevroni
so pri perceptronu usmerjene naprej. Vhodne in izhodne vrednosti so lahko poljubne
zvezne spremenljivke. Učenje poteka postopoma in traja dokler ni napaka dovolj mala. V
primeru ko razvrstimo vse nevrone v en sloj (eno vrsto) govorimo o enoslojnem
perceptronu (slika 4). Takšna mreža lahko rešuje razmeroma zelo preproste naloge, njeno
učenje pa poteka po Hebbovem pravilu. Marvin Minsky in Seymour Papert sta leta 1969
dokazala, da enoslojni Perceptron ne more rešiti XOR problema [7].
Slika 4: Enoslojen perceptron
Če damo na izhod enoslojnega perceptrona še en sloj nevronov, dobimo dvoslojni
perceptron. To lahko večkrat ponavljamo in dobimo večslojni perceptron (ang. Multilayer
perceptron), ki je sposoben reševanja težjih nalog od enoslojnega, med drugim tudi XOR
Obdelava slik za nenavadne dogodke s pomočjo metod strojnega učenja Stran 11
problem. Učenje je drugačno kot pri enoslojnem perceptronu. Najbolj znano učenje je
backpropagation [7].
Preden nevronsko mrežo uporabimo, jo moramo naučiti. Učni proces priredi uteži med
nevronskimi povezavami in vhodi tako, da je delovanje mreže ustrezno za rešitev naše
naloge. Poznamo tri osnovne principe učenja. Pri prvem tipu učenja (metoda katero smo
uporabili v naši rešitvi) – nadzorovanem (angl. supervised) učenju – se povezave urejujejo
na podlagi učnih podatkov, ki vsebujejo znane vhodne in pripadajoče izhodne vrednosti.
Pred začetkom učenja se vsi prosti parametri mreže (uteži) postavijo na naključne
vrednosti. Algoritem za učenje (najbolj znan je t.i. backpropagation learning algorythm)
pa te vrednosti počasi, korak za korakom, prireja tako, da napaka med izračunanimi in
pričakovanimi izhodnimi vrednostmi pada proti ničli.
Drugi tip učenja je nenadzorovano učenje (angl. unsupervised), kjer učni algoritem prireja
proste parametre mreže zgolj na podlagi vhodnih vrednosti. Osnova tem učnim algoritmom
je "tekmovanje za prevlado". Zmagovalni nevron se ojača, drugi nevroni se oslabijo. Na
takšen način na koncu dobimo vhodne podatke klasificirane v različne razrede.
Tretji tip učenja je ojačitveno (angl. reinforced) učenje. To je posebna vrsta nadzorovanega
učenja uporabljena predvsem pri učenju časovnih vrst, kjer rezultata neke akcije ne izvemo
takoj, ampak šele čez nekaj časa. Primer je igranje šaha – ali je bila naša strategija uspešna
ali ne navadno izvemo šele po nekaj potezah [5].
3.2 Odločitvena drevesa
Temelje odločitvenih dreves je postavil Hunt s sodelavci v 60. letih. Kljub vsemu se je
pravo zanimanje začelo v 80. letih, ko je Breinman s svojim delom navdušil ljudi, ki so se
ukvarjali s statistiko. Za »očeta« odločitvenih dreves pa velja Quinlan, ki se je leta 1986
predstavil in uveljavil s svojim delom in algoritmom ID3 [3].
Algoritmi za gradnjo odločitvenih dreves in pravil glede na oceno informacijske vrednosti
posameznih značilk izbirajo značilke in ustrezne podmnožice njihovih vrednosti za gradnjo
odločitvenega pogoja oziroma pravila. Tako dobljene pogoje najpogosteje konjunktivno
dodajajo k pogojnemu delu pravila. Sklepni (odločitveni) del pravila pa vsebuje enega ali
več razredov, ki jim pripadajo ustrezni učni primeri. Klasifikacija novega, še ne vidnega
primera poteka tako, da se sproži ustrezno pravilo.
Obdelava slik za nenavadne dogodke s pomočjo metod strojnega učenja Stran 12
S pomočjo učne množice, ki jo sestavljajo učni objekti ali vzorci zgradimo odločitveno
drevo. Učni vzorci imajo lastnosti opisane z množico atributov in izidom v katerega
spadajo. Učni vzorec lahko pripada samo enemu razredu, kar pomeni, da se razredi med
seboj izključujejo. Vzorci, ki so opisani z enakim vektorjem atributov, ne smejo imeti
različnih odločitev. V primeru, da imamo zadnja dva pogoja izpolnjena, imamo opravka s
konsistentnimi učni vzorci. V primeru neizpolnjenih pogojev imamo opravka z
nekonsistentnimi učnimi vzorci, kar pomeni, da smo v fazi merjenja atributov naredili
napako. V učni množici lahko imajo atributi diskretne ali zvezne vrednosti. Če imamo
opravka z zveznimi atributi, moramo opraviti preslikavo v diskretno obliko, saj zvezni
atributi niso pripravni za gradnjo odločitvenega drevesa.
Odločitveno drevo je sestavljeno iz vozlišč in povezav. Vozlišča delimo na dve vrsti: na
notranja vozlišča, ki vsebujejo pogoje, ki testirajo vrednosti atributov in tako razdelijo
učno množico na manjše množice, ter zunanja vozlišča, imenovana listi ali terminali, ki
označujejo razrede (slika 5).
Slika 5: Primer odločitvenega drevesa [3]
Obdelava slik za nenavadne dogodke s pomočjo metod strojnega učenja Stran 13
Indukcija odločitvenega drevesa imenujemo postopek, kjer iz učne množice generiramo
odločitveno drevo. Odločitveno drevo začnemo graditi s praznim drevesom in celotno
množico učnih vzorcev. S pomočjo metrike čistosti na vsakem koraku izberemo atribut, ki
na poti do trenutnega vozlišča še ni bil uporabljen, ter na podlagi vrednosti atributa
razdelimo učno množico. Ta postopek se ponavlja, vse dokler ne zadostimo pogojem, ki
končajo gradnjo odločitvenega drevesa:
• vsi vzorci v določenem vozlišču imajo isto odločitev,
• odstotek vzorcev, ki pripadajo večinskemu razredu v določenem vozlišču, je večji
ali enak toleranci pri predhodnem klestenju in
• zmanjkalo nam je atributov – na poti do določenega vozlišča smo porabili vse
atribute, učni vzorci v tem vozlišču pa ne pripadajo istemu razredu.
3.3 Obstoječi primeri uporabe metod strojnega učenja za razpoznavo slik
Kot smo že omenili v prejšnjih dveh poglavjih, sta strojno učenje in računalniški vid tesno
povezana, saj oba izhajata iz področja umetne inteligence. V nadaljevanju bodo
predstavljeni nekateri obstoječi primeri, kjer se uporablja strojnega učenja za razpoznavo
slik na določenih področjih.
Uporaba strojnega učenja za pomemben okoljski problem: odkrivanje razlitja nafte z
radarske slike morske gladine. Približno 10% razlitja izvira iz naravnih virov kot so
puščanja morskih postelj. Veliko bolj pogosta je namerna onesnaženost, ki jo povzročajo
ladje, ki se želijo na cenovno ugoden način znebiti naftnih ostankov v rezervoarjih.
Radarske slike satelitov, kot so RADARSAT in ERS-1, ponujajo priložnost za
nadzorovanje obalnih voda podnevi in ponoči, ne glede na vremenske razmere. Oljni
madeži so manj odsevni na radarju kot povprečna površina oceana, zato se na sliki
prikažejo zatemnjeni. Naftni madeži so različnih oblik in velikosti glede na čas, vremenske
razmere in razmere na morju. Razlitje se navadno začne kot eden ali dva madeža, ki se
nato razdelita v več manjših madežev. Različni naravni pojavi (npr. dež, alge) lahko
povzročijo podobnosti oljnemu razlitju na radarski sliki [8].
Obdelava slik za nenavadne dogodke s pomočjo metod strojnega učenja Stran 14
Diagnosticiranje v medicini [9]. Nedavni napredki na področju računalništva in
tehnološkega razvoja so olajšali rutinsko zbiranje in shranjevanje medicinskih podatkov, ki
jih je možno uporabiti za zdravniške odločitve. Vendar v večini primerov obstaja potreba
po analizi podatkov za dokončne zdravniške odločitve, bodisi da gre za diagnozo, napoved,
potek zdravljenja ali signal in analize slik. V takšnih primerih se je izkazalo, da so metode
strojnega učenja, kot so nevronske mreže in metoda podpornih vektorjev, primerne za
reševanje takšnih kompleksnih nalog.
Napovedovanje sončnih dogodkov, ki imajo hude posledice na Zemlji [10]. Sončne
aktivnosti lahko povzročijo resne težave za vesoljsko industrijo: motnje na zemeljskih
elektromagnetnih povezavah, elektrarnah, radijskih signalih itd. Inteligentni sistem
zagotavlja hitro napoved nastanka teh dogodkov, ki temeljijo na javno dostopnih podatkih
iz seznamov o drugih solarnih napovedih.
Aktualna uporaba je prepoznavanje človeških obrazov [11]. Za reševanje teh nalog
moramo najprej ugotoviti kje na sliki obrazi sploh so. Šele nato lahko zaznane obraze
primerjamo z obrazi v podatkovni zbirki, da bi ugotovili njihovo identiteto. Prvi del, kjer
imamo detekcijo obrazov na sliki, sodi med tako imenovane naloge kategorizacije, ki je za
primer obrazov relativno enostaven, ker so si človeški obrazi po strukturi dokaj podobni.
Težji problem pa je na primer poiskati vse vrste avtomobilov na slikah, saj se avtomobili
po obliki in barvi lahko veliko bolj razlikujejo kot obrazi.
Obdelava slik za nenavadne dogodke s pomočjo metod strojnega učenja Stran 15
4 OPIS IZDELANE APLIKACIJE
V tem poglavju bomo predstavili uporabo platforme Emgu CV [12] in njeno zgradbo.
Zatem bo sledil opis delovanja našega okolja, kako smo postopoma izdelali aplikacijo,
obdelovanje podatkov, učenje ter končen videz. Na koncu tega poglavja bomo predstavili
uporabo knjižnice WEKA [1] in uporabo v našem okolju ter predstavitev učne množice.
4.1 Uporaba Emgu CV
Emgu CV je prehodna platforma ovoja .Net za Intelovo knjižnico OpenCV, ki omogoča
obdelavo slik. Platforma omogoča klicanje funkcij OpenCV iz okolja .NET, kjer so podprti
programski jeziki C#, VB, VC++, IronPyhton itd. Platformo je možno zaganjati tudi v
programskem orodju Mono in deluje tako na operacijskih sistemih Linux kot Mac OS X.
Za razliko od drugih ovojnic, kot so npr. OpenCVDotNet, SharperCV ali Code Project, ki
uporabljajo nevarno programsko kodo, je Emgu CV v celoti napisan v programskem jeziku
C# primerjavo ovojnic lahko vidimo v tabeli 1. Prednost je v tem, da lahko zaganjamo
kodo v programskem orodju Mono in uporabljamo platformo povsod, kjer obstaja podpora
Mono vključno z operacijskim sistemom Linux, Solaris in Mac OS X. Emgu CV ima dve
plasti za svoj ovoj (Slika 6).
Za naš program smo uporabili verzijo Emgu CV 2.1.0.793 jo in jo namestili na
operacijskem sistemu Windows XP SP2 [12].
Obdelava slik za nenavadne dogodke s pomočjo metod strojnega učenja Stran 16
Tabela 1: Primerjava ovojnic za OpenCV [12]
Ime
Emgu CV
(Komercialno)
Emgu CV
(Odprto kodno)
OpenCVSharp OpenCVDotNet SharperCV Code
Project
OpenCV 2.2 X X X GPU Procesiranje X X X
Strojno učenje X X
Intel TBB X X X X X Intel IPP X X X X X Intel C++ Compiler X X X X X
Obravn-avanje izjem X X X
Debugger Visualizer X X
Licenca Komerci
alna licenca
GPL LGPL Nekomercialna GPL
Nekomercialna
Akademska uporaba
Nekomercialna
RPM izdaja za Fedoro X X X X
Debian izdaja za Ubuntu
X X X X
Posodobitve v roku enega leta
X X X
Obdelava slik za nenavadne dogodke s pomočjo metod strojnega učenja Stran 17
Slika 6: Plasti Emgu CV [12]
Obdelava slik za nenavadne dogodke s pomočjo metod strojnega učenja Stran 18
4.2 Opis okolja
Končna aplikacija je s pomočjo računalniškega vida in metod strojnega učenja zmožna
napovedati ali so vrata na hladilniku odprta ali zaprta in ali so luči v prostoru vključene ali
izključene. Aplikacijo lahko razdelimo na dva dela. V prvem delu aplikacije zajemamo in
obdelamo sliko iz katere pridobimo ključne in pomembne podatke za drugi del aplikacije,
kjer s pomočjo metod strojnega učenja napovemo nenavadni dogodek v prostoru.
Sliko dimenzije 640x480 pik najprej zajamemo iz kamere, nato na tej sliki iščemo krogec,
ki se nahaja na vratih hladilnika in ga nato izrišemo na vmesniku aplikacije (slika 7).
Krogec predstavlja enega izmed atributov za določanje nenavadnih dogodkov. Sliko nato
razdelimo v dva dela. Najprej jo razdelimo v zgornjem levem kotu, kjer dobimo novo sliko
dimenzije 50x50 pik. To sliko uporabljamo za prepoznavo sprememb luči (slika 8). Iz na
novo zajete slike po diagonali izračunamo vsoto pik zelenega spektra iz barvnega modela
RGB (enačba 2). Vsota je vrednost, s katero nato določimo vključene ali izključne luči v
prostoru. Vrednosti, ki se gibljejo pod 1000, predstavljajo izklopljene luči in takrat bo slika
temnejša. Ko se vrednosti gibljejo nad 1000, predstavljajo vključene luči in slike so
svetlejše. Omejitev je ta, da preverjamo luči samo v času od 19.ure zvečer do 6.ure zjutraj.
><
=∑ vklopljeneeizklopljen
iislikaslikatri ,1000
,1000),()(
(2)
Obdelava slik za nenavadne dogodke s pomočjo metod strojnega učenja Stran 19
Slika 7: Izris krogca
Slika 8: Slika za nenavadne dogodke luči
Primer kode za izračun vsote po diagonali slike:
double vsota = 0.0D; Image<Bgr, Byte> temp = new Image<Bgr, Byte>(frame).PyrDown().PyrUp(); pictureBoxNova.Image = temp.ToBitmap(); vsota = temp.Trace.v2;
Drugo razdelitev slike nam predstavlja nova slika dimenzije 320x480 pik(slika 12), ki jo
dobimo z razdelitvijo od sredine do konca leve strani zajete slike. To sliko uporabljamo za
prepoznavanje nenavadnih dogodkov vrat hladilnika. V časovnem intervalu 5 sekund
shranjujemo slike (stara slika), ki služijo za izračun razlik med staro in na novo sliko.
Najprej novo in staro sliko spremenimo v sivinski spekter, nato njuni matriki vrednosti
delimo z vrednostjo 255. Tako predstavimo sivine od 0 do 1, kjer 0 predstavlja črno in 1
belo barvo. Za tem izračunamo absolutne razlike med slikama in jih seštejemo. Dobimo
vrednost, ki nam služi kot atribut za določanje nenavadnega dogodka.
Obdelava slik za nenavadne dogodke s pomočjo metod strojnega učenja Stran 20
-slika za luči -slika za vrata
Slika 9: Razdelitev slike za nenavadne dogodke
Primer kode za izračun razlik med slikami:
imgFile = new Image<Bgr, Byte>("vrata.jpg"); stara = imgFile.Convert<Gray, Byte>().PyrDown().PyrUp(); nova = new Image<Gray, Byte>(frame).PyrDown().PyrUp(); stara = stara / 255; double resnost = 0.0D; nova = nova / 255; Image<Gray, Byte> difference = new Image<Gray, Byte>(stara.Width, stara.Height); cvInvoke.cvAbsDiff(stara, nova, difference); for (int i = 0; i < difference.Height; i++) { for (int j = 0; j < difference.Width; j++) { if (difference.Data[i, j, 0] > 0.3) resnost += difference.Data[i, j, 0]; } }
Obdelava slik za nenavadne dogodke s pomočjo metod strojnega učenja Stran 21
4.3 Uporaba knjižnice WEKA
WEKA je knjižnica implementiranih algoritmov strojnega učenja za naloge podatkovnega
rudarjenja. Algoritme lahko uporabimo neposredno iz orodja npr. nad podatki iz
podatkovne baze ali pa jih uporabimo v lastni kodi. WEKA omogoča pred procesiranje,
klasifikacijo, regresijo, gnezdenje, združevanje pravil in vizualizacijo. Prav tako je zelo
primerna za razvoj novih sistemov strojnega učenja [1].
Ker je WEKA implementirana v programskem jeziku Java in namenjena za
implementacijo razširitev v Javi, smo jo morali pripraviti za uporabo v programskem
jeziku C# oziroma v okolju .NET. Zato smo morali javansko knjižnico spremeniti v
knjižnico v obliki datoteke *.dll. To smo storili s programom IKVM, ki je prosto dostopen
na spletu [13].
Za učenje klasifikatorjev v WEKI uporabljamo datoteke tipa ARFF (Attribute-Relation
File Format) [14] ali pa se povežemo neposredno na podatkovno bazo. Datoteka *.arff je
datoteka, v kateri se nahajajo atributi in opis primerov delitve atributov in ima dva ločena
dela. V prvem delu je glava z opisom zbirke in atributov (Header), nato sledijo podatki
(Data) glede na definirane atribute. Glava datoteke vsebuje ime v razmerju, seznam
atributov in njihove tipe. Naslednji primer (slika 10) prikazuje datoteko *.arff za zbirko
podatkov, primerno za klasifikacijo v WEKI.
Slika 10: Primer glave ARFF datoteke
Obdelava slik za nenavadne dogodke s pomočjo metod strojnega učenja Stran 22
Pod sekcijo DATA so navedeni podatki v istem vrstnem redu kot so navedeni atributi.
Zadnje vrednosti predstavljajo oznako razreda posameznega vzorca (vrstice) na podlagi
katerih se klasifikatorji naučijo (Slika 11).
Slika 11: Primer zapisa podatkov
Za naš projekt smo morali izdelati dve datoteki *.arff, na podlagi katerih se klasifikatorji
naučijo klasificirati podatke, zato smo ustvarili datoteki luci.arff in vrata.arff (slika 12).
Slika 12: Primer datoteke vrata.arff
Obdelava slik za nenavadne dogodke s pomočjo metod strojnega učenja Stran 23
Za luči smo uporabili naslednje atribute tipov:
• vsota (vsota diagonale slike) - numerični
• stanje { vklopljena, izklopljena}
Prvi atribut je celo število, ki predstavlja vsoto po diagonali slike. Zadnji atribut stanje
pove v kakšnem stanju so luči v prostoru.
Za vrata hladilnika smo uporabili:
• krog {1,0}
• razlika (razlika slik stare in nove) - numerični
• stanje {odprta,zaprta}
Prvi atribut predstavlja logično vrednost 0 ali 1, z njima povemo ali se krog nahaja na sliki
ali ne. Atribut razlika je celoštevilčna vrednost, ki predstavlja razliko med staro in novo
sliko. Atribut stanje pove ali gre za odprta ali zaprta vrata na hladilniku.
Obdelava slik za nenavadne dogodke s pomočjo metod strojnega učenja Stran 24
5 MERITVE IN REZULTATI MERITEV
Meritve smo izvajali večkrat na dan, da smo lahko zbrali dovolj veliko podatkov za
gradnjo modela. Te smo zbirali kar ob nastajanju aplikacije, kjer smo sprotne meritve in
različne informacije aplikacije zapisovali v začasno datoteko. Nato smo te podatke
ažurirali, jih po potrebi tudi popravili in jim dodali pričakovane rezultate. Rezultat teh
meritev so vhod za metode strojnega učenja. Program se ob zagonu s pomočjo teh datotek
sam nauči odločanja o nenavadnih dogodkih. V prvih fazah, ko smo imeli premalo
podatkov, je aplikacija časa zelo slabo klasificirala. Zato smo za časovno obdobje v
katerem so se pojavljali nepravilni podatki zbrali nove in jih nato dodali. Tako smo na
koncu dobili dovolj veliko število podatkov, da smo dobili rezultate dovolj natančne za
pravilno delovanje aplikacije.
Za strojno učenje smo uporabili WEKIno implementacijo odločitvenih drevesa - J48 in
nevronske mreže – MultiLayerPerceptron. S pomočjo datotek arff smo zgradili
odločitveno drevo (J48), ki ima klasifikacijsko natančnost za vrata 99.99% (Tabela 2) in za
luči 99.84% (Tabela 4). Za primerjavo smo zgradili tudi nevronsko mrežo
(MultiLayerPerceptron), ki ima klasifikacijsko natančnost za vrata 99.93% (Tabela 3) in za
luči 99.79 (Tabela 5). Pri obeh klasifikatorjih smo uporabili testno metodo navzkrižne
validacije (10-fold cross-validation) in nato napovedali odločitev, ali so vrata odprta
oziroma zaprta in ali so luči vklopljene oziroma izklopljene. Pri izdelavi klasifikatorjev
smo uporabili za učno množico pri vratih 37178 objektov, za luči pa 3754 objektov. Za
testno množico smo uporabili nov nabor podatkov in sicer približno polovico števila
podatkov, torej za vrata 18678 objektov in za luči 1890 objektov. V spodnjih tabelah
(Tabela 2-5) lahko vidimo primerjavo odločitev za podane parametre. Razvidno je, da do
nekaterih razlik med učnimi metodami prihaja v primeru napovedi stanja luči – pri istih
parametrih prihaja do različnih napovedi (Tabela 2 in Tabela 4).
Obdelava slik za nenavadne dogodke s pomočjo metod strojnega učenja Stran 25
Tabela 2: J48 – napovedi stanja vrat za podane parametre
Ura Minuta Sekunda Krog: (1/0)
Razlika Odločitev: (odprta/zaprta)
7 41 7 1 76136 zaprta 8 57 15 1 69829 zaprta 8 57 17 0 43927 odprta 9 6 3 1 60503 zaprta 9 6 14 0 118118 odprta 9 6 14 1 118118 zaprta 11 50 31 0 58337 odprta
Tabela 3: MultiLayerPerceptron – napovedi stanja vrat za podane parametre
Ura Minuta Sekunda Krog: (1/0)
Razlika Odločitev: (odprta/zaprta)
7 41 7 1 76136 zaprta 8 57 15 1 69829 zaprta 8 57 17 0 43927 odprta 9 6 3 1 60503 zaprta 9 6 14 0 118118 odprta 9 6 14 1 118118 zaprta 11 50 31 0 58337 odprta
Tabela 4: J48 – napovedi stanja luči za podane parametre
Ura Minuta Sekunda Razlika Odločitev: (vklopljena / izklopljena)
22 19 54 5547 vklopljena 22 25 48 709 izklopljena 22 17 31 453 vklopljena 22 19 18 1064 izklopljena 4 15 45 751 vklopljena
Tabela 5: MultiLayerPerceptron – napovedi stanja luči za podane parametre
Ura Minuta Sekunda Razlika Odločitev: (vklopljena / izklopljena)
22 19 54 5547 vklopljena 22 25 48 709 izklopljena 22 17 31 453 izklopljena 22 19 18 1064 vklopljena 4 15 45 751 izklopljena
Obdelava slik za nenavadne dogodke s pomočjo metod strojnega učenja Stran 26
Pri gradnji odločitvenega drevesa za vrata smo ugotovili, da ima drevo pet vozlišč na treh
nivojih. Iz spodnje slike (Slika 13) je razvidno, da je učna množica z vidika opisnih
atributov neprimerna, saj ne upošteva atributov za čas (Slika 13).
Slika 13: Odločitveno drevo j48 za vrata
Iz matrike zmede (Tabela 6) lahko razberemo, da je število pravilno klasificiranih
podatkov za odprta vrata 1672 in samo 1 napačno. Zaprta vrata so bila pravilno
klasificirana v vseh primerih.
Tabela 6: Matrika zmede odločitvenega drevesa za vrata
Dejanska vrednost
Odločitev klasifikatorja
Odprta Zaprta Odprta 1672 0 Zaprta 1 35505
Odločitveno drevo za luči ima 11 vozlišč in 6 nivojev. Iz spodnje slike (Slika 14) je
razvidno, da so bili upoštevani vsi atributi, toda veje drevesa niso logične, ker se delitev
začne z minutami, se nadaljuje s sekundami in šele nato z urami.
Obdelava slik za nenavadne dogodke s pomočjo metod strojnega učenja Stran 27
Slika 14: Odločitveno drevo j48 za luči
Pri drevesu za luči smo dobili matriko zmede (Tabela 7), kjer je za vklopljene luči bilo
pravilno klasificiranih 1128 podatkov in samo 2 narobe. Za izklopljene luči je bilo pravilno
klasificiranih 2620 podatkov in 4 narobe.
Tabela 7: Matrika zmede odločitvenega drevesa j48 za luči
Dejanska vrednost
Odločitev klasifikatorja
Vklopljena Izklopljena Vklopljena 1128 4 Izklopljena 2 2620
V obeh primerih nam matriki zmede povesta, da je iz stališča podatkov klasifikator dovolj
natančen, čeprav v enem primeru ne upošteva vseh opisnih atributov, v drugem pa zgradi
nelogične vejitve.
Za primerjavo smo izdelali še dve odločitveni drevesi in sicer J48graft in RandomTree.
Razlike so bile najbolj vidne pri gradnji odločitvenega drevesa RandomTree za vrata.
Klasifikacijska natančnost drevesa je bila 99.99%, velikost drevesa 27 vozlišč na 7 nivojih.
To drevo je upoštevalo vse opisne atribute (Slika 15), toda tudi tukaj lahko vidimo, da so
veje nesmiselne, saj se ponovno delijo najprej na sekundah in šele nato v urah. Manjše
razlike so bile pri gradnji drevesa za luči, kjer smo dobili klasifikacijsko natančnost
Obdelava slik za nenavadne dogodke s pomočjo metod strojnega učenja Stran 28
99.95% in večje drevo s 33 vozlišči in 10 nivoji (Slika 16). Pri drevesu J48graft so bili
rezultati enaki kot pri j48 tako za vrata kot za luči.
Slika 15: Odločitvene drevo RandomTree za vrata
Slika 16: Odločitvene drevo RandomTree za luci
Obdelava slik za nenavadne dogodke s pomočjo metod strojnega učenja Stran 29
Klasifikator nevronske mreže MultiLayerPerceptron je pravilno klasificiral odprta vrata v
1670 primerih in 23 krat napačno. Zaprta vrata je klasificiral pravilno 35483 in samo 2 krat
napačno. Podatke lahko razberemo iz matrike zmede (Tabela 8). Pri lučeh smo dobili
pravilno klasificiranih podatkov za vklopljene luči 1127 in 3 nepravilno klasificirane.
Izklopljene luči so bile 2619 pravilno in 5 nepravilno klasificirane (Tabela 9). Tudi v teh
primerah matrik zmede lahko rečemo, da zgrajen klasifikator klasificira dovolj dobro.
Tabela 8: Matrika zmede MultiLayerPerceptron za vrata
Dejanska vrednost
Odločitev klasifikatorja
Odprta Zaprta Odprta 1672 0 Zaprta 1 35505
Tabela 9: Matrika zmede MultiLayerPerceptron za luči
Dejanska vrednost
Odločitev klasifikatorja
Vklopljena Izklopljena Vklopljena 1127 5 Izklopljena 3 2619
V primeru odločitvenih dreves smo opazili nepravilnosti pri upoštevanju opisnih atributov,
zato smo poskusili z naborom podatkov, kjer smo odstranili opisne atribute časa in prav
tako uporabili testno metodo 10-fold cross-validation. Zgradili smo nov klasifikator za
odločitveno drevo j48 in MultiLayerPerceptron. Za odločitveno drevo za vrata smo dobili
pri istem številu objektov klasifikacijsko natančnost 100%, kar pomeni, da so bili pravilno
klasificirani vsi podatki (Tabela 10). Prav tako smo po strukturi dobili enako odločitveno
drevo kot prej (Slika 13).
Tabela 10: Nova matrika zmede odločitvenega drevesa j48 za vrata
Dejanska vrednost
Odločitev klasifikatorja
Odprta Zaprta Odprta 1673 0 Zaprta 0 35505
Večje razlike so vidne pri novem klasifikatorju luči, kjer smo dobili nekoliko slabšo
natančnost, ki pa je še zmeraj dovolj visoka in sicer 99.14%. Tako so bili podatki
vklopljenih luči pravilno klasificirani v 1101 primerih in samo v enem napačno, v primeru
Obdelava slik za nenavadne dogodke s pomočjo metod strojnega učenja Stran 30
izklopljene luči smo dobili nekaj manj pravilno klasificiranih primerov in sicer 2621 ter 31
nepravilnih. Rezultate lahko razberemo iz nove matrike zmede (Tabela 11). V tem primeru
smo dobili novo odločitveno drevo s tremi vozlišči in dvema nivojema (Slika 17). Novo
drevo upošteva vse opisne atribute in je tudi iz vseh vidikov primernejše za uporabno.
Tabela 11: Nova matrika zmede odločitvenega drevesa j48 za luči
Dejanska vrednost
Odločitev klasifikatorja
Vklopljena Izklopljena Vklopljena 1101 31 Izklopljena 1 2621
Slika 17: Novo odločitveno drevo j48 za luči
Klasifikatorja nevronske mreže sta imela nižjo natančnost a za zelo malo razliko.
Klasifikator za odprta vrata je pravilno klasificiral 1673 krat in 30 krat nepravilno, stanje
zaprtih vrat je v vseh 35475 primerih klasificiral pravilno in nobenega napačno (Tabela
12). Tako je natančnost klasifikatorja 99.91%.
Tabela 12: Nova matrika zmede MultiLayerPerceptron za vrata
Dejanska vrednost
Odločitev klasifikatorja
Odprta Zaprta Odprta 1673 0 Zaprta 30 35475
Obdelava slik za nenavadne dogodke s pomočjo metod strojnega učenja Stran 31
Pri nevronski mreži klasifikacije luči smo dobili natančnost 99.12%, kar predstavlja 1099
pravilno klasificiranih primerov in nobenega napačno v primeru vklopljenih luči, ter 2622
pravilno klasificiranih primerov in 33 napačno klasificiranih primerov pri izklopljenih
lučeh (Tabela 13).
Tabela 13: Nova matrika zmede MultiLayerPerceptron za luči
Dejanska vrednost
Odločitev klasifikatorja
Vklopljena Izklopljena Vklopljena 1099 33 Izklopljena 0 2622
Nove meritve so pokazale, da opisni atributi za čas ne predstavljajo ključnega pomena in
smo jih lahko odstranili. Vsi klasifikatorji so bili še zmeraj dovolj natančni saj odstranitev
atributov ni bistveno vplivala na njihovo izgradnjo.
Pri klasifikaciji luči smo uporabljali podatke o vsoti, ki smo jo izračunali po diagonali
slike. Nato je klasifikator napovedal stanje glede na podane podatke. Ključno vrednost je
predstavljala vsota, ki je vsebovala vrednosti za pravilno napoved. Ta vrednost je bila
dovolj dobra, da je lahko zanemarila razlike v sliki, ko se je prostor osvetlil zaradi luči iz
hladilnika ali svetlobe, ki je prihajala iz drugih prostorov.
Pri klasifikaciji vrat hladilnika je bil zelo pomemben podatek ali je na sliki krogec ali ne in
razlika v slikah. Ta dva podatka sta bila za napoved stanja zelo pomembna.
Končni videz aplikacije in njene funkcionalnosti v dopoldanskem in popoldanskem času
lahko vidimo na sliki 18.
Obdelava slik za nenavadne dogodke s pomočjo metod strojnega učenja Stran 32
Slika 18: Končna aplikacija
Primer aplikacije, ki klasificira nenavadne dogodke v večernem času, je prikazan na
spodnjih slikah (slika 19, slika20, slika21, slika22).
Slika 19: V prostoru ni nenavadnih dogodkov
Obdelava slik za nenavadne dogodke s pomočjo metod strojnega učenja Stran 33
Slika 20: Odprta vrata v stanju izključenih luči
Slika 21: V prostoru so vključene luči
Obdelava slik za nenavadne dogodke s pomočjo metod strojnega učenja Stran 34
Slika 22: V prostoru so vključene luči in odprta vrata hladilnika
Obdelava slik za nenavadne dogodke s pomočjo metod strojnega učenja Stran 35
6 ZAKLJUČEK
Računalniški vid in strojno učenje sta področji, kjer je potrebno veliko izkušenj, saj obe
ponujata veliko možnih implementacij za reševanje problemov na najrazličnejših
problemskih področjih. Za dobre, uporabne rešitve v praksi moramo večkrat problem zelo
natančno omejiti oziroma ga čim bolje definirati, da dobimo zadovoljivejše rezultate.
Za obe področji lahko rečemo, da sta dokaj testno povezani, saj obe izhajata iz umetne
inteligence. Prav tako obe strmita k enakovrednemu reševanju nalog, prilagodljivosti in
univerzalnosti, kot jo imajo biološki sistemi ali celo še k boljši. Žal pa smo, kljub temu, da
imamo vedno boljše in močnejše računalniške sisteme, še daleč od tega cilja.
Definitivno je prihodnost teh področij tudi v gospodinjstvu, saj se že kar nekaj časa
pojavljajo tako imenovane pametne hiše, ki nam omogočajo različne avtomatizacije:
avtomatiko za ogrevanje, hlajenje, žaluzije, razsvetljavo itd… Z metodami umetne
inteligence bomo lahko te sisteme še razširili. Računalnik nam bo povedal kaj je potrebno
kupiti in česa nam primanjkuje v hladilniku, v primeru, da pozabimo izklopiti likalnik, ga
bo izklopil za nas, možno bo prepoznavanje nezaželenih oseb v našem domu, prikaz
lokacije naših družinskih članov in podobno. V gospodinjstvo najdemo veliko število
različnih problemov, poiskati je potrebno le pravilen pristop k reševanju problema.
Obdelava slik za nenavadne dogodke s pomočjo metod strojnega učenja Stran 36
7 VIRI IN LITERATURA
[1] Weka, dostopno na http://weka.wikispaces.com/
[2] Franc Solina, Računalniški vid nekdaj in danes, dostopno na http://eprints.fri.uni-
lj.si/199/1/Solina_ROSUS2006.pdf
[3] Milan Zorman, Vili Podgorelec, Mitja Lenič, Petra Povalej, Peter Kokol, Alojz
Tapajner. Inteligentni sistemi in profesionalni vsakdan, Maribor: Univerza, Center
za interdisciplinarne in multidisciplinarne raziskave in študije, 2003.
[4] Klemen Polanec, Strojno učenje, dostopno na
http://dat.si/publikacije/Article/Strojno-u--269-enje/66
[5] Multilayer Perceptron Neural Networks, dostopno na
http://www.dtreg.com/mlfn.htm.
[6] Jain et al., 1996: Artificial neural networks: A tutorial. IEEE.
[7] Perceptron, dostopno na http://sl.wikipedia.org/wiki/Perceptron
[8] Machine Learning for the Detection of Oil Spills in Satellite Radar Images,
dostopno na http://www.springerlink.com/content/h537516835xw154p/fulltext.pdf
[9] Machine learning approaches to medical decision making, dostopno na
http://www.cs.bris.ac.uk/Publications/Papers/1000602.pdf
[10] Image Processing and Machine Learning Techniques for Short-Term Prediction of
Solar Activity, dostopno na
http://gow.epsrc.ac.uk/ViewGrant.aspx?GrantRef=GR/T17588/01
[11] Eigenfaces for Recognition, dostopno na http://www.face-
rec.org/algorithms/PCA/jcn.pdf
[12] Emgu CV, dostopno na http://www.emgu.com/wiki/index.php/Main_Page
[13] IKVM, dostopno na http://www.ikvm.net/
[14] Attribute-Relation File Format (ARFF), dostopno na
http://www.cs.waikato.ac.nz/~ml/weka/arff.html
Obdelava slik za nenavadne dogodke s pomočjo metod strojnega učenja Stran 37
8 PRILOGE
8.1 Seznam slik
Slika 1: Zgradba nevrona ....................................................................................................... 8
Slika 2: Delitev nevronskih mrež [6] ..................................................................................... 9
Slika 3: Primer več nivojske nevronske mreže [5] .............................................................. 10
Slika 4: Enoslojen perceptron .............................................................................................. 10
Slika 5: Primer odločitvenega drevesa [3] ........................................................................... 12
Slika 6: Plasti Emgu CV [12] .............................................................................................. 17
Slika 7: Izris krogca ............................................................................................................. 19
Slika 8: Slika za nenavadne dogodke luči ........................................................................... 19
Slika 9: Razdelitev slike za nenavadne dogodke ................................................................. 20
Slika 10: Primer glave ARFF datoteke ................................................................................ 21
Slika 11: Primer zapisa podatkov ........................................................................................ 22
Slika 12: Primer datoteke vrata.arff ..................................................................................... 22
Slika 13: Odločitveno drevo j48 za vrata ............................................................................ 26
Slika 14: Odločitveno drevo j48 za luči .............................................................................. 27
Slika 15: Odločitvene drevo RandomTree za vrata ............................................................. 28
Slika 16: Odločitvene drevo RandomTree za luci ............................................................... 28
Slika 17: Novo odločitveno drevo j48 za luči ..................................................................... 30
Slika 18: Končna aplikacija ................................................................................................. 32
Slika 19: V prostoru ni nenavadnih dogodkov .................................................................... 32
Slika 20: Odprta vrata v stanju izključenih luči .................................................................. 33
Slika 21: V prostoru so vključene luči ................................................................................ 33
Slika 22: V prostoru so vključene luči in odprta vrata hladilnika ....................................... 34
Obdelava slik za nenavadne dogodke s pomočjo metod strojnega učenja Stran 38
8.2 Seznam tabel
Tabela 1: Primerjava ovojnic za OpenCV [12] ................................................................... 16
Tabela 2: J48 – napovedi stanja vrat za podane parametre ................................................ 25
Tabela 3: MultiLayerPerceptron – napovedi stanja vrat za podane parametre ................... 25
Tabela 4: J48 – napovedi stanja luči za podane parametre ................................................. 25
Tabela 5: MultiLayerPerceptron – napovedi stanja luči za podane parametre ................... 25
Tabela 6: Matrika zmede odločitvenega drevesa za vrata ................................................... 26
Tabela 7: Matrika zmede odločitvenega drevesa j48 za luči .............................................. 27
Tabela 8: Matrika zmede MultiLayerPerceptron za vrata ................................................... 29
Tabela 9: Matrika zmede MultiLayerPerceptron za luči ..................................................... 29
Tabela 10: Nova matrika zmede odločitvenega drevesa j48 za vrata ................................. 29
Tabela 11: Nova matrika zmede odločitvenega drevesa j48 za luči ................................... 30
Tabela 12: Nova matrika zmede MultiLayerPerceptron za vrata ....................................... 30
Tabela 13: Nova matrika zmede MultiLayerPerceptron za luči ......................................... 31