Igenkänning av bilddata med hjälp av Kohonen-nätverk, samt beskrivning av program



Relevanta dokument
Signaler några grundbegrepp

Teori... SME118 - Mätteknik & Signalbehandling SME118. Johan Carlson 2. Teori... Dagens meny

Laboration i Fourieroptik

Samtidig visning av alla storheter på 3-fas elnät

TEM Projekt Transformmetoder

Projekt 3: Diskret fouriertransform

Projekt 2 (P2) Problembeskrivning och uppdragsspecifikation

Signal- och bildbehandling TSEA70

Numerisk lösning till den tidsberoende Schrödingerekvationen.

Hemuppgift 1, SF1861 Optimeringslära, VT 2017

1.1 MATLABs kommandon för matriser

DT1120 Spektrala transformer för Media Tentamen

2320 a. Svar: C = 25. Svar: C = 90

TAMS79: Föreläsning 10 Markovkedjor

Laboration: Grunderna i MATLAB

Resttentamen i Signaler och System Måndagen den 11.januari 2010, kl 14-19

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 9p av totalt 20p Hjälpmedel: MATLAB

1 Minkostnadsflödesproblem i nätverk

Laboration i Fourieroptik

Frekvensplanet och Bode-diagram. Frekvensanalys

Vektorer, matriser, nätverk - några elementa

Hemuppgift 1, SF1861 Optimeringslära för T

Flerdimensionella signaler och system

Signalanalys med snabb Fouriertransform

e 3 e 2 e 1 Kapitel 3 Vektorer i planet och i rummet precis ett sätt skrivas v = x 1 e 1 + x 2 e 2

Matriser och vektorer i Matlab

Tentamen i Beräkningsvetenskap I/KF, 5.0 hp,

Tentamen i TMA 982 Linjära System och Transformer VV-salar, 27 aug 2013, kl

LINJÄR ALGEBRA II LEKTION 6

Obligatoriska uppgifter i MATLAB

Laplace, Fourier och resten varför alla dessa transformer?

DIGITAL KOMMUNIKATION

Tentamen Bildanalys (TDBC30) 5p

2D Potentialen i en nervcell definieras normalt som skillnaden i spänning mellan dess axon och dendrit.

Föreläsning 7. Felrättande koder

i(t) C i(t) = dq(t) dt = C dy(t) dt y(t) + (4)

Linjära ekvationssystem

2. Lös ekvationen z i = 2 z + 1 och ge i det komplexa talplanet en illustration av lösningsmängden.

Index. Vektorer och Elementvisa operationer. Summor och Medelvärden. Grafik i två eller tre dimensioner. Ytor. 20 januari 2016 Sida 1 / 26

Föreläsning 7: Klassificering, minsta kvadratproblem, SVD, forts.

3 Man kan derivera i Matlab genom att approximera derivator med differenskvoter. Funktionen cosinus deriveras för x-värdena på följande sätt.

Laboration 5: Regressionsanalys. 1 Förberedelseuppgifter. 2 Enkel linjär regression DATORLABORATION 5 MATEMATISK STATISTIK FÖR I, FMS 012, HT-08

