- Danmarks Tekniske Universitet

- Danmarks Tekniske Universitet - Danmarks Tekniske Universitet

25.09.2013 Views

Metodeudvikling af kantrutiner til klassificering af fisk Et metodestudie med otolitter fra sild som eksempel af Mads Esholdt Wiemann, s072937 Danmarks Tekniske Universitet Institut for Informatik Bachelorprojekt Bjarne Ersbøll 25. juni 2010

Metodeudvikling af<br />

kantrutiner til klassificering<br />

af fisk<br />

Et metodestudie med otolitter fra sild som eksempel<br />

af Mads Esholdt Wiemann, s072937<br />

<strong>Danmarks</strong> <strong>Tekniske</strong> <strong>Universitet</strong><br />

Institut for Informatik<br />

Bachelorprojekt<br />

Bjarne Ersbøll<br />

25. juni 2010


Forord<br />

Denne rapport er blevet til i samarbejde med Henrik Mosegaard, DTU, Aqua<br />

og Bjarne Ersbøll, DTU,IMM. Klassificering af fisk er et vigtigt redskab til<br />

at kunne bestemme mængden af fisk fra en bestemt population og dermed<br />

kunne udtale sig om bæredygtigheden af en fiskepopulation. Dette er ikke<br />

muligt ud fra blot at tælle antallet af en fiskeart et sted da fiskestimer flytter<br />

sig og blandes sammen. For at kunne udtale sig om mængden af fisk i en given<br />

population er der derfor brug for et redskab til at kunne finde ud af dette.<br />

Rapporten omhandler metoder til at bestemme kanten af otolitter med, og<br />

hvordan man ud fra disse kanter kan klassificere hvilken population en given<br />

sild kommer fra.<br />

Til udarbejdelse af rapporten er der blevet brugt et datasæt bestående af 5<br />

populationer fra henholdsvis den centrale Nordsø,Berwick Bank, den centrale<br />

Nordsø Flamborough, Femern Østersøen,Rügen og , Kattegat,Lillebælt nord.<br />

De omtales fra nu af som population 1, 2, 3 osv. Datasættet består af enrække<br />

otolitter hvorpå der på nogen er en otolit, andre to otolitter, og andre to<br />

plus en rest af en tredje otolit. Der er i det givne datasæt 105 otolitter fra<br />

population 1, 148 fra population 2, 139 fra population 3, 100 fra population<br />

4 og 5. Der haves yderligere et datasæt bestående af fundne kanter fra en<br />

allerede eksisterende metode. Dette sæt består af af 84 kanter ud af de 105<br />

otolitter fra population 1, 136 fra population 2 og 100 fra population 4.<br />

Da der kun haves data med kanter fra DTU Aqua for population 1,2, og<br />

4 vil klassificeringen blive foretaget på baggrund af disse tre. Jeg har valgt<br />

til sammenligning af kantrutiner at dele disse populationer op i to dele. Et<br />

trænningssæt bestående af de første 75 otolitter for hver af de tre populationer<br />

og et testsæt på de resterende otolitter for populationerne. Diskriminant<br />

funktionen laves så baggrund af trænningssættet hvor efter det valideres med<br />

testsættet.<br />

Ved sammenligning mellem højre og venstre har jeg valgt at et mindre<br />

trænningssæt på 50 og dernæst et testsæt bestående af resten af otolitterne.<br />

i


abstract<br />

resume<br />

Elliptik fourier er blevet brugt til at klassificere en række sild baseret på<br />

form analyse af silde otolitter. Der er udviklet to forskellige kantrutiner der er<br />

blevet sammenlignet med den eksisterende metode fra DTU,Aqua med hensyn<br />

til formen og klassifikationen. En baseret på chain code og en baseret på<br />

Active contour models.. Resultaterne viste at den mest præcise kant fås ved<br />

metoden fra ”DTU Aqua’. Metoden baseret på chain code gav ofte nogle meget<br />

præcise kanter som mindede noget om dem fra DTU Aqua, men kanten havde<br />

lidt større problemer end den eksisterende metode ved kanter med svag gradient.<br />

AC modellens var generelt god , men havde problemer pga. startgættet<br />

hvilket betød den ikke altid gav nogle helt præcise estimeringer af omridset.I<br />

klassifikationen blev succesraten bestemt til 50, 38 og 36 procent for metoden<br />

baseret på chain code, Active contour models, og DTU Aqua. Til sidst er der<br />

blevet sammenlignet klassifikationsraten for imellem højre og ventre otolitter.<br />

Resultaterne viste overodnet en succes rate på 38 og 36 procent og dermed<br />

meget ens. Det kunne yderligere ses at der med undtagelse af population 5 så<br />

var der de samme klassificeringstendenser for høre og venstre.<br />

abstract<br />

Elliptic Fourier analysis have been used to classify heerings based on shape<br />

analysis from otoliths. Two edge detection methods have been developed. One<br />

based on a chain code algoritmen and one based on active contour models.<br />

These two methods have been compared to the one used by DTU,Aqua from<br />

the program ”Image pro”. The method based on a chain code algoritme gave often<br />

af very accurate detection of the boundary of the otolith. The method from<br />

”Image pro” have some problems with weak edges. The chain code algoritmen<br />

also have problems with weak edges, but seems to be magnified compared to<br />

the ”image pro” algoritmen. The AC model was in general reasonable accurate.<br />

It had however some problems with the starting curve sometimes being<br />

inside the otolith. In the classification the succesrate was 50,38 and 36 procent<br />

for the chain code algoritmen, the AC model and the aloritmen used by<br />

iii


iv ABSTRACT<br />

DTU,Aqua from ”image pro”. In the end the left handside otoliths were compared<br />

with the righthand side otoliths. The succesrate for the the left hand<br />

side and right handside were 36 and 38 procent and therefore almost equal.<br />

Population 1 differs a bit between the right hand side and the left hand side<br />

but in general the right hand side and the left hand side otoliths seems the<br />

make the same classification descisions.


Indhold<br />

Forord i<br />

abstract iii<br />

resume . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii<br />

abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii<br />

Indhold v<br />

Figurer vi<br />

Tabeller vii<br />

1 Indledning 1<br />

1.1 Problemfelt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1<br />

1.2 Problemformulering . . . . . . . . . . . . . . . . . . . . . . . . 3<br />

2 Metoder 5<br />

2.1 Metoder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5<br />

3 Form analyse 7<br />

3.1 chain code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7<br />

3.2 Active contour models . . . . . . . . . . . . . . . . . . . . . . . 8<br />

3.3 Eksterne kræfter . . . . . . . . . . . . . . . . . . . . . . . . . . 12<br />

4 Fourier 15<br />

4.1 Elliptic fourier . . . . . . . . . . . . . . . . . . . . . . . . . . . 16<br />

5 Diskriminant analyse 21<br />

5.1 diskriminant med multiple populationer . . . . . . . . . . . . . 23<br />

6 Implementering 25<br />

6.1 premodellering . . . . . . . . . . . . . . . . . . . . . . . . . . . 25<br />

6.2 EFA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26<br />

6.3 Active contour model . . . . . . . . . . . . . . . . . . . . . . . . 27<br />

6.4 Diskriminant . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28<br />

v


7 Resultater 31<br />

7.1 kanter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31<br />

7.2 lav correlation analyse . . . . . . . . . . . . . . . . . . . . . . . 34<br />

7.3 klassifikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34<br />

7.4 sammenligning af højre og venstre otolit . . . . . . . . . . . . . 36<br />

8 Diskussion 39<br />

8.1 Kanten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39<br />

8.2 Klassifikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40<br />

8.3 Sammenligning af højre og venstre . . . . . . . . . . . . . . . . 41<br />

9 Konklusion 43<br />

Litteratur 45<br />

A Appendiks 47<br />

Bilag 46<br />

Figurer<br />

1.1 otolitter fra fisk fra silde population í rügen . . . . . . . . . . . . . 1<br />

1.2 eksempel på manuel metode til klassifikation på baggrund af otolitter 2<br />

1.3 otolitter fra fisk fra silde population í rïgen . . . . . . . . . . . . . 3<br />

2.1 diagram over forløbet for analysen . . . . . . . . . . . . . . . . . . 6<br />

3.1 illustration af ne chain code algoritme . . . . . . . . . . . . . . . . 7<br />

3.2 eksempel på den første afledtes og brug af α . . . . . . . . . . . . . 9<br />

3.3 eksempel på den 2.afledtes virkning og brug af β . . . . . . . . . . 10<br />

3.4 bandmatrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11<br />

3.5 gaussian external force . . . . . . . . . . . . . . . . . . . . . . . . . 12<br />

3.6 gaussian external force . . . . . . . . . . . . . . . . . . . . . . . . . 13<br />

3.7 illustration af iterationsforløb for snake(A),klassisk ekstern kraft<br />

(B), zoom på den konkave område (C), [?] . . . . . . . . . . . . . 13<br />

4.1 fourier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15<br />

4.2 eksempel på opbyggelsen af elliptisk fourier . . . . . . . . . . . . . 16<br />

4.3 eksempel på opbyggelsen af elliptisk fourier, [8] . . . . . . . . . . . 17<br />

vi


5.1 gaussian distribrution . . . . . . . . . . . . . . . . . . . . . . . . . 22<br />

5.2 diskriminantillustration . . . . . . . . . . . . . . . . . . . . . . . . 23<br />

6.1 histogram over pixelværdier i billedet . . . . . . . . . . . . . . . . . 25<br />

6.2 diagram over forløbet for Active contour modellen . . . . . . . . . 27<br />

7.1 billed UK − 11773 − 05x25x1 med kant fra original model . . . . . 31<br />

7.2 billed 88 − 03 − 70 − 05x25x1 med kant fra ACM model . . . . . . 31<br />

7.3 billed 88 − 03 − 70 − 05x25x1 med kant fra ændret chain code . . . 32<br />

7.4 billed UK − 11772 − 05x25x1 med kant fra original model . . . . . 32<br />

7.5 billed UK − 11772 − 05x25x1 med kanter fra chain code model . . 32<br />

7.6 billed UK − 11772 − 05x25x1 med AC model . . . . . . . . . . . . 33<br />

7.7 billed 88 − 03 − 51 − 05x25x1 AC model hvor startgæt var inde i<br />

model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33<br />

7.8 billed 88 − 03 − 51 − 05x25x1 chain code model . . . . . . . . . . . 33<br />

7.9 billed 88 − 03 − 36 − 05x25x1 illustrerende hvor tætte otolitterne<br />

