KR101700468B1 - 사용자로부터 학습된 입력을 통해 비주얼 표현을 활성화하는 방법 - Google Patents

사용자로부터 학습된 입력을 통해 비주얼 표현을 활성화하는 방법 Download PDF

Info

Publication number
KR101700468B1
KR101700468B1 KR1020127000902A KR20127000902A KR101700468B1 KR 101700468 B1 KR101700468 B1 KR 101700468B1 KR 1020127000902 A KR1020127000902 A KR 1020127000902A KR 20127000902 A KR20127000902 A KR 20127000902A KR 101700468 B1 KR101700468 B1 KR 101700468B1
Authority
KR
South Korea
Prior art keywords
user
animation
avatar
gesture
visual representation
Prior art date
Application number
KR1020127000902A
Other languages
English (en)
Other versions
KR20120052228A (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 KR20120052228A publication Critical patent/KR20120052228A/ko
Application granted granted Critical
Publication of KR101700468B1 publication Critical patent/KR101700468B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/55Controlling game characters or game objects based on the game progress
    • A63F13/56Computing the motion of game characters with respect to other game characters, game objects or elements of the game scene, e.g. for simulating the behaviour of a group of virtual soldiers or for path finding
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • A63F13/67Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor adaptively or by learning from player actions, e.g. skill level adjustment or by storing successful combat sequences for re-use
    • 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/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/422Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS]
    • H04N21/4223Cameras
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44213Monitoring of end-user related data
    • H04N21/44218Detecting physical presence or behaviour of the user, e.g. using sensors to detect if the user is leaving the room or changes his face expression during a TV program
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/4508Management of client data or end-user data
    • H04N21/4532Management of client data or end-user data involving end-user characteristics, e.g. viewer profile, preferences
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/466Learning process for intelligent management, e.g. learning user preferences for recommending movies
    • H04N21/4667Processing of monitored end-user data, e.g. trend analysis based on the log file of viewer selections
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/4781Games
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/213Input arrangements for video game devices characterised by their sensors, purposes or types comprising photodetecting means, e.g. cameras, photodiodes or infrared cells
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/55Controlling game characters or game objects based on the game progress
    • A63F13/58Controlling game characters or game objects based on the game progress by computing conditions of game characters, e.g. stamina, strength, motivation or energy level
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/55Details of game data or player data management
    • A63F2300/5546Details of game data or player data management using player registration data, e.g. identification, account, preferences, game history
    • A63F2300/5553Details of game data or player data management using player registration data, e.g. identification, account, preferences, game history user representation in the game field, e.g. avatar
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S17/00Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
    • G01S17/02Systems using the reflection of electromagnetic waves other than radio waves
    • G01S17/06Systems determining position data of a target
    • G01S17/08Systems determining position data of a target for measuring distance only
    • G01S17/32Systems determining position data of a target for measuring distance only using transmission of continuous waves, whether amplitude-, frequency-, or phase-modulated, or unmodulated
    • G01S17/36Systems determining position data of a target for measuring distance only using transmission of continuous waves, whether amplitude-, frequency-, or phase-modulated, or unmodulated with phase comparison between the received signal and the contemporaneously transmitted signal
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S17/00Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
    • G01S17/88Lidar systems specially adapted for specific applications
    • G01S17/89Lidar systems specially adapted for specific applications for mapping or imaging

Abstract

사람에 관해 캡쳐된 데이터가 분석되고 사용자의 비주얼 표현에 적용되어, 비주얼 표현이 사용자의 행동 특성을 반영하기 시작할 수 있다. 예를 들어, 시스템은 물리적인 공간에서 사용자에 대한 데이터를 캡쳐하는 캡쳐 장치를 갖는다. 시스템은 사용자의 특성, 성향, 목소리 패턴, 행동, 제스처 등을 식별할 수 있다. 시간에 걸쳐서, 시스템은 사용자의 성향을 학습하고, 사용자의 아바타에 지적으로 애니메이션을 적용하여, 아바타가 사용자의 식별된 행동에 따라 행동하고 반응하게 할 수 있다. 아바타에 적용된 애니메이션은 사전에 패키지화된 애니메이션들의 라이브러리로부터 선택된 애니메이션이거나, 또는 그 애니메이션은 사용자에 의해 아바타의 애니메이션 라이브러리에 입력되고 기록될 수 있다.

Description

