KR20110120276A - 표준 제스처 - Google Patents

표준 제스처 Download PDF

Info

Publication number
KR20110120276A
KR20110120276A KR1020117017692A KR20117017692A KR20110120276A KR 20110120276 A KR20110120276 A KR 20110120276A KR 1020117017692 A KR1020117017692 A KR 1020117017692A KR 20117017692 A KR20117017692 A KR 20117017692A KR 20110120276 A KR20110120276 A KR 20110120276A
Authority
KR
South Korea
Prior art keywords
filter
gesture
package
value
parameter
Prior art date
Application number
KR1020117017692A
Other languages
English (en)
Other versions
KR101679442B1 (ko
Inventor
스테펜 지. 라타
구도 쯔노다
케빈 게이스너
렐야 마르코비치
대런 베넷
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 KR20110120276A publication Critical patent/KR20110120276A/ko
Application granted granted Critical
Publication of KR101679442B1 publication Critical patent/KR101679442B1/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/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/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
    • 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • User Interface Of Digital Computer (AREA)
  • Image Processing (AREA)
  • Image Analysis (AREA)

Abstract

보완적인 일련의 표준 제스처를 제스처 라이브러리로 그룹화하는 시스템, 방법 및 컴퓨터 판독가능 매체가 개시되어 있다. 제스처가 어떤 컨텍스트에서 서로 빈번히 사용된다는 점에서 또는 제스처의 매개변수가 상호 관련되어 있다는 점에서 제스처가 보완적일 수 있다. 제스처의 매개변수가 제1 값으로 설정되는 경우, 그 제스처 및 제1 값에 의존하는 제스처 패키지 내의 다른 제스처의 모든 다른 매개변수가 제1 값을 사용하여 결정되는 그 자신의 값으로 설정될 수 있다.

Description

표준 제스처{STANDARD GESTURES}
컴퓨터 게임, 멀티미디어 응용 프로그램, 오피스 응용 프로그램 등과 같은 많은 컴퓨팅 응용 프로그램은 사용자가 게임 캐릭터 또는 응용 프로그램의 다른 측면을 조작할 수 있게 해주기 위해 컨트롤을 사용한다. 통상적으로, 이러한 컨트롤은, 예를 들어, 컨트롤러, 리모콘, 키보드, 마우스 등을 사용하여 입력된다. 안타깝게도, 이러한 컨트롤은 배우기가 어려울 수 있으며, 따라서 사용자와 이러한 게임 및 응용 프로그램 간에 장벽을 만든다. 게다가, 이러한 컨트롤은 컨트롤이 사용되는 실제 게임 동작 또는 기타 응용 프로그램 동작과 상이할 수 있다. 예를 들어, 게임 캐릭터로 하여금 야구 방망이를 스윙하게 하는 게임 컨트롤이 야구 방망이를 스윙하는 실제 움직임에 대응하지 않을지도 모른다.
사용자의 골격 움직임을 반영하는 데이터를 수신하고 그 데이터로부터 사용자가 하나 이상의 제스처를 수행했는지를 판정하는 시스템 및 방법이 본 명세서에 개시되어 있다. 표준 제스처의 패키지가 개시되어 있으며, 이 패키지로부터 응용 프로그램 개발자는 제스처 인식을 자신의 응용 프로그램에 포함시킬 수 있다.
예시적인 실시예에서, 제스처 라이브러리(gesture library)는 복수의 제스처를 포함한다. 이들 제스처는, 서로 보완적인 경우, 그룹화되어 제스처 패키지(gesture package)에 넣어질 수 있다. 이 제스처 패키지는 이어서 제스처 인식기 엔진(gesture recognizer engine)에서 사용하기 위해 응용 프로그램에 제공된다. 응용 프로그램은 하나 이상의 제스처 패키지를 이용할 수 있다.
응용 프로그램은 미식축구공 던지기(football throw) 제스처가 인식되기 위해 도달되어야만 하는 팔 속도 최소 임계값과 같은 제스처의 제1 매개변수에 값을 할당할 수 있다. 인식기 엔진은 그 값으로 제1 매개변수를 설정하고, 또한 제1 제스처의 값에 의존하는 그 제스처 또는 제스처 패키지 내의 임의의 다른 제스처의 임의의 다른 매개변수의 값을 설정한다. 예를 들어, 제스처 패키지가 미식축구공 던지기 제스처를 포함하는 스포츠 제스처 패키지인 경우, 패키지는 또한 미식축구공 던지기 제스처와 상호 관련되어 있는 야구 커브볼 던지기 제스처 및 야구 속구 던지기 제스처를 포함할 수 있다. 야구 커브볼 던지기 제스처가 미식축구공 던지기 제스처의 80%의 팔 속도 최소 임계값을 가져야 하고 야구 속구 던지기 제스처가 미식축구공 던지기 제스처의 90%의 팔 속도 최소 임계값을 가져야 하는 것으로 결정되어 있는 경우, 이들 매개변수는 각각 그 값의 80% 및 90%로 설정될 수 있다.
당업자라면 본 개시 내용의 하나 이상의 다양한 측면이 본 개시 내용의 여기에 언급한 측면을 수행하는 회로 및/또는 프로그래밍을 포함할 수 있지만 이들로 제한되지 않고, 이 회로 및/또는 프로그래밍이 시스템 설계자의 설계 선택 사항들에 따라 여기에 언급된 측면들을 수행하도록 구성된 하드웨어, 소프트웨어 및/또는 펌웨어의 거의 모든 조합일 수 있다는 것을 잘 알 수 있다.
이상은 요약이며, 따라서 필요에 따라 상세가 간략화, 일반화 및 생략되어 있다. 당업자라면 이 요약이 단지 예시적인 것이고 결코 제한하기 위한 것이 아니라는 것을 잘 알 것이다.
본 명세서에 따른 보완적인 제스처의 제스처 패키지에 대한 시스템, 방법 및 컴퓨터 판독가능 매체에 대해 첨부 도면을 참조하여 더 기술한다.
도 1a 및 도 1b는 사용자가 게임을 플레이할 때 대상 인식, 분석 및 추적 시스템의 예시적인 실시예를 나타낸 도면.
도 2는 대상 인식, 분석 및 추적 시스템에서 사용될 수 있는 캡처 장치의 예시적인 실시예를 나타낸 도면.
도 3a는 대상 인식, 분석 및 추적 시스템에서 하나 이상의 제스처를 해석하는 데 사용될 수 있는 컴퓨팅 환경의 예시적인 실시예를 나타낸 도면.
도 3b는 대상 인식, 분석 및 추적 시스템에서 하나 이상의 제스처를 해석하는 데 사용될 수 있는 컴퓨팅 환경의 다른 예시적인 실시예를 나타낸 도면.
도 4a는 도 2의 대상 인식, 분석 및 추적 시스템으로부터 발생된 사용자의 골격 매핑을 나타낸 도면.
도 4b는 도 2에 도시된 제스처 인식기 아키텍처의 추가 상세를 나타낸 도면.
도 5a 및 도 5b는 보다 복잡한 제스처 필터(gesture filter)를 생성하기 위해 제스처 필터가 어떻게 적층될 수 있는지를 나타낸 도면.
도 6a, 도 6b, 도 6c, 도 6d, 및 도 6e는 사용자(502)가 미식축구 비디오 게임에서 "페어 캐치(fair catch)"에 대한 신호를 보내기 위해 할 수 있는 예시적인 제스처를 나타낸 도면.
도 7a, 도 7b, 도 7c, 도 7d, 및 도 7e는 사용자의 골격 맵(skeletal map)을 생성하기 위해 이미지 데이터의 각각의 프레임이 파싱되었을 때 도 6a 내지 도 6e의 예시적인 "페어 캐치" 제스처를 나타낸 도면.
도 8은 제스처 라이브러리로부터의 일반 제스처가 특정의 작업에 대한 보완적인 제스처의 장르 패키지로 그룹화되는 방법을 나타낸 도면.
도 9는 응용 프로그램이 하나의 제스처의 하나의 매개변수에 대한 값을 제공할 때 제스처 패키지 내의 보완적인 제스처를 조정하는 예시적인 동작 절차를 나타낸 도면.
본 명세서에 기술될 것인 바와 같이, 사용자는 하나 이상의 제스처를 수행함으로써 게임 콘솔, 컴퓨터 등과 같은 컴퓨팅 환경에서 실행 중인 응용 프로그램을 제어할 수 있다. 일 실시예에 따르면, 제스처는, 예를 들어, 캡처 장치에 의해 수신될 수 있다. 예를 들어, 캡처 장치는 장면의 깊이 이미지(depth image)를 캡처할 수 있다. 일 실시예에서, 캡처 장치는 장면 내의 하나 이상의 대상 또는 개체가 사용자와 같은 사람 대상에 대응하는지를 판정할 수 있다. 장면 내의 대상 또는 개체가 사람 대상에 대응하는지를 판정하기 위해, 각각의 대상이 플러드 필(flood fill)되고 사람 신체 모델의 패턴과 비교될 수 있다. 사람 신체 모델과 일치하는 각각의 대상 또는 개체는 이어서 스캔되어, 그와 연관된 골격 모델을 발생할 수 있다. 골격 모델은 이어서 컴퓨팅 환경에 제공될 수 있고, 그로써 컴퓨팅 환경은 골격 모델을 추적하고, 골격 모델과 연관된 아바타를 렌더링하며, 예를 들어, 골격 모델로부터 인식된 사용자의 제스처에 기초하여 컴퓨터 환경에서 실행 중인 응용 프로그램에서 어느 컨트롤을 수행해야 하는지를 결정할 수 있다. 제스처 인식기 엔진(그의 아키텍처에 대해서는 이하에서 더 상세히 기술함)은 사용자가 특정의 제스처를 했을 때를 판정하는 데 사용된다.
도 1a 및 도 1b는 사용자(18)가 복싱 게임을 플레이할 때 대상 인식, 분석 및 추적 시스템(10)의 구성의 예시적인 실시예를 나타낸 것이다. 예시적인 실시예에서, 대상 인식, 분석 및 추적 시스템(10)은 사용자(18)와 같은 사람 대상을 인식, 분석 및/또는 추적하는 데 사용될 수 있다.
도 1a에 도시된 바와 같이, 대상 인식, 분석 및 추적 시스템(10)은 컴퓨팅 환경(12)을 포함할 수 있다. 컴퓨팅 환경(12)은 컴퓨터, 게임 시스템 또는 콘솔 등일 수 있다. 예시적인 실시예에 따르면, 컴퓨팅 환경(12)은 컴퓨팅 환경(12)이 게임 응용 프로그램, 비게임 응용 프로그램 등과 같은 응용 프로그램을 실행하는 데 사용될 수 있도록 하드웨어 구성요소 및/또는 소프트웨어 구성요소를 포함할 수 있다.
도 1a에 도시된 바와 같이, 대상 인식, 분석 및 추적 시스템(10)은 캡처 장치(20)를 추가로 포함할 수 있다. 캡처 장치(20)는, 예를 들어, 사용자(18)와 같은 하나 이상의 사용자를 시각적으로 모니터링하는 데 사용될 수 있는 카메라일 수 있고, 그로써 응용 프로그램 내에서 하나 이상의 컨트롤 또는 동작을 수행하기 위해 하나 이상의 사용자에 의해 수행되는 제스처가 캡처, 분석 및 추적될 수 있으며, 이에 대해서는 이하에서 더 상세히 기술할 것이다.
일 실시예에 따르면, 대상 인식, 분석 및 추적 시스템(10)은 게임 또는 응용 프로그램 비주얼(visual) 및/또는 오디오를 사용자(18)와 같은 사용자에게 제공할 수 있는 텔레비전, 모니터, HDTV(high-definition television) 등과 같은 오디오비주얼 장치(16)에 연결될 수 있다. 예를 들어, 컴퓨팅 환경(12)은 게임 응용 프로그램, 비게임 응용 프로그램 등과 연관된 오디오비주얼 신호(audiovisual signal)를 제공할 수 있는 그래픽 카드와 같은 비디오 어댑터 및/또는 사운드 카드와 같은 오디오 어댑터를 포함할 수 있다. 오디오비주얼 장치(16)는 컴퓨팅 환경(12)으로부터 오디오비주얼 신호를 수신할 수 있고, 이어서 오디오비주얼 신호와 연관된 게임 또는 응용 프로그램 비주얼 및/또는 오디오를 사용자(18)에게 출력할 수 있다. 일 실시예에 따르면, 오디오비주얼 장치(16)는, 예를 들어, S-Video 케이블, HDMI 케이블, DVI 케이블, VGA 케이블 등을 통해 컴퓨팅 환경(12)에 연결될 수 있다.
도 1a 및 도 1b에 도시된 바와 같이, 대상 인식, 분석 및 추적 시스템(10)은 사용자(18)와 같은 사람 대상을 인식, 분석 및/또는 추적하는 데 사용될 수 있다. 예를 들어, 사용자(18)의 움직임이 컴퓨터 환경(12)에 의해 실행되고 있는 응용 프로그램에 영향을 주는 데 사용될 수 있는 컨트롤로서 해석될 수 있도록 사용자(18)가 캡처 장치(20)를 사용하여 추적될 수 있다. 따라서, 일 실시예에 따르면, 사용자(18)는 응용 프로그램을 제어하기 위해 자신의 신체를 움직일 수 있다.
도 1a 및 도 1b에 도시된 바와 같이, 예시적인 실시예에서, 컴퓨팅 환경(12)에서 실행 중인 응용 프로그램은 사용자(18)가 플레이하고 있을 수 있는 복싱 게임일 수 있다. 예를 들어, 컴퓨팅 환경(12)은 오디오비주얼 장치(16)를 사용하여, 복싱 상대(22)의 시각적 표현(visual representation)을 사용자(18)에 제공할 수 있다. 컴퓨팅 환경(12)은 또한 오디오비주얼 장치(16)를 사용하여, 사용자(18)가 자신의 움직임으로 제어할 수 있는 플레이어 아바타(24)의 시각적 표현을 제공할 수 있다. 예를 들어, 도 1b에 도시된 바와 같이, 사용자(18)는 플레이어 아바타(24)로 하여금 게임 공간에서 펀치를 날리게 하기 위해 실제 공간에서 펀치를 날릴 수 있다. 따라서, 예시적인 실시예에 따르면, 대상 인식, 분석 및 추적 시스템(10)의 컴퓨터 환경(12) 및 캡처 장치(20)는, 펀치가 게임 공간에서 플레이어 아바타(24)의 게임 컨트롤로서 해석될 수 있도록, 실제 공간에서 사용자(18)의 펀치를 인식하고 분석하는 데 사용될 수 있다.
사용자(18)의 다른 움직임도 역시 보빙(bob), 위빙(weave), 셔플(shuffle), 블로킹(block), 잽(jab) 또는 각종의 상이한 펀치를 날리는 컨트롤과 같은 다른 컨트롤 또는 동작으로서 해석될 수 있다. 게다가, 일부 움직임이 플레이어 아바타(24)를 제어하는 것 이외의 동작에 대응할 수 있는 컨트롤로서 해석될 수 있다. 예를 들어, 플레이어는 움직임을 사용하여, 게임을 종료, 일시정지 또는 저장하고, 레벨을 선택하며, 최고 점수를 보고, 친구와 통신하는 등을 할 수 있다.
예시적인 실시예에서, 사용자(18)와 같은 사람 대상은 개체를 가질 수 있다. 이러한 실시예에서, 전자 게임의 사용자는, 플레이어 및 개체의 움직임이 게임의 매개변수를 조정 및/또는 제어하는 데 사용될 수 있도록, 개체를 잡고 있을 수 있다. 예를 들어, 라켓을 잡고 있는 플레이어의 움직임이 추적되고 전자 스포츠 게임에서 온스크린 라켓을 제어하는 데 이용될 수 있다. 다른 예시적인 실시예에서, 개체를 잡고 있는 플레이어의 움직임이 추적되고 전자 전투 게임에서 온스크린 무기를 제어하는 데 이용될 수 있다.
다른 예시적인 실시예에 따르면, 대상 인식, 분석 및 추적 시스템(10)은 또한 대상 움직임을 게임의 영역 밖에 있는 운영 체제 및/또는 응용 프로그램 컨트롤로서 해석하는 데 사용될 수 있다. 예를 들어, 운영 체제 및/또는 응용 프로그램의 거의 모든 제어가능한 측면이 사용자(18)와 같은 대상의 움직임에 의해 제어될 수 있다.
도 2는 대상 인식, 분석 및 추적 시스템(10)에서 사용될 수 있는 캡처 장치(20)의 예시적인 실시예를 나타낸 것이다. 예시적인 실시예에 따르면, 캡처 장치(20)는, 예를 들어, 비행 시간(time-of-flight), 구조 광(structured light), 입체(stereo) 이미지 등을 비롯한 임의의 적당한 기법을 통해, 깊이 값을 포함할 수 있는 깊이 이미지를 비롯한 깊이 정보를 갖는 비디오를 캡처하도록 구성될 수 있다. 일 실시예에 따르면, 캡처 장치(20)는 계산된 깊이 정보를 "Z층", 즉 깊이 카메라로부터 그의 시선(line of sight)을 따라 뻗어 있는 Z축에 수직일 수 있는 층으로 구성할 수 있다.
도 2에 도시된 바와 같이, 캡처 장치(20)는 이미지 카메라 구성요소(22)를 포함할 수 있다. 예시적인 실시예에 따르면, 이미지 카메라 구성요소(22)는 장면의 깊이 이미지를 캡처할 수 있는 깊이 카메라일 수 있다. 깊이 이미지는 캡처된 장면의 2차원(2-D) 픽셀 영역을 포함할 수 있으며, 이 경우 2-D 픽셀 영역 내의 각각의 픽셀은 카메라로부터의 캡처된 장면 내의 개체의 길이(단위: 예를 들어, 센티미터, 밀리미터 등)를 나타낼 수 있다.
도 2에 도시된 바와 같이, 예시적인 실시예에 따르면, 이미지 카메라 구성요소(22)는 장면의 깊이 이미지를 캡처하는 데 사용될 수 있는 IR 광 구성요소(24), 3차원(3-D) 카메라(26) 및 RGB 카메라(28)를 포함할 수 있다. 예를 들어, 비행 시간 분석에서, 캡처 장치(20)의 IR 광 구성요소(24)는 장면 상으로 적외선 광을 방출할 수 있고, 이어서, 예를 들어, 3-D 카메라(26) 및/또는 RGB 카메라(28)를 사용하여 장면 내의 하나 이상의 대상 및 개체의 표면으로부터 후방 산란된 광을 검출하기 위해 센서(도시 생략)를 사용할 수 있다. 일부 실시예에서, 나가는 광 펄스와 대응하는 들어오는 광 펄스 간의 시간이 측정되고 캡처 장치(20)로부터 장면 내의 대상 또는 개체 상의 특정의 위치까지의 실제 거리를 구하는 데 사용될 수 있도록 펄스형 적외선 광(pulsed infrared light)이 사용될 수 있다. 그에 부가하여, 다른 예시적인 실시예에서, 위상 천이를 결정하기 위해 나가는 광파의 위상이 들어오는 광파의 위상과 비교될 수 있다. 위상 천이는 이어서 캡처 장치로부터 대상 또는 개체 상의 특정의 위치까지의 실제 거리를 결정하는 데 사용될 수 있다.
다른 예시적인 실시예에 따르면, 예를 들어, 셔터 방식의 광 펄스 이미징(shuttered light pulse imaging)을 비롯한 다양한 기법을 통해 시간에 따라 반사된 광 빔의 세기를 분석함으로써 캡처 장치(20)로부터 대상 또는 개체 상의 특정의 위치까지의 실제 거리를 간접적으로 결정하기 위해 비행 시간 분석이 사용될 수 있다.
다른 예시적인 실시예에서, 캡처 장치(20)는 깊이 정보를 캡처하기 위해 구조 광을 사용할 수 있다. 이러한 분석에서, 패턴화된 광(즉, 격자 패턴 또는 줄무늬 패턴과 같은 기지의 패턴으로서 디스플레이되는 광)이, 예를 들어, IR 광 구성요소(24)를 통해 장면 상에 투사될 수 있다. 장면 내의 하나 이상의 대상 또는 개체의 표면에 부딪칠 때, 패턴이 그에 응답하여 변형될 수 있다. 패턴의 이러한 변형은, 예를 들어, 3-D 카메라(26) 및/또는 RGB 카메라(28)에 의해 캡처될 수 있고, 이어서 캡처 장치로부터 대상 또는 개체 상의 특정의 위치까지의 실제 거리를 결정하기 위해 분석될 수 있다.
다른 실시예에 따르면, 캡처 장치(20)는 깊이 정보를 발생하기 위해 분석될 수 있는 시각적 입체 데이터를 획득하기 위해 상이한 각도로부터 장면을 볼 수 있는 2개 이상의 물리적으로 분리되어 있는 카메라를 포함할 수 있다.
캡처 장치(20)는 마이크(30)를 추가로 포함할 수 있다. 마이크(30)는 소리를 수신하여 전기 신호로 변환할 수 있는 트랜스듀서 또는 센서를 포함할 수 있다. 일 실시예에 따르면, 마이크(30)는 대상 인식, 분석 및 추적 시스템(10)에서 캡처 장치(20)와 컴퓨팅 환경(12) 간의 피드백을 감소시키는 데 사용될 수 있다. 그에 부가하여, 마이크(30)는 컴퓨팅 환경(12)에 의해 실행될 수 있는 게임 응용 프로그램, 비게임 응용 프로그램 등과 같은 응용 프로그램을 제어하기 위해 사용자에 의해 제공될 수도 있는 오디오 신호를 수신하는 데 사용될 수 있다.
예시적인 실시예에서, 캡처 장치(20)는 이미지 카메라 구성요소(22)와 통신 동작을 하고 있을 수 있는 프로세서(32)를 추가로 포함할 수 있다. 프로세서(32)는 깊이 이미지를 수신하는 명령어, 깊이 이미지에 적당한 대상이 포함될 수 있는지를 판정하는 명령어, 적당한 대상을 대상의 골격 표현 또는 모델로 변환하는 명령어 또는 임의의 다른 적당한 명령어를 포함할 수 있는 명령어를 실행할 수 있는 표준화된 프로세서, 특수 프로세서, 마이크로프로세서 등을 포함할 수 있다.
캡처 장치(20)는 프로세서(32)에 의해 실행될 수 있는 명령어, 3-D 카메라 또는 RGB 카메라에 의해 캡처된 이미지 또는 이미지의 프레임, 또는 임의의 다른 적당한 정보, 이미지 등을 저장할 수 있는 메모리 구성요소(34)를 추가로 포함할 수 있다. 예시적인 실시예에 따르면, 메모리 구성요소(34)는 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 캐시, 플래시 메모리, 하드 디스크, 또는 임의의 다른 적당한 저장 구성요소를 포함할 수 있다. 도 2에 도시된 바와 같이, 일 실시예에서, 메모리 구성요소(34)는 이미지 캡처 구성요소(22) 및 프로세서(32)와 통신하는 별개의 구성요소일 수 있다. 다른 실시예에 따르면, 메모리 구성요소(34)는 프로세서(32) 및/또는 이미지 캡처 구성요소(22) 내에 통합될 수 있다.
도 2에 도시된 바와 같이, 캡처 장치(20)는 통신 링크(36)를 통해 컴퓨팅 환경(12)과 통신하고 있을 수 있다. 통신 링크(36)는, 예를 들어, USB 연결, Firewire 연결, 이더넷 케이블 연결 등을 비롯한 유선 연결 및/또는 무선 802.11b, g, a, 또는 n 연결과 같은 무선 연결일 수 있다. 일 실시예에 따르면, 컴퓨팅 환경(12)은, 예를 들어, 통신 링크(36)를 통해 장면을 언제 캡처해야 하는지를 결정하는 데 사용될 수 있는 클록을 캡처 장치(20)에 제공할 수 있다.
그에 부가하여, 캡처 장치(20)는, 예를 들어, 3-D 카메라(26) 및/또는 RGB 카메라(28)에 의해 캡처된 깊이 정보 및 이미지와, 캡처 장치(20)에 의해 발생될 수 있는 골격 모델을 통신 링크(36)를 통해 컴퓨팅 환경(12)에 제공할 수 있다. 이어서, 컴퓨팅 환경(12)은 골격 모델, 깊이 정보 및 캡처된 이미지를 사용하여, 예를 들어, 사용자 제스처를 인식하고 그에 응답하여 게임 또는 워드 프로세서와 같은 응용 프로그램을 제어할 수 있다. 예를 들어, 도 2에 도시된 바와 같이, 컴퓨팅 환경(12)은 제스처 인식기 엔진(190)을 포함할 수 있다. 제스처 인식기 엔진(190)은 일단의 제스처 필터를 포함할 수 있으며, 각각의 제스처 필터는 (사용자가 움직일 때) 골격 모델에 의해 수행될 수 있는 제스처에 관한 정보를 포함한다. 사용자(골격 모델에 의해 표현됨)가 하나 이상의 제스처를 수행했을 때를 식별하기 위해, 골격 모델 및 그와 연관된 움직임의 형태로 카메라(26, 28) 및 장치(20)에 의해 캡처되는 데이터가 제스처 인식기 엔진(190) 내의 제스처 필터와 비교될 수 있다. 그 제스처는 응용 프로그램의 다양한 컨트롤과 연관될 수 있다. 따라서, 컴퓨팅 환경(12)은 제스처 인식기 엔진(190)을 사용하여, 골격 모델의 움직임을 해석하고 움직임에 기초하여 응용 프로그램을 제어할 수 있다.
도 3a는 대상 인식, 분석 및 추적 시스템에서 하나 이상의 제스처를 해석하는 데 사용될 수 있는 컴퓨팅 환경의 예시적인 실시예를 나타낸 것이다. 도 1a 내지 도 2와 관련하여 전술한 컴퓨팅 환경(12)과 같은 컴퓨팅 환경은 게임 콘솔과 같은 멀티미디어 콘솔(100)일 수 있다. 도 3a에 도시된 바와 같이, 멀티미디어 콘솔(100)은 레벨 1 캐시(102), 레벨 2 캐시(104), 및 플래시 ROM(Read-Only Memory)(106)을 갖는 중앙 처리 장치(CPU)(101)를 가진다. 레벨 1 캐시(102) 및 레벨 2 캐시(104)는 데이터를 일시적으로 저장하고, 따라서 메모리 액세스 사이클의 수를 감소시킴으로써 처리 속도 및 처리율(throughput)을 향상시킨다. 2개 이상의 코어, 따라서 부가의 레벨 1 및 레벨 2 캐시(102, 104)를 가지는 CPU(101)가 제공될 수 있다. 플래시 ROM(106)은, 멀티미디어 콘솔(100)의 전원이 켜질 때, 부팅 프로세스의 초기 단계 동안에 로드되는 실행가능 코드를 저장할 수 있다.
그래픽 처리 장치(GPU)(108) 및 비디오 인코더/비디오 코덱(코더/디코더)(114)는 고속 및 고해상도 그래픽 처리를 위한 비디오 처리 파이프라인을 형성한다. 데이터는 버스를 통해 그래픽 처리 장치(108)로부터 비디오 인코더/비디오 코덱(114)으로 전달된다. 비디오 처리 파이프라인은 텔레비전 또는 기타 디스플레이로 전송하기 위해 데이터를 A/V(오디오/비디오) 포트(140)로 출력한다. 메모리 제어기(110)는 RAM(Random Access Memory)(이것으로 제한되지 않음) 등의 다양한 유형의 메모리(112)에 대한 프로세서 액세스를 용이하게 해주기 위해 GPU(108)에 연결되어 있다.
멀티미디어 콘솔(100)은, 바람직하게는 모듈(118) 상에 구현되어 있는, I/O 제어기(120), 시스템 관리 제어기(122), 오디오 처리 장치(123), 네트워크 인터페이스 제어기(124), 제1 USB 호스트 제어기(126), 제2 USB 제어기(128) 및 프런트 패널 I/O 서브어셈블리(130)를 포함한다. USB 제어기(126, 128)는 주변장치 제어기[142(1)-142(2)], 무선 어댑터(148), 및 외부 메모리 장치(146)(예를 들어, 플래시 메모리, 외장형 CD/DVD ROM 드라이브, 이동식 매체, 기타)에 대한 호스트로서 역할한다. 네트워크 인터페이스(124) 및/또는 무선 어댑터(148)는 네트워크(예를 들어, 인터넷, 홈 네트워크, 기타)에의 액세스를 제공하고, 이더넷 카드, 모뎀, 블루투스 모듈, 케이블 모뎀, 기타를 비롯한 광범위한 다양한 유선 또는 무선 어댑터 구성요소 중 어느 것이라도 될 수 있다.
시스템 메모리(143)는 부팅 프로세스 동안에 로드되는 응용 프로그램 데이터를 저장하기 위해 제공된다. 미디어 드라이브(144)가 제공되고 DVD/CD 드라이브, 하드 드라이브, 또는 기타 이동식 미디어 드라이브 등을 포함할 수 있다. 미디어 드라이브(144)는 멀티미디어 콘솔(100)에 대해 내장형이거나 외장형일 수 있다. 멀티미디어 콘솔(100)에 의한 실행, 재생 등을 위해, 응용 프로그램 데이터가 미디어 드라이브(144)를 통해 액세스될 수 있다. 미디어 드라이브(144)는 직렬 ATA 버스 또는 기타 고속 연결(예를 들어, IEEE 1394) 등의 버스를 통해 I/O 제어기(120)에 연결된다.
시스템 관리 제어기(122)는 멀티미디어 콘솔(100)의 이용가능성을 확인하는 것과 관련된 각종의 서비스 기능을 제공한다. 오디오 처리 장치(123) 및 오디오 코덱(132)은 Hi-Fi(high fidelity) 및 스테레오 처리를 갖는 대응하는 오디오 처리 파이프라인을 형성한다. 오디오 데이터는 통신 링크를 통해 오디오 처리 장치(123)와 오디오 코덱(132) 사이에서 전달된다. 오디오 처리 파이프라인은 오디오 기능을 갖는 외장형 오디오 플레이어 또는 장치에 의한 재생을 위해 데이터를 A/V 포트(140)로 출력한다.
프런트 패널 I/O 서브어셈블리(130)는 전원 단추(150) 및 꺼내기 단추(152)의 기능은 물론, 멀티미디어 콘솔(100)의 외부 표면 상에 노출되어 있는 임의의 LED(light emitting diode) 또는 다른 표시기도 지원한다. 시스템 전원 공급 장치 모듈(136)은 멀티미디어 콘솔(100)의 구성요소에 전원을 제공한다. 팬(138)은 멀티미디어 콘솔(100) 내의 회로를 냉각시킨다.
CPU(101), GPU(108), 메모리 제어기(110) 및 멀티미디어 콘솔(100) 내의 다양한 다른 구성요소는 직렬 버스 및 병렬 버스, 메모리 버스, 주변 장치 버스, 및 각종의 버스 아키텍처 중 임의의 것을 사용하는 프로세서 또는 로컬 버스를 비롯한 하나 이상의 버스를 통해 상호연결된다. 일례로서, 이러한 아키텍처는 PCI(Peripheral Component Interconnects) 버스, PCI-Express 버스 등을 포함할 수 있다.
멀티미디어 콘솔(100)의 전원이 켜지는 경우, 응용 프로그램 데이터가 시스템 메모리(143)로부터 메모리(112) 및/또는 캐시(102, 104)로 로드되어 CPU(101) 상에서 실행될 수 있다. 응용 프로그램은 멀티미디어 콘솔(100) 상에서 이용가능한 상이한 미디어 유형을 탐색할 때 일관성있는 사용자 경험을 제공하는 그래픽 사용자 인터페이스를 제시할 수 있다. 동작을 설명하면, 멀티미디어 콘솔(100)에 부가의 기능을 제공하기 위해, 미디어 드라이브(144) 내에 들어 있는 응용 프로그램 및/또는 기타 미디어가 미디어 드라이브(144)로부터 시작되거나 재생될 수 있다.
멀티미디어 콘솔(100)은 본 시스템을 텔레비전 또는 기타 디스플레이에 간단히 연결시킴으로써 독립형 시스템(standalone system)으로서 동작될 수 있다. 이 독립형 모드에서, 멀티미디어 콘솔(100)은 한명 이상의 사용자가 시스템과 상호작용하거나, 영화를 시청하거나, 음악을 듣게 해줄 수 있다. 그렇지만, 광대역 연결의 통합이 네트워크 인터페이스(124) 또는 무선 어댑터(148)를 통해 이용가능하게 되는 경우, 멀티미디어 콘솔(100)은 또한 대규모 네트워크 커뮤니티에의 참여자로서 동작될 수 있다.
멀티미디어 콘솔(100)의 전원이 켜질 때, 설정된 양의 하드웨어 리소스가 멀티미디어 콘솔 운영 체제에 의한 시스템 사용을 위해 예약된다. 이들 리소스는 메모리(예를 들어, 16 MB), CPU 및 GPU 사이클(예를 들어, 5%), 네트워킹 대역폭(예를 들어, 8 kbs) 등의 예약을 포함할 수 있다. 이들 리소스가 시스템 부팅 시에 예약되기 때문에, 예약된 리소스는 응용 프로그램의 관점에서 볼 때 존재하지 않는다.
상세하게는, 메모리 예약은 바람직하게는 시작 커널(launch kernel), 동시 시스템 응용 프로그램(concurrent system application) 및 드라이버를 포함할 정도로 충분히 크다. 예약된 CPU 사용량이 시스템 응용 프로그램에 의해 사용되지 않는 경우, 유휴 스레드(idle thread)가 임의의 미사용 사이클을 사용하도록, CPU 예약이 바람직하게는 일정하다.
GPU과 관련하여, GPU 인터럽트를 사용하여 코드가 팝업을 오버레이에 렌더링하도록 스케줄링함으로써 시스템 응용 프로그램에 의해 발생된 경량 메시지(예를 들어, 팝업)가 디스플레이된다. 오버레이에 필요한 메모리의 양은 오버레이 영역 크기에 의존하며, 오버레이는 바람직하게는 화면 해상도에 따라 스케일링된다. 사용자 인터페이스 전체가 동시 시스템 응용 프로그램에 의해 사용되는 경우, 응용 프로그램 해상도에 독립적인 해상도를 사용하는 것이 바람직하다. 주파수를 변경하고 TV를 재동기시킬 필요가 없도록 스케일러가 이 해상도를 설정하는 데 사용될 수 있다.
멀티미디어 콘솔(100)이 부팅하고 시스템 리소스가 예약된 후에, 시스템 기능을 제공하기 위해 동시 시스템 응용 프로그램이 실행된다. 시스템 기능은 전술한 예약된 시스템 리소스 내에서 실행되는 일련의 시스템 응용 프로그램에 캡슐화되어 있다. 운영 체제 커널은 게임 응용 프로그램 스레드에 대해 시스템 응용 프로그램 스레드인 스레드를 식별한다. 시스템 응용 프로그램은 바람직하게는 응용 프로그램에게 일관성있는 시스템 리소스 뷰를 제공하기 위해 미리 정해진 때에 그리고 미리 정해진 간격으로 CPU(101) 상에서 실행되도록 스케줄링되어 있다. 스케줄링은 콘솔 상에서 실행 중인 게임 응용 프로그램에 대한 캐시 방해(cache disruption)를 최소화하는 것이다.
동시 시스템 응용 프로그램이 오디오를 필요로 할 때, 오디오 처리가 시간 민감도로 인해 게임 응용 프로그램에 비동기적으로 스케줄링된다. 시스템 응용 프로그램이 활성일 때, 멀티미디어 콘솔 응용 프로그램 관리자(이하에 기술됨)는 게임 응용 프로그램 오디오 레벨(예를 들어, 음소거, 감쇠)을 제어한다.
입력 장치[예를 들어, 제어기(142(1), 142(2))]가 게임 응용 프로그램 및 시스템 응용 프로그램에 의해 공유된다. 입력 장치는 예약된 리소스가 아니고, 각각이 장치의 포커스를 가지도록 시스템 응용 프로그램과 게임 응용 프로그램 간에 전환된다. 응용 프로그램 관리자는 바람직하게는, 게임 응용 프로그램의 정보를 모르는 상태에서, 입력 스트림의 전환을 제어하고, 드라이버는 포커스 전환에 관한 상태 정보를 유지한다. 카메라(26, 28) 및 캡처 장치(20)는 콘솔(100)에 대한 부가의 입력 장치를 정의할 수 있다.
도 3b는 대상 인식, 분석 및 추적 시스템에서 하나 이상의 제스처를 해석하는 데 사용되는 도 1a 내지 도 2에 도시된 컴퓨팅 환경(12)일 수 있는 컴퓨팅 환경(220)의 다른 예시적인 실시예를 나타낸 것이다. 컴퓨팅 시스템 환경(220)은 적당한 컴퓨팅 환경의 일례에 불과하며 여기 개시된 발명 대상의 용도 또는 기능의 범위에 관한 어떤 제한을 암시하기 위한 것이 아니다. 컴퓨팅 환경(220)이 예시적인 운영 환경(220)에 예시된 구성요소 중 어느 하나 또는 이들 구성요소의 임의의 조합에 관한 어떤 의존성 또는 요구조건을 갖는 것으로 해석되어서도 안된다. 일부 실시예에서, 다양한 도시된 컴퓨팅 구성요소는 본 명세서의 특정 측면을 구현하도록 구성된 회로를 포함할 수 있다. 일례로, 본 명세서에서 사용되는 용어 회로는 펌웨어 또는 스위치에 의해 기능(들)을 수행하도록 구성된 특수 하드웨어 구성요소를 포함할 수 있다. 다른 예시적인 실시예에서, 용어 회로는 기능(들)을 수행하는 동작을 하는 논리를 구현하는 소프트웨어 명령에 의해 구성되는, 범용 처리 장치, 메모리, 기타 등등을 포함할 수 있다. 회로가 하드웨어와 소프트웨어의 조합을 포함하는 예시적인 실시예에서, 구현자는 논리를 구현하는 소스 코드를 작성할 수 있으며, 소스 코드는 범용 처리 장치에 의해 처리될 수 있는 기계 판독가능 코드로 컴파일될 수 있다. 당업자라면 하드웨어, 소프트웨어, 또는 하드웨어/소프트웨어 조합 간에 거의 차이가 없는 수준까지 최신 기술이 발전해왔다는 사실을 잘 알 수 있기 때문에, 특정 기능을 실시하기 위해 소프트웨어를 선택할지 하드웨어를 선택할지는 구현자에게 맡겨진 설계 선택사항이다. 보다 구체적으로는, 당업자라면 소프트웨어 프로세스가 동등한 하드웨어 구조로 변환될 수 있고, 하드웨어 구조 자체가 동등한 소프트웨어 프로세스로 변환될 수 있다는 것을 잘 알 것이다. 따라서, 소프트웨어 구현을 선택할지 하드웨어 구현을 선택할지는 설계 선택사항의 하나로서 구현자에게 맡겨져 있다.
도 3b에서, 컴퓨팅 환경(220)은 통상적으로 각종의 컴퓨터 판독가능 매체를 포함하는 컴퓨터(241)를 포함한다. 컴퓨터 판독가능 매체는 컴퓨터(241)에 의해 액세스될 수 있는 이용가능한 매체라면 어느 것이라도 될 수 있고, 휘발성 및 비휘발성 매체, 이동식 및 비이동식 매체 둘다를 포함한다. 시스템 메모리(222)는 판독 전용 메모리(ROM)(223) 및 랜덤 액세스 메모리(RAM)(260) 등의 휘발성 및/또는 비휘발성 메모리 형태의 컴퓨터 저장 매체를 포함한다. 시동 중과 같은 때에 컴퓨터(241) 내의 구성요소들 간의 정보 전송을 돕는 기본 루틴들이 들어 있는 기본 입/출력 시스템(224)(BIOS)은 통상적으로 ROM(223)에 저장되어 있다. RAM(260)에는 통상적으로 처리 장치(259)에 의해 즉각 액세스될 수 있고 및/또는 현재 처리되고 있는 데이터 및/또는 프로그램 모듈이 들어 있다. 제한이 아닌 예로서, 도 3b는 운영 체제(225), 응용 프로그램(226), 기타 프로그램 모듈(227), 및 프로그램 데이터(228)를 나타내고 있다.
컴퓨터(241)는 또한 다른 이동식/비이동식, 휘발성/비휘발성 컴퓨터 저장 매체도 포함할 수 있다. 단지 예로서, 도 3b는 비이동식, 비휘발성 자기 매체로부터 판독을 하거나 그에 기록을 하는 하드 디스크 드라이브(238), 이동식, 비휘발성 자기 디스크(254)로부터 판독을 하거나 그에 기록을 하는 자기 디스크 드라이브(239), 및 CD-ROM 또는 기타 광 매체 등의 이동식, 비휘발성 광 디스크(253)로부터 판독을 하거나 그에 기록을 하는 광 디스크 드라이브(240)를 나타내고 있다. 예시적인 운영 환경에서 사용될 수 있는 기타의 이동식/비이동식, 휘발성/비휘발성 컴퓨터 저장 매체로는 자기 테이프 카세트, 플래시 메모리 카드, DVD(digital versatile disk), 디지털 비디오 테이프, 고상 RAM, 고상 ROM, 기타 등등이 있지만, 이들로 제한되지 않는다. 하드 디스크 드라이브(238)는 통상적으로 인터페이스(234) 등의 비이동식 메모리 인터페이스를 통해 시스템 버스(221)에 연결되고, 자기 디스크 드라이브(239) 및 광 디스크 드라이브(240)는 통상적으로 인터페이스(235) 등의 이동식 메모리 인터페이스에 의해 시스템 버스(221)에 연결된다.
이상에서 설명되고 도 3b에 도시되어 있는 드라이브들 및 이들과 연관된 컴퓨터 저장 매체는 컴퓨터(241)에 대한 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 및 기타 데이터의 저장을 제공한다. 도 3b에서, 예를 들어, 하드 디스크 드라이브(238)는 운영 체제(258), 응용 프로그램(257), 기타 프로그램 모듈(256), 및 프로그램 데이터(255)를 저장하는 것으로 도시되어 있다. 유의할 점은 이들 구성요소가 운영 체제(225), 응용 프로그램(226), 기타 프로그램 모듈(227), 및 프로그램 데이터(228)와 동일하거나 다를 수 있다는 것이다. 운영 체제(258), 응용 프로그램(257), 기타 프로그램 모듈(256), 및 프로그램 데이터(255)에 다른 참조 번호가 부여되어 있는 것은 적어도 이들이 다른 사본임을 나타내기 위한 것이다. 사용자는 키보드(251) 및 포인팅 장치(252)(통상적으로 마우스, 트랙볼 또는 터치 패드라고 함) 등의 입력 장치를 통해 컴퓨터(241)에 명령 및 정보를 입력할 수 있다. 다른 입력 장치(도시 생략)로는 마이크, 조이스틱, 게임 패드, 위성 안테나, 스캐너, 기타 등등이 있을 수 있다. 이들 및 기타 입력 장치는 종종 시스템 버스에 연결된 사용자 입력 인터페이스(236)를 통해 처리 장치(259)에 연결되지만, 병렬 포트, 게임 포트 또는 USB(universal serial bus) 등의 다른 인터페이스 및 버스 구조에 의해 연결될 수도 있다. 카메라(26, 28) 및 캡처 장치(20)는 콘솔(100)에 대한 부가의 입력 장치를 정의할 수 있다. 모니터(242) 또는 기타 유형의 디스플레이 장치도 비디오 인터페이스(232) 등의 인터페이스를 통해 시스템 버스(221)에 연결되어 있다. 모니터 이외에, 컴퓨터는 또한 출력 주변장치 인터페이스(233)를 통해 연결될 수 있는 스피커(244) 및 프린터(243) 등의 다른 주변 출력 장치도 포함할 수 있다.
컴퓨터(241)는 원격 컴퓨터(246) 등의 하나 이상의 원격 컴퓨터와의 논리적 연결을 사용하여 네트워크화된 환경에서 동작할 수 있다. 원격 컴퓨터(246)는 개인용 컴퓨터, 서버, 라우터, 네트워크 PC, 피어 장치 또는 기타 통상의 네트워크 노드일 수 있고, 통상적으로 컴퓨터(241)와 관련하여 상기한 구성요소들 중 다수 또는 그 전부를 포함하지만, 도 3b에는 메모리 저장 장치(247)만이 도시되어 있다. 도 3b에 도시된 논리적 연결은 LAN(local area network)(245) 및 WAN(wide area network)(249)을 포함하지만, 다른 네트워크도 포함할 수 있다. 이러한 네트워킹 환경은 사무실, 전사적 컴퓨터 네트워크, 인트라넷 및 인터넷에서 흔한 것이다.
LAN 네트워킹 환경에서 사용될 때, 컴퓨터(241)는 네트워크 인터페이스 또는 어댑터(237)를 통해 LAN(245)에 연결된다. WAN 네트워킹 환경에서 사용될 때, 컴퓨터(241)는 통상적으로 인터넷 등의 WAN(249)을 통해 통신을 설정하는 모뎀(250) 또는 기타 수단을 포함한다. 내장형 또는 외장형일 수 있는 모뎀(250)은 사용자 입력 인터페이스(236) 또는 다른 적절한 메커니즘을 통해 시스템 버스(221)에 연결될 수 있다. 네트워크화된 환경에서, 컴퓨터(241) 또는 그의 일부와 관련하여 도시된 프로그램 모듈들은 원격 메모리 저장 장치에 저장될 수 있다. 제한이 아닌 예로서, 도 3b는 원격 응용 프로그램(248)이 메모리 장치(247)에 존재하는 것으로 도시하고 있다. 도시된 네트워크 연결이 예시적인 것이고 컴퓨터들 간에 통신 링크를 설정하는 기타 수단이 사용될 수 있다는 것을 잘 알 것이다.
도 4a는 캡처 장치(20)로부터 발생될 수 있는 사용자의 예시적인 골격 매핑을 나타낸 것이다. 이 실시예에서, 각종의 관절 및 뼈, 즉 각각의 손(302), 각각의 팔뚝(304), 각각의 팔꿈치(306), 각각의 이두근(308), 각각의 어깨(310), 각각의 엉덩이(312), 각각의 대퇴부(314), 각각의 무릎(316), 각각의 하퇴부(318), 각각의 발(320), 머리(322), 몸통(324), 등뼈의 상부(326) 및 하부(328), 및 허리(330)가 식별된다. 더 많은 지점이 추적되는 경우, 손가락 또는 발가락의 뼈 및 관절, 또는 얼굴의 개개의 특징부(코 및 눈 등) 등의 부가의 특징부가 식별될 수 있다.
사용자는, 자신의 신체를 움직임으로써, 제스처를 생성할 수 있다. 제스처는 이미지 데이터로서 캡처되고 의미를 위해 파싱될 수 있는 사용자에 의한 움직임 또는 자세를 포함한다. 공을 던지는 것을 흉내내는 것과 같은 움직임을 포함하는 제스처는 동적일 수 있다. 몸통(324) 앞에 팔뚝(304)을 팔짱낀 채로 있는 것과 같은 제스처는 정적 자세일 수 있다. 제스처는 또한 모조 칼을 휘두르는 것과 같이 소도구를 포함할 수 있다. 제스처는 손(302)으로 손뼉을 치는 것과 같이 2개 이상의 신체 부위 또는 입술을 오무리는 것과 같은 더 미묘한 움직임을 포함할 수 있다.
제스처는 일반적으로 컴퓨팅과 관련하여 입력을 위해 사용될 수 있다. 예를 들어, 손(302) 또는 다른 신체 부위의 다양한 움직임은 계층적 목록에서 위 또는 아래로 탐색하는 것, 파일을 여는 것, 파일을 닫는 것, 및 파일을 저장하는 것과 같은 통상적인 시스템 전체에 걸친 작업에 대응할 수 있다. 제스처는 또한, 게임에 따라, 비디오 게임과 관련한 상황에서도 사용될 수 있다. 예를 들어, 운전 게임에서, 손(302) 및 발(320)의 다양한 움직임은 차량을 어떤 방향으로 조향하는 것, 기어를 변속하는 것, 가속하는 것 및 브레이크를 밟는 것에 대응할 수 있다.
사용자는, 스스로 제자리에서 걷거나 달림으로써, 걷기 또는 달리기에 대응하는 제스처를 발생할 수 있다. 사용자는 다른 대안으로서 이동하지 않고 걷기를 흉내내기 위해 각각의 다리(312-320)를 들어올리고 내릴 수 있다. 시스템은 각각의 엉덩이(312) 및 각각의 대퇴부(314)를 분석함으로써 이 제스처를 파싱할 수 있다. 하나의 엉덩이-대퇴부 각도(수직선에 대해 측정되며, 여기서 서 있는 다리는 0°의 엉덩이-대퇴부 각도를 가지고, 앞쪽으로 수평으로 뻗은 다리는 90°의 엉덩이-대퇴부 각도를 가짐)가 다른쪽 대퇴부에 대해 어떤 임계값을 초과할 때 스텝이 인식될 수 있다. 다리를 교대로 움직임으로써 어떤 수의 연속적인 스텝 후에 걷기 또는 달리기가 인식될 수 있다. 2개의 가장 최근의 스텝 사이의 시간이 주기로서 생각될 수 있다. 그 임계값 각도가 만족되지 않은 어떤 수의 주기 이후에, 시스템은 걷기 또는 달리기 제스처가 중지된 것으로 판정할 수 있다.
"걷기 또는 달리기" 제스처가 주어진 경우, 응용 프로그램은 이 제스처와 연관된 응용 프로그램-결정 매개변수에 대한 값을 설정할 수 있다. 이들 매개변수는 상기 임계값 각도, 걷기 또는 달리기 제스처를 시작하는 데 필요한 스텝의 수, 제스처를 종료하기 위해 스텝이 발생하지 않는 주기의 수, 및 제스처가 걷기인지 달리기인지를 판정하는 임계값 주기를 포함할 수 있다. 사용자가 자신의 다리를 신속하게 움직일 것이기 때문에, 빠른 주기는 달리기에 대응할 수 있고, 느린 주기는 걷기에 대응할 수 있다.
제스처는 처음에 응용 프로그램이 그 자신의 매개변수로 재정의할 수 있는 일련의 기본 매개변수와 연관될 수 있다. 이 시나리오에서, 응용 프로그램은 무리하여 매개변수를 제공하지 않고 그 대신에 응용 프로그램-정의 매개변수가 없는 경우 제스처가 인식될 수 있게 해주는 일련의 기본 매개변수를 사용할 수 있다.
제스처와 연관될 수 있는 각종의 출력이 있다. 제스처가 행해지고 있는지에 관해 "예 또는 아니오" 기준선이 있을 수 있다. 또한, 사용자의 추적된 움직임이 제스처에 대응할 확률에 대응하는 신뢰 수준이 있을 수 있다. 이것은 0과 1(경계 포함) 사이의 부동 소수점 숫자의 범위에 걸쳐 있는 선형 스케일일 수 있다. 이 제스처 정보를 수신하는 응용 프로그램이 거짓 양성(false-positive)을 입력으로서 받아들일 수 없는 경우, 이 응용 프로그램은 적어도 0.95와 같은 높은 신뢰 수준을 가지는 그 인식된 제스처만을 사용할 수 있다. 응용 프로그램이 거짓 양성을 희생해서라도 제스처의 모든 인스턴스를 인식해야만 하는 경우, 응용 프로그램은 단지 0.2보다 큰 것과 같은 적어도 훨씬 더 낮은 신뢰 수준을 가지는 제스처를 사용할 수 있다. 제스처는 2개의 가장 최근의 스텝 사이의 시간에 대한 출력을 가질 수 있으며, 제1 스텝만이 등록되어 있는 경우, 이것은 -1과 같은 예약된 값으로 설정될 수 있다(임의의 2개의 스텝 사이의 시간이 양이어야만 하기 때문임). 제스처는 또한 가장 최근의 스텝 동안에 도달된 가장 높은 대퇴부 각도에 대한 출력을 가질 수 있다.
다른 예시적인 제스처는 "힐 리프트 점프(heel lift jump)"이다. 이것에서, 사용자는 발가락을 박아둔 채로 자신의 뒷꿈치를 지면으로부터 들어올림으로써 제스처를 생성할 수 있다. 다른 대안으로서, 사용자는 자신의 발(320)이 지면으로부터 완전히 떨어지게 공중으로 점프할 수 있다. 시스템은 똑바로 서있는 것과 같은 정렬의 위치에 있는지를 알아보기 위해 어깨(310), 엉덩이(312) 및 무릎(316)의 각도 관계를 분석함으로써 이 제스처에 대한 골격을 파싱할 수 있다. 이어서, 임의의 상향 가속도가 있는지 이들 지점 및 상부(326)와 하부(328) 등뼈 지점이 모니터링될 수 있다. 충분한 가속도 조합이 점프 제스처를 트리거할 수 있다.
이 "힐 리프트 점프" 제스처가 주어진 경우, 응용 프로그램은 이 제스처와 연관된 응용 프로그램-결정 매개변수에 대한 값을 설정할 수 있다. 매개변수는 제스처를 트리거하기 위해 사용자의 어깨(310), 엉덩이(312) 및 무릎(316)이 얼마나 빠르게 위쪽으로 움직여야만 하는지를 결정하는 상기 가속도 임계값은 물론, 점프가 여전히 트리거될 수 있는 어깨(310), 엉덩이(312) 및 무릎(316) 사이의 최대 정렬 각도도 포함할 수 있다.
출력은 신뢰 수준은 물론, 점프 시의 사용자의 신체 각도를 포함할 수 있다.
제스처를 수신할 응용 프로그램의 상세에 기초하여 제스처에 대한 매개변수를 설정하는 것은 제스처를 정확하게 식별하는 데 중요하다. 제스처 및 사용자의 의도를 적절히 식별하는 것이 긍정적인 사용자 경험을 생성하는 데 크게 도움을 준다. 제스처 인식기 시스템이 너무 민감하고 약간 전방으로의 손(302)의 움직임이라도 던짐으로 해석되는 경우, 사용자가 제스처를 할 의도가 없고 따라서 시스템에 대한 제어를 하지 않는 경우 제스처가 인식될 것이기 때문에 사용자가 좌절하게 될 수 있다. 제스처 인식기 시스템이 충분히 민감하지 않은 경우, 시스템은 던지는 제스처를 하기 위한 사용자에 의한 의식적인 시도를 인식하지 않을 수 있고, 그로써 사용자를 유사한 방식으로 좌절시킬 수 있다. 감도 범위의 어느 한쪽 끝에서, 사용자는 시스템에 입력을 적절히 제공할 수 없기 때문에 좌절하게 된다.
제스처에 대한 다른 매개변수는 움직인 거리일 수 있다. 사용자의 제스처가 가상 환경에서 아바타의 동작을 제어하는 경우, 그 아바타는 공으로부터 팔의 길이만큼 떨어져 있을 수 있다. 사용자가 공과 상호작용하여 공을 잡고자 하는 경우, 이것은 잡기 제스처를 하는 동안 사용자가 그의 팔(302-310)을 완전히 뻗는 것을 필요로 할 수 있다. 이 상황에서, 사용자가 그의 팔(302-310)을 단지 부분적으로 뻗는 유사한 잡기 제스처는 공과 상호작용하는 결과를 달성하지 않을 수 있다.
제스처 또는 그의 일부분은 제스처가 행해져야만 하는 공간의 체적을 매개변수로서 가질 수 있다. 제스처가 신체 움직임을 포함하는 경우, 공간의 이 체적은 통상적으로 신체와 관련하여 표현될 수 있다. 예를 들어, 오른손잡이 사용자에 대한 미식축구공 던지기 제스처가 오른쪽 어깨(310a)보다 낮지 않고 머리(322)에 대해 던지는 팔(302a-310a)과 동일한 쪽의 공간의 체적 내에서만 인식될 수 있다. 이 던지기 제스처에서와 같이, 체적의 모든 경계를 정의할 필요가 없을 수 있으며, 이 경우 신체로부터 떨어진 외부 경계가 정의되지 않은 채로 있고, 체적은 무제한으로 또는 모니터링되고 있는 장면의 가장자리까지 뻗어 있다.
도 4b는 도 2의 제스처 인식기 엔진(190)의 예시적인 일 실시예의 추가 상세를 제공한다. 도시된 바와 같이, 제스처 인식기 엔진(190)은 제스처 또는 제스처들을 결정하기 위해 적어도 하나의 필터(418)를 포함할 수 있다. 필터(418)는 제스처(426)(이후부터 "제스처"라고 함)를 정의하는 정보를 포함하며, 또한 그 제스처에 대한 매개변수(428) 또는 메타데이터를 포함할 수 있다. 예를 들어, 신체의 후방으로부터 신체의 전방으로의 하나의 손의 움직임을 포함하는 던지기는 신체의 후방으로부터 신체의 전방으로의 사용자의 하나의 손의 움직임을 나타내는 정보를 포함하는 제스처(426)로서 구현될 수 있는데, 그 이유는 그 움직임이 깊이 카메라에 의해 캡처될 것이기 때문이다. 이어서 그 제스처(426)에 대해 매개변수(428)가 설정될 수 있다. 제스처(426)가 던지기인 경우, 매개변수(428)는 손이 도달해야만 하는 임계값 속도, 손이 이동해야 하는 거리(절대적 또는 전체로서 사용자의 크기에 대해 상대적), 및 제스처가 발생했다는 인식기 엔진에 의한 신뢰도 평가(confidence rating)일 수 있다. 제스처(426)에 대한 이들 매개변수(428)는 응용 프로그램들 간에, 단일 응용 프로그램의 컨텍스트들 간에, 또는 하나의 응용 프로그램의 한 컨텍스트 내에서 시간에 따라 변할 수 있다.
필터는 모듈 방식이거나 상호교환가능할 수 있다. 일 실시예에서, 필터는 각각이 유형을 갖는 다수의 입력 및 각각이 유형을 갖는 다수의 출력을 가진다. 이 상황에서, 제1 필터는, 인식기 엔진 아키텍처의 어떤 다른 측면도 변경하지 않고, 제1 필터와 동일한 수 및 유형의 입력 및 출력을 가지는 제2 필터로 대체될 수 있다. 예를 들어, 입력으로서 골격 데이터를 받고 필터와 연관된 제스처가 행해지고 있을 신뢰도 및 조향 각도를 출력하는 구동용 제1 필터가 있을 수 있다. 이 제1 구동 필터를 제2 구동 필터로 대체하고자 하는 경우 - 어쩌면 제2 구동 필터가 보다 효율적이고 더 적은 수의 처리 리소스를 필요로 하기 때문임 -, 제2 필터가 그 동일한 입력 및 출력 - 골격 데이터 유형의 하나의 입력과 신뢰도 유형 및 각도 유형의 2개의 출력 - 을 가지는 한, 제1 필터를 제2 필터로 대체하기만 함으로써 그렇게 할 수 있다.
필터는 매개변수를 가질 필요가 없다. 예를 들어, 사용자의 신장을 반환하는 "사용자 신장(user height)" 필터는 조정될 수 있는 어떤 매개변수도 허용하지 않을 수 있다. 대안의 "사용자 신장" 필터는 조정가능한 매개변수 - 사용자의 신장을 결정하는 데 사용자의 신발, 헤어스타일, 모자 및 자세를 고려해야 할지 여부 등 - 를 가질 수 있다.
필터에 대한 입력은 관절에서 만나는 뻐들에 의해 형성되는 각도와 같은 사용자의 관절 위치에 관한 관절 데이터, 장면으로부터의 RGB 컬러 데이터, 및 사용자의 측면의 변화율과 같은 것들을 포함할 수 있다. 필터로부터의 출력은 주어진 제스처가 행해질 신뢰도, 제스처 움직임이 행해지는 속도, 및 제스처 움직임이 행해지는 시간과 같은 것들을 포함할 수 있다.
컨텍스트가 문화 컨텍스트일 수 있고, 컨텍스트가 환경 컨텍스트일 수 있다. 문화 컨텍스트는 시스템을 사용하는 사용자의 문화를 말한다. 상이한 문화는 유사한 제스처를 사용하여 아주 상이한 의미를 부여할 수 있다. 예를 들어, 다른 사용자에게 "보라고" 또는 "자신의 눈을 사용하라고" 말하고자 하는 미국 사용자는 집게 손가락을 눈의 원단쪽에 가까운 머리 위에 둘 수 있다. 그렇지만, 이탈리아 사용자에게는, 이 제스처가 마피아에 대한 언급으로서 해석될 수 있다.
이와 유사하게, 단일 응용 프로그램의 상이한 환경들 간에 상이한 컨텍스트가 있을 수 있다. 자동차를 작동시키는 것을 포함하는 1인칭 슈팅 게임을 생각해보자. 사용자가 걷고 있는 동안, 손가락을 지면 쪽으로 향하게 한 상태에서 주먹을 쥐는 것 및 전방으로 신체로부터 멀어지게 주먹을 뻗는 것은 펀치 제스처를 나타낼 수 있다. 사용자가 운전 컨텍스트에 있는 동안, 그 동일한 동작은 "기어 변속" 제스처를 나타낼 수 있다. 또한, 하나 이상의 메뉴 환경이 있을 수 있으며, 이 경우 사용자는 자신의 게임을 저장하거나, 자신의 캐릭터의 장비 중에 선택하거나, 직접적인 게임-플레이를 포함하지 않는 유사한 동작을 수행할 수 있다. 그 환경에서, 이 동일한 제스처가 어떤 것을 선택하는 것 또는 다른 장면으로 진행하는 것과 같은 제3 의미를 가질 수 있다.
제스처 인식기 엔진(190)은 기능을 제스처 필터(418)에 제공하는 베이스 인식기 엔진(base recognizer engine)(416)을 가질 수 있다. 일 실시예에서, 인식기 엔진(416)이 구현하는 기능은 인식된 제스처 및 기타 입력을 추적하는 시간에 따른 입력 보관(input-over-time archive), 은닉 마코프 모델(Hidden Markov Model) 구현(모델링된 시스템이 마코프 프로세스 - 현재 상태가 미래 상태를 결정하는 데 필요한 임의의 과거 상태 정보를 캡슐화하고 따라서 이 목적을 위해 어떤 다른 과거 상태 정보도 유지되어서는 안되는 프로세스 - 인 것으로 가정되고, 미지의 매개변수 및 은닉 매개변수가 관찰가능 데이터로부터 결정되는 경우)은 물론, 제스처 인식의 특정의 인스턴스를 해결하는 데 필요한 다른 기능을 포함한다.
필터(418)는 베이스 인식기 엔진(416) 상부에 로드되어 구현되며, 엔진(416)에 의해 모든 필터(418)에 제공되는 서비스를 이용할 수 있다. 일 실시예에서, 베이스 인식기 엔진(416)은 수신된 데이터를 처리하여, 수신된 데이터가 임의의 필터(418)의 요구사항을 만족시키는지를 판정한다. 입력을 파싱하는 것과 같은 이들 제공된 서비스가 각각의 필터(418)에 의해서라기보다는 베이스 인식기 엔진(416)에 의해 한번 제공되기 때문에, 이러한 서비스는 어떤 기간에 필터(418)마다 한번씩이 아니라 그 기간에 한번 처리되기만 하면 되며, 따라서 제스처를 결정하는 데 필요한 처리가 감소된다.
응용 프로그램은 인식기 엔진(190)에 의해 제공되는 필터(418)를 사용할 수 있거나, 베이스 인식기 엔진(416)에 플러그 인(plug in)되어 있는 그 자신의 필터(418)를 제공할 수 있다. 일 실시예에서, 모든 필터(418)는 이 플러그 인(plug-in) 특성을 가능하게 해주기 위해 공통의 인터페이스를 가진다. 게다가, 모든 필터(418)는 매개변수(428)를 이용할 수 있고, 따라서 이하에 기술된 단일 제스처 도구가 필터 시스템(418) 전체를 디버그하고 조정하는 데 사용될 수 있다.
이들 매개변수(428)는 제스처 도구(420)에 의해 응용 프로그램 또는 응용 프로그램의 컨텍스트에 대해 조정될 수 있다. 일 실시예에서, 제스처 도구(420)는 복수의 슬라이더(422)를 포함하며, 각각의 슬라이더(422)는 매개변수(428)는 물론, 신체(424)의 흉부 표현에 대응한다. 매개변수(428)가 대응하는 슬라이더(422)에 의해 조정될 때, 신체(424)는 그 매개변수(428)에 의해 제스처로서 인식될 동작 및 그 자체로서 식별되는 그 매개변수(428)에 의해 제스처로서 인식되지 않을 동작 둘다를 나타낼 수 있다. 제스처의 매개변수(428)의 이러한 시각화는 제스처를 디버그하기도 하고 미세 조정하기도 하는 효과적인 수단을 제공한다.
도 5는 적층된 제스처 또는 필터(418)로부터 생성되는 보다 복잡한 제스처 또는 필터(418)를 나타낸 것이다. 제스처가 서로에 적층될 수 있고, 적층된 필터는 이어서 복수의 다른 필터를 포함하는 필터로서 생각될 수 있다. 즉, 사용자에 의해 한번에 2개 이상의 제스처가 표현될 수 있다. 예를 들어, 던지기 제스처가 행해질 때 던지기 이외에 어떤 입력도 허용되지 않거나 제스처의 구성요소를 제외하고는 사용자가 움직이지 않는 채로 있어야 하는 것(하나의 팔만을 필요로 하는 던지기 제스처를 하는 동안 가만히 서 있는 것)은 아니다. 제스처가 적층되는 경우, 사용자는 점프 제스처와 던지기 제스처를 동시에 할 수 있고, 이들 제스처 둘다가 제스처 엔진에 의해 인식될 것이다.
도 5a는 적층 패러다임(stacking paradigm)에 따른 간단한 제스처 필터(418)를 나타낸 것이다. IFilter 필터(502)는 모든 제스처 필터에서 사용될 수 있는 기본 필터(418)이다. IFilter(502)는 사용자 위치 데이터(504)를 받고 제스처가 행해졌다는 신뢰 수준(506)을 출력한다. 이는 또한 그 위치 데이터(504)를 SteeringWheel 필터(508)에 피드하고, SteeringWheel 필터는 이를 입력으로 받아 사용자가 조향하고 있는 각도(예를 들어, 사용자의 현재 방향의 오른쪽으로 40도)(510)를 출력한다.
도 5b는 도 5a의 제스처 필터 상에 필터(418)를 적층하는 보다 복잡한 제스처를 나타낸 것이다. IFilter(502) 및 SteeringWheel(508)에 부가하여, IFilter(502)로부터 위치 데이터(504)를 수신하고 제스처(514)를 통해 사용자가 전진한 양을 출력하는 ITracking 필터(512)가 있다. ITracking(512)은 또한, 비상 브레이크를 사용하는 것과 같이, 차량을 조작할 때 행해질 수 있는 다른 제스처에 관한 필터(418)인 GreaseLightning(514) 및 EBrake(516)에 위치 데이터(504)를 피드한다.
제스처를 적층하는 다른 실시예가 있다. 일 실시예에서, 위치 데이터(504)가, IFilter(502)를 통하기보다는, 적층된 제스처의 모든 필터에 직접 전달되고, 인식기 엔진의 구성요소는 각각의 필터가 어떻게 상호 연동하는지를 결정한다. 예를 들어, 점프 필터 및 던지기 필터의 경우, 어떤 다른 사용자 동작도 행해지지 않을 때 각각이 독립적으로 인식될 수 있지만, 이 구성요소는 각각의 필터로부터의 각자의 출력에 기초하여 점프 및 던지기일 수 있는 어떤 사용자 입력이 동시에 행해지고 있다는 것을 인식할 것이다. 이 구성요소는 그러며 던지기 필터를 덜 엄격하게(예를 들어, 매개변수를 만족하도록 적당한 값의 범위를 확장하여) 그리고 "던지기일지도 모르는 어떤 입력"이 던지기로서 인식될 수 있다는 것에 기초하여 해석할 수 있다.
도 6은 사용자(602)가 미식축구 비디오 게임에서 "페어 캐치"에 대한 신호를 보내기 위해 할 수 있는 예시적인 제스처를 나타낸 것이다. 이들 도면은 여러 시점에서의 사용자를 나타낸 것이며, 도 6a는 제1 시점이고, 도 6e는 마지막 시점이다. 이들 도면 각각은 깊이 카메라(402)에 의해 캡처된 스냅샷 또는 이미지 데이터의 프레임(꼭 이미지 데이터의 연속적인 프레임일 필요는 없음)에 대응할 수 있는데, 그 이유는 깊이 카메라(402)가 사용자가 거리를 이동할 수 있는 것보다 더 빠르게 프레임을 캡처할 수 있기 때문이다. 예를 들어, 이 제스처는 3초의 기간에 걸쳐 행해질 수 있고, 깊이 카메라가 초당 40 프레임으로 데이터를 캡처하는 경우, 사용자(602)가 이 페어 캐치 제스처를 하는 동안에 깊이 카메라는 60 프레임의 이미지 데이터를 캡처할 것이다.
도 6a에서, 사용자(602)는 자신의 팔(604)을 옆구리 아래에 둔채로 시작한다. 사용자는 이어서 도 6b에 나타낸 바와 같이 자신의 팔을 어깨 위로 들어올리고, 이어서 도 6c에 나타낸 바와 같이, 더 위로 올려 대략 머리 높이까지 올린다. 그곳으로부터, 사용자는 도 6d에 나타낸 바와 같이 자신의 팔(604)을 어깨 높이까지 내리고, 도 6e에 나타낸 바와 같이, 다시 팔을 위쪽으로 대략 머리 높이까지 들어올린다. 시스템이 제스처가 취소되거나 다른 제스처가 행해지고 있다는 것을 신호할 수 있는 어떤 중간 위치도 없이 사용자(602)에 의한 이들 위치를 캡처하는 경우, 시스템은 페어 캐치 제스처가 사용자(602)에 의해 행해진 것으로 인식할 수 있다.
도 7은 사용자의 골격 맵을 생성하기 위해 이미지 데이터의 각각의 프레임이 파싱되었을 때 도 5의 예시적인 "페어 캐치" 제스처를 나타낸 것이다. 사용자의 깊이 이미지로부터 골격 맵을 생성한 시스템은 이제 그 사용자의 신체가 시간에 따라 어떻게 움직이는지를 결정하고 그것으로부터 제스처를 파싱할 수 있다.
도 7a에서, 사용자의 어깨(310)는 팔꿈치(306)보다 위에 있고, 팔꿈치(306)는 또한 손(302)보다 위에 있다. 도 7b에서, 어깨(310), 팔꿈치(306) 및 손(302)은 이어서 균등한 높이에 있다. 시스템은 이어서 도 7c에서 손(302)이 팔꿈치보다 위에 있고, 팔꿈치가 어깨(310)보다 위에 있다는 것을 검출한다. 도 7d에서, 사용자는 어깨(310), 팔꿈치(306) 및 손(302)이 균등한 높이에 있는 도 7b의 위치로 되돌아왔다. 도 7e에 도시된 제스처의 최종 위치에서, 사용자는 손(302)이 팔꿈치보다 위에 있고 팔꿈치가 어깨(310)보다 위에 있는 도 7c의 위치로 되돌아간다.
임의의 하나의 이미지에서 사용자가 정지해 있는 것처럼 보이도록 깊이 카메라(402)가 일련의 정지 영상을 캡처하는 동안, (전술한 바와 같이, 정지해 있는 제스처가 아니라) 사용자는 이 제스처를 수행하는 동안 움직이고 있다. 시스템은 각각의 정지 영상에서의 이 일련의 자세를 받고, 그것으로부터 사용자가 행하고 있는 움직이는 제스처를 결정할 수 있다.
제스처를 수행할 때, 사용자는, 오른쪽 어깨(310a), 오른쪽 팔꿈치(306a) 및 오른쪽 손(302a)에 의해 형성되는 각도, 예를 들어, 140° 내지 145°로 만들 수 있기는 쉽지 않다. 따라서, 페어 캐치 제스처(428)를 위해 필터(418)를 사용하는 응용 프로그램은 응용 프로그램의 구체적 사항을 최상으로 수행하기 위해 연관된 매개변수(426)를 조정할 수 있다. 예를 들어, 팔꿈치(306) 위치에 관계없이, 사용자의 손(302)이 어깨(310)보다 위에 있을 때마다 도 7c 및 도 7e에서의 위치가 인식될 수 있다. 보다 엄격한 일련의 매개변수는 손(302)이 머리(310)보다 위에 있는 것과 팔꿈치(306)가 어깨(310)보다 위에 있는 동시에 머리(322)와 손(302) 사이에 있는 것을 필요로 할 수 있다. 그에 부가하여, 페어 캐치 제스처(428)에 대한 매개변수(426)는 사용자가 지정된 기간(1.5초 등) 내에 도 7a의 위치로부터 도 7e의 위치를 통해 움직일 것을 필요로 할 수 있으며, 사용자가 이들 위치를 통해 움직이는 데 1.5초보다 오래 걸리는 경우, 이는 페어 캐치(418)로서 인식되지 않을 것이다.
도 8은 제스처 필터 라이브러리(802)로부터의 일반 제스처 필터(806)가 특정의 작업에 대한 보완적인 제스처 필터의 장르 패키지(804)로 그룹화되는 방법을 나타낸 것이다. 제스처 필터 라이브러리(802)는 시스템에 의해 제공된 모든 제스처 필터(806)를 취합한다. 일 실시예에서, 응용 프로그램은 그 응용 프로그램의 사용을 위해 부가의 제스처 필터를 제공할 수 있다. 일반 제스처 필터는 "팔로 던지기"(806a) 및 "웅크리기"(806b)와 같은 것들을 포함한다. 이들 제스처 필터는 이어서 장르 패키지(804)에서 서로 그룹화된다.
장르 패키지(804)는 장르 내에서 공통으로 사용되는 그 제스처를 포함할 수 있다. 예를 들어, 1인칭 슈팅(first-person shooter)(FPS) 장르 패키지(804a)는 무기를 발포하는 것(812c), 발사체를 발사하는 것(812d), 펀치하는 것(812e), 문을 여는 것(812f), 웅크리는 것(812g), 점프하는 것(812h), 달리는 것(812i), 및 회전하는 것(812j)에 대한 제스처 필터를 가질 수 있다. 이 FPS 장르 패키지(804a)는 일반 FPS 장르 패키지(808a) - 많은 수의 FPS 응용 프로그램에서 적절히 동작할 가능성이 있도록 조정되거나 설정된 제스처 필터 매개변수를 갖는 장르 패키지 - 를 제공하는 것으로 생각될 수 있다.
장르 패키지는 알려진 장르 또는 응용 프로그램에 대해 동작하는 보완적 제스처 필터의 그룹으로 제한되지 않는다. 장르 패키지는 적절한 장르가 아직 식별되지 않았더라도, 응용 프로그램 또는 장르에 의해 사용되는 필터들 또는 보완적인 필터들의 부분집합을 포함하는 제스처 필터를 포함할 수 있다.
이어서, 응용 프로그램이 그 응용 프로그램의 상세를 만족시키도록 일반 장르 패키지를 조정할 수 있다. 응용 프로그램은 장르 패키지 내의 필터의 매개변수에 대한 값을 설정함으로써 일반 장르 패키지를 조정할 수 있다. 예를 들어, 게임 A(810a)의 제작자는 문을 여는 제스처 필터(812f)를 등록하는 데 예증적 움직임이 요구되는 경우에 자신의 게임이 가장 잘 동작한다고 결정할 수 있는데, 그 이유는 그렇지 않은 경우 이는 펀치하는 제스처 필터(812e)와 너무 유사하기 때문이다. 그렇지만, 게임 B의 제작자는 이것이 관심사가 아니라고 결정하고, 문을 여는 제스처 필터(812fB)를 등록하기 위해 보다 적당한 움직임만을 필요로 할 수 있다.
장르 패키지가 기계 판독가능 명령어를 포함하는 실시예에서, 장르 패키지는 소스 코드 형태의 또는 명령어의 어느 정도의 컴파일을 반영하는 형태의 명령어로서 제공될 수 있다.
도 9는 응용 프로그램이 하나의 필터의 하나의 매개변수에 대한 값을 제공할 때 필터 패키지 내의 보완적인 제스처 필터를 조정하는 예시적인 동작 절차를 나타낸 것이다.
동작(902)은 복수의 필터를 포함하는 패키지를 제공하는 것을 나타내며, 각각의 필터는 제스처 및 적어도 하나의 매개변수에 관한 정보를 포함하고, 각각의 필터는 패키지 내의 적어도 하나의 다른 필터와 보완적이다. 패키지는 특정의 장르에 대한 제스처 필터를 나타낼 수 있다. 예를 들어, 비디오 게임에 대한 장르 패키지는 1인칭 슈팅, 액션, 운전 및 스포츠와 같은 장르를 포함할 수 있다.
본 명세서에서 사용되는 바와 같이, 적어도 하나의 실시예에서, "패키지를 제공하는 것"은 패키지 내의 필터에 대응하는 프로그래밍 언어 라이브러리 파일에의 액세스를 허용하는 것 또는 응용 프로그램에 대한 응용 프로그래밍 인터페이스(API)에의 액세스를 허용하는 것을 말할 수 있다. 응용 프로그램의 개발자는 라이브러리 파일을 로드하고 이어서 적절한 경우 메서드 호출을 할 수 있다. 예를 들어, 스포츠 패키지의 경우, 대응하는 스포츠 패키지 라이브러리 파일이 있을 수 있다.
응용 프로그램에 포함될 때, 응용 프로그램은 주어진 API에 따라 스포츠 패키지를 사용하는 호출을 할 수 있다. 이러한 API는 필터에 대한 매개변수의 값을 반환하는 것, 필터에 대한 매개변수의 값을 설정하는 것, 필터의 ID를 응용 프로그램의 어떤 부분을 트리거하는 것(사용자가 적절한 테니스 라켓 스윙 제스처를 할 때 사용자-제어 테니스 플레이어로 하여금 테니스 라켓을 스윙하게 하는 것 등)과 상관시키는 것을 포함할 수 있다.
이상에서 기술한 바와 같이, 제스처는 아주 다양한 것들을 포함할 수 있다. 제스처는, 예를 들어, 웅크리기, 점프, 기대기, 팔로 던지기, 토스하기, 스윙, 피하기, 차기 및 블로킹 중 어느 것이라도 될 수 있다. 이와 마찬가지로, 제스처는 사용자 인터페이스를 탐색하는 것에 대응할 수 있다. 예를 들어, 사용자는 자신의 손을 손가락은 위를 가리키고 손바닥은 3D 카메라 쪽으로 향해 있도록 하고 있을 수 있다. 사용자는 이어서 주먹을 쥐기 위해 손가락을 손바닥 쪽으로 오므릴 수 있고, 이것은 창-기반 사용자 인터페이스 컴퓨팅 환경에서의 포커스된 창(focused window)이 닫혀야만 한다는 것을 나타내는 제스처일 수 있다.
응용 프로그램 내의 아바타가 펀치를 날리는 것부터 응용 프로그램 내의 창이 닫혀야 하는 것까지의 모든 것을 나타내기 위해 제스처가 사용될 수 있기 때문에, 비디오 게임부터 텍스트 편집기까지 아주 다양한 응용 프로그램이 제스처를 이용할 수 있다.
보완적인 제스처 필터 - 서로 공통으로 사용되는 제스처 필터에서와 같이 보완적이거나 하나의 제스처 필터의 매개변수의 변경이 다른 제스처 필터의 매개변수를 변경하게 되는 것에서와 같이 보완적임 - 가 서로 그룹화되어, 그 장르 내의 응용 프로그램에 의해 사용될 가능성이 있는 장르 패키지에 넣어질 수 있다. 이들 패키지는 적어도 하나의 패키지를 선택할 수 있는 응용 프로그램에 의해 이용가능하거나 식별될 수 있다. 응용 프로그램은, 응용 프로그램의 고유의 측면에 가장 적합하도록, 선택된 패키지 내의 필터의 매개변수(들)를 조정하거나 수정할 수 있다. 그 매개변수가 조정될 때, 필터 또는 제2 필터 중 어느 하나의 제2의 보완적 매개변수(상호의존적 의미에서)는 또한 매개변수가 보완적인 채로 있도록 조정될 수 있다.
응용 프로그램-결정 매개변수는 응용 프로그램이 있는 컨텍스트에 기초하여 변할 수 있다. 그를 위해, 응용 프로그램은 필터에 대한 응용 프로그램-결정 매개변수에 복수의 값을 할당할 수 있으며, 각각의 값은 상이한 컨텍스트에 대응한다. 이상에서 논의된 바와 같이, 이 컨텍스트는 문화 컨텍스트 또는 환경 컨텍스트일 수 있다.
동작(904)은 제1 필터의 매개변수에 값을 할당하는 것의 표시를 수신하는 것을 나타낸다. 응용 프로그램-결정 매개변수는 신체 부위, 공간의 체적, 속도, 움직임의 방향, 각도, 및 움직임이 일어나는 장소와 같은 필터의 아주 다양한 특성들 중 임의의 것을 포함할 수 있다.
일 실시예에서, 응용 프로그램-결정 매개변수의 값은 제스처를 하는 것을 통해 응용 프로그램의 최종 사용자에 의해 결정된다. 예를 들어, 사용자가 생각하기에 제스처가 어느 움직임을 포함해야 하는지를 사용자가 지정할 수 있도록, 응용 프로그램은 사용자가 응용 프로그램을 훈련시킬 수 있게 해줄 수 있다. 이것은 자신의 운동 기능(motor skill)을 잘 제어하지 못하는 사용자가 어느 움직임을 할 수 있는지를 대응하는 제스처와 링크시킬 수 있게 해주는 데 유익할 수 있다. 이것이 이용가능하지 않은 경우, 사용자는 좌절할 수 있는데, 그 이유는 사용자가 제스처를 생성하기 위해 응용 프로그램에 의해 요구되는 방식으로 자신의 신체를 움직이게 할 수 없기 때문이다.
보완적 필터 - 상호 관련된 매개변수를 가지는 복수의 필터 - 가 존재하는 실시예에서, 제1 필터의 응용 프로그램-결정 매개변수에 대한 값을 응용 프로그램으로부터 수신하는 것은 제1 필터의 응용 프로그램-결정 매개변수를 그 값으로 설정하는 것 및 제1 필터의 매개변수의 값에 기초하여 제2의 보완적인 필터의 보완적인 응용 프로그램-결정 매개변수를 설정하는 것 둘다를 포함할 수 있다. 예를 들어, 특정 방식으로 미식축구공을 던지는 사용자가 특정 방식으로 야구공도 던질 가능성이 있다고 결정할 수 있다. 따라서, 미식축구공 던지기 제스처에 대한 필터에 관한 속도 매개변수와 같은 하나의 필터의 특정의 응용 프로그램-결정 매개변수가 특정의 방식으로 설정되어야만 하는 것으로 판정되는 경우, 야구공 던지기 제스처에 관한 속도 매개변수와 같은 다른 보완적인 응용 프로그램-결정 매개변수가 그 제1 응용 프로그램-결정 매개변수가 어떻게 설정되는지에 기초하여 설정될 수 있다.
이것이 주어진 응용 프로그램-결정 매개변수 또는 심지어 필터들에 걸쳐 동일한 유형의 응용 프로그램-결정 매개변수에 대해 동일한 값일 필요는 없다. 예를 들어, 미식축구공 던지기가 X m/s의 전방 팔 속도로 행해져야만 할 때, 미식축구공 잡기가 몸통으로부터 적어도 Y m 떨어져 있는 손으로 행해져야만 한다는 것일 수 있다.
팔 속도는 X 초과와 같이, 이 값이 임계값일 수 있다. 팔 속도는 X와 같이, 이 값이 절대적인 것일 수 있다. 팔 속도가 X로부터 Y 내에 있는 것과 같이 위반 허용 범위가 있을 수 있다. 팔 속도가 X 이상 Z 미만과 같이 이 값이 또한 범위도 포함할 수 있다.
동작(906)은 제1 필터의 매개변수에 값을 할당하는 것을 나타낸다. 매개변수와 그의 값 사이의 연관이 데이터베이스에 저장되는 경우, 이것은 매개변수와의 연관과 함께 값을 데이터베이스에 저장하는 것을 포함할 수 있다.
동작(908)은 제2 값을 제2 필터의 제2 매개변수에 할당하는 것을 나타내고, 제2 값은 제1 필터의 매개변수에 할당된 값을 사용하여 결정된다. 앞서 논의된 바와 같이, 제2 값은 다양한 방식으로 제1 값과 관련될 수 있다. 2개의 매개변수가 임계값 점프 높이와 같은 실질적으로 유사한 무언가를 포함하는 경우, 제2 값은 제1 값과 같을 수 있다. 제2 값과 제1 값은 비례 관계, 역비례 관계, 선형 관계, 지수 관계, 및 값을 입력으로서 받는 함수와 같은 각종의 다른 관계를 가질 수 있다.
개체-지향 구현에서와 같이 필터가 서로로부터 특성을 상속받을 수 있는 실시예에서, 제2 필터는 제1 필터의 자식을 포함할 수 있고, 제1 필터는 마찬가지로 제2 필터에 대한 부모이다. 예를 들어, "손바닥 치기" 필터를 생각해보자. 이 필터는 "하이 파이브", "하이 텐" 및 "로우 파이브"와 같은 손바닥 치기의 변형에 대한 부모로서 역할할 수 있다. "손바닥 치기"가 "손 움직임 거리 임계값" 매개변수를 가지는 경우, 그 매개변수에 대한 값이 설정될 때, 모든 자식 필터에 대한 "손 움직임 거리 임계값" 매개변수가 그 동일한 값으로 설정될 수 있다.
이와 마찬가지로, 2개의 매개변수의 보완적인 성질은 한 필터가 다른 필터에 포함되도록 적층되는 것으로 인한 것일 수 있다. 한 필터는 조향 필터일 수 있고, 그 필터는 운전 필터를 생성하기 위해 기어 변속, 가속 및 감속과 같은 다른 필터들과 적층된다. 조향 필터의 "최소 조향 각도 임계값" 매개변수가 수정될 때, 운전 필터의 대응하는 "최소 조향 각도 임계값"도 역시 수정될 수 있다.
동작(910)은 사람의 이미지를 포함하는 데이터를 수신하는 것, 및 데이터가 특정의 필터와 일치하는지(따라서 특정의 제스처를 나타내는지)를 판정하기 위해 필터를 파싱할 때, 패키지에 있지 않은 필터에 대한 데이터를 파싱하기 전에 선택된 패키지 내의 각각의 필터에 대한 데이터를 파싱하는 것의 선택적인 동작을 나타낸다. 응용 프로그램이, 그 필터 패키지에 대한 라이브러리 파일을 포함시키는 등에 의해, 사용하기 위한 필터 패키지를 선택하는 경우, 응용 프로그램은 그렇게 할 가능성이 있는데, 그 이유는 그 필터가 응용 프로그램의 사용자에 의해 빈번하게 사용될 것이기 때문이다. 게다가, 1인칭 슈팅 패키지에서의 달리기, 점프, 기총소사(strafe), 웅크리기, 및 무기 발포 필터에서와 같이, 필터 패키지 내의 필터가 짧은 시간 간격으로 연속하여 사용될 수 있다. 이를 위해, 필터 패키지가 응용 프로그램에 의해 사용되는 것으로 식별된 경우, 전술한 베이스 필터 엔진과 같은 시스템 처리 필터가, 선택된 필터 패키지를 구성하는 필터에 대한 데이터를 먼저 처리함으로써, 사용자 입력에 대응하는 이미지 데이터를 처리하는 데 필요한 처리 리소스를 감소시킬 가능성이 있을 수 있다.
동작(912)은 제3 값을 제2 매개변수에 할당하는 것의 표시를 수신하는 것 및 제3 값을 제2 매개변수에 할당하는 것의 선택적인 동작을 나타낸다. 2개의 매개변수 사이의 관계가 쌍방(bilateral)일 필요는 없다. 값의 변경이 제2 값에 영향을 주지만 제2 값의 변경이 제1 값에 영향을 주지 않을 수 있다.
동작(914)은 제4 값을 매개변수에 할당하는 것의 선택적인 동작을 나타내고, 제4 값은 제3 값을 사용하여 결정된다. 또한, 2개의 매개변수 사이의 관계가 쌍방일 수 있다. 이 실시예에서, 제2 매개변수의 새로운 값을 사용하여 결정되는 바와 같이, 제2 매개변수의 값의 변경으로 인해 제1 매개변수의 값이 변경된다.
동작(916)은 사람의 이미지를 포함하는 데이터를 수신하는 것, 데이터가 패키지의 제1 필터와 일치하는지를 판정하는 것, 및 필터와 동시에 사용자에 의해 나타내어질 수 없는 필터에 대한 데이터를 파싱하기 전에 제1 필터와 동시에 사용자에 의해 나타내어질 수 있는 패키지 내의 각각의 다른 필터에 대한 데이터를 파싱하는 것의 선택적인 동작을 나타낸다. 일 실시예에서, 1인칭 슈팅 패키지에서의 동시적인 달리기 필터 및 무기 발포 필터와 같이, 필터 패키지 내의 필터가 동시에 사용될 수 있다. 이를 위해, 필터 패키지가 응용 프로그램에 의해 사용되는 것으로 식별된 경우, 전술한 베이스 필터 엔진과 같은 시스템 처리 필터가, 필터 패키지를 구성하는 필터에 대한 데이터를 먼저 처리함으로써, 사용자 입력에 대응하는 이미지 데이터를 처리하는 데 필요한 처리 리소스를 감소시킬 가능성이 있을 수 있다.
결론
본 발명이 다양한 도면에 예시된 바람직한 측면과 관련하여 기술되어 있지만, 본 발명을 벗어나지 않고 본 발명의 동일한 기능을 수행하기 위해, 다른 유사한 측면이 사용될 수 있거나 기술된 측면에 대해 수정 및 추가가 행해질 수 있다는 것을 잘 알 것이다. 따라서, 본 발명이 임의의 하나의 측면으로 제한되어서는 안되고, 오히려 첨부된 특허청구범위에 따라 그의 범위 및 폭이 해석되어야 한다. 예를 들어, 본 명세서에 기술된 다양한 절차가 하드웨어 또는 소프트웨어 또는 이 둘의 조합으로 구현될 수 있다. 따라서, 개시된 실시예의 방법 및 장치, 또는 개시된 실시예의 어떤 측면 또는 일부분이 플로피 디스켓, CD-ROM, 하드 드라이브, 또는 임의의 다른 기계 판독가능 저장 매체 등의 유형의 매체(tangible media)에 구현된 프로그램 코드(즉, 명령어)의 형태를 가질 수 있다. 프로그램 코드가 컴퓨터 등의 기계에 로드되어 실행될 때, 그 기계는 개시된 실시예를 실시하도록 구성된 장치가 된다. 본 명세서에 명확히 기재된 특정의 구현에 부가하여, 다른 측면 및 구현이 본 명세서에 개시된 명세서를 고려하면 당업자에게 명백하게 될 것이다. 본 명세서 및 예시된 구현은 단지 일례로서 보아야 한다.

Claims (15)

  1. 보완적인 제스처 필터들의 패키지를 응용 프로그램에 제공하는 방법으로서,
    복수의 필터를 포함하는 패키지를 제공하는 단계(902) - 각각의 필터는 제스처에 관한 정보를 포함하고, 적어도 하나의 필터는 상기 패키지 내의 적어도 하나의 다른 필터와 보완적임 -,
    제1 필터의 매개변수에 제1 값을 할당한다는 표시를 수신하는 단계(904),
    상기 매개변수에 상기 값을 할당하는 단계(906), 및
    제2 필터의 제2 매개변수에 제2 값을 할당하는 단계(908) - 상기 제2 값은 상기 제1 값을 사용하여 결정됨 -
    를 포함하는 방법.
  2. 제1항에 있어서, 상기 제1 필터의 상기 매개변수가 신체 일부, 공간의 체적, 속도, 움직임의 방향, 각도, 2차원(2D) 평면 또는 움직임이 일어나는 장소를 나타내는 방법.
  3. 제1항에 있어서, 상기 제스처가 웅크리기, 점프, 기대기, 팔로 던지기, 토스하기, 스윙, 피하기, 차기 또는 블로킹을 포함하는 방법.
  4. 제1항에 있어서, (i) 필터가 상기 패키지 내의 적어도 하나의 다른 필터의 매개변수에 기초하여 결정되는 적어도 하나의 매개변수를 갖는 경우, (ii) 필터가 상기 패키지 내의 적어도 하나의 다른 필터에 의해 표현되는 제스처의 짧은 기간 내에 사용자에 의해 공통적으로 행해지는 제스처를 나타내는 경우, 또는 (iii) 필터에 의해 표현된 제스처가 상기 패키지 내의 적어도 하나의 필터에 의해 표현된 제스처와 동시에 행해질 수 있는 경우에, 그 필터가 상기 패키지 내의 적어도 하나의 다른 필터와 보완적인 방법.
  5. 제1항에 있어서, 상기 매개변수에 상기 값을 할당한다는 표시는 사용자가 상기 제스처를 한 것의 결과로서 수신되는 방법.
  6. 제1항에 있어서, 상기 값이 고정된 값, 범위 또는 허용 오차를 갖는 값인 방법.
  7. 제1항에 있어서, 상기 제2 값이 비례 관계, 역비례 관계, 선형 관계, 지수 관계, 또는 상기 제1 값을 입력으로 취하는 함수에 기초하여 상기 제1 값을 사용하여 결정되는 방법.
  8. 제1항에 있어서, 상기 패키지가 특정의 장르에 대한 보완적인 제스처 필터를 포함하고, 상기 장르가 1인칭 슈팅, 액션, 운전 또는 스포츠 장르 중 하나인 방법.
  9. 제1항에 있어서, 상기 응용 프로그램은 비디오 게임 또는 운영 체제인 방법.
  10. 제1항에 있어서,
    상기 제2 매개변수에 제3 값을 할당한다는 표시를 수신하는 단계, 및
    상기 제2 매개변수에 상기 제3 값을 할당하는 단계
    를 더 포함하는 방법.
  11. 보완적인 필터들의 패키지를 응용 프로그램에 제공하는 시스템으로서,
    적어도 하나의 필터들의 패키지를 포함하는 필터 라이브러리(802) - 각각의 필터는 제스처에 관한 정보를 포함하고, 상기 적어도 하나의 패키지의 적어도 하나의 필터는 상기 패키지 내의 적어도 하나의 다른 필터와 보완적임 -, 및
    상기 응용 프로그램에 필터 패키지를 제공하고, 사용자의 적어도 일부의 적어도 하나의 이미지에 대응하는 데이터를 수신하며, 상기 데이터가 적어도 2개의 일치된 필터에 대응하는지를 결정하고, 상기 일치된 필터들 중 제1 필터가 상기 일치된 필터들 중 적어도 하나의 다른 필터와 어떻게 동작하는지를 결정하며, 각각의 일치된 필터에 대응하는 출력을 상기 응용 프로그램에 전송하는 회로(12)
    를 포함하는 시스템.
  12. 제11항에 있어서, 상기 출력은 신뢰 수준을 포함하고, 상기 회로는, 적어도 하나의 다른 일치된 필터의 신뢰 수준에 기초하여 상기 제1 필터의 신뢰 수준을 변경함으로써, 제1 일치된 필터가 상기 적어도 하나의 다른 일치된 필터와 어떻게 동작하는지를 결정하는 시스템.
  13. 제11항에 있어서, 상기 회로는 또한, 상기 패키지 내에 있지 않은 필터에 대한 데이터를 파싱하기 전에, 상기 패키지 내의 각각의 필터에 대한 데이터를 파싱하여 상기 데이터가 상기 패키지의 필터들 중 하나 이상의 필터와 일치함을 나타내는지를 판정하는 시스템.
  14. 제11항에 있어서, 상기 회로는 또한,
    상기 데이터에 대응하는 상기 적어도 하나의 필터와 동시에 파싱될 수 없는 필터에 대한 데이터를 파싱하기 전에, 상기 데이터에 대응하는 상기 적어도 하나의 필터와 동시에 파싱될 수 있는 상기 패키지 내의 각각의 다른 필터에 대한 데이터를 파싱하는 시스템.
  15. 프로세서 상에서 실행될 때, 상기 프로세서로 하여금 동작들을 수행하게 하는 컴퓨터 판독가능 명령어를 포함하는 컴퓨터 판독가능 저장 매체로서,
    상기 동작들은,
    복수의 필터를 포함하는 패키지를 제공하는 동작(902) - 각각의 필터는 제스처에 관한 정보를 포함하고, 각각의 필터는 상기 패키지 내의 적어도 하나의 다른 필터와 보완적이며, 제스처는 거리 카메라에 의해 캡처되는 그 제스처와 연관된 움직임 또는 자세를 취하는 사용자에 의해 입력됨 -,
    제1 필터의 매개변수에 제1 값을 할당한다는 표시를 수신하는 동작(904),
    상기 매개변수에 상기 값을 할당하는 동작(906), 및
    제2 필터의 제2 매개변수에 제2 값을 할당하는 동작(908) - 상기 제2 값은 상기 제1 값을 사용하여 결정됨 -
    을 포함하는, 컴퓨터 판독가능 저장 매체.
KR1020117017692A 2009-01-30 2010-01-22 표준 제스처 KR101679442B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US14888409P 2009-01-30 2009-01-30
US61/148,884 2009-01-30
US12/391,150 2009-02-23
US12/391,150 US8487938B2 (en) 2009-01-30 2009-02-23 Standard Gestures
PCT/US2010/021883 WO2010088156A2 (en) 2009-01-30 2010-01-22 Standard gestures

Publications (2)

Publication Number Publication Date
KR20110120276A true KR20110120276A (ko) 2011-11-03
KR101679442B1 KR101679442B1 (ko) 2016-11-24

Family

ID=42396296

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117017692A KR101679442B1 (ko) 2009-01-30 2010-01-22 표준 제스처

Country Status (9)

Country Link
US (1) US8487938B2 (ko)
EP (1) EP2384464B1 (ko)
JP (1) JP2012516507A (ko)
KR (1) KR101679442B1 (ko)
CN (1) CN102301311B (ko)
BR (1) BRPI1006166A2 (ko)
CA (1) CA2748497C (ko)
RU (1) RU2534941C2 (ko)
WO (1) WO2010088156A2 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210056832A (ko) * 2019-11-11 2021-05-20 엠투엠글로벌(주) 제스처 인식이 가능한 카트의 자율 주행 시스템 및 제스처 인식 방법
US11403866B2 (en) 2014-10-17 2022-08-02 Ebay Inc. Method, medium, and system for fast 3D model fitting and anthropometrics using synthetic data

Families Citing this family (114)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100306716A1 (en) * 2009-05-29 2010-12-02 Microsoft Corporation Extending standard gestures
JP5320332B2 (ja) * 2010-03-19 2013-10-23 株式会社コナミデジタルエンタテインメント ゲーム装置、ゲーム装置の制御方法、及びプログラム
EP2550578B1 (en) * 2010-03-26 2017-08-16 Hewlett Packard Development Company, L.P. Method and apparatus for accessing a computer file when a user interacts with a physical object associated with the file
US8638364B2 (en) * 2010-09-23 2014-01-28 Sony Computer Entertainment Inc. User interface system and method using thermal imaging
CN102553232A (zh) * 2010-12-07 2012-07-11 鼎亿数码科技(上海)有限公司 人体姿态捕捉装置及其实现方法
US10509466B1 (en) 2011-05-11 2019-12-17 Snap Inc. Headwear with computer and optical element for use therewith and systems utilizing same
US8740702B2 (en) 2011-05-31 2014-06-03 Microsoft Corporation Action trigger gesturing
US8845431B2 (en) 2011-05-31 2014-09-30 Microsoft Corporation Shape trace gesturing
US8657683B2 (en) 2011-05-31 2014-02-25 Microsoft Corporation Action selection gesturing
JP2013037454A (ja) * 2011-08-05 2013-02-21 Ikutoku Gakuen 姿勢判定方法、プログラム、装置、システム
US9628843B2 (en) * 2011-11-21 2017-04-18 Microsoft Technology Licensing, Llc Methods for controlling electronic devices using gestures
US9782680B2 (en) 2011-12-09 2017-10-10 Futurewei Technologies, Inc. Persistent customized social media environment
WO2013103410A1 (en) 2012-01-05 2013-07-11 California Institute Of Technology Imaging surround systems for touch-free display control
US9646200B2 (en) * 2012-06-08 2017-05-09 Qualcomm Incorporated Fast pose detector
US9329678B2 (en) 2012-08-14 2016-05-03 Microsoft Technology Licensing, Llc Augmented reality overlay for control devices
US9304603B2 (en) * 2012-11-12 2016-04-05 Microsoft Technology Licensing, Llc Remote control using depth camera
AU2013204965B2 (en) 2012-11-12 2016-07-28 C2 Systems Limited A system, method, computer program and data signal for the registration, monitoring and control of machines and devices
CN103252088B (zh) * 2012-12-25 2015-10-28 上海绿岸网络科技股份有限公司 实景扫描游戏互动系统
WO2014107434A1 (en) 2013-01-02 2014-07-10 California Institute Of Technology Single-sensor system for extracting depth information from image blur
CN103970646B (zh) 2013-01-29 2016-12-28 国际商业机器公司 一种用于操作序列的自动分析方法及其系统
US10134267B2 (en) 2013-02-22 2018-11-20 Universal City Studios Llc System and method for tracking a passive wand and actuating an effect based on a detected wand path
US9498885B2 (en) 2013-02-27 2016-11-22 Rockwell Automation Technologies, Inc. Recognition-based industrial automation control with confidence-based decision support
US9804576B2 (en) 2013-02-27 2017-10-31 Rockwell Automation Technologies, Inc. Recognition-based industrial automation control with position and derivative decision reference
US9798302B2 (en) 2013-02-27 2017-10-24 Rockwell Automation Technologies, Inc. Recognition-based industrial automation control with redundant system input support
US9393695B2 (en) 2013-02-27 2016-07-19 Rockwell Automation Technologies, Inc. Recognition-based industrial automation control with person and object discrimination
US20140279508A1 (en) * 2013-03-14 2014-09-18 TollShare, Inc. Selective operation of executable procedures based on detected gesture and context
US9129478B2 (en) * 2013-05-20 2015-09-08 Microsoft Corporation Attributing user action based on biometric identity
US9384013B2 (en) 2013-06-03 2016-07-05 Microsoft Technology Licensing, Llc Launch surface control
JP6377328B2 (ja) * 2013-08-21 2018-08-22 東急テクノシステム株式会社 列車見張員訓練用シミュレータ
CN103520923A (zh) * 2013-10-17 2014-01-22 智尊应用程序开发有限公司 游戏控制方法及设备
EP2886173B1 (en) * 2013-12-18 2020-08-19 Microsoft Technology Licensing, LLC Augmented reality overlay for control devices
US10283162B2 (en) 2014-02-05 2019-05-07 Avatar Merger Sub II, LLC Method for triggering events in a video
US9276886B1 (en) 2014-05-09 2016-03-01 Snapchat, Inc. Apparatus and method for dynamically configuring application component tiles
US10025990B2 (en) 2014-05-21 2018-07-17 Universal City Studios Llc System and method for tracking vehicles in parking structures and intersections
US10207193B2 (en) 2014-05-21 2019-02-19 Universal City Studios Llc Optical tracking system for automation of amusement park elements
US10061058B2 (en) 2014-05-21 2018-08-28 Universal City Studios Llc Tracking system and method for use in surveying amusement park equipment
US9616350B2 (en) 2014-05-21 2017-04-11 Universal City Studios Llc Enhanced interactivity in an amusement park environment using passive tracking elements
US9433870B2 (en) 2014-05-21 2016-09-06 Universal City Studios Llc Ride vehicle tracking and control system using passive tracking elements
US9429398B2 (en) 2014-05-21 2016-08-30 Universal City Studios Llc Optical tracking for controlling pyrotechnic show elements
US9600999B2 (en) 2014-05-21 2017-03-21 Universal City Studios Llc Amusement park element tracking system
US9396354B1 (en) 2014-05-28 2016-07-19 Snapchat, Inc. Apparatus and method for automated privacy protection in distributed images
US9537811B2 (en) 2014-10-02 2017-01-03 Snap Inc. Ephemeral gallery of ephemeral messages
US9225897B1 (en) 2014-07-07 2015-12-29 Snapchat, Inc. Apparatus and method for supplying content aware photo filters
US9365186B2 (en) 2014-08-17 2016-06-14 Toyota Motor Engineering & Manufacturing North America, Inc. Advanced seatbelt interlock using video recognition
US10238979B2 (en) 2014-09-26 2019-03-26 Universal City Sudios LLC Video game ride
US10775996B2 (en) 2014-11-26 2020-09-15 Snap Inc. Hybridization of voice notes and calling
US9385983B1 (en) 2014-12-19 2016-07-05 Snapchat, Inc. Gallery of messages from individuals with a shared interest
US10311916B2 (en) 2014-12-19 2019-06-04 Snap Inc. Gallery of videos set to an audio time line
EP3272078B1 (en) 2015-03-18 2022-01-19 Snap Inc. Geo-fence authorization provisioning
US9668217B1 (en) 2015-05-14 2017-05-30 Snap Inc. Systems and methods for wearable initiated handshaking
US10503264B1 (en) 2015-06-16 2019-12-10 Snap Inc. Radial gesture navigation
CN105261052B (zh) 2015-11-03 2018-09-18 沈阳东软医疗系统有限公司 管腔图像展开绘制方法及装置
US10310618B2 (en) * 2015-12-31 2019-06-04 Microsoft Technology Licensing, Llc Gestures visual builder tool
US10599324B2 (en) 2015-12-31 2020-03-24 Microsoft Technology Licensing, Llc Hand gesture API using finite state machine and gesture language discrete values
US10055895B2 (en) 2016-01-29 2018-08-21 Snap Inc. Local augmented reality persistent sticker objects
US10474353B2 (en) 2016-05-31 2019-11-12 Snap Inc. Application control using a gesture based trigger
US11404056B1 (en) 2016-06-30 2022-08-02 Snap Inc. Remoteless control of drone behavior
US10102423B2 (en) 2016-06-30 2018-10-16 Snap Inc. Object modeling and replacement in a video stream
US10609036B1 (en) 2016-10-10 2020-03-31 Snap Inc. Social media post subscribe requests for buffer user accounts
WO2018112833A1 (en) * 2016-12-22 2018-06-28 Intel Corporation Efficient transferring of human experiences to robots and other autonomous machines
JP6957218B2 (ja) * 2017-06-12 2021-11-02 株式会社バンダイナムコエンターテインメント シミュレーションシステム及びプログラム
FR3067615B1 (fr) 2017-06-16 2019-07-19 Skis Rossignol Planche de glisse
US10579869B1 (en) 2017-07-18 2020-03-03 Snap Inc. Virtual object machine learning
US11323398B1 (en) 2017-07-31 2022-05-03 Snap Inc. Systems, devices, and methods for progressive attachments
US11204949B1 (en) 2017-07-31 2021-12-21 Snap Inc. Systems, devices, and methods for content selection
US10591730B2 (en) 2017-08-25 2020-03-17 II Jonathan M. Rodriguez Wristwatch based interface for augmented reality eyewear
US11847426B2 (en) 2017-11-08 2023-12-19 Snap Inc. Computer vision based sign language interpreter
US10523606B2 (en) 2018-01-02 2019-12-31 Snap Inc. Generating interactive messages with asynchronous media content
US10567321B2 (en) 2018-01-02 2020-02-18 Snap Inc. Generating interactive messages with asynchronous media content
US11063889B2 (en) 2018-06-08 2021-07-13 Snap Inc. Generating interactive messages with entity assets
US10796482B2 (en) 2018-12-05 2020-10-06 Snap Inc. 3D hand shape and pose estimation
US11036368B1 (en) 2019-03-29 2021-06-15 Snap Inc. Messaging system with message transmission user interface
US11019011B1 (en) 2019-03-29 2021-05-25 Snap Inc. Messaging system with discard user interface
US11106342B1 (en) 2019-06-03 2021-08-31 Snap Inc. User interfaces to facilitate multiple modes of electronic communication
US11151794B1 (en) 2019-06-28 2021-10-19 Snap Inc. Messaging system with augmented reality messages
US11307747B2 (en) 2019-07-11 2022-04-19 Snap Inc. Edge gesture interface with smart interactions
US11589094B2 (en) * 2019-07-22 2023-02-21 At&T Intellectual Property I, L.P. System and method for recommending media content based on actual viewers
US11551374B2 (en) 2019-09-09 2023-01-10 Snap Inc. Hand pose estimation from stereo cameras
US11062498B1 (en) 2019-12-30 2021-07-13 Snap Inc. Animated pull-to-refresh
US11265274B1 (en) 2020-02-28 2022-03-01 Snap Inc. Access and routing of interactive messages
US11409368B2 (en) 2020-03-26 2022-08-09 Snap Inc. Navigating through augmented reality content
US11675494B2 (en) 2020-03-26 2023-06-13 Snap Inc. Combining first user interface content into second user interface
US11960651B2 (en) 2020-03-30 2024-04-16 Snap Inc. Gesture-based shared AR session creation
US11991469B2 (en) 2020-06-30 2024-05-21 Snap Inc. Skeletal tracking for real-time virtual effects
US11606697B2 (en) 2020-08-03 2023-03-14 Bank Of America Corporation Electronic system for construction and detection of spatial movements in a VR space for performance of electronic activities
WO2022036372A1 (en) 2020-08-13 2022-02-17 Snap Inc. User interface for pose driven virtual effects
US11671559B2 (en) 2020-09-30 2023-06-06 Snap Inc. Real time video editing
US11797162B2 (en) 2020-12-22 2023-10-24 Snap Inc. 3D painting on an eyewear device
US11782577B2 (en) 2020-12-22 2023-10-10 Snap Inc. Media content player on an eyewear device
WO2022146729A1 (en) 2020-12-29 2022-07-07 Snap Inc. Body ui for augmented reality components
US11997422B2 (en) 2020-12-31 2024-05-28 Snap Inc. Real-time video communication interface with haptic feedback response
EP4272063A1 (en) 2020-12-31 2023-11-08 Snap Inc. Media content items with haptic feedback augmentations
EP4272059A1 (en) 2020-12-31 2023-11-08 Snap Inc. Electronic communication interface with haptic feedback response
US12008152B1 (en) 2020-12-31 2024-06-11 Snap Inc. Distance determination for mixed reality interaction
US11978283B2 (en) 2021-03-16 2024-05-07 Snap Inc. Mirroring device with a hands-free mode
USD998637S1 (en) 2021-03-16 2023-09-12 Snap Inc. Display screen or portion thereof with a graphical user interface
US11734959B2 (en) 2021-03-16 2023-08-22 Snap Inc. Activating hands-free mode on mirroring device
US11798201B2 (en) 2021-03-16 2023-10-24 Snap Inc. Mirroring device with whole-body outfits
US11809633B2 (en) 2021-03-16 2023-11-07 Snap Inc. Mirroring device with pointing based navigation
US11908243B2 (en) 2021-03-16 2024-02-20 Snap Inc. Menu hierarchy navigation on electronic mirroring devices
US11928306B2 (en) 2021-05-19 2024-03-12 Snap Inc. Touchpad navigation for augmented reality display device
US11880542B2 (en) 2021-05-19 2024-01-23 Snap Inc. Touchpad input for augmented reality display device
US11670059B2 (en) 2021-09-01 2023-06-06 Snap Inc. Controlling interactive fashion based on body gestures
US11960784B2 (en) 2021-12-07 2024-04-16 Snap Inc. Shared augmented reality unboxing experience
US11748958B2 (en) 2021-12-07 2023-09-05 Snap Inc. Augmented reality unboxing experience
US11579747B1 (en) 2022-03-14 2023-02-14 Snap Inc. 3D user interface depth forgiveness
WO2023189649A1 (ja) * 2022-03-30 2023-10-05 ソニーグループ株式会社 情報処理システム、プログラムおよび情報処理方法
US11960653B2 (en) 2022-05-10 2024-04-16 Snap Inc. Controlling augmented reality effects through multi-modal human interaction
US12001878B2 (en) 2022-06-03 2024-06-04 Snap Inc. Auto-recovery for AR wearable devices
US12002168B2 (en) 2022-06-20 2024-06-04 Snap Inc. Low latency hand-tracking in augmented reality systems
US11948266B1 (en) 2022-09-09 2024-04-02 Snap Inc. Virtual object manipulation with gestures in a messaging system
US11995780B2 (en) 2022-09-09 2024-05-28 Snap Inc. Shooting interaction using augmented reality content in a messaging system
US11797099B1 (en) 2022-09-19 2023-10-24 Snap Inc. Visual and audio wake commands
US11747912B1 (en) 2022-09-22 2023-09-05 Snap Inc. Steerable camera for AR hand tracking

Family Cites Families (177)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4288078A (en) 1979-11-20 1981-09-08 Lugo Julio I Game apparatus
US4695953A (en) 1983-08-25 1987-09-22 Blair Preston E TV animation interactively controlled by the viewer
US4630910A (en) 1984-02-16 1986-12-23 Robotic Vision Systems, Inc. Method of measuring in three-dimensions at high speed
US4627620A (en) 1984-12-26 1986-12-09 Yang John P Electronic athlete trainer for improving skills in reflex, speed and accuracy
US4645458A (en) 1985-04-15 1987-02-24 Harald Phillip Athletic evaluation and training apparatus
US4702475A (en) 1985-08-16 1987-10-27 Innovating Training Products, Inc. Sports technique and reaction training system
US4843568A (en) 1986-04-11 1989-06-27 Krueger Myron W Real time perception of and response to the actions of an unencumbered participant/user
US4711543A (en) 1986-04-14 1987-12-08 Blair Preston E TV animation interactively controlled by the viewer
US4796997A (en) 1986-05-27 1989-01-10 Synthetic Vision Systems, Inc. Method and system for high-speed, 3-D imaging of an object at a vision station
US5184295A (en) 1986-05-30 1993-02-02 Mann Ralph V System and method for teaching physical skills
US4751642A (en) 1986-08-29 1988-06-14 Silva John M Interactive sports simulation system with physiological sensing and psychological conditioning
US4809065A (en) 1986-12-01 1989-02-28 Kabushiki Kaisha Toshiba Interactive system and related method for displaying data to produce a three-dimensional image of an object
US4817950A (en) 1987-05-08 1989-04-04 Goo Paul E Video game control unit and attitude sensor
US5239464A (en) 1988-08-04 1993-08-24 Blair Preston E Interactive video system providing repeated switching of multiple tracks of actions sequences
US5239463A (en) 1988-08-04 1993-08-24 Blair Preston E Method and apparatus for player interaction with animated characters and objects
US4901362A (en) 1988-08-08 1990-02-13 Raytheon Company Method of recognizing patterns
US4893183A (en) 1988-08-11 1990-01-09 Carnegie-Mellon University Robotic vision system
JPH02199526A (ja) 1988-10-14 1990-08-07 David G Capper 制御インターフェース装置
US4925189A (en) 1989-01-13 1990-05-15 Braeunig Thomas F Body-mounted video game exercise device
US5229756A (en) 1989-02-07 1993-07-20 Yamaha Corporation Image control apparatus
US5252951A (en) 1989-04-28 1993-10-12 International Business Machines Corporation Graphical user interface with gesture recognition in a multiapplication environment
US5469740A (en) 1989-07-14 1995-11-28 Impulse Technology, Inc. Interactive video testing and training system
JPH03103822U (ko) 1990-02-13 1991-10-29
US5101444A (en) 1990-05-18 1992-03-31 Panacea, Inc. Method and apparatus for high speed object location
US5148154A (en) 1990-12-04 1992-09-15 Sony Corporation Of America Multi-dimensional user interface
US5534917A (en) 1991-05-09 1996-07-09 Very Vivid, Inc. Video image based control system
US5417210A (en) 1992-05-27 1995-05-23 International Business Machines Corporation System and method for augmentation of endoscopic surgery
US5295491A (en) 1991-09-26 1994-03-22 Sam Technology, Inc. Non-invasive human neurocognitive performance capability testing method and system
US6054991A (en) 1991-12-02 2000-04-25 Texas Instruments Incorporated Method of modeling player position and movement in a virtual reality system
JPH06508788A (ja) 1991-12-03 1994-10-06 フレンチ スポーテク コーポレイション 対話型ビデオ式検査および訓練システム
US5875108A (en) 1991-12-23 1999-02-23 Hoffberg; Steven M. Ergonomic man-machine interface incorporating adaptive pattern recognition based control system
US5903454A (en) * 1991-12-23 1999-05-11 Hoffberg; Linda Irene Human-factored interface corporating adaptive pattern recognition based controller apparatus
JPH07325934A (ja) 1992-07-10 1995-12-12 Walt Disney Co:The 仮想世界に向上したグラフィックスを提供する方法および装置
US5999908A (en) 1992-08-06 1999-12-07 Abelow; Daniel H. Customer-based product design module
US5320538A (en) 1992-09-23 1994-06-14 Hughes Training, Inc. Interactive aircraft training system and method
IT1257294B (it) 1992-11-20 1996-01-12 Dispositivo atto a rilevare la configurazione di un'unita' fisiologicadistale,da utilizzarsi in particolare come interfaccia avanzata per macchine e calcolatori.
US5495576A (en) 1993-01-11 1996-02-27 Ritchey; Kurtis J. Panoramic image based virtual reality/telepresence audio-visual system and method
US5690582A (en) 1993-02-02 1997-11-25 Tectrix Fitness Equipment, Inc. Interactive exercise apparatus
JP2799126B2 (ja) 1993-03-26 1998-09-17 株式会社ナムコ ビデオゲーム装置及びゲーム用入力装置
US5405152A (en) 1993-06-08 1995-04-11 The Walt Disney Company Method and apparatus for an interactive video game with physical feedback
US5454043A (en) 1993-07-30 1995-09-26 Mitsubishi Electric Research Laboratories, Inc. Dynamic and static hand gesture recognition through low-level image analysis
US5423554A (en) 1993-09-24 1995-06-13 Metamedia Ventures, Inc. Virtual reality game method and apparatus
US5980256A (en) 1993-10-29 1999-11-09 Carmein; David E. E. Virtual reality system with enhanced sensory apparatus
JP3419050B2 (ja) 1993-11-19 2003-06-23 株式会社日立製作所 入力装置
US5347306A (en) 1993-12-17 1994-09-13 Mitsubishi Electric Research Laboratories, Inc. Animated electronic meeting place
JP2552427B2 (ja) 1993-12-28 1996-11-13 コナミ株式会社 テレビ遊戯システム
US5577981A (en) 1994-01-19 1996-11-26 Jarvik; Robert Virtual reality exercise machine and computer controlled video system
US5580249A (en) 1994-02-14 1996-12-03 Sarcos Group Apparatus for simulating mobility of a human
US5597309A (en) 1994-03-28 1997-01-28 Riess; Thomas Method and apparatus for treatment of gait problems associated with parkinson's disease
US5385519A (en) 1994-04-19 1995-01-31 Hsu; Chi-Hsueh Running machine
US5524637A (en) 1994-06-29 1996-06-11 Erickson; Jon W. Interactive system for measuring physiological exertion
US5563988A (en) 1994-08-01 1996-10-08 Massachusetts Institute Of Technology Method and system for facilitating wireless, full-body, real-time user interaction with a digitally represented visual environment
US6714665B1 (en) 1994-09-02 2004-03-30 Sarnoff Corporation Fully automated iris recognition system utilizing wide and narrow fields of view
US5516105A (en) 1994-10-06 1996-05-14 Exergame, Inc. Acceleration activated joystick
US5638300A (en) 1994-12-05 1997-06-10 Johnson; Lee E. Golf swing analysis system
JPH08161292A (ja) 1994-12-09 1996-06-21 Matsushita Electric Ind Co Ltd 混雑度検知方法およびそのシステム
US5594469A (en) 1995-02-21 1997-01-14 Mitsubishi Electric Information Technology Center America Inc. Hand gesture machine control system
US5682229A (en) 1995-04-14 1997-10-28 Schwartz Electro-Optics, Inc. Laser range camera
US5913727A (en) 1995-06-02 1999-06-22 Ahdoot; Ned Interactive movement and contact simulation game
US6229913B1 (en) 1995-06-07 2001-05-08 The Trustees Of Columbia University In The City Of New York Apparatus and methods for determining the three-dimensional shape of an object using active illumination and relative blurring in two-images due to defocus
US5682196A (en) 1995-06-22 1997-10-28 Actv, Inc. Three-dimensional (3D) video presentation system providing interactive 3D presentation with personalized audio responses for multiple viewers
US5702323A (en) 1995-07-26 1997-12-30 Poulton; Craig K. Electronic exercise enhancer
US6430997B1 (en) 1995-11-06 2002-08-13 Trazer Technologies, Inc. System and method for tracking and assessing movement skills in multidimensional space
US6308565B1 (en) 1995-11-06 2001-10-30 Impulse Technology Ltd. System and method for tracking and assessing movement skills in multidimensional space
US6098458A (en) 1995-11-06 2000-08-08 Impulse Technology, Ltd. Testing and training system for assessing movement and agility skills without a confining field
US6073489A (en) 1995-11-06 2000-06-13 French; Barry J. Testing and training system for assessing the ability of a player to complete a task
US6176782B1 (en) 1997-12-22 2001-01-23 Philips Electronics North America Corp. Motion-based command generation technology
US5933125A (en) 1995-11-27 1999-08-03 Cae Electronics, Ltd. Method and apparatus for reducing instability in the display of a virtual environment
US5641288A (en) 1996-01-11 1997-06-24 Zaenglein, Jr.; William G. Shooting simulating process and training device using a virtual reality display screen
US6152856A (en) 1996-05-08 2000-11-28 Real Vision Corporation Real time simulation using position sensing
US6173066B1 (en) 1996-05-21 2001-01-09 Cybernet Systems Corporation Pose determination and tracking by matching 3D objects to a 2D sensor
US5989157A (en) 1996-08-06 1999-11-23 Walton; Charles A. Exercising system with electronic inertial game playing
JP2001504605A (ja) 1996-08-14 2001-04-03 ラティポフ,ヌラフメド,ヌリスラモビチ 空間内のユーザの位置及び方向性を追跡及び表示するための方法、ユーザに対し仮想環境を提示するための方法及びこれらの方法を実現するためのシステム
RU2107328C1 (ru) * 1996-08-14 1998-03-20 Нурахмед Нурисламович Латыпов Способ отслеживания и отображения положения и ориентации пользователя в пространстве и система для осуществления способа
JP3064928B2 (ja) 1996-09-20 2000-07-12 日本電気株式会社 被写体抽出方式
RU2123718C1 (ru) * 1996-09-27 1998-12-20 Кузин Виктор Алексеевич Способ ввода информации в компьютер
DE69626208T2 (de) 1996-12-20 2003-11-13 Hitachi Europ Ltd Verfahren und System zur Erkennung von Handgesten
US5904484A (en) * 1996-12-23 1999-05-18 Burns; Dave Interactive motion training device and method
US6009210A (en) 1997-03-05 1999-12-28 Digital Equipment Corporation Hands-free interface to a virtual reality environment using head tracking
US6100896A (en) 1997-03-24 2000-08-08 Mitsubishi Electric Information Technology Center America, Inc. System for designing graphical multi-participant environments
US5877803A (en) 1997-04-07 1999-03-02 Tritech Mircoelectronics International, Ltd. 3-D image detector
US6215898B1 (en) 1997-04-15 2001-04-10 Interval Research Corporation Data processing system and method
JP3077745B2 (ja) 1997-07-31 2000-08-14 日本電気株式会社 データ処理方法および装置、情報記憶媒体
US6188777B1 (en) 1997-08-01 2001-02-13 Interval Research Corporation Method and apparatus for personnel detection and tracking
US6720949B1 (en) 1997-08-22 2004-04-13 Timothy R. Pryor Man machine interfaces and applications
US6289112B1 (en) 1997-08-22 2001-09-11 International Business Machines Corporation System and method for determining block direction in fingerprint images
AUPO894497A0 (en) 1997-09-02 1997-09-25 Xenotech Research Pty Ltd Image processing method and apparatus
EP0905644A3 (en) 1997-09-26 2004-02-25 Matsushita Electric Industrial Co., Ltd. Hand gesture recognizing device
US6141463A (en) 1997-10-10 2000-10-31 Electric Planet Interactive Method and system for estimating jointed-figure configurations
US6072494A (en) 1997-10-15 2000-06-06 Electric Planet, Inc. Method and apparatus for real-time gesture recognition
US6130677A (en) 1997-10-15 2000-10-10 Electric Planet, Inc. Interactive computer vision system
AU1099899A (en) 1997-10-15 1999-05-03 Electric Planet, Inc. Method and apparatus for performing a clean background subtraction
WO1999019840A1 (en) 1997-10-15 1999-04-22 Electric Planet, Inc. A system and method for generating an animatable character
US6101289A (en) 1997-10-15 2000-08-08 Electric Planet, Inc. Method and apparatus for unencumbered capture of an object
US6057845A (en) 1997-11-14 2000-05-02 Sensiva, Inc. System, method, and apparatus for generation and recognizing universal commands
US6181343B1 (en) 1997-12-23 2001-01-30 Philips Electronics North America Corp. System and method for permitting three-dimensional navigation through a virtual reality environment using camera-based gesture inputs
US20070177804A1 (en) 2006-01-30 2007-08-02 Apple Computer, Inc. Multi-touch gesture dictionary
US6159100A (en) 1998-04-23 2000-12-12 Smith; Michael D. Virtual reality game
US6077201A (en) 1998-06-12 2000-06-20 Cheng; Chau-Yang Exercise bicycle
US6681031B2 (en) 1998-08-10 2004-01-20 Cybernet Systems Corporation Gesture-controlled interfaces for self-service machines and other applications
US20010008561A1 (en) 1999-08-10 2001-07-19 Paul George V. Real-time object tracking system
US6801637B2 (en) 1999-08-10 2004-10-05 Cybernet Systems Corporation Optical body tracker
US7121946B2 (en) 1998-08-10 2006-10-17 Cybernet Systems Corporation Real-time head tracking system for computer games and other applications
US6950534B2 (en) 1998-08-10 2005-09-27 Cybernet Systems Corporation Gesture-controlled interfaces for self-service machines and other applications
US7036094B1 (en) 1998-08-10 2006-04-25 Cybernet Systems Corporation Behavior recognition system
IL126284A (en) 1998-09-17 2002-12-01 Netmor Ltd System and method for three dimensional positioning and tracking
EP0991011B1 (en) 1998-09-28 2007-07-25 Matsushita Electric Industrial Co., Ltd. Method and device for segmenting hand gestures
WO2000034919A1 (en) 1998-12-04 2000-06-15 Interval Research Corporation Background estimation and segmentation based on range and color
US6147678A (en) 1998-12-09 2000-11-14 Lucent Technologies Inc. Video hand image-three-dimensional computer interface with multiple degrees of freedom
JP4578686B2 (ja) 1998-12-16 2010-11-10 マイクロソフト インターナショナル ホールディングス ビイ.ヴイ. 3dカメラ
US6570555B1 (en) 1998-12-30 2003-05-27 Fuji Xerox Co., Ltd. Method and apparatus for embodied conversational characters with multimodal input/output in an interface device
US6363160B1 (en) 1999-01-22 2002-03-26 Intel Corporation Interface using pattern recognition and tracking
US7003134B1 (en) 1999-03-08 2006-02-21 Vulcan Patents Llc Three dimensional object pose estimation which employs dense depth information
US6299308B1 (en) 1999-04-02 2001-10-09 Cybernet Systems Corporation Low-cost non-imaging eye tracker system for computer control
US6503195B1 (en) 1999-05-24 2003-01-07 University Of North Carolina At Chapel Hill Methods and systems for real-time structured light depth extraction and endoscope using real-time structured light depth extraction
US7821507B2 (en) 1999-05-25 2010-10-26 Silverbrook Research Pty Ltd Method of providing information via a printed substrate and two-mode sensing device
US6476834B1 (en) 1999-05-28 2002-11-05 International Business Machines Corporation Dynamic creation of selectable items on surfaces
US6873723B1 (en) 1999-06-30 2005-03-29 Intel Corporation Segmenting three-dimensional video images using stereo
US6738066B1 (en) 1999-07-30 2004-05-18 Electric Plant, Inc. System, method and article of manufacture for detecting collisions between video images generated by a camera and an object depicted on a display
US7113918B1 (en) 1999-08-01 2006-09-26 Electric Planet, Inc. Method for video enabled electronic commerce
US7050606B2 (en) 1999-08-10 2006-05-23 Cybernet Systems Corporation Tracking and gesture recognition system particularly suited to vehicular control applications
US6512838B1 (en) 1999-09-22 2003-01-28 Canesta, Inc. Methods for enhancing performance and data acquired from three-dimensional image systems
US6663491B2 (en) 2000-02-18 2003-12-16 Namco Ltd. Game apparatus, storage medium and computer program that adjust tempo of sound
US6633294B1 (en) 2000-03-09 2003-10-14 Seth Rosenthal Method and apparatus for using captured high density motion for animation
SE0000850D0 (sv) * 2000-03-13 2000-03-13 Pink Solution Ab Recognition arrangement
EP1152261A1 (en) 2000-04-28 2001-11-07 CSEM Centre Suisse d'Electronique et de Microtechnique SA Device and method for spatially resolved photodetection and demodulation of modulated electromagnetic waves
US6640202B1 (en) 2000-05-25 2003-10-28 International Business Machines Corporation Elastic sensor mesh system for 3-dimensional measurement, mapping and kinematics applications
US6731799B1 (en) 2000-06-01 2004-05-04 University Of Washington Object segmentation with background extraction and moving boundary techniques
US6788809B1 (en) 2000-06-30 2004-09-07 Intel Corporation System and method for gesture recognition in three dimensions using stereo imaging and color vision
GB0017793D0 (en) 2000-07-21 2000-09-06 Secr Defence Human computer interface
US7227526B2 (en) 2000-07-24 2007-06-05 Gesturetek, Inc. Video-based image control system
US7058204B2 (en) 2000-10-03 2006-06-06 Gesturetek, Inc. Multiple camera control system
US7039676B1 (en) 2000-10-31 2006-05-02 International Business Machines Corporation Using video image analysis to automatically transmit gestures over a network in a chat or instant messaging session
US6539931B2 (en) 2001-04-16 2003-04-01 Koninklijke Philips Electronics N.V. Ball throwing assistant
US7259747B2 (en) 2001-06-05 2007-08-21 Reactrix Systems, Inc. Interactive video display system
US8035612B2 (en) 2002-05-28 2011-10-11 Intellectual Ventures Holding 67 Llc Self-contained interactive video display system
JP3420221B2 (ja) 2001-06-29 2003-06-23 株式会社コナミコンピュータエンタテインメント東京 ゲーム装置及びプログラム
US6937742B2 (en) 2001-09-28 2005-08-30 Bellsouth Intellectual Property Corporation Gesture activated home appliance
ATE321689T1 (de) 2002-04-19 2006-04-15 Iee Sarl Sicherheitsvorrichtung für ein fahrzeug
US7348963B2 (en) 2002-05-28 2008-03-25 Reactrix Systems, Inc. Interactive video display system
US7170492B2 (en) 2002-05-28 2007-01-30 Reactrix Systems, Inc. Interactive video display system
US7710391B2 (en) 2002-05-28 2010-05-04 Matthew Bell Processing an image utilizing a spatially varying pattern
US7489812B2 (en) 2002-06-07 2009-02-10 Dynamic Digital Depth Research Pty Ltd. Conversion and encoding techniques
US7576727B2 (en) 2002-12-13 2009-08-18 Matthew Bell Interactive directed light/sound system
JP4235729B2 (ja) 2003-02-03 2009-03-11 国立大学法人静岡大学 距離画像センサ
US9177387B2 (en) * 2003-02-11 2015-11-03 Sony Computer Entertainment Inc. Method and apparatus for real time motion capture
DE602004006190T8 (de) 2003-03-31 2008-04-10 Honda Motor Co., Ltd. Vorrichtung, Verfahren und Programm zur Gestenerkennung
JP4153818B2 (ja) * 2003-03-31 2008-09-24 本田技研工業株式会社 ジェスチャ認識装置、ジェスチャ認識方法及びジェスチャ認識プログラム
US7372977B2 (en) 2003-05-29 2008-05-13 Honda Motor Co., Ltd. Visual tracking using depth data
US8072470B2 (en) 2003-05-29 2011-12-06 Sony Computer Entertainment Inc. System and method for providing a real-time three-dimensional interactive environment
JP4546956B2 (ja) 2003-06-12 2010-09-22 本田技研工業株式会社 奥行き検出を用いた対象の向きの推定
WO2005041579A2 (en) 2003-10-24 2005-05-06 Reactrix Systems, Inc. Method and system for processing captured image information in an interactive video display system
FI117308B (fi) 2004-02-06 2006-08-31 Nokia Corp Eleohjausjärjestelmä
EP1743277A4 (en) 2004-04-15 2011-07-06 Gesturetek Inc MONITORING OF BI-MANUAL MOVEMENTS
US7308112B2 (en) 2004-05-14 2007-12-11 Honda Motor Co., Ltd. Sign based human-machine interaction
US7132975B2 (en) * 2004-05-28 2006-11-07 Time Domain Corporation Apparatus and method for detecting moving objects
US7704135B2 (en) 2004-08-23 2010-04-27 Harrison Jr Shelton E Integrated game system, method, and device
JP2006146435A (ja) * 2004-11-17 2006-06-08 Univ Waseda 動作伝達システムおよび動作伝達方法
KR20060070280A (ko) 2004-12-20 2006-06-23 한국전자통신연구원 손 제스처 인식을 이용한 사용자 인터페이스 장치 및 그방법
CN101622630B (zh) 2005-01-07 2012-07-04 高通股份有限公司 检测和跟踪图像中的物体
EP1849123A2 (en) 2005-01-07 2007-10-31 GestureTek, Inc. Optical flow based tilt sensor
US7430312B2 (en) 2005-01-07 2008-09-30 Gesturetek, Inc. Creating 3D images of objects by illuminating with infrared patterns
CN101536494B (zh) 2005-02-08 2017-04-26 奥布隆工业有限公司 用于基于姿势的控制系统的系统和方法
JP4686595B2 (ja) 2005-03-17 2011-05-25 本田技研工業株式会社 クリティカルポイント解析に基づくポーズ推定
CN103257684B (zh) 2005-05-17 2017-06-09 高通股份有限公司 方向敏感的信号输出方法及装置
DE602005010696D1 (de) 2005-08-12 2008-12-11 Mesa Imaging Ag Hochempfindliches, schnelles Pixel für Anwendung in einem Bildsensor
US20080026838A1 (en) 2005-08-22 2008-01-31 Dunstan James E Multi-player non-role-playing virtual world games: method for two-way interaction between participants and multi-player virtual world games
US7450736B2 (en) 2005-10-28 2008-11-11 Honda Motor Co., Ltd. Monocular tracking of 3D human motion with a coordinated mixture of factor analyzers
JP4148281B2 (ja) * 2006-06-19 2008-09-10 ソニー株式会社 モーションキャプチャ装置及びモーションキャプチャ方法、並びにモーションキャプチャプログラム
US7701439B2 (en) 2006-07-13 2010-04-20 Northrop Grumman Corporation Gesture recognition simulation system and method
US7725547B2 (en) * 2006-09-06 2010-05-25 International Business Machines Corporation Informing a user of gestures made by others out of the user's line of sight
JP5395323B2 (ja) 2006-09-29 2014-01-22 ブレインビジョン株式会社 固体撮像素子
US7412077B2 (en) 2006-12-29 2008-08-12 Motorola, Inc. Apparatus and methods for head pose estimation and head gesture detection
US7729530B2 (en) 2007-03-03 2010-06-01 Sergey Antonov Method and apparatus for 3-D data input to a personal computer with a multimedia oriented operating system
JP2008250823A (ja) 2007-03-30 2008-10-16 Funai Electric Co Ltd 画像形成装置
US7852262B2 (en) 2007-08-16 2010-12-14 Cybernet Systems Corporation Wireless mobile indoor/outdoor tracking system
CN201254344Y (zh) 2008-08-20 2009-06-10 中国农业科学院草原研究所 植物标本及种子存贮器

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11403866B2 (en) 2014-10-17 2022-08-02 Ebay Inc. Method, medium, and system for fast 3D model fitting and anthropometrics using synthetic data
KR20210056832A (ko) * 2019-11-11 2021-05-20 엠투엠글로벌(주) 제스처 인식이 가능한 카트의 자율 주행 시스템 및 제스처 인식 방법

Also Published As

Publication number Publication date
RU2534941C2 (ru) 2014-12-10
CN102301311A (zh) 2011-12-28
EP2384464B1 (en) 2018-09-05
WO2010088156A3 (en) 2010-11-04
CN102301311B (zh) 2013-07-24
KR101679442B1 (ko) 2016-11-24
RU2011132086A (ru) 2013-02-10
EP2384464A2 (en) 2011-11-09
EP2384464A4 (en) 2016-12-21
WO2010088156A2 (en) 2010-08-05
US20100194762A1 (en) 2010-08-05
BRPI1006166A2 (pt) 2016-02-23
CA2748497C (en) 2016-04-19
JP2012516507A (ja) 2012-07-19
US8487938B2 (en) 2013-07-16
CA2748497A1 (en) 2010-08-05

Similar Documents

Publication Publication Date Title
KR101679442B1 (ko) 표준 제스처
US8856691B2 (en) Gesture tool
KR101658937B1 (ko) 제스처 숏컷
US10691216B2 (en) Combining gestures beyond skeletal
US7996793B2 (en) Gesture recognizer system architecture
US7971157B2 (en) Predictive determination
US9256282B2 (en) Virtual object manipulation
US8633890B2 (en) Gesture detection based on joint skipping
US20110151974A1 (en) Gesture style recognition and reward

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20191016

Year of fee payment: 4