Danish - SkovgaardOlsen.Dk

texas.skovgaardolsen.dk

Danish - SkovgaardOlsen.Dk

Bordfodbold

Morten M. Lindahl, s012094

Morten Laursen, s001865

Jens S. Olsen, s011498

Danmarks Tekniske Universitet 2004


Billedanalyse på mikrodatamat Forord

Forord

Denne rapport blev udarbejdet i forbindelse med et projektarbejde i 31840 Billedanalyse

på mikrodatamat ved Danmarks Tekniske Universitet. Målet for projektet var, at

designe et visionsystem til brug ved et automatiseret bordfodboldspil.

Bordfodboldspillet var tidligere forsøgt automatiseret, hvilket betød at bord, kamera og

computer var til rådighed og monteret ved projektets start.

Rapporten beskriver de anvendte designvalg og de dertilhørende tests. Ved projektets

afslutning blev der afleveret et velfungerende visionsystem. Rapport og kildekode

forefindes på den vedlagte CD-ROM.

Projektet blev udarbejdet i det sene efterår 2004 og afleveret d. 23. december 2004.

I


Billedanalyse på mikrodatamat Indholdsfortegnelse

Indholdsfortegnelse

1 INDLEDNING ........................................................................................................ 1

2 SYSTEMBESKRIVELSE ..................................................................................... 2

2.1 BORDFODBOLDSPIL ........................................................................................... 2

2.2 KAMERA............................................................................................................ 2

2.2.1 Billed-format............................................................................................. 2

2.2.2 Støj............................................................................................................ 3

2.2.3 Forvrængning ........................................................................................... 4

2.3 COMPUTER ........................................................................................................ 5

3 INITIALISERING ................................................................................................. 6

3.1 KRAV................................................................................................................. 6

3.2 FILTRERING ....................................................................................................... 6

3.3 THRESHOLDS TIL FARVEGENKENDELSE ............................................................. 7

3.3.1 Vurdering af metoden ............................................................................... 9

3.4 PLACERING AF HJØRNER .................................................................................... 9

3.4.1 Koordinat-transformation ...................................................................... 10

3.4.2 Implementering....................................................................................... 12

3.5 PLACERING AF KAMERA I FORHOLD TIL BORDET.............................................. 14

3.5.1 Systemets fysik ........................................................................................ 14

3.5.2 Kameraets fysik ...................................................................................... 15

3.5.3 Rekursiv estimering af H, L og D. .......................................................... 16

3.5.4 Implementering....................................................................................... 16

3.5.5 Test af kameraplacering ......................................................................... 17

3.6 PLACERING AF STÆNGER ................................................................................. 18

3.6.1 Implementering....................................................................................... 18

3.6.2 Filtrering ................................................................................................ 19

3.6.3 Test ......................................................................................................... 19

3.7 TEST ................................................................................................................ 20

3.7.1 Test af positionering ............................................................................... 20

3.7.2 Stabilitetstest........................................................................................... 22

3.8 DELKONKLUSION............................................................................................. 23

4 BOLDGENKENDELSE ...................................................................................... 24

4.1 INDLEDNING .................................................................................................... 24

4.2 KRAV............................................................................................................... 24

4.3 ALGORITMER................................................................................................... 24

4.3.1 Generelt .................................................................................................. 24

4.3.2 Simpel threshold ..................................................................................... 25

4.3.3 Mønstergenkendelse ............................................................................... 25

4.3.4 Konturgenkendelse ................................................................................. 26

4.4 TEST ................................................................................................................ 27

4.4.1 Generelt .................................................................................................. 27

4.4.2 Test nr. 1................................................................................................. 28

4.4.3 Test nr. 2................................................................................................. 30

4.5 DELKONKLUSION............................................................................................. 32

II


Billedanalyse på mikrodatamat Indholdsfortegnelse

5 SPILLERGENKENDELSE................................................................................. 33

5.1 INDLEDNING .................................................................................................... 33

5.2 KRAV............................................................................................................... 33

5.3 BILLEDANALYSE.............................................................................................. 33

5.3.1 Spillernes position .................................................................................. 34

5.3.2 Bestemmelse af vinklen indenfor 90°...................................................... 34

5.3.3 Korrigering af den fundne vinkel ........................................................... 35

5.3.4 Positiv/negativ vinkel.............................................................................. 36

5.3.5 Op eller ned ............................................................................................ 36

5.4 KORT OM PROGRAMMET.................................................................................. 38

5.5 BESTEMMELSE AF FORSKELLIGE KONSTANTER................................................ 38

5.6 TEST ................................................................................................................ 40

5.6.1 Spillerposition......................................................................................... 40

5.6.2 Spillervinkler .......................................................................................... 40

5.6.3 Komplicerede vinkler.............................................................................. 43

5.7 DELKONKLUSION............................................................................................. 45

6 KONKLUSION..................................................................................................... 46

7 LITTERATURLISTE.......................................................................................... 47

III


Billedanalyse på mikrodatamat Figuroversigt

Figuroversigt

FIGUR 1. BILLEDE AF BORDFODBOLDSPILLET................................................................................................2

FIGUR 2. SAMMENHÆNG MELLEM U OG V. ...................................................................................................3

FIGUR 3. SAMMENSAT BILLEDE.....................................................................................................................3

FIGUR 4. U-BILLEDE......................................................................................................................................3

FIGUR 5. Y-BILLEDE......................................................................................................................................3

FIGUR 6. V-BILLEDE......................................................................................................................................3

FIGUR 7. NÆRBILLEDE AF STØJ. ....................................................................................................................4

FIGUR 8. YUV-BILLEDER FRA INTERNETTET.................................................................................................4

FIGUR 9. EKSEMPEL PÅ FORVRÆNGNING AF BILLEDET..................................................................................5

FIGUR 10. HISTOGRAMMER FOR DE FORSKELLIGE BILLEDER.........................................................................7

FIGUR 11. AREALOPDELING PÅ HISTOGRAMMER...........................................................................................8

FIGUR 12. GENKENDTE FARVER FREMHÆVET. ..............................................................................................9

FIGUR 13. EN PRÆCIS BESKRIVELSE AF BORDETS PLACERING ER NØDVENDIG FOR AT KUNNE

TRANSFORMERE PIXELVÆRDIER TIL (X,Y) KOORDINATER..................................................................10

FIGUR 14. TRANSFORMERING AF KOORDINATSYSTEM.................................................................................11

FIGUR 15. BILLEDE AF HJØRNE I V-FORMAT, HVOR HVID = RØD..................................................................12

FIGUR 16. SØGNING EFTER HJØRNE. ............................................................................................................12

FIGUR 17. BILLEDE AF GENKENDTE KANTER...............................................................................................13

FIGUR 20. BESTEMMELSE AF STÆNGERS PLACERING...................................................................................18

FIGUR 21. FILTRERET BILLEDE. ...................................................................................................................19

FIGUR 22. TEST BILLEDE. ............................................................................................................................20

FIGUR 23. FEJL SOM FUNKTION AF REEL POSITION. .....................................................................................21

FIGUR 24. BEREGNEDE PUNKTER I FORHOLD TIL VIRKELIGE PUNKTER........................................................22

FIGUR 25. TYPISK Y-BILLEDE. ....................................................................................................................25

FIGUR 26. TYPISK U-BILLEDE. ....................................................................................................................25

FIGUR 27. MØNSTERGENKENDELSE AF BOLD. .............................................................................................26

FIGUR 28. KONTURGENKENDELSE...............................................................................................................26

FIGUR 29. SKITSE AF BORDET SET OPPEFRA.................................................................................................27

FIGUR 30. SKITSE AF SLISKE SET FRA SIDEN. ...............................................................................................27

FIGUR 31. PRÆCISIONSTEST VED MØNSTERALGORITME. .............................................................................28

FIGUR 32. PRÆCISIONSTEST VED KONTURALGORITME. ...............................................................................28

FIGUR 33. HISTOGRAM FOR SIMPEL THRESHOLD ALGORITMEN. ..................................................................29

FIGUR 34. HISTOGRAM FOR MØNSTERALGORITMEN....................................................................................29

FIGUR 35. HISTOGRAM FOR KONTURALGORITMEN......................................................................................29

FIGUR 36. BOLDGENKENDELSE VED MØNSTERALGORITMEN.......................................................................30

FIGUR 37. BOLDGENKENDELSE VED KONTURALGORITMEN.........................................................................31

FIGUR 38. SAMMENLIGNING AF ALGORITMER. ............................................................................................31

FIGUR 39. SKITSE AF KAMERA OG SPILLERE. ...............................................................................................33

FIGUR 40. SKITSE AF HVORDAN KAMERAET SER DE RØDE SPILLERE............................................................34

FIGUR 41. SKITSE AF RELEVANTE STØRRELSER FOR EN SPILLER..................................................................35

FIGUR 42. KORRIGERING AF VINKEL. ..........................................................................................................36

FIGUR 43. SOM COMPUTEREN SER ET 3D BILLEDE MED ET 2D KAMERA, HVIS SPILLERNE STÅR PÅ HOVEDET.

..........................................................................................................................................................37

FIGUR 44. SITUATIONEN HVIS SPILLERNE STÅR PÅ HOVEDET OG DERES BEN PEGER VÆK FRA MIDTEN AF

BORDET..............................................................................................................................................37

FIGUR 45. SOM COMPUTEREN SER ET 3D BILLEDE, HVIS SPILLERNES BEN PEGER VÆK FRA MIDTEN AF

BORDET..............................................................................................................................................38

