SE537553C2 - Förbättrad identifiering av en gest - Google Patents

Förbättrad identifiering av en gest Download PDF

Info

Publication number
SE537553C2
SE537553C2 SE1250911A SE1250911A SE537553C2 SE 537553 C2 SE537553 C2 SE 537553C2 SE 1250911 A SE1250911 A SE 1250911A SE 1250911 A SE1250911 A SE 1250911A SE 537553 C2 SE537553 C2 SE 537553C2
Authority
SE
Sweden
Prior art keywords
gesture
movement
state
computing device
angle
Prior art date
Application number
SE1250911A
Other languages
English (en)
Other versions
SE1250911A1 (sv
Inventor
Paul Cronholm
Original Assignee
Crunchfish Ab
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Crunchfish Ab filed Critical Crunchfish Ab
Priority to SE1250911A priority Critical patent/SE537553C2/sv
Priority to SE1550243A priority patent/SE538272C2/sv
Priority to CN201380040370.1A priority patent/CN104583902B/zh
Priority to PCT/SE2013/050878 priority patent/WO2014021760A2/en
Priority to EP13824830.7A priority patent/EP2880508B1/en
Priority to US14/419,098 priority patent/US9361512B2/en
Publication of SE1250911A1 publication Critical patent/SE1250911A1/sv
Publication of SE537553C2 publication Critical patent/SE537553C2/sv
Priority to US15/071,895 priority patent/US9690388B2/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/20Movements or behaviour, e.g. gesture recognition
    • G06V40/28Recognition of hand or arm movements, e.g. recognition of deaf sign language
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/56Information retrieval; Database structures therefor; File system structures therefor of still image data having vectorial format
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/0304Detection arrangements using opto-electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • G06F9/30038Instructions to perform operations on packed data, e.g. vector, tile or matrix operations using a mask
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • G06T7/248Analysis of motion using feature-based methods, e.g. the tracking of corners or segments involving reference images or patches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/74Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30196Human being; Person
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30241Trajectory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Psychiatry (AREA)
  • Social Psychology (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • Image Analysis (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

SAMMANDRAG En datoranordning (100, 200) for identifiering av en gest som utfors av ett sparat objekt (H, H', 01, 02) i en bildstrom, namnda datoranordning (100, 200) innefattande ett minne (240) och en styrenhet (210), varvid styrenheten (210) är anordnad att bestamma en rorelsevektor for det sparade objektet (H, H', 01, 02), jamfbra rorelsevektorn mot ett referensbibliotek av gester och ddrigenom identifiera en gest som motsvarar rorelsevektorn, varvid rorelsevektorn innefattar atminstone en partiell rorelse som har en riktning som definieras av en vinkel (a) och varvid namnda jamfOrelse är baserad pa namnda vinkel (a).

Description

FORBATTRAD IDENTIFIERING AV EN GEST TEKNISKT OMRADE Denna ansokan hanfor sig till en metod, ett datorlasbart medium och en datoranordning for identifiering av en gest som utfOrs av ett objekt och i synnerhet till en metod, ett datorlasbart medium och en datoranordning for identifiering av en gest som utfors av ett objekt i en videostrom. Denna ansokan hanfor sig ocksa till en metod, ett datorlasbart medium och datoranordning for identifiering av en gest som utfors av ett flertal objekt.
BAKGRUND Utvecklare har forsokt att implementera fungerande optisk styrning i enheter sasom spelkonsoler, datorer och smartphones. De fiesta fors& har inte varit fram- gangsrika i att tillhandahalla ett styrsystem som är tillrackligt effektivt for att vara praktiskt for drift under alla verkliga scenarier. Nagra exempel pa sadana system ges nedan.
Den amerikanska patentansokan publicerad som US2011299737 beskriver ett optiskt igenkannande av- en handrorelse och en metod darfor. I en utforingsform är en hands hallning forst igenkand enligt konsekutiva handbilder. Om handens hallning matchar en starthaftning separerar systemet de konsekutiva handbilderna till flera bildgrupper och beraknar rorelsevektorerna for dessa bildgrupper. Fordelningen av dessa rorelsevektorer jamfors med flera tredimensionella rorelsevektorhistogramjamfOrelser for att bestamma en motsvarande rorelse for varje bildgrupp. Till exempel kan den motsvarande rorelsen vara en rorelse at vanster, en rorelse at hoger, en rorelse uppat eller en rorelse nedat. Slutligen definieras kombinationen av dessa motsvarande rOrelser som en gest, och en instruktion mappad till denna gest exekveras sedan.
Den internationella patentansokan publicerad som W009128064 beskriver en metod for vaxelverkan mellan manniska och maskin med en elektronisk anordning associerad med en elektronisk skarm som innefattar att ta bilder av atminstone en hand placerad Over en inmatningsenhet, sparning av position eller Mining av handen utifran bilderna; byte fran interaktion baserat pa samverkan med en inmatningsenhet till pekdonsemulering som svar pa detektering av en gest som utfors med handen och emulering av ett pekdon baserat pa sparningen, nar handen inte langre utfor gesten. 1 Det amerikanska patentet publicerat som US 7,970,176 beskriver en metod for identifiering av en anvandares gester for anvandning i en interaktiv spelapplikation. Videokamerabilder av anvandaren mottas och sardragspunkter pa anvandarens kropp identifieras i bilderna. Ett likhetsvarde am/ands for att jamfora sardragspunkterna i bilderna med ett gestbibliotek. Gesten i biblioteket som motsvara det hogsta beraknade likhetsvardet som är stOrre an ett trOskelvarde for gesten identifieras som anvandarens gest. Den ideintifierade gesten kan integreras i en anvandares rorelse i en virtuell spelomgivning och visuell aterkoppling tillhandahalles till anvandaren.
Den brittiska patentansOkan publicerad som GB2474536 beskriver hur en anvandare styr en elektronisk apparat (TV, DVD-spelare, dator, mobiltelefon, kamera, STB) baserat pa datorseende. Bildsensorn fangar en sekvens av bilder av synfaltet. Processorn mottar sekvensen av bilder; detekterar rorelse hos kminstone ett objekt i bilderna, applicerar en formigenkanningsalgoritm (sasom konturdetektering) pa det atminstone ett rorliga objektet; bekraftar att objektet är en anvandarhand genom att kombinera information fran kminstone tva bilder av objektet, och sparar objektet for att upptacka kontrollgester for att styra enheten. Monsterigenkannande kan tillampas tillsammans med eller fore rorelsedetekteringen. I ett forsta steg kan en initialiseringsgest, sasom en vagliknande rOrelse, detekteras. Vid daliga ljusforhallanden kan en anvandarhand identifieras framst baserat pa rarelsedetektering. Anvandargester kan styra markorrorelse och —drift, valja och manipulera objekt (t.ex. ikoner), eller ge en emulering av en knapptryckning, t.ex. musklickkommandon. Bildsensorn kan vara en 2D-kamera som en webbkamera eller en 3D-kamera, som kan integreras med eller utanfor enheten, eller IR-kamera.
Sattet att identifiera gester i ett sadant system är helt enkelt for langsamt for att vara anvandbart.
En annan nackdel är de komplexa berakningar som kravs av den kanda tekniken som kriiver stora berakningsresurser.
Det finns darfor ett behov for ett satt att identifiera en gest som utfors av ett objekt i en videostrom.
Det finns ocksa ett stort behov for ett satt att spka ett objekt i en videostrom som inte kraver stora berakningsresurser.
SAMMANFATTNING Det är en aspekt av larorna enligt foreliggande ansokan att overvinna de problem som anges ovan genom att tillhandahalla en datoranordning for identifiering av 2 en gest som utfors av ett sparat objekt i en videostrom, varvid namnda datoranordning innefattar ett minne och en styrenhet, varvid styrenheten är anordnad att: bestamma en Orelsevektor hos det sparade objektet, jamfora rOrelsevektorn med ett referensbibliotek av gester, och darigenom identifiera en gest som motsvarar rorelsevektorn, varvid rorelsevektorn innefattar atminstone en partiell rorelse som har riktning som definieras av en vinkel och varvid namnda jamfOrelse är baserad pa namnda vinkel.
En sadan datoranordning kraver inte avsevarda berakningsresurser tack vare det intelligenta satt som gester identifieras pa och sparas genom anvandandet av en riktningsvinkel for en (partiell) rOrelse.
I en utforingsform är styrenheten vidare anordnad att gâ igenom ett tillstands- diagram, sasom en Turingmaskin, varvid en overgang motsvarar ett element i en Orelsevektor och kminstone ett tillstand motsvarande en atgard; varvid styrenheten utfor en overgang frail ett tillstand till ett annat i enlighet med elementen i rarelsevektorn till dess aft en gest identifierats genom att nâ fram till motsvarande tillstand.
I en utfOringsform är datoranordningen en mobil datoranordning.
I en utforingsform är datoranordningen en surfplatta eller en barbar dator. I en utforingsform är datoranordningen en spelkonsol.
Det är ocksâ en aspekt av ideerna i denna ansOkan fOr att Overvinna de problem som anges ovan genom att tillhandahalla en metod for anvandning i en datoranordning for identifiering av en gest som utfors av ett sparat objekt i en bildstrom, namnda metod innefattande: bestamning av en rOrelsevektor fOr det sparade objektet, jamforelse av orelsevektorn mot ett referensbibliotek av gester, och darigenom identifiera en gest som motsvarar rorelsevektom, varvid rorelsevektorn innefattar kminstone en partiell orelse som har en riktning som definieras av en vinkel och varvid namnda jamfOrelse är baserad pa namnda vinkel.
Det är en ytterligare aspekt av ideerna i denna ansokan aft overvinna de problem som anges ovan genom att tillhandahalla ett datorlasbart medium innefattande instruktioner som nar de laddas i och exekveras av en styrenhet, t.ex. en processor, exekvera en metod enligt har.
Uppfinnama av foreliggande uppfinning har insett, efter uppfinningsrikt och insiktsfullt resonemang, att genom att i huvudsak se till riktningen for en (partiell) orelse och att anvanda sig av ett tillstandsdiagram kan en gest snabbt identifieras i realtid utan att det kravs stora berakningsresurser.
Lardomarna hari finner anvandning i styrsystem for berakningsanordningar med anvandargranssnitt sasom smartphones, surfplattor, datorer och spelkonsoler. 3 Andra sardrag och fordelar med de beskrivna utforingsformerna kommer att framga av den foljande detaljerade beskrivningen av de bifogade osjalystandiga patentkraven liksom av ritningarna. Generellt ska alla termer som anyands i patentkraven tolkas i enlighet med deras vanliga betydelse inom det tekniska omradet, om inte annat uttryckligen anges Alla hanvisningar till "ett/en/den/det [elementet, apparaten, komponenten, organet, steget, etc]" skall tolkas oppet som hanvisningar till dtminstone en instans av elementet, apparaten, komponenten, organet, steget, etc., savida annat inte uttryckligen anges. Stegen i nagon av de metoder som beskrivs Uri behover inte utfOras i den exakta ordning som anges, om detta inte uttryckligen anges.
KORT BESKRIVNING AV RITNINGARNA Uppfinningen kommer att beskrivas mer i detalj under hanvisning till de bifogade ritningarna, ddr: Figurerna lA och 1B är schematiska vyer av vardera en datoranordning i enlighet med ldran har; Figur 2 är en schematisk vy av komponenterna i en datoranordning i enlighet med ldran har; Figur 3 är en schematisk vy av ett datorldsbart minne enligt laroma Uri; Figur 4A visar ett bildexempel av ett objekt som ska sparas och figurerna 4B, 4C och 4D visar vardera en representation av en bearbetad version av namnda objekt enligt ldrorna har; Figur 5 visar en illustration av hur deskriptorer kan bestammas i enlighet med en utforingsform av laror har; Figur 6 visar en illustration av ett objekt som ska sparas med deskriptorer som har bestamts i enlighet med en utforingsform av ldror har; Figur 7 visar en illustration av ett rorligt objekt som ska sparas med deskriptorer som har bestamts i enlighet med en utforingsform av ldror Uri; Figur 8 visar ett histogram for relativa avstand har bestamts i enlighet med en utforingsform av ldror har; Figur 9 visar ett histogram for relativa aystand som har bestamts i ett experiment i enlighet med ett exempel pa utforingsform av ldrorna Uri; Figur 10 visar ett flodesschema som illustrerar en allman metod i enlighet med en utforingsform av ldrorna har; 4 Figur 11 visar en illustration av tva rorliga objekt som ska sparas med deskriptor—er som har bestamts i enlighet med en utforingsform av larorna har; Figur 12 visar ett histogram for relativa avstand fOr tva objekt som har bestamts i enlighet med en utfOringsform av larorna har; Figur 13 visar en illustration av ett rorligt objekt som ska sparas i en riktning parallell med en siktlinje med deskriptorer som har bestamts i enlighet med en utfOringsform av !aroma har; Figur 14 visar en illustration av en lin* anpassning av de genomsnittliga positioner och relativa avstand som har bestamts i enlighet med en utfOringsform av larorna har; Figurerna 15A och 15B visar vardera en illustration av en !in* anpassning av de genomsnittliga positioner och relativa avstand som har bestamts i enlighet med en utfOringsform av !aroma hari baserade pa rektangulara koordinater; Figur 16 visar ett flodesschema som illustrerar en allman metod for sparning av ett objekt i enlighet med en utfOringsform av !aroma har; Figur 17 visar en schematisk illustration av ett objekt som utfor en gest; Figur 18 visar en schematisk illustration av ett tillstandsdiagram eller Turingmaskin for att identifiera gester i enlighet med en utfOringsform av larorna har; Figur 19 visar en schematisk illustration av ett tillstandsdiagram eller Turingmaskin for att identifiera gester i enlighet med en utfOringsform av larorna har; Figur 20 visar en schematisk illustration av ett tillstandsdiagram eller Turingmaskin for att identifiera gester i enlighet med en utfOringsform av larorna har; Figur 21 visar en schematisk illustration av tva objekt som utfor en gest; Figur 22 visar en schematisk illustration av ett tillstandsdiagram eller Turingmaskin for att identifiera gester i enlighet med en utfOringsform av larorna har, och Figur 23 visar ett flOdesschema som illustrerar en allman metod far identifiering av en gest i enlighet med en utfOringsform av larorna har.
DETALJERAD BESKRIVNING De beskrivna utforingsformerna kommer nu att beskrivas mer fullstandigt i det foljande med hanvisning till de bifogade ritningarna, i vilka vissa utforingsformer av uppfinningen visas. Denna uppfinning kan emellertid utforas i manga olika former och bar inte tolkas som begransad till utforingsformerna som anges hari, utan dessa utfor- ingsformer tillhandahalls som exempel sâ att denna beskrivning kommer att vara noggrann och klar och till fullo formedla ramen for uppfinningen for fackmannen inom tekniken Samma nummer hanvisar genomgaende till samma element.
Figur 1 visar allmant en datoranordning 100 i enlighet med en utfOringsform hari. I en utforingsform är datoranordningen 100 anordnad for natverkskommunikation, antingen tradlos eller tradbunden. Exempel pa en sadan datoranordning 100 är: en dator, stationar eller barbar, en surfplatta, en mobilkommunikationsterminal t.ex. en mobiltelefon, en smartphone, en personlig digitalassistent och en spelkonsol. Tva utforingsformer kommer att exemplifieras och beskrivas som en smartphone i figur lA och en barbar dator 100 i figur 1B.
Med hanvisning till figur lA visas en mobil kommunikationsterminal i form av en smartphone 100 som innefattar ett hus 110, i vilken en skarm 120 är anordnad. I en utfOringsform är skarmen 120 en pekskarm. I andra utforingsformer är skarmen 120 en icke-touchskarm. Vidare innefattar smartphone 100 tva tangenter 130a, 130b. I denna utfOringsform finns tva. tangenter 130, men ett obegransat antal tangenter är mojligt och beror pa konstruktionen av smartphonen 100. I en utfOringsform är smartphone 100 anordnad for att visa och driva en virtuell knapp 135 pa touchskarmen 120. Det bar noteras att antalet virtuella tangenter 135 är beroende av utformningen av smartphone 100 och en applikation som kors pa smartphonen 100. Smartphonen 100 är ocksâ utrustad med en kamera 160. Kameran 160 är en digital kamera som är anordnad att ta video- eller stillbilder genom att spela in bilder pa en elektronisk bildsensor (visas ej). I en utfOringsform är kameran 160 en extern kamera. I en utfOringsform ersatts kameran alternativt av en Ulla som ger en bildstrom.
Med hanvisning till figur 1B visas en barbar dator 100 som innefattar en skarm 120 och ett hus 110. Huset innefattar en styrenhet eller CPU (ej visad) och en eller flera datorlasbara lagringsmedium (ej visade), sasom lagringsenheter och internminne Exempel pa lagringsenheter är diskettstationer eller harddiskar. Datoranordningen 100 innefattar vidare atminstone en dataport. Dataportar kan vara tradbundna och /eller tradlosa. Exempel pa dataportar är USB (Universal Serial Bus)-portar, Ethernet-portar eller WiFi- (enligt IEEE standard 802.11) portar. Dataportar är anordnade for att mojliggora for en datoranordning 100 att ansluta med andra datoranordningar eller en server.
Den barbara datorn 100 innefattar vidare atminstone en inmatningsenhet sasom ett tangentbord 130. Andra exempel pa inmatningsenheter är datormus, touchpads, pekskarmar eller joysticks for att namna nagra. 6 Den barbara datorn 100 är vidare utrustad med en kamera 160. Kameran 160 är en digital kamera som är anordnad att ta video- eller stillbilder genom att spela in bilder pa en elektronisk bildsensor (visas ej). I en utforingsform är kameran 160 en extern kamera. I en utforingsform ersatts kameran alternativt av en Ulla som ger en bildstrom.
Figur 2 visar en schematisk vy av den allmanna strukturen hos en datoranordning enligt figur 1. Datoranordningen 100 innefattar en styrenhet 210, som är ansvarig for den overgripande driften av datoranordningen 200 och implementeras foretradesvis med nagon kommersiellt tillganglig CPU ("Central Processing Unit"), DSP ("Digital Signal Processor") eller nagon annan elektronisk programmerbar logisk enhet. Styrenheten 210 kan implementeras med hjalp av instruktioner som ger hardvarufunktionalitet, till exempel genom att anvanda exekverbara datorprograminstruktioner i en allmanprocessor eller en processor anordnad for ett speciellt andamal som kan lagras pa en datorlasbart lagringsmedium (disk, minne etc) 240 for utforing av en sadan processor. Styrenheten 210 är anordnad att lasa instruktioner fran minnet 2 och utfora dessa instruktioner for att styra driften av datoranordningen 100. Minnet 240 kan implementeras med anvandning av nagon allmant kand teknik for datorlasbara minnen sasom ROM, RAM, SRAM, DRAM, CMOS, FLASH, DDR, SDRAM eller nagon annan minnesteknologi. Minnet 240 anvands for olika andamal av styrenheten 210, ett av dem är for lagringen av programdata och programanvisningar 250 for olika programmoduler i datoranordningen 200. Programvarumodulema inkluderar ett realtids-operativsystem, drivrutiner till ett anvandargranssnitt 220, en applikationshanterare samt olika tillampningar 250. Tillampningarna är uppsattningar av instruktioner som nar de exekveras av styrenheten 210 styr driften av datoranordningen 200.
Applikationerna 250 kan inkludera ett meddelandeprogram sasom e-post, en internetprogramvara, en mediespelare, samt diverse andra program 250, till exempel program fOr rOststyrning, videosamtal, dokumentlasning ochieller redigering av dokument, ett sâ kallat instant messaging program, ett kalenderprogram, en kontrollpanelsapplikation, en eller flera tv-spel, en anteckningsblocksapplikation, rostsamtalapplikationer, SMS- (short message service) applikationer, lokaliserings-tillampningar.
Datoranordningen 200 innefattar vidare ett anvandargranssnitt 220, som hos datoranordningen i figurerna lA och 1B bestar av skarmen 120 och tangenterna 130, 135.
Datoranordningen 200 innefattar vidare ett radiofrekvensgranssnitt 230, som är anordnat att tillâta datoranordningen att kommunicera med andra enheter via ett radio 7 frekvensband genom anvandning av olika radiofrekvenstekniker Exempel pa sa.dan teknik är IEEE 802.11, IEEE 802.11s, och Bluetooth O. Andra exempel pa radioteknik som kan implementeras i en datoranordning 100 är W-CDMA, GSM, UTRAN, LTE, och NMT for att namna nagra.
Datoranordningen 200 är vidare utrustad med en kamera 260. Kameran 260 är en digital kamera som är anordnad att ta video- eller stillbilder genom att spela in bilder pa. en elektronisk bildsensor (visas ej).
Upplosningen i en digitalkamera 260 begransas ofta av bildsensorn (vanligen ett CCD- eller CMOS-sensor chip) som forvandlar ljus till diskreta signaler. Sensorn bestar av ett stort antal receptorer som i huvudsak raknar antalet fotoner som traffar sensorn. Ju ljusare bilden är vid en given punkt pa sensom, desto stone varde lases for denna pixel. Antalet erhallna bildpunkter i bilden bestammer dess "pixel count". Till exempel skulle en 640x480 bild ha 307.200 bildpunkter, eller ca 307 kilobildpunkter, en 3872x2592 bild skulle ha 10.036.224 bildpunkter, eller cirka 10 megabildpunkter.
Kameran 260 är anordnad att ta en digital bild eller en bild. Det finns manga olika satt pa hur detta kan uppnas. PA ett satt, som kallas single-shot, är sensorn (ej visad) hos kameran 260 exponerad for ljuset som passerar genom en kameralins (inte visad). Single-shot capture-system am/ander antingen en CCD (charge-coupled device), eller tre separata bildsensorer (en vardera for de primara additiva fargerna rod, gran, och bla), som är utsatta for samma bild via en straldelare.
Kameran 260 är fOretradesvis anordnad att verka som en digital videokamera. Digitala videokameror anvander vanligtvis ett av tva. olika format for bildinsamling: interlaced och deinterlaced / progressive scan. Interlaced-kamerorna spelar in bilden i omvaxlande uppsattningar av linjer: de udda linjerna skannas, och sedan skannas de jamna linjerna, sedan skannas de udda linjerna igen, och sA vidare. En uppsattning av udda eller jamna linjer kallas ett "fait" och en konsekutiv ihopkoppling av tva. fait av motsatt paritet kallas en ram. Deinterlaced-kameror registrerar varje bildruta som distinkt, med alla linjer som fangas vid samma tidpunkt. SAledes fangar interlacedvideo—rorelsen dubbelt sA ofta som progressiv video, for samma antal bilder per sekund.
Progressiv scan-videokameror producerar i allmanhet en nagot skarpare bild. Dock är rorelsen inte alltid lika smidig som interlaced video som am/ander 50 eller 59,94 fait per sekund, sarskilt om de anvander de 24 bildrutor per sekund som är standard for film.
Den digitala videokameran 260 ger ett digitalt videoflode 265, aven hanvisat till som en digital videokamera. Digital video innefattar en serie eller strom av ortogonala digitala bitmap-bilder som visas i snabb foljd med en konstant hastighet. I 8 samband med video kallas dessa bilder ramar. Vi mater den hastighet med vilken bildrutor visas i bildrutor per sekund (FPS). Eftersom varje bildruta är en ortogonal digital bitmap-bild innefattar den ett raster av bildpunkter. Om den har en bredd pa B bildpunkter och en Mid H bildpunkter sager vi att bildstorleken är BxH. Bildpunkter har endast en kvalitet, deras farg. Fargen pa en bildpunkt är representerad av ett fast antal bitar. Ju fler bitar desto mer subtila variationer av farger kan aterges. Detta kallas fargdjup (CD) i videon. Ett exempel: video kan ha en langd (T) pa 1 timme (3600sec), en bildstorlek pa 640x480 (BxH) med ett fargdjup pa 24bits och en bildfrekvens pa 25fps. Detta exempel pa video har foljande egenskaper: bildpunkter per bildruta = 6 * 480 = 307.200; bitar per ram = 307.200 * 24 = 7.372.800 = 7.37Mbits, bithastighet (BR) = 7.37 * 25 = 184.25Mbits/sec, video storlek (VS ) = 184Mbits/sec * 3600sec = 662.400 Mbit = 82.800 MB = 82.8Gbytes. I en utforingsform är kameran 260 anordnad att arbeta vid en bildfrekvens pa atta bilder per sekund, eller nagot av 16, 24, 32 eller fler bilder per sekund.
Kameran 260 är operativt ansluten till styrenheten 210 fcir att forse den registeransvarige med videoflodet 265, dvs. den serie av bilder tagna, for vidare bearbetning, mojligen for anvandning i och/eller enligt en eller flera av applikationerna 250.
I en utforingsform är kameran 260 en extern kamera eller Ulla for en bild- strom.
Hanvisningar till "datorlasbart lagringsmedium", "dataprogramprodukt ", "patagligt forkroppsligade datorprogram" etc. eller en "styrenhet", "dator", "processor" etc. bor forstas att omfatta inte bara datorer med olika arkitektur som singel/multiprocessorarkitekturer och sekventiella (Von Neumann)/parallella arkitekturer men alien specialiserade kretsar sasom falt-grindmatriser (FPGA), applikationsspecifika kretsar (ASIC), Flash-bearbetning och andra enheter. Hanvisningar till datorprogram, instruktioner, kod etc. bar forstas att omfatta programvara for en programmerbar processor eller firmware sasom exempelvis det programmerbara innehallet i en maskinvaruenhet om instruktioner for en processor, eller konfigurationsinstallningar for en fastfunktionsenhet, grindmatrisenhet eller programmerbar logikenhet etc.
Figur 3 visar en schematisk vy av ett datorlasbart medium som beskrivits i det foregaende. Det datorlasbara mediet 30 dr i denna utforingsform ett minne, t.ex. en Universal Serial Bus (USB) minne. USB-minnet 30 innefattar ett hus 33 med ett granssnitt, t.ex. en kontakt 34, och en minneskrets 32. Denna minneskrets 32 ar ett flashminne, som är en icke-flyktig datalagring som kan raderas elektriskt och om- 9 programmeras. Minneskretsen 32 är programmerad med instruktioner 31 som vid uppladdning (eventuellt via granssnittet 34) till en styrenhet, t.ex. en processor, exekverar en metod eller ett forfarande i enlighet med utforingsformerna som beskrivits ovan. USB-minnet är anordnat att anslutas till och lasas av en lasanordning, som en terminal enligt figur 1, for laddning av instruktionerna i styrenheten. Det bor noteras att ett datorlasbart medum ocksa kan vara andra medier sasom cd-skivor, digitala videoskivor, harddiskar eller andra vanliga minnestekniker Instruktionerna kan aven laddas ner fran det datorlasbara mediet via ett tradlost granssnitt som ska laddas i styrenheten.
Ett forbattrat satt for sparning av ett objekt kommer att beskrivas nedan med hanvisning till de bifogade figurerna. Exemplet kommer att illustreras med fokus pa bilddata, men det bor sta klart att behandlingen sker delvis eller helt i en datoranordning innefattande ett kontrollorgan sasom beskrivits ovan med hanvisning till figurerna 1 och 2 eller bringas att utforas genom att exekvera lagrade instruktioner pa ett datorlasbart medium, sasom beskrivits med hanvisning till figur 3.
Figur 4A visar en bild av ett objekt som ska sparas, i detta exempel en hand.
Bilden är en del av en bildstrom (ej visad i figur 4, men betecknad 265 i figur 2) som tillhandahalls till en styrenhet (ej visad i figur 4, men betecknad 210 i figur 2) hos en datoranordning (ej visad i figur 4, men betecknad 200 i figur 2) av en kamera (ej visad i figur 4, men betecknad 260 i figur 2). Bildstrommen kan tillhandahallas till styrenheten (210) fran en extern kamera eller en annan bildstromskalla, t.ex. en strommad video over Internet.
For att kunna utfora en effektiv sparning av ett objekt är det viktigt att bilden innehaller tillrackligt med detaljer. Upplosningen pa kameran är saledes av vikt. For objekt langt bort fran kameran blir upplosningen viktigare och for langvaga sparning är en kamera med hogre upplosning att foredra. For sparning pa korta avstand, är det tillräckligt med en kamera med lAg upplosning. En bildupplosning pA 160X120 har visat sig vara tillrackligt for att kunna lyckas spara ett objekt med det satt som beskrivs har.
For aft mojliggora noggrann och exakt sparning foredras dessutom en hog bildhastighet eftersom detta mojliggor en detaljerad sparning av ett objekt. En sa.dan hog bildhastighet staller hoga krav pa prestanda eftersom varje sparningsoperation maste slutforas innan nasta ram tas emot. Det hari beskrivna sattet har visat sig framgangsrikt kunna spara ett objekt med bildfrekvenser Over 30fps och sa. lite som 8 fps. 10 En vanlig bildstorlek är Video Graphics Array (VGA)-format som har 480x640 bildpunkter, det viii saga totalt 307200 bildpunkter. En sadan datauppsattning är opraktiskt att genomfora omfattande berakningar pa och styrenheten är darfOr anordnad for att minska datauppattningen av bilden genom att bestamma konturlinjer i bilden, och damned filtrera bort alla punkter eller bildpunkter som ligger inom ett objekt. Sadana konturlinjer kan bestammas med hjalp av kantdetektering.
Kantdetektering är ett valkant verktyg for bildbehandling, och datorseende, som syftar till att identifiera punkter i en digital bild dar bildens ljusstyrka andras kraftigt eller, mer formellt, har diskontinuiteter. En popular metod som anvands for kantdetekteringen är Cannykantdetektor vilket är en kantdetekteringsoperator som anvander en etappvis algoritm for att upptacka ett brett utbud av kantema i bildema.
Styrenheten är, i detta exempel, anordnad att bestamma konturlinjer genom att anvanda Cannyoperatom och damned generera Cannylinjer av bilden eller forsta bilden (forst som den som for narvarande behandlas). Figur 4B visar en vy av de resulterande konturlinjer CL fOr bilden i figur 4A. Sasom framgar har datauppsattningen av bilden minskat kraftigt.
For att forbattra prestanda vid bestamning av konturlinjer kan styrenheten konfigureras att anvanda hastighetsfOrbattring med Cannyoperator. Detta resulterar i en lagre noggrannhet, men 'Aar berakningshastigheten. Den sankta noggrannheten har visat sig vara av mindre betydelse.
Det bOr noteras att andra satt att detektera kanter fOr att generera hojdkurvor existerar och är en del av omfattningen av denna uppfinning.
For att ytterligare minska datauppsattningen är styrenheten anordnad for att filtrera bort alla konturlinjer, som är stationara. Konturlinjer CL (kontur) i fOrsta bilden jamfors med konturlinjer i en tidigare bild i strommen for att avgora om det finns en overlagring eller matchning av konturlinjer. Sadana matchande konturlinjer representerar stationara objekt och filtreras bort, vilket minskar datauppsattningen av bilden ytterligare. Figur 4C visar konturlinjer CL i handen efter att alla stationara konturlinjer har filtrerats bort.
F6r att minska datauppsattningen vidare är styrenheten anordnad att filtrera bort konturlinjer som sannolikt inte kommer att vara en del av objektet som ska sparas.
For att bestamma att en konturlinje inte är en del av ett objekt sa jamfors egenskapema hos konturlinjen med formodade eller kanda egenskaper hos objektet.
Till exempel, om ett rektangulart objekt ska sparas, filtreras alla cirkelformiga eller runda konturlinjer ut eftersom det är osannolikt att de är en del av ett rektangulart 11 objekt. Likasa om ett rektangulart objekt ska sparas filtreras alla cirkelformiga eller bojda linjer bort.
FOr att mojliggora filtrering av vissa konturlinjer, kan styrenheten vara konfigurerad att filtrera bort en konturlinje baserat pa en grad av krokning for den konturlinjen. Krokningen kan kan stallas in av konstruktoren beroende pa vilket objekt som skall filtreras. FOr fallet med filtrering fOr ett runt objekt filtreras alla konturlinjer, som har en krokning under en krokningstroskel, till exempel under 1 eller 5 eller 1 till 5 grader, bort.
FOr fallet att filtrera efter ett rektangulart sparat objekt sâ filtreras alla konturlinjer som har en krokning Over en krokningstroskel, till exempel Over 1 eller 5 eller 1 till 5 grader bort.
Krokningen kan bestammas baserat pa deskriptorer sasom beskrivs nedan eller genom att jamfora krokningen av tvâ eller flera punkter pa konturlinjen.
For att filtrera rektangulara objekt kan alla objekt med en konturlinje som saknar ett horn filtreras bort.
For att filtrera objekt, som inte är en del av en hand, kan styrenheten konfigureras att bestamma att en konturlinje inte är en del av en hand genom att jamfora fargema pa bada sidor av konturlinjen. Om fargen pa ingendera sidan av konturlinjen är en hudfarg, är konturlinje inte en del av handen.
Den hudfarg som ska jamforas med kan bestammas fran de forsta bildema i videoflodet dar objektet identifieras och dess farg bestams. Detta gör det mojligt att anvanda sattet som beskrivs hari med alla hudfarger och aven for anvandning med handskar eller kanske tatueringar (henna eller annat) och smycken.
Genom att bestamma en objektfarg i de fOrsta bildramarna vid sparning mojliggors det for filtrering av konturlinjer aven for andra objekt som ska sparas.
Det bor noteras att styrenheten kan vara anordnad att filtrera bort konturlinjer som osannolikt är en del av objektet som ska sparas baserat pa en kombination av de kriterier som anges ovan. Till exempel, är det osannolikt att en hand innehaller cirkulara konturlinjer eller konturlinjer som har skarpa horn.
F6r att ytterligare minska datauppsattningen är styrenheten anordnad att bestamma vilka punkter i bilden/pa konturlinjema som är av intresse och som ska sparas. For att identifiera de intressanta punktema är styrenheten anordnad for att tilldela deskriptorer till varje punkt. Deskriptorema är karaktaristiska fOr en punkt och kan anvandas for att identifiera den punkten. 12 I en utforingsform är styrenheten anordnad att tilldela tre deskriptorer till varje punkt. Figur 4D visar en forstoring av en konturlinjebild dar konturlinjer CL av spetsen av ett finger kan ses. Tre deskriptorer D1, D2 och D3 indikeras med vita pilar i figur 4D. De tre deskriptorema är: D1 = normalvinkel i punkten; D2 = krokningen till hoger om punkten, och D3 = krokningen till vanster om punkten.
Mojligtvis kan styrenheten konfigureras till att dessutom eller altemativt tilldela en deskriptor baserat pa fargen for punkten eller intensiteten av konturlinjen i 10 punkten. I en utforingsform är styrenheten anordnad att endast tilldela tva deskriptorer D1 och D2 enligt: D1 = normalvinkel i punkten och D2 = krokningen i narheten av punkten.
Att tilldela farre (tva) deskriptorer snabbar upp behandlingen, men minskar noggrannheten i det att deskriptorer inte identifierar en punkt lika tydligt som nar man am/ander fler deskriptorer. Den 'Rade noggrannheten mojliggor en effektiv filtrering som minskar datauppsattningen som skall bearbetas.
I en utfOringsform är styrenheten anordnad att bestamma normalvinkeln genom anvandning av en Sobeloperator. Sobeloperatom är kand inom bildbehandling, sarskilt inom algoritmer sasom kantdetektering. Tekniskt sett är det en diskret differentieringsoperator, som beraknar en approximation av gradienten for en bildintensitetsfunktion. Vid varje punkt i bilden motsvarar resultatet av Sobeloperatom antingen motsvarande gradientvektom eller normen av denna vektor. Sobeloperator baseras pa att falta bilden med ett litet, delbart heltalsfilter i horisontell och vertikal riktning och är darfor relativt billigt i termer av berakningar. Sobeloperationen omfattar en omvandling fran rektangulara till polara koordinater. Det bar noteras att andra satt att bestamma den normala vinkeln finns och ingar i denna uppfinning. I en utforingsform hamtas normalvinkeln fran berakningama som redan utforts nar kantdetekteringen utfors. Detta är fordelaktigt i det att det reducerar antalet berakningar som behover utforas.
Figur 5 är en illustration av hur vinklar al, a 2, a 3 kan bestammas mellan punkter pa en konturlinje CL. Vinklarna al, a2, a3 motsvarar normaler for en punkt P1 och de tva narmaste intilliggande punktema P2 och P3 och bestams, i en utforingsform, med Sobeloperatom. Avstandet mellan tva punkter visas som Asteget. Enligt terminologin i figur 5 kan deskriptorema bestammas i enlighet med: D1 = al [= Sobel (P1)]; 13 D2 = (al - a2)/Asteg 1= (Sobel (P1) - (Sobel (P2))/Asteg], och D3 = (al - a3)/Asteg [= (Sobel (P1) - (Sobel (P3))/Asteg].
Detta ger ett enkelt salt att berakna eller faststalla deskriptorer och krOkningar, vilket satt inte kraver komplicerade operationer, sarskilt for faststallandet av den krokning som vinkeln (ar) i normala (er) redan är bestamd for angransande punkter. Vid anvandning av tva deskriptorer kan deskriptorerna D1, D2 bestammas enligt: D1 = al [= Sobel (PO], och D2 = (a 2 - a3)/2Asteg [= (Sobel (P2) - (Sobel (P3)) / 2Asteg].
For att ytterligare minska datauppsattningen är styrenheten anordnad for att filtrera bort punkter som är svara att sp'ara. Figur 6 visar en bild av en hand dar fyra punkterna Pl, P2, P3 och P4 har markerats med en deskriptor (indikerad med en pi). Tva punkter P3, P4 är placerade pa sidan av ett pekfinger och tva punkter Pl, P2 är placerade pa spetsen av pekfingret. Deskriptorerna for de tva sidopunkterna P3, P4 är mycket lika, om de bestams enligt ovan. Detta illustreras i figur 6 genom att motsvarande deskriptorpilar har samma vinkel. Men deskriptorerna for de tva punkter pa fingertoppen Pl, P2 skiljer sig bade fran varandra och aven fran deskriptorerna for sidopunkterna P3, P4. Detta illustreras i figur 6 av att motsvarande deskriptorpilar har olika vinklar Sadana punkter som skiljer sig fran merparten av punkterna i bilden är lattare att spara och styrenheten är anordnad for att filtrera bort alla punkter vars beskrivning inte skiljer sig frail de andra punkternas "deskriptorer.
I en utforingsform är styrenheten anordnad att filtrera ut intetsagande punkter genom att rakna antalet andra punkter i den foregaende bilden som punkten som jamfors med har liknande eller lika deskriptorer. Om antalet jamforda punkter Overskrider ett troskelvarde kasseras eller filtreras punkten. Troskeln kan representera ett absolut varde, exempelvis 100 eller 500, eller ett relativ varde (en kvot mellan antalet jamforda punkter och det totala antalet punkter), till exempel 1/5, 1/10, 1/20 eller 1/40.
For att filtrera bort brus och for att ytterligare minska datauppsattningen är styrenheten anordnad att filtrera bort punkter som har flyttats for mycket. Filtreringen uppnas genom att styrenheten jamfor alla punkter pa en konturlinje i bilden med alla punkter pa en konturlinje i den tidigare bilden och de punktpar som visar for mycket skillnad kasseras. I en utforingsform är styrenheten anordnad for att behalla eft punktpar om forandringarna i en deskriptor D1, D2, D3 är under eller inom troskelvarden enligt: D1 <= Ti, exempelvis Ti = 11.25 grader; 14 T2L <= D2 <= T2H exempelvis T2L = -50% och T2H = +100% av deskriptorvardet D2; och T3L <= D3 <= T3H exempelvis T3L = -50% och T3H = +100% av deskriptorvardet D3, dar Ti är ett troskelvdrde for tillaten fordndring for deskriptor D1, är T2L ett ldgre troskelvdrde for tillaten fOrandring for deskriptor D2 är T2H ett hogre troskelvdrde for tillaten forandring for deskriptor D2 är T3L ett ldgre troskelvdrde for tillaten fordndring deskriptor D3 och T3H är ett hogre troskelvdrde for tillaten forandring deskriptor D3.
Det bar noteras att ju mindre eller snavare trosklarna Ti, T2H, T2L, T3H och T3L är, desto hogre är troskelvardet for jdmforelse med de intetsagande punkterna sasom diskuterats ovan.
I denna utforingsform är de tva. krokningdeskriptorerna D2, D3 tillatna att variera en faktor 2. Det bor noteras att aven andra faktorer är mojliga, till exempel 3 eller 1,5.
Datauppsattningen har nu reducerats till att omfatta punkter som är av intresse.
For att bestamma horisontell och vertikal rorelse hos ett objekt som ska sparas är styrenheten anordnad att jamfOra alla punkter i datauppsattningen med alla punkter i datauppsattningen for att bestamma rorelsen. I en utforingsform är styrenheten anordnad att jamfora de bildpunktsparen som behalls i enlighet med fordndringen i deskriptorer.
Figur 7 visar en illustration av hur rOrelsejamforelsen utfors. Figuren visar tva Under med vardera tva. punkterna Pl, P2 for vanster hand H och P1', P2' for den hogra H'. I exemplet i figur 7 är den hogra H' handen i den aktuella bilden och den vanstra H är handen i den fOregaende bilden. I figur 7 har handen H forflyttats en viss stracka till Niger (hand H'), som illustreras med att hdnderna H, H' är ritade pa ett avsfand fran varandra. Det bor noteras att aven om figur 7 endast visar tva punkter Pl, P2 for varje hand bearbetas flera punkter i ett verkligt exempel.
Styrenheten jamfor alla punkter i datauppsattningen Pl, P2 av den foregaende bilden med alla punkter i datauppsattningen P1', P2' for den aktuella bilden genom att berdkna ett avstand mellan varje punktpar. Ett sadant avstand illustreras for en punkt fran en tidigare position P1 till en aktuell position P1' och avstandet betecknas Pi-Pi'.
Avstanden PI-PI 'lagras i en matris for varje avstand. Avstandet är en tvadimensionell enhet som har en X (horisontell) och en Y (vertikal) komponent och matrisen alstras sâ att varje cell motsvarar ett avstand som ges av de motsvarande X och Y-koordinaterna eller komponenter. Varje cell i matrisen okas med ett for varje upptradande av ett beraknat avstand som motsvarar denna stracka. Figur 8 visar ett endimensionellt exempel pa den situation som illustreras i figur 7 dar varje forekomst av ett avstand plottas fOr varje avstand.
Sasom kan ses finns det fyra strackor, varav tva är samma och representerar verklig rorelse. Dessa tva är avstanden mellan P1 och P1 'och P2 och P2'. De andra tva är avstanden mellan P1 och P2' och P2 och P1'. Den verkliga rorelsen bestams genom att finna den maximala forekomsten i avsandsmatrisen. I figur 8 finns den hogsta i den hogsta stolpen, som i detta exempel är stolpen for de tva avstanden P1 - P1' och P2 - P2'.
Figur 9 visar en tvadimensionell representation av ett experiment dar ett objekt har funnits Sasom kan ses finns det en topp centrerad kring X = -12, Y = 0. Detta maximum indikerar att objektet har rort sig 12 punkter eller bildpunkter i den negativa X-riktningen.
I en utforingsform är styrenheten anordnad for att faststalla eller berakna det relativa avstandet samtidigt som det bestams om ett punktpar uppvisar for mycket rorelse, men efter att det faststalls att punktparet inte uppvisar alltfor mycket rorelse. Detta minskar det antal ganger styrenheten maste behandla datauppsattningen och darigenom forbattras berakningseffektiviteten.
Genom att anvanda det sift som beskrivs ovan for att minska datauppsatt- ningen och sedan bestamma ett maximum for mojliga rorelser, kan den sanna horisontella och vertikala rorelsen hos ett objekt bestammas pa ett satt som kraver endast fa berakningsresurser.
Experiment har visat att en smartphone anpassad for att genomfora det ovanbeskrivna sattet kan spara objekt tillfredsstallande med lagupplOsningskameror och under daliga ljusforhallanden (ner till 20 lux), vilket Or de hari beskrivna metoderna lampliga for anvandning i mobilutrustning sasom smartphones, barbara datorer, surfplattor etc samt i stationara apparater far anyandning i mindre all optimala miljoer sasom spelkonsoler (barbara samt stationara).
De satt som beskrivs han är lampliga for spanning av ett objekt sasom en hand fOr att mojliggora geststyrning av en enhet. Ett exempel pa genomforande av ett satt hari är en bladdringsapplikation dar gesten att flytta en hand fran ena sidan till den andra indikerar en "vanda blad" operation i samma riktning som den sparade rorelsen. I exemplet i figur 9, skulle motsvarande operation vara att vanda till nasta sida (forutsatt att X-riktningen ar at hoger, varvid den bestamda rorelsen ar en rarelse at vanster). 16 Det satt som beskrivs han är ocksâ lampligt for spaming av ett objekt som ett oga for att mojliggora blicksparning. Blicksparning kan anyandas for att samla in data som ror lasningsbeteenden, bestamma en aktuell punkt av intresse pa ett innehall som visas och awn for att styra en enhet med specificerade agonrorelser (sarskilt anvandbart for att ge handikappstod). Ett exempel pa genomforande av sattet hdri är en annonsapplikation ddr en punkt av intresse (som är en punkt ddr anvandaren fokuserar under en tid, som overstiger ett troskelvarde, eller upprepade ganger) är associerad med ett visst amne och applikationen är anordnad att foresra och visa en annons om dmnet. I exemplet i figur 9 skulle en applikation spara ett ogas rorelse at vanster (forutsatt att X- riktningen är at Niger, varvid den bestamda rorelsen är en rorelse at vdnster). Skulle ingen ytterligare rorelse detekteras under ett tag och det i det visade innehallet finns en artikel om dykning i vanstra kolumnen, kan applikationen hamta och visa en annons fOr dykutrustning.
Fig 10 visar en allman metod i enlighet med ldroma har. En bildstrom tas emot 10i en datoranordning. For att minska den data som skall bearbetas bestammer datoranordningen konturlinjer 1020 och filtrerar bort stationdra linjer 1030. Eventuellt (vilket indikeras av den streckade linjen), filtrerar datoranordningen bort punkter som är osannolika att tillhOra 1035 ett objekt som ska sparas.
Datoranordningen bestammer och tilldelar deskriptorer 1040 till varje punkt.
Dessa deskriptorer kan anvdndas for att identifiera punkter. For att minska datauppsattningen, som skall bearbetas, filtrerar datoranordningen bort punkter vars deskriptorer indikerar att punkten är intetsagande 1044 (svar att skilja fran andra punkter). For att ta bort falska rorelser och att minska datauppsdttningen som skall bearbetas filtrerar datoranordningen 1048 ut punktpar for vilka deskriptorema indikerar att en alltfOr stor rorelse har gjorts. Datoranordningen bestammer darefter det relativa avstandet mellan varje punktpar 1050 i datamangden och finner maximala forekomsten av ett relativt avstand 1060. Det maximala relativa avstandet motsvarar en fOrflyttning av objektet som ska sparas.
Figur 11 illustrerar hur ett flertal objekt kan sparas med hjalp av det Uri beskrivna sattet. I den schematiska exempelillustrationen i figur 11 visas objekt 01 och 02 som identifieras av vardera tre punkter Pl, P2 och P3 for forsta objektet 01 och P4, P5 och P6 for andra objektet 02. Ett dataset, som motsvarar bilden, har reducerats sasom beskrivs ovan med hanvisning till figurema 4 till 7.
Ndr styrenheten bestammer de relativa avstanden for alla punktpar for den forsta och andra objekten 01 och 02 i figur 11 genererar den ett histogram (endimen- 17 sionellt) som visas i figur 12, som visar ett exempelhistogram av relativa avstand for de sex punktema Pl- P6 i fig 11. For tydlighetens skull har de relativa avstanden for falska rOrelser inte identifierats i figur 12. Dessutom är de relativa avstanden i figurerna 11 och 12 illustrativa och korrelationen mellan avstanden i figur 11 och graferna i figur 12 är inte korrekt.
Tva trOskelvarden kan identifieras i figur 12, ett for forsta objektet 01 och ett for det andra objektet 02. Fran detta kan det bestammas att 01 har flyttats en viss stracka och att 02 har flyttats en annan stracka, dar det forsta objekt 01 har flyttats langre an det andra objekt 02.
Det är saledes mojligt att spara mer an ett objekt genom laroma har. Della kraver inte ytterligare berakningar bortsett fran enkel operation for att hitta ett andra maximum. Sparning av flera objekt kan med fOrdel anvandas for att implementera ett multi-geststyrsystem for en enhet. Det kan ocksa anvandas for att ge flera spelare funktionalitet till ett videospel eller ett flertal operatoringangar for styrsystem.
FOr att aktivera, till exempel, ett klickande, en valhandling eller en zoom- funktion i ett gestkontrollerat operativsystem är det fordelaktigt att detektera rorelsen av ett objekt i djupled i bilden eller i en dimension parallell med en siktlinje i bildstrommen. 1 kanda system har djupet faststallts till exempel genom anvandning av stereo eller dubbla kameror eller med djupkameror aven kallas avstandskameror. Detta staller sarskilda krav pa den anvanda kameran vilket okar kostnaden for datoranordningen och begransar dessutom anvandbarheten av det satt pa enheter utrustade med sadana kameror eller anpassats for att hantera de utokade uppgifter som sadana kameror. Lardomarna hari beskriver ett salt nedan som är lampligt for anvandning med en godtycklig kamera och kan dad& med fordel anvandas i smartphones, barbara datorer, surfplattor, spelkonsoler och andra datoranordningar.
Figur 13 illustrerar schematiskt ett exempel av en forflyttning av punktema Pl, P2 vilket motsvarar ett objekt (ej specifikt visat). Som kan ses har punkten gait fran ett forsta lage Pl, P2 till en andra, senare position P1', P2'. Langden av rorelsen Arl, Ar2 for varje punkt Pl, ar P2 proportionell mot avstandet R1, R2 for objektet fran en fokuspunkt F. Om avstandet R1, R2 okar, betyder det en rorelse mot kameran och om avstandet R1, R2 minskar, betyder det en rorelse bort fran kameran. Eftersom avstandet R ocksa kan uttryckas genom: R2 = X2 + Y2 , dar X och Y är de rektangulara koordinater eller komponenter for varje punkt, har forfattarna insett efter insiktsfulla resonemang att X- och Y- komponenter kan anvandas i stallet for radien R aven om 18 origo i koordinatsystemet inte sammanfaller med fokuspunkten F. Detta forenklar berdkningama som skall utforas vdsentligt.
I en utfbringsform är styrenheten anordnad att bestamma en genomsnittlig position om punktparen Pl, P1' och P2, P2' fifth& en datauppsattning som har minskats enligt ovan. Detta genererar en mangd genomsnittliga positioner for punkten paren.
Eventuellt kan styrenheten konfigureras att filtrera bort de punkter som skiljer sig alltfor mycket fran en detekterad hel forflyttning som bestamts enligt det satt som beskrivs ovan. For exemplet i figur 9 är den totala rorelsen X = -12; Y = 0.
Den genomsnittliga positionen for Plm bestams genom Plm = (P1 + P1') / 2 Styrenheten är vidare anordnad att generera en motsvarande uppsattning av de relativa avstanden An, Ar2 for den punktparen P1 till Pl'och P2, P2' och jamfora de relativa avstanden An, Ar2 mot medelvardespositionerna Plm, P2m. Figur 14 visar ett diagram over det relativa avstandet Ar kontra avstandet R till en fokuspunkt F och figurema 15A och 15B visar motsvarande diagram for X- och Y-komponentema eller koordinatema.
Styrenheten är anordnad att bestamma en lutning av en motsvarande linje LR, LX och LY genom att utfora linjeanpassning pa data i matrisema. For diagrammet i figur 14 kan den resulterande linjen LR uttryckas som: Ar = a + bR, ddr a är skamingspunkten och b är lutningen pa linjen LR.
Lutningen b är proportionell mot rorelse i djupled i en bild och kan anvandas for att spara ett objekt som rOr sig i en djupmassig riktning, awn kallad Z-riktningen. En positiv lutning (b> 0) indikerar rorelse mot kameran och en negativ lutning (b <0) indikerar rorelse bort frdn kameran.
Styrenheten är, i en utforingsform, anordnad att utfora en sadan linjeanpassning for att faststalla en lutning baserat pa X- och Y-komponentema for punktparen P2, P2'. Figurema 15A och 15B visar de resulterande linjema LX och LY for X- och Ykomponenter eller koordinater och de bestamda lutningama for linjema LX och LY kan anvandas av styrenheten for att bestamma rorelsen i Z-riktningen. For en rorelse enbart i Z-riktningen är lutningarna for X och Y-komponenter linjdra LX och LY desamma.
Fokuspunkten F kan bestammas fran linjen anpassad for X- och Y-komponent- erna. I diagrammen i figurema 15A och 15B kan koordinatema for fokuspunkten F bestdmmas som om det relativa avstandet är noll, dvs AX = 0 ger PX och AY = 0 ger PY, dar F = (PX, PY).
Fokuspunkten F kan anvandas for att identifiera ett objekt och skilja den fran andra objekt, eftersom F anger en mittpunkt for objektet. Fokuspunkten F kan salunda 19 anvandas for att identifiera ett objekt vid spanning av ett flertal objekt som har beskrivits ovan med hanvisning till figurema 11 och 12.
Det bOr noteras att genom en effektiv omvandling fran rektanguldra koordinater till polka koordinater kan avstandet R och forandringen i avstandet An anvandas for att berdkna lutningen och darigenom rorelsen i Z-riktningen.
Vid spanning av flera objekt i utritningen av R, kommer X- och Y-komponenterna visa flera trender, en trend kommer att forknippas med vane objekt, och flera linjeanpassningar utforas av styrenheten. Lutningen for varje linje motsvarar forflyttningen av det tillhOrande objekt.
Fig 16 visar en allman metod for spanning av ett objekt i enlighet med ldrorna har. En datauppsattning bestaende punktpar mottas 1610. Datauppsattningen har foretradesvis reducerats i enlighet med ldran som beskrivs ovan, men det had beskrivna sattet for att bestamma rorelse i en z-riktning kan Oven anvandas pa datauppsattningar genererade och Oven minskade pa andra att.
De genomsnittliga positionerna ffir punktparen bestams 1620 samt de relativa avstanden for punktparen 1630 och en lutning bestams 1640 till exempel genom att utfora en linjeanpassning av de relativa avstanden kontra de genomsnittliga positionerna.
Rorelsen i Z-riktningen bestams 1650 baserat pa lutningen.
Sattet for sparning av ett objekt i en z-riktning i enlighet med hari är fordel- aktig i det att den kraver fâ berakningsresurser. En ytterligare stor fordel är att det inte kravs en speciell kamera eller flera kameror och kan anvandas i alla datoranordningar anordnade att motta en datauppsattning for bilder eller en bild strom exempelvis fran en kamera, intern eller extern.
Genom att kombinera metoderna och atten beskrivna ovan for spanning av ett objekt i en vertikal och horisontell riktning med laran i hur man sparar ett objekt i en riktning parallell med en siktlinje uppnas ett siitt for spanning av ett objekt i tre dimensioner. En sadan kombination kan uppnas genom att kombinera metoderna enligt figur 10 och 16 a att de funna punktparen 1610 Or de punktpar som aterstar efter filtrering, till exempel efter filtreringen 1048 av punktpar som uppvisar en alltfor stor rorelse.
For att bestamma och identifiera en gest som utfors av ett sparat objekt, sasom en hand, Or en styrenhet anordnad for att bestamma en rorelsevektor for det sparade objekt och jamfora rorelsevektorn mot ett vektorbibliotek.
Figur 17 visar en schematisk illustration av en hand H som utfor en gest genom att den flyttas i tre riktningar Upp, Hoger och Ned. I figur 17 är gesten representerad av tre partiella rorelser 1710 Upp, 1720 Hoger och 1730 Ned. Riktningarna for partiella rorelser 1710-1730 indikeras i figur 17 genom deras riktningar (i grader) som skrivs inom parentes for varje rorelse. En rorelsevektor innefattar saledes atminstone en partiell rOrelse som var och en har en riktning. ROrelsevektorn for gesten i figur 17 har tre komponenter och kan anges av de partiella rorelsernas riktningar, t.ex. {90, 0, 270} riktningen identifierad med en vinkel for riktningen. Att beskriva en gest som en rad riktningar sparar minnesutrymme och mOjliggOr ocksa att en enkel och snabb jamforelse utfors for att identifiera en gest.
Exemp let i figur 17 är i tva dimensioner, men det bar noteras att konceptet som beskrivs hdri med hanvisning till figurerna 17 till 23 enkelt kan utOkas till tre eller ytterligare dimensioner sasom kommer att diskuteras nedan.
Att mojliggora for felaktiga anvdndarrorelser är styrenheten anordnad att faststalla att det är en viss gest om en jamforelsevinkel ligger inom ett intervall eller feltolerans av vinkeln som ska jdmforas med. Vinkeln som ska jamforas med kommer hddanefter att hanvisas till som en referens- eller bibliotekvinkel. Med andra ord är styrenheten anordnad att bestamma att det finns en matchning av en partiell rorelse om ddr 13är biblioteksvinkel, a vinkeln att jdmfora och (I) feltoleransen.
FOr att filtrera bort ofrivilliga rorelser kan styrenheten konfigureras for att, utover vinkeln rorelse, dven bestamma avstandet for rorelsen och endast om aystandet (dist) ligger over ett troskelvdrde (V1), jdmfors vinkelrorelsen med biblioteksvinkel. Med andra ord, om dist> = V1 sâ detekteras den (partiella) rOrelsen och jamfors.
Genom att kombinera mdtning av aystandet och feltoleransen for vinkeln är styrenheten anordnad for att detektera en gest (eller en del av en gest) genom att skilja den fran slumpmdssiga rOrelser hos objektet som sparas. Kombinationen av avstandet och vinkelfeltolerans definierar en kon (med avskuren topp) inom vilken kon alla resulterande rorelser kommer att upptdckas som en rorelse i riktning mot vinkeln.
Till exempel finns det vid forflyttningen enligt figur 17 tre partiella rorelser som utgor en gest for det sparade objektet H. Den forsta rorelsen representerar forflyttning fran laget H till H' i en vinkel pa 90 grader och pa avstand distl, den andra rorelsen representerar en rorelse frail position H'till H" i en vinkel pa 0 grader och pa al/stand dist2 och den tredje rorelsen representerar forflyttning flan Idge H" till H " i en vinkel pa 270 grader och pa avstand dist3. Bara om alla avstand distl, dist2 och dist3 är 21 langre an troskelvardet V1 och alla vinklar ligger inom en feltolerans kommer gesten kannas igen. Alternativt kommer en gest ocksa att bli igenkand om summan av avstanden är over troskelvardet, dvs om distl + dist2 + dist3> = Vi.
Sparning av objekt som beskrives har, speciellt med hanvisning till figurerna 4-16 kan goras i realtid for att ge koordinaterna till sp'arning av ett objekt. Detta mojlig- Or en snabb identifiering av en gest som lampar sig for anvandning i ett realtidssystem eftersom koordinaterna tillhandahalls i realtid och identifieringen av en gest utfors utan omfattande eller resurskravande berakningar.
I en utfOringsform är styrenheten anordnad att identifiera en gest genom anvandning av ett tillstandsdiagram, sasom en Turingmaskin. Figur 18 visar ett exempel pa en sadan Turingmaskin for att identifiera de exempelgester som anges i tabell 1. Turingmaskinen 1800 (som Turingmaskiner 1900, 2000, 2200 enligt fig. 19, 20 och 22) genomfors och exekveras av en datoranordning, sasom beskrivs med hanvisning till figurerna 1 och2.
Styrenheten (ej visad i figur 18, men betecknad 210 i Figur 2) är anordnad att starta i ett initialt tillstand eller starttillstand som indikeras med fetstilslinjer och ett 0 i figur 18. Allteftersom en rorelse detekteras, eventuellt genom att bestamma att ett avstand av rorelsen är Over ett trOskelvarde V1, sasom har beskrivits ovan, initierar vinkeln av rorelsen en tillstandsovergang. I exemplet i figur 18 anvands endast fyra vinklar for rorelser, de fyra vinklarna är 0 grader (rorelse till hoger), 90 grader (rorelse upp), 180 grader (rOrelse till vanster) och 270 grader (kombinationer). Det bOr vara klart att aven ytterligare riktningar kan tillampas och anvands for att definiera och identifiera gester i enlighet med lardomarna av denna ansokan.
Om en registrerad rOrelse har en vinkel som avviker mindre an feltoleransen fran en vinkel som identifierar en overgang sa genomfors overgangen. Till exempel, om en rOrelse till vanster detekteras (med en vinkel pa 170 grader), forutsatt att feltoleransen 'dr 10 grader, kommer styrenheten initiera en Overgang fran det initiala tillstandet 0 till ett annat tillstand som anges {1801 i figur 18 . Tillstandet {180} motsvarar en atgard, vilket indikeras av att tillstandet ritats med heldragna linjer. Fran tabell 1 kan handlingen identifieras som en Angra-atgard.
Som i detta exempel kan gester och deras motsvarande atgarder lagras i en databas eller ett register i minnet (refererade 240 i figur 2) i datoranordningen.
En sekvens av rorelser kan upptackas och identifieras genom tillstandsovergangar i Turingmaskinen 1800 i figur 18. Till exempel: den serie rorelser som visas 22 i figur 17 skulle resultera i tillstandet som betecknas {90, 0, 270} som enligt tabell 1 motsvarar atgarden Zooma in.
Om styrenheten sparar en rorelse i en vinkel, sager 120 grader, vilken faller utanfor feltoleranskonen for nagon av vinklarna (forutsatt en feltolerans pa 10 grader), atergar styrenheten till det ursprungliga tillstandet 0. I en annan utforingsform (som kommer att diskuteras nedan) kommer styrenheten att aterga till foregaende stabila tillstand, ett stabilt tillstand är ett tillstand som motsvarar en &Ord eller det ursprungliga tillstandet. I exemp let i figur 17 är det tidigare stabila tillstandet det inledande tillstandet for alla andra (instabila) tillstand.
Om styrenheten inte kan spara en rorelse med ett avstand langre an troskel- vardet, eventuellt inom ett timeoutvarde Ti, och inte ha natt ett (stabilt) tillstand som motsvarar en atgard, kommer styrenheten all aterga till det ursprungliga tillstandet 0. I figur 18 är tillstand som motsvarar en &Ord markerade med heldragna linjer och tillstand som inte motsvarar en atgard är markerade med streckade linjer. Ett exempel pa vardet av ett timeouttroskelvarde Ti är 0,5 sekunder. Ett annat exempel är 0,3 till 1 sekund.
I en utforingsform kan objektsparningen som beskrivits med hanvisning till figurerna 4 till 16 vara anordnade sâ att en position air ett sparat objekt endast ges om objektet har flyttats ett al/stand ldngre an aystandstroskelvardet. Della tillater en styr- enhet hos datoranordningen, sasom en centralenhet (CPU), att behandla applikationsdata, medan en annan processor, sasom en grafik processor (GPU), behandlar sparningsdata.
Genom att konfigurera en styrenhet for att upptacka och identifiera en gest genom anvandning av en Turingmaskin 1800 mojliggors att identifiering av en gest kan goras snabbt, pAlitligt och i realtid utan att krava stora datorresurser. Dessutom är det satt som beskrivs hari flexibelt i det att gesterna inte behover ha ett visst format och kan Fat anpassas genom att tillfora tillstand i Turingmaskinen 1800.
Detta satt är dessutom ldtt att expandera till att omfatta awn andra dimensioner, t ex djup, rotation, avstand, rorlighet och rorelsehastighet.
Figur 19 visar ett exempel pa. en Turingmaskin 1900 for identifiering av gester i fyra dimensioner, de fyra dimensionema är tva rumsliga dimensioner, rorelsehastighet och rorelselangd. Turingmaskinen 1900 i figur 19 är en utvidgning av en del av Turingmaskinen 1800 i figur 18. Det bar noteras att aven om Turingmaskinen 1900 i figur 19 är inriktad pa fyra dimensioner, är lardomama som anges hari tillampliga pa varje kom- bination av dimensionerna. 23 I exempelutforingsformen som visas i figur 19, är styrenheten anordnad att aktivera Turingmaskinen 1900 for att skilja mellan en snabb och en langsam rorelse, dvs bestamma hastigheten pa en rorelse. Om hastigheten av rorelsen bedOms vara Over en hastighetstroskel Si är rorelsen klassificerad som en snabb rorelse, och om inte klassificeras rorelsen som en langsam rorelse. Hastigheten for rorelsen kan bestammas genom att jamfora avstandet av rorelsen med den tid det tar for att tillryggaldgga avstandet. Detta kan bestammas under sparning av objektet eller under identifieringen av en rorelse och motsvarande gest. I figur 19 indikeras en snabb rorelse genom att vara understruken, sasom overgangen (270 ) till tillstandet {270} som motsvarar &garden Skriv ut. Ett exempel pa ett hastighettroskelvdrde är baserat pa avstandet troskeln V1 sa att Si = V1 / 1 sekund. Ett annat exempel är ett hastighettroskelvdrde som är baserat pa avstandstrOskeln V1 och timeouttrOskelvardet Ti sA att Si = V1/T1.
Styrenheten kan ocksa och/eller dessutom konfigureras att skilja mellan en Fang och en kort rorelse. Detta kan goras genom att jamfora avstandet (t.ex. distl i figur 17) for en rorelse med ett andra troskelvarde V2, det andra troskelvdrdet V2 är stone an det forsta troskelvdrdet Vi. Om avstandet är langre an det andra troskelvdrdet, klassificeras rorelsen som en lang rorelse, och om inte klassificeras rorelsen som en kort rorelse. I figur 18 indikeras en lang rorelse genom att vara i fetstil, till exempel Overgang (270) till tillstandet {270} som motsvarar &garden Radera.
Det är salunda mojligt att tilldela olika &Order for samma riktning genom att ta hansyn till dimensioner sasom hastighet och/eller langd av rOrelsen. FOr exemplet i figur 19 och tabell 1 ger Turingmaskinen 1900 tillstanden och motsvarande &girder {270} korta, langsamma rorelser nedat motsvarar en Skicka &Ord, {270} langa, langsamma rorelser neat motsvarar en Delete atgard, { 270 korta, snabba rorelser neat motsvarar ett tryck &Ord, och {270} langa, snabba rorelser nedat motsvarar en Delete utan bekraftelse atgard. Detta mojliggor att tilldela atgarder med allvarliga konsekvenser till gester som är mer distinkta, som är avgorande eller bestamda i sin natur. Till exempel, det är mindre sannolikt att Ora en lang rorelse av misstag an att utfora en kort rorelse av misstag.
For att mojliggora flexibilitet i enlighet med olika anvandare, olika dator- anordningar, olika kameror och eller olika applikationssituationer, är styrenheten anordnad att bestamma vardena av avstandstroskelvdrdet V1 och/eller V2 baserat pa en storlek pa objektet som skall sparas, ett avstand till objektet som ska sparas, storlek pa skarmen och bildvinkeln i kameran. 24 Avstandet till objektet som skall sparas kan bestammas genom fokusfunktionen i kameran eller djupledssparning sasom beskrivs med hanvisning till figurerna 13-15. Genom att anvanda djupledssparning, kan trOskelvdrdena Okas eller minskas i enlighet med objektets rorelse i en djupmassig riktning (vasentligen parallell med siktlinjen av kameran).
Till exempel, trOskelvdrdena V1 och V2 är relaterade till storleken pa objektet som ska sparas, nagra exempel pa varden pa V1 och V2 är V1 = 3 x storlek for objekt, V2 = 6 x storlek for objekt.
Till exempel, trOskelvardet V1 och V2 är relativa till kamerans bildvinkel, nagra exempel pa varden pa V1 och V2 är V1 = 20% av bildvinkeln, V2 = 50% av bildvinkeln. For en bildvinkel pa 120 grader V1 är 24 grader och V2 = 60 grader.
Gestdetekteringen som beskrivs had är lamplig for realtidsutfOrande som har diskuterats ovan. For att mojliggora snabbare utforande, är styrenheten av datoranordningen (refererade 210 och 200 respektive i figur 2) anordnad att proaktivt utfora en âtgard som motsvarar en antagen gest medan en gest detekteras.
I en situation ddr en uppatgaende rorelse har detekterats (betecknad av overgangen (90) i figur 18 är endast tva atgarder mojliga, namligen atgarderna Zoom in (motsvarande {90, 0, 270}) och Forminska (motsvarande {90, 180, 270}) I detta exempel avser atgarder att en bild visas. For att forbereda kan styrenheten hamta bilddata som behovs for att utfora zoomningen och mojligen ocksâ bestamma bade en inzoomad och en utzoomad representation av bilden som visas. Genom att fOrbereda de atgarder som skall vidtas, kan &garden utforas pa mycket kortare tid, vilket resulterar i en snabbare svarstid. Om exempelvis bilddata behover laddas fran en extern harddisk, kan manga tiondelar av en sekund sparas genom att inleda laddningen av bilddata innan gesten är klar och identifierad. Som bekant upplevs en svarstid pa mer an 0,1 sekunder som stressande och tralig av manga anvandare av datoranordningar. En datoranordning anordnad att proaktivt utfora en atgiird har &id& en stor fOrdel i att den minskar svarstiden och är mindre stressande att anvanda.
Pa grund av berakningseffektiviteten hos moderna styrsystem, sasom centralenheter (CPU), kommer en styrenhet att vara inaktiv under manga klockcykler medans gesten utforts och upptdckts och eftersom mansklig rarelse är relativt langsam jamfort med processorer har forfattarna till denna ansokan insett att genom aft utnyttja dessa gratis klockcykler till att proaktivt utfora en atgard uppnas (atminstone delvis) en kortare reaktionstid for atgarden.
I detta exempel kan styrenheten bestamma en motsvarande gest aven om gesten inte har slutfcirts annu. Styrenheten är medveten om vilken gest som matas in redan i tillstanden {90, 180} och {90, 0} eftersom endast en overgang leder fran vardera (instabila) tillstand. Styrenheten kan saledes utfora motsvarande atgard proaktivt och om tillstandet motsvarande gesten nas kan resultatet av den proaktiva atgarden visas eller verkstallas. I detta exempel visas den zoomade bilden(in eller ut). Genom att astadkomma resultat i proaktivt syfte, far en anvandare tid att angra en atgard genom att avbryta gesten.
Detta satt att proaktivt utfora en atgard är sarskilt fordelaktigt om en styrenhet utfor objektssparning och en processor utfor handelserelaterad verksamhet.
For att mojliggora en stone variation av gester har forfattarna till denna ansokan insett att en gest kan fâ bilda en undersekvens av en annan gest.
Figur 20 visar en Turingmaskin 2000 for en styrenhet aktiverad for att skilja mellan en forsta gest och en andra gest dar en forsta gest bestar av en subsekvens av den andra gesten. Den Turingmaskin 2000 är en utvidgning av en del av Turingmaskinerna 1800 eller 1900 av figurerna 18 eller 19.
Tillstandet refererat {0, 90} motsvarar atgarden Vand sida (se tabell 1) och tillstandet refererat {0, 270} motsvarar atgarden Vand sida bakat (se tabell 1) som i Turingmaskinen 1800 i figur 18 . Denna Turingmaskin 2000 inkluderar ytterligare tva tillstand, ett tillstand betecknat {0, 90, 180} motsvarande atgard Bladdra framat och ett tillstand betecknat {0, 270, 0} motsvarande &garden bladdra framat.
Som kan ses är alla fyra tillstand stabila tillstand och tillstandet refererat {0, 90} är pa vagen mot tillstandet refererat {0, 90, 180} dvs gesten for {0, 90} är en subgest av gesten for {0, 90, 180} och tillstandet refererat {0, 270} är pa vagen mot tillstandet refererat {0, 270, 0} dvs gesten for {0, 270} är en subgest av gesten for {0; 270, 0} .
Far att skilja mellan subgester och kompletta gester är en styrenhet anordnad for att aterga till ett foregaende stabilt tillstand om en ytterligare rorelse detekteras med en vinkel som inte motsvarar nagon annan gest. Detta mojliggor att avsluta en gest genom en rorelse i en odefinierad riktning. Detta majliggar ocksa att pausa gester.
Alternativt och/eller dessutom, om ingen ytterligare rorelse detekteras inom ett tidstroskelvarde Ti, atergar styrenheten till eft tidigare stabilt tillstand. Det tidigare stabila tillstandet kan mojligen vara ett tillstand som for narvarande besoks, om ett sadant tillstand är ett stabilt tillstand. 26 For exemplet i figur 20 utfors en vand sida framat atgard om en anvandare utfor gesten hoger-upp-(ned/bort/hoger/stopp) och en bladdring framat atgard utfors nar en anvandare utfor gesten hoger-upp-vanster-(ner/bort/hOger/stopp). Analogt utfors en vand sida baldt atgard nar en anvandare utfor gesten hoger-ner-(ned/bort/vanster/stopp) och en bladdra bakat atgard utfors nar en anvandare utfor gesten hoger-ner-hoger(ned/bort/vanster/stopp). Den bladdrande atgarden skulle kunna definieras som en HOLD gest sâ att bladdring fortsatter nar styrenheten är i ett bladdrande tillstand (dvs ingen ytterligare rorelse detekteras).
FOr att mojliggora fler objektsgester, kan styrenheten konfigureras att spara flera objekt sasom har beskrivits med hanvisning till figurerna 11 till 12 och aven 13-15.
Rorelsen hos varje objekt (refererade 01 och 02 i siffror 11 och 12) kan identifieras genom ett tillstandsdiagram eller Turingmaskin som beskrivs med hanvisning till figurerna 18 och 20, dar en instans av Turingmaskinen av varje (eller en kombination av) Turingmaskiner 1800, 1900, 2000 fran figurema 18, 19 och 20 alstras och exekveras for varje objekt. Detta mOjliggOr fOr att flera objekt utfor gester samtidigt eller samtidiga gester. De gester som identifierats for varje objekt kan kombineras till en motsvarande atgard eller sâ kan varje gest resultera i varsin atgard. Detta mojliggor samtidig anvandning eller hantering med flera samtidiga gester. Ett exempel pa en anvandning av sadana flerobjektsgester som styr en forsta applikation eller en forsta spelare i en spelapplikation med ena handen och styra en andra applikation eller en andra spelare i en spelapplikation med en annan hand varigenom multitradsprogrammering och aven multiplayer-gaming mojliggors.
Figur 22 visar en illustration av en Turingmaskin 2200 for att identifiera komplexa gester som utfors av flera objekt. Sadana gester kan anvandas for att styra en och samma applikation eller mojfiggora ett rikare gestbibliotek till en utvecklare av en applikation. Figur 21 visar en schematisk illustration av tva objekt, i detta exempel tva Wander H1 och H2, som utfor en komplex, flerobjektsgest. Den fOrsta handen (vanster) H1 Or en rorelse at hoger (referens (0/-) for att indikera att ett forsta objekt ror sig i en riktning av 0 grader) till en andra position Hi 'och den andra handen (hoger) H2 gar en rorelse nedat (refererad (-/270) for att indikera att det andra objektet ror sig i en riktning av 270 grader) till en andra position H2'.
Denna Turingmaskin 2200 har tre tillstand for komplexa gester beroende pa vilken hand, den forsta (vanstra) handen H1 eller den andra (hogra) handen H2, som ror sig forst. Gesterna och motsvarande &Order visas i tabell 2. Exempelgester och deras motsvarande atgarder är endast for illustration och det bar vara klart att exemplen i sig 27 inte ska anses som begransande for ldrorna han. Varje overgang i Turingmaskin 2200 motsvarar en forflyttning av atminstone ett objekt.
Om den forsta (vdnstra) handen H1 ror sig forst, kommer styrenheten att hamna i ett tillstand refererat {0/-;-/2701 med motsvarande verkan att ta fram nasta sida och ta bort den (eller tidigare) sidan. Om den andra (hogra) handen H2 ror sig forst, kommer styrenheten att hamna i ett tillstand refererat {4270,0/-} med motsvarande verkan att ta bort en aktuell sida och ta fram nasta sida. Beroende pa vilken sida som raderas (foregaende eller nasta) ger dessa tva atgarder mojligen olika slutresultat. Alternativt ger ordern anyandaren en mojlighet att forhandsgranska nasta sida innan han raderar den tidigare (tillstand {0 /- ;-/ 270}).
Om den forsta handen H1 och den andra handen H2 ror sig vdsentligen samtidigt, utfors en tredje multipel atgard. I detta exempel motsvarar den samtidiga funktionen en zoomningsoperation.
I en utforingsform har ordningen som objekt forflyttas i ingen betydelse. Detta minskar antalet tillgangliga gester, medan det forenklar inmatningen av en korrekt gest eftersom en anyandare inte behaver utfora rorelserna i exakt tidsfoljd.
Att ha flera objektgester majliggar for ett utokat gestbibliotek och ett som ocksa är mer flexibelt for en applikationsdesigners behov och Onskningar fcir applikationen.
For att ytterligare forenkla gestinmatningen for en anvandare kan styrenheten konfigureras fOr att ge anvandaren feedback under gestidentifieringsfasen, genom att visa en indikator eller status (t.ex. genom sma ikoner, pilar, text eller forloppsindikator i ett horn, exempelvis ovre hogra hornet av skarmen) av upptackta rorelser. Indikationen uppdateras varje gang en riktning av rorelse har detekterats framgangsrikt. Detta gOr det mojligt for en anyandare att forsta gestens framsteg. Detta är sarskilt fordelaktigt for komplicerade gester (som innehaller manga riktningar rorelser eller kombinationer av rEirelser).
Figur 23 visar en allman metod for identifiering av en gest i enlighet med ldrorna Uri. En datoranordning tar emot 2310 uppgifter som identifierar en rorelse for ett objekt som ska sparas, till exempel genom en vinkel for en rorelseriktning hos objektet. Vinkeln jamfors 2330 med en referens- eller bibliotekvinkel for ett gestbibliotek for att avgora om en gest identifieras eller inte. Om sa dr fallet, utfor datoranordningen 2340 en motsvarande atgard.
Vinkeln jamfors med biblioteket genom att traversera ett tillstandsdiagram ddr vinkeln dr en del av en sekvens av vinklar och varje vinkel i sekvensen matchas 23 28 mot en overgang mellan tva tillstand i tillstandsdiagrammet. Om ett tillstand uppnas som motsvarar en &Ord, utfors 2340 atgarden.
De lardomar Uri ger fordelen att enkla berakningar inte kraver nagra stora datorresurser som ska genomforas effektivt. Exempelvis kraver detta sdtt ingen skalning, rotation eller deformation som skall goras och faststallandet av krokningar är verkligen enkel och elegant. Det sat som Mrs ut hdri är salunda lampad for anyandning i laga eller dafiga ljusforhallanden vilket ocksa gör det mycket lampat for barbara enheter och underhallningssystem.
Det sat som beskrivs hdri är fordelaktigt eftersom det är baserat pa rikmingar i stallet for absoluta positioner och är mindre kansligt for aystandet mellan objektet och kamera. Det finns heller inget behov av skalning av sparade objekt som passar ett bibliotek eller referensobjekt. Detta är sdrskilt anvandbart ndr samma gestinstallningen kan anyandas for olika enheter (sasom men inte begransat till TV, mobiltelefoner och stationdra datorer).
Dessutom kraver gestbiblioteket endast ett minimum av data sa det är ldtt att forvara och snabbt att manipulera vilket endast kraver ett minimum av datorresurser. Det hdri beskrivna sattet gör det ocksâ mojligt att kunna hantera forandringar i skala sâ att den tolkar en fOrandring i omfattning som en gest i en riktning parallell med en siktlinje eller ignorerar sadana rorelser. Detta ger ett robust sift att identifiera gester.
De lardomar som ges hdri ger fordelen att enkla atgarder for att jamfora en vinkel och mojligen ett aystand som inte kraver nagra stora datorresurser kan genomforas effektivt. Exempelvis krdys det ingen skalning, rotation eller deformation och faststallandet av krokningar är verkligen enkel och elegant. Det sift som lars ut hdri är salunda lampat for anyandning i laga eller daliga ljusfOrhallanden vilket ocksa. gör det mycket lampat for bdrbara enheter och underhallningssystem.
En annan fordel ligger i att ingen trdning eller uppldming av sparningssystemet eller gestidentifiering krdvs.
Annu en fordel ligger i att det salt som Mrs ut hdriär mycket Eft att integrera i en befintlig enhet eftersom den indata som krdys dr en bildstrom som kan tillhanda- lianas som ett videoflode fran en kamera (intern eller extern) eller genom en annan videokdlla, sasom en film eller strommat videoflode. Utdatan ar koordinaterna for den relativa rorelsen som, i kombination med indatan, skapar ett enkelt granssnitt for att det sat som beskrivs hdri som an ldtt att integrera i befintliga enheter i enheter som ska produceras. 29 Uppfinningen har huvudsakligen beskrivits ovan med hanvisning till nagra utforingsformer. Sham latt kan inses av en fackman inom omradet, är andra utforingsformer an de som beskrivits ovan lika mOjliga inom ramen fOr uppfinningen, sasom definieras av de bifogade patentkraven.
Gest Atgard 10,2701 Atgard 1: svang framat 10,901 Atgard2: Vand sida bakat {90,0,270} Atgard3: Zoom in {90.180.270} Atgard4: Forminska {180} Atgard5: Angra {270} Atgard6: Print { 270 } Atgard7: Skicka { 270 } Atgard8: Radera { 270 } Atgard9: Ta bort utan bekraftelse {0, 90, 180} Atgard 10: Bladdra bakat {0, 270, 0} Atgard 11: Bladdra framat Tabell 1: gester och motsvarande &Order Gest Atgard {0 / - ,-/ 2701 Delete Multipel dtgard 1: Nasta sida + {-/270, 0 / -} sida Multipel dtgard2: Radera + Nasta {0/270} Multipel atgard3: Zoom in Tabell 2: Flera objekt gester och motsvarande &Order

Claims (15)

KRAV
1. En datoranordning (100, 200) for identifiering av en gest som utfors av ett spkat objekt (H, H', 01, 02) i en bildstrom, namnda datoranordning (100, 200) innefattande ett minne (240) och en styrenhet (210), varvid styrenheten (210) är anordnad att: bestamma en rorelsevektor for det spkade objektet (H, H', 01, 02); jamfora rorelsevektorn mot ett referensbibliotek av gester; och darigenom identifiera en gest som motsvarar rorelsevektorn, varvid rorelsevektorn innefattar atminstone en partiell rorelse som har en riktning som definieras av en vinkel (a) och varvid namnda jamforelse är baserad pa namnda vinkel (a) och varvid styrenheten (210) vidare är anordnad att gâ igenom ett tillstandsdiagram, sasom en Turingmaskin (1800, 1900, 2000, 2200), varvid en overgang motsvarar ett element i rorelsevektorn och atminstone ett tillstand motsvarar en atgard, varvid styrenheten utfor en overgang fran ett tillstand till ett annat enligt element i rorelsevektorn tills att gesten identifierats genom att nâ ett motsvarande tillstand, varvid styrenheten (210) vidare är anordnad att proaktivt utfora en kgard motsvarande en antagen gest under tiden att gesten detekteras, varvid styrenheten (210) är anordnad att anta att gesten som detekteras är en antagen gest om det aktuella tillstandet i tillstandsdiagrammet ligger pa en overgangsvag till gesten som ska detekteras.
2. Datoranordningen (100, 200) enligt krav 1, varvid namnda tillstandsdiagram innefattar atminstone ett stabilt tillstand, varvid ett stabilt tillstand är ett tillstand motsvarande en atgard eller ett initialt tillstand och varvid styrenheten (210) vidare är anordnad att aterga till ett tidigare stabilt tillstand nar ingen annan overgang finns i tillstandsdiagrammet for elementen i rorelsevektom.
3. Datoranordningen (100, 200) enligt krav 2, varvid styrenheten (210) vidare är anordnad att om ingen vidare partiell rorelse detekteras inom ett tidstroskelvarde (Ti).
4. Datoranordningen (100, 200) enligt krav 1, varvid styrenheten (210) vidare är anordnad att visa eller utfora ett resultat av atgarden motsvarande den antagna gesten nar tillstandet for gesten som skall detekteras nas.
5. Datoranordningen (100, 200) enligt nagotdera av kraven 1-4, varvid namnda tillstandsdiagram innefattar kminstone ett stabilt tillstand pa en vag till ett annat stabilt tillstand for att majliggora att en forsta gest definieras av en undersekvens av rorelser hos en andra gest. 31
6. Datoranordningen (100, 200) enligt nagotdera av kraven 1-5, varvid styrenheten (210) vidare är anordnad att identifiera en gest for ett flertal objekt genom att gâ igenom ett flertal tillstandsdiagram vardera associerade med vardera flertalet objekt, varvid styrenheten (210) vidare är anordnad att identifiera en gest for namnda flertal objekt som sparas genom att ga igenom motsvarande tillstandsdiagram, varvid en overgang i ett motsvarande tillstandsdiagram motsvarar ett element i en rorelsevektor for det motsvarande objektet som ska sparas.
7. Datoranordningen (100, 200) enligt nagotdera av kraven 1-5, varvid styrenheten (210) vidare är anordnad att identifiera en gest for ett flertal objekt genom att gâ igenom ett tillstandsdiagram varvid vardera overgang motsvarar en rorelse av flertalet objekt.
8. Datoranordningen (100, 200) enligt nagotdera av kraven 1-7, varvid styrenheten (210) vidare är anordnad att bestamma att en vinkel (a) motsvarar en biblioteksvinkel (13) om vinkcln (a) som jamfors med liggcr inom en feltolerans (0) for namnda biblioteksvinkel (13).
9. Datoranordningen (100, 200) enligt nagotdera av kraven 1-8, varvid styrenheten (210) vidare är anordnad att: bestamma ett avstand for en rOrelse (dist); bestamma om avstandet for rorelsen ligger ovan ett forsta avstandstroskelvarde (V1); och i sâ fall, jamfora vinkeln (a) fdr rorelsen med en biblioteksvinkel (13).
10. Datoranordningen (100, 200) enligt nagotdera av kraven 1 to 9, varvid 25 rOrelsevektorn innefattar atminstone en vidare dimension som tas fran en grupp innefattande: djup, rotation, grader av vridning, avstand for en rorelse och hastighet hos en rorelse.
11. Datoranordningen (100, 200) enligt krav 9, varvid styrenheten är anordnad att skilja mellan en snabb och en langsam rorelse.
12. Datoranordningen (100, 200) enligt krav 9 eller 10, varvid styrenheten är anordnad att skilja mellan en kort och en lang rorelse.
13. Datoranordningen (100, 200) enligt nagotdera av kraven 1 to 12, varvid styrenheten är anordnad att bestamma ett avstand baserat pa en storlek hos objektet som ska sparas, ett avstand till objektet som ska sparas, storlek pa en skarm och en kameras synfalt. 32
14. En metod for anvandning i en datoranordning for identifiering av en gest som utfors av ett sparat objekt (H, H', 01, 02) i en bildstrom, namnda metod innefattande: bestamning av en rorelsevektor for det sparade objektet (H, H', 01, 02); jamforelse av rorelsevektorn mot ett referensbibliotek av gester; och darigenom identifiering av en gest som motsvarar rorelsevektorn, varvid rorelsevektorn innefattar 'atminstone en partiell rorelse som har en riktning som definieras av en vinkel (a) och varvid namnda jamforelse är baserad pa namnda vinkel (a)och varvid metoden vidare innefattar att gâ igenom ett tillstandsdiagram, sasom en Turingmaskin (1800, 1900, 2000, 2200), varvid en overgang motsvarar ett element i rorelsevektorn och Atminstone ett tillstand motsvarar en atgard, varvid en overgang fran ett tillstand till ett annat utfors enligt element i rorelsevektorn tills att gesten identifierats gcnom att nâ ett motsvarande tillstand, varvid metoden vidare innefattar proaktivt utforning av en &Ord motsvarande en antagen gest under tiden som gesten detekteras, varvid gcsten som detekteras är en antagen gest om det aktuclla tillstandet i tillstandsdiagrammet ligger pa en overgangsvag till gesten som ska detekteras.
15. Ett datorlasbart lagringsmedium (30) kodat med instruktioner (31) som, nar laddade och exekverade pa en processor, orsakar en metod enligt krav 14 att utforas. 33 100 160
SE1250911A 2012-08-03 2012-08-03 Förbättrad identifiering av en gest SE537553C2 (sv)

Priority Applications (7)

Application Number Priority Date Filing Date Title
SE1250911A SE537553C2 (sv) 2012-08-03 2012-08-03 Förbättrad identifiering av en gest
SE1550243A SE538272C2 (sv) 2012-08-03 2013-07-08 Improved identification of a gesture
CN201380040370.1A CN104583902B (zh) 2012-08-03 2013-07-08 改进的手势的识别
PCT/SE2013/050878 WO2014021760A2 (en) 2012-08-03 2013-07-08 Improved identification of a gesture
EP13824830.7A EP2880508B1 (en) 2012-08-03 2013-07-08 Improved identification of a gesture
US14/419,098 US9361512B2 (en) 2012-08-03 2013-07-08 Identification of a gesture
US15/071,895 US9690388B2 (en) 2012-08-03 2016-03-16 Identification of a gesture

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
SE1250911A SE537553C2 (sv) 2012-08-03 2012-08-03 Förbättrad identifiering av en gest

Publications (2)

Publication Number Publication Date
SE1250911A1 SE1250911A1 (sv) 2014-02-04
SE537553C2 true SE537553C2 (sv) 2015-06-09

Family

ID=50028628

Family Applications (2)

Application Number Title Priority Date Filing Date
SE1250911A SE537553C2 (sv) 2012-08-03 2012-08-03 Förbättrad identifiering av en gest
SE1550243A SE538272C2 (sv) 2012-08-03 2013-07-08 Improved identification of a gesture

Family Applications After (1)

Application Number Title Priority Date Filing Date
SE1550243A SE538272C2 (sv) 2012-08-03 2013-07-08 Improved identification of a gesture

Country Status (5)

Country Link
US (2) US9361512B2 (sv)
EP (1) EP2880508B1 (sv)
CN (1) CN104583902B (sv)
SE (2) SE537553C2 (sv)
WO (1) WO2014021760A2 (sv)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5914962B2 (ja) * 2010-04-09 2016-05-11 ソニー株式会社 画像処理装置および方法、プログラム、並びに、記録媒体
US11493998B2 (en) 2012-01-17 2022-11-08 Ultrahaptics IP Two Limited Systems and methods for machine control
SE537553C2 (sv) * 2012-08-03 2015-06-09 Crunchfish Ab Förbättrad identifiering av en gest
SE537580C2 (sv) 2012-08-03 2015-06-30 Crunchfish Ab Förbättrad inmatning
US10241639B2 (en) 2013-01-15 2019-03-26 Leap Motion, Inc. Dynamic user interactions for display control and manipulation of display objects
US10620709B2 (en) 2013-04-05 2020-04-14 Ultrahaptics IP Two Limited Customized gesture interpretation
SE537579C2 (sv) * 2013-04-11 2015-06-30 Crunchfish Ab Bärbar enhet nyttjandes en passiv sensor för initiering av beröringsfri geststyrning
US9747696B2 (en) 2013-05-17 2017-08-29 Leap Motion, Inc. Systems and methods for providing normalized parameters of motions of objects in three-dimensional space
KR102234400B1 (ko) * 2013-07-08 2021-03-31 삼성전자주식회사 컨텐츠의 순서 또는 위치를 변경하는 전자 장치 및 방법
US20150029092A1 (en) * 2013-07-23 2015-01-29 Leap Motion, Inc. Systems and methods of interpreting complex gestures
US10152136B2 (en) 2013-10-16 2018-12-11 Leap Motion, Inc. Velocity field interaction for free space gesture interface and control
US9740296B2 (en) 2013-12-16 2017-08-22 Leap Motion, Inc. User-defined virtual interaction space and manipulation of virtual cameras in the interaction space
US20150205360A1 (en) * 2014-01-20 2015-07-23 Lenovo (Singapore) Pte. Ltd. Table top gestures for mimicking mouse control
JP6287382B2 (ja) * 2014-03-12 2018-03-07 オムロン株式会社 ジェスチャ認識装置およびジェスチャ認識装置の制御方法
GB201404134D0 (en) * 2014-03-10 2014-04-23 Bae Systems Plc Interactive information display
KR102265143B1 (ko) * 2014-05-16 2021-06-15 삼성전자주식회사 입력 처리 장치 및 방법
US9958946B2 (en) * 2014-06-06 2018-05-01 Microsoft Technology Licensing, Llc Switching input rails without a release command in a natural user interface
CN104462013B (zh) * 2014-06-26 2017-10-10 奥诚信息科技(上海)有限公司 一种光学三维传感专用asic芯片系统
US9501810B2 (en) * 2014-09-12 2016-11-22 General Electric Company Creating a virtual environment for touchless interaction
US9696795B2 (en) 2015-02-13 2017-07-04 Leap Motion, Inc. Systems and methods of creating a realistic grab experience in virtual reality/augmented reality environments
US10429923B1 (en) 2015-02-13 2019-10-01 Ultrahaptics IP Two Limited Interaction engine for creating a realistic experience in virtual reality/augmented reality environments
JP2018528551A (ja) * 2015-06-10 2018-09-27 ブイタッチ・コーポレーション・リミテッド ユーザー基準空間座標系上におけるジェスチャー検出方法および装置
CN105306642A (zh) * 2015-11-12 2016-02-03 凯晖科技股份有限公司 一种智能手势控制手机保护套及其使用方法
CN105739689A (zh) * 2016-01-21 2016-07-06 陈佩珊 一种基于智能眼镜采集轨迹的图标迁移实现方法及系统
CN107436679B (zh) * 2016-05-27 2020-08-07 富泰华工业(深圳)有限公司 手势控制系统及方法
JP6744142B2 (ja) * 2016-06-13 2020-08-19 株式会社ホリ ゲーム専用機用コントローラ、ゲーム専用機用のコントローラシステム
CN106155326A (zh) 2016-07-26 2016-11-23 北京小米移动软件有限公司 虚拟现实通讯中的对象识别方法和装置、虚拟现实设备
CN106980362A (zh) * 2016-10-09 2017-07-25 阿里巴巴集团控股有限公司 基于虚拟现实场景的输入方法及装置
CN106920092A (zh) * 2016-12-23 2017-07-04 阿里巴巴集团控股有限公司 一种虚拟资源分配方法、客户端及服务器
CN106896914A (zh) * 2017-01-17 2017-06-27 珠海格力电器股份有限公司 信息的转换方法和装置
WO2019103049A1 (ja) * 2017-11-22 2019-05-31 株式会社ミックウェア 地図情報処理装置、地図情報処理方法および地図情報処理プログラム
US10600205B2 (en) * 2018-01-08 2020-03-24 Htc Corporation Anchor recognition in reality system
US11875012B2 (en) 2018-05-25 2024-01-16 Ultrahaptics IP Two Limited Throwable interface for augmented reality and virtual reality environments
US11402917B2 (en) * 2018-06-20 2022-08-02 Sony Interactive Entertainment Inc. Gesture-based user interface for AR and VR with gaze trigger
CN109144252B (zh) * 2018-08-01 2021-04-27 百度在线网络技术(北京)有限公司 对象确定方法、装置、设备和存储介质
CN109801207B (zh) * 2019-01-08 2023-05-30 桂林电子科技大学 Cpu-fpga协同的影像特征高速检测与匹配系统
CN110262659B (zh) * 2019-06-18 2022-03-15 Oppo广东移动通信有限公司 应用控制方法及相关装置
CN110794959A (zh) * 2019-09-25 2020-02-14 苏州联游信息技术有限公司 一种基于图像识别的手势交互ar投影方法及装置
US11237641B2 (en) * 2020-03-27 2022-02-01 Lenovo (Singapore) Pte. Ltd. Palm based object position adjustment
US11829531B2 (en) * 2021-09-13 2023-11-28 Htc Corporation Human-computer interaction method and system and non-transitory computer readable storage medium
CN117170982B (zh) * 2023-11-02 2024-02-13 建信金融科技有限责任公司 人机检测方法、装置、电子设备和计算机可读介质

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6323846B1 (en) * 1998-01-26 2001-11-27 University Of Delaware Method and apparatus for integrating manual input
US7721207B2 (en) * 2006-05-31 2010-05-18 Sony Ericsson Mobile Communications Ab Camera based control
US9317124B2 (en) * 2006-09-28 2016-04-19 Nokia Technologies Oy Command input by hand gestures captured from camera
US8904312B2 (en) 2006-11-09 2014-12-02 Navisense Method and device for touchless signing and recognition
US7970176B2 (en) 2007-10-02 2011-06-28 Omek Interactive, Inc. Method and system for gesture classification
WO2009128064A2 (en) 2008-04-14 2009-10-22 Pointgrab Ltd. Vision based pointing device emulation
US8599132B2 (en) 2008-06-10 2013-12-03 Mediatek Inc. Methods and systems for controlling electronic devices according to signals from digital camera and sensor modules
JP4568357B2 (ja) * 2008-06-30 2010-10-27 インターナショナル・ビジネス・マシーンズ・コーポレーション 動画データから検索対象である動画コンテンツを含むシーンを検索するためのコンピュータ・システム、並びにその方法及びコンピュータ・プログラム
GB2474536B (en) 2009-10-13 2011-11-02 Pointgrab Ltd Computer vision gesture based control of a device
US20110299737A1 (en) * 2010-06-04 2011-12-08 Acer Incorporated Vision-based hand movement recognition system and method thereof
CN102541325B (zh) * 2010-12-14 2017-08-25 联想(北京)有限公司 一种输入识别方法和输入装置
US9354804B2 (en) 2010-12-29 2016-05-31 Microsoft Technology Licensing, Llc Touch event anticipation in a computing device
JP5885309B2 (ja) 2010-12-30 2016-03-15 トムソン ライセンシングThomson Licensing ジェスチャ認識のためのユーザ・インタフェース、装置および方法
US20120281129A1 (en) * 2011-05-06 2012-11-08 Nokia Corporation Camera control
US8176437B1 (en) * 2011-07-18 2012-05-08 Google Inc. Responsiveness for application launch
SE537553C2 (sv) * 2012-08-03 2015-06-09 Crunchfish Ab Förbättrad identifiering av en gest

Also Published As

Publication number Publication date
US9361512B2 (en) 2016-06-07
US20150220776A1 (en) 2015-08-06
CN104583902B (zh) 2017-06-09
EP2880508B1 (en) 2019-03-20
SE538272C2 (sv) 2016-04-19
CN104583902A (zh) 2015-04-29
EP2880508A2 (en) 2015-06-10
US20160195935A1 (en) 2016-07-07
WO2014021760A2 (en) 2014-02-06
SE1250911A1 (sv) 2014-02-04
EP2880508A4 (en) 2016-06-01
SE1550243A1 (sv) 2015-03-02
WO2014021760A3 (en) 2014-05-08
US9690388B2 (en) 2017-06-27

Similar Documents

Publication Publication Date Title
SE537553C2 (sv) Förbättrad identifiering av en gest
US11418706B2 (en) Adjusting motion capture based on the distance between tracked objects
US9275275B2 (en) Object tracking in a video stream
JP6419278B1 (ja) 制御装置、制御方法、及びプログラム
KR20200092894A (ko) 손가락 끝 모션 패턴들의 제스처들로의 실시간 온 디바이스 분류
JP5703194B2 (ja) ジェスチャ認識装置、その方法、及び、そのプログラム
KR20230002874A (ko) 제스처 제어 전자 디바이스의 제어 디스플레이 이득을 조정하기 위한 방법 및 디바이스
JP6632681B2 (ja) 制御装置、制御方法、及びプログラム
Choudhary et al. Real time robotic arm control using hand gestures
Goussies et al. Learning to detect touches on cluttered tables
US10074401B1 (en) Adjusting playback of images using sensor data
US20150042621A1 (en) Method and apparatus for controlling 3d object
JP7434385B2 (ja) 制御装置、制御方法、及びプログラム
US20230125410A1 (en) Information processing apparatus, image capturing system, method, and non-transitory computer-readable storage medium
SE537755C2 (sv) Datoranordning för spårning av objekt i djupled
CN115878008A (zh) 交互方法、装置、计算机可读存储介质及电子设备
WO2019123211A1 (en) Multi-camera device
EP2933753A1 (fr) Procédé et dispositif de commande d&#39;actions réalisées par un système informatique