KR20140035271A - 제스쳐 인식 방법 및 시스템 - Google Patents

제스쳐 인식 방법 및 시스템 Download PDF

Info

Publication number
KR20140035271A
KR20140035271A KR1020130109123A KR20130109123A KR20140035271A KR 20140035271 A KR20140035271 A KR 20140035271A KR 1020130109123 A KR1020130109123 A KR 1020130109123A KR 20130109123 A KR20130109123 A KR 20130109123A KR 20140035271 A KR20140035271 A KR 20140035271A
Authority
KR
South Korea
Prior art keywords
gesture
stroke
state
dfa
states
Prior art date
Application number
KR1020130109123A
Other languages
English (en)
Inventor
Debi Prosad Dogra
Saurabh Tyagi
Original Assignee
삼성전자주식회사
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 삼성전자주식회사 filed Critical 삼성전자주식회사
Publication of KR20140035271A publication Critical patent/KR20140035271A/ko

Links

Images

Classifications

    • 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
    • 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
    • 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/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • 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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

본 발명의 제스쳐 인식 방법은, 센서로부터 적어도 하나의 제스쳐 모션을 포함하는 입력 데이터를 수신하고, 상기 센서에 의해 제스쳐 감지와 연관된 공간을 다수의 블록들로 분할하고, 상기 다수의 블록들을 스테이트들에 대응하도록 할당하고, 상기 수신된 입력 데이터를 기반으로 상기 스테이트들의 제스쳐 특정 시퀀스를 생성하고, 상기 생성된 제스쳐 특정 시퀀스를 기반으로 제스쳐를 인식한다. 또한, 본 발며은 다른 실시 예로서도 가능하다.

Description