사용자로부터 학습된 입력을 통해 비주얼 표현을 활성화하는 방법{BRINGING A VISUAL REPRESENTATION TO LIFE VIA LEARNED INPUT FROM THE USER}
다양한 애플리케이션에서 사용자가 특정한 액션을 통해, 예컨대 리모콘의 버튼을 선택하거나 특정 방식으로 컨트롤러를 움직여서 제어할 수 있는, 사용자에 대응하는 비주얼 표현(visual representation)을 디스플레이한다. 비주얼 표현은 일반적으로 2D(two-dimensional) 또는 3D(three-dimensional) 모델의 형태를 취하고, 컴퓨터 게임, 비디오 게임, 채팅, 포럼, 커뮤니티, 인스턴트 메시징 서비스 등의 다양한 애플리케이션에서 렌더링되는(rendered) 컴퓨터 표현이다. 이러한 비주얼 표현은 아바타, 상상의 캐릭터, 만화 이미지 또는 동물, 커서, 손 등의 형태일 수 있다. 컴퓨터 게임, 멀티미디어 애플리케이션, 오피스 애플리케이션을 비롯한 많은 컴퓨팅 애플리케이션에서는, 사용자의 아바타로써 애플리케이션에서 사용되도록 선택되는 일련의 사전 정의된 애니메이션화된 캐릭터들을 제공한다. 일반적으로, 아바타에 의해 실행되는 애니메이션은 애니메이션들의 라이브러리로부터 선택된다. 예를 들어, 사용자들은 리모콘의 버튼 또는 키(keys)를 눌러 자신의 아바타들이 행할 특정 애니메이션들을 그 라이브러리로부터 선택할 수 있다.
본원에는 사용자로부터의 입력을 학습함으로써, 애니메이션을 실행하도록 아바타를 지적으로(intelligently) 트레이닝하는 기법이 개시된다. 시간이 갈수록, 가상 공간의 아바타는 사용자의 특징, 행동, 성향, 목소리 패턴 등의 양태를 반영하는, 물리적인 공간에서의 사용자의 반영(reflection)으로 보일 수 있다. 예를 들어, 시스템은 물리적인 공간에서 사용자에 대한 데이터를 캡쳐하는 캡쳐 장치를 갖는다. 시스템은 사용자의 특성, 성향, 목소리 패턴, 행동, 제스처 등을 식별할 수 있다. 시간에 걸쳐서, 시스템은 사용자의 성향을 학습하고, 사용자의 아바타에 애니메이션을 지적으로 적용하여, 아바타가 사용자의 식별된 행동에 따라 행동하고 반응하게 할 수 있다. 따라서, 애니메이션을 실행하도록 아바타를 트레이닝하는 것은 사용자로부터의 입력을 학습하고, 아바타를 사용자와 닮게 성형하는 것을 포함한다.
따라서, 물리적인 공간의 사용자의 존재 여부와 무관하게, 시스템은 사용자와 닮은 아바타를 렌더링할 수 있다. 일 실시예에서, 아바타에 적용되는 애니메이션들은, 프로그램, 애플리케이션 또는 시스템에 딸려오는 것과 같이 사전에 패키지화된(pre-packaged) 애니메이션의 라이브러리로부터 선택된 애니메이션들일 수 있다. 선택된 애니메이션들은 시스템에서 학습한 사용자의 입력에 대응하는 것일 수 있다. 다른 실시예에서, 라이브러리의 애니메이션들은 사용자가 아바타의 애니메이션 라이브러리에 입력하고 기록한 애니메이션들일 수 있다. 예를 들어, 시스템 또는 사용자는 캡쳐 장치에 의해 캡쳐된 사용자의 실제 모션(motion) 또는 행동을 반영하기 위해, 애니메이션을 재프로그래밍할 수 있다. 따라서, 아바타 애니메이션 라이브러리에 애니메이션들이 추가되거나 덮어쓰여질(overwritten) 수 있다.
본 요약은 아래의 상세한 설명에서 추가적으로 설명되는 일련의 컨셉을 간략화된 형태로 소개하기 위한 것이다. 본 요약은 특허청구된 대상의 핵심적인 특징 또는 필수적인 특징을 밝히기 위한 것이 아니며, 특허청구된 대상의 범위를 결정하는 데 일조하기 위해 사용되는 것도 아니다. 또한 특허청구된 대상은 본 내용에서 언급된 임의의 또는 모든 단점들을 해결하는 구현에 한정되지 않는다.
본 명세서에 따라 비주얼 표현을 변화시키는 시스템, 방법 및 컴퓨터 판독가능 매체는 첨부된 도면을 참조하여 설명된다.
도 1은 게임을 하는 사용자가 있는 타겟 인식, 분석 및 트래킹 시스템의 일 실시예가 도시된다.
도 2는 타겟 인식, 분석 및 트래킹 시스템에서 사용되고, 연쇄 및 애니메이션 혼합 기법(chaining and animation blending techniques)을 사용하는 캡쳐 장치의 일 실시예를 도시한다.
도 3은 본원에서 설명된 애니메이션 기법들이 구현될 수 있는 컴퓨팅 환경의 일 실시예를 도시한다.
도 4는 본원에서 설명된 애니메이션 기법들이 구현될 수 있는 컴퓨팅 환경의 다른 실시예를 도시한다.
도 5(a)는 깊이 이미지(depth image)로부터 생성된 사용자의 골격 매핑을 도시한다.
도 5(b)는 도 2에 도시된 제스처 인식 아키텍처의 세부 사항을 도시한다.
도 6(a) 및 6(b)는 타겟 인식, 분석 및 트래킹 시스템의 일례와 사용자의 입력 이력을 기초로 하여 사용자의 아바타를 디스플레이하는 실시예들을 도시한다.
도 7(a)는 각각의 타겟 인식, 분석 및 트래킹 시스템을 통해 원격으로 서로 인터랙션하는 두 명의 사용자들을 도시한다.
도 7(b)는 그 현장에 없는 제 2 사용자의 아바타와 인터랙션하는 제 1 사용자를 도시한다.
도 8은 사용자의 입력에 관한 행동 데이터를 수집하는 방법에 대한 순서도의 일례를 도시한다.
도 9는 사용자의 아바타에 애니메이션을 지적으로 적용하는 방법에 대한 순서도의 일례를 도시한다.
아바타와 같이, 사용자에 따라 행동하는 사용자의 비주얼 표현(visual representation)을 렌더링하는 기법이 본원에 개시된다. 예를 들어, 아바타가 사용자 입력을 통한 사용자의 성향을 학습하여 애니메이션을 수행하도록 지적으로 트레이닝 되는 것을 포함하는 시스템 및 방법이 개시된다. 사용자의 비주얼 표현은 아바타, 스크린 상의 커서, 손 또는 물리적 공간의 사용자에 대응하는 임의의 가상 객체의 형태일 수 있다. 컴퓨팅 시스템은 물리적 공간으로부터 데이터를 캡쳐하여 사용자의 비주얼 표현을 모델링하여 디스플레이할 수 있다. 예를 들어, 시스템은 장면의 이미지 데이터를 캡쳐하는 캡쳐 장치 및, 그 장면의 사용자에 대응하는 비주얼 표현을 디스플레이하는 모니터를 포함할 수 있다. 사용자의 물리적인 특성을 기초로 하여 비주얼 표현을 초기화 및/또는 커스터마이즈하는(customize) 것이 바람직할 것이다. 예를 들어, 캡쳐 장치는 사용자의 물리적인 특징들을 식별하고, 눈 모양, 코 모양, 옷, 액세서리 등 식별된 특징들을 기초로 하여 사용자의 아바타를 커스터마이즈한다.
물리적 공간에서의 사용자의 모델을 생성하기 위해, 캡쳐 장치는 장면의 깊이 이미지를 캡쳐하고, 그 장면의 타겟 또는 사물들을 스캔할 수 있다. 일 실시예에서, 캡쳐 장치는 장면의 하나 이상의 타겟 또는 사물들이 사용자와 같은 인간 타겟에 대응하는지를 결정할 수 있다. 장면의 타겟 또는 사물이 인간 타겟에 대응하는지 여부를 결정하기 위해, 각 타겟이 플러드 필링되어(flood filled) 인체 모델의 패턴과 비교된다. 인체 모델에 부합하는 각 타겟 또는 사물이 스캔되어, 그에 관련된 골격 모델을 생성한다. 예를 들어, 사람이라고 식별된 타겟이 스캔되어, 그에 관련된 골격 모델을 생성한다. 골격 또는 메쉬 모델 등의 사용자 모델은 사용자의 신체 유형, 뼈 구조, 키, 몸무게 등을 나타낸다. 이후에, 이 모델은, 모델을 트래킹하고, 그 모델에 연관된 아바타를 렌더링하는 컴퓨팅 환경으로 제공된다.
시스템은 물리적 공간에서 사용자 및 임의의 모션을 트래킹하고, 사용자의 비주얼 표현에 적용될 수 있는 사용자의 특성을 식별한다. 식별된 특성은 사용자의 행동을 나타내게 된다. 예를 들어, 시스템은 사용자의 물리적인 특성, 성향, 목소리 패턴, 제스처 등을 식별할 수 있다. 시스템은 시간에 걸쳐 사용자를 계속 트래킹하고, 트래킹된 데이터의 이력을 근거로 사용자의 아바타에 변화(modifications) 또는 업데이트를 적용한다. 예를 들어, 캡쳐 장치는 사용자의 행동 및 버릇, 감정, 스피치 패턴(speech patterns) 등을 계속 식별하고, 사용자의 아바타에 이들을 적용시킨다. 아바타의 사용자와의 유사도(resemblance)에 관한 렌더링된 아바타의 정확도(fidelity)는 시스템이 그 사용자의 이력 데이터를 수집함에 따라 시간이 갈수록 증가한다.
본원에 기술된 아바타 생성 및 커스터마이제이션 시스템, 방법 및 컴포넌트는 게임 콘솔과 같은 멀티미디어 콘솔 또는, 예를 들어 그러나 이에 제한되지 않는, 위성 수신기, 셋톱 박스, 아케이드 게임(arcade games), PC(personal computers), 휴대 전화, PDA(personal digital assistants) 및 기타 핸드헬드 장치들을 포함하는 타겟의 비주얼 표현을 디스플레이하기 위한 기타 임의의 컴퓨팅 장치에서 구현될 수 있다.
도 1은 사용자 입력의 이력을 트래킹하여 사용자와 닮은 아바타를 생성하는 기법을 사용하는 타겟 인식, 분석 및 트래킹 시스템(10)의 구성에 대한 일 실시예를 도시한다. 일 실시예에서, 사용자(18)는 복싱 게임을 하고 있다. 일 실시예에서, 시스템(10)은 사용자(18)와 같은 인간 타겟을 인식, 분석 및/또는 트래킹할 수 있다. 시스템(10)은 물리적 공간의 사용자의 제스처에 관련된 정보뿐만 아니라, 사용자의 물리적 특징 및 행동 특성들을 수집할 수 있다.
도 1에 도시된 바와 같이, 타겟 인식, 분석 및 트래킹 시스템(10)은 컴퓨팅 환경(12)을 포함할 수 있다. 컴퓨팅 환경(12)은 컴퓨터, 게임 시스템 또는 콘솔 등일 수 있다. 일 실시예에 따르면, 컴퓨팅 환경(12)은 게임 애플리케이션, 비게임 애플리케이션 등의 애플리케이션들을 실행하는 데에 사용될 수 있도록 하드웨어 컴포넌트 및/또는 소프트웨어 컴포넌트들을 포함할 수 있다.
도 1에 도시된 바와 같이, 타겟 인식, 분석 및 트래킹 시스템(10)은 캡쳐 장치(20)를 더 포함할 수 있다. 캡쳐 장치(20)는 예를 들어, 사용자(18)를 비롯한 한 명 이상의 사용자들을 시각적으로 모니터링하여, 이 사용자들이 행하는 제스처를 캡쳐, 분석 및 트래킹해서 애플리케이션 내의 여러 제어나 액션을 실행할 수 있는 카메라일 수 있으며, 이는 아래에서 보다 상세하게 설명될 것이다.
일 실시예에 따르면, 타겟 인식, 분석 및 트래킹 시스템(10)은 사용자(18)와 같은 사용자에게 게임 또는 애플리케이션 비주얼 및/또는 오디오를 제공하는 텔레비전, 모니터, HDTV(high-definition television) 등의 오디오비주얼 장치(16)에 연결될 수 있다. 예를 들어, 컴퓨팅 환경(12)은 게임 애플리케이션, 비게임 애플리케이션 등과 관련된 오디오비주얼 신호를 제공하는 그래픽 카드 등의 비디오 어댑터 및/또는 사운드 카드 등의 오디오 어댑터를 포함할 수 있다. 오디오비주얼 장치(16)는 컴퓨팅 환경(12)으로부터 오디오비주얼 신호를 수신하여, 이 오디오비주얼 신호와 관련된 게임 또는 애플리케이션의 비주얼 및/또는 오디오를 사용자(18)에게 제공한다. 일 실시예에 따르면, 오디오비주얼 장치(16)는 예를 들어, S-Video 케이블, 동축 케이블, HDMI 케이블, DVI 케이블, VGA 케이블 등을 통해 컴퓨팅 환경(12)에 연결될 수 있다.
도 1에 도시된 바와 같이, 타겟 인식, 분석 및 트래킹 시스템(10)은 사용자(18) 등의 인간 타겟을 인식, 분석 및/또는 트래킹하기 위해 사용될 수 있다. 비주얼 표현의 움직임을 물리적 공간의 사용자의 모션에 매핑시킴으로써 비주얼 표현의 모션이 제어될 수 있다. 물리적 공간의 모션은, 가상 공간 및/또는 게임 공간과 같이 시스템 또는 애플리케이션 공간에서 제어에 해당하는 제스처일 수 있다. 예를 들어, 사용자(18)는 캡쳐 장치(20)를 통해 트래킹되어, 사용자(18)의 움직임이 컴퓨터 환경(12)에서 실행 중인 애플리케이션에 영향을 주는 제어로써 해석될 수 있다. 컴퓨팅 환경은, 인식되고 골격 모델로 매핑된 사용자의 제스처들을 기반으로 하여 컴퓨팅 환경에서 실행되는 애플리케이션에서 어떤 제어를 실행할지를 결정할 수 있다. 따라서, 사용자는 물리적 공간에서 제스처를 취함으로써 아바타의 모션을 제어할 수 있다.
캡쳐된 모션은 카메라와 같은 캡쳐 장치로 캡쳐된 물리적 공간에서의 임의의 모션일 수 있다. 이 캡쳐된 모션은 사용자 또는 사물과 같은, 물리적 공간에서의 타겟의 모션을 포함할 수 있다. 캡쳐된 모션은 운영 체제 또는 애플리케이션에서의 제어로 해석되는 제스처를 포함할 수 있다. 모션은 달리는 모션과 같이 동적일 수도 있고, 또는 거의 움직임이 없는 자세를 취하는 사용자와 같이 정적일 수도 있다.
시스템(10)은 캡쳐 장치(20)로의 입력을 애니메이션으로 변환하여, 애니메이션이 이 입력에 의해 구동되게 할 수 있으며, 여기서 입력은 사용자의 모션을 나타낸다. 따라서, 사용자의 모션을 아바타(40)에 매핑시켜, 물리적 공간에서의 사용자의 모션들이 아바타(40)에 의해 실행되도록 할 수 있다. 사용자의 모션들은 애플리케이션에서 제어에 해당되는 제스처들일 수 있다. 도 1에 도시된 바와 같이, 일 실시예에서, 컴퓨팅 환경(12)에서 실행되는 애플리케이션은 사용자(18)가 하고 있는 복싱 게임일 수 있다.
캡쳐 장치(20)는 사용자의 행동을 나타내는 데이터를 캡쳐할 수 있다. 예를 들어, 캡쳐 장치는 사용자의 행동을 나타내는 특성들을 캡쳐한다. 이러한 특성들로, 사용자의 자세, 얼굴 표정, 음성 명령어(vocal commands), 스피치 패턴, 제스처 등을 들 수 있다. 컴퓨팅 환경(12)은 캡쳐된 데이터를 분석하고, 정황(contextual circumstances)과, 예를 들어, 사용자의 환경 조건, 시스템 또는 애플리케이션의 상태, 애플리케이션의 사용자의 성공/결과, 사용자의 활성(active) 또는 비활성(non-active) 상태, 또는 기타 탐지가능한 상황과 사용자의 행동을 연관시킬 수 있다. 따라서, 시스템은, 사용자가 다양한 상황에 대처하는 방식 등 사용자의 행동 성향을 학습할 수 있다.
컴퓨팅 환경(12)은 오디오비주얼 장치(16)를 사용하여, 사용자(18)가 그 자신의 움직임으로 제어할 수 있는 플레이어 아바타(40)의 비주얼 표현을 제공할 수도 있다. 플레이어 아바타(40)는 캡쳐 장치(20)에 의해 식별된 사용자 특성을 가질 수 있고, 또는 시스템(10)은 사용자의 모션에 일치하는 비주얼 표현에 유명한 복싱 선수의 특징을 사용하거나 프로 복싱 선수의 체격을 묘사할 수 있다. 일 실시예에 따르면, 타겟 인식, 분석 및 트래킹 시스템(10)의 컴퓨팅 환경(12) 및 캡쳐 장치(20)가 물리적 공간에서의 사용자(18)의 펀치를 인식하고 분석하는 데에 사용되어, 그 펀치가 게임 공간에서 플레이어 아바타(40)의 게임 제어로 해석될 수 있다. 예를 들어, 사용자(18)는 물리적 공간에서 펀치를 날려, 플레이어 아바타(40)가 게임 공간에서 펀치를 날리게 할 수 있다. 또한, 컴퓨팅 환경(12)은 오디오비주얼 장치(16)를 사용하여 사용자(18)에게 복싱 상대(38)의 비주얼 표현을 제공할 수 있다.
또한, 사용자(18)의 다른 움직임들은 예를 들어, 보빙(bob), 위빙(weave), 셔플(shuffle), 블록(block), 잽(jab)을 하거나 또는 다양한 다른 파워 펀치들을 날리기 위한 제어와 같이 다른 제어나 액션로 해석될 수 있다. 나아가, 일부 움직임들은 플레이어 아바타(40)의 제어가 아닌 액션들에 해당하는 제어로 해석될 수 있다. 예를 들어, 플레이어가 움직임을 통해 게임의 종료, 일시 중지 또는 저장, 레벨 선택, 최고점 보기, 친구와의 통신 등을 할 수 있다. 또한, 사용자(18)의 모든 움직임은 애플리케이션과 인터랙션하도록 적절한 방식으로 이용 가능, 사용 및 분석될 수 있다.
다수의 사용자들이 원격 위치에서 서로 인터랙션할 수도 있다. 예를 들어, 복싱 상대(38)의 비주얼 표현은, 사용자(18)와 같은 물리적 공간에서의 제 2 사용자 또는 제 2 물리적 공간에서의 네트워크 연결된 사용자 등 다른 사용자를 나타낼 수 있다. 또는, 시스템은, 사용자가 물리적 공간에 존재하든지 아니든지 또는 시스템/애플리케이션과 인터랙션을 하든지 말든지, 그 사용자에 연관된 아바타를 렌더링할 수 있다. 예를 들어, 제 1 사용자의 아바타가 제 2 사용자의 아바타와 인터랙션하고 있다. 제 1 사용자는 물리적 공간에 존재하고, 제 1 사용자의 제스처 및 움직임들을 제어하고 있다. 반면, 제 2 사용자의 아바타에 연관된 제 2 사용자는 물리적 공간에 존재하지 않는다. 시스템은, 제 2 사용자의 입력 이력을 사용하여, 제 2 사용자의 아바타가 제 2 사용자의 입력으로부터 학습한 행동들과 비슷하도록 지적으로 애니메이션을 적용할 수 있다. 제 2 사용자의 아바타는 제 2 사용자를 닮으며, 제 2 사용자의 성향, 습관 및 애플리케이션에 적용가능한 기타 특성들을 자세히 반영한다. 따라서, 제 1 사용자는, 제 2 사용자가 물리적으로 존재하여 제 2 사용자의 아바타를 제어하는 경우와 유사한 가상 세계의 경험을 제 2 사용자의 아바타로 할 수 있다.
실시예들에서, 사용자(18)와 같은 인간 타겟은 사물을 가질 수 있다. 이러한 실시예에서는, 전자 게임의 사용자가 사물을 쥐어, 플레이어와 사물의 모션들이 게임의 파라미터들을 조정 및/또는 제어하는 데에 사용될 수 있다. 예를 들어, 라켓을 쥔 플레이어의 모션이 트래킹되어, 전자 스포츠 게임의 온스크린 라켓을 제어하는 데에 이용될 수 있다. 또 다른 실시예에서, 사물을 쥐고 있는 플레이어의 모션이 트래킹되어, 전자 컴뱃 게임에서 온스크린 무기를 제어하는 데에 이용될 수 있다. 사용자의 제스처 또는 모션은 플레이어 아바타(40)의 제어가 아닌 액션들에 해당하는 제어들로 해석될 수도 있다. 예를 들어, 플레이어가 움직임을 통해 게임의 종료, 일시 중지 또는 저장, 레벨 선택, 최고점 보기, 친구와의 통신 등을 할 수 있다. 운영 체제 및/또는 애플리케이션의 제어가능한 사실상 모든 양태가 사용자(18)와 같은 타겟의 움직임에 의해 제어될 수 있다.
다른 실시예에 따르면, 타겟 인식, 분석 및 트래킹 시스템(10)은 타겟 움직임들을 게임 세상 밖의 운영 체제 및/또는 애플리케이션의 양태를 제어하는 것으로 해석할 수 있다. 사용자의 제스처는 운영 체제, 게임의 비게임 양태 또는 비게임 애플리케이션에 적용되는 제어들일 수 있다. 사용자의 제스처는 사용자 인터페이스의 제어와 같이 사물 조작으로 해석될 수 있다. 예를 들어, 왼쪽에서 오른쪽으로 수직으로 정렬된 블레이드 또는 탭 인터페이스를 갖는 사용자 인터페이스에서, 각 블레이드 또는 탭을 선택하면 애플리케이션 또는 시스템 내의 다양한 제어들에 대한 옵션들이 펼쳐진다. 시스템은 사용자 손의 움직임을 탭의 움직임으로 파악하며, 여기서 물리적 공간의 사용자 손은 애플리케이션 공간의 탭과 가상으로 맞춰져 있다. 잠시 멈춤, 잡는 모션 및 손을 왼쪽으로 내미는 것을 포함하는 제스처는 탭의 선택 및 그 탭을 지나쳐 다음 탭을 여는 것으로 해석될 수 있다. 유사하게, 시스템은 임의의 유형의 애플리케이션의 실행을 통한 사용자의 입력으로부터 사용자의 행동을 학습할 수 있다. 시스템은, 그 애플리케이션 또는 기타 다른 애플리케이션에서 학습된 입력을 따라 사용자의 아바타가 행동하도록 애니메이션화할 수 있다.
도 2는 타겟 인식, 분석 및 트래킹에 사용되는 캡쳐 장치(20)의 일 실시예를 도시하며, 여기서 타겟은 사용자 또는 사물일 수 있다. 일 실시예에 따르면, 캡쳐 장치(20)는 비행 시간(time-of-flight), 구조광(structured light), 스테레오 이미지 등을 포함하는 적절한 임의 기술을 통해, 깊이 값을 포함하는 깊이 이미지 등 깊이 정보가 있는 비디오를 캡쳐하도록 구성될 수 있다. 일 실시예에 따르면, 캡쳐 장치(20)는 "Z 레이어들", 또는 깊이 카메라로부터 시선을 따라 연장되는 Z 축에 수직인 레이어들로 깊이 정보를 체계화시킬 수 있다.
도 2에 도시된 바와 같이 캡쳐 장치(20)는 이미지 카메라 컴포넌트(22)를 포함할 수 있다. 일 실시예에 따르면, 이미지 카메라 컴포넌트(22)는 장면의 깊이 이미지를 캡쳐하는 깊이 카메라일 수 있다. 깊이 이미지는 캡쳐된 장면의 2-D(two-dimensional) 화소 영역을 포함할 수 있고, 2-D 화소 영역의 각 화소는 카메라로부터 캡쳐된 장면에서 사물의 길이 또는 거리 등의 깊이 값을 센티미터, 밀리미터 등으로 나타낼 수 있다.
도 2에 도시된 바와 같이, 일 실시예에 따르면, 이미지 카메라 컴포넌트(22)는 장면의 깊이 이미지를 캡쳐하기 위해 사용되는 적외선 컴포넌트(IR light component, 24), 3-D(three-dimensional) 카메라(26) 및 RGB 카메라(28)를 포함할 수 있다. 예를 들면, 비행 시간 분석법에서는, 캡쳐 장치(20)의 적외선 컴포넌트(24)가 장면으로 적외선을 내보내고, 센서들(도시되지 않음)을 사용하여 3-D 카메라(26) 및/또는 RGB 카메라(28)를 사용한 장면의 하나 이상의 타겟 및 사물들의 표면으로부터 후방 산란되는 빛을 검출한다. 몇몇 실시예에서는, 펄스 적외선(pulsed infrared light)을 사용하여, 나가는 광 펄스와 이에 대응하여 들어오는 광 펄스 간의 시간을 측정하고, 이를 사용하여 캡쳐 장치(20)로부터 장면의 타겟 또는 사물들의 특정 지점까지의 물리적인 거리를 결정할 수 있다. 또한, 또 다른 실시예에서는, 나가는 광파의 위상과 들어오는 광파의 위상을 비교하여 위상 변위(phase shift)를 결정할 수 있다. 이후, 이 위상 변위를 사용하여 캡쳐 장치(20)로부터 타겟 또는 사물의 특정 지점까지의 물리적인 거리를 결정할 수 있다.
또 다른 실시예에 따르면, 비행 시간 분석법을 사용하여 셔터 광 펄스 이미징(shuttered light pulse imaging)을 포함하는 다양한 기술을 통해 시간에 따른 반사광의 강도를 분석함으로써 캡쳐 장치(20)로부터 타겟 또는 사물의 특정 지점까지의 물리적인 거리를 간접적으로 결정할 수 있다.
또 다른 실시예에 따르면, 캡쳐 장치(20)는 구조광을 사용하여 깊이 정보를 캡쳐할 수 있다. 이러한 분석법에서는, 패턴화된 광(즉, 그리드 패턴이나 스트라이프 패턴과 같이 공지된 패턴으로 디스플레이되는 광)이 적외선 컴포넌트(24)를 통해 장면에 투사될 수 있다. 그 장면의 하나 이상의 타겟 또는 사물의 표면에 부딪치면, 패턴이 그에 따라 변형되게 된다. 이러한 패턴의 변형이 예컨대, 3-D 카메라(26) 및/또는 RGB 카메라(28)에 의해 캡쳐된 후에 분석되어, 캡쳐 장치(20)로부터 타겟 또는 사물의 특정 지점까지의 물리적인 거리를 결정할 수 있다.
또 다른 실시예에 따르면, 캡쳐 장치(20)는, 깊이 정보의 생성을 위해 분석되는 비주얼 스테레오 데이터를 얻기 위해 각기 다른 각도에서 장면을 볼 수 있는 물리적으로 분리된 둘 이상의 카메라들을 포함할 수 있다.
캡쳐 장치(20)는 마이크(30) 또는 마이크 어레이를 더 포함할 수 있다. 마이크(30)는 소리를 수신하여 이를 전기 신호로 변환하는 변환기(transducer) 또는 센서를 포함할 수 있다. 일 실시예에 따르면, 마이크(30)는 타겟 인식, 분석 및 트래킹 시스템(10)의 캡쳐 장치(20)와 컴퓨팅 환경(12) 사이의 피드백을 감소시키기 위해 사용될 수 있다. 게다가, 컴퓨팅 환경(12)에서 실행가능한 게임 애플리케이션, 비게임 애플리케이션 등의 애플리케이션들을 제어하기 위해 사용자로부터 제공되는 오디오 신호를 수신하기 위해 마이크(30)가 사용될 수 있다.
일 실시예에서, 캡쳐 장치(20)는 이미지 카메라 컴포넌트(22)와 통신 가능한 논리 프로세서(32)를 더 포함할 수 있다. 프로세서(32)는 깊이 이미지를 수신하고, 그 깊이 이미지에 적절한 타겟의 포함 여부를 결정하고, 적절한 타겟을 타겟의 골격 표현 또는 모델로 변환하는 인스트럭션을 포함하는 인스트럭션들 또는 기타 임의의 적절한 인스트럭션을 실행하는 표준화된 프로세서, 특화된 프로세서, 마이크로 프로세서를 포함할 수 있다.
캡쳐 장치(20)는, 프로세서(32)로 실행가능한 인스트럭션, 3-D 카메라(26) 또는 RGB 카메라(28)로 캡쳐된 이미지 또는 이미지 프레임, 또는 기타 임의의 적절한 정보, 이미지 등을 저장하는 메모리 컴포넌트(34)를 더 포함할 수 있다. 일 실시예에 따르면, 메모리 컴포넌트(34)는 RAM(random access memory), ROM(read only memory), 캐시(cache), 플래시 메모리, 하드 디스크 또는 기타 적절한 저장 컴포넌트를 포함한다. 도 2에 도시된 바와 같이, 일 실시예에서, 메모리 컴포넌트(34)는 이미지 카메라 컴포넌트(22) 및 프로세서(32)와 통신하는 별개의 컴포넌트일 수 있다. 또 다른 실시예에 따르면, 메모리 컴포넌트(34)가 프로세서(32) 및/또는 이미지 카메라 컴포넌트(22)에 통합될 수도 있다.
도 2에 도시된 바와 같이, 캡쳐 장치(20)는 통신 링크(36)를 통해 컴퓨팅 환경(12)과 통신할 수 있다. 통신 링크(36)는 USB 연결, 파이어와이어(Firewire) 연결, 이더넷 케이블 연결 등을 포함하는 유선 연결 및/또는 무선 802.11 b, g, a 또는 n 연결 등의 무선 연결일 수 있다. 일 실시예에 따르면, 컴퓨팅 환경(12)은 장면을 언제 캡쳐할 지를 결정하는 데에 사용되는 클럭을 통신 링크(36)를 통해 캡쳐 장치(20)로 제공할 수 있다.
또한, 캡쳐 장치(20)는 예를 들어, 3-D 카메라(26) 및/또는 RGB 카메라(28)에서 캡쳐되는 깊이 정보 및 이미지들, 및/또는 캡쳐 장치(20)로부터 생성되는 골격 모델을 통신 링크(36)를 통해 컴퓨팅 환경(12)으로 제공할 수 있다. 이후에, 컴퓨팅 환경(12)은 골격 모델, 깊이 정보 및 캡쳐된 이미지를 사용하여, 예컨대, 게임 또는 워드 프로세서 등의 애플리케이션을 제어할 수 있다. 예를 들어, 도 2에 도시된 바와 같이, 컴퓨팅 환경(12)은 제스처 라이브러리(192)를 포함할 수 있다.
도 2에 도시된 바대로, 컴퓨팅 환경(12)은 제스처 라이브러리(192) 및 제스처 인식 엔진(190)을 포함할 수 있다. 제스처 인식 엔진(190)은 제스처 필터(191)의 컬렉션을 포함할 수 있다. 각 필터(191)는 제스처를 정의하는 정보와 그 제스처에 대한 파라미터 또는 메타데이터를 함께 포함할 수 있다. 예를 들어, 한 손이 몸 뒤로부터 몸 앞을 지나는 모션을 포함하는 던지기 동작은 사용자의 한 손이 몸 뒤로부터 몸 앞을 지나는 움직임을 나타내는 정보를 포함하는 제스처 필터(191)로써 구현될 수 있으며, 이 움직임은 깊이 카메라에 의해 캡쳐될 것이다. 이후에, 그 제스처에 대한 파라미터들이 설정된다. 제스처가 던지기 동작이면, 파라미터는 손이 도달해야 하는 임계 속도(threshold velocity), 손이 이동해야 하는 (절대적인 또는 전체적으로 사용자의 신체 크키에 따라 상대적인) 거리 및 제스처가 발생했다는 인식 엔진의 신뢰도 평가일 수 있다. 제스처에 대한 이러한 파라미터들은 애플리케이션들 간에, 단일 애플리케이션의 컨텍스트들 간에, 또는 단일 애플리케이션의 단일 컨텍스트 내에서 시간이 갈수록 달라질 수 있다.
카메라(26, 28) 및 장치(20)에 의해 캡쳐된 골격 모델 및 그에 관련된 움직임 형식의 데이터가 제스처 라이브러리(192)의 제스처 필터들(191)과 비교되어, (골격 모델로 표현되는) 사용자가 하나 이상의 제스처들을 언제 행하였는지를 확인할 수 있다. 따라서, 필터(191) 등의 필터로의 입력은 사용자의 관절 위치에 관한 관절 데이터, 관절에서 만나는 뼈가 형성하는 각도, 장면의 RGB 색상 데이터 및 사용자 양태의 변화율 등을 포함할 수 있다. 언급한 대로, 제스처에 대한 파라미터들이 설정될 수 있다. 필터(191)의 출력에는 특정 제스처가 취해짐에 대한 신뢰도, 제스처 모션이 행해진 속도 및 제스처가 발생한 시각 등이 포함될 수 있다.
컴퓨팅 환경(12)은 깊이 이미지를 처리하여, 방에 있는 사용자(18) 또는 사물과 같이 장면에 어떤 타겟이 있는 지를 결정할 수 있는 프로세서(195)를 포함할 수 있다. 이는, 예를 들어 유사한 거리 값을 갖는 깊이 이미지의 화소들을 함께 그룹화함으로써 실행될 수 있다. 또한, 이미지가 파싱되어(parsed) 관절 및 관절 사이의 조직 등의 특징이 식별되는 사용자의 골격 표현을 생성하게 된다. 깊이 카메라로 사람을 캡쳐하는 골격 매핑 기법이 있으며, 이것으로부터 사용자의 골격 상의 다양한 지점들, 손, 손목, 팔꿈치, 무릎, 코, 발목, 어깨 및 골반이 척추를 만나는 곳의 관절들을 결정한다. 다른 기법들로는 이미지를 사람의 신체 모델 표현으로 전환하고, 이미지를 사람의 메쉬 모델 표현으로 전환하는 것이 있다.
일 실시예에서, 이러한 처리는 캡쳐 장치(20) 자체에서 실행되며, 깊이 및 색상 값의 실제(raw) 이미지 데이터는(캡쳐 장치(20)가 3D 카메라(26)를 포함) 링크(36)를 통해 컴퓨팅 환경(12)으로 전송된다. 또 다른 실시예에서는, 이러한 처리가 이미지 카메라 컴포넌트(22)에 연결된 프로세서(32)에서 실행되고, 파싱된 이미지 데이터가 컴퓨팅 환경(12)으로 전송된다. 또 다른 실시예에서, 실제 이미지 데이터 및 파싱된 이미지 데이터 모두가 컴퓨팅 환경(12)으로 전송된다. 컴퓨팅 환경(12)은 파싱된 이미지를 수신하지만, 현 프로세스 또는 애플리케이션을 실행하기 위해 실제 데이터도 수신할 수 있다. 예를 들어, 장면의 이미지가 컴퓨터 네트워크를 통해 다른 사용자에게 전송되는 경우, 컴퓨팅 환경(12)은 다른 컴퓨팅 환경에서의 처리를 위해 실제 데이터도 전송할 수 있다.
컴퓨팅 환경(12)은 제스처 라이브러리(192)를 사용하여, 골격 모델의 움직임을 해석하고 그 움직임을 기초로 하여 애플리케이션을 제어한다. 컴퓨팅 환경(12)은 디스플레이 장치(194) 등의 디스플레이에 아바타 또는 포인터의 형태로 사용자의 표현을 모델링하고 디스플레이할 수 있다. 디스플레이 장치(194)는 컴퓨터 모니터, TV 스크린 또는 기타 적절한 디스플레이 장치를 포함할 수 있다. 예를 들어, 카메라로 제어되는 컴퓨터 시스템(camera-controlled computer system)은 사용자 이미지 데이터를 캡쳐하고 사용자의 제스처에 매핑되는 사용자 피드백을 TV 스크린에 디스플레이한다. 사용자 피드백은 도 1에 도시된 바와 같이 스크린에 아바타로서 디스플레이될 수 있다. 아바타의 움직임을 사용자의 움직임에 매핑시킴으로써 아바타의 모션이 직접 제어될 수 있다. 사용자 제스처는 애플리케이션의 특정 양태들을 제어하는 것으로 해석될 수 있다.
일 실시예에 따르면, 타겟은 가상 스크린의 생성, 사용자를 저장된 여러 프로파일들과 비교 및/또는 컴퓨팅 환경(12)과 같은 컴퓨팅 환경에서 타겟에 대한 프로파일 정보(198)를 저장하도록 스캔, 트래킹, 모델링 및/또는 평가되는, 서 있거나 앉아 있는 등 임의의 자세의 인간 타겟, 사물을 갖는 인간 타겟, 둘 이상의 인간 타겟, 하나 이상의 인간 타겟의 하나 이상의 부속물 등일 수 있다. 프로파일 정보(198)는 사용자 프로파일, 개인 프로파일, 애플리케이션 프로파일, 시스템 프로파일 또는 추후 액세스를 위해 데이터를 저장하는 기타 적절한 방법의 형태일 수 있다. 예를 들어, 프로파일 정보(198)는 애플리케이션을 통해 액세스 가능하거나, 시스템 전체에 걸쳐 이용될 수 있다. 프로파일 정보(198)는 특정 사용자 프로파일 정보를 로딩하는 룩업 테이블들을 포함할 수 있다. 가상 스크린은 도 1과 관련하여 전술한 컴퓨팅 환경(12)에서 실행되는 애플리케이션과 인터랙션할 수 있다.
실시예들에 따르면, 룩업 테이블은 사용자 전용 프로파일 정보를 포함할 수 있다. 일 실시예에서, 컴퓨팅 환경(12)과 같은 컴퓨팅 환경에서는 하나 이상의 사용자에 대한 프로파일 데이터(198)가 룩업 테이블에 저장될 수 있다. 저장된 프로파일 데이터(198)는 타겟의 스캔되거나 추정된 신체 크키, 골격 모델, 목소리 샘플 또는 비밀 번호, 타겟의 나이, 이전 제스처들, 타겟 제한 사항(target limitations) 및 예컨대, 앉는 성향, 왼손 또는 오른손잡이 또는 캡쳐 장치에 인접해서 서는 성향 등 시스템의 타겟에 의한 표준 사용법을 포함한다. 이러한 정보는 캡쳐 장면의 타겟과 하나 이상의 사용자 프로파일(198) 간에 일치 여부를 결정하는 데에 사용되어, 일 실시예에 따르면, 시스템이 가상 스크린을 사용자에게 맞게 조정하거나 또는, 컴퓨팅 또는 게임 경험의 다른 요소들을 프로파일(198)에 따라 조정할 수 있게 된다.
하나 이상의 개인 프로파일(198)이 컴퓨터 환경(12)에 저장되고 다수의 사용자 세션에서 사용될 수 있으며, 또는 단일 세션만을 위해 하나 이상의 개인 프로파일이 생성될 수도 있다. 사용자는 목소리 또는 신체 스캔, 나이, 개인 선호도, 왼손 또는 오른손잡이, 아바타, 이름 등의 정보를 시스템에 제공하는 프로파일을 설정하는 옵션을 가질 수 있다. 캡쳐 공간에 들어간 다음에도 시스템에 어떤 정보도 제공하지 않는 "게스트"에 대한 개인 프로파일이 제공될 수도 있다. 하나 이상의 게스트에 대한 임시 개인 프로파일이 설정될 수 있다. 게스트 세션 끝에, 게스트 개인 프로파일이 저장되거나 삭제될 것이다.
도 2에 도시된 바와 같이, 컴퓨팅 환경(12)은 사용자의 아바타에 적용되도록 선택가능한 애니메이션을 포함하는 아바타 라이브러리(196)를 포함할 수 있다. 사용자 프로파일(198)은 아바타 라이브러리를 포함하거나, 또는 사용자 전용 애니메이션이 있는 아바타 라이브러리에 연계될 수 있다. 룩업 테이블은 다양한 정황에 대한 사용자의 행동 및 성향을 포함할 수 있다. 사용자 프로파일을 사용하여 사용자의 아바타에 애니메이션을 적용하여, 아바타가 사용자의 행동을 자세하게 반영하도록 할 수 있다.
아바타 라이브러리의 애니메이션들은 아바타에 적용가능한 임의의 특성을 포함할 수 있다. 특성들은 사용자의 행동을 나타낼 수 있다. 따라서, 사용자의 아바타에 적용되도록 선택된 애니메이션은 사용자의 행동에 대응할 수 있다. 애니메이션은 목소리 또는 스피치 패턴, 어휘, 잡음 크기, 말, 물리적인 특성, 움직임 중 임의의 하나 또는 임의의 조합을 포함할 수 있다. 애니메이션은 달리는 모션과 같이 동적인 모션을 포함할 수 있고, 또는 모션은 거의 움직임이 없는 자세를 취하는 것 같이 정적일 수도 있다. 예를 들어, 아바타 라이브러리는 특정 사용자에 연계되거나, 사용자 프로파일에 저장될 수 있다.
아바타 라이브러리(196)는 애니메이션의 저장 라이브러리(stock library)일 수 있다. 일 실시예에서, 아바타에 적용되는 애니메이션들은, 프로그램, 애플리케이션 또는 시스템에 딸려오는 것과 같이 사전에 패키지화된 애니메이션의 라이브러리로부터 선택된 애니메이션일 수 있다. 사용자의 아바타에 적용되도록 선택된 애니메이션은, 시스템이 특정 행동들을 반영하도록 학습한 사용자 입력에 대응한다. 예를 들어, 시스템은, 사용자가 게임 애플리케이션에서 성공한 때와 같이 특정 컨텍스트에서는 펄쩍 뛰는 성향이 있음을 식별할 수 있다. 따라서, 비슷한 게임 상태(예컨대, 성공) 등 일련의 비슷한 정황들을 식별할 때, 시스템은 펄쩍 뛰는 것을 반영하는 애니메이션을 선택하고, 이 애니메이션을 사용자의 아바타에 적용한다. 애플리케이션 또는 시스템을 위해 사전 제작된 애니메이션(pre-canned animations)이 정의될 수도 있다. 예를 들어, 펄쩍 뛰는 애니메이션은 게임 애플리케이션에 적용가능하지만, 아바타에 적용되는 파일을 열고 닫는 애니메이션(open/close file animation)은 시스템 전체에서 동일하게 적용된다.
아바타 라이브러리의 애니메이션들은 시스템 또는 사용자에 의해 입력되고 기록된 애니메이션일 수 있다. 시스템은 사용자가 애니메이션 저장 라이브러리에 덮어쓰거나 추가할 수 있게 한다. 예를 들어, 시스템 또는 사용자는 캡쳐 장치에서 캡쳐된 사용자의 실제 모션 또는 행동들을 반영하도록 저장 애니메이션을 덮어쓸 수 있다. 따라서, 아바타 애니메이션 라이브러리에 애니메이션들이 추가되거나 덮어쓰여져, 적용되는 애니메이션들이 특정 사용자에 대해 캡쳐된 데이터로 조정될 수 있다. 펄쩍 뛰는 애니메이션의 경우, 시스템은 사용자의 실제 모션을 기록함으로써 펄쩍 뛰는 것에 대한 표준 또는 디폴트 애니메이션을 고쳐쓸 수 있다. 따라서, 사용자의 아바타에 적용가능한 펄쩍 뛰는 애니메이션은 사용자의 실제 모션들로 조정될 수 있다.
또한, 시스템은 아바타 라이브러리에 사용자 입력에 관련된 데이터를 저장할 수 있다. 아바타 라이브러리는 사용자 행동의 표시 및/또는 그 행동에 대응하는 상황을 포함할 수 있다. 예를 들어, 그 상황은 사용자의 행동에 연관된 컨텍스트를 나타내는 정황이다. 정황은 사용자의 행동에 연관되거나 또는 연관되지 않는 시나리오의 식별가능한 임의의 특징을 포함할 수 있다. 시스템은 사용자의 행동에 관한 정황을 트래킹하고, 그 정황과 사용자 행동의 성향 간의 상호관계를 식별할 수 있다.
예를 들어, 정황은 사용자의 물리적 또는 가상 환경, 물리적 공간에 존재하는 다른 사용자들, 게임 상태, 애플리케이션의 결과, 사용자의 활성 또는 비활성 상태 등을 포함하는 사용자의 환경 조건을 포함한다. 사용자의 환경 조건은 캡쳐 장치에 의해 캡쳐된 장면의 물리적인 특징들, 예컨대, 벽의 색상, 방에 있는 가구, 조명 등을 포함할 수 있다. 사용자의 환경 조건은 스크린 상의 애니메이션과 같이 가상 환경 조건(예컨대, 스키 게임 애플리케이션에 디스플레이되는 가상의 산)을 포함할 수도 있다. 애플리케이션의 상태는 애플리케이션의 임의의 상태를 포함하여, 예컨대, 애플리케이션이 일시 중지되는 경우, 애플리케이션이 실행된 시간의 길이, (게임 애플리케이션 등에서) 요구되는 기술 레벨 등을 말한다. 애플리케이션의 결과는, 예를 들어, 코드가 디버거(debugger)를 성공적으로 통과하거나, 게임 애플리케이션의 플레이어가 게임 성공 또는 실패를 하는 경우를 들 수 있다.
애플리케이션 또는 애플리케이션의 컨텍스트에 따라 제스처 라이브러리 및 필터 파라미터들이 제스처 툴에 의해 튜닝될 수 있다. 시스템은 애플리케이션의 컨텍스트를 식별 및 저장하고, 이들을 사용자의 입력에 상호 연관시킬 수 있다. 시스템은 컨텍스트 정보를 사용하여, 사용자의 특정 행동들을 컨텍스트에 상호 연관시킬 수 있다. 이러한 방식으로, 시스템은 애니메이션을 아바타에 지적으로 적용시켜 아바타가 유사한 행동으로 정황에 대응할 수 있게 한다.
컨텍스트는 식별가능한 상황(즉, 정황)을 가질 수 있으며, 문화적인 컨텍스트 또는 환경적인 컨텍스트일 수도 있다. 문화적인 컨텍스트란 시스템을 사용하는 사용자의 문화를 의미한다. 다른 문화들은 유사한 제스처를 사용하여 현저하게 다른 의미를 전할 수 있다. 예를 들면, 다른 사용자에게 "보도록" 또는 "눈을 사용하도록" 말하고 싶은 미국인 사용자는 자신의 관자놀이 근처에 검지 손가락을 둔다. 반면, 이탈리아 사용자는 이러한 제스처를 마피아를 언급하는 것으로 해석한다.
유사하게, 단일 애플리케이션의 상이한 환경에서 상이한 컨텍스트 또는 정황들이 존재할 수 있다. 자동차 운전을 포함하는 일인칭 슈터 게임(first-user shooter game)을 예를 든다. 사용자가 걷는 경우, 땅을 향해 손가락으로 주먹을 쥐고 그 주먹을 앞쪽으로 몸에서 멀어지게 뻗는 것은 펀치 제스처를 나타낸다. 사용자가 운전하는 컨텍스트에서는, 동일한 모션은 "기어 전환" 제스처를 나타낸다. 비주얼 표현에 대한 변화에 관해서는, 환경에 따라 다른 제스처들이 다른 변화를 트리거할 수 있다. 애플리케이션 전용 변화 모드 및 시스템 전반 변화 모드로 들어가는 데에 다른 변화 트리거 제스처가 사용될 수 있다. 각 변화 모드는, 그 변화 모드에 대응하는 독립적인 제스처 세트를 수반하며, 그 변화 트리거 제스처의 결과에 따라 해당 모드로 들어갈 수 있다. 예를 들어, 볼링 게임에서, 팔을 흔드는 모션은 가상 볼링장에서 볼링 공을 내려놓기 위해 흔드는 것으로 식별되는 제스처이다. 그러나, 다른 애플리케이션에서는, 팔을 흔드는 모션은 스크린에 디스플레이되는 사용자의 아바타의 팔을 늘리는 요청으로 식별되는 제스처일 수 있다. 또한, 사용자가 자신의 게임을 저장하거나, 자신의 캐릭터의 장비들을 선택하는 등, 직접적인 게임 플레이를 포함하지 않는 유사한 액션을 취할 수 있는 하나 이상의 메뉴 환경이 마련될 수도 있다. 이러한 환경에서는, 이 동일한 제스처가 임의의 것을 선택하거나 또는 다른 스크린으로 진행되도록 하는 등 제 3의 의미를 가질 수 있다.
특정 사용자에 대한 아바타 라이브러리 또는 애플리케이션과 함께 사전에 패키지화된 아바타 라이브러리를 포함하는 아바타 라이브러리는, 애플리케이션에서, 애플리케이션들 간에 또는 시스템 전체에서 액세스 가능하다. 예를 들어, 시스템은 다양한 애플리케이션을 통해 사용자의 행동을 식별할 수 있다. 시스템은 애플리케이션에 걸쳐 사용자의 행동에 관련된 모든 데이터를 수집하고, 이들을 보편적으로 사용가능한 아바타 라이브러리에 저장할 수 있다. 이후에, 시스템은 아바타 라이브러리에 액세스하여, 임의의 상황에서 아바타 라이브러리의 애니메이션을 아바타에 적용할 수 있다.
제스처는 아바타 라이브러리의 애니메이션을 수정하는 요청으로 인식될 수도 있다. 복수의 제스처 각각은 특정 애니메이션을 수정하는 요청을 나타낼 수 있다. 시스템은 사용자가 특정 애니메이션을 위해 바람직한 모션을 행하게 제시할 수 있다(prompt). 따라서, 사용자는 수정 제스처로 인식되는 제스처를 물리적 공간에서 취함으로써, 사용자에 연관된 아바타 라이브러리를 능동적으로 변경할 수 있다. 예를 들어, 전술한 바와 같이, 사용자의 모션은 도 2의 제스처 필터(191)와 같은 제스처 필터에 비교된다. 제스처 필터(191)는 제스처 라이브러리(192)의 수정 제스처들에 대한 정보를 포함할 수 있다.
제스처들은 각 장르의 애플리케이션에서 사용될 수 있는 연관 제스처들의 장르 패키지로 그룹화될 수 있다. 연관 제스처들은 - 통상적으로 함께 사용되기 때문에, 또는 제스처의 파라미터의 변경이 다른 제스처의 파라미터를 변경시킨다는 점에서 연관된 - 장르 패키지들로 함께 그룹화될 수 있다. 이러한 패키지들은 적어도 하나의 패키지를 사용하는 애플리케이션으로 제공된다. 애플리케이션은 애플리케이션 특유의 양태들에 가장 적합하도록 제스처 또는 제스처 필터(191)의 파라미터를 튜닝 또는 변화시킬 수 있다. 파라미터가 튜닝될 때, 그 제스처 또는 제 2 제스처의 (상호의존적인 면에서의) 제 2 연관 파라미터도 파라미터들이 연관되도록 튜닝된다. 비디오 게임의 장르 패키지들은 일인칭 슈터, 액션, 드라이빙 및 스포츠와 같은 장르를 포함할 수 있다.
제스처 라이브러리(192), 제스처 인식 엔진(190), 아바타 라이브러리(196) 및 프로파일(198)은 하드웨어, 소프트웨어 또는 이들의 조합으로 구현될 수 있다. 예를 들어, 제스처 라이브러리(192) 및 제스처 인식 엔진(190)은 컴퓨팅 환경(12)(또는 도 3의 처리 장치(101)나 도 4의 처리 장치(259))의 프로세서(195)와 같은 프로세서에서 실행되는 소프트웨어로 구현될 수 있다.
도 2 및 이하에서 설명될 도 3 및 4에 도시된 블록 다이어그램은 예시적인 것으로 특정한 구현을 의미하는 것은 아님이 강조된다. 따라서, 도 2의 프로세서(195 또는 32), 도 3의 처리 장치(101) 및 도 4의 처리 장치(259)는 단일 프로세서 또는 다수의 프로세서들도 구현될 수 있다. 다수의 프로세서들은 분산되거나 중앙에 위치할 수 있다. 예를 들어, 제스처 라이브러리(192)는 캡쳐 장치의 프로세서(32)에서 실행되는 소프트웨어로 구현되거나, 또는 컴퓨팅 환경(12)의 프로세서(195)에서 실행되는 소프트웨어로 구현될 수 있다. 본원에 개시된 기법들을 실행하기에 적합한 프로세서들의 임의의 조합이 고려될 수 있다. 다수의 프로세서들은 무선으로, 또는 유선(hard wire)으로, 또는 이들의 조합으로 통신할 수 있다.
또한 본원에서는, 컴퓨팅 환경(12)은 단일 컴퓨팅 장치 또는 컴퓨팅 시스템을 의미한다. 컴퓨팅 환경은 비-컴퓨팅 컴포넌트들을 포함할 수 있다. 컴퓨팅 환경은 도 2에 도시된 디스플레이 장치(194)와 같은 디스플레이 장치를 포함할 수 있다. 예컨대, 디스플레이 장치는 컴퓨팅 환경과는 분리되지만 컴퓨팅 환경에 연결된 엔티티이며, 디스플레이 장치는 디스플레이 및 처리를 하는 컴퓨팅 장치이다. 따라서, 컴퓨팅 시스템, 컴퓨팅 장치, 컴퓨팅 환경, 컴퓨터, 프로세서 또는 기타 컴퓨팅 컴포넌트는 서로 교체 사용이 가능하다.
도 3은 타겟 인식, 분석 및 트래킹 시스템에서 여러 제스처들을 해석하는 데에 사용되는 컴퓨팅 환경의 일 실시예를 도시한다. 도 1 및 2와 관련하여 전술한 컴퓨팅 환경(12) 등의 컴퓨팅 환경은 게임 콘솔과 같은 멀티미디어 콘솔(100)일 수 있다. 도 3에 도시된 바와 같이, 멀티미디어 콘솔(100)은, 레벨 1 캐시(102), 레벨 2 캐시(104) 및 플래시 ROM(Read Only Memory, 106)을 포함하는 CPU(central processing unit, 101)를 갖는다. 레벨 1 캐시(102) 및 레벨 2 캐시(104)는 데이터를 임시로 저장하여 메모리 액세스 사이클의 수를 감소시킴으로써, 처리 속도와 처리율을 향상시킨다. CPU(101)에는 하나 이상의 코어, 따라서 추가적인 레벨 1 및 레벨 2 캐시(102 및 104)가 제공될 수 있다. 플래시 ROM(106)은 멀티미디어 콘솔(100)의 전원이 켜질 때 부팅 프로세스(boot process)의 초기 단계 동안 로딩되는 실행가능 코드를 저장할 수 있다.
그래픽 처리 장치(GPU, 108)와 비디오 인코더/비디오 코덱(코더/디코더, 114)은 고속 및 고해상도 그래픽 처리를 위해 비디오 처리 파이프라인을 형성한다. 데이터는 버스를 통해 그래픽 처리 장치(108)에서 비디오 인코더/비디오 코덱(114)으로 전달된다. 비디오 처리 파이프라인은 텔레비전이나 다른 디스플레이로의 전송을 위해 A/V(오디오/비디오) 포트(140)로 데이터를 출력한다. 메모리 제어기(110)는 GPU(108)에 접속되어, RAM(Random Access Memory)과 같은, 하지만 이에 제한되지는 않는, 다양한 유형의 메모리(112)로의 프로세서 액세스를 용이하게 한다.
멀티미디어 콘솔(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)은 고신뢰성과 스테레오 처리를 갖는 대응 오디오 처리 파이프라인을 형성한다. 오디오 데이터는 통신 링크를 통해 오디오 처리 장치(123)와 오디오 코덱(132) 사이에서 전달된다. 오디오 처리 파이프라인은 오디오 기능이 있는 외부 오디오 플레이어 또는 장치에 의한 재생을 위해 A/V 포트(140)로 데이터를 출력시킨다.
전면 패널 I/O 서브어셈블리(130)는 전원 버튼(150), 배출 버튼(eject button, 152), 및 멀티미디어 콘솔(100)의 외부 표면에 노출된 임의의 LED들(light emitting diodes) 또는 기타 인디케이터들의 기능을 지원한다. 시스템 전원 모듈(136)은 멀티미디어 콘솔(100)의 컴포넌트들에 전력을 공급한다. 팬(fan, 138)은 멀티미디어 콘솔(100) 내의 회로를 냉각시킨다.
멀티미디어 콘솔(100) 내의 CPU(101), GPU(108), 메모리 제어기(110) 및 기타 다양한 컴포넌트들은 직렬 및 병렬 버스들, 메모리 버스, 주변장치 버스, 또는 다양한 버스 아키텍처들 중의 임의의 것을 사용하는 프로세서나 로컬 버스를 포함하는 하나 이상의 버스들을 통해 상호접속된다. 예를 들어, 이러한 아키텍쳐에는 PCI(Peripheral Component Interconnects) 버스, PCI 익스프레스(PCI-Express) 버스 등이 포함될 수 있다.
멀티미디어 콘솔(100)의 전원이 켜질 때, 시스템 메모리(143)로부터 애플리케이션 데이터가 메모리(112) 및/또는 캐시(102, 104)로 로딩되어, CPU(101)에서 실행될 수 있다. 애플리케이션은 멀티미디어 콘솔(100)에서 이용가능한 다른 미디어 유형들로 네비게이트할 때 일관된 사용자 경험을 제공하는 그래픽 사용자 인터페이스를 제공할 수 있다. 동작 시에는, 미디어 드라이브(144) 내에 포함된 애플리케이션들 및/또는 기타 미디어들이 미디어 드라이브(144)로부터 시작되거나 재생되어, 멀티미디어 콘솔(100)에 추가 기능들을 제공할 수 있다.
멀티미디어 콘솔(100)은 텔레비전이나 기타 디스플레이에 시스템을 단순히 접속시킴으로써 독립형 시스템으로서 동작할 수 있다. 이 독립형 모드에서, 멀티미디어 콘솔(100)은 한 명 이상의 사용자들이 시스템과 인터랙트하고, 영화를 보고, 음악을 듣게 하도록 할 수 있다. 그러나, 네트워크 인터페이스(124) 또는 무선 어댑터(148)를 통해 이용가능하게 된 통합 광대역 접속으로 인해, 멀티미디어 콘솔(100)은 보다 큰 네트워크 커뮤니티의 참가자로서 동작할 수도 있다.
멀티미디어 콘솔(100)의 전원이 켜지면, 설정량의 하드웨어 리소스들이 멀티미디어 콘솔 운영 체제에 의한 시스템 사용을 위해 예약된다. 이러한 리소스들은 메모리(예컨대, 16 MB), CPU 및 GPU 사이클(예컨대, 5 %), 네트워킹 대역폭(예컨대, 8 kbs) 등의 예약을 포함할 수 있다. 이러한 리소스들은 시스템 부팅 시간에 예약되기 때문에, 애플리케이션의 관점에서는 예약된 리소스들이 존재하지 않는다.
특히, 개시 커널(launch kernel), 동시(concurrent) 시스템 애플리케이션 및 드라이버를 포함할 수 있을 정도로 메모리 예약이 충분히 큰 것이 바람직하다. 예약된 CPU 사용량이 시스템 애플리케이션에서 사용되지 않는 경우, 휴지 쓰레드(idle thread)가 미사용 사이클들을 쓸 수 있도록 CPU 예약이 일정한 것이 바람직하다.
GPU 예약과 관련하여, 팝업이 오버레이되도록 코드를 스케줄링하는 GPU 인터럽트를 사용하여, 시스템 애플리케이션에서 생성되는 간단한 메시지(예컨대, 팝업)가 디스플레이된다. 오버레이에 필요한 메모리량은 오버레이 영역 크기에 따르며, 오버레이는 스크린 해상도에 맞춰 스케일링되는 것이 바람직하다. 동시 시스템 애플리케이션이 풀 유저 인터페이스(full user interface)를 사용하는 경우에는, 애플리케이션 해상도와는 별개의 해상도를 사용하는 것이 바람직하다. 주파수를 변경하고 TV를 재동기화시킬 필요가 없도록 이 해상도를 설정하기 위해, 스케일러가 사용될 수 있다.
멀티미디어 콘솔(100)이 부팅되고 시스템 리소스가 예약된 후에, 동시 시스템 애플리케이션이 실행되어 시스템 기능들을 제공한다. 시스템 기능들은, 상기에서 설명한 예약된 시스템 리소스들 내에서 실행되는 일련의 시스템 애플리케이션에서 캡슐화되어 있다. 운영 체제 커널은 시스템 애플리케이션 쓰레드인지 게임 애플리케이션 쓰레드인지를 식별한다. 일관적인 시스템 리소스 뷰를 애플리케이션에 제공하기 위해, 시스템 애플리케이션은 사전 설정된 시간 및 간격으로 CPU(101)에서 실행되도록 스케줄링되는 것이 바람직하다. 스케줄링은 콘솔에서 실행되는 게임 애플리케이션에 대한 캐시 중단을 최소화하기 위한 것이다.
동시 시스템 애플리케이션이 오디오를 필요로 할 때, 오디오 처리는 시간에 대한 민감도로 인해 게임 애플리케이션과 비동기적으로 스케줄링된다. 시스템 애플리케이션이 활성화될 때, 멀티미디어 콘솔 애플리케이션 관리자(이하에서 설명됨)는 게임 애플리케이션 오디오 레벨(예컨대, 음소거(mute), 감쇠(attenuate))을 제어한다.
게임 애플리케이션 및 시스템 애플리케이션은 입력 장치들(예컨대, 제어기(142(1) 및 142(2)))을 공유한다. 입력 장치들은 예약된 리소스들이 아니지만, 각 시스템 애플리케이션 및 게임 애플리케이션이 입력 장치의 포커스를 갖도록 애플리케이션들 사이에서 스위칭될 것이다. 애플리케이션 관리자는 게임 애플리케이션에 대한 정보 없이 입력 스트림의 스위칭을 제어하는 것이 바람직하며, 드라이버는 포커스 스위치에 관한 상태 정보를 보유한다. 카메라(26, 28) 및 캡쳐 장치(20)는 콘솔(100)을 위한 추가적인 입력 장치들이다.
도 4는 타겟 인식, 분석 및 트래킹 시스템에서의 여러 제스처들의 해석, 및/또는 타겟 인식, 분석 및 트래킹 시스템에 의해 디스플레이되는 아바타, 온스크린 캐릭터, 온스크린 객체 등의 가상 캐릭터의 애니메이션화를 위해 사용되는 도 1 및 도 2에 도시된 컴퓨팅 환경(12)의 또 다른 실시예인 컴퓨팅 환경(220)을 도시한다. 컴퓨팅 시스템 환경(220)은 적합한 컴퓨팅 환경의 일례일 뿐, 본원에 개시된 대상의 사용이나 기능의 범위를 제한하는 것은 아니다. 컴퓨팅 환경(220)은, 예시적인 운영 환경(220)에 도시된 임의의 컴포넌트 또는 컴포넌트 조합에 관한 의존성이나 요구 사항을 가지는 것으로 해석되어서는 안 된다. 몇몇 실시예에서, 도시된 다양한 컴퓨팅 구성요소들은 본 개시의 특정 양태들에 대한 예를 들어 설명하는 회로를 포함할 수 있다. 예를 들어, 본 개시에서 사용되는 회로는 펌웨어나 스위치로 기능(들)을 실행하도록 구성되는 특화된 하드웨어 컴포넌트들을 포함할 수 있다. 또 다른 실시예에서, 회로는 기능(들)을 실행하는 논리 동작을 구현하는 소프트웨어 인스트럭션으로 구성되는 범용 처리 장치(general purpose processing unit), 메모리 등을 포함할 수 있다. 하드웨어와 소프트웨어의 조합을 포함하는 회로의 실시예들에 있어서, 구현자는 논리를 구현하는 소스 코드를 작성하고, 이 소스 코드는 범용 처리 장치에서 처리될 수 있는 기계 판독가능 코드로 컴파일될 수 있다. 실시예들에서, 당업자라면 하드웨어, 소프트웨어 또는 하드웨어/소프트웨어의 조합 간에 차이가 거의 없는 방향으로 선행 기술이 발전해왔다는 점을 알 수 있으므로, 특정 기능을 구현하기 위한 하드웨어 대 소프트웨어의 선택은 구현자에게 달려 있는 설계 선택에 불과하다. 특히, 당업자라면 소프트웨어 프로세스가 동등한 하드웨어 구조로 변환가능하고, 하드웨어 구조 또한 동등한 소프트웨어 프로세스로 변환가능하다는 점을 알 수 있다. 따라서, 하드웨어 구현 대 소프트웨어 구현의 선택은 설계 선택으로, 구현자에게 달려 있다.
도 4에서, 컴퓨팅 환경(220)은, 일반적으로 다양한 컴퓨터 판독가능 매체를 포함하는 컴퓨터(241)를 포함한다. 컴퓨터 판독가능 매체는 컴퓨터(241)가 액세스할 수 있으며, 휘발성 및 비휘발성 매체, 이동식 및 비이동식 매체 모두를 포함하는 임의의 가용 매체일 수 있다. 시스템 메모리(222)는 ROM(read only memory, 223) 및 RAM(random access memory, 260)과 같은 휘발성 및/또는 비휘발성 메모리의 형태인 컴퓨터 저장 매체를 포함한다. 스타트업 동안과 같이 컴퓨터(241) 내의 구성요소들 사이의 정보 전송을 돕는 기본 루틴을 포함하는 기본 입출력 시스템(BIOS, 224)은 일반적으로 ROM(223)에 저장된다. RAM(260)은 일반적으로 처리 장치(259)에 의해 즉시 액세스 가능 및/또는 바로 동작되는 데이터 및/또는 프로그램 모듈들을 포함한다. 예를 들어, 도 4는 운영 체제(225), 애플리케이션 프로그램(226), 다른 프로그램 모듈(227), 및 프로그램 데이터(228)를 도시하고 있으며, 이들로서 제한되는 것은 아니다.
또한, 컴퓨터(241)는 다른 이동식/비이동식, 휘발성/비휘발성 컴퓨터 저장 매체를 포함할 수 있다. 예를 들어, 도 4는 비이동식, 비휘발성 자기 매체에 판독 또는 기록하는 하드 디스크 드라이브(238), 이동식, 비휘발성 자기 디스크(254)에 판독 또는 기록하는 자기 디스크 드라이브(239), 및 CD ROM 또는 다른 광학 매체와 같은 이동식, 비휘발성 광 디스크(253)에 판독 또는 기록하는 광 디스크 드라이브(240)를 도시한다. 예시적인 운영 환경에서 사용가능한 다른 이동식/비이동식, 휘발성/비휘발성 컴퓨터 저장 매체는, 자기 테이프 카세트, 플래시 메모리 카드, DVD, 디지털 비디오 테이프, 고체 상태 RAM, 고체 상태 ROM 등을 포함하지만, 이들로서 제한되는 것은 아니다. 하드 디스크 드라이브(238)는 일반적으로 인터페이스(234)와 같은 비이동식 메모리 인터페이스를 통해 시스템 버스(221)에 연결되며, 자기 디스크 드라이브(239) 및 광 디스크 드라이브(240)는 일반적으로 인터페이스(235)와 같은 이동식 메모리 인터페이스에 의해 시스템 버스(221)에 연결된다.
앞서 논의되었으며 도 4에 도시된 드라이브 및 그 관련 컴퓨터 저장 매체는 컴퓨터(241)를 위한 컴퓨터 판독가능 인스트럭션, 데이터 구조, 프로그램 모듈 및 기타 데이터를 저장한다. 도 4에서, 예를 들어, 하드 디스크 드라이브(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, 피어 장치(peer device) 또는 다른 공통 네트워크 노드일 수 있으며, 단지 메모리 저장 장치(247)만이 도 4에 도시되어 있지만, 일반적으로 컴퓨터(241)와 관련하여 전술한 다수의 또는 모든 구성요소들을 포함한다. 도 4에 도시된 논리적인 연결은 LAN(local area network, 245) 및 WAN(wide area network, 249)을 포함하지만, 또한 다른 네트워크들도 포함할 수 있다. 이러한 네트워킹 환경들은 사무실, 기업(enterprise-wide) 컴퓨터 네트워크, 인트라넷 및 인터넷에 흔하다.
LAN 네트워킹 환경에서 사용될 때, 컴퓨터(241)는 네트워크 인터페이스 또는 어댑터(237)를 통해서 LAN(245)에 연결된다. WAN 네트워킹 환경에서 사용될 때, 컴퓨터(241)는 일반적으로 모뎀(250) 또는 인터넷과 같이 WAN(249)을 통해 통신을 구축하기 위한 다른 수단을 포함한다. 내부 또는 외부에 존재할 수 있는 모뎀(250)은 사용자 입력 인터페이스(236), 또는 다른 적절한 메카니즘을 통해 시스템 버스(221)에 연결될 수 있다. 네트워킹 환경에서, 컴퓨터(241) 또는 그 일부분에 관련하여 도시된 프로그램 모듈들이 원격 메모리 저장 장치 내에 저장될 수 있다. 예를 들면, 도 4는 메모리 장치(247) 상에 존재하는 원격 애플리케이션 프로그램들(248)을 도시하고 있다. 도시된 네트워크 연결들은 예시적인 것이며, 컴퓨터들 간에 통신 링크를 구축하는 다른 수단이 사용될 수 있음을 이해할 것이다.
컴퓨터 판독가능 저장 매체는 비주얼 표현을 변화시키는 컴퓨터 판독가능 인스트럭션들을 포함할 수 있다. 이 인스트럭션들은, 비주얼 표현을 렌더링하고, 물리적 공간에서 사용자의 변화 제스처(modification gesture)를 나타내는 데이터를 포함하는 장면의 데이터를 수신하며, 사용자의 변화 제스처를 기초로 하여 비주얼 표현을 변화시키는 인스트럭션들을 포함할 수 있으며, 변화 제스처는 사용자의 비주얼 표현의 특성을 변화시키는 제어에 매핑되는 제스처이다.
도 5(a)는 캡쳐 장치(20)에서 캡쳐되는 이미지 데이터로부터 생성되는 사용자의 골격 매핑의 일례를 도시한다. 본 실시예에서, 각 손(502), 각 팔뚝(504), 각 팔꿈치(506), 이두박근(508), 각 어깨(510), 각 엉덩이(512), 각 허벅지(514), 각 무릎(516), 각 종아리(518), 각 발(520), 머리(522), 몸통(524), 척추 상부(526)와 하부(528) 및 허리(530) 등 다양한 관절들과 뼈들이 식별된다. 더 많은 포인트들이 트래킹되면, 손가락 또는 발가락의 뼈 및 관절들, 또는 코 및 눈과 같은 얼굴 각각의 특징 등의 추가 특징들이 식별될 것이다.
사용자는 자신의 신체를 움직여서 제스처를 생성할 수 있다. 제스처는 이미지 데이터로 캡쳐되어 의미를 위해 파싱되는 사용자의 모션 또는 포즈를 포함한다. 제스처는 동적일 수 있으며, 공 던지기를 흉내내는 것과 같은 모션을 포함한다. 제스처는 자신의 몸통(524) 앞에 팔뚝(504)을 교차하고 있는 등 정적인 포즈일 수도 있다. 또한, 제스처는 모형 칼을 흔드는 것처럼 소품을 포함할 수도 있다. 제스처는 양손(502)으로 손뼉을 치는 것과 같이 하나 이상의 신체 부위를 포함하거나, 입술을 오므리는 것과 같은 세밀한 모션을 포함할 수 있다.
사용자의 제스처는 일반적인 컴퓨팅 컨텍스트에서 입력으로 사용될 수 있다. 예를 들어, 양손(502) 또는 다른 신체 부위들의 다양한 모션들은 계층적 리스트에서 위아래로 탐색, 파일 열기, 파일 닫기 및 파일 저장을 비롯한 통상의 시스템 전반에 걸친 태스크들에 대응한다. 예를 들어, 사용자가 손가락은 위를 가리키고 손바닥은 캡쳐 장치(20)를 향한 채 손을 들고 있다. 다음에, 사용자가 손바닥쪽으로 손가락을 말아 주먹을 쥐면, 이는 창 기반(window-based) 사용자 인터페이스 환경에서 포커스된 창이 닫혀져야 함을 나타내는 제스처일 수 있다. 또한, 제스처는 비디오 게임 전용 컨텍스트에서 게임에 따라 다르게 사용될 수 있다. 예를 들어, 드라이빙 게임에서는, 양손(502)과 양발(520)의 다양한 모션들이 자동차 방향 조종, 기어 전환, 가속(accelerating) 및 감속(braking)에 대응할 수 있다. 따라서, 제스처는 비디오 게임, 문서 편집기, 워드 프로세싱, 데이터 관리 등의 매우 다양한 애플리케이션에서 디스플레이되는 사용자 표현에 매핑되는 매우 다양한 모션들을 나타낼 수 있다.
사용자는 제자리에서 걷거나 뜀으로써 걷거나 뛰는 것에 해당하는 제스처를 생성할 수 있다. 예를 들어, 사용자는 양쪽 다리(512 - 520)를 번갈아 들어올렸다 내림으로써, 이동하지 않고 걸음을 흉내낼 수 있다. 시스템은 각 엉덩이(512) 및 각 허벅지(514)를 분석하여 이러한 제스처를 파싱할 수 있다. 한쪽의 엉덩이-허벅지 각도(수직선에 대해 상대적으로 측정되며, 서있는 다리는 0˚의 엉덩이-허벅지 각도를, 수평으로 앞쪽으로 뻗은 다리는 90˚의 엉덩이-허벅지 각도를 가짐)가 다른쪽 허벅지에 대하여 특정 임계치를 넘을 때 걸음으로 인식된다. 다리를 번갈아서 임의의 수의 연속적인 걸음 후에 걷기 또는 뛰기로 인식될 수 있다. 가장 최근의 두 걸음 사이의 시간이 주기라고 간주된다. 임계각이 충족되지 않는 임의의 수의 주기가 지난 후에, 시스템은 걷거나 뛰는 제스처가 중지되었음을 결정하게 된다.
"걷기 또는 뛰기" 제스처가 제공되면, 애플리케이션은 이러한 제스처에 관련된 파라미터들에 대한 값을 설정한다. 이들 파라미터는 상기의 임계각, 걷기 또는 뛰기 제스처의 시작을 위해 필요한 걸음의 수, 및 제스처가 걷기인지 뛰기인지를 결정하는 임계 주기를 포함할 수 있다. 사용자가 다리를 재빨리 움직이기 때문에, 빠른 주기는 뛰기에 해당하고, 느린 주기는 걷기에 해당할 것이다.
제스처는 처음에는 애플리케이션이 자체 파라미터들로 오버라이드할 수 있는 일련의 디폴트 파라미터들에 연관될 수 있다. 이러한 시나리오에서, 애플리케이션은 파라미터를 제공하도록 요구되지 않으며, 애플리케이션에서 정의된 파라미터들 없이 제스처가 인식되도록 일련의 디폴트 파라미터들을 대신 사용할 수 있다. 제스처에 관련된 정보는 사전 제작된 애니메이션을 위해 저장된다.
제스처에 관련된 다양한 출력이 있다. 제스처의 발생 여부에 대해 기준 "예 또는 아니오"가 있을 수도 있다. 또한, 트래킹된 사용자의 움직임이 제스처에 해당할 가능성에 대응하는 신뢰도도 있을 수 있다. 이는 0 과 1을 포함한 그 사이의 부동 소수점 수치들에 분포하는 선형 스케일일 수 있다. 이러한 제스처 정보를 수신하는 애플리케이션이 거짓 긍정(false-positives)을 입력으로 받아들이지 않으려면, 적어도 0.95의 높은 신뢰도로 인식된 제스처들만을 사용할 것이다. 애플리케이션이 거짓 긍정이 있음에도 모든 제스처를 인식해야 하는 경우에는, 0.2보다 조금 큰 정도의 상당히 낮은 신뢰도를 갖는 제스처들을 사용할 것이다. 제스처는 가장 최근의 두 걸음 사이의 시간에 대한 출력을 가질 수 있으며, 오직 첫번째 걸음이 등록되고, (임의의 두 걸음 사이의 시간은 포지티브여야 하므로) 이는 기본값, 예컨대 -1로 설정될 수 있다. 또한 제스처는 가장 최근의 걸음에서 도달한 가장 큰 허벅지 각에 대한 출력을 가질 수도 있다.
또 다른 제스처의 예로 "발뒤꿈치 들기 점프"가 있다. 여기서는, 사용자는 자신의 발가락을 디딘 채 발뒤꿈치를 지면에서 들어올림으로써 제스처를 취한다. 또는, 사용자는 자신의 양발(520) 전체가 지면을 떠나 공중으로 뛰어오를 수도 있다. 시스템은 양 어깨(510), 엉덩이(512) 및 무릎(516)의 각도 관계를 분석하여 이들이 똑바로 선 자세와 동일한 정렬 위치에 있는 지를 살핌으로써 이러한 제스처에 대한 골격을 파싱한다. 이후에, 임의의 위쪽을 향한 가속에 대해 이러한 포인트들과 척추 상부(526) 및 하부(528) 포인트들이 모니터링될 것이다. 충분한 가속 조합은 점프 제스처를 트리거할 수 있다. 특정 제스처가 있는 충분한 가속 조합은 전환 포인트(transition point)의 파라미터들을 만족시킬 수 있다.
이러한 "발뒤꿈치 들기 점프" 제스처가 제공되면, 애플리케이션은 이 제스처에 관련된 파라미터들에 대한 값을 설정할 수 있다. 파라미터들은 제스처를 트리거하기 위해 사용자의 양 어깨(510), 엉덩이(512) 및 무릎(516)의 임의의 조합이 얼마나 빨리 위로 움직여야만 하는 지를 결정하는 상기의 가속 임계값(acceleration threshold)뿐만 아니라, 점프가 트리거될 수 있는 양 어깨(510), 엉덩이(512) 및 무릎(516)의 정렬의 최대 각도를 포함할 수 있다. 출력은 신뢰도를 비롯하여 점프 시의 사용자 신체 각도까지 포함할 수 있다.
제스처를 정확하게 식별하기 위해서는 제스처를 수신할 애플리케이션의 세부 사항을 기초로 하여 제스처에 대한 파라미터들을 설정하는 것이 중요하다. 제스처와 사용자 의도를 적절하게 식별하는 것은 긍정적인 사용자 경험을 만드는 데 크게 도움이 된다.
애플리케이션은 사전 제작된 애니메이션들이 사용되는 포인트들을 식별하기 위해서 다양한 전환 포인트들(transition points)에 관련된 파라미터들의 값을 설정할 수 있다. 전환 포인트들은 다양한 파라미터들, 예컨대 특정 제스처의 식별, 속도, 타겟 또는 사물의 각도 또는 이들의 임의의 조합에 의해 정의될 수 있다. 전환 포인트가 적어도 부분적으로는 특정 제스처를 식별하는 것에 의해 정의된다면, 제스처를 적절하게 식별하는 것이 전환 포인트의 파라미터들이 충족시킨 신뢰도를 증가시키는 데에 일조하게 된다.
제스처에 대한 또 다른 파라미터로 움직인 거리를 들 수 있다. 사용자의 제스처들이 가상 환경의 비주얼 표현의 액션들을 제어하는 경우, 아바타는 공으로부터 팔 길이만큼 떨어져 있다. 사용자가 이 볼과 인터랙션하여 볼을 잡기를 원한다면, 사용자는 잡는 제스처를 취하면서 자신의 팔(520 - 510)을 쭉 내밀어야 한다. 이러한 상황에서, 사용자가 자신의 팔(520 - 510)을 조금만 내밀어 잡는 유사 제스처는 공과 인터랙션하는 결과를 얻지 못할 것이다. 마찬가지로, 전환 포인트의 파라미터가 잡는 제스처를 식별할 수 있으며, 만일 사용자가 자신의 팔(520 - 510)을 조금만 내민다면 공과 인터랙션하는 결과를 얻지 못하고, 사용자의 제스처는 전환 포인트의 파라미터들을 만족시키지 못할 것이다.
제스처 또는 그 일부는 이들이 발생하는 공간의 부피를 파라미터로 가질 수 있다. 일반적으로 이 공간의 부피는 제스처가 신체의 움직임으로 이루어지는 신체에 대하여 표현될 수 있다. 예를 들어, 오른손잡이 사용자가 풋볼 던지는 제스처는 오른쪽 어깨(510a)보다 낮지 않은 공간의 부피와 던지는 팔(502a - 510a)과 같은 편에 있는 머리 부위(522)에서만 인식될 수 있다. 이런 던지는 제스처의 공간의 부피의 모든 경계들을 정의할 필요는 없으며, 몸에서 먼 바깥쪽 경계는 정의되지 않고, 부피는 무제한으로 또는 모니터링되는 장면의 가장자리까지 확장될 수 있다.
도 5(b)는 도 2의 제스처 인식 엔진(190)의 일 실시예에 대해 추가적인 세부 사항을 제공한다. 도시된 바와 같이, 제스처 인식 엔진(190)은 제스처 또는 제스처들을 결정하기 위해 적어도 하나의 필터(519)를 포함할 수 있다. 필터(519)는 제스처(526, 이하 "제스처"라고 함)를 정의하는 정보를 포함하고, 또한 그 제스처(526)에 대해 적어도 하나의 파라미터(528) 또는 메타데이터를 포함할 수 있다. 예를 들어, 한 손이 몸 뒤로부터 몸 앞을 지나는 모션을 포함하는 던지기 동작은 사용자의 한 손이 몸 뒤로부터 몸 앞을 지나는 움직임을 나타내는 정보를 포함하는 제스처(526)로 구현될 수 있으며, 이 움직임은 깊이 카메라에 의해 캡쳐될 것이다. 이후에, 그 제스처(526)에 대한 파라미터(528)들이 설정된다. 제스처(526)가 던지기 동작이면, 파라미터(528)는 손이 도달해야 하는 임계 속도, 손이 이동해야 하는 (절대적인 또는 전체적으로 사용자의 신체 크키에 따라 상대적인) 거리 및 제스처(526)가 발생했다는 인식 엔진(190)의 신뢰도 평가일 수 있다. 제스처(526)에 대한 이러한 파라미터(528)들은 애플리케이션들 간에, 단일 애플리케이션의 컨텍스트들 간에, 또는 단일 애플리케이션의 단일 컨텍스트 내에서 시간에 따라 달라질 수 있다.
필터들은 모듈식(modular)이거나 상호 교체 가능하다. 일 실시예에서, 필터는 각각 유형이 있는 다수의 입력 및 출력을 가진다. 이런 상황에서, 제 1 필터는 인식 엔진(190) 구조의 나머지 다른 양태의 변경 없이 제 1 필터와 동일한 수 및 유형의 입출력을 갖는 제 2 필터로 대체될 수 있다. 예를 들어, 드라이빙에 관한 제 1 필터는 골격 데이터를 입력으로 받고, 그 필터에 관련된 제스처(526)가 발생하였다는 신뢰도(confidence) 및 조종 각도(angle of steering)를 출력한다. 제 2 드라이빙 필터가 보다 효율적이고 적은 프로세싱 리소스를 필요로 하기 때문에 제 1 드라이빙 필터를 제 2 드라이빙 필터로 교체하기를 바라는 경우, 제 2 필터가 동일한 입력 및 출력, 즉 골격 데이터 유형의 하나의 입력 및 신뢰도 유형 및 각도 유형의 두 개의 출력을 가진다면 제 1 필터를 제 2 필터로 간단하게 교체할 수 있다.
필터가 파라미터(528)를 가질 필요는 없다. 예를 들어, 사용자의 키(user's height)를 출력하는 "사용자 키" 필터는 튜닝가능한 어떤 파라미터들도 포함하지 않을 수 있다. 또 다른 "사용자 키" 필터는, 예컨대, 사용자의 키를 결정 시 사용자의 신발, 헤어스타일, 모자 및 자세의 설명 여부에 관한 튜닝가능한 파라미터들을 포함할 수 있다.
필터로의 입력은 사용자의 관절 위치에 관한 관절 데이터, 관절에서 만나는 뼈가 형성하는 각도, 장면의 RGB 색상 데이터 및 사용자 양태의 변화율 등을 포함할 수 있다. 필터의 출력에는 특정 제스처가 취해짐에 대한 신뢰도, 제스처 모션이 행해진 속도 및 제스처가 발생한 시각 등이 포함될 수 있다.
컨텍스트는 문화적인 컨텍스트일 수 있으며, 환경적인 컨텍스트일 수도 있다. 문화적인 컨텍스트란 시스템을 사용하는 사용자의 문화를 의미한다. 다른 문화들이 유사한 제스처를 사용하여 현저하게 다른 의미를 전할 수 있다. 예를 들면, 다른 사용자에게 "보도록" 또는 "눈을 사용하도록" 말하고 싶은 미국인 사용자는 관자놀이 근처에 검지 손가락을 위치시킨다. 반면, 이탈리아 사용자는 이러한 제스처를 마피아를 언급하는 것으로 해석한다.
유사하게, 단일 애플리케이션의 상이한 환경에서 상이한 컨텍스트들이 존재할 수 있다. 자동차 운전을 포함하는 일인칭 슈터 게임을 예를 든다. 사용자가 걷는 경우, 땅을 향해 손가락으로 주먹을 쥐고 그 주먹을 앞쪽으로 몸에서 멀어지게 펼치는 것은 펀치 제스처를 나타낸다. 사용자가 운전하는 컨텍스트에서는, 동일한 모션은 "기어 전환" 제스처를 나타낸다. 또한, 사용자가 자신의 게임을 저장하고, 자신의 캐릭터의 장비들 중에서 선택하고, 직접적인 게임 플레이를 포함하지 않는 유사한 액션을 취할 수 있는 하나 이상의 메뉴 환경이 마련될 수도 있다. 이러한 환경에서는, 이 동일한 제스처가 임의의 것을 선택하거나 또는 다른 스크린으로 진행되도록 하는 등 제 3의 의미를 가질 수 있다.
제스처 인식 엔진(190)은 제스처 필터(519)에 기능을 제공하는 베이스 인식기 엔진(base recognizer engine, 517)을 가질 수 있다. 일 실시예에서, 인식기 엔진(517)이 구현하는 기능은 인식된 제스처들 및 기타 입력을 트래킹하는 입력-오버-타임 저장소(input-over-time archive), (모델링된 시스템이 미지의 파라미터들을 가진 마르코프 프로세스 - 현 상태에 미래 상태를 결정하는 데에 필요한 임의의 과거 상태 정보가 압축되어 있고, 이러한 목적으로 그 밖의 어떤 과거 상태 정보도 존재해서는 안 됨 - 라고 가정하고, 관찰가능한 데이터로부터 히든 파라미터들이 결정되는) 히든 마르코프 모델(Hidden Markov Mode) 구현, 및 특정한 제스처 인식 사례를 해결하기 위해 요구되는 기능을 포함한다.
필터들(519)은 베이스 인식기 엔진(517) 상에 로딩되어 구현되고, 엔진(517)로부터 모든 필터들(519)에 제공되는 서비스들을 이용할 수 있다. 일 실시예에서, 베이스 인식기 엔진(517)은 수신된 데이터를 처리하여 이것이 임의의 필터(519)의 요구사항에 부합하는 지를 결정한다. 입력 파싱과 같이 제공된 이들 서비스는 각 필터(519) 대신 베이스 인식기 엔진(517)에서 한 번 제공되므로, 이러한 서비스는 한 주기 동안 각 필터(519)에서 한 번씩 처리되는 것이 아니라 그 주기 동안 한 번만 처리되면 되므로, 제스처를 결정하는 데 요구되는 프로세싱이 줄어든다.
애플리케이션은 인식 엔진(190)에서 제공하는 필터들(519)을 사용하거나, 또는 베이스 인식기 엔진(517)에 플러그인 된 애플리케이션 자체 필터(519)를 제공할 수 있다. 일 실시예에서, 모든 필터들(519)은 이러한 플러그인 특징을 이용가능하도록 공통의 인터페이스를 가진다. 또한, 모든 필터들(519)이 파라미터들(528)을 이용할 수 있고, 따라서 이후에 설명될 단일 제스처 툴을 사용하여 전체 필터 시스템(519)을 디버깅하고 튜닝할 수 있다.
이들 파라미터(528)는 애플리케이션 또는 애플리케이션의 컨텍스트에서 제스처 툴(521)로 튜닝할 수 있다. 일 실시예에서, 제스처 툴(521)은 복수의 슬라이더(523)를 포함하며, 슬라이더(523)는 각각 파라미터(528) 및 신체(524)의 그림 표현에 대응한다. 파라미터(528)는 대응 슬라이더(523)에 의해 조정되므로, 신체(524)는 이들 파라미터(528)가 있는 제스처로 인식되는 액션들 및 이들 파라미터(528)가 있는 제스처로 인식되지 않는 액션들 모두를 보여줄 것이다. 제스처의 파라미터들(528)의 이와 같은 시각화는 제스처를 디버깅하고 미세 튜닝하기 위한 효과적인 수단을 제공한다.
도 6(a) 및 6(b)는 캡쳐 장치(608), 컴퓨팅 장치(610) 및 디스플레이 장치(612)를 포함하는 시스템(600)을 도시한다. 본 예시에서, 깊이 카메라(608)는 사용자(602)가 존재하는 물리적 공간(601)의 장면을 캡쳐한다. 본 설명을 위해서, 디스플레이 장치(612)는 도 6(a)에서 디스플레이 장치(612a) 및 도 6(b)에서 디스플레이 장치(612b)로, 사용자는 도 6(a)에서 사용자(602a) 및 도 6(b)에서 사용자(602b)로 도시된다. 깊이 카메라(608)는 깊이 이미지를 처리하고, 또는 컴퓨터(610)와 같은 컴퓨터에 깊이 이미지를 제공한다. 사용자(602)의 비주얼 표현의 디스플레이를 위해 깊이 이미지가 해석될 수 있다. 예를 들어, 깊이 카메라(608) 또는, 도시된 바와 같이, 깊이 카메라(608)가 연결된 컴퓨팅 장치(610)가 디스플레이(612a, 612b)로 출력될 수 있다. 본 예시에서, 사용자(602)는 축구 게임 애플리케이션을 플레이하고 있다.
캡쳐 카메라(608), 컴퓨팅 장치(610) 및 디스플레이 장치(612a, 612b)는 도 1 내지 5(b)와 관련하여 설명한 장치들을 비롯하여 원하는 기능을 실행하는 적절한 임의의 장치를 각각 포함할 수 있다. 단일 장치로 시스템(600)의 모든 기능을 실행할 수도 있고, 적절한 장치의 조합으로 원하는 기능들을 실행할 수도 있다. 예를 들어, 컴퓨팅 장치(610)는 도 2에 도시된 컴퓨팅 환경(12) 또는 도 3의 컴퓨터에 관해 설명한 기능을 제공할 수 있다. 도 2에 도시된 바와 같이, 컴퓨팅 환경(12)은 디스플레이 장치 및 프로세서를 포함할 수 있다. 컴퓨팅 장치(610)는 자체 카메라 컴포넌트를 포함하거나, 캡쳐 장치(608)와 같이 카메라 컴포넌트가 있는 장치에 연결될 수도 있다.
사용자(602)의 비주얼 표현은 애니메이션, 캐릭터, 아바타를 비롯하여 어떤 형태도 취할 수 있다. 예를 들어, 사용자(602)와 같은 타겟의 비주얼 표현은 처음에는 사용자(602)가 원하는 모양 및 크기로 조각할 수 있는 디지털 진흙 덩어리이거나, 또는 아바타의 저장 라이브러리로부터 선택된 캐릭터 표현일 수 있다. 예를 들어, 야구 게임 애플리케이션에서, 사용자(602)를 시각적으로 표현하는 옵션들은 유명한 야구 선수의 표현에서부터 태피(taffy) 조각 또는 코끼리, 커서 또는 손 기호와 같은 상상 캐릭터나 기호 등 임의의 형태를 취할 수 있다. 비주얼 표현은 사용자(602)의 특징들 및 애니메이션 또는 저장 모델의 특징들의 조합을 나타낼 수 있다. 예를 들어, 사용자(602)는 게임 애플리케이션에서 제공하는 다양한 저장 모델들을 선택할 수 있다. 시스템은 이 선택한 저장 모델에 사용자의 특징들을 적용할 수 있다. 비주얼 표현은 프로그램과 함께 패키징된 것과 같이 애플리케이션 전용이거나, 또는 애플리케이션들 간에 또는 시스템 전반에서 이용가능할 수도 있다.
도 6(a) 및 6(b)에 도시된 비주얼 표현의 예시는, 디스플레이 장치(612a)에 도시된 바와 같이 사용자(602)의 특징들과 유사한 특징들을 가진 아바타(606)이다. 도 6(a) 및 6(b)은 도 6(a)에서는 아바타(606a)로, 도 6(b)에서는 아바타(606b)로 표현되는 다른 두 프레임 또는 시점에서 아바타(606)를 보여준다. 이미지 데이터의 추가적인 프레임들이 캡쳐되고 디스플레이될 수 있으며, 도 6(a) 및 6(b)에 도시된 프레임은 예시로써 선택되었다. 이미지 데이터의 프레임들이 캡쳐되어 디스플레이되는 비율에 의해 비주얼 표현이 디스플레이되는 모션의 연속성 레벨이 결정될 수 있다.
시스템(600)은 깊이 정보, 이미지 정보, RGB 데이터 등 물리적 공간(601)에 관한 정보를 캡쳐할 수 있다. 일 실시예에 따르면, 이미지 데이터는 깊이 카메라(608) 및/또는 RGB 카메라로부터의 깊이 이미지 또는 이미지, 또는 기타 임의의 탐지기에서의 이미지를 포함할 수 있다. 예를 들어, 카메라(608)는 이미지 데이터를 처리하고, 이를 사용하여 타겟의 형태, 색상 및 크기를 결정할 수 있다. 인간 패턴에 일치하는 각 타겟이나 사물이 스캔되어 관련 골격 모델, 플러드 모델, 메쉬 인간 모델 등의 모델을 생성할 수 있다. 예를 들어, 전술한 바와 같이, 깊이 정보를 사용하여 도 5(a)에 도시된 것처럼 사용자의 골격 모델을 생성할 수 있으며, 시스템은 머리 및 팔다리 등의 사용자의 신체 부위를 식별한다. 예를 들어, 인간 타겟과 연관있는 다수의 관찰된 화소들의 깊이 값 및, 키, 머리너비, 어깨너비 등 인간 타겟의 하나 이상의 양태들을 사용하여, 인간 타겟의 크기를 결정할 수 있다.
시스템(600)은 캡쳐된 데이터를 분석하여 이를 골격 모델로 변환시켜 사용자의 팔다리의 움직임을 트래킹할 수 있다. 이후에, 시스템(600)은 골격 모델을 트래킹하고, 각 신체 부위의 움직임을 비주얼 표현의 각 부분에 매핑시킬 수 있다. 예를 들어, 사용자(602)가 자신의 팔을 흔들면, 시스템이 이 모션을 캡쳐하고 이를 아바타(606)의 팔에 적용하여, 가상 아바타도 손을 흔들게 될 수 있다. 또한, 시스템(600)은 캡쳐 데이터의 단일 프레임에서 또는 연속 프레임들에 걸쳐 사용자의 자세를 평가함으로써 사용자의 모션으로부터 제스처를 식별하고, 이 제스처를 비주얼 표현에 적용할 수 있다.
시스템은 스캔된 데이터와 같은 캡쳐된 데이터, 이미지 데이터 또는 깊이 정보를 사용하여 특성들을 탐지할 수 있다. 예를 들어, 시스템은 물리적인 공간에서 사용자에 관한 데이터를 캡쳐하는 캡쳐 장치를 가질 수 있다. 시스템은 사용자의 물리적인 특징, 성향, 목소리 패턴, 습관, 어휘, 음성 명령어, 목소리의 높낮이(voice fluctuations), 반응, 행동, 제스처 등을 비롯한 사용자의 행동을 나타내는 특정들에 관한 데이터 이력을 수집하고 저장함으로써 사용자의 행동을 식별하고, 정황 등의 특정 사용자 행동을 도출할 수 있는 정황을 식별할 수 있다. 시스템은 시스템의 상태, 게임 또는 애플리케이션 상태 또는 기타 임의의 시나리오 특징들을 비롯한 사용자의 행동에 연관된 정황에 관한 데이터의 이력을 기록하거나 저장할 수 있다. 나아가, 시스템은 그 시나리오를 평가하고, 정황과 사용자의 행동 간의 상관 관계를 도출하여, 다른 시나리오에서 사용자의 성향을 결정할 수 있다. 예를 들어, 시스템은 특정 상황에서 사용자의 목소리가 어떻게 오르내리는지 또는, 사용자가 실행 중인 애플리케이션에서 활성 참여자가 아닌 때에는 어떻게 서 있는지를 학습할 수 있다.
실제 사용자가 존재하지 않을 때조차 사용자의 아바타를 애니메이션화하는 것이 바람직하다. 예를 들어, 사용자가 물리적인 공간에 없을 때, 사용자를 나타내고 (시스템에서 학습한) 사용자의 행동에 따라 행동할 수 있는 아바타를 제공하는 것이 바람직하다. 따라서, 사용자가 물리적인 공간에 존재하지 않더라도, 시스템은 이력 데이터에 액세스하여, 부재 중인 사용자의 행동 또는 성향을 나타내는 애니메이션을 아바타에 적용할 수 있다. 예를 들어, 시스템은 부재 중인 사용자의 아바타에 애니메이션들을 적용하여, 그 아바타가 부재 중인 사용자처럼 움직이고, 이야기하고, 언어를 사용하게 할 수 있다. 이를 통해, 제 2 사용자는 부재 중인 사용자가 존재하여 시스템과 인터랙션하는 경우와 유사하게, 부재중 사용자의 아바타와 가상 경험을 할 수 있게 된다.
시간이 갈수록, 시스템(600)은 사용자의 성향을 계속 학습하고, 사용자의 행동 및 성향을 나타내는 특성들과 정황들을 가지고 사용자의 아바타 라이브러리를 지속적으로 업데이트한다. 사용자는 식별된 방식으로 특정 정황에 대응하므로, 정황은 특정 사용자의 행동과 연관된다. 시스템은 아바타(606)가 사용자의 행동에 따라 행동하고 반응하도록, 사용자의 아바타(606)에 애니메이션을 지적으로 적용한다. 시스템이 사용자 입력으로부터 더 많은 데이터를 수집함에 따라, 아바타는 사용자의 물리적인 특징, 행동, 감정, 스피치 패턴, 성향, 목소리 패턴 등의 양태를 가지고 사용자를 더욱더 자세하게 반영하게 된다. 따라서, 애니메이션을 실행하도록 아바타를 트레이닝하는 것은 사용자의 입력을 학습하고 아바타를 사용자와 닮도록 성형하는 것을 포함한다. 사용자는 물리적인 공간에 존재하지 않지만, 사용자의 아바타가 사용자와 상당히 닮아서, 사용자가 존재하여 아바타를 제어하고 있는 것처럼 생각되게 보일 수도 있다.
사용자의 행동을 나타내는 특성의 아이덴티티는, 특정 사용자(602)와 연관된 정보, 예컨대, 행동 성향, 스피치 패턴, 얼굴 표정, 골격 움직임, 한 말, 이력 데이터, 목소리 인식 정보 등을 포함할 수 있다. 사용자의 특성은 사용자의 물리적인 특징, 예를 들어, 눈 크기, 유형 및 색상; 머리카락 길이, 유형 및 색상; 피부색; 옷 및 옷 색상을 포함할 수 있다. 예를 들어, 색상은 대응 RGB 이미지에 근거하여 식별된다. 인간 타겟에 관한 그 밖의 타겟 특성은 예를 들어, 키 및/또는 팔 길이를 포함할 수 있고, 이 특성은 신체 스캔, 골격 모델, 화소 영역 상 사용자(602)의 범위 또는 기타 임의의 적절한 프로세스 또는 데이터 등에 근거하여 얻어질 수 있다. 컴퓨팅 시스템(610)은 신체 인식 기법을 사용하여 이미지 데이터를 해석하고, 사용자(602)의 부속물의 크기, 모양 및 깊이에 따라서 사용자(602)의 비주얼 표현의 크기와 모양을 정할 수 있다.
시스템은 사용자의 행동을 능동적으로 또는 수동적으로 학습할 수 있다. 도 6(a) 및 6(b)에서, 아바타(606)는 사용자(602)에 근사한 비주얼 표현이며, (예컨대, 골대 및 네트(609) 및 공(607) 등) 축구 게임 애플리케이션에 적용가능한 특징 및 애니메이션이 추가되었다. 사용자(602) 두 명 모두 물리적인 공간에 존재하지만, 사용자(602)는 축구 게임 애플리케이션의 활성 플레이어이며, 제 2 사용자(603)는 비활성 플레이어이다. 본원에서 사용된 바와 같이, 비활성이란 단지, 본 예시에서 애플리케이션의 양태를 제어하기 위한 제스처를 현재 실행하지 않는 사용자(603)를 말한다. 한 명 이상의 사용자가 동시에 활성화될 수 있다. 또는, 시스템에서 한 번에 한 명의 활성 사용자만을 허용할 수도 있다. 본 예시에서, 현재의 플레이어(602a)가 디스플레이(612a)의 아바타(606a)를 제어하는 제스처를 하고 있는 동안, 비활성 플레이어(603)는 자신의 차례를 기다리고 있다.
능동 사용자 학습(active user learning)이란 애플리케이션의 제스처 또는 제어에 관한 학습이며, 어느 한 쪽 또는 양쪽 모두의 사용자 (602a, 603)의 행동을 학습하는 것을 포함한다. 능동 사용자 학습이란, 사용자(602) 또는 사용자(603)와 같은 사용자가 특정 모션 또는 제스처를 했을 때, 시스템이 사용자의 제스처에 연관된 사용자의 행동을 나타내는 특성을 식별하는 것을 말한다. 제스처는 동적이거나 정적인 움직임 및 음성 명령어를 포함하며, 시스템 또는 실행 중인 애플리케이션의 양태들을 제어하기 위해 행해진다. 예를 들어, 도 6(a)에서, 물리적 공간(601a)에서의 사용자(602a)의 모션은 양 팔을 왼쪽으로 쭉 펴서 왼쪽으로 돌진하는 모션을 포함한다. 제스처는 축구 골키퍼의 움직임로 인식되어, 아바타(606a)의 애니메이션을 제어할 수 있다. 제스처 결과는 게임의 실패 또는 성공으로 인식된다(예컨대, 제스처는 축구 게임 애플리케이션에서 성공/실패를 낳는다). 시스템(600)은 제스처 자체 또는 그 제스처에 부합하는 행동들의 양태를 식별하고, 이러한 양태 또는 행동들을 사용자와 연관짓는다.
도 6(a) 및 6(b)는 사용자가 축구 게임 애플리케이션에서 제스처를 취하고 있을 때, 시스템이 제스처에 연관된 사용자의 행동을 능동적으로 학습할 수 있는 시나리오의 일례를 도시한다. 시스템(600)은 제스처 자체 또는 그 제스처에 부합하는 행동들의 양태를 식별하고, 이러한 양태 또는 행동들을 사용자와 연관짓는다. 이러한 식으로, 제스처 데이터 및 제스처에 부합하는 사용자의 행동들이 아바타에 적용되어, 특정 사용자에 맞게 애니메이션들이 조정될 수 있다. 본 예시에서, 사용자(602)는 축구 골키퍼의 역할을 플레이한다. 사용자(602)가 공(607)이 네트(609)로 들어가지 못하게 막는 골키퍼 제스처를 대부분의 시간 동안 하다가 사용자가 춤을 추기도 한다면, 시스템은 이러한 사용자의 행동(예컨대, 춤)을 식별하고 이를 정황(예컨대, 축구 골키퍼 제스처 및 제스처의 성공적인 결과)에 연관시킨다. 따라서, 시스템은 사용자의 행동을 게임 상태와 연관시킬 수 있다. 또 다른 예로, 사용자가 테니스 게임 애플리케이션에서 테니스 공을 치는 제스처를 취할 때 입을 벌리는 성향이 있다면, 또는 사용자가 테니스 게임 애플리케이션에서 서브 제스처를 할 때 끙 소리를 낸다면, 시스템은 이 제스처를 취할 때 발생하는 사용자의 기타 행동들을 나타내는 정보를 제스처 데이터에 포함할 수 있다.
시스템은 사용자가 춤을 추는 애니메이션 등 사용자의 행동에 부합하는 애니메이션을 저장할 수 있다. 시스템은 애니메이션이 제스처의 실행 및/또는 게임 상태 등 특정 정황에 연관되어 있음에 나타내는 지표를 사용자의 프로파일에 저장할 수 있다. 이와 유사하게, 시스템은 사용자의 제스처, 애플리케이션 상태 또는 기타 임의의 식별가능한 정황(휴지 상태 포함)에 연관된 사용자의 표정, 자세, 언어 등의 성향을 식별하고, 사용자의 프로파일 또는 아바타 라이브러리에 그 연관 관계를 표시할 수 있다. 추후에, 사용자가 제스처를 취해 유사한 게임 상태가 될 때(예컨대, 공이 네트에 들어가지 못하게 성공한 경우), 시스템은 춤추는 애니메이션을 사용자의 아바타에 적용할 것이다. 이와 유사하게, 사용자가 존재하지 않으면, 시스템은 사용자의 아바타를 렌더링하고, 제스처 및 그 제스처에 연관된 애니메이션들을 아바타에 적용하는 등 아바타를 통해 사용자의 참여를 시뮬레이션할 수 있다. 본 예시에서, 시스템은 이력 데이터를 식별하고, 적절한 정황 하에 사용자의 아바타에 애니메이션을 적용할 수 있다. 따라서, 시스템이 실시간으로 사용자에 대해 캡쳐된 데이터를 사용하지 않고서도, 사용자의 아바타는 이력 데이터를 기초로 하여 사용자에 아주 근사하게 표현될 수 있다.
시스템은, 사용자의 행동이 제스처에 해당하지 않고 사용자가 물리적인 공간에서 자연스럽게 행동하는 때와 같이 사용자가 활성화되지 않을 때, 사용자의 행동을 수동적으로 학습할 수 있다. 시스템은 이러한 상황 하에 사용자의 성향, 반응, 휴지 활동(idle activity) 등의 사용자의 행동을 수동적으로 탐지할 수 있다. 수동적으로 학습하는 동안, 시스템은 사용자가 자연스럽게 행동할 때 사용자의 데이터를 캡쳐한다. 예를 들어, 수동적으로 학습하는 동안, 사용자는 시스템과 인터랙션하지 않거나, 또는 게임 애플리케이션의 다른 플레이어의 차례일 수 있다. 수동 플레이어 트레이닝은, 사용자가 휴지 상태일 때 시스템이 경험을 통해 플레이어가 어떻게 행동하는지를(예컨대, 자세, 표정, 행위, 한 말, 목소리의 높낮이) 학습하는 것을 포함한다. 예를 들어, 도 6(a)에서, 물리적인 공간(601a)의 제 2 사용자(603)는 제 1 사용자(602a)가 플레이하고 있는 축구 게임 애플리케이션과 능동적으로 인터랙션하고 있지 않다. 제 2 사용자(603)는 휴지 상태에서는 앉아서, 자신의 머리를 손에 기대고 있다. 시스템은 이러한 시나리오에서 사용자의 습관들을 학습하고 이들을 사용자의 아바타 라이브러리에 추가한다.
시스템은 이러한 상황에서 사용자의 자연스러운 또는 휴지 상태의 행동들을 학습하고, 이들을 사용자와 연관지을 수 있다. 예를 들어, 시스템은 플레이어가 어떻게 걷는지를 식별하고, 이 모션을 그 사용자의 아바타 라이브러리에 걷는 애니메이션으로써 저장한다. 시스템은, 제스처 또는, 시스템이나 실행 중인 애플리케이션의 기타 능동적인 제어를 포함하지 않는 다양한 상황 및 시나리오에서 활동 중인 사용자를 보고 들을 수 있다. 예를 들어, 사용자가 원격 게임 플레이 경험에서 친구와 인사할 때, 통상적으로 "안녕, 친구, 어떻게 지내?"와 같은 인사말로 친구와 인사하는 것을 시스템이 탐지할 수 있다. 동일한 사용자는 모르는 플레이어와는 "안녕하세요, 제 이름은 ..."와 같은 인사말로 인사한다. 시스템은 목소리 높낮이, 한 말 및 기타 임의의 모션을 포함하는 캡쳐된 데이터를 사용할 수 있고, 이를 사용자 아바타의 아바타 라이브러리에 추가할 수 있다.
아바타 라이브러리는 사용자의 제스처 또는 기타 임의의 사용자 행동을 나타내기 위해 아바타에 적용되는 사전에 패키지화된 애니메이션들을 포함한다. 수동적인 학습을 통해, 시스템은 아바타 라이브러리에 애니메이션들을 업데이트, 추가 또는 고쳐쓸 수 있다. 시스템 또는 사용자는 애니메이션의 양태들을 전체적으로 수정하거나, 아바타 라이브러리의 항목들을 추가, 업데이트, 재프로그래밍, 고쳐 쓰기 또는 삭제를 할 수 있다. 예를 들어, 사용자는 시스템과 인터랙션하지 않거나 애플리케이션의 임의의 제어를 위해 제스처를 취하지 않을 수 있다. 애플리케이션의 다른 사용자가 활성화될 때 사용자는 휴지 상태일 수 있다. 시스템은, 휴지 상태의 사용자의 아바타가 조용히 앉아서 물리적 공간에서 플레이하는 활성 사용자를 주시하도록 애니메이션화하는 것과 같이, 휴지 상태의 행동을 나타내는 표준 애니메이션을 사용자의 아바타에 적용할 수 있다. 그러나, 시스템은 사용자가 게임 애플리케이션에서 휴지 상태일 때 그 사용자의 실제 행동에 관련된 데이터를 캡쳐할 수 있다. 시스템은 사용자의 행동을 기록하고, 이를 그 사용자의 휴지 상태 애니메이션에 관한 아바타 라이브러리의 항목으로 추가할 수 있다. 시스템은 휴지 상태의 행동에 관한 표준 애니메이션을, 시스템에 의해 기록된 사용자의 행동을 나타내는 애니메이션으로 고쳐쓸 수 있다.
예를 들어, 시스템은 도 6(a)에 도시된 사용자(603)가 휴지 상태이거나 비활성화될 때, 사용자(603)는 오른손에 자신의 머리를 위치시키는 성향이 있음을 인식한다. 시스템은 이에 관련된 데이터를 사용자에 연관된 프로파일이나 아바타 라이브러리에 저장한다. 애니메이션은 아바타 라이브러리에 추가되거나, 또는 휴지 상태 활동의 디폴트 애니메이션을 고쳐쓰는 것일 수 있다. 그 후에, 시스템은 오른손에 머리를 대고 앉아 있는 도 6(b)에 도시된 아바타(611)의 애니메이션과 같이, 아바타(611)에 영향을 주는 애니메이션을 적용할 수 있다. 그러나, 시간이 흐름에 따라, 시스템은 사용자(603)가 자주 자신의 왼손에 머리를 대거나, 또는 휴지 상태 동안 손을 자주 바꾸는 경향이 있음을 인식한다. 따라서, 시스템은 사용자의 식별된 성향을 보다 정확하게 표현하기 위해, 지속해서 아바타 라이브러리 및 아바타 라이브러리의 애니메이션을 고쳐나간다. 또한, 시스템은 처음 애니메이션 데이터를 보관하고, 사용자의 아바타 라이브러리에 재정의된 애니메이션을 추가함으로써, 선택가능한 다수의 애니메이션을 제공할 수 있다.
도 6(b)는 도 6(a)에 도시된 시스템(600)을 도시한다. 도 6(b)는 물리적인 공간(601)에서의 사용자(602)만의 예를 도시한다. 본 예시에서, 동일한 사용자(602)가 물리적인 공간(601)에서 제스처를 취함으로써, 도 6(a)의 아바타(606a)에 적용되는 것과 유사한 골키퍼 제스처를 나타내도록 사용자의 아바타(606b)가 애니메이션화된다. 그러나, 본 예시에서는, 물리적인 공간에서의 사용자(602)의 모션이 도 6(a)의 사용자(602)가 행하는 모션과 다름에도, 동일한 제스처로 식별되어 아바타(606a 및 606b)에 의해 표현된다.
표준 제스처 패키지는 시스템 및 애플리케이션 개발자들이 그들의 시스템 및/또는 애플리케이션에 제스처 인식으로 포함시킬 수 있는 제스처들이다. 시스템은 제스처의 양태들을 수정하거나 제스처를 전체적으로 다시 작성할 수 있다. 예를 들어, 시스템은 특정 제스처에 해당하는 모션을 재정의함으로써 그 모션을 수정할 수 있다. 예를 들어, 사용자(602b)가 다쳐서, 도 6(a)에서 사용자(602a)가 이전에 한 것과 같이 물리적인 공간(601)에서 다이빙을 할 수 없다. 시스템이 사용자의 달라진 모션을 인식하거나, 또는 사용자가 제스처 데이터의 수정을 요청할 수 있다. 예를 들어, 시스템은 시범으로 사용자에게 기본 제작된 제스처(basic canned gesture)나 음성 명령어를 제시하고, 사용자는 자신만의 제스처나 음성 명령어를 실행할 수 있다. 제스처를 재정의하기 위해서, 사용자(602)는 선 자세에서, 왼쪽으로 숙이고, 양팔을 같은 쪽으로 뻗어 흔드는 도 6(b)에 도시된 모션을 실행할 수 있다. 시스템은 일시적으로 또는 영구적으로 사용자-정의 제스처 데이터로 디폴트 제스처를 덮어쓸 수 있다. 또한, 시스템은 처음 제스처 데이터를 보관하고, 사용자의 아바타 라이브러리에 재정의된 제스처를 추가함으로써, 애플리케이션에서 유사한 결과를 출력하는 다수의 제스처를 제공할 수 있다. 제스처의 재정의 또는 추가 후에, 시스템은 물리적 공간의 사용자에 관한 데이터를 캡쳐하고, 그 데이터로부터 사용자가 재정의된 제스처를 취했는지 또는 추가된 제스처를 취했는지를 결정할 수 있다.
유사하게, 능동 사용자 학습은 제스처 자체가 아바타 라이브러리의 애니메이션을 수정하려는 신호(prompt)이거나, 시스템에 의해 식별된 사용자에 연관된 행동들을 수정하고자 하는 신호인 사용자의 제스처를 식별하는 것을 포함한다. 예를 들어, 사용자는 제스처를 취하거나 사전에 패키지화된 애니메이션의 수정 모드로 들어감으로써, 애니메이션을 수정하기 시작하거나, 아바타 라이브러리에 애니메이션을 추가하기 시작할 수 있다. 시스템은 시범으로 사용자에게 기본 제작된 애니메이션 또는 목소리 데이터를 제시하고, 사용자는 자신만의 애니메이션을 실행하거나 스피치 샘플을 제공할 수 있다.
예를 들어, 시스템은 도 6(b)에 도시된 것과 유사하게, 아바타가 손에 머리를 기댄 채 앉아있는 애니메이션을 사용자(603)에 연관된 아바타(611)에 적용한다. 시스템은, 사용자가 휴지 상태일 때 또는 사용자가 물리적인 공간에서 유사한 모션을 행할 때, 도 6(a)에 도시된 바와 같은 자세를 사용자가 취하는 성향이 있음을 인식할 수 있다. 그러나, 사용자는 휴지 상태에 있을 때 사용자에 관한 이러한 행동을 나타내는 이력 데이터를 수정하기 원할 수 있다. 사용자는 이력 데이터의 수정 및/또는 특정 정황(예컨대, 휴지 상태 활동) 하에 사용자의 아바타에 적용되는 애니메이션을 시작하는 제스처를 취할 수 있다. 시스템은 특정 정황에 연관된 현재 애니메이션을 사용자에게 제시하고, 사용자는 그 아바타 라이브러리의 애니메이션을 고쳐쓸 그 애니메이션의 다른 버전을 수행할 수 있다.
시스템 또는 사용자가 제스처 또는 애니메이션 데이터를 추가, 업데이트 또는 고쳐쓰기 하는 양쪽 시나리오에서, 시스템은 사용자의 입력을 기록하고, 재정의된 제스처 또는 애니메이션 데이터를 승인할 수 있다. 예를 들어, 사용자가 "손을 흔드는" 제스처를 취하고 있으면, 전술한 바와 같이 시스템은 제스처 인식 엔진을 통해 모션이 "손을 흔드는" 제스처에 해당함을 탐지할 수 있다. 시스템은 제스처가 시작하고 멈춘 곳을 탐지하고 사용자가 물리적인 공간에서 새로운 모션을 수행하도록 제시하여, 현재 "손을 흔드는" 제스처 데이터를 덮어쓰거나, 사용자의 기록된 모션에 해당하는 추가적인 "손을 흔드는" 제스처를 생성할 수 있다.
시스템은 사용자의 기록된 모션을 승인할 수 있다. 예를 들어, 십대 청소년들을 인지하는 게임 애플리케이션에서, 제스처를 위해 사용자가 취한 모션이 사회적으로 허용되지 않는 모션(예컨대, 무례한 모션)이라면, 시스템은 그 제스처를 위한 사용자의 모션을 승인하지 않을 수 있다. 따라서, 시스템은 바람직하지 않고 사용자의 아바타에 반영되어서는 안 되는 사용자의 행동을 식별할 수 있다. 사용자가 축구 골키퍼의 역할을 플레이하는 축구 게임 애플리케이션을 생각해 보자. 시스템은, 사용자가 골키퍼 제스처를 취한 결과가 실패(즉, 공이 네트 안으로 들어감)일 때 욕설을 하거나 불건전한 제스처를 취하는 사용자의 성향을 식별할 수 있다. 따라서, 시스템은 이러한 정황 하에, 사용자 아바타 라이브러리로부터의 사용자 전용 애니메이션 또는 일반적인 아바타 라이브러리로부터의 일반적인 애니메이션 등 아바타에 적용할 다른 애니메이션을 선택할 수 있다. 시스템이 골키퍼의 제스처 및 게임 상태(예컨대, 공을 막는 것을 실패)를 식별할 때, 아바타가 물리적인 공간에서 사용자가 취한 모션을 흉내내게 하는 대신 건전한 애니메이션을 아바타에 적용하도록 조정될 수 있다. 이와 유사하게, 시스템은 그 행동을 승인하지 않고, 사용자의 아바타에 애니메이션을 적용할 때 선택할 수 있는 아바타 라이브러리의 애니메이션으로 포함시키지 않을 수 있다. 따라서, 일부 행동 또는 이러한 행동의 표시가 추후 사용을 위해 저장되지 않을 수 있다.
도 6(b)는 사용자가 물리적인 공간에 실제로 존재하는지 여부에 상관없이 시스템이 사용자의 행동 및 성향을 아바타에 적용하는 예를 도시한다. 도 6(b)에서, 아바타(611)는 도 6(a)의 사용자(603)를 나타낸다. 그러나, 사용자(603)는 도 6(b)에 더이상 존재하지 않는다. 사용자가 물리적인 공간에 없을 때, 사용자를 나타내고 (시스템에 의해 학습된) 사용자의 행동에 따라 행동할 수 있는 아바타를 제공하는 것이 바람직하다. 예를 들어, 사용자가 방을 떠나서 더 이상 시스템의 트래킹 시야 내에 없을 때조차, 시스템은 지속적으로 사용자의 아바타를 디스플레이하고 사용자의 성향 및 행동에 대응하는 애니메이션을 사용자의 아바타에 적용한다. 제 1 사용자가 제 2 사용자와 게임을 플레이 하기로 선택하고, 제 2 사용자가 물리적인 공간에 존재하거나 존재하지 않는 게임 애플리케이션을 생각해 보자. 시스템은, 제 2 사용자의 프로파일을 기초로 하여 사용자의 물리적인 특성, 성향, 행동 및 기타 특정을 반영하여 제 2 사용자를 흉내낼 수 있다. 예를 들어, 애플리케이션에 기술 레벨이 적용되는 경우라면, 제 2 사용자의 능력을 흉내낼 수도 있다. 따라서, 제 1 사용자는 제 2 사용자가 실제로 물리적인 공간에 있고 시스템과 인터랙션하는 경우와 유사한 경험을 제 2 사용자의 아바타를 통해 할 수 있다. 시스템은 제 2 사용자의 아바타에 애니메이션들을 적용하여, 제 2 사용자의 아바타가 제 2 사용자처럼 움직이고, 이야기하고 언어를 사용할 수 있게 한다.
사용자(603)의 행동들은 사용자의 이전 입력 및/또는 시간에 걸쳐 시스템에서 캡쳐된 사용자(603)에 관한 데이터로부터 식별될 수 있다. 아바타는 사용자의 특징, 행동, 성향, 목소리 패턴 등에 관련된 양태를 포함하는, 물리적인 공간의 사용자의 양태들을 더욱더 반영하게 된다. 예를 들어, 시스템은 사용자의 성향을 학습하여, 아바타가 사용자의 식별된 성향에 따라 행동하고 반응하도록 사용자의 아바타에 애니메이션을 지적으로 적용할 수 있다. 따라서, 애니메이션을 실행하도록 아바타를 트레이닝하는 것은, 사용자의 입력 이력으로부터 학습하여 아바타를 사용자와 닮도록 성형하는 것을 포함한다.
시스템은 사용자가 다양한 시나리오에 대해 어떻게 반응하는지를 학습하고, 사용자의 특성 상태를 캡쳐한다. 예를 들어, 다른 사용자가 활성 플레이어인 게임 애플리케이션 실행 중에 사용자가 휴지 상태로 서있다면, 시스템은 활성 플레이가 아닌 동안 사용자의 자세 및 사용자가 참여하는 활동들을 탐지한다. 사용자는 음료수를 마시고, 벽에 기대어 서있고, 활성 플레이어 또는 스크린을 보고, 책을 읽거나 기타 임의의 활동을 할 수 있다. 예를 들어, 사용자는 활성 플레이어가 아닌 동안 책을 보통 읽는다. 시스템은 이러한 성향을 인식하고 이 성향에 관련된 정보를 사용자의 프로파일에 저장한다.
도 6(a)에서, 사용자(603)가 축구 게임 애플리케이션에 능동적으로 참여하는 사용자(602)를 주시하는 동안, 시스템은 사용자(603)의 바디 랭귀지, 자세, 사용하는 언어 등을 탐지했을 수 있다. 시스템은 시간에 걸쳐 캡쳐된 사용자(603)에 관한 다른 이력 데이터를 가질 수도 있다. 도 6(b)에서, 사용자(603)는 물리적인 공간(601)에 존재하지 않지만, 사용자의 아바타(611)가 디스플레이 장치(612)에 디스플레이된다. 시스템은 사용자(603)의 행동에 관해 수집된 이력 데이터에 대응하는 애니메이션을 사용자의 아바타(611)에 적용할 수 있다. 따라서, 시스템은 사용자가 게임에서 비활성 플레이어일 때 일반적으로 행동하는 방식과 유사하게 앉은 자세로 있는 사용자의 아바타(611)를 묘사할 수 있다. 시스템은 일반적인 축구 게임에서 볼 수 있으며 일반적인 축구 게임 관중이 앉는 좌석이나 외야석에 사용자를 위치시키는 것과 같이 추가적인 애니메이션들을 제공할 수 있다.
시스템은 사용자 입력에 관련된 데이터를 도 2에 도시된 아바타 라이브러리(196)와 같은 아바타 라이브러리에 저장할 수 있다. 아바타 라이브러리는 특정 사용자에 연관되거나 또는, 프로파일(198)과 같은 사용자 프로파일에 저장될 수 있다. 전술한 바와 같이, 시스템은 사용자가 애니메이션의 저장 라이브러리에 덮어쓰거나 추가할 수 있게 한다. 다른 실시예에서, 라이브러리의 애니메이션은 아바타 라이브러리에 사용자가 입력하고 기록한 애니메이션일 수 있다. 예를 들어, 시스템 또는 사용자는 캡쳐 장치에 의해 캡쳐된 사용자의 실제 모션 또는 행동을 반영하기 위해, 애니메이션을 재프로그래밍할 수 있다. 따라서, 아바타 애니메이션 라이브러리에 애니메이션들이 추가되거나 덮어쓰여질 수 있다.
또한, 시스템은 애니메이션의 저장 라이브러리를 포함하는 보편적인 또는 일반적인 아바타 라이브러리를 포함할 수 있다. 일 실시예에서, 아바타에 적용되는 애니메이션들은 프로그램, 애플리케이션 또는 시스템에 딸려오는 사전에 패키지화된 애니메이션 라이브러리로부터 선택되는 애니메이션들일 수 있다. 선택된 애니메이션들은 특정 행동들을 반영하기 위해 시스템에서 학습된 사용자 입력에 대응하는 것들이다. 애플리케이션 또는 시스템을 위해 사전 제작된 애니메이션들이 정의될 수 있다. 예를 들어, 아바타에 적용되는 파일을 열고 닫는 애니메이션은 시스템 전체에서 동일하다.
사용자에 대응하는 아바타 라이브러리를 포함하는 아바타 라이브러리들은 애플리케이션에서, 애플리케이션들 간에 또는 시스템 전체에서 액세스 가능하다. 예를 들어, 시스템은 다양한 애플리케이션을 통해 사용자의 행동을 식별할 수 있다. 시스템은 애플리케이션에 걸쳐 사용자의 행동에 관련된 모든 데이터를 수집하고, 이들을 보편적으로 사용가능한 아바타 라이브러리에 저장할 수 있다. 이후에, 시스템은 아바타 라이브러리에 액세스하여, 임의의 상황에서 아바타 라이브러리의 애니메이션을 아바타에 적용할 수 있다. 예를 들어, 시스템은 사용자가 게임의 활성 플레이어가 아닐 때 일반적으로 자신의 손톱을 깨무는 것을 식별한다. 따라서, 사용자가 비게임 애플리케이션을 실행하는 동안 시스템과 인터랙션할 때, 사용자가 문서를 저장하거나 디버거를 소프트웨어 상에서 실행시키는 것을 기다리고 있는 때와 같이 애플리케이션과 사용자의 인터랙션에 지연이 생길 때, 시스템은 손톱을 깨무는 애니메이션을 사용자의 아바타에 적용한다.
시스템은 언제든지 사용자의 아바타를 디스플레이하고, 사용자의 행동을 반영하는 애니메이션들은 언제든지 아바타에 적용할 수 있다. 시간이 흐르면서, 시스템은 사용자로부터의 도움이 있든 없든 사용자의 애니메이션을 임의 종류의 시나리오에 적용할 수 있다. 예를 들어, 아바타 라이브러리 및 사용자의 행동에 연관된 저장 데이터를 사용하여, 시스템은 사용자로부터의 입력 없이 사용자의 식별된 목소리 패턴 및 크기를 사용하여 음성 메일 메시지를 생성할 수 있다. 시스템은 게임 애플리케이션 등에서 친구와 통신하고 있는 애플리케이션 대시보드의 아바타에 애니메이션을 적용할 때 사용자의 행동을 흉내낼 수 있다. 사용자가 아바타를 제어하거나 또는 제어하지 않을 수 있으며, 시스템은 유사한 사용자의 아바타를 제공할 수 있다. 시스템은 특정 사용자가 물리적인 공간에 존재하는지에 관계없이 그 특정 사용자에 연관된 아바타에 애니메이션을 적용할 수 있다. 예를 들어, 사용자는 워드 프로세싱 애플리케이션에서 문서를 작성하고 있고, 시스템은 사용자와 닮은 아바타를 스크린에 디스플레이하고 애니메이션화할 수 있다. 시스템은 사용자의 아바타 라이브러리의 애니메이션을 적용할 수 있다.
시스템은 사용자가 애플리케이션 사이에서 또는 다른 환경에서 다르게 행동하는 것을 식별할 수 있다. 예를 들어, 게임 애플리케이션의 경우, 다른 사용자가 게임의 활성 플레이어일 때 사용자는 디스플레이 및/또는 다른 사용자를 보고 주시한다. 그러나, 비게임 애플리케이션에서는, 다른 사용자가 활성화될 때 또는 애플리케이션이 문서를 저장하거나 디버거를 실행시키면, 사용자는 스크린을 주시하지 않는다. 사용자는 자신의 손톱을 깨물거나 방을 떠날 수 있다.
애플리케이션 또는 시스템의 임의의 양태를 제어하기 위해 애플리케이션에서 아바타가 필요하지 않을 때에도, 아바타가 디스플레이될 수 있다. 아바타가 디스플레이되어, 사용자의 입력으로부터 학습한 대로, 일반적으로 행동, 반응, 성향 등을 식별할 정도로 충분한 일련의 입력을 지켜본 시스템에서 학습한 대로 실행되고 행동할 수 있다. 예를 들어, 제 1 사용자가 물리적인 공간에서 이야기를 들려주고 있고, 스크린에 디스플레이될 아바타를 선택하여 말하는 대로 이야기를 애니메이션화한다. 선택된 아바타는 물리적인 공간에 존재하지 않는 사용자에 연관된 아바타일 수 있다. 그러나, 시스템은 아바타가 존재하지 않는 사용자처럼 행동하도록 아바타를 애니메이션화할 수 있을 정도로, 존재하지 않는 사용자에 관해 저장된 충분한 정보를 가지고 있다. 시스템이 시간에 걸쳐 학습한 사용자의 행동들에 대응하는 애니메이션으로 가득찬 아바타 라이브러리에 딸려오는 아바타를 사용할 수도 있다. 따라서, 아바타가 사용자를 잘 표현할 수 있기 때문에, 사용자가 존재하여 입력을 제공하는 것처럼 보일 수 있다.
전술한 바와 같이, 시스템(600)은 사용자의 행동을 나타내는 물리적인 공간으로부터의 데이터를 식별할 수 있다. 예를 들어, 시스템(600)은 물리적 공간의 사용자의 모션, 얼굴 표정, 바디 랭귀지, 감정 등에 관련된 정보를 수집한다. 시스템은 자세 인식 기법을 사용하여 인간 타겟의 감정 또는 정서(temperament)를 식별할 수 있다. 예를 들어, 시스템(600)은 사용자의 골격 모델을 분석하고 트래킹하여 사용자가 어떻게 움직이는지를 결정한다. 시스템(600)은 사용자의 신체 및, 애플리케이션, 운영 체제 등의 시스템의 양태를 제어하는 제스처를 포함하는, 사용자의 신체로 하는 모션들을 트래킹할 수 있다. 시스템은 사용자의 자세, 얼굴 표정, 목소리 표현 및 어조, 주시 시선 등을 식별할 수 있다. 사용자의 목소리 표현으로 사용자의 정서를 나타낼 수 있다. 예를 들어, 사용된 언어, 어조, 피치(pitch), 크기(volume) 등이 사용자의 정서에 대한 느낌을 전달할 수 있다. 예를 들어, 격한 어조는 분노 또는 공격성으로 해석될 수 있다. 다른 어조로는 긴장된 발성의(tense), 보통 발성의(modal), 숨이 새는(breathy), 속삭이는(whispery), 쥐어 짜내는 발성의(creaky), 차분한, 흥분한, 행복한 또는 기타 임의의 어조일 수 있다. 시스템은 사용자의 눈썹의 움직임 및/또는 찌푸리거나 웃는 표정을 비롯한 사용자의 얼굴 움직임을 식별할 수 있다. 시스템은 사용자가 한 말 및 사용자의 어조, 또는 사용자의 자세 등을 탐지할 수 있다. 예를 들어, 시스템은 사람의 오른팔을 탐지할 수 있고, 팔의 윗부분, 팔의 아랫부분, 손가락, 엄지 손가락, 손가락의 관절들 등을 구별하는 정확도를 가질 수 있다. 따라서, 사용자의 특성은 사용자의 행동 및 성향의 유익한 지표가 된다.
도 6(a)에 도시된 예시에서, 사용자(603)는 머리를 한쪽으로 기울이고, 오른쪽 팔꿈치를 무릎에 대고, 사용자의 오른손으로 머리를 받치고 앉아 있다. 사용자의 얼굴 표정, 자세, 한 말 또는 기타 임의의 탐지가능한 특성이 사용자의 아바타(611)에 적용되고, 적절하다면 수정될 수도 있다. 예를 들어, 사용자(603)가 의자에 앉아 있지만, 시스템은 사용자가 축구 게임에서 볼 수 있는 좌석이나 외야석에 앉도록 수정할 수 있다.
시스템(600)은 애플리케이션의 상황과 사용자의 아바타 라이브러리를 비교하여 어떤 애니메이션을 사용자의 비주얼 표현에 적용할 것인지를 결정한다. 예를 들어, 전술한 축구 게임 애플리케이션에서는, 게임의 상태는 사용자가 공 막기를 성공을 한 것을 말한다. 시스템은 이러한 상황에서 춤을 추는 것이 사용자의 일반적인 행동인 것으로 식별하여, 이 사용자의 춤을 추는 애니메이션을 아바타에 적용한다. 다른 예를 들면, 제 1 사용자가 물리적인 공간에 존재하고, 디스플레이 상에 이야기를 연출하도록 선택된 제 2 사용자의 아바타가 있는 이야기를 하고 있다. 제 2 사용자가 존재하거나 또는 존재하지 않을 수 있지만, 그 아바타는 제 2 사용자에 대한 것으로 식별된 행동들을 반영하면서 디스플레이 상에서 이야기를 연출한다. 예를 들면, 이야기는 도량을 뛰어넘는 사람을 표현할 수 있다. 제 2 사용자와 닮은 아바타는 도랑을 뛰어넘는 것으로 보여지며, 제 2 사용자처럼 보이도록 애니메이션화되어 제 2 사용자의 행동을 반영한다. 예를 들어, 시스템은, 사용자가 뛰거나 또는 무서워하거나 재미있어 할 때 일반적인 사용자의 행동들을 식별한다. 시스템은 그 상황에 부합하는 애니메이션 및 이러한 상황에서의 사용자의 행동에 관해 저장된 데이터를 아바타에 적용한다.
도 7(a)는 복싱 게임 애플리케이션에서 서로 원격으로 플레이하는 두 명의 사용자의 예시를 도시한다. 원격 사용자들은 각각의 물리적인 공간에서 타겟 인식, 분석 및 트래킹 시스템으로 인터랙션하며, 네트워크 연결을 통해 서로 인터랙션할 수 있다. 각 시스템은 상대 시스템으로 각 물리적인 공간의 실시간 비주얼 피드팩(live visual feedback)을 제공할 수 있다. 도 7(a)에서, 두 명의 사용자, 사용자 #1, 사용자 #2는 복싱 게임 애플리케이션을 실행하는 시스템과 인터랙션하고 있다. 따라서, 각 시스템은 각 사용자에 대한 실시간 데이터를 캡쳐하고, 각 사용자에 대응하고 각 사용자의 모션에 매핑되는 비주얼 표현을 렌더링한다. 도 7(b)에서, 제 2 사용자는 물리적인 공간에 더 이상 존재하지 않으며, 타겟 인식, 분석 및 트래킹 시스템의 트래킹 시야에도 없다. 그러나, 시스템은 이번 복싱 게임 애플리케이션이나, 그 이전 게임 애플리케이션, 또는 사용자와 시스템 또는 애플리케이션과의 기타 임의의 인터랙션에서 사용자의 행동에 관한 데이터를 수집해두었다. 시스템은 사용자에 연관된 아바타 라이브러리로부터 사용자의 행동들을 반영하는 애니메이션들을 적용할 수 있다. 따라서, 사용자의 입력 이력을 기초로 하여, 시스템은 사용자와 아주 비슷하게 보이는 비주얼 표현을 렌더링할 수 있다. 사용자 #1은 제 2 사용자의 아바타와 함께, 실제 사용자 데이터가 아바타에 적용된 경우와 유사한 경험을 할 수 있다.
도 8은 사용자의 행동을 학습하는 방법의 일례를 도시하며, 도 9는 선택된 행동들의 애니메이션을 사용자의 아바타에 적용하는 방법의 일례를 도시한다. 예를 들어, 802에서, 시스템은 사용자를 포함하는 물리적 공간으로부터 데이터를 수신한다. 전술한 바와 같이, 캡쳐 장치는 장면의 깊이 이미지와 같은 장면의 데이터를 캡쳐하고 장면의 타겟들을 스캔할 수 있다. 캡쳐 장치는 장면의 하나 이상의 타겟이 사용자와 같은 인간 타겟에 해당하는 지를 결정한다. 인간 신체 모델과 일치하는 각 타겟 또는 사물이 스캔되어, 그에 연관된 골격 모델을 생성하게 된다. 이후에, 이 골격 모델은 골격 모델을 트래킹하고 그에 연관된 비주얼 표현을 렌더링하는 컴퓨팅 환경에 제공된다.
804에서, 시스템은 사용자의 행동을 나타내는 특성을 식별한다. 사용자의 행동을 나타내는 특성으로 물리적인 특성, 얼굴 특징, 스피치 패턴, 어휘, 음성 명령어, 제스처, 모션 또는 자세를 포함할 수 있다. 예를 들어, 시스템은 신체 인식 및 표정 인식 기법을 사용하여 신체와 얼굴 특성을 식별할 수 있다. 특정 얼굴 표정 및 신체 움직임을 포함하는 사용자의 행동이 식별된다. 예를 들어, 시스템은 물리적인 공간에서 사용자에 대한 데이터를 캡쳐하는 캡쳐 장치를 포함한다. 시스템은 사용자의 특성, 성향, 목소리 패턴, 행동, 제스처 등을 식별할 수 있다. 시스템은 사용자의 행동을 나타내는 특성을 수동적 및/또는 능동적으로 식별할 수 있다. 예를 들어, 수동적인 학습은 사용자가 물리적인 공간에서 자연스럽게 행동할 때 사용자의 특성을 식별하는 것을 포함하고, 능동적인 학습은 사용자가 제스처를 실행할 때 사용자의 특성을 식별하는 것을 포함한다. 시간에 걸쳐서, 시스템은 사용자의 성향을 학습하고, 사용자의 아바타에 지적으로 애니메이션을 적용하여, 아바타가 사용자의 식별된 성향에 따라 행동하고 반응하도록 할 수 있다. 따라서, 애니메이션을 실행하도록 아바타를 트레이닝하는 것은 사용자의 입력을 학습하고 아바타를 사용자와 닮도록 성형하는 것을 포함한다.
805에서, 시스템은 사전에 패키지화된 아바타 라이브러리에 애니메이션을 추가하거나 고쳐쓴다. 예를 들어, 사전에 패키지화된 아바타 라이브러리는 애플리케이션과 함께 제공되는 디폴트 애니메이션 세트일 수 있다. 사전에 패키지화된 아바타 라이브러리에 애니메이션을 고쳐쓰는 것은 808에서 저장된 것과 같은, 사용자의 행동을 나타내는 특성의 이력에 부합하도록 애니메이션을 업데이트하는 것을 포함한다. 애니메이션을 사전에 패키지화된 아바타 라이브러리에 추가하는 것은, 물리적 공간에서의 사용자의 모션을 기록하고, 사용자의 모션을 나타내는 애니메이션을 아바타 라이브러리에 추가하는 것을 포함한다. 아바타 라이브러리에 애니메이션을 추가 또는 고쳐쓰는 것이 사용자의 제스처에 의해 개시될 수 있다(prompted). 예를 들어, 사용자는 수정 모드로 들어가기 위한 제스처를 취하고, 시스템은 수정 모드에 있는 사용자의 모션을 기록하고, 이들을 추가되거나 고쳐진 애니메이션에 적용할 수 있다.
806에서, 시스템은 애니메이션을 생성하여 이를 아바타 라이브러리에 추가한다. 아바타 라이브러리는 사전에 패키지화되거나 그렇지 않을 수도 있다. 예를 들어, 아바타 라이브러리는 사용자에 의해 기록된 애니메이션을 포함하고, 시스템에서 제공될 수도 있고 제공되지 않을 수도 있다. 따라서, 사용자는 사용자의 아바타에 적용되는 아바타 라이브러리의 모든 애니메이션을 정의할 수 있다. 시스템은 추가되거나, 고쳐쓰여진 또는 생성된 임의의 애니메이션을 승인하여야 한다. 예를 들어, 사용자가 불건전한 애니메이션을 실행하면, 애니메이션은 승인되지 않아서 이력 데이터에 입력되지 않거나, 또는 애니메이션을 고쳐쓰는 데 사용되지 않는다. 또는, 아바타는 사용자에 의해 기록된 애니메이션 및/또는 사전에 패키지화된 애니메이션의 조합일 수도 있다.
807에서, 시스템은 사용자의 행동과 특정 상황을 연관짓는다. 예를 들어, 사용자는, 게임 애플리케이션에서 성공을 거두었을 때, 또는 휴지 상태에서 활성 사용자가 게임을 플레이하는 것을 볼 때, 특정한 방식으로 행동하게 된다. 사용자의 행동과 임의의 특정 상황과의 상관 관계를 포함하는, 사용자의 행동에 관련된 데이터는 806에서 아바타 라이브러리 등에 저장된다. 전술한 바와 같이, 아바타 라이브러리는 사전에 패키지화된 애니메이션을 포함하거나, 또는 아바타 라이브러리가 특정 사용자와 연관되어, 그 사용자에게 맞춰진 애니메이션을 가질 수 있다. 사용자 전용 정보는 한 명 이상의 사용자의 플레이 모드의 성향을 포함할 수 있다. 예를 들어, 사용자가 특정 방식으로 행동하거나 반응하는 성향이 있으면, 시스템은 이러한 사용자의 성향을 트래킹하여, 특정 상황 하에서의 사용자의 행동을 보다 정확하게 반영할 수 있다. 따라서, 시스템은 사용자의 성향을 트래킹하기 시작하고, 이 정보를 사용하여 사용자의 행동을 보다 정확하게 반영할 수 있다.
806에서, 행동 및 물리적인 공간에서의 사용자에 연관된 그 행동에 대응하는 애니메이션이 사용자 프로파일의 일부로써 저장된다. 프로파일은 특정 물리적인 공간 또는 사용자의 전용이며, 아바타 라이브러리의 일부이거나 아바타 라이브러리의 양태들을 포함할 수 있다. 사용자의 특징들을 포함하는 아바타 데이터는 사용자 프로파일의 일부가 될 수 있다. 사용자가 캡쳐 장면에 들어가는 순간, 프로파일에 액세스가능하다. 비밀 번호, 사용자의 선택, 신체 크기, 목소리 인식 등을 기초로 하여 프로파일이 사용자와 일치하게 되면, 사용자의 비주얼 표현을 결정하는 데에 프로파일이 사용될 수 있다.
사용자의 프로파일에 정보를 저장하는 사용자의 이력 데이터가 탐지된다. 예를 들어, 시스템은 사용자의 행동, 스피치 패턴, 감정, 소리 등 사용자 특유의 행동 특징을 탐지한다. 시스템은 비주얼 표현에 정서를 적용할 때, 이들 특징을 사용자의 비주얼 표현에 적용한다. 예를 들어, 시스템이 사용자의 행동을 식별하고 이 행동을 반영하는 스피치를 포함하는 애니메이션을 선택하면, 비주얼 표현의 목소리는 사용자의 스피치 패턴으로부터 패턴화되거나, 또는 사용자 자신의 녹음된 목소리일 수 있다.
시스템은 사용자와 연관된 아바타를 렌더링하고, 810에서, 사용자의 행동을 나타내는 애니메이션을 사용자의 아바타에 적용한다. 808에서, 시스템은 정황을 식별한다. 정황은 사용자의 물리적인 환경 조건, 사용자의 가상 환경 조건, 시스템의 상태, 애플리케이션의 상태, 애플리케이션에서 사용자의 성공, 애플리케이션에서 사용자의 실패, 사용자의 활성/비활성 상태, 제 2 사용자의 존재, 또는 제스처 등을 포함할 수 있다. 시스템은 정황과 이력 데이터를 비교함으로써, 이력 데이터와 정황 간의 임의의 상관 관계를 식별할 수 있다. 상관 관계가 식별되면, 시스템은 정황에 대응하는 사용자의 행동을 나타내는 애니메이션을 선택한다.
도 9는 사용자의 아바타에 애니메이션을 적용하는 방법을 도시한다. 물리적인 공간에서의 사용자의 존재 여부와 상관없이 애니메이션이 적용될 수 있다. 따라서, 시스템은 사용자와 유사하고 사용자에 따라 행동하는 아바타의 형태인, 사용자의 반영일 수 있다. 사용자가 물리적인 공간에 존재하지 않는 때와 같이, 사용자가 애플리케이션/시스템과 인터랜셕하지 않을 때조차 사용자의 아바타는 사용자를 표현할 수 있다. 902에서, 시스템은 사용자의 비주얼 표현을 렌더링한다. 아바타 라이브러리에 저장된 정보를 기초로 하여, 도 8에서 기술한 것처럼, 사용자에 대응하는 사용자의 아바타에 애니메이션이 적용된다.
904에서, 시스템에서는 아바타에 적용될, 특정 사용자의 학습된 입력에 해당하는 애니메이션을 선택한다. 사용자가 물리적인 공간에 물리적으로 존재하지 않으면, 906에서와 같이, 애니메이션은, 시스템에서 학습되고 그 사용자에 연관되어 아바타 라이브러리에 저장된 사용자의 행동에 대응되게 된다. 따라서, 사용자가 캡쳐 장치에 의해 캡쳐되도록 물리적인 공간에 있지 않을 때조차, 아바타는 사용자와 유사한 방식으로 행동하는 것으로 보일 수 있다. 제 2 사용자는 시스템이 물리적인 공간에 존재하지 않는 사용자의 비주얼 표현을 렌터링하여 제 1 사용자와의 경험을 시뮬레이션할 수 있도록 요청할 수 있다.
사용자가 존재하면, 908에서와 같이, 아바타 라이브러리로부터 애니메이션이 선택되거나, 또는 애니메이션이 시스템에 의해 캡쳐되는 물리적인 공간의 사용자에 직접적으로 매핑될 수 있다. 애니메이션은 아바타 라이브러리로부터 선택되고, 사용자의 이력 데이터로부터 식별되는 사용자의 행동을 나타낼 수 있다. 따라서, 애니메이션은 시스템에 의해 캡쳐된 행동들의 이전 아이덴티티에 근거하여 선택될 수 있다. 사용자가 물리적인 공간에 존재하고, 사용자에 대한 데이터가 캡쳐 장치에 의해 캡쳐되어도, 사용자에 아바타를 직접적으로 매핑시키는 대신 아바타 라이브러리의 애니메이션을 적용시키는 것이 바람직할 수도 있다.
일 실시예에서, 아바타에 적용되는 애니메이션들은 프로그램, 애플리케이션, 또는 시스템에 딸려오는 것과 같은 사전에 패키지화된 애니메이션 라이브러리로부터 선택되는 애니메이션들일 수 있다. 선택된 애니메이션들은 시스템에서 학습한 사용자의 입력에 대응하는 것일 수 있다. 다른 실시예에서, 라이브러리의 애니메이션은 사용자가 아바타 애니메이션 라이브러리에 입력하고 기록한 애니메이션일 수 있다. 예를 들어, 시스템 또는 사용자는 캡쳐 장치에 의해 캡쳐되는 사용자의 실제 모션이나 행동을 반영하도록 애니메이션을 재프로그래밍할 수 있다. 따라서, 애니메이션은 아바타 애니메이션 라이브러리에 추가되거나 덮어쓰여질 수 있다. 시간이 갈수록, 가상 공간의 아바타는 사용자의 특징, 행동, 성향, 목소리 패턴 등을 포함하는, 물리적인 공간의 사용자의 반영으로 보일 수 있다.
본원에 기술된 구성 및/또는 접근 방법은 예시적인 것으로, 이러한 특정 실시예들이나 예시들로 제한되는 것은 아님을 이해할 것이다. 본원에 기술된 특정 루틴 또는 방법들은 하나 이상인 임의의 수의 처리 전략을 나타낸다. 따라서, 도시된 다양한 행위들은 도시된 순서대로, 다른 순서로 또는 동시에 실행될 수 있다. 마찬가지로, 전술한 프로세스의 순서도 변경될 수 있다.
또한, 본 개시는 특정 양태들과 관련되어 설명되었지만, 다양한 도면에 도시된 바와 같이, 본 개시를 벗어나지 않고 그 동일한 기능을 실행하도록 다른 유사한 양태들이 사용되거나 또는, 설명된 양태들에 대해 변경 및 추가될 수 있다. 본 개시의 대상은, 본원에 기술된 다양한 프로세스, 시스템 및 구성의 신규하고 자명하지 않은 모든 컴비네이션 및 서브 컴비네이션, 및 기타 특징, 기능, 행위 및/또는 특성들뿐만 아니라 그들의 임의의 모든 등가물을 포함한다. 따라서, 개시된 실시예들의 방법 및 장치, 또는 특정 양태들이나 그 일부분은, 플로피 디스켓, CD-ROM, 하드 드라이브 또는 기타 임의의 기계 판독가능 저장 매체 등의 실제 매체에 구현되는 프로그램 코드(즉, 인스트럭션)의 형태를 취할 수 있다. 프로그램 코드가 컴퓨터와 같은 기계에 로딩되어 실행된다면, 그 기계는 개시된 실시예를 실시하도록 구성된 장치가 된다.
본원에 명시된 특정 구현예뿐만 아니라, 본원에 기술된 상세한 설명을 참고하여 그 밖의 양태들 및 구현예들도 당업자에게 자명할 것이다. 따라서, 본 개시는 임의의 단일 양태에 제한되지 않고, 첨부된 특허청구범위에 따른 폭과 범위로 해석되어야 한다. 예를 들어, 본원에서 설명된 다양한 절차들은 하드웨어 또는 소프트웨어 또는 이들의 조합으로 구현될 수 있다.

Claims (18)

  1. 사용자의 비주얼 표현에 애니메이션을 적용하기 위한 방법에 있어서,
    현재 물리적 캡쳐 영역에 존재하고 있는 사용자를 나타내는 제1 이미지 - 상기 제1 이미지는, 캡쳐 장치로부터 수신되고 있음 - 에 기초하여 복수의 저장된 애니메이션들로부터 제1 애니메이션을 선택하는 단계와,
    디스플레이 장치 상에서 상기 사용자의 비주얼 표현에 상기 제1 애니메이션을 적용하는 단계와,
    상기 제1 이미지에 적어도 부분적으로 기초하여 식별되는 상기 사용자의 특성에 적어도 부분적으로 기초하여, 상기 복수의 저장된 애니메이션들 중 적어도 하나의 애니메이션을 업데이트하는 단계와,
    상기 물리적 캡쳐 영역의 제2 이미지로부터 상기 사용자가 상기 물리적 캡쳐 영역 내에 위치해 있지 않다고 결정하는 것에 응답하여, 상기 물리적 캡쳐 영역 또는 또다른 물리적 캡쳐 영역 내의 상기 사용자를 나타내는 이전의 이미지로부터의 상기 사용자의 특성에 적어도 부분적으로 기초하여, 상기 복수의 저장된 애니메이션들 중 제2 애니메이션을 선택하는 단계와,
    상기 사용자의 비주얼 표현이 만들어지는 컴퓨터 애플리케이션과 제2 사용자가 상호작용(interact)하고 있다고 결정하는 것에 응답하여, 상기 사용자가 상기 물리적 캡쳐 영역에 위치해있지 않은 동안 상기 사용자의 비주얼 표현을 애니메이션화 하기 위하여 상기 디스플레이 장치 상에서 상기 사용자의 비주얼 표현에 상기 제2 애니메이션을 적용하고, 상기 적용에 의해 상기 사용자의 비주얼 표현이 상기 제2 애니메이션 내의 상기 사용자의 특성에 따라 행동(behave)하도록 애니메이션화되는 단계를 포함하는,
    사용자의 비주얼 표현에 애니메이션을 적용하기 위한 방법.
  2. 제1항에 있어서,
    상기 제1 애니메이션은 상기 물리적 캡쳐 영역에 존재하는 상기 사용자의 캡쳐 장치에 의해 현재 캡쳐된 데이터와 대응하지 않는 것인,
    사용자의 비주얼 표현에 애니메이션을 적용하기 위한 방법.
  3. 제1항에 있어서,
    상기 복수의 저장된 애니메이션들은 사전에 패키지화된(pre-packaged) 복수의 애니메이션들이고,
    상기 복수의 저장된 애니메이션들 중 제2 애니메이션을 선택하는 단계는, 상기 사전에 패키지화된 복수의 애니메이션들로부터 상기 제2 애니메이션을 선택하는 단계를 포함하는 것인,
    사용자의 비주얼 표현에 애니메이션을 적용하기 위한 방법.
  4. 제1항에 있어서,
    상기 복수의 저장된 애니메이션 내의 상기 제1 애니메이션을 캡쳐 장치에 의해 캡쳐된 상기 사용자의 모션에 대응하도록 고쳐쓰는(rewrite) 단계를 더 포함하고,
    상기 고쳐쓰는 단계는, 상기 제1 애니메이션 내의 제스처를 상기 사용자의 제스처로 대체(replace)하는 단계를 포함하는 것인,
    사용자의 비주얼 표현에 애니메이션을 적용하기 위한 방법.
  5. 제4항에 있어서,
    상기 제1 애니메이션을 고쳐쓰는 단계는 상기 물리적 캡쳐 영역 내의 사용자의 제스처에 의해 개시(prompt)되는 것인,
    사용자의 비주얼 표현에 애니메이션을 적용하기 위한 방법.
  6. 제1항에 있어서,
    상기 사용자의 비주얼 표현은, 상기 사용자가 상기 물리적 캡쳐 영역에 존재하거나 상기 사용자의 비주얼 표현을 제어하는 것처럼 나타나도록 애니메이션화되는 것인,
    사용자의 비주얼 표현에 애니메이션을 적용하기 위한 방법.
  7. 컴퓨터 판독가능한 명령어들을 보유(bear)하고 있는 컴퓨터 판독가능한 메모리에 있어서,
    상기 명령어들은, 컴퓨터 상에서 실행될 때, 상기 컴퓨터로 하여금,
    현재 물리적 캡쳐 영역에 존재하고 있는 사용자를 나타내는 제1 이미지 - 상기 제1 이미지는, 캡쳐 장치로부터 수신되고 있음 - 에 기초하여 복수의 저장된 애니메이션들로부터 제1 애니메이션을 선택하는 동작과,
    디스플레이 장치 상에서 상기 사용자의 비주얼 표현에 상기 제1 애니메이션을 적용하는 동작과,
    상기 제1 이미지에 적어도 부분적으로 기초하여 식별되는 상기 사용자의 특성에 적어도 부분적으로 기초하여, 상기 복수의 저장된 애니메이션들 중 적어도 하나의 애니메이션을 업데이트하는 동작과,
    상기 물리적 캡쳐 영역의 제2 이미지로부터 상기 사용자가 상기 물리적 캡쳐 영역 내에 위치해 있지 않다고 결정하는 것에 응답하여, 상기 물리적 캡쳐 영역 또는 또다른 물리적 캡쳐 영역 내의 상기 사용자를 나타내는 이전의 이미지로부터의 상기 사용자의 특성에 적어도 부분적으로 기초하여, 상기 복수의 저장된 애니메이션들 중 제2 애니메이션을 선택하는 동작과,
    상기 사용자의 비주얼 표현이 만들어지는 컴퓨터 애플리케이션과 제2 사용자가 상호작용(interact)하고 있다고 결정하는 것에 응답하여, 상기 사용자가 상기 물리적 캡쳐 영역에 위치해있지 않은 동안 상기 사용자의 비주얼 표현을 애니메이션화 하기 위하여 상기 디스플레이 장치 상에서 상기 사용자의 비주얼 표현에 상기 제2 애니메이션을 적용하고, 상기 적용에 의해 상기 사용자의 비주얼 표현이 상기 제2 애니메이션 내의 상기 사용자의 특성에 따라 행동(behave)하도록 애니메이션화되는 동작
    을 포함하는 동작들을 수행하도록 하는 것인,
    컴퓨터 판독가능한 메모리.
  8. 제7항에 있어서,
    상기 제1 애니메이션은 상기 물리적 캡쳐 영역에 존재하는 상기 사용자의 캡쳐 장치에 의해 현재 캡쳐된 데이터와 대응하지 않는 것인,
    컴퓨터 판독가능한 메모리.
  9. 제7항에 있어서,
    상기 복수의 저장된 애니메이션들은 사전에 패키지화된(pre-packaged) 복수의 애니메이션들이고,
    상기 복수의 저장된 애니메이션들 중 제2 애니메이션을 선택하는 동작은, 상기 사전에 패키지화된 복수의 애니메이션들로부터 상기 제2 애니메이션을 선택하는 동작을 포함하는 것인,
    컴퓨터 판독가능한 메모리.
  10. 제7항에 있어서,
    상기 컴퓨터 상에서 실행될 때, 상기 컴퓨터로 하여금 상기 복수의 저장된 애니메이션들 내의 상기 제1 애니메이션을 캡쳐 장치에 의해 캡쳐된 상기 사용자의 모션에 대응하도록 고쳐쓰는(rewrite) 동작을 수행하도록 하는 컴퓨터 판독가능한 명령어들을 더 보유하는,
    컴퓨터 판독가능한 메모리.
  11. 제10항에 있어서,
    상기 제1 애니메이션을 고쳐쓰는 동작은 상기 물리적 캡쳐 영역 내의 사용자의 제스처에 의해 개시(prompt)되는 것인,
    컴퓨터 판독가능한 메모리.
  12. 제7항에 있어서,
    상기 사용자의 비주얼 표현은, 상기 사용자가 상기 물리적 캡쳐 영역에 존재하거나 상기 사용자의 비주얼 표현을 제어하는 것처럼 나타나도록 애니메이션화되는 것인,
    컴퓨터 판독가능한 메모리.
  13. 시스템에 있어서,
    프로세서 및 상기 시스템이 동작 가능할 때 상기 프로세서에 통신가능하게 연결되는 메모리를 포함하고,
    상기 메모리는 프로세서에 의해 실행가능한 명령어들을 보유(bear)하고,
    상기 명령어들은, 상기 프로세서 상에서 실행될 때, 상기 시스템으로 하여금, 적어도,
    현재 물리적 캡쳐 영역에 존재하고 있는 사용자를 나타내는 제1 이미지 - 상기 제1 이미지는, 캡쳐 장치로부터 수신되고 있음 - 에 기초하여 복수의 저장된 애니메이션들로부터 제1 애니메이션을 선택하게 하고,
    디스플레이 장치 상에서 상기 사용자의 비주얼 표현에 상기 제1 애니메이션을 적용하게 하고,
    상기 제1 이미지에 적어도 부분적으로 기초하여 식별되는 상기 사용자의 특성에 적어도 부분적으로 기초하여, 상기 복수의 저장된 애니메이션들 중 적어도 하나의 애니메이션을 업데이트하게 하고,
    상기 물리적 캡쳐 영역의 제2 이미지로부터 상기 사용자가 상기 물리적 캡쳐 영역 내에 위치해 있지 않다고 결정하는 것에 응답하여, 상기 물리적 캡쳐 영역 또는 또다른 물리적 캡쳐 영역 내의 상기 사용자를 나타내는 이전의 이미지로부터의 상기 사용자의 특성에 적어도 부분적으로 기초하여, 상기 복수의 저장된 애니메이션들 중 제2 애니메이션을 선택하게 하고,
    상기 사용자의 비주얼 표현이 만들어지는 컴퓨터 애플리케이션과 제2 사용자가 상호작용(interact)하고 있다고 결정하는 것에 응답하여, 상기 사용자가 상기 물리적 캡쳐 영역에 위치해있지 않은 동안 상기 사용자의 비주얼 표현을 애니메이션화 하기 위하여 상기 디스플레이 장치 상에서 상기 사용자의 비주얼 표현에 상기 제2 애니메이션을 적용하고, 상기 적용에 의해 상기 사용자의 비주얼 표현이 상기 제2 애니메이션 내의 상기 사용자의 특성에 따라 행동(behave)하도록 애니메이션화되도록 하게 하는 것인,
    시스템.
  14. 제13항에 있어서,
    상기 제1 애니메이션은 상기 물리적 캡쳐 영역에 존재하는 상기 사용자의 캡쳐 장치에 의해 현재 캡쳐된 데이터와 대응하지 않는 것인,
    시스템.
  15. 제13항에 있어서,
    상기 복수의 저장된 애니메이션들은 사전에 패키지화된(pre-packaged) 복수의 애니메이션들이고,
    상기 프로세서 상에서 실행될 때 상기 시스템으로 하여금 적어도 상기 복수의 저장된 애니메이션들 중 제2 애니메이션을 선택하게 하는 명령어들은 또한, 상기 시스템으로 하여금, 상기 사전에 패키지화된 복수의 애니메이션들로부터 상기 제2 애니메이션을 선택하게 하는 것인,
    시스템.
  16. 제13항에 있어서,
    상기 메모리는, 상기 프로세서 상에서 실행될 때, 상기 시스템으로 하여금, 적어도, 상기 복수의 저장된 애니메이션들 내의 상기 제1 애니메이션을 캡쳐 장치에 의해 캡쳐된 상기 사용자의 모션에 대응하도록 고쳐쓰게(rewrite) 하는 프로세서에 의해 실행가능한 명령어들을 더 보유하는 것인,
    시스템.
  17. 제16항에 있어서,
    상기 제1 애니메이션을 고쳐쓰게 하는 것은 상기 물리적 캡쳐 영역 내의 사용자의 제스처에 의해 개시(prompt)되는 것인,
    시스템.
  18. 제13항에 있어서,
    상기 사용자의 비주얼 표현은, 상기 사용자가 상기 물리적 캡쳐 영역에 존재하거나 상기 사용자의 비주얼 표현을 제어하는 것처럼 나타나도록 애니메이션화되는 것인,
    시스템.
KR1020127000902A 2009-07-13 2010-07-12 사용자로부터 학습된 입력을 통해 비주얼 표현을 활성화하는 방법 KR101700468B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/501,964 US9159151B2 (en) 2009-07-13 2009-07-13 Bringing a visual representation to life via learned input from the user
US12/501,964 2009-07-13
PCT/US2010/041637 WO2011008659A2 (en) 2009-07-13 2010-07-12 Bringing a visual representation to life via learned input from the user

Publications (2)

Publication Number Publication Date
KR20120052228A KR20120052228A (ko) 2012-05-23
KR101700468B1 true KR101700468B1 (ko) 2017-01-26

Family

ID=43427123

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127000902A KR101700468B1 (ko) 2009-07-13 2010-07-12 사용자로부터 학습된 입력을 통해 비주얼 표현을 활성화하는 방법

Country Status (9)

Country Link
US (1) US9159151B2 (ko)
EP (1) EP2454722A4 (ko)
JP (1) JP5632474B2 (ko)
KR (1) KR101700468B1 (ko)
CN (1) CN102473320B (ko)
BR (1) BR112012000698B1 (ko)
CA (1) CA2767788C (ko)
RU (1) RU2554548C2 (ko)
WO (1) WO2011008659A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020153526A1 (ko) * 2019-01-22 2020-07-30 ㈜티비스톰 Ai 개체에 대한 정보 수집 플랫폼 및 이를 통한 정보 수집 방법

Families Citing this family (113)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100292007A1 (en) 2007-06-26 2010-11-18 Nintendo Of America Inc. Systems and methods for control device including a movement detector
US20110162004A1 (en) * 2009-12-30 2011-06-30 Cevat Yerli Sensor device for a computer-controlled video entertainment system
US8484158B2 (en) 2010-02-01 2013-07-09 International Business Machines Corporation Managing information about avatars across virtual worlds
US8928579B2 (en) * 2010-02-22 2015-01-06 Andrew David Wilson Interacting with an omni-directionally projected display
US9060136B1 (en) * 2010-06-14 2015-06-16 Open Invention Network, Llc Advanced gameplay system
US9002885B2 (en) * 2010-09-16 2015-04-07 Disney Enterprises, Inc. Media playback in a virtual environment
US8797283B2 (en) * 2010-11-22 2014-08-05 Sony Computer Entertainment America Llc Method and apparatus for performing user-defined macros
JP5587800B2 (ja) 2011-01-12 2014-09-10 株式会社スクウェア・エニックス ネットワークゲームシステム、ゲーム装置、サーバ装置、及びプログラム
CN102609768A (zh) * 2011-01-19 2012-07-25 华晶科技股份有限公司 互动式学习系统及其方法
CN102614663A (zh) * 2011-01-30 2012-08-01 德信互动科技(北京)有限公司 多人游戏实现装置
JP4725936B1 (ja) * 2011-02-01 2011-07-13 有限会社Bond 入力支援装置、入力支援方法及びプログラム
CN106943742A (zh) * 2011-02-11 2017-07-14 漳州市爵晟电子科技有限公司 一种动作放大系统
US8761437B2 (en) * 2011-02-18 2014-06-24 Microsoft Corporation Motion recognition
US9857868B2 (en) * 2011-03-19 2018-01-02 The Board Of Trustees Of The Leland Stanford Junior University Method and system for ergonomic touch-free interface
US8702507B2 (en) 2011-04-28 2014-04-22 Microsoft Corporation Manual and camera-based avatar control
US9259643B2 (en) 2011-04-28 2016-02-16 Microsoft Technology Licensing, Llc Control of separate computer game elements
US20120295702A1 (en) * 2011-05-17 2012-11-22 Otero Joby R Optional animation sequences for character usage in a video game
US8217945B1 (en) 2011-09-02 2012-07-10 Metric Insights, Inc. Social annotation of a single evolving visual representation of a changing dataset
US9628843B2 (en) * 2011-11-21 2017-04-18 Microsoft Technology Licensing, Llc Methods for controlling electronic devices using gestures
US9250713B2 (en) * 2011-12-05 2016-02-02 Microsoft Technology Licensing, Llc Control exposure
US10013787B2 (en) * 2011-12-12 2018-07-03 Faceshift Ag Method for facial animation
WO2013097160A1 (en) * 2011-12-30 2013-07-04 Intel Corporation Interactive media systems
US9744440B1 (en) 2012-01-12 2017-08-29 Zynga Inc. Generating game configurations
US9349131B2 (en) * 2012-02-02 2016-05-24 Kodak Alaris Inc. Interactive digital advertising system
CN103369288B (zh) * 2012-03-29 2015-12-16 深圳市腾讯计算机系统有限公司 基于网络视频的即时通讯方法及系统
US10702773B2 (en) * 2012-03-30 2020-07-07 Videx, Inc. Systems and methods for providing an interactive avatar
WO2013152453A1 (en) * 2012-04-09 2013-10-17 Intel Corporation Communication using interactive avatars
US8471857B1 (en) * 2012-04-12 2013-06-25 Google Inc. Changing animation displayed to user
US9170667B2 (en) * 2012-06-01 2015-10-27 Microsoft Technology Licensing, Llc Contextual user interface
US9646200B2 (en) 2012-06-08 2017-05-09 Qualcomm Incorporated Fast pose detector
US9836590B2 (en) 2012-06-22 2017-12-05 Microsoft Technology Licensing, Llc Enhanced accuracy of user presence status determination
US10034049B1 (en) * 2012-07-18 2018-07-24 Google Llc Audience attendance monitoring through facial recognition
JP6218372B2 (ja) * 2012-11-25 2017-10-25 東芝メディカルシステムズ株式会社 X線診断用のジェスチャー検知支援システム、x線診断用のジェスチャー検知支援プログラム及びx線診断装置
CA3000969C (en) 2012-11-28 2021-08-10 Vrsim, Inc. Simulator for skill-oriented training
CN103871106A (zh) * 2012-12-14 2014-06-18 韩国电子通信研究院 利用人体模型的虚拟物拟合方法及虚拟物拟合服务系统
KR101707707B1 (ko) * 2012-12-14 2017-02-16 한국전자통신연구원 인체 모델을 이용한 가상 아이템 피팅 방법 및 가상 아이템의 피팅 서비스 제공 시스템
US20140191939A1 (en) * 2013-01-09 2014-07-10 Microsoft Corporation Using nonverbal communication in determining actions
US9721587B2 (en) * 2013-01-24 2017-08-01 Microsoft Technology Licensing, Llc Visual feedback for speech recognition system
ITPE20130004A1 (it) * 2013-03-05 2014-09-06 Blue Cinema Tv Sas Di Daniele Balda Cci & C Procedimento per la realizzazione di un¿interfaccia audiovisiva interattiva che riproduce esseri umani
US20140282273A1 (en) * 2013-03-15 2014-09-18 Glen J. Anderson System and method for assigning voice and gesture command areas
JP6325581B2 (ja) * 2013-03-15 2018-05-16 株式会社ソニー・インタラクティブエンタテインメント スケルタルアニメーションのユーザ生成記録
US9965553B2 (en) * 2013-05-29 2018-05-08 Philip Scott Lyren User agent with personality
US20150199017A1 (en) * 2014-01-10 2015-07-16 Microsoft Corporation Coordinated speech and gesture input
US9883138B2 (en) * 2014-02-26 2018-01-30 Microsoft Technology Licensing, Llc Telepresence experience
JP2015233188A (ja) 2014-06-09 2015-12-24 ソニー株式会社 情報処理装置、情報処理方法およびプログラム
WO2016036338A1 (en) * 2014-09-02 2016-03-10 Echostar Ukraine, L.L.C. Detection of items in a home
US9830728B2 (en) 2014-12-23 2017-11-28 Intel Corporation Augmented facial animation
EP3410399A1 (en) 2014-12-23 2018-12-05 Intel Corporation Facial gesture driven animation of non-facial features
CN107209953A (zh) 2014-12-23 2017-09-26 英特尔公司 用于渲染3d模型化身的略图选择
EP3037916B1 (en) * 2014-12-24 2021-02-24 Nokia Technologies Oy Monitoring
US10200824B2 (en) * 2015-05-27 2019-02-05 Apple Inc. Systems and methods for proactively identifying and surfacing relevant content on a touch-sensitive device
JP6718169B2 (ja) * 2015-07-07 2020-07-08 学校法人幾徳学園 情報提示システム、情報提示装置及びプログラム
US20180144651A1 (en) * 2015-07-13 2018-05-24 Mardoche Abdelhak Teaching method using pupil's own likeness as a virtual teacher
WO2017019530A1 (en) * 2015-07-24 2017-02-02 Silver Curve Games, Inc. Augmented reality rhythm game
US9443192B1 (en) 2015-08-30 2016-09-13 Jasmin Cosic Universal artificial intelligence engine for autonomous computing devices and software applications
CN105214309B (zh) * 2015-10-10 2017-07-11 腾讯科技(深圳)有限公司 一种信息处理方法、终端及计算机存储介质
WO2017101094A1 (en) 2015-12-18 2017-06-22 Intel Corporation Avatar animation system
US10664741B2 (en) 2016-01-14 2020-05-26 Samsung Electronics Co., Ltd. Selecting a behavior of a virtual agent
US9582762B1 (en) 2016-02-05 2017-02-28 Jasmin Cosic Devices, systems, and methods for learning and using artificially intelligent interactive memories
WO2017137948A1 (en) * 2016-02-10 2017-08-17 Vats Nitin Producing realistic body movement using body images
US9919217B2 (en) 2016-03-08 2018-03-20 Electronic Arts Inc. Dynamic difficulty adjustment
US10068612B2 (en) 2016-04-08 2018-09-04 DISH Technologies L.L.C. Systems and methods for generating and presenting virtual experiences
US10086267B2 (en) * 2016-08-12 2018-10-02 Microsoft Technology Licensing, Llc Physical gesture input configuration for interactive software and video games
US9864933B1 (en) 2016-08-23 2018-01-09 Jasmin Cosic Artificially intelligent systems, devices, and methods for learning and/or using visual surrounding for autonomous object operation
US10452974B1 (en) 2016-11-02 2019-10-22 Jasmin Cosic Artificially intelligent systems, devices, and methods for learning and/or using a device's circumstances for autonomous device operation
KR101711041B1 (ko) * 2016-11-08 2017-03-14 주식회사 리얼야구존 투구 모드를 이용한 스크린 야구 진행 방법
US10607134B1 (en) 2016-12-19 2020-03-31 Jasmin Cosic Artificially intelligent systems, devices, and methods for learning and/or using an avatar's circumstances for autonomous avatar operation
US10384133B1 (en) 2016-12-30 2019-08-20 Electronic Arts Inc. Systems and methods for automatically measuring a video game difficulty
US10357718B2 (en) 2017-02-28 2019-07-23 Electronic Arts Inc. Realtime dynamic modification and optimization of gameplay parameters within a video game application
JP2018144424A (ja) * 2017-03-08 2018-09-20 コニカミノルタ株式会社 画像形成システム、画像形成システムの制御方法及び画像形成システムの制御プログラム
US10228760B1 (en) 2017-05-23 2019-03-12 Visionary Vr, Inc. System and method for generating a virtual reality scene based on individual asynchronous motion capture recordings
US10102449B1 (en) * 2017-11-21 2018-10-16 Jasmin Cosic Devices, systems, and methods for use in automation
US10474934B1 (en) * 2017-11-26 2019-11-12 Jasmin Cosic Machine learning for computing enabled systems and/or devices
US10916059B2 (en) * 2017-12-06 2021-02-09 Universal City Studios Llc Interactive video game system having an augmented virtual representation
US10653957B2 (en) 2017-12-06 2020-05-19 Universal City Studios Llc Interactive video game system
US10402731B1 (en) * 2017-12-15 2019-09-03 Jasmin Cosic Machine learning for computer generated objects and/or applications
US10726248B2 (en) * 2018-02-01 2020-07-28 Ford Global Technologies, Llc Validating gesture recognition capabilities of automated systems
WO2019183485A1 (en) * 2018-03-22 2019-09-26 Infinite Kingdoms Llc Connected avatar technology
EP3782549A4 (en) * 2018-04-17 2021-11-10 Sony Group Corporation PROGRAM, INFORMATION PROCESSING DEVICE, AND INFORMATION PROCESSING PROCESS
US10776979B2 (en) 2018-05-31 2020-09-15 Microsoft Technology Licensing, Llc Virtual skeleton based on computing device capability profile
US10713543B1 (en) 2018-06-13 2020-07-14 Electronic Arts Inc. Enhanced training of machine learning systems based on automatically generated realistic gameplay information
US20210166461A1 (en) * 2018-07-04 2021-06-03 Web Assistants Gmbh Avatar animation
US20200019242A1 (en) * 2018-07-12 2020-01-16 Microsoft Technology Licensing, Llc Digital personal expression via wearable device
JP6718933B2 (ja) * 2018-09-11 2020-07-08 株式会社コロプラ プログラム、情報処理装置、および方法
US10636218B2 (en) * 2018-09-24 2020-04-28 Universal City Studios Llc Augmented reality for an amusement ride
US10832040B2 (en) 2018-09-28 2020-11-10 International Business Machines Corporation Cognitive rendering of inputs in virtual reality environments
US10818090B2 (en) * 2018-12-28 2020-10-27 Universal City Studios Llc Augmented reality system for an amusement ride
JP7094216B2 (ja) * 2018-12-28 2022-07-01 グリー株式会社 配信ユーザの動きに基づいて生成されるキャラクタオブジェクトのアニメーションを含む動画をライブ配信する動画配信システム、動画配信方法及び動画配信プログラム
US10984575B2 (en) 2019-02-06 2021-04-20 Snap Inc. Body pose estimation
US11276216B2 (en) * 2019-03-27 2022-03-15 Electronic Arts Inc. Virtual animal character generation from image or video data
US10953334B2 (en) 2019-03-27 2021-03-23 Electronic Arts Inc. Virtual character generation from image or video data
JP7418975B2 (ja) 2019-06-07 2024-01-22 株式会社日本総合研究所 情報処理装置
US20220237849A1 (en) * 2019-06-28 2022-07-28 Tobii Ab Method and system for reducing processor load in a computer
CN110215683A (zh) * 2019-07-11 2019-09-10 龙马智芯(珠海横琴)科技有限公司 一种角色模仿游戏的电子游戏系统
JP7244390B2 (ja) * 2019-08-22 2023-03-22 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置、情報処理方法およびプログラム
KR20190104928A (ko) * 2019-08-22 2019-09-11 엘지전자 주식회사 Xr 디바이스 및 xr 디바이스 제어 방법
CN110599573B (zh) * 2019-09-03 2023-04-11 电子科技大学 一种基于单目相机的人脸实时交互动画的实现方法
JP7257349B2 (ja) * 2020-03-10 2023-04-13 Kddi株式会社 対象人物の特徴的な身振りを推定するプログラム、装置及び方法
US11615592B2 (en) 2020-10-27 2023-03-28 Snap Inc. Side-by-side character animation from realtime 3D body motion capture
US11660022B2 (en) 2020-10-27 2023-05-30 Snap Inc. Adaptive skeletal joint smoothing
US11463657B1 (en) 2020-11-10 2022-10-04 Know Systems Corp. System and method for an interactive digitally rendered avatar of a subject person
US11140360B1 (en) 2020-11-10 2021-10-05 Know Systems Corp. System and method for an interactive digitally rendered avatar of a subject person
US11582424B1 (en) 2020-11-10 2023-02-14 Know Systems Corp. System and method for an interactive digitally rendered avatar of a subject person
US11734894B2 (en) 2020-11-18 2023-08-22 Snap Inc. Real-time motion transfer for prosthetic limbs
US11450051B2 (en) * 2020-11-18 2022-09-20 Snap Inc. Personalized avatar real-time motion capture
US11748931B2 (en) 2020-11-18 2023-09-05 Snap Inc. Body animation sharing and remixing
US11854137B2 (en) 2021-01-22 2023-12-26 Hytto Pte. Ltd. Method and system for simulating a virtual performance using virtual characters for content viewers
CN113058260B (zh) * 2021-04-22 2024-02-02 杭州当贝网络科技有限公司 基于玩家画像的体感动作识别方法、系统及存储介质
US20240096033A1 (en) * 2021-10-11 2024-03-21 Meta Platforms Technologies, Llc Technology for creating, replicating and/or controlling avatars in extended reality
US11880947B2 (en) 2021-12-21 2024-01-23 Snap Inc. Real-time upper-body garment exchange
US11527032B1 (en) 2022-04-11 2022-12-13 Mindshow Inc. Systems and methods to generate and utilize content styles for animation
US20230370692A1 (en) * 2022-05-14 2023-11-16 Dish Network Technologies India Private Limited Customized content delivery
WO2024014266A1 (ja) * 2022-07-13 2024-01-18 ソニーグループ株式会社 制御装置、制御方法、情報処理装置、情報処理方法、およびプログラム

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090044113A1 (en) * 2007-08-07 2009-02-12 Jones Scott T Creating a Customized Avatar that Reflects a User's Distinguishable Attributes

Family Cites Families (217)

* 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
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
DE69229474T2 (de) 1991-12-03 2000-03-02 French Sportech Corp Interaktives videosystem zur beobachtung und zum training der leistungsfähigkeit einer person
US5875108A (en) 1991-12-23 1999-02-23 Hoffberg; Steven M. Ergonomic man-machine interface incorporating adaptive pattern recognition based control system
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
JPH0844490A (ja) 1994-07-28 1996-02-16 Matsushita Electric Ind Co Ltd インターフェイス装置
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
JP3481631B2 (ja) 1995-06-07 2003-12-22 ザ トラスティース オブ コロンビア ユニヴァーシティー イン ザ シティー オブ ニューヨーク 能動型照明及びデフォーカスに起因する画像中の相対的なぼけを用いる物体の3次元形状を決定する装置及び方法
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
IL114278A (en) * 1995-06-22 2010-06-16 Microsoft Internat Holdings B Camera and method
CN100524015C (zh) * 1995-06-22 2009-08-05 3Dv系统有限公司 生成距景物距离的图象的方法和装置
US5702323A (en) 1995-07-26 1997-12-30 Poulton; Craig K. Electronic exercise enhancer
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
US6430997B1 (en) 1995-11-06 2002-08-13 Trazer Technologies, Inc. System and method for tracking and assessing movement skills in multidimensional space
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
US6183364B1 (en) * 1995-12-21 2001-02-06 Karen I. Trovato Simulated environment using procedural animation in a simulated city
US5641288A (en) * 1996-01-11 1997-06-24 Zaenglein, Jr.; William G. Shooting simulating process and training device using a virtual reality display screen
JP2000510013A (ja) 1996-05-08 2000-08-08 リアル ヴィジョン コーポレイション 位置検出を用いたリアルタイムシミュレーション
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 ラティポフ,ヌラフメド,ヌリスラモビチ 空間内のユーザの位置及び方向性を追跡及び表示するための方法、ユーザに対し仮想環境を提示するための方法及びこれらの方法を実現するためのシステム
JP3064928B2 (ja) 1996-09-20 2000-07-12 日本電気株式会社 被写体抽出方式
DE69626208T2 (de) 1996-12-20 2003-11-13 Hitachi Europ Ltd Verfahren und System zur Erkennung von Handgesten
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
US6289112B1 (en) 1997-08-22 2001-09-11 International Business Machines Corporation System and method for determining block direction in fingerprint images
US6720949B1 (en) 1997-08-22 2004-04-13 Timothy R. Pryor Man machine interfaces and applications
AUPO894497A0 (en) 1997-09-02 1997-09-25 Xenotech Research Pty Ltd Image processing method and apparatus
WO1999015863A1 (en) 1997-09-24 1999-04-01 3Dv Systems, Ltd. Acoustical imaging system
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
AU1099899A (en) 1997-10-15 1999-05-03 Electric Planet, Inc. Method and apparatus for performing a clean background subtraction
US6130677A (en) 1997-10-15 2000-10-10 Electric Planet, Inc. Interactive computer vision system
US6101289A (en) 1997-10-15 2000-08-08 Electric Planet, Inc. Method and apparatus for unencumbered capture of an object
AU9808298A (en) 1997-10-15 1999-05-03 Electric Planet, Inc. A system and method for generating an animatable character
US6072494A (en) 1997-10-15 2000-06-06 Electric Planet, Inc. Method and apparatus for real-time gesture recognition
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
JP2002516121A (ja) 1998-03-03 2002-06-04 アリーナ, インコーポレイテッド 多次元空間における運動技術を追跡し、そして評価するためのシステムおよび方法
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
AU5106499A (en) 1998-07-17 2000-02-07 Franklin Institute, The A system containing a multi-user virtual learning environment
US6801637B2 (en) 1999-08-10 2004-10-05 Cybernet Systems Corporation Optical body tracker
US7036094B1 (en) 1998-08-10 2006-04-25 Cybernet Systems Corporation Behavior recognition system
US6950534B2 (en) * 1998-08-10 2005-09-27 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
US7121946B2 (en) 1998-08-10 2006-10-17 Cybernet Systems Corporation Real-time head tracking system for computer games and other applications
US6681031B2 (en) 1998-08-10 2004-01-20 Cybernet Systems Corporation Gesture-controlled interfaces for self-service machines and other applications
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
US6501515B1 (en) * 1998-10-13 2002-12-31 Sony Corporation Remote control system
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
WO2000036372A1 (en) 1998-12-16 2000-06-22 3Dv Systems, Ltd. Self gating photosurface
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
US6614422B1 (en) 1999-11-04 2003-09-02 Canesta, Inc. Method and apparatus for entering data using a virtual input device
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
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
WO2001018563A1 (en) * 1999-09-08 2001-03-15 3Dv Systems, Ltd. 3d imaging system
US6512838B1 (en) * 1999-09-22 2003-01-28 Canesta, Inc. Methods for enhancing performance and data acquired from three-dimensional image systems
US6690618B2 (en) 2001-04-03 2004-02-10 Canesta, Inc. Method and apparatus for approximating a source position of a sound-causing event for determining an input used in operating an electronic device
US7050177B2 (en) * 2002-05-22 2006-05-23 Canesta, Inc. Method and apparatus for approximating depth of an object's placement onto a monitored region with applications to virtual interface devices
US7006236B2 (en) * 2002-05-22 2006-02-28 Canesta, Inc. Method and apparatus for approximating depth of an object's placement onto a monitored region with applications to virtual interface devices
US20030132950A1 (en) 2001-11-27 2003-07-17 Fahri Surucu Detecting, classifying, and interpreting input events based on stimuli in multiple sensory domains
JP2001229398A (ja) 1999-11-24 2001-08-24 Fuji Xerox Co Ltd パフォーマンス動画ジェスチャーの取得及び動画キャラクター上での再生方法及び装置
DE19960180B4 (de) * 1999-12-14 2006-03-09 Rheinmetall W & M Gmbh Verfahren zur Herstellung eines Sprenggeschosses
US6674877B1 (en) * 2000-02-03 2004-01-06 Microsoft Corporation System and method for visually tracking occluded objects in real time
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
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
US6545682B1 (en) * 2000-05-24 2003-04-08 There, Inc. Method and apparatus for creating and customizing avatars using genetic paradigm
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
US7227526B2 (en) 2000-07-24 2007-06-05 Gesturetek, Inc. Video-based image control system
US7319992B2 (en) * 2000-09-25 2008-01-15 The Mission Corporation Method and apparatus for delivering a virtual reality environment
US7058204B2 (en) 2000-10-03 2006-06-06 Gesturetek, Inc. Multiple camera control system
JP3725460B2 (ja) * 2000-10-06 2005-12-14 株式会社ソニー・コンピュータエンタテインメント 画像処理装置、画像処理方法、記録媒体、コンピュータプログラム、半導体デバイス
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
WO2002037471A2 (en) * 2000-11-03 2002-05-10 Zoesis, Inc. Interactive character system
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
AU2002315456A1 (en) 2001-06-22 2003-01-08 Canesta, Inc. Method and system to display a virtual input device
JP3420221B2 (ja) 2001-06-29 2003-06-23 株式会社コナミコンピュータエンタテインメント東京 ゲーム装置及びプログラム
US6937742B2 (en) 2001-09-28 2005-08-30 Bellsouth Intellectual Property Corporation Gesture activated home appliance
US20030165048A1 (en) 2001-12-07 2003-09-04 Cyrus Bamji Enhanced light-generated interface for use with electronic devices
WO2003071410A2 (en) 2002-02-15 2003-08-28 Canesta, Inc. Gesture recognition system using depth perceptive sensors
US20030169906A1 (en) 2002-02-26 2003-09-11 Gokturk Salih Burak Method and apparatus for recognizing objects
US7310431B2 (en) * 2002-04-10 2007-12-18 Canesta, Inc. Optical methods for remotely measuring objects
US7607509B2 (en) 2002-04-19 2009-10-27 Iee International Electronics & Engineering S.A. Safety device for a vehicle
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
US7348963B2 (en) 2002-05-28 2008-03-25 Reactrix Systems, Inc. Interactive video display system
US7489812B2 (en) 2002-06-07 2009-02-10 Dynamic Digital Depth Research Pty Ltd. Conversion and encoding techniques
US7646372B2 (en) * 2003-09-15 2010-01-12 Sony Computer Entertainment Inc. Methods and systems for enabling direction detection when interfacing with a computer program
US7623115B2 (en) 2002-07-27 2009-11-24 Sony Computer Entertainment Inc. Method and apparatus for light input device
US7883415B2 (en) 2003-09-15 2011-02-08 Sony Computer Entertainment Inc. Method and apparatus for adjusting a view of a scene being displayed according to tracked head motion
US7151530B2 (en) * 2002-08-20 2006-12-19 Canesta, Inc. System and method for determining an input selected by a user through a virtual interface
US7576727B2 (en) 2002-12-13 2009-08-18 Matthew Bell Interactive directed light/sound system
JP4235729B2 (ja) 2003-02-03 2009-03-11 国立大学法人静岡大学 距離画像センサ
DE602004006190T8 (de) 2003-03-31 2008-04-10 Honda Motor Co., Ltd. Vorrichtung, Verfahren und Programm zur Gestenerkennung
US8072470B2 (en) 2003-05-29 2011-12-06 Sony Computer Entertainment Inc. System and method for providing a real-time three-dimensional interactive environment
JP4355341B2 (ja) * 2003-05-29 2009-10-28 本田技研工業株式会社 深度データを用いたビジュアルトラッキング
EP3190546A3 (en) 2003-06-12 2017-10-04 Honda Motor Co., Ltd. Target orientation estimation using depth sensing
US7090576B2 (en) * 2003-06-30 2006-08-15 Microsoft Corporation Personalized behavior of computer controlled avatars in a virtual reality environment
KR100680191B1 (ko) 2003-09-05 2007-02-08 삼성전자주식회사 감정 있는 에이전트를 갖는 사전 행동적 사용자 인터페이스 시스템
US7874917B2 (en) * 2003-09-15 2011-01-25 Sony Computer Entertainment Inc. Methods and systems for enabling depth and direction detection when interfacing with a computer program
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
JP3847753B2 (ja) * 2004-01-30 2006-11-22 株式会社ソニー・コンピュータエンタテインメント 画像処理装置、画像処理方法、記録媒体、コンピュータプログラム、半導体デバイス
WO2005104010A2 (en) 2004-04-15 2005-11-03 Gesture Tek, Inc. Tracking bimanual movements
US7308112B2 (en) * 2004-05-14 2007-12-11 Honda Motor Co., Ltd. Sign based human-machine interaction
US7704135B2 (en) 2004-08-23 2010-04-27 Harrison Jr Shelton E Integrated game system, method, and device
WO2006025137A1 (ja) * 2004-09-01 2006-03-09 Sony Computer Entertainment Inc. 画像処理装置、ゲーム装置および画像処理方法
EP1645944B1 (en) * 2004-10-05 2012-08-15 Sony France S.A. A content-management interface
JP4449723B2 (ja) 2004-12-08 2010-04-14 ソニー株式会社 画像処理装置、画像処理方法、およびプログラム
KR20060070280A (ko) 2004-12-20 2006-06-23 한국전자통신연구원 손 제스처 인식을 이용한 사용자 인터페이스 장치 및 그방법
EP2487624B1 (en) 2005-01-07 2020-02-19 Qualcomm Incorporated(1/3) Detecting and tracking objects in images
CN101198964A (zh) 2005-01-07 2008-06-11 格斯图尔泰克股份有限公司 使用红外图案照射创建对象的三维图像
EP1849123A2 (en) 2005-01-07 2007-10-31 GestureTek, Inc. Optical flow based tilt sensor
US8009871B2 (en) 2005-02-08 2011-08-30 Microsoft Corporation Method and system to segment depth images and to detect shapes in three-dimensionally acquired data
US7598942B2 (en) 2005-02-08 2009-10-06 Oblong Industries, Inc. System and method for gesture based control system
KR100688743B1 (ko) * 2005-03-11 2007-03-02 삼성전기주식회사 멀티 레이어 커패시터 내장형의 인쇄회로기판의 제조방법
JP4686595B2 (ja) * 2005-03-17 2011-05-25 本田技研工業株式会社 クリティカルポイント解析に基づくポーズ推定
BRPI0613165A2 (pt) 2005-05-17 2010-12-21 Gesturetek Inc saìda de sinal sensìvel à orientação
EP1752748B1 (en) 2005-08-12 2008-10-29 MESA Imaging AG Highly sensitive, fast pixel for use in an image sensor
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
GB2431717A (en) * 2005-10-31 2007-05-02 Sony Uk Ltd Scene analysis
US7433024B2 (en) * 2006-02-27 2008-10-07 Prime Sense Ltd. Range mapping using speckle decorrelation
US8766983B2 (en) * 2006-05-07 2014-07-01 Sony Computer Entertainment Inc. Methods and systems for processing an interchange of real time effects during video communication
US7721207B2 (en) * 2006-05-31 2010-05-18 Sony Ericsson Mobile Communications Ab Camera based control
US20080091692A1 (en) * 2006-06-09 2008-04-17 Christopher Keith Information collection in multi-participant online communities
US7701439B2 (en) 2006-07-13 2010-04-20 Northrop Grumman Corporation Gesture recognition simulation system and method
US8395658B2 (en) * 2006-09-07 2013-03-12 Sony Computer Entertainment Inc. Touch screen-like user interface that does not require actual touching
JP5395323B2 (ja) 2006-09-29 2014-01-22 ブレインビジョン株式会社 固体撮像素子
WO2008067413A2 (en) * 2006-11-28 2008-06-05 Attune Interactive, Inc. Training system using an interactive prompt character
US20080134102A1 (en) * 2006-12-05 2008-06-05 Sony Ericsson Mobile Communications Ab Method and system for detecting movement of an object
US8351646B2 (en) * 2006-12-21 2013-01-08 Honda Motor Co., Ltd. Human pose estimation and tracking using label assignment
US7412077B2 (en) 2006-12-29 2008-08-12 Motorola, Inc. Apparatus and methods for head pose estimation and head gesture detection
US8144148B2 (en) * 2007-02-08 2012-03-27 Edge 3 Technologies Llc Method and system for vision-based interaction in a virtual environment
US20080215994A1 (en) * 2007-03-01 2008-09-04 Phil Harrison Virtual world avatar control, interactivity and communication interactive messaging
GB0703974D0 (en) * 2007-03-01 2007-04-11 Sony Comp Entertainment Europe Entertainment device
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
WO2008115234A1 (en) 2007-03-20 2008-09-25 John Caporale A system and method for control and training of avatars in an interactive environment
US7814041B2 (en) * 2007-03-20 2010-10-12 Caporale John L System and method for control and training of avatars in an interactive environment
US20080231686A1 (en) * 2007-03-22 2008-09-25 Attune Interactive, Inc. (A Delaware Corporation) Generation of constructed model for client runtime player using motion points sent over a network
US7852262B2 (en) 2007-08-16 2010-12-14 Cybernet Systems Corporation Wireless mobile indoor/outdoor tracking system
WO2009059065A1 (en) 2007-10-30 2009-05-07 Hewlett-Packard Development Company, L.P. Interactive display system with collaborative gesture detection
US20090221368A1 (en) * 2007-11-28 2009-09-03 Ailive Inc., Method and system for creating a shared game space for a networked game
GB2455316B (en) * 2007-12-04 2012-08-15 Sony Corp Image processing apparatus and method
US8149210B2 (en) * 2007-12-31 2012-04-03 Microsoft International Holdings B.V. Pointing device and method
CN201254344Y (zh) 2008-08-20 2009-06-10 中国农业科学院草原研究所 植物标本及种子存贮器

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090044113A1 (en) * 2007-08-07 2009-02-12 Jones Scott T Creating a Customized Avatar that Reflects a User's Distinguishable Attributes

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Marc A. Smith ET AL., The social life of small graphical chat spaces, CHI '00 Proceedings of the SIGCHI conference on Human Factors in Computing Systems, 2000-04-01, 462-469P*

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020153526A1 (ko) * 2019-01-22 2020-07-30 ㈜티비스톰 Ai 개체에 대한 정보 수집 플랫폼 및 이를 통한 정보 수집 방법

Also Published As

Publication number Publication date
RU2554548C2 (ru) 2015-06-27
CN102473320B (zh) 2014-09-10
EP2454722A4 (en) 2017-03-01
WO2011008659A2 (en) 2011-01-20
RU2012101115A (ru) 2013-07-20
EP2454722A2 (en) 2012-05-23
KR20120052228A (ko) 2012-05-23
US20110007079A1 (en) 2011-01-13
WO2011008659A3 (en) 2011-03-31
CA2767788A1 (en) 2011-01-20
JP2012533134A (ja) 2012-12-20
CA2767788C (en) 2018-03-06
BR112012000698A2 (pt) 2016-02-16
BR112012000698B1 (pt) 2020-12-15
JP5632474B2 (ja) 2014-11-26
CN102473320A (zh) 2012-05-23
US9159151B2 (en) 2015-10-13

Similar Documents

Publication Publication Date Title
KR101700468B1 (ko) 사용자로부터 학습된 입력을 통해 비주얼 표현을 활성화하는 방법
KR101704848B1 (ko) 플레이어의 표현에 기반하는 비주얼 표현의 표현 방법
US9824480B2 (en) Chaining animations
KR101855639B1 (ko) 프리젠테이션을 위한 카메라 탐색
US9245177B2 (en) Limiting avatar gesture display
US20100302138A1 (en) Methods and systems for defining or modifying a visual representation
US20100306716A1 (en) Extending standard gestures

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
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: 20191217

Year of fee payment: 4