kan lægge på hinanden . . . . . . . . . . . . . . . . . . . . . . . . . 34<br />

Tabeller<br />

7.1 klassifkation af otolitter med den ændrede chain code algoritme på<br />

trænnningssæt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34<br />

7.2 klassifkation af otolitter med den ændrede chain code algoritme på<br />

testsæt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34<br />

7.3 klassifkation af otolitter med ACM algoritmen på trænnningssæt . 35<br />

7.4 klassifkation af otolitter med ACM algoritme på testsæt . . . . . . 35<br />

7.5 klassifkation af otolitter med original model på trænningsæt . . . . 35<br />

7.6 klassifkation af otolitter med original model på testsæt . . . . . . . 35<br />

7.7 klassifkation af venstre otolitter fra trænningssæt . . . . . . . . . . 36<br />

7.8 klassifkation af venstre otolitter fra testsæt . . . . . . . . . . . . . 36<br />

7.9 klassifkation af højre otolitter fra trænningsæt . . . . . . . . . . . 36<br />

7.10 klassifkation af højre otolitter fra trænningsæt . . . . . . . . . . . 36<br />

vii


Kapitel 1<br />

Indledning<br />

1.1 Problemfelt<br />

Otolitter også kaldet øresten på dansk befinder sig inde i det indre øre og er<br />

en del af balancesystemet og ser for sild ud som følgende:<br />

Figur 1.1: otolitter fra fisk fra silde population í rügen<br />

Alle fisk har alt efter det territorium de lever i, forskelligt behov for brug af<br />

balanceevnen. Dette giver sig udslag i at otolitternes form og størrelse varier<br />

meget blandt forskellige racer og forskellige populationer. Det medfører nogle<br />

unikke matematiske kendetegn. Det kan være placeringen af en pixel eller den<br />

geometriske form af kanten ved denne kant pixel. Otolitterne vokser igennem<br />

hele livet. De består primært af gelatine og carbion carbonat og strukturmæssigt<br />

består de af en masse ringe [5]. Ringene inde i midten af otolitten kaldes<br />

dagringe. De næste udover disse kaldes årringe. Fordelen ved brug af otolitter<br />

er at der er en sammenhæng mellem fisken vækst og otolittens. Otolitters<br />

vækst er dog ikke jævn. Hvis vandet er koldt eller der ikke er adgang til mad,<br />

vil fiskens vækst sættes ned og ringene vil blive mindre. Om sommeren hvor<br />

vandet er varmere og der er større adgang til mad, vil fisken, vokse mere og<br />

ringene vil blive tykkere. Det er muligt ved at tælle disse ringe at afgøre hvor<br />

1


2 KAPITEL 1. INDLEDNING<br />

gammel den er samt hvor mange dage den er, som vist i figur 1.2 og der fra<br />

bestemme hvilken population den så tilhører[4].<br />

Figur 1.2: eksempel på manuel metode til klassifikation på baggrund af otolitter<br />

Denne metode er sammenlignet med de fleste andre tilgængelige metoder<br />

meget præcis. Til gengæld er det en manuel process og der skal derfor bruges en<br />

del tid på at klassificere dem. For at løse dette problem, bruges ”formanalyse”<br />

til at klassificere fiskene på baggrund af otolitterns form. For at sammenligne<br />

otolitterne og deres kendetegn er det nødvendigt at de er invariante overfor<br />

skala, vinklen otolitterne er placeret i på billedet, placeringen af otolitterne<br />

på billerne samt det startpunkt der er valgt for kanten på billederne. Dette<br />

er nødvendigt for at sikre at en pixel har samme placering på alle billederne.<br />

For at gøre dette kan der bl.a. bruges wawelets eller fourier analyse til at lave<br />

en approksimation af kurven. I denne opgave har jeg valgt fourier fordi den er<br />

nem at gøre invariant for de nævnte ting ovenfor.<br />

Otolitter består primært af gelatine og carbion carbonat [5]. Ved tværsnit<br />

til analysering af formen kan give sig udslag i at de er noget gennemsigtige og<br />

gradienten i kanterne derfor ikke er tydelig samt at der er skarpe konstraster<br />

inde i otolitterne der angiver årringene. Det gør at et gradient filter også vil<br />

finde kanter inde i otolitten. Et eksempel på dette er angivet ved 1.3: Et andet<br />

problem der kan opstå er at, der kan være meget smalle aflange huller, der<br />

går fra kanten og ind i otolitterne. Dette giver sig udslag i at kanten fundet<br />

ved brug af et gradientfilter, vil betragte disse huller som en del af kanten af<br />

otolitten. Men da det ikke er en del af omridset af otolitten er dette en fejl.<br />

Et eksempel på dette er angivet ved


1.2. PROBLEMFORMULERING 3<br />

Figur 1.3: otolitter fra fisk fra silde population í rïgen<br />

1.2 Problemformulering<br />

1. Bestem omridset af otolitterne og sammenlign med metode brugt af<br />

DTU,aqua.<br />

2. Klassificer otolitterne ved hjælp af koefficienterne for fourierrækkerne i<br />

elliptisk fourier analyse<br />

3. Sammenlign højre og venstre otolith for om der er den samme information<br />

i højre og venstre otolith.<br />

Hovedformålet med denne rapport er at udvikle nogle andre mere robuste<br />

kantrutiner til klassificering af fisk end den givet ved DTU,Aqua.


Kapitel 2<br />

Metoder<br />

2.1 Metoder<br />

I det følgende vil jeg først beskrive hvordan jeg vurdere at DTU Aqua’a metode<br />

fungerer. Dernæst vil jeg beskrive to andre måder at finde kanten af objektet<br />

på. Den metode DTU Aqua bruger som jeg vil problematisere, til at klassificere<br />

fisk ud fra er en ”kantrutine” algoritime fra programmet ”imagepro”. Da<br />

dette program er købt software er det ikke muligt at se kildekoden og dermed<br />

være sikker på hvordan metoden er opbygget. Denne metode fungere ved at<br />

brugeren indtaster en pixel på kanten, en retning for billedet i det område<br />

samt hvorvidt den skal bevæge sig med eller mod uret. Dernæst vurdere jeg<br />

at gradienten af billedet bestemmes, hvorefter billedet gøres binært. Når det<br />

er gjort, bruges en chain code Algoritme. Den bevæger sig givet et startpunkt,<br />

en retning for kanten lokalt,rundt i den lukkede kurve startende og sluttende<br />

ved startpunktet. Da der først bruges et gradientfilter hvorefter det binariseres,<br />

vil evt. steder med lav densitet i kanten af otolitten have så lav gradient<br />

i det billede at de ikke fremkommer i billedet. Det betyder at kanten ikke er<br />

sammenhængende og dermed vil Chain Code algoritmen stoppe med at virke.<br />

Figur 2.1 illustrerer den overodnede process for de to metoder jeg har lavet.<br />

Først laves der en premodellering. Dernæst findes kanten. For den ene metode<br />

er der tale om brug af en chain code algoritme og i den anden er der tale<br />

om en chain code + en active contour model som er den illustreret ovenfor.<br />

Dernæst bestemmes de elliptiske fourier koefficienter og derfra foretages en<br />

klassificering.<br />

Den første kantrutine der beskrives nedenfor er et forsøg på viderudvikling af<br />

metoden fra DTU Aqua. For ikke at gøre dette manuelt er der først en premodelleringsdel,<br />

hvor billedet binariseres. Der sørges for ved valg af startgæt<br />

at identificere otolitter der er ødelagte og så vidt muligt automatisk vende<br />

otolitter om der er vender forkert. Når det er gjort bestemmes gradienten<br />

af billedet, hvorefter en chain code algoritme køres. Der er valgt at bruges<br />

5


6 KAPITEL 2. METODER<br />

Figur 2.1: diagram over forløbet for analysen<br />

matlabs indbyggede funktion bwtraceboundary.<br />

Der laves yderligere en model kaldet Active contour model. Forløbet for<br />

denne model er angivet i figuren 2.1. Den skal have en startkurve angivet og ud<br />

fra nogle krafter deformeres den så indtil den når et lokalt minimum i billedet.<br />

En af fordelene er at algoritmen ikke bevæger sig ind i meget smalle konkave<br />

områder, og hvis startgættet har gjort det, vil metoden, udrette kurven i dette<br />

område. En anden fordel er at metoden deformeres således at den tilpasser<br />

sig objektet omrids, hvorfor metoden, selvom otolitten har en lav densitet<br />

i kanten, stadig vil tilpasse sig kanten. En af ulemperne er så at metoden<br />

vil stoppe ved enhver given kraftig pixel. Så hvis der er for meget støj på<br />

billedet eller baggrunden ikke er ens, vil metoden stoppe ved disse pixels.<br />

Hvordan startkurven skal se ud afhænger af de eksterne kræfter der er valgt.<br />

De eksterne kræfter er dem der sørger for minimummet i billedet er i kanten.<br />

Ved brug af en ekstern kraft kaldet gaussian vil kurven skulle have et startgæt<br />

hvor alle punkterne er uden for otolitten. Ved tilføjelse af en ballonkræft vil<br />

modellen kunne startes inden i otolliten og derfra udvides til den når kanten<br />

eller uden for kanten af otolitterne og dernæst bevæge sig mod kanten. Den<br />

sidste er en GVF,Gradient Vector Flow model der som den eneste tillader at<br />

modellens startgæt må være både inde i otolitten og udenfor. Dette er en stor<br />

fordel da det er en risiko ved brug af startgæt som er meget tæt på løsningen.<br />

De eksterne kræfter nævnt ovenfor forklares nærmere senere i afsnittet om<br />

eksterne kræfter.


Kapitel 3<br />

Form analyse<br />

I dette afsnit præsenteres teorien bag de forskellige kantrutiner der gøres brug<br />

af i rapporten.<br />

3.1 chain code<br />

Figur 3.1: illustration af ne chain code algoritme<br />

Metoden der bruges på nuværende tidspunkt på DTU Aqua til at finde kanten<br />

med tager et startpunkt, en retning, for hvordan kanten bevæger sig området<br />

og så hvorvidt bestemmelsen af kanten skal foregå mod eller meduret. Dette<br />

svare til inputs til en chain code algoritme. Chain code er en metode der givet<br />

et binært billede af kanten, et startpunkt på kanten, den retning kanten skal<br />

bevæge sig lokalt, og den retning metoden skal bevæge sig rundt om kanten<br />

på bevæger sig rundt i kanten som vist i figur 4.2. Den tager så udgangspunkt<br />

i den angivne pixel og leder i alle 8 nabo punkter efter endnu et punkt. Hver<br />

