iskanje podobnih slik s kohonenovimi mreŢami · 2017. 11. 27. · blumova okostja. 2.2 osnovni...
Post on 30-Jan-2021
3 Views
Preview:
TRANSCRIPT
-
UNIVERZA V MARIBORU
FAKULTETA ZA ELEKTROTEHNIKO,
RAČUNALNIŠTVO IN INFORMATIKO
Ţiga Petek
ISKANJE PODOBNIH SLIK S KOHONENOVIMI
MREŢAMI
Diplomska naloga
Maribor, november 2010
-
Diplomska naloga univerzitetnega študijskega programa
ISKANJE PODOBNIH SLIK S KOHONENOVIMI
MREŢAMI
Študent: Ţiga Petek
Študijski program: UN, računalništvo in informatika
Smer:
Programska oprema
Mentor: Red. prof. pr. Nikola Guid
Somentor: doc. dr. Damjan Strnad
Maribor, november 2010
-
Iskanje podobnih slik s Kohonenovimi
mreţami
Ključne besede : Kohonenova samoorganizirajoča mreţa, analiza slik, sistemi CBIR,
značilke, barvni modeli
UDK:
004.032.26:004.934(043.2)
Povzetek
V diplomski nalogi bomo implementirali sistem za prepoznavanje slik po vsebini
(CBIR– content based image retrieval) s pomočjo Kohonenove samoorganizirajoče mreţe. Ta
vrsta nevronskih mreţ je ţe dolgo močno orodje na področju vizualizacije podatkov ter
urejanja podatkov v skupine.
-
Kohonen neural network and content
based image recognition
Keywords: Kohonen's self-organizing map, image analysis, CBIR systems, image
features, colour models
UDK:
004.032.26:004.934(043.2)
Abstract
In this thesis we implement a content based image retrieval system based on the
Kohonen's self organized map. This type of artificial neural networks proved to be a
powerfull tool for visualization and data clustering.
-
ZAHVALA
Zahvaljujem se mentorju red. prof. dr. Nikoli
Guidu za pomoč in vodenje pri poravljanju
diplomske naloge. Prav tako se zahvaljujem
somentorju doc. dr. Damjanu Strnadu.
Posebna zahvala velja moji mami, ki mi je
omogočila študij.
-
6
Kazalo
KAZALO ............................................................................................................................................................ 6
1. UVOD ........................................................................................................................................................... 7
2. OSNOVE SISTEMOV CBIR ............................................................................................................................. 10
2.1 IZBIRA ZNAČILK ................................................................................................................................................ 11
2.2 OSNOVNI ALGORITEM DELOVANJA SISTEMOV CBIR ................................................................................................. 14
3. OPIS ZNAČILK .............................................................................................................................................. 17
3.1 BARVA ........................................................................................................................................................... 17
3.1.1 BARVNI MODEL RGB ..................................................................................................................................... 17
3.1.2 BARVNA MODELA HLS TER HSV....................................................................................................................... 18
3.1.3 BARVNI HISTOGRAM ...................................................................................................................................... 20
3.2 TEKSTURA ....................................................................................................................................................... 23
3.2.1 Statistične metode ............................................................................................................................... 23
a) Matrika sopojavljanja ............................................................................................................................................. 23
b) Teksturne značilke Tamure ..................................................................................................................................... 25
c) Valjčna transformacija ............................................................................................................................................ 26
3.3 OBLIKA ........................................................................................................................................................... 28
4. KOHONENOVA SAMOORGANIZIRAJOČA MREŽA ......................................................................................... 30
4.1 NEVRONSKE MREŽE .......................................................................................................................................... 30
4.2 ZGRADBA SAMOORGANIZIRAJOČE MREŽE .............................................................................................................. 32
4.3 DELOVANJE SAMOORGANIZIRAJOČE MREŽE ............................................................................................................ 34
4.3.1 Učenje Kohonenove mreže ................................................................................................................... 35
a) Tekmovalni proces .................................................................................................................................................. 36
b) Kooperativni proces ............................................................................................................................................... 37
c) Adaptivni proces ..................................................................................................................................................... 38
4.3.2 Delovanje Kohonenove samoorganizirajoče mreže ............................................................................. 42
5. OPIS IMPLEMENTACIJE................................................................................................................................ 43
5.1 UPORABNIŠKI VMESNIK APLIKACIJE CBIR............................................................................................................... 43
5.2 OPIS FUNKCIJ IN DELOVANJE PROGRAMA CBIR ....................................................................................................... 46
5.3 REZULTATI ...................................................................................................................................................... 53
6. SKLEP .......................................................................................................................................................... 59
7. LITERATURA ................................................................................................................................................ 60
8. PRILOGE ...................................................................................................................................................... 61
-
7
1. Uvod
Zadnjih deset let se vedno bolj uveljavljajo sistemi za prepoznavanje slik po vsebini
(content based image retrieval systems - CBIR). Podamo jim sliko, nato v bazi poiščejo slike,
ki se iskani sliki po vsebini najbolj prilegajo. V tej diplomski nalogi bomo spoznali sisteme
CBIR ter Kohonenovo samoorganizirajočo mreţo, ki je zelo primerna ravno za te vrste nalog.
Dandanes se na različnih področjih, kot na primer v medicini, geografiji in
oglaševalskih sistemih, vse pogosteje uporabljajo baze slik. Le-te lahko vsebujejo ogromno
podatkov. Število nemalokrat doseţe več tisoč slik na bazo. Standardni načini indeksiranja
slik v tem primeru niso več primerni. Če bi v bazi, ki vsebuje par tisoč elementov, hoteli vsaki
sliki prirediti indeks, bi potrebovali ogromno časa. Poleg tega ne bi bilo zagotovljeno, da bi s
pomočjo teh indeksov našli vse slike, ki nas zanimajo, saj uporabniki koristijo različne
ključne besede za opis ene in iste slike. Tako za še tako enostaven objekt, kot je smreka,
obstaja ogromno različnih besed (predvsem zaradi različnih jezikov): smreka, spruce, Fichte,
Picea abies,...
Tukaj se izkaţejo kot bolj primerni drugi načini urejanja in iskanja slik. Zelo
perspektivna tehnologija na tem področju je iskanje slik glede na vsebino. Pri tem načinu se iz
vsake slike izloči vektor njenih značilk. Slika se nato uvrsti v primerno mnoţico glede na ta
vektor. Samoorganizirajoča mreţa je kot nalašč za takšno opravilo, saj je njena osnovna
naloga ravno urejanje podatkov, ki so podani v obliki vektorja.
Samoorganizirajoča mreţa kot vsaka druga nevronska mreţa pozna dve fazi. V prvi
fazi podamo vektorje vseh značilk slik v bazi. Nato se vsakemu od nevronov prilagodijo uteţi
glede na podane vhode. Na tak način se vsaki sliki priredi nevron. Slike, ki imajo prirejeno
isto vozlišče, so si po definiciji podobne. V drugi fazi podamo samo en vektor, ki opiše slike,
ki jih ţelimo najti. Ponavadi iz slike, ki je podobna slikam, ki jih ţelimo najti, izvlečemo
značilke. Mreţa nato najde nevron, katerega uteţi so najbolj podobne podanemu vektorju in
vrne vse slike iz baze, ki imajo prirejen isti nevron.
Tako oblikovan sistem CBIR lahko, če mu podamo primeren vektor, najde podobne
slike v nekaj sekundah. S pomočjo standardnih načinov indeksiranja bi za to opravilo
potrebovali nekaj ur. Slike vedno vsebujejo informacije, ki nam lahko pomagajo pri iskanju
podobnih slik. Informacije, ki jih lahko pridobimo iz slik, razdelimo v tri razrede oz. stopnje
[splet 2]:
-
8
1. Nizka raven: vsebuje osnovne vizualne lastnosti, kot so barva, tekstura, oblika, prostorske
informacije ter gibanje.
2. Srednja raven: vsebuje informacije o prisotnosti ali ureditvi določenih tipov objektov in
prizorov.
3. Visoka raven: vsebuje informacije o vtisih, čustvih in pomenu, ki jih lahko razpoznamo iz
slike. Vključeni so prav tako predmeti ali prizori s čustvenim ali verskim pomenom.
Stopnje so prikazane na sliki 1.1. Kot značilke se večinoma uporabijo osnovne
vizualne lastnosti slik, torej barva, tekstura in oblika. Uporabijo se značilke, ki čimbolj
natančno opišejo lastnosti slik, shranjenih v bazi. Izbira pravilnih značilk je ključnega pomena
za uspešno delovanje sistema CBIR. Kohonenova samoorganizirajoča mreţa je orodje za
urejanje vektorjev. V primeru, da vektorji značilk niso pravilno izbrani, mreţa slik ne uredi
pravilno in sistem ne deluje.
V tej diplomski nalogi bomo implementirali sistem CBIR, ki se posluţuje barve in
teksture ter ga testirali na zbirki 500 slik.
Diploma je razdeljena v sedem poglavij. V drugem poglavju bomo opisali osnove
sistemov CBIR, izbiro značilk ter osnovni algoritem, ki je skupen skoraj vsem sistemom za
prepoznavanje slik po vsebini. V tretjem poglavju bomo našteli osnovne značilke, ki se
uporabljajo v sistemih CBIR ter uporabljene značilke tudi podrobneje opisali. V četrtem
poglavju bomo opisali Kohonenovo samoorganizirajočo mreţo, njeno zgradbo in delovanje.
V petem poglavju bomo natančneje opisali implementacijo našega sistema CBIR ter prikazali
rezultate. Šesto poglavje bo predstavljalo sklep. V sedmem poglavju bomo našteli vire, ki smo
jih uporabili pri izdelavi diplomske naloge.
-
9
Slika 1.1: Prikaz različnih stopenj informacij o sliki
-
10
2. Osnove sistemov CBIR
Sistemi CBIR, poznani tudi kot sistemi QBIC ( Query By Image Content ) oziroma
sistemi CBVIR ( Content-based Visual Information Retrieval ), se, kot ţe ime pove, ubadajo
s problemom iskanja digitalnih slik znotraj baz. Slike iščejo tako, da analizirajo dejansko
vsebino slike ter iz nje izločijo najpomembnejše informacije, ki pripomorejo k uspešnim
rezultatom iskanja. Te informacije so v osnovi barva, tekstura in oblika.
Izraz CBIR se je prvič pojavil leta 1992, ko ga je uporabil T. Kato za opis poskusov
iskanja slik iz baze glede na barve in oblike, ki so bile prisotne v sliki [splet 6]. Od takrat
naprej se ta izraz uporablja za opis iskanja slik iz večje zbirke s pomočjo skladenjskih značilk.
Tehnike, ki se tukaj uporabljajo, izvirajo iz najrazličnejših področij, kot so statistika,
prepoznavanje vzorcev, obdelava signalov in računalniški vid.
Tehnologije, ki temeljijo na osnovi metapodatkov, omogočajo enostavno iskanje po
bazi. Imajo pa to slabost, da so za opis vsake slike v podatkovni bazi potrebni ljudje. Ta
postopek je drag in traja dlje časa. Z velikostjo baze pa se cena in čas linearno povečujeta.
Poleg tega ni zagotovljeno, da bomo s takšnim pristopom našli vse slike v bazi, saj so opisi
ljudi subjektivni in posledično različni od človeka do človeka. Zaradi tega se zanimanje za
sisteme CBIR povečuje iz dneva v dan.
Ti sistemi so uporabni zlasti na področjih, kot so:
zbirke umetnin,
arhivi slik,
medicinske slike,
preprečevanje zločina,
vojska in
intelektualna lastnina.
Zaradi vedno večje popularnosti in potrebe sistemov CBIR obstaja ţe kar nekaj
iskalnikov s tem sistemom. Da naštejemo samo nekatere:
Bing Image Search,
Elastic Vision,
Google Image Search (poleg iskanja glede na metapodatke
ponuja še druge moţnosti, kot so poudarek na določeni barvi,...),
TinEye.
-
11
Odprtokodni projekti na tem področju so:
Anaktisi,
FIRE,
GNU Image Finding Tool,
ImgSeek.
2.1 Izbira značilk
Iskalniki, temelječi na metapodatkih, uporabljajo za iskanje in identifikacijo slik
njihove opise. Sistemi CBIR iščejo slike glede na njihovo vsebino in zatorej potrebujejo
drugačne značilke. Izbira le-teh je lahko zahteven in dolgotrajen postopek. Slabo izbrane
značilke lahko imajo negativen učinek in lahko uspešno iskanje slik oteţijo ali celo
popolnoma onemogočijo.
Predvsem v sistemih, temelječih na samoorganizirajočih mreţah, je izredno
pomembno, da so značilke pravilno izbrane ter definirane v pravem intervalu.
Samoorganizirajoča mreţa uredi vektorje, ki so ji med postopkom učenja na voljo. Čim bolj
so si vektorji med seboj podobni, tem teţje jih mreţa pravilno uredi. Zato je pomembno, da za
določeno značilko izberemo najmanjši interval, ki ravno še obsega vse moţne vrednosti te
značilke. Tako bodo vrednosti porazdeljene po celotnem intervalu in se bodo od vektorja do
vektorja kar najbolj razlikovale. Če, na primer, vzamemo histogram nasičenosti poljubne
slike, bi izbira intervala [0, 2.0](slika 2.1b) dala slabše rezultate pri razlikovanju posameznih
slik kot izbira intervala [0, 1.0] (slika 2.1a) .
Slika 2.1: Histogram nasičenosti: a) interval [0, 1], b) interval [0, 2]
-
12
Izbira značilk je v prvi vrsti odvisna od namena uporabe sistema CBIR. V primeru
prepoznave obrazov se na primer uporabljajo vse obrazne značilke, ki se jih da pridobiti iz
slike. Če baza vsebuje slike, ki vsebujejo objekte ter statično in monotono ozadje, se bo
najbolje obnesla oblika. Slike, ki prikazujejo naravo, imajo večino informacij zdruţenih v
barvah in teksturi. Umetniška dela kaţejo svoje lastnosti v teksturi (predvsem, če je večina del
abstraktnih).
Pri splošnonamenskih sistemih CBIR se kot značilke večinoma uporabijo vizualne
značilnosti niţje ravni, to so barva, tekstura ter oblika. Barva je značilnost, ki jo je najlaţje
predstaviti. Ko enkrat izberemo primeren barvni prostor, lahko le tega predstavimo v obliki
barvnega histograma. Histogrami se dajo enostavno pretvoriti v vektorje, primerne za mreţo.
Kot barvni prostor se velikokrat najbolje obnese prostor HSV, saj hrani svetilnost v ločenem
kanalu.
Tekstura je teţje predstavljiva. Dolgo časa so ljudje uporabljali za opis teksture
besede, kot so gladkost, grobost, lesena tekstura,... (slika 2.2). To pa seveda v računalniškem
svetu ne koristi kaj veliko. Skozi čas so se razvile različne metode za pridobivanje in opis
značilnosti tekstur, ki jih bomo opisali v podpoglavju 3.2. Te metode so:
statistične metode, ki označujejo teksture z uporabo statističnih lastnosti sivin
posameznega piksla. Večinoma se za to uporabijo matrika sopojavljanja (co-
occurence matrix), Tamurine značilke teksture in valjčna pretvorba površja.
strukturne metode, ki karakterizirajo strukturo kot skupek primitivnih strukturnih
objektov, imenovanih tekseli ali teksturni elementi. Ti so porazdeljeni po površju
glede na izbrano pravilo o razvrščanju.
spektralne metode, ki temeljijo na lastnostih Fourierovega prostora ter opišejo
teksturo na globalnem nivoju s pomočjo območij visoke energije. Povedano drugače,
opišejo teksturo s tem da beleţijo hitre spremembe v nivojih sivine.
-
13
Slika 2.2: Primerjava različnih slik. Razlika/podobnost struktur je najbolj opazna pri
sivinskih predstavitvah slik
-
14
Velikokrat slike vsebujejo objekt, postavljen pred statičnim ozadjem. Pri takšnih
slikah lahko objekt enostavno izločimo. V teh primerih se oblika izkaţe kot primerna značilka
za uporabo v sistemih CBIR. Opis oblike lahko temelji na podlagi celotnega področja, ki ga
objekt zaseda ali pa na podlagi roba objekta. Če upoštevamo samo rob, obravnavamo samo
piksle, ki predstavljajo obrobo objekta (slika 2.3a), če pa upoštevamo celotno področje
objekta, pa obravnavamo vse piksle, ki predstavljajo objekt (slika 2.3b).
Slika 2.3: Opis oblike glede na rob (a) in glede na celotno področje (b)
Matematično lahko opišemo obliko na več načinov [splet 1]:
Glede na rob :
mnogokotniški modeli, meja ločevanja,
Fourierovi deskriptorji,
krivulje, konstrukti višjega reda,
modeli ukrivljenosti.
Glede na celotno področje :
superkvadriki (superquadrics),
Fourierovi deskriptorji,
implicitni polinomi (implicit polinomials),
Blumova okostja.
2.2 Osnovni algoritem delovanja sistemov CBIR
Obstaja veliko različnih sistemov CBIR, ki vsak zase sluţijo točno določenemu
namenu. Zaradi tega so pri vsakem od teh sistemov prisotni tudi različni algoritmi. Kljub
njihovim mnogim razikam v osnovi vsi algoritmi sledijo točno določenem postopku, ki na
koncu privede do ţelenih rezultatov.
-
15
Prvi korak smo ţe spoznali. To je izbira in izločanje značilk, ki natančno opredeljujejo
pripadajočo sliko in se od slike do slike kar najbolj razlikujejo. Za vsako sliko v bazi se te
značilke izločijo ter shranijo v bazo. Seveda so povezane s svojo pripadajočo sliko. Ta korak
omogoča enkratno izločevanje slik, kar pri iskanju močno pohitri celoten postopek. Pri večini
sistemov CBIR je ta korak zadnji, preden se lahko prične iskanje po bazi.
V našem primeru smo dodali še en korak. To je učenje samoorganizirajoče mreţe.
Učenje traja točno določeno število iteracij. To število določi administrator baze. Na začetku
vsako značilko preoblikujemo v vektor, ki ga še normaliziramo. Nato se v vsakem koraku
naključno izbere vektor značilk, kateremu primerno mreţa preoblikuje uteţi nevronov. Po
koncu učenja se vsem slikam v bazi priredijo koordinate pripadajočih nevronov. S tem še
dodatno pohitrimo kasnejše iskanje po bazi slik.
Sedaj se lahko prične učenje. Večina sistemov CBIR pri iskanju uporabi isti način.
Uporabnik poda sliko, ki je podobna tisti, ki jo išče. Nato sistem izloči značilke iz podane
slike. V nadaljevanju gre skozi vso bazo slik ter izračuna podobnost med slikami. Oceno
podobnosti dobi iz evklidske razdalje (enačba 2.1) med vektorjem značilk podane slike ter
vektorjem značilk slike v bazi. Če izračunana razdalja ne preseţe določene meje, sistem sliko
vključi v rezultat iskanja. Ker so vse značilke slik ţe izločene ter shranjene v bazi, postopek
iskanja poteka veliko hitreje.
(2.1)
V našem primeru iskanje poteka malo drugače. Uporabnik poda sliko, ki je podobna
slikam, ki jih išče. Sistem nato izloči vektor značilk, ga normalizira ter poišče pripadajoči
nevron. Ko enkrat dobimo koordinate pripadajočega nevrona, gremo samo še skozi vse slike v
bazi ter vsako sliko, ki pripada istem nevronu, vključimo v rezultat iskanja. Ker za vsako sliko
v bazi shranimo koordinate pripadajočega nevrona, poteka iskanje hitreje kot pri standardnih
sistemih CBIR. Poleg tega nam ni treba za vsako sliko shraniti značilk, saj za uspešno
poizvedbo potrebujemo samo koordinate pripadajočega nevrona. Algoritem 2.1 prikazuje
psevdokod tega postopka.
-
16
SLIKE = vektor slik v bazi
MEJA = minimalna meja podobnosti slik
function zberiZnacilke
FOR i=0;i
-
17
3. Opis značilk
3.1 Barva
Barva je zelo pomemben faktor prepoznavanja slike, saj ljudem omogoča enostavno in
hitro razpoznavanje vsebine slike. Barve uporabljamo vsak dan, da lahko razlikujemo med
objekti, prostori, različnimi časi v dnevu,...
Barvo večinoma definiramo s tridimenzionalnimi barvnimi modeli. Najpogostejša
izmed njih sta modela RGB (»red-green-blue«) ter CMY (»cyan-magenta-yellow«) oziroma
CMYK (»cyan- magenta-yellow-black«). Razlika med CMY in CMYK je edino v dodani črni
barvi.
Poleg modela RGB bomo imeli natančnejši vpogled v modela HSV (»hue-saturation-
value« ter HLS (»hue-luminosity-saturation«), ki sta v aplikacijah najbolj pogosto
uporabljena. Ti dve temeljita na človekovem zaznavanju odtenka, nasičenosti ter svetlosti.
3.1.1 Barvni model RGB
Barvni model RGB je izmed vseh najbolj uporabljen ter najbolj poznan. Kratica
prikazuje prve črke osnovnih treh barv. Vsaka od teh barv lahko zasede 256 različnih
vrednosti, kar v kombinaciji znaša okoli 16.000.000 barv. Tako na primer vrednost (0,0,0)
predstavlja črno barvo, (255,255,0) pa rumeno. Vse barve v barvnem modelu RGB
predstavimo v kocki (slika 3.1), vsaka os predstavlja eno izmed treh osnovnih barv.
V barvnem modelu RGB svetlosti ne ločujemo od ostalih kanalov, kar ima za
posledico velike spremembe med načeloma istimi barvami. Zaradi tega ta model tudi ni
najbolj primeren za obdelavo v sistemih CBIR. Kot rešitev se tukaj ponudi normiran barvni
model RGB. Le-ta v osnovi ni model, ki ga bi obravnavali samega zase, temveč je sestavljen
zlasti iz vrednosti RGB, ki smo jih normirali. Enačbe 3.1 prikazujejo pridobivanje normiranih
vrednosti modela RGB.
(3.1)
-
18
Slika 3.1: Predstavitev barvnega modela RGB
3.1.2 Barvna modela HLS ter HSV
HLS in HSV sta najbolj uporabljena barvna modela v aplikacijah. Razvita sta bila v
sedemdesetih letih. Modela HSV in HLS sta sestavljena iz treh koordinat/kanalov. Prvi kanal
je barvni ton (hue), drugi je nasičenost (saturation), tretji pa pomeni pri vsakem izmed
obravnavanih prostorov nekaj drugega. V modelu HLS tretji kanal predstavlja svetlost
(lightness), medtem ko v modelu HSV predstavlja vrednost (value). Redko se namesto oznake
HSV uporablja oznaka HSB, kjer je B oznaka za svetlost (brightness).
Barvni ton predstavlja kotno dimenzijo tako modela HSV kot HLS. Pri 0° se nahaja
rdeča barva, pri 120° zelena barva, pri 240° modra barva. Nasičenost predstavlja razdaljo od
središča do roba valja. Bliţje je nasičenost središču valja, manj nasičena je določena barva.
Vrednost nasičenosti poteka od 0, kar pomeni, da barva sploh ni nasičena, do vrednosti 1, kar
predstavlja popolnoma nasičeno barvo. Svetlost predstavlja višino valja. Niţja je svetlost,
temnejša je barva. Valja za HLS in HSV sta prikazana na slikah 3.2a in 3.2b.
Če nasičenost nadomestimo z barvitostjo (chrominance), lahko namesto valja
predstavimo celoten barvni model v obliki stoţca (HSV) ali dvojnega stoţca (HLS).
Predstavitev z barvitostjo prikazujeta sliki 3.3a in 3.3b .
-
19
Slika 3.2: a) Barvni model HLS, b) Barvni model HSV
Slika 3.3: a) Barvni model HLS, b) Barvni model HSV
Barvna modela HSV ter HLS sta primerjenjša za uporabo v sistemih CBIR, saj se
prilagajata človeški zaznavi barv. Osvetlitev je ločena od nasičenosti ter barvnega odtenka,
kar poveča uspešnost primerjav istih barv. Barvni prostor RGB ni najbolj primeren za izračun
evklidske razdalje. Modela HSV ali HSL se tukaj izkaţeta veliko primernejša. Poleg tega
lahko tukaj izločimo faktor osvetlitve in s tem omogočamo primerjavo barv neodvisno od
svetlobnih virov.
-
20
3.1.3 Barvni histogram
Uporaba barve kot značilke v sistemih CBIR naj bi uporabnikom olajšala ter pohitrila
iskanje slik, saj ljudje barvo uporabljajo kot eno izmed glavnih značilnosti pri prepoznavi
različnih objektov ter okolja. Spoznali smo ţe, da je najbolje uporabiti barvna modela HLS ali
HSV, saj se bolje prilagajata zaznavanju barv kot barvni model RGB. Ugotoviti še moramo,
kako barve v sliki prikaţemo kot vektor značilk, ki ga lahko nato uporabimo pri izračunu
evklidske razdalje. V primeru, da bi vzeli vsak piksel slike, bi velikost vektorja zdaleč
presegla velikost računalniškega spomina. In tudi če bi se izšlo, bi iskanje slik ne potekalo v
realnem času. Slika velikosti 500 x 500 točk, bi bila vezana na vektor dolţine 500 x 500 x 3
vrednosti, to je 750.000 koordinat. Izračun evklidske razdalje bi zatorej trajal predolgo.
Kot rešitev se tukaj ponudi histogram. Po definiciji je histogram stolpični graf za
porazdelitev pogostosti oziroma frekvence neke spremenljivke, pri katerem je širina stolpcev
sorazmerna številu razredov, v katere porazdelimo vrednosti. Višina vsakega stolpca je
sorazmerna frekvenci razredov [splet 1]. Celotni spekter določenega kanala razdelimo torej v
določeno število razredov ter nato za vsak piksel določimo, v kateri razred spada. Na koncu
dobimo za vsak razred število pikslov, ki mu pripadajo. Histogram barvnega modela slike je
prikazan na sliki 3.4 . Te vrednosti predstavljajo razmerja pikslov slike, ki se lahko uporabijo
za uporabo v vektorju značilk. Če bi na primer vzeli 50 razredov, bi vsak razred predstavljal
piksle, ki se med seboj razlikujejo za največ 7.2 stopinj (barvni odtenek) oziroma 0.02
(nasičenost ter svetlost oziroma vrednost). Tako bi dobili 150 vrednosti (3 krat po 50
vrednosti), kar je primerneje za izračun evklidske razdalje.
Histogram je rotacijsko neodvisen. Vseeno, v katero smer in za koliko stopinj
zasučemo sliko, vedno dobimo isti histogram. Rotacijska neodvisnost je v sistemih CBIR
mnogokrat zaţelena lastnost.
Zgodi se, da histogram celotne slike (globalni histogram) ne zadošča, ker vsebuje
premalo informacij o sliki. Pove nam razmerje pikslov, ne pove nam pa nič o lokaciji le-teh.
V tem primeru lahko uporabimo lokalne histograme. Le-ti so običajni histogrami, ki se
prilegajo samo določenemu delu slike. Lokalne histograme dobimo tako, da razdelimo sliko
na več delov (jo razreţemo) ter za vsak dobljen del izračunamo histogram. Tak pristop
posreduje veliko več informacij o sliki, vendar s tem izgubimo lastnost rotacijske
neodvisnosti. Poleg tega se poveča število spremenljivk.
Izbira območij za lokalne histograme je povsem odvisna od implementacije sistemov
CBIR. Najpogostejši in najenostavnejši način je, da sliko razreţemo na enake dele/podslike.
Lokalni histogrami tako obravnavajo enako velike dele slik (slika 3.5). Drugi način bi bil, da
-
21
sliko razdelimo na smiselne podenote. Iz slike izločimo objekte ter ozadje, nato izračunamo
histogram za vsak objekt ter ozadje posebej (slika 3.6). Tak način je kompleksnejši, vendar
daje boljše rezultate.
Slika 3.4: Prikaz histogramov za vsak kanal posebej: a) rdečega, b) zelenega ter c) modrega
-
22
Slika 3.5: Izračun lokalnih histogramov slike v barvnem prostoru HLS. Slika je
razdeljena na 16 podenot, vsak izmed lokalnih histogramov pa vsebuje 50
razredov. Vrednosti so normalizirane glede na največjo vrednost v
histogramu.
Slika 3.6: a) Objekt, ki ga izločimo, b) Histogram izločenega objekta
-
23
3.2 Tekstura
Teksturo definiramo na različne načine. V računalniškem smislu bi lahko teksturo
definirali kot lokalni opis lastnosti površine [splet 7].
Teksturo si lahko predstavljamo kot ponavljajoče si vzorce pikslov po prostoru, ki se
zaradi dodanega šuma ter frekvence ponavljanja lahko zdijo naključni, vendar niso. Struktura
vsebuje pomembne podatke o sliki. Značilke, dobljene iz teksture slike, bi torej predstavljale
fizično strukturo površja objekta, kar bi bilo pri prepoznavi in primerjavi različnih slik zelo
uporabno. Teksture slik so si lahko med seboj zelo različne ali dokaj podobne.
Tekstura lahko ponazarja:
grobost površine,
kontrast,
usmerjenost,
podobnost linij,
pravilnost površine in
hrapavost površine
Tekstura je najpomembnejša nizkonivojska lastnost slike. Trenutno obstajajo trije
načini opisa teksture [splet 2]:
statistične metode,
strukturne metode in
spektralne tehnike.
Ker smo v našem sistemu CBIR uporabili samo matriko sopojavljanja, bomo opisali samo
strukturne metode.
3.2.1 Statistične metode
V osnovi poznamo tri statistične metode za pridobivanje teksturnih značilk: matriko
sopojavljanja, teksturne lastnosti Tamure (Tamura texture features) ter valjčno transformacijo.
a) Matrika sopojavljanja
Predlagal jo je R. M. Haralick [splet 1]. V teksturi matrika medsebojnih pojavov
opisuje lokacijsko neodvisnost nivojev sivin. Matriko lahko opišemo na naslednji način:
-
24
Imejmo operator sosednosti P. Le-ta določa enostavno medsebojno odvisnost dveh
pikslov glede na pozicijo v sliki, recimo »je nad« ali »je dve mesti pod in eno levo«. V našem
primeru smo definirali operator s kotom ter oddaljenostjo (slika 3.7). V matriki A element ai,j
predstavlja število pojavitev, pri kateri v obravnavani sliki piksel z intenziteto enako i ter
piksel z intenziteto enako j ustrezata izbranemu operatorju lokacije.
Sedaj izračunamo matriko C tako, da vsak element matrike A delimo s številom vseh
pojavitev, ki ustrezajo izbranemu operatorju lokacije. Tako sedaj vsak element matrike C, ci,j
ustreza verjetnosti, da bo par izbranih pikslov, ki ustrezajo operatorju sosednosti P, imel
intenziteti i in j.
Matriki C pravimo matrika sopojavljanja (co-occurence matrix), definirana po pravilu
P. Slika 3.8 prikazuje izračun matrike medsebojnih pojavov nad sliko velikosti 4 x 5 z nivoji
sivine, ki segajo od 0 do 8. Operator sosednosti je tukaj definiran z razdaljo 1 ter kotom 0°.
Ko enkrat izračunamo matriko pojavov, moramo iz nje izločiti smiselne statistike, ki
jih lahko uporabimo v vektorju značilk, saj je matrika še vedno prevelika za uporabo v tak
namen. Poleg tega so si različne matrike med seboj preveč podobne, saj velikokrat predstavlja
več kot pol elementov ničle.
Definicijo matrike medsebojnih pojavov lahko opišemo tudi z enačbo. Če sosednostni
operator P smatramo kot premestitev, potem je definicija matrike sopojavljanja enačba 3.2:
(3.2)
Tukaj je I slika, ki jo obravnavamo, t pa translacija, ki preslika piksel v njegovega
soseda po operatorju P.
Ponavadi kot značilke uporabimo naslednje lastnosti:
energija:
(3.3)
inverzni diferenčni moment:
(3.4)
-
25
entropija:
(3.5)
kontrast:
(3.6)
Te izračunane statistike so primerne za uporabo v vektorjih značilk. S spreminjanjem
lokacijskega operatorja lahko za isto sliko dobimo več različnih matrik medsebojnih pojavov.
Če za vsako takšno matriko izračunamo njene statistike, lahko samo na podlagi teksture
izdelamo ţe dokaj zanesljiv sistem CBIR.
Slika 3.7: Definicija operatorja sosednosti med piksli.
b) Teksturne značilke Tamure
S preučevanjem psiholoških študij človeškega vidnega zaznavanja je Tamura omejil
predstavitev teksture na tri osnovne lastnosti [splet 1]:
grobost: ta lastnost je v bistvu merilo razdrobljenosti slike. Izračuna se s povprečenjem
velikosti območij slike, ki imajo enako intenziteto.
kontrast: je meritev slikovitosti teksture. Poleg tega vplivajo na kontrast še razlike v
intenziteti med sosednjimi območji.
-
26
usmerjenost: je meritev usmerjenosti sivinskih vrednosti znotraj slike.
Zaradi enostavnosti in majhne zahtevnosti izračuna značilk je ta pristop zelo pogosto
uporabljen v sistemih CBIR.
Slika 3.8: Prikaz izračuna matrike medsebojnih pojavov. Uporabljen je bil operator »eno v
levo« oz. operator z razdaljo 1 in kotom 0°
c) Valjčna transformacija
Tekstura predstavlja ponavljajoč se vzorec, ki se lahko predstavi s pomočjo prostora
in frekvence. Definirajmo najprej frekvenco slike. Frekvenca je po definiciji število ponovitev
v določeni časovni enoti. Pri signalih nam frekvenca pove, če je določen sinusni signal
prisoten v obravnavanem signalu. Slike lahko obravnavamo kot dvo-dimenzionalne signale.
Pri preoblikovanju signala iz časovnega v frekvenčni prostor dobimo informacijo o tem katere
frekvence oziroma sinusni signali so v obravnavanem signalu prisotni. Če sedaj namesto časa
vzamemo prostor, lahko sliko obravnavamo kot katerikoli drugi signal. Pretvorba v
frekvenčni prostor je torej moţna tudi pri slikah.
S takšno pretvorbo ţal lahko dobimo samo frekvenčno karakteristiko slike in ne
prostorske. Tukaj se izkaţe valjčna transformacija kot uporabno orodje, s katerim lahko
pridobimo informacije tako o frekvenčni kot tudi prostorski karakteristiki. Za razliko od
Fourierove transformacije, kjer uporabljamo sinusne funkcije, pri valjčni transformaciji
-
27
uporabljamo funkcije, imenovane valjčni elementi [splet 9]. Valjčni elementi so končni v
času, vendar je povprečna vrednost teh funkcij vseeno enaka nič. Lahko bi rekli da so valjčni
elementi vezani tako na frekvenco kot na trajanje (čas, v našem primeru pa prostor). To
odločno pomaga pri razdelitvi signalov, saj je večina realnih signalov (slike, glasba) končnih
in lahko vsebujejo hitre spremembe v frekvenci. Valjčna transformacija pretvori signal v
zaporedje valjčnih elementov, ki so končni in zaradi tega bolje aproksimirajo realne signale.
Če bi v tem primeru uporabili Fourierovo transformacijo, ki signale obravnava kot eno
periodo neskončnega zaporedja, bi za razdelitev signalov morali uporabiti okna, ki dobljen
odsek signala na robovih popačijo. Najbolj uporabljeni druţini valjčnih funkcij sta Haarova
(sika 3.9a) ter Daubechiesova skupina (slika 3.9b).
Kot metoda za izločanje značilk teksture se najpogosteje uporabi piramidna valjčna
transformacija (pyramid-structured wavelet transform). Tukaj se slika razdeli s pomočjo
valjčne transformacije (večinoma se uporabljajo Daubechiesovi valjčni elementi) na 4
podslike, v nizko-nizke, nizko-visoke, visoko-nizke ter visoko-visoke podpasove. Sedaj se
izračunajo energijske vrednosti vsakega dobljenega pasu. V nadaljevanju se uporabi nizko-
nizek pas za nadaljno razgradnjo. Nizko-nizek pas se uporabi zaradi osnovne predpostavke,
da se energija slike osredotoča ravno v tem pasu. Kot značilke se uporabijo izračunane
energijske vrednosti podpasov. Primer prikazuje slika 3.10.
Slika 3.9: Haarov (a) ter Daubechiesov (b) valjčni element
-
28
Slika 3.10 : Primer dvo-stopenjske valjčne transformacije nad sliko. Takšen pristop je
uporabljen tudi znotraj formata JPEG2000.
3.3 Oblika
Ljudje prepoznavajo slike po obliki predmetov v njej. To je razlog zakaj je oblika
pomembna v sistemih CBIR, saj sistemom omogoča, da se osredotočijo na regije, ki so pri
določenem iskanju pomembne. Če bo uporabnik iskal slike, ki vsebujejo avto določene barve
in tipa, ga ne bo zanimalo ozadje, oziroma prostor, kjer se je avto nahajal, ko je bil slikan. Pri
obdelavi slik je oblika binarna slika, ki jo omejuje kontura ali obris, potem ko smo sliko
segmentirali. Oblika se lahko izkaţe za zelo uporabno v sistemih CBIR, kadar imamo opravka
s slikami, ki v osnovi predstavljajo objekte pred statičnim ozadjem. Tukaj je segmentacija
slike hitra in učinkovita. Pri sistemih CBIR, ki imajo opravka s heterogeno bazo, je
segmentacija slik zelo oteţena, če ne nemogoča.
Značilke oblik so kategorizirane glede na tehnike, s katerimi jih pridobimo. Poznamo:
značilke, temelječe na meji oziroma robu in
-
29
značilke, temelječe na regiji oziroma celotnem področju.
Razlika med njima je, da značilke, temelječe na meji, zajamejo informacije o zunanji
karakteristiki določene oblike kot, na primer, informacije o pikslih, ki sestavljajo rob objekta.
Značilke, temelječe na regiji, zajamejo informacije o celotni regiji objekta, to so informacije o
pikslih, ki sestavljajo notranjost objekta. Enostavne značilke oblike so, na primer, območje
(area), perimeter, kompaktnost (compactness), ekscentričnost (eccentricity), raztezek
(elongation) ter orientacija (orientation).
Značilke, temelječe na meji so, na primer, mnogokotniški modeli, meja ločevanja,
Fourierovi deskriptorji, krivulje in konstrukti višjega reda ter modeli ukrivljenosti.
Značilke, temelječe na regiji, pa so med drugimi superkvadriki (superquadrics),
Fourierove opisnice, implicitni polinomi, Blumova okostja.
-
30
4. Kohonenova samoorganizirajoča mreţa
Kohonenova samoorganizirajoča mreţa je vrsta umetne nevronske mreţe, ki s
pomočjo nenadzorovanega učenja ustvari niţje nivojsko predstavitev vhodnega prostora učnih
primerov. Na sliki 4.1a je prikazan vhod, ki smo ga podali Kohonenovi nevronski mreţi, na
sliki 4.1b pa urejen izhod mreţe. Od navadnih nevronskih mreţ se razlikuje predvsem v tem,
da uporabi funkcijo sosedstva v namen ohranjanja topoloških lastnosti vhodnega prostora. Je
izredno učinkovita pri vizualizaciji višjenivojskih prostorov ter zdruţevanju podatkov v
skupine. V našem primeru smo uporabili lastnost zdruţevanja podatkov v skupine. V tem
poglavju bomo na kratko predstavili osnove nevronskih mreţ ter podrobneje opisali
Kohonenovo samoorganizirajočo mreţo, njeno zgradbo in delovanje.
Slika 4.1: Primer delovanja samoorganizirajoče mreţe: a) naključno ustvarjeni vhodni
podatki, b) urejen izhodni prostor
4.1 Nevronske mreže
Moţgani so najkompleksnejša nam poznana biološka struktura. Današnji računalniki
se po zmogljivosti ne morejo v marsikateri nalogi kosati z zmogljivostjo človeških moţganov.
Njihovo delovanje je malo raziskano. Trenutno poznamo samo osnove, na katerih naj bi
delovanje moţganov potekalo. Na teh osnovah temeljijo tudi umetne nevronske mreţe.
Nevronska mreţa je programska struktura, ki simulira osnovno delovanje moţganov in
s tem pripomore k učinkovitejšemu reševanju problemov. Podobno kot so biološke nevronske
mreţe sestavljene iz bioloških nevronov, ki so medsebojno povezani v periferni ţivčni sistem,
-
31
so umetne nevronske mreţe skupek medsebojno povezanih umetnih nevronov. Umetni nevron
je informacijsko procesna enota, ki iz vhodnih vrednosti s pomočjo pragovne funkcije
izračuna izhodne vrednosti.
Nevron sprejme določeno število vhodnih vrednosti. Vsak vhod je vezan na svojo
uteţno vrednost, imenovano uteţ. Uteţi nevrona so bistvenega pomena, saj je obnašanje
nevronske mreţe v celoti odvisno samo od njih. Vsota uteţenih vhodov se nato uporabi v
aktivacijski funkciji nevrona, ki izračuna njegov izhod.
Poznamo različne aktivacijske funkcije [Guid, 2007]:
pragovna funkcija (Pozna samo dve obliki izhoda, 0 in 1),
odsekovna linearna funkcija in
sigmoidna funkcija (je najbolj uporabljena oblika aktivacijske funkcije).
Poznamo tri tipe sigmoidne funkcije:
- logistična funkcija,
- funkcija signum (je v bistvu predznačena pragovna funkcija) in
- funkcija hiperbolični tangens.
Vsaka nevronska mreţa, brez izjeme, pozna dve fazi delovanja. Prva faza se imenuje
faza učenja in predstavlja dolgotrajen proces prilagajanja uteţi nevronov, tako da na koncu
dobimo ţeljeni rezultat. Poznamo različne vrste algoritmov učenja, najbolj poznani in
uporabljeni so:
učenje s popravljanjem napake,
Hebbovo učenje,
tekmovalno učenje in
Boltzmannovo učenje.
Pri nevronskih mreţah se uporabljajo tudi različne paradigme učenja, kot so na primer:
nadzorovano učenje,
samoojačitveno (reinforcement) učenje in
samoorganizirajoče oziroma nenadzorovano učenje.
Ker je poudarek tega dela na Kohonenovih samoorganizirajočih mreţah, bomo opisali
zgolj tekmovalno in nenadzorovano učenje.
Ko enkrat naučimo nevronsko mreţo s pomočjo izbranih algoritmov, preidemo v
drugo fazo, to je delovanje mreţe. Tukaj nevronski mreţi podamo vhodni vektor, ta pa nam
vrne ustrezen rezultat.
-
32
Tekmovalno učenje je najprimernejše za klasifikacijo mnoţice vhodnih vzorcev, saj je
lahko za razliko od ostalih načinov učenja naenkrat aktiviran le en izhodni nevron. Pri tem
učenju izhodni nevroni med sabo tekmujejo, kateri bo aktiven. Nevron bo zmagovalni, če bo
njegova aktivnost pri določenem vhodnem vzorcu izmed vseh nevronov največja. Takrat se
izhod tega nevrona postavi na 1, izhodi vseh ostalih nevronov iste plasti pa na 0.
Če pri določenem vhodnem vzorcu nevron ne zmaga, se ne zgodi nič. V nevronu za ta
učni vzorec ne bo potekal proces učenja. Če je nevron zmagovalen, vsakemu vhodnemu
vozlišču odtegnemo del uteţi, seštevek pa se nato porazdeli med aktivna vhodna vozlišča.
Zmagovalni nevron se torej uči tako, da povečuje uteţi svojih aktivnih vhodnih vozlišč.
Tekmovalno učenje ponavadi kombiniramo z nenadzorovanim učenjem. Za razliko od
nadzorovanega učenja, kjer poleg vhodnih podatkov nevronski mreţi podamo tudi ţelene
izhodne podatke, pri nenadzorovanem učenju slednjih ne podamo. Pri tej paradigmi učenja so
torej vhodni podatki hkrati ciljni. Nevronska mreţa, ki jo poskušamo učiti s pomočjo
nenadzorovanega učenja, se nauči odzivati na različne vhodne podatke z različnimi deli
mreţe.
Primer tekmovalnega in nenadzorovanega učenja bomo obravnavali pri Kohonenovi
samoorganizirajoči mreţi.
4.2 Zgradba samoorganizirajoče mreže
Vsaka podvrsta nevronskih mreţ ima drugačno zgradbo. Samoorganizirajoča mreţa
tukaj ni izjema. Sestavljena je iz ene (Kohonenova mreţa) ali dveh plasti nevronov (Willshaw
– von der Marburg). Samoorganizirajoče mreţe z več plastmi skoraj ne zasledimo. Tudi
slednji model je redek. Najpogostejši model samoorganizirajoče mreţe je Kohonenova mreţa.
Zgrajena je iz vhodnih vozlišč, ki predstavljajo elemente vhodnega vektorja, ter plasti
nevronov, ki predstavljajo mreţo (slika 4.10). Vsak nevron je povezan na vhodna vozlišča.
Med nevroni v isti plasti povezav ni. Topologija nevronov je odvisna od tipa problemov, ki jih
naj rešuje nevronska mreţa, in je ponavadi enodimenzionalna (slika 4.11) ali
dvodimenzionalna (slika 4.10). Tri ali večdimenzionalne nevronske mreţe so zelo redke. Med
dvodimenzionalnimi samoorganizirajočimi mreţami sta najpogostejši štirikotna ter
šesterokotna topološka ureditev (slika 4.12).
Nevron samoorganizirajoče mreţe se od nevronov drugih nevronskih mreţ razlikuje v
tem, da za določanje izhoda ne uporablja ne praga in ne aktivacijske funkcije, temveč se izhod
nevrona izračuna kot razdalja med vhodnim ter uteţnim vektorjem. Najpogostejša funkcija za
-
33
računanje razdalje med tema dvema vektorjema je evklidska razdalja. V redkih primerih, kjer
je potrebna prirejena oblika samoorganizirajoče mreţe, kot na primer pri zaznavanju obrazov,
se uporabi tudi Mahalanobisova razdalja, ki jo poznamo iz statistike in jo je leta 1936
predstavil Prasanta Chandra Mahalanobis [splet10].
Nevroni se nato naučijo prepoznavati točno določene vhodne vzorce. Če bo torej
izračunana razdalja med vektorjema med vsemi nevroni minimalna, se bo določen nevron
aktiviral.
Slika 4.10: Standardna dvodimenzionalna samoorganizirajoča mreţa
-
34
Slika 4.11: Enodimenzionalna Kohonenova mreţa
Slika 4.12: Topološka ureditev nevronov v plasti: a) štirikotna,
b) šesterokotna
4.3 Delovanje samoorganizirajoče mreže
Kohonenova samoorganizirajoča mreţa se izkaţe kot močno orodje za vizualizacijo
podatkov višjih dimenzij, stiskanje podatkov ter klasifikacijo vzorcev. Kot vsako nevronsko
mreţo pa jo moramo pred uporabo naučiti. Kohonenova mreţa pozna torej dve fazi:
fazo učenja in
fazo delovanja.
-
35
4.3.1 Učenje Kohonenove mreže
Samoorganizirajoča mreţa je sestavljena iz ene plasti nevronov, ponavadi
organiziranih v eno ali dvodimenzionalno obliko (slika 4.10 in 4.11). Obstajajo primeri, kjer
je plasti več, vendar so ti vezani na bolj specifične probleme, pri katerih je bila potrebna
optimizacija nevronske mreţe, kot na primer TS-SOM (tree structured self organizing map).
Dimenzija vhodnih podatkov mora biti poznana, preden se mreţa ustvari. Uteţi
nevronov se najpogosteje inicializirajo na naključne vrednosti med 0 in 1. V določenih
primerih, predvsem kadar je ţelen rezultat ţe poznan, se uteţi nevronov inicializirajo tako, da
se kar najbolj pribliţajo ţelenim rezultatom. V praksi se pri poznanih vhodnih podatkih uteţi
nevrona inicializirajo na vrednosti naključno izbranega vektorja iz vhodnih podatkov.
Medtem ko v teoriji pričakujemo, da bodo vhodni podatki imeli dokaj enakomerno
porazdeljene vrednosti, v praksi ni tako. Zato moramo vhodne podatke, preden jih lahko
uporabimo v samoorganizirajoči mreţi, normalizirati. Normalizacija podatkov poteka
enostavno tako, da vsak podatek preoblikujemo po enačbi 4.7:
(4.7)
Vrednost vnorm predstavlja normalizirano vrednost, vmin oziroma vmax pa minimalno in
maksimalno vrednost spremenljivke v.
Ko je mreţa enkrat inicializirana, se prične proces učenja. Učenje mreţe je
nenadzorovano in tekmovalno. Skozi določeno število iteracij se uteţi nevronov prilagodijo
tako, da kar najbolj ponazarjajo vhodne vektorje, katerim so prirejeni.
Proces učenja v vsaki iteraciji delimo na več korakov :
a) tekmovalni proces,
b) kooperativni proces in
c) adaptivni proces.
Algoritem 4.1 predstavlja psevdokod ene iteracije učenja samoorganizirajoče mreţe.
-
36
VHODNI_PROSTOR = prostor vseh vhodnih podatkov
NEVRONI = nevroni samoorganizirajoče nevronske mreţe
Nakljucni_vektor = Naključna_izbira( VHODNI_PROSTOR )
Minimalna_razdalja = NESKONČNO
FOR i=0;i
-
37
(slika 4.13). V primeru, da v procesu najdemo več nevronov, ki ustrezajo temu pogoju in
imajo enako razdaljo do vhodnega vektorja, se BMU izbere naključno med njimi. Zmagovalni
nevron se uporabi v ostalih procesih za posodabljanje dela nevronske mreţe.
Slika 4.13: Pri določenem vhodnem vektorju smo našli nevron BMU. Obarvan je
rumeno, njegovo sosedstvo rdeče ter vijolično.
Kot primer vzemimo naključno izbrani vektor p=[0,1,0]T (vektor predstavlja
normirano različico zelene barve). Našli smo dva nevrona, ki se najbolj prilagajata vhodnemu
vektorju. Nevron 1 ima uteţni vektor q=[0.5,1,0.5]T, nevron 2 pa uteţni vektor l=[0.1,1,0.1]
T.
Kot BMU bomo izbrali nevron 2, saj je njegova evklidska razdalja enaka:
,
kar je manj kot evklidska razdalja med vektorjema q in p, ki znaša 0.7071.
b) Kooperativni proces
Ko enkrat najdemo zmagovalni nevron ali BMU, se prične kooperativni proces. Če bi
spreminjali samo uteţi zmagovalnega nevrona, ne bi dosegli rezultatov, ki so smisel
samoorganizirajoče nevronske mreţe. Zato moramo poiskati še njegovo sosedstvo od BMU,
na katero zmagovalni nevron vpliva. Proces izhaja iz biološkega dejstva, ki pravi, da nevron,
ki se sproţi, vpliva na nevrone, ki so v neposredni oziroma bliţnji soseščini. Sosedstvo ob
pričetku učenja nastavimo na določeno vrednost, ponavadi je to kar premer očrtanega kroga
mreţe. Zanimivo pri tej vrsti nevronskih mreţ je, da se sosedstvo zmanjšuje skozi iteracije
-
38
učenja. Tako BMU vpliva na začetku učnega procesa skoraj na vse nevrone v mreţi, sčasoma
pa se sosedstvo zmanjšuje in nevronov, ki bi bili podvrţeni spremembam zaradi izbranega
BMU, je vse manj. Na koncu se sosedstvo zmanjša na samo en nevron, to je BMU. Sosedstvo
se skozi iteracije zmanjšuje po enačbi 4.8. Vrednost σ0 predstavlja sosedstvo ob pričetku
učenja, vrednost pa časovno konstanto. Vrednost λ se izračuna pred pričetkom učenja po
enačbi 4.9.
(4.8)
(4.9)
Kot nevrone znotraj soseske obravnavamo vse nevrone, ki so od nevrona BMU
oddaljeni za manj kot σt. Ko enkrat najdemo sosedstvo nevrona BMU, se prične zadnji proces
iteracije učenja samoorganizirajoče mreţe, to je adaptivni proces.
c) Adaptivni proces
V adaptivnem procesu se prilagajajo uteţi vseh nevronov, ki so obravnavani kot sosedi
zmagovalnega nevrona. Uteţi vsakega nevrona, ki je dovolj blizu nevrona BMU trenutne
iteracije, se nastavijo po enačbi 4.10:
(4.10)
V enačbi 4.10 predstavlja wt+1 uteţni vektor v naslednji iteraciji, wt je trenutni vektor
uteţi, vt pa predstavlja vhodni vektor, ki smo ga na začetku iteracije naključno izbrali.
Funkciji ter l imata posebno vlogo v tej enačbi. Funkcijo imenujemo sosednostna
funkcija, funkcijo l pa funkcijo hitrosti učenja. Smiselno je trditi, da vpliv zmagovalnega
nevrona ne bo enak za vse nevrone, ki spadajo v njegovo sosedstvo. Sosednostna funkcija
predstavlja stopnjo vpliva nevrona BMU na trenutno obravnavan nevron. Zmagovalni nevron
-
39
ima največji vpliv na njegove neposredne sosede, medtem ko nevroni na robu sosedstva vpliv
komaj zaznajo. Izbiramo lahko med več različnimi funkcijami sosednosti. Najpogosteje
uporabljene funkcije so:
mehurčna sosednostna funkcija (bubble function):
(4.11)
Gaussova sosednostna gunkcija (Gaussian function):
(4.12)
odsekovna Gausova sosednostna funkcija (Cut-Gaussian function):
(4.13)
Epanechnikova funkcija (Epanechnikov function):
(4.14)
V zgornjih enačbah predstavlja vrednost sosedstveno okolico v času t, vrednost dij
pa razdaljo med nevronoma i in j. Funkcija f predstavlja pragovno (stopničasto) funkcijo, ki
da naslednji rezultat:
(4.15)
Izbira različnih sosednostnih funkcij je odvisna od tipa problemov, ki ga hočemo rešiti
s pomočjo Kohonenove mreţe in ima različne vplive na končni rezultat. Najpogosteje izbrana
funkcija je Gaussova, saj daje najboljše rezultate. Slika 4.14 prikazuje razliko med Gaussovo
ter Epanechnikovo sosednostno funkcijo. Kot vhod je bil uporabljen barvni model RGB. Na
sliki 4.15 je prikazana sprememba vpliva na nevrone zaradi uporabe Gaussove sosednostne
funkcije. Na slikah vidimo izhode mreţe pri uporabi ene in druge sosednostne funkcije. Za
urejanje barv je primernejša Gaussova funkcija.
-
40
Slika 4.14: a) Epanechnikova sosednostna funkcija ter b) Gaussova sosednostna funkcija.
Slika 4.15: S pomočjo Gaussove sosednostne funkcije se vpliv na nevrone z
oddaljenostjo manjša
-
41
Hkrati lahko predvidevamo, da se vpliv vhodnih vrednosti skozi čas oziroma vsako
nadaljnjo iteracijo manjša. Tako so na začetku učenja spremembe uteţi večje in se
samoorganizirajoča mreţa močneje prilagaja vhodnim podatkom. Proti koncu učenja pa naj bi
bile spremembe še komaj prepoznavne, saj je urejanje ţe skoraj končano. To lastnost nam
omogoča funkcija hitrosti učenja. Ob pričetku učenja določimo začetno hitrost učenja,
ponavadi se ta vrednost giblje med 0.1 ter 0.5 . S pomočjo funkcije hitrosti učenja nato to
vrednost v vsaki iteraciji prilagajamo, tako da na koncu hitrost učenja ni večja od 0.01.
Najbolj uporabljene funkcije hitrosti učenja so:
linearna funkcija:
(4.16)
potenčna funkcija:
(4.17)
eksponentna funkcija:
(4.19)
Pri zgornjih enačbah predstavlja l0 začetno vrednost učenja, ki smo jo izbrali, vrednost
t je trenutna iteracija v kateri se nahajamo, vrednost T pa je število vseh iteracij.
Zadnja enačba namiguje, da je funkcija hitrosti učenja zelo podobna funkciji izračuna
sosednosti. Funkcije hitrosti učenja bi lahko uporabili tudi za izračun sosednosti, vendar se v
to nismo poglabljali. Slika 4.16 prikazuje primerjavo med različnimi funkcijami hitrosti
učenja. Primerjava je bila izvedena pri začetni hitrosti učenja 0.1, pričakovani končni hitrosti
učenja 0.01 ter številu iteracij 1000.
-
42
Slika 4.16: Primerjava različnih funkcij hitrosti učenja
Ti trije procesi predstavljajo osnovo učenja samoorganizirajoče mreţe. Učenje
ponavadi traja 1000 iteracij ali epoh. Po fazi učenja preidemo na fazo simulacije oziroma
delovanja samoorganizirajoče mreţe.
4.3.2 Delovanje Kohonenove samoorganizirajoče mreže
Ko samoorganizirajočo mreţo enkrat naučimo, lahko pričnemo z njeno uporabo. To
fazo lahko poimenujemo delovanje Kohonenove samoorganizirajoče mreţe. Po fazi učenja so
uteţi nevronov nastavljene tako, da vsak nevron mreţe lahko klasificira lastno skupino
podatkov. Tako lahko vsakemu podatku hitro in enostavno določimo njegovo skupino
oziroma vhodne podatke vizualiziramo. Vhodu, ki ga ţelimo klasificirati, najprej določimo
njegove značilke, ki morajo biti primerno oblikovane, da lahko sluţijo kot vhodni vektor v
samoorganizirajočo mreţo. Mreţa se odzove na vhodne podatke z aktivacijo primernega
nevrona tako, da za vsak nevron izračuna razdaljo med uteţnim ter vhodnim vektorjem.
Nevron z najmanjšo razdaljo je zmagovalni nevron in se aktivira. Mreţa večinoma vrne
koordinate aktiviranega nevrona. Samoorganizirajoča mreţa sluţi izključno kot orodje, ki
sprejme vhodni podatek ter vrne izhod. Katere vhodne podatke ji bomo dali na voljo ter kako
bomo uporabili dobljen rezultat, je odvisno od aplikacije, ki nevronsko mreţo uporablja.
0
0,02
0,04
0,06
0,08
0,1
0,12
1
49
97
14
5
19
3
24
1
28
93
37
38
5
43
3
48
1
52
9
57
7
62
56
73
72
1
76
9
81
7
86
5
91
3
96
1
hit
rost
uče
nja
iteracije
linearna funkcija
potenčna funkcija
eksponentna funkcija
-
43
5. Opis implementacije
V tem poglavju bomo natančneje opisali implementacijo našega sistema CBIR in
rezultate testiranja našega sistema. Aplikacijo smo sprogramirali v programskem jeziku C#.
Ena izmed zunanjih knjiţnic, ki smo jo uporabili, je knjiţnica AForge, ki nam je
sluţila izključno kot pomoč pri preoblikovanju slik ter izločevanju značilk. Uporabili smo
naslednje dele knjiţnic:
AForge.Imaging,
AForge.Imaging.Formats in
AForge.Math.
Izdelan program omogoča naslednje:
nalaganje zbirke slik,
brskanje po naloţenih slikah,
izločanje vseh značilk določene slike ter grafični prikaz nekaterih izmed teh
značilk,
izločanje značilk iz celotne zbirke slik,
shranjevanje značilk celotne zbirke slik na disk,
branje značilk celotne zbirke slik z diska,
določanje, katere značilke ţelimo uporabiti v učenju mreţe,
spreminjanje nastavitev samoorganizirajoče mreţe,
moţnost grafične izbire prikaza skupine slik, ki pripadajo istemu vozlišču,
iskanje podobnih slik glede na sliko, ki jo naloţimo,
shranjevanje uteţi ţe naučene mreţe na disk in
branje uteţi z diska v samoorganizirajočo mreţo.
5.1 Uporabniški vmesnik aplikacije CBIR
Prikaz izgleda aplikacije predstavljajo slike 5.1 do 5.4. Ob zagonu programa imamo na
voljo moţnost, da naloţimo zbirko slik. V tekstovno polje nad gumbom »naloţi« vnesemo pot
do mape, ki vsebuje slike formata JPEG. Ob kliku na gumb »naloţi« program samodejno
naloţi vse osnovne informacije o slikah, ki se nahajajo v tej mapi. Te informacije so pot do
datoteke, ime datoteke ter, zaradi laţje nadaljnje obdelave, pot do mape, ki sliko vsebuje.
Ko so slike enkrat naloţene, lahko brskamo po zbirki s pomočjo puščic v levem
zgornjem kotu. Ob kliku na eno izmed puščic se naloţi predhodna oziroma naslednja slika ter
-
44
se prikaţe v levem zgornjem kotu (slika 5.5). V primeru da ţelimo izbrati sliko na točno
določenem indeksu, vpišemo ta indeks v tekstovno polje pod puščicama. Ob pritisku na tipko
ENTER se ţeljena slika nato naloţi. Vse funkcije izločanja ter prikaza značilk, z izjemo
učenja samoorganizirajoče mreţe ter iskanja podobnih slik, se izvajajo nad to izbrano sliko.
Ostale funkcije programa ter splošno delovanje programa bomo opisali v naslednjem
podpoglavju.
Slika 5.1: Osnovne nastavitve in prikaz Fourierove transformacije ter histograma razlik
Slika 5.2: Prikaz lokalnih ter globalnega histograma za barvni model HLS.
-
45
Slika 5.3: Prikaz zavihka za nastavljanje lastnosti in učenje samoorganizirajoče mreţe.
Slika 5.4: Prikaz zavihka za odpiranje, shranjevanje ter pridobivanje značilk iz naloţene
zbirke slik.
-
46
Slika 5.5: Prikaz dela aplikacije za brskanje po naloţeni zbirki slik.
5.2 Opis funkcij in delovanje programa CBIR
Program CBIR smo implementirali z namenom nalaganja zbirke slik, izločanja značilk
naloţenih slik ter učenja Kohonenove samoorganizirajoče mreţe, tako da bi lahko s pomočjo
naučene mreţe naloţili poljubno sliko ter poiskali podobne slike v bazi. Baza je v našem
primeru zbirka slik v določeni mapi.
Za pridobitev značilk smo uporabili naslednje algoritme:
lokalne barvne histograme barvnega modela HLS,
globalni histogram modela HLS,
lastno implementacijo Fourierove transformacije odsekov slike,
lastno implementacijo enostavnega algoritma za določanje razlike med piksli,
matriko medsebojnih pojavov za nivoje sivin slike,
matrike medsebojnih pojavov za vsak kanal barvnega prostora RGB posebej.
Za vsako izmed teh značilk smo implementirali algoritem za izločanje značilke iz
slike. Za pridobivanje lokalnih barvnih histogramov smo sliko razdelili na 16 enakih delov.
Nato smo za vsak del slike izračunali histogram za vsak kanal HSL predstavitve barvnega
prostora. Vsak izmed teh histogramov vsebuje 50 razredov.
Enako smo storili za globalni barvni histogram slike, le da tokrat slike nismo
razdelili, temveč izračunali histogram za celotno sliko. Globalni histogram prav tako vsebuje
50 razredov. Prikaz izračuna lokalnih ter globalnih histogramov za določeno sliko prikazuje
slika 5.6. Ker samoorganizirajoča mreţa sprejme le vhodne vektorje z vrednostmi med 0 in 1,
smo morali vse histograme normalizirati. To smo enostavno naredili, tako, da smo poiskali
-
47
maksimalno vrednost posameznega histograma ter vse vrednosti tega histograma nato delili s
to vrednostjo.
Slika 5.6: Lokalni in globalni histogrami, uporabljeni v aplikaciji CBIR.
Kot naslednjo smo uporabili implementacijo lastnega algoritma za izločevanje značilk
s pomočjo Fourierove transformacije. Sliko smo najprej preoblikovali v sivinsko sliko, jo nato
razdelili na 16 enakih delov ter nad vsakim tako dobljenim odsekom slike izvedli Fourierovo
transformacijo. Kot vektor značilk smo uporabili vektor energijskih vrednosti Fourierove
transformacije vsakega dela. Tako smo za vsako sliko dobili vektor 16 značilk. Grafični
prikaz Fourierove transformacije nad vsakim delom slike predstavlja slika 5.7a.
Za pridobitev naslednje značilke smo implementirali lasten algoritem za določanje
razlik med piksli. Algoritem je enostaven, saj izračuna povprečno razdaljo med pikslom ter
njegovimi sosedi. Dobljene vrednosti se nato uporabijo za izdelavo lokalnih histogramov na
enak način, kot smo izdelali lokalne histograme za barvni model HLS. Prikaz lokalnih
histogramov razlik med piksli predstavlja slika 5.7b.
-
48
Slika 5.7: Prikaz a) Fourierove transformacije in b) razlike med nivoji sivin med piksli nad
lokalnimi območji slike.
Za izločanje naslednjih dveh vrst značilk smo uporabili enak algoritem določanja
medsebojnih pojavov. Algoritem smo uporabili za določen kanal (R, G, B ali sivinska slika)
ter izdelali matriko medsebojnih pojavov. Iz matrike smo nato izločili energijo, inverzni
diferenčni moment, entropijo, kontrast ter maksimalno vrednost matrike. Tako smo dobili
vektor petih vrednosti, ki smo ga morali še normalizirati. Algoritem smo za vsak barvni kanal
izvedli za razdalji 1 in 2 ter za za kote 0°, 90°, 180° ter 270°. Tako smo na koncu dobili za
vsak kanal vektor s 40 vrednostmi.
Nalaganje zbirk ter brskanje po naloţenih slikah smo ţe opisali. Ko smo zbirko enkrat
naloţili, lahko izberemo ter naloţimo določeno sliko. Tej sliki lahko nato izločimo značilke,
ki smo jih implementirali in uporabili v programu ter nekatere izmed teh značilk tudi grafično
predstavimo. V zavihku »osnovne nastavitve« lahko s klikom na gumb »preoblikuj«
prikaţemo značilke Fourierove transformacije ter lokalni histogram razlik v sivinah med
piksli. Prikaz teh značilk v programu predstavlja slika 5.7.
V zavihku »Histogrami« lahko vidimo grafični prikaz barvnih histogramov za izbrano
sliko. S klikom na gumb »Izračun« se izračunajo ter prikaţejo lokalni ter globalni histogrami
trenutno izbrane slike. Rezultat ter prikaz histogramov v programu lahko vidimo v slikah 5.2
in 5.6. Hkrati se izpišejo še maksimalne in minimalne vrednosti odtenka, nasičenosti ter
svetilnosti v sliki.
Ti izračuni in prikazi značilk sluţijo samo kot informativni prikaz značilk,
uporabljenih v programu.
Bistvo programa je iskanje podobnih slik v bazi. Zato moramo najprej iz vseh slik v
bazi izločiti vse značilke, ki jih ţelimo uporabiti. V zavihku »Značilke« lahko iz vseh slik v
zbirki, ki smo jih pred tem naloţili, izločimo vse prej opisane značilke. S klikom na gumb
»Prični« se prične postopek izločanja značilk iz vsake slike v bazi. Pri tem nam črta napredka
-
49
in besedilo pod njo informativno prikazujeta napredek. Postopek lahko kadarkoli prekinemo s
klikom na gumb »X« .
Izločanje značilk lahko traja precej časa. Zato ima uporabnik na voljo, da pridobljene
značilke shrani na disk. Če ţelimo shraniti značilke, kliknemo na gumb »shrani značilke«.
Program nato ponudi moţnost izbire mape, kamor ţelimo shraniti značilke. Ko mapo enkrat
izberemo, program za vsako sliko v bazi znotraj te mape ustvari datoteko s končnico .obj, v
kateri so shranjene vse značilke te slike. Datoteka ima isto ime kot njej prirejena slika. V
primeru, da ţelimo naloţiti značilke, moramo v tekstovno polje vpisati pot do mape, v kateri
se nahajajo datoteke. S tem ko naloţimo značilke, naloţimo tudi vse informacije o slikah, ime
slik ter pot do slik. Ni nam torej treba skrbeti za dodatno nalaganje slik, potem ko smo
značilke ţe prebrali z diska.
Ko imamo enkrat izločene oziroma naloţene značilke, lahko pričnemo z učenjem
mreţe. Najprej moramo v zavihku »Osnovne nastavitve« izbrati značilke, nad katerimi ţelimo
učiti nevronsko mreţo. Za vsak tip značilk imamo prikazano potrditveno polje. V primeru, da
je potrditveno polje za določeno značilko izbrano, se vektor teh značilk vključi v vhodni
vektor. Vhodni vektor lahko torej vsebuje informacije o samo enem tipu značilk, vseh
obravnavanih značilkah ali njihovi poljubni kombinaciji. V zavihku »Nevronska mreţa«
lahko nastavljamo naslednje lastnosti nevronske mreţe:
Sosedstvo: Tukaj lahko izbiramo, kako se bo obravnavalo sosedstvo nevronske mreţe. Na
voljo imamo naslednje izbire :
- 2D: Ta moţnost predvideva navadno dvodimenzionalno sosedstvo. Razdalja med
nevronoma se izračuna po navadni evklidski razdalji (enačba 2.1).
- krožno sosedstvo: Včasih je bolje, če sosedstvo med nevroni poteka tekoče. Tako
se največje razlike ne bi kazale ravno v robu nevronske mreţe. Pri 2D sosedstvu
se skupine vhodnih podatkov najbolj razlikujejo v robovih samoorganizirajoče
mreţe. Na primer, skupina, ki se nahaja ob levem zgornjem kotu, se najbolj
razlikuje od skupine, ki se nahaja v desnem spodnjem kotu. S kroţnim
sosedstvom se temu izognemo. Izračun razdalje med dvema nevronoma pri
kroţnem sosedstvu predstavljajo enačbe 5.1, 5.2 in 5.3.
-
50
(5.1)
(5.2)
(5.3)
- valjčno sosedstvo po x: V tem primeru se sosedstvo obravnava kot tekoče samo
po koordinati x. Po koordinati y se obnaša kot 2D sosedstvo.
- valjčno sosedstvo po y: V tem primeru se sosedstvo obravnava kot tekoče samo
po koordinati y. Po koordinati x se obnaša kot 2D sosedstvo.
Sosednostna funkcija: tukaj lahko izberemo, katero sosednostno funkcijo bomo uporabili
pri učenju mreţe. Na voljo imamo naslednje izbire :
- mehurčna: predstavlja mehurčno sosednostno funkcijo;
- Gauss : predstavlja Gaussovo sosednostno funkcijo;
- cut-Gauss: predstavlja odsekovno Gaussovo sosednostno funkcijo;
- Epanechnik: predstavlja Epanechnikovo sosednostno funkcijo.
Izbira vhodov: V samoorganizirajoči mreţi smo implementirali štiri različne načine izbire
nevronov. Izbiramo lahko med:
- »naključno«: Izbira vhodov je naključna.
- »zaporedno«: Vhode izbiramo po vrsti, enega za drugim.
- »urejeno«: Mnoţico vhodnih vektorjev najprej uredimo s pomočjo algoritma
»hitro uredi«, ter nato vhode izbiramo po vrsti.
-
51
- »deljeno«: Mnoţico vhodnih vektorjev najprej uredimo s pomočjo algoritma
»hitro uredi«, nato vhode izbiramo tako, da izmenično jemljemo po en vektor iz
začetka ter konca vrste.
začetno učenje: V tem polju lahko nastavimo začetno hitrost učenja nevronske mreţe. V
prejšnjih poglavjih smo to vrednost označevali z l0.
število iteracij: V tem polju lahko nastavimo število iteracij učenja nevronske mreţe.
Nastavitev te lastnosti je odvisna od problema, ki ga rešujemo, vendar se ponavadi giblje
med 1000 ter 3000 iteracij.
Nastavljamo lahko vse lastnosti razen števila nevronov, ki je trenutno nastavljeno na
10 x 10 nevronov. Imamo tudi moţnost shranjevanja oziroma nalaganja uteţi nevronske
mreţe. To moţnost smo vključili zato, ker samoorganizirajoča mreţa ne glede na iste lastnosti
vsakič uredi podatke drugače. V primeru, da ţelimo trenutno nevronsko mreţo ohraniti,
shranimo uteţi ter število nevronov. Celotna informacija naučene samoorganizirajoče mreţe
je shranjena v uteţeh nevronov. S klikom na gumb »shrani« nam program ponudi moţnost
izbire lokacije, kamor ţelimo shraniti uteţi. Ko lokacijo potrdimo, program uteţi mreţe shrani
v datoteko s končnico .nev . S klikom na gumb »odpri« se nam ponudi moţnost izbire
datoteke, kjer so uteţi nevronske mreţe shranjene. Ko ţeleno datoteko izberemo, program
prebere uteţi ter jih priredi nevronski mreţi. S klikom na gumb »Začni« poţenemo učenje
nevronske mreţe. Pri tem črta napredka in besedilo pod njo informativno prikazujeta stanje
učenja samoorganizirajoče mreţe. Ko se učenje konča, lahko pričnemo z iskanjem podobnih
slik. Pri tem imamo dve moţnosti. Lahko prikazujemo slike, prirejene izbranim nevronom. V
tem primeru dobimo kot rezultat vse slike, ki so prirejene določenemu nevronu. Lahko pa
naloţimo sliko ter poiščemo slike, ki so naloţeni sliki podobne.
Če hočemo iskati slike glede na izbrani nevron, imamo v zavihku »Nevronska mreţa«
posebno kontrolo, ki nam prikazuje vse nevrone mreţe (slika 5.8). S klikom na izbran nevron
se nam ob strani prikaţejo vse slike, ki so prirejene temu nevronu.
-
52
Slika 5.8: Kontrola za izbiro nevronov samoorganizirajoče mreţe
V primeru, da ţelimo poljubni sliki najti podobne slike iz baze, moramo sliko najprej
naloţiti. S klikom na gumb »naloţi iskano sliko« se nam odpre moţnost, da poiščemo ter
odpremo poljubno sliko. Ta slika se nato odpre ter pomanjšana prikaţe nad omenjenim
gumbom. S klikom na puščico pod omenjenim gumbom se nato iz slike izločijo izbrane
značilke. Program sliki priredi nevron ter vrne vse slike iz baze, ki so temu nevronu prirejene.
Na sliki 5.9 lahko vidimo celotno strukturo zadnjega opisanega iskanja.
-
53
Slika 5.9: Prikaz dela aplikacije za iskanje podobnih slik določeni sliki.
5.3 Rezultati
V tem podpoglavju bomo opisali rezultate testiranja programa. Program smo testirali
nad isto zbirko slik. Ţeleli smo dokazati, da je klasifikacija ter zdruţevanje podobnih slik v
gruče s Kohonenovo mreţo hitrejše in daje enako dobre rezultate kot standardni algoritmi, ki
jih uporabljajo dosedanji sistemi CBIR. Uporabljena zbirka slik je sestavljena iz 500 slik
velikosti 1024 x 768 pikslov. Zbirka je bila izbrana naključno. Slike so neodvisne ena od
druge. Skupino uporabnikov smo prosili, da bi razvrstili slike v skupine. Vsak uporabnik je
dobil naključno izbrano sliko. Nato je poiskal slike, ki so ji po njegovem mnenju vsebinsko
-
54
podobne. Izbrane datoteke so bile nato odstranjene iz mape, uporabniku pa smo podali novo
sliko iz baze. Primer skupine ki jo je ustvaril uporabnik, prikazuje slika 5.10.
Skupine slik smo nato primerjali z rezultati programa CBIR. Za testiranje smo
uporabili različne skupine nastavitev. Skupine 1, 2 in 3 so vsebovale iste nastavitve mreţe,
razlikovale so se le v izbiri značilk. Skupine 4-9 so se razlikovale v nastavitvah mreţe.
Skupine nastavitev prikazuje tabela 5.1.
Slika 5.10: Primer skupine, ki jo je ustvaril uporabnik.
-
55
Skupina 1
Značilke : Lokalni barvni histogrami
Nastavitve mreţe :
2D sosedstvo, Gaussova sosednostna funkcija,
potenčna funkcija učenja, naključna izbira vhodnih
vektorjev, vrednost začetnega učenja na 0.5 in 2500
iteracij.
Skupina 2
Značilke : Globalni barvni histogram, matrika sopojavljanja
Nastavitve mreţe :
2D sosedstvo, Gaussova sosednostna funkcija,
potenčna funkcija učenja, naključna izbira vhodnih
vektorjev, vrednost začetnega učenja na 0.5 in 2500
iteracij.
Skupina 3
Značilke : Lokalni barvni histogrami, matrika sopojavljanja
Nastavitve mreţe :
2D sosedstvo, Gaussova sosednostna funkcija,
potenčna funkcija učenja, naključna izbira vhodnih
vektorjev, vrednost začetnega učenja na 0.5 in 2500
iteracij.
Skupina 4
Značilke : Lokalni barvni histogrami, matrika sopojavljanja
Nastavitve mreţe :
Kroţno sosedstvo, Gaussova sosednostna funkcija,
potenčna funkcija učenja, naključna izbira vhodnih
vektorjev, vrednost začetnega učenja na 0.5 in 2500
iteracij.
Skupina 5
Značilke : Lokalni barvni histogrami, matrika sopojavljanja
Nastavitve mreţe :
2D sosedstvo, mehurčna sosednostna funkcija,
potenčna funkcija učenja, naključna izbira vhodnih
vektorjev, vrednost začetnega učenja na 0.5 in 2500
iteracij.
Skupina 6
Značilke : Lokalni barvni histogrami, matrika sopojavljanja
Nastavitve mreţe :
2D sosedstvo, odsekovna Gaussova sosednostna
funkcija, potenčna funkcija učenja, naključna izbira
vhodnih vektorjev, vrednost začetnega učenja na 0.5 in
2500 iteracij.
-
56
Skupina 7
Značilke : Lokalni barvni histogrami, matrika sopojavljanja
Nastavitve mreţe :
2D sosedstvo, Epanechnikova sosednostna funkcija,
potenčna funkcija učenja, naključna izbira vhodnih
vektorjev, vrednost začetnega učenja na 0.5 in 2500
iteracij.
Skupina 8
Značilke : Lokalni barvni histogrami, matrika sopojavljanja
Nastavitve mreţe :
2D sosedstvo, Gaussova sosednostna funkcija, linearna
funkcija učenja, naključna izbira vhodnih vektorjev,
vrednost začetnega učenja na 0.5 in 2500 iteracij.
Skupina 9
Značilke : Lokalni barvni histogrami, matrika sopojavljanja
Nastavitve mreţe :
2D sosedstvo, Gaussova sosednostna funkcija,
eksponentna funkcija učenja, naključna izbira vhodnih
vektorjev, vrednost začetnega učenja na 0.5 in 2500
iteracij.
Tabela 5.1: Prikaz skupin nastavitev uporabljenih za testiranje programa CBIR
Velikost mreţe smo nastavili na 4 x 5 nevronov, tako da se je število skupin ujemalo s
številom skupin, ki so jih ustvarili uporabniki. Nato smo za vsako skupino naključno izbrali
uporabnika ter izvedli 20 poizvedb. Pri vsaki poizvedbi smo uporabili sliko iz druge skupine
in rezultat primerjali s to skupino. Tako smo dobili število pravilno uvrščenih slik. Uspešnost
nastavitve smo nato izračunali po enačbi 5.4.
(5.4)
Rezultati so prikazani v tabeli 5.2.
-
57
Število pravilno uvrščenih slik po skupinah uspešnost
Nastavitve skupine 1
5 6 6 5 4
18,40% 3 5 4 8 2
3 6 7 4 8
5 6 2 3 0
Nastavitve skupine 2
3 4 3 2 4
13,2% 2 2 3 5 6
3 2 1 6 2
2 3 4 7 2
Nastavitve skupine 3
8 4 6 6 5
20,2% 7 8 4 6 1
4 3 9 2 7
4 2 4 6 5
Nastavitve skupine 4
3 4 5 7 4
20,0% 3 9 6 10 6
1 5 3 6 8
6 3 2 4 5
Nastavitve skupine 5
3 2 5 8 1
17,0% 2 4 6 1 3
5 3 4 7 9
3 7 6 5 1
Nastavitve skupine 6
4 3 7 9 1
20,2% 3 9 3 4 2
2 6 5 12 6
8 4 3 7 3
Nastavitve skupine 7
6 7 3 5 4
21,4% 8 6 10 3 8
6 9 3 2 5
4 7 1 4 6
Nastavitve skupine 8
4 3 3 5 7
18,4% 2 8 6 7 1
3 4 11 3 6
2 5 3 5 4
Nastavitve skupine 9
5 2 8 4 5
19,8% 6 1 9 10 6
7 2 2 8 4
3 5 2 4 6
Tabela 5.2: rezultati testiranja programa CBIR.
-
58
Kot najboljša kombinacija značilk so bili lokalni barvni histogrami in matrika sopojavljanja,
zato smo uporabili te značilke za nadaljno testiranje.
Kot najboljša se je izkazala Epanechnikova sosednostna funkcija ter potenčna funkcija hitrosti
učenja. Kot najslabša se je izkazala mehurčna sosednostna funkcija in linearna funkcija
hitrosti učenja.
-
59
6. Sklep
Cilj diplomske naloge je bila implementacija sistema CBIR, ki temelji na Kohonenovi
samoorganizirajoči mreţi. Najprej smo opisali teorijo sistemov CBIR ter Kohonenove
samoorganizirajoče mreţe. Nato smo skozi primere prikazali delovanje tega tipa nevronske
mreţe ter delovanje našega implementiranega sistema CBIR.
V drugem poglavju smo opisali osnove sistemov, na čem temeljijo ter kateri tipi
značilk se ponavadi uporabljajo za izračun podobnosti slik. Opisali smo standardni algoritem,
ki se ponavadi uporablja v teh vrstah sistemov. Našteli smo tudi področja, na katerih se
aplikacije CBIR ponavadi uporabljajo ter nekaj primerov ţe obstoječih sistemov CBIR.
V tretjem poglavju smo natančneje opisali tri vrste značilk. Opisali smo bistveno
zgradbo, postopek izločanja ter uporabe določene značilke. Predstavili smo najosnovnejše
algoritme za izločanje ter predstavitev določene značilke.
Poglavje 4 je sluţilo predstavitvi ter opisu Kohonenove samoorganizirajoče mreţe.
Najprej smo opisali osnove vseh nevronskih mreţ. Našteli smo osnovne algoritme učenja
nevronskih mreţ. Nato smo predstavili zgradbo samoorganizirajoče mreţe. Opisali smo
delovanje SOM, našteli osnovne tipe funkcij, ki se uporabljajo za učenje ter delovanje tega
tipa nevronske mreţe. Preučili smo tudi vse razlike, ki obstajajo med Kohonenovo
samoorganizirajočo mreţo ter ostalimi vrstami nevronskih mreţ.
V poglavju 5 smo opisali zgradbo ter delovanje implementiranega sistema CBIR.
Opisali smo uporabniški vmesnik ter značilke, ki smo jih uporabljali za učenje mreţe ter
iskanje podobnih slik. Prikazali smo rezultate poizvedb pri učenju samoorganizirajoče mreţe
z različnimi kombinacijami izbir značilk ter nastavitev mreţe.
V primeru da bi hoteli iskanje slik s pomočjo aplikacije CBIR izboljšati, bi poleg
iskanja slik na podlagi značilk barv in teksture morali implementirati še izločanje ter uporabo
značilk, ki temeljijo na obliki. Izboljšano delovanje bi dosegli tudi s pomočjo drugačne
implementacije iskanja območij za lokalne histograme. Primer prikazuje slika 3.6a.
-
60
7. Literatura
[Haykin, 2009] Simon Haykin (2009). Neural Networks and Learning Machines. Tretja izdaja
McMaster University Hamilton, Ontario.
[Guid, 2007] Nikola Guid, Damjan Strnad (2007). Umetna inteligenca. Univerza v
Mariboru, inštitut za računalništvo,Maribor .
[splet 1] http://www.sce.carleton.ca/faculty/cuhadar/CBIR/files/finalreport.doc
[splet 2]
http://www.medialab.tfe.umu.se/publications/master_thesis/2006/integrated_c
ontent-
based_image_retrieval_using_texture,_shape_and_spatial_information.pdf
[splet 3] http://www.cs.auckland.ac.nz/compsci708s1c/lectures/Glect-
html/topic5c708FSC.htm
[splet 4] http://www.eicstes.org/EICSTES_PDF/PAPERS/The%20Self-
Organizing%20Map%20%28Kohonen%29.pdf
[splet 5] http://davis.wpi.edu/~matt/courses/soms/
[splet 6] http://www.cs.virginia.edu/~xj3a/research/CBIR/Intro.htm
[splet 7] http://graph-srv.uni-mb.si/cgai/slo/RA_dokumenti/RA-Teksture.pdf
[splet 9] http://dis-slovarcek.ijs.si/
[splet10] http://www.aiaccess.net/English/Glossaries/GlosMod/e_gm_mahalanobis.htm
http://www.sce.carleton.ca/faculty/cuhadar/CBIR/files/finalreport.dochttp://www.medialab.tfe.umu.se/publications/master_thesis/2006/integrated_content-based_image_retrieval_using_texture,_shape_and_spatial_information.pdfhttp://www.medialab.tfe.umu.se/publications/master_thesis/2006/integrated_content-based_image_retrieval_using_texture,_shape_and_spatial_information.pdfhttp://www.medialab.tfe.umu.se/publications/master_thesis/2006/integrated_content-based_image_retrieval_using_texture,_shape_and_spatial_information.pdfhttp://www.cs.auckland.ac.nz/compsci708s1c/lectures/Glect-html/topic5c708FSC.htmhttp://www.cs.auckland.ac.nz/compsci708s1c/lectures/Glect-html/topic5c708FSC.htmhttp://www.eicstes.org/EICSTES_PDF/PAPERS/The%20Self-Organizing%20Map%20%28Kohonen%29.pdfhttp://www.eicstes.org/EICSTES_PDF/PAPERS/The%20Self-Organizing%20Map%20%28Kohonen%29.pdfhttp://davis.wpi.edu/~matt/courses/soms/http://www.cs.virginia.edu/~xj3a/research/CBIR/Intro.htmhttp://graph-srv.uni-mb.si/cgai/slo/RA_dokumenti/RA-Teksture.pdfhttp://dis-slovarcek.ijs.si/http://www.aiaccess.net/English/Glossaries/GlosMod/e_gm_mahalanobis.htm
-
61
8. Priloge
8.1 Naslov
Ime in priimek: Ţiga Petek
Naslov: Leše 132
Pošta: 2391 Prevalje
Telefon: 031-415-162
E-mail: ziga.petek2@gmail.com
8.2 Kratek življenjepis
Rojen: 2.11.1986 v Slovenj Gradcu.
Šolanje: Leta 2001 zaključena osnovna šola na Prevaljah.
Leta 2005 zaključena gimnazija v Ravnah na Koroškem.
top related