• No results found

Mätning av färgutveckling med mobilapplikation som indikator på stressnivå

N/A
N/A
Protected

Academic year: 2021

Share "Mätning av färgutveckling med mobilapplikation som indikator på stressnivå"

Copied!
35
0
0

Loading.... (view fulltext now)

Full text

(1)

Institutionen för systemteknik

Department of Electrical Engineering

Examensarbete

Mätning av färgutveckling med mobilapplikation som

indikator på stressnivå

Examensarbete utfört i Informationskodning

av Carl-Filip Strid

LiTH-ISY-EX-ET--15/0431--SE

Linköping 2015

(2)
(3)

Mätning av färgutveckling med mobilapplikation som

indikator på stressnivå

Examensarbete utfört i Informationskodning vid Linköpings tekniska

högskola av

Carl­Filip Strid

LiTH-ISY-EX-ET--15/0431--SE

Handledare: Jens Ogniewski

Examinator: Robert Forchheimer

(4)

Presentationsdatum

2015-05-13

Publiceringsdatum (elektronisk version)

Institution och avdelning

Institutionen för systemteknik, Informationskodning

Department of Electrical Engineering, Information Coding

URL för elektronisk version

http://www.ep.liu.se

Publikationens titel

Mätning av färgutveckling med mobilapplikation som indikator på stressnivå

Författare

Carl-Filip Strid

Sammanfattning

I saliv förekommer ett enzym, kallat alfa-amylas, som kan ge en fingervisning om en persons upplevda stressnivå.

Förekomsten av alfa-amylas kan testas genom att låta droppa ett salivprov på ett särskilt slags filterpapper, som sedan färgas klarblått. Hastigheten på färgningen har visats kunna stå i förhållande till aktiviteten av alfa-amylas, och har tidigare mätts med fotodiod. Det här arbetet har undersökt den tekniska görbarheten i att använda en mobilbaserad lösning istället, detta för att öka tillgängligheten av att kunna utföra dessa mätningar. I arbetet har en lämplig mätmetod först sökts genom att

analysera en datamängd med bildsekvenser tagna med mobilkamera. Mätmetoden har sedan implementerats i en

mobilapplikation för Android. Lämpliga mått på färgavstånd och lämpligt mätområde har undersökts, samt hur yttre faktorer som ljusförhållanden och förflyttning av kameran kan påverka mätningar och hur dessa effekter kan motverkas. Resultatet av arbetet har visat att en mobilapplikation mycket väl kan användas för att göra mätningar av en färgutveckling med

konsekventa resultat, men att precisionen behöver utredas med kopplingen till alfa-amylas i åtanke. Avslutningsvis diskuteras implementationens brister, och konkreta förslag på vidareutvecklingar tas upp.

Nyckelord

alfa-amylas, saliv, stress, mobilapplikation, mobilbaserad, färg, mätning

Språk

X Svenska

Annat (ange nedan)

Antal sidor 28 Typ av publikation Licentiatavhandling X Examensarbete C-uppsats D-uppsats Rapport

Annat (ange nedan)

ISBN (licentiatavhandling)

ISRN LiTH-ISY-EX-ET--15/0431--SE Serietitel (licentiatavhandling)

(5)

Sammanfattning

I saliv f¨orekommer ett enzym, kallat alfa-amylas, som kan ge en fingervisning om en persons upplevda stressniv˚a. F¨orekomsten av alfa-amylas kan testas genom att l˚ata droppa ett salivprov p˚a ett s¨arskilt slags filterpapper, som sedan f¨argas klarbl˚att. Hastigheten p˚a f¨argningen har visats kunna st˚a i f¨orh˚allande till aktiviteten av alfa-amylas, och har tidigare m¨atts med fotodiod. Det h¨ar arbetet har unders¨okt den tekniska g¨orbarheten i att anv¨anda en mobilbaserad l¨osning ist¨allet, detta f¨or att ¨oka tillg¨angligheten av att kunna utf¨ora dessa m¨atningar. I arbetet har en l¨amplig m¨atmetod f¨orst s¨okts genom att analysera en datam¨angd med bildsekvenser tagna med mobilkamera. M¨atmetoden har sedan implementerats i en mobilapplikation f¨or Android. L¨ampliga m˚att p˚a f¨argavst˚and och l¨ampligt m¨atomr˚ade har unders¨okts, samt hur yttre faktorer som ljusf¨orh˚allanden och f¨orflyttning av kameran kan p˚averka m¨atningar och hur dess effekter kan motverkas. Resultatet av arbetet har visat att en mobilapplikation mycket v¨al kan anv¨andas f¨or att g¨ora m¨atningar av en f¨argutveckling med konsekventa resultat, men att precisionen beh¨over utredas med kopplingen till alfa-amylas i ˚atanke. Avslutningsvis diskuteras implementationens brister, och konkreta f¨orslag p˚a vidareutvecklingar tas upp.

Abstract

A salivary enzyme called alpha-amylase could be used as a marker for a person’s subjective stress level. The existence of alpha-amylase can be tested by adding a saliva sample to a filter paper, which is then coloured blue. The rate of the colouration has been shown to correlate with the alpha-amylase activity, and has previously been measured using a photodiode. In this thesis work, the possibility of using a mobile phone to allow easy-access testing has been evaluated. To find a suitable method of measuring the colouration, a data set of image sequences taken with a mobile phone was analyzed. The resulting method has then been implemented in the form of a mobile app for Android. Colour distances and suitable regions-of-interest have been evaluated, as well as how the impact of varying lighting conditions and the instability of the camera can be reduced. Results have shown that a mobile app may indeed be used to measure the colouration with consistent results, but that the precision needs to be further evaluated with respect to alpha-amylas. In closing, flaws and suitable improvements of the implementation is discussed.

(6)

Inneh˚

all

1 Inledning 1 1.1 Motivering . . . 1 1.2 Syfte . . . 1 1.3 Fr˚agest¨allning . . . 1 1.4 Avgr¨ansningar . . . 1 2 Teoretisk bakgrund 2 2.1 Introduktion . . . 2 2.2 M¨anniskans f¨argseende . . . 2

2.3 Olika representation av f¨arg . . . 3

2.3.1 RGB . . . 3 2.3.2 CIELAB . . . 4 2.3.3 HSV . . . 4 2.4 Normalisering av ljus . . . 4 3 Metod 6 3.1 Metod f¨or arbetet . . . 6

3.2 Utf¨orande av m¨atningar . . . 7

3.3 Verktyg och grafer . . . 7

4 Utveckling och implementation 8 4.1 Observerade yttre faktorer . . . 8

4.1.1 P˚averkan fr˚an ljus . . . 8

4.1.2 F¨orflyttning av kameran . . . 8

4.2 Val av m˚att p˚a f¨argutveckling och m¨atomr˚ade . . . 9

4.2.1 M˚att p˚a f¨argutveckling . . . 9

4.2.2 Val av l¨ampligt m¨atomr˚ade . . . 11

4.3 Normalisering av ljus . . . 12

4.4 Lokalisering av m¨atomr˚ade . . . 16

4.5 Val av j¨amf¨orelsev¨arde . . . 19

4.6 Implementation av mobilapplikation . . . 19

4.6.1 Tillv¨agag˚angss¨att . . . 19

(7)

4.6.3 Implementation av m¨atalgoritm . . . 20

4.6.4 Gr¨anssnitt och visualisering av resultat . . . 21

5 Resultat 21 5.1 M¨atmetod . . . 21

5.1.1 M˚att p˚a avst˚and i f¨arg . . . 21

5.1.2 Ljusf¨orh˚allanden och normalisering . . . 22

5.1.3 F¨orflyttning av kameran och lokalisering . . . 22

5.1.4 J¨amf¨orelsev¨arde . . . 23

5.2 Mobilapplikation . . . 23

6 Diskussion 24 6.1 Metod . . . 24

6.2 Resultat och vidareutveckling . . . 25

(8)

1

Inledning

1.1

Motivering

Motiveringen till det h¨ar projektet grundas i att aktiviteten av alfa-amylas, ett enzym som f¨orekommer i saliv och som bryter ner st¨arkelse, har visats kunna ge en fingervisning om en persons upplevda stress.[8] En stressindikator som detta vore s¨arskilt anv¨andbart p˚a grund av provtagningens icke-invasiva natur. F¨orekomsten av detta enzym kan testas genom att l˚ata droppa ett salivprov p˚a ett s¨arskilt filterpapper d¨ar pigment bundits upp i st¨arkelse. N¨ar saliv kommer i kontakt med filterpapperet bryts st¨arkelsen ner av alfa-amylas, varp˚a pigmentet ger en f¨argning av papperet. Ett tidigare arbete[9] d¨ar f¨argningen m¨atts med fotodiod har visat att hastigheten p˚a denna skulle kunna st˚a i f¨orh˚allande till niv˚an alfa-amylas. Under denna f¨oruts¨attning kan ¨aven en kamerabaserad m¨atmetod, s˚a som implementerad i en mobiltelefon, vara m¨ojlig. Ett s˚adant s¨att att m¨ata ¨ar ¨onskv¨art eftersom en anv¨andare d˚a kan genomf¨ora m¨atningar utan att ha tillg˚ang till dyr m¨atutrustning, och dessutom kan genomf¨ora m¨atningar utanf¨or en laboratoriemilj¨o.

1.2

Syfte

Syftet med det h¨ar arbetet ¨ar att utveckla en metod f¨or att m¨ata en f¨or¨andring i f¨arg baserat p˚a en bildsekvens tagen med en mobilkamera. Denna metod ska sedan implementeras i en mobilapplikation s˚a att en mobiltelefon kan agera m¨atverktyg. Mobilapplikationen ska kunna anv¨andas av en anv¨andare utan tekniska f¨orkunskaper, och ska ¨aven kunna l˚ata anv¨andaren j¨amf¨ora tidigare m¨atningar. Den egna implementationen kommer utv¨arderas f¨or att identifiera vilka problem som finns. Utv¨arderingen tar upp f¨or- och nackdelar med de val som gjorts och de alternativ som betraktas, och ger dessutom f¨orslag p˚a f¨orb¨attring och vidareutveckling.

1.3

Fr˚

agest¨

allning

I arbetet har svar p˚a fyra fr˚agor s¨okts:

• Hur kan f¨or¨andringen i f¨arg l¨ampligen m¨atas?

• Vilka faktorer och praktiska problem kan komma att p˚averka m¨atningar? • Hur kan den negativa inverkan fr˚an dessa faktorer motverkas?

• Uppfyller den f¨ardiga implementationen sitt syfte, och om den inte g¨or det, hur kan en vidareut-veckling g˚a till?

1.4

Avgr¨

ansningar