retning har en værdi 0 er øst, 1 er sydøst osv. Hvis startretningen er 0, så vil<br />

den starte med at lede i 0 dernæst 1 osv. I metoden fra DTU,Aqua fås højst<br />

sandsynligt et billede af otolitten fremkommet ved hjælp af gradienten fra det<br />

gråtonede billede og derefter binært. Dermed vil de steder i gråtonebilledet<br />

med lav densitet i kanten ikke frekomme i kantbilledet og metoden vil fejle<br />

fordi kanten på billedet ikke er en lukket kurve. I tilfælde af at billedet indeholder<br />

smalle konkave huller vil metoden også betragte dem som en del af<br />

7


8 KAPITEL 3. FORM ANALYSE<br />

kanten og derfor lave et omrids af kanten der går ind i objektet. Der er i<br />

programmet brugt metoden bwtraceboundary til at gøre dette.<br />

3.2 Active contour models<br />

Med mindre der er lavet en henvisning er der i dette afsnit gjort brug af [3]<br />

Der findes to forskellige derformerbare modeller henholdsvis parametrisk og<br />

geometrisk. Geometriske modeller har den fordel at den kan splittes og sættes<br />

sammen igen hvilket isært er nyttigt ved eksempelvis skanninger hvor kanterne<br />

af objekterne kan være splittet i flere del. Ved brug af en parametriseret model<br />

vil modellen når den møder en stor gradient i billedet, som ved støj eller huller<br />

automatisk, stoppe ved den og antage den er at den er en del af omridset af<br />

otolitten. I dette projekt er har objekterne en klar og tydelig ensformig sort<br />

baggrund kun indeholdende otolitterne, hvorfor en parametriseret model er<br />

blevet valgt.<br />

Defomerbare modeller bevæger sig under påvirkning af interne kræfter Fint<br />

og potentielle krafter Fpot. Fpot bestemmes ud fra kurven på billedet billedet<br />

og sørger for at billedet derformeres mod kanten. De interne kræfter sørger<br />

for at kurven holdes blød og glat under deformeringen. dvs.differentiabel og<br />

samtidig sørger for at modellen skrumper. Da Active contour modeller under<br />

deformation er blød og glat og fordi det er muligt at indkorporerer viden om<br />

kanterne i billedet betyder det at disse modeller generelt set er robuste over<br />

for støj og huller i billedet.<br />

Minimering<br />

Active contour modeller fungerer ved at der opstilles en lukket kurve omkring<br />

objektet af formen X (s) = (X (s) , Y (s)) , s ∈ [0, 1].<br />

Kurven deformeres så indtil den når det ønskede objekt. Præmissen for dette<br />

er at se modellen som en fysisk balance equation af formen nedenfor, hvor<br />

målet er at minimere disse kræfter så meget som muligt.<br />

(3.1)<br />

Ftot (X) = Fint + Fpot<br />

Fint er givet ved:<br />

Fint = 1<br />

2 ·<br />

<br />

1 <br />

α (s) · <br />

∂X 2<br />

<br />

∂<br />

<br />

0 ∂s + β (s) · <br />

<br />

2X ∂s2 <br />

<br />

<br />

ds (3.2)<br />

<br />

Fint repræsenterer de kræfter der sørger for at kurven under deformeringen er<br />

tilpas blød og glat, således at den ikke strækkes for meget i en given reting


3.2. ACTIVE CONTOUR MODELS 9<br />

eller indeholder knæk. Det første led i udtrykket for Fint er den afledte af X,<br />

∂X<br />

∂s . Den har en retning og en størrelse som angiver retningen for kurven i<br />

det pågældende punkt. Det andet led er den 2.afledte af X, ∂2X ∂2 , hvis værdi<br />

s<br />

afhænger af hvor meget kurven er bøjet i det pågældende punkt. Det andet<br />

led vil kunne minimeres indtil kurven er så lige som muligt. Det første led vil<br />

kunne minimere kurven indtil den kun er en cirkel. Tilsammen vil de kunne<br />

defomere kurven indtil den kun er et punkt.<br />

Fpot sørger for kurven bevæger sig mod omridset af objektet og er defineret<br />

som følgende:<br />

1<br />

Fpot =<br />

0<br />

P (X (s)) ds = −∇ · P (x) (3.3)<br />

P (x) kommes nærmere ind på i afsnittet om eksterne kræfter på i afsnittet om<br />

eksterne kræfter ligningen 3.3 bestemmes ud fra billedet og har lokale minima<br />

i kantpixelsene.<br />

I 3.4 er det samlede udtryk opskrevet. Nedenfor kommes nu nærmere ind<br />

på de interne kræfter.<br />

Ftot = 1<br />

2 ·<br />

<br />

1 <br />

α (s) · <br />

∂X 2<br />

<br />

∂<br />

<br />

0 ∂s + β (s) · <br />

<br />

2X ∂s2 <br />

1<br />

<br />

ds + P (X (s)) ds (3.4)<br />

0<br />

For at beskrive de forskellige led for den interne kræft i ligningen ovenfor<br />

og deres indvirkning på modellen benyttes finitte differens til approksimation<br />

af de forskellige udtryk.<br />

∂X<br />

∂s<br />

∂X<br />

∂s<br />

≈ X (s + h) − X (s)<br />

h<br />

↔ X (s + h) ≈ X (s) + ∂X<br />

∂s<br />

Figur 3.2: eksempel på den første afledtes og brug af α<br />

· h (3.5)<br />

er tangenten i det pågældende punkt, der har en retning og en størrelse.<br />

Som det fremgår af 3.5 og 3.2 vil en større tangent betyde ved approksimation


10 KAPITEL 3. FORM ANALYSE<br />

af punkterne at kurven bliver strækket. Når modellen minimeres, sørges der<br />

for at tangentens størrelse mindskes således at modellen bevæger sig i mindre<br />

skridt imellem hvert s og at modellen derfor bliver mindre strakt i en given<br />

retning. α angiver hvor stor en del af tangenten der skal minimeres. Dvs. jo<br />

større α jo mindre må kurven strækkes. Det skal hertil nævnes at α og β er<br />

vektorer der angiver hvor meget henholdsvis ∂X<br />

∂s og ∂2X ∂2 skal vægtes. I prak-<br />

s<br />

sis er de dog en konstant, hvorfor de i rapporten vil blive betragtet som sådan.<br />

Nu findes via central differens en approksimation til den 2.afledte:<br />

∂2X X (s + h) − 2 · X (s) + X (s − h)<br />

≈ ↔<br />

∂s2 h<br />

X (s + h) − X (s) X (s) − X (s − h)<br />

−<br />

h<br />

h<br />

(3.6)<br />

Figur 3.3: eksempel på den 2.afledtes virkning og brug af β<br />

Ud fra 3.6 kan det ses at central differens er det samme som forward<br />

differens minus backward differens. De to udtryk vil have samme fortegn når<br />

hældningen på hver side er modsat og det følger heraf at den 2.afledte vil<br />

vokse, jo mere kurven er bøjet. Da ligningen 3.4 skal minimeres vil kurven jo<br />

større udtrykket er, blive rettet mere ud til en ret linje, som illustreret i figur<br />

3.3. β siger derfor noget om hvor lige kurven skal være. Jo højere den er jo<br />

mere lige bliver kurven.<br />

Det følger af [1] at enhver ligning af formen J = f (t, y, ˙y) hvor ˙y ≡ dy<br />

dt har<br />

et nulpunkt hvis følgende ligning er opfyldt: ∂f d ∂f<br />

∂y - dt ∂ ˙y<br />

Da J= f (t, y, ˙y) = 1<br />

2 · <br />

1 <br />

0 α (s) · ∂X<br />

<br />

<br />

∂s 2 <br />

<br />

+ β (s) · ∂2X ∂s2 <br />

<br />

ds + 1<br />

0 P (X (s)) ds<br />

hvor t=s,y = ∂X<br />

∂S og y· er lig ∂2X ∂S2 følger det at kurven der minimere Ftot må<br />

opfylde følgende ligning:<br />

<br />

∂<br />

α ·<br />

∂s<br />

∂X<br />

<br />

−<br />

∂s<br />

∂2<br />

∂s2 <br />

β · ∂2X ∂s2 <br />

− ∇P (X) = 0 (3.7)<br />

For at løse dette tilføjes tiden som ny variabel kaldet t og konstanten γ<br />

således at man får:<br />

γ · ∂X<br />

<br />

∂<br />

= α ·<br />

∂t ∂s<br />

∂X<br />

<br />

−<br />

∂s<br />

∂<br />

∂s2 <br />

β · ∂2X ∂s2 <br />

− ∇P (X) (3.8)


3.2. ACTIVE CONTOUR MODELS 11<br />

.<br />

∂X<br />

∂t<br />

er en værdi for hvor meget kurven bevæger sig ved hver iteration. Når<br />

kurven nærmer sig den ønskede kant vil dette led nærme sig 0 og man får 3.7<br />

Herfra er det så muligt ud fra finit differens at lave en approksimation af<br />

∂X<br />

∂s og ∂2X ∂s2 og derfra isoleres Xi :<br />

γ · Xi n+1−Xi−1 n<br />

∆t<br />

X i n+1 −2·Xi n +Xn−1<br />

∆S 4<br />

γ· Xi n+1−Xi n<br />

∆t<br />

= α · (Xi n+1 −Xi n)−(X i n−X i n−1)<br />

∆S 2<br />

+ Xi n−2·X i n−1 +Xi n−2<br />

∆S 4<br />

= α· (Xi n+1 −Xi n)−(X i n−X i n−1)<br />

∆S 2<br />

− ∇P X i−1 ↔<br />

− β · Xi n+2 −2·Xi n+1 +Xi n∆s 4<br />

∆s 4<br />

− 2 ·<br />

−β· (Xi n+2−4·Xi n+1 +6·Xi n−4·X i n−1 +Xi n+2)<br />

∆S4 −<br />

∇P X i−1<br />

Nu omskrives ligningen således at koefficienterne for X i n+2 ,Xi n+1 ,Xi n,X i n−1 ,Xi n−2<br />

således destår hver for sig.<br />

= −β · Xi n−2<br />

∆S 4 +<br />

−α·X i n−1<br />

∆S 2<br />

+ 4 · β·Xi n−1<br />

∆S 4<br />

γ · Xi n+1−Xi n<br />

∆t<br />

<br />

−α·Xi n+1<br />

∆S2 + 4 · β·Xi n+1<br />

∆S4 <br />

− β · Xi n+2<br />