제스쳐 인식 방법 및 시스템{METHOD AND SYSTEM FOR GESTURE RECOGNITION}
본 발명의 실시 예에서는 제스쳐 인식에 대한 일반화된 프레임워크(framework)에 관한 것이다.
제스쳐 인식 기술들은 사람의 제스쳐들을 해석하기 위해 널리 사용되고 있다. 제스쳐들은 얼굴, 손, 손가락들, 혹은 다른 바디 모션(body motion)을 통해 만들어질 수 있다. 상기 제스쳐 인식 기술들의 사용은 시스템이 노말(normal) 혹은 특정 제스쳐들을 인식 혹은 식별하는 것을 가능하게 하고, 상기 노말 혹은 특정 제스쳐들을 사용하여 정보를 전달하는 것을 가능하게 하거나, 혹은 디바이스(device) 제어를 가능하게 한다.
기존의 제스쳐 인식 시스템들은 전자 디바이스가 입력 인터페이스(input interface)를 사용하여 사용자로부터의 입력을 캡쳐하는 것을 허여한다.
종래에는 기존 시스템들에 의해 사용되는 상기 제스쳐 인식 기술들 및 알고리즘(algorithm)들은 제스쳐들을 인식하기 위해 규칙들의 미리 정의되어 있는 집합을 사용하고, 상기 제스쳐들은 종종 입력 인터페이스의 타입에 특정적이다. 또한, 규칙들의 동일한 집합은 다른 타입의 제스쳐들을 인식하는데 적용하는 것이 불가능하다. 따라서, 기존 방법들의 대부분은 어플리케이션(application)이 특정적이고, 하나 이상의 오브젝트(object)의 이동을 포함하는 콤플렉스 제스쳐(complex gesture)들을 인식하는 것에 실패한다.
상기에서 설명한 바와 같은 점들을 고려하여, 상기 디바이스에 의해 사용되는 입력 인터페이스와는 관계가 없이, 콤플렉스 제스쳐들을 인식하는 제스쳐 인식 방법에 대한 필요성이 존재한다.
본 발명의 실시예는 결정 유한 오토마타(Deterministic Finite Automata: DFA)를 사용하여 제스쳐들을 인식하는 방법 및 시스템을 제공함에 있다.
본 발명의 다른 실시 예는 사용자 인터페이스와 상관없이 제스쳐들을 인식하는 일반화된 프레임워크를 제공함에 있다.
본 발명의 또 다른 실시 예는 콤플렉스 제스쳐들을 인식하는 방법 및 시스템을 제공함에 있다.
본 발명의 실시 예에 따른 방법은, 제스쳐 인식 방법에 있어서, 센서로부터 적어도 하나의 제스쳐 모션을 포함하는 입력 데이터를 수신하는 과정과, 상기 센서에 의해 제스쳐 감지와 연관된 공간을 다수의 블록들로 분할하는 과정과, 상기 다수의 블록들을 스테이트들에 대응하도록 할당하는 과정과, 상기 수신된 입력 데이터를 기반으로 상기 스테이트들의 제스쳐 특정 시퀀스를 생성하는 과정과, 상기 생성된 제스쳐 특정 시퀀스를 기반으로 제스쳐를 인식하는 과정을 포함한다.또한, 본 발명의 실시 예에 따른 상기 제스쳐 인식 방법은 결정 유한 오토마타(Deterministic Finite Automata: DFA)를 사용하여 제스쳐 특정 DFA를 생성하며, 상기 적어도 하나의 제스쳐 모션은 적어도 하나의 스트로크를 기반으로 하고, 상기 적어도 하나의 스트로크는 유효 스트로크와 무효 스트로크 중 적어도 하나를 포함한다.
또한, 본 발명의 실시 예에 따른 상기 생성된 제스쳐 특정 시퀀스를 기반으로 제스쳐를 인식하는 과정은, 제스쳐 입력을 수신하는 과정과, 상기 알파벳(alphabet)을 기반으로 상기 제스쳐의 심볼(symbol)의 스트링(string)을 생성하는 과정과, 상기 심볼의 스트링이 상기 생성된 제스쳐 특정 시퀀스와 일치하는지 여부를 결정하는 과정과, 상기 심볼의 스트링이 상기 생성된 제스쳐 특정 시퀀스와 일치한다고 결정하는 것에 대한 응답으로 상기 제스쳐를 인식하는 과정을 포함한다.
또한, 본 발명의 실시 예에 따른 또 다른 방법은, 상기 사용자에 의해 수행되는 스트로크들의 연속적인 표현을 사용하여 멀티-스트로크(multi-stroke) 제스쳐를 인식하는 과정을 포함한다. 또한, 상기 적어도 하나의 제스쳐 모션에 따라 송신 및 수신 명령을 사용하여 첫 번째 디바이스(device)와 두 번째 디바이스간의 오브젝트(object)들을 전달하는 과정을 포함한다.
본 발명의 실시 예에 따른 시스템은, 제스쳐 인식 시스템에 있어서, 센서로부터 적어도 하나의 제스쳐 모션을 포함하는 입력 데이터를 수신하는 인터페이스 모듈(Interface Module)과, 상기 센서에 의해 제스쳐 감지와 연관된 공간을 다수의 블록들로 분할하고, 상기 다수의 블록들을 스테이트들에 대응하도록 할당하고, 상기 수신된 입력 데이터를 기반으로 상기 스테이트들의 제스쳐 특정 시퀀스를 생성하는 결정 유한 오토마타(Deterministic Finite Automata: DFA) 모듈과, 상기 생성된 제스쳐 특정 시퀀스를 기반으로 제스쳐를 인식하는 제스쳐 인식 모듈을 포함한다. 또한, 상기 DFA 모듈은 상기 사용자에 의해 수행되는 유효 및 무효 스트로크를 포함하는 알파벳과, 스테이트 천이 규칙과, 초기 스테이트와, 최종 스테이트들의 집합과, 유한 스테이트들의 집합에 따라 제스쳐 특정 DFA를 구성하도록 구성된다. 상기 DFA 모듈은 또한 상기 스트로크의 연속적인 표현을 사용하여 멀티-스트로크(multi-stroke) 제스쳐를 인식하도록 구성된다. 또한, 상기 시스템은 상기 생성된 제스쳐 특정 시퀀스에 따라 제스쳐를 인식하는 제스쳐 인식 모듈과 상기 생성된 제스쳐 특정 시퀀스를 저장하도록 구성되는 저장 모듈을 포함한다.
또한, 상기 시스템은 상기 인터페이스 모듈을 사용하여 상기 사용자로부터 제스쳐 입력을 수신하고, 상기 DFA 모듈을 사용하여 상기 알파벳에 따라 상기 제스쳐의 심볼(symbol)의 스트링(string)을 구성하는 것을 포함한다. 또한, 상기 시스템은 상기 제스쳐 인식 모듈을 사용하여 상기 심볼의 스트링이 상기 생성된 제스쳐 특정 시퀀스와 일치하는지 여부를 결정하는 것을 포함한다. 또한, 상기 시스템은 상기 심볼의 스트링이 상기 생성된 제스쳐 특정 시퀀스와 일치한다고 결정하는 것에 대한 응답으로 상기 제스쳐를 인식하는 것을 포함한다.
또한, 상기 시스템은 상기 인식된 제스쳐에 따라 송신 및 수신 명령을 사용하여 첫 번째 디바이스(device)와 두 번째 디바이스간의 오브젝트(object)들을 전달하는 것을 포함한다.
여기서, 본 발명의 실시예들의 이런 측면들 및 다른 측면들은 하기의 설명 및 첨부 도면들과 함께 고려될 경우 보다 잘 인식되고 이해될 수 있을 것이다. 그러나, 하기의 설명이 바람직한 실시예들 및 그에 해당하는 다수의 특정 구체 사항들을 나타내지만 이는 도시를 위한 방식으로서 주어질 뿐 한정되지는 않는다는 것이 이해되어야만 할 것이다. 여기서는, 많은 변경들 및 수정들이 본 발명의 실시예들의 범위 내에서 본 발명의 실시예들의 사상에서 벗어남이 없이 이루어질 것이고, 여기서 본 발명의 실시예들은 그와 같은 모든 수정들을 포함한다.
본 발명은 DFA를 사용하여 제스쳐를 인식함으로써, 입력 인터페이스의 타입에 제한되지 않을 수 있다.
또한, 본 발명은 디바이스에 의해 사용되는 입력 인터페이스와는 관계 없이 콤플렉스 제스쳐들을 인식할 수 있다.
본 개시는 첨부 도면들을 참조하여 설명되며, 상기 첨부 도면들에서 동일한 참조 부호들은 다양한 도면들에서 해당하는 부분들을 나타낸다. 여기서, 본 실시예들은 도면들을 참조하여 하기의 설명으로부터 보다 잘 이해될 수 있을 것이다:
도 1은 본 발명의 다양한 실시예들에 따른 다수의 모듈들을 가지는 장치를 도시하고 있는 도면,
도 2는 본 발명의 다양한 실시예들에 따른 서브 공간들로 분할된 가상 공간을 도시하고 있는 도면,
도 3은 본 발명의 다양한 실시예들에 따른 간략화된 단일-스트로크 제스쳐 인식을 사용하는 알파벳 구성을 도시하고 있는 도면,
도 4는 본 발명의 다양한 실시예들에 따른 제스쳐 인식을 위한 결정 유한 오토마타(Deterministic Finite Automata: DFA)를 구성하는 플로우 다이어그램을 도시하고 있는 도면,
도 5는 본 발명의 다양한 실시예들에 따른, 상기 구성된 DFA를 사용하여 입력 제스쳐를 유효화시키는 플로우 다이어그램을 도시하고 있는 도면,
도 6은 본 발명의 다양한 실시예들에 따른 상기 단일-스트로크 제스쳐들에 대한 DFA를 나타내는 바람직한 스테이트 천이 다이어그램을 도시하고 있는 도면,
도 7은 본 발명의 바람직한 실시예들에 따른, 콤플렉스 제스쳐를 설명하기 위해 설계되는 상기 DFA의 바람직한 스테이트 천이 다이어그램을 도시하고 있는 도면,
도 8은 본 발명의 다양한 실시예들에 따른 상기 도 7에서 설명되어 있는 바와 같은 상기 DFA의 플로우 다이어그램을 도시하고 있는 도면,
도 9는 본 발명의 다양한 실시예들에 따른, 멀티-스트로크 제스쳐 인식 프레임워크에서 가능한 시나리오(scenario)들을 도시하고 있는 도면
도 10은 본 발명의 다양한 실시예들에 따른, 오브젝트 전달 어플리케이션에서 사용되는 제스쳐 인식의 일반화된 프레임워크를 도시하고 있는 도면,
도 11은 본 발명의 다양한 실시예들에 따른, 상기 도 10에 도시되어 있는 디바이스들간의 오브젝트 전달에 대해 수행되는 제스쳐들에 해당하는 스테이트 천이 다이어그램을 도시하고 있는 도면,
도 12는 본 발명의 다양한 실시예들에 따른 증강 현실(Augmented Reality: AR) 어플리케이션에서 사용되는 제스쳐 인식의 일반화된 프레임워크를 도시하고 있는 도면,
도 13은 본 발명의 다양한 실시예들에 따른 상기 어플리케이션을 구현하는 컴퓨팅 환경(computing environment)을 도시하고 있는 도면이다.
본 발명의 개시된 실시예들 및 그것의 여러 특징 및 바람직한 세부사항에 대하여 첨부된 도면에 예시되고 하기의 상세한 설명에 기술된 바와 같은 비제한적인 실시예들을 참조하여 이하 더 상세히 설명된다. 공지의 구성요소들과 프로세싱 기술에 대한 설명은 여기에 개시된 실시예들에 대한 이해를 불필요하게 흐리게 하지 않도록 가급적 생략된다. 여기에 사용된 예들은 그 실시예들이 구현되는 방법에 대한 이해를 돕기 위해 그리고 당해 기술분야의 전문가가 그 실시예들을 실시할 수 있도록 하기 위한 목적으로 제공되는 것으로서, 그 예들은 개시된 실시예들의 범위를 제한하는 것으로 해석되어서는 안 된다.
본 발명의 실시예에서는 결정 유한 오토마타(Deterministic Finite Automata: DFA)를 사용하여 제스쳐(gesture) 인식을 위한 일반화된 프레임워크(generalized framework)를 제공하는 방법 및 시스템을 제공한다. 본 발명의 실시예에서 가상 공간은 서브-공간(sub-space)들로 구분되고, DFA 모듈(module)의 독립 스테이트(state)들에 할당된다. 단일 혹은 멀티 스트로크(multi stroke)들의 표현은 제스쳐에 관련되는 포인터(pointer)의 오리엔테이션(orientation) 및 이동을 기반으로 결정된다. 그리고, 본 발명의 실시 예에서는 상기 단일 혹은 멀티 스트로크 기반 제스쳐들을 식별하는 DFA 기반의 방법을 제공한다. 상기 DFA 기반의 방법은 상기 제스쳐에 연관되는 포인터의 가능한 이동을 어드레스(address)하는 가능 스트로크들의 완전 집합을 제공한다. 또한, 상기 DFA 모듈은 사용자에 의해 수행되는 콤플렉스 제스쳐(complex gesture)를 나타내는 제스쳐 특정 DFA를 구성하기 위해 사용된다. 상기 구성된 FDA는 사전 정의 제스쳐를 나타내고, 상기 사전 정의 제스쳐는 디바이스(device)에 의해 캡쳐(capture)되는 입력 제스쳐를 인식하는 제스쳐 인식 모듈에 의해 사용된다.
상세한 설명 전체에 걸쳐, 용어 “서브 공간” 및 “블록(block)”은 번갈아가면서 사용될 수 있다.
그리고, 상세한 설명 전체에 걸쳐, 용어 “콤플렉스 제스쳐” 및 “멀티 스트로크 제스쳐”는 번갈아가면서 사용될 수 있다.
또한, 상세한 설명 전체에 걸쳐, 용어 “무효 스트로크(invalid stroke)” 및 수용 불가 스트로크(unacceptable stroke)는 번갈아가면서 사용될 수 있다.
본 발명의 실시예에서 상기 일반화된 프레임워크는 상기 사용자에 의해 실행되는 상기 제스쳐들을 인식하는 입력 방법들을 향상시킨다. 상기 제스쳐 인식을 위한 일반화된 프레임워크는 다양한 어플리케이션(application)들 일 예로, 인증, 오브젝트(object) 이동, 증강 현실(augmented reality), 게이밍(gaming), 사용자 인터페이스 설계(user interface designing), 혹은 다른 어플리케이션과 같은 다양한 어플리케이션들에 대해서 사용될 수 있다. 이와 유사하게 상기 제스쳐 인식을 위한 일반화된 프레임워크는 다양한 전자 시스템들 일 예로, 이동 전화기들과, 개인 정보 단말기(Personal Digital Assistant: PDA)와, 증강 현실 시스템들, 게이밍 시스템들, 혹은 다른 시스템과 같은 다양한 전자 시스템들에서 사용될 수 있다.
이제부터 도면들을 참조하여, 특히 유사한 참조 번호들이 상기 도면들 전체에 걸쳐 일관적으로 해당하는 특징들을 나타내는, 도 1 내지 도 13을 참조하여, 바람직한 실시예들이 도시되어 있다.
도 1은 본 발명의 다양한 실시예들에 따른 다수의 모듈들을 가지는 장치를 도시하고 있는 도면이다.
도 1을 참조하면, 인터페이스 모듈(interface module)(102)과, DFA 모듈(104)과, 제스쳐 인식 모듈(106)과, 디스플레이 모듈(display module)(108) 및 저장 모듈(110)을 포함하는 시스템(100)을 도시하고 있다. 상기 인터페이스 모듈(102)은 현실 제스쳐 공간을 통해 사용자에 의해 수행되는 제스쳐를 캡쳐하기 위한 사용자 인터페이스를 제공하도록 구성될 수 있다. 일 예로 본 발명의 실시 예에서 설명되는 상기 입력 인터페이스 모듈(102)은 터치 스크린(touch screen), 터치 패드(touch pad), 카메라(camera), 조이스틱(joystick) 혹은 다른 입력 인터페이스 모듈이 될 수 있다. 일 예로 본 발명의 실시 예에서 설명되는 상기 제스쳐는 카메라 앞의 손 움직임, 비디오 추적 결과, 터치 스크린 상의 패턴(pattern), 스타일러스(stylus)(혹은 손가락)를 사용하는 터치 패드 혹은 상기 사용자에 의해 생성되는 다른 모션(motion) 혹은 움직임을 포함할 수 있으며, 하지만 이에 한정되지는 않는다.
상기 DFA 모듈(104)은 상기 제스쳐 공간을 다수의 논-오버래핑(non-overlapping) 블록들로 분할되도록 구성될 수 있다. 상기 DFA 모듈(104)은 다른 스테이트들을 포함하도록 구성될 수 있고, 상기 다른 스테이트들은 상기 제스쳐 공간의 상기 다수의 non-overlapping 블록들에 할당된다. 상기 DFA 모듈(104)은 제스쳐 특정 DFA를 생성하기 위해 구성될 수 있다.
상기 제스쳐 인식 모듈(106)은 상기 DFA 모듈(104)을 사용하여 제스쳐 인식을 위한 상기 일반화된 프레임워크를 제공하기 위해 구성될 수 있다. 상기 제스쳐 인식 프레임워크는 상기 장치(100)에 의해 사용되는 상기 인터페이스 모듈(102)에 독립적으로 제공될 수 있다. 상기 디스플레이 모듈(108)은 상기 장치(100)의 다른 디스플레이 기능들과 함께, 상기 디스플레이 스크린(display screen) 상에서 상기 사용자에 의해 수행되는 상기 제스쳐를 디스플레이한다. 상기 저장 모듈(110)은 스탠다드(standard) 메모리 기능들과 함께, 상기 구성된 DFA 및 상기 캡쳐된 사용자 제스쳐를 저장하는 저장 공간을 제공하기 위해 구성될 수 있다. 본 발명의 실시 예에서 설명하는 상기 저장 모듈(110)은 내부 메모리를 포함하거나 혹은 외부 메모리를 사용하도록 구성될 수 있으며, 이에 한정되지 않는다.
도 2는 본 발명의 다양한 실시예들에 따른, 서브 공간들로 분할된 가상 공간을 도시하고 있는 도면이다.
도 2를 참조하면, 상기 현실 제스쳐 공간에 매핑되는 가상 제스쳐 공간을 도시하고 있다. 여기에서 설명되는 상기 현실 제스쳐 공간은 터치 패널(touch panel), 카메라의 뷰(view), 센서(sensor), 혹은 다른 입력 센서(input sensor)를 포함할 수 있다. 전체 사각 가상 공간은 상기 디바이스가 총 M x N개의 서브 공간들을 생성할 수 있도록 M개의 행(row)들과 N개의 열(column)들을 가지는 non-overlapping 블록들로 분할된다. 또한, 이런 서브 공간들은 상기 유산 오토마턴(automaton)의 독립적인 스테이트들에 할당된다.
상기 현실 제스쳐 공간을 통해 상기 사용자에 의해 수행되는 제스쳐가 센싱되고 상기 가상 제스쳐 공간으로 매핑된다. 이후, 상기 제스쳐의 표현은 상기 중개 서브-공간들을 통해 소스(source)(시작) 서브-공간(subspace)으로부터 데스티네이션(destination)(종료) 서브-공간으로의 이동으로서 간략화될 수 있다. 따라서, 상기 장치는 상기 사용자에 의해 수행되는 멀티-스트로크 제스쳐를 추적하는 것을 가능하게 한다. 서브-공간으로부터 인접 서브-공간으로의 상기 포인터의 이동은 단일-스트로크 제스쳐를 나타낸다. 따라서, 상기 소스로부터 상기 데스티네이션으로의 상기 포인터의 이동 동안 상기 사용자에 의해 수행되는 상기 멀티-스트로크 제스쳐는 심벌(symbol)들의 스트링(string)에 의해 나타낼 수 있다. 이 스트링은 모든 단일-스트로크 제스쳐의 시퀀스(sequence)를 포함하고, 상기 모든 단일-스트로크 제스쳐의 시퀀스는 상기 멀티-스트로크 제스쳐를 나타낸다. 일 예에서, 생성되는 서브-공간들의 개수는 상기 사용자 단말기를 기반으로 변경될 수 있다. 더 많은 개수의 서브-공간들은 보다 정확한 제스쳐 인식을 가능하게 할 수 있다. 일 실시예에서, 상기 제스쳐 공간은 non-overlapping 서브-공간들로 분할될 수 있는 형태를 포함할 수 있다.
도 3은 본 발명의 다양한 실시예들에 따른 간략화된 단일-스트로크 제스쳐 인식을 사용하는 알파벳 구성을 도시하고 있는 도면이다.
도 3을 참조하면, 상기 포인터의 가능한 이동을 어드레스(address)하기 위해 제스쳐에서 가능한 단일 스트로크들의 완전한 집합을 도시하고 있다. 도시되어 있는 상기 가능한 단일 스트로크들의 완전한 집합은 일 예로 상기 도 3에 도시되어 있는 바와 같이 a, b, c, d, e, f, g, h가 될 수 있다. 상기 제스쳐에서 이런 가능한 단일 스트로크들은 상기 포인터의 오리엔테이션(orientation) 및 이동을 기반으로 달라질 수 있다. 또한, 상기 도 3은 수용 불가능 스트로크(또한, 번갈아 가면서 포인터의 무효 이동이라고도 칭해질 수 있는) ‘u’를 나타낸다. 일 예에서, 상기 단일-스트로크 제스쳐들의 시퀀스는 멀티-스트로크 제스쳐를 나타낼 수 있다. 또한, 제스쳐 특정 DFA는 멀티-스트로크 제스쳐를 나타내도록 구성될 수 있다.
일 실시예에서, 상기 DFA(M에 의해 나타내지는)는 일반적으로 5개의 튜플(tuple)들로서 정의될 수 있고, 하기 수학식 1을 살펴보면 다음과 같다.
Figure pat00001
상기 수학식 1에서
Figure pat00002
는 상기 알파벳들(유한 심벌들의 집합 혹은 다수의 가능한 입력들)을 나타내고,
Figure pat00003
는 상기 유한 스테이트들의 집합을 나타내고,
Figure pat00004
는 상기 생성 규칙들의 집합(혹은 규칙 천이 테이블(rule transition table))을 나타내고, S는 상기 시작 스테이트을 나타내고,
Figure pat00005
는 최종 스테이트들의 집합(혹은 수락 스테이트들)을 나타낸다.
여기서 설명되는 상기 방법은 상기 도 3에 도시되어 있는 바와 같이 벡터 표현(vector representation)을 가지는 입력 알파벳
Figure pat00006
를 정의한다. 입력 제스쳐의 상기 포인터는 8개의 가능한 서브-공간들의 하나로 진입할 수 있고,
Figure pat00007
= {a, b, c, d, e, f, g, h, u}가 될 수 있도록 심벌들에 의해 표현된다. 여기서, a, b, c, d, e, f, g, h는 가능한(유효) 단일 스트로크들의 상기 집합을 나타내고, 'u'는 무효 혹은 수락 불가능 스트로크와 같은 다른 스트로크를 나타낸다.
상기 도 3에 도시되어 있는 바와 같이, 오른쪽 방향에서 상기 수평 스트로크는 ‘a’이고, 오른쪽 방향에서 상향 대각 스트로크는 ‘b’이고, 수직으로 상향 스트로크는 ‘c’이고, 왼쪽 방향에서 상기 상향 대각 스트로크는 ‘d’이고, 왼쪽 방향에서 상기 수평 스트로크는 ‘e’이고, 왼쪽 방향에서 상기 하향 대각 스트로크는 ‘f’이고, 상기 수직으로 하향 스트로크는 ‘g’이고, 오른쪽 방향에서 상기 하향 대각 스트로크는 ‘h’이고, 이런 정의된 스트로크들과 다른 스트로크는 ‘u’에 의해 표현되는 무효 스트로크이다. 일 실시예에서, 상기 스트로크들을 표현하기 위해 사용되는 심벌들은 사용자 정의 캐릭터(character)들을 가질 수 있다.
도 4는 본 발명의 다양한 실시예들에 따른, 제스쳐 인식을 위한 DFA를 구성하는 플로우 다이어그램(400)을 도시하고 있는 도면이다.
도 4를 참조하면, 상기 플로우 다이어그램(400)에 도시되어 있는 바와 같이, 단계 402에서, 상기 제스쳐 공간은 희망하는 개수의 블록들로 분할된다.
단계 404에서, 상기 합성(콤플렉스) 스트로크들을 기반으로 하는 가능한 제스쳐 맵(map)은 상기 사용자에 의해 수행되는 상기 입력 제스쳐로부터 획득된다. 상기 제스쳐를 수신할 경우, 단계 406에서, 상기 제스쳐 맵을 제시하기 위해 요구되는 스테이트들의 개수가 완료된다. 단계 408에서, 상기 DFA (M)을 정의하기 위해 요구되는 상기 알파벳 ∑가 구성된다. 상기 알파벳 ∑는 상기 무효 스트로크를 포함하는 모든 가능한 단일 스트로크들을 포함한다. 단계 410에서, 사용자 제스쳐에 특정되는 DFA (M)가 구성된다. 상기 DFA (M)는 상기 스테이트 천이 규칙들과, 초기(시작) 스테이트와, 상기 사용자 제스쳐를 기반으로 하는 최종 스테이트들의 집합을 사용하여 구성된다.
일 실시예에서, 상기 방법은 상기 장치가 상기 다수의 사용자 제스쳐들에 상응하게 다수의 DFA들을 구성하는 것을 가능하게 한다. 각 구성된 DFA는 다른 제스쳐를 나타내고, 해당하는 기능을 실행할 수 있다.
도 5는 본 발명의 다양한 실시예들에 따른, 상기 구성된 DFA를 사용하여 입력 제스쳐를 유효화시키는 플로우 다이어그램(500)을 도시하고 있는 도면이다.
도 5를 참조하면, 단계 502에서, 상기 장치(100)는 상기 사용자에 의해 수행되는 상기 입력 제스쳐를 수락한다. 단계 504에서, 알파벳 ∑의 심볼들의 조합을 포함하는 스트링은 상기 입력 제스쳐와 상기 알파벳 ∑의 심벌들을 매핑하는 것을 기반으로 구성된다. 상기 스트링의 이런 심벌들은 상기 멀티-스트로크 제스쳐를 단일-스트로크 제스쳐들의 시퀀스로서 나타낸다. 심벌들의 상기 구성된 스트링은 상기 수행되는 입력 제스쳐를 나타낸다.
단계 506에서, 상기 심벌들의 스트링은 상기 도 4의 상기 구성된 DFA와 비교된다. 여기에서 설명되는 상기 구성된 DFA는 미리 정의되어 있는 혹은 등록되어 있는 제스쳐의 상기 DFA이다. 상기 입력 스트링이 상기 DFA에 의해 수락될 경우, 단계 508에서, 상기 제스쳐가 인식되고, 상기 장치(100)는 상기 입력 제스쳐에 대해 미리 정의되어 있는 기능을 실행할 수 있다. 단계 508에서, 불일치를 결정할 경우, 상기 장치는 상기 단계들 502-508을 반복한다.
도 6은 본 발명의 다양한 실시예들에 따른, 상기 단일-스트로크 제스쳐들에 대한 DFA를 나타내는, 바람직한 스테이트 천이 다이어그램을 도시하고 있는 도면이다.
상기 도 6을 참조하면, 각 개별 스테이트에 할당되는 9개의 non-overlapping 서브-공간들을 가지는 분할된 가상 제스쳐 공간(602)과, 상기 DFA의 스테이트 천이 다이어그램(604)의 간략화된 표현을 도시하고 있다. 상기 분할된 가상 공간(602)의 블록들은 상기 도 6에 도시되어 있는 바와 같이 q0, q1, q2, q3, q4, q5, q6, q7 및 q8과 같은 스테이트들에 할당된다. 상기 스테이트 q9는 블록화된다. 그리고, 상기 스테이트 q9는 상기 무효 스트로크에 할당되는 무효 스테이트이다. 모두 가능한 제스쳐들은 상기 스테이트 q0에 할당되어 있는 중앙 블록으로부터 시작된다. 하지만, 상기 중앙 블록은 DFA의 시작 스테이트를 나타내는 ‘S’에 의해 정의된다. 그리고, 상기 중앙 블록은 상기 블록 q0으로부터 시작할 경우, 8개의 가능한 제스쳐들이 존재할 수 있다(시작 블록 S/q0 로부터 다른 인접 블록으로의 단일 스트로크 이동). 다른 단일 스트로크 제스쳐들은 스테이트 q0로부터 스테이트 q1로의, 스테이트 q0로부터 스테이트 q2로의, 스테이트 q0로부터 스테이트 q3로의, 스테이트 q0로부터 스테이트 q4로의, 스테이트 q0로부터 스테이트 q5로의, 스테이트 q0로부터 스테이트 q6로의, 스테이트 q0로부터 스테이트 q7로의, 스테이트 q0로부터 스테이트q8로의 포인터의 이동을 포함한다. 상기 포인터의 다른 이동은 상기 스테이트 천이가 상기 블록화된 스테이트 q9로 진입하도록 한다.
상기 DFA의 스테이트 천이 다이어그램(604)은 상기 분할된 가상 공간(602) 내의 상기 8개의 수락 가능한 이벤트들(단일 스트로크들)을 나타낸다. 상기 DFA(604)의 스테이트 천이 다이어그램은:
Figure pat00008
와 같이 DFA (M)을 정의한다.
여기서,
Figure pat00009
= {a, b, c, d, e, f, g, h, u}이다. 상기 캐릭터들 a, b, c, d, e, f, g, h은 상기 유효 스트로크들을 나타낸다. 상기 캐릭터 'u'는 수락 불가능한 스트로크를 나타내고, 상기 수락 불가능한 스트로크는 상기 스테이트 천이가 상기 블록화된 스테이트로 진입하도록 한다.
상기 가능한 스테이트들의 집합은
Figure pat00010
= {q0, q1, q2, q3, q4, q5, q6, q7, q8, q9}에 의해 주어진다. 상기 스테이트 q0는 상기 시작 스테이트(S)를 나타낸다.
상기 수락 가능한 스테이트들의 집합은
Figure pat00011
= {q1, q2, q3, q4, q5, q6, q7, q8}에 의해 주어지고, 상기 도 6에서 상기 DFA의 생성 규칙들은
Figure pat00012
와 같이 정의된다.
상기 DFA(604)의 스테이트 천이 다이어그램을 위한 생성 규칙들은 다음과 같다:
δ(S, a) = q5(벡터 ‘a’의 방향에서 상기 S로부터의 포인터 이동이 상기 스테이트 천이가 상기 스테이트 q5로 진입하는 것을 허여하는 규칙 스테이트들, 여기서, 상기 스테이트 q5는 수락 가능 스테이트임),
δ(S, b) = q3(벡터 ‘b’의 방향에서 상기 S로부터의 포인터 이동이 상기 스테이트 천이가 상기 스테이트 q3으로 진입하는 것을 허여하는 규칙 스테이트들, 여기서, 상기 스테이트 q3은 수락 가능 스테이트임),
δ(S, c) = q2(벡터 ‘c’의 방향에서 상기 S로부터의 포인터 이동이 상기 스테이트 천이가 상기 스테이트 q2로 진입하는 것을 허여하는 규칙 스테이트들, 여기서, 상기 스테이트 q2는 수락 가능 스테이트임),
δ(S, d) = q1(벡터 ‘d’의 방향에서 상기 S로부터의 포인터 이동이 상기 스테이트 천이가 상기 스테이트 q1로 진입하는 것을 허여하는 규칙 스테이트들, 여기서, 상기 스테이트 q1은 수락 가능 스테이트임),
δ(S, e) = q4(벡터 ‘e’의 방향에서 상기 S로부터의 포인터 이동이 상기 스테이트 천이가 상기 스테이트 q4로 진입하는 것을 허여하는 규칙 스테이트들, 여기서, 상기 스테이트 q4는 수락 가능 스테이트임),
δ(S, f) = q6(벡터 ‘f’의 방향에서 상기 S로부터의 포인터 이동이 상기 스테이트 천이가 상기 스테이트 q6으로 진입하는 것을 허여하는 규칙 스테이트들, 여기서, 상기 스테이트 q6은 수락 가능 스테이트임),
δ(S, g) = q7(벡터 ‘g’의 방향에서 상기 S로부터의 포인터 이동이 상기 스테이트 천이가 상기 스테이트 q7으로 진입하는 것을 허여하는 규칙 스테이트들, 여기서, 상기 스테이트 q7은 수락 가능 스테이트임),
δ(S, h) = q8(벡터 ‘h’의 방향에서 상기 S로부터의 포인터 이동이 상기 스테이트 천이가 상기 스테이트 q8로 진입하는 것을 허여하는 규칙 스테이트들, 여기서, 상기 스테이트 q8은 수락 가능 스테이트임),
δ(S, u) = q9(다른 방향 벡터 ‘u’에서 상기 S로부터 상기 포인터 이동이 상기 스테이트 천이가 상기 스테이트 q9로 진입하는 것을 허여하는 규칙 스테이트들, 여기서, 상기 스테이트 q9S는 수락 불가능 스테이트임).
하기와 같이 스테이트화되는 규칙들은 a, b, c, d, e, g, f, h, 혹은 u와 같은 벡터의 방향에서 상기 q0와 다른 스테이트(상기 스테이트들 q1, q2, q3, q4, q5, q6, q7, q8를 포함하는)로부터 시작되는 스트로크를 나타내고, 상기 스테이트 천이가 상기 수락 불가능 스테이트를 나타내는 상기 스테이트 q9로 진입하는 것을 허여한다.
δ(q1, a | b | c | d |e | f | g | h | u) = q9
δ(q2, a | b | c | d |e | f | g | h | u) = q9
δ(q3, a | b | c | d |e | f | g | h | u) = q9
δ(q4, a | b | c | d |e | f | g | h | u) = q9
δ(q5, a | b | c | d |e | f | g | h | u) = q9
δ(q6, a | b | c | d |e | f | g | h | u) = q9
δ(q7, a | b | c | d |e | f | g | h | u) = q9
δ(q8, a | b | c | d |e | f | g | h | u) = q9
δ(q9, a | b | c | d |e | f | g | h | u) = q9
상기 스테이트 천이가 블록화된 스테이트로 진입하기 때문에, 다른 추가적인 이동(스트로크)는 무효 스트로크로서 고려되고, 상기 스테이트 천이는 상기 블록화된 스테이트 q9에 유지된다.
도 7은 본 발명의 바람직한 실시예들에 따른, 콤플렉스 제스쳐를 설명하기 위해 설계되는 상기 DFA의 바람직한 스테이트 천이 다이어그램을 도시하고 있는 도면이다.
도 7을 참조하면, 콤플렉스 제스쳐가 매핑되는 9개의 블록들로 분할되는 가상 제스쳐 공간(702), DFA의 스테이트 천이 다이어그램(704) 및 일련의 스트로크들 q1 -> q4 -> q0 -> q5 ->q8을 포함하는 콤플렉스 제스쳐 혹은 멀티 스트로크 제스쳐를 도시하고 있다. 이런 단일 스트로크들은 상기 중개 서브-공간들 q4, q0, q5을 통해 상기 스테이트 q1에 의해 나타내지는 서브-공간으로부터 상기 스테이트 q8에 의해 나타내지는 서브-공간으로의 상기 제스쳐 포인터의 이동을 나타낸다. 상기 콤플렉스 제스쳐는 상기 q1에서 시작되고, 상기 스트로크 g의 방향에서 이동하고 상기 스테이트 q4로 진입하고, 그리고 나서 상기 스트로크 a의 방향에서 이동하고 상기 스테이트 q0로 진입하고, 또한 상기 스트로크 a의 방향에서 이동하고 그리고 나서 상기 스테이트 q5로 진입하고, 따라서 상기 스트로크 g의 방향에서 이동하고 상기 최종 수락 가능 스테이트 q8로 진입한다.
상기 도 6의 콤플렉스 제스쳐에 대한 상기 DFA (M1)는 M1 = {∑ , Q, δ, S, QF}에 의해 표현될 수 있고, 여기서 ∑는 설명된 바와 같이 알파벳들의 집합이고, ∑={a, b, c, d, e, f, g, h, u}이고, Q ={q1, q4, q0, q5, q8, q9}는 상기 스테이트들의 집합이고, S = q1는 상기 시작 스테이트이고 QF = {q8}는 상기 최종 스테이트들(혹은 수락 가능 스테이트)의 집합이고, δ는 하기와 같이 정의되어 있는 생성 규칙들의 집합이다:
δ (q1, g) = q4
δ (q1, a | b | c | d | e | f | h | u) = q9
δ (q4, a) = q0
δ (q4, b | c | d | e | f | g | h | u) = q9
δ (q0, a) = q5
δ(q0, b | c | d | e | f | g | h | u) = q9
δ (q5, g) = q8
δ (q5, a | b | c | d | e | f | h | u) = q9
δ (q8, a | b | c | d | e | f | g | h | u) = q9
δ (q9, a | b | c | d | e | f | g | h | u) = q9
상기 스테이트 천이는 상기 규칙 테이블에 정의되어 있는 바와 같은 규칙들에 상응하게 상기 수락 불가능 스테이트 q9로 진입한다. 상기 스테이트 천이는 블록화된 스테이트로 진입할 경우, 임의의 벡터의 방향에서 임의의 추가적인 스트로크는 무효 스트로크이고, 상기 스테이트 천이는 상기 블록화된 스테이트 q9에 유지된다.
도 8은 본 발명의 다양한 실시예들에 따른, 상기 도 7에서 설명되어 있는 바와 같은 상기 DFA의 플로우 다이어그램(800)을 도시하고 있는 도면이다.
도 8을 참조하면, 상기 플로우 다이어그램(800)은 상기 도 7에 나타낸 바와 같이 상기 콤플렉스 제스쳐 q1 -> q4 -> q0 -> q5 ->q8 의 확인(인식) 동안 수행되는 단계들을 나타낸다. 상기 사용자는 제스쳐를 수행하고, 상기 제스쳐는 상기 인터페이스 모듈(102)에 의해 캡쳐된다. 상기 제스쳐는 상기 분할된 가상 제츠셔 공간에 매핑된다. 상기 알파벳 ∑을 사용하는 심벌들의 스트링은 제스쳐에서 단일 스트로크들의 상기 시퀀스를 상기 알파벳 ∑의 상기 벡터들 a, b, c, d, e, f, g, h, u에 매핑함으로써 생성된다.
단계 802에서, 상기 알파벳 매핑을 기반으로 하는 심벌들의 스트링이 분석되고, 상기 스테이트 천이는 상기 수신된 심벌들의 스트링에 따라 상기 시작 스테이트로 진입한다. 일 예에서, 유효 제스쳐로 인식될 제스쳐에 대한 심벌들의 스트링은 상기 도 7의 스테이트 천이 다이어그램에서 설명된 바와 같이 g, a, a, g이다.
단계 804에서, 상기 시작 스테이트가 확인된다. 단계 806에서, 상기 시작 스테이트가 q1임을 확인한 것에 대한 응답으로, 첫 번째 심벌은 수락되고, 그렇지 않을 경우 상기 스테이트 천이가 단계 826에 도시되어 있는 바와 같이 블록화된 스테이트 q9로 진입한다.
단계 808에서, 상기 스트링의 수락된 첫 번째 심벌은 상기 알파벳 심벌 ‘g’를 가지고 확인된다. 단계 810에서, 상기 첫 번째 심벌이 ‘g’라는 것을 확인하는 것에 대한 응답으로, 상기 스테이트 천이는 상기 스테이트 q4로 진입하고, 상기 스트링의 두 번째 심벌을 수락한다. 단계 826에서, 상기 첫 번째 심벌이 ‘g’가 아니라는 것을 확인하는 것에 대한 응답으로, 상기 스테이트 천이는 상기 블록화된 스테이트 q9로 진입한다.
단계 812에서, 두 번째 심벌이 확인된다. 상기 두 번째 심벌이 ‘a’일 경우, 단계 814에서, 상기 스테이트 천이는 상기 스테이트 q0로 진입한다. 단계 826에서, 상기 두 번째 심벌이 ‘a’가 아니라는 것을 확인하는 것에 응답하여, 상기 스테이트 천이는 상기 블록화된 스테이트 q9로 진입한다.
단계 816에서, 세 번째 심벌이 확인된다. 상기 세 번째 심벌이 ‘a’일 경우, 단계 818에서, 상기 실행은 상기 스테이트 q5로 진입한다. 단계 826에서, 상기 세 번째 심벌이 ‘a’가 아니라는 것을 확인한 것에 대한 응답으로, 상기 스테이트 천이는 상기 블록화된 스테이트 q9로 진입한다.
단계 820에서, 네 번째 심벌이 확인된다. 단계 822에서, 상기 네 번째 심벌이 ‘g’라는 것을 확인하는 것에 대한 응답으로, 상기 스테이트 천이는 상기 스테이트 q8로 진입한다. 단계 826에서, 상기 네 번째 심벌이 ‘g’가 아니라는 것을 확인하는 것에 대한 응답으로, 상기 스테이트 천이는 블록화된 스테이트 q9로 진입한다. 상기 모든 심벌들에 대한 성공적인 확인시, 상기 실행은 상기 입력 제스쳐를 인식한다.
도 8을 참조하여 설명되는 다양한 단계들은 제시되어 있는 순서대로 수행될 수 있고, 혹은 다른 순서대로 수행될 수 있거나 혹은 동시에 수행될 수 있다. 또한, 일부 실시예들에서, 상기 도 8에 리스트되어 있는 일부 단계들은 본 발명의 범위로부터 벗어남이 없이 생략되거나 혹은 추가될 수 있다.
도 9는 본 발명의 다양한 실시예들에 따른, 멀티-스트로크 제스쳐 인식 프레임워크에서 가능한 시나리오(scenario)들을 도시하고 있는 도면이다.
상기 도 9를 참조하면, 상기 멀티-스트로크 제스쳐들의 가능한 시나리오들과 함께 non-overlapping 블록들로 분할되는 가상 공간을 도시하고 있다. 상기 도 3에서 설명되어 있는 바와 같은 시나리오와 함께 상기 도 9에 도시되어 있는 여덟 번째 시나리오는 임의의 멀티-스트로크 기반 제스쳐의 경계 조건들을 나타낸다.
도 10은 본 발명의 다양한 실시예들에 따른, 오브젝트 전달 어플리케이션에서 사용되는 제스쳐 인식의 일반화된 프레임워크를 도시하고 있는 도면이다.
도 10을 참조하면, 9개의 non-overlapping 블록들로 분할되는 가상 공간들과, 상기 블록화된 스테이트 q9와 함께 해당하는 9개의 스테이트들 q0 내지 q8를 가지는 디바이스(device)들(1000, 1002)을 도시하고 있다. 상기 디바이스들(1000, 1002)은 임의의 유용한 통신 채널을 통해 서로 통신할 수 있다. 상기 디바이스(1000)의 가상 공간은 스테이트들 q1 -> q4 -> q6 -> q7-> q8 -> q5 -> q3를 가지는 멀티 스트로크 제스쳐를 도시하고 있다. 상기 디바이스(1002)의 가상 공간은 스테이트들 q3 -> q0 -> q6를 가지는 멀티 스트로크 제스쳐를 도시하고 있다. 상기 디바이스들(1000, 1002)에 대해서, 각 제스쳐들에 해당하는 DFA가 구성될 수 있다. 사용자는 상기 제스쳐 q1 -> q4 -> q6 -> q7-> q8 -> q5 -> q3를 수행함으로써 상기 디바이스(1000)로부터의 오브젝트를 송신할 수 있다. 상기 사용자에 의해 수행되는 유효 제스쳐는 송신 명령을 실행하고, 선택된 오브젝트는 상기 통신 채널을 통해 송신된다. 사용자는 상기 디바이스(1002) 상에서 유효 제스쳐 q3 -> q0 -> q6를 수행할 수 있고, 상기 디바이스(1002)는 수신 명령을 실행하고 상기 통신 채널을 통해 상기 디바이스(1000)에 의해 송신된 상기 오브젝트를 수신한다.
도 11은 본 발명의 다양한 실시예들에 따른, 상기 도 10에 도시되어 있는 디바이스들간의 오브젝트 전달에 대해 수행되는 제스쳐들에 해당하는 스테이트 천이 다이어그램을 도시하고 있는 도면이다.
도 11을 참조하면, DFA의 스테이트 천이 다이어그램(1102)은 제스쳐 명령을 송신하는 것에 해당하고, DFA의 스테이트 천이 다이어그램(1104)은 제스쳐 명령을 수신하는 것에 해당한다. 상기 스테이트 천이 다이어그램(1102)은 상기 제스쳐를 송신하는 것에 해당하는 상기 DFA를 나타내고, 시작 스테이트 q1를 정의한다. 상기 유효 스트로크 ‘g’는 상기 스테이트 천이가 스테이트 q4로 진입하는 것을 허여할 수 있다. a, b, c, d, e, f, h, u와 같은 다른 스트로크는 상기 스테이트 천이가 상기 수락 불가 스테이트 q9로 진입하는 것을 허여할 수 있다. 상기 두 번째 스트로크가 ‘g’일 경우, 상기 스테이트 천이는 상기 스테이트 q6로 진입할 수 있고, 이와는 달리 모든 다른 스트로크들에 대해서, 상기 스테이트 천이는 상기 수락 불가 혹은 상기 블록화된 스테이트 q9로 진입할 수 있다. ‘a’와 같은 세 번째 스트로크를 가지는 상기 스테이트 q6에서, 상기 스테이트 천이는 상기 스테이트 q7로 진입할 수 있고, 그렇지 않을 경우 상기 블록화된 스테이트 q9로 진입할 수 있다. 네 번째 스트로크 ‘a’를 가지는 q7에서, 상기 스테이트 천이는 상기 스테이트 q8로 진입하고, 그렇지 않을 경우 다른 스트로크에 대해서, 상기 스테이트 천이는 상기 블록화된 스테이트 q9로 진입한다. 다섯 번째 스트로크 ‘c’를 가지는 상기 스테이트 q8에서, 상기 스테이트 천이는 상기 스테이트 q5로 진입할 수 있고, 그렇지 않을 경우 상기 블록화된 스테이트 q9로 진입한다. 다섯 번째 스트로크 ‘c’를 가지는 상기 스테이트 q5에서, 상기 스테이트 천이는 상기 최종 스테이트 q3으로 진입하고, 다른 스트로크에 대해서, 상기 스테이트 천이는 상기 블록화된 스테이트 q9로 진입한다. 블록화된 스테이트에 도달할 경우, 수행되는 추가적인 스트로크는 무효 스트로크이고, 상기 스테이트 천이는 상기 블록화된 스테이트 q9에서 유지된다.
상기 스테이트 다이어그램(1104)은 상기 수신 제스쳐에 해당하는 상기 DFA를 나타내고, 상기 시작 스테이트 q3를 정의한다. 상기 유효 스트로크 ‘f’는 상기 스테이트 천이가 상기 스테이트 q0로 진입하는 것을 허여할 수 있다. (a, b, c, d, e, f, h, u)를 포함하는 다른 스트로크는 상기 스테이트 천이가 상기 수락 불가능 스테이트 q9로 진입하는 것을 허여할 수 있다. 스트로크 ‘f’를 가지는 상기 스테이트 q0에서, 상기 스테이트 천이는 상기 스테이트 q6로 진입하고, 그렇지 않을 경우, 다른 스트로크에 대해서, 상기 스테이트 천이는 상기 블록화된 스테이트 q9로 진입할 수 있다. 상기 블록화된 스테이트 q9에 도달할 경우, 상기 사용자에 의해 수행되는 추가적인 스트로크는 무효 스트로크이고, 상기 스테이트 천이는 상기 블록화된 스테이트에서 유지된다.
도 12는 본 발명의 다양한 실시예들에 따른, 증강 현실(Augmented Reality: AR) 어플리케이션에서 사용되는 제스쳐 인식의 일반화된 프레임워크를 도시하고 있는 도면이다.
도 12를 참조하면, 상기 스테이트들 q1 내지 16 및 q17(블록화된 스테이트를 나타내는)에 할당되어 있는 16개의 non-overlapping 블록들을 가지는 디바이스의 분할된 가상 공간(1202)를 도시하고 있다. 상기 제스쳐 인식을 위한 일반화된 프레임워크는 종종 상기 디바이스 스크린상에 디스플레이되어 있는 오브젝트에 관련되는 특정 데이터를 검색하기 위해 필요로 되는 AR 어플리케이션들에서 사용될 수 있다. 상기 분할된 가상 공간(1202)은 제스쳐 q2 -> q6 -> q10 -> q14를 도시하고 있고, 상기 제스쳐 q2 -> q6 -> q10 -> q14는 데이터 검색 동작을 실행할 수 있다. 또한, 상기 도 12는 분할된 가상 공간(1202)에 도시되어 있는 제스쳐에 상응하는 DFA의 스테이트 천이 다이어그램(1204)을 도시하고 있다. 상기 제스쳐에 대한 시작 스테이트는 q2로서 정의된다. 스트로크 ‘g’를 가지는 상기 스테이트 q2에서, 상기 스테이트 천이는 상기 스테이트로 진입할 수 있고, 그렇지 않을 경우 상기 스테이트 천이는 상기 블록화된 스테이트 q17로 진입할 수 있다. 스트로크 ‘g’를 가지는 상기 스테이트 q6에서, 상기 스테이트 천이는 상기 스테이트 q10로 진입할 수 있고, 그렇지 않을 경우, 다른 스트로크에 대해서, 상기 스테이트 천이는 상기 블록화된 스테이트 q17로 진입한다. 스트로크 ‘g’를 가지는 상기 스테이트 q10에서, 상기 스테이트 천이는 상기 스테이트 q14로 진입할 수 있고, 상기 스테이트 q14는 수락 가능(최종) 스테이트를 나타내고, 그렇지 않을 경우 상기 스테이트 천이는 상기 블록 스테이트 q17로 진입할 수 있다. 상기 블록화된 스테이트에 도달할 경우, 상기 사용자에 의해 수행되는 추가적인 스트로크는 무효 스트로크이고, 상기 스테이트 천이는 상기 블록화된 스테이트에서 유지된다. 유사하게, 상기 제스쳐 인식에 대한 일반화된 프레임워크는 다양한 전자 시스템들, 일 예로, 이동 전화기들, 개인 정보 단말기(Personal Digital Assistant: PDA)들, 혹은 다른 시스템에서 사용될 수 있다.
도 13은 본 발명의 다양한 실시예들에 따른, 상기 어플리케이션을 구현하는 컴퓨팅 환경(computing environment)을 도시하고 있는 도면이다.
도 13을 참조하면, 상기 컴퓨팅 환경은 제어부와 연산 논리부(Arithmetic Logic Unit: ALU)을 구비하고 있는 적어도 하나의 처리부(processing unit)과, 메모리(memory)와, 제어부(Control Unit)와, 클럭 칩(clock chip)과, 다수의 네트워킹 디바이스(networking device)들과, 다수의 입출력(Input output: I/O) 디바이스들을 포함한다. 상기 프로세싱 유닛은 상기 알고리즘의 명령어(instruction)들을 프로세싱한다. 상기 프로세싱 유닛은 그 프로세싱을 수행하기 위해 상기 제어 유닛으로부터 명령(command)들을 수신한다. 또한, 상기 명령어들의 실행에 연관되는 논리 및 수학적 동작들은 상기 ALU의 도움으로 컴퓨팅된다.
전체 컴퓨팅 환경은 다중 동종 및/혹은 이종 코어(core)들과, 다른 종류들의 다중 CPU들과, 특정 미디어 및 다른 가속기들로 구성될 수 있다. 상기 프로세싱 유닛은 상기 알고리즘의 명령어들을 프로세싱한다. 상기 프로세싱 유닛은 그 프로세싱을 수행하기 위해서 상기 제어 유닛으로부터의 명령들을 수신한다. 또한, 상기 명령어들의 실행에 연관되는 논리적 및 수학적 동작들은 상기 ALU의 도움을 받아 컴퓨팅될 수 있다. 또한, 상기 다수의 프로세싱 유닛들은 단일 칩(chip)에서 혹은 다중 칩들을 통해 위치할 수 있다.
상기 구현을 위해 요구되는 명령어들 및 코드들로 구성되는 알고리즘은 상기 메모리 유닛 혹은 상기 저장 유닛에 저장되거나 혹은 상기 메모리 유닛 혹은 상기 저장 유닛 모두에 저장된다. 실행시에, 상기 명령어들은 상기 해당하는 메모리 유닛 및/혹은 저장 유닛으로부터 검출될 수 있고, 상기 프로세싱 유닛에 의해 실행될 수 있다. 상기 프로세싱 유닛은 상기 동작들을 동기화시키고, 상기 클럭 칩에 의해 생성되는 타이밍 신호(timing signal)들을 기반으로 상기 명령어들을 실행한다.
하드웨어 구현들의 경우, 다양한 네트워킹 디바이스들 혹은 외부 I/O 디바이스들 상기 컴퓨팅 환경에 연결되어 상기 네트워킹 유닛 및 상기 I/O 디바이스 유닛을 통한 구현을 지원할 수 있다.
본 발명에서 설명되는 실시예들은 적어도 하나의 하드웨어 디바이스에서 실행되고, 상기 엘리먼트들을 제어하는 네트워크 관리 기능들을 실행하는 적어도 하나의 소프트웨어 프로그램을 통해 구현될 수 있다. 도 1 내지 도 13에 도시되어 있는 엘리먼트들은 하드웨어 디바이스, 혹은 하드웨어 디바이스와 소프트웨어 모듈(software module)의 결합 중 적어도 하나가 될 수 있는 블록들을 포함한다.
전술한 특정한 실시예에 대한 설명은 단지 본 발명의 여러 실시예들의 전반적인 십분 기술하기 위한 것으로서, 당해 기술분야의 전문가라면, 현재의 통상적인 지식을 활용함으로써 본 발명의 총괄적인 개념에서 벗어남이 없이, 그러한 특정 실시예들을 다양한 애플리케이션을 위해 용이하게 수정 및/또는 적응시킬 수 있다는 것을 이해할 수 있을 것이며, 그러한 수정과 적응화는 개시된 실시예의 균등물의 의미와 범위 안에서 이해되어야 할 것이다. 여기에 사용된 용어 또는 표현들은 범위를 제한하기 위한 것이 아니라 단지 설명의 목적을 위한 것임을 이해하여야 할 것이다. 따라서 바람직한 실시예의 견지에서 전술한 실시예들이 설명되었지만, 당해 전문가라면 그러한 실시예들은 여기에 기술된 실시예의 정신과 범위 내에서 수정 또는 변경이 가해질 수도 있음을 인식할 수 있을 것이다.

