64
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

ISKANJE PODOBNIH SLIK S KOHONENOVIMI MREŢAMI · 2017. 11. 27. · Blumova okostja. 2.2 Osnovni algoritem delovanja sistemov CBIR Obstaja veliko različnih sistemov CBIR, ki vsak

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

  • 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: [email protected]

    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.