5B1146 med Matlab. Laborationsr. Laborationsgrupp: Sebastian Johnson Erik Lundberg, Ann-Sofi Åhn ( endst tal1-3

Omtentamen i DV & TDV

Vektorgeometri för gymnasister

Matriser och linjära ekvationssystem

Att beräkna:: Avstånd

Linjära ekvationssystem

Bildbehandling i frekvensdomänen

Faltningsreverb i realtidsimplementering

Laboration i Fourieranalys, TMA132 Signalanalys med snabb Fouriertransform

TAIU07 Matematiska beräkningar med Matlab

1 De fyra fundamentala underrummen till en matris

DT1130 Spektrala transformer Tentamen

Ulrik Söderström 20 Jan Signaler & Signalanalys

Ulrik Söderström 19 Jan Signalanalys

DT1130 Spektrala transformer Tentamen

4.4. Mera om grafiken i MATLAB

Lösningar till linjära problem med MATLAB

SF1635, Signaler och system I

Mätningar med avancerade metoder

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Hjälpmedel: MATLAB

8. Euklidiska rum 94 8 EUKLIDISKA RUM

Laboration 4: Digitala bilder

TAIU07 Matematiska beräkningar med Matlab

DT1130 Spektrala transformer Tentamen

Moment Viktiga exempel Övningsuppgifter

Vektorgeometri för gymnasister

1 Kvadratisk optimering under linjära likhetsbivillkor

Tillämpad Fysik Och Elektronik 1

5 Linjär algebra. 5.1 Addition av matriser 5 LINJÄR ALGEBRA

Föreläsning 13 Innehåll

Faktorisering med hjälp av kvantberäkningar. Lars Engebretsen

Matriser och linjära ekvationssystem

729G43 Artificiell intelligens (2016) Maskininlärning 2. Marco Kuhlmann Institutionen för datavetenskap

Grundritning Torpargrund

Linjära ekvationssystem i Matlab

Självkoll: Ser du att de två uttrycken är ekvivalenta?

Grundritning Platta på mark

Linjär algebra med tillämpningar, lab 1

Exempel :: Spegling i godtycklig linje.

Googles sidrankning - linjär algebra värt en förmögenhet

Spektrala Transformer

Uppgift 1 ( Betyg 3 uppgift )

Uppsala Universitet Matematiska Institutionen Bo Styf. Sammanfattning av föreläsningarna 15-18, 30/11-12/

Inställningar i vån.1 av projektet för grund

Matriser. En m n-matris A har följande form. Vi skriver också A = (a ij ) m n. m n kallas för A:s storlek. 0 1, 0 0. Exempel 1

2 = 3 = 1. ekvationssystem är beskriven som de vektorer X =

Omtentamen i DV & TDV

AC-kretsar. Växelströmsteori. Lund University / Faculty / Department / Unit / Document / Date

Spektrala Transformer

EXEMPEL 1: ARTVARIATION FÖRELÄSNING 1. EEG frekvensanalys EXEMPEL 2: EEG

SF1545 Laboration 1 (2015): Optimalt sparande

5.7. Ortogonaliseringsmetoder

TANA17 Matematiska beräkningar med Matlab

Bayesianska numeriska metoder II

LARS ULVELAND HOPFIELDNÄTVERK FÖR IGENKÄNNING AV DEGRADERADE BILDER OCH HANDSKRIVNA TECKEN

729G43 Artificiell intelligens (2016) Maskininlärning 3. Marco Kuhlmann Institutionen för datavetenskap

14. Minsta kvadratmetoden

Laboration 1 - Simplexmetoden och Modellformulering

Transkript:

Igenkänning av bilddata med hjälp av Kohonen-nätverk, samt beskrivning av program Jerker Björkqvist September 2001 1 Introduktion I detta arbete undersökts hur klassificering av bilddata kan göras med ett Kohonen-nätverk. Tidigare har liknande arbete gjorts med Hopfield-nätverk, där problemet dock var att datan måste presenteras i binär form. Kohonennätverkets kan å andra sidan behandla mer generell data (flyttal). Detta gör det möjligt att behandla bilder med gråtoner (och i princip även färger), samt även behandla transformationer av bilder, där man istället för en spatiella informationen kartlägger t.ex. frekvensinnehållet i bilden. I samband med jobbet utvecklades ett program wnnet för att följa med hur ett Kohonen-nätverk beter sig vid träningen. 2 Kohonen nätverk I ett Kohonen nätverk strävar man att karakterisera indatan med hjälp av färre dimensioner än den har från början, ofta i två dimensioner. Detta kallas ofta även för Self-Organizing Map (SOM), eller självorganiserad karta. Noderna i detta nätverk har en närhet till varandra som definieras av deras placering i kartan. Till varje nod i associeras en viktvektor w i med samma dimension som inputvektorn x. Avståndet mellan två noder ioch j har ett definierat värde, om t.ex. noderna är placerade i två dimensioner, varvid positionen kan ges som (x i,y i ) ges av den euklidiska normen d = (x i x j ) 2 +(y i y j ) 2 (1) Idén med ett Kohonennätverk är nu att noder som ligger nära varandra också skall ha viktmatriser som påminner om varandra. Genom att undersöka vilken 1

nod som ligger bäst motsvarar en given input, kan vi klassificera en input. Den nod i som ligger närmast ges av i =argmin i x w i (2) Innan nätverket kananvändas förklassificering bör det tränas. Detta görs genom följande steg: 1. Sätt viktvektorns w i element w ij slumpmässigt för alla noder i 2. Presentera en inputvektor x och avgör vilken nod i som ligger närmast genom att använda uttryck 2 3. Uppdatera nodernas vikter enligt w ij (t +1)=α(t)e d/ρ(t) (x j (t) w ij (t)) (3) 4. Om ej max iterationer uppnåtts, gå till 2) Funktionen α(t) beskriver hur uppdateringen av noder avtar med tiden, eftersom man vill att inlärningen småningom avtar. Likaså önskar man att den grannskap som berörs av av uppdateringarna avtar både med avstånd till noden i samt tiden. Tidsberoende för det senare beskrivs med funktionen ρ(t). 3 Klassificering av bilder m.h.a. Kohonen nätverk Emedan ett Kohonen-nätverk förmår klassificera inputdata testar vi här huruvida en klassificering av bilder fungerar. Härvid måste bilden representeras av en vektor. Enklast gör vi detta genom att representera en tvådimensionell bild som en datavektor genom att låta ett värde mellan 0 och 1 representera gråheten i varje pixel, då vi radvis går igenom bilden. T.ex. den svartvita bilden representerande ett T 11111111 00011000 00011000 00011000 00011000 00011000 blir således x = { 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0}. 2