Det h¨ar arbetet fokuserar p˚a de tekniska aspekterna av att m¨ata en f¨or¨andring i f¨arg som sker ¨over tid, och som m¨ats med hj¨alp av bilder tagna med en mobilkamera. Rapporten introducerar f¨orst l¨asaren till bakgrundsteori i form av f¨arg som fysiskt fenomen och dess koppling till m¨anniskans f¨arguppfattning. D¨arefter tas f¨argers representation i f¨or arbetet relevanta f¨argsystem upp, och vad rapporter inom anv¨andningsomr˚aden liknande detta kommit fram till. Dessa resultat (hur skillnad i f¨arg kan ber¨aknas, hur globala ljusf¨or¨andringar kan p˚averka en bild) ˚aterkopplas till i utredningen av m¨atmetoden. M¨atningar kommer vara gjorda f¨or att unders¨oka de punkter som tagits upp i fr˚agest¨allningen ovan, det vill s¨aga de tekniska aspekterna av att utf¨ora en m¨atning med en mobilkamera. Reproducerbarhet syftar h¨ar p˚a att saliv fr˚an samma prov b¨or ge upphov till att den uppm¨atta hastigheten p˚a f¨argutvecklingen ser likadan ut, men det h¨ar arbetet g¨or ingen ansats till att visa kopplingen till niv˚an alfa-amylas. Kopplingen

(9)

mellan den uppm¨atta f¨argutvecklingen och vad som indirekt m¨ats, n¨amligen niv˚an alfa-amylas, bygger allts˚a p˚a f¨oruts¨attningen att ett s˚adant samband kan p˚avisas, vilket f¨ors¨ok har visat vara m¨ojligt.[9]

2

Teoretisk bakgrund

2.1

Introduktion

Det h¨ar arbetet handlar om att m¨ata skillnader i f¨arg. F¨or att introducera l¨asaren till detta kommer rap-porten f¨orst ta upp vad f¨arg ¨ar, hur f¨arg p˚a olika s¨att kan representeras och vilka problem som kan finnas med dessa representationer. D¨arefter presenteras n˚agra rapporter som behandlar anv¨andningsomr˚aden liknande detta arbete. Resultat fr˚an dessa har legat till grund f¨or att utveckla metoderna som anv¨ands f¨or det h¨ar arbetet.

Varf¨or m¨anniskans f¨argseende introduceras n¨ar arbetet bygger p˚a anv¨anding av en kamera ¨ar f¨or att belysa de sm˚a skillnader i ljus som med v˚art f¨argseende hela tiden kompenseras f¨or, men som blir v¨aldigt tydliga n¨ar en kamera, som saknar dessa f¨orm˚agor, agerar instrument.

2.2

anniskans f¨

argseende

F¨arg kommer av att olika ytor i v˚ar omgivning reflekterar (och absorberar) ljus av olika v˚agl¨angd. M¨anniskans f¨orm˚aga att se f¨arg b¨orjar inte ov¨antat med ¨ogats anatomi. Ljus som reflekteras fr˚an v˚ar omgivning tr¨anger f¨orst igenom den skyddande hornhinnan och sedan ¨ogats lins, som fokuserar ljuset p˚a ¨

ogats n¨athinna. P˚a n¨athinnan sitter det tv˚a slags ljusk¨ansliga synceller, tappar och stavar, som genom en elektrokemisk reaktion (cellerna inneh˚aller ett protein som reagerar p˚a ljusets olika v˚agl¨angder) sedan omvandlar stimuli i form av ljus till de signaler som g˚ar l¨angs med synnerven till hj¨arnan. I hj¨arnans syncentrum skapas sedan en bild av vad vi ser.[6]

Syncellerna uppg˚ar till ungef¨ar 100 miljoner, varav majoriteten, 95 miljoner, ¨ar stavar och resterande 5 miljoner ¨ar tappar. Stavarna ¨ar k¨ansliga f¨or ljusets intensitet och anv¨ands i huvudsak vid svagt ljus f¨or att ge oss det svartvita seende som l˚ater oss urskilja detaljer i m¨orker. Tapparna ˚a andra sidan ¨ar de celler som ger oss v˚art f¨argseende, och de f¨orekommer i tre typer som vardera b¨ast aktiveras f¨or ett s¨arskilt intervall av ljusspektrumet. Dessa tre typer ¨ar ofta kallade S (f¨or engelskans short) som b¨ast aktiveras f¨or korta v˚agl¨angder, M (medium) f¨or mellanl˚anga v˚agl¨angder samt L (long) f¨or de l¨angre v˚agl¨angderna. Dessa maxima motsvarar ungef¨ar de f¨arger som uppfattas som bl˚att, gr¨ont och r¨ott, respektive.[6] Se figur 1.

(10)

Det finns flera teorier f¨or hur vi med dessa celler uppfattar en f¨arg. I den s.k. trikromatiska teorin beror den f¨arg som uppfattas p˚a antalet aktiverade celler av varje typ, och f¨arg kan s˚aledes ses som en kombination av tre relativa v¨arden angivna i de tre kanaler som S-, M- och L-tapparna utg¨or (denna form av f¨argseende kallas trikromatiskt seende). I de f¨argmodeller som i korthet sammanfattas under n¨asta rubrik ses likheten med detta s¨atta att kvantifiera f¨arg. En alternativ teori ¨ar att signaler fr˚an tapparna ist¨allet tolkas som komplement till varandra, som opponentf¨arger.[4]

M¨anniskans f¨arguppfattning har f¨orutom enbart de visuella stimuli fr˚an varje yta visats bero p˚a en rad andra faktorer. Bland annat kan m¨anniskan associera vissa objekt med vissa f¨arger, vilket leder till att en viss f¨arg kan upplevas starkare f¨or att det finns ett f¨orutfattat st¨od f¨or det. M¨anniskan har ocks˚a en f¨orm˚aga att uppfatta r˚adande ljusf¨orh˚allanden, och kan justera f¨or dessa n¨ar f¨arger uppfattas. Ett fenomen kallat f¨argkonstans (engelska: color constancy) bygger p˚a dessa mekanismer och syftar p˚a att ett objekts f¨arg kan tyckas vara op˚averkad trots att stora variationer f¨orekommer. F¨argkonstans ¨ar n˚agot som ¨ar ¨onskv¨art att kunna reproducera inom datorseende, d˚a det underl¨attar objektigenk¨anning, varf¨or algoritmer utvecklas f¨or detta. M˚als¨attningen ¨ar att ett objekts f¨arg ska kunna avl¨asas oberoende av hur hela scenen f¨argats av ljus.[4]

2.3

Olika representation av f¨

arg

Det finns en uppsj¨o olika modeller f¨or att representera f¨arg, och vad som s¨arskiljer varje modell beror p˚a dess syfte. Vissa modeller ¨ar utformade s˚a att avst˚and mellan f¨arger p˚a ett precist s¨att ska efterlikna hur dessa skillnader uppfattas f¨or en m¨anniska, medan andra modeller ¨ar utformade med rent tekniska detaljer i ˚atanke. Detta kan exempelvis vara hur f¨argerna ska visas p˚a en sk¨arm eller se ut i tryck. Gemensamt f¨or de flesta modeller ¨ar att tre dimensioner anv¨ands f¨or att representera en f¨arg.[10] N¨ar f¨arg beskrivs i efterf¨oljande delar av rapporten kommer i huvudsak termerna f¨argnyans, m¨attnad och ljusstyrka att f¨orekomma. Definitionerna som anv¨ands ¨ar h¨amtade ur Color Appearance Models och ¨ar fastst¨allda av den internationella kommissionen f¨or belysning, CIE (franska: Commission Internationale de l’ ´Eclairage).

F¨argnyans syftar till en upplevd f¨args likhet till n˚agon av f¨argerna r¨od, gul, gr¨on och bl˚a eller en kombi-nation av tv˚a av dessa f¨arger. Detta ¨ar nog f¨or m˚anga det intuitiva s¨attet att svara p˚a fr˚agan om vilken f¨arg ett objekt har. Med m¨attnad avses styrkan p˚a en f¨arg (avst˚andet fr˚an gr˚askala) oberoende av dess ljusstyrka, vilket kan ses som en f¨args renhet. Ljusstyrka avser graden ljus som en yta upplevs reflektera. En liknande term, ljushet anv¨ands f¨or att syfta p˚a uppfattad ljusstyrka hos en yta relativt en annan.[4] Ett undantag kommer g¨oras n¨ar n˚agon av termerna ovan syftar till de olika komponenterna i f¨argsystemet HSV, d¨ar de har ett specifikt inb¨ordes f¨orh˚allande. I dessa fall kommer det ocks˚a markeras med H, S, eller V. Nedan f¨oljer en kort f¨orklaring av f¨argsystem som unders¨okts f¨or det h¨ar arbetet. Dessa ˚aterkommer i den utredande delen ang˚aende hur f¨or¨andringen i f¨arg l¨ampligen b¨or m¨atas.

2.3.1 RGB

I RGB representeras en f¨arg av komponenterna R, G, och B f¨or r¨ott, gr¨ont och bl˚att respektive. RGB ¨

ar ett s˚a kallat enhetsberoende f¨argsystem, vilket inneb¨ar att de f¨arger som kan representeras beror p˚a hur systemet i fr˚aga (exempelvis en LCD-sk¨arm) visar f¨argerna r¨ott, gr¨ont och bl˚att. Det existerar d¨aremot en uppsj¨o olika varianter p˚a f¨argsystemet, varav vissa har standardiserade definitioner f¨or f¨arger (bildfilformat har ofta st¨od f¨or dessa ut¨okningar f¨or att b¨attre kunna ˚aterge f¨arger). Komponenterna i RGB adderas mot vitt, det vill s¨aga att (0, 0, 0) motsvarar svart och (255, 255, 255) helt vitt. RGBs prim¨ara anv¨andningsomr˚ade ¨ar just representation av f¨arg som kommer visas p˚a bildsk¨arm, och ses som mindre praktiskt vid f¨argigenk¨anning. [10][7]

(11)

2.3.2 CIELAB

LAB (eller CIELAB, en precisering av LAB), ¨ar till skillnad fr˚an RGB enhetsoberoende. F¨arger kan s˚aledes specificeras entydigt i LAB, och samma f¨argangivelse kan anv¨andas p˚a olika system. LAB t¨acker dessutom en st¨orre f¨argrymd ¨an exempelvis RGB, som begr¨ansats av hur de system f¨or vilket det ¨ar utvecklat kan ˚aterge f¨arg. En f¨arg i LAB anges i komponenterna L f¨or ljushet samt A och B f¨or f¨argens nyans. A och B motsvarar vardera tv˚a opponentf¨arger (det vill s¨aga f¨arger som inte kan utg¨ora en sammansatt f¨arg): r¨ott-gr¨ont och gult-bl˚att. Denna uppdelning av f¨argrymden ¨ar gjord s˚adan att avst˚and mellan f¨arger ska motsvara hur skillnaderna uppfattas f¨or m¨anniskan.[7][3]

2.3.3 HSV