∆S4 − ∇P Xi−1 <br />

+<br />

−2·α·X i n<br />

∆s 2<br />

+ 6·β·Xi n<br />

∆S4 <br />

+<br />

Dette kan omformuleres til: γ · Xi n+1−Xi n<br />

∆t = A · Xi − ∇P Xi−1 Heraf kan det ses at højresiden bestående af de interne kræfter vil være en<br />

båndmatrix af formen:<br />

Nu isoleres X i :<br />

Figur 3.4: bandmatrix<br />

X i = (I − τ · A) −1 <br />

· X i−1 <br />

− τ · P X i−1<br />

hvor A er pentadiagonalmatricen illustreret i 3.4 i og τ er γ<br />

δt<br />

(3.9)


12 KAPITEL 3. FORM ANALYSE<br />

3.3 Eksterne kræfter<br />

Gaussian<br />

Hvis man kun minimerer de interne kræfter vil modellen ikke vide hvornår den<br />

skal stoppe, og vil først stoppe ved centrum af den pågældende startkurve da<br />

det er det minimum for den cirkel. Det er derfor nødvendigt med eksterne<br />

kræfter for at sørge for modellen stopper i kanten. Et eksempel på en ekstern<br />

kræft der har minimum i kanten er givet ved 3.5<br />

Figur 3.5: gaussian external force<br />

<br />

<br />

P = −κ · ∇ [Gσ (x, y) · I (x, y)] 2 (3.10)<br />

Den eksterne kraft danner en matrix der ud fra den afledte og det negative<br />

fortegn, har store negative værdier i de pixels hvor der er skarpe farvemæssige<br />

overgange, og er tæt på nul de steder hvor billedet er ensfarvet. Da gradienten<br />

af billedet kun er stor i kanter betyder det kræften kun har betydning hvis<br />

kurven er meget tæt på løsningen. Derfor sløres billedet før gradienten findes<br />

således at overgange i billedet der repræsentere store gradient værdier vil<br />

spredes over flere pixels og dermed sørge for at kræften kan bruges længere<br />

udefra. Hvis der er støj i billedet, vil Active contour modellen stoppe ved den<br />

pixel da den har en stor gradient. Dette betyder samtidig at metoden kun ved<br />

brug af denne eksterne kraft ikke er særlig robust. Figur 3.10 er et eksempel<br />

på en ekstern kræft der har minimum i kanten.<br />

Ballonkraft<br />

Et problem ved kun at benytte den ovenstående eksterne kraft er at den<br />

eksterne kraft som nævnt kun virker meget tæt på selve otolitten. Indtil da er<br />

det de interne krafter der deformere kurven, hvilket går ud over hastigheden<br />

af modellen. Ved at tilføje endnu en ekstern kræft kaldet ballonkraften kan<br />

dette problem fjernes. Ballonkraften har formlen 3.11<br />

Fp (X) = ωp · N (X) (3.11)


3.3. EKSTERNE KRÆFTER 13<br />

hvor N er den indadrettede normalkræft ved et givent punkt som illustreret i<br />

figur 3.6.<br />

Figur 3.6: gaussian external force<br />

Det ses ud fra formlen at til hver punkt findes den normalkraft der er er<br />

ortogonal på retningsvektoren og som er indadrettet mod den deformerbare<br />

model. Den kan ikke bruges alene da den ikke har minimum i kanten, men kan<br />

med succes kombineres med den ovenfor givne kræft. Den sørger for kurven<br />

hele tiden bevæger sig indad eller udad alt efter ønsket og hvis den vægtes<br />

højt nok vil den sørge for at modellen ikke stopper i områder med støj men<br />

vil fortsætte sin deformation igennem disse pixels. Til gengæld vil metoden<br />

ligeledes gå igennem den rigtige kant hvis den vægtes for højt og der brug for<br />

en grad af finjustering for at få den helt optimale løsning, der gør man mister<br />

noget robusthed. En anden fordel der er med brug af denne yderligere kraft<br />

er at den kan være med til at tvinge modellen ind i konkave områder hvor det<br />

ellers vil være nødvendigt med eksempelvis gradient vector flow. Dette gør til<br />

gengæld metoden mere robust. En ulempe med denne kræft og den forrige, er<br />

at startkurven altid skal være placeret udenfor eller inden i modellen. Den må<br />

ikke placeres således at startkurven både kan være inde i objektet og uden for<br />

objektet.<br />

Gradient vector flow<br />

Figur 3.7: illustration af iterationsforløb for snake(A),klassisk ekstern kraft<br />

(B), zoom på den konkave område (C), [?]


14 KAPITEL 3. FORM ANALYSE<br />

Der er givet en energi ligning af formen:<br />

<br />

E =<br />

<br />

µ u 2 x + y 2 y + v 2 x + v 2 <br />

y |∇f| 2 · |g − ∇f| dxdy (3.12)<br />

GVF der er givet ved g (x, y) = (u (x, y) , v (x, y)) minimerer funktionen 3.12.<br />

Da den ligning er et variational problem som i 3.9 har derfor formen ∂f<br />

∂y<br />

- d<br />

dt<br />

∂f<br />

∂ ˙y :<br />

µ · ∇ 2 <br />

· u − (u − fx) f 2 x + f 2 <br />

y = 0 (3.13)<br />

µ · ∇ 2 <br />

· v − (v − fx) f 2 x + f 2 <br />

y = 0 (3.14)<br />

Disse ligninger løses nu ved at tilføje tiden som variabel således at man får :<br />

gt = µ · 2 <br />

·g − (g − ∇ · f) · fx 2 + fy 2<br />

(3.15)<br />

hvor µ er en konstant, g er gradient vector funktionen og fx, fy er gradienten<br />

af billedet i x og y retningen. Når kurven er langt fra løsningen vil udtrykket<br />

blive nul. Det betyder at når kurven er lang fra løsningen vil GVF kræften<br />

være defineret af laplacian operatoren ∇2 = ∂2g(x,y) ∂x2 + ∂2g(x,y) ∂y2 . Det specielle<br />

ved denne operator er at den i modsætning til ∇ ikke har en retning, men<br />

blot en størrelse. Dette betyder den har den samme størrelse i alle retninger<br />

Dermed vil informationen fra kanten bliver diffust spredt over hele billedet. I<br />

tilfælde af at modellen nærmer sig kanten, vil udtrykket (u − fx) sørge for at<br />

det bliver negativt og dermed minimerer modellen<br />

En problemstilling der er ved brug af ovenstående eksterne kræfter er at<br />

hvis der er nogle konvave områder kan de have svært ved at komme ind i<br />

dette område. Det skyldes som vist på figuren 3.7 at modellen i de konkave<br />

områder ikke bevæger sig nedad, men til siderne hvorfor modellens ekterne<br />

kraft aldrig trækker den nedad. Gradient vektor flow sørger for at gradienten<br />

bliver diffust spredt således at kurven ved et konkavt hul ikke kun går ud til<br />

sidderne, men helt ned i bunden af det konkave områder. Dete gør samtidig<br />

ballonkræften unødvendig. Ved at den kender retningen den skal bevæge sig<br />

sørges for at modellen hele tiden bevæger sig mod kanten. Dermed er det<br />

underordnet hvorvidt startkurven er indenfor en given radius af objektet og om<br />

startgættet placeres indenfor eller udenfor objektet, som med de ovenstående<br />

eksterne kræfter.


Kapitel 4<br />

Fourier<br />

Dette afsnit bygger på afsnittet [6] Fourier analyse er en måde at reproducere<br />

en periodisk stykvis kontinuert kurve. Der er to forskellige fourier algoritmer<br />

der kan bruges til at estimere en lukket kurve med. Den ene er i polære<br />

koordinatter ud fra en enkel fourier række [2]. Den er beskrevet nedenfor:<br />

R (θ) =<br />

∞<br />

An · cos (n · θ − Φ) (4.1)<br />

n=1<br />

Figur 4.1: fourier<br />

hvor Φ er centeret af objektet, n er den givne harmonik og θ er vinklen<br />

til et givent punkt. For at bestemme punkterne beskrives punkterne i polære<br />

koordinater i forhold til centeret. Dernæst beregnes afstanden til punktet. Og<br />

ud fra vinklen er det så muligt at beskrive kurven. Når der er meget konvekse<br />

områder i billedet vil denne metode dog ikke kunne fungere da der så vil være<br />

flere punkter på linjen og dermed vil der til samme vinkel være to forskellige<br />

punkter. Ved at benytte sig af elliptisk fourier slippes for dette da modellen<br />

er en parametrisk model der beskriver kanten som en sum af ellipser ud fra to<br />

fourierrækker. En for x koordinattet og en for y koordinattet. Ved at beskrive<br />

dem på denne måde slippes for ovennævnte problemstilling.<br />

15


16 KAPITEL 4. FOURIER<br />

4.1 Elliptic fourier<br />

Fourierrækker som dem omtalt nedenfor er en bestemt type af funktioner der<br />

er særdeles velegnet til at beskrive periodiske funktioner. Formelt set er der<br />

brug for uendelig mange harmoniks,n, og der skal derfor stå ∼ i stedet for<br />

lighedstegnet i 4.2 og 4.3. I praksis så kan der ved valg af n opnå en så lille<br />

fejl at der i praksis blot benyttes lighedstegn.<br />

Figur 4.2: eksempel på opbyggelsen af elliptisk fourier<br />

Nedenfor er beskrevet X og Y ligningen for ellipserne.<br />

N<br />

<br />

2 · n · π · t<br />

x (t) = A0 + an · cos<br />

+ bn · sin<br />

T<br />

n=1<br />

N<br />

<br />

2 · n · π · t<br />

y (t) = C0 + cn · cos<br />

+ dn · sin<br />

T<br />

n=1<br />

<br />

2 · n · π · t<br />

T<br />

<br />

2 · n · π · t<br />

T<br />

(4.2)<br />

(4.3)<br />

Koefficienterne er amplituderne for cos og sin leddet og bestemmer derfor<br />

også amplituden for x(t) og y(t). n angiver antallet af ellipser de skal bruges<br />

til at rekonstruktere signalet. Jo større n er jo højere bliver frekvensen og<br />

dermed flere svingninger på kurven. Da koefficienterne bliver mindre som omtalt<br />

nedenfor følger det at modellens ellipser her beskrevet også bliver mindre<br />

og mindre.<br />

t er i denne sammmenhæng den afstand det kræver at bevæge 1 pixels i<br />

den lukkede kurve således at tp−1 < t < tp hvortil det gælder at 1 ≤ p ≤ k<br />

