Specifikation av kandidatexjobb

Relevanta dokument
Automatisk bildanalys av foton på Rubiks kub

Automatisk bildanalys av foton på Rubiks kub. ANDRÉ GRÄSMAN och RASMUS GÖRANSSON

Du Kan Fixa. Rubiks kub i 8 steg KUB. ALEGA Skolmateriel AB

Lös Rubiks kub i 8 steg

Kort introduktion till POV-Ray, del 1

Sidor i boken f(x) = a x 2 +b x+c

Uppsala Universitet Matematiska Institutionen Thomas Erlandsson

UPPGIFT 1 TVETYDIGA DATUM

17 Trigonometri. triangeln är 20 cm. Bestäm vinkeln mellan dessa sidor. Lösning: Här är det dags för areasatsen. s1 s2 sin v 2

Matematik CD för TB. x + 2y 6 = 0. Figur 1:

SF1624 Algebra och geometri Lösningsförslag till tentamen DEL A. t 2

Funktioner. Räta linjen

Komposanter, koordinater och vektorlängd Ja, den här teorin gick vi igenom igår. Istället koncentrerar vi oss på träning inför KS3 och tentamen.

Introduktion till algoritmer - Lektion 1 Matematikgymnasiet, Läsåret Lektion 1

Parabeln och vad man kan ha den till

Moment 4.11 Viktiga exempel 4.32, 4.33 Övningsuppgifter Ö4.18-Ö4.22, Ö4.30-Ö4.34. Planet Ett plan i rummet är bestämt då

Moment Viktiga exempel Övningsuppgifter I Ö5.1b, Ö5.2b, Ö5.3b, Ö5.6, Ö5.7, Ö5.11a

y = x x = Bestäm ekvationen för en linje där k = 2 och som går genom punkten ( 1, 3). 2/0/0

Vektorgeometri för gymnasister

. b. x + 2 y 3 z = 1 3 x y + 2 z = a x 5 y + 8 z = 1 lösning?

Veckoblad 1, Linjär algebra IT, VT2010

Gamla tentemensuppgifter

Vinjetter TDDC91 Datastrukturer och algoritmer

Moment 4.2.1, 4.2.2, 4.2.3, Viktiga exempel 4.1, 4.3, 4.4, 4.5, 4.6, 4.13, 4.14 Övningsuppgifter 4.1 a-h, 4.2, 4.3, 4.4, 4.5, 4.

SF1624 Algebra och geometri Lösningsförslag till tentamen DEL A

2. 1 L ä n g d, o m k r e t s o c h a r e a

MYSTERIER SOM ÅTERSTÅR

.I Minkowskis gitterpunktssats

Elevuppgift: Bågvinkelns storlek i en halvcirkel

Grafiska pipelinen. Edvin Fischer

ax + y + 4z = a x + y + (a 1)z = 1. 2x + 2y + az = 2 Ange dessutom samtliga lösningar då det finns oändligt många.

MULTIPLIKATION AV MATRISER, BASER I RUMMET SAMT FÖRSTA MÖTET MED MATRISINVERSER = = =

Andra EP-laborationen

x+2y 3z = 7 x+ay+11z = 17 2x y+z = 2

SF2715 Tillämpad kombinatorik, 6hp

Moment 5.5 Övningsuppgifter I 5.60a. 5.60b, 5.60.c, 61

Färger. Matthew Woehlke Översättare: Stefan Asserhäll

KOKBOKEN 1. Håkan Strömberg KTH STH

Institutionen för matematik och datavetenskap Karlstads universitet. GeoGebra. ett digitalt verktyg för framtidens matematikundervisning

kan vi uttrycka med a, b och c. Avsnitt 2, Vektorer SA + AB = SB AB = SB SA = b a, Vi ritar först en figur av hur pyramiden måste se ut.

Moment Viktiga exempel Övningsuppgifter

Lab5 för prgmedcl04 Grafik

===================================================

Omtentamen i DV & TDV

Lösningsförslag till övningsuppgifter, del V

Moment Viktiga exempel Övningsuppgifter

20 Gamla tentamensuppgifter

Lösningsanvisningar till vissa av de icke obligatoriska workout-uppgifterna i Beräkningsvetenskap II