FIGUR 46. SAMMENLIGNING MELLEM MÅLTE OG BEREGNEDE VÆRDIER. ....................................................40

FIGUR 47. MÅLING PÅ STANG-1 (ANGREBET)..............................................................................................41

FIGUR 48. MÅLING PÅ STANG-2 (MIDTBANEN)............................................................................................41

FIGUR 49. MÅLING PÅ STANG-3 (FORSVARET). ...........................................................................................42

FIGUR 50. FORSVAR OG MÅLMAND KAN IKKE SKELNES FRA HINANDEN......................................................42

FIGUR 51. MÅLING PÅ STANG-4 (MÅLMANDEN)..........................................................................................43

FIGUR 52. OMKRING 0°. ..............................................................................................................................44

FIGUR 53. OMKRING 180°. ..........................................................................................................................44

IV


Billedanalyse på mikrodatamat Figuroversigt

FIGUR 54. OMRING 90°. ..............................................................................................................................44

FIGUR 55. OMKRING -90°............................................................................................................................44

FIGUR 56. DE FIRE KVADRANTER. ...............................................................................................................44

V


Billedanalyse på mikrodatamat Indledning

1 Indledning

Et åbenlyst succeskriterium for et automatiseret bordfodboldspil er et veldesignet

visionsystem. Overordnet set så skal visionsystemet kunne tre ting.

• Finde bordets hjørner, stænger, bolden og spillernes farver og på baggrund af

disse informationer kalibrere systemet.

• Finde boldens position så hurtigt at dens retning og hastighed kan forudsiges.

• Finde modspillernes position og vinkel så frie boldbaner kan beregnes.

I de følgende kapitler vil alle disse elementer blive beskrevet – herunder også de valgte

implementeringer og testmetoder.

Indledningsvis er selve systemet beskrevet, da kendskab om dette giver en bedre

forståelse af de valgte principper. Afslutningsvis konkluderes det om hvorvidt målet er

nået i tilstrækkelig grad.

1


Billedanalyse på mikrodatamat Systembeskrivelse

2 Systembeskrivelse

2.1 Bordfodboldspil

Bordfodboldspillet er helt normalt bortset fra, at der er monteret motorer med

henholdsvis hastigheds- og vinkeltilbagekobling på hver af de fire stænger, som styrer

de hvide spillere.

Figur 1. Billede af bordfodboldspillet.

Derudover er der monteret et stativ, som sørger for at videokameraet kan se hele

bordfodboldspillet oppefra midt på bordet. Boldens farve er valgt således, at den er let at

identificere i det valgte billedformat.

2.2 Kamera

Som kamera bruges et analogt farvekamera med en 6mm linse, outputtet fra denne

opsamles af et grapperkort, som gemmer billedet i YUV-format. Kameraet har en

framerate på 25 billeder pr. sekund – interlaced, dvs. potentielt kan der køres med 50

billeder pr. sekund men med den halve informationsmængde. I dette projekt køres der

med 25 billeder pr. sekund. For yderligere læsning om opsætning af kamera og grapper

henvises til [A] Sølvhøj og Breiting.

2.2.1 Billed-format

Grapperfunktionen gemmer som nævnt billedet i YUV-format (768 pixels x 576 pixels).

YUV formatet er opbygget af tre billeder (planer) som repræsenterer farvebilledet i tre

sort-hvid billeder. De tre billeder benævnes Y, U og V, hvor Y-delen er det ækvivalente

sort-hvid billede, U – delen er blå/gul farverepræsentation og V-delen er rød/grøn

farverepræsentation. Farverepræsentationen fungerer således at en ren rød farve

repræsenteres med en meget lav pixel-værdi i V-billedet, hvor en meget grøn farve får

en høj pixelværdi. Sammensat giver U- og V-billedet sammenhængen på Figur 2.

2


Billedanalyse på mikrodatamat Systembeskrivelse

Figur 2. Sammenhæng mellem U og V.

En detalje er at U- og V-billederne kun er halvt så brede som Y-billedet. På Figur 3,

Figur 4, Figur 5 og Figur 6 ses sammenhængen mellem de virkelige farver på

bordfodboldbordet og YUV billedet af det.

Figur 3. Sammensat billede.

Figur 5. Y-billede.

Figur 4. U-billede.

Figur 6. V-billede.

2.2.2 Støj

Det ses på YUV-billedet på Figur 6, at Y-delen står meget skarpt, men at U og V delen

er meget støjfyldte. Det ses desuden at støjen har en tendens til at danne bølger i Vbilledet.

Et nærbillede viser tydeligt denne tendens – se Figur 7.

3


Billedanalyse på mikrodatamat Systembeskrivelse

Figur 7. Nærbillede af støj.

Disse billeder er dog ikke unikke, da følgende billeder fra internettet viser samme

tendens – se Figur 8.

Figur 8. YUV-billeder fra internettet.

2.2.3 Forvrængning

Linsen som sidder på kameraet har tendens til dørkiggert-syn, dvs. ting midt i billedet

ses normalt hvorimod ting i kanterne bliver trykket sammen. Effekten kan tydeligst ses

på følgende billede af den ene bande. Denne burde blive repræsenteret lige, men buer

kraftigt, som det kan ses på Figur 9.

4


Billedanalyse på mikrodatamat Systembeskrivelse

A B

C

Figur 9. Eksempel på forvrængning af billedet.

Punkterne A, B og C har Y-værdierne hhv. 23, 18 og 29, hvilket giver at den midterste

pixel i forhold til en lige linie mellem yderpunkterne ligger otte pixel fra hvor den burde

(den burde være 26). Da hver pixel ca. svarer til 0.25 cm svarer denne fejl dermed til ca.

2 cm, hvilket er en betydelig fejlkilde.

En løsning på problemet kunne være at lave en overføringsfunktion

billedbehandlingsmæsigt, som kompenserede for fejlen. Dette vurderes dog til at være

for omfattende for dette projekt.

Det vælges at arbejde med billederne som de er, og se støjen og forvrængningen som

fejlkilder og en udfordring.

2.3 Computer

Kameraets output er et analogt billedsignal. Dette signal bliver samplet og overført til

computerens hukommelse vha. et framegrabber PCI-kort. Computeren er i øvrigt

udstyret med en PII 450MHz CPU, som er tilstrækkelig hurtig til at analysere alle

billederne.

Operativsystemet er en almindelig Redhat Linux. Såfremt der også skulle reguleres på

spillet, så kunne det overvejes, at benytte et realtidssystem.

Kalibrerings-, boldgenkendelses- og spillergenkendelsesprogrammerne er alle skrevet,

som separate programmer i almindelig ANSI C. Kildekoden til programmerne er

forefindes på den vedlagte CD-ROM.

5


Billedanalyse på mikrodatamat Initialisering

3 Initialisering

For at bordfodboldrobottens visionsystem kan fungere er det vigtigt at have kendskab til

grundlæggende placeringer og thresholds i billedet. Det er initialiseringens opgave at

bestemme disse.

Følgende væsentlige punkter skal senere bruges af andre funktioner:

• Generel normalitet (sidder kameraet som det skal, er bordet i billedet)

• Thresholds til farvegenkendelse.

• Stængernes placering i billedet

• Bordets placering i billedet

Sidstnævnte er især væsentlig for robottens evne til at positionere objekterne fra billedet

i forhold til de spillere den styrer med motorer.

Det er tænkt at initialiseringen kun køres idet programmet starter, derfor er krav om

hastighed ikke nævnt.

3.1 Krav

• Initialiseringen skal kunne verificere kameraets position indenfor 10x10x10 cm.

• Bordets placering skal kunne bestemmes med så høj nøjagtighed som førnævnte

fejlkilder tillader det.

• Initialiseringen skal indeholde en metode til at transformere pixel-koordinater til

fysiske koordinater i cm.

• Stængernes placering skal bestemmes indenfor 2 pixels nøjagtighed.

• Initialiseringen skal fastlægge thresholds for farvegenkendelse som kan tilpasse

sig nye lysforhold.

3.2 Filtrering

Det viser sig at flere funktioner i initialiseringen har problemer med salt-peber støj, dvs.

små øer af en forkert farve i et område af en anden farve. De steder hvor dette har været

et problem er billederne blevet filtreret med Erosion/Dilation filter (ED-filter).

ED-filteret virker således på et sort-hvid (binært) billede som støjfiltreres mht. sort.

1. alle sorte pixels som grænser op til en hvid pixel (også på skrå), gøres hvide

(erosion).

2. derefter gøres alle hvide pixels som grænser op til en sort, sorte.

6


Billedanalyse på mikrodatamat Initialisering

1 2

Resultat: alle sorte objekter under en hvis størrelse forsvinder og en stor del af støjen

langs kanter forsvinder. Metoden er desuden simpel og hurtig at implementere.

3.3 Thresholds til farvegenkendelse

Måden vi separerer de forskellige elementer på bordfodboldbordet er farvegenkendelse.

Således er banen grøn, spillerne røde eller hvide, bolden er gul, kanterne er røde,

stangholderne er sorte og banderne er hvide. Da billedet præsenteres i YUV formatet er

det nemt at isolere følgende farver: sort, hvid, gul, blå, rød og grøn, hvilket passer

optimalt med de farver vi skal isolere.

• Hvid isoleres som højeste Y værdier

• Sort isoleres som laveste Y-værdier

• Gul isoleres som laveste U-værdier

• Rød isoleres som højeste V værdier

• Grøn isoleres som laveste V-værdier

For at analysere thresholds for de forskellige farve anskues histogrammer for