4 Test med svartvita bilder Ett nätverk bestånden av 10x10 noder användes för klassificeringen av svartvita bilder av storleken 64x64 pixel. Först tränades nätverket enligt träningsbilder i figur 1. Figur 1: Bilder för träning Träningen genomfördes med α(t) = 1/t samt ρ(t) = 10/t. Varje bild vektor fick i tur och ordning fungera som insignal, denna procedur upprepades för t =1,...,100. Antalet träningar var aningen litet, men p.g.a. av vektorns storlek (4096 element) så var den relativt tidskrävande redan för 100 iterationer. Efter att nätverket tränats, gjordes följande försök: en av bilderna genomgick en scrambling, vilket innebar att elementen i vektorn med sannolikheten β = 0, 0.1,...1.0 övergick till från värde 1 till 0 respektive 0 till 1. En sådan serie ses i figur 2. I figur 3 ses den klassificering som nätet gör. Eftersom startbilden i detta fall motsvarar bild 4, borde d 4 vara minst. Vi ser att till scrambling upp till 0.3 verkar klassificering fungera relativt bra. Figur 2: Startfigurer med olika scramblingsannolikheter 0.1, 0.3, 0.5, 0.7, 0.9 En motsvarande serie ses i figur 4. I figur 5 ses klassificeringen som nätet gör. Nu är startbilden bild nummer 2, vi ser att klassificeringen stämmer väl upp till och med β =0.3. I figur 6 visas 6 bilder som är modifierade. De bilder som är uppebara är de som är uppochner samt de bilder där en del av bilden saknas. Bild nr 2 från väster är modifierad så att bilden är flyttat till höger ett antal pixel. Motsvarande resultat ses i figur 6. Nu ser vi att uppochnervända och flyttade bilder verkar visa dålig klassificering. Däremot är klassificeringen av ofullständiga bilder nöjaktig (ena fallet blev det rätt, andra fallet grannnoden ). 3