HSV ¨ar en transformering av RGB, med syfte att ge en alternativ representation av f¨arg. En f¨arg representeras i HSV genom sin f¨argnyans (Hue), m¨attnad (Saturation) och ljusstyrka (Value). HSV anv¨ands ofta d˚a denna separation mellan ljusstyrka, nyans och m¨attnad ofta ¨ar f¨ordelaktig vid matchning av f¨arg. Anv¨andningsomr˚aden inkluderar datorseende och bildanalys. En nackdel ¨ar att f¨argrymdens utformning leder till instabilitet f¨or v¨aldigt l˚aga v¨arden p˚a f¨argm¨attnad, d˚a nyansen blir odefinierad. Omvandling mellan RGB och HSV ¨ar trivial, och visas i pseudokod i algoritm 1 nedan.[7]

Algoritm 1 Omvandling fr˚an RGB till HSV[1] Require: r,g,b p˚a intervallet 0.0 to 1.0

rgbmin← min(r, g, b)

rgbmax← max(r, g, b)

delta ← rgbmax− rgbmin

if delta = 0 then h ← 0

else if rgbmax= r then

h ← ((g − b)/delta) ∗ 60 else if rgbmax= g then

h ← ((b − r)/delta + 2) ∗ 60 else h ← ((r − g)/delta + 4) ∗ 60 end if if h < 0 then h ← h + 360 end if if rgbmax6= 0 then s ← delta/rgbmax else s ← 0 end if v ← rgbmax

2.4

Normalisering av ljus

Ett av de problem som f¨orutsetts ¨ar f¨or¨andringar i ljusf¨orh˚allanden. D˚a detta ¨ar centralt inom datorseende finns en uppsj¨o med existerande litteratur inom omr˚adet. En rapport som tar upp dessa problem med s¨arskilt avseende p˚a avst˚and i f¨arg ¨ar Change Detection in Color Images[5]. Rapporten handlar om objektigenk¨anning men dess resultat ¨ar relevanta f¨or detta arbete. F¨orutom en j¨amf¨orelse av enkla f¨argavst˚and adresseras tre problem som f¨orsv˚arar att identifiera f¨arger i en bild: f¨orekomsten av en global f¨or¨andring i ljusstyrka, f¨orekomsten av en global f¨or¨andring i ljusets f¨argning, samt f¨orekomsten av lokala f¨or¨andringar i ljusstyrka (skuggor). I det h¨ar arbetet kommer bara de tv˚a f¨orsta punkterna att

(12)

ber¨oras, och det antas att filterpapperet (som utg¨or en br˚akdel av varje bild) inte kommer p˚averkas av n˚agon partiell skuggning.

Den kompensering f¨or ljus som ovanst˚aende rapport behandlar ¨ar en variant p˚a en enkel algoritm baserat p˚a ett antagande som kallas “grey world”, och dess anv¨andbarhet f¨or det h¨ar arbetet tas upp i rapportens senare del. Antagandet algoritmen bygger p˚a ¨ar att ljusets genomsnittliga reflektion i en bild inte har n˚agon f¨argning. D¨arf¨or kan en f¨or¨andring i ljusf¨orh˚allanden ses som att varje kanal i bilden p˚averkats av en faktor som ¨ar konstant f¨or samtliga bildpunkter, och att detta motsvarar ljusk¨allans f¨argning.[5][6] Baserat p˚a detta kan en bild i en bildsekvens normaliseras genom att utnyttja f¨orh˚allandet mellan de genomsnittliga v¨ardena f¨or en referensbild och f¨or de efterkommande bilderna. F¨or att justera en bild multipliceras varje bildpunkt med denna kvot.[5] Pseudokod f¨or detta visas i algoritm 2. “get rgb avg” ¨

ar h¨ar en vanlig utr¨akning av medelv¨ardet f¨or varje komponent men visas ocks˚a.

Algoritm 2 Pseudokod f¨or att justera medelv¨arde efter en referensbild if is ref erence image then

rgb baselineavg← get rgb avg()

else

{f¨or alla efterf¨oljande bilder} rgbavg← get rgb avg()

rgb f actors ← rgb baselineavg/rgbavg

for every pixel in image do

pixel ← (pixelR∗ rgb f actorsR, pixelG∗ rgb f actorsG, pixelB∗ rgb f actorsB)

end for end if

Algoritm 3 Utr¨akning av medelv¨arde i RGB rgbavg← (0, 0, 0)

for every pixel in image do

rgbavg← rgbavg+ (pixelR, pixelG, pixelB)

end for

rgbavg← rgbavg/pixel count

return rgbavg

En annan enkel algoritm som anv¨ants i det h¨ar arbetet, kallat max-RGB, fungerar p˚a en “per bild”-praxis. Ist¨allet f¨or att baseras p˚a ett genomsnitt anv¨ands de bildpunkter som har maximala v¨arden i respektive R-, G- och B-kanal. I likhet med motiveringen f¨or den f¨oreg˚aende algoritmen antas dessa v¨arden st˚a i f¨orh˚allande till ljusets f¨argning. Detta d˚a en bildpunkt med maximalt v¨arde har reflekterat ljusets f¨argning till fullo.[6]

F¨or att normalisera en bild kan dessa maxv¨arden letas upp, och d¨arefter justeras v¨ardena f¨or varje kanal f¨or de ¨ovriga bildpunkterna s˚a att de sprids p˚a det nya intervallet mellan noll och maxv¨ardet. Pseudokod f¨or detta visas i algoritm 4. Detta liknar normaliserad RGB, d¨ar varje komponent dividerats med summan av samtliga komponenter, med resultatet att f¨argens kromaticitet (f¨arg utan information om ljusstyrka) kan anv¨andas.

Anv¨andningsomr˚adet f¨or det h¨ar arbetet skiljer sig fr˚an m˚anga rapporter d˚a normaliseringen oftast ¨

ar ett f¨orsteg till n˚agon form av objektigenk¨anning. Ist¨allet f¨or objektigenk¨anning ¨onskas h¨ar en f¨arg m¨atas (m¨ojligen i kombination med tekniker f¨or objektigenk¨anning f¨or lokalisering av m¨atomr˚ade), vil-ket f¨orutom normalisering st¨aller krav p˚a vilket m˚att p˚a f¨argavst˚and som anv¨ands. I arbetet har fr¨amst euklidiskt avst˚and och m¨atning av f¨argm¨attnad testats. Med euklidiskt avst˚and i RGB ses varje kompo-nent som en koordinat i ett rum. B˚ade m˚att i HSV och euklidiskt avst˚and i RGB utv¨arderas kort i [5], d¨ar ¨

aven det tillkortakommande i HSV som n¨amndes i f¨oreg˚aende avsnitt kompenserades f¨or. H¨ar unyttjas ¨

aven separationen av ljusstyrka f¨or att m¨ata enbart det euklidiska avst˚andet i de tv˚a komponenterna f¨or m¨attnad och nyans. En egen utv¨ardering av bland annat dessa metoder f¨or att m¨ata f¨argutveckling

(13)

Algoritm 4 Justering efter maxv¨arden rgb maxR← (0, 0, 0)

for every pixel in image do

rgb max = (max(pixelR, rgb maxR), max(pixelG, rgb maxG), max(pixelB, rgb maxB))

end for

{Justera sedan samtliga bildpunkter:} for every pixel in image do

pixel = (255 ∗ (pixelR/rgb maxR), 255 ∗ (pixelG/rgb maxG), 255 ∗ (pixelB/rgb maxB))

end for

˚aterkommer i senare avsnitt.

3

Metod

3.1

Metod f¨

or arbetet

Tillv¨agag˚angss¨attet f¨or arbetet har varit att f¨orst skapa en datam¨angd best˚aende av bildsekvenser p˚a sa-livprover tagna under en rad olika f¨orh˚allanden som f¨orv¨antats kunna r˚ada. Baserat p˚a denna datam¨angd unders¨oktes sedan vad som l¨ampligen skulle m¨atas och hur, samt hur olika f¨orh˚allanden kunde p˚averka dessa m¨atningar. D¨arefter, n¨ar en m¨atmetod v¨al hade valts, har denna implementerats i form av en mobilapplikation till operativsystemet Android. Som sista steg har applikationen testats som helhet f¨or att se om de f¨orh˚allanden som t¨acktes i det f¨orsta steget faktiskt var tillr¨ackliga, eller om n˚agot beh¨ovde korrigeras f¨or att hantera nyfunna problem.

Anledningen till att bilderna har tagits separat ¨ar f¨or att den m¨atalgoritm som s¨oktes inte f¨orv¨antades be-ro p˚a n˚agot annat ¨an just en bildsekvens, och att det d¨arf¨or ¨ar f¨ordelaktigt att kunna h˚alla m¨atalgoritmerna minimala och oberoende av implementationsspecifika detaljer som h¨or till Android. Ist¨allet har bildana-lysen gjorts i Matlab, som har mycket bra st¨od f¨or bildbehandling och f¨or att r¨akna p˚a och visualisera resultat fr˚an m¨atningar. ¨Aven Python har anv¨ants ombytligt med Matlab.

F¨or att skapa datam¨angden anv¨andes en existerande mobilapplikation f¨or att ta sekvenser av bilder med ett regelbundet intervall. Bildsekvenserna togs under olika f¨oruts¨attningar: ljuss¨attningen har varierats (m¨atningar gjordes d˚a provet varit belyst med b˚ade vitt, starkt ljus men ¨aven ett gulare ljus) och kamerans fixering har varierats (fr˚an att vara helt fixerad med ett improviserat stativ, fr˚an att endast vara handh˚allen) f¨or att t¨acka b˚ade optimala och mindre optimala f¨orh˚allanden. Enklare fotomanipulation har anv¨ants f¨or att kunna variera enstaka detaljer som beh¨ovde testas. Flera sekvenser d¨ar samma resultat ¨

ar att f¨orv¨anta har tagits f¨or att testa reproducerbarhet under olika f¨orh˚allanden. Tillv¨agag˚angss¨attet f¨or provtagningen beskrivs i st¨orre detalj senare i rapporten.

Analysen i Matlab har best˚att av att f¨orst granska bildsekvenser f¨or att hitta och m¨ata de skillnader mellan varje bild som p˚a ett bra s¨att kan beskriva f¨or¨andringen i f¨arg. N¨ar n˚agra olika m˚att hittats har de olika f¨orh˚allandenas p˚averkan studerats (¨andring i ljus, kamerans f¨orflyttning), samt hur detta kan motverkas (normalisering f¨or att minska p˚averkan av f¨or¨andring i ljus, lokalisering av prov f¨or att minska p˚averkan av att kameran rubbats).

Implementationen i Android gjordes i tre steg. F¨orst implementerades sekvenstagning av bilder. Denna funktionalitet testades ocks˚a f¨or att verifiera att bilder kunde tas med samma intervall och kvalitet som de som utgjort den ursprungliga datam¨angden. Efter detta implementerades m¨atalgoritmen (med n˚agra optimeringar), och allra sist skapades ett anv¨andargr¨anssnitt f¨or navigation av applikationen och visualisering av resultat.