fordelingen af værdier i de forskellige billeder.

Figur 10. Histogrammer for de forskellige billeder.

7


Billedanalyse på mikrodatamat Initialisering

Det ses af Figur 10, at det ikke ud fra histogrammerne er muligt at fastsætte relevante

thresholds. I stedet vurderes det hvor stor en del af billedet der er dækket af fx rød =

11%. Herefter findes arealet af histogrammet svarende til 10 %, startende fra 255 (hvis

farven er repræsenteret i den øverstedel af histogrammet)). På tilsvarende måde findes

thresholds for de andre farver, ved brug af følgende størrelses angivelser:

Farve Andel af billedet

Hvid 25 %

Sort 25 %

Gul 0.1 %

Rød 11 %

Grøn 38.9 %

Dette resulterer i følgende arealopdeling på histogrammerne (Figur 11), hvor blå

antyder at dette farveområde ikke er brugt til genkendelse af farver.

Figur 11. Arealopdeling på histogrammer.

Tilsvarende, på Figur 12, er de genkendte farver blevet fremhævet. På billede 1 er sort

fremhævet som helt sort, og hvid som helt hvid, på billede 2 er gul fremhævet som helt

hvid og på billede 3 er grøn fremhævet som sort og rød fremhævet som hvid.

8


Billedanalyse på mikrodatamat Initialisering

Figur 12. Genkendte farver fremhævet.

Det ses på det første billede at flere af de grønne og røde områder genkendes som sorte,

hvilket var nødvendigt for at man kan genkende de sorte områder.

På det andet billede ses det at ikke kun den gule bold bliver genkendt,

også flere af

stængerne

fremtræder som gule pga. genskin fra lamperne. Disse fejlinput fjernes senere

ved kendskab til stængerne placering.

På det tredje billede ses det at banden og de røde spillere fremtræder tydeligt i billedet.

Den

grønne spilleflade fremtræder i grove træk, men der er generelt meget

støj på

denne,

og det vurderes at vi ikke kan bruge den grønne farve videre. Desuden ses det at

billedet generelt er støjet. Der er en del salt/peber støj, dvs. pixels som genkendes som

røde på et sted hvor der ikke er røde objekter. Dette blev behandlet under kapitel 3.2 om

filtrering.

3.3.1 Vurdering af metoden

Fordelen ved metoden er at thresholdsne dannes dynamisk, dvs. ændringer i lysforhold

mm. ikke påvirker bestemmelsen af thresholds negativt.

Ulemperne er at hvis objekter med stærke farver kommer ind på bordet vil de kunne

ændre threshold-værdierne samt at hvis den gule bold ikke er synlig for kameraet så vil

den farve ikke være repræsenteret og igen vil threshold-værdien blive forkert. Derfor

skal bordet altså stå alene ved initialiserin g .

3.4

Placering af hjørner

Hjørnerne af bordfodboldbordet har betydning i flere sammenhænge:

1. Afgrænsning af spillefladen: For at optimere senere søgerutiner således at de

kun søger i det relevante område og ikke risikerer at opfatte en gul sko ved siden

af bordet som en bold.

2. Sammenkobling mellem computer og virkelighed: Når fodboldrobotten spiller

så har den en intern repræsentation af bordet. Sammenhængen mellem det

9


Billedanalyse på mikrodatamat Initialisering

virkelige bordfodboldbord og den interne repræsentation kan defineres ved

hjælp af hjørnerne, se Figur 13.

Kameraets synsfelt

Kameraets synsfelt

Figur

13. En præcis beskrivelse af bordets placering er nødvendig for at kunne transformere

pixelværdier til (x,y) koordinater.

Når banens fire hjørner er fundet skal vinklen α bestemmes. Ud fra kendskab til de fire

linier der forbinder hjørnerne kan der bestemmes fire værdier for α, og den endelige

værdi

findes som gennemsnitte af de fire.

For at checke om hjørnerne er placeret korrekt undersøges det om α-værdierne ligger

inden for en passende afvigelse af hinanden.

3.4.1 Koordinat-transformation

For at kunne positionere spillere og bold i et fælles koordinatsystem som fungerer

sammen med de computerstyrede spillere, skal

der oprettes en koordinat-transformation

fra billedets pixel-koordinater

til (x,y)koordinater i cm på bordforboldbanen – en

positioneringsalgoritme.

Banens koordinatsystem defineres ud fra kendskab

til de fire hjørner samt kendskab til

banens fysiske længde og bredde. Herefter

laves der et første ordens best-fit af et

rektangel med hjørnepunkter oveni de observerede

hjørner. Denne firkants

koordinatsystem vil i forhold til billedets være drejet vinklen α og forskudt (x1,y1), hvor

(x1,y1) er koordinaterne for det øverste venstre hjørne. Illustreret på Figur 14.

α

α

α

α

10


Billedanalyse på mikrodatamat Initialisering

Y-billed

V(x1,y1)

Y-bord

X-billed

X-bord

Figur 14. Transformering af koordinatsystem.

Koordinattransformationen er opbygget således:

1. billedpunktet (Px,Py), forskydes V(x1,y1)

⎡Px

−v

⎤ ⎡Px

⎤ ⎡x1


⎢ ⎥ = ⎢ ⎥ + ⎢ ⎥

⎣Py

−v

⎦ ⎣Py

⎦ ⎣y1


2. punktvektorens længde (L) og vinkel(β) bestemmes

2 2

L Px

− v Py

−v

+ =

β = a tan 2(

Py

−v

, Px

−v

)

3. den før bestemte α-vinkel trækkes fra β og det nye punkts pixel-koordinater

bestemmes ud fra trigonometri.

⎡PBx ⎤ ⎡cos(

β −α )⋅L⎤

⎢ ⎥ = ⎢ ( ) ⎥

⎣PBy

⎦ ⎣sin

β − α ⋅ L⎦

4. bordets cm/pixel ratio findes

'virkelig

_ længde'

χ =

' pixel _ længde'

5. pixel-værdierne ændres til cm-værdier.

⎡X


Y

B

⎤ ⎡P

⎥ = ⎢

⎦ ⎣P

bx

⎣ B By


⎥ ⋅ χ


α

11


Billedanalyse på mikrodatamat Initialisering

3.4.2

Implementering

Til at finde hjørnepunkterne benyttes kanten mellem banen og afskærmningen. Disse

kanter findes ved at analysere V – billedet (af YUV) binært, således at pixelsne enten er

røde eller ikke røde. Da der er mange af disse kanter på banen (fx ved alle de røde

spillere), skal kanterne være over en hvis længde for at blive accepteret til at kunne

danne

et hjørne.

Det store problem her var at kanterne på banen ikke er lige, især ikke ende-banderne.

Desuden er kanten ikke nødvendigvis sammenhængende i hjørnerne da de reelt er

ads kilt af en smal hvid stribe.

Desuden er V-billedet støjet, dvs. kanten svinger indenfor 3-4 pixels se Figur 15.

Figur 15. Billede af hjørne i V-format, hvor hvid = rød.

Fremgangsmåden blev at afsøge billedet for aflange firkanter hvori der er over et vist

antal kantpixels, se Figur 16. Derefter lavedes der en lineær regression over punkterne

således at stregen gik igennem den akse hvor punkterne udgjorde det mindste

inertimoment. Skæringen mellem sådan to streger vil herefter ligge i et hjørne. Se Figur

16.

Figur 16. Søgning efter hjørne.

12


Billedanalyse på mikrodatamat Initialisering

Der kan bestemmes mange streger i hvert hjørne der opfylder disse kriterier og dermed

mange hjørnepunkter der ligger i nærheden af hinanden. Disse midles for at bestemme

det endelige hjørnepunkt. På Figur 17 er samtlige genkendte kantpixels tegnet op som

hvid kant, genkendte banekanter er tegnet med sorte streger og derudfra placerede

hjørner er markeret med et hvidt kryds.

Figur 17. Billede af genkendte kanter.

Denne del af programmet testes sammen med positioneringen af fodboldspillerne.

13


Billedanalyse på mikrodatamat Initialisering

3.5 Placering af kamera i forhold til bordet

Da den del af programmet som finder spillernes vinkler afhænger meget af at kameraet

hænger præcist som det skal (inden for 10x10x10cm), laves der en rutine som finder

kameraets placering i forhold til bordfodboldbordet.

Der tages udganspunkt i de i foregående afsnit bestemte hjørneplaceringer, samt

kendskab til den fysiske bredde og længde af bordfodboldbordet.

3.5.1 Systemets fysik

Det fysiske system ser ud som på Figur 18.

θ1

Bord

α1

D X-D

X

H

Kamera

α2

φ1

Figur 18. Skitse af det fysiske system.

Der findes følgende sammenhænge mellem de forskellige variable på Figur 18.


θ ⎜

1 = arctan



2

H + L

D


φ ⎜

1 = arctan



2

H + L

X − D

α = 180 − ( θ + φ)

1

Det ses dermed at vinklen α1, og de tilsvarende tre andre vinkler omkring kameraet, kan

bestemmes ud fra kendskab til X,Y, H, L og D. I vores tilfælde er X og Y kendt (målt)

hvorimod H, L og D (det er netop disse tre parametre vi ønsker bestemt) er ukendte. For

at disse kan bestemmes skal vinklerne α1 - α4 bestemmes ud fra billedbehandling.

2

2









L

Y-L

Y

14


Billedanalyse på mikrodatamat Initialisering

3.5.2 Kameraets fysik

For at bestemme vinklerne α1 - α4 anskues kameraets fysik. På Figur 19 ses en model af