hvor k er antallet af punkter på kurven. 4.2 danner et signal hvor an og bn<br />

tilsammen angiver aplituden for signalet i x retningen og cn og dn danner amplituden<br />

danner amplituden for y’s signal i y retningen.Dette er illustreret i 4.3


4.1. ELLIPTIC FOURIER 17<br />

Figur 4.3: eksempel på opbyggelsen af elliptisk fourier, [8]<br />

<br />

2·n·π·t<br />

2·n·π·t<br />

Hver ellipse bestemmes af de to signaler cos T + dn · sin T<br />

og <br />

N 2·n·π·t<br />

2·n·π·t<br />

n=1 cn · cos T + dn · sin T .<br />

Disse to signaler er funktioner af t og for hvert t findes et nyt punkt hvilket<br />

tilsammen danner en lukket elliptisk kurve. Når alle n ellipser adderes som i<br />

4.2 og 4.3 lægges de sammen som i figuren 4.1. 2∗n∗π∗t<br />

T er vinklen med x aksen<br />

til et givent punkt t, hvor T er den samlede længde af kurven. Jo større n<br />

er jo højere bliver frekvensen af svingningerne A0 og C0 angiver centrum for<br />

den første ellipse og dermed centrum for figuren. Hvis A0 og C0 derfor sættes<br />

lig 0 så vil alle billederne have samme placering i billedet . N er antallet af<br />

harmoniks. Jo større n er jo flere ellipser vil blive brugt til at rekonstruere<br />

kurven. Nedenfor er koefficienternes formler opskrevet:<br />

an =<br />

bn =<br />

cn =<br />

dn =<br />

T<br />

2 · n2 ·<br />

· π2 T<br />

2 · n2 ·<br />

· π2 T<br />

2 · n2 ·<br />

· π2 T<br />

2 · n2 ·<br />

· π2 K ∆Xp<br />

p=1<br />

∆tp<br />

K ∆Xp<br />

p=1<br />

∆tp<br />

K ∆Yp<br />

p=1<br />

∆tp<br />

K ∆Yp<br />

p=1<br />

∆tp<br />

<br />

· cos<br />

<br />

· sin<br />

<br />

· cos<br />

<br />

· sin<br />

2 · n · π · tp<br />

T<br />

2 · n · π · tp<br />

T<br />

2 · n · π · tp<br />

T<br />

2 · n · π · tp<br />

T<br />

<br />

− cos<br />

<br />

− sin<br />

<br />

− cos<br />

<br />

− sin<br />

<br />

2 · n · π · tp−1<br />

T<br />

<br />

2 · n · π · tp−1<br />

T<br />

<br />

2 · n · π · tp−1<br />

T<br />

<br />

2 · n · π · tp−1<br />

T<br />

(4.4)<br />

(4.5)<br />

(4.6)<br />

(4.7)<br />

hvor tp er den samlede afstand imellem de første p pixels, ∆yp og ∆xp er<br />

afstanden imellem pixel p og pixel p-1 i x og y retningen. ∆tp er den euklidiske<br />

afstand fra pixel p-1 til pixel p. Jo større antallet af harmoniks er jo flere<br />

ellipser vil der være og disse fourier koefficienter vil der angiver amplituden


18 KAPITEL 4. FOURIER<br />

i x og y retninge vil og dermed også bestemmer éllipsen akser bliver mindre<br />

og mindre for hver n. Dette betyder ellipserne vil kunne gengive flere og flere<br />

detaljer i rekonstruktionen af kanten. Dette ses ovenfor ved at akserne generelt<br />

bliver mindre og mindre jo større n er da n 2 i det konstante led vil få ledende<br />

til at koefficienterne ovenfor til at mindskes jo større n er. Dermed give nogle<br />

mindre og mindre ellipser til at lave mindre og mindre detaljer.<br />

Invarians<br />

For at kunne sammenligne koefficienterne er det nødvendigt at objektets kant<br />

som der rekonstrueres alle er placeret ens, således at en given kantpixel svare<br />

til den samme pixel i det andet billede. Det er som nævnt ovenfor derfor nødvendigt<br />

at gøre otolitterne invariante over for rotation, placering, startpunkt<br />

og skala.<br />

Invarians over for startplacering opnås ved at betragte den første led i<br />

ligningen 4.2 og 4.3 Herudfra kan afstanden til punktet bestemmes ved hjælpe<br />

af E = √ x1 + y1 Derfra findes gradienten og sættes lig 0 hvorved vinklen theta<br />

der som nævnt ovenfor angiver vinklen fra hovedaksen til punktet kan isoleres<br />

på den ene side og bestemmes til:<br />

θ = 1<br />

⎡<br />

· arctan ⎣<br />

2 2 ( ⎤<br />

a1 · b1 − c1 · d1<br />

⎦ (4.8)<br />

a 2 1 + c2 1 − b2 1 − d2 1<br />

Det gælder at udtrykket ovenfor altid finder storeaksen for den første harmonic<br />

der bevæger sig væk fra startpunktet i samme rotationsretning som figuren<br />

dvs. vinklen altid er negativ. Der vil derfor både for rotation med hensyn til<br />

θ og for ψ blive brugt en rotations der drejer ellipserne mod uret. Det følger<br />

hermed at: <br />

a∗ n c∗ n<br />

b∗ n d∗ <br />

<br />

cos (θ1) sin (θ1)<br />

=<br />

·<br />

n −sin (θ1) cos (θ1)<br />

<br />

an cn<br />

(4.9)<br />

bn dn<br />

Næste skridt er at sørge for de er roteret ens således at hovedaksen for den<br />

første harmonic er parallel med x-aksen. Da der er opnået invarians over for<br />

startpunkt vides det at t∗ =0. Derfor vil<br />

X ∗ 1 (t ∗ ) = a ∗ <br />

2π · t∗ <br />

1 · cos + b<br />

T<br />

∗ <br />

2 · π · t∗ <br />

1 · sin<br />

(4.10)<br />

T<br />

Y ∗<br />

1 (t ∗ ) = c ∗ <br />

2π · t∗ <br />

1 · cos + d<br />

T<br />

∗ <br />

2 · π · t∗ <br />

1 · sin<br />

(4.11)<br />

T<br />

Da der gælder følgende for vinklen med x-aksen: tanψ = y<br />

x<br />

bestemmes til:<br />

kan vinklen


4.1. ELLIPTIC FOURIER 19<br />

<br />

ψ = arctan y∗ 1 (0)x∗ 1 (0)] = arctan c∗ 1<br />

a∗ koefficienterne roteres med en rota-<br />

1<br />

tionsmatrix mod uret og man får:<br />

<br />

cos (ψ1)<br />

=<br />

−sin (ψ1)<br />

<br />

sin (ψ1)<br />

·<br />

cos (ψ1)<br />

<br />

(4.12)<br />

a∗∗ n<br />

b∗∗ n<br />

c∗∗ n<br />

d∗∗ n<br />

a ∗ n c ∗ n<br />

b ∗ n d ∗ n<br />

Invarians over for placering fås ved som før nævnt at undlade bruge udtrykkende<br />

A0 og C0<br />

Da akserne som før nævnt bliver mindre og mindre jo større n er, kan<br />

metoden gøres uafhængig af skala. Det gøres ved at dividere alle koefficienter<br />

med størrelsen af storeaksen af den første harmonic. Da metoden er blevet<br />

gjort invariant over for startpunkt og derfor starter ved hovedaksen vil det<br />

sige at for t ∗ = 0 fås hovedaksen for ellipsen:<br />

E ∗ (0) =<br />

<br />

x ∗ 1 (0) 2 + y ∗ 1 <br />

2 2<br />

1 (0) = a ∗2<br />

1 + c ∗2<br />

1<br />

2<br />

1<br />

(4.13)<br />

Nedenfor er illustreret rekonstruktionen af billedet ved 1 2 16 og 32 harmonics.


Kapitel 5<br />

Diskriminant analyse<br />

nedenstående afsnit bygger på artiklen [10]<br />

Hvis der er n forskellige populationer af formen πi = N (µi, <br />

i ) og der<br />

ønskes at klassificere alle objekter til en given klasse kan der gøres brug af<br />

diskriminant analyse. Der er for at kunne gøre dette lavet en antagelse om at<br />

populationerne følger en normalfordeling af formen<br />

fi (x) =<br />

1<br />

√<br />

2 · φp ·<br />

1<br />

det <br />

<br />

· exp −<br />

i<br />

1<br />

2 ·<br />

<br />

x − µi) T ·<br />

−1<br />

i<br />

· (x − µi)<br />

<br />

(5.1)<br />

Det følger af baysian theorem [7] at den betingede sandsynliged for en begivenhed<br />

er :<br />

P (Ai|B) = P (B|Ai) · P (Ai)<br />

<br />

j P (B|Aj)<br />

. (5.2)<br />

· P (Aj)<br />

Posteorior distribrutionen er derfor givet ved<br />

k (πi|x) =<br />

pv·fv<br />

pi·fi+...pk·fk<br />

hvor pi er den på forhånd givne prior sandsynlighed for at tilhøre den i’te<br />

population og f er distribrutionen. Det følger af 5.2 at den population som en<br />

given x skal vælge som klasse er den hvor den betingede sandsynlig er størst.<br />

Som det desuden fremgår af ligningen 5.1 vil fi give størst værdier ved den<br />

distribrution hvor den er tættest på centrum set i forhold til standardafvigelsen<br />

da den måler hvor stor distribrutionen er. Dette føre til bayes løsning:<br />

Sv > Sifor∀ihvorSi = pi · fi<br />

Nedenfor er illustreret en normaldistribrution i 2d<br />

21<br />

(5.3)


22 KAPITEL 5. DISKRIMINANT ANALYSE<br />

Figur 5.1: gaussian distribrution<br />

Det følger af udtrykket ovenfor og af tegningen at afstanden fra x til centrum<br />

skal måles i forhold til standardafvigelsen da det er den der siger noget<br />

om hvor stor distribrutionen er. Hvis variansen er stor vil distribrutionen som<br />

vist ovenfor blive breddere og derfor mere sandsynligt at det er den distribrution<br />

der skal vælges. Hvis man har en viden om at en given population ikke er<br />

lige så sandsynlig at få vil der være en øget risiko for at x ikke tilhøre denne<br />

population. For at tage højde for dette beregnes derfor prior distribrutionen<br />

for p = Ni<br />

N<br />

Ud fra antagelsen om at der er equal losses dvs. der ikke er nogen grund til<br />

at x specielt ikke må lande i en speciel population ved en fejl. Dette kunne være<br />