Vektorgeometri för gymnasister

Geometri och statistik Blandade övningar. 1. Vid en undersökning av åldern hos 30 personer i ett sällskap erhölls följande data

Analys o Linjär algebra. Lektion 7.. p.1/65

Föreläsning 3: Radiometri och fotometri

P Q = ( 2, 1, 1), P R = (0, 1, 0) och QR = (2, 2, 1). arean = 1 2 P Q P R

Polynom över! Till varje polynom hör en funktion DEFINITION. Grafen till en polynomfunktion

Föreläsning 5. Approximationsteori

NÄMNARENs. problemavdelning

Projektanvisning. Webbsideprojekt. Författare: Johan Leitet Version: 2 Datum:

Vi har väl alla stått på en matta på golvet och sedan hastigt försökt förflytta

Omtentamen i DV & TDV

Lösningar till utvalda uppgifter i kapitel 1

SF1624 Algebra och geometri Lösningsförslag till modelltentamen DEL A

Vektorgeometri för gymnasister

Känguru 2013 Cadet (åk 8 och 9) i samarbete med Jan-Anders Salenius vid Brändö gymnasium

Avdelning 1, trepoängsproblem

RÖRELSE. - Mätningar och mätinstrument och hur de kan kombineras för att mäta storheter, till exempel fart, tryck och effekt.

1 Vektorer i koordinatsystem

Procedurell grottgenerator och eld i GLSL. Marcus Widegren

NpMa2c vt Provet består av tre skriftliga delprov (Delprov B, C och D). Tillsammans kan de ge 57 poäng varav 20 E-, 20 C- och 17 A-poäng.

Tentamen TNM061, 3D-grafik och animering för MT2. Onsdag 20/ kl SP71. Inga hjälpmedel

I addition adderar vi. Vi kan addera termerna i vilken ordning vi vill: = 7 + 1

Explorativ övning Vektorer

Determinant Vi förekommer bokens avsnitt, som handlar om determinanter eftersom de kommer att användas i detta avsnitt. a 11 a 12 a 21 a 22

Repetition inför kontrollskrivning 2

Explorativ övning euklidisk geometri

Explorativ övning 7 KOMPLEXA TAL

Linjär algebra på några minuter

Föreläsningsanteckningar i linjär algebra

Polygoner. Trianglar på tre sätt

Färger. Matthew Woehlke Översättare: Stefan Asserhäll

Här ska jag presentera en variant

Vektorgeometri. En vektor v kan representeras genom pilar från en fotpunkt A till en spets B.

Basbyte (variabelbyte)

ÖVNINGSTENTOR I MATEMATIK DEL C (MED LÖSNINGSFÖRSLAG)

H 214 Liljefors 1,2. Tabell 1: Sammanställning av information från färgkort för H 214. Cylinderräkneverk. Räkne- Antal inlagor Från nr Till nr Summa

Tentamen 1 i Matematik 1, HF dec 2017, kl. 8:00-12:00

Konvergens för iterativa metoder

GeoGebra i matematikundervisningen - Inspirationsdagar för gymnasielärare. Karlstads universitet april. Liten introduktionsguide för nybörjare

Dagens ämnen. Linjära ekvationssystem: Successiv elimination Vektorer Definitionen Grundläggande räkneoperationer Bas och koordinater Ortsvektorer

Bedömning för lärande i matematik

Zooma in (1) Zooma ut (2) Standardutbredning (3)

TMV166 Linjär Algebra för M. Tentamen

Dekomposition och dynamisk programmering

Inledande kurs i matematik, avsnitt P.2. Linjens ekvation kan vi skriva som. Varje icke-lodrät linje i planet kan skrivas i formen.

November 17, 2015 (1) en enda lsg. Obs det A = 1 0. (2) k-parameter lsg. Obs det A = 0. k-kolonner efter sista ledande ettan

Beräkna determinanten för produkten MMM Skissa, och bestäm arean av, det i det komplexa talplanet belägna området

Denna föreläsning. DN1212 Numeriska metoder och grundläggande programmering FN Felfortplantning och kondition

SKRIVNING I VEKTORGEOMETRI Delkurs

Målsättningar Proffesionell kunskap. Kunna hänvisa till lagar och definitioner. Tydlighet och enhetliga beteckningar.