kameaet med linse og CCD. Det vides at kameraet har en 6mm linse samt at CCD-en

har dimensionerne 4,8x6,4mm.

V1(x1,y1,z1)

V2(x2,y2,z2)

β

6.4 mm

CCD

y

6 mm

z

Linse

x

4.8 mm

Figur 19. Skitse af kameraet. V1 og V2 er vektorer i et koordinatsystem som har

udgangspunkt (0,0,0) i linsens midte.

Her er V1 og V2 vektorer som går fra (0,0,0) til det punkt på CCD'en hvor to af

hjørnepunkterne befinder sig. Dermed vil vinklen β modsvare den tidligere beskrevne

vinkel α.

Punkterne på CCD’en hvor V1 og V2 rammer kaldes P1(x,y) og P2(x,y), og deres

pixelværdier er kendt fra forrige afsnit. Deres pixelværdier omregnes til

tredimensionelle koordinater i mm i vektorerne således:

V

⎡(

Pixelbredde

/ 2)

− P1


⎡x

⎤ Pixelbredde

1 ⎢

⎢ ⎥ ( Pixeldybde / 2)

− P1

= = ⎢


y1

⎥ ⎢ Pixeldybde

⎢⎣

z ⎥ 1 ⎦ ⎢

6mm



( x)

( y)


⋅ 6.

4mm⎥


⋅ 4.

8mm






1 ,

Pixelbredde

= 384 pixels

Pixeldybde = 576 pixels

15


Billedanalyse på mikrodatamat Initialisering

Når vektorerne for alle fire hjørner er kendt findes vinklen mellem vektorerne ved hjælp

af følgende relation:

⎛ V1

× V

β = arcsin⎜


⎝ V1

V2

Vi har hermed kendskab til vinklerne β1-β4 mellem hjørnerne set fra kameraets linse.

3.5.3 Rekursiv estimering af H, L og D.

Estimering af H, L og D baseres på at man gætter på en placering af kameraet, dvs

(Hgæt, Lgæt, Dgæt). Ud fra dette gæt beregnes α1-α4 , som derefter sammenlignes med de

virkelige vinkler β1-β4. ud fra forskellen opdateres gættene (Hgæt, Lgæt, Dgæt) ud fra

følgende observationer:

• Hgæt er større end H hvis summen af β1-β4 er mindre end summen af α1-α4 og

omvendt.

• Lgæt er større end L hvis β1 er mindre end α1 og hvis β3 er større end α3.

• Dgæt er større end D hvis β2 er større end α2 og hvis β4 er mindre end α4.

Disse observationer kan udvides til at give et skøn på hvor meget for små eller store

gættene er. Hvis fx summen af β1-β4 er meget mindre end summen af α1-α4, vil Hgæt

være mere for stor end hvis summen af β1-β4 kun var lidt mindre end summen af α1-α4.

Dette benyttes til at opdatere gættene således:

H

L

D

gæt

gæt

gæt

4 4 ⎛


= H gæt + 2 ⋅ε

⎜∑

β x −∑α

x ⎟

⎝ x=

1 x=

1 ⎠

= L + ε

gæt

= D

gæt

+ ε

2




( ( β1

−α

1 ) − ( β3

−α

3 ) )

( ( β −α

) − ( β −α

) )

4

hvor ε er en heuristisk bestemt opdateringskonstant der sørger for at opdateringen ikke

divergerer samtidig med at den sørger for at estimeringen stopper, når systemet er stabilt

dvs når:




4


x=

1

β

4

x −∑

x=

1


α x ⎟ =


3.5.4 Implementering

I implementeringen benyttes følgende:

4

( ( β −α

) − ( β −α

) ) = 0 ∧ ( ( β −α

) − ( β −α

) ) = 0

0 ∧ 1 1 3 3

4 4 2 2

⎡H


gæt = ⎢ L


⎣D

gæt

gæt

gæt

2

⎤ ⎡ 1m


⎥ ⎢ ⎥

⎥ =


0.

3m




⎢⎣

0.

5m⎥⎦

2

16


Billedanalyse på mikrodatamat Initialisering

samt en opdateringskonstant på ε = 0.4, hvilket giver en estimeringstid på omkring 40

samples.

3.5.5 Test af kameraplacering

Kameraplacerings-funktionen testes ved at lave målinger med kameraet placeret fire

forskellige steder over bordet. Følgende billede viser det konkrete billede for anden

position hvor der tydeligt er perspektiv i billedet:

Resultaterne blev således:

Home position

Koordinat Virkelig

Målt koordinat Spredning på

koordinat

(middleværdi)

måling

H (højde) 117.5 119.7 0.169

D (X-koordinat) 56 58.7 0.2119

L (Y-koordinat) 35 40.1 0.787

D 18.5cm mindre end home

Koordinat Virkelig

Målt koordinat Spredning på

koordinat

(middleværdi)

måling

H (højde) 117.5 120.3 0.119

D (X-koordinat) 37.5 40.18 0.4417

L (Y-koordinat) 35 38.83 0.5981

D 13cm større end home

Koordinat Virkelig

Målt koordinat Spredning på

koordinat

(middleværdi)

måling

H (højde) 116 117.89 0.1457

D (X-koordinat) 69 69.65 0.2023

L (Y-koordinat) 35 40.36 0.6423

17


Billedanalyse på mikrodatamat Initialisering

L 20cm mindre end home

Koordinat Virkelig

Målt koordinat Spredning på

koordinat

(middleværdi)

måling

H (højde) 117.5 121.7 0.14

D (X-koordinat) 56 58.7 0.33

L (Y-koordinat) 15 20.83 0.8115

Det at der er biaser i funktionen, hvilket fx ses ved at højdemålingen konstant er større

end den virkelige værdi. De gennemsnitlige biaser fordeler sig således:

Koordinat Gennemsnitlig fejl standardafvigelse

H 2.77 1.02

D 2.1825 1.03

L 5.03 0.86

Her er fejlen i L-koordinaten mest tydelig og valid (mindst spredning). Hvis der

kompenseres for fejlen i L-koordinaten (den gennemsnitlige fejl trækkes fra alle

målinger) vil den maksimale fejl ligge i de gråt markerede områder (se forrige tabel for

måleresultater) og have følgende værdi

( 121.

7 −117.

5)

+ 3⋅

0.

14 4.

62

Maks _ fejl = Mean _ fejl + 3⋅

σ =

= cm

Denne værdi er lavere end den i kravene specificerede grænse på 5 cm. Resultatet kunne

forbedres endnu mere hvis de gennemsnitlige fejl for H og D kompenseredes, men dette

ville skal ske på et statistisk svagere grundlag og undlades.

3.6 Placering af stænger

Da der senere skal bruges et præcist kendskab til stængernes placering laves der en

præcis bestemmelse af deres placering under initialiseringen. Stængernes placering

defineres ved placeringen af holderen i hver sin ende af stængerne, da holderen er sort

på en hvid baggrund og derfor er nem at bestemme placeringen af. Et billede af

holderen er vist på Figur 20. Holderens midtpunkt bestemmes som arealmidtpunktet af

en afgrænset gruppe sorte pixels.

Figur 20. Bestemmelse af stængers placering.

3.6.1 Implementering

Da det vides at holderne til stængerne ligger mellem to hjørnepunkter indskrænkes

søgerummet til området mellem punkterne plus/minus 20pixel. Som det ses på Figur 22

18


Billedanalyse på mikrodatamat Initialisering

er der et boldindkast i hver side af bordet som bliver opfanget som en niende stang,

denne sorteres fra.

3.6.2 Filtrering

Som det ses på Figur 20, hvor alle nuancer under thresholdet for sort er blevet markeret

med helt sort, er store dele af billedet støjfyld og store dele af den røde kant optræder

som sort. Derfor støjfiltreres billedet (som tidligere beskrevet) og tidligere kendskab til

hvor de røde områder på banen er markeres som grå. Det færdig filtreredere billede ses

på Figur 21.

Figur 21. Filtreret billede.

3.6.3 Test

Testen af denne del af initialiseringen udføres af to omgange, først visuelt, et simpelt

check for at se om placeringerne ligger hvor de skal samt en test hvor placeringerne

overføres til fysiske bordkoordinater og derefter sammenlignes med fysisk målte

værdier.

Test 1 foretages på Figur 22, og det konstateres at krydserne, der indikerer stangholdermidten,

er placeret meget præcist i midten. Test 2 foretages i afsnit 3.7.1 Test af

positionering.

19


Billedanalyse på mikrodatamat Initialisering

3.7 Test

Figur 22. Test billede.

3.7.1 Test af positionering

Dette afsnit omhandler testen af programmets evne til at placere objekter på banen i et

fysisk koordinatsystem. Testene sammenholder målte værdier (med lineal), med af

billedbehandlingen beregnede værdier.

3.7.1.1 Placering af hjørner

Da placeringsalgoritmen er baseret på hjørnernes værdier vil denne test give en ide om

forventede usikkerheder i de senere placeringer.

Hjørne X-værdi Beregnet X-værdi Y-værdi Beregnet Y-værdi Afstand

1 0cm 0cm 0cm 0cm 0cm

2 112cm 111cm 0cm -0.0297cm 0.995cm

3 0cm 0.088cm 70.2cm 70.89cm 0.6932cm

4 112cm 110.9cm 70.9cm 70.88cm 1.2987cm

Som forventet er algoritmen mest præcis omkring hjørne 1, da algoritmen har et

fixpunkt der. Det ses at worst-case fejlen er 1.2987cm og som forventet sker dette