Claims (19)

  1. 제스쳐 인식 방법에 있어서,
    센서로부터 적어도 하나의 제스쳐 모션을 포함하는 입력 데이터를 수신하는 과정과,
    상기 센서에 의해 제스쳐 감지와 연관된 공간을 다수의 블록들로 분할하는 과정과,
    상기 다수의 블록들을 스테이트들에 대응하도록 할당하는 과정과,
    상기 수신된 입력 데이터를 기반으로 상기 스테이트들의 제스쳐 특정 시퀀스를 생성하는 과정과,
    상기 생성된 제스쳐 특정 시퀀스를 기반으로 제스쳐를 인식하는 과정을 포함하는 제스쳐 인식 방법.
  2. 제1항에 있어서,
    상기 제스쳐 인식 방법은 결정 유한 오토마타(Deterministic Finite Automata: DFA)를 사용하여 제스쳐 특정 DFA를 생성하며, 상기 적어도 하나의 제스쳐 모션은 적어도 하나의 스트로크를 기반으로 하고, 상기 적어도 하나의 스트로크는 유효 스트로크와 무효 스트로크 중 적어도 하나를 포함하는 제스쳐 인식 방법.
  3. 제2항에 있어서,
    상기 적어도 하나의 스트로크는 상기 적어도 하나의 제스쳐 모션의 적어도 하나의 오리엔테이션(orientation)을 나타내는 포인터(pointer)를 더 포함 하는 제스쳐 인식 방법.
  4. 제1항에 있어서,
    상기 스테이트들의 제스쳐 특정 시퀀스는 알파벳(alphabet), 스테이트 천이 규칙(state transition rule), 초기 스테이트(initial state), 최종 스테이트(final state)들의 집합 및 유한 스테이트(finite state)들의 집합 중 적어도 하나를 기반으로 구성되고, 상기 알파벳은 상기 유효 스트로크와 무효 스트로크 중 적어도 하나를 포함 하는 제스쳐 인식 방법.
  5. 제1항에 있어서,
    상기 생성된 제스쳐 특정 시퀀스를 기반으로 제스쳐를 인식하는 과정은;
    제스쳐 입력을 수신하는 과정과,
    알파벳(alphabet)을 기반으로 상기 제스쳐의 심볼의 적어도 하나의 스트링(string)을 생성하는 과정과,
    상기 심볼의 적어도 하나의 스트링이 상기 생성된 제스쳐 특정 시퀀스와 일치하는지 여부를 결정하는 과정과,
    상기 심볼의 적어도 하나의 스트링이 상기 생성된 제스쳐 특정 시퀀스와 일치한다고 결정하는 것에 대한 응답으로 상기 제스쳐를 인식하는 과정을 포함하는 제스쳐 인식 방법.
  6. 제1항에 있어서,
    상기 제스쳐의 공간은 상기 센서의 현실 제스쳐 공간과 가상 제스쳐 공간 중 적어도 하나를 포함하는 제스쳐 인식 방법.
  7. 제1항에 있어서,
    적어도 하나의 스트로크의 연속적인 표현을 사용하여 멀티-스트로크(multi-stroke) 제스쳐를 인식하는 과정을 더 포함하는 제스쳐 인식 방법.
  8. 제7항에 있어서,
    상기 적어도 하나의 스트로크는 적어도 하나의 블록을 통해 스팬(span)됨을 특징으로 하는 제스쳐 인식 방법.
  9. 제1항에 있어서,
    상기 적어도 하나의 제스쳐 모션에 따라 첫 번째 디바이스(device)와 두 번째 디바이스간의 적어도 하나의 오브젝트(object)를 전달하는 과정을 더 포함하는 제스쳐 인식 방법.
  10. 제9항에 있어서,
    상기 오브젝트는 상기 적어도 하나의 제스쳐 모션에 따라 상기 첫 번째 디바이스와 상기 두 번째 디바이스 중 하나에 의해 실행되는 송신 명령 및 수신 명령 중 적어도 하나를 사용하여 전달됨을 특징으로 하는 제스쳐 인식 방법.
  11. 제스쳐 인식 시스템에 있어서,
    센서로부터 적어도 하나의 제스쳐 모션을 포함하는 입력 데이터를 수신하는 인터페이스 모듈(Interface Module)과,
    상기 센서에 의해 제스쳐 감지와 연관된 공간을 다수의 블록들로 분할하고, 상기 다수의 블록들을 스테이트들에 대응하도록 할당하고, 상기 수신된 입력 데이터를 기반으로 상기 스테이트들의 제스쳐 특정 시퀀스를 생성하는 결정 유한 오토마타(Deterministic Finite Automata: DFA) 모듈과,
    상기 생성된 제스쳐 특정 시퀀스를 기반으로 제스쳐를 인식하는 제스쳐 인식 모듈을 포함하는 제스쳐 인식 시스템.
  12. 제11항에 있어서,
    상기 DFA 모듈은, DFA를 사용하여 제스쳐 특정 DFA를 생성하며,
    상기 적어도 하나의 제스쳐 모션은 적어도 하나의 스트로크를 기반으로 하고, 상기 적어도 하나의 스트로크는 유효 스트로크와 무효 스트로크 중 적어도 하나를 포함하는 제스쳐 인식 시스템.
  13. 제12항에 있어서,
    상기 적어도 하나의 스트로크는 상기 적어도 하나의 제스쳐 모션의 적어도 하나의 오리엔테이션(orientation)을 나타내는 포인터(pointer)를 더 포함하는 제스쳐 인식 시스템.
  14. 제11항에 있어서,
    상기 DFA 모듈은 상기 알파벳(alphabet), 스테이트 천이 규칙(state transition rule), 초기 스테이트(initial state), 최종 스테이트(final state)들의 집합, 유한 스테이트(finite state)들의 집합 중 적어도 하나를 기반으로 상기 스테이트들의 제스쳐 특정 시퀀스를 구성하고,
    상기 알파벳은 상기 유효 스트로크와 무효 스트로크 중 적어도 하나를 포함하는 제스쳐 인식 시스템.
  15. 제11항에 있어서,
    상기 제스쳐 인식 모듈은 제스쳐 입력을 수신하고, 알파벳(alphabet)을 기반으로 상기 제스쳐의 심볼(symbol)의 적어도 하나의 스트링(string)을 생성하고, 상기 심볼의 적어도 하나의 스트링이 상기 생성된 제스쳐 특정 시퀀스와 일치하는지 여부를 결정하고,
    상기 심볼의 적어도 하나의 스트링이 상기 생성된 제스쳐 특정 시퀀스와 일치한다고 결정하는 것에 대한 응답으로 상기 제스쳐를 인식함을 특징으로 하는 제스쳐 인식 시스템.
  16. 제11항에 있어서,
    상기 구성된 제스쳐 특정 DFA를 저장하도록 구성되는 저장 모듈과,
    상기 제스쳐의 공간을 상기 사용자에게 디스플레이(display)하도록 구성되는 디스플레이 모듈을 더 포함하고,
    상기 제스쳐의 공간은 상기 센서(sensor)의 현실 제스쳐 공간과 가상 제스쳐 공간 중 적어도 하나를 포함하는 제스쳐 인식 시스템.
  17. 제11항에 있어서,
    상기 DFA 모듈은 적어도 하나의 스트로크의 연속적인 표현을 사용하여 멀티-스트로크(multi-stroke) 제스쳐를 인식하도록 더 구성되고,
    상기 적어도 하나의 스트로크는 적어도 하나의 블록을 통해 스팬(span)됨을 특징으로 하는 제스쳐 인식 시스템.
  18. 제11항에 있어서,
    상기 인터페이스 모듈은 상기 적어도 하나의 제스쳐 모션에 따라 첫 번째 디바이스(device)와 두 번째 디바이스간의 적어도 하나의 오브젝트(object)를 전달함을 특징으로 하는 제스쳐 인식 시스템.
  19. 제18항에 있어서,
    상기 오브젝트는 상기 적어도 하나의 제스쳐 모션에 따라 상기 첫 번째 디바이스와 상기 두 번째 디바이스 중 하나에 의해 실행되는 송신 명령 및 수신 명령 중 적어도 하나를 사용하여 전달됨을 특징으로 하는 제스쳐 인식 시스템.