(14)

3.2

Utf¨

orande av m¨

atningar

De m¨atningar som gjorts har utf¨orts enligt samma f¨orfarande: en bit filterpapper klipps ut (ungef¨arlig storlek 2x2 centimeter) och placeras p˚a ett relativt enf¨argat underlag. En droppe fr˚an ett nytaget saliv-prov droppas med pipett p˚a det urklippta filterpapperets mitt. Det h¨ar ger upphov till att en klarbl˚a f¨argning av papperet uppst˚ar ¨over tid (ungef¨ar 60-100 sekunder), och utbredes i ett cirkul¨art omr˚ade. Det ¨ar hastigheten p˚a f¨argningen i omr˚adet som sedan m¨atts som en funktion av tiden, oberoende av hastigheten p˚a omr˚adets utbredning. I den h¨ar rapporten kommer ”m¨atning” att syfta till en sekvens av bilder d¨ar f¨argningen i varje bild kvantifierats med n˚agot m˚att. Ett exempel p˚a en bildsekvens visas i figur 2.

Figur 2: Ett litet urval av bilder fr˚an en bildsekvens

Dessa m¨atningar har utf¨orts med tre faktorer i ˚atanke: reproducerbarhet, variation i ljusf¨orh˚allanden samt att kamerans position kan f¨orflyttas. F¨or att f˚a ett m˚att p˚a reproducerbarhet har flera prover tagits direkt efter varandra och med samma salivprov, i hopp om att dessa m¨atningar ska ge samma resultat. Prover har ocks˚a sp¨atts ut f¨or att kunna p˚avisa en skillnad i m¨atresultat. M¨atningar har gjorts under n˚agra olika ljusf¨orh˚allanden, b˚ade med ett starkt vitt ljus och ocks˚a med ett svagare och gulare ljus (s˚a som fr˚an en gl¨odlampa). Ljuset har sedan h˚allits of¨or¨andrat under hela m¨atningarnas g˚ang, men m¨atningar d¨ar ljuset varierats mellan varje bild i en bildsekvens har ocks˚a gjorts (en lampa som t¨ands eller sl¨acks, en skugga som faller ¨over m¨atomr˚adet).

Samtliga m¨atningar ¨ar gjorda med en mobilkamera d˚a m˚alet ¨ar att m¨atningarna i slut¨andan ska g¨oras med en mobilapplikation. F¨or flera m¨atningar har kameran varit helt fixerad, och f¨or flera andra har den varit handh˚allen. M¨atningar d¨ar kameran varit fixerad har anv¨ants som referens f¨or m¨atningar d¨ar kameran inte varit fixerad. Kameralampan har h˚allits avst¨angd d˚a filterpapperet f¨or flera prov reflekterat ljuset v¨aldigt kraftigt, och dess eventuella positiva effekt f¨or m¨atningar med s¨amre ljusf¨orh˚allanden har inte utretts.

Intervallet mellan varje bild i bildsekvenserna har varit 4 sekunder. Detta v¨arde valdes d˚a det visade sig vara tillr¨ackligt kort f¨or att f¨or¨andringen p˚a f¨argutvecklingen ska kunna framtr¨ada. Ett l¨angre intervall har gjort att f¨argutvecklingen blivit mer sv˚artydd, medan ett kortare intervall inte tillf¨orde s¨arskilt mycket (mellanliggande v¨arden har varit enkla att uppskatta). Detta intervall ger dessutom en marginal vad g¨aller mobiltelefonens prestanda (tid f¨or kameran att hitta fokus p˚a provet, en viss tidsbuffert f¨or bildbehandling). Den totala tids˚atg˚angen f¨or en m¨atning har i genomsnitt varit en och en halv minut (24 bilder). Efter detta har f¨argutvecklingen avstannat f¨or de flesta prov.

3.3

Verktyg och grafer

F¨or att analysera bilderna har Matlab och Python anv¨ants. I Matlab har det inbyggda st¨odet f¨or bildbe-handling och visualisering av data (uppritning av grafer) anv¨ants. Python har anv¨ants med biblioteken PIL (Python Imaging Library) f¨or att f˚a tillr¨ackligt st¨od f¨or bildbehandling, och biblioteket Matplotlib har anv¨ants f¨or att f˚a ett Matlab-liknande st¨od f¨or grafer. B˚ade Matlab och Python har anv¨ants ombytligt och f¨or ¨overlappande uppgifter.

De grafer i rapporten som illustrerar m¨atningar har om inget annat anges bildernas ordning i sekven-sen (d¨ar den f¨orsta bilden har ordningsnummer 0) som enhet i x-led och det uppm¨atta v¨ardet p˚a

(15)

f¨argutveckling i y-led. Inneb¨orden av detta v¨arde varierar beroende p˚a vad som diskuteras och f¨orklaras i den l¨opande texten, men ¨ar i regel ett genomsnittsv¨arde.

4

Utveckling och implementation

4.1

Observerade yttre faktorer

M¨atningar som har gjorts har visat att det finns tv˚a faktorer som kan ha stor negativ inverkan p˚a m¨atresultatet: varierande ljusf¨orh˚allanden mellan varje bild i en bildsekvens, och f¨orflyttning av kameran. Dessa problem kommer att diskuteras i st¨orre detalj i de tv˚a avsnitten som f¨oljer efter diskussionen om att hitta m¨atmetod. I det h¨ar avsnittet kommer dessa problem bara att introduceras, eftersom de kommer vara relevanta f¨or stora delar av utvecklingsdelen.

4.1.1 P˚averkan fr˚an ljus

P˚averkan fr˚an ljus kommer fr˚an det faktum att olika belysning resulterar i olika f¨argning av bilden och m¨atomr˚adet. Dels kan det f¨orekomma variationer mellan olika m¨atningar d¨ar olika ljus anv¨ants. Exempelvis kommer en m¨atning under en skrivbordslampa antagligen leda till en gulare f¨argning ¨an vad en m¨atning gjord under ett lysr¨or har (j¨amf¨or figur 2 med figur 3). Dels kan det ocks˚a f¨orekomma skillnader i ljus mellan varje bild i en bildsekvens. De m¨atningar som har gjorts i det h¨ar arbetet visade att ¨aven sm˚a f¨or¨andringar som orsakats av att kameran eller anv¨andaren r¨ort sig kan leda till f¨or¨andringar i ljusstyrka.

F¨or¨andringar i ljus m˚aste allts˚a kompenseras f¨or av tv˚a orsaker. F¨or det f¨orsta m˚aste m¨atningar gjorda under olika ljusf¨orh˚allanden vara konsekventa. En m¨atmetod som uppskattar hastighet p˚a f¨or¨andring f˚ar inte vara beroende p˚a vilken belysning som anv¨ands. F¨or det andra m˚aste skillnader i ljus under en p˚ag˚aende m¨atning kompenseras s˚a att den uppm¨atta hastigheten inte p˚averkas i n˚agon riktning.

4.1.2 F¨orflyttning av kameran

F¨orflyttning av kameran orsakas av en sv˚arighet att h˚alla kameran helt fixerad under en hel m¨atning, vilket kan ta ¨over en minut. Det kan l˚ata som en enkel uppgift, men man ska bet¨anka att det intressanta omr˚adet i varje bild kommer vara v¨aldigt litet sett till hela bilden som tas. Detta p˚a grund av att kameran m˚aste h˚allas fr˚an ett visst avst˚and fr˚an salivprovet f¨or att dels kunna f˚a fokus, och dels f¨or att inte kasta en skugga ¨over m¨atomr˚adet. Det h¨ar leder till att en f¨or anv¨andaren knapp m¨arkbar ryckning kan leda till en f¨orskjutning p˚a minst ett tiotal bildpunkter. Konsekvenserna av detta ¨ar att bildpunkterna inom m¨atomr˚adet f¨orskjuts om det h˚alls fixerat. Oavsett typ av f¨orskjutning tillf¨ors nya bildpunkter medan andra bildpunkter f¨orsvinner ur m¨atomr˚adet. Vid en f¨orskjutning parallell med filterpapperet ¨ar effekten densamma som att flytta p˚a m¨atomr˚adet, och en f¨orskjutning d¨ar kameran r¨ors n¨armre eller l¨angre bort fr˚an filterpapperet motsvarar att ¨andra storlek p˚a m¨atomr˚adet (p˚a ett ungef¨ar; egentligen ¨andras ju ocks˚a vad varje bildpunkt representerar, exempelvis kan en prick som best˚ar av tre bildpunkter ist¨allet representeras av tio bildpunkter vid en inzoomning). Figur 3 visar hur en f¨or anv¨andaren knappt m¨arkbar f¨orflyttning av kameran p˚averkar bilderna.

Anledningen till att f¨orflyttning av kamera ¨ar ett problem beror p˚a tv˚a orsaker. F¨or det f¨orsta ¨ar fil-terpapperet prickigt, d¨ar de omr˚aden som fr˚an b¨orjan har pigment ¨ar v¨aldigt m¨orkt bl˚a, medan ¨ovriga omr˚aden ¨ar vita. F¨orflyttas kameran ¨andras f¨ordelningen av dessa bildpunkter, vilket p˚averkar resultatet om n˚agot slags genomsnitt anv¨ands. F¨or det andra ses en liten annan f¨argning i det omr˚adet d¨ar saliven droppats. Till en b¨orjan kommer detta omr˚ade vara m¨orkare ¨an resten av provet, och d¨arefter ljusnar detta omr˚ade i takt med att omkringliggande omr˚aden f¨argas, s˚a att en slags urholkning bildas. Dessutom kan speglingar, bubblor och liknande f¨orekomma (vilket ofta leder till ett v¨aldigt ljust omr˚ade).

(16)

Figur 3: F¨orflyttning av kameran

Figur 4: Spegling och urholkning

Figur 4 visar hur detta kan se ut. Det v¨anstra provet har inte hunnit f¨argats av pigmentet, att det ¨ar m¨orkare beror endast p˚a att saliv droppats. Speglingar kan ses i b˚ada proven, och en urholkning av mittenomr˚adet kan ses i det h¨ogra provet. Det ¨ar allts˚a ¨onskv¨art att kunna bortse fr˚an ett cirkul¨art omr˚ade fixerat vid provets mittpunkt.

4.2

Val av m˚

att p˚

a f¨

argutveckling och m¨

atomr˚

ade

4.2.1 M˚att p˚a f¨argutveckling

Det f¨orsta steget i att reda ut hur f¨argf¨or¨andringen ska m¨atas har varit att granska vad som skiljer mellan varje bild i de bildsekvenser som tagits p˚a salivproven. F¨or att g¨ora detta har bara omr˚adet som utg¨or det urklippta filterpapperet analyserats. Figur 5 visar tre bilder tagna fr˚an en bildsekvens.

Figur 5: F¨argutveckling