længst fra fixpunktet.

20


Billedanalyse på mikrodatamat Initialisering

3.7.1.2 Placering af stænger

Denne test bruges både til at undersøge positioneringsalgoritmen og til at undersøge

stangplaceringens præcision. Mht. præcisionen af stangplaceringen er vi kun

interesseret i dens X-værdi.

Stangnummer Reel position Øvre stangholder Nedre stangholder

1 3.5 cm 3.8626 4.2010

2 18.5 cm 18.3361 18.6979

3 33.5 cm 33.1151 33.3091

4 48.5 cm 48.2571 48.3490

5 63.5 cm 63.2738 63.2698

6 78.5 cm 78.3605 78.2422

7 93.5 cm 93.1018 92.9431

8 108.5 cm 107.5883 107.4077

Øvre stangeholder refererer til at de er placeret øverst i billedet og dermed på linie med

hjørne 1 og 2. Hvis fejlen i målingerne afbildes som funktion af den reelle position

giver det resultatet på Figur 23.

fejl

1.2

1

0.8

0.6

0.4

0.2

0

-0.2

-0.4

-0.6

øvre stangholdere

nedre stangholdere

-0.8

0 20 40 60

reel position

80 100 120

Figur 23. Fejl som funktion af reel position.

Her ses det at fejlen har en tydelig afhængighed af placeringen af målepunktet i billedet.

Fejlene er små og jævne midt i billedet (punkterne 3-7), hvorimod de i nærheden af

kanterne har en kraftigt stigende fejl (punkterne 1,2,7 og 8). Dette hænger fint sammen

med den beskrevne forvrængning som findes i kameraet.

De ikke forvrængede punkter (3-7) har en middelværdi på 0.2778cm og en spredning på

0.1304cm, hvilket svarer til en stationær fejl på én pixel og en standart afvigelse på ± en

halv pixel.

Samlet placerer de beregnede stangholder- og hjørnepunkter sig, som vist på Figur 24, i

forhold til de virkelige (målte) værdier.

21


Billedanalyse på mikrodatamat Initialisering

80

70

60

50

40

30

20

10

0

beregnede placeringer

virkelige placeringer

-10

0 20 40 60 80 100 120

Figur 24. Beregnede punkter i forhold til virkelige punkter.

3.7.2 Stabilitetstest

For at teste stabiliteten af målingerne under normale forhold lavedes 232 på hinanden

følgende målinger. Målingernes spredning blev bestemt og grupperet. Resultaterne blev

som følger:

Resultatgruppe Gennemsnitlig spredning 3σ Maximal spredning 3σ

Thresholds 0.1758 0.53 0.5524 1.66

Hjørneplaceringer 0.2965 pixel 0.89 0.5775 pixel 1.67

Stangplaceringer 0.1009 pixel 0.3 0.2599 pixel 0.78

Kameraplacering 0.2709 cm 0.81 0.5283 cm 1.58

Af de fem thresholds var der tre der havde en spredning på nul (hvid, sort og rød),

værdierne for grøn vekslede mellem to værdier og gul vekslede mellem tre værdier.

Generelt placeres hjørnerne inden for +/- 0.89 pixel (3σ = 99.7%, hvis normalfordelt),

og stængerne placeres inden for +/- 0.3 pixel. Dette tolkes som at beregningerne ikke er

følsomme overfor den støj i billederne som tidligere er beskrevet.

22


Billedanalyse på mikrodatamat Initialisering

3.8 Delkonklusion

Initialiseringsrutinen har følgende egenskaber

• Den kan bestemme thresholds til farvegenkendelse. Disse thresholds bestemmes

med en gennemsnitlig standartafvigelse på 0,1758.

• Den kan placere placere stænger med en præcision på +/-1 pixel.

• Den kan ave en overføring fra billedkoordinater til fysiske koordinater med en

præcision på 1 cm, hvilket er en meget høj præcision når man tager

forvrængningen i kameraet med.

• Desuden kan den placere kameraet med en præcision på under 10x10x10 cm.

Initialiseringen lever dermed op til de krav vi stillede til den. Yderligere forbedringer

kan være at lave en kompensation for forvrængningen i kameraet.

23


Billedanalyse på mikrodatamat Boldgenkendelse

4 Boldgenkendelse

4.1 Indledning

Formålet med dette kapitel er, at beskrive undersøgelsen af tre forskellige algoritmer til

boldgenkendelse. Algoritmernes virkemåde, fordele og ulemper er beskrevet. Ydermere

gennemgås resultaterne ved række test, som i sidste ende afgør, hvilken algoritme der er

bedst egnet til formålet.

4.2 Krav

Kravene til en boldgenkendelsesrutine er åbenlyse. Først og fremmest skal den kunne

finde bolden med en rimelig præcision, og dernæst skal den kunne gøre det så hurtigt, at

der ikke tabes frames pga. for lang søgetid.

Mht. præcisionen så blev det besluttet, at massemidtpunktet skulle bestemmes inden for

en boldradius (17 mm), da dette typisk vil være tilstrækkeligt, hvis man skal kunne

blokere for bolden.

Kravet til søgetiden er en anelse mere diffust. Alt i alt så må der maksimalt bruges 40ms

mellem hver frame (25 frames pr. sek.), men da der også skal være tid til at køre andre

dele af programmet, så blev grænsen lagt på en tiendedel – altså 4ms.

For kravene gælder det naturligvis, at der ønskes en så lille positionsafvigelse og

søgetid, som overhovedet muligt.

4.3 Algoritmer

4.3.1 Generelt

Fælles for alle algoritmerne er, at de søger i et dynamisk søgevindue. I stedet for at

gennemsøge hele billedet hver gang bolden skal findes, så tager søgningen altså

udgangspunkt i det sidste sted bolden blev fundet (±50 pixels i x- og y-retningen).

Såfremt bolden ikke kan findes i dette vindue, så udvides søgningen med 50 pixels i alle

retningen. Denne fremgangsmåde fortsættes indtil enden af billedet er nået og/eller

bolden er fundet.

Alle søgealgoritmerne søger i u-billedet, hvor den gule bold fremstår mørk. Figur 25 og

Figur 26 illustrerer dette.

24


Billedanalyse på mikrodatamat Boldgenkendelse

Figur 25. Typisk Y-billede. Figur 26. Typisk U-billede.

Det fremgår imidlertid også af de to figurer, at det ikke kun er bolden, som fremstår

mørk - genskæret fra næsten alle stænger giver ligeledes anledning til en mørk plamage.

Dette faktum nødvendiggør endnu en selektering i søgevinduet. Søgealgoritmerne skal

altså undlade at søge i de områder, hvor stængernes genskær kan skabe forvirring.

Stængernes placering findes vha. kalibreringsrutinen – se kapitel 3.6. For at minimere

antallet af positionsevalueringer og dermed søgetiden, så søges der altid i y-aksens

retning.

4.3.2 Simpel threshold

Den første boldgenkendelsesalgoritme, der blev undersøgt, tog udgangspunkt i en

simpel threshold undersøgelse på alle pixels i søgevinduet, og efterfølgende beregning

af massemidtpunkt.

( x , y )

M

M



= ⎜




Metoden er meget simpel, men den kræver en undersøgelse af alle pixels, og har

yderligere den svaghed at evt. støj i billedet vil have meget stor indflydelse på

massemidtpunktet, hvis afstanden til det faktiske massemidtpunkt er stor.

Selve threshold værdien bestemmes vha. kalibreringsrutinen – se kapitel 3.3.

4.3.3 Mønstergenkendelse

Mønstergenkendelsesmetoden er et forsøg på, at eliminere støjfølsomheden, som den

simple threshold metode lider meget under. Udgangspunktet for algoritmen er

indledningsvis, at søge efter en pixel, som ligger under det fastlagte threshold.

i

i

x

i

,


i

i

y

i






25


Billedanalyse på mikrodatamat Boldgenkendelse

Figur 27. Mønstergenkendelse af bold.

Da der søges vertikalt startende ovenfra, så vil det først detekterede punkt ligge i den

øvre venstre halvdel af bolden, som det er illustreret på Figur 27. Såfremt det fundne

punkt rent faktisk er et punkt på bolden, så vil koncentrationen af omkringliggende

mørke pixels være meget høj – i modsætning til hvis det var støj, som var årsag til

detekteringen.

Med udgangspunkt i den fundne pixel, så undersøger algoritmen altså et område, som

svarer til boldens størrelse, og beslutter på det grundlag om det er sandsynligt, at der er

tale om en bold. Den aktuelle tærskelværdi for antallet er 50, og der søges i et område

på 20 x 20 pixels. Såfremt koncentrationen af mørke pixels i området er for lille, så

søges der videre efter nye områder i søgevinduet.

Udover at eliminere støjfølsomheden, så har denne algoritme også den fordel, at der

typisk skal evalueres færre pixels end, der skal ved brug af den simple threshold

algoritme. Dette er i særlig høj grad tilfældet, når bolden er placeret i den øvre venstre

halvdel af søgevinduet, hvor søgeområdet bliver fundet relativt hurtigt.

4.3.4 Konturgenkendelse

Den sidst implementerede algoritme er et forsøg på at nedbringe antallet af pixel

evalueringer yderligere. Ligesom for mønstergenkendelsen, så ledes, der ved

konturgenkendelsen, efter et udgangspunkt for videre undersøgelse.

Forskellen mellem de to algoritmer er, at der i sidstnævnte tilfælde ikke ledes efter en

koncentration af mørke pixels. Til gengæld afsøges kun boldens kant indtil