tilfældet hvis der var en risiko forbundet ved at lave en forkert bestemmelse<br />

af dets population. Udtrykket ovenfor i 5.1 kan forkortes ved at fjerne det<br />

1<br />

konstante led √2·φ<br />

p · 1<br />

det ·. Ved at bruge logaritmen af det udtryk fås:<br />

Si = − 1<br />

2<br />

ln (Det (<br />

i<br />

i<br />

1 )) − 2 (x − µi) T · −1 i (x − µi) + ln (p)<br />

Da x bliver ganget med sig selv i ovenstående ligning vil der opstå led af<br />

x 2 hvorfor dette er en kvadratisk diskriminant funktion Hvis man kan lave antagelsen<br />

om at de forskellige distribrutioner har samme varians kan udtrykket<br />

forkortes yderligere til: Si = x T · −1 ·µi − 0.5 · µ T i · −1 ·µi + ln (p)<br />

Da x kun optræder en gang i denne diskriminant funktion er der derfor<br />

tale om en lineær diskriminant funktion<br />

Det mest optimale som før nævnt er at klassificere ved at maksimere afstanden<br />

imellem middelværdierne for populationerne i forhold til standardafvigelsen<br />

således at distribrutionerne kommer så langt væk fra hinanden som<br />

muligt. I praksis er det hvad leddet 0.5·µ T i · −1 ·µi ovenfor gør og som måles i<br />

posteorior distribrutionen. Og man vælger så den diskriminant tilhørende den<br />

population der har størst værdi og derfor maksimere denne afstand mest. En<br />

anden måde er ved at lave den forudsætning at de har samme distribrution<br />

og bruge koefficienterne som er isometrisk ens således at koordinaterne bliver<br />

sfæriske og topografisk ens. Dermed vil variansen imellem hver af populationerne<br />

være enhedsmatricen og man kan bruge fishers diskriminant funktion<br />

der bruger afstanden til den nærmeste middelværdi til at klassificere. Det er<br />

vigtigt at tage p med i denne betragtning da som det ses af ligningerne ovenfor<br />

p flytter diskriminant funktionen tættere på en population med høj prior og


5.1. DISKRIMINANT MED MULTIPLE POPULATIONER 23<br />

væk fra populationer med lav prior, med den konsekvens at der oftere vil blive<br />

klassificeret som den population med høj prior sandsynlighed.<br />

5.1 diskriminant med multiple populationer<br />

hvis der er givet K populationer som lægger i et P dimensionalt rum, hvor P<br />

er antallet af variable. Så er det muligt at beskrive diskrimiant analysen maksimalt<br />

i K-1 dimensioner. Dette er isært brugbart jo større antallet af variable<br />

er, da dette i sådanne tilfælde vil nedbringe antallet af dimensioner drastisk.<br />

Fishers diskriminant handler om at finde det mest optimale underrum af K-<br />

1 uden at miste information. Dvs. målsætningen er at finde egenvektorerne<br />

Wi, + . . . +, Wm der udspænder dette underrum mest muligt således at koordinatterne<br />

i underrummet<br />

U = W t · X = d j=1 wi · xi<br />

kan udregnes med så lidt tab af information som muligt. Dette er forsøgt<br />

illustreret i 5.2<br />

Figur 5.2: diskriminantillustration<br />

Funktion bygger den ide at det mest optimale for en diskriminant funktion<br />

er at middelværdierne for hver gruppe har størst mulig afstand i forhold til<br />

deres spredning, således at det mindste overlap finder sted, hvilket svare til at<br />

maksimere forskellen i variansen imellem grupperne B i forhold til variansen i<br />

grupperne W. Det følger af [7] at hvis matricen B er positive semidefinite, og W<br />

er positive definite. Så har B/W egenværdierne lambdai > + . . . + > lambdam<br />

med egenvektorerne Vi, . . . , Vm der udspænder rummet R m . hvor vi ·B ·vj = 0<br />

og i . Heraf følger det at B/W kan skrives som:<br />

φ (d) = d′ · B · d<br />

d ′ · W · d<br />

(5.4)<br />

hvortil det følger at: sup φ (d) = φ (d1) = λ1infφ (d) = φ (dm) = λm Det vil<br />

sige at egenvektorerne d1 ,d2 for B<br />

W vil være dem der maksimerer variansen<br />

mest. Punkterne samt Middelværdier og covarians matrix kan nu udregnes for<br />

det nye underrum og plottes grafisk. Hvis der ønskes en klassifikation så fås<br />

de nye diskriminant variable som Zi = . i · X. Hvorfra en klassisk diskriminant


24 KAPITEL 5. DISKRIMINANT ANALYSE<br />

funktion som ovenfor kan benyttes. Hvor mange variable der ønskes benyttes<br />

afhænger af hvor stor deres betydning er for at maksimerer variansen . Dette<br />

kan ses ud fra egenværdierne jo mindre de er jo mindre betydning har dens<br />

egenvektor. Når det nævnes at der vælges de egenvektorer der maksimere<br />

variansen og dermed beskriver mest information om objekterne, så er der<br />

tale om den varians som er mest generel. Den information der gør otolitterne<br />

unikke svare ikke til en særlig stor del af variansen, hvilket gør noget af den<br />

information der skal bruges til klassifikation kan gå tabt ved denne måde<br />

at vælge variable på. Derfor vil denne metode samt metoder som ”stepwise<br />

forward regression” i [11] ikke blive brugt i denne rapport.


Kapitel 6<br />

Implementering<br />

Nedenfor er forklaret implementationen af nogle af funktionerne og hvilke<br />

overvejelser der har været.<br />

6.1 premodellering<br />

I premodelleringen orienteres billederne således at otolitterne altid vender<br />

samme vej. Til at starte med vælges en mappe hvor billederne der skal køres<br />

lægger i. Der køres dernæst et for loop som iterere igennem billederne og indlæser<br />

dem. Når et billede er indlæst binæriseres billedet med en treshold<br />

værdi på 103.<br />

Figur 6.1: histogram over pixelværdier i billedet<br />

Dette skyldes at baggrundstøjen er placeret meget centralt fra omkring 50<br />

til omkring 100 hvilket figur 6.1 netop viser. Der er lidt støj på billedet hvilket<br />

betyder at der er i det binære billede optræder flere objekter på billedet.<br />

Derudover er der også billeder hvor der er mere end to otolitter på billedet.<br />

Der beregnes dernæst via regionprops arealet, centeret for punkterne af pixels.<br />

Til sidst approksimeres alle objekter i billedet med ellipser og store aksen<br />

25


26 KAPITEL 6. IMPLEMENTERING<br />

bestemmes. Der vælges dernæst de klumper af pixels som er større end 90000<br />

pixels for at fjerne støj og mindre objekter. Ved at sætte værdien så højt sikres<br />

at det center,areal og store akse er for otolitten/otolitterne på billedet.<br />

Hvis der kun er et indeks checkes dernæst om dens store akse er mindre end<br />

570, hvis det er tilfældet vendes billedet med metoden im = fliplr (im) og<br />

den anden otolit vælges.<br />

Når det er gjort fjernes enkeltpunkter via filteret spur fra bwmorph og kanten<br />

bestemmes. Dernæst bruges chain code algoritmen bwtraceboundary. Det er<br />

ikke lykkedes at lave en stabil algoritme der kan finde ud af om den er højre<br />

eller venstre vendt. Der er derfor lavet en metode kaldet<br />

punkter = flippunkter ([x, y] , dim, direction) som givet dimensionerne af<br />

billedet samt kurven drejer kurven så den vender rigtigt.<br />

Ved at spejle kurven i y-aksen betyder det koefficienterne for y-koordinattet<br />

ændrer fortegn. I langt de fleste tilfælde har otolitterne når de vender korrekt<br />

positivt fortegn på c3 og d3 og modsat fortegn på c2 og d2. Dette gælder dog<br />

ikke i alle billederne, hvorfor denne metode ikke er implementeret. Men det<br />

er klart at der er en sammenhæng og at det bør være muligt ud fra cn og dn<br />

at finde et stabilt gæt for om billederne er højre vendt eller venstre vendt. Til<br />

sids checkes om der er 2 otolitter på billedet. I dette tilfælde beregnes omridset<br />

af denne og gemmes i et andet cell array.<br />

6.2 EFA<br />

Elliptisk fourier analysis består af to funktioner en til at beregne koefficienterne<br />

og en til at rekonstruerer signalet. Funktionen der beregner koefficienterne<br />

og som kan gøre dem invariante har følgende form:<br />

functioncoefmatrix = efa(kant, harmonics, startpunkt, rotate, skalar, translation)<br />

kant er en m · 2 matrix hvor første søjle er x koordinattet og anden søjle er y<br />

koordinattet. Harmonics er antallet af harmonics n der skal bruges i modellen.<br />

startpunkt,skalar, translation skal være 1 eller 0 og angiver om koefficienterne<br />

skal være invariante over for dette.<br />

coefmatrix er en 4· antal harmoniks matrix, hvor hver række er henholvis<br />

koefficienterne for a, b,c, og d. kant er en matrix med n · 2 matrix med henholdsvis<br />

x og y koodinatterne. Harmonics er antallet af harmoniks der ønskes<br />

brugt og startpunkt,rotate, skalar, translation skal være 1 elller 0 og angiver<br />

hvorvidt man ønsker invarians over for disse ting.<br />

Der startes med at beregne koefficienterne an,bn,cn og dn ud fra formen<br />

4.4,4.5,4.6 og 4.7. Hvis der ønskes invarians over for translation betyder det<br />

så at A0 og C0 ikke beregnes. Hvis der dernæst ønskes invarians over for<br />

startpunkt beregnes (4.8). Der checkes dernæst om det er vinklen til hoved<br />

eller lille aksen ved at lægge π til i beregningen af vinklen og dernæst checke<br />

afstanden til startpunktet. Der vil være størst afstand ved hovedaksen og<br />

derfor vælges så den der har størst afstand. Når vinklen er bestemt benyttes


6.3. ACTIVE CONTOUR MODEL 27<br />

dernæst en rotationsmatrix for moduret til at beregne de nye koefficienter, som<br />

i (4.1). Hvis der ønskes invarians over for rotation bestemmes ligeledes vinklen<br />

ψ angivet i 4.1 og der checkes ligeledes om vinklen er den korrekte. Til sidst<br />

hvis der ønskes invarians over for Skalar bruges ved at dividere koefficienterne<br />

med (4.13).<br />

Til at estimere antallet af harmonics der skal bruges, er summen af fejlene<br />