Den f¨orsta bilden ¨ar tagen omedelbart efter att salivprovet droppats p˚a filterpapperet, den andra bilden ¨

ar tagen halvv¨ags in i m¨atningen, och den sista bilden ¨ar tagen i slutet av m¨atningen, d¨ar f¨argutvecklingen har avstannat (den tredje bilden ¨ar tagen 60 sekunder efter den f¨orsta). F¨or att f˚a en fingervisning av hur f¨argen f¨or¨andrats har de genomsnittliga v¨ardena i kanalerna R, G och B uppm¨atts f¨or n˚agra prov. Figur 6a visar denna utveckling. Figur 6b visar f¨or¨andringen i kanaler H, S, V om bilden ist¨allet representeras i f¨argsystemet HSV (varje kanal antar v¨arden mellan 0.0-1.0).

Resultatet som visas i figur 6a kan tyckas ¨overraskande d˚a det visar att niv˚an bl˚att ¨ar n¨astintill helt of¨or¨andrad. Det h¨ar beror emellertid p˚a hur f¨argerna representeras: f¨argerna adderas mot vitt och s˚aledes har de ljusare omr˚adena redan fr˚an b¨orjan ett h¨ogt v¨arde i B-komponenten. Det som skett i RGB-bem¨arkelse ¨ar att bildpunkterna blivit m¨orkare av en liten minskning i gr¨ont och en st¨orre minskning i

(17)

(a) F¨or¨andring i RGB (b) F¨or¨andring i HSV (c) F¨or¨andring i euklidiskt avst˚and

Figur 6: Uppm¨att genomsnittlig f¨or¨andring i RGB, HSV och euklidiskt avst˚and i RGB f¨or ett prov med bra f¨orh˚allanden

(a) F¨or¨andring i HSV

(b) Den bildsekvens som m¨atits

Figur 7: Uppm¨att genomsnittlig f¨or¨andring i HSV f¨or ett problematiskt prov

r¨ott. Resultatet i figur 6b visar n˚agot som intuitivt kan tyckas beskriva f¨or¨andringen b¨attre. F¨argton (H) och ljusstyrka (V) ¨ar of¨or¨andrade, medan f¨argens m¨attnad har ¨okat, vilket ses som att bildpunkterna har f˚att en renare bl˚a f¨arg.

Kurvan som visar m¨attnad visar ocks˚a p˚a en f¨or¨andelsehastighet som vi f¨orv¨antar oss, n¨amligen en snabb ¨

okning i b¨orjan som sedan mattas av tills det att det f¨orbrukade provet f¨orblir of¨or¨andrat. Emedan detta vid en f¨orsta anblick kan verka vara en enkel l¨osning visar det sig vara problematiskt om ljusf¨orh˚allanden inte ¨ar lika bra. Figur 7a visar genomsnittliga H, S, V-v¨arden f¨or en bild d¨ar ljuset varit s¨arskilt starkt f¨argat i b¨orjan av m¨atningen, vilket lett till att f¨argm¨attnaden nu ist¨allet visar p˚a en minskning. Notera att det samtidigt ¨ar enkelt att sj¨alv se en f¨or¨andring i fl¨ackens f¨argning, som ist¨allet tycks ¨oka (figur 7b). M¨atning av f¨argf¨or¨andring d¨ar ljusstyrkan (s˚a som definierat enligt HSV) r¨aknas bort fungerar v¨aldigt v¨al p˚a de bildsekvenser d¨ar den enda variationen i ljusf¨orh˚allanden har varit att ljuset blivit starkare eller svagare (exempelvis d˚a en skugga uppst˚att ¨over hela m¨atomr˚adet till f¨oljd av att en ljusk¨alla blockerats), men tycks inte vara omedelbart anv¨andbart (det vill s¨aga utan normaliserng) n¨ar ljuset har medf¨ort en f¨or¨andring i f¨arg som p˚averkat den genomsnittliga m¨attnaden. Ett annat problem (som n¨amns i [5]) ¨ar att ju n¨armre gr˚askala en f¨arg ¨ar (det vill s¨aga att m¨attnaden n¨ara 0), desto st¨orre kan variationen i f¨argton vara. Detta kan g¨ora en direkt avl¨asning ol¨amplig om vi vill m¨ata f¨or¨andring i f¨arg. Exempel: en bildpunkt i gr˚askala (det vill s¨aga att i RGB ¨ar samtliga komponenter lika stora) som exempelvis vitt, (255, 255, 255), har alltid en m¨attnad som ¨ar 0. Justeras f¨argen till att ligga n¨ara vitt men inte vara gr˚askala, som exempelvis (255, 255, 240) ses en ¨okning i f¨argm¨attnad fr˚an 0.0% till 13.7%. G¨ors motsvarande f¨or en punkt som har h¨ogre m¨attnad, exempelvis fr˚an (100, 255, 255) till (85, 255, 255), ses

(18)

ist¨allet en f¨or¨andring fr˚an 60.8% till 66.7% (en ¨okning med 5.9 enheter).

En f¨oljd av detta ¨ar att ljus som tillf¨or en f¨arg som knappt f¨orekommer i m¨atomr˚adet har en st¨orre p˚averkan (exempelvis varmt, gult ljus som tillf¨or r¨ott, en f¨arg som i mer neutralt ljus knappt finns p˚a filterpapperet - detta g¨or att den resulterande f¨argen ligger n¨armre gr˚att). Detta st¨aller ett krav p˚a att ljuset inte endast h˚alls konstant, utan kan normaliseras s˚adant att ljusets f¨argning uppskattas. M¨atning av euklidiskt avst˚and i tv˚a komponenter (H och V i HSV) visade inte p˚a n˚agon f¨orb¨attring ¨over enbart en m¨atning av f¨argm¨attnad, utan ledde till mer instabila resultat. F¨orhoppningen ¨ar att en normalisering kan h˚alla f¨argnyans och ljusstyrka konstant.

Ett annat s¨att att m¨ata skillnaden i f¨arg ¨ar att anv¨anda det euklidiska avst˚andet i RGB mellan tv˚a bildpunkter, det vill s¨aga: d = p(r1 − r2)2+ (g1 − g2)2+ (b1 − b2)2

Det h¨ar ¨ar sannolikt ett av de mer intuitiva m˚atten, och det hj¨alper mot det problem som illustrerades i figur 6a, n¨amligen att f¨or¨andringen inte ses som en ¨okning i den kanal som ¨ar dominant f¨or f¨argen som ska matchas (i det h¨ar fallet bl˚att) utan som en minskning i de tv˚a andra kanalerna. Resultatet d˚a det euklidiska avst˚andet har anv¨ants illustrerades i figur 6c. Detta m˚att ger ett bra resultat f¨or de flesta m¨atningar som ¨ar tagna med relativt f¨ordelaktiga ljusf¨orh˚allanden.

Precis som med HSV ¨ar det dock tydligt att det kr¨avs en f¨orbehandling av bilden i form av normalisering av ljusf¨orh˚allanden f¨or att f˚a ett stabilt resultat f¨or m¨atningar med mindre optimala f¨orh˚allanden. Innan detta tas upp ¨ar det v¨art att notera att i det rum som utg¨ors av varje kombination av R, G och B, och kan ses som en kub, finns ˚atta punkter som utg¨or h¨ornen i denna kub. Det euklidiska avst˚andet mellan tv˚a punkter kommer vara maximalt om de motst˚aende h¨ornen v¨aljs, det vill s¨aga f¨or (0, 0, 0) och (255, 255, 255), f¨or (255, 0, 0) och (0, 255, 255), f¨or (255, 255, 0) och (0, 0, 255), samt f¨or (255, 0, 255) och (0, 255, 0).

Av dessa punkter ¨ar det f¨orsta paret, det vill s¨aga (0, 0, 0) och (255, 255, 255) av st¨orst intresse. Detta d˚a (255, 255, 255) ¨ar vitt, och allts˚a den f¨arg som de of¨argade omr˚adena av filterpapperet f¨orv¨antas ligga v¨aldigt n¨ara under optimala f¨orh˚allanden. Om vi v¨aljer att ber¨akna det euklidiska avst˚andet fr˚an varje bildpunkts f¨arg till vitt ist¨allet f¨or bl˚att, f˚ar vi ytterligare tolerans f¨or att den f¨arg som vi annars f¨ors¨oker matcha, det vill s¨aga bl˚att, inte n¨odv¨andigtvis kommer g˚a mot (0, 0, 255) utan n˚agot mer godtyckligt v¨arde med den bl˚aa komponenten som dominant. Resultatet som f˚as av detta ¨ar emellertid bara inversen av att anv¨anda (0, 0, 0), det vill s¨aga svart, som f¨arg att matcha mot. Det h¨ar g¨or att vi nu egentligen bara m¨ater den euklidiska normen. D˚a R, G, B r¨aknas additivt skulle detta kunna ses som ett m˚att p˚a ljusstyrka, varf¨or det kanske ¨ar enklare att anv¨anda ett m˚att p˚a detta ¨an att m¨ata ¨okningen av den specifika f¨arg som f¨argutvecklingen st˚ar f¨or. Notera h¨ar att ljusstyrka i HSV (kanal V) angivet i RGB ¨

ar definierat att vara den kanal med h¨ogst v¨arde (detta framg˚ar av algoritm 1). Det h¨ar ger allts˚a inte samma resultat som m¨atning av ljusstyrka enligt HSV.

Det har visat sig att m¨atning av just ljusstyrkan f¨or de flesta prov f˚ar resultat som ¨ar n¨ara identiska med att m¨ata f¨or¨andringen mot bl˚att, men detta v¨acker ¨and˚a fr˚agor om huruvida det verkligen ¨ar l¨ampligt, s¨arskilt d˚a filterpapperet ¨ar utvecklat f¨or att ge en utveckling mot bl˚att. ¨Aven problem som f¨or¨andring i ljusstyrka till f¨oljd av det lager saliv som inte ¨annu sugits upp av papperet skulle beh¨ova unders¨okas med detta i ˚atanke. De m˚att som pr¨ovats mer ing˚aende ¨ar d¨arf¨or euklidiskt avst˚and i RGB och m¨atning av f¨argm¨attnad i HSV.

4.2.2 Val av l¨ampligt m¨atomr˚ade

Ang˚aende l¨ampligt m¨atomr˚ade hittades tv˚a faktorer som beh¨ovdes ta i beaktande. Ett f¨orsta konstante-rande ¨ar att m¨atomr˚adet b¨or h˚allas konstant i storlek om n˚agot slags genomsnitt p˚a f¨argutveckling ska anv¨andas. Detta grundas i att det inte ¨ar hastigheten p˚a provets utbredning som ¨onskas m¨atas, utan hastigheten p˚a f¨or¨andringen i f¨arg inom det omr˚ade som utsatts f¨or saliv. D˚a utbredningen av provet fortfarande p˚ag˚ar medan m¨atningen g¨ors, skulle en st¨andig ut¨okning av m¨atomr˚adet leda till att de nyintroducerade bildpunkterna, som inte hunnit f¨argats lika mycket, till˚ats p˚averka m¨atningen. Det h¨ar leder till att den genomsnittliga hastigheten som uppm¨ats felaktigt kommer bli l¨agre, och att m¨atningen

