Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
1
Kamerabaserad interaktionDel 1 – 2D
Anders Henrysson
Innehåll
• HCI• Kameran• Optiskt flöde• Markörer• Objektigenkänning• Fixpunktsaritmetik
Isomorf vs. isometrisk interaktion
• ”Positionskontroll vs. derivatakontroll”• Frihetsgrader• Mobilitet begränsar
• Aspekter:– Hastighet– Precision– Lätthet att lära– Utmattning– Koordination– Beständighet
Mobil interaktion
• Optimerat för att navigera menysystem
• En hand
2
Mobil interaktion
• Optimerat för textinmatning
• Två händer
Motivation• Med större skärmar, mer minne och snabbare
processorer kommer mobila applikationer bli mer lika de som finns på PC. Exempel: Webbläsare
• 3D-grafik blir vanligare och kräver fler frihetsgrader.
• Interaktion viktig för spelkänsla.
• Mobilens hanterbarhet gör den lämpad för rörelsebaserad interaktion.
• Se mobiliteten som en styrka, inte som en begränsning
Embodied User Interfaces [Fishkin, Rekimoto]
• Sensorer som registrerar tryck, lutning m.m.
• En hand• Fortfarande
isometriskt
Sensorer i mobiler
• För interaktion krävs sensorer med hög upplösning och uppdateringsfrekvens.
• Accelerometrar• Gyro• Kompass
3
Mobilkameran
+ Finns i mer än en miljard mobiler
+ Har utvecklat enormt när det gäller stillbilder
+ Kan användas för 6 DOF interaktion
Mobilkameran
- Begränsad videoprestanda- CIF (352 × 288) @ 15 Hz- USB-mus: (400dpi) 125 Hz
- Beräkningstunga algoritmer- Inget MHz-race- Ingen FPU- Batteri
Beräkning av kamerans rörelse
• Rörelsefält (Motion Field)– Optiskt flöde (Optical Flow)– Blockkorrelation
• Markörer
• Objektigenkänning
Rörelsefält (Motion Field)
• In: Två bilder tagna i tät följd• Ut: Vektorfält som beskriver hur pixlarna rört sig
mellan bilderna
• Använd vektorfältet för att beräkna kamerans rörelse
4
Exempel Optiskt FlödeTaylorutveckling av I(x+u,y+v):
Antag att pixeln är oförändrad mellan bilderna
(It är skillnaden mellan bilderna)
Vad är Ix?
• Derivatan med avseende på x• En bild som fås genom att applicera ett
filter på I: [-1/2 0 1/2] (Normaliserat)
• Anta att vi arbetar med en gråskalebild:
),1(2/1),(0),1(2/1),( yxIyxIyxIyxI x +⋅+⋅+−⋅−=
Optiskt Flöde
för u och v
Lös
Ej lösbart för endast en pixel Använd flera. Antag att regionen är beständig.
5
Optiskt FlödeEx. Ett 5 x 5 fönster runt pixeln. 25 ekvationer per pixel.
Vektorform:
Matrisform:
Lucas - KanadeÖverbestämt. Använd minstakvadratmetoden
Lös:
Klar!
Lös för flera pixlar för att detektera rotation etc.
Lukas - Kanade
• Komplicerat• Inte helt robust• Bäst för små rörelser• Kan itereras:
– Warpa H till I m.h.a. rörelsefältet– Repetera till konvergens uppnås
Brute Force: Blockkorrelation• Rörelseestimering i MPEG-4
• Spara block runt pixel i H• Stega igenom I och räkna ut skillnaden mellan blocken.• Lagra värdena och välj det lägsta
• Betydligt enklare, men beräkningstungt (Ex 10x10 block i VGA-bild). Vi vill utnyttja de 15 fps som kameran ger.
6
PyramidiseringIdé:
1. Halvera upplösningen tills att större delen av bilden kan sökas snabbt. Hitta bästa matchning.
2. Gå ned i pyramiden och börja från bästa positionen från förra nivån
3. Sök igenom ett begränsat område
4. Repetera tills lägsta nivån är nådd
Pyramidisering
search
search
search
search
Exempel:
Hur ska vi välja feature att följa? Kantlinje?
Gradienten stor, men samma för alla pixlar påkantlinjen.
7
Homogen region?
Gradienten för liten. Bruskänsligt.
Heterogen region?
Gradienten stor och unik. Extrempunkt.Bra val. Hur hitta automatiskt?
Harris Hörndetektor
• Tar hänsyn till derivatan i båda riktningarna
1. Klassificera pixlar
2. Välj de med högst värde
• Κ = 0.04 - 0.15
8
Summering
+ Flexibel+ Obegränsat område
- Drift såvida inte features lagras- Fallerar vid rörlig eller homogen bakgrund
Markörer• En markör är ett visuellt objekt med
kända egenskaper• Genom att söka efter dessa egenskaper
i en bild kan kamerans läge beräknas för varje bild
• Varje markör unik – Data (position, Id, URL) kan associeras med markören
• Vanligtvis ett svart mönster på vitt papper. Tröskelvärde kan då användas för att hitta markören
• Olika typer av markörer kräver speciella algoritmer
MIXIS [Hansen]• MIXed Interaction Space• Etablera en 3-dimensionell interaktionsrymd genom att
tracka en cirkel som kan ritas förhand.• Möjligt att dra och zooma en bild samtidigt• Genom att se mobilens gränssnitt som ett 3D objekt i
den fysiska världen minskar den kognitiva belastningen
Hur hitta en cirkel?• Randomized Hough Transform (RHT)• Binär kantbild (kantdetektor + tröskling)• Ackumulator med cirkelparametrar
(trädstruktur)
• Indata: Array av kantpunkter • Utdata: Maximum i ackumulatorn ger oss
parametrarna för cirkeln.
9
Hur hitta en cirkel?Exempel: linje y=ax+b1. Välj slumpvis två kantpunkter P1(x1,y1) och P2(x2,y2)2. Räka ut a och b från:
3. Inkrementera A(a,b)4. Den punkt i A som har högst värde representerar den sökta linjen
Cirkel med känd radie (x-a)2+(y-b)2=rc2
Cirkel med känd radie (x-a)2+(y-b)2=r2
• Välj tre punkter. • A(a, b, r)
MIXIS
• Video
Visual Codes [Rohs]
• Definierar ett koordinatsystem. Detta innebär att samtliga pixlar i bilden har kända koordinater i markörplanet.
• Förutom relativ rörelse kan mobilens absoluta position beräknas i 3D
• Bitmönster som innehåller kodvärde. Bitarna måste vara större än en pixel.
Visual Codes
10
1. Gör bild till gråskala: Grå = (Röd + Grön)/2 2. Traversera bilden rad för rad i ett sicksackmönster. Uppdatera det
viktade medelvärdet av grånivåerna3. Skapa tröskelvärde från medelvärdet4. Skapa binär bild genom att tröskla5. Hitta svarta regioner i bilden (Labeling)
1. Traversera rad för rad och märk upp regioner 2. Sammanfoga angränsande regioner
6. Hitta orienteringsstrecken genom att matcha en ellips med regionerna
7. Hitta hörnpunkterna och utvärdera koden
Visual Codes – Hitta koden Visual Codes – Beräkna vyparametrar
• Eftersom både bilden och markören är plana finns det en mappning mellan dem i form av en unik homografi (= projektiv transformationsmatris)
• Genom att använda denna mappning kan man beräkna mobilens position och rotation relativt markören
• Med ett hårkors kan användaren välja saker i den fysiska världen vars koordinater i markörsplanetär kända.
Visual Codes – ExempelMarkör på papper:
Markör på skärm:
Markörer - Generellt1. Hitta känd geometri i binär bild m.h.a.
bildanalys2. Beräkna kamera – markör transformation3. Extrahera data med känd orientering relativt
geometrin
11
Summering+ Känd och beständig geometri Absolut position och
ingen drift+ Många frihetsgrader möjliga (mer om detta nästa gång)+ Databärare (t.ex. fysiska webbadresser)+ Tvåhandsinteraktion: Dominant hand hanterar mobil.
Icke-dominant hanterar markör.
- Begränsad interaktionsrymd - Fysiskt föremål (oftast)- Praktiskt?- Estetiskt?
Objektigenkänning
• Vissa objekt finns alltid till hands• Generellare än markörer
MIXIS (igen)
• Huvudet har man alltid med sig • Använd kameran på telefonens framsida• Att känna igen ett specifikt ansikte är
mycket svårt. Att hitta ett ovalt, hudfärgat objekt är lättare.
• 4 DOF
Headtracking
• Indata: Bild + histogram• Utdata: ellipsparametrar
1. Leta upp region som matchar histogram2. Expandera sökfönstret3. Repetera till konvergens
12
KickReal
• Tracking av fot
Tracking av fot • Indata: Bildsekvens• Utdata: Bollens riktning och hastighet
• Motion tracking + kantdetektering i ROI1. Räkna ut fotens kant i båda bilderna2. Räkna ut rörelsevektor3. Hantera kollision mellan fot och boll (impuls)
Summering
+ Generella algoritmer. Lämpligt för spel.+ Ingen utskrift behövs
- Begränsad interaktionsrymd- Inget unikt id
13
Framtid
• Gaze tracking?
• Trend: Mindre datorer och större skärmar HDTV + Mobil = framtidens PC?
Fixpunktsaritmetik• Mobiler har ingen FPU. Emulering av flyttal två
magnituder långsammare än i hårdvara• Problem: Tracking kräver flyttalsprecision• Lösning: Använd heltal• 32 bitar = -2147483648 … 2147483648• Har ingen fysisk motsvarighet i dessa
sammanhang • Vi kan använda vissa bitar till heltalsdelen andra
till decimalerna• OpenGL ES: 16 bitar till varje. 16:16 • Trigonemetri: 4:28
FixpunktsaritmetikFlyttal till 16:16 fixpunkt: x.f*216 eller x.f*1<<16 där << är skiftoperatorn
d.v.s.: y<<x = y*2x och y>>x = y/2x.
Macron (bits = 16):
#define float_to_fix(val, bits) (int)(val * (1<<bits))#define fix_to_float(val, bits) (float)val / (1<<bits)
• Addition och subtraktion: Som vanligt• Multiplikation och division: 64 bitar för att inte tappa de mest signifikanta
bitarna
– Multiplikation: Skifta ner resultatetres = (int) (((I64) x * (I64) y) >> bits);
– Division: Skifta upp resultatetres = (int) ((((I64)x)<<bits)/(I64)y);
Trigonometri: Tabeller!
Nästa föreläsning
• 6DOF-tracking och 3D-interaktion• Augmented Reality
– Koncept– Trackingtekniker– Applikationer
• CMAR
14
Referenser• Hansen, T. R., Eriksson, E., and Lykke-Olesen, A. 2006. Use your
head: exploring face tracking for mobile interaction. In CHI '06 Extended Abstracts on Human Factors in Computing Systems (Montréal, Québec, Canada, April 22 - 27, 2006). CHI '06. ACM Press, New York, NY, 845-850
• Hansen, Thomas Riisgaard, Eriksson, Eva, Lykke-Olesen, Andreas, Mixed Interaction Space – Expanding the Interaction Space with Mobile Devices, full paper at British HCI 2005, Edinburgh, Scotland, in People and Computers XIX - The Bigger Picture. Proceedings of HCI 2005, Springer Verlag. URL:www.pervasive-interaction.org/Mixis
• Rohs, M., Real-world Interaction with Camera Phones, in H. Tokuda& H. Murakami (eds.), Proceedings of the 2nd International Symposium on Ubiquitous Computing Systems (UCS 2004), 2004.URL:www.vs.inf.ethz.ch/res/proj/visualcodes
Referenser• Paelke, V., Reimann, C., and Stichling, D. 2004. Foot-based mobile
interaction with games. In Proceedings of the 2004 ACM SIGCHI international Conference on Advances in Computer Entertainment Technology (Singapore, June 03 - 05, 2005). ACE '04, vol. 74. ACM Press, New York, NY, 321-324
• Rekimoto, J. & Ayatsuka, Y. [2000], CyberCode: Designing Augmented Reality Environments with Visual Tags, in W. E. Mackay(ed.), Proceedings of DARE 2000 on Designing Augmented RealityEnvironments, ACM Press, pp.1–10.
• Kälviäinen, H., Hirvonen, P., Xu, L. & Oja, E. [1995], Probabilisticand Non-probabilistic Hough Transforms: Overview and Comparisons, Image and Vision Computing 13(4), 239–52.
• SemaCode Corporation [2005], URL:Sem@Code, semacode.org
Referenser• Jingtao Wang, John Canny, TinyMotion: Camera Phone Based
Interaction Methods, in alt.chi of ACM CHI 2006, Montreal, Canada, April 24-27, 2006. URL:guir.berkeley.edu/projects/tinymotion
• Fishkin, K.P., Gujar, A., Harrison, B.L., Moran, T., Want, R: Embodied User Interfaces for Really Direct Manipulation. Communications of the ACM, Vol. 43, No. 9 (2000) 74—80
• ShotCode URL:www.shotcode.com
• Bouguet Jean-Yves: Pyramidal Implementation of the Lucas KanadeFeature Tracker Description of the algorithm
• Jianbo Shi and Carlo Tomasi, Good features to track", Proc. IEEE Comput. Soc. Conf. Comput. Vision and Pattern Recogn., pages 593-600, 1994.