Figur 3: Klassificering av scramblade bilder, bilder som använts flr träning på sidorna Figur 4: Startfigurer med olika scramblingsannolikheter 0.1, 0.3, 0.5, 0.7, 0.9 5 Test med gråskalade bilder De gråskalade bilderna representerades så att varje pixel fick ett värde mellan 0 och 1 där detta värde representerade gråheten. Nätverket tränades bilder enligt figur 8. Bilderna modifierades på olika sätt enligt figur 11. Igen är de uppochnervända bilderna uppenbara, medan bild nr 2 är flyttat i sidled, vilket inte ses direkt från figuren. Resultatet för motsvarande klassificering ses i figur??. Igen ser vi att de ofullständiga bilderna ger bra klassificering (2 av 3 rätt), medan uppochnervända och flyttade bilder ger betydligt sämre klassificering. 4

Figur 5: Klassificering av scramblade bilder, bilder som använts flr träning på sidorna Figur 6: Modifierade startbilder 6 Program för visualisering av Kohonen nätverk Ett Kohonen-nätverk klassificerar som tidigare nämnt vektorer. För att visualisera detta byggdes ett dataprogram som klassificerar gråskalade bilder och visar resultaten. Vi använder som inputvektor x en tvådimensionell matris där varje element motsvaras av gråheten hos motsvarande pixel i bilden. Vi har motsvarande viktvektorer w i för varje nod i idenm nstora nodkartan. Vi kan nu konstatera att i vilket skede som helst av träningen kan dessa vikmatrisen åskådliggöras av motsvarande bilder. Då vi visualiserar detta får vi ett rutfält av bilder där varje bild representerar viktvektorn i motsvarande nod. Detta visas i figur??. Genom att för varje träningsiteration rita upp bilder, kan vi mycket väl följa med hur Kohonen-nätverket beter sig då det tränas. 5

Figur 7: Klassificering av modifierade bilder, bilder som använts flr träning på sidorna Figur 8: Gråskalade bilder för träning Figur 9: Modifierade startbilder 6.1 Användning av programmet Programmet fungerar både i Win32 och Linux-omgivning. Programmet är grafiskt och typisk användning sker genom följande steg. 1. Programmet startas med kommandot wnnet. Programmet öppnas med en tom skärm, (fig 12). 6

Figur 10: Klassificering av modifierade bilder, bilder som använts flr träning på sidorna Figur 11: Rutfält med bilder 2. Genom File- Load från menyn öppnar man en fildialog. I denne väljs de bilder man vill träna med. Bilderna skall vara av typ BMP. Man väljer valfritt antal bilder. Alla bilder skalas, oberoende av ursprungsstorlek till gråskalade bitkartor av storleken 64x64 pixels. 3. Träningen startas genom Train- Start. Dialogen Network parameters visas. I denna väljer man nätverkets storlek, träningsparametrar samt antalet iterationer. Genom att trycka på Ok startas träningen. 7

4. Under träningen visas hur ur viktvektorerna utvecklas. 5. Då träningen är färdig kan man välja en bild genom Evaluate- Evaluate bitmap... för att se vilket nod som bäst motsvarar den valda bilden. Figur 12: Huvudfönster för programmet 6.2 Träningsparametrar Genom dialogen 13 väljer man parametrar för träningen. Vid varje iteration uppdateras viktvektorerna genom uttrycket Figur 13: Dialogbox för parameterinställning w ij (t +1)=α(t)e d/ρ(t) (x j (t) w ij (t)) (4) där α(t) = a/t samt ρ(t) = b/t. Vi får således w ij (t +1)=a/te dt/b (x j (t) w ij (t)) (5) 8

Vi har med andra ord parametrarna a samt b. Vihardessutommöjligheten att genom att specificera a =0såfår vi istället α(t) =1,varvidvifår den förenklade uppdateringen w ij (t +1)=e dt/b (x j (t) w ij (t)) (6) Vi har dessutom möjlighet att träna med hjälp av transformerad data ( Use transformation ), enligt metoderna i 7.2. 6.3 Test med bildserie I följande exempel används 9 bilder som träningsvektorer. Träningen genomförs i 100 iterationer med parametrarna a =10samtb= 50. Det valda nätverket har storleken 7 7 noder. Resultatet av träningen efter 8, 33, 60 samt 100 iterationer visas i figur 14. Figur 14: Viktmatriser efter 8,33,60 samt 100 iterationer 9