KR1020130109123A 2012-09-13 2013-09-11 제스쳐 인식 방법 및 시스템 KR20140035271A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IN2866/DEL/2012 2012-09-13
IN2866DE2012 2012-09-13

Publications (1)

Publication Number Publication Date
KR20140035271A true KR20140035271A (ko) 2014-03-21

Family

ID=50232784

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130109123A KR20140035271A (ko) 2012-09-13 2013-09-11 제스쳐 인식 방법 및 시스템

Country Status (2)

Country Link
US (1) US20140071076A1 (ko)
KR (1) KR20140035271A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101956608B1 (ko) * 2018-12-18 2019-06-24 코어다 주식회사 제스쳐의 인식 위치에 따른 모션 인식 기기의 제어 방법, 서버, 기기 및 프로그램

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015141260A1 (ja) * 2014-03-17 2015-09-24 株式会社河合楽器製作所 手書き音楽記号認識装置およびプログラム
US10039975B2 (en) 2015-01-13 2018-08-07 Disney Enterprises, Inc. Techniques for representing imaginary participants in an immersive play environment
US9855497B2 (en) 2015-01-20 2018-01-02 Disney Enterprises, Inc. Techniques for providing non-verbal speech recognition in an immersive playtime environment
US10265621B2 (en) 2015-01-20 2019-04-23 Disney Enterprises, Inc. Tracking specific gestures relative to user movement

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2002234123A1 (en) * 2000-12-21 2002-07-01 Cirque Corporation Touchpad code entry system
KR100472429B1 (ko) * 2002-10-18 2005-03-10 삼성전자주식회사 휴대용 무선단말기의 키패드 어셈블리 및 그 제어방법
US20060055669A1 (en) * 2004-09-13 2006-03-16 Mita Das Fluent user interface for text entry on touch-sensitive display
KR100791378B1 (ko) * 2005-12-29 2008-01-07 삼성전자주식회사 다양한 입력 모드를 지원하는 사용자 명령 입력 장치 및이를 이용한 기기
US20090288889A1 (en) * 2008-05-23 2009-11-26 Synaptics Incorporated Proximity sensor device and method with swipethrough data entry
US8390577B2 (en) * 2008-07-25 2013-03-05 Intuilab Continuous recognition of multi-touch gestures
US20110291964A1 (en) * 2010-06-01 2011-12-01 Kno, Inc. Apparatus and Method for Gesture Control of a Dual Panel Electronic Device
US9030498B2 (en) * 2011-08-15 2015-05-12 Apple Inc. Combining explicit select gestures and timeclick in a non-tactile three dimensional user interface

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101956608B1 (ko) * 2018-12-18 2019-06-24 코어다 주식회사 제스쳐의 인식 위치에 따른 모션 인식 기기의 제어 방법, 서버, 기기 및 프로그램