udgangspunktet for undersøgelsen igen er nået eller der er undersøgt tilstrækkeligt

mange pixels til, at det kun være bolden, der er fundet.

Figur 28. Konturgenkendelse.

Figur 28 illustrerer hvorledes algoritmen afsøger kanten, hvor den røde pil indikerer den

først fundne pixel. Som det fremgår, så undersøges det om nabopixels tilhører en del af

26


Billedanalyse på mikrodatamat Boldgenkendelse

objektet eller ej. Der undersøges altid først til højre i pilens retning, derefter lige ud, så

til venstre og til sidst bagud.

Konturgenkendelsesalgoritmen er meget lidt følsom overfor salt- og peberstøj, men til

gengæld kan den være noget følsom overfor genskær fra de lange hvide streger på

bordfodboldbordet.

4.4 Test

4.4.1 Generelt

Som tidligere nævnt så blev algoritmerne bedømt udfra to succeskriterier – præcision og

søgetid. Disse to parametre blev afmålt vha. to forskellige tests. I den ene test lå bolden

stille på en fuldstændig synlig position, og i den anden trillede bolden ned af en sliske

med en kendt udgangsfart.

Den første test havde til formål at afdække de to parametre, mens den sidste test havde

til formål at afgøre om parametrene var tilstrækkelige til at boldgenkendelsen ville virke

i en spilsituation.

Til brug ved den sidste test blev der konstrueret en sliske, som skulle sikre en ens

udgangsfart ved sammenligningen af de tre algoritmer. Slisken er skitseret på Figur 30.

B

Figur 29. Skitse af bordet set oppefra.

L

∆h

v

Figur 30. Skitse af sliske set fra siden.

Hvis computeren skal have gavn af at vide hvor bolden er på vej hen, så skal den kunne

nå at tage to billeder inden bolden har passeret to stænger (dvs. mindst 15cm). Kameraet

tager 25 billeder i sekundet, hvilket giver en maksimal hastighed på.

B

v m

max = ≈ 3,

75

⎛ 1 ⎞ s

⎜ −1


⎝ 25s


Når der skydes fra angrebet mod målmanden er der imidlertid dobbelt så langt, og

slisken blev derfor dimensioneret til den halve hastighed.

27


Billedanalyse på mikrodatamat Boldgenkendelse

ΔE

pot = ΔEkin

⎛ v

m ⋅ g ⋅ Δh

= ½ ⋅ m ⋅ ⎜

⎝ 2

⎛ vmax


⎜ ⎟

2

Δh

=

⎝ ⎠

2 ⋅ g

Δh

≈ 0,

18m

2

max

2




v = 40°

Δh

L = ≈ 0,

28m

sin( v)

Vinklen på 40° blev valgt under hensyntagen til at bolden ikke må hoppe, når den

forlader slisken, og resultatet blev altså, at bolden skulle trille 28cm ned af slisken.

4.4.2 Test nr. 1

Den første test skulle som tidligere nævnt både sige noget om præcisionen samt

søgetiden. Præcisionen blev testet ved, at lade algoritmerne give et bud på

massemidtpunktet og efterfølgende tegne et kryds på Y-billedet.

Figur 31. Præcisionstest ved mønsteralgoritme.

Figur 32. Præcisionstest ved konturalgoritme.

Figur 31 og Figur 32 viser resultatet ved brug af henholdsvis mønster – og

konturalgoritmen. Billedet af konturalgoritmen er i øvrigt taget på et tidspunkt, hvor det

dynamiske søgevindue endnu ikke er snævret ind til ±50 pixels i forhold til det fundne

massemidtpunkt.

Massemidtpunktsangivelsen for mønster- og konturalgoritmerne afveg i værste tilfælde

med 1 pixel. Som det fremgår, så ligger krydset imidlertid ikke eksakt i midten af

bolden, men snarere et lille stykke oppe i den øvre venstre halvdel. Dette skyldes

lyskildens placering, og udgør ikke noget egentligt problem.

Det viste sig imidlertid, at den simple threshold algoritme var stort set ubrugelig, da den

mindste smule støj straks spolerede beregningen af massemidtpunktet. I de værste

tilfælde afveg angivelsen med 15 pixels i både x- og y-retningen.

28


Billedanalyse på mikrodatamat Boldgenkendelse

Ved målingen af algoritmernes søgetider blev programmerne gennemløbet 150 gange,

og hver gang blev søgetiderne gemt i et array. Resultaterne af målingerne fremgår af

Figur 33, Figur 34 og Figur 35.

Figur 33. Histogram for simpel threshold algoritmen. Figur 34. Histogram for mønsteralgoritmen.

Figur 35. Histogram for konturalgoritmen.

Måleresultaterne er slående. Der er ingen tvivl om at mønsteralgoritmen er langt den

hurtigste, men også langt den mest stabile. Sidstnævnte er helt tydeligt, da søgetiderne

ligger helt tæt, hvad der vidner om at bolden er fundet i første forsøg hver gang. Det vil

altså sige, at søgevinduet ikke er blevet udvidet undervejs med større søgetid som følge.

Det fremgår imidlertid helt klart, at kontoralgoritmen ikke finder bolden i første forsøg

hver gang, men når det lykkes, så er den faktisk stort set lige så hurtig som

mønsteralgoritmen. Det er sandsynligvis støj, i form af horisontale bølger henover

billedet, som er årsag til at bolden ikke bliver fundet første gang. En sådan bølge kan

nemlig let dele bolden i to, og så vil boldens konturer i bedste fald blive halverede.

Histogrammet for den simple threshold algoritme er også taget med for helhedens skyld.

Algoritmen udskiller sig som forventet ved at have den højeste søgetid af dem alle.

Det bør i øvrigt bemærkes at søgetiderne til enhver tid kan forbedres ved at anvende en

hurtigere computer. Resultaterne skal derfor først og fremmest vurderes indbyrdes. Alle

algoritmerne er imidlertid hurtigere end 4ms, som blev stillet som krav.

29


Billedanalyse på mikrodatamat Boldgenkendelse

4.4.3 Test nr. 2

I den anden test skulle algoritmerne testes i praksis. Grundet de dårlige resultater med

den simple threshold algoritme, så er det kun de to øvrige algoritmer, der er beskrevet

her. Selve testen blev udført ved at opstille slisken og lade bolden trille fra den

beregnede højde.

Programmet blev konstrueret således, at selve logningen af boldens placering først

startede i det øjeblik, at bolden havde forladt slisken. På det sidste billede blev de

fundne punkter plottet med hvide retlinede linjer imellem dem. De fundne punkter

fremstår som sorte pixels på de hvide streger i Figur 36 og Figur 37.

Figur 36. Boldgenkendelse ved mønsteralgoritmen.

Succeskriteriet for denne test var altså primært om algoritmerne kunne nå at finde

bolden to gange imellem de to første stænger. Figur 36 viser med al tydelighed, at

mønsteralgoritmen ikke har nogen problemer – faktisk lykkedes det at finde bolden hele

tre gange mellem de to første stænger.

Det lykkedes imidlertid kun konturalgoritmen at finde bolden en gang mellem de to

første stænger. Konturalgoritmen er altså ikke velegnet til det pågældende setup,

hvorimod mønsteralgoritmen må siges, at være særdeles velegnet.

30


Billedanalyse på mikrodatamat Boldgenkendelse

Figur 37. Boldgenkendelse ved konturalgoritmen.

Figur 38 er taget med for at give en ide om, hvor godt de implementerede algoritmer

klarede sig i forhold til en ideel algoritme, som finder bolden hver gang, der kommer et

nyt billede. Tiden er altså målt hver gang bolden er fundet for hver af de to algoritmer.

Som det ses, så ligger mønsteralgoritmen ret tæt på den ideelle algoritme.

Figur 38. Sammenligning af algoritmer.

31


Billedanalyse på mikrodatamat Boldgenkendelse

4.5 Delkonklusion

De indledende test med en stillestående bold indikerede ret tidligt, at mønsteralgoritmen

ville give de bedste resultater i den endelige test. Dette viste sig med al tydelighed at

være tilfældet. Test nr. 2 endte endvidere med at bekræfte, at mønsteralgoritmen er

særdeles velegnet i det testede system.

32


Billedanalyse på mikrodatamat Spillergenkendelse

5 Spillergenkendelse

5.1 Indledning

Denne del af opgaven omhandler bestemmelse af spillernes position og vinkel.

Spillernes position er vigtig for at computeren kan undgå at skyde bolden lige ind i

modspillerne. Vinklen er vigtig for at computeren kan forudse hvad modspilleren har

tænkt sig at gøre. Dette er vigtigt, da det er muligt at skyde så hurtigt, at kameraet ikke

kan nå at følge med.

Målet med at få computeren til at se hvilken vinkel spillerne står i, er at genkende et

skud, før bolden bevæger sig. Ved se at spilleren dreje hen mod bolden vil den kunne

”forudse” hvilken bane og hvor hurtigt bolden vil bevæge sig. Vinkelbestemmelse kan

også bruges, når computeren har bolden fordi den så kan se hvilke spillere den kan

skyde under.

5.2 Krav

Ønsket er at både position og vinkel bliver bestemt hurtigt og præcist. Da der sidder

encodere på computerens stænger (de hvide), og da disse giver meget præcise data, vil

vi kun bruge kameraet til at bestemme de røde spilleres position og vinkel.

Der skal endvidere tages hensyn til tidsforbruget, hvis programmet skal have en chance

for at virke. Der bliver taget 25 billeder per sekund, hvilket vil sige at der kommer et nyt