imellem kanten og rekonstruktionen fra harmonic = 20 til 50 blevet bestemt<br />

og plottet. Der er valgt det N hvor fejlen er mindst i forhold til antallet af<br />

ellipser N. Der fås:<br />

Det ses ud fra grafen at kurven har det mindste forhold imellem fejl og n<br />

ved omkring 35. I det efterfølgende kapitel med resultater er disse opnået på<br />

baggrund af 35 harmonics, dvs. 140 variable i alt. ´<br />

6.3 Active contour model<br />

Der er ved implementationen af snake modellen blevet taget udgangspunkt i<br />

noget kode fra [9]. I tilfælde af gvf og resam er koden blot blevet kopieret og<br />

brugt uden at lave ændringer.<br />

Figur 6.2: diagram over forløbet for Active contour modellen<br />

active contour har som formel:<br />

function [x, y] = snake (x, y, alpha, beta, gamma, fx, fy, img, numbers, tol, maxiter, , omega, ballon)<br />

x,y angiver koordinatterne for startkurven. alpha og beta er konstanterne<br />

nævnt i afsnit 3.2. Disse er sat til 0.1 og 0.1. gamma er konstanten for den<br />

eksterne kræft, angivet ved fx og fy. Afstand er den ønskede afstand imellem<br />

pixels i kurven og tol samt maxiter er den minimale residual imellem to iterationer<br />

der må være før modellen stoppes samt maksimale antal iterationer.<br />

ballon er en konstant som enten er 1 eller 0 alt efter om den ønskes brugt i<br />

beregningen.


28 KAPITEL 6. IMPLEMENTERING<br />

Funktionen er opbygget omkring en while løkke. Før while løkken beregnes<br />

koefficienterne til pentadiagonalmatricen A. Når kurven deformere vil punkterne<br />

have en tendens til at samle sig i områder [3]. For at undgå dette og<br />

sørge for der hele tiden er den samme afstand imellem pixels kaldes funktionen<br />

resam (x, numbers).<br />

resam (x, numbers) er en funktion jeg har brugt fra [9]. Der ønskes at koordinatterne<br />

er placeret jævnt på kurven med ens afstand. Inde i funktionen laves<br />

der derfor en vektor med afstanden 3 af samme længde som kurven. For denne<br />

vektor bruges interpolation til at få x og y koordinatter. Det vil være muligt<br />

at flytte denne beregning ud af kurven hvis man ved hvor mange punkter der<br />

skal bruges, til beregningen for at få en god løsning. I praksis varierer størelsen<br />

af otolitterne dog meget hvilket betyder at afstanden imellem pixels i et sådan<br />

tilfælde også vil varierer meget. Hvis afstanden er for stor kan det betyde at<br />

modellen ikke stopper ved kanten, hvis afstanden er for lille kan det betyde<br />

at modellen bliver alt for langsomt. Det giver derfor en mere robust metode<br />

ved at den ønskede afstand imellem pixels som input i stedet for.<br />

Derefter bestemmes de eksterne kræfter for de nye x og y værdier ved hjælp<br />

bilinear interpolation vf = linear2(ExtrapV al, f, x, y);. Det næste skridt i<br />

funktionen er at bestemmer A matricen for de nye koordinatter. Dette gøres<br />

ved at give koefficienterne og punkterne på kurven som input. De nye x<br />

og y koodinatter beregnes dernæ ud fra ligningen 3.9. Til sidst bestemmes<br />

forskellen imellem x og y koordinatterne for de sidste to iterationer som<br />

((xn−xn−1) 2 +(yn−yn−1) 2 )<br />

n<br />

, hvor n er antallet af punkter. Hvis forskellen er mindre<br />

end . . . eller maks antal iterationer er nået stoppes modellen.<br />

6.4 Diskriminant<br />

Der er implementeret en diskriminant funktion der kan beregne lineær og<br />

kvadratisk diskriminant. DA har følgende input og output<br />

[Sanswermatrix, Ac, acc] = DA (coef, method, centroids, p, Nk)<br />

hvor en matrix med observationerne i rækken og variablende i søjlerne. Det<br />

andet input er navnet på den ønskede model. Det tredje input er variabel gennemmsnitsne<br />

for de forskellige populationer. De fjerde input er prior sandsynlighederne<br />

og til sidst en vektor med størrelsen for hver population. Outputtet<br />

x er en matrix med alle de forskellige diskriminants score. Scores er en vektor<br />

af samme længde som antallet af observationer. Matrix er konfusionmatricen<br />

for modellen. AC er et succeskriterium af typen nedenfor:. acc er et estimat<br />

for succesraten for hver enkel population. Til bestemmelse af fejlraten af klassificeringen<br />

beregnes en succesrate der vægter populationerne efter deres antal<br />

af observationer:<br />

AC= A+D<br />

A+B+C+D hvor A og D er diagonal elementerne.<br />

Der bestemmes også en succesrate forkortet TP i resultaterne ved at dividere


6.4. DISKRIMINANT 29<br />

elementerne i konfusionmatricen med antallet af observationer for dens rigtige<br />

population. Derved opnås nogle resultater der er vægtet ens.


Kapitel 7<br />

Resultater<br />

7.1 kanter<br />

Figur 7.1: billed UK − 11773 − 05x25x1 med kant fra original model<br />

Figur 7.2: billed 88 − 03 − 70 − 05x25x1 med kant fra ACM model<br />

31


32 KAPITEL 7. RESULTATER<br />

Figur 7.3: billed 88 − 03 − 70 − 05x25x1 med kant fra ændret chain code<br />

Figur 7.4: billed UK − 11772 − 05x25x1 med kant fra original model<br />

Figur 7.5: billed UK − 11772 − 05x25x1 med kanter fra chain code model


7.1. KANTER 33<br />

Figur 7.6: billed UK − 11772 − 05x25x1 med AC model<br />

Figur 7.7: billed 88 − 03 − 51 − 05x25x1 AC model hvor startgæt var inde i<br />

model<br />

Figur 7.8: billed 88 − 03 − 51 − 05x25x1 chain code model


34 KAPITEL 7. RESULTATER<br />

Figur 7.9: billed 88 − 03 − 36 − 05x25x1 illustrerende hvor tætte otolitterne<br />

kan lægge på hinanden<br />

7.2 klassifikation<br />

I tabellerne nedenfor er søjlerne de rigtige populationer observationerne tilhøre<br />

og rækkerne er hvad de er blevet bestemt til.<br />

LDA Population1 Population2 Population 4<br />

Population1 68 11 1<br />

population2 6 64 0<br />

population3 1 0 74<br />

TP rate 0.9067 0.8533 0.9867<br />

Tabel 7.1: klassifkation af otolitter med den ændrede chain code algoritme på<br />

trænnningssæt<br />

LDA Population1 Population2 Population 4<br />

Population1 20 33 6<br />

population2 6 30 5<br />

population4 4 10 14<br />

TP rate 0.6667 0.4109 0.56<br />

Tabel 7.2: klassifkation af otolitter med den ændrede chain code algoritme på<br />

testsæt<br />

AC= 0.5


7.2. KLASSIFIKATION 35<br />

LDA Population1 Population2 Population 4<br />

population1 72 2 1<br />

population2 2 72 0<br />

population4 0 1 74<br />

TP rate 0.9733 0.9600 0.9867<br />

Tabel 7.3: klassifkation af otolitter med ACM algoritmen på trænnningssæt<br />

AC= 0.9733<br />

LDA Population1 Population2 Population 4<br />

population1 15 39 7<br />

population2 13 21 5<br />

population4 2 13 13<br />

TP rate 0.5 0.2877 0.5200<br />

Tabel 7.4: klassifkation af otolitter med ACM algoritme på testsæt<br />

AC = 0.38<br />

LDA Population1 Population2 Population 4<br />

Population1 75 0 0<br />

population2 0 75 11<br />

population4 0 0 64<br />

TP rate 1 1 0.8533<br />

Tabel 7.5: klassifkation af otolitter med original model på trænningsæt<br />

AC = 0.9511<br />

LDA Population1 Population2 Population 4<br />

Population1 2 28 4<br />

population2 5 18 6<br />

population4 2 15 15<br />

TP rate 0.2222 0.2951 0.600<br />

Tabel 7.6: klassifkation af otolitter med original model på testsæt<br />

AC = 0.36


36 KAPITEL 7. RESULTATER<br />

7.3 sammenligning af højre og venstre otolit<br />

LDA Population1 Population2 Population3 Population 4 Population5<br />

Population1 45 3 1 1 0<br />

population2 4 44 1 0 0<br />

population3 1 3 47 0 0<br />

population4 0 0 0 48 2<br />

population5 0 0 1 1 48<br />

Tabel 7.7: klassifkation af venstre otolitter fra trænningssæt<br />

LDA Population1 Population2 Population3 Population 4 Population5<br />

Population1 17 26 18 7 7<br />

population2 12 20 6 2 2<br />

population3 10 10 29 7 6<br />

population4 3 11 7 18 8<br />

population5 2 7 18 10 19<br />

AC=0.3652<br />

Tabel 7.8: klassifkation af venstre otolitter fra testsæt<br />

LDA Population1 Population2 Population3 Population 4 Population5<br />

Population1 45 3 0 0 2<br />

population2 3 46 0 1 0<br />

population3 1 1 49 0 0<br />

population4 0 0 0 49 2<br />

population5 1 0 1 0 46<br />

Tabel 7.9: klassifkation af højre otolitter fra trænningsæt<br />

LDA Population1 Population2 Population3 Population 4 Population5<br />

Population1 14 28 8 4 11<br />

population2 11 23 15 7 3<br />

population3 4 1 39 3 6<br />

population4 4 11 3 18 8<br />

population5 11 11 13 12 14<br />

Tabel 7.10: klassifkation af højre otolitter fra trænningsæt


7.3. SAMMENLIGNING AF HØJRE OG VENSTRE OTOLIT 37<br />

AC= 0.38


Kapitel 8<br />

Diskussion<br />

8.1 Kanten<br />

Generelt set fungerer DTU,Aqua’s metode rigtig godt. Kanten den finder er<br />

ofte meget præcis og kurven er nogenlunde blød og glat, som 7.1 er et godt<br />

eksempel på. Der er enkelte problemstillinger ved DTU,Aqua’s meode som ved<br />

7.4 hvor kanten ikke er skarp og kant rutinen bevæger sig ind i otolitten. Det<br />

er ikke lykkedes at identificere nogle otolitter hvor den fejlede. Men fordi jeg<br />

har vurderet kantrutinen fra ”DTU,Aqua” er en chain code algoritme ligesom,<br />