(19)

nu ¨aven i h¨ogre grad torde bero p˚a utbredningshastigheten av saliven. Det ¨ar dessutom v¨art att notera att f¨argningen n¨armast provets mittpunkt n˚ar sitt maxv¨arde redan innan en minut, medan utbredningen och f¨argningen av ytteromr˚adena kan ta flera minuter beroende p˚a provets storlek.

Den andra faktorn som tagits i beaktande ¨ar att f¨argningen i ett provs mittpunkt b¨orjar minska efter en kort stund, och att omr˚adet n¨ara mittpunkten d¨arp˚a blir betydligt vitare ¨an omliggande omr˚aden. Det h¨ar antas bero p˚a att v¨atskan f¨or pigmenten med sig ut˚at fr˚an mittpunkten. Det tycks ocks˚a vara s˚a att f¨argutvecklingen i enstaka punkter p˚averkas av att n¨arliggande omr˚aden redan blivit exponerade f¨or salivprovet, i vilket fall pigmenten fr˚an dessa omr˚aden kan ge upphov till ett ”¨overlapp” och s˚aledes en snabbare f¨argning.

Baserat p˚a de tv˚a f¨orsta konstanteranden borde ett l¨ampligt m¨atomr˚ade vara ringformat, och strax mindre ¨an provets storlek. Det h¨ar f¨orhindrar att de mindre f¨argade yttre punkterna tas med i m¨atningen, precis som det urholkade mittenomr˚adet.

(a) Cirkul¨art, fyllt m¨atomr˚ade (b) Ringformat m¨atomr˚ade (c) M¨atning i provets mitt

Figur 8: Variation p˚a m¨atomr˚aden

Figur 8a visar resultatet d˚a en fylld cirkel (fixerad p˚a provets mittpunkt) har anv¨ants som m¨atomr˚ade, och figur 8b visar resultatet d˚a ett ringformat omr˚adet har anv¨ants (med samma fixering som det cirkul¨ara). M¨atningen som gjorts har varit handh˚allen, men de flesta m¨atningar har gett n¨astan identiska resultat n¨ar m¨atomr˚adet varierats s˚a h¨ar. Den m¨atmetod som anv¨ants ¨ar m¨atning av f¨argm¨attnad efter normalisering, men precis samma utveckling kan ses f¨or m¨atning i euklidiskt avst˚and. Hela m¨atomr˚adet har befunnit sig innanf¨or provet.

F¨orb¨attringen i den sista figuren beror p˚a att urholkningen inte l¨angre p˚averkar provet, och att en mer entydig hastighet kan uppm¨atas. F¨or att illustrera urholkningens p˚averkan visas resultatet av en m¨atning gjord endast i detta omr˚ade (se figur 8c).

Ett alternativ till att m¨ata samtliga bildpunkter inom m¨atomr˚adet var att utf¨ora en partitionering av bildpunkter till tv˚a m¨angder; en som inneh˚aller de bildpunkter som alltid varit f¨argade (prickarna p˚a filterpapperet med pigment), och en med de ljusa bildpunkter som kommer bli f¨argade. Tanken bakom detta var att inte beh¨ova r¨akna de bildpunkter som ursprungligen var f¨argade, och d¨armed slippa den relativt stora p˚averkan som en f¨orflyttning av m¨atomr˚adet medf¨orde. Detta visade sig vara sv˚art att genomf¨ora dels d˚a en mappning mellan bildpunkter i varje bild hade kr¨avts (vilket f¨orsv˚aras om bilden f¨orskjuts eller f¨orminskas/f¨orstoras, varp˚a ett omr˚ade som representerades av bildpunkt i en bild pl¨otsligt kan utg¨oras av flera bildpunkter), och dels f¨or sv˚arigheten att avg¨ora vad som ska r¨aknas som en redan f¨argad punkt.

4.3

Normalisering av ljus

De m¨atmetoder som beskrivits har visat sig fungera under f¨oruts¨attning att ljusf¨orh˚allanden h˚allits konstanta genom hela m¨atningen. Dessa optimala bildsekvenser har tagits n¨ar kameran varit helt fixerad, men n¨ar s˚a inte har varit fallet har det visat sig sv˚art att undvika variationer i ljus. Det ¨ar d¨arf¨or tydligt att en f¨orbehandling av bilder i form av en normalisering av ljusets p˚averkan kr¨avs f¨or att ˚astadkomma

(20)

ett b¨attre resultat. I det h¨ar arbetet har tv˚a enklare varianter av en s˚adan normalisering unders¨okts. Ett f¨orsta naivt tillv¨agag˚angss¨att har varit att utifr˚an varje bild v¨alja en liten m¨angd av de ljusaste bild-punkterna inom m¨atomr˚adet. Dessa bildpunkter antas komma fr˚an de vita omr˚adena p˚a filterpapperet. F¨or dessa bildpunkter r¨aknas sedan det genomsnittliga v¨ardet i R, G, B ut. D¨arefter justeras hela bilden genom att varje bildpunkts RGB-komponent multipliceras med kvoten av de uppm¨atta genomsnitten och en referensf¨arg, som valts till att vara helt vitt, det vill s¨aga (255, 255, 255) i RGB. Denna justering beskrivs i pseudokod i algoritm 5.

Algoritm 5 Justering efter referenspixel ref erence color ← (255, 255, 255) sampled color ← get brightest pixel()

f actors ← (ref erence colorR/sampled colorR, ref erence colorG/sampled colorG,

ref erence colorB/sampled colorB)

for every pixel in image do

pixel = (pixelR∗ f actorsR, pixelG∗ f actorsG, pixelB∗ f actorsB)

end for

Detta visade sig kunna minska p˚averkan av f¨or¨andring i ljusstyrka, men inte alls vara behj¨alpligt d˚a en bild blivit f¨argad av ljuset. Detta antas bero p˚a att de ljusa bildpunkterna som valts inte inneh˚aller tillr¨ackligt med information f¨or att kunna spegla den genomsnittliga f¨argningen av hela bilden d˚a de har reflekterat n¨astan allt ljus. St¨orst skillnad ses ist¨allet i de lite m¨orkare bildpunkter som visar f¨argutveckligen av salivprovet. Ett alternativ som ist¨allet beaktar hela bilden och dessutom bildsekvensen pr¨ovades h¨arn¨ast. En implementation av detta beskrivs i [5] och visades tidigare i algoritm 2.

Id´en bygger h¨ar ist¨allet p˚a att ljusets p˚averkan (som antas belysa och p˚averka hela bilden), kan motverkas genom att justera s˚a f¨argernas medelv¨arde i varje bild h˚alls konstant. I likhet med den tidigare metoden s˚a r¨aknas f¨orst medelv¨arden f¨or varje kanal ut f¨or att anv¨andas som referens. I det h¨ar fallet anv¨ands den f¨orsta bilden. Ist¨allet f¨or att bara anv¨anda m¨atomr˚adet anv¨ands en st¨orre del av bilden f¨or att kompensera f¨or det faktum att det p˚ag˚ar en f¨or¨andring i f¨arg i form av salivprovet (ett alternativ ¨ar att utesluta detta omr˚ade, men det visade sig kompenseras f¨or om ett st¨orre omr˚ade anv¨ands f¨or att ber¨akna medelv¨ardet). Med hj¨alp av dessa medelv¨arden sker sedan justeringen genom att f¨or varje bild r¨akna ut dess medelv¨arden, och sedan multiplicera varje bildpunkt med kvoten mellan dessa v¨arden och referensv¨ardena.

Detta visade sig fungera b¨attre f¨or att h˚alla ljusstyrkan konstant, men precis som med f¨oreg˚aende metod motverkas inte p˚averkan av f¨argat ljus (d¨aremot blev resultatet b¨attre). Tv˚a problem i synnerhet kunde observeras. Det f¨orsta var att detta s¨att att justera f¨argen p˚a (med medelv¨arden) kommer f¨ors¨oka ˚atg¨arda alla ytor i bilden med samma faktorer. Det h¨ar speglar inte hur ljuset faktiskt f¨argat omr˚adet, d˚a olika ytor kan ha reflekterat olika f¨arg. Exempelvis ser ett v¨aldigt m¨orkt omr˚ade (som inte ¨ar glansigt) som belyses med f¨argat ljus en mindre f¨or¨andring ¨an ett ljust s˚adant.

Det andra problemet kommer av att alla bildpunkter justeras med samma faktor. Detta leder till att d˚a en ¨okning eller minskning av genomsnittet f¨or en eller tv˚a kanaler sker ser de bildpunkter som redan har h¨ogt v¨arde i dessa st¨orst f¨or¨andring, och de med l˚aga v¨arden ser en betydligt mindre f¨or¨andring. Algo-ritmen, som baseras p˚a antagandet att det genomsnittliga f¨argningen i bilden ¨ar i gr˚askala (”greyworld assumption”) presterar dessutom s¨amre n¨ar en f¨argutveckling sker i bilden, vilket leder till att denna kommer motverkas.

Problemen med att anv¨anda denna metod visas i figur 10, och en lyckad justering visas i figur 9. Dessa bilder har valts f¨or att visa p˚a en tydligare skillnad. I bilder p˚a de faktiska m¨atningar ¨ar effekterna inte lika synliga men tillr¨ackligt f¨or att p˚averka m¨atningen. Figur 9a ¨ar originalbilden (som i en m¨atning skulle utg¨ora den f¨orsta bilden i sekvensen). Figur 9c visar resultatet av att justera figur 9b (som ¨ar m¨orkare) s˚a medelv¨arden f¨or hela bilden matchar de i originalbilden.

Figur 10a och figur 10b visar samma process men d¨ar f¨argningen inte varit i gr˚askala. Originalbilden ¨ar densamma.

(21)

(a) Original[13] (b) F¨orm¨orkning (c) Justerat

Figur 9: Normalisering av f¨arg

(a) R¨od f¨argning (b) Justerat (c) ¨Okning ljusstyrka (d) Justerat

Figur 10: Normalisering av f¨arg

Resultatet ¨ar en bild med felaktig f¨argning. Notera att den f¨orsta bilden visar en f¨orm¨orkning s˚adan att f¨argernas inb¨ordes f¨orh˚allanden inte p˚averkats vilket ¨ar en konstruerad och helt optimal situation. Om s˚a inte varit fallet hade resultatet blivit s¨amre. I bilden med en ¨okning av ljusstyrka har ett h¨ogt v¨arde adderats till varje bildpunkt, vilket g¨or att skillnaderna i varje f¨argkomponent ¨ar v¨aldigt sm˚a. Resultatet efter justering ¨ar en bild med n¨astan obefintlig kontrast. En s˚adan situation torde emellertid vara v¨aldigt otrolig i ett verkligt scenario (att ett omr˚ade som belyses mer minskar i kontrast).