Matematik A Testa dina kunskaper!

Inledande programmering med C# (1DV402) Introduktion till programmering

Transkript:

Specifikation av kandidatexjobb 3D-rekonstruktion av Rubiks kub André Gräsman Rasmus Göransson grasman@kth.se rasmusgo@kth.se 890430-3214 850908-8517

Introduktion Vi vill göra en förstudie om 3D rekonstruktion. För att göra ämnet lättare så vill vi fokusera på att göra rekonstruktion i ett specialfall där vi vet mycket om objektet. Vi har tänkt oss rekonstruera tillståndet för en Rubiks kub utifrån två fotografier i perspektiv. Vi utgår ifrån att varje bild har tre synliga sidor av kuben. De två bilderna visar tillsammans kubens alla sex sidor. Kubens sidor kan betecknas med bokstäverna U, R, F, D, B och L som står för Up, Right, Front, Down, Back och Left. Dessa beteckningar används genomgående i dokumentet. Problemet som skall lösas är att bestämma tillståndet på kuben utifrån de två fotografierna. Tillståndet kan representeras som en bokstav för varje etikett i en given ordning. Bokstaven beskriver vilken färg etiketten har genom att jämföra färgen med motsvande centrumbit. Den orangea centrumbiten finns på sidan F. Därför får alla orangea etiketter bokstaven F.

Programmets flöde Problemet kan delas upp i sex steg. Varje steg har sitt eget krav på in- och utdata. Stegen är: 1. Hitta etiketter på bilderna 2. Kategorisera och gruppera etiketterna 3. Anpassa koordinatsystem till de etiketter som hittats 4. Läs färger där etiketterna borde vara enligt koordinatsystemen 5. Bestäm på vilken sida etiketterna hör hemma 6. Formatera resultatet som en sträng 1. Hitta etiketter på bilderna I bilden placeras ett antal sökkoordinater där letandet efter etiketter börjar. Algoritmen börjar i en koordinat och letar sig i en rak riktning tills den upptäcker en kant i bilden. Kanten upptäcks genom att jämföra färgskillnaden mellan den aktuella positionen och omgivande positioner. Om skillnaden är stor har algoritmen hittat en kant [1]. När den första kanten har hittats följer algoritmen kanten tills algoritmen kommer tillbaka till positionen där den hittades. Det inringade området bildar en yta vars area och masscentrum beräknas.

För varje etikett som hittas läggs nya sökkoordinater till för att hitta fler etiketter. De nya sökkoordinaterna finns runt den hittade etikettens kanter och diagonaler. 2. Kategorisera och gruppera etiketterna Etiketterna på de synliga sidorna av kuben kategoriseras av sin form. Varje etikett liknar formen av en parallellogram som skiljer sig åt beroende på vilken sida av kuben man tittar på. Det som skiljer parallellogrammerna åt är vinklarna på sidorna. Programmet skapar tre typiska parallellogrammer, en för varje sida och granskar varje potentiell etikett som hittades i förra steget. För varje etikett bestäms den minimala storleken för de tre kända parallellogrammen så etiketten ringas in. Etiketten anses tillhöra sidan vars parallellogram ger bästa kvalité. Kvalitén på anpassningen bestäms av kvoten mellan en etiketts yta och en parallellograms yta. När alla etiketter har kategoriseras grupperas de för att hitta etiketter som hör samman och bildar en sida på kuben. Grupperingen görs genom att låta intilliggande etiketter av samma typ höra ihop.

3. Anpassa koordinatsystem till de etiketter som hittats Varje sida på kuben har ett koordinatsystem med samma koordinataxlar som sidans tillhörande parallellogram vid kategoriseringen. Detta koordinatsystem tar inte hänsyn till perspektivistiska förkrympningar i bilden. Det gör att anpassningen blir dålig om bilden är tagen på kort avstånd. För att skapa ett koordinatsystem som tar hänsyn till förkrympningarna måste linjerna mellan etiketternas centrum ha olika riktning. I bilden till vänster är linjerna helt parallella med varandra och därför inte helt anpassade till kubens sidor. Problemet löses genom att anpassa kvadratiska polynom till de funna etiketternas masscentrum. De kvadratiska polynomen kan uttryckas som funktionerna enligt nedan: ( ) ( ) Den första ekvationen tar emot x och y som kolumn och rad för etiketter och returnerar x- koordinaten för etiketten i bilden. Den andra funktionen bestämmer y-koordinaten. Konstanterna i polynomen bestäms genom minsta-kvadrat-anpassning [2]. Förhoppningsvis hittas nio etiketter som ger nio par av ekvationer. Varje ekvation har sex obekanta konstanter därför är detta ett överbestämt ekvationssystem.