billede hver 40ms. Derfor er dette det maksimale tidsforbrug hele programmet må have,

og da bestemmelse af de røde spilleres position og vinkel ikke er det eneste det skal

kunne, må denne del maksimalt tage 10ms.

5.3 Billedanalyse

Computeren ser bordfodboldspillet, som det er illustreret på Figur 39.

Stænger

Spillere

Kamera

Positiv

vinkel

Figur 39. Skitse af kamera og spillere.

De røde spillere bliver styret af den menneskelige modstander, og de hvide spillere

bliver styret af computeren.

33


Billedanalyse på mikrodatamat Spillergenkendelse

Y

Spiller 1

Spiller 2

Spiller 3

Stang 1

Stang 2

Stang 3

Figur 40. Skitse af hvordan kameraet ser de røde spillere.

X

Stang 4

Figur 40 illustrerer hvordan kameraet ser de røde spillere. På billedet står spillerne i en

sådan vinkel at kameraet ser så lidt af dem så muligt, altså ikke nødvendigvis lodret

(Dette bliver forklaret senere).

5.3.1 Spillernes position

Spillernes position bestemmes ved at finde en x og y koordinat for hver spiller i pixelkoordinatsystemet.

x-værdien er den samme, som for den stang den sidder på, så

egentlig er det kun y-værdien, der findes, medmindre bordet er roteret i forhold til

kameraet. X-værdien bliver fundet ved at lede langs stængerne, og når der stødes på

noget rødt, så tælles det hvor mange pixels der var røde i træk, og midtpunktet

udregnes.

Der tages der ikke højde for optikkens forvrængning af billedet, da dens indflydelse er

meget beskeden.

5.3.2 Bestemmelse af vinklen indenfor 90°

Hvis man kigger på Figur 39 og forestiller sig at en lodret linie nedenfor kameraet, så

fås en situation som på Figur 41, hvor.

sin(α ) ⋅

HS = LK

34


Billedanalyse på mikrodatamat Spillergenkendelse

Længde

kameraet

kan se =

LK

Vinkel

Alpha

Højde af

Spiller =

HS

Figur 41. Skitse af relevante størrelser for en spiller.

Hvis man kalder længden fra spillerens fod til midten af stangen for FS, og længden fra

stang til spillerhoved for SH kan det desuden ses at:

sin( α)

⋅ ( HS − SH ) + sin( α)

⋅ ( HS − FS)

= sin( α)

⋅ ( 2 ⋅ HS − SH − FS)

= sin( α)

⋅ ( 2 ⋅ HS − HS)

= LK

Det ses af overstående ligninger, at formlen for udregningen af vinklen er den samme

selvom stangen fx gik gennem spillerens fod.

−1⎛

LK ⎞

α = sin ⎜ ⎟

(a)

⎝ HS ⎠

Alt dette gælder kun under forudsætning af, at spillernes lodrette vandring ikke ændrer

på antallet af pixels kameraet kan se. Med andre ord at antallet af pixels er det samme

ligegyldigt om spilleren står i en vinkel på 45º eller 135º. Spilleren bevæger sig

maksimalt 15 cm i denne retning, og derfor anses det for negligerbart.

Vinklen udregnes med trigonometri betyder at computeren kun kan bestemme vinklen

inden for 90 o . Senere præsenteres metoder til at placere spilleren i en af de fire

kvadranter.

5.3.3 Korrigering af den fundne vinkel

I det tilfælde at spillerens akse ikke er placeret lige under kameraet, så kan man stadig

bruge formel (a), men man får dog ikke spillerens vinkel i forhold til lodret, men i stedet

en vinkel, der skal korrigeres. Vinklen kan korrigeres med en konstant, hvilket er

illustreret på Figur 42.

35


Billedanalyse på mikrodatamat Spillergenkendelse

Afstand Z

Afstand X

Vinkel β

Figur 42. Korrigering af vinkel.

Vinkel α

Vinklen α ses i dette tilfælde at være spillerens vinkel i forhold til vinkel β. For at få

vinklen i forhold til lodret trækkes α fra β. Det ses desuden at vinklen β kan bruges for

alle spillere på en stang.

5.3.4 Positiv/negativ vinkel

For at finde ud af om α skal være positiv eller negativ, så er det nødvendigt at vurdere

på hvilken side af stangen at spillerens udstrækning er størst. På Figur 42 betyder det at

spilleren, som fylder mest ned mod bordet (højre), skal have en vinkel α der er positiv.

Når den ligger på den anden side skal den skifte fortegn. Dette skal ses i forhold til den

linie der går fra midten af kameraet ned gennem stangen, hvorpå spilleren sidder.

På denne måde kan vinklen findes i forhold til β, men kun i et interval fra –90º til 90º.

Computeren ved altså ikke om spilleren peger opad eller nedad.

5.3.5 Op eller ned

Om spilleren står på hovedet eller ej kan kameraet ikke se udfra det netop beskrevne

tilfælde. En løsning på dette kunne være at få computeren til at vurdere om den kan se

et hoved af en spiller eller ej.

En anden løsning kunne være at udnytte, at der i et hvert 2D billede findes forsvindingspunkter.

Hvis spillerne peger opad – dvs. står på hovedet – så vil de yderste spillere

pege mere udad end indad. Dette er illustreret på Figur 43.

36


Billedanalyse på mikrodatamat Spillergenkendelse

Virkelighed

Som computeren

ser et 3d billede

med et 2d kamera

Figur 43. Som computeren ser et 3D billede med et 2D kamera, hvis spillerne står på hovedet.

Figur 44 illustrerer det samme. Figuren viser hvordan det ser ud, hvis spillerne står på

hovedet og deres ben peger væk fra midten:

Virkelighed Som computeren

ser et 3d billede

med et 2d kamera

Figur 44. Situationen hvis spillerne står på hovedet og deres ben peger væk fra midten af bordet.

Figur 45 viser hvorledes det ser ud, hvis spillerne står normalt med benene pegene væk

fra kameraet.

37


Billedanalyse på mikrodatamat Spillergenkendelse

Virkelighed Som computeren

ser et 3d billede

med et 2d kamera

Figur 45. Som computeren ser et 3D billede, hvis spillernes ben peger væk fra midten af bordet.

Der er en tydelig forskel på hvilken vej spillerne vender og den bliver udnyttet til at

bestemme om spillerne står på hovedet eller ej.

Det skal huskes, at stængerne ikke står lige under kameraet, og derfor skal vinklen

korrigeres.

5.4 Kort om programmet

Programmet leder langs hver stang og finder spillernes positioner. Derefter ledes i et

område omkring spilleren for at finde den præcise udstrækning af spilleren.

Programmet regner alle spilleres vinkel og position ud. Resultatet kommer ud som en ykoordinat,

en x-koordinat samt en vinkel. Y-koordinaten er midten af det sted på

spilleren der er fastgjort på stangen. X-retningen kendes allerede, da man allerede ved

hvor stængerne ligger. Desuden findes den maksimale og minimale x-værdi, for hver

spiller.

Programmet regner først vinklen ud i forhold til β (se Figur 42). Programmet finder altid

den mindste vinkel, og da dette gøres med en normal sinus relation bestemmes den kun

indenfor et område fra 0 til 90º.

Ved at se til hvilken side af stangen spilleren har størst udstrækning bliver det afgjort

om vinklen skal være positiv eller negativ, hvorved vinklen bestemmes i et område fra -

90° til 90° i forhold til vinklen β.

Endeligt kan programmet også skelne om en spiller står på hovedet eller ej.

5.5 Bestemmelse af forskellige konstanter

En spillers maksimale og minimale værdi i x-aksen’s retning blev bestemt og værdien

blev brugt som fast mål for hvor stor en firkant computeren skal lede omkring hver

38


Billedanalyse på mikrodatamat Spillergenkendelse

spiller. De præcise værdier blev bestemt ved at stangen forsigtigt blev drejet omkring

den vinkel, hvor spillerne havde den største og mindste udstrækning. Samtidig tog

computeren tog en masse billeder for til sidst at udskrive den mindste og største fundne

udstrækning for alle spillere på stangen. Disse konstanter blev brugt under udregningen

af vinklen.

Det viste sig, at der ikke var forskel på hverken maksimal eller minimal udstrækningen

for spillere på samme stang. Desuden var der heller ikke forskel på om spillerne stod

ude i siden af bordet eller inde på midten.

Stang 1 Stang 2 Stang 3 Stang 4

Minimal x-værdi 7 7 7 7

Maksimal x-værdi 34 35 35 29

Hvis man for hver stang trækker den minimale udstrækning fra den maksimale, så får

man et udtryk for hvor stor pixelvandring hver stang har. Ud fra denne pixelvandring

kan man lave en beregning på hvor stor sikkerhed, der er på bestemmelsen af vinklen.

Den mindste pixelvandring findes på stang 4 - målmanden, og er på 22 pixels. Da

vinklerne bliver udregnet med en sinusrelation vil den maksimale ændring være:

sin

−1

( 22 / 22)

− sin

−1

( 21/

22)

= 17,


Denne ændring ligger i vinklen lige før 90°. Den tilsvarende mindste ændring er

beregnet herunder..

Ændringen ligger lige før 0°.

sin

−1

( 1/

22)

− sin

−1

( 0 / 22)

= 2,


Korrektionsvinklerne er udregnet for hver enkelt stang, og ikke for hver enkelt spiller.

De er udregnet ved hjælp af den lodrette afstand fra kameraet til stængerne, der regnes

som en konstant, Z, samt den vandrette, X (se Figur 41). Derefter bruges de normale