En annan enkel variant p˚a normalisering ¨ar den som kallas max-RGB eller scale-by-max i olika rapporter[6][2]. Pseudokod f¨or denna algoritm visades i algoritm 4. Precis som den f¨orsta metoden som togs upp s˚a byg-ger den p˚a att anv¨anda ett urval bildpunkter som referens. Dessa bildpunkter h¨amtas fr˚an den bild som ska justeras, s˚a normaliseringen g¨ors oberoende av de andra bilderna i sekvensen. Som namnet antyder s˚a anv¨ands maxv¨ardena f¨or varje kanal, som s¨arskilt f¨or vita ytor (d¨ar maxv¨ardena kommer hittas) borde f¨argas representativt f¨or det ljus som hela omr˚adet belysts med. Om vi l˚ater max R, max G och max B beteckna de upphittade maximala v¨ardena f¨or r¨ott, gr¨ont och bl˚att i bilden, och R, G, B beteckna v¨ardena f¨or en enskild bildpunkt som ska justeras s˚a f˚as den justerade bildpunkten R’,G’,B’ enligt: R’ = 255 * R/max R, G’ = 255 * G/max G, B’ = 255 * B/max B (multiplikationen med 255 ¨ar bara f¨or att v¨ardet ska hamna i intervallet 0-255). Denna metod visade sig fungera b¨attre ¨an de f¨oreg˚aende tv˚a, s¨arskilt d˚a ljuset f¨argat bilderna. Innan detta kommer visas betraktas ytterligare ett alternativ.

I enlighet med resonemanget i f¨oreg˚aende avsnitt, d¨ar det euklidiska avst˚andet i f¨arg fr˚an vitt i princip ger samma resultat som en m¨atning av komponenternas euklidiska norm, har det ocks˚a visat sig att liknande m˚att p˚a ljusstyrka skulle kunna anv¨andas i kombination med normaliseringen ovan. Ett enkelt m˚att ¨ar att i RGB helt sonika addera komponenterna eller m¨ata bilden i gr˚askala. Vid omvandling till gr˚askala anv¨ands vanligtvis en viktning f¨or varje f¨arg f¨or att resultatet b¨attre ska motsvara hur m¨anniskan uppfattar f¨argerna. Exempelvis anv¨ands ofta en viktning fr˚an IEC (se [11], matrisen f¨or XYZ, raden f¨or Y), d¨ar ljusstyrkan hos en bildpunkt r¨aknas ut enligt L=0.2126*R + 0.7152*G + 0.0722*B (f¨or en bild i gr˚askala sparad i RGB-format ¨ar detta v¨ardena f¨or R, G och B som allts˚a ¨ar lika stora f¨or varje bildpunkt). Dessa faktorer har anv¨ants f¨or figurerna nedan. Detta val p˚averkar d¨aremot inte m¨atresultatet n¨amnv¨art. Notera att det ¨ar stor skillnad p˚a detta m˚att och m¨atning av ljusstyrka i HSV, d¨ar ljusstyrkan endast anges som den kanalen med det h¨ogsta v¨ardet.

(22)

m¨atningar. F¨or m¨atningar som inte varit problematiska har de haft v¨aldigt liten p˚averkan, men inte n˚agon negativ s˚adan. Alla grafer kommer visa m¨atningar d¨ar euklidiskt avst˚and fr˚an vitt har anv¨ants som m˚att p˚a f¨argutvecklingen och m¨atomr˚adet varit ringformat och placerat inuti provet (s˚adant att det urholkade omr˚adet i mitten undvikits).

Den f¨orsta m¨atning som visas ¨ar den som visades i figur 7b. Problemet med denna m¨atning ¨ar att bilden fr˚an b¨orjan starkt f¨argats av ljuset, och att ljuset sedan blivit mindre f¨argat allt medan m¨atningen fortg˚att. Detta har delvis motverkat resultatet av m¨atningen. Med ”Normalisering 1” avses den metod som diskuterades f¨orst, det vill s¨aga att den f¨orsta bilden i sekvensen anv¨ands som referens, och med ”normalisering 2” avses den metod d¨ar maxv¨ardena i varje bild anv¨ants f¨or att justera f¨argen i samma bild.

(a) Ingen normalisering (b) Normalisering 1 (c) Normalisering 2

Figur 11: J¨amf¨orelse normalisering

F¨or de tv˚a f¨orsta figurerna (figur 11a och figur 11b) ses inte n˚agon m¨arkbar f¨orb¨attring. Normaliseringen har snarare lett till att skillnaderna mellan varje bild till en b¨orjan minimerats, vilket ger en mindre uppm¨att f¨argutveckling. En granskning av bilderna visar att f¨argutvecklingen tar fart efter de f¨orsta tv˚a bilderna och sedan avstannar runt bild nio, vilket inte st¨ammer med detta resultat. Justeringen har allts˚a lett till ett icke-¨onskv¨art resultat.

Det uppm¨atta v¨ardet f¨or bild nummer 14, som varit ljusare ¨an de ¨ovriga, borde dessutom ligga i niv˚a med efterf¨oljande bilder. Ljusstyrkan har allts˚a inte heller justerats f¨or p˚a ett ¨onskv¨art s¨att. Den andra metoden, som visas i figur 11c, visar d¨aremot p˚a en utveckling som b¨attre st¨ammer ¨overrens med verk-ligheten och d¨ar utvecklingen i den ljusare bilden mer korrekt har uppm¨atts till ungef¨ar samma niv˚a som efterf¨oljande bilder. F¨or denna bildsekvens har slutligen tv˚a m¨atningar gjorts d¨ar bilderna f¨orst om-vandlats till gr˚askala enligt den metod som beskrivits tidigare. Figur 12a och figur 12b visar resultatet av detta. Bara den f¨orsta metoden visas d˚a den andra metoden inte ¨ar till¨ampbar i gr˚askala.

(a) Gr˚askala, ingen normalisering (b) Normalisering 1

Figur 12: J¨amf¨orelse normalisering i gr˚askala

D˚a bilderna ¨ar i gr˚askala (det vill s¨aga RGB-v¨arden lika stora) ¨ar m˚attenheten nu ett v¨arde mellan 0-255 som anger bildpunktens ljusstyrka. Resultatet av en m¨atning i gr˚askala utan normalisering ¨ar inte ov¨antat n¨astan identiskt (s˚a n¨ar som p˚a den f¨or¨andrade skalan) med en m¨atning av euklidiskt avst˚and.

(23)

Normalisering enligt den f¨orsta metoden har till skillnad fr˚an fallet med f¨argbilden lett till bra resultat. Den fjortonde bilden ligger fortfarande p˚a ett l¨agre v¨arde, men skillnaden ¨ar nu endast tv˚a enheter. F¨or det h¨ar arbetet har de tv˚a metoderna testats mer utf¨orligt p˚a f¨argbilder, eftersom f¨or¨andringen sker i f¨arg.

4.4

Lokalisering av m¨

atomr˚

ade

Vikten av att kunna lokalisera och uppskatta storleken p˚a m¨atomr˚adet diskuterades tidigare. Detta ¨ar allts˚a ¨onskv¨art av tv˚a anledningar: f¨or att undvika att m¨ata i mittenomr˚adet d¨ar en urholkning kommer ske, och f¨or att undvika att f¨ordelningen mellan ljusa och m¨orka bildpunkter ¨andras, vilket g¨or m¨atningen ostadig. Det ringformade m¨atomr˚adet b¨or passas in p˚a provet s˚a att dess ytterkant ligger n¨ara provets ytterkant, och s˚a att dess mittpunkt ¨ar fixerad p˚a provets mittpunkt. Ett d˚aligt inpassat m¨atomr˚ade visas i figur 13a, d¨ar m¨atomr˚adet fixerats till bildens mittpunkt (observera att bilderna ¨ar beskurna och centrerade p˚a filterpapperet), ett m¨atomr˚ade vars mittpunkt uppskattats f¨or varje bild visas i figur 13b och en j¨amf¨orelse i m¨atresultat visas i figur 14. M¨atresultatet har p˚averkats kraftigt.

(a) Mittpunkt fixerad vid bildens mittpunkt

(b) Mittpunkt uppskattad

Figur 13: F¨orskjutning av m¨atomr˚ade

(a) Fixerat m¨atomr˚ade (b) Uppskattat m¨atomr˚ade

Figur 14: J¨amf¨orelse m¨atresultat

I det h¨ar arbetet har n˚agra metoder f¨or att ˚astadkomma en bra uppskattning testats, men den slutliga implementationen inneh˚aller en enkel variant som ¨and˚a fungerar f¨orh˚allandevis v¨al. Det f¨orsta steget i att hitta m¨atomr˚adet har varit att best¨amma vad som skiljer detta omr˚ade mot resten av bilden. Ett f¨orenklade antagande som gjorts ¨ar att det urklippta provet befinner sig inom ett kvadratiskt s¨okomr˚ade i varje bilds mitt. Inom detta omr˚ade b¨or det i ¨ovrigt helst inte ligga n˚agra objekt. F¨or att nu kunna hitta provet anv¨andes ett tillv¨agag˚angss¨att liknande hur m¨atmetoden togs fram.

(24)

D¨arefter har de s¨ardrag i f¨arg som b¨or vara unika f¨or provet utnyttjats, det vill s¨aga att bildpunkternas f¨arg ska ligga i n¨arheten av bl˚att. Det visade sig vara viktigt att det finns marginaler f¨or vad som ska r¨aknas som bl˚att, d˚a olika ljusf¨orh˚allanden har stor p˚averkan. Av denna anledning har samma normaliseringar som beskrevs i avsnittet om normalisering av ljus anv¨ants (den implementation som visade sig fungera b¨ast och som anv¨ants ¨ar den som kallats max-RGB).

D˚a m¨atmetoden behandlar bilden i f¨argsystemet HSV har detta anv¨ants ¨aven h¨ar (f¨or euklidiskt avst˚and i RGB hade ett m˚att i RGB lika l¨att kunna anv¨ants). I det f¨orsta steget i att hitta m¨atomr˚adet, som ¨

ar en bin¨ar segmentering mellan bildpunkter som tros tillh¨ora provet och bildpunkter som inte g¨or det, anv¨ands alla tre kanaler (efter normalisering). F¨argnyans (H) anv¨ands f¨or att hitta bildpunkter med en bl˚aaktig f¨argning (f¨argen ligger p˚a ett intervall mellan turkos till en ren bl˚a, till en mer lila f¨argning, vilket har satts till minst 160◦och h¨ogst 255◦). Ett krav p˚a f¨argm¨attnad och ljusstyrka anv¨ands f¨or att inte matcha bildpunkter som ¨ar i gr˚askala eller f¨or m¨orka (exakta siffror f¨or implementationen: f¨argm¨attnaden m˚aste vara minst 40%, ljusstyrkan m˚aste vara minst 50%). Provet antas vara tillr¨ackligt belyst. Figur 15 och figur 16 visar denna segmentering f¨ore respektive efter den applicerats p˚a n˚agra bilder tagna med olika bakgrund.