Also Published As

Publication number Publication date
US20140071076A1 (en) 2014-03-13

Similar Documents

Publication Publication Date Title
CN108205655B (zh) 一种关键点预测方法、装置、电子设备及存储介质
CN106104434B (zh) 使用触摸屏设备确定用户利手和定向
WO2020207190A1 (zh) 一种三维信息确定方法、三维信息确定装置及终端设备
CN111401406B (zh) 一种神经网络训练方法、视频帧处理方法以及相关设备
EP3514724B1 (en) Depth map-based heuristic finger detection method
EP3811337A1 (en) System for predicting articulated object feature location
CN111931591B (zh) 用于构建关键点学习模型的方法、装置、电子设备及可读存储介质
US20170003746A1 (en) Hand-gesture input
KR20140035271A (ko) 제스쳐 인식 방법 및 시스템
CN107368820B (zh) 一种精细化手势识别方法、装置及设备
CN107958230A (zh) 人脸表情识别方法及装置
KR102635777B1 (ko) 분자 결합 부위를 검출하기 위한 방법 및 장치, 전자 디바이스 및 저장 매체
JPH11191061A (ja) コンピュータプログラム生成装置及びコンピュータプログラム生成方法
CN110070063A (zh) 目标对象的动作识别方法、装置和电子设备
CN111091182A (zh) 数据处理方法、电子设备及存储介质
US20230244379A1 (en) Key function execution method and apparatus, device, and storage medium
CN113240127A (zh) 基于联邦学习的训练方法、装置、电子设备及存储介质
CN104067318A (zh) 使用三维光栅化的时间连续碰撞检测
KR102209076B1 (ko) 가상 키보드 오타 보정을 위한 방법과 시스템 및 비-일시적인 컴퓨터 판독가능한 기록 매체
WO2021244650A1 (zh) 控制方法、装置、终端及存储介质
CN110809800B (zh) 预测装置、预测方法、预测程序、学习模型输入数据生成装置和学习模型输入数据生成程序
CN116309643A (zh) 人脸遮挡分确定方法、电子设备及介质
CN108133132B (zh) 身份验证方法、系统和电子设备
CN115880719A (zh) 手势深度信息生成方法、装置、设备和计算机可读介质
KR102629188B1 (ko) 셀프 어텐션 기반 문자 인식 방법 및 장치

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid