obdelava slik za nenavadne dogodke s pomoČjo metod … · 2018. 8. 24. · sledi nekaj definicij...

53
Marko Avguštin OBDELAVA SLIK ZA NENAVADNE DOGODKE S POMOČJO METOD STROJNEGA UČENJA Diplomsko delo Maribor, september 2011

Upload: others

Post on 20-Feb-2021

0 views

Category:

Documents


0 download

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

II

Številka: #Številka

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

Obdelava slik za nenavadne dogodke s pomočjo metod strojnega učenja Stran 39

Obdelava slik za nenavadne dogodke s pomočjo metod strojnega učenja Stran 40

Obdelava slik za nenavadne dogodke s pomočjo metod strojnega učenja Stran 41