formler for en retvinklet trekant, og vinklen som funktion af afstand Z og X bestemmes

med følgende formel:

β = tan

For de forskellige stænger blev følgende korrektionsvinkler beregnet.

Stang 1-Angreb Stang 2-Midtbane Stang 3-Forsvar Stang 4-Målmand

10° -3,3° -17,3°

β -23,6°

−1




Z

X




39


Billedanalyse på mikrodatamat Spillergenkendelse

5.6 Test

5.6.1 Spillerposition

Til test af spillerpositionen blev der udført en række målinger med en enkelt spiller,

hvor den ene forsvarsspiller blev flyttet fra banden og 10 cm ind med 0.5cm

mellemrum. Målingerne af dette blev behandlet af positioneringsalgotitmen, og

sammenlignet med de virkelige værdier (Figur 46).

y-position

66

64

62

60

58

56

Målte positioner

virkelige positioner

54

0 2 4 6 8 10 12 14 16 18 20

målingsnummer

Figur 46. Sammenligning mellem målte og beregnede værdier.

Det ses at værdierne ligger meget jævnt placeret men med en stationær fejl på 0.73 cm

og en standardafvigelse på 0.14. Hvis denne stationære fejl relateres til den stationære

fejl i positions-algoritmen, kan det ud fra standardafvigelsen konkluderes at

positioneringen af spillerne virker indenfor +/- en pixel.

5.6.2 Spillervinkler

5.6.2.1 Generelt

Ved beregningen af spillernes vinkel i forhold til lodret, så skal man have i mente at

fodboldspillerens bryst er bredere end dens fod, og computeren derfor kun vil se brystet

af spilleren ved små vinkler. Nogle af vinklerne vil derfor blive beregnet på forkert

grundlag.

Programmet har lidt problemer med at finde ud af om vinklen er positiv eller negativ

ved de små vinkler. Dette skyldes igen spillerens brystkasse. Brystkassen er det

smalleste sted på spilleren og er cirka 7 pixels i udstrækning. På disse 7 pixels skal der

bestemmes hvilken ende af spilleren der er tættest på midten, hvad der kan være en del

usikkerhed på.

I det følgende gennemgås målinger for de fire respektive stænger, Alle målinger blev

foretaget fra 0 til -90°, med et interval på 5º. Der er medtaget negative værdier for at

40


Billedanalyse på mikrodatamat Spillergenkendelse

teste om computeren kan ændre fortegn, når vinklen blev negativ - β er inkluderet i

vinkelplottet.

5.6.2.2 Angreb

Beregnet vinkel [grader]

20

0

-20

-40

-60

-80

-100

0 º

Spiller 1

Spiller 2

Spiller 3

Reference

-10 º

-20 º

-30 º

-40 º

-50 º

-60 º

Indstillet vinkel [grader]

Figur 47. Måling på stang-1 (angrebet).

For angrebsspillerne går vinkelberegningen for det meste godt. Der er dog problemer

ved meget store vinkler, hvilket skyldes, at spillerne udstrækning, set fra kameraets

position, ændrer sig meget lidt.

5.6.2.3 Midtbane

Beregnet vinkel [grader]

20

0

-20

-40

-60

-80

-100

Spiller 1

Spiller 2

Spiller 3

Spiller 4

Spiller 5

Reference

-20 º

-15 º

-10 º

-5 º

0 º

-50 º

-45 º

-40 º

-35 º

-30 º

-25 º

Indstillet vinkel [grader]

-70 º

-90 º

-85 º

-80 º

-75 º

-70 º

-65 º

-60 º

-55 º

Figur 48. Måling på stang-2 (midtbanen).

Det ses på Figur 48, at der opstår usikkerhed i programmet om hvorvidt en vinkel er

positiv eller ej på midtbanen. Computeren er dog ikke i tvivl, hvis vinklen er større end

25º til den ene eller den anden side. De øvrige beregnede vinkler følger referencen pænt.

-80 º

-90 º

41


Billedanalyse på mikrodatamat Spillergenkendelse

5.6.2.4 Forsvar

Beregnet vinkel [grader]

0

-10

-20

-30

-40

-50

-60

-70

-80

-90

0 º

Spiller 1

Spiller 2

Reference

-10 º

-20 º

-30 º

-40 º

-50 º

Indstillet vinkel [grader]

-60 º

-70 º

Figur 49. Måling på stang-3 (forsvaret).

For vinkler større end 25° giver vinkelberegningen for forsvarsspillerne gode resultater,

men der kan opstå problemer, hvis forsvaret og målmanden står på en bestemt måde.

Hvis forsvaret står i en vinkel på -100°, målmanden står i en vinkel på mellem -100º til -

120º og den ene forsvarer og målmanden står på samme y-koordinat, så vil både denne

ene forsvarer og målmanden gå i -90º. Dette skyldes, at de 2 spillere ikke kan skelnes

fra hinanden fra den vinkel, som kameraet er placeret i. Se Figur 50.

Figur 50. Forsvar og målmand kan ikke skelnes fra hinanden.

-80 º

-90 º

42


Billedanalyse på mikrodatamat Spillergenkendelse

5.6.2.5 Målmand

Beregnet vinkel [grader]

0

-20

-40

-60

-80

-100

-120

0 º

Spiller 1

Reference

-10 º

-20 º

-30 º

-40 º

-50 º

Indstillet vinkel [grader]

-60 º

-70 º

-80 º

Figur 51. Måling på stang-4 (målmanden).

Som det fremgår af Figur 51, så giver beregningen af målmandens vinkel anledning til

en del vanskeligheder. Dette skyldes primært, at den kan stå i en sådan vinkel, at den

går i et med kanten af bordfodboldspillet. Dette resulterer betyder, at beregningerne

giver vinklen -90º ved vinkler større en -70°.

5.6.3 Komplicerede vinkler

Der blev foretaget målinger omkring 0°, 90°, 180° og -90°. Ved hver af disse vinkler

blev der foretaget 5 målinger fra 10° mindre til 10° større med et interval på 5°. Der er

målt disse steder, da det er heromkring, at programmet især kan være i tvivl.

Måleresultaterne, som fremgår af Figur 52, Figur 53, Figur 54 og Figur 55 afslører, at

der er størst problemer omkring vinklerne 0° og 180°, hvad der svarer til op eller ned for

spillerne. De øvrige beregninger giver mere sikre resultater.

-90 º

43


Billedanalyse på mikrodatamat Spillergenkendelse

20

15

10

5

0

-5

-10

-15

-20

120

100

80

60

40

20

0

-10 -5 0 5 10

Figur 52. Omkring 0°.

80 85 90 95 100

Spiller 1

Spiller 2

Reference

Spiller 1

Spiller 2

Reference

200

150

100

50

0

-50

-100

-150

-200

0

-20

-40

-60

-80

-100

-120

170 175 180 -175 -170

Figur 53. Omkring 180°.

-80 -85 -90 -95 -100

Figur 54. Omring 90°. Figur 55. Omkring -90°.

Spiller 1

Spiller 2

Reference

Spiller 1

Spiller 2

Reference

Det ses at der er en hvis usikkerhed i disse områder. Fejlen er dog begrænset til disse få

områder.

Desuden blev der lavet 4 målinger til undersøgelse af om programmet kan genkende

spillerens placering i alle fire kvadranter. Testvinklerne er følgende: 45 o , 135 o , -135 o

og -45 o .

150

100

50

0

-50

-100

-150

-135 -45 45 135

Figur 56. De fire kvadranter.

Spiller 1

Spiller 2

Reference

Målingerne viser at programmet kan finde spillerens position i alle fire kvadranter, og

dermed tilnærmelsesvist følge spilleren i den fulde vandring 360 o om stangen.

44


Billedanalyse på mikrodatamat Spillergenkendelse

5.7 Delkonklusion

Programmet kan finde position og vinkel af alle spillere på banen. Vinkelbestemmelsen

er usikker når spilleren står lodret eller vandret i forhold til kameraet, hvilket kan

forklares ved følgende:

• Opløsningen ved vandret er meget lav

• Brystkassen dækker for fødderne ved lodret

Det tager derudover 2ms at køre programmet, hvilket ligger klart under de angivne krav.

Ved hjælp af det implementerede program kan computeren altså i de fleste tilfælde

bedømme, hvornår spilleren står i vejen, og hvornår der er fri bane. Dette var det

primære formål med beregningen af spillerpositioner og -vinkler.

45


Billedanalyse på mikrodatamat Konklusion

6 Konklusion

Efter at have arbejdet intensivt med projektets problemstillinger i 2 måneder, kan det

konkluderes, at det er lykkedes at udvikle et visionsystem, som lever op til delproblemernes

individuelle krav. Den udviklede løsning er altså i stand til at.

• Finde bordets hjørner, stænger, bolden og spillernes farver og på baggrund af

disse informationer kalibrere systemet.

• Finde boldens position så hurtigt at dens retning og hastighed kan forudsiges.

• Finde modspillernes position og vinkel så frie boldbaner kan beregnes.

Om disse individuelle krav vil være tilstrækkelige i et automatiseret bordfodboldsystem

vil kun en endelig test kunne afsløre.

46


Billedanalyse på mikrodatamat Litteraturliste

7 Litteraturliste

Følgende litteratur er anvendt ved dette projekt.

[A] Vision og styring til fodboldrobot, Jonas Sølvhøj & Malte Breiting, 2003

[B] Robot Vision, B. K. P. Horn, MIT Press, 1986

47

More magazines by this user
Similar magazines