vil jeg komme med eksempler på steder den vil fejle ud fra min egen verison af<br />

chain code funktionen. I det tilsvarende billede med den ændrede chain code<br />

7.5 og ved 7.6 er dette dog ikke et problem. Ved nabo otolitten har chain code<br />

algoritmen tilgengæld problemer med at finde kanten. Dette skyldes kanten<br />

er meget svag og mørk. Fordi chain code algoritmen bestemmer billedet på<br />

baggrund af et binært billede kan den nogle gange give en takket kant eller<br />

en kant indeholdende små bobler, hvilket netop er tilfældet øverst oppe til<br />

venstre i 7.5.<br />

På enkelte billeder så som otolitten til venstre i 7.2 er der et hak ind i<br />

objektet. Ved brug af den originale model vil dette blive betragtet som en<br />

del af kanten og vil følge denne kant hele vejen rundt og dermed fejle. Ved<br />

den ændrede Chain code model er denne fejl blevet væsentligt reduceret som<br />

illustreret ved 7.2. Baggrunden i billedet er mørkere end hullerne i otolitterne<br />

hvorfor det meste af dem bliver fjernet. Ved brug af ACM er den dog helt<br />

fjernet og betragtes ikke længere som en del af kanten7.3 Et anden problem<br />

er startgættet for ACM. Der er typisk store farveforskellige og huller inde i<br />

otolitterne, hvilket forhindre denne model i at starte inde i otolitten. Hvis<br />

startgættet fundet ved chain code tilgengæld er for tæt op ad en skarp kant i<br />

otolitten som i 7.7 vil AC modellen ikke nødvendigvis bevæge sig ud til kanten,<br />

men blive inde ved kanten inde i otolitten som illustreret i 7.8. En forhindring<br />

for at sætte startgættet udenfor otolitten er dog at der er billeder så som<br />

7.9 eller blot er placeret tæt på hinanden. Da baggrunden af billederne er så<br />

39


40 KAPITEL 8. DISKUSSION<br />

homogen vil et startgæt placeret udenom otolitterne dog højst sandsynligt<br />

give nogle bedre resultater da den første skarpe gradient den vil møde altid er<br />

kanten. En af fordelene ved disse to algoritmer er at de altid finder en kant.<br />

Chain code algoritmen finder altid en kant pga. billedet blev binariseret. Hvor<br />

AC modellen altid bevæger sig mod de steder på billedet givet ved den eksterne<br />

kraft som har størst gradient.<br />

Et andet problem DTU,Aqua havde var hvis gradient var lav. Hvis der er et<br />

hul et sted hvor gradienten ikke er stor, vil den stadig tilpasse sig kanten fordi<br />

kurven som nævnt skal være glat og blød. En anden fordel er at fordi metoden<br />

forsøger at holde kurven differentiabel undervejs betyder det også at kurven<br />

ikke kan bevæge sig ind i meget konkave områder. . En problemstilling der kan<br />

være ved brug af AC modellen er den ikke er helt stabil omkring løsningen.<br />

Det gør at residualen går op og ned omkring løsningen og at residualen som<br />

stopkriterie ved mange iterationer ikke altid er robust. Dette er ikke et problem<br />

ved denne metode da der kun foretages op til 100 iterationer.<br />

Der er i ACM model blevet brugt differens til at approksimere den afledte.<br />

Det er muligt bl.a. at bruge splines i stedet for. Dette vil evt. kunne betyde<br />

at steder hvor kurven er meget bøjet, vil blive bedre approksimeret<br />

8.2 Klassifikation<br />

Hvis der tages udgangpunkt i AC raten så har den ændrede chain code en<br />

værdi på 50 procent hvorimod den er på 38 procent og 36 procent for acm<br />

metoden og for dtu aqua’s metode. Hvis man tager udgangspunkt i tp raten<br />

for DTU Aquas metode så population 4 bestemt rigtig godt. Population 2<br />

bliver generelt bestemt noget dårligere og har en nogle flere fejl klassificeringer.<br />

Dette skyldes dog højst sandsynligt at diskriminant funktionen er bygget på<br />

equal priors men der er væsentlig flere observationer i testsættet tilhørende<br />

denne gruppe. Population 1 lægger for DTU,aqua’s metode væsentlig under<br />

klassifikationsniveauet for de andre. Dette kan dog skyldes at testsættet for<br />

population 1 kun er på 9 otolitter og der derfor bliver lagt for meget vægt<br />

på enkelte fejl og støj. Generelt set fungere den ændrede chain code sig bedst<br />

hvilket AC raten og Tp raten begge viser. Hvis der tages udgangspunkt i AC<br />

raten så er den dog ikke væsentlig bedre for chain code algoritmen.<br />

En af ulemperne ved brug af en lineær diskrimiant funktion er at den<br />

er meget fleksibel i tilfælde af mange korrelerede variable[10]. Da det er et<br />

generelt problem betyder det at der vil blive lagt mere vægt på tilfældige sammenhænge<br />

grundet korrelationen. Dette giver sig udslag i at fejlen vil stige i<br />

testsættet, hvilket ses af resultaterne. Det er dog som nævnt i kapitel 5 ikke<br />

muligt udfra denne type af reduktion af bestemme det bedste antal parameter<br />

uden at kunne miste vigtig information. Dette er en problemstilling som der<br />

er forsøgt løst ved hjælp af diskriminant funktion kaldet penalized diskriminant.<br />

Denne metoder er lavet med henblik på problemstillinger med mange


8.3. SAMMENLIGNING AF HØJRE OG VENSTRE 41<br />

korrelerede variable og syntes derfor som en rigtig god model for fremtidige<br />

klassifkationer. [10].<br />

8.3 Sammenligning af højre og venstre<br />

Begge metoder har en AC rate op omkring 40 procent. De venstre otolitter<br />

bliver ud fra AC raten kvalificeret lidt bedre, men det er meget lidt. Hvis der<br />

tages udgangspunkt i tabellen så ses det at klassifikationsraten for population<br />

2 til 4 er meget ens. Population 1 skiller sig lidt ud med en lidt lavere klassifkations<br />

rate for højre otolitter og nogle flere fejl med hensyn til population<br />

5. Der er nogle stigninger forskelle rundt omkring med hensyn til klassifikation<br />

men samlet set er klassifikationsraten den samme, og det fremgår klart af<br />

diagrammerne at der er de samme klassifikationstendenser for begge metoder.<br />

Der er lidt udsving hvorfor de ikke er helt ens. Dette kan dog som før nævnt<br />

også skyldes at lineær diskriminant analyse ikke egner sig til klassifikationer<br />

med mange korrelerede variable.


Kapitel 9<br />

Konklusion<br />

Det kan ud fra diskussionen konkluderes at den metode der gav de bedste<br />

resultater af kanten var DTU Aqua’s metode. Metoden jeg har lavet baseret<br />

på chain code gav tit nogle resultater der var ligeså gode og som var meget lig<br />

dens. Metoden baseret på Active contour models, gav de dårligste resultater.<br />

Dette skyldes primært at metoden blev startet typisk blev startet lidt inde i<br />

otolitten, og med nogle skarpe kanter inde i otolitterne gav dette problemer.<br />

For fremtiden vil det være en fordel af lave en funktion som kan finde objekter<br />

med konvekse huller og en der kan finde ud af om kanten på en otolit<br />

er meget lav og i disse tilfælde køre AC rutinen. Evt. med et startgæt placeret<br />

udenom otolitten. Klassifikationen af otolitterne svinger fra 0.36 til 0.5,<br />

hvor Dtu,aqua’s metode generelt lidt dårligere. Generelt set var population<br />

2 den dårligst klassificerede. Dette kan skyldes at diskriminant funktionen<br />

var lavet på equal priors. Hvis størrelserne på populationer i dette datasæt<br />

er generelle er dette et sted hvor metoden vil kunne forbedres. En anden stor<br />

fejlkilde kan være at der blev brugt for mange variable til udledelse af diskriminant<br />

funktionen hvilket kan have medført at der blev lagt for meget vægt på<br />

tilfældige former i udarbejdelsen af diskriminant funktionen. Dette sammen<br />

med at datasættet var lidt mindre for DTU,aqua’s ,metode kan have gjort en<br />

forskel.<br />

I sammenligning af højre og venstre otolit kan det konkluderes at det<br />

omtrent havde den samme AC rate og der generelt var de samme tendenser<br />

med hensyn til fejlklassifkationer. De venstre blev generelt bestemt lidt bedre.<br />

Population 2 til 4 var generelt meget ens. 1 og 5 skilte sig lidt ud, med en<br />

dårligere klassifikation for højre otolitter. En del af fejlen kan skyldes at jeg<br />

har valgt at bruge alle variablene i til modellen, hvilket kan have givet sig<br />

udslag i at tilfældige former har fået for meget indflydelse.<br />

43


Litteratur<br />

[1] Euler - lagrange differential equation. http://www.mathworld.wolfram.<br />

com/Euler-LagrangeDifferentialEquation.html.<br />

[2] Ole Christensen. Differentialligninger og uendelige rækker. <strong>Danmarks</strong><br />

<strong>Tekniske</strong> <strong>Universitet</strong>, 2005.<br />

[3] Ramus Larsen. Deformable template models, 02505.<br />

[4] Henrik Mosegaard. Manual of fish Schlerochronology, pages 216–228.<br />

[5] Giorgio Pannella. Fish otoliths: Daily growth layers and periodical patterns.<br />

Science, 173(4002):1124–1127, 1971.<br />

[6] ’Frank P.Kuhl and Charles R.Giardina. Elliptic fourier features of a closed<br />

contour, 1981.<br />

[7] Bjarne Kjær Ersbø ll and Knut Conradsen. An introduction to Statistics<br />

vol. 2. DTU informatics, Department of informatics and Mathematical<br />

Modelleling, 2007.<br />

[8] George Stetten.<br />

[9] Tomas Svoboda, Jan Kybic, and Vaclac Hlavac. Image Processing, Analysis,<br />

and Machine Vision: a MATLAB companion, chapter 7. Thomson<br />

Learning, Toronto, Ontario, 2008.<br />

[10] Robert Tibshirani Trevor Hastie and Jerome H. Friedman. The elements<br />

of statistical learning: data mining, inference, and prediction, chapter 4-8.<br />

[11] Larry Wasserman. All of Statistics A Concise Course in Statistical Inference,<br />

chapter 13. Springer, 2004.<br />

45


Bilag A<br />

Appendiks<br />

Se vedlagte cd-rom<br />

47

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!