6.4 Nerladdning av programmet Programmet finns att nerladda på addressen http://www.abo.fi/ jbjorkqv/wnnet. 7 Igenkänning av flyttade bilder I det tidigare avsnittet noterades att bilder som flyttats eller speglats var svåra att känna igen för nätverket. Intiuitivt kunde orsaken vara att eftersom bilden flyttas, kommer den vektor som beskriver bilden också att förskjutas så att det kan vara mycket svårt att efter detta klassificera vektorn. Ett sätt att undvika detta kunde vara att beskriva bilddatan med annan än spatiell information. Ett sätt är att med en vektor bestämma frekvensinnehållet i en bild, vilket inte nämnvärt borde ändra ävenom bilden flyttas. Frekvensinnehållet i en datavektor kan analyseras med den diskreta cosinustransformen, definierad enligt 7.1 Fourieranalys Fourieranalys spelar en stor roll vid signalbehandling, både analog och digital. Fundamentalt säger fouriranalysen att en godtycklig signal kan ses som sammansatta sinusvågor. Vi låter x(t) vara en periodisk funktion med perioden T 0, såatt x(t+t 0 )=x(t) (7) Då kan x(t) uttryckas som en summa av sinus- och cosinusfunktioner enligt x(t) = a 0 2 + ( ) 2πkt a k cos + k=1 T 0 ( ) 2πkt b k cos k=1 T 0 (8) Vanligen ges cosinus- och sinusfunktionerna med hjälp av exponentialfunktionen, e jθ =cosθ+jsin θ (9) Vi kan då skriva x(t) = c k e jkω0t (10) k= 10

där frekvensen ω 0 ges av ω 0 = 2π T 0. Vi är nu intresserade av att hitta de (komplexvärda) koefficienterna c k.utan härledning här ges dessa enligt c k = 1 T0 x(t)e jkω0t dt (11) T 0 0 Om signalen är icke-periodisk,dvs T 0,sågår grundfrekvensen ω 0 0. Detta leder till att vi istället för en funktion som definierar spektraldensiteten X(ω) = vilket kallas Fouriertransformen av x(t). x(t)e jωt dt (12) 7.2 Diskret cosinustransform Då vi har en diskret funktion x(n) kan vi använda den diskreta Fouriertransformen, där koefficienterna c k ges av X k = N 1 n=0 x n )e j2πkn N (13) där N är längden på insignalsvektorn x. Vi ser att eftersom vi endast hade diskreta värden på insignalen x n,såintegralenövergått i en summation. Vi kan igen konstatera att koefficienterna i X k är komplexvärda. Detta betyder att beräkningarna är relativt arbetsdryga. Därför används ofta en annan transformation, den diskreta cosinustransformationen DCT, som är definierad enligt där N 1 c k = ν(k) x(n)cos n=0 ( πk(n +1/2) N ), k =1,...N (14) ν(k) = { 1 N, om k =0 2 N, om k 0 (15) 11

7.3 DCT i 2 dimensioner Hittills har vi behandlat räckor i en dimension. Bilder representeras i två dimensioner, och härvid måste transformationen förändras. Nu ges c u,v = ν(u)ν(v) N 1 N 1 m=0 n=0 [ πu(m +1/2) x m,n cos N ] cos [ ] πv(n +1/2) N (16) Ipraktikenär alltså 2d DCT en endimensionell DCT som appliceras på data två gånger, först i x-led sedan i y-led. Detta leder till att komplexiteten vid beräkningarna är stor för stora bilder. För att kunna utföra beräkningar i matrisform kan den 2d DCT också skrivas C=A T XA (17) där [ ] (m+1/2)nπ a m,n = ν(n)cos N (18) 600 400 200 0 200 400 600 800 1000 1200 80 60 40 20 0 0 10 20 30 40 50 60 70 Figur 15: Ursprungsbilden till vänster 70x70 punkter, motsvarande koefficientmatris efter DCT till höger Vi kan nämna att för t.ex. JPEG bildkompression delas bilden upp i underblock av storleken 8x8 pixel (eller 16x16 pixel) före DCT och vidare behandling. 12