4. Läs färger där etiketterna borde vara enligt koordinatsystemen I de tidigare stegen har etiketter hittats i bilden och grupperats efter vilka som utgör kubens tre synliga sidor. Därefter har funktioner anpassats så att det går att säga var varje etikett på kuben borde finnas i bilden. Därför går det att bestämma var färgerna ska avläsas för varje etikett även om enstaka etiketter inte hittats från början. För att kompensera olik belysning på olika sidor läses även punkter mellan etiketterna för att korrigera vitbalansen.

5. Bestäm på vilken sida etiketterna hör hemma Varje etikett hör hemma på en viss sida då kuben är löst. För att bestämma på vilken sida varje etikett hör hemma måste etiketternas färger jämföras. Ett problem som uppstår är att etiketterna kan vara skuggade eller belysta av olika ljus då de finns på olika sidor. För att komma runt det jämförs färgerna i ett färgplan där grått och vitt finns i mitten och alla klara färger runtomkring. Ljusstyrkan projicerats bort så att bara färginformationen finns kvar. Etiketter med färger som hamnar nära varandra i färgplanet har liknande färg. Det finns flera begränsningar i kuben som behöver tas hänsyn till. För det första kan inte mittenbitarna på kuben flyttas i förhållande till varandra. Det utnyttjas genom att låta dessa etiketter bestämma sidornas referensfärger. De övriga etiketterna på kuben jämförs med referensfärgerna och tilldelas en sida så att färgerna matchar. Algoritm för tilldelning av sidor In: Etiketternas färger i strukturerad ordning Ut: Kubens tillstånd 1. Låt mittenbitarnas färger vara referensfärger 2. Lista alla möjliga tilldelningar av etikett till referensfärg 3. Sortera möjliga tilldelningar efter kromatiskt avstånd 4. Så länge det går att göra fler tilldelningar a. Gör bästa möjliga tilldelning 5. Om resultatet är dåligt a. Uppdatera referensfärgerna från de tilldelningar som redan är gjorda b. Börja om från 2

6. Formatera resultatet som en sträng I det tidigare steget bestämdes kubens tillstånd. Vi har valt att presentera tillståndet som en sträng av bokstäver. Formatet beskriver på vilken sida varje etikett hör hemma. Detta görs genom att bestämma en indexeringsordning för kubens etiketter och lista vilka sidor etiketterna tillhör. Bokstäverna som använd i strängen är U, R, F, D, B och L som står för Up, Right, Front, Down, Back, och Left. Exempel på sträng: FDBRUFBDFLLLDRRFUBRFUFFBBBLDBDLDRDRRFFLLBBDLURUUULUUDR

Referenser [1] Wikipedia Edge detection (2011-02-18) http://en.wikipedia.org/wiki/edge_detection [2] Wikipedia Least Squares (2011-02-18) http://en.wikipedia.org/wiki/least_squares Kwon3D Camera Calibration (2011-02-18) http://www.kwon3d.com/theory/calib.html Kociemba Cube Explorer (2011-02-18) http://kociemba.org/cube.htm Tidsplan Vi har redan en fungerande prototyp. Det som återstår är testning, eventuell extra funktionalitet och rapporten. Vi har bestämt den första mars som slutdatum för implementation av ny funktionalitet (feature freeze). Då har vi också ett utkast av rapporten som inte beskriver saker i detalj men innehåller en bra överblick. Under mars ska vi testa programmet och olika varianter på lösningar av olika delsteg. Samtidigt beskriver vi dessa detaljer i rapporten. Första halvan av april fixar vi det sista på rapporten. Andra halvan granskar vi rapporten som vi ska opponera på och förbereder vår egen redovisning.