I kodstyckena f¨or uppskattning av mittpunkt och radie p˚a provet (visas senare i algoritm 6 och 7) markeras segmenteringssteget med anropet “match color”. Anledningen till detta ¨ar att den inte g¨ors som ett separat f¨orsteg f¨or hela bilden, utan bara sker f¨or relevanta bildpunkter. I “match color” kontrolleras om komponenterna ligger p˚a intervallen ovan.

Figur 15: Innan segmentering

Figur 16: Efter segmentering, och uppskattning av mittpunkt

N¨ar en l¨amplig segmentering av bilden gjorts ˚aterst˚ar att faktiskt identifiera m¨atomr˚adet och att upp-skatta dess mittpunkt och storlek. Ett s¨att att g¨ora detta ¨ar anv¨anda n˚agon slags blobdetection, det vill s¨aga en algoritm som identifierar omr˚aden baserat p˚a n˚agon gemensam egenskap. Om en bin¨ar segmen-tering som den som visats ovan f¨orst gjorts, skulle en s˚adan egenskap kunna vara ”sammanh¨angande omr˚aden av vita bildpunkter”. D˚a m¨atomr˚adet utg¨or ett kluster och inte ett sammanh¨angande omr˚ade skulle ytterligare processering kr¨avas. Exempelvis skulle en floodfill-algoritm (en algoritm som hittar omr˚aden som ¨ar helt omslutna) kunna anv¨andas f¨or att fylla h˚alen i klustret, och n˚agon slags blur eller utsmetning skulle kunna appliceras f¨or att fylla de luckor i utkanten av provet som inte ¨ar omslutna av vita bildpunkter.

F¨or det h¨ar arbetet har en enklare metod pr¨ovats. Metoden f¨or att hitta provets mittpunkt g˚ar ut p˚a att r¨akna ut den genomsnittliga positionen f¨or en vit bildpunkt. Om de vita bildpunkter som utgjorts av pigmenten p˚a filterpapperet kan antas vara n˚agorlunda j¨amt f¨ordelade, och att f¨argutvecklingen sker cirkul¨art, kommer den h¨ar punkten att vara fl¨ackens mittpunkt (denna punkt kan ses som klustrets

(25)

”tyngdpunkt”). Effektiviteten av detta beror helt p˚a hur segmenteringen gjorts, och emedan vissa prov har visat sig vara problematiska d˚a mittpunkten f¨orskjutits av exempelvis en skugga eller att filter-papperet b¨ojts, har fixeringen visat sig vara v¨aldigt bra, med en f¨orskjutning p˚a bara ett par enstaka bildpunkter under en hel bildsekvens.

F¨or att sedan uppskatta en radie expanderas en cirkel stegvis i den upphittade mittpunkten, och i varje steg kontrolleras andelen vita punkter som befinner sig i cirkelns ytteromr˚ade. Id´en ¨ar att varken bakgrunden eller den del av filterpapperet som inte p˚averkats av provet kommer inneh˚all n˚agra matchande bildpunkter. N¨ar detta omr˚ade inte l¨angre inneh˚aller en stor andel vita bildpunkter avbryts s¨okningen och radien fr˚an den tidigare iterationen anv¨ands. De tv˚a metoderna f¨or lokalisering och uppskattning av storlek av m¨atomr˚adet visas i algoritm 6 och 7.

Algoritm 6 Lokalisering av m¨atomr˚adet center coord ← (0, 0)

match count ← 0

for every pixel in image do if match color(pixel) then

center coordx← pixelx

center coordy← pixely

match count ← match count + 1 end if

end for

if match count 6= 0 then

center coordx← center coordx/match count

center coordy← center coordy/match count

else error() end if

Algoritm 7 Uppskattning av storlek p˚a radie tolerance ratio ← 0.82

min radius ← 100 max radius ← 460 step size ← 60 size ← 40

for inner radiusinrangemin radius + step size to max radius withstepsizestep size do

outer radius = inner radius + size

for pixelinsideannulus(center, inner radius, outer radius do if match color(pixel) then

match count ← match count + 1 end if

count ← count + 1

if match count/count < tolerance ratio then return inner radius − step size

end if end for end for

return max radius

Ett annat alternativ som betraktades var att g¨ora en segmentering baserat p˚a ljusstyrkan (bilden be-handlas i gr˚askala). I samtliga bildsekvenser avsk¨armas salivprovet av de vita ytorna p˚a filterpapperet, vilket kan utnyttjas. Denna metod visas i figur 17. H¨ar har b˚ada filterpapperen segmenterats identiskt, medan de olika bakgrunderna inte gjort det. Dessutom ¨ar n˚agra skuggor och f¨orm¨orkningar tydliga. F¨or

(26)

att utnyttja den h¨ar segmenteringen skulle ett filter kunna anv¨andas f¨or att sl¨ata ut salivprovet, som sedan kan hittas med en algoritm f¨or att identifiera cirklar (till exempel med Houghtransformering, vil-ket finns implementerat i Matlab och bibliotek f¨or bildbehandling, som exempelvis OpenCV). Ett annat alternativ ¨ar redan innan segmentering sker ta h¨ansyn till s¨ardrag som observeras i bilden (exempelvis genom att granska n¨arliggande bildpunkter).

Figur 17: En annan segmentering

4.5

Val av j¨

amf¨

orelsev¨

arde

Ett krav p˚a den mobilapplikation som arbetet utmynnar i ¨ar att m¨atningar ska kunna j¨amf¨oras med varandra. Av den h¨ar anledningen m˚aste ett j¨amf¨orelsebart v¨arde (eller v¨arden) kunna r¨aknas ut baserat p˚a varje m¨atning, och det h¨ar v¨ardet b¨or v¨aljas s˚a att det inte ¨ar beroende p˚a de f¨oruts¨attningar som r˚adde n¨ar m¨atningen gjordes. M¨atv¨ardena f¨or varje bild (togs upp i ”Val av m˚att p˚a f¨argutveckling”) ¨ar en f¨or¨andring i ett genomsnittsv¨arde. F¨or att kunna j¨amf¨ora dessa genomsnitt ¨ar det givetvis viktigt att de har r¨aknats ut ¨over m¨atomr˚aden som passar in p˚a provens storlek. ¨Overskattas m¨atomr˚adet f¨or ett prov riskeras ett f¨or l˚agt genomsnitt, och vice versa. M¨atv¨ardet kan inte heller vara n˚agot absolut v¨arde, d˚a ljusf¨orh˚allanden ¨ar olika f¨or olika m¨atningar.

J¨amf¨orelsev¨ardet som har anv¨ants i den h¨ar implementationen ¨ar hastigheten p˚a f¨argutvecklingen (ett genomsnitt) f¨or de tre bilderna som f¨oljer direkt efter de f¨orsta tv˚a. Motiveringen till att v¨anta tv˚a bilder ¨

ar f¨or att provet ska hinna spridas. I de efterf¨oljande tre bilderna har sedan den snabbaste ¨okningen observerats f¨or de flesta m¨atningar, varp˚a ¨okningen sakta avtar. Ett alternativ som betraktats ¨ar att som separat f¨orsteg hitta den kurva som b¨ast beskriver f¨argutvecklingen (exempelvis i minstakvadratmening), och d¨arefter avl¨asa skillnad i f¨argutveckling. Alternativt skulle koefficienterna kunna utnyttjas.

4.6

Implementation av mobilapplikation

4.6.1 Tillv¨agag˚angss¨att

Det sista steget i arbetet har varit att implementera m¨atmetoden och dess ing˚aende delar i en mobi-lapplikation. Det tillkommer ocks˚a funktionalitet f¨or att kunna styra mobilapplikationen och g¨ora den anv¨andbar f¨or en anv¨andare utan s¨arskilda f¨orkunskaper. Implementationen har gjorts f¨or operativsy-stemet Android och ¨ar s˚aledes skriven i Java. Tillv¨agag˚angss¨attet f¨or utvecklingen har varit att dela upp mobilapplikationen i mindre delar. D˚a den datam¨angd som anv¨ants i arbetet har skapats med hj¨alp av en existerande mobilapplikation som l˚ater anv¨andaren ta sekvenser av bilder, har det f¨orsta steget varit att implementera den h¨ar funktionaliteten med (minst) lika god tidsuppl¨osning och bildkvalitet. Det andra steget har varit att implementera m¨atmetoden i sig (det vill s¨aga justering f¨or ljus, m˚att av f¨argutveckling och lokalisering av m¨atomr˚adet). F¨or att g¨ora detta utformades m¨atalgoritmen s˚a att den b˚ada kan appliceras p˚a bilder som redan ¨ar sparade p˚a minneskortet, och ¨aven bilder som matas direkt fr˚an kameran i form av en databuffer. Anledningen till detta var f¨or att kunna testa m¨atalgoritmen p˚a bildsekvenser som m¨atv¨arden redan r¨aknats ut f¨or. P˚a s˚a s¨att kunde verifieras att implementationen gav samma resultat (givet samma datam¨angd). Det tredje och sista steget var implementera ett enkelt gr¨anssnitt som l˚ater anv¨andaren g¨ora egna m¨atningar, samt att kunna visualisera resultatet av dessa. I samband med detta sista steg testades applikationen ocks˚a som helhet.

References

Related documents

Eleverna har bättre möjlighet att lägga tid på att plugga istället för att åka buss Man väljer inte skola utifrån hur det är lättast att ta sig dit. • Det fi nns en

603 Accepterar ni en ytterfrp på &lt;=10kg då vi inte kan se att det finns någon fryst blodpudding på marknaden med önskad förpackningsstorlek som uppfyller ställda

För kvartalet uppgick vinst per aktie efter skatt och full konvertering till 0,84 SEK (0,71), en ökning med 18%.. Vinst per aktie efter skatt och full konvertering

De förväntas alla bidra till ASSA ABLOYs vinst per aktie under 2000.. • Genom förvärvet av Lockwood uppnåddes en ledande position

I lokal valuta uppgick ökningen till 28 % varav den organiska tillväxten för jämförbara enheter uppgick till 6 procent, förvärvade enheter svarade för 22 % av

Omsättningen för perioden januari till och med september 2002 uppgick till 19 008 MSEK, vilket motsvarar en ökning om 17%.. Den organiska tillväxten uppgick

I lokal valuta uppgick ökningen till 27% varav den organiska tillväxten för jämförbara enheter uppgick till 5%, förvärvade enheterna svarar för 22%.. av

§ 15 Ersättning betalas till handikappad förtroendevald för de särskilda styrkta kostnader som uppkommit till följd av deltagande vid sammanträden eller motsvarande och som