KR20140068855A - 공간 입력 장치를 위한 적응적 추적 시스템 - Google Patents
공간 입력 장치를 위한 적응적 추적 시스템 Download PDFInfo
- Publication number
- KR20140068855A KR20140068855A KR1020147001977A KR20147001977A KR20140068855A KR 20140068855 A KR20140068855 A KR 20140068855A KR 1020147001977 A KR1020147001977 A KR 1020147001977A KR 20147001977 A KR20147001977 A KR 20147001977A KR 20140068855 A KR20140068855 A KR 20140068855A
- Authority
- KR
- South Korea
- Prior art keywords
- pose
- tag
- data
- sensors
- sensor
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/017—Gesture based interaction, e.g. based on a set of recognized hand gestures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/0304—Detection arrangements using opto-electronic means
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Image Analysis (AREA)
- Length Measuring Devices By Optical Means (AREA)
Abstract
공간 입력 장치를 위한 적응적 추적 시스템은 공간 운영 환경(SOE: Spatial Operating Environment)에서의 인간-컴퓨터 상호대화를 위한 공간 입력 장치의 실시간 추적을 제공한다. SOE의 구성요소는 제스처 입/출력과, 네트워크-기반 데이터 표현, 전송, 및 교환과, 공간적으로 일치하는 디스플레이 메시를 포함한다. 상기 SOE는 하나 이상의 사용자에 의해 점유되는 작업공간, 사용자에게 시각적 피드백을 제공하는 스크린의 세트, 및 사용자 모션을 명령어 입력으로 변환하는 제스처 제어 시스템을 포함한다. 사용자는 신체 부분 및/또는 물리적 포인팅 장치를 이용해 제스처를 수행하고, 시스템은 이들 제스처를 액션, 가령, 가리키기, 끌기, 선택하기, 또는 그 밖의 다른 직접 조작으로 변환한다. 상기 추적 시스템은 작업공간 내 사용자, 스크린, 포인팅 장치, 및 그 밖의 다른 물리적 물체들 간의 공간적 관계의 모델을 유지함으로써, 몰입 환경을 만들기 위한 필수적인 데이터를 제공한다.
Description
발명자:
앰브루스 사스자
디마 코간
폴 야린
관련 출원
이 출원은 2011년 06월 23일에 출원된 미국 특허 출원 제61/500,416호의 이익을 주장한다.
이 출원은 미국 특허 출원 제12/572,689호, 제12/572,698호, 제12/109,263호, 제12/417,252호, 제12/487,623호, 제12/553,845호, 제12/553,902호, 제12/553,929호, 제12/557,464호, 제12/579,340호, 제12/579,354호, 제12/579,372호, 제12/773,605호, 제12/773,667호, 제12/789,129호, 제12/789,262호, 제12/789,302호, 제13/430,509호, 및 제13/430,626호의 일부 계속 출원이다 .
기술 분야
실시예들은 시스템 및 장치를 제어하는 것과 관련하여 기재되며, 더 구체적으로, 비전-기반 추적 시스템(vision-based tracking system)에서의 검출 및 초기화를 위한 것이다.
배경기술
공간 운영 환경(SOE: Spatial Operating Environment)에서 인간-컴퓨터 상호대화(HCI: human-computer interaction)를 위한 공간 입력 장치의 실시간 추적을 제공하는 공간 입력 장치를 위한 적응적 추적 시스템(adaptive tracking system)에 대한 필요성이 존재한다.
참조에 의한 포함
본 명세서에 포함된 각각의 특허, 특허 출원, 및/또는 간행물은 각각의 개별 특허, 특허 출원, 및/또는 간행물이 특정하고 개별적으로 참조로서 포함된다고 지시되는 것처럼, 그 전체가 참조로서 본원에 포함된다.
도 1A는 하나의 실시예에 따르는 공간 운영 환경(SOE)의 블록도이다.
도 1B는 하나의 실시예에 따르는 모션 추적 시스템의 블록도이다.
도 1C는 하나의 실시예에 따르는 2개의 병렬 LPT를 포함하는 8-마커 태그를 도시한다.
도 1D는 하나의 실시예에 따르는 실시간 추적의 흐름도이다.
도 2는 하나의 실시예에 따르는 마킹 태그의 다이어그램이다.
도 3은 하나의 실시예에 따르는 제스처 어휘에서의 포즈의 다이어그램이다.
도 4는 하나의 실시예에 따르는 제스처 어휘에서의 배향의 다어그램이다.
도 5는 하나의 실시예에 따르는 제스처 어휘에서의 양 손 조합의 다이어그램이다.
도 6은 하나의 실시예에 따르는 제스처 어휘에서의 배향 혼합의 다이어그램이다.
도 7은 하나의 실시예에 따르는 시스템 동작의 흐름도이다.
도 8/1 및 8/2는 하나의 실시예에 따르는 예시적 명령어를 도시한다.
도 9는 하나의 실시예에 따르는 슬러(slow), 프로틴(protein) 및 풀(pool)을 이용한 데이터 표현을 포함하는 프로세싱 환경의 블록도이다.
도 10은 하나의 실시예에 따르는 프로틴의 블록도이다.
도 11은 하나의 실시예에 따르는 descrip(디스크립)의 블록도이다.
도 12는 하나의 실시예에 따르는 ingest(입수)의 블록도이다.
도 13은 하나의 실시예에 따르는 슬러의 블록도이다.
도 14A는 하나의 실시예에 따르는 풀에서의 하나의 프로틴의 블록도이다.
도 14B1 및 14B2는 하나의 실시예에 따르는 슬러 헤더 포맷을 도시한다.
도 14C는 하나의 실시예에 따르는 프로틴을 이용하기 위한 흐름도이다.
도 14D는 하나의 실시예에 따르는 프로틴을 구성 또는 생성하기 위한 흐름도이다.
도 15는 하나의 실시예에 따르는 슬러, 프로틴, 및 풀을 이용한 데이터 교환을 포함하는 프로세싱 환경의 블록도이다.
도 16은 하나의 실시예에 따르는 복수의 장치 및 상기 장치 중 하나 이상에서 실행되는 복수의 프로그램을 포함하는 프로세싱 환경의 블록도이며, 여기서, 플라스마 구성체(즉, 풀, 프로틴, 및 슬러)는 많은 실행 프로그램이 장치에 의해 발생되는 이벤트를 공유하고 이에 다함께 응답할 수 있도록 사용된다.
도 17은 하나의 대안적 실시예에 따르는 복수의 장치 및 상기 장치 중 하나 이상에서 실행되는 복수의 프로그램을 포함하는 프로세싱 환경의 블록도이며, 여기서, 플라스마 구성체(즉, 풀, 프로틴, 및 슬러)는 많은 실행 프로그램이 장치에 의해 발생되는 이벤트를 공유하고 이에 다함께 응답할 수 있도록 사용된다.
도 18은 또 다른 대안적 실시예에 따라, 장치들 중 하나 이상 상에서 실행되는 복수의 프로그램들 사이에 연결된 복수의 입력 장치를 포함하는 프로세싱 환경의 블록도이며, 여기서 플라스마 구성체(즉, 풀, 프로틴, 및 슬러)가 많은 실행 프로그램이 장치에 의해 발생되는 이벤트를 공유하고 이에 다함께 응답할 수 있도록 사용된다.
도 19는 또 다른 대안적 실시예에서, 장치 중 하나 이상 상에서 실행 중인 다양한 프로그램들 간에 연결되어 있는 복수의 장치를 포함하는 프로세싱 환경의 블록도이며, 여기서, 플라스마 구성체(즉, 풀, 프로틴, 및 슬러)가 많은 실행 프로그램이 장치에 의해 발생되는 그래픽 이벤트를 공유하고 이에 다함께 응답할 수 있도록 사용된다.
도 20은 또 다른 대안적 실시예에 따라, 장치들 중 하나 이상 상에서 실행되는 복수의 프로그램들 간에 연결된 복수의 장치를 포함하는 프로세싱 환경의 블록도이며, 여기서, 플라스마 구성체(즉, 풀, 프로틴, 및 슬러)는 실행 프로그램의 상태기반 검사, 시각화, 및 디버깅을 가능하게 하도록 사용된다.
도 21은 또 다른 대안적 실시예에 따라, 장치들 중 하나 이상 상에서 실행되는 복수의 프로그램들에 연결된 복수의 장치를 포함하는 프로세싱 환경의 블록도이며, 여기서 플라스마 구성체(즉, 풀, 프로틴, 및 슬러)는 상기 프로세스 풀에서 생성되고 위치하는 상태 정보의 특성에 영향을 미치거나 이를 제어하는 것을 가능하게 하도록 사용된다.
도 22는 하나의 실시예에 따라, 봉(wand)-형상의 다중-모드 입력 장치(MMID)를 도시한다.
도 23은 하나의 실시예에 따르는,자기장 추적을 이용하는 MMID의 블록도이다.
도 24는 하나의 실시예에 따르는 추적 환경에서의 MMID의 블록도이다.
도 25A 및 25B는 하나의 실시예에 따르는 적외선(IR) 발광 다이오드(LED)(IR LED)를 갖는 MMID의 입력 상태를 도시한다.
도 26A 및 26B는 대안적 실시예에 따라, IR LED를 갖는 MMID의 입력 상태를 도시한다.
도 1B는 하나의 실시예에 따르는 모션 추적 시스템의 블록도이다.
도 1C는 하나의 실시예에 따르는 2개의 병렬 LPT를 포함하는 8-마커 태그를 도시한다.
도 1D는 하나의 실시예에 따르는 실시간 추적의 흐름도이다.
도 2는 하나의 실시예에 따르는 마킹 태그의 다이어그램이다.
도 3은 하나의 실시예에 따르는 제스처 어휘에서의 포즈의 다이어그램이다.
도 4는 하나의 실시예에 따르는 제스처 어휘에서의 배향의 다어그램이다.
도 5는 하나의 실시예에 따르는 제스처 어휘에서의 양 손 조합의 다이어그램이다.
도 6은 하나의 실시예에 따르는 제스처 어휘에서의 배향 혼합의 다이어그램이다.
도 7은 하나의 실시예에 따르는 시스템 동작의 흐름도이다.
도 8/1 및 8/2는 하나의 실시예에 따르는 예시적 명령어를 도시한다.
도 9는 하나의 실시예에 따르는 슬러(slow), 프로틴(protein) 및 풀(pool)을 이용한 데이터 표현을 포함하는 프로세싱 환경의 블록도이다.
도 10은 하나의 실시예에 따르는 프로틴의 블록도이다.
도 11은 하나의 실시예에 따르는 descrip(디스크립)의 블록도이다.
도 12는 하나의 실시예에 따르는 ingest(입수)의 블록도이다.
도 13은 하나의 실시예에 따르는 슬러의 블록도이다.
도 14A는 하나의 실시예에 따르는 풀에서의 하나의 프로틴의 블록도이다.
도 14B1 및 14B2는 하나의 실시예에 따르는 슬러 헤더 포맷을 도시한다.
도 14C는 하나의 실시예에 따르는 프로틴을 이용하기 위한 흐름도이다.
도 14D는 하나의 실시예에 따르는 프로틴을 구성 또는 생성하기 위한 흐름도이다.
도 15는 하나의 실시예에 따르는 슬러, 프로틴, 및 풀을 이용한 데이터 교환을 포함하는 프로세싱 환경의 블록도이다.
도 16은 하나의 실시예에 따르는 복수의 장치 및 상기 장치 중 하나 이상에서 실행되는 복수의 프로그램을 포함하는 프로세싱 환경의 블록도이며, 여기서, 플라스마 구성체(즉, 풀, 프로틴, 및 슬러)는 많은 실행 프로그램이 장치에 의해 발생되는 이벤트를 공유하고 이에 다함께 응답할 수 있도록 사용된다.
도 17은 하나의 대안적 실시예에 따르는 복수의 장치 및 상기 장치 중 하나 이상에서 실행되는 복수의 프로그램을 포함하는 프로세싱 환경의 블록도이며, 여기서, 플라스마 구성체(즉, 풀, 프로틴, 및 슬러)는 많은 실행 프로그램이 장치에 의해 발생되는 이벤트를 공유하고 이에 다함께 응답할 수 있도록 사용된다.
도 18은 또 다른 대안적 실시예에 따라, 장치들 중 하나 이상 상에서 실행되는 복수의 프로그램들 사이에 연결된 복수의 입력 장치를 포함하는 프로세싱 환경의 블록도이며, 여기서 플라스마 구성체(즉, 풀, 프로틴, 및 슬러)가 많은 실행 프로그램이 장치에 의해 발생되는 이벤트를 공유하고 이에 다함께 응답할 수 있도록 사용된다.
도 19는 또 다른 대안적 실시예에서, 장치 중 하나 이상 상에서 실행 중인 다양한 프로그램들 간에 연결되어 있는 복수의 장치를 포함하는 프로세싱 환경의 블록도이며, 여기서, 플라스마 구성체(즉, 풀, 프로틴, 및 슬러)가 많은 실행 프로그램이 장치에 의해 발생되는 그래픽 이벤트를 공유하고 이에 다함께 응답할 수 있도록 사용된다.
도 20은 또 다른 대안적 실시예에 따라, 장치들 중 하나 이상 상에서 실행되는 복수의 프로그램들 간에 연결된 복수의 장치를 포함하는 프로세싱 환경의 블록도이며, 여기서, 플라스마 구성체(즉, 풀, 프로틴, 및 슬러)는 실행 프로그램의 상태기반 검사, 시각화, 및 디버깅을 가능하게 하도록 사용된다.
도 21은 또 다른 대안적 실시예에 따라, 장치들 중 하나 이상 상에서 실행되는 복수의 프로그램들에 연결된 복수의 장치를 포함하는 프로세싱 환경의 블록도이며, 여기서 플라스마 구성체(즉, 풀, 프로틴, 및 슬러)는 상기 프로세스 풀에서 생성되고 위치하는 상태 정보의 특성에 영향을 미치거나 이를 제어하는 것을 가능하게 하도록 사용된다.
도 22는 하나의 실시예에 따라, 봉(wand)-형상의 다중-모드 입력 장치(MMID)를 도시한다.
도 23은 하나의 실시예에 따르는,자기장 추적을 이용하는 MMID의 블록도이다.
도 24는 하나의 실시예에 따르는 추적 환경에서의 MMID의 블록도이다.
도 25A 및 25B는 하나의 실시예에 따르는 적외선(IR) 발광 다이오드(LED)(IR LED)를 갖는 MMID의 입력 상태를 도시한다.
도 26A 및 26B는 대안적 실시예에 따라, IR LED를 갖는 MMID의 입력 상태를 도시한다.
본원에 기재된 실시예는 공간 운영 환경(SOE: Spatial Operating Environment)에서의 인간-컴퓨터 상호대화(HCI: human-computer interaction)를 위한 공간 입력 장치의 실시간 추적을 제공하는 공간 입력 장치를 위한 적응적 추적 시스템을 포함한다. 운영체제와 유사한 SOE의 구성요소는 제스처 입/출력과, 네트워크 기반 데이터 표현, 전송, 및 교환과, 공간 일치되는 디스플레이 메시(spatially conformed display mesh)를 포함한다. 상기 SOE는 하나 이상의 사용자에 의해 점유되는 작업공간, 사용자에게 시각적 피드백(visual feedback)을 제공하는 스크린의 세트, 및 사용자 모션을 명령어 입력으로 변환(translate)하는 제스처 제어 시스템을 포함한다. 사용자는 신체 부분 및/또는 물리적 포인팅 장치를 이용해 제스처를 수행하고, 시스템은 이들 제스처를 액션, 가령, 가리키기(pointing), 끌기(dragging), 선택하기(selecting), 또는 그 밖의 다른 직접 조작으로 변환한다. 추적 시스템은 상기 작업 공간 내 사용자, 스크린, 포인팅 장치, 및 그 밖의 다른 물리적 물체 간의 공간적 관계의 모델을 유지함으로써 몰입 환경을 만들기 위한 필수적인 데이터를 제공한다.
이하에서 상세히 기재될 SOE의 맥락에서 시스템 및 방법의 실시예가 제공된다. 일반적으로 도 1A는 하나의 실시예에 따르는 공간 운영 환경(SOE)의 블록도이다. 제스처 제어 시스템 및 제스처-기반 제어 시스템을 포함하는 상기 SOE는 또한 공간 사용자 인터페이스(SUI: Spatial User Interface) 또는 공간 인터페이스(SI: Spatial Interface)라고도 지칭될 수 있다. 본원에 기재될 때 추적(tracking)은 하나 이상의 공간 입력 장치의 위치를 검출 및 파악하는 프로세스를 포함한다. SOE 또는 그 밖의 다른 제스처 인터페이스의 맥락에서, 이러한 추적이 사용되어, 사용자가 시스템과 통신하려 시도하는 중일 때를 결정하고, 시간 확장된 제스처를 검출하고 인식하기 위해 필요한 기본 정보를 제공하며, 상호대화를 위해 실시간 제어 및 피드백을 가능하게 할 수 있다.
하나의 실시예의 적응적 추적 시스템은, 하나 이상의 사용자에 의해 점유되는 작업공간, 사용자에게 시각적 피드백을 제공하는 스크린의 세트, 및 사용자 모션을 명령어 입력으로 변환하는 제스처 제어 시스템을 포함하는 SOE에서의 인간-컴퓨터 상호대화를 위한 공간 입력 장치의 실시간 추적을 제공한다. 사용자는 신체 부분 및/또는 물리적 포인팅 장치를 이용해 제스처를 수행하고 상기 시스템은 이들 제스처를 액션, 가령, 가리키기(pointing), 끌기(dragging), 선택하기(selecting), 또는 그 밖의 다른 직접 조작으로 변환한다. 이러한 시스템의 기능과 목적이 본원에서 그리고 관련 출원에서 상세히 기재된다.
제스처 제어 시스템의 최하위 계층이 작업공간 내에서의 사용자의 모션을 추적하는 구성요소이다. 상기 추적 구성요소는 센서를 이용해 물리적 모션을 캡처하고 디지털화하여, 제스처 검출 및 변환 계층(gesture detection and translation layer)을 위한 토대를 제공할 수 있다.
물리적 모션을 캡처하기 위해 추적 구성요소가 카메라를 이용하는 카메라-기반 시스템은 모션 픽처 및 비디오 게임 산업에서 배우 및 물체의 3차원(3D) 모션을 디지털화하고 기록하기 위해 사용되어왔다. 카메라가 하드웨어 및 소프트웨어의 쉽게 액세스 가능한 세트를 제공하지만, 이러한 시스템은 HCI로의 직접 적용에 가장 적합한 것은 아닐 수 있는데, 이들은 견고한 카메라 장착, 넓은 카메라 오버랩 범위, 및/또는 많은 수의 카메라, 데이터를 캡처하도록 사용되기 전의 교정, 물체 추적을 초기화하기 위한 상당한 인간 개입, 및 때때로 데이터 불일치를 해소하기 위한 사후-프로세싱(post-processing) 단계를 필요로 하기 때문이다.
이와 달리, 컴퓨터 사용자는 그들의 입력 장치가 광범위한 설정 없이도 동작할 것을 기대할 수 있다. 예를 들어, 사용자는 주변기기(가령, 키보드 또는 마우스)를 자신의 개인 컴퓨터에 부착하고 이를 즉시 사용하기 시작할 수 있다. 하나의 실시예의 HCI를 위한 모션 추적 시스템은, 사용자에게 부담이 되는 과도한 설정 또는 유지관리 요건 없이, 유사한 방식으로 수행될 수 있다.
하나의 실시예의 추적 시스템 및 제스처 제어의 핵심은 일치하는 가상 및 물리 공간의 개념이며, 여기서, 시스템은 작업공간 내에서 스크린 상에 디스플레이되는 가상 정보가 단순히 물리적인 작업공간의 확장인 듯한 느낌을 만든다. 관련 출원은, 기본적인 가리키기(pointing), 스크린의 이동 또는 재위치설정을 위한 자동 보상, 사용자 위치에 따라 달라지는 그래픽, 및 온-스크린 디스플레이에 물체를 포함시키는 것(inclusion) 등을 포함하는 예시를 기재한다.
이러한 몰입 환경을 만들기 위해 필수적인 데이터를 제공하기 위해, 하나의 실시예의 추적 시스템은 작업공간 내에서의 사용자, 스크린, 포인팅 장치, 및 그 밖의 다른 물체 간 공간적 관계의 모델을 유지한다.
실시예는 실시간 제스처 제어 시스템에서 사용되기에 적합하게 만드는 특징을 갖는 모션 추적 시스템을 포함한다. 특징의 예로는, 교정 없는 시스템의 고속 부트스트래핑(bootstrapping)과, 비교적 적은 개수의 센서로 작업공가을 덮을 수 있는 능력과, 작업공간 내 센서, 스크린, 사용자, 포인팅 장치, 및 그 밖의 다른 물체 간 공간적 관계의 모델링과, 작업공간의 돌발적이거나 의도적인 재설정에 대한 고속의 자동 적응화와, 사후-프로세싱 없이 공간적으로 일치하는 모션 추적을 생성하기 위한 실시간 센서 융합이 있지만, 이에 제한되지 않는다. 하나의 실시예의 모션 추적 시스템은 종래의 모션 캡처용으로 사용되는 것과 유사한 카메라 및 하드웨어를 이용한다.
하나의 실시예의 모션 추적 시스템의 구성요소는 센서, 태그(tage), 컴퓨팅 하드웨어, 및 소프트웨어를 포함하지만, 이에 국한되지 않을 수 있다. 도 1B는 하나의 실시예에 따르는 모션 추적 시스템의 블록도이다. 모션 추적 시스템은 태깅된 봉(tagged wand)(300) 및/또는 태깅된 장갑(310)을 갖고 고정된 스크린(400) 및 모바일 스크린(410) 상에서 렌더링되는 애플리케이션을 이용하는 사용자(200)에 의해 점유되는 작업공간 환경(100)에서 동작한다. 컴퓨팅 하드웨어 및 소프트웨어(600)가 감지 알고리즘 및 사용자 애플리케이션을 실행시키는 동안, 작업공간(500) 내에 장착되고 스크린(510)에 부착되는 고정 카메라에 의해 태그 감지(tag sensing)가 제공된다.
추적 시스템의 센서가 작업공간 내 태그의 위치 및 배향(포즈)에 대한 정보를 수집한다. 태그는 쉽게 탈착 가능하고, 식별 가능하며, 센서에 의해 수집된 데이터를 통해 위치 파악이 가능한 특정 물체이다. 컴퓨팅 하드웨어 및 소프트웨어가 센서들로부터의 데이터를 융합하여 모션 및 스크린과 센서와 태그 간의 공간적 관계의 모델을 만들 수 있다. 하나의 실시예의 시스템은, 센서에 대한 태그의 위치 및 배향을 포함하는 6 자유도(DOF) 포즈를 측정할 수 있는 감지 장치가 존재한다는 것 외에, 태그의 구성요소에 대해 어떠한 다른 제한도 하지 않는다. 관심 물체(가령, 포인팅 장치, 사용자의 신체 부분, 옷, 장갑, 스크린, 등)에 시스템에 의해 추적되는 태그가 장착된다.
사용 중에, 하나의 실시예의 시스템은 작업공간에서의 센서와 스크린과 태깅된 물체 간 공간적 관계에 대한 일관된 추정을 자동으로 구축한다. 각각의 센서는 자신의 감지 공간(sensing volume) 내 각각의 태그의 포즈를 추정한다. 각각의 센서의 감지 공간은 적어도 하나의 타 센서의 감지 공간과 부분적으로 겹치고, 모든 센서의 조합된 감지 공간은 일관되고 완전한 모델이 구축될 수 있도록 연속이다. 덧붙여, 센서가 반드시 동기 상태에서 측정치를 수집할 필요는 없지만, 모든 센서의 측정치는 동일한 클록(clock)에 동기화된다. 각각의 센서의 경우, 시스템은 작업공간에 대해 6-DOF 포즈를 모델링한다. 복수의 센서가 동시에 동일한 태그를 검출할 때, 작업공간 모델을 업데이트하기 위해 이들 센서 간 공간적 관계가 복구되고 사용된다. 센서에 의해 상대적 공간 정보만 측정되기 때문에, 모델의 원점(origin)이 특정 센서, 또는 물리적 작업공간에 상대적인 알려진 고정 포즈를 갖는 태그에 고정된다.
실시예는 매끄러운(smooth) 포즈 검출을 위한 포즈 검출 알고리즘과, 센서가 불일치하고(divergent), 잡음섞이고, 때때로 잘못된 포즈 가설을 생성하는 환경에서 태그를 추적하는 것을 포함한다. 하나의 실시예의 상기 포즈 검출 알고리즘은 실제 시스템에서 존재하는 두 가지 조건을 해결한다.
제 1 조건은 복수의 센서로부터의 포즈 가설이 불일치할 때 나타난다. 이러한 제 1 조건은 작업공간, 센서, 및/또는 태그 모델의 불완전성으로부터 나타날 수 있다. 실제적 응용예에서, 낮은 시스템 비용은 데이터 품질 불량과 절충될 수 있고, 주어진 작업공간을 덮기 위해 더 적은 수의, 노이즈가 큰, 그리고 더 느리게 업데이트되는, 센서가 사용될 수 있다. 더욱이, 작업 공간 구조 변화에 대한 시스템의 빠른 적응은 작업공간 모델을 구성 및 정련하기 위해 임의의 주어진 순간에 훨씬 더 적은 정보가 가용함을 의미한다.
제 2 조건은 단일 센서가 단일 태그에 대해 복수의 포즈 가설을 생성할 때 나타나며, 내재적 센서 특성 또는 스퓨리어스(spurious) 태그 검출로부터 나타날 수 있다. 예를 들어, 평면형 태그를 관찰하는 특정 광학 시스템에 내재적인 모호성이 존재한다: 2개의 구분된 가설이, 약간의 측정 노이즈를 가짐에도 불구하고, 주어진 측정에 동등하게 잘 들어맞을 수 있다. 추가적으로, 센서 노이즈는 스퓨리어스 태그 검출 및 가설을 직접 생성할 수 있다. 단일 센서로부터 단일 측정에 기초하여 부정확한 가설로부터 정확한 가설을 구분하는 것이 불가능할 수 있다.
일 실시예의 시스템은 두 방법을 이용하여, 단일 센서로부터의 포즈 가설 중 어느 것이 정확한지를 결정할 수 있다. 태그가 복수의 시간 단계에 대해 높은 신뢰도로 추적되고 있을 대, 태그의 마지막 알려진 우수 포즈와 새 가설 간의 일관성은 아웃라이어 가설(outlier hypothesis)을 배제(culling)하기 위한 우수한 척도다. 복수의 센서가 동일 태그를 검출할 때, 시스템은 센서 간에 일관되지 않은 가설들을 배제한다. 마지막으로, 어떤 조건도 참이 아닐 경우, 모든 가설들은 충분한 증거가 수집되어 아웃라이어를 배제시킬 때까지 후속 시간 단계들로 전파된다.
고정된 한 세트의 센서가 각 시간 단계의 특정 태그의 포즈를 일관되게 검출 및 측정하는 경우에, 가설의 평균은 가용 정보가 주어졌을 때 태그의 참 포즈에 대한 최대 가능 추정치에 근사한다. 이 양은 특정 시간 단계에 대한 특정 태그에 대해 "평균 가설"로 불린다. 평균 가설의 위치 부분에 대한 방정식은 다음과 같다:
여기서, tn은 가설 가 측정되는 시간 단계이고, m은 이 순간에 태그를 검출하는 센서의 수다. 평균 가설의 회전부는 작업 공간 내의 태그 회전 좌표 프레임의 근원을 형성하는 단위 방향 벡터를 유사하게 평균화 및 그 후 재-정규화(re-normalizing)를 통해 근사될 수 있다.
새 센서가 태그를 검출할 때, 또는, 기존 센서가 태그 검출을 중단할 때, 하나의 시간 순간으로부터 다음 시간 순간까지 평균 가설에 불연속성이 존재한다. 이러한 불연속성을 완화시키기 위해, 일 실시예는 앞서의 방정식에 교정 팩터를 도입하고, 그 결과는 특정 시간 단계에 대한 "평활화된 가설(smoothed hypothesis)"로 불린다. 평활화된 가설의 위치부는 다음과 같이 주어진다:
그리고 각각의 교정 팩터는 다음과 같이 규정되는 벡터다:
이때, k는 0과 1 사이에서 선택되는 상수다. 평활화된 가설의 회전부는 작업공간 내 태그의 회전 좌표 프레임의 기초를 형성하는 단위 방향 벡터에 (1.2) 및 (1.3)을 적용하고, 이어서 재-정규화를 통해, 연산될 수 있다.
일 실시예는 k<<1을 이용하여, 교정된 가설 가 이전 시간 단계로부터 평활화된 가설에 가깝게 된다. 추가적으로, k>0의 선택은 평활화된 가설이 각각의 시간 단계에서 평균 가설을 향해 힘을 받음을 보장한다. 마지막으로, 태그의 모션이 시간 단계들 사이에서 클 때(즉, 사용자가 크고 빠른 모션을 행하고 있을 때) 평활화된 가설이 더 큰 공간/시간 평활도(smoothness)를 유지하도록 k가 선택된다. 역으로, 태그의 모션이 시간 단계들 사이에서 작을 때(즉, 사용자가 미세한 조작을 행하고 있을 때), 평활화된 가설이 더 큰 공간/시간 상의 매끄러움을 유지하도록, k가 작게 선택된다. 적절히 k를 선택함으로써, 일 실시예는, 드래그 또는 제스처와 같은 큰 모션을 수행할 때 전체적인 정확도를 강제하면서, 사용자가 포인팅과 같은 정밀한 조작을 행하고 있을 때 높은 정밀도를 보장하도록 유연성을 유지한다.
따라서, 일 실시예의 시스템은 거짓 가설을 제거하고 포즈 추정치의 불연속성의 스무딩을 수행하면서, 작업 공간 내의 태그의 풀 포즈(full pose)를 추적하도록 센서로부터 불완전한 데이터를 이용한다.
일 실시예의 시스템은 각각의 스크린의 물리적 크기 및 6-DOF 포즈를 모델링한다. 시스템은 스크린 포즈를 측정하기 위한 4개의 방법을 포함하며, 이는 스크린 베젤 또는 표면에 고정되는 영구 센서, 스크린 베젤 또는 표면에 고정되는 영구 태그, 태그된 물체와 직접 접촉함으로써 스크린 표시, 그리고, 포인팅 장치를 이용하여 소정 거리로부터 스크린 표시를 포함하지만, 이에 제한되지 않는다.
스크린 베젤 또는 표면에 고정된 영구 센서, 또는, 스크린 베젤 또는 표면에 고정된 영구 태그를 이용하여 스크린 포즈를 측정할 때, 시스템은 작업 공간 내에서 실시간으로 스크린 포즈를 측정하고, 시스템 이용 중 자동적으로 스크린 포즈의 변화에 적응한다. 이러한 경우에, 하나 이상의 태그 또는 하나 이상의 센스가 알려진 위치에서 스크린 표면의 주변부에 고정된다. 시스템의 일 실시예는 센서 또는 태그 장착점과 함께 전용 제작된 스크린 베젤을 이용할 수 있고, 그 측정치는 청사진(blueprint) 사양으로부터 알려져 있다. 대안의 실시예에서, 긴 자 또는 테이프 측정을 이용하여 취한 수동 측정은 사용자에 의해 시스템 내로 입력될 수 있다. 스크린 크기는 수동으로 측정되어 시스템에 입력될 수 있고, 또는 스크린 베젤의 대향 코너 상에 2개의 태그 또는 2개의 센서가 배치되는 실시예에서 시스템에 의해 자동적으로 측정될 수 있다. 시스템이 작업 공간 내의 센서 및 태그의 포즈를 측정하기 때문에, 이러한 물체들 중 어느 하나를 스크린에 고정시키는 것은 스크린 포즈의 직접 측정을 촉진시킨다. 이러한 방법들을 이용하여, 시스템은 작업공간 구조의 변화에 모델을 실시간으로 적응시킨다.
태그된 물체와의 직접 접촉을 통해 스크린을 표시함으로써 스크린 포즈를 측정할 때, 사용자는 짧은 구성 단계(short configuration phase) 중 차례로 작업공간 내 각각의 스크린을 표시할 것을 프람프트로 제시받는다. 첫번째로, 사용자는 글러브, 또는, 원드(wand)와 같은 포인팅 장치, 또는 그외 다른 태그된 물체일 수 있는 태그된 물체를 선택할 것을 프람프트로 제시받는다. 그 후 사용자는 제 1 스크린의 지정 코너(가령, 좌상부)와 직접 접촉하도록 물체를 배치할 것을 프람프트로 제시받고, 그 후 프람프트를 확인한다(가령, 포인팅장치 상의 버튼 클릭으로, 또는 반대 손을 이용한 제스처로). 이러한 방식으로, 각각의 일련의 코너와, 각각의 일련의 스크린이 사용자에 의해 표시된다. 작업공간에 대한 태그된 물체의 포즈를 시스템이 측정하기 때문에, 그리고, 태그된 물체를 이용하여 모든 스크린의 코너가 직접 표시되고 있기 때문에, 시스템은 작업 공간 내 모든 스크린의 크기 및 포즈를 안다. 따라서, 이러한 실시예 하에서, 모든 스크린의 코너는 감지 볼륨 내에 위치하여야 하고, 시스템은 스크린 포즈의 변화에 자동적으로 적응하지 못할 것이다.
포인팅 장치를 이용하여 소정 거리로부터 스크린을 표시함으로써 스크린 포즈를 측정할 때, 사용자는 짧은 구성 단계 중 차례로 작업 공간 내 각각의 스크린을 표시할 것을 프람프트로 제시받는다. 첫 번째로, 그 후 사용자는 제 1 스크린의 지정 코너(가령, 좌상부)에서 장치로 포인팅할 것을 프람프트로 제시받고, 그 후 프람프트를 확인한다(가령, 포인팅 장치 상의 버튼 클릭으로, 또는 반대 손의 제스처로). 제 1 스크린의 나머지 3개의 코너는 마찬가지로 차례로 표시된다. 마지막으로, 사용자는 스크린의 폭 및 높이 또는 대각선 및 종횡비를 시스템에 입력할 것을 제시받는다. 추가적인 스크린들이 마찬가지로 차례로 표시된다. 이러한 실시예에서, 시스템은 스크린 포즈의 변화에 자동적으로 적응하지 못할 것이다.
모션 추적 시스템의 예시적 실시예가 아래에 설명되며, 이는 광학 태그 및 개별 카메라를 센서로 이용한다. 각각의 태그는 마커라 불리는 여러 개의 광학적 기준을 포함하며, 각각의 마커는 쉽게 검출되는, 그리고 카메라로부터 한 이미지 내에서 국부화되는, 단일 광학 특징부를 포함한다. 마커 상에는 다른 제한사항이 없으며, 그 결과, 다양한 마커 타입이 사용될 수 있다. 적외선(IR) 카메라 시스템의 경우에, 적절한 마커는 IR LED 또는 역-반사 물질의 스몰 도트(small dots of retro-reflective material)일 수 있고, 가시광 카메라 시스템의 경우에, 마커는 단순히 쉽게-구별가능한 색상 또는 강도 패턴일 수 있다.
일 실시예에서 태그는, 태그의 각각의 투영 뷰가 라벨링, 신원, 및 포즈를 포함하는 세 조각의 정보를 운반하도록, 구성되지만, 실시예가 이에 제한되지는 않는다. 태그 정의 및 동일 태그의 투영 이미지가 주어졌을 때, 라벨링은 태그 내 대응 마커에 이미지 내 점들을 관련시킨다. 한 세트의 수많은 가능 태그들이 주어졌을 때, 태그의 신원은 그 중 어느 태그인지를 규정한다. 마지막으로, 태그의 위치 및 배향을 작업공간에 대해 관계시키는 3-DOF 병진 및 3-DOF 회전이다.
일 실시예의 태그 구성은 교차비(cross ratio)라 불리는 투영 변환의 불변의 장점을 이용한다(Heartley & Zisserman 2008, p.45). 한 세트 4개의 공선점 이 주어졌을 때, 그 교차비는 점들 사이의 쌍별 거리(pair-wise distance)의 함수다:
일 실시예의 시스템은 4개의 공선 마커를 포함하는 태그인 선형-부분-태그(LPT: linear-partial-tag)를 포함한다. LPT는 4개의 공선점들의 세트에 대해 이미지를 검색함으로써, 그리고, 알려진 태그의 교차비에 그 교차비를 매칭시킴으로써, 단일 이미지로부터 라벨 및 식별될 수 있다. LPT의 마커가 공선이기 때문에, 5-DOF 포즈만이 단일 LPT에 대해 결정될 수 있다. 따라서, 일 실시예는 시스템 범주의 풀 태그를 평면형 표면에 부착되는 2개의 평행 LPT가 되도록 형성하여, 8-마커 태그에 대해 풀 6-DOF 포즈 데이터, 신원, 라벨링의 복원을 가능하게 한다.
단일 태그를 수성하기 위해 복수의 LPT를 이용하는 것의 장점은, 비교적 소수의 고유 LPT들이 조합되어 많은 고유 8-마커 태그를 형성한다는 점이다. 일례로서, 도 1C는 일 실시예 하에서, 2개의 평행 LPT(220, 221)를 포함하는 8-마커 태그(200)를 보여준다. 본 예의 각각의 LPT(220, 221)는 4개의 광학 마커(210)를 포함하지만, LPT는 어떤 특정 개수의 광학 마커에 제한되지 않는다. LPT(220)의 광학 마커(210)들 사이의 거리(a, b, c)와, LPT(221)의 광학 마커(210) 사이의 거리(A, B, C)는 2개의 개별 교차비를 형성하여, 태그의 투영 뷰로부터 LPT(220, 221)를 식별가능, 구별가능, 및 국부화가능하게 한다.
투영이 직선성을 보존하기 때문에, 공선 마커 세트가 단일 이미지로부터 발견될 수 있다. 일 실시예는 아이겐-분해에 기초하여 2차원(2D) 선 피팅 알고리즘을 이용하여 4개의 마커로 이루어지는 각각의 후보 세트에 직선을 맞추지만(Schomaker 외, 1957), 다른 방법도 사용될 수 있다.
공선 마커의 기언급한 후보 세트들이 발견되거나 식별되면, 그 교차비가 (1.4)에 따라 연산되고, 연산된 교차비는 그 후 알려진 LPT의 교차비와 비교된다. 물리적 하드웨어가 완전하고 노이즈없는 데이터를 생성하지 않기 때문에, 후보 교차비 매치는 일반적으로 정확하지 않을 것이다. 그러나, 일 실시예는 이러한 부정확한 후보 매치를 수용하기 위해 신뢰도 계측(confidence metric)을 선택한다.
마지막으로, 일 실시예는 LPT를 후보 태그로 조합하고, 그 포즈를 추정하며, 신뢰도 계측을 이용하여 포즈 가설 간을 구분한다. 이미지는 주변의 거의 평행한 LPT에 대해 검색되어 태그 후보로 조합된다. 각각의 후보 태그에 대하여, 단일 투영 뷰로부터 한 세트 6-DOF 포즈 가설이 연산된다. 일 실시예의 시스템은 이러한 방법들 중 어느 것이 포즈 가설의 연산에 사용될 수 있는지에 관하여 어떤 제한도 두지 않는다(가령, (Kabsch 1978), (Alter 1994), (DeMenthon & Davis 1995)). 일 실시예는 신뢰도 계측으로 사용하기 위한 특정 뷰의 특정 태그의 포즈의 (샘플 변화와 유사한) 재-투영 에러를 연산한다:
이때, p는 태그의 마커 수이고, 은 이미지 내 마커의 측정된 화소 위치이며, 은 태그의 좌표 프레임 내 해당 마커의 대응하는 이상적 위치(균질 좌표)이고, P는 태그의 포즈를 나타내는 4x4 행렬이며, 는 카메라 모델이다. 포즈 가설은, 그 후, 신뢰도 메트릭과 함께, 여기서 그리고 관련 출원에서 설명되는 모션 추적 파이프라인에 전달된다.
일 실시예의 광학 시스템은 이용 중 태그 마커와 이미지 좌표 사이의 상관관계를 내재적으로 수집한다. 이러한 데이터는 단일-카메라 교정 알고리즘에 대한 입력을 형성한다(가령, (Zhang 1999), (Bradski & Kaehler 2008, p.378)). 이러한 단일-카메라 교정 알고리즘을 이용하여, 초점비, 광학중심, 비대칭도(skewness), 렌즈 왜곡, 등과 같은 카메라-고유 파라미터를 모델링할 수 있다. 고품질 실험 카메라 모델의 이용이 광학 모션 추적 시스템의 필수 성분은 아니지만, 이를 이용함으로써 일반적으로 시스템의 공간적 일관성 및 추적 품질을 개선시킬 수 있다. 일 실시예에서, 앞서 설명한 추상적 작업공간 모델은 각각의 시간 단계에서 카메라 고유 파라미터에 대한 추정치를 저장 및 업데이트하도록 확장될 수 있다.
마우스와 같은 종래의 포인팅 장치는 일반적으로 버튼 및 스크롤 휠을 갖고 있다는 점에서 단지 부동 커서 이상을 제공한다. 마찬가지로, 일 실시예의 3D 포인팅 장치는 버튼-클릭, 스크롤, 및 다른 상태 정보(가령, 관성 측정을 포함하지만 이에 제한되지 않음)를 사용자의 시스템에 다시 인도할 수 있다.
예를 들어, 포인팅 원드 상의 버튼-클릭은 원드의 광학적 태그의 기하학적 구조를 변화하게 한다. 광학 시스템은 이러한 태그 변화를 "버튼 가압" 이벤트로 검출하여, 원드의 커서 외양 및 거동을 적절히 업데이트한다. 일 실시예에서, 원드는 역-반사 마커를 포함하는 태그로 장식되고, IR 스트로브를 갖는 광학 시스템이 감지에 사용된다: 버튼이 가압되면, 추가적인 활성 IR LED 마커가 원드의 태그 내에서 조명되어, 태그의 광학적 시그너처를 변화시킨다. 유사 실시예에서, 각각의 태그는 능동 IR LED 마커를 포함하며, 그 중 일부는 조명되고 일부는 비활성 상태이며, 원드 상의 버튼이 가압될 때, LED 마커 중 여러개가 (조명 상태로부터 비활성 상태로, 또는 그 역으로) 상태를 변화시켜서, 태그의 광학적 시그너처를 변경시킨다. 다른 실시예에서, 원드의 상태는 IR 헤드폰에 사용되는 것과 유사하게, IR 트랜시버 시스템을 통해 사용자의 시스템에 인도될 수 있다. 또 다른 실시예에서, 원드의 상태는 코들리스 폰 또는 무선 네트워킹에 사용되는 것과 유사하게 라디오 시스템을 통해 사용자의 시스템에 인도된다. 여기서 멀티-모드 입력 장치(MMID)로 불리는 일례의 원드는 공간 또는 제스처 입력 시스템의 사용자가, 직관적으로 그리고 인간공학적으로 효율적인 방식으로 소정 범위의 입력 기능에 액세스할 수 있게 한다. 일 실시예의 MMID는 여기서 세부적으로 설명되는 바와 같이, 핸드-헬드 입력 장치다.
도 1D는 일 실시예 하에서 실시간 추적의 순서도다(10). 일반적으로, 여기서 설명되는 실시예는 SOE에서 하나 이상의 물체에 태그를 고정함으로써 공간 입력 장치의 실시간 추적을 제공하며, 각각의 태그는 적어도 하나의 특징부를 포함한다(12). 실시예에서는 센서들의 위치가 물체를 포함하여 SOE를 형성하도록, 하나 이상의 센서가 SOE에 장착된다(14). 실시예는 센서(16)로 태그를 검출하고, 각자의 센서에 의해 검출되는 SOE 내 각각의 물체에 대응하는 특징 데이터를 각각의 센서로부터 수신한다(18). 실시예는 센서로부터 특징 데이터를 통합하여, 물체와 SOE 사이의 관계의 코히어런트 모델을 유지한다(20).
여기서 설명되는 태그된 물체(가령, 글러브, 원드, 등)로 작동하는 시스템에 대한 다른 대안으로서, SOE의 실시예는 실시간 비전-기반 손 추적 시스템 및 방법을 포함한다. 이러한 시스템의 일례는 여기서 참조되는 관련 출원에 세부적으로 설명되어 있다. 이러한 대안의 실시예들은 고속 손가락끝 검출을 견고한 국부 손 추적과 조합하고, 이렇게 함에 있어서, 캡처되는 제스처 데이터를 이용하여 하나 이상의 사용자 손의 위치를 검출, 식별, 추적, 및/또는 국부화시킬 수 있다. 예를 들어, 여기 특정 실시예에서 설명되는 바와 같은 손 추적은 비디오 스트림의 일련의 프레임에 하나 이상의 사용자 손의 위치를 검출 및 국부화시키는 프로세스를 포함한다. SOE 또는 다른 제스처 인터페이스의 범주에서, 이러한 추적을 이용하여, 사용자가 시스템과 통신하고자 시도할 때를 결정하여, 일시적으로 연장된 제스처를 검출 및 인지하는데 필요한 기본 정보를 제공할 수 있고, 포인팅, 드래그, 선택, 및 기타 직접적 조작과 같은 상호작용에 대한 실시간 제어 및 피드백을 가능하게 한다. 다음의 문헌은 추적 시스템에 관한 추가적인 정보를 포함한다.
공간 운영 환경(SOE)
공간-연속 입력 시스템의 실시예는 앞서 설명한 바와 같이, 공간 운영 환경(SOE)의 범주에서 여기서 설명된다. 일례로서, 도 1A는 일 실시예 하의 공간 운영 환경(SOE)의 블록도다. 일반적으로, 사용자는 카메라(140A-104D)의 얼-p이의 관찰 영역(150)에 자신의 손(101, 102)을 위치시킨다. 카메라는 손가락 및 손(101, 102)의 위치, 배향, 움직임을 공간적 추적 데이터로 검출하고, 출력 신호를 프리-프로세서(105)에 발생시킨다. 프리-프로세서(105)는 시스템의 컴퓨터 프로세싱 유닛(107)에 제공되는 제스처 신호로 카메라 출력을 변환한다. 컴퓨터(107)는 입력 정보를 이용하여 스크린 커서 상의 하나 이상을 제어하기 위한 명령을 발생시키고, 비디오 출력을 디스플레이(103)에 제공한다. 예를 들어, 실시간 비전-기반 손 추적 시스템을 초기화하기 위해 앞서 상세히 설명한 시스템 및 방법이 SOE에, 그리고 유사 시스템에 사용될 수 있다.
시스템이 단일 사용자의 손을 입력으로 보여주지만, SOE(100)는 복수의 사용자를 이용하여 구현될 수 있다. 추가적으로, 손 대신에 또는 손에 추가하여, 시스템은 머리, 발, 다리, 팔, 팔꿈치, 무릎, 등을 포함한, 사용자 신체의 일부분을 추적할 수 있다.
도시되는 실시예에서, 4개의 카메라 또는 센서를 이용하여 관찰 영역(150)에서 사용자 손(101, 102)의 위치, 배향, 및 움직임을 검출한다. SOE(100)는 SOE의 범위 또는 사상으로부터 벗어나지 않으면서 더 많은(가령, 6개의 카메라 또는 8개의 카메라, 등) 또는 더 적은(가령, 2개의 카메라) 개수의 카메라 또는 센서를 포함할 수 있다. 추가적으로, 예시적인 실시예에서 카메라 또는 세넛가 대칭으로 배치되지만, SOE(100)에서 이러한 대칭성의 요건이 존재하지 않는다. 사용자 손의 위치, 배향, 및 움직임을 가능하게 하는 임의의 개수 또는 배치의 카메라 또는 센서들이 SOE(100)에 사용될 수 있다.
일 실시예에서, 사용되는 카메라는 그레이-스케일 이미지를 캡처할 수 있는 모션 캡처 카메라다. 일 실시예에서, 사용되는 카메라는 Vicon MX40 카메라와 같은, Vicon에서 제조한 카메라다. 이러한 카메라는 온-카메라 프로세싱을 포함하고, 초당 1000프레임의 이미지 캡처가 가능하다. 모션 캡처 카메라는 마커를 검출 및 위치파악할 수 있다.
설명되는 실시예에서, 카메라는 광학 검출용으로 사용되는 센서다. 다른 실시예에서, 카메라 또는 다른 검출기가 전자기, 정자기, RFID, 또는 그외 다른 적절한 타입의 검출에 사용될 수 있다.
프리-프로세서(105)는 3차원 공간점 재구성 및 골격점 라벨링을 발생시킨다. 제스처 변환기(106)는 3D 공간 정보 및 마커 모션 정보를 컴퓨터 프로세서에 의해 해역될 수 있는 명령어로 변환하여, 디스플레이 상에서 커서의 위치, 형상, 및 액션을 업데이트할 수 있다. SOE(100)의 대안의 실시예에서, 프리-프로세서(105) 및 제스처 변환기(106)는 단일 장치로 통합 또는 조합된다.
컴퓨터(107)는 Apple, Dell, 또는 그외 다른 적절한 제조사에서 제조한 것과 같은 임의의 범용 컴퓨터일 수 있다. 컴퓨터(107)는 애플리케이션을 구동하고, 디스플레이 출력을 제공한다. 그렇지 않을 경우 마우스 또는 다른 종래의 입력 장치로부터 입력되는 커서 정보가, 이제 제스처 시스템으로부터 입력된다.
마커 태그(Marker Tags)
일 실시예의 SOE는 사용자의 하나 이상의 손가락 상에 마커 태그의 이용을 고려하여, 시스템이 사용자 손의 위치를 파악할 수 있고, 왼손 또는 오른손을 보고있는 지를 식별할 수 있으며, 어느 손가락이 보이는지를 식별할 수 있게 된다. 이에 따라 시스템은 사용자 손의 위치, 배향, 및 움직임을 검출할 수 있다. 이 정보에 의해, 다수의 제스처가 시스템에 의해 인지될 수 있고, 사용자에 의해 명령으로 사용될 수 있다.
일 실시예의 마커 태그는 고유 식별 패턴에서 기판 표면 상에 배열되는 개별 마커 및 (사람 손의 다양한 위치에 고정하기 위해 본 실시예에서 적절한) 기판을 포함하는 물리적 태그다.
마커 및 관련 외부 감지 시스템은 정확하고, 정밀하며, 신속하고 연속적인 3차원 위치 획득을 가능하게 하는 임의의(광학, 전자기, 정자기, 등) 도메인에서 작동할 수 있다. 마커 자체는 능동적으로(가령, 주조화된 전자기 펄스를 방출함으로써) 또는 수동적으로(가령, 본 실시예에서와 같이 광학적 역반사에 의해) 작동할 수 있다.
각각의 획득 프레임에서, 검출 시스템은 (카메라 또는 다른 검출기의 가시 범위 내에서) 기기화된 작업공간 볼륨 내 현재의 태그로부터 모든 마커를 포함하는 회수되는 3-공간 위치의 집합 "클라우드"를 수신한다. 각 태그 상의 마커는 충분한 복수성을 갖고, 검출 시스템이 다음의 작업을 수행할 수 있도록 고유 패턴으로 배열된다: (1) 세그먼트화 - 각각의 회수되는 마커 위치가 단일 태그를 형성하는 점들의 서브컬렉션들 중 하나에만 할당됨, (2) 라벨링 - 각각의 세그먼트화된 점들의 서브컬렉션이 특정 태그로 식별됨, (3) 위치 - 식별된 태그의 3-공간 위치가 회수됨, (4) 배향 - 식별된 태그의 3-공간 배향이 회수됨. 작업 (1) 및 (2)는 도 2의 다른 실시예에서 예시되는 바와 같이 그리고 아래에서 설명되는 바와 같이, 마커-패턴의 구체적 속성을 통해 가능해진다.
일 실시예에서 태그 상의 마커는 정규 그리드 위치의 서브세트에서 고정된다. 이러한 하부 그리드는 본 실시예에서와 같이 종래의 카테시안 소트의 것일 수 있고, 또는 대신에, 조금 다른 정규 평면 모자이크 방식일 수 있다(예를 들어, 삼각형/육각형 틸트 배열). 그리드의 스케일 및 간격은 마커-감지 시스템의 알려진 공간적 해상도와 관련하여 구축되어, 인접 그리드 위치가 쉽게 혼동되지 않을 것이다. 모든 태그에 대한 마커 패턴의 선택은 다음의 제약사항을 충족시켜야 한다: 어떤 태그의 패턴도 회전, 병진, 또는 미러링의 조합을 통해 다른 태그의 패턴과 동시에 나타나지 않는다. 마커의 복수성 및 배열은 성분 마커의 일부 명시된 개수의 손실(또는 맞물림)이 감내되도록 더 선택될 수 있다: 임의적 변환 후, 절충된 모듈을 다른 것과 혼동하기 여전히 쉽지 않아야 한다.
이제 도 2를 참조하면, 다수의 태그(201A-201E(왼손), 202A-202E(오른손))가 도시된다. 각각의 태그는 장방형이고, 5ㅌ7 그리드 어레이의 본 실시예로 구성된다. 장방형 형상은, 미러 복제 가능성을 감소시키도록, 그리고 태그 배향의 결정에 대한 보조 수단으로, 선택된다. 도시되는 실시예에서, 각 손의 각 손가락에 대해 태그들이 존재한다. 일부 실시예에서, 손마다 1, 2, 3, 또는 4개의 태그를 이용하는 것이 적절할 수 있다. 각각의 태그는 서로 다른 그레이-스케일 또는 칼라 음영의 경계를 갖는다. 3x5 그리드 어레이가 이러한 경계 내에 존재한다. (도 7의 검은점에 의해 표현되는) 마커는 정보 제공을 위해 그리드 어레이 내 소정 지점에 배치된다.
자격 정보는 각 패턴의 세그먼트화를 통해 태그의 마커 패턴에 "공통" 및 "고유" 서브패턴으로 인코딩될 수 있다. 예를 들어, 본 실시예는 정규 경계 주위로 2개의 가능한 "경계 패턴", 마커 분포를 명시한다. 따라서, 태그의 "패밀리"가 구축되고 - 따라서, 왼손용으로 의도된 태그가 태그(201A-201E)에 도시되는 바와 동일한 경계 패턴을 모두 이용할 수 있고, 오른손 손가락에 부착된 태그들은 태그(202A-202E)에 도시되는 바와 같이 다른 패턴을 할당받을 수 있다. 이러한 서브패턴은 태그의 모든 배향에서, 좌측 패턴이 우측 패턴과 구분될 수 있도록 선택된다. 도시되는 예에서, 왼손 패턴은 각각의 코너에 마커를 포함하고, 코너 그리드 위치로부터 두번째에 마커를 포함한다. 오른손 패턴은 단 2개의 코너에 마커를 갖고, 코너가 아닌 그리드 위치에 2개의 마커를 갖는다. 4개의 마커 중 3개가 눈에 보이는 한, 왼손 패턴은 왼손 패턴으로부터 뚜렷하게 구분될 수 있음을, 패턴의 검사가 보여줄 것이다. 일 실시예에서, 경계의 색상 또는 음영이 잘쓰는 손의 인디케이터(즉, 왼손잡이 또는 오른손잡이 표시)로 또한 사용될 수 있다.
각각의 태그는 물론 고유 내부 패턴을 여전히 이용하여야 하며, 마커는 가족의 공통 경계 내에 분산된다. 도시되는 실시예에서, 내부 그리드 어레이 내 2개의 마커는 손가락의 회전 또는 배향으로 인해 어떤 중복없이 10개의 손가락 각각을 고유하게 식별하기에 충분함이 입증되었다. 마커 중 하나가 배제됨에도 불구하고, 태그의 잘쓰는 손 및 패턴의 조합은 고유 식별자를 도출한다.
본 실시예에서, 그리드 위치는 의도한 위치에서 각각의 역반사 마커를 고정하는 (수동) 작업에 대한 보조 수단으로 강체형 기판 상에 시각적으로 존재한다. 이러한 그리드 및 의도한 마커 위치는 칼라 잉크젯 프린터를 통해 기판에 글자그대로 인쇄되며, 이러한 기판은 한 장의 (초기) 가요성 "슈링크-필름"(shrink-film)이다. 각각의 모듈은 시트(즉, 한 장의 필름)로부터 절단되고, 그 후 오븐에서 베이킹되며, 이러한 열처리 중에 각각의 모듈은 정밀하고 반복가능한 수축을 진행하게 된다. 이러한 절차에 이은 간단한 구간의 경우, 예를 들어, 손가락의 종방향 곡선을 따르도록 냉각 태그가 약간 성형될 수 있고, 그 후, 기판이 적절히 강체형을 띄고 마커는 표시된 그리드 지점에 고정될 수 있다.
일 실시예에서, 마커 자체는, 접착제 또는 다른 적절한 수단을 통해 기판에 고정되는 작은 반사구와 같은, 3차원 형태다. 마커의 3차원성은 2차원 마커에 비해 검출 및 위치에 도움이 될 수 있다. 그러나, 여기서 설명되는 SOE의 사상 및 범위로부터 벗어나지 않으면서 둘 중 어느 것도 사용될 수 있다.
현재, 태그는 조작자가 착용한 글러브에 벨크로(Velcro) 또는 다른 적절한 수단을 통해 고정되고, 또는, 대안으로서, 마이들 더블-스틱 테이프를 이용하여 조작자의 손가락에 직접 고정된다. 제 3 실시예에서, 강체형 기판을 함께 제거하는 것이 가능하고, 조작자의 손가락 및 손에 직접 개별 마커를 고정 또는 "페인팅"하는 것이 가능하다.
제스처 어휘(Gesture Vocabulary)
일 실시예의 SOE는 손 포즈, 배향, 손 조합, 및 배향 블렌드로 구성되는 제스처 어휘를 고려한다. SOE의 제스처 어휘 내의 포즈 및 제스처를 설계 및 통신하기 위해 표기법 언어가 또한 구현된다. 제스처 어휘는 컴팩트 원문 형태로 운동학적 링크의 순간 "포즈 상태"를 나타내기 위한 시스템이다. 질문의 링크는 생물학적인 것일 수도 있고(가령, 사람의 손, 또는 사람 신체 전체, 또는 배짱이 다리, 또는 여우원숭이의 연결 척추), 또는 대신에 무생물학적인 것일 수도 있다(가령, 로봇 암). 어느 경우에도, 링크는 간단한 것(척추)일 수도 있고, 분기형(손)일 수도 있다. SOE의 제스처 어휘 시스템은 일정 길이 스트링을 임으의 구체적 링크에 대해 구축하고, 스트링의 '문자 위치'를 점유하는 특정 ASCII 문자의 집합체가 그 후 링크의 순간 상태 또는 '포즈'의 고유 설명어가 된다.
손 포즈(Hand Pose)
도 3은 일 실시예 하에서, SOE의 제스처 어휘의 일 실시예의 손 포즈를 예시한다. SOE는 한 손의 다섯 손가락 각각이 사용됨을 가정한다. 이러한 손가락들은 p-새끼, r-약지, m-중지, i-검지, 및 t-엄지로 코딩된다. 손가락 및 엄지에 대한 다수의 포즈가 규정되고 도 8에 예시된다. 제스처 어휘 스트링은 링크 내 각각의 표현가능한 자유도에 대해 단일 문자 위치를 구축한다(이러한 경우에, 손가락). 더욱이, 각각의 이러한 자유도가 구분되어(또는 양자화되어), 풀 범위의 모션은 해당 스트링 위치에서 유한한 수치의 표준 ASCII 문자 중 하나의 할당을 통해 표현될 수 있다. 이러한 자유도는 신체-특정 원점 및 좌표계에 대해 표현된다(손등, 배짱이 신체의 중심, 로봇 암의 베이스, 등). 따라서, 적은 개수의 추가적인 제스처 어휘 문자 위치를 이용하여 더욱 전역적인 좌표계에서 "전체적으로" 링크의 위치 및 배향을 표현할 수 있다.
여전히 도 8을 참조하면, 다수의 포즈가 ASCII 문자를 이용하여 규정 및 식별된다. 포즈 중 일부가 엄지와 엄지 아닌 손가락으로 나누어진다. 본 실시예의 SOE는 ASCII 문자 자체가 포즈를 연상시키도록 코딩을 이용한다. 그러나, 연상 여부에 관계없이 임의의 문자가 포즈를 나타내는데 사용될 수 있다. 추가적으로, 표기법 스트링을 위해 ASCII 문자를 이용하는 것에 어떤 요건도 존재하지 않는다. 임의의 적절한 심벌, 수치, 또는 다른 표현이 실시예의 사상 및 범위로부터 벗어나지 않으면서 사용될 수 있다. 예를 들어, 표기법은 요망되는 경우 손가락 당 2비트를 이용할 수 있고, 또는, 다른 수의 비트를 이용할 수 있다.
구부러진 손가락(curled finger)는 문자 "^"로 표시되고, 구부러진 엄지는 ">"로 표시된다. 위를 향하는 곧게 편 손가락 또는 엄지는 "1"로 표시되고, 소정 각도에서는 "\" 또는 "/"로 표시된다. "-"는 직선 측방을 가리키는 엄지를 나타내고, "x"는 평면 내로 지향되는 엄지를 나타낸다.
이러한 개별 손가락 및 엄지 용어를 이용하여, 견고한 개수의 손 포즈를 규정할 수 있고 실시예의 기법을 이용하여 기록할 수 있다. 각각의 포즈는 앞서 설명한 바와 같이 p-r-m-i-t의 순서로 5개의 문자에 의해 표현된다. 도 8은 다수의 포즈를 예시하고, 몇개가 예시 및 예를 통해 여기서 설명된다. 지면에 평행하게 평평하게 놓인 손은 "11111"로 표시된다. 주먹은 "^^^^>"으로 표시된다. "OK" 사인은 "111^>"으로 표시된다.
문자 스트링은 연상 문자를 이용할 때 직관적인 "사람의 가독성"에 대한 기회를 제공한다. 각각의 자유도를 설명하는 한 세트의 가능 문자들은 빠른 인지 및 명백한 유사성을 위해 눈으로 선택될 수 있다. 예를 들어, 수직 바("|")는 링크 요소가 "직선"임을 의미하기 쉽고, 엘("L")은 90도 휘어짐을 의미할 수 있으며, 곡절 악센트("^")는 날카로운 휨을 표시할 수 있다. 앞서 언급한 바와 같이, 임으의 문자나 코딩이 요망되는 대로 사용될 수 있다.
여기서 설명되는 바와 같은 제스처 어휘 스트링을 이용하는 임의의 시스템은 스트링 비교의 고연산 효율의 이점을 즐긴다 - 명시된 포즈에 대한 식별 또는 검색이 글자 그대로, 요망 포즈 스트링과 순간 실제 스트링 사이에서 "스트링 비교"(가령, UNIX의 'strcmp()' 함수)가 된다. 더욱이, "와일드카드 문자"의 이용은 추가적인 친숙 효율 및 효능을 시스템 설계자 또는 프로그래머에게 제공한다 - 매치에 대해 관련없는 순간 상태를 갖는 자유도는 질의점("?")으로 명시될 수 있고, 추가적인 와일드카드 의미가 할당될 수 있다.
배향(Orientation)
손가락 및 엄지의 포즈에 추가하여, 손의 배향이 정보를 나타낼 수 있다. 전역-공간 배향을 설명하는 문자는 또한 투명하게 선택될 수 있다 - 문자 "<", ">", 및 "^", 및 "v"는, 배향 문자 위치에서 맞닥뜨릴 때, 좌측, 우측, 상, 하의 개념을 표시하는데 사용될 수 있다. 도 4는 포즈 및 배향을 조합하는 코딩의 예 및 손 배향 설명어를 예시한다. 일 실시예에서, 2개의 문자 위치는 손바닥의 방향과 손가락의 방향을 명시한다(손가락의 실제 휨에 관계없이, 직선일 경우). 이러한 두 위치에 대해 가능한 문자는 "신체-중심" 배향 개념을 표현한다 - "-", "+", "x", "*", "^", "v"는 각각 내측, 측방, 전방(신체로부터 멀리 앞쪽으로), 후방(신체로부터 멀리 뒷편으로), 두개(상향), 및 꼬리(하향)를 설명한다.
일 실시예의 표기법에서, 5개의 손가락 포즈를 표시하는 문자 뒤에 콜론이 이어지고, 그 후 2개의 배향 문자가 이어져서, 완전한 명령 포즈를 형성한다. 일 실시예에서, 시작 위치는 "xyz" 포즈로 불리고, 엄지는 직선 상향을 가리키고, 검지는 전방을 가리키며, 중지는 검지에 수직을 나타내서, 포즈가 로은손으로 이루어질 때 좌측을 가리킨다. 이는 문자열 "^^x1-:-x"로 표시된다.
"XYZ-손"은 시각적으로 제시되는 3차원 구조의 풀 6-자유도의 항법을 가능하게 하도록 사람 손의 기하구조를 이용하기 위한 기술이다. 기술이 조작자의 손의 벌크 병진 및 회전에 좌우되지만 - 손가락이 요망되는 포즈로 원칙적으로 유지되도록 - 본 실시예는 검지가 신체로부터 멀리를 가리키고, 엄지는 천정을 가리키며, 중지는 좌-우를 가리키는 정적 구조를 선호한다. 따라서 세 손가락은 3-공간 좌표계의 3개의 상호 직교축을 설명한다 - 따라서, "XYZ-손"이 된다.
XYZ-손 항법은, 지정된 '중립 위치'에서 조작자의 신체 앞에서 보지되는, 앞서 설명한 포즈로 손, 손가락으로 진행된다. 3-공간 물체(또는 카메라)의 3개의 병진 및 3개의 회전 자유도에 대한 액세스는 다음의 자연스런 방식으로 수행된다 - (신체의 자연 좌표계에 대해) 손의 좌-우 움직임은 연산 콘텍스트의 x-축을 따른 움직임을 나타내고, 손의 상-하 움직임은 제어되는 콘텍스트의 y-축을 따른 움직임을 나타내며, (조작자의 신체로부터) 전-후 손의 움직임은 콘텍스트 내의 z-축 모션에 해당한다. 마찬가지로, 검지 주위로 조작자 손의 회전은 연산 콘텍스트 배향의 "롤"(roll) 변화를 이끌고, "피치"(pitch) 및 "요"(yaw) 변화는 각각 중지 및 엄지 주위로 조작자 손의 회전을 통해 유사하게 실시된다.
"연산 콘텍스트"가 XYZ-손 방법에 의해 제어되고 있는 실체를 의미하는 것으로 여기서 사용되지만, 그리고 합성 3-공간 물체 또는 카메라를 제시하고자 하지만, 현실세계의 물체의 다양한 자유도를 제어하는데 이 기술이 특히 유용함을 이해하여야 한다(예를 들어, 적절한 회전 액추에이터를 구비한 비디오 또는 모션 픽처 카메라의 팬/틸트/롤(pan/tilt/roll) 제어). 더욱이, ZYZ-손 자세에 의해 공급되는 물리적 자유도는 가상 도메인에서도 약간 덜 글자그대로 매핑될 수 있다 - 본 실시예에서, XYZ-손은 라지 파노라마 디스플레이 이미지에 대한 항법 액세스를 제공하는데도 사용되어, 조작자 손의 좌-우 및 상-하 모션이 이미지 주위로 예상되는 좌-우 또는 상-하 "패닝"(panning)을 이끌지만, 조작자 손의 전-후 모션은 "줌"(zooming) 제어로 매핑된다.
모든 경우에, 손의 모션과 유도된 연산 병진/회전 사이의 결합은 직접적(즉, 조작자 손의 위치 또는 회전 오프셋은, 소정의 선형 또는 비선형 함수를 통해, 연산 콘텍스트의 물체 또는 카메라의 위치 또는 회전 오프셋에 일대일 매핑된다)이거나 간접적(즉, 조작자 손의 위치 또는 회전 오프셋은 소정의 선형 또는 비선형 함수를 통해, 연산 콘텍스트의 위치/배향의 1차 또는 고차 도함수에 일대일 대응한다 - 그 후 계속되는 적분은 연산 콘텍스트의 실제 제로-차수 위치/배향의 비-정적 변화로 나타난다)일 수 있다. 이러한 후자의 제어 수단은 자동차의 "가스 페달" 이용과 유사한데, 페달의 일정 오프셋은 일정 차량 속도를 대략 유도한다.
현실 세계의 XYZ-손의 국부 6-자유도 좌표 원점으로 기능하는 "중립 위치"는 (1) (즉, 에워싸이는 공간에 대해) 공간 내 절대 위치 및 배향으로, (2) 조작자의 전체 위치 및 "헤딩"에 관계없이, (가령, 신체 정방 8인치, 턱 아래 10인치, 어깨 평면과 일직선상에서 측방으로) 조작자 자신에 대해 고정된 위치 및 배향으로, 또는, (3) (예를 들어, 조작자의 '다른' 손에 의해 실시되는 제스처 명령을 이용하여 - 상기 명령은 XYZ-손의 현 위치 및 배향이 병진 및 회전 원점으로 사용되어야 함을 표시함) 쌍방향으로, 조작자의 의도적인 보조 액션을 통해, 구축될 수 있다.
XYZ-손의 중립 위치 주위로 "디텐트 영역"(detent region)(또는 '데드 존')을 제공하여, 이 공간 내의 움직임이 제어되는 콘텍스트의 움직임에 매핑되지 않도록 하는 것이 더 편리하다.
다른 포즈는 다음을 포함할 수 있다:
[||||||:vx]는 손바닥을 아래로 손가락들을 전방으로 편, 펼친 손(엄지가 손가락에 평행).
[|||||:x^]는 손바닥을 전방으로, 손가락을 천정을 향하게 하는 펼쳐진 손.
[|||||:-x]는 손바닥이 신체 중심을 향하는, 펼쳐진 손(왼손일 경우 우측, 오른손일 경우 좌측).
[^^^^-:-x]는 엄지가 위로 향하는 단수(엄지가 천정을 가리킴).
[^^^|-:-x]는 전방을 가리키는 마임 건(mime gun).
양수 조합(Two Hand Combination)
일 실시예의 SOE는 단수 명령 및 포즈 외에 양수 명령 및 포즈를 고려한다. 도 5는 SOE의 일 실시예에서 양수 조합 및 관련 표기법의 예를 예시한다. 첫번째 예의 표기법을 되살펴보면, "풀 스탑"(full stop)은 2개의 닫힌 주먹을 포함하는 것을 나타낸다. "스냅샷"(snapshot) 예는 펼쳐진 각 손의 엄지 및 검지와, 서로를 가리키는 엄지를 가져서, 목표 포스트 형상 프레임을 형성한다. "러더 및 스로틀 시작 위치"(rudder and throttle start position)는 손가락 및 엄지가 스크린을 면하여 상향을 가리킨다.
배향 혼합(Orientational Blends)
도 6은 SOE의 일 실시예에서 배향 혼합의 일례를 예시한다. 도시되는 예에서, 혼합은 손가락 포즈 문자열 다음의 괄호 내 배향 표기들의 쌍을 에워쌈으로써 표현된다. 예를 들어, 제 1 명령은 모두 직선을 가리키는 손가락 위치를 보여준다. 제 1 쌍의 배향 명령은 손바닥이 디스플레이를 향해 평탄한 결과로 나타나고, 제 2 쌍은 손이 스크린을 향해 45도 피치로 회전한다. 본 예에서 쌍들의 혼합이 도시되지만, 임의의 개수의 혼합이 SOE에서 고려된다.
예시적 명령(Exmaple Commands)
도 8/1 및 8/2는 SOE와 함께 사용될 수 있는 다수의 가능 명령들을 보여준다. 여기서 일부 논의가 디스플레이 상에서의 커서 제어에 관해 이루어지지만, SOE는 이러한 활동에 제한되지 않는다. 실제로, SOE는 스크린 상의 모든 데이터 및 데이터의 일부분과, 디스플레이의 상태를 조작함에 있어서 높은 응용도를 갖는다. 예를 들어, 명령을 이용하여 비디오 매체의 재생 중 비디오 제어를 대신할 수 있다. 명령을 이용하여, 일시정지, 전방 이동, 후방 감김, 등을 행할 수 있다. 명령을 구현하여, 이미지의 줌-인, 줌-아웃을 행할 수 있고, 이미지의 배향을 변경할 수 있으며, 임의의 방향으로 패닝, 등을 행할 수 있다. SOE는 열림, 닫힘, 저장, 등과 같은 메뉴 명령 대신에 또한 사용될 수 있다. 다시 말해서, 상상할 수 있는 임의의 명령 또는 활동이 손 제스처로 구현될 수 있다.
작동
도 7은 일 실시예에서 SOE의 작동을 예시하는 순서도다. 단계(701)에서, 검출 시스템은 마커 및 태그를 검출한다. 단계(702)에서, 태그 및 마커가 검출되는지 여부가 결정된다. 그렇지 않을 경우, 시스템은 단계(701)로 되돌아간다. 태그 및 마커가 단계(702)에서 검출될 경우, 시스템은 단계(703)로 진행한다. 단계(703)에서, 시스템은 검출되는 태그 및 마커로부터 손, 손가락, 및 포즈를 식별한다. 단계(704)에서, 시스템은 포즈의 배향을 식별한다. 단계(705)에서, 시스템은 검출되는 손의 3차원 공간 위치를 식별한다(단계(703, 704, 705)들이 임의적으로 조합될 수 있다).
단계(706)에서, 정보는 앞서 설명한 제스처 표기법으로 변환된다. 단계(707)에서, 포즈가 유효한지가 결정된다. 이는 발생된 표기 문자열을 이용하여 간단한 문자열 비교를 통해 실현될 수 있다. 포즈가 유효하지 않은 경우, 시스템은 단계(701)로 되돌아간다. 포즈가 유효할 경우, 시스템은 단계(708)에서 표기법 및 위치 정보를 컴퓨터에 전송한다. 단계(709)에서, 컴퓨터는 제스터에 응답하여 취하여야할 적절한 액션을 결정하고, 단계(710)에서 이에 따라 디스플레이를 업데이트한다.
SOE의 일 실시예에서, 단계(701-705)는 온-카메라 프로세서에 의해 실현된다. 다른 실시예에서, 프로세싱은 요망될 경우 시스템 컴퓨터에 의해 실현될 수 있다.
파싱 및 변환(Parsing and Translation)
시스템은 하부 시스템에 의해 복원되는 로우-레벨 제스처의 스트림을 "파싱"(parsing) 및 "변환"할 수 있고, 파싱 및 변환된 제스처를 폭넓은 범위의 컴퓨터 애플리케이션 및 시스템을 제어하는데 사용될 수 있는 명령 또는 이벤트 데이터의 스트림으로 바꿀 수 있다. 이러한 기술 및 알고리즘은 이러한 기술들을 구현하는 엔진과, 엔진의 기능을 이용하는 컴퓨터 애플리케이션을 구축하기 위한 플랫폼 모두를 제공하는 컴퓨터 코드로 구성되는 시스템에서 실시될 수 있다.
일 실시예는 컴퓨터 인터페이스에서 사람 손의 풍부한 제스처 이용을 가능하게 함에 집중하고 있으나, 다른 신체부에 의해 이루어지는 제스처를 또한 인지할 수 있다. 캘리퍼스, 콤파스, 가요성 곡선 근사기, 및 다양한 형상의 포인팅 장치를 포함한, 그러나 이에 제한되지 않는, 정적 형태 및 관절형태를 모두 포함하는, 다양한 종류의 손이 아닌 물리적 툴에 의해 이루어지는 제스처를 또한 인지할 수 있다.
여기서 설명되는 시스템은 인지 및 작용될 수 있는 풍부한 제스처 범위에 있는 제스처 시스템을 구축하는 것이 가능하면서도, 동시에 애플리케이션에 용이하게 통합될 수 있는, 다수의 혁신사항을 포함한다.
일 실시예의 제스처 파싱 및 변환 시스템은 다음을 포함한다:
1) 서로 다른 여러 레벨의 지합에서 제스처를 명시하기 위한(컴퓨터 프로그램에 이용을 위해 인코딩하기위한) 컴팩트하고 효율적인 방식:
a. 3차원 공간에서 단수 "포즈"(서로에 대한 손의 부분의 구조 및 배향), 단수 "배향" 및 위치.
b. 어느 한 손 또는 양손의 포즈, 위치를 고려한 양수 조합.
c. 다자 조합 - 시스템은 양수 이상을 추적가능하고, 따라서, 2인 이상이 협력적으로(또는 경쟁적으로, 게임 응용예의 경우) 표적 시스템을 제어할 수 있다.
d. 포즈들이 순서대로 조합되는 순차적 제스처 - 우리는 이를 "애니메이팅" 제스처라 부른다.
e. 조작자가 공간에서 형상을 추적하는 "문자소"(grapheme) 제스처.
2) 주어진 애플리케이션 범주에 관련된 위 각각의 카테고리로부터 특정 제스처를 등록하기 위한 계획적 기술.
3) 등록된 제스처들이 식별될 수 있고 이러한 제스처들을 포괄하는 이벤트가 관련 애플리케이션 범주에 전달될 수 있도록, 제스처 스트림을 파싱하기 위한 알고리즘.
규격 시스템 (1)은 구성요소 (1a)-(1f)들과 함께, 여기서 설명되는 시스템의 제스처 파싱 및 변환 기능을 이용하기 위한 기반을 제공한다.
단수 "포즈"는 다음의 문자열로 표현된다:
i) 손등과 손가락 사이의 상대적 배향, 및
ii) 소수의 구분된 상태들로 양자화.
상대적 조인트 배향을 이용하면 앞서 설명되는 시스템이, 서로 다른 손 크기 및 기하구조와 관련된 문제를 피할 수 있다. 어떤 "조작자 교정"도 본 시스템에서 요구되지 않는다. 추가적으로, 상대적 배향의 집합 또는 스트링으로 포즈를 명시함으로써, 포즈 표현을 추가적인 필터 및 규격과 조합하여, 더 복잡한 제스처 규격이 쉽게 생성될 수 있다.
포즈 규격에 대해 소수의 구분된 상태를 이용함으로써, 포즈를 컴택트하게 명시할 수 있고, 그리고, 다양한 하부 추적 기술을 이용하여 정확한 포즈 인지를 보장할 수 있다(예를 들어, 카메라를 이용한 수동적 광학 추적, 광 도트(lighted dots) 및 카메라를 이용한 능동적 광학 추적, 전자기장 추적, 등).
모든 카테고리 (1a)-(1f)의 제스처는, 비-임계 데이터가 무시되도록, 부분적으로(또는 최소한으로) 명시될 수 있다. 예를 들어, 두 손가락의 위치가 규정되어 잇고 다른 손가락 위치는 중요하지 않은 제스처는, 두 관련 손가락의 작동 위치가 주어지고, 동일 문자열 내에서, "와일드 카드" 또는 범용 "무시" 인디케이터가 나머지 손가락에 대해 나열되는, 단일 규격에 의해 표현될 수 있다.
다층 규격 기술, 상대적 배향의 이용, 데이터 양자화, 및 모든 레벨에서 부분 또는 최소 규격 허용을 포함한, 그러나 이에 제한되지 않는, 제스처 인지를 위해 여기서 설명되는 모든 혁신사항은, 손 제스처의 사양을 넘어, 다른 신체부 및 "제조되는" 툴 및 물체를 이용하는 제스처의 사양으로 일반화한다.
"제스처 등록"을 위한 계획적 기술 (2)은 엔진이 어느 제스처를 구동 시스템의 다른 부분에 대해 가용하게 해야하는지를 프로그래머로 하여금 규정하게 하는, 규정된 한 세트의 애플리케이션 프로그래밍 인터페이스 콜로 구성된다.
이러한 API 루틴은 애플리케이션 셋-업 시간에 사용될 수 있어서, 구동 애플리케이션의 수명 전체를 통해 사용되는 정적 인터페이스 규정을 생성한다. 이러한 루틴은 구동 코스 중 또한 사용될 수 있어서, 인터페이스 특성이 수시로 변할 수 있게 한다. 인터페이스의 이러한 실시간 변경은 다음을 가능하게 한다:
i) 복잡한 콘텍스트 및 조건 제어 상태 구축,
ii) 제어 환경에 히스테리시스를 동적으로 추가, 그리고,
iii) 사용자가 구동 시스템 자체의 인터페이스 어휘를 변경 또는 확장할 수 있는 애플리케이션 생성.
제스처 스트림을 파싱하기 위한 알고리즘 (3)은 (1)에서 명시된 그리고 (2)에서 등록된 제스처를, 입력되는 로우-레벨 제스처 데이터와 비교한다. 등록된 제스처에 대한 매치가 인지될 때, 매치된 제스처를 나타내는 이벤트 데이터가 구동 애플리케이션에 전달된다.
효율적인 실시간 매칭이 시스템 설계시 요망되고, 명시된 제스처는 가능한 빨리 처리되는 가능성들의 트리로 취급된다.
추가적으로, 명시된 제스처를 인지하기 위해 내부적으로 사용되는 원시 비교 오퍼레이터는 애플리케이션 프로그래머가 이용하기 위해 또한 노출되어, 심지어 애플리케이션 콘텍스트 내로부터도 추가적인 비교(예를 들어, 복잡한 또는 복합적인 제스처의 유연한 상태 검사)가 이루어질 수 있게 된다.
인지 "라킹"(locking) 의미론은 여기서 설명되는 시스템의 혁신사항이다. 이러한 의미론은 등록 API (2)에 의해 제시된다(그리고 규격 어휘 (1) 내에 있다). 등록 API 콜은 다음을 포함한다:
i) "입력" 상태 통지기 및 "계속" 상태 통지기와,
ii) 제스처 우선순위 명시기(gesture priority specifiers).
제스처가 인지되면, 그 "계속" 조건이 동일 또는 하위 우선순위의 제스처에 대한 모든 "엔트리" 조건에 대해 우선한다. 엔트리 및 계속 상태 사이의 이러한 구분은 인식되는 시스템 활용성에 크게 추가된다.
여기서 설명되는 시스템은 현실세계 데이터 에러 및 불확정성의 앞에서 견고한 작동을 위한 알고리즘을 포함한다. 로우-레벨 추적 시스템으로부터의 데이터는 (광학적 추적의 마커 배제, 네트워크 드롭-아웃, 또는 프로세싱 래그 등을 포함한, 다양한 이유로) 불완전할 수 있다.
잃어버린 데이터는 파싱 시스템에 의해 표시되고, 잃어버린 데이터의 양 및 범주에 따라, "가장 최근에 알려진" 또는 "가장 가능성높은" 상태로 보간된다.
특정 데이터 성분에 관한 데이터(가령, 특정 조인트의 배향)을 잃은 경우, 그러나, 특정 성분의 "마지막 알려진" 상태가 물리적으로 가능하게 분석될 수 있을 경우, 시스템은 실시간 매칭에서 이러한 마지막으로 알려진 상태를 이용한다.
역으로, 마지막으로 알려진 상태가 물리적으로 불가능하다고 분석될 경우, 시스템은 해당 성분에 대해 "가장 유력한 범위"로 다시 되돌아가서, 실시간 매칭에서 이러한 합성 데이터를 이용한다.
여기서 설명되는 사양 및 파싱 시스템이 "잘쓰는 손 불가지론"(handedness agnosticism)을 지원하도록 조립스럽게 설계되어 있어서, 복수(multi-hand) 제스처의 경우, 어느 손도 포즈 요건을 충족시키게 된다.
동공간적인 가상/디스플레이 및 물리적 공간(Coincident Virtual/Display and Physical Spaces)
앞서 설명한 바와 같이, 추적 시스템은 하나 이상의 디스플레이 장치("스크린") 상에서 묘사되는 가상 공간이 시스템의 조작자가 거주하는 물리적 공간과 동공간인 것으로 취급되는 환경을 제공할 수 있다. 이러한 환경의 일 실시예가 아래에서 설명되며, 상기 실시예는 고정 위치에서 3개의 프로젝터-구동 스크린을 포함하고, 단일 데스크탑 컴퓨터에 의해 구동되며, 여기서 설명되는 제스처 어휘 및 인터페이스 시스템을 이용하여 제어되지만, 실시예가 이에 제한되지는 않는다. 그러나, 임의의 개수의 스크린이 설명 중인 기술에 의해 뒷받침되고, 이러한 스크린들은 (고정식보다는) 모바일 방식일 수 있으며, 이러한 스크린들이 동시에 많은 독립적 컴퓨터에 의해 구동될 수 있고, 전체 시스템이 임의의 입력 장치 또는 기술에 의해 제어될 수 있다.
본 공개문에서 설명되는 인터페이스 시스템은 물리적 공간 내 스크린의 크기, 배향, 및 위치를 결정한다. 이러한 정보가 주어졌을 때, 시스템은 시스템 상에서 구동되는 컴퓨터 애플리케이션의 가상 공간 내로의 투영으로 이러한 스크린들이 위치하는(그리고 시스템 조작자들이 거주하는) 물리적 공간을 동적으로 매핑할 수 있다. 이러한 자동 매핑의 일부분으로, 시스템은 시스템에 의해 호스팅되는 애플리케이션의 필요에 따라, 다양한 방식으로 두 공간의 스케일, 각도, 깊이, 크기, 및 기타 공간적 특성을 또한 변환한다.
물리적 및 가상 공간 사이의 이러한 연속적 변환은 기존 플랫폼 상에서 구동되는 각각의 애플리케이션에 대해 단편적으로 구현되어야 하는, 또는, 기존 애플리케이션 플랫폼 상에서 실현하기 어려운 다수의 인터페이스 기술을 일관되고 전체적으로 이용할 수 있게 한다. 이러한 기술들은 다음의 사항을 포함하지만 이에 제한되지 않는다:
1) 만연한 자연적 인터페이스 기술로 "글자그대로 포인팅" 이용 - 제스처 인터페이스 환경에서 손 이용, 또는, 물리적 포인팅 툴 또는 장치를 이용.
2) 스크린의 움직임 또는 재배치에 대한 자동 보상.
3) 조작자 위치에 따라 변화하는 그래픽 렌더링 - 예를 들어, 깊이 인식을 개선하기 위해 시차이동(parallax shift) 시뮬레이션.
4) 온-스크린 디스플레이에 물리적 물체 포함 - 현실세계의 위치, 배향, 상태, 등을 고려. 예를 들어, 대형, 불투명 스크린 앞에 서있는 조작자는 스크린 뒤에 있는 (그리고 움직이고 있거나 배향을 변경하고 있는) 스케일 모델의 참 위치의 표현과 애플리케이션 그래픽을 모두 볼 수 있다.
글자그대로의 포인팅이 마우스-기반 윈도우 인터페이스 및 대부분의 다른 동시대 시스템에 사용되는 추상적인 포인팅과 다르다는 점에 주목하는 것이 중요하다. 이러한 시스템에서, 조작자는 가상 포인터와 물리적 포인팅 장치 사이의 변환을 관리하는 방식을 학습하여야 하고, 둘 사이에서 인지적으로 매핑을 하여야 한다.
이에 반해, 여기서 설명되는 시스템에서는 애플리케이션으로부터 또는 사용자 시각으로부터, (가상 공간이 수학적 조작에 대해 더욱 처리가 잘된다는 점을 제외하곤) 가상 및 물리적 공간 사이에 차이가 없고, 따라서, 조작자에에 요구되는 인지적 변환이 존재하지 않는다.
여기서 설명하는 실시예에 의해 제공되는 글자그대로 포인팅에 가장 가까운 유사점은, (예를 들어, 많은 ATM 기기에서 발견되는) 터치-감지식 스크린이다. 터치-감지식 스크린은 스크린 표면의 2차원 입력 공간과 스크린 상의 2차원 디스플레이 공간 사이에 일대일 매핑을 제공한다. 유사한 방식으로, 여기서 설명되는 시스템은 하나 이상의 스크린 상에 디스플레이되는 가상 공간과, 조작자가 거주하는 물리적 공간 사이에 유연한 매핑(가능하지만, 반드시 그러한 것은 아닌, 일대일 매핑)을 제공한다. 유사성의 유용함에도 불구하고, 이러한 "매핑 방식"을 3차원으로 확장하는 것, 그리고 임의적으로 큰 구조적 환경, 그리고 복수의 스크린은 사소한 것이 아님을 이해할 필요가 있다.
여기서 설명되는 구성요소에 추가하여, 시스템은 각각의 스크린 상의 디스플레이 공간과 환경의 물리적 공간 사이에서 (아마도 회전, 병진, 스케일링, 또는 다른 기하학적 변환에 의해 수정되는) 연속적인, 시스템-레벨 매핑을 구현하는 알고리즘을 또한 구현할 수 있다. 시스템은 렌더링 스택을 또한 포함하여, 연산 대상 및 매핑을 취하고, 가상 공간의 그래픽 표현을 출력한다. 추가적으로, 일 실시예의 시스템은 입력 이벤트 프로세싱 스택을 포함하여, 제어 시스템으로부터(현 실시예에서 제스처 및 포인팅 데이터를 시스템 및 마우스 입력으로부터) 이벤트 데이터를 취하고, 입력 이벤트로부터의 공간 데이터를 가상 공간의 좌표에 매핑시킨다. 변환된 이벤트는 그후 구동 애플리케이션에 전달된다. 더욱이, 일 실시예의 시스템은 "글루계층"(glue layer)을 포함하여, 근거리 네트워크 상의 여러 컴퓨터 간에 구동되는 호스트 애플리케이션들을 시스템이 호스팅할 수 있게 한다.
아래에서 상세히 설명되는 바와 같이, 서브시스템 "슬럭스"(slawx), "프로틴"(protein), 및 "풀"(pool)을 포함하는 "플라즈마"로 불리는 시스템을 포함하는 네트워크-기반 데이터 표현, 트랜시트, 및 인터체인지를 포함하는 공간-계속 입력 시스템의 실시예가 여기서 설명된다. 풀 및 프로틴은 프로세스 간에 공유되어야 하는 데이터를 캡슐화하기 위해 여기서 설명되는 방법 및 시스템의 구성요소다. 이러한 메커니즘은 프로틴 및 풀에 추가하여 슬럭스("슬러"(slaw)의 복수)를 또한 포함한다. 일반적으로, 슬럭스는 프로세스간 교환에 대해 최조-레벨의 데이터 규정을 제공하고, 프로틴은 질의 및 필터링을 위한 중간-레벨 구조 및 후크를 제공하며, 풀은 하이-레벨 조직 및 액세스 의미론을 제공한다. 슬럭스는 효율적인, 플랫폼-독립적 데이터 표현 및 액세스를 위한 메커니즘을 포함한다. 프로틴은 페이로드(payload)로 슬럭스를 이용하는 데이터 캡슐화 및 전송 기법을 제공한다. 풀은 일 프로세스 내에서, 로컬 프로세스들 간에, 원격 또는 분산 프로세스들 사이의 네트워크 간에, 그리고, 장기(가령, 디스크 상에, 등) 저장을 통해, 프로틴의 구조화된 유연한 집합, 오더링, 필터링, 및 배분을 제공한다.
여기서 설명되는 실시예의 구조 및 구현예는 수많은 기능들을 함께 가능하게 하는 여러 구조물을 포함한다. 예를 들어, 여기서 설명되는 실시예는 앞서 설명한 바와 같은 다수의 프로세스들 사이에서 데이터의 효율적 교환을 제공한다. 여기서 설명되는 실시예는 다양한 종류 및 용도의 데이터가 지원되도록, 유연한 데이터 "유형화" 및 구조를 또한 제공한다. 더욱이, 여기서 설명되는 실시예는 데이터 교환을 위한 유연한 메커니즘을 포함하며(가령, 로컬 메모리, 디스크, 네트워크, 등), 이 모두는 실질적으로 유사한 애플리케이션 프로그래밍 인터페이스(API)에 의해 구동된다. 더욱이, 설명되는 실시예는 서로 다른 프로그래밍 언어로 기록된 프로세스들 사이의 데이터 교환을 가능하게 한다. 추가적으로, 여기서 설명되는 실시예는 데이터 캐싱 및 집합 상태(aggregate state)의 자동적 관리를 가능하게 한다.
도 9는 일 실시예 하에서, 슬럭스, 프로틴, 및 풀을 이용한 데이터 표현을 포함하는 프로세싱 환경의 블록도다. 여기서 제시되는 실시예의 원칙적 구조는 슬럭스("슬러"(slaw)의 복수), 프로틴 및 풀을 포함한다. 여기서 설명되는 슬럭스는 효율적인 플랫폼-독립적 데이터 표현 및 액세스를 위한 메커니즘을 포함한다. 여기서 세부적으로 설명되는 바와 같이 프로틴은 데이터 캡슐화 및 전송 기법을 제공하며, 일 실시예의 프로틴의 페이로드는 슬럭스를 포함한다. 여기서 설명되는 바와 같이, 풀은 프로틴의 구조화된 유연한 집합화, 오더링, 필터링, 및 분산을 제공한다. 풀은 일 프로세스 내에서, 로컬 프로세스들 간에, 원격 또는 분산 프로세스들 사이의 네트워크 간에, 그리고 '장기'(가령, 디스크-상의) 저장을 통해, 프로틴을 이용한, 데이터 액세스를 제공한다.
도 10은 일 실시예 하의 프로틴의 블록도다. 프로틴은 길이 헤더, 디스크립(descrip) 및 인제스트(ingest)를 포함한다. 디스크립 및 인제스트 각각은 아래 세부적으로 설명되는 바와 같이, 슬러 또는 슬럭스를 포함한다.
도 11은 일 실시예 하의 디스크립의 블록도다. 디스크립은 아래 세부적으로 설명되는 바와 같이, 오프셋, 길이, 및 슬럭스를 포함한다.
도 12는 일 실시예 하의 인제스트의 블록도다. 인제스트는 아래 세부적으로 설명되는 바와 같이, 오프셋, 길이, 및 슬럭스를 포함한다.
도 13은 일 실시예 하의 슬러의 블록도다. 슬러는 아래 세부적으로 설명되는 바와 같이, 타입 헤더 및 타입-특정 데이터를 포함한다.
도 14A는 일 실시예 하의 풀의 프로틴의 블록도다. 프로틴은 길이 헤더("프로틴 길이"), 디스크립 오프셋, 인제스트 오프셋, 디스크립, 및 인제스트를 포함한다. 디스크립은 오프셋, 길이, 및 슬러를 포함한다. 인제스트는 오프셋, 길이, 및 슬롯를 포함한다.
여기서 설명되는 바와 같이 프로틴은 프로세스들 사이에 공유될 필요가 있는, 또는, 버스 또는 네트워크 또는 다른 프로세싱 구조 간에 이동될 필요가 있는, 데이터를 캡슐화하기 위한 메커니즘이다. 예를 들어, 프로틴은 사용자 인터페이스 이벤트에 대응하는(또는 이와 연관된) 데이터를 포함하는 데이터의 전송 및 조작을 위한 개선된 메커니즘을 제공한다 - 특히, 일 실시예의 사용자 인터페이스 이벤트는 앞서 설명한 제스처 인터페이스의 사항들을 포함한다. 추가적인 예로서, 프로틴은 상태 정보와, 그래픽 데이터 또는 이벤트를 포함하는, 그러나 이에 제한되지 않는, 데이터의 전송 및 조작을 위한 개선된 메커니즘을 제공한다. 프로틴은 구조화된 레코드 포맷으로서, 레코드를 조작하기 위한 방법들의 관련 세트다. 여기서 사용되는 레코드 조작은 구조 내로 데이터 입력, 구조로부터 데이터 추출, 및 데이터의 포맷 및 존재 질의를 포함한다. 프로틴은 다양한 컴퓨터 언어로 기록된 코드를 통해 사용되도록 구성된다. 프로틴은 여기서 설명되는 바와 같이, 풀에 대한 기본 구축 블록이 되도록 또한 구성된다. 더욱이, 프로틴은 포함하는 데이터를 온전히 유지하면서, 프로세스 사이 그리고 네트워크 간을 원시적으로 이동할 수 있도록 구성된다.
종래의 데이터 전송 메커니즘에 반해, 프로틴은 유형화되지 않는다. 유형화되지 않지만, 프로틴은 강력하고 유연한 패턴-매칭 시설을 제공하며, 그 위에 "유형과 같은" 기능이 구현된다. 여기서 설명되는 바와 같이 구현되는 프로틴은 내재적으로 멀티-포인트다(하지만 점대점 형태는 멀티-포인트 전송의 서브세트로 쉽게 구현된다). 추가적으로, 프로틴은 예를 들어, 메모리-내, 디스크-상, 그리고 와이어(네트워크)-상 포맷에서 다르지 않은(또는 수행되는 선택적 최적화의 유형만이 다른) "범용" 레코드 포맷을 규정한다.
도 15 및 19A를 참조하면, 일 실시예의 프로틴은 바이트의 선형 시퀀스다. 이러한 바이트 내에서는 디스크립 리스트와, 인제스트라 불리는 한 세트의 키-값 쌍이 캡슐화된다. 디스크립 리스트는 임의적으로 정교하지만 효율적으로 필터링가능한 프로틴-당 이벤트 디스크립션을 포함한다. 인제스트는 프로틴의 실제 콘텐트를 포함하는 한 세트의 키-값 쌍을 포함한다.
네트워크-친화적 및 멀티-포인트 데이터 상호교환에 관한 일부 핵심적 아이디어와 키-값 쌍에 대한 프로틴의 고려는 "튜플"(가령, Linda, Jini)의 개념에 특권을 주는 선행 시스템과 공유된다. 프로틴은 표준의, 최적화가능한 패턴 매칭 기판을 제공하기 위해 디스크립 리스트의 이용을 포함한, 여러 주요 방식으로 튜플-배향 시스템과 다르다. 프로틴은 레코드 포맷에 대한 "인터페이스"의 여러 특정 구현예와 함께, 다양한 저장 및 언어 구조에 적절한 레코드 포맷의 철저한 규격의 튜플-지향 시스템과 또한 다르다.
프로틴의 디스크립션을 살펴보면, 프로틴의 첫번째 4바이트 또는 8바이트는, 일 실시예에서 16바이트의 배수여야 하는 프로틴의 길이를 명시한다. 이러한 16-바이트 입도는 바이트-정렬 및 버스-정렬 효율이 동시대 하드웨어 상에서 실현가능함을 보장한다. 자연스럽게 "콰드-워드 정렬"(quad-word alligned)되지 않는 프로틴은 그 길이가 16바이트의 배수이도록, 임의적 바이트로 패딩된다.
프로틴의 길이 부분은 다음의 포맷을 갖는다: 빅-엔디안 포맷으로 길이를 명시하는 32비트 - 최하위 4비트는 마크로-레벨 프로틴 구조 특성을 표시하기 위한 플랙으로 작용함 - 와, 프로틴 길이가 2^32 바이트보다 클 경우 추가적인 32비트.
일 실시예의 16-바이트-정렬 단서는 첫번째 4바이트의 최하위 비트들이 플래그로 가용함을 의미한다. 그리고 첫번째 3개의 저차수 비트 플래그는 프로틴의 길이가 첫번째 4바이트로 표현될 수 있는지 또는 8바이트를 요구하는지 여부를 표시하고, 프로틴이 빅-엔디안 또는 리틀-엔디안 바이트 오더링을 이용하는지 여부를 표시하며, 프로틴이 표준 또는 비-표준 구조를 이용하는지 여부를 각각 표시하지만, 프로틴은 이에 제한되지 않는다. 네번째 플래그 비트는 차후 사용을 위해 예비되어 있다.
8-바이트 길이 플래그 비트가 설정될 경우, 프로틴의 길이는 다음 4방디트를 판독함으로써, 그리고, 빅-엔디안, 8-바이트 정수의 고차수 바이트로 이들을 이용함으로써 연산된다(이미 읽은 4바이트는 저차수부에서 공급됨). 리틀-엔디안 플래그가 설정되면, 프로틴의 모든 이진 수치 데이터가 리틀-엔디안으로 해역되어야 한다(그렇지 않을 경우 빅-엔디안). 비-표준 플래그 비트가 설정될 경우, 나머지 프로틴은 아래 설명되듯이 표준 구조에 순응하지 않을 것이다.
비-표준 프로틴 구조는, 프로틴 및 풀을 이용하여 시스템 프로그래머에 가용한 비-표준 프로틴 포맷에 대한 설명 및 동기화를 위한 다양한 방법이 존재함을 언급하는 것과, 공간 또는 연산 사이클이 제약될 때 이러한 방법들이 유용할 수 있음을 언급하는 것 외엔, 여기서 더 설명되지 않을 것이다. 예를 들어, 일 실시예의 가장 짧은 프로틴은 16바이트다. 표준-포맷 프로틴은 이러한 16바이트 내에 실제 페이로드 데이터를 끼워맞출 수 없다(그 중 라이언의 공유는 프로틴의 성분 부분의 위치를 설명하기 위해 이미 밀려난 상태다). 그러나 비-표준 포맷 프로틴은 데이터에 대한 16바이트 중 12를 이용할 수 있다고 믿을 수 있다. 프로틴을 교환하는 2개의 애플리케이션은 이들이 내미는 16-바이트 길이 프로틴이 실시간 아날로그-디지털 컨버터로부터, 예를 들어, 12개의 8-비트 센서 값들을 나타내는 12바이트를 항상 포함함을 상호 결정할 수 있다.
길이 헤더 직후에, 프로틴의 표준 구조에서, 2개 dlo상의 가변-길이 정수 수치가 나타난다. 이러한 수치들은 디스크립 리스트 및 제 1 키-값 쌍(인제스트)의 첫번째 요소에 대한 오프셋을 각각 명시한다. 이러한 오프셋은 여기서 각각 디스크립 오프셋 및 인제스트 오프셋으로 불린다. 이러한 수치의 각각의 쿼드의 바이트 오더는 프로틴 엔디안니스 플래그 비트에 의해 명시된다. 각각의 경우, 첫번째 4바이트의 최상위 비트는 수치가 4 또는 8 바이트 폭인지 여부를 결정한다. 최상위 비트(msb)가 설정되면, 첫번째 4바이트가 더블-워드(8바이트) 수치의 최상위 바이트다. 이는 "오프셋 폼"(offset form)으로 여기서 불린다. 디스크립 및 쌍들을 가리키는 별도의 오프셋을 이용함으로써, 디스크립 및 쌍들이 서로 다른 코드 경로에 의해 취급될 수 있고, 따라서, 예를 들어, 디스크립 패턴-매칭 및 프로틴 조립에 관한 특정 최적화를 가능하게 한다. 프로틴 시작시의 이러한 두 오프셋의 존재에 의해 여러가지 유용한 최적화가 가능해진다.
대부분의 프로틴은 8-바이트 길이 또는 포인터를 요구할만큼 크지 않아서, 일반적으로 길이(플래그를 가짐) 및 2개의 오프셋 수치는 첫번째 3바이트의 프로틴만을 점유할 것이다. 많은 하드웨어 또는 시스템 구조 상에서, 첫번째를 넘어서는 소정 수치의 바이트의 인출(fetch) 또는 판독은 "비어 있다"(free)(가령, 16바이트는 정확하게 동일 수치의 클럭 사이클을 소요하여, 단일 바이트로 셀 프로세서의 메인 버스 간을 끌어당긴다).
여러 사례에서, 프로틴 내부에서 구현예-특정 또는 콘텍스트-특정 캐싱 또는 메타데이터를 실현하는 것이 유용하다. 오프셋을 이용함으로써, 임의적 크기의 "구멍"이 프로틴 시작 근처에서 생성될 수 있고, 그 안에 이러한 메타데이터가 들어갈 수 있다. 8 바이트의 메타데이터를 이용할 수 있 구현예는 프로틴의 길이 헤더의 매 인출과 함께, 많은 시스템 구조 상에서 무료로 이러한 바이트들을 얻는다.
디스크립 오프셋은 제 1 디스크립 엔트리와 프로틴의 시작 사이의 바이트의 수치를 명시한다. 각각의 디스크립 엔트리는 다음 디스크립 엔트리에 대한 오프셋(물론, 오프셋 형태)과, 이어서, 가변-폭 길이 필드(다시 오프셋 포맷), 이어서 슬로를 포함한다. 디스크립이 더 없을 경우, 오프셋은 규정에 의해, 4바이트의 제로다. 그렇지 않을 경우, 오프셋은 디스크립 엔트리와 후속 디스크립 엔트리의 시점 사이의 바이트 수치를 명시한다. 길이 필드는 슬로의 길이를 바이트 단위로 명시한다.
대부분의 프로틴에서, 각각의 디스크립은 슬로 스트링 방식으로 포맷된 스트링이다: 4-바이트 길이/유형 헤더 - 최상위 비트로 설정되고 하위 30비트만이 길이를 명시하는데 사용됨 - 와, 이어서, 헤더의 표시된 수치의 데이터 바이트. 통상적으로, 길이 헤더는 프로틴으로부터 엔디안니스(endianness)를 취한다. 바이트는 UTF-8 문자를 인코딩한다고 가정된다(따라서, 문자의 수치는 바이트의 수치와 반드시 동일할 필요가 없음에 주의하라).
인제스트는 프로틴과 제 1 인제스트 엔트리의 시작 사이에서 바이트의 수치를 명시한다. 각각의 인제스트 엔트리는 다음 인제스트 엔트리에 대한 오프셋(오프셋 폼)과, 이어서, 다시, 길이 필드 및 슬로를 포함한다. 인제스트 오프셋은 다음 디스크립 엔트리가 아니라 다음 인제스트 엔트리를 가리킨다는 점을 제외하곤, 디스크립 오프셋과 기능적으로 동일하다.
대부분의 프로틴에서, 모든 입수(ingest)는 일반적으로 키/값 쌍으로 사용된, 두 값 리스트를 포함하는 슬로 콘 타입을 갖는다. 이 같은 슬로 콘 기록은 4-바이트 길이 헤더를 포함하며, 제2 최고 유효 비트 세트 그리고 길이를 명시하도록 사용된 하위의 오직 30 비트; 상기 값(제2 값) 엘리먼트의 시작과는 4-바이트 오프셋; 키 엘리먼트의 4-바이트 길이; 키 엘리먼트에 대한 슬로 기록; 값 엘리먼트의 4-바이트 길이; 그리고 마지막으로 상기 값 엘리먼트에 대한 슬로 기록를 갖는다.
일반적으로, 콘 키는 슬로 스트링이다. 여러 프로틴에 대한 테이터의 듀플리케이션 그리고 슬로 콘 길이 그리고 오프셋 필드는 세부화 그리고 최적화를 위한 더욱 많은 기회를 제공한다.
상기 설명한 바와 같이, 프로틴 내로 유형화된 데이터를 삽입하기 위해 사용된 구조는 태그된 바이트-시퀀스 명세서와 "슬로"(복수는 "슬로(들)")라 불리는 추상적 내용이다. 슬로는 유형화된 데이터(가능하면 집약된) 조각을 나타내는 바이트들의 선형 시퀀스이며, 슬로가 생성되고, 수정되며, 메모리 공간, 저장 매체, 그리고 머신들 사이에서 이동될 수 있도록 허용하는 프로그래밍-언어-특정 API와 관련된다. 상기 슬로 유형(타입) 방법은 확장할 수 있으며 가능한 한 가볍도록 되고, 그리고 어떠한 프로그래밍 언어로부터도 사용될 수 있는 공통적인 기초가 되도록 한다.
효율적이고, 대용량의 인터-처리 통신 메카니즘을 구축하기 위한 바램은 슬로 구성의 드라이버이다. 종래의 프로그래밍 언어는 처리-특정 메모리 레이아웃에서 잘 동작하는 복잡한 데이터 구조 및 유형 장비를 제공한다. 그러나 이들 데이터 표시는 데이터가 처리들 사이에서 이동되거나 디스크에 저장되어야 하는 때 변함없이 다운(break down)되는 문제가 있다. 먼저, 상기 슬로 아키텍처는 상당히 효율적이고, 멀티 플랫폼 친화적이며, 인터-처리 통신을 위한 로우-레벨 데이터 모델이다.
그러나 더욱 중요한 것은, 슬로가 프로틴과 함께 영향을 미치도록 구성되며, 미래 컴퓨터 하드웨어(마이크로프로세서, 메모리 제어기, 디스크 제어기)의 개발을 가능하게 하도록 구성된다는 것이다. 통상 이용되는 마이크로프로세서의 지시 세트에 대한 몇 개의 특정 추가가 슬로가 가장 좋은 프로그래밍 언어에서 사용된 방법만큼 단일-처리, 인-메모리 데이터 레이아웃에 대하여 조차 효율적인 것이 되도록 가능하게 한다.
슬로 각각은 유형-특정 데이터 레이아웃에 의한 가변-길이 유형 헤더를 포함한다. C, C++ 및 루비(Ruby)에서 완전한 슬로 기능을 지원하는 한 실시 예에서, 유형들은 언어 각 각으로부터 접근가능한 시스템 헤더 내에서 정의된 유니버설 정수에 의해 표시된다. 더욱 복잡하고 유연한 유형 레졸루션 기능이 또한 가능하며, 예를 들면, 유니버설 오브젝트 ID 그리고 네트워크 룩엎 테이블을 통한 간접 유형화이다.
한 실시 예의 상기 슬로 구성은 슬로 기록이 루비 그리고 C++로부터 언어-친화 방식으로 오브젝트로서 사용될 수 있도록 허용한다. C++ 컴파일러 샌니티-검사 슬로 바이트 레이아웃 밖의 유용성 슈트는 개별 슬로 유형에 특정한 헤더 파일 및 매크로를 생성하며, 루디를 위한 바인딩을 자동으로 발생시킨다. 결과적으로, 잘 구성된 슬로 유형은 단일 처리 내로부터 사용된 때도 매우 효율적이다. 처리의 접근 가능 메모리 내 어느 곳 어떠한 슬로도 "직렬화(deserialization)" 단계 또는 복사 없이 어드레스 될 수 있다.
한 실시 예의 슬로 기능은 다음 중 하나 이상을 수행하기 위해 API 장비를 포함한다: 특정 유형의 새로운 슬로를 발생시킨다; 디스크 또는 메모리 내 바이트로부터 한 슬로에 대한 언어-특정 기준을 발생시키거나 구축한다; 유형--특정 방식으로 한 슬로 내에 데이터를 삽입한다; 한 슬로 내로부터 데이터를 검색한다; 한 슬로를 클론한다; 그리고 한 슬로 내의 모든 데이터의 다른 포맷 속성들 그리고 앤디안(endianness)을 번역(전환)시킨다. 슬로의 모든 종(species)들은 상기 동작을 실현한다.
도 14B/1 및 14B2는 슬로 헤더 포맷을 도시하는 한 실시 예이다. 상기 슬로에 대한 상세한 설명이 하기에서 제공된다.
각 슬로의 내부 구조가 타입 해상도, 인캡슐된 데이터로의 액세스, 그리고 그 같은 슬로 경우에 대한 크기 정보 각 각을 가장 적합하게 한다. 한 실시 예에서, 슬로 타입의 전 세트가 디자인에 의해 최소 완료되며, 슬로 스트링; 슬로 단점(즉 다이애드); 슬로 리스트; 그리고 반 다스 정도 기본 속성의 순열으로 이해되는 광범위 세트의 개별 숫자 타입을 포함한다. 모든 슬로의 다른 기본 특성은 그 크기이다. 한 실시 예에서, 슬로는 4 배수 크기의 바이트 길이를 가지며; 이들 4-바이트 단어는 본 명세서에서 '쿼드(quads)'로 칭하여진다. 일반적으로, 이 같은 쿼드-기반 크기는 슬로를 현대 컴퓨터 하드웨어 아키텍처의 구조와 잘 어울리도록 한다.
한 실시 예에서, 모든 슬로의 처음 4개 바이트가 타입-설명 그리고 다른 메타 정보를 인코딩하고, 그리고 특정 타입 의미를 특정 비트 패턴으로 돌리는 헤더 구조를 포함한다. 예를 들면, 슬로 헤더의 상기 제1 (최고 유효) 비트는 그 같은 슬로의 크기(쿼드-단어에서의 길이)가 초기 4-바이트 타입 헤더를 따르는가를 명시하도록 사용된다. 이 같은 비트가 설정된 때, 상기 슬로의 크기는 슬로의 다음 4 바이트에서 명백히 기록된다(예를 들면, 바이트 5 내지 8); 상기 슬로의 크기가 4 바이트로 표시될 수 없다면(즉, 그 크기가 32분의 2 파워보다 크다면), 그러면 상기 슬로의 초기 4 바이트의 다음 최고 유효 비트가 설정되며, 이는 상기 슬로가 8-바이트(4 바이트가 아님) 길이를 가짐을 의미한다. 그와 같은 경우, 조사 과정에 의해 5 내지 12의 서수 바이트로 저장된 슬로의 길이를 찾을 수 있다. 반면에, 작은 수의 슬로 타입은 대부분 완전히 명시된 전형적인 비트 패턴이 상기 4 바이트 슬로 헤더에 많은 비트들이 "사용되지 않도록" 함을 의미한다; 그리고 이 같은 경우 이들 비트들은 슬로의 길이를 인코딩하도록 사용될 수 있으며, 그렇지 않으면 필요로 하였을 비이트들(5 내지 8)을 절약한다.
예를 들면, 한 실시 예는 상기 슬로 헤더의 최고 유효 비트(플래그를 그 "길이가 따른다")는 그 같은 슬로가 "위 콘스(wee cons)"임을 나타내도록 하기 위해 다음 비트를 설정하거나 설정하지 않으며, 이 같은 경우, 슬로의 길이(쿼드)는 남아있는 30개 인코딩된다. 이와 유사하게, "위 문자열(wee string)"은 헤더에서 패턴(001)으로 표시되며, 이는 슬로-문자열 길이 표시를 위하여 29 개 비트를 남기며; 그리고 상기 헤더 선두(0001)는 "위 리스트"를 설명하고, 이는 28 개의 이용가능한 길이-표시 비트에 의해 크기가 2 내지 28 쿼드의 슬로 리스트 일 수 있다. "완전한 문자열"(또는 콘스 또는 리스트)는 헤더에서 다른 비트 서명을 가지며, 슬로 길이가 5 내지 8(또는 극단의 경우 12) 바이트로 분리하여 인코딩되기 때문에 상기 최고 유효 헤더 비트가 필요적으로 설정된다. 플라즈마 실현은 슬로 구축의 경우 이들 구조의 "위" 버전을 사용할 것인지 아니면 "전(full)" 버전을 사용할 것인지를 "결정하며" (이 결정은 결과의 크기가 이용가능한 위 비트에서 "적합"한 가를 기초로 하여 만들어진다), 그러나 '전' 버전과 '위' 버전 사이 세부적인 사항은 슬로 문자열, 또는 슬로 콘스, 또는 슬로 리스트를 사용하기만 하는 플라즈마 실현 사용자로부터는 숨겨진다.
숫자 슬로(slawx)는 한 실시 예에서, 리딩 헤더 패턴(00001)으로 표시된다. 뒤이은 헤더 비트들은 임의의 순열 조합이 될 수 있는 한 세트의 직교 특성을 나타내도록 사용된다. 한 실시 예가 5개의 그와 같은 문자 비트를 사용하여 그 숫자가:(1) 부동 소수점; (2) 복소수; (3) 부호; (4) "와이드(wide)"; (5) "스텀피(stumpy)" ((4)"와이드" 그리고 (5) "스텀피"는 순열되어 8, 16, 32, 그리고 64 비트 수의 표시를 표시하도록 한다). 두 추가 비트 (예를 들면, (7) 및 (8))는 인캡슐된 숫자 데이터가 2-, 3-, 또는 4-엘리먼트 벡터(두 비트 모두가 제로일 때는 상기 숫자가 "1-엘리먼트 벡터 (즉, 스칼라)"임을 암시한다. 이와같은 실시 예에서, 4 번째 헤더 바이트의 8 비트가 인캡슐된 숫자 데이터의 크기(바이트로, 쿼드가 아님)를 인코드하도록 사용된다. 이 같은 크기 인코딩은 1 씩 오프셋되며, 1과 2백 56을 포함하여 1과 2백 56 사이 바이트를 표시할 수 있도록 한다. 마지막으로, 두 개의 문자 비트(예를 들면, (9) 및 (10))가 사용되어 숫자 데이터가 개별적인 숫자 엔티티의 어레이를 인코딩함을 나타내도록 하며, 이들 어레이 각각이 문자 비트 (1) 내지 (8)로 표시된 타입을 갖는다. 한 어레이의 경우, 개별적인 숫자 엔티티는 개별적인 헤더로 각각 태그 되지 않으며, 단일 헤더, 가능하면 명백한 슬로 크기 정보에 이어 연속적인 데이터로서 팩(pack)된다.
이 같은 실시 예는 단순하고 효율적인 슬로 듀플리케이션(slaw duplication)을 허용하며(이는 바이트-포-바이트 카피로서 실시될 수 있다), 매우 간단하고 효율적인 슬로 비교를 제공한다(만약 고려된 이들 컴포넌트 바이트 각각이 순서대로 일대일 매치가 있기만 하면 두 슬로는 본 실시 예에서 동일하다). 이 같은 후자의 특성은 가령 프로틴 아키텍쳐의 효율적인 실현에 중요하며, 그 중요한 그리고 설득력있는 특징 중 한 가지는 검색하거나 프로틴의 디스크립트 리스트(descrips list)에 '일치'하도록 하는 기능이다. 또한, 본원 명세서에서 실시 예는 집계 슬로 형식(예를 들면, 슬로 콘 및 슬로 리스트)이 단순하게 그리고 효율적으로 구성되도록 허용하는 것이다. 예를 들면, 한 실시 예에서, 두 컴포넌트 슬로로부터 한 슬로 콘스(slaw cons)를 만들며, 이는 그들 자신의 집계를 포함하여 어떠한 타입일 수도 있다:(a) 각 컴포넌트 슬로의 크기를 문의; (b) 두 컴포넌트 슬로 크기 합과 동일한 크기의 메모리를 할당하며, 하나, 둘, 또는 세 개의 쿼드가 상기 헤드-플러스-크기 구조에 필요하다; (c) 슬로 헤더(플러스 크기 정보)를 처음 4, 8, 또는 12 바이트에 기록한다; 그리고 다음으로 (d) 상기 컴포넌트 슬로의 바이트를 바로 뒤따르는 메모리 내에 복사한다. 중요한 내용으로서, 이 같은 구성 루틴은 두 컴포넌트 슬로의 타입에 대하여 아무것도 알 필요가 없으며; 오직 이들의 크기(그리고 바이트 시퀀스로서 접근 가능성)만이 문제가 된다. 이와 동일한 프로세스가 슬로 리스트의 구조와 관계하며, 이는 (아마도) 헤테로 타입의 임의의 많은 하위 슬로의 캡슐화 정렬이다.
메모리 내 연속적인 바이트와 같은 슬로 시스템의 기본적인 포맷의 또 다른 시퀀스는 "통과" 활동--반복 사용패턴 사용과 관련하여, 슬로 리스트에 저장된 개별 슬로(individual slawx)에 대한 순차적인 액세스를 얻는다. 프로틴 구조 내 상기 디스크립트와 입수(ingest)을 나타내는 개별적인 슬로는 이와 유사하게 트래버스되어야 한다. 이 같은 방법은 놀랍게 간단하고 효율적인 방식으로 달성되어; 한 슬로 리스트에서 다음 슬로에 "도달하도록"하며, 현재 슬로의 길이를 메모리 내 그 위치에 추가하고, 그리고 상기 결과의 메모리 위치는 다음 슬로의 헤더와 동일하다. 이 같은 단순함은 상기 슬로 및 프로틴 디자인이 "간접"을 피하기 때문이며; 어떠한 포인터도 없고, 데이터가 단순히 전체로 존재하기 때문이다.
슬로 비교와 관련하여, 플라즈마 시스템의 완전한 실현이 다른 동작 시스템, CPU, 및 하드웨어 아키텍쳐에서 다른 그리고 양립하지 않는 데이터 표시 방법의 존재를 인식하여야 한다. 주요한 이와 같은 차이는 바이트-오더링 방법(예를 들면, 리틀- 대 빅-엔디안) 그리고 부동-소수점 표시를 포함한다; 다른 차이도 존재한다. 상기 플라즈마 명세서는 슬로에 의해 인캡슐된 데이터가 해석 보장되어야 한다(즉, 상기 슬로가 조사되어 지는 아키텍처 또는 플랫폼의 네가티브 포맷으로 나타나야 한다). 이 같은 요구는 상기 플라즈마 시스템 자신이 데이터 포맷 변환에 대하여 책임이 있음을 의미한다. 그러나, 본원 명세서는 상기 변환이 슬로가 이 것을 검사할 실행 처리에 "가시적"이게 되기 전에 발생 된다. 따라서 어느 포인트에서 그와 같은 포맷 c 변환을 수행할 것을 선택하는 개별적인 실현에 달려있으며; 두 가지 적절한 방법은 슬로 데이터 페이로드가 (1) 개별 슬로가 "그 것이 팩 되었던 프로틴으로부터 "제외되는 때", 또는 (2) 한 프로틴내 모든 슬로에 대해, 그 같은 프로틴이 그것이 존재하였던 풀(pool)로부터 추출되는 때, 로컬 아키텍처의 데이터 포맷에 일치하게 된다. 상기 변환 자극은 하드웨어-지원 실현 가능성을 고려한다. 예를 들면, 명백한 플라즈마 기능을 갖는 네트워킹 칩셋은 인텔리전트하게 그리고 전송 순간에 수신 시스템의 알려진 특징에 기초하여 포맷 변환을 수행할 것을 선택한다. 선택적으로, 전송의 처리는 데이터 페이로드를 정본 포맷(canonical format)으로 변환시키며, 상기 수신 처리는 정본으로부터 "로컬" 포맷으로 대칭적으로 변환된다. 또 다른 실시 예는 "금속에서" 포맷 변환을 수행하며, 로컬 메모리에서도 데이터가 항상 정본 포맷에 저장되고, 그리고 메모리 제어기 하드웨어 자체가 데이터가 메모리로부터 회수되고 근접 CPU의 레지스터에 위치하는 때 그 같은 변환을 수행함을 의미한다.
한 실시 예의 최소 (그리고 read-only) 프로틴 실현은 하나 이상의 애플리케이션에서의 동작 또는 프로틴들을 사용하는 프로그래밍 언어를 포함한다. 도 14C는 한 실시 예에서 프로틴을 사용하기 위한 흐름도(650)이다. 동작이 한 프로틴의 바이트 내 길이를 문의(652)함에 의해 시작된다. 디스크립트 엔트리의 수가 문의 된다(654). 입수의 수가 문의 된다(656). 디스크립트 엔트리가 인텍스 번호에 의해 검색된다. 한 입수이 인텍스 번호에 의해 검색된다(660).
본원 명세서에서 설명된 실시 예는 또한 프로틴이 구성되고 데이터로 채워지도록 하는 기본 방법을 정의하다. 도 14D는 한 실시 예에서 프로틴을 구성시키거나 발생시키기 위한 흐르도(670)이다. 동작이 새로운 프로틴의 생성(672)에서 시작된다. 일련의 디스크립트 엔트리(descrips entries)가 첨부된다(674). 한 입수이 또한 첨부된다(676). 매치하는 디스크립트의 존재가 문의 되며(678), 그리고 매치하는 입수키(ingest key)의 존재가 문의 된다(680). 한 입수 키가 제공되는 때, 한 입수 값이 검색 된다(682). 디스크립트에서 패턴 매칭이 수행된다(684). 비 구조화된(non-structured) 메타 데이터는 상기 프로틴 시작 근접하여 삽입된다(686).
상기 설명하는 바와 같이, 슬로는 인터처리 교환을 위한 가장 낮은 레벨의 데이터 정의를 제공하며, 프로틴들이 중간 레벨의 구조 그리고 문의와 필터링을 위한 후크(hooks)를 제공하며, 풀(pools)이 높은 레벨의 조직과 액세스 시멘틱(semantics)을 제공한다. 상기 풀은 프로틴을 위한 저장소이며, 선형 시퀀싱 및 상태 캐싱을 제공한다. 상기 풀은 또한 여러 다른 타입의 멀티플 프로그램 또는 애플리케이션에 의한 멀티-처리 액세스를 제공한다. 또한, 상기 풀은 한 세트의 공통적인 최적화 필터링 그리고 패턴-매칭 행동을 제공한다.
한 실시 예의 풀들은 수만 개의 프로틴을 수용할 수 있으며, 상태를 유지하도록 작용하여, 개별적인 프로세스가 멀티-프로세스 프로그램 코드에 공통인 많은 지루한 북키핑을 오프로드할 수 있다. 한 풀은 이용될 수 있는 과거 프로틴에 대한 큰 버퍼를 유지시키며-- 플라톤 풀은 명백하게 무한하다-- 따라서 관련 프로세스가 의지에 따라 한 풀 내에서 전방과 후방으로 모두 스캔할 수 있다. 상기 버퍼의 크기는 물론 실시에 종속적이나, 공통 용도에서 수 시간 또는 수일 동안 프로틴들을 유지시키는 것이 또한 가능하다.
본원 명세서에서 사용된 풀 사용의 가장 공통적인 스타일은 기존 인터-프로세스 통신 프레임워크에 의해, 기게적인, 포인트-투-포인트 방식과 대비하여, 생물학적인 은유로 큰 것을 작은 것으로 자르는 것이다. 상기 명칭 '프로틴'은 생물학적 영감을 암시한다; 풀 내의 데이터 프로틴들은 살아있는 조직 내 화학적 단백질이 많은 수의 세포 에이전트에 의해 패턴 매칭과 필터링을 위해 이용될 수 있는 것처럼 많은 수의 컴퓨터 프로세스에 의해 유연한 문의 및 패턴 매칭을 위해 이용될 수 있다.
두 가지의 추가적인 추상적인 의미는 생물학적 은유에 의존하며, "핸들러(handlers)"의 사용, 그리고 골지 프레임워크(Golgi framework)의 사용을 포함한다. 한 풀 내에 참여하는 프로세스가 다수의 핸들러를 생성한다. 핸들러는 매치 컨디션을 핸들 행동과 연결시키는 상대적으로 작은 번들 코드이다. 하나 또는 둘 이상의 핸들러를 풀에 연결시킴에 의해, 한 프로세스가 상태를 인캡슐하고 새로운 프로틴에 반응하는 유연한 콜-백 트리거를 설정한다.
여러 풀 내에 참여하는 한 프로세스가 추상적인 골지 클래스로부터 상속한다. 상기 골지 프레임워크는 멀티플 풀과 핸들러를 관리하기 위한 다수의 유용한 루틴을 제공한다. 상기 골지 클래스는 또한 부-자 관계를 인캡슐화하며, 한 풀을 사용하지 않는 로컬 프로틴 교환을 위한 메카니즘을 제공한다.
한 실시 예에서 제공된 풀 API는 풀들이 다양한 방법으로 실시되도록 구성되어서, 시스템-특정 목적 그리고 주어진 하드웨어와 네트워크 아키텍처의 이용가능한 기능 모두를 설명할 수 있도록 한다. 풀들이 의존하는 상기 두 기본 시스템 제공은 저장 장치 및 인터-프로세스 통신의 수단이다. 상기 설명된 현존하는 시스템은 공유 메모리, 가상 메모리, 그리고 저장 장치를 위한 디스크를 위한 유연한 조합, 그리고 IPC 큐 그리고 인터-프로세스 통신을 위한 TCP/IP 소켓을 사용한다.
상기 설명된 프로틴은 프로틴 데이터 내용을 다른 애플리케이션들과 공유하는 한 방법으로서 풀들로 제공된다. 도 15는 한 실시 예에서 슬로, 프로틴, 그리고 풀을 사용하여 데이터 교환을 포함하는 프로세스 환경의 블록 도이다. 이 같은 실시 예 환경은 세 가지 장치(예를 들면, 장치 X, 장치 Y, 그리고 장치 Z를 포함하며, 본원 명세서에서 집합적으로 "장치들"로 칭하여진다.)를 포함하며, 상기 설명된 바와 같이 슬로, 프로틴 그리고 풀의 사용을 통하여 데이터를 공유한다. 상기 장치들 각각은 세 개의 풀(가령, Pool 1, Pool 2, Pool 3)에 결합 된다. Pool 1은 다수의 프로틴(가령 , Protein XI , Protein Z2, Protein Y2, Protein X4, Protein Y4)을 포함하며, 이들은 각 장치들로부터 그 같은 풀로 기여 또는 전달된다.(가령, 프로틴 Z2는 장치 Z에 의해 풀 1로 전달되거나 기여된다. 등등) 풀 2는 다수의 프로틴(가령, Protein Z4, Protein Y3, Protein Zl, Protein X3)을 포함하며, 이들은 상기 풀로부터 각각의 장치로 기여 또는 전달된다 (가령, 프로틴 Y3는 장치 Y에 의해 풀(2)로 전달 또는 기여된다. 등등). 풀 3은 다수의 프로틴(가령, Protein Yl, Protein Z3, Protein X2)을 포함하며, 이들은 각각의 장치로부터 상기 풀로 전달 또는 기여된다 (가령, 프로틴 X2는 장치 X에 의해 풀 3으로 전달 또는 기여된다.). 상기 설명된 예가 세 개의 풀들로 결합 또는 연결되는 세 개의 장치들을 포함하지만, 어떠한 수의 장치들도 어떠한 수의 풀로 결합되거나 연결될 수 있으며, 어떠한 수의 풀도 어떠한 수의 장치들로부터 기여된 어떠한 수의 프로틴을 포함할 수 있다. 이 같은 예의 상기 프로틴 그리고 풀은 도 18-23과 관련하여 설명되는 것과 같다.
도 16은 다수의 장치들 그리고 플라즈마 구성(가령, 풀, 프로틴, 그리고 슬로)이 사용되어 다수의 실행 프로그램이 한 실시 예에서 장치들에 의해 발생된 이벤트들을 공유하도록 하고 이에 집합적으로 응답하도록 허용하는, 하나 이상의 장치들에서 실행되는 다수의 프로그램을 포함한다. 이 같은 시스템은 그러나 멀티-사용자, 멀티-장치, 멀티 컴퓨터 상호 작용 컨트롤 시나리오 또는 구성의 한 예이다. 특히, 이 같은 예에서, 다수의 장치(가령, 장치 A, B, 등등), 그리고 이 같은 장치들에서 실행되는 다수의 프로그램(가령, 애플리케이션 AA-AX, 애플리케이션 BA-BX 등등)은 상기 플라즈마 구성(가령 풀, 프로틴, 그리고 슬로)을 사용하여 상기 실행되는 프로그램이 이들 입력 장치들에 의해 발생된 이벤트들을 공유하고 이들에 집합적으로 응답하도록 한다.
이 같은 예에서, 각 장치(가령 장치 A, B 등등)는 각 장치에서 실행되는 프로그램(가령, apps AA-AX, apps BA-BX, 등등)에 의해 발생 되고 이들로부터 출력된 이산 로(처리되지 않은) 데이터(raw data)를 플라즈마 프로틴으로 번역하며, 이들 프로틴들을 한 플라즈마 풀내로 집어넣는다. 또 다른 예로서, 프로틴 BC는 데이터를 발생시키고 그와 같은 데이터를 장치 B로 제공하며, 다시 이때의 장치가 상기 데이터를 프로틴(가령, protein IB, protein 2B, 등등)으로 번역하고 이들 프로틴들을 상기 풀 내로 집어넣는다.
프로틴 각각은 프로그램 자신을 위한 식별 정보뿐 아니라 애플리케이션에 의해 등록된 데이터 또는 출력을 명시하는 디스크립트 리스트를 포함한다. 가능하다면, 상기 프로틴 디스크립트는 또한 출력 이벤트 또는 액션을 위한 일반적인 시메틱 의미로 돌릴 수 있기도 하다. 상기 프로틴의 데이터 페이로드(가령, 입수)는 상기 프로그램 이벤트를 위한 전 세트의 유용한 상태 정보를 갖는다.
상기 설명된 프로틴은 프로그램 또는 장치의 타입과는 무관하게, 풀로 결합 또는 연결된 모든 프로그램 또는 장치에 의해 사용하기 위해 풀 내에서 이용될 수 있다. 결과적으로, 어떠한 수의 컴퓨터에서 실행되는 어떠한 수의 프로그램도 상기 입력 풀로부터 이벤트 프로틴을 추출할 수 있다. 이들 장치들은 상기 풀로부터 프로틴을 추출하기 위해 로컬 메모리 버스 또는 네트워크 연결을 통해 상기 풀에 참여할 필요가 있을 뿐이다. 이에 대한 즉각적인 결과는 상기 이벤트들을 사용하거나 해석하는 것들로부터 처리 이벤트들을 발생시키는데 책임이 있는 디커플링 처리의 유익한 가능성이다. 또 다른 결과는 장치들이 한 사람에 의해 제어되거나 여러 사람들에 의해 동시에 사용될 수 있도록(가령, 한 플라즈마-기반 입력 프레임워크가 많은 동시 발생 사용자들을 지원한다)하고, 결과의 이벤트 스트림들이 다음에 다수 이벤트 소비자들에게 가시적 이도록, 이벤트들의 소스와 소비자들을 멀티플렉싱하는 것이다.
한 예로서, 장치 C가상기 풀로부터 하나 또는 둘 이상의 프로틴(가령, protein 1 A, protein 2 A, 등등)을 추출할 수 있다. 프로틴 추출이 있은 후, 장치 C가 상기 프로틴의 데이터를 사용하며, 이때의 데이터는 상기 프로틴 테이터가 해당하는 처리 이벤트에서, 상기 프로틴의 디스크립트의 슬로 그리고 입수로부터 검색되고 판독된 것이다. 또 다른 예로서, 장치 B는 상기 풀로부터 하나 또는 둘 이상의 프로틴(가령, protein 1C, protein 2A, 등등)을 추출할 수 있다. 프로틴 추출이 있은 후, 장치 B는 상기 프로틴 데이터가 해당하는 처리 이벤트에서 상기 프로틴의 데이터를 사용할 수 있다.
한 풀에 결합 또는 연결된 장치들 및/또는 프로그램들은 특정 프로틴 순서를 찾으면서 전방으로 그리고 후방으로 스킴할 수 있다. 예를 들면, 일정 패턴을 매치하는 한 프로틴의 출현을 기다리기 위한 프로그램을 설치하고, 다음에 후방으로 스킴하여 이 같은 프로틴이 일정한 다른 프로틴과 관련하여 출현하였는가를 결정하도록 하는 것이 유용할 수 있다. 입력 풀 내 저장된 이벤트 히스토리를 사용하기 위한 이 같은 장치는 기록 상태 관리 코드를 불필요하게 하며, 혹은 적어도 그와 같은 바람직하지 않은 코딩 패턴에 대한 의존도를 크게 줄이도록 한다.
도 17은 다수의 장치들 그리고 플라즈마 구성(가령, 풀, 프로틴, 그리고 슬로)이 사용되어 다수의 실행 프로그램이 한 선택적 실시 예에서 장치들에 의해 발생된 이벤트들을 공유하도록 하고 이에 집합적으로 응답하도록 허용하는, 하나 이상의 장치들에서 실행되는 다수의 프로그램을 포함한다. 이 같은 시스템은 그러나 멀티-사용자, 멀티-장치, 멀티 컴퓨터 상호 작용 컨트롤 시나리오 또는 구성의 한 예이다. 특히, 이 같은 예에서, 다수의 장치(가령, 장치 A, B 각각에 연결된 장치X, Y), 그리고 하나 또는 두 개 이상의 컴퓨터(가령, 장치 A, 장치 B, 등등)에서 실행되는 다수의 프로그램(가령, 애플리케이션 AA-AX, 애플리케이션 BA-BX 등등)은 상기 플라즈마 구성(가령 풀, 프로틴, 그리고 슬로)을 사용하여 상기 실행되는 프로그램이 이들 입력 장치들에 의해 발생된 이벤트들을 공유하고 이들에 집합적으로 응답하도록 한다.
이 같은 실시 예에서 각 장치(가령, 장치 A 및 B 각각에 결합된 장치 X 및 Y)는 장치(가령, device X, device A, device Y, device B, 등등) 하드웨어에 의해 발생된 상기 이산 로(처리되지 않은) 데이터를 플라즈마 프로틴으로 번역하고 이들 프로틴들을 한 플라즈마 풀 내로 집어넣는 각 장치(가령 device A, device B, 등등)에서 호스트된 하나 이상의 프로그램으로 실행하도록 관리되고 연결된다. 예를 들면, 장치 A에서 호스트된 애플리케이션 AB와 관련하여 실행되는 장치 X는 상기 이산 로(처리되지 않은) 데이터를 프로틴(가령, protein 1 A, protein 2A, 등등)으로 번역하며, 이들 프로틴들을 상기 풀 내로 집어넣는다. 다른 실시 예로서, 장치 A에서 호스트된 애플리케이션 AT와 관련하여 실행되는 장치 X는 로 데이터를 발생시키며, 상기 이산 로 데이터를 프로틴(가령, protein 1 A, protein 2A, 등등)으로 번역하고 이들 프로틴들을 상기 풀 내로 집어넣는다. 또 다른 실시 예로서, 장치 C에서 호스트된 애플리케이션 CD와 관련하여 실행되는 장치 Z는 로 데이터를 발생시키며, 상기 이산 로 데이터를 프로틴(가령, protein 1C, protein 2C, 등등)으로 번역하고 이들 프로틴들을 상기 풀 내로 집어넣는다.
프로틴 각각은 장치 자체를 위한 식별 정보뿐 아니라 입력 장치에 의해 등록된 액션을 명시하는 디스크립트 리스트를 포함한다. 가능하다면, 상기 프로틴 디스크립트는 또한 장치 액션을 위한 일반적인 시메틱 의미로 돌릴 수 있기도 하다. 상기 프로틴의 데이터 페이로드(가령, 입수)는 상기 장치 이벤트를 위한 전 세트의 유용한 상태 정보를 갖는다.
상기 설명된 프로틴은 프로그램 또는 장치의 타입과는 무관하게, 풀로 결합 또는 연결된 모든 프로그램 또는 장치에 의해 사용하기 위해 풀 내에서 이용될 수 있다. 결과적으로, 어떠한 수의 컴퓨터에서 실행되는 어떠한 수의 프로그램도 상기 입력 풀로부터 이벤트 프로틴을 추출할 수 있다. 이들 장치들은 상기 풀로부터 프로틴을 추출하기 위해 로컬 메모리 버스 또는 네트워크 연결을 통해 상기 풀에 참여할 필요가 있을 뿐이다. 이에 대한 즉각적인 결과는 상기 이벤트들을 사용하거나 해석하는 것들로부터 처리 이벤트들을 발생시키는데 책임이 있는 디커플링 처리의 유익한 가능성이다. 또 다른 결과는 장치들이 한 사람에 의해 제어되거나 여러 사람들에 의해 동시에 사용될 수 있도록(가령, 한 플라즈마-기반 입력 프레임워크가 많은 동시 발생 사용자들을 지원한다)하고, 결과의 이벤트 스트림들이 다음에 다수 이벤트 소비자들에게 가시적 이도록, 이벤트들의 소스와 소비자들을 멀티플렉싱하는 것이다.
한 풀에 결합 또는 연결된 장치들 및/또는 프로그램들은 특정 프로틴 순서를 찾으면서 전방으로 그리고 후방으로 스킴할 수 있다. 예를 들면, 일정 패턴을 매치하는 한 프로틴의 출현을 기다리기 위한 프로그램을 설치하고, 다음에 후방으로 스킴하여 이 같은 프로틴이 일정한 다른 프로틴과 관련하여 출현하였는가를 결정하도록 하는 것이 유용할 수 있다. 입력 풀 내 저장된 이벤트 히스토리를 사용하기 위한 이 같은 장치는 기록 상태 관리 코드를 불필요하게 하며, 혹은 적어도 그와 같은 바람직하지 않은 코딩 패턴에 대한 의존도를 크게 줄이도록 한다.
도 18은 플라즈마 구성(가령, 풀, 프로틴, 그리고 슬로)이 사용되어 다수의 실행 프로그램이 한 실시 예에서 입력 장치들에 의해 발생된 이벤트들을 공유하도록 하고 이에 집합적으로 응답하도록 허용하는, 하나 이상의 장치들에서 실행되는 다수의 프로그램을 통해 연결된 다수의 입력 장치들을 포함한다. 이 같은 시스템은 그러나 멀티-사용자, 멀티-장치, 멀티 컴퓨터 상호 작용 컨트롤 시나리오 또는 구성의 한 예이다. 특히, 이 같은 예에서, 다수의 입력 장치(가령, 입력 장치 A, B, BA, 및 BB, 등등), 그리고 하나 이상의 컴퓨터(가령, 장치 A, 장치 B, 등등)들에서 실행되는 다수의 프로그램(도시되지 않음)은 상기 플라즈마 구성(가령 풀, 프로틴, 그리고 슬로)을 사용하여 상기 실행되는 프로그램이 이들 입력 장치들에 의해 발생된 이벤트들을 공유하고 이들에 집합적으로 응답하도록 한다.
이 같은 실시 예에서, 각 입력 장치(가령, 입력 장치 A, B, BA 및 BB, 등등)는 상기 입력 장치 하드웨어에 의해 발생된 상기 이산 로(처리되지 않은) 데이터를 플라즈마 프로틴으로 번역하고 이들 프로틴들을 한 플라즈마 풀 내로 집어넣는 각 장치(가령 device A, device B, 등등)에서 호스트된 소프트웨어 드라이버 프로그램에 의해 관리된다. 예를 들면, 입력 장치 A는 로 데이터를 발생시키며 이 같은 로 데이터를 장치 A로 제공하며, 다음에 상기 이산 로 데이터를 프로틴(가령, protein 1 A, protein 2A, 등등)으로 번역하고, 이들 프로틴들을 상기 풀 내로 집어넣는다. 또 다른 실시 예로서, 입력 장치 BB는 로 데이터를 발생시키며 상기 로 데이터를 장치 B로제공하고, 다음에 상기 이산 로 데이터를 프로틴(protein IB, protein 3B, 등등)으로 번역하며 이들 프로틴들을 상기 풀 내로 집어넣는다.
프로틴 각각은 장치 자체를 위한 식별 정보뿐 아니라 입력 장치에 의해 등록된 액션을 명시하는 디스크립트 리스트를 포함한다. 가능하다면, 상기 프로틴 디스크립트는 또한 장치 액션을 위한 일반적인 시메틱 의미로 돌릴 수 있기도 하다. 상기 프로틴의 데이터 페이로드(가령, 입수)는 상기 장치 이벤트를 위한 전 세트의 유용한 상태 정보를 갖는다.
설명을 위해, 이 같은 시스템에서 두 전형적인 이벤트에 대한 실시 예 프로틴이 제공된다. 프로틴들은 여기서 텍스트로서 표시되며, 실제 실현에서는, 이들 프로틴 구성 부분들은 유형화된 데이터 번들(가령, 슬로)이다. g-스피크 "한 손가락 클릭"자세(관련 애플리케이션에서 설명된다)를 설명하는 프로틴은 다음과 같다:
또 다른 예로서, 마우스 클릭을 설명하는 프로틴은 다음과 같다:
앞서 샘플 프로틴 어느 하나 또는 모두는 호스트 장치의 참여하는 프로그램이 그 코드의 특정 부분을 실행하게 할 수 있다. 이들 프로그램들은 일반적인 시메틱 라벨에 흥미가 있다; 가장 일반적인 것으로서, "point", 또는 더욱 특정된 쌍으로서, "engage, one". 혹은 이들은 정확한 장치에 의해서만 발생될 이벤트를 찾을 수 있다; "one-finger-engage", 혹은 단일 집합 물체, "hand-id-23".
상기 설명된 프로틴은 프로그램 또는 장치의 타입과는 무관하게, 풀로 결합 또는 연결된 모든 프로그램 또는 장치에 의해 사용하기 위해 풀 내에서 이용될 수 있다. 결과적으로, 어떠한 수의 컴퓨터에서 실행되는 어떠한 수의 프로그램도 상기 입력 풀로부터 이벤트 프로틴을 추출할 수 있다. 이들 장치들은 상기 풀로부터 프로틴을 추출하기 위해 로컬 메모리 버스 또는 네트워크 연결을 통해 상기 풀에 참여할 필요가 있을 뿐이다. 이에 대한 즉각적인 결과는 상기 이벤트들을 사용하거나 해석하는 것들로부터 '입력 이벤트들을 발생시키는데 책임이 있는 디커플링 처리의 유익한 가능성이다. 또 다른 결과는 장치들이 한 사람에 의해 제어되거나 여러 사람들에 의해 동시에 사용될 수 있도록(가령, 한 플라즈마-기반 입력 프레임워크가 많은 동시 발생 사용자들을 지원한다)하고, 결과의 이벤트 스트림들이 다음에 다수 이벤트 소비자들에게 가시적 이도록, 이벤트들의 소스와 소비자들을 멀티플렉싱하는 것이다.
한 예로서, 장치 C가상기 풀로부터 하나 또는 둘 이상의 프로틴(가령, protein IB, 등등)을 추출할 수 있다. 프로틴 추출이 있은 후, 장치 C가 상기 프로틴의 데이터를 사용하며, 이때의 데이터는 상기 프로틴 테이터가 해당하는 입력 장치 CA 및CC의 이력 이벤트 처리에서, 상기 프로틴의 디스크립트의 슬로 그리고 입수로부터 검색되고 판독된 것이다. 또 다른 예로서, 장치 A는 상기 풀로부터 하나 또는 둘 이상의 프로틴(가령, protein 1B, 등등)을 추출할 수 있다. 프로틴 추출이 있은 후, 장치 A는 상기 프로틴 데이터가 해당하는 입력 장치 A의 입력 이벤트 처리에서 상기 프로틴의 데이터를 사용할 수 있다.
한 풀에 결합 또는 연결된 장치들 및/또는 프로그램들은 특정 프로틴 순서를 찾으면서 전방으로 그리고 후방으로 스킴할 수 있다. 예를 들면, 일정 패턴을 매치하는 한 프로틴의 출현을 기다리기 위한 프로그램을 설치하고, 다음에 후방으로 스킴하여 이 같은 프로틴이 일정한 다른 프로틴과 관련하여 출현하였는가를 결정하도록 하는 것이 유용할 수 있다. 입력 풀 내 저장된 이벤트 히스토리를 사용하기 위한 이 같은 장치는 기록 상태 관리 코드를 불필요하게 하며, 혹은 적어도 그와 같은 바람직하지 않은 코딩 패턴에 대한 의존도를 크게 줄이도록 한다.
입력 장치들의 예들이 본원 명세서에서 설명된 설명된 시스템의 실시 예에서 사용되며, 제스처 입력 센서, 키 보드, 마우스, 소비자 전자 장치에서 사용된 것과 같은 적외선 원격 제어, 그리고 작업-오리엔트 유형의 미디어 오브젝트 등을 포함한다.
도 19는 플라즈마 구성(가령, 풀, 프로틴, 그리고 슬로)이 사용되어 다수의 실행 프로그램이 또 다른 선택적 실시 예에서 장치들에 의해 발생된 그래픽 이벤트들을 공유하도록 하고 이에 집합적으로 응답하도록 허용하는, 하나 이상의 장치들에서 실행되는 다수의 프로그램을 통해 연결된 다수의 입력 장치들을 포함한다. 이 같은 시스템은 그러나 멀티플 실행 프로그램(가령 그래픽 A-E) 그리고 하나 이상의 디스플레이 장치(도시되지 않음)를 포함하는 시스템의 한 예이며, 상기 프로그램 일부 또는 모두의 그래픽 출력이 상기 플라즈마 구성(가령, 풀, 프로틴, 그리고 슬로)을 사용하여 정렬되어 다른 프로그램에도 이용할 수 있도록 되어, 상기 실행 프로그램이 상기 장치들에 의해 발생된 그래픽 이벤트를 공유하고 이에 집합적으로 응답할 수 있도록 한다.
컴퓨터 프로그램이 또 다른 프로그램에 의해 발생된 그래픽을 디스플레이하도록 하는 것이 자주 유용하다. 여러 공통 예들로서 비디오 대화 애플리케이션, 네트워크-기반 슬라이드 쇼 그리고 데모 프로그램, 그리고 윈도우 매니저들이 있다. 이 같은 구성에서, 풀은 플라즈마 라이브러리로 사용되어 비디오, 네트워크 애플리케이션 공유, 그리고 윈도우 관리를 인캡슐화하는 일반화된 프레임워크를 실시하도록 하며, 프로그래머들이 이 같은 프로그램의 현재 버전에서 공통적으로 이용가능하지 않은 다수의 특징을 추가할 수 있도록 한다.
플라즈마 합성 환경에서 실행되는 프로그램(가령, 그래픽 A-E)은 풀로의 결합 및/또는 연결을 통해 조정 풀에 참여한다. 프로그램 각각은 프로틴들을 그 같은 풀 내에 집어넣고 다양한 종류의 그래픽 소스들 이용 가능성을 표시하도록 한다. 디스플레이 그래픽에 이용될 수 있는 프로그램들은 또한 프로틴들을 디포짓하여 이들의 디스플레이 기능, 보안과 사용자 프로파일들, 그리고 물리적 네트워크 위치를 나타내도록 한다.
그래픽 데이터는 또한 풀들을 통해 전송될 수 있으며, 또는 디스플레이 프로그램들이 다른 종류의 네트워크 자원(가령, RTSP 스트림)으로 포인트될 수 있다. 여기서 본원 명세서에서 사용되는 "그래픽 데이터"는 광범위 연속체(broad continuum)를 따라 놓인 다양한 다른 표시를 나타내는 것이며; 그래픽 데이터의 예로서 문자 그대로의 한정의 의미 없이('이미지', 또는 픽셀 블록 등),절차 과정 예(가령, 전형적인 오픈GL 파이프라인 아래로 흐르는 것과 같은 '드로잉' 방향 시퀀스), 그리고 설명적인 예(가령, 기하적인 변환, 클리핑, 그리고 합성 동작에 의한 다른 그래픽 구조를 결합시키는 지시)를 포함한다.
로컬 머신 그래픽에서 데이터는 플랫폼 특정 디스플레이 드라이버 최적화를 통해 전달될 수 있다. 그래픽이 풀을 통해 전송되지 않는 때에도, 주기적인 스크린-캡쳐가 자주 조정 풀 내에 저장되어, 더욱 많은 에소테릭(esoteric) 소스로의 직접적인 액세스 없이도 클라이언트가 여전히 뒤떨어진 그래픽을 디스플레이할 수 있도록 한다.
여기서 설명된 시스템의 한가지 장점은 대부분의 메시지 통과 프레임워크 그리고 네트워크 프로토콜과 달리, 풀들이 데이터의 상당한 버퍼를 유지한다는 것이다. 따라서 프로그램들은 액세스와 사용 패턴(조정 풀의 경우)을 기대하면서 또는 귀중한 그래픽 프레임(그래픽 풀의 경우)을 기대하면서 한 풀 내로 되 감길 수 있다.
도 20은 또 다른 선택적 실시 예에서, 플라즈마 구성(가령, 풀, 프로틴, 그리고 슬로)이 사용되어 상태 기반 검사, 시각화 및 실행중인 프로그램의 디버깅(debugging)을 허용하도록 하나 이상의 장치에서 실행되는 다수의 프로그램을 통해 연결된 다수의 장치들을 포함하는 처리 환경의 블록도이다. 그러나 이 같은 시스템은 멀티플 장치(가령, device A, device B, 등등)에서의 멀티플 실행 프로그램(가령, program P-A, program P-B, 등등)을 포함하는 시스템이며, 몇 개의 프로그램들은 풀들을 사용하거나 이들을 통해 다른 프로그램의 내부 상태에 접근한다.
대부분의 상호 작용 컴퓨터 시스템들은 단일 머신에서 또는 다수의 머신에서 서로 나란히 실행되는 많은 프로그램들을 포함하며, 네트워크를 가로질러 상호 작용한다. 멀티-프로그램 시스템은 실행 시간 데이터가 처리 각각 안쪽에 숨겨지고 액세스가 곤란하기 때문에 구성하고, 분석하며 디버깅하는 것이 곤란할 수 있다. 이와 같은 한 실시 예의 일반 프레임 워크 및 플라즈마 구성은 실행 프로그램이 이용될 수 있는 데이터의 대부분을 풀을 통해 만들도록 하며, 따라서 다른 프로그램이 이들의 상태를 검사할 수 있도록 한다. 이 같은 프레임워크는 사람 오퍼레이터가 프로그램이 통과한 상태의 시퀀스를 세부적으로 분석하도록 구성된 기존의 디버거, 정교한 시스템 관리 도구 및 시각화 하네스 보다 더욱 유연한 디버깅 도구를 가능하게 한다.
도 25와 관련하여, 이 같은 프레임워크에서 실행되는 프로그램(가령, program P-A, program P-B, 등등)은 프로그램 시작 시에 프로세스 풀을 발생시키거나 생성한다. 이 같은 풀은 시스템 알만넥(almanac)에서 등록되며, 보안과 액세스 제어가 적용된다. 특히, 장치 각각(가령, device A, B, 등등)은 각 장치에서 실행되는 프로그램에 의해 또는 이로부터의 출력에 의해 발생된 이산 로 데이터를 플라즈마 프로틴으로 번역하고, 이들 프로틴을 한 플라즈마 풀 내로 집어넣는다. 예를 들면, 프로그램 P-A가 데이터 또는 출력을 발생시키고 이 같은 출력을 장치 A로 제공하며, 다음에, 로 데이터를 프로틴(가령, protein 1 A, protein 2 A, protein 3 A, 등등)으로 번역하고, 그리고 이들 프로틴들을 상기 풀 내로 집어넣는다. 또 다른 예로서, 프로그램 P-B가 데이터를 발생시키고, 그리고 데이터를 프로틴(가령 proteins 1B-4B,)로 번역하며, 이들 프로틴(가령, proteins 1B-4B, 등등) 을 풀 내로 집어넣는다.
프로그램의 수명 동안, 충분한 액세스 허락을 갖는 다른 프로그램이 상기 풀로 어태치되며 상기 프로그램이 디포짓한 프로틴을 판독한다; 이는 기본 검사 모달(modal)을 대표하며, 개념적으로 "편도" 또는 "읽기 전용" 제안이다: 프로그램 P-A에 관심이 있는 경우 자신의 프로세스 풀에서 P-A에 의해 디포짓된 상태 정보의 흐름을 검사한다. 예를 들면, 장치 C에서 한 검사 프로그램 또는 애플리케이션 실행은 상기 풀로부터 하나 이상의 프로틴(가령 protein 1A, protein 2A,등등)을 추출할 수 있다. 프로틴 추출이 있은 후, 장치 C는 상기 프로틴의 디스크립트와 입수의 슬로로부터 검사되거나 판독된 프로틴의 데이터를 사용하여, 프로그램 P-A의 내부 상태를 해석하고 검사할 수 있다.
그러나, 상기 플라즈마 시스템은 유일한 효율적인 상태 기반 전송 방식일 뿐 아니라, 전방위 메시지 환경인 것을 생각하면, 여러 추가의 모드가 프로그램-투-프로그램 상태 검사를 지원할 수 있을 것이다. 권한이 있는 검사 프로그램은 그 자신이 프로그램 P의 프로세스 풀 내로 프로틴을 디포짓하여 그와 같은 프로세스 풀에서 발생되고 위치하는 상태 정보의 특징에 영향을 미치거나 제어하도록 한다(이는 결국 프로그램 P가 기록할 뿐 아니라 이로부터 판독한다).
도 21은 또 다른 선택적 실시 예에서, 플라즈마 구성(가령, 풀, 프로틴, 그리고 슬로)이 사용되어 프로세스 풀에서 생성되고 위치하는 상태 정보의 특징에 영향을 주거나 제어하도록 사용되는 하나 이상의 장치에서 실행되는 다수의 프로그램을 통해 연결된 다수의 장치들을 포함하는 처리 환경의 블록도이다. 이 같은 시스템 실시 예에서, 장치 C의 검사 프로그램이 예를 들면 프로그램(가령, program P-A, program P-B, 등등)이 단일 순간 동안 또는 특정 지속 시간 동안 상기 풀 내로 정상보다 많은 상태를 덤프(dump)할 것을 요청할 수 있다. 또는, 디버그 통신의 다음 '수준을 예시하여, 프로그램(가령, program P-A, program P-B, 등등)이 상기 디버그 풀을 통한 상호 작용을 개별적으로 할 수 있으며 이에 이용될 수 있는 자신의 실행 시간 환경에서 현존하는 객체들을 열거하는 프로틴을 방출할 것을 이해관계를 갖는, 즉 관련 프로그램이 요청할 수 있다. 따라서, 상기 이해관계를 갖는, 즉 관련 프로그램은 프로그램 실행 시간에 객체들 가운데에서 개별적인 것을 '어드레스'할 수 있으며, 특정 객체가 차지하고 응답하는 프로세스 풀에 프로틴들을 위치시킨다. 예를 들면, 한 객체가 모든 컴포넌트의 순간 값들이 가변적임을 설명하는 리포트 프로틴을 방출할 것을 상기 관련 프로그램이 요청할 수 있다. 더욱 중요한 것은, 상기 관련 프로그램이, 다른 프로틴들을 통하여, 한 객체가 그 행동 또는 그 가변 값을 변경하도록 명령할 수 있다.
특히, 이 같은 예에서, 장치 C의 검사 애플리케이션은 상기 풀에 결합된 각 장치(가령, device A, device B, 등등)에 의해 추출되는 한 객체 리스트(가령, "Request-Object List")에 대한 요청(프로틴의 형태로)을 상기 풀 내에 위치시킨다. 이 같은 요청에 응답하여, 각 장치(가령, device A, device B, 등등)는 디버그 풀을 통하여 개별적으로 검사할 수 있으며 검사에 이용될 수 있는 실행 환경에서 현존하는 객체들을 열거하는 프로틴(가령, protein 1A, protein IB, 등등)을 상기 풀 내로 위치시킨다.
따라서, 상기 장치들로부터의 리스팅을 통하여, 그리고 객체들의 리스팅에 응답하여, 장치 C의 검사 애플리케이션이 상기 프로그램 실행에서 객체들 가운데 개별적인 것들을 어드레스하며, 한 특정 객체가 차지하고 응답하는 프로세스 풀 내에 프로틴들을 위치시킨다. 예를 들어, 장치 C의 검사 애플리케이션은 객체(가령, object P-A-O, object P-B-O, 각각)가 모든 컴포넌트의 순간 값들이 가변적임을 서명하는 리포트 프로틴(가령, protein 2A, protein 2B, 등등)을 방출하는 풀 내에 한 요청 프로틴(가령, protein "Request Report P-A-O", "Request Report P-B-O")을 위치시킨다. 각 객체(가령, object P-A-O, object P-B-O)는 자신의 요청(가령, protein "Request Report P-A-O", "Request Report P-B-O", 각각)을 추출하고, 이에 응답하여, 상기 요청된 리포트(가령, protein 2A, protein 2B, 각각)을 포함하는 풀 내로 한 프로틴을 위치시킨다. 다음에 장치 C가 다양한 리포트 프로틴(가령, protein 2A, protein 2B, 등등)을 추출하며 상기 리포트의 내용으로 적절한 뒤이은 처리 액션을 취한다.
이와 같이하여, 상호 교환 매체로서 플라즈마의 사용은 궁극적으로 디버깅, 처리 제어, 그리고 프로그램-투-프로그램 통신 및 조정 사이의 구분을 약화시키는 경향이 있다.
그 마지막으로, 상기 일반화된 플라즈마 프레임워크가 시각화와 분석 프로그램이 느슨하게 결합된 방식으로 디자인되도록 한다. 예를 들면, 메모리 액세스 패턴을 디스플레이하는 시각화 툴이 자신의 기본 메모리를 출력시키는 프로그램과 협력하여 사용되어 한 툴을 판독하고 그 같은 툴 내로 기록한다. 분석을 실행하는 프로그램들은 가시화 툴의 존재 또는 디자인을 알 필요가 없으며 그 반대도 마찬가지이다.
상기 설명한 방식으로 풀을 사용하면, 시스템 성능에 불합리하게 영향을 미치지 않는다. 예를 들면, 상기 실시 예는 한 풀 내에 초당 수십만의 프로틴을 디포짓함을 허용하며, 따라서 상대적으로 장황한 데이터 출력조차 대부분의 프로그램의 응답 또는 상호 작용 특징을 저해하지 않는다.
멀티-모달 입력 장치(MMID)
멀티-모달 입력 장치(MMID)의 다수 실시 예가 하기에서 설명되며, 여기서 MMID는공간 또는 제스처 입력 시스템의 사용자가 직관적으로 그리고 인체 공학적으로 효율적인 방식으로 입력 기능의 범위를 액세스할 수 있도록 한다. '막대(wand)'라고 칭하여 지기도 하는 한 실시의 MMID는 휴대용 입력 장치이다. 한 실시 예의 MMID는 정확하게 실시간으로 장치의 위치와 방향을 추적하는 수단을 포함한다. 한 실시 예의 MMID는 물리적이고 기계적인 구조를 포함하여 이 장치를 쥐고 동작시키는 사람이 손쉽게 이를 하나 이상의 축을 중심으로 회전시킬 수 있도록 한다. 한 실시 예의 MMID는 물리적이고 기계적인 구조를 포함하여 이 장치가 하나 이상의 회전 그립으로 쥐어질 수 있고 동작 될 수 있다. 한 실시 예의 MMID는 사용자가 장치를 유지시키고 동작시키는 회전 그립 상태 그리고 이들 동작 회전 상태들 사이 변환 모두를 사용자 입력 신호로 해석하고 번역할 수 있는 소프트웨어 컴포넌트(들) 또는 메카니즘을 포함한다. 이 같은 소프트웨어 컴포넌트는 상기 장치에 상응하는 추적 데이터에 의존한다. 또한, 이 같은 입력 장치는 버튼, 조이스틱, 슬라이더 및 휠과 같은 다른 형태로 통합된 다른 입력 기능을 가진다. 이 같은 장치는 또한 광선, 오디오 스피커, 래스터 디스플레이, 및 진동 모터와 같은 통합된 출력 기능을 갖기도 한다.
본원 명세서에서 설명된 바와 같이, 광범위한 특정 구성이 다양한 실시 예의 멀티-모달 입력 장치를 위해 가능하다. 장치들은 물리적 형태, 기계공학적 구성, 그리고 인체공학적 구성이 다를 수 있다. 장치들은 또한 물리적 디자인, 추적 기술 및 소프트웨어 처리의 조합에 의해 지원되는 다수의 신중한 양태에 있어 다를 수 있다. 또한, MMID는 보조 내장 입력(즉, 위치, 방향, 및 양상) 디자인, 그리고 온-보드 출력 기능에 있어 다를 수 있다.
한 실시 예의 MMID는 막대-형상 장로서 한 하우징이 원격 조정 장치와 유사한 폼 팩터를 갖는다. 도 22는 한 실시 예로서 막대-형상의 MMID(2200)을 도시한다. 상기 MMID(2200)는 대략 5인치 길이이고 폭은 1과 1/2 인치이며, 삼각형 단면을 갖지만, 이 같은 형상을 한정하는 것은 아니다. MMID(2200) 하우징의 각 면은 단일 입력 센서를 포함하며, 이는 한 실시 예에서 전자-기게적 버튼을 포함하고, 그러나 다른 실시 예에서는 각 면에 보다 많거나 적은 버튼 또는 다른 형태의 버튼을 가질 수 있다. 사용자가 MMID(2200)를 쥐는 때, 삼각형 프리즘(여기서는 프리즘 형상을 의미함)의 긴 에지(2204) 중 하나가 사용자 손에서 아래를 향하게 되며, 사용자 손가락 구부림 상태에서 놓이게 되고, 이 프리즘의 반대면은 상측을 향하게 되며, 사용자의 엄지 아래에 오게 된다. MMID(2200)는 손가락과 엄지의 미세한 이동으로 장축을 중심으로 220도 회전이 될 수 있고, 상기 프리즘의 인접한 면은 상측을 향하는 방향으로 위치하게 된다. 따라서 상기 프리즘은 프리즘의 면에 해당하는 쉽게 접근할 수 있는 세 개의 분명한 모단 방위를 포함한다. MMID(2200)는 사용자가 장치를 처음 경험하는 경우에도 모든 방위로 신속하게 반복적으로 회전될 수 있다.
한 실시 예의 MMID(2200) 위치는 하기 설명하는 바와 같이, 자장 추적을 사용하여 추적되지만, 다른 추적 기술(이들 중 일부는 본원 명세서에서 설명된다)을 사용하여 추적될 수 있다. MMID(2200)는 회로, 마이크로제어기, 그리고 교류(AC) 자장, 또는 전자장(EMF)과 관련하여 장치를 추적하기 위한 프로그램 코드를 포함한다. 한 실시 예의 EMF는 MMID에 인접한 호환성 있는 기지국에 의해 발생되거나 방출되며, 그러나 이 같은 실시로 한정되지 않는다. MMID(2200)는 입력 센서라 칭하여지는 하나 이상의 기게적 버튼 그리고 하나 이상의 버튼의 상태를 디지털화하기 위한 상응하는 전자 장치를 포함한다. 또한, MMID(2200)는 추적 데이터(가령 방향 데이터, 위치 데이터, 등등) 그리고 버튼 프레스 로 데이터를 호스트 시스템으로 보고하기 위한 무선 링크를 제공하는 회로를 포함한다. 추가로, MMID(2200)는 배터리 그리고 전원 회로를 포함한다.
입력 처리 소프트웨어는 로(raw) 추적 그리고 버튼 프레스 데이터를 공간 위치와 방향의 6개 단계, 버튼 다운 전환, 버튼 엎 전환, 그리고 버튼 상태 실행 설명을 포함하는 데이터로 변환(번역)한다. 한 실시 예의 입력 처리 소프트웨어는 부분적으로 장치에서 실행되며 부분적으로 호스트 시스템에서 애플리케이션 코드로서 실행된다. 그러나 이러한 실시로 한정되지는 않으며, 처리 장치들의 조합 및/또는 분산으로 실시되거나 단일 처리기에서 통합 처리가능하다. 이 같은 데이터는 일련의 프로그램 가능 "사건"으로서 애플리케이션 소프트웨어로 전송된다(프로그램 가능 사건의 처리는 하기에서 상세하게 설명된다). 또한, 이 같은 입력 처리 층은 모드 전환 및 실행 모드 상태 사건을 애플리케이션 소프트웨어로 제공한다. 세 개의 상태(가령, i, ii, 및 iii), 그리고 6 개의 전환 (가령, i->ii, i->iii, ii->iii, ii->i, iii->i, 및 iii->ii)이 가능하며, 이에 대하여는 하기에서 상세히 설명한다.
한 실시 예의 상기 처리 층은 히스테리시스를 사용하여 사용자가 정해진 모드 없이 MMID 장축을 따라 최대 회전에 접근할 수 있도록 하며, 그리고 MMID가 전환 각의 에지 가까이 있는 때 모달 상태 사이에서 빠른 그리고 바람직하지 않은 플립-플롭핑을 피할 수 있도록 한다. 이 같은 히스테리시스를 사용하여, 모드 사이의 전환을 트리거 하기 위해, 한 실시 예의 MMID는 이전 모드 중심 각에 대하여 120도 이상 회잔되어야 한다. 따라서 MMID가 절대각 중심이 제로인 모드(i)에 있다면, MMID는 회전이 가령 장축을 중심으로 어느 방향으로든 150도 이상 검출되는 때까지 모드(i) 상태로 유지될 것이다. MMID가 151도 회전하는 때, MMID는 중심 각이 120도인 모달 상태(ii)로 전환된다. 상태(i)로 되돌아 가도록 하기 위해, MMID는 이 같은 각 중심을 지나 -150도 회전되어야 하며, 이는 -30도(또는 330)의 절대 각을 지나도록 할 것이다. 상기에서 30도(150도에서 120도를 뺀)로서 설명된 바와 같은 히스테리시스 밴드는 프로그래밍 설정 가능하며, 애플리케이션 코드에 의해 또는 사용자 선호도 설정에 의해 조정될 수 있다. 이 같은 히스테리시스 예는 상기 설명한 바와 같이 면이 세 개인 MMID에 제공된다면, 비록 이 같은 면이 세 개인 장치에 대하여 설명된 값으로 한정하는 것은 아니지만; 선택적 실시 예의 회전 각 및/또는 히스테리시스 대역은 하우징 또는 막대의 폼-팩터에 따라 그리고 디자이너/사용자 선호에 따라 결정된다.
또한, 일정 모드가 애플리케이션 코드에 의해 선택적으로 불능이 될 수 있다. eKF라서 MMID는 (i), (ii), 또는 (iii)의 일정한 모달 상태를 출력시키는 단일 모드 장치로서 애플리케이션 코드에 의해 처리될 수 있다. 또는, 상기 불능 모드를 두 남아 있는 모든 어느 하나로 배타적으로 맵핑함에 의해, 또는 상기 불능 모드를 상기 히스테리시스 대역의 추가 영역으로 처리함에 의해, 어느 한 모드가 불능이 될 수 있다.
또한, 상기 시스템은 MMID (예를 들면, 삼각 프리즘)의 물리적인 면을 각 면과 불변이도록 연결 구성할 수 있으며, 상기 면들은 능동적 또는 수동적 표시에 의해 모드 관련으로서 선택적으로 라벨이 붙여질 수 있다. 선택적으로, 상기 시스템은 맥락적으로 모드를 각 면에 할당하도록 구성될 수 있기도 하다. 이 같은 경우, MMID는 일정 불사용 시간 후에는 사용자가 먼저 집어드는 때 처음 상측 방향 면이 모드(i)과 관련하도록 구성될 수 있다. 이 같은 경우, 능동 모드의 인디케이터가 MMID상에, 사용자가 주목하는 그래픽 디스플레이상에, 또는 MMID와 그래픽 디스플레이 컴비네이션에 제공된다.
MMIDDML 각 면은 입력 센서라고 불리기도 하는 단일 버튼을 포함한다. 이들 버튼은 애플리케이션 소프트웨어에 의해 식별할 수 있도록 처리되며, 그러나 이 같은 실시로 제한되지는 않는다. 사용자 관점에서, 장치는 인체 공학적 실용성의 이유로 세 가지 물리적 특징을 갖는 단일 논리 버튼을 갖는 것으로 생각될 수 있다. MMID의 회로와 소프트웨어는 다른 물리적 버튼의 조작을 구분하지 않으나, 시스템은 특정 조합으로 버튼을 누르는 것이 장치로 하여금 다양한 구성을 갖도록 하거나 상태를 리세트하도록 배치될 수 있기도 하다.
한 실시 예의 MMID는 자장 추적 기술(미국 특허 3,983,474 참조)을 사용한다. 자장을 발생시키고 감지하기 위해 직교 코일을 사용하는 것이 원격 객체를 찾아내고 추적하는 데 사용되어 왔다. 예를 들면, 미국 특허 3,644,825는 서로 이동하는 자장 발생 및 감지 코일을 개시한다. 선택적으로, 자장은 Kalmus의 "A New Guiding and Tracking System"(IRE Transactions on Aerospace and Navigational Electronics, March 1962, pages 7 through 10)에서 개시하는 바와 같이 회전하도록 만들어질 수 있다.
제2 좌표 시스템와 관련하여 제1 좌표 방위를 결정하기 위한 좌표 변환기가 또한 사용되었다. 예를 들면, 미국 특허 3,474,241 및 3,660,648은 제1 좌표 프레임에서 측정된 각도 비율 또는 각도 오차를 중간 좌표 프레임의 축을 중심으로 정해진 각도 비율로 변환시키는 변환기를 개시하며, 이때 상기 중간 좌표 축을 중심으로 각도 회전 또는 각도 비율이 정해지고 다음에 통합되어서 오일러 각도 사용을 통해 제2 좌표 프레임에 대하여 제1 좌표 프레임의 방위를 정하는 각도-축 시퀀스를 정하는 각도를 결정하도록 한다.
도 23은 한 실시 예에서 자장 추적을 사용하는 MMID의 블럭도이다. MMID의 추적 환경 내 또는 근접하여 위치하는 기지국(2310)이 추적 필드(field)를 제공하며, MMID(2311)와 통신한다. 기지국에서, 싱글 제너레이터가 세 개의 직교 코일(2302) 내에서 교대로 파형을 발생시키기 위해 필드 제너레이터 회로(2301)를 사용하여 자장을 발생시킨다. 세 개의 코일에 의해 발생된 상기 전자기 신호가 MMID 내 개의 직교 코일(2303)에 의해 수신된다. 세 개의 코일로부터 상기 수신된 신호는 연산 증폭기(2304)를 사용하여 증폭되고 마이크로프로세서(2307)에 의해 샘플될 수 있는 디지털 신호(2305)로 변환된다. 상기 마이크로프로세서는 디지털 신호 처리(DSP) 기술을 사용하여 세 개 코일의 입력을 분석한다. 상기 DSP 처리는 기지국으로부터 MMIDDML 거리 및 방향을 투사하는 위치 벡터를 제공하며 MMID의 방위를 결정하는 방위 매트릭스를 제공한다.
추가 정보(가령, 시간 스탬프, 유니버설 ID, 등등)가 또한 MMID 위치 데이터와 결합될 수 있다. 하나 이상의 사용자 입력 센서(2306)가 또한 상태를 위해 감지된다. 상기 입력 센서(2306)는 순간 스위치, 토글 스위치, 조이스틱 스타일의 입력 장치 및/또는 터치 센서가 될 수 있다. 이들 스위치로부터의 샘플 데이터는 터치 센서를 위한 부동 점 x, y 좌표와 같은, 싱글 비트(터치 버튼을 위한) 또는 더욱 복잡한 데이터 값을 포함할 수 있다. 한 실시 예에서, 마이크로프로세서는 MMID로부터 무선으로 호스트 프로세서로의 위치 데이터 및 방위 데이터를 포함하는 데이터를 통신시킨다. 상기 MMID는 액세스 포인트(2309)를 통해 네트워크로의 데이터 통신을 위한 무선 주파수 송신기 및 수신기(TX/RX)(2308)를 갖는다. 이 같은 무선 링크는 어떠한 무선 프로토콜(가령, Bluetooth, 802.11, Wireless USB, proprietary solutions, Nordic Semiconductor nRF24L01 low power radio solution, 등등)도 사용할 수 있다. 상기 액세스 포인트는 상기 수신된 데이터 스트림을 로컬 지역 네트워크(가령, ired Internet 10/100/1 OOOBaseT, 802.11, 등등) 또는 다른 인터페이스(가령, USB, 등등)를 통하여 하나 이상의 호스트 컴퓨터로 통신할 수 있다.
도 24는 한 실시 예에 따른 추적 환경 MMID의 불럭도이다. MMID(2404)는 추적 환경(2400)과 관련하여 도시된다. MMID는 상기 설명된 바와 같이 기지국(2401)과 통신한다. 그러나 MMID는 추적 환경(2400) 내 다른 타입 및/또는 전자 장치 조합과 통신할 수 있기도 하다. 무선 주파수 통신 채널의 범위가 AC 자장 범위와는 다를 수 있기 때문에 코일을 갖는 추가 AC 자장 제너레이터(2405/2406/2408)가 추가의 추적 비콘을 생성하도록 제공될 수 있으므로, 상기 추적 환경은 특정 크기로 제한되지 않는다. 이들 비콘은 다른 주파수로 동작할 수 있으며 혹은 다른 시간에 전송할 수 있기도 하다. MMID의 사용자가 필드 제너레이터(2302)로 부터 제너레이터(2305)를 향하여 이동하는 때, MMID는 어느 신호든 위치와 방위를 결절하기 위해 더욱 강한 신호를 사용할 것이지만, 그러나 아직도 액세스 포인트(2403)를 사용하여 네트워크로 이 같은 데이터를 되보낼 것이다.
MMID가 액세스 포인트(2403) 범위로부터 벗어나서 기지국(2406)을 향하여 이동하는 때, MMID는 무선 링크를 기지국(2406) 내 액세스 포인트와 연결시킬 것이다. 자장 제너레이터 그리고 데이터 액세스 포인트 주변에서 로밍하는 능력은 결국 MMID가 임의의 큰 추적환경에서 사용될 수 있도록 하다. 상기 액세스 포인트 그리고 자장 제너레이터는 같은 위치(2407/2408)에 있을 필요는 없다. 상기 액세스 포인트 및 필드 제너레이터 모두가 로컬 지역 네트워크를 통하여 하나 이상의 호스트 장치와 통신하는 수단을 갖는 동안, 상기 주파수 제너레이터는 자동으로 동작할 수 있으며 더욱 용이한 설비를 허용한다.
한 실시 예의 MMID를 사용하는 사람의 동작 예가 다음에 제공된다. 동작 중에, 오퍼레이터는 트리피치-포맷 광폭 프로젝션 스크린으로 높이가 2미터이고 4미터 폭인 스크링 앞에 일정 가러(가령, 10피트)를 두고 서있다; 1.5 미터 폭의 테이블이 그녀의 바로 앞에 놓여있다. 테이블 역시 바로 위에 천정-장착된 프로젝터로 처리된 프로젝션 표면이다. 오퍼레이터는 그녀의 손에 편안하게 삼각형 단면의 MMID를 갖는 MMID를 쥐고 있으며, 편평한 면 "i"가 상측을 향하도록 하고 있다. 그녀가 MMID를 정면 스크린을 향하도록 하는 때, 부분적으로 투명한 그래픽 커서가 MMID의 포인팅 벡터가 스크린 표면과의 인터섹션을 나타낸다. 입력 시스템의 높은 프레임 속도 그리고 낮은 지연시간은 인과적 직접성에 강한 감각에 기여한다; 오퍼레이터가 MMID 표적을 변경하는 때, 정면 스크린에서 커서의 상응하는 이동은 분명히 뒤 쳐지지 않는다; 인식은 손전등 또는 레이저 포인터를 흔드는 것이다.
오퍼레이터에 의한 사용 시 애플리케이션은 프로덕트 패키지 프리뷰 시스템이며, 많은 유사 애플리케이션에서와 동일한 방법으로 MMID를 사용하도록 구성된다; MMID 모달은 따라서 오퍼레이터에게 익숙하다. 모드 "i"는 완전히 상세하게 애플리케이션 엘리먼들들에 대한 직접적인 조작을 허용한다; 모드 "ii"는 엘리먼트들의 메타-조작을 수행한다(가령, 그룹 레벨로); 그리고 모드 "iii"은 3 차원 조작을 허용하다. 어떠한 순간에도, 커서의 모양은 현재 모드를 반영할 뿐 아니라, MMID 모드를 스위치하기 위해 필요할 축 회전 방향을 가시적으로 나타낸다. 현재, 커서는 MMID의 시계 방향 회전이 "ii"로의 모달 전환을 일으킬 것임을 보여주며, 시계 반대 방향 회전은 모드 "iii"로의 전환을 일으킬 것임을 보여준다.
작은 오브젝트그룹핑 어레이가 전방 스크린 트리피치의 좌측 세 번째에 배열된다. 오퍼레이터는 MMID를 다음 면이 엄지 아래에서 상측을 향하도록 축을 중심으로 시계 방향으로 회전시키며, 커서가 상태 "ii"로 모달 전환을 나타내도록 변경된다. 오퍼레이터(그녀)는 MMID를 좌측을 향하도록 하며, 커서가 오브젝트그룹핑 각각에서 이동하여 하이라이트 경계가 흐릿해지도록 하며, 뒤이어, 커서가 상기 그룹핑의 볼록한 헐(hull)을 나오는 때 사라진다.
오퍼레이터는 커서가 특정 그룹핑에 있도록 할 수 있으며, 다음에 엄지 아래 버튼을 누른다. 커서는 오브젝트그룹핑이 잡혀졌음을 표시하고, 오퍼레이터가 MMID를 전방 스크린 중심을 향해 흔드는 때, 상기 그룹핑이 이동하여 커서를 따라 이동하도록 한다. 상기 오퍼레이터는 소형 그룹핑을 그녀 정면 바로 앞으로 가져온 때 버튼을 놓는다. 상기 그룹핑은 전방 스크린의 중심 세 번째의 범위 까지를 채우도록 신속하게 확장되며, 다양한 형상의 플라스틱 병 그리고 "애완 동물 음료" 텍스트 표시 콜렉션을 나타낸다.
오퍼레이터가 다시 한번 MMID를 장축을 중심으로 시계 방향으로 회전시키며, 그러면 커서가 모드 "iii"가 이제 동작 중임을 나타내도록 변경되고, 따라서, 3D 조작이 가능함을 나타낸다. 오퍼레이터는 커서를 특히 헤어 스타일 푸들 다리와 같은 형상의 특별한 불버스 병을 향하도록 하며, 이 병은 시각적으로 높은 빛을 낸다; 오퍼레이터는 다음 버튼을 누른다. 이제 이 시스템은 직접-조작 모드로 들어가며, MMID의 변환 및 회전이 선택된 물체의 변환 및 회전을 가상 공간에 만들어지도록 제어한다. 따라서, 오퍼레이터가 MMID를 그녀 자신을 향하도록 당기는 때(전방 스크린에 대하여 기하학적 법선 방향을 따라), 상기 병의 크기가 커지며, 가상 카메라를 향하도록 된다. 이와 유사하게, MMID의 좌우 이동은 만들어진 병(스크린 측면 축을 따라)의 좌우 이동으로 변환되며, MMIDDML 상하 이동은 결국 상기 병의 수직 이동이 된다. 각 오퍼레이터에 대하여 맞춰지는 적절한 스케일 팩터가 이들 변환으로 적용되어, MMID의 작은 이동이 가상 물체의 큰 이동에 영향을 주도록 할 수 있다; 따라서 그래픽/가상 환경의 전 범위가 편안한 손 이동의 범위를 초과하지 않고 가능하게 된다.
유사한 스케일링 기능이 만들어진 병의 절대적인 회전 위치에 대한 MMID 방위의 맵핑에 적용된다. 본 실시 예에서, 오퍼레이터의 존재는 4배 스케일을 명령하며, 따라서 어떠한 축을 중심으로 MMID를 90도 회전하면 가상 물체의 완전한 360도 회전을 발생시킨다(90도에 4배가 되어 360도가 된다). 이와 같이하여 손목- 및 팔- 기반 MMID 회전은 오퍼레이터가 모든 가능한 각도 범위로 병을 시험하는 동안 편안한 상태로 유지된다. 따라서, 예를 들면, 그녀가 MMID를 x-축을 중심으로 90도 기울여서 전방-향하는 것으로부터 상측-향하는 것으로 상측을 향해 회전시키게 되면, 상기 병은 스크린 x-축을 중심으로 초기 방위로 돌아가면서 완전한 회전을 하게 되어, 마치 MMID가 완전히 상측을 향하는 동작을 달성하는 것과 같아진다. MMID 버트이 눌려져 있는 동안은 적절한 모드-고정 효과가 적용될 수 있다; 오퍼레이터는 MMID를 MMID가 모드 "i"로 스위치 되도록 하지 않고, MMID 장축을 중심으로 170도 시계 방향으로 회전시킬 수 있다(가상 물체의 510도의 "인-스크린" 회전을 발생시킨다).
오퍼레이터가 MMID 버튼을 릴리이스하는 때, 상기 만들어진 병은 직접 조작으로부터 해방되며 그 순간 위치 및 방위를 유지한다. 버튼 릴리이스의 순간, MMID는 회전 자세로 있으며 이는 "iii"이 아닌 MMID-모드에 해당하고, 오퍼레이터는 모드 스위치가 사실상 영향을 받기 전에 1/2 일시적 히스테리시스(온-스크린 커서의 그래픽 상태 일부로 시각적으로 표시된다)를 허여받는다; 만약 오퍼레이터가 MMID를 모드 "iii"에 해당하는 자세로 되돌아 가도록 회전시키면, 그러면 직접적인 3D 조작 모드가 지속 된다. 다음에 오퍼레이터가 불버스 병위에 커서를 중첩하고 다시 버튼을 눌러서 추가의 위치 및 자세 조정을 수행할 수 있다; 대신에 그녀가 커서를 다른 병을 향하도록 한다면, 그 같은 물체는 그녀의 조작을 받게 될 것이다.
오퍼레이터는 결국 MMID를 모드 "ii"로 스위치 하며, 그와 동일한 드래그 모달을 사용하여 병 그룹핑이 중심 스크린으로 오도록 하며, 칼라-팔레트를 오른쪽 스크린으로부터 중심 스크린으로 가져온다; 그녀가 버튼을 릴리이스하는 때, 팔레트가 팽창하고 자신을 불버스 병의 측면으로 위치시킨다. 다음에 그녀가 MMID를 회전시켜서 모드 "i"을 선택하고 칼라 팔레트의 선택 인터페이스를 조작한다; 그녀가 원하는 진홍의 색상이 선택되었을 때, 그녀는 버튼을 누르고 팔레트로부터 칼라 스와치를 그것이 불버스 병을 형성하는 선명한 물체와 겹칠 때까지 좌측 아래로 드래그한다. 그녀가 버튼을 릴리이스하는 때, 상기 칼라가 적용되며 병의 물체가 투명한 진홍색을 채용한다.
모드 "i"에 있는 때, 오퍼레이터가 MMID를 불버스 병을 직접 향하게 하며, 이에 응답하여 높은 빛을 방출하고, 버튼을 누르면서, 정면 스크린으로부터 그녀 바로 정면의 테이블 표면으로 병의 이미지를 드레그 하도록 MMID를 아래로 스윙한다. 그녀는 버튼을 릴리이스 하고 이에 의해 병을 릴리이스 하며, 이 것을 테이블 위의 위치 있도록 한다. 다음에 오퍼레이터는 다시 모드 'ii"로 회전시키며 MMID가 다른 애완 동물 에너지 음료 콜렉션을 향하도록 전방을 향하게 한다; 그너는 버튼을 누르고 즉시 MMID를 좌측을 향하여 움직이며, 몇 분의 일 초가 지난 후 버튼을 릴리이스 한다. 병의 콜렉션이 좌측을 향해 날아가며, 이것이 이동함에 따라 그것이 출발했던 크기로 출발 위치에 있게 될 때까지 그 크기가 줄어든다. 다음에 오퍼레이터가 애완동물 케어 제품의 다른 그룹핑을 선택하며, 이것을 선택하고, 검사하고, 아이템 하나를 수정하기 위해 이전에서와 같이 중심 디스플레이 영역으로 가져온다. 그녀는 결국 선택된 물체를 상기 테이블 디스플레이에 추가시킨다. 오퍼레이터는 이와 같은 큐레이터 과정을 계속한다.
일정한 시점에서, 오퍼레이터는 간단한 기하학 구조 에디터를 사용하여 애완동물 마사지 오일 통의 물리적 기하학 구조를 수정할 것을 선택하며, 또한 전방 스크린 트리피치의 우측 세 번째에 있는 공구 컬렉션으로부터 당긴다. 이 같은 에디터의 사용에 포함된 많은 조작 설명은 두 개의 MMID 동시 사용의 경우를 제외하고는 설명의 간결함을 위해 생략한다. 이 같은 경우, 오퍼레이터는 그녀의 좌측 손에 잡힌 두 번째 MMID를 사용하여, 상기 통(캔니스터)(장방형 단면을 갖는 단순한 돌출 형상)에서 트위스트를 위치시키도록 한다. 이때 한 MMID가 캔니스터의 기하학 구조 상부를 붙잡도록 하고 다른 한 MMID가 캔니스터의 저부를 붙잡도록 한다(두 MMID가 모드 "iii"이다). 이에 의해 상부와 저부는 분리하여 "고정되며", 오퍼레이터는 반대방향으로 MMID들을 회전시키고; 이와 같이하여 캔니스터의 메인 축을 중심으로 선형 트위스트를 발생시킨다. 오퍼레이터는 이들 기하학 구조의 변경을 종료하며 에디팅 모듈을 우측 디스플레이로 되 돌린다; 그녀는 상기 수정된 캔니스터를 테이블의 컬렉션 모음에 추가시킨다.
마침내, 테이블레 수십 개의 물체가 만들어지며, 정방향 중신 디스플레이가 한 번더 비워지며-- 오퍼레이터가 모드 "ii"가 좌측을 향하여 마지막 그룹핑으로 플릭되도록 한다(그리고 칼라 펠리트는 우측을 향한다). 그녀는 다음에 테이블에서 아직 모드 "ii"로 있는 MMID를 포인트하다. 그러나, 그녀의 목적은 여기서 프로덕트 렌더링을 피하는 것이다; 대신, 그녀는 오른쪽 버튼을 누르며 MMID로 디스플레이된 물체들 주변에 곡선 가축 모양을 그리는 것처럼 원형의 궤도를 그린다. 이에 응답하여, 시스템이 그룹핑 동작을 이전의 명백한 프로덕트 렌더링으로 그룹핑 동작을 적용하며, 이들의 레이아웃을 조직하고 이들의 상대적인 크기를 일치시킨다. 마지막으로, 오퍼레이터는 모드-"ii"를 사용하는 데, 오른쪽 디스플레이로부터 중심으로 그래픽 "딜리버리 튜브"의 입력 구멍을 탄성적으로 연장하도록 드래그한다; 다음에 그녀는 테이블의 개별화된 프로덕트 컬렉션을 선택하며, 이를 중심 스크린으로 드래그하고, 이를 딜리버리 튜브의 마우쓰내로 디포짓한다. 상기 튜브는 컬렉션을 입수하고 우측 디스플레이로 다시 후퇴시킨다; 상기 컬렉션은 오퍼레이터의 동료에게 전달될 것이며, 동료는 그녀의 작업을 검토하고 이것을 사용하여 애완용 동물 가게 복도의 인터액티브 시각화를 구출할 것으로 기대된다.
선택적 실시 예의 MMID는 장방형 형태-팩터를 갖는 하우징을 포함한다. 이 같은 선택적 실시 예의 포인터는 5 인치 길이, 1.5 인치 폭, 그리고 0.5 인치 깊이를 갖는다. 그러나 많은 다른 크기 및/또는 구성이 가능하다. 상기 MMID는 하기에서 상세히 설명되는 광학적으로 추적된 태그를 포함한다. 상기 MMID는 처리 소프트웨어가 호스트 시스템 환경에서 실행되기 때문에 전자 장치를 포함하지 않지만 실시 예가 이 같은 실시로 한정되지는 않는다.
사용자는 일반적으로 긴 축이 사용자의 환경에서 물체(가상 오브젝트포함)를 지시하도록 포인터를 지닌다. 포인터는 두 모달 방위(가령, 모드 i 과 ii) 사이에서 전환하도록 장축을 중심으로 회전될 수 있다. 비록 단지 2개의 모드만이 설명되지만, 4개의 모달 전환이 가능하다. 이는 시스템이 전환 중에; 모드 i로부터 모드 ii로/시계 방향 전환; 모드 i로부터 모드 ii로/시계 반대 방향 전환; 모드 ii로부터 모드 i로/시계 방향 전환; 모드 ii로부터 모드 i로/시계 반대 방향 전환; 회전 방향 사이에서 구분될 수 있기 때문이다. 상기 설명된 MMID에서, 이들 회전 전환은 입력 처리 소프트웨어에서 추적되며, 히스테리시스 로킹을 받을 수 있다.
광학적 태그는 사용자의 손으로부터 바깥 방향으로 연장된 영역에서 포인터의 "정면" 부분(가령, 정면 절반)에서 장착되며, 그러나 이 같은 실시로 한정되지 않는다. 포인터의 두 측면 각 각에서, 두 태그가 장착된다. 상기 측면 상의 최-정방향 태그가 제 위치에 고정된다. 상기 각 측면에서의 최-후방 태그는 상기 정방향 태그로부터 뒤로 일정 거리 떨어져(가령, 5 센티미터) 위치되며, 스프링-장착 슬라이딩 메카니즘으로 고정되어(전환 방향은 포인터의 장축과 정렬된다) 사용자의 엄지가 상기 메카니즘을 정방향으로 눌러서 두 태그 사이 거리를 대략 1 센티미터로 줄이도록 한다.
상기 입력 처리 소프트웨어는 두 태그 사이의 거리가 5 센티미터인 때 장치의 논리 버튼 상태가 상태(0) 인 것으로 해석한다. 상태(1)로의 전환을 실시 하기위해, 후방 태그가 전방 태그 가까이 거리로 이동된다(가령, 전방 태그로부터 4.2 센티미터 이내로). 버튼 상태(1)로 다시 전환은 태그들 사이 거리가 4.8 센티미터를 초과하는 때에만 트리거된다. 이는 장치의 주요한(회전) 모드 전환으로 적용된 히스테리시스와 유사하다. 다시 한번, 히스테리시스 대역의 크기가 구성가능하다. 광학적으로 추적된 MMID의 실시 예에서, 한 광학적 추적 태그가 사용되며, 여기서 다수의 도트가 한 태그에서 정렬된다. 이들 도트는 레트로이플렉터(retroreflectors)로 커버된 작은 구이며, 예를 들면, IR 추적 시스템(하기 설명)이 태그 표적의 위치와 방위를 결정하도록 허용한다. 이 같이 태그된 표적이 입력 MMID인 경우, 상기 추적 시스템이 언제 사용자가 버튼을 누르는 것과 같은, 비-기하학 구조, 상태-변경 입력를 제공하는가를 결정하도록 하는 수단을 제공하는 것이 바람직하다.
다양한 선택적인 실시의 MMID는 적외선(IR) 광선-발광 다이오드(LED)(IR LED)를 사용하여 사용자 입력에 기초하여 일정 상태에서 카메라에만 찍히는 추적 도트를 제공하도록 동작한다. 이들 선택적인 실시 예의 MMID는 배터리 그리고 입력 버튼에 의해 조정되는 LED 구동 회로를 포함한다. 도 25A 및 25B는 IR RED를 갖는 MMID의 입격 상태를 도시한다. 이 같은 실시 예의 태그는 다양한 레트로-리플렉티브 도트(2502)(실선 도트로 도시됨) 그리고 두 개의 IR LED(2503, 2504)를 포함한다. 도 25A에서, 태그는 MMID에서의 버튼이 눌려지지 않은 상태로 태그가 도시되며, IR LED(2503)은 조명되지 않는 상태이고, IR LED(2504)는 조명 상태이다. 도 25B에서,사용자는 MMID의 버튼을 눌렀으며, 이에 응답하여, IR LED(2503)이 조명 상태이고, IR LED(2504)는 조명되지 않는 상태이다. 상기 광학적 처리 시스템은 두 태그에서 차이를 검출하며 두 태그 상태로부터 사용자 의도를 결정한다.
도 26A 및 26B는 선택적 실시 예로서 IR LED를 갖는 MMID의 입력 상태를 도시한다. 이 같은 실시 예에서, 단 하나의 LED만이 스위치된다. 따라서, 도 26A와 관련하여서는, 사용자가 버튼을 누르지 않는 때에는 LED(2604)가 조명되지 않는 상태에 있다. 도 26B에서는, 사용자가 버튼을 눌렀으며, LED(2604)는 조명된다.
추가의 방법이 유사한 접근 방법을 사용하여 가능하다. 한 선택적 실시 예에서, 완전한 태그가 LED를 사용하여 그리고 태그가 사용자의 입력을 제공하는 때와 그렇지 않은 때를 사용하여 구성된다. 또 다른 실시 예에서, 두 동일한 태그가 중첩하여(가령 0.5 cm 오프셋되어) 또는 인접하여 발생된다. 한 태그 또는 다른 한 태그를 조명하고, 그리고 그 같은 태그의 위치를 다른 한 태그와 관련하여 결정함에 의해, 사용자의 입력 상태가 결정될 수 있도록 한다.
다른 선택적 실시 예의 MMID가 태그 추적의 사용을 EMF 추적과 결합할 수 있다. 이들 선택적 실시 예는 본원 명세서에서 설명한 바와 같이 다양한 종류의 태그를 사용하여 EMF 추적 특징을 태그 추적과 결합한다.
또 다른 실시 예의 MMID로는 두 적외선 광원과 결합하여 사용된 제어기, 사용자 정면에 위치하는 한 광원, 그리고 사용자 뒤에 위치하는 다른 한 광원을 포함한다. 이들 두 광원들은 각각 세 개의 개별 적외선 이미터를 가지며, 각 소스의 이미터는 다른 패턴으로 구성된다. 이 같은 실시 예의 MMID는 앞서 설명한 바와 같이, 관성 추적을 사용하며, 두 모드를 포함하고, 그리고 다수의 기계적 입력 버튼을 포함한다.
이 같은 실시 예의 MMID는 Nintendo Wii 원격 제어 장치로서 두 모달 방위를 지원하는 것의 수정으로 생각될 수 있다. 이때 상기 모들들은 그 환경과 관련하여 제어기의 방향 방위에 의해 결정된다. 상기 Wii 제어기는 Nintendo Wii 플랫폼에서 비디오 게임을 하기 위해 사용된 작은 장치이며 관련된 적외선 광원이다.
컨트롤러는 한 세트의 낮은-정확성 가속도계를 사용하여 초기에 공간상에서 그 모션을 추적한다. 가속도계는 10분의 몇 초 보다 큰 우수한 포지션 데이터와 배향 데이터를 제공하기에 충분한 정확성을 가지지 않는데, 수치 적분 동안에 축적된 오류 때문이고, 그래서, 광학 추적 시스템(광원 구성과 연관된)도 사용된다. 그러므로, WiiTM 컨트롤러의 광학 추적 시스템은 2-차원 이미지 평면에서 4개의 밝은 적외선 광원을 위치시킬 수 있는 내부의 전면 적외선 카메라를 더 포함한다. 그러므로, 카메라는 추적된 장치에 내장되고, 광학적으로 위치된 물체는 고정된-포지션 환경 지시자(referent)이다. 환경에서 알려진 적외선 광원의 지각된 크기와 포지션을 측정함에 의하여, 컨트롤러가 가리키고, 광원으로부터의 컨트롤러 거리를 3각 측량하는 방향을 결정할 수 있다. 적외선 추적 기술은 본 명세서에 기술된 추적 기술의 반대로 볼 수 있는데, 본 실시예의 적외선 추적 기술은 환경에 위치되는 카메라를 사용하여 장치, 표면, 장갑 및 다른 물체에 배열된 포인트를 광학적으로 찾는 것이기 때문이다.
닌텐도®WiiTM 콘솔의 일반적인 사용에서, 컨트롤러는 항상 디스플레이 화면을 가리키고 있다. 적외선 광원은 디스플레이 화면의 위 또는 아래에 위치되고, 화면-관련된 배향을 컨트롤러에게 제공한다. 반대로, 실시예의 컨트롤러는 두 적외선 광원(사용자의 정면에 위치된 하나와 사용자의 후면에 위치한 하나)과 연결되어 사용된다. 이들 두 광원은 각각 3 개의 개별적인 적외선 이미터를 가지고, 각각의 광원의 이미터는 서로 다른 패턴으로 구성된다.
실시예의 컨트롤러는 블루투스 라디오에 의하여 입력 처리 소프트웨어 또는 호스트 컴퓨터에서 실행되는 구성과 통신한다. 입력 처리 소프트웨어는 어떤 패턴이 감지되어서, 컨트롤러가 전면 또는 후면을 향하는지를 밝힌다. 두 모달(modal)의 배향은 전면/후면 결정으로부터 파생된다. 모달 상태 (i) 컨트롤러는 전면을 향한다. 모달 상태 (ii) 컨트롤러는 후면을 향한다. 각각의 경우에서, 사용자는 논리적으로 전면을 향한다. 사용자는 "뒤에서 앞(back to front)" 컨트롤러를 돌려서 모드를 컨트롤한다. 이것은 상기 기술된 실시예와 반대인데, 모드 컨트롤은 장치의 장-축 "롤링(rolling)"이다. 실시예의 컨트롤러는 내장된 스피커를 포함할 수 있어서, 소리 출력, 몇몇의 빛 및 진동(또는 "우르렁 소리(rumble)") 출력을 제공한다.
본 명세서에 기술된 많은 실시예의 수정예는 본 기술하에서 가능하다. 가령, 실시예의 컨트롤러는 두 개의 카메라(장치의 각 말단에 하나씩)를 가짐으로써, 두 광원에 대한 필요성을 제거한다. 광원들은 공간적, 패턴보다는 타이밍에 의해 차동화(differentiate)될 수 있다.
본 명세서에 기술된 실시예는 복수의 물체에 부착된 복수의 태그를 포함한다. 복수의 태그는 복수의 특징부(feature)를 포함하여, 각각의 태그는 적어도 하나의 특징부를 포함한다. 시스템은 복수의 센서를 포함한다. 복수의 센서의 위치는 복수의 물체를 포함하는 공간 운영 환경(spatial operating environment, SOE)을 마련한다. 복수의 센서는 복수의 특징부를 감지한다. 시스템은 프로세서에서 실행되는 적응형 추적 구성(adaptive tracking component, ATC)을 포함한다. ATC는 각각의 센서에 의해 감지된 복수의 물체의 각각의 물체에 해당하는 특징부 데이터를 복수의 센서 각각으로부터 수신한다. ATC는 복수의 센서로부터 특징부 데이터를 통합하여 복수의 물체와 SOE 사이의 코히런트 관계 모델(coherent model of relationship)을 생성하고 유지한다.
본 명세서에 기술된 실시예는, 복수의 물체에 부착된 복수의 태그 - 복수의 태그는 복수의 특징부를 포함하여 각각의 태그는 적어도 하나의 특징부를 포함함 - 와, 복수의 센서 - 복수의 센서의 위치는 복수의 물체를 포함하는 공간 운영 환경(SOE)를 마련하고, 복수의 센서는 복수의 특징부를 감지함 - 와, 프로세서에서 실행되는 적응형 추적 구성(ATC) - ATC는 각각의 센서에 의해 감지된 복수의 물체의 각각의 물체에 해당하는 특징부 데이터를 복수의 센서 각각으로부터 수신하고, ATC는 복수의 센서로부터 특징부 데이터를 통합하여 복수의 물체와 SOE 사이의 코히런트 관계 모델(coherent model of relationship)을 생성하고 유지함 - 을 포함하는 시스템을 포함한다.
코히런트 모델은 복수의 물체들 사이의 공간적 관계를 포함한다.
코히런트 모델은 복수의 물체의 포지션, 배향 및 모션 중 적어도 하나를 포함한다.
코히런트 모델은 복수의 물체의 포지션, 배향 및 모션을 포함한다.
SOE는 ATC의 가상 공간을 포함하는데, ATC는 가상 공간과 SOE를 포함하는 물리적 공간 사이의 일치성(coincidence)을 생성한다.
센서는 적어도 하나의 태그로부터, 센서와 관련된 적어도 하나의 태그의 위치와 배향을 포함하는 포즈를 감지한다.
포즈는 6 자유도(degree-of-freedom, DOF) 포즈를 포함한다.
복수의 물체는 신체, 신체의 부속지, 장치, 의류, 장갑, 디스플레이 장치, 가구 중 적어도 하나를 포함한다.
코히런트 모델의 원점(origin)은 복수의 센서의 특정 센서와 관련되어 마련된다.
코히런트 모델의 원점은 복수의 태그의 특정 태그와 관련되어 마련되는데, 특정 태그는 SOE에 관하여 고정된 포즈를 가진다.
코히런트 모델의 원점은 복수의 센서의 특정 센서와 복수의 태그의 특정 태그와 관련되어 마련되는데, 특정 태그는 SOE에 관하여 고정된 포즈를 가진다.
복수의 태그의 각각의 태그는 복수의 센서에 의해 감지되고 국부적인 적어도 하나의 특징부를 포함한다.
각각의 태그는 라벨링 정보를 포함한다.
각각의 태그는 식별 정보를 포함한다.
각각의 태그는 포즈 정보를 포함한다.
각각의 태그는 라벨링 정보, 식별 정보 및 포즈 정보 중 적어도 하나를 포함한다.
각각의 태그는 라벨링 정보, 식별 정보 및 포즈 정보를 포함한다.
태그의 투영 이미지(projective image)는 라벨링을 포함한다.
적어도 하나의 특징부는 적어도 하나의 마커(marker)를 포함한다.
라벨링은 투영 이미지의 적어도 한 포인트를 적어도 하나의 해당 마커에 관련시킨다.
태그의 투영 이미지는 식별자를 포함한다.
적어도 하나의 특징부는 태그상의 복수의 마커를 포함한다.
식별자는 복수의 태그의 제1 태그와 복수의 태그의 제2 태그를 구별시킨다.
태그의 투영 이미지는 포즈 정보를 포함한다.
포즈 정보는 병진운동 정보와 회전운동 정보를 포함한다.
병진운동 정보는 3 자유도 병진운동을 포함한다.
회전운동 정보는 3 자유도 회전운동을 포함한다.
포즈 정보는 태그의 위치 및 배향을 SOE의 위치 및 배향과 관련시킨다.
각각의 센서는 SOE에서 감지 공간(sensing volume)에 해당된다.
각각의 센서는 감지 공간 내의 각각의 태그의 포즈를 추정한다.
포즈는 태그의 위치를 포함한다.
포즈는 태그의 배향을 포함한다.
포즈는 태그의 위치 및 배향을 포함한다. 위치 및 배향은 각각의 센서와 관련된다.
각각의 센서의 감지 공간은 복수의 센서의 하나의 센서의 감지 공간과 적어도 부분적으로 오버랩된다.
복수의 센서의 조합된 감지 공간은 인접한다.
특징부 데이터는 동기화된다.
ATC는 복수의 센서의 각각의 센서에 대해 SOE에 관련된 포즈의 포즈 모델을 생성한다.
포즈는 6 자유도(DOF) 포즈를 포함한다.
복수의 센서가 제1 태그를 제 때에 순식간에 모두 감지할 때, ATC는 복수의 센서들 사이의 공간적 관계를 생성한다.
ATC는 공간적 관계를 사용하여 코히런트 모델을 업데이트한다.
ATC는 복수의 센서의 특정 센서에 관련된 코히런트 모델의 원점을 마련한다.
ATC는 복수의 태그의 특정 태그에 관련된 코히런트 모델의 원점을 마련하는데, 특정 태그는 SOE에 관련하여 고정된 포즈를 가진다.
ATC는 복수의 센서의 특정 센서 및 복수의 태그의 특정 태그에 관련된 코히런트 모델의 원점을 마련하는데, 특정 태그는 SOE에 관련하여 고정된 포즈를 가진다.
정확한 포즈 모델은 각각의 센서에 대해 결정된다.
태그는 제 때에 복수의 포인트들에서 센서에 의해 추적되고, 복수의 포즈 모델은 태그를 위해 생성된다.
복수의 신뢰도 메트릭(confidence metrics)은 복수의 포즈 모델을 위해 생성되고, 복수의 포즈 모델은 복수의 신뢰도 매트릭에 기초하여 도태되어 불일치하는 포즈 모델을 모두 제거한다.
태그는 복수의 센서에 의하여 제 때에 복수의 포인트들에서 추적되고, 복수의 세트의 포즈 모델은 태그에 대해서 발달되고, 각 세트의 포즈 모델은 제 때의 각 포인트에 해당하는 복수의 포즈를 포함한다.
복수의 신뢰도 메트릭은 각 세트의 포즈 모델의 복수의 포즈 모델에 대해 생성되고, 복수의 세트의 포즈 모델은 복수의 신뢰도 메트릭에 기초하여 도태되어 일관성 없는 포즈 모델을 모두 제거한다.
평균 가설은 각 세트의 포즈 모델의 복수의 포즈 모델의 평균치를 포함한다.
평균 가설은 해당 태그의 참 포즈에 대한 최대 가능도 추정치(maximum likelihood estimate)에 근사화된다.
평균 가설은 포지션 성분을 포함한다.
평균 가설은 회전 성분을 포함한다.
평균 가설은 포지션 성분과 회전 성분을 포함한다.
포지션 성분은 제1 방정식에 의해 주어지는데,
회전 성분은 제1 방정식을 적용하여 SOE 내의 회전 좌표계(rotating coordinate frame)의 기저를 형성하는 단위 배향 벡터로 근사화되고, 단위 배향 벡터를 재정규화(renormalizing) 한다.
평활화된 가설(smoothed hypothesis)은 평균 가설의 보정 계수(correction factor)의 적용을 통해 생성된다.
평활화된 가설은, 적어도 하나의 추가 센서가 태그를 감지할 때 생성되는데, 적어도 하나의 추가 센서는 태그를 이전에 감지하지 않았다.
평활화된 가설은 복수의 센서의 적어도 하나의 센서가 태그를 감지하는 단계를 정지할 때 생성되는데, 적어도 하나의 추가 센서는 태그를 이전에 감지하지 않았다.
평활화된 가설은 포지션 성분을 포함한다.
평활화된 가설은 회전 성분을 포함한다.
평활화된 가설은 포지션 성분 및 회전 성분을 포함한다.
포지션 성분은 제2 방정식에 의해 주어지는데,
보정 계수는 평균 가설에 적용되고, 여기서 보정 계수는,
회전 성분은 제2 방정식을 적용하여 SOE 내의 회전 좌표계의 기저를 형성하는 단위 배향 벡터로 근사화되고, 단위 배향 벡터를 재정규화 한다.
복수의 센서의 적어도 하나의 센서는 복수의 물체의 적어도 하나의 물체의 물체의 포즈를 실-시간으로 측정한다.
적어도 하나의 센서는 물체에 부착된 복수의 센서를 포함한다.
적어도 하나의 센서는 적어도 하나의 물체에 부착된다.
ATC는 물체의 포즈의 변화에 자동으로 적응한다.
ATC는 적어도 하나의 물체의 포즈와 물리적 크기의 모델을 생성한다.
포즈는 6 자유도(DOF) 포즈를 포함한다.
적어도 하나의 센서는 적어도 하나의 물체의 주변상의 적어도 하나의 위치에 부착되는데, 적어도 하나의 물체는 디스플레이 장치이다.
ATC는 적어도 하나의 위치를 자동으로 결정한다.
적어도 하나의 위치의 위치 데이터는 수동으로 입력된다.
적어도 하나의 센서는 디스플레이 장치의 포즈를 실시간으로 측정한다.
복수의 태그의 적어도 하나의 태그는 복수의 물체의 적어도 하나의 물체에 부착된다.
적어도 하나의 태그는 물체에 부착된 복수의 태그를 포함한다.
복수의 센서는 적어도 하나의 태그의 정보를 사용하여 적어도 하나의 물체의 물체의 포즈를 실시간으로 측정한다.
ATC는 물체의 포즈의 변화를 자동으로 적응한다.
ATC는 적어도 하나의 물체의 포즈 및 물리적 크기의 모델을 생성한다.
포즈는 6 자유도(DOF) 포즈를 포함한다.
적어도 하나의 태그는 적어도 하나의 물체의 주변상의 적어도 하나의 위치에 부착되는데, 적어도 하나의 물체는 디스플레이 장치이다.
ATC는 적어도 하나의 위치를 자동으로 결정한다.
적어도 하나의 위치의 위치 데이터는 수동으로 입력된다.
적어도 하나의 센서는 적어도 하나의 태그의 정보를 사용하여 디스플레이 장치의 포즈를 실시간으로 측정한다.
ATC는 물체의 포즈의 변화를 자동으로 적응한다.
복수의 센서의 적어도 하나의 센서는 복수의 물체의 적어도 하나의 물체의 물체의 포즈를 실시간으로 측정하는데, 적어도 하나의 물체는 마킹된 물체가다.
마킹된 물체는 태깅된 물체를 사용하여 마킹되는데, 태깅된 물체는 물체에 부착된 태그를 포함한다.
마킹된 물체는, 태깅된 물체가 적어도 하나의 물체상의 적어도 하나의 위치에 직접 접촉하여 위치될 때 마킹된다.
적어도 하나의 위치는 마킹된 물체상의 복수의 위치를 포함한다.
복수의 센서는 마킹된 물체와 SOE에 관련하여 태깅된 물체의 포즈를 측정한다.
복수의 위치에서 센싱된 태깅된 물체의 포즈는 마킹된 물체의 포즈를 나타낸다.
마킹된 물체는 태깅된 물체가 적어도 하나의 물체상에 복수의 위치를 가리킬 때 마킹된다.
복수의 센서는 마킹된 물체와 SOE에 관련하여 태깅된 물체의 포즈를 측정한다.
태깅된 물체의 포즈는 마킹된 물체의 포즈를 나타낸다.
태깅된 물체의 포즈는 태깅된 물체가 복수의 위치를 가리킬 때, 해당하는제 때의 포인트에서 마킹된 물체의 포즈를 나타낸다.
적어도 하나의 특징부는 광학 기점(optical fiducial)을 포함한다.
적어도 하나의 특징부는 발광 다이오드(LED)를 포함한다.
적어도 하나의 특징부는 적외선(IR) 발광 다이오드(LED)를 포함한다.
적어도 하나의 특징부는 역-반사 물질을 포함하는 마커를 포함한다.
적어도 하나의 특징부는 적어도 하나의 칼라를 포함하는 적어도 하나의 영역을 포함한다.
적어도 하나의 특징부는 복수의 공선(collinear) 마커를 포함한다.
태그는 복수의 공선 마커를 포함하는 선형-부분-태그(linear-partial-tag, LPT)를 포함한다.
복수의 공선 마커는 태그의 식별자를 전달한다.
태그는 복수의 LPT를 포함하는데, 각각의 LPT는 복수의 공선 마커를 포함한다.
태그는 제2 LPT에 인접한 기판상에 위치되는 제1 LPT를 포함하는데, 제1 LPT는 제1 세트의 공선 마커를 포함하고, 제2 LPT는 제2 세트의 공선 마커를 포함한다.
제1 세트는 네 개(4)의 공선 마커를 포함하고, 제2 세트는 네 개(4)의 공선 마커를 포함한다. 복수의 센서는 적어도 하나의 카메라를 포함하고, 특징부 데이터는 적어도 하나의 카메라에 의해 얻어진 투영 이미지를 포함하는데, 투영 이미지는 태그를 포함한다.
시스템은 투영 이미지를 검색하는 것과 투영 이미지의 제1 LPT를 식별하는 것을 포함한다.
시스템은 제1 LPT의 제1 세트의 공선 마커에 라인을 맞추는 것을 포함한다.
시스템은 제1 세트의 공선 마커의 제1 세트의 교차 비를 계산하는 것을 포함하는데, 교차 비는 제1 세트의 공선 마커의 복수의 공선 마커들 사이의 쌍별 거리(pairwise distance)의 함수이다.
시스템은 교차 비를, 알려진 세트의 LPT에 해당하는 교차 비의 세트와 비교하는 것을 포함한다.
시스템은 투영 이미지를 검색하는 것과 제2 LPT를 식별하는 것을 포함하고, 제1 LPT와 제2 LPT를 태그 후보자(candidate)로 결합한다.
시스템은 태그 후보자에 해당하는 한 세트의 포즈 가설을 계산하는 것을 포함한다.
포즈 가설은 6 자유도(DOF) 포즈를 포함한다.
시스템은 한 세트의 포즈 가설의 포즈의 재-투영 오류인 신뢰도 메트릭을 계산하는 것을 포함한다.
신뢰도 메트릭은 방정식에 의해 주어지는데,
여기서, 는 태그내의 공선 마커의 수이고, 2 는 측정된 투영 이미지내의 공선 마커의 픽셀 위치이며, 은 태그의 좌표계내의 공선 마커의 이상적인 해당 위치이고, 는 포즈를 나타내는 행렬이며, 는 적어도 하나의 카메라의 카메라 모델이다.
적어도 하나의 카메라는 투영 이미지의 이미지 코디네이트와 복수의 공선 마커 사이의 대응 데이터를 수집한다.
시스템은 카메라 보정 어플리케이션을 포함하는데, 적어도 하나의 카메라의 고유 파라미터는 카메라 보정 어플리케이션을 사용하여 모델링되는데, 고유 파라미터는 초점비, 광학 중심, 스큐니스 및 렌즈 왜곡 중 적어도 하나를 포함한다.
카메라 보정 어플리케이션으로의 입력은 대응 데이터를 포함한다.
프로세서는 복수의 센서를 통하여 수신된 특징부 데이터로부터 신체의 제스처를 자동으로 감지하는데, 복수의 물체는 신체를 포함하고, 특징부 데이터는 시공간의 포인트에서 순간적인 상태의 신체의 절대적 3-공간 위치 데이터이고, 감지하는 것은 특징부 데이터를 집성하는 것이며, 특징부 데이터만 사용하여 제스처를 식별하는 것이다.
컨트롤 하는 것은 프로세서에서 실행되는 어플리케이션, 프로세서에 의해 디스플레이되는 구성 및 프로세서와 결합된 구성 중 적어도 하나의 기능에서 컨트롤하는 것을 포함한다.
프로세서는 제스처를 체스쳐 신호로 변환시키고, 프로세서와 결합된 구성을 제스처 신호에 응답하여 컨트롤한다.
감지하는 것은 제스처를 식별하는 것을 포함하는데, 식별하는 것은 신체 일부의 포즈 및 배향을 식별하는 것을 포함한다.
변환시키는 것은 제스처의 정보를 제스처 표기(notation)로 변환시키는 것을 포함한다.
제스처 표기는 제스처 어휘를 나타내고, 제스처 신호는 제스처 어휘의 통신을 포함한다.
제스처 어휘는 원문 형태로 신체의 운동 관절(kinematic linkages)의 순간적인 포즈 상태를 나타낸다.
제스처 어휘는 원문 형태로 신체의 운동 관절의 배향을 나타낸다.
제스처 어휘는 원문 형태로 신체의 운동 관절의 배향들의 조합을 나타낸다.
제스처 어휘는 신체의 운동 관절의 상태를 나타내는 문자들의 열을 포함한다.
구성을 콘트롤하는 것은 제스처를 3-공간 물체로의 맵핑에 의하여 동시에 6 자유도에서 3-공간 물체를 컨트롤하는 것을 포함하는데, 복수의 물체는 3-공간 물체를 포함한다.
3-공간 물체는 프로세서와 결합된 디스플레이 장치상에 제시된다.
3-공간 물체는 프로세서와 결합된다.
시스템은 복수의 제스처를 3-공간 물체의 복수의 물체 변환으로 맵핑함에 의하여 3-공간 물체의 모션을 컨트롤하는 것을 포함한다.
감지하는 것은, 물체의 외삽(extrapolated) 위치가 가상 공간을 가로지를 때 감지하는 것을 포함하는데, 가상 공간은 프로세서와 결합된 디스플레이 장치상에 묘사된 공간을 포함한다.
구성을 컨트롤하는 것은 외삽 위치가 가상 물체를 가로지를 때, 가상 공간에서의 가상 물체를 컨트롤하는 것을 포함한다.
구성을 컨트롤하는 것은 가상 공간 내의 외삽 위치에 응답하여 가상 공간에서의 가상 물체의 위치를 컨트롤하는 것을 포함한다.
구성을 컨트롤하는 것은 제스처에 응답하여 가상 공간에서의 가상 물체의 태도를 컨트롤하는 것을 포함한다.
본 명세서에서 기술된 실시예는 복수의 태그를 복수의 물체에 부착시키는 것을 포함하는 방법을 포함한다.
복수의 태그는 복수의 특징부를 포함하여 각각의 태그는 적어도 하나의 특징부를 포함한다. 본 방법은 복수의 센서를 위치시킴에 의하여 공간 운영 환경(SOE)을 마련하는 단계를 포함한다. SOE는 복수의 물체를 포함한다. 본 방법은 복수의 센서로 복수의 특징부를 감지하는 단계를 포함한다. 본 방법은 각각의 센서에 의해 감지된 복수의 물체의 각각의 물체에 해당하는 특징부 데이터를 복수의 센서의 각각의 센서로부터 수신하는 단계를 포함한다. 본 방법은 복수의 센서로부터 특징부 데이터를 통합하여 복수의 물체와 SOE 사이의 코히런트 관계 모델을 생성하고 유지하는 단계를 포함한다.
본 명세서에서 기술된 실시예는 복수의 태그를 복수의 물체에 부착시키는 단계 - 복수의 태그는 복수의 특징부를 포함함 - 와, 복수의 센서를 위치시킴에 의하여 공간 운영 환경(SOE)를 마련하는 단계 - SOE는 복수의 물체를 포함함 - 와, 복수의 센서로 복수의 특징부를 감지하는 단계와, 각각의 센서에 의해 감지된 복수의 물체의 각각의 물체에 해당하는 특징부 데이터를 복수의 센서 각각으로부터 수신하는 단계와, 복수의 센서로부터 특징부 데이터를 통합하여 복수의 물체와 SOE 사이의 코히런트 관계 모델을 생성하고 유지하는 단계를 포함하는 방법을 포함한다.
코히런트 모델은 복수의 물체들 사이에 공간적 관계를 포함한다.
코히런트 모델은 복수의 물체의 포지션, 배향 및 모션 중 적어도 하나를 포함한다.
코히런트 모델은 복수의 물체의 포지션, 배향 및 모션을 포함한다.
본 방법은 가상 공간과 SOE를 포함하는 물리적 공간을 생성하는 단계를 포함한다.
감지하는 단계는 센서와 관련하여 적어도 하나의 태그의 위치와 배향을 포함하는 포즈를 적어도 하나의 태그로부터 감지하는 단계를 포함하고, 포즈는 6 자유도(DOF) 포즈를 포함한다.
복수의 물체는 신체, 신체의 부속지, 장치, 의류, 장갑, 디스플레이 장치, 가구 중 적어도 하나를 포함한다.
본 방법은 복수의 센서의 특정 센서와 관련하여 코히런트 모델의 원점을 마련한다.
본 방법은 보수의 태그의 특정 태그와 관련하여 코히런트 모델의 원점을 마련하는데, 특정 태그는 SOE와 관련하여 고정된 포즈를 가진다.
본 방법은 복수의 센서의 특정 센서 및 복수의 태그의 특정 태그와 관련하여 코히런트 모델의 원점을 마련하는 단계를 포함하는데, 특정 태그는 SOE와 관련하여 고정된 포즈를 가진다.
복수의 태그의 각각의 태그는 적어도 하나의 특징부를 포함하고, 이는 복수의 센서에 의해 감지되고 분산(localized)된다.
각각의 태그는 라벨링 정보, 식별 정보 및 포즈 정보 중 적어도 하나를 포함한다.
각각의 태그는 라벨링 정보, 식별 정보 및 포즈 정보를 포함한다.
태그의 투영 이미지는 라벨링을 포함하는데, 적어도 하나의 특징부는 적어도 하나의 마커를 포함하고, 라벨링은 투영 이미지내의 적어도 한 포인트를 적어도 하나의 해당 마커에 관련시킨다.
태그의 투영 이미지는 식별자를 포함하는데, 적어도 하나의 특징부는 태그상에 복수의 마커를 포함하고, 식별자는 복수의 태그의 제1 태그와 복수의 태그의 제2 태그를 구별시킨다.
태그의 투영 이미지는 포즈 정보를 포함하는데, 포즈 정보는 병진운동 정보와 회전운동 정보를 포함한다.
병진운동 정보는 3 자유도 변환운동을 포함하는데, 회전운동 정보는 3 자유도 회전운동을 포함한다.
포즈 정보는 태그의 위치와 배향을 SOE의 위치와 배향에 관련시킨다.
본 방법은 각각의 센서로, 감지 공간내의 각각의 태그의 포즈를 추정하는 단계를 포함하는데, 각각의 센서의 SOE내의 각각의 감지 공간에 해당된다.
포즈는 태그의 위치와 태그의 배향 중 적어도 하나를 포함한다.
포즈는 태그의 위치와 태그의 배향을 포함하는데, 위치와 배향은 각각의 센서와 관련된다.
각각의 센서의 감지 공간은 복수의 센서의 하나의 센서의 감지 공간과 적어도 부분적으로 오버랩되는데, 결합된 복수의 센서의 감지 공간이 인접하다.
특징부 데이터는 동기화된다.
본 방법은 복수의 센서의 각각의 센서에 대해 SOE에 관련된 포즈의 포즈 모델을 생성하는데, 포즈는 6 자유도(DOF) 포즈를 포함한다.
본 방법은 복수의 센서가 제1 태그를 제 때에 순식간에 모두 감지할 때, ATC는 복수의 센서들 사이의 공간적 관계를 생성하는 단계 및 공간적 관계를 사용하여 코히런트 모델을 업데이트하는 단계를 포함한다.
본 방법은 복수의 태그의 특정 태그에 관련하여 코히런트 모델의 원점을 마련하는 단계를 포함하는데, 특정 태그는 SOD에 관련하여 고정된 포즈를 가진다.
본 방법은 복수의 센서의 특정 센서 및 복수의 태그의 특정 태그와 관련하여 코히런트 모델의 원점을 마련하는 단계를 포함하는데, 특정 태그는 SOE와 관련하여 고정된 포즈를 가진다.
본 방법은 각각의 센서에 대해 정확한 포즈 모델을 결정하는 단계를 포함한다.
본 방법은 센서에 의해 제 때에 복수의 포인트들에서 추적되고, 태그를 위하여 복수의 포즈 모델을 생성하는 단계를 포함한다. 본 방법은 각 세트의 포즈 모델의 복수의 포즈 모델을 위하여 복수의 신뢰도 메트릭을 생성하고, 복수의 신뢰도 메트릭에 기초하여 복수의 세트의 포즈 모델을 도태시켜서 일관성 없는 포즈 모델을 모두 제거되는 단계를 포함한다.
본 방법은 복수의 센서에 의하여 제 때에 복수의 포인트들에서 태그를 추적하는 단계와 태그를 위해 복수의 세트의 포즈 모델을 발달시키는 단계를 포함하되, 각 세트의 포즈 모델은 제 때의 각 포인트에 해당하는 복수의 포즈를 포함한다.
본 방법은 각 세트의 포즈 모델의 복수의 포즈 모델을 위하여 복수의 신뢰도 메트릭을 생성하고, 복수의 신뢰도 메트릭에 기초하여 복수의 세트의 포즈 모델을 도태시켜서 일관성 없는 포즈 모델을 모두 제거되는 단계를 포함한다.
평균 가설은 각 세트의 포즈 모델의 복수의 포즈 모델의 평균치를 포함하는데, 평균 가설은 해당 태그의 참 포즈에 대한 최대 유사 추정치에 근사화 된다.
평균 가설은 포지션 성분과 회전 성분 중 적어도 하나를 포함한다.
평균 가설은 포지션 성분과 회전 성분을 포함한다.
본 방법은 제1 방정식을 사용하여 포지션 성분을 결정하는데,
은 가설 이 측정되는 시점이고, 은 한 시점에서 태그를 감지하는 센서의 수이며, 제1 방정식을 적용하여 SOE 내의 회전 좌표계의 기저를 형성하는 단위 배향 벡터로 근사화되고, 단위 배향 벡터를 재정규화하는 단계를 포함한다.
본 방법은 평균 가설에 대해 보정 계수를 적용함에 의하여 평활화된 가설을 생성하는 단계를 포함한다.
본 방법은 적어도 하나의 추가 센서가 태그를 감지할 때, 평활화된 가설을 생성하는 단계를 포함하되, 적어도 하나의 추가 센서는 태그를 이전에 감지하지 않았다.
본 방법은 적어도 하나의 추가 센서가 태그를 감지하는 것을 중지할 때, 평활화된 가설을 생성하는 단계를 포함하되, 적어도 하나의 추가 센서는 태그를 이전에 감지하지 않았다
평활화된 가설은 포지션 성분 및 회전 성분 중 적어도 하나를 포함한다
평활화된 가설은 포지션 성분 및 회전 성분을 포함한다
제2 방정식을 사용하여 포지션 성분을 결정하는 단계를 포함하는데,
본 방법은 평균 가설에 보정 계수를 적용시키는 단계를 포함하는데, 보정 계수는,
본 방법은 회전 성분을 제2 방정식을 적용하여 SOE 내의 회전 좌표계의 기저를 형성하는 단위 배향 벡터로 근사화시키고, 단위 배향 벡터를 재정규화 시키는 단계를 포함한다.
본 방법은 복수의 센서의 적어도 하나의 센서를 사용하여, 복수의 물체의 적어도 하나의 물체의 물체의 포즈를 실-시간으로 측정하는 단계를 포함한다.
적어도 하나의 센서는 물체에 부착된 복수의 센서를 포함한다.
적어도 하나의 센서는 적어도 하나의 물체에 부착된다.
본 방법은 물체의 포즈의 변화를 자동으로 적응시키는 단계를 포함한다. 본 방법은 적어도 하나의 물체의 포즈와 물리적 크기의 모델을 생성하는 단계를 포함하고, 포즈는 6 자유도(DOF) 포즈를 포함한다.
본 방법은 적어도 하나의 물체의 주변상의 적어도 하나의 위치에 적어도 하나의 센서를 부착시키는 단계를 포함하고, 적어도 하나의 물체는 디스플레이 장치이다.
본 방법은 적어도 하나의 위치를 자동으로 결정하는 단계를 포함한다.
적어도 하나의 위치의 위치 데이터는 수동으로 입력된다.
본 방법은 적어도 하나의 센서를 사용하여 디스플레이 장치의 포즈를 실시간으로 측정하는 단계를 포함하고, 디스플레이 장치의 포즈를 자동으로 변화시켜서 적응시키는 단계를 포함한다.
본 방법은 복수의 태그의 적어도 하나의 태그를 복수의 물체의 적어도 하나의 물체에 부착시키는 단계를 포함한다.
적어도 하나의 태그는 물체에 부착된 복수의 태그를 포함한다.
본 방법은 복수의 센서로 적어도 하나의 태그의 정보를 사용하여 적어도 하나의 물체의 물체의 포즈를 실시간으로 측정하는 단계를 포함한다.
본 방법은 물체의 포즈의 변화를 자동으로 적응시키는 단계를 포함한다.
본 방법은 적어도 하나의 물체의 포즈와 물리적 크기의 모델을 생성하는 단계를 포함하고, 포즈는 6 자유도(DOF) 포즈를 포함한다.
본 방법은 적어도 하나의 물체의 주변상의 적어도 하나의 위치에 적어도 하나의 센서를 부착시키는 단계를 포함하고, 적어도 하나의 물체는 디스플레이 장치이다.
본 방법은 적어도 하나의 위치를 자동으로 결정하는 단계를 포함한다.
적어도 하나의 위치의 위치 데이터는 수동으로 입력된다.
본 방법은 적어도 하나의 센서를 사용하여 디스플레이 장치의 포즈를 실시간으로 측정하는 단계를 포함하고, 디스플레이 장치의 포즈를 자동으로 변화시켜서 적응시키는 단계를 포함한다.
본 방법은 복수의 센서로 복수의 물체의 적어도 하나의 물체의 물체의 포즈를 실시간으로 측정하는 단계를 포함하고, 적어도 하나의 물체는 마킹된 물체가다.
본 방법은 태깅된 물체를 사용하여 마킹된 물체를 마킹하는 단계를 포함하는데, 태깅된 물체는 물체에 부착된 태그를 포함한다.
본 방법은 태깅된 물체가 적어도 하나의 물체상의 적어도 하나의 위치에 직접 접촉하여 위치될 때, 마킹된 물체를 마킹하는 단계를 포함한다.
본 방법은 복수의 센서로, 마킹된 물체와 SOE와 관련하여 태깅된 물체의 포즈를 측정하는 단계를 포함하는데, 적어도 하나의 위치는 마킹된 물체상의 복수의 위치를 포함하고, 센싱된 태깅된 물체의 포즈는 마킹된 물체의 포즈를 나타낸다.
본 방법은 태깅된 물체가 적어도 하나의 물체상에 복수의 위치를 가리킬 때, 마킹된 물체를 마킹하는 단계를 포함한다.
본 방법은 복수의 센서로, 마킹된 물체와 SOE에 관련하여 태깅된 물체의 포즈를 측정하는 단계를 포함하는데, 태깅된 물체의 포즈는 마킹된 물체의 포즈를 나타내고, 태깅된 물체의 포즈는 태깅된 물체가 복수의 위치를 가리킬 때, 해당하는제 때의 포인트에서 마킹된 물체의 포즈를 나타낸다.
적어도 하나의 특징부는 광학 기점(optical fiducial), 발광 다이오드(LED), 적외선(IR) 발광 다이오드(LED), 역-반사 물질을 포함하는 마커, 적어도 하나의 칼라를 포함하는 적어도 하나의 영역을 포함하는 마커 및 복수의 공선(collinear) 마커 중 적어도 하나를 포함한다.
태그는 복수의 공선 마커를 포함하는 선형-부분-태그(LPT)를 포함한다.
본 방법은 복수의 공선 마커로 태그의 식별자를 전달하는 단계를 포함한다.
태그는 복수의 LPT를 포함하는데, 각각의 LPT는 복수의 공선 마커를 포함하고, 태그는 제2 LPT에 인접한 기판상에 위치되는 제1 LPT를 포함하는데, 제1 LPT는 제1 세트의 공선 마커를 포함하고, 제2 LPT는 제2 세트의 공선 마커를 포함한다.
복수의 센서는 적어도 하나의 카메라를 포함하고, 특징부 데이터는 적어도 하나의 카메라에 의해 얻어진 투영 이미지를 포함하는데, 투영 이미지는 태그를 포함한다.
본 방법은 투영 이미지를 검색하는 단계와 투영 이미지의 제1 LPT를 식별하는 단계 및 제1 LPT의 제1 세트의 공선 마커에 라인을 맞추는 단계를 포함한다.
본 방법은 제1 세트의 공선 마커의 교차 비를 계산하는 것을 포함하는데, 교차 비는 제1 세트의 공선 마커의 복수의 공선 마커들 사이의 쌍별 거리의 함수이고, 교차 비를, 알려진 세트의 LPT에 해당하는 교차 비의 세트와 비교하는 단계를 포함한다.
본 방법은 투영 이미지를 검색하는 단계와 제2 LPT를 식별하는 것을 포함하고, 제1 LPT와 제2 LPT를 태그 후보자로 결합시키는 단계, 및 태그 후보자에 해당하는 한 세트의 포즈 가설을 계산하는 단계를 포함한다.
본 방법은 한 세트의 포즈 가설의 포즈의 재-투영 오류인 신뢰도 메트릭을 계산하는 단계를 포함한다.
신뢰도 메트릭은 방정식에 의해 주어지는데,
는 태그에서 공선 마커의 수이고, 는 측정된 투영 이미지내의 공선 마커의 픽셀 위치이며, 은 태그의 좌표계내의 공선 마커의 이상적인 해당 위치이고, 는 포즈를 나타내는 행렬이며, 는 적어도 하나의 카메라의 카메라 모델이다.
적어도 하나의 카메라는 투영 이미지의 이미지 코디네이트와 복수의 공선 마커 사이의 대응 데이터를 수집한다.
본 방법은 카메라 보정 어플리케이션을 포함하는데, 적어도 하나의 카메라의 고유 파라미터는 카메라 보정 어플리케이션을 사용하여 모델링되는데, 고유 파라미터는 초점비, 광학 중심, 스큐니스 및 렌즈 왜곡 중 적어도 하나를 포함한다.
카메라 보정 어플리케이션으로의 입력은 대응 데이터를 포함한다.
본 방법은 복수의 센서를 통하여 수신된 특징부 데이터로부터 신체의 제스처를 자동으로 감지하는 단계를 포함하는데, 복수의 물체는 신체를 포함하고, 특징부 데이터는 시공간의 포인트에서 순간적인 상태의 신체의 절대적 3-공간 위치 데이터이고, 감지하는 단계는 특징부 데이터를 집성하는 단계와 특징부 데이터만 사용하여 제스처를 식별하는 단계를 포함한다.
컨트롤 하는 단계는 어플리케이션, 디스플레이 구성 및 원격 구성의 기능 중 적어도 하나를 컨트롤 하는 단계를 포함한다.
본 방법은 제스처를 체스쳐 신호로 변환시키는 단계와 제스처 신호에 응답하여 구성을 컨트롤하는 단계를 포함한다.
감지하는 단계는 제스처를 식별하는 단계를 포함하는데, 식별하는 단계는 신체 일부의 포즈 및 배향을 식별하는 단계를 포함한다.
변환시키는 단계는 제스처의 정보를 제스처 표기로 변환시키는 단계를 포함하는데, 제스처 표기는 제스처 어휘를 나타내고, 제스처 신호는 제스처 어휘의 통신을 포함한다. 제스처 어휘는 원문 형태로 신체의 운동 관절, 신체의 운동 관절의 배향 및 신체의 운동 관절의 배향들의 조합의 순간적인 포즈 상태 중 적어도 하나를 나타낸다.
제스처 어휘는 신체의 운동 관절의 상태를 나타내는 문자들의 열을 포함한다.
구성을 콘트롤하는 단계는, 제스처를 3-공간 물체로의 맵핑에 의하여 동시에 6 자유도에서 3-공간 물체를 컨트롤하는 단계를 포함하는데, 복수의 물체는 3-공간 물체를 포함한다.
본 방법은 디스플레이 장치상에 3-공간 물체를 제시하는 단계를 포함한다.
본 방법은 복수의 제스처를 3-공간 물체의 복수의 물체변환으로 맵핑함에 의하여 3-공간 물체의 모션을 컨트롤하는 단계를 포함한다.
감지하는 단계는, 물체의 외삽(extrapolated) 위치가 가상 공간을 가로지를 때 감지하는 단계를 포함하는데, 가상 공간은 프로세서와 결합된 디스플레이 장치상에 묘사된 공간을 포함한다.
구성을 컨트롤하는 단계는 외삽 위치가 가상 물체를 가로지를 때, 가상 공간에서의 가상 물체를 컨트롤하는 단계를 포함한다.
본 명세서에서 기술된 실시예는 복수의 태그를 복수의 물체에 부착시키는 것을 포함하는 시스템을 포함한다. 복수의 태그는 복수의 특징부를 포함하여 각각의 태그는 적어도 하나의 특징부를 포함한다. 시스템은 복수의 센서를 포함한다. 복수의 센서의 위치는, 복수의 물체를 포함하는 공간 운영 환경(SOE)을 마련한다. 시스템은 프로세서에서 실행되는 적응형 추적 구성(ATC)를 포함한다. ATC는 각각의 센서에 의해 감지된 복수의 물체의 각각의 물체에 해당하는 특징부 데이터를 복수의 센서 각각으로부터 수신한다. 특징부 데이터는 시공간의 포인트에서 순간적인 상태의 신체의 절대적 3-공간 위치 데이터이다. ATC는 복수의 센서로부터 특징부 데이터를 통합하여 복수의 물체와 SOE 사이의 코히런트 관계 모델을 생성하고 유지한다. ATC는 특징부 데이터로부터, 복수의 물체의 적어도 하나의 물체의 제스처를 자동으로 감지한다. 감지하는 것은 특징부 데이터만을 사용하여 제스처를 식별하는 것을 포함한다. 본 명세서에서 기술되는 실시예는 복수의 물체에 부착된 복수의 태그 - 복수의 태그는 복수의 특징부를 포함하여 각각의 태그는 적어도 하나의 특징부를 포함함 - 와, 복수의 센서 - 복수의 센서의 위치는 복수의 물체를 포함하는 공간 운영 환경(SOE)를 마련하고, 복수의 센서는 복수의 특징부를 감지함 - 와, 프로세서에서 실행되는 적응형 추적 구성(ATC) - ATC는 각각의 센서에 의해 감지된 복수의 물체의 각각의 물체에 해당하는 특징부 데이터를 복수의 센서 각각으로부터 수신하고, 특징부 데이터는 시공간의 포인트에서 순간적인 상태의 신체의 절대적 3-공간 위치 데이터이고, ATC는 복수의 센서로부터 특징부 데이터를 통합하여 복수의 물체와 SOE 사이의 코히런트 관계 모델을 생성하고 유지하며, ATC는 복수의 물체의 적어도 하나의 물체의 제스처를 특징부 데이터로부터 자동으로 감지하고, 특징부 데이터만 사용하여 제스처를 식별하는 것을 포함하는 감지하는 것임- 을 포함하는 시스템을 포함한다.
코히런트 모델은 복수의 물체들 사이의 공간적 관계를 포함한다.
코히런트 모델은 복수의 물체의 포지션, 배향 및 모션 중 적어도 하나를 포함한다.
ATC는 가상 공간과 SOE를 포함하는 물리적 공간 사이의 일치성을 생성한다.
센서는 센서와 관련하여 적어도 하나의 태그의 위치와 배향을 포함하는 포즈를 적어도 하나의 태그로부터 감지하고, 포즈는 6 자유도(DOF) 포즈를 포함한다.
복수의 물체는 신체, 신체의 부속지, 장치, 의류 한 점, 장갑, 디스플레이 장치, 가구 한 점 중 적어도 하나를 포함한다.
코히런트 모델의 원점은 복수의 센서의 특정 센서와 관련되어 마련된다.
코히런트 모델의 원점은 복수의 태그의 특정 태그와 관련되어 마련되는데, 특정 태그는 SOE에 관하여 고정된 포즈를 가진다.
ATC의 출력은 어플리케이션, 디스플레이 구성 및 프로세서와 결합된 구성 중 적어도 하나를 컨트롤한다. 시스템은 제스처를 체스쳐 신호로 변환시키고, 프로세서와 결합된 구성을 제스처 신호에 응답하여 컨트롤한다.
감지하는 것은 제스처를 식별하는 것을 포함하는데, 식별하는 것은 신체 일부의 포즈 및 배향을 식별하는 것을 포함한다.
변환시키는 것은 제스처의 정보를 제스처 표기(notation)로 변환시키는 것을 포함하는데, 제스처 표기는 제스처 어휘를 나타내고, 제스처 신호는 제스처 어휘의 통신을 포함한다.
제스처 어휘는 원문 형태로 신체의 운동 관절, 신체의 운동 관절의 배향 및 신체의 운동 관절의 배향들의 조합의 순간적인 포즈 상태 중 적어도 하나를 나타낸다.
제스처 어휘는 물체의 운동 관절의 상태를 나타내는 문자들의 열을 포함한다.
구성을 콘트롤하는 것은, 제스처를 3-공간 물체로의 맵핑에 의하여 동시에 6 자유도에서 3-공간 물체를 컨트롤하는 것을 포함하는데, 복수의 물체는 3-공간 물체를 포함한다.
시스템은 디스플레이 장치상에 3-공간 물체를 제시하는 것을 포함한다.
시스템은 복수의 제스처를 3-공간 물체의 복수의 물체 변환으로 맵핑함에 의하여 3-공간 물체의 모션을 컨트롤하는 것을 포함한다.
감지하는 것은, 물체의 외삽(extrapolated) 위치가 가상 공간을 가로지를 때 감지하는 것을 포함하는데, 가상 공간은 프로세서와 결합된 디스플레이 장치상에 묘사된 공간을 포함한다.
구성을 컨트롤하는 것은 외삽 위치가 가상 물체를 가로지를 때, 가상 공간에서의 가상 물체를 컨트롤하는 것을 포함한다
시스템은 소스 장치(source device)의 이벤트를 감지하는 것 -이벤트는 제스처 및 프로세서에서 실행되는 ATC를 포함하는 소스 장치를 포함함 - 과, 이벤트 및 이벤트의 상태 정보를 명시하는 장치 이벤트 데이터를 포함하는 적어도 하나의 데이터 시퀀스를 생성하는 것 - 장치 이벤트 데이터 및 상태 정보는 소스 장치의 어플리케이션에 해당하는 유형을 가지는 유형-특정(type-specific) 데이터임 - 과, 적어도 하나의 시퀀스를 포함하기 위하여 데이터 캡슐을 형성하는 것 - 데이터 캡슐은 적어도 하나의 데이터 시퀀스의 어플리케이션-독립(application-independent) 표현을 포함하는 데이터 구조를 가짐 - 을 포함한다.
적어도 하나의 데이터 시퀀스를 생성하는 것은 제1 개별 장치 이벤트 데이터를 포함하는 제1 개별 데이터 세트를 생성하는 것과, 제2 개별 상태 정보를 포함하는 제2 개별 데이터 세트를 생성하는 것과, 제1 개별 데이터 세트와 제2 개별 데이터 세트를 포함하기 위하여 제1 데이터 시퀀스를 형성시키는 것을 포함한다.
제1 개별 데이터 세트를 생성하는 것은 소스 장치의 식별 데이터를 포함하기 위하여 제1 개별 데이터 세트를 형성하는 것을 포함하고, 식별 데이터는 소스 장치를 식별하는 데이터를 포함한다.
적어도 하나의 데이터 시퀀스를 생성하는 것은, 제1 개별 장치 이벤트 데이터를 포함하는 제1 개별 데이터 세트를 생성하는 것과, 제2 개별 상태 정보를 포함하는 제2 개별 데이터 세트를 생성하는 것과, 제1 개별 데이터 세트와 제2 개별 데이터 세트를 포함하기 위하여 제2 데이터 시퀀스를 형성시키는 것을 포함한다.
제1 개별 데이터 세트를 생성하는 것은 제1 개별 데이터 세트 오프셋을 생성하는 것을 포함하고, 제1 개별 데이터 세트 오프셋은 제2 데이터 시퀀스의 제1 개별 데이터 세트를 향한다.
제2 개별 데이터 세트를 생성하는 것은 제2 개별 데이터 세트 오프셋을 생성하는 것을 포함하고, 제2 개별 데이터 세트 오프셋은 제2 데이터 시퀀스의 제2 개별 데이터 세트를 향한다.
제1 개별 데이터 세트는 설명 리스트(description list)이고, 설명 리스트는 데이터의 설명이다.
장치 이벤트 데이터는 유형화된 데이터(typed data)를 나타내는 태깅된 바이트-시퀀스이고, 장치 이벤트 데이터는 유형 헤더(type header) 및 유형-특정 데이터 레이아웃을 포함한다.
상태 정보는 유형화된 데이터를 나타내는 태깅된 바이트-시퀀스이고, 상태 정보는 유형 헤더 및 유형-특정 데이터 레이아웃을 포함한다.
시스템은 적어도 하나의 오프셋을 생성하는 것을 포함한다. 시스템은 적어도 하나의 오프셋을 포함하기 위하여 데이터 캡슐을 형성하는 것을 포함한다.
시스템은 제1 가변 길이를 가지는 제1 오프셋을 생성하는 것을 포함한다. 제1 오프셋은 적어도 하나의 데이터 시퀀스의 제1 데이터 시퀀스의 장치 이벤트 데이터를 향한다. 시스템은 제2 가변 길이를 가지는 제2 오프셋을 생성하는 것을 포함한다. 제2 오프셋은 적어도 하나의 데이터 시퀀스의 제1 데이터 시퀀스의 상태 정보를 향한다.
시스템은 적어도 하나의 오프셋의 제1 오프셋을 사용하여 데이터 캡슐을 통하여 제1 코드 경로를 형성하는 것을 포함한다. 시스템은 적어도 하나의 오프셋의 제2 오프셋을 사용하여 데이터 캡슐을 통하여 제2 코드 경로를 형성하는 것을 포함한다. 제1 코드 경로와 제2 코드 경로는 서로 다른 경로이다.
제1 오프셋과 제2 오프셋 중 적어도 하나는 메타데이터를 포함하고, 메타데이터는 어플리케이션의 콘텍스트(context)에 해당하는 콘텍스트-특정(context-specific) 메타데이터를 포함한다.
시스템은 데이터 캡슐의 길이를 포함하는 헤더를 생성하는 것을 포함한다. 시스템은 헤더를 포함하기 위하여 데이터 캡슐을 형성하는 것을 포함한다.
시스템은 데이터 캡슐을 프로세서와 결합된 저장소로 전달하는 것을 포함한다.
시스템은 제2 소스 장치의 제2 이벤트를 감지하는 것을 포함한다.
시스템은 제2 이벤트에 해당하는 데이터 캡슐을 위하여 저장소를 검색하는 것을 포함한다.
시스템은 데이터 캡슐과 제2 이벤트 사이의 관련성(correspondence)을 식별하는 것을 포함한다. 시스템은 식별하는 것에 응답하여 저장소로부터 데이터 캡슐을 추출하는 것을 포함한다. 시스템은 제2 소스 장치를 대신하여, 데이터 캡슐의 콘텐츠에 응답하여 제2 이벤트에 해당하는 프로세싱 작동을 실행하는 것을 포함하는데, 소스 장치는 제1 유형의 어플리케이션에 해당하고, 제2 소스장치는 제2 유형에 해당한다.
저장소는 복수의 어플리케이션과 결합되고, 저장소는 복수의 어플리케이션에 해당하는 복수의 데이터 캡슐을 포함하며, 저장소는 복수의 어플리케이션에 의하여 복수의 데이터 캡슐에 액세스를 제공하는데, 복수의 어플리케이션의 적어도 두 개는 서로 다른 어플리케이션이다.
저장소는 복수의 데이터 캡슐의 상태 캐싱을 제공한다.
저장소는 복수의 데이터 캡슐의 선형 시퀀싱(linear sequencing)을 제공한다.
데이터 구조는 유형화되지 않는다.
데이터 캡슐의 데이터 구조는 장치 이벤트 데이터 및 상태 정보의 플랫폼-독립 표현을 제공하고, 플랫폼-독립은 장치 이벤트 데이터와 상태 정보에 액세스한다.
복수의 태그의 각각의 태그는 적어도 하나의 특징부를 포함하고, 이는 복수의 센서에 의해 감지되고 분산(localized)된다.
각각의 태그는 라벨링 정보, 식별 정보 및 포즈 정보 중 적어도 하나를 포함한다.
태그의 투영 이미지는 라벨링을 포함하는데, 적어도 하나의 특징부는 적어도 하나의 마커를 포함하고, 라벨링은 투영 이미지내의 적어도 한 포인트를 적어도 하나의 해당 마커에 관련시킨다.
태그의 투영 이미지는 식별자를 포함하는데, 적어도 하나의 특징부는 태그상에 복수의 마커를 포함하고, 식별자는 복수의 태그의 제1 태그와 복수의 태그의 제2 태그를 구별시킨다.
태그의 투영 이미지는 포즈 정보를 포함한다.
포즈 정보는 병진운동 정보와 회전운동 정보를 포함한다.
포즈 정보는 태그의 위치와 배향을 SOE의 위치와 배향에 관련시킨다.
각각의 센서의 SOE내의 각각의 감지 공간에 해당되는데, 각각의 센서는 감지 공간 내의 각각의 태그의 포즈를 추정한다.
포즈는 태그의 위치와 태그의 배향 중 적어도 하나를 포함한다.
각각의 센서의 감지 공간은 복수의 센서의 하나의 센서의 감지 공간과 적어도 부분적으로 오버랩되는데, 결합된 복수의 센서의 감지 공간이 인접하다.
ATC는 복수의 센서의 각각의 센서에 대해 SOE에 관련된 포즈의 포즈 모델을 생성한다.
복수의 센서가 제1 태그를 제 때에 순식간에 모두 감지할 때, ATC는 복수의 센서들 사이의 공간적 관계를 생성하는데, ATC는 공간적 관계를 사용하여 코히런트 모델을 업데이트한다.
ATC는 복수의 태그의 특정 태그에 관련된 코히런트 모델의 원점을 마련하는데, 특정 태그는 SOE에 관련하여 고정된 포즈를 가진다.
ATC는 복수의 센서의 특정 센서 및 복수의 태그의 특정 태그에 관련된 코히런트 모델의 원점을 마련하는데, 특정 태그는 SOE에 관련하여 고정된 포즈를 가진다.
정확한 제사 모델은 각각의 센서에 대해 결정된다.
태그는 제 때에 복수의 포인트들에서 센서에 의해 추적되고, 복수의 포즈 모델은 태그를 위해 생성되는데, 복수의 신뢰도 메트릭(confidence metrics)은 복수의 포즈 모델을 위해 생성되고, 복수의 포즈 모델은 복수의 신뢰도 매트릭에 기초하여 도태되어 일관성 없는 포즈 모델을 모두 제거한다.
태그는 복수의 센서에 의하여 제 때에 복수의 포인트들에서 추적되고, 복수의 세트의 포즈 모델은 태그에 대해서 발달되고, 각 세트의 포즈 모델은 제 때의 각 포인트에 해당하는 복수의 포즈를 포함한다.
복수의 신뢰도 메트릭은 각 세트의 포즈 모델의 복수의 포즈 모델에 대해 생성되고, 복수의 세트의 포즈 모델은 복수의 신뢰도 메트릭에 기초하여 도태되어 일관성 없는 포즈 모델을 모두 제거한다.
평균 가설은 각 세트의 포즈 모델의 복수의 포즈 모델의 평균치를 포함하는데, 평균 가설은 해당 태그의 참 포즈에 대한 최대 유사 추정치에 근사화 된다.
평균 가설은 포지션 성분과 회전 성분 중 적어도 하나를 포함한다.
평활화된 가설(smoothed hypothesis)은 평균 가설의 보정 계수(correction factor)의 적용을 통해 생성된다.
평활화된 가설은, 적어도 하나의 추가 센서가 태그를 감지할 때 생성되는데, 적어도 하나의 추가 센서는 태그를 이전에 감지하지 않았다.
평활화된 가설은 복수의 센서의 적어도 하나의 센서가 태그를 감지하는 단계를 정지할 때 생성되는데, 적어도 하나의 추가 센서는 태그를 이전에 감지하지 않았다.
평활화된 가설은 포지션 성분 및 회전 성분 중 적어도 하나를 포함한다.
복수의 센서의 적어도 하나의 센서는 복수의 물체의 적어도 하나의 물체의 물체의 포즈를 실시간으로 측정한다.
ATC는 물체의 포즈의 변화에 자동으로 적응한다.
ATC는 적어도 하나의 물체의 포즈와 물리적 크기의 모델을 생성한다.
적어도 하나의 센서는 적어도 하나의 물체의 주변상의 적어도 하나의 위치에 부착되는데, 적어도 하나의 물체는 디스플레이 장치이다.
ATC는 적어도 하나의 위치를 자동으로 결정한다.
적어도 하나의 센서는 디스플레이 장치의 포즈를 실시간으로 측정하고, ATC는 디스플레이 장치의 포즈의 변화를 자동으로 적응한다.
복수의 태그의 적어도 하나의 태그는 복수의 물체의 적어도 하나의 물체에 부착된다.
복수의 센서는 적어도 하나의 태그의 정보를 사용하여 적어도 하나의 물체의 물체의 포즈를 실시간으로 측정한다.
ATC는 물체의 포즈의 변화를 자동으로 적응한다.
ATC는 적어도 하나의 물체의 포즈 및 물리적 크기의 모델을 생성한다.
적어도 하나의 태그는 적어도 하나의 물체의 주변상의 적어도 하나의 위치에 부착되는데, 적어도 하나의 물체는 디스플레이 장치이다.
ATC는 적어도 하나의 위치를 자동으로 결정한다.
복수의의 센서는 적어도 하나의 태그의 정보를 사용하여 디스플레이 장치의 포즈를 실시간으로 측정한다.
ATC는 디스플레이 장치의 포즈의 변화를 자동으로 적응한다.
복수의 센서의 적어도 하나의 센서는 복수의 물체의 적어도 하나의 물체의 물체의 포즈를 실시간으로 측정하는데, 적어도 하나의 물체는 마킹된 물체가다.
마킹된 물체는 태깅된 물체를 사용하여 마킹되는데, 태깅된 물체는 물체에 부착된 태그를 포함한다.
마킹된 물체는, 태깅된 물체가 적어도 하나의 물체상의 적어도 하나의 위치에 직접 접촉하여 위치될 때 마킹된다.
적어도 하나의 위치는 마킹된 물체상의 복수의 위치를 포함한다.
복수의 센서는 마킹된 물체와 SOE에 관련하여 태깅된 물체의 포즈를 측정하는데, 복수의 위치에서 센싱된 태깅된 물체의 포즈는 마킹된 물체의 포즈를 나타낸다.
마킹된 물체는 태깅된 물체가 적어도 하나의 물체상에 복수의 위치를 가리킬 때 마킹된다.
복수의 센서는 마킹된 물체와 SOE에 관련하여 태깅된 물체의 포즈를 측정하는데, 태깅된 물체의 포즈는 태깅된 물체가 복수의 위치를 가리킬 때, 해당하는제 때의 포인트에서 마킹된 물체의 포즈를 나타낸다.
적어도 하나의 특징부는 광학 기점(optical fiducial), 발광 다이오드(LED), 적외선(IR) 발광 다이오드(LED), 역-반사 물질을 포함하는 마커, 적어도 하나의 칼라를 포함하는 적어도 하나의 영역을 포함하는 마커 및 복수의 공선(collinear) 마커 중 적어도 하나를 포함한다.
태그는 복수의 공선 마커를 포함하는 선형-부분-태그(LPT)를 포함하는데, 복수의 공선 마커로 태그의 식별자를 전달한다.
태그는 복수의 LPT를 포함하는데, 각각의 LPT는 복수의 공선 마커를 포함한다.
태그는 제2 LPT에 인접한 기판상에 위치되는 제1 LPT를 포함하는데, 제1 LPT는 제1 세트의 공선 마커를 포함하고, 제2 LPT는 제2 세트의 공선 마커를 포함한다.
복수의 센서는 적어도 하나의 카메라를 포함하고, 특징부 데이터는 적어도 하나의 카메라에 의해 얻어진 투영 이미지를 포함하는데, 투영 이미지는 태그를 포함한다.
시스템은 투영 이미지를 검색하는 것과 투영 이미지의 제1 LPT를 식별하는 것을 포함하고, 시스템은 제1 LPT의 제1 세트의 공선 마커에 라인을 맞추는 것을 포함한다.
시스템은 제1 세트의 공선 마커의 제1 세트의 교차 비를 계산하는 것을 포함하는데, 교차 비는 제1 세트의 공선 마커의 복수의 공선 마커들 사이의 쌍별 거리(pairwise distance)의 함수이고, 교차 비를, 알려진 세트의 LPT에 해당하는 교차 비의 세트와 비교하는 것을 포함한다.
시스템은 투영 이미지를 검색하는 것과 제2 LPT를 식별하는 것을 포함하고, 제1 LPT와 제2 LPT를 태그 후보자(candidate)로 결합하는 것을 포함하고, 태그 후보자에 해당하는 한 세트의 포즈 가설을 계산하는 것을 포함하고, 한 세트의 포즈 가설의 포즈의 재-투영 오류인 신뢰도 메트릭을 계산하는 것을 포함한다.
적어도 하나의 카메라는 투영 이미지의 이미지 코디네이트와 복수의 공선 마커 사이의 대응 데이터를 수집한다.
시스템은 카메라 보정 어플리케이션을 포함하는데, 적어도 하나의 카메라의 고유 파라미터는 카메라 보정 어플리케이션을 사용하여 모델링되는데, 고유 파라미터는 초점비, 광학 중심, 스큐니스 및 렌즈 왜곡 중 적어도 하나를 포함한다.
카메라 보정 어플리케이션으로의 입력은 대응 데이터를 포함한다.
본 명세서에서 기술되는 시스템과 방법은 프로세싱 시스템을 포함 및/또는 실행 및/또는 관련이 있다. 프로세싱 시스템은, 업계에 알려진 바와 같이, 어떠한 프로세서-기반 장치의 컬렉션 또는 계산 장치 운영, 프로세싱의 구성 또는 장치를 함께 포함한다. 예를 들어, 프로세싱 시스템은 하나 또는 그 이상의 휴대용 컴퓨터, 통신망에서 작동하는 휴대용 통신 장치 및/또는 네트워크 서버를 포함할 수 있다. 휴대용 컴퓨터는, 개인 컴퓨터, 셀룰러폰, 개인 디지털 보조기, 휴대용 계산 장치 및 휴대용 통신 장치 중에서 선택되는 장치의 물건 및/또는 그 조합일 수 있다.
실시예의 프로세싱 시스템은 적어도 하나의 프로세서와 적어도 하나의 메모리 장치 또는 서브시스템을 포함한다. 또한, 프로세싱 시스템은 적어도 하나의 데이터베이스를 포함하거나 그와 결합될 수 있다. 본 명세서에서 일반적으로 사용되는 용어 "프로세서"는 하나 또는 그 이상의 중앙 처리 장치(CPU), 디지털 신호 프로세서(DSP), 응용 주문형 집적 회로(ASIC) 등과 같은 임의의 논리 처리 장치를 말한다. 프로세서와 메모리는 단일 칩 상에 하나로 통합될 수 있고, 호스트 시스템의 다수의 칩 또는 구성에 분배될 수 있고, 및/또는 알고리즘의 어떤 조합이 제공된다. 본 명세서에 기술된 본 방법은 하나 또는 그 이상의 소프트웨어 알고리즘(들), 프로그램, 펌웨어, 하드웨어, 구성, 회로, 그 어떤 조합에서 실행될 수 있다. 본 명세서에 기술되는 시스템과 방법을 구현하는 시스템 구성은 함께 위치되거나 분리되어 위치될 수 있다. 결과적으로, 본 명세서에 기술되는 시스템과 방법을 구현하는 시스템 구성은 싱글 시스템, 멀티 시스템 및/또는 지리학적으로 분리된 시스템일 수 있다. 또한, 이들 구성은 싱글 시스템, 멀티 시스템, 및/또는 지리학적으로 분리된 시스템의 서브구성 또는 서브시스템일 수 있다. 이들 구성은 호스트 시스템 또는 호스트 시스템과 결합된 시스템의 하나 또는 그 이상의 다른 구성과 결합될 수 있다.
통신 경로는 시스템 구성과 결합되고, 구성들 간에 파일을 통신 또는 전송하기 위한 임의의 매개체(medium)를 포함한다. 통신 경로는 무선 연결, 유선 연결 및 하이브리드 무선/유선 연결을 포함한다. 또한, 통신 경로는 근거리 통신망(LAN), 도시 지역 네트워크(MAN), 광역 통신망(WAN), 사유 통신망(proprietary networks), 사무실간 말단 통신망(interoffice or backend networks) 및 인터넷과의 결합 또는 연결을 포함한다. 더구나, 통신 경로는 플래시 RAM, 범용 직렬 버스(USB) 연결, RS-232 연결, 전화선, 버스 및 전자 메일 메세지는 물론, 플로피 디스크, 하드 디스크 드라이브 및 CD-ROM 디스크와 같이 제거 가능한 고정된 매개체를 포함한다.
문맥에서 명백히 다른 기재가 없으면, 본 명세서 전반에서, 어휘 "포함하다", "포함하는" 등은 제외적이거나 제한적인 의미와 반대로 포함적인 의미로 해석되어야 하는데, 다시 말해, "포함하나, 이에 제한되지 않음"의 의미이다. 또한, 단수 또는 복수를 사용하는 어휘는 개별적으로 복수 또는 단수를 포함한다. 또한, 어휘 "본 명세서", "본 명세서하에서", "상기", "이하" 및 이와 유사한 의미는 전체로서의 이 용도를 말하는 것이지 이 용도의 특정 일부를 말하는 것은 아니다. 어휘 "또는"은 두 개 또는 그 이상의 아이템의 리스트와 관련하여 사용되는데, 어휘는 다음 어휘의 해석의 전부, 즉, 리스트 내의 아이템, 리스트 내의 아이템 전부 및 리스트의 아이템의 조합을 포함한다.
프로세싱 환경의 실시예의 상기 기술은 기술된 시스템과 방법은 개시된 정확한 형태로 한정 또는 제한되도록 의도되지 않는다. 반면, 프로세싱 환경의 구체적인 실시예 및 그 예는 설명적인 목적을 위해 본 명세서에 기술되고, 다양한 등가 수정예는 당업자가 인식한다면, 다른 시스템과 방법의 범위 내에 가능하다. 본 명세서에 의해 제공된 프로세싱 환경의 가르침은, 상기 기술된 시스템과 방법에 뿐만아니라 다른 프로세싱 시스템과 방법에 적용될 수 있다.
상기 기술된 다양한 실시예의 구성과 기능은 결합되어 추가 실시예를 제공할 수 있다. 이들 및 다른 변형예는 상기 상세한 설명의 견지에서 프로세싱 환경에 대해 이루어질 수 있다.
Claims (341)
- 시스템으로서, 상기 시스템은
복수의 물체에 부착된 복수의 태그 - 각각의 태그가 적어도 하나의 특징부(feature)를 포함하도록 상기 복수의 태그는 복수의 특징부를 포함함 - ,
복수의 센서 - 상기 복수의 센서의 위치는 복수의 물체를 포함하는 공간 운영 환경(SOE: spatial operating environment)을 형성하고, 상기 복수의 센서는 복수의 특징부를 검출함 - , 및
프로세서 상에서 실행되는 적응적 추적 구성요소(ATC: adaptive tracking component) - 상기 ATC는 복수의 센서 중 각각의 센서로부터, 각각의 센서에 의해 검출된 복수의 물체 중 각각의 물체에 대응하는 특징부 데이터(feature data)를 수신하고, 상기 ATC는 복수의 센서로부터의 특징부 데이터를 통합함으로써 복수의 물체와 SOE 간 관계의 코히런트 모델(coherent model)을 생성 및 유지함 -
를 포함하는 것을 특징으로 하는 시스템. - 제1항에 있어서, 상기 코히런트 모델(coherent model)은 복수의 물체 간의 공간적 관계(spatial relationship)를 포함하는 것을 특징으로 하는 시스템.
- 제2항에 있어서, 상기 코히런트 모델은 복수의 물체의 위치(location), 배향(orientation), 및 모션(motion) 중 적어도 하나를 포함하는 것을 특징으로 하는 시스템.
- 제2항에 있어서, 상기 코히런트 모델은 복수의 물체의 위치, 배향, 및 모션을 포함하는 것을 특징으로 하는 시스템.
- 제1항에 있어서, 상기 SOE는 상기 ATC의 가상 공간(virtual space)을 포함하고, 여기서 ATC는 가상 공간과 상기 SOE를 포함하는 물리 공간 간의 일치성(coincidence)을 생성하는 것을 특징으로 하는 시스템.
- 제1항에 있어서, 센서가 적어도 하나의 태그로부터 센서에 대한 적어도 하나의 태그의 위치 및 배향을 포함하는 포즈(pose)를 검출하는 것을 특징으로 하는 시스템.
- 제6항에 있어서, 상기 포즈는 6 자유도(DOF)를 포함하는 것을 특징으로 하는 시스템.
- 제1항에 있어서, 복수의 물체는 신체(body), 신체의 부속지(appendage), 장치, 옷, 장갑, 디스플레이 장치, 가구(furniture) 중 적어도 하나를 포함하는 것을 특징으로 하는 시스템.
- 제1항에 있어서, 상기 코히런트 모델의 원점(origin)은 복수의 센서 중 특정 센서에 상대적으로 정의되는 것을 특징으로 하는 시스템.
- 제1항에 있어서, 상기 코히런트 모델의 원점은 복수의 태그 중 특정 태그에 상대적으로 정의되며, 상기 특정 태그는 SOE에 대해 고정 포즈(fixed pose)를 갖는 것을 특징으로 하는 시스템.
- 제1항에 있어서, 상기 코히런트 모델의 원점은 복수의 센서 중 특정 센서 및 복수의 태그 중 특정 태그에 상대적으로 정의되며, 상기 특정 태그는 SOE에 대해 고정 포즈를 갖는 것을 특징으로 하는 시스템.
- 제1항에 있어서, 복수의 태그 중 각각의 태그는 복수의 센서에 의해 검출되고 위치 파악이 되는 적어도 하나의 특징부를 포함하는 것을 특징으로 하는 시스템.
- 제1항에 있어서, 각각의 태그는 라벨링 정보(labeling information)를 포함하는 것을 특징으로 하는 시스템.
- 제1항에 있어서, 각각의 태그는 신별 정보(identity information)를 포함하는 것을 특징으로 하는 시스템.
- 제1항에 있어서, 각각의 태그는 포즈 정보를 포함하는 것을 특징으로 하는 시스템.
- 제1항에 있어서, 각각의 태그는 라벨링 정보, 식별 정보, 및 포즈 정보 중 적어도 하나를 포함하는 것을 특징으로 하는 시스템.
- 제1항에 있어서, 각각의 태그는 라벨링 정보, 식별 정보, 및 포즈 정보를 포함하는 것을 특징으로 하는 시스템.
- 제1항에 있어서, 태그의 투영 이미지(projective image)는 라벨링을 포함하는 것을 특징으로 하는 시스템.
- 제18항에 있어서, 적어도 하나의 특징부는 적어도 하나의 마커(marker)를 포함하는 것을 특징으로 하는 시스템.
- 제19항에 있어서, 상기 라벨링은 상기 투영 이미지 내 적어도 하나의 포인트를 적어도 하나의 대응하는 마커와 관련짓는 것을 특징으로 하는 시스템.
- 제1항에 있어서, 태그의 투영 이미지는 식별자(identity)를 포함하는 것을 특징으로 하는 시스템.
- 제21항에 있어서, 적어도 하나의 특징부는 태그 상의 복수의 마커를 포함하는 것을 특징으로 하는 시스템.
- 제22항에 있어서, 상기 식별자는 복수의 태그 중 제 1 태그를 복수의 태그 중 제 2 태그와 구별짓는 것을 특징으로 하는 시스템.
- 제1항에 있어서, 태그의 투영 이미지는 포즈 정보(pose information)를 포함하는 것을 특징으로 하는 시스템.
- 제24항에 있어서, 상기 포즈 정보는 병진운동 정보(translation information) 및 회전운동 정보(rotation information)를 포함하는 것을 특징으로 하는 시스템.
- 제25항에 있어서, 상기 병진운동 정보는 3 자유도 병진운동을 포함하는 것을 특징으로 하는 시스템.
- 제26항에 있어서, 상기 회전운동 정보는 3 자유도 회전운동을 포함하는 것을 특징으로 하는 시스템.
- 제25항에 있어서, 상기 포즈 정보는 태그의 포지션 및 배향을 SOE의 포지션 및 배향과 관련짓는 것을 특징으로 하는 시스템.
- 제1항에 있어서, 각각의 센서는 SOE 내 하나씩의 감지 공간(sensing volume)에 대응하는 것을 특징으로 하는 시스템.
- 제29항에 있어서, 각각의 센서는 상기 감지 공간 내 각각의 태그의 포즈를 추정하는 것을 특징으로 하는 시스템.
- 제30항에 있어서, 상기 포즈는 태그의 위치를 포함하는 것을 특징으로 하는 시스템.
- 제30항에 있어서, 상기 포즈는 태그의 배향을 포함하는 것을 특징으로 하는 시스템.
- 제30항에 있어서, 상기 포즈는 태그의 위치 및 배향을 포함하는 것을 특징으로 하는 시스템.
- 제33항에 있어서, 상기 위치 및 배향은 각각의 센서에 상대적임을 특징으로 하는 시스템.
- 제29항에 있어서, 각각의 센서의 감지 공간은 복수의 센서의 적어도 하나의 타 센서의 감지 공간과 적어도 부분적으로 겹치는 것을 특징으로 하는 시스템.
- 제35항에 있어서, 복수의 센서의 조합된 감지 공간(combined sensing volume)은 연속(contiguous)인 것을 특징으로 하는 시스템.
- 제1항에 있어서, 상기 특징부 데이터는 동기화(synchronize)되는 것을 특징으로 하는 시스템.
- 제1항에 있어서, 상기 ATC는 복수의 센서 중 각각의 센서에 대해 SOE에 상대적인 포즈의 포즈 모델(pose model)을 생성하는 것을 특징으로 하는 시스템.
- 제38항에 있어서, 상기 포즈는 6 자유도(DOF) 포즈를 포함하는 것을 특징으로 하는 시스템.
- 제38항에 있어서, 복수의 센서 모두 동시에 제 1 태그를 검출할 때, 상기 ATC는 복수의 센서 간의 공간적 관계(spatial relationship)를 생성하는 것을 특징으로 하는 시스템.
- 제40항에 있어서, 상기 ATC는 공간적 관계를 이용해 코히런트 모델을 업데이트하는 것을 특징으로 하는 시스템.
- 제41항에 있어서, 상기 ATC는 복수의 센서 중 특정 센서에 상대적으로 상기 코히런트 모델의 원점을 정의하는 것을 특징으로 하는 시스템.
- 제41항에 있어서, 상기 ATC는 복수의 태그 중 특정 태그에 상대적으로 상기 코히런트 모델의 원점을 정의하며, 상기 특정 태그는 SOE에 상대적인 고정 포즈를 갖는 것을 특징으로 하는 시스템.
- 제41항에 있어서, 상기 ATC는 복수의 센서 중 특정 센서 및 복수의 태그 중 특정 태그에 상대적으로 상기 코히런트 모델의 원점을 정의하며, 상기 특정 태그는 SOE에 상대적인 고정 포즈를 갖는 것을 특징으로 하는 시스템.
- 제41항에 있어서, 각각의 센서에 대해 올바른 포즈 모델(correct pose model)이 결정되는 것을 특징으로 하는 시스템.
- 제45항에 있어서, 센서에 의해 복수의 시점에서 태그가 추적되고 상기 태그에 대해 복수의 포즈 모델이 생성되는 것을 특징으로 하는 시스템.
- 제46항에 있어서, 복수의 포즈 모델에 대해 복수의 신뢰도 메트릭(confidence metric)이 생성되며, 불일치 포즈 모델(inconsistent pose model)을 제거하기 위해 상기 복수의 신뢰도 메트릭을 기초로 복수의 포즈 모델이 도태되는 것을 특징으로 하는 시스템.
- 제45항에 있어서, 태그가 복수의 센서에 의해 복수의 시점에서 추적되고, 태그에 대해 복수의 포즈 모델 세트가 형성되며, 포즈 모델 세트 각각은 각각의 시점에 대응하는 복수의 포즈 모델을 포함하는 것을 특징으로 하는 시스템.
- 제48항에 있어서, 포즈 모델 세트 각각의 복수의 포즈 모델에 대해 복수의 신뢰도 메트릭이 생성되며, 불일치하는 포즈 모델을 제거하기 위해 상기 복수의 신뢰도 메트릭을 기초로 복수의 포즈 모델 세트가 도태되는 것을 특징으로 하는 시스템.
- 제48항에 있어서, 평균 가설(average hypothesis)이 포즈 모델 세트 각각의 복수의 포즈 모델의 평균을 포함하는 것을 특징으로 하는 시스템.
- 제50항에 있어서, 상기 평균 가설은 대응하는 태그의 참 포즈(true pose)에 대한 최대 가능도 추정치(maximum likelihood estimate)에 근사하는 것을 특징으로 하는 시스템.
- 제51항에 있어서, 상기 평균 가설은 포지션 성분(positional component)을 포함하는 것을 특징으로 하는 시스템.
- 제51항에 있어서, 상기 평균 가설은 회전 성분(rotational component)을 포함하는 것을 특징으로 하는 시스템.
- 제51항에 있어서, 상기 평균 가설은 포지션 성분(positional component) 및 회전 성분(rotational component)을 포함하는 것을 특징으로 하는 시스템.
- 제55항에 있어서, 상기 제 1 수학식을, SOE 내 회전 좌표계(rotating coordinate frame)의 기초가 되는 단위 방향 벡터(unit direction vector)에 적용시키고 상기 단위 방향 벡터를 재-정규화(re-normalize)함으로써, 상기 회전 성분이 근사되는 것을 특징으로 하는 시스템.
- 제50항에 있어서, 보정 계수(correction factor)를 상기 평균 가설에 적용시킴으로써, 평활화된 가설(smoothed hypothesis)이 생성되는 것을 특징으로 하는 시스템.
- 제57항에 있어서, 상기 평활화된 가설은, 적어도 하나의 추가 센서가 태그를 검출할 때 생성되며, 상기 적어도 하나의 추가 센서는 이전에 태그를 검출한 적이 없는 것을 특징으로 하는 시스템.
- 제57항에 있어서, 상기 평활화된 가설은, 복수의 센서 중 적어도 하나의 센서가 태그의 검출을 중단할 때 생성되며, 적어도 하나의 추가 센서는 이전에 태그를 검출한 적이 있는 것을 특징으로 하는 시스템.
- 제57항에 있어서, 상기 평활화된 가설은 포지션 성분을 포함하는 것을 특징으로 하는 시스템.
- 제57항에 있어서, 상기 평활화된 가설은 회전 성분을 포함하는 것을 특징으로 하는 시스템.
- 제57항에 있어서, 상기 평활화된 가설은 포지션 성분(positional component) 및 회전 성분(rotational component)을 포함하는 것을 특징으로 하는 시스템.
- 제63항에 있어서, 상기 제 2 수학식을, SOE 내 회전 좌표계의 기초가 되는 단위 방향 벡터(unit direction vector)에 적용시키고 상기 단위 방향 벡터를 재-정규화(re-normalize)함으로써, 상기 회전 성분이 근사되는 것을 특징으로 하는 시스템.
- 제1항에 있어서, 복수의 센서 중 적어도 하나의 센서가 복수의 물체 중 적어도 하나의 물체의 물체 포즈를 실시간으로 측정하는 것을 특징으로 하는 시스템.
- 제72항에 있어서, 상기 적어도 하나의 센서는 하나의 물체에 부착된 복수의 센서를 포함하는 것을 특징으로 하는 시스템.
- 제72항에 있어서, 상기 적어도 하나의 센서는 적어도 하나의 물체에 부착되는 것을 특징으로 하는 시스템.
- 제74항에 있어서, 상기 ATC는 물체 포즈의 변화에 자동으로 적응되는 것을 특징으로 하는 시스템.
- 제75항에 있어서, 상기 ATC는 적어도 하나의 물체의 포즈 및 물리적 크기의 모델을 생성하는 것을 특징으로 하는 시스템.
- 제76항에 있어서, 상기 포즈는 6 자유도(DOF) 포즈를 포함하는 것을 특징으로 하는 시스템.
- 제75항에 있어서, 적어도 하나의 센서가 적어도 하나의 물체의 주변부 상의 적어도 하나의 위치에 부착되며, 상기 적어도 하나의 물체는 디스플레이 장치인 것을 특징으로 하는 시스템.
- 제78항에 있어서, 상기 ATC는 적어도 하나의 위치를 자동으로 결정하는 것을 특징으로 하는 시스템.
- 제79항에 있어서, 상기 적어도 하나의 위치의 위치 데이터는 수동으로 입력되는 것을 특징으로 하는 시스템.
- 제78항에 있어서, 상기 적어도 하나의 센서는 디스플레이 장치의 포즈를 실시간으로 측정하는 것을 특징으로 하는 시스템.
- 제81항에 있어서, 상기 ATC는 상기 디스플레이 장치의 포즈에 자동으로 적응되는 것을 특징으로 하는 시스템.
- 제1항에 있어서, 복수의 태그 중 적어도 하나의 태그는 복수의 물체 중 적어도 하나의 물체에 부착되는 것을 특징으로 하는 시스템.
- 제83항에 있어서, 상기 적어도 하나의 태그는 하나의 물체에 부착된 복수의 태그를 포함하는 것을 특징으로 하는 시스템.
- 제83항에 있어서, 복수의 센서는 상기 적어도 하나의 태그의 정보를 이용해 적어도 하나의 물체의 물체 포즈를 실시간으로 측정하는 것을 특징으로 하는 시스템.
- 제85항에 있어서, 상기 ATC는 물체 포즈의 변화에 자동으로 적응되는 것을 특징으로 하는 시스템.
- 제86항에 있어서, 상기 ATC는 적어도 하나의 물체의 포즈 및 물리적 크기의 모델을 생성하는 것을 특징으로 하는 시스템.
- 제87항에 있어서, 상기 포즈는 6 자유도(DOF) 포즈를 포함하는 것을 특징으로 하는 시스템.
- 제86항에 있어서, 적어도 하나의 태그는 적어도 하나의 물체의 주변부 상의 적어도 하나의 위치에 부착되며, 상기 적어도 하나의 물체는 디스플레이 장치인 것을 특징으로 하는 시스템.
- 제89항에 있어서, 상기 ATC는 적어도 하나의 위치를 자동으로 결정하는 것을 특징으로 하는 시스템.
- 제90항에 있어서, 상기 적어도 하나의 위치의 위치 데이터는 수동으로 입력되는 것을 특징으로 하는 시스템.
- 제89항에 있어서, 복수의 센서는 적어도 하나의 태그의 정보를 이용해 디스플레이 장치의 포즈를 실시간으로 측정하는 것을 특징으로 하는 시스템.
- 제92항에 있어서, 상기 ATC는 상기 디스플레이 장치의 포즈에 자동으로 적응되는 것을 특징으로 하는 시스템.
- 제1항에 있어서, 복수의 센서 중 적어도 하나의 센서가 복수의 물체 중 적어도 하나의 물체의 물체 포즈를 실시간으로 측정하며, 상기 적어도 하나의 물체는 마킹된 물체(marked object)인 것을 특징으로 하는 시스템.
- 제1항에 있어서, 상기 마킹된 물체는 태깅된 물체(tagged object)을 이용해 마킹되며, 상기 태깅된 물체는 물체에 부착된 태그를 포함하는 것을 특징으로 하는 시스템.
- 제95항에 있어서, 상기 마킹된 물체는 태깅된 물체가 적어도 하나의 물체 상의 적어도 하나의 위치와 직접 접촉하도록 배치될 때 마킹되는 것을 특징으로 하는 시스템.
- 제96항에 있어서, 상기 적어도 하나의 위치는 마킹된 물체 상의 복수의 위치를 포함하는 것을 특징으로 하는 시스템.
- 제97항에 있어서, 복수의 센서는 마킹된 물체 및 SOE에 상대적으로 태깅된 물체의 포즈를 측정하는 것을 특징으로 하는 시스템.
- 제98항에 있어서, 복수의 위치에서 감지된 상기 태깅된 물체의 포즈는 마킹된 물체의 포즈를 나타내는 것을 특징으로 하는 시스템.
- 제95항에 있어서, 상기 마킹된 물체는 적어도 하나의 물체 상의 복수의 위치에서 태깅된 물체가 가르켜(pointing) 질 때 마킹되는 것을 특징으로 하는 시스템.
- 제100항에 있어서, 복수의 센서는 마킹된 물체 및 SOE에 상대적으로 태깅된 물체의 포즈를 측정하는 것을 특징으로 하는 시스템.
- 제101항에 있어서, 상기 태깅된 물체의 포즈는 마킹된 물체의 포즈를 나타내는 것을 특징으로 하는 시스템.
- 제102항에 있어서, 태깅된 물체의 포즈는 태깅된 물체가 복수의 위치에서 가르켜 질 때에 대응하는 시점에서의 마킹된 물체의 포즈를 나타내는 것을 특징으로 하는 시스템.
- 제1항에 있어서, 상기 적어도 하나의 특징부는 광학 기점(optical fiducial)을 포함하는 것을 특징으로 하는 시스템.
- 제1항에 있어서, 상기 적어도 하나의 특징부는 발광 다이오드(LED)를 포함하는 것을 특징으로 하는 시스템.
- 제1항에 있어서, 상기 적어도 하나의 특징부는 적외선(IR) 발광 다이오드(LED)를 포함하는 것을 특징으로 하는 시스템.
- 제1항에 있어서, 상기 적어도 하나의 특징부는 역-반사 물질(retro-reflective material)을 포함하는 마커를 포함하는 것을 특징으로 하는 시스템.
- 제1항에 있어서, 상기 적어도 하나의 특징부는 적어도 하나의 색(color)을 포함하는 적어도 하나의 영역을 포함하는 마커를 포함하는 것을 특징으로 하는 시스템.
- 제1항에 있어서, 상기 적어도 하나의 특징부는 복수의 공선 마커(collinear marker)를 포함하는 것을 특징으로 하는 시스템.
- 제1항에 있어서, 태그는 복수의 공선 마커를 포함하는 선형-부분-태그(LPT: linear-partial-tag)를 포함하는 것을 특징으로 하는 시스템.
- 제110항에 있어서, 상기 복수의 공선 마커는 태그의 식별자(identity)를 운반하는 것을 특징으로 하는 시스템.
- 제111항에 있어서, 태그는 복수의 LPT를 포함하고, 각각의 LPT는 복수의 공선 마커를 포함하는 것을 특징으로 하는 시스템.
- 제112항에 있어서, 태그는 제 2 LPT에 인접하게 기판(substrate) 상에 위치하는 제 1 LPT를 포함하고, 상기 제 1 LPT는 제 1 공선 마커 세트를 포함하고, 제 2 LPT는 제 2 공선 마커 세트를 포함하는 것을 특징으로 하는 시스템.
- 제113항에 있어서, 제 1 세트는 4개의 공선 마커를 포함하고, 제 2 세트는 4개의 공선 마커를 포함하는 것을 특징으로 하는 시스템.
- 제113항에 있어서, 상기 복수의 센서는 적어도 하나의 카메라를 포함하고 특징부 데이터는 적어도 하나의 카메라에 의해 획득되는 투영 이미지를 포함하고, 상기 투영 이미지는 태그를 포함하는 것을 특징으로 하는 시스템.
- 제115항에 있어서, 상기 투영 이미지를 검색하고 상기 투영 이미지에서 제 1 LPT를 식별하는 것을 포함함을 특징으로 하는 시스템.
- 제116항에 있어서, 제 1 LPT의 제 1 공선 마커 세트에 하나의 선을 적합(fitting)시키는 것을 포함함을 특징으로 하는 시스템.
- 제117항에 있어서, 제 1 공선 마커 세트의 교차 비(cross ratio)를 계산하는 것을 포함하며, 상기 교차 비는 상기 제 1 공선 마커 세트의 복수의 공선 마커 간 쌍별 거리(pairwise distance)의 함수인 것을 특징으로 하는 시스템.
- 제118항에 있어서, 상기 교차 비를 알려진 LPT의 세트에 대응하는 교차 비 세트에 비교하는 것을 포함함을 특징으로 하는 시스템.
- 제119항에 있어서, 투영 이미지를 검색하고 제 2 LPT를 식별하며 상기 제 1 LPT와 제 2 LPT를 태그 후보자(tag candidate)로 조합하는 것을 포함함을 특징으로 하는 시스템.
- 제120항에 있어서, 태그 후보자에 대응하는 포즈 가설 세트를 계산하는 것을 포함함을 특징으로 하는 시스템.
- 제121항에 있어서, 상기 포즈 가설은 6 자유도(DOF) 포즈를 포함하는 것을 특징으로 하는 시스템.
- 제121항에 있어서, 포즈 가설 세트 중 하나의 포즈의 재-투영 에러(re-projection error)인 신뢰도 메트릭을 계산하는 것을 포함함을 특징으로 하는 시스템.
- 제115항에 있어서, 적어도 하나의 카메라는 투영 이미지의 이미지 좌표와 복수의 공선 마커 간 대응 데이터(correspondence data)를 수집하는 것을 특징으로 하는 시스템.
- 제125항에 있어서, 카메라 교정 애플리케이션(camera calibration application) - 상기 카메라 교정 애플리케이션을 이용해 적어도 하나의 카메라의 고유 파라미터(intrinsic parameter)가 모델링되며, 상기 고유 파라미터는 초점 비(focal ratio), 광학 중심(optical center), 스큐니스(skewness), 및 렌즈 왜곡(lens distortion) 중 적어도 하나를 포함함 - 을 포함하는 것을 특징으로 하는 시스템.
- 제126항에 있어서, 상기 카메라 교정 애플리케이션으로의 입력은 대응 데이터(correspondence data)를 포함하는 것을 특징으로 하는 시스템.
- 제1항에 있어서, 프로세서는 복수의 센서를 통해 수신된 특징부 데이터로부터 신체의 제스처를 검출하고, 상기 복수의 물체는 신체를 포함하며, 상기 특징부 데이터는 시공간의 하나의 점에서의 신체의 순간적인 상태의 절대 3-공간 위치 데이터이며, 검출은 상기 특징부 데이터를 집성(aggregate)하고 특징부 데이터만 이용해 제스처를 식별하는 것을 포함하는 것을 특징으로 하는 시스템.
- 제128항에 있어서, 제어는 프로세서 상에서 실행되는 애플리케이션, 상기 프로세서에 의해 디스플레이되는 구성요소(component) 및 프로세서로 연결되는 구성요소의 기능 중 적어도 하나를 제어하는 것을 포함함을 특징으로 하는 시스템.
- 제128항에 있어서, 상기 프로세서는 제스처를 제스처 신호로 변환하고 상기 제스처 신호에 응답하여 상기 프로세서에 연결된 구성요소를 제어하는 것을 특징으로 하는 시스템.
- 제130항에 있어서, 검출은 제스처를 식별하는 것을 포함하고, 상기 식별은 신체의 일부분의 포즈 및 배향을 식별하는 것을 포함함을 특징으로 하는 시스템.
- 제131항에 있어서, 변환은 제스처의 정보를 제스처 표기(gesture notation)로 변환하는 것을 포함함을 특징으로 하는 시스템.
- 제132항에 있어서, 상기 제스처 표기는 제스처 어휘(gesture vocabulary)를 나타내고, 상기 제스처 신호는 제스처 어휘의 통신을 포함하는 것을 특징으로 하는 시스템.
- 제133항에 있어서, 상기 제스처 어휘는 신체의 운동 관절(kinematic linkage)의 순간적인 포즈 상태를 텍스트 형태로 나타내는 것을 특징으로 하는 시스템.
- 제133항에 있어서, 상기 제스처 어휘는 신체의 운동 관절의 배향을 텍스트 형태로 나타내는 것을 특징으로 하는 시스템.
- 제133항에 있어서, 상기 제스처 어휘는 신체의 운동 관절의 배향들의 조합을 텍스트 형태로 나타내는 것을 특징으로 하는 시스템.
- 제133항에 있어서, 상기 제스처 어휘는 신체의 운동 관절의 상태를 나타내는 문자(character)들의 열(string)을 포함하는 것을 특징으로 하는 시스템.
- 제130항에 있어서, 구성요소를 제어하는 것은 제스처를 3공간 물체로 맵핑함으로써 3-공간 물체를 6 자유도로 동시에 제어하는 것을 포함하며, 복수의 물체는 3-공간 물체를 포함하는 것을 특징으로 하는 시스템.
- 제138항에 있어서, 상기 3-공간 물체는 프로세서로 연결된 디스플레이 장치 상에서 표시(present)되는 것을 특징으로 하는 시스템.
- 제138항에 있어서, 상기 3-공간 물체는 상기 프로세서로 연결되어 있는 것을 특징으로 하는 시스템.
- 제138항에 있어서, 복수의 제스처를 3-공간 물체의 복수의 물체 변환어(translation)로 맵핑함으로써 3-공간 물체의 움직임을 제어하는 것을 포함함을 특징으로 하는 시스템.
- 제138항에 있어서, 상기 검출은 물체의 외삽된 포지션(extrapolated position)이 가상 공간과 교차할 때를 검출하는 것을 포함하며, 상기 가상 공간은 상기 프로세서로 연결된 디스플레이 장치 상에서 나타나는 공간을 포함하는 것을 특징으로 하는 시스템.
- 제142항에 있어서, 구성요소를 제어하는 것은 외삽된 포지션이 가상 공간 내 가상 물체와 교차할 때 상기 가상 물체를 제어하는 것을 포함함을 특징으로 하는 시스템.
- 제143항에 있어서, 구성요소를 제어하는 것은 가상 공간에서의 외삽된 포지션에 응답하여 가상 공간에서의 가상 물체의 포지션을 제어하는 것을 포함함을 특징으로 하는 시스템.
- 제144항에 있어서, 구성요소를 제어하는 것은 제스처에 응답하여 가상 공간에서 가상 물체의 자세(attitude)를 제어하는 것을 포함함을 특징으로 하는 시스템.
- 방법으로서, 상기 방법은
복수의 태그를 복수의 물체에 부착하는 단계 - 상기 복수의 태그는, 태그 각각이 적어도 하나의 특징부(feature)를 포함하도록 복수의 특징부를 포함함 - ,
복수의 센서의 위치를 찾음으로써 공간 운영 환경(SOE)을 형성하는 단계 - 상기 SOE는 복수의 물체를 포함함 - ,
복수의 센서에 의해 복수의 특징부를 검출하는 단계,
복수의 센서 중 각각의 센서로부터, 각각의 센서에 의해 검출된 복수의 물체 중 각각의 물체에 대응하는 특징부 데이터를 수신하는 단계, 및
상기 복수의 센서로부터의 특징부 데이터를 통합함으로써, 복수의 물체와 SOE 간의 관계의 코히런트 모델(coherent model)을 생성 및 유지하는 단계
를 포함하는 것을 특징으로 하는 방법. - 제146항에 있어서, 상기 코히런트 모델은 복수의 물체 간의 공간적 관계를 포함하는 것을 특징으로 하는 방법.
- 제147항에 있어서, 상기 코히런트 모델은 복수의 물체의 위치, 배향, 및 모션 중 적어도 하나를 포함하는 것을 특징으로 하는 방법.
- 제147항에 있어서, 상기 코히런트 모델은 복수의 물체의 위치, 배향, 및 모션을 포함하는 것을 특징으로 하는 방법.
- 제146항에 있어서, 가상 공간과 상기 SOE를 포함하는 물리 공간 간의 일치성(coincidence)을 생성하는 단계를 포함하는 것을 특징으로 하는 방법.
- 제146항에 있어서, 상기 검출하는 단계는 센서에 상대적인 적어도 하나의 태그의 위치 및 배향을 포함하는 포즈를 적어도 하나의 태그로부터 검출하는 단계를 포함하고 상기 포즈는 6 자유도(DOF) 포즈를 포함하는 것을 특징으로 하는 방법.
- 제146항에 있어서, 상기 복수의 물체는 신체(body), 신체의 부속지(appendage), 장치, 옷, 장갑, 디스플레이 장치, 가구(furniture) 중 적어도 하나를 포함하는 것을 특징으로 하는 방법. .
- 제146항에 있어서, 상기 코히런트 모델의 원점을 복수의 센서 중 특정 센서에 상대적으로 정의하는 단계를 포함하는 것을 특징으로 하는 방법.
- 제146항에 있어서, 상기 코히런트 모델의 원점을 복수의 태그 중 특정 태그에 상대적으로 정의하는 단계를 포함하고, 상기 특정 태그는 SOE에 상대적인 고정 포즈를 갖는 것을 특징으로 하는 방법.
- 제146항에 있어서, 상기 코히런트 모델의 원점을 복수의 센서 중 특정 센서 및 복수의 태그 중 특정 태그에 상대적으로 정의하는 단계를 포함하고, 상기 특정 태그는 SOE에 상대적인 고정 포즈를 갖는 것을 특징으로 하는 방법.
- 제146항에 있어서, 복수의 태그 중 각각의 태그는 복수의 센서에 의해 검출 및 위치 파악이 되는 적어도 하나의 특징부를 포함하는 것을 특징으로 하는 방법.
- 제146항에 있어서, 각각의 태그는 라벨링 정보(labeling information), 식별 정보(identity information), 및 포즈 정보(pose information) 중 적어도 하나를 포함하는 것을 특징으로 하는 방법.
- 제146항에 있어서, 각각의 태그는 라벨링 정보, 식별 정보, 및 포즈 정보를 포함하는 것을 특징으로 하는 방법.
- 제146항에 있어서, 태그의 투영 이미지는 라벨링을 포함하고, 적어도 하나의 특징부는 적어도 하나의 마커를 포함하고, 상기 라벨링은 상기 투영 이미지 내 적어도 하나의 포인트를 적어도 하나의 대응하는 마커와 관련짓는 것을 특징으로 하는 방법.
- 제146항에 있어서, 태그의 투영 이미지는 식별자를 포함하며, 적어도 하나의 특징부는 상기 태그 상의 복수의 마커를 포함하고, 상기 식별자는 복수의 태그 중 제 1 태그를 상기 복수의 태그 중 제 2 태그로부터 구별짓는 것을 특징으로 하는 방법.
- 제146항에 있어서, 태그의 투영 이미지는 포즈 정보를 포함하고, 상기 포즈 정보는 병진운동 정보 및 회전운동 정보를 포함하는 것을 특징으로 하는 방법.
- 제161항에 있어서, 상기 병진운동 정보는 3 자유도 병진운동을 포함하고, 회전운동 정보는 3 자유도 회전운동을 포함하는 것을 특징으로 하는 방법.
- 제161항에 있어서, 상기 포즈 정보는 태그의 포지션 및 배향을 SOE의 포지션 및 배향에 관련짓는 것을 특징으로 하는 방법.
- 제146항에 있어서, 각각의 센서를 이용해 감지 공간 내 각각의 태그의 포즈를 추정하는 단계를 포함하며, 각각의 센서는 SOE 내 각각의 감지 공간에 대응하는 것을 특징으로 하는 방법.
- 제164항에 있어서, 상기 포즈는 태그의 위치 및 태그의 배향 중 적어도 하나를 포함하는 것을 특징으로 하는 방법.
- 제164항에 있어서, 상기 포즈는 태그의 위치 및 태그의 배향을 포함하고, 상기 위치 및 배향은 각각의 센서에 상대적인 것을 특징으로 하는 방법.
- 제164항에 있어서, 각각의 센서의 감지 공간은 복수의 센서의 적어도 하나의 타 센서의 감지 공간과 적어도 부분적으로 겹치며, 복수의 센서의 조합된 감지 공간(combined sensing volume)은 연속인 것을 특징으로 하는 방법.
- 제146항에 있어서, 상기 특징부 데이터는 동기화되는 것을 특징으로 하는 방법.
- 제146항에 있어서, 복수의 센서 중 각각의 센서에 대해 SOE에 상대적인 포즈의 포즈 모델을 생성하는 단계를 포함하며, 상기 포즈는 6 자유도(DOF) 포즈를 포함하는 것을 특징으로 하는 방법.
- 제169항에 있어서, 복수의 센서 모두 하나의 시점에서 제 1 태그를 검출할 때 복수의 센서 간에 공간적 관계를 생성하는 단계 및 상기 공간적 관계를 이용해 상기 코히런트 모델을 업데이트하는 단계를 포함하는 것을 특징으로 하는 방법.
- 제170항에 있어서, 상기 코히런트 모델의 원점을 복수의 태그 중 특정 태그에 상대적으로 정의하는 단계를 포함하며, 상기 특정 태그는 SOE에 상대적인 고정 포즈를 갖는 것을 특징으로 하는 방법.
- 제170항에 있어서, 상기 코히런트 모델의 원점을 복수의 센서 중 특정 센서 및 복수의 태그 중 특정 태그에 상대적으로 정의하는 단계를 포함하며, 상기 특정 태그는 SOE에 상대적인 고정 포즈를 갖는 것을 특징으로 하는 방법.
- 제170항에 있어서, 각각의 센서에 대해 올바른 포즈 모델(correct pose model)을 결정하는 단계를 포함하는 것을 특징으로 하는 방법.
- 제173항에 있어서,
복수의 시점에서 센서에 의해 태그를 추적하고, 상기 태그에 대해 복수의 포즈 모델을 생성하는 단계,
복수의 포즈 모델에 대해 복수의 신뢰도 메트릭(confidence metric)을 생성하고 불일치하는 포즈 모델(inconsistent pose model)을 제거하기 위해 상기 복수의 신뢰도 메트릭을 기초로 상기 복수의 포즈 모델을 도태시키는 단계
를 포함하는 것을 특징으로 하는 방법. - 제173항에 있어서, 복수의 시점에서 복수의 센서에 의해 태그를 추적하고, 태그에 대해 복수의 포즈 모델 세트를 형성하는 단계를 포함하고, 포즈 모델 세트 각각은 각각의 시점에 대응하는 복수의 포즈 모델을 포함하는 것을 특징으로 하는 방법.
- 제175항에 있어서, 각각의 포즈 모델 세트의 복수의 포즈 모델에 대해 복수의 신뢰도 메트릭을 생성하는 단계, 및 불일치하는 포즈 모델을 제거하기 위해 복수의 신뢰도 메트릭을 기초로 상기 복수의 포즈 모델 세트를 도태시키는 단계를 포함하는 것을 특징으로 하는 방법.
- 제175항에 있어서, 평균 가설(average hypothesis)이 포즈 모델 세트 각각의 복수의 포즈 모델의 평균을 포함하며, 상기 평균 가설은 대응하는 태그의 참 포즈(true pose)에 대한 최대 가능도 추정치(maximum likelihood estimate)에 근사하는 것을 특징으로 하는 방법.
- 제177항에 있어서, 평균 가설은 포지션 성분(positional component) 및 회전 성분(rotational component) 중 적어도 하나를 포함하는 것을 특징으로 하는 방법.
- 제177항에 있어서, 상기 평균 가설은 포지션 성분(positional component) 및 회전 성분(rotational component)을 포함하는 것을 특징으로 하는 방법.
- 제177항에 있어서, 평균 가설에 보정 계수를 적용시킴으로써, 평활화된 가설을 생성하는 단계를 포함하는 것을 특징으로 하는 방법.
- 제181항에 있어서, 적어도 하나의 추가 센서가 태그를 검출할 때 상기 평활화된 가설을 생성하는 단계를 포함하며, 상기 적어도 하나의 추가 센서는 이전에 태그를 검출한 적이 없는 것을 특징으로 하는 방법.
- 제181항에 있어서, 복수의 센서 중 적어도 하나의 센서가 태그를 검출하기를 중단할 때 상기 평활화된 가설을 생성하는 단계를 포함하며, 상기 적어도 하나의 추가 센서는 이전에 태그를 검출한 적이 있는 것을 특징으로 하는 방법.
- 제181항에 있어서, 상기 평활화된 가설은 포지션 성분(positional component) 및 회전 성분(rotational component) 중 적어도 하나를 포함하는 것을 특징으로 하는 방법.
- 제181항에 있어서, 상기 평활화된 가설은 포지션 성분(positional component) 및 회전 성분(rotational component)을 포함하는 것을 특징으로 하는 방법.
- 제186항에 있어서, 제 2 수학식을 SOE 내 회전 좌표계의 기초가 되는 단위 방향 벡터에 적용시키고 상기 단위 방향 벡터를 재-정규화시킴으로써, 회전 성분을 근사시키는 단계를 포함하는 것을 특징으로 하는 방법.
- 제146항에 있어서, 복수의 센서 중 적어도 하나의 센서를 이용해 복수의 물체 중 적어도 하나의 물체의 물체 포즈를 실시간으로 측정하는 단계를 포함하는 것을 특징으로 하는 방법.
- 제195항에 있어서, 상기 적어도 하나의 센서는 하나의 물체에 부착된 복수의 센서를 포함하는 것을 특징으로 하는 방법.
- 제195항에 있어서, 상기 적어도 하나의 센서는 적어도 하나의 물체에 부착되는 것을 특징으로 하는 방법.
- 제197항에 있어서, 물체 포즈의 변화에 자동으로 적응되는 단계를 포함하는 것을 특징으로 하는 방법.
- 제198항에 있어서, 적어도 하나의 물체의 포즈 및 물리적 크기의 모델을 생성하는 단계를 포함하고, 상기 포즈는 6 자유도(DOF) 포즈를 포함하는 것을 특징으로 하는 방법.
- 제198항에 있어서, 적어도 하나의 센서를 적어도 하나의 물체의 주변부 상의 적어도 하나의 위치에 부착시키는 단계를 포함하며, 상기 적어도 하나의 물체는 디스플레이 장치인 것을 특징으로 하는 방법.
- 제200항에 있어서, 상기 적어도 하나의 위치를 자동으로 결정하는 단계를 포함하는 것을 특징으로 하는 방법.
- 제200항에 있어서, 상기 적어도 하나의 위치의 위치 데이터는 수동으로 입력되는 것을 특징으로 하는 방법.
- 제200항에 있어서, 적어도 하나의 센서를 이용해 실시간으로 디스플레이 장치 포즈를 측정하는 단계 및 상기 디스플레이 장치 포즈의 변화에 자동으로 적응되는 단계를 포함하는 것을 특징으로 하는 방법.
- 제146항에 있어서, 복수의 태그 중 적어도 하나의 태그를 복수의 물체 중 적어도 하나의 물체에 부착시키는 단계를 포함하는 것을 특징으로 하는 방법.
- 제204항에 있어서, 상기 적어도 하나의 태그는 하나의 물체에 부착된 복수의 태그를 포함하는 것을 특징으로 하는 방법.
- 제204항에 있어서, 상기 적어도 하나의 태그의 정보를 이용해 상기 적어도 하나의 물체의 복수의 센서 물체 포즈를 실시간으로 측정하는 단계를 포함하는 것을 특징으로 하는 방법.
- 제206항에 있어서, 물체 포즈의 변화에 자동으로 적응되는 단계를 포함하는 것을 특징으로 하는 방법.
- 제207항에 있어서, 적어도 하나의 물체의 포즈 및 물리적 크기의 모델을 생성하는 단계를 포함하며, 상기 포즈는 6 자유도(DOF) 포즈를 포함하는 것을 특징으로 하는 방법.
- 제207항에 있어서, 상기 적어도 하나의 태그를 적어도 하나의 물체의 주변부 상의 적어도 하나의 위치에 부착시키는 단계를 포함하며, 상기 적어도 하나의 물체는 디스플레이 장치인 것을 특징으로 하는 방법.
- 제209항에 있어서, 적어도 하나의 위치를 자동으로 결정하는 단계를 포함하는 것을 특징으로 하는 방법.
- 제209항에 있어서, 상기 적어도 하나의 위치의 위치 데이터는 수동으로 입력되는 것을 특징으로 하는 방법.
- 제209항에 있어서, 적어도 하나의 태그의 정보를 이용해 복수의 센서 디스플레이 장치의 포즈를 실시간으로 측정하고 상기 디스플레이 장치의 포즈의 변화에 자동으로 적응하는 단계를 포함하는 것을 특징으로 하는 방법.
- 제146항에 있어서, 복수의 물체 중 적어도 하나의 물체의 물체 포즈를 복수의 센서를 이용해 실시간으로 측정하는 단계를 포함하고 상기 적어도 하나의 물체는 마킹된 물체(marked object)인 것을 특징으로 하는 방법.
- 제146항에 있어서, 태깅된 물체를 이용해 마킹된 물체를 마킹하는 단계를 포함하고, 상기 태깅된 물체는 물체에 부착된 태그를 포함하는 것을 특징으로 하는 방법.
- 제214항에 있어서, 태깅된 물체가 적어도 하나의 물체 상의 적어도 하나의 위치와 직접 접촉하도록 배치될 때 마킹된 물체를 마킹하는 단계를 포함하는 것을 특징으로 하는 방법.
- 제215항에 있어서, 마킹된 물체 및 SOE에 상대적으로 태깅된 물체의 포즈를 복수의 센서를 이용해 측정하는 단계를 포함하고, 상기 적어도 하나의 위치는 마킹된 물체 상의 복수의 위치를 포함하고, 복수의 위치에서 감지된 상기 태깅된 물체의 포즈는 마킹된 물체의 포즈를 나타내는 것을 특징으로 하는 방법.
- 제214항에 있어서, 태깅된 물체가 적어도 하나의 물체 상의 복수의 위치에서 가리켜질 때 마킹된 물체를 마킹하는 단계를 포함하는 것을 특징으로 하는 방법.
- 제217항에 있어서, 마킹된 물체와 SOE에 상대적으로 태깅된 물체의 포즈를 복수의 센서에 의해 측정하는 단계를 포함하며, 태깅된 물체의 포즈는 태깅된 물체가 복수의 위치에서 가르켜 질 때에 대응하는 시점에서의 마킹된 물체의 포즈를 나타내는 것을 특징으로 하는 방법.
- 제146항에 있어서, 상기 적어도 하나의 특징부는 광학 기점(optical fiducial), 발광 다이오드(LED), 적외선(IR) 발광 다이오드(LED), 역-반사 물질(retro-reflective material)을 포함하는 마커, 적어도 하나의 색(color)을 포함하는 적어도 하나의 영역을 포함하는 마커, 및 복수의 공선 마커(collinear marker) 중 적어도 하나를 포함하는 것을 특징으로 하는 방법.
- 제146항에 있어서, 태그는 복수의 공선 마커를 포함하는 선형-부분-태그(LPT: linear-partial-tag)를 포함하는 것을 특징으로 하는 방법.
- 제220항에 있어서, 복수의 공선 마커에 의해 태그의 식별자를 운반하는 단계를 포함하는 것을 특징으로 하는 방법.
- 제221항에 있어서, 태그는 복수의 LPT를 포함하고, 각각의 LPT는 복수의 공선 마커를 포함하고, wherein 태그는 제 2 LPT에 인접하게 기판(substrate) 상에 위치하는 제 1 LPT를 포함하고, 상기 제 1 LPT는 제 1 공선 마커 세트를 포함하고, 제 2 LPT는 제 2 공선 마커 세트를 포함하는 것을 특징으로 하는 방법.
- 제222항에 있어서, 상기 복수의 센서는 적어도 하나의 카메라를 포함하고 특징부 데이터는 적어도 하나의 카메라에 의해 획득되는 투영 이미지를 포함하고, 상기 투영 이미지는 태그를 포함하는 것을 특징으로 하는 것을 특징으로 하는 방법.
- 제223항에 있어서, 투영 이미지를 검색하는 단계, 상기 투영 이미지 내 제 1 LPT를 식별하는 단계, 및 제 1 LPT의 제 1 공선 마커 세트로 한 선을 적합시키는 단계를 포함하는 것을 특징으로 하는 방법.
- 제224항에 있어서, 제 1 공선 마커 세트의 교차 비(cross ratio)를 계산하는 단계를 포함하며, 상기 교차 비는 상기 제 1 공선 마커 세트의 복수의 공선 마커 간 쌍별 거리(pairwise distance)의 함수이며, 상기 교차 비를 알려진 LPT의 세트에 대응하는 교차 비 세트에 비교하는 것을 특징으로 방법.
- 제225항에 있어서, 투영 이미지를 검색하는 단계, 제 2 LPT를 식별하는 단계, 상기 제 1 LPT와 제 2 LPT를 태그 후보자(tag candidate)로 조합하는 단계, 및 태그 후보자에 대응하는 포즈 가설 세트를 계산하는 단계를 포함하는 것을 특징으로 하는 방법.
- 제226항에 있어서, 포즈 가설 세트 중 하나의 포즈의 재-투영 에러(re-projection error)인 신뢰도 메트릭을 계산하는 단계를 포함하는 것을 특징으로 하는 방법.
- 제223항에 있어서, 상기 적어도 하나의 카메라는 투영 이미지의 이미지 좌표와 복수의 공선 마커 간 대응 데이터(correspondence data)를 수집하는 것을 특징으로 하는 방법.
- 제229항에 있어서, 카메라 교정 애플리케이션을 포함하며, 여기서, 상기 상기 카메라 교정 애플리케이션을 이용해 적어도 하나의 카메라의 고유 파라미터(intrinsic parameter)가 모델링되며, 상기 고유 파라미터는 초점 비(focal ratio), 광학 중심(optical center), 스큐니스(skewness), 및 렌즈 왜곡(lens distortion) 중 적어도 하나를 포함하는 것을 특징으로 하는 방법.
- 제230항에 있어서, 카메라 교정 애플리케이션으로의 입력은 대응 데이터(correspondence data)를 포함하는 것을 특징으로 하는 방법.
- 제146항에 있어서, 복수의 센서를 통해 수신된 특징부 데이터로부터 신체의 제스처를 자동으로 검출하는 단계를 포함하고, 상기 복수의 물체는 신체를 포함하며, 상기 특징부 데이터는 시공간의 하나의 점에서의 신체의 순간적인 상태의 절대 3-공간 위치 데이터이며, 검출하는 단계는 상기 특징부 데이터를 집성(aggregate)하고 특징부 데이터만 이용해 제스처를 식별하는 단계를 포함하는 것을 특징으로 하는 방법.
- 제232항에 있어서, 제어하는 단계는 애플리케이션, 디스플레이 구성요소, 및 원격 구성요소의 기능 중 적어도 하나를 제어하는 단계를 포함하는 것을 특징으로 하는 방법.
- 제232항에 있어서, 제스처를 제스처 신호로 변환하는 단계, 및 상기 제스처 신호에 응답하여 구성요소를 제어하는 단계를 포함하는 것을 특징으로 하는 방법.
- 제234항에 있어서, 검출하는 단계는 제스처를 식별하는 단계를 포함하고, 상기 식별하는 단계는 신체의 일부분의 포즈 및 배향을 식별하는 단계를 포함하는 것을 특징으로 하는 방법.
- 제235항에 있어서, 변환하는 단계는 제스처의 정보를 제스처 표기(gesture notation)로 변환하는 단계를 포함하고, 상기 제스처 표기는 제스처 어휘를 나타내고, 상기 제스처 신호는 제스처 어휘의 통신을 포함하는 것을 특징으로 하는 방법.
- 제236항에 있어서, 상기 제스처 어휘는 신체의 운동 관절의 순간적인 포즈 상태, 신체의 운동 관절의 배향, 및 신체의 운동 관절의 배향들의 조합 중 적어도 하나를 텍스트 형태로 나타내는 것을 특징으로 하는 방법.
- 제236항에 있어서, 제스처 어휘는 신체의 운동 관절의 상태를 나타내는 문자(character)의 열(string)을 포함하는 것을 특징으로 하는 방법.
- 제234항에 있어서, 구성요소를 제어하는 단계는 상기 제스처를 3-공간 물체로 맵핑함으로써 동시에 6 자유도로 3-공간 물체를 제어하는 단계를 포함하고 상기 복수의 물체는 3-공간 물체를 포함하는 것을 특징으로 하는 방법.
- 제239항에 있어서, 디스플레이 장치 상에 3-공간 물체를 표시하는 단계를 포함하는 것을 특징으로 하는 방법.
- 제239항에 있어서, 복수의 제스처를 3-공간 물체의 복수의 물체 변환어(translation)로 맵핑함으로써, 3-공간 물체의 움직임을 제어하는 단계를 포함하는 것을 특징으로 하는 방법.
- 제239항에 있어서, 상기 검출하는 단계는 물체의 외삽된 포지션이 가상 공간을 교차할 때를 검출하는 단계를 포함하고, 상기 가상 공간은 디스플레이 장치 상에 나타나는 공간을 포함하는 것을 특징으로 하는 방법.
- 제242항에 있어서, 구성요소를 제어하는 단계는 외삽된 포지션이 가상 물체를 교차할 때 가상 공간에서 가상 물체를 제어하는 단계를 포함하는 것을 특징으로 하는 방법.
- 시스템으로서, 상기 시스템은
복수의 물체에 부착되는 복수의 태그 - 각각의 태그는 적어도 하나의 특징부를 포함하도록 상기 복수의 태그는 복수의 특징부를 포함함 - ,
복수의 센서 - 복수의 센서의 위치는 복수의 물체를 포함하는 공간 운영 환경(SOE)을 정의함 - , 및
프로세서 상에서 실행되는 적응적 추적 구성요소(ATC: adaptive tracking component) - 상기 ATC는 복수의 센서 중 각각의 센서로부터, 각각의 센서에 의해 검출되는 복수의 물체 중 각각의 물체에 대응하는 특징부 데이터를 수신하고, 상기 특징부 데이터는 시공간의 한 점에서의 신체 각각의 순간적인 상태의 절대 3-공간 위치 데이터이며, 상기 ATC는 복수의 센서로부터의 특징부 데이터를 통합함으로써 복수의 물체와 SOE 간 관계의 코히런트 모델(coherent model)을 생성 및 유지하며, 상기 ATC는 특징부 데이터로부터 복수의 물체 중 적어도 하나의 물체의 제스처를 자동으로 검출하며, 검출은 상기 특징부 데이터만 이용해 제스처를 식별함 -
를 포함하는 것을 특징으로 하는 시스템. - 제244항에 있어서, 상기 코히런트 모델(coherent model)은 복수의 물체 간의 공간적 관계를 포함하는 것을 특징으로 하는 시스템.
- 제245항에 있어서, 상기 코히런트 모델은 복수의 물체의 위치, 배향, 및 모션 중 적어도 하나를 포함하는 것을 특징으로 하는 시스템.
- 제244항에 있어서, 상기 ATC는 가상 공간과 SOE를 포함하는 물리 공간 간의 일치성(coincidence)을 생성하는 것을 특징으로 하는 시스템.
- 제244항에 있어서, 센서는 적어도 하나의 태그로부터, 상기 센서에 상대적인 적어도 하나의 태그의 위치 및 배향을 포함하는 포즈를 검출하며, 상기 포즈는 6 자유도(DOF) 포즈를 포함하는 것을 특징으로 하는 시스템.
- 제244항에 있어서, 복수의 물체는 신체(body), 신체의 부속지(appendage), 장치, 옷, 장갑, 디스플레이 장치, 가구(furniture) 중 적어도 하나를 포함하는 것을 특징으로 하는 시스템.
- 제244항에 있어서, 상기 코히런트 모델의 원점은 복수의 센서 중 특정 센서에 상대적으로 정의되는 것을 특징으로 하는 시스템.
- 제244항에 있어서, 상기 코히런트 모델의 원점은 복수의 태그 중 특정 태그에 상대적으로 정의되고, 상기 특정 태그는 SOE에 상대적인 고정 포즈를 갖는 것을 특징으로 하는 시스템.
- 제244항에 있어서, ATC의 출력은 애플리케이션, 디스플레이 구성요소, 및 상기 프로세서로 연결된 원격 구성요소의 기능 중 적어도 하나를 제어하는 것을 특징으로 하는 시스템.
- 제244항에 있어서, 제스처를 제스처 신호로 변환하고, 상기 제스처 신호에 응답하여 프로세서로 연결된 구성요소를 제어하는 것을 포함함을 특징으로 하는 시스템.
- 제253항에 있어서, 검출은 제스처를 식별하는 것을 포함하고, 상기 식별은 물체의 일부분의 포즈 및 배향을 식별하는 것을 포함함을 특징으로 하는 시스템.
- 제254항에 있어서, 상기 변환은 제스처의 정보를 제스처 표기(gesture notation)로 변환하는 것을 포함하고, 상기 제스처 표기는 제스처 어휘를 나타내며, 제스처 신호는 제스처 어휘의 통신을 포함하는 것을 특징으로 하는 시스템.
- 제255항에 있어서, 상기 제스처 어휘는 물체의 운동 관절의 순간적인 포즈 상태, 물체의 운동 관절의 배향, 및 상기 물체의 운동 관절의 배향들의 조합 중 적어도 하나를 텍스트 형태로 표현하는 것을 특징으로 하는 시스템.
- 제255항에 있어서, 상기 제스처 어휘는 물체의 운동 관절의 상태를 나타내는 문자의 열을 포함하는 것을 특징으로 하는 시스템.
- 제253항에 있어서, 구성요소를 제어하는 것은 제스처를 3-공간 물체로 맵핑함으로써 동시에 6 자유도로 3-공간 물체를 제어하는 것을 포함하고, 복수의 물체는 3-공간 물체를 포함하는 것을 특징으로 하는 시스템.
- 제258항에 있어서, 디스플레이 장치 상에 3-공간 물체를 표시하는 것을 특징으로 하는 시스템.
- 제258항에 있어서, 복수의 제스처를 3-공간 물체의 복수의 물체 변환어로 맵핑함으로써 3-공간 물체의 움직임을 제어하는 것을 포함함을 특징으로 하는 시스템.
- 제258항에 있어서, 상기 검출은 물체의 외삽된 포지션(extrapolated position)이 가상 공간과 교차할 때를 검출하는 것을 포함하며, 가상 공간은 디스플레이 장치 상에 도시된 공간을 포함하는 것을 특징으로 하는 시스템.
- 제261항에 있어서, 구성요소를 제어하는 것은 외삽된 포지션이 가상 물체와 교차할 때 가상 공간에서의 가상 물체를 제어하는 것을 포함함을 특징으로 하는 시스템.
- 제244항에 있어서, 소스 장치(source device)의 이벤트(event)를 검출하는 것을 포함하고, 상기 이벤트는 제스처를 포함하고 상기 소스 장치는 프로세서 상에서 실행되는 ATC를 포함하며, 장치 이벤트 데이터를 포함하는 적어도 하나의 데이터 시퀀스를 생성하는 것은 이벤트 및 이벤트의 상태 정보를 특정하며, 장치 이벤트 데이터 및 상태 정보는 소스 장치의 애플리케이션에 대응하는 유형(type)을 갖는 유형 특정적 데이터이며, 적어도 하나의 데이터 시퀀스를 포함하도록 데이터 캡슐(data capsule)을 형성하고, 데이터 캡슐은 적어도 하나의 데이터 시퀀스의 애플리케이션 독립적 표현을 포함하는 데이터 구조를 갖는 것을 특징으로 하는 시스템.
- 제263항에 있어서, 상기 적어도 하나의 데이터 시퀀스의 생성은
제 1 각각의 장치 이벤트 데이터를 포함하는 제 1 각각의 데이터 세트를 생성하고, 제 2 각각의 상태 정보를 포함하는 제 2 각각의 데이터 세트를 생성하며, 제 1 각각의 데이터 세트 및 제 2 각각의 데이터 세트를 포함하도록 제 1 데이터 시퀀스를 형성하는 것을 포함함을 특징으로 하는 시스템. - 제264항에 있어서, 제 1 각각의 데이터 세트의 생성은 소스 장치의 식별 데이터를 포함하도록 제 1 각각의 데이터 세트를 형성하는 것을 포함하며, 상기 식별 데이터는 소스 장치를 식별하는 데이터를 포함하는 것을 특징으로 하는 시스템.
- 제264항에 있어서, 적어도 하나의 데이터 시퀀스의 생성은
제 1 각각의 장치 이벤트 데이터를 포함하는 제 1 각각의 데이터 세트를 생성하고, 제 2 각각의 상태 정보를 포함하는 제 2 각각의 데이터 세트를 생성하며,
제 1 각각의 데이터 세트 및 제 2 각각의 데이터 세트를 포함하도록 제 2 데이터 시퀀스를 형성하는 것을 포함함을 특징으로 하는 시스템. - 제266항에 있어서, 제 1 각각의 데이터 세트의 생성은 제 1 각각의 데이터 세트 오프셋을 생성하는 것을 포함하며, 상기 제 1 각각의 데이터 세트 오프셋은 상기 제 2 데이터 시퀀스의 제 1 각각의 데이터 세트를 가리키는(point) 것을 특징으로 하는 시스템.
- 제266항에 있어서, 제 2 각각의 데이터 세트의 생성은 제 2 각각의 데이터 세트 오프셋을 생성하는 것을 포함하고, 제 2 각각의 데이터 세트 오프셋은 제 2 데이터 시퀀스의 제 2 각각의 데이터 세트를 가리키는 것을 특징으로 하는 시스템.
- 제264항에 있어서, 제 1 각각의 데이터 세트는 기술 리스트(description list)이며, 상기 기술 리스트는 데이터의 기술(description)을 포함하는 것을 특징으로 하는 시스템.
- 제263항에 있어서, 상기 장치 이벤트 데이터는 유형화된 데이터(typed data)를 나타내는 태깅된 바이트-시퀀스(tagged byte-sequence)이고, 상기 장치 이벤트 데이터는 유형 헤더(type header) 및 유형 특정 데이터 레이아웃(type-specific data layout)을 포함하는 것을 특징으로 하는 시스템.
- 제263항에 있어서, 상기 상태 정보는 유형화된 데이터를 나타내는 태깅된 바이트-시퀀스이며, 상기 상태 정보는 유형 헤더 및 유형-특정 데이터 레이아웃을 포함하는 것을 특징으로 하는 시스템.
- 제263항에 있어서,
적어도 하나의 오프셋을 생성하고,
적어도 하나의 오프셋을 포함하도록 데이터 캡슐을 형성하는 것을 포함함을 특징으로 하는 시스템. - 제272항에 있어서,
제 1 가변 길이를 갖는 제 1 오프셋을 생성하며,
상기 제 1 오프셋은 적어도 하나의 데이터 시퀀스의 제 1 데이터 시퀀스의 장치 이벤트 데이터를 가리키는 것을 특징으로 하는 시스템. - 제272항에 있어서,
제 2 가변 길이를 갖는 제 2 오프셋을 생성하며,
상기 제 2 오프셋은 적어도 하나의 데이터 시퀀스의 제 1 데이터 시퀀스의 상태 정보를 가리키는 것을 특징으로 하는 시스템. - 제272항에 있어서,
적어도 하나의 오프셋의 제 1 오프셋을 이용해 데이터 캡슐을 통해 제 1 코드 경로를 형성하며,
적어도 하나의 오프셋의 제 2 오프셋을 이용해 데이터 캡슐을 통해 제 2 코드 경로를 형성하고,
상기 제 1 코드 경로와 제 2 코드 경로는 서로 다른 경로인 것을 특징으로 하는 시스템. - 제275항에 있어서, 제 1 오프셋과 제 2 오프셋 중 적어도 하나는 메타데이터를 포함하고, 상기 메타데이터는 애플리케이션의 맥락(context)에 대응하는 맥락 특정적 메타데이터를 포함하는 것을 특징으로 하는 시스템.
- 제263항에 있어서,
데이터 캡슐의 길이를 포함하는 헤더를 생성하고,
상기 헤더를 포함하도록 데이터 캡슐을 형성하는 것을 특징으로 하는 시스템. - 제263항에 있어서,
데이터 캡슐을 상기 프로세서에 연결된 레포지토리(repository)로 전송(transfer)하는 것을 특징으로 하는 시스템. - 제278항에 있어서,
제 2 소스 장치의 제 2 이벤트를 검출하고,
제 2 이벤트에 대응하는 데이터 캡슐을 상기 레포지토리에서 검색하는 것을 특징으로 하는 시스템. - 제279항에 있어서,
데이터 캡슐과 제 2 이벤트 간 대응관계를 식별하고, 상기 식별에 응답하여 상기 레포지토리로부터 데이터 캡슐을 추출하며, 상기 데이터 캡슐의 콘텐츠에 응답하여 제 2 소스 장치를 대리해 제 2 이벤트에 대응하는 프로세싱 동작을 실행하고, 상기 소스 장치는 제 1 유형의 애플리케이션에 대응하며, 제 2 소스 장치는 제 2 유형의 제 2 애플리케이션에 대응하는 것을 특징으로 하는 시스템. - 제278항에 있어서, 상기 레포지토리는 복수의 애플리케이션에 연결되고, 상기 레포지토리는 복수의 애플리케이션에 대응하는 복수의 데이터 캡슐을 포함하며, 상기 레포지토리는 복수의 애플리케이션에 의한 복수의 데이터 캡슐로의 액세스를 제공하고, 상기 복수의 애플리케이션 중 적어도 2개의 애플리케이션은 서로 다른 애플리케이션인 것을 특징으로 하는 시스템.
- 제278항에 있어서, 상기 레포지토리는 복수의 데이터 캡슐의 상태 캐싱(state caching)을 제공하는 것을 특징으로 하는 시스템.
- 제278항에 있어서, 상기 레포지토리는 복수의 데이터 캡슐의 선형 시퀀싱(linear sequencing)을 제공하는 것을 특징으로 하는 시스템.
- 제263항에 있어서, 상기 데이터 구조는 비유형화(untype)된 것을 특징으로 하는 시스템.
- 제263항에 있어서, 데이터 캡슐의 데이터 구조는 장치 이벤트 데이터 및 상태 정보의 플랫폼-독립적 표현과, 장치 이벤트 데이터 및 상태 정보로의 플랫폼-독립적 액세스를 제공하는 것을 특징으로 하는 시스템.
- 제244항에 있어서, 복수의 태그 중 각각의 태그는 복수의 센서에 의해 검출되고 위치 파악되는 적어도 하나의 특징부를 포함하는 것을 특징으로 하는 시스템.
- 제244항에 있어서, 각각의 태그는 라벨링 정보, 식별 정보, 및 포즈 정보 중 적어도 하나를 포함하는 것을 특징으로 하는 시스템.
- 제244항에 있어서, 태그의 투영 이미지는 라벨링을 포함하고, 적어도 하나의 특징부는 적어도 하나의 마커(marker)를 포함하고, 상기 라벨링은 상기 투영 이미지 내 적어도 하나의 포인트를 적어도 하나의 대응하는 마커와 관련짓는 것을 특징으로 하는 시스템.
- 제244항에 있어서, 태그의 투영 이미지는 식별자를 포함하고, 상기 적어도 하나의 특징부는 태그 상의 복수의 마커를 포함하며, 상기 식별자는 복수의 태그 중 제 1 태그를 상기 복수의 태그 중 제 2 태그로부터 구별짓는 것을 특징으로 하는 시스템.
- 제244항에 있어서, 태그의 투영 이미지는 포즈 정보를 포함하는 것을 특징으로 하는 시스템.
- 제290항에 있어서, 상기 포즈 정보는 병진운동 정보 및 회전운동 정보를 포함하는 것을 특징으로 하는 시스템.
- 제291항에 있어서, 상기 포즈 정보는 태그의 위치 및 배향을 SOE의 위치 및 배향에 관련 짓는 것을 특징으로 하는 시스템.
- 제244항에 있어서, 각각의 센서는 SOE 내 하나씩의 감지 공간에 대응하고, 각각의 센서는 상기 감지 공간 내 각각의 태그의 포즈를 추정하는 것을 특징으로 하는 시스템.
- 제293항에 있어서, 상기 포즈는 태그의 위치 및 배향 중 적어도 하나를 포함하는 것을 특징으로 하는 시스템.
- 제293항에 있어서, 각각의 센서의 감지 공간은 복수의 센서의 적어도 하나의 타 센서의 감지 공간과 적어도 부분적으로 겹치며, 복수의 센서의 조합된 감지 공간은 연속(contiguous)인 것을 특징으로 하는 시스템.
- 제244항에 있어서, 상기 ATC는 복수의 센서 중 각각의 센서에 대해 SOE에 상대적인 포즈의 포즈 모델(pose model)을 생성하는 것을 특징으로 하는 시스템.
- 제296항에 있어서, 복수의 센서 모두 동시에 제 1 태그를 검출할 때, 상기 ATC는 복수의 센서 간의 공간적 관계를 생성하며, 상기 ATC는 공간적 관계를 이용해 코히런트 모델을 업데이트하는 것을 특징으로 하는 시스템.
- 제297항에 있어서, 상기 ATC는 복수의 태그의 특정 태그에 상대적으로 상기 코히런트 모델의 원점을 정의하고, 상기 특정 태그는 상기 SOE에 상대적인 고정 포즈를 갖는 것을 특징으로 하는 시스템.
- 제297항에 있어서, 상기 ATC는 복수의 센서 중 특정 센서 및 복수의 태그 중 특정 태그에 상대적으로 상기 코히런트 모델의 원점을 정의하며, 특정 태그는 상기 SOE에 상대적인 고정 포즈를 갖는 것을 특징으로 하는 시스템.
- 제297항에 있어서, 각각의 센서에 대해 올바른 포즈 모델(correct pose model)이 결정되는 것을 특징으로 하는 시스템.
- 제300항에 있어서, 센서에 의해 복수의 시점에서 태그가 추적되고 상기 태그에 대해 복수의 포즈 모델이 생성되며, 복수의 포즈 모델에 대해 복수의 신뢰도 메트릭(confidence metric)이 생성되며, 불일치하는 포즈 모델(inconsistent pose model)을 제거하기 위해 상기 복수의 신뢰도 메트릭을 기초로 복수의 포즈 모델이 도태되는 것을 특징으로 하는 시스템.
- 제300항에 있어서, 태그가 복수의 센서에 의해 복수의 시점에서 추적되고, 태그에 대해 복수의 포즈 모델 세트가 형성되며, 포즈 모델 세트 각각은 각각의 시점에 대응하는 복수의 포즈 모델을 포함하는 것을 특징으로 하는 시스템.
- 제302항에 있어서, 각각의 포즈 모델 세트의 복수의 포즈 모델에 대해 복수의 신뢰도 메트릭이 생성되며, 불일치 포즈 모델을 제거하기 위해 복수의 신뢰도 메트릭을 기초로 복수의 포즈 모델 세트가 도태되는 것을 특징으로 하는 시스템.
- 제302항에 있어서, 평균 가설(average hypothesis)이 포즈 모델 세트 각각의 복수의 포즈 모델의 평균을 포함하며, 상기 평균 가설은 대응하는 태그의 참 포즈(true pose)에 대한 최대 가능도 추정치(maximum likelihood estimate)에 근사하는 것을 특징으로 하는 시스템.
- 제304항에 있어서, 평균 가설은 포지션 성분(positional component) 및 회전 성분(rotational component) 중 적어도 하나를 포함하는 것을 특징으로 하는 시스템.
- 제304항에 있어서, 평활화된 가설은 평균 가설의 보정 계수의 적용을 통해 생성되는 것을 특징으로 하는 시스템.
- 제306항에 있어서, 상기 평활화된 가설은, 적어도 하나의 추가 센서가 태그를 검출할 때 생성되며, 상기 적어도 하나의 추가 센서는 이전에 태그를 검출한 적이 없는 것을 특징으로 하는 시스템.
- 제306항에 있어서, 상기 평활화된 가설은, 복수의 센서 중 적어도 하나의 센서가 태그의 검출을 중단할 때 생성되며, 적어도 하나의 추가 센서는 이전에 태그를 검출한 적이 있는 것을 특징으로 하는 시스템.
- 제306항에 있어서, 상기 평활화된 가설은 포지션 성분(positional component) 및 회전 성분(rotational component) 중 적어도 하나를 포함하는 것을 특징으로 하는 시스템.
- 제244항에 있어서, 복수의 센서 중 적어도 하나의 센서가 복수의 물체 중 적어도 하나의 물체의 물체 포즈를 실시간으로 측정하는 것을 특징으로 하는 시스템.
- 제310항에 있어서, 상기 ATC는 물체 포즈의 변화에 자동으로 적응되는 것을 특징으로 하는 시스템.
- 제311항에 있어서, 상기 ATC는 적어도 하나의 물체의 포즈 및 물리적 크기의 모델을 생성하는 것을 특징으로 하는 시스템.
- 제311항에 있어서, 적어도 하나의 센서가 적어도 하나의 물체의 주변부 상의 적어도 하나의 위치에 부착되며, 상기 적어도 하나의 물체는 디스플레이 장치인 것을 특징으로 하는 시스템.
- 제313항에 있어서, 상기 ATC는 적어도 하나의 위치를 자동으로 결정하는 것을 특징으로 하는 시스템.
- 제313항에 있어서, 상기 적어도 하나의 센서는 디스플레이 장치의 포즈를 실시간으로 측정하고, 상기 ATC는 상기 디스플레이 장치의 포즈에 자동으로 적응되는 것을 특징으로 하는 시스템.
- 제244항에 있어서, 복수의 태그 중 적어도 하나의 태그는 복수의 물체 중 적어도 하나의 물체에 부착되는 것을 특징으로 하는 시스템.
- 제316항에 있어서, 복수의 센서는 상기 적어도 하나의 태그의 정보를 이용해 적어도 하나의 물체의 물체 포즈를 실시간으로 측정하는 것을 특징으로 하는 시스템.
- 제317항에 있어서, 상기 ATC는 물체 포즈의 변화에 자동으로 적응되는 것을 특징으로 하는 시스템.
- 제318항에 있어서, 상기 ATC는 적어도 하나의 물체의 포즈 및 물리적 크기의 모델을 생성하는 것을 특징으로 하는 시스템.
- 제318항에 있어서, 적어도 하나의 태그는 적어도 하나의 물체의 주변부 상의 적어도 하나의 위치에 부착되며, 상기 적어도 하나의 물체는 디스플레이 장치인 것을 특징으로 하는 시스템.
- 제320항에 있어서, 상기 ATC는 적어도 하나의 위치를 자동으로 결정하는 것을 특징으로 하는 시스템.
- 제320항에 있어서, 복수의 센서는 적어도 하나의 태그의 정보를 이용해 디스플레이 장치의 포즈를 실시간으로 측정하는 것을 특징으로 하는 시스템.
- 제322항에 있어서, 상기 ATC는 상기 디스플레이 장치의 포즈에 자동으로 적응되는 것을 특징으로 하는 시스템.
- 제244항에 있어서, 복수의 센서 중 적어도 하나의 센서가 복수의 물체 중 적어도 하나의 물체의 물체 포즈를 실시간으로 측정하며, 상기 적어도 하나의 물체는 마킹된 물체(marked object)인 것을 특징으로 하는 시스템.
- 제324항에 있어서, 상기 마킹된 물체는 태깅된 물체(tagged object)을 이용해 마킹되며, 상기 태깅된 물체는 물체에 부착된 태그를 포함하는 것을 특징으로 하는 시스템.
- 제325항에 있어서, 상기 마킹된 물체는 태깅된 물체가 적어도 하나의 물체 상의 적어도 하나의 위치와 직접 접촉하도록 배치될 때 마킹되는 것을 특징으로 하는 시스템.
- 제326항에 있어서, 상기 적어도 하나의 위치는 마킹된 물체 상의 복수의 위치를 포함하는 것을 특징으로 하는 시스템.
- 제327항에 있어서, 복수의 센서는 마킹된 물체 및 SOE에 상대적으로 태깅된 물체의 포즈를 측정하고, 복수의 위치에서 감지된 상기 태깅된 물체의 포즈는 마킹된 물체의 포즈를 나타내는 것을 특징으로 하는 시스템.
- 제325항에 있어서, 상기 마킹된 물체는 적어도 하나의 물체 상의 복수의 위치에서 태깅된 물체가 가르켜 질 때 마킹되는 것을 특징으로 하는 시스템.
- 제329항에 있어서, 복수의 센서는 마킹된 물체 및 SOE에 상대적으로 태깅된 물체의 포즈를 측정하고, 태깅된 물체의 포즈는 태깅된 물체가 복수의 위치에서 가르켜 질 때에 대응하는 시점에서의 마킹된 물체의 포즈를 나타내는 것을 특징으로 하는 시스템.
- 제244항에 있어서, 상기 적어도 하나의 특징부는 광학 기점(optical fiducial), 발광 다이오드(LED), 적외선(IR) 발광 다이오드(LED), 역-반사 물질(retro-reflective material)을 포함하는 마커, 적어도 하나의 색(color)을 포함하는 적어도 하나의 영역을 포함하는 마커, 및 복수의 공선 마커(collinear marker) 중 적어도 하나를 포함하는 것을 특징으로 하는 시스템.
- 제244항에 있어서, 태그는 복수의 공선 마커를 포함하는 선형-부분-태그(LPT: linear-partial-tag)를 포함하며, 상기 복수의 공선 마커는 태그의 식별자(identity)를 운반하는 것을 특징으로 하는 시스템.
- 제332항에 있어서, 태그는 복수의 LPT를 포함하고, 각각의 LPT는 복수의 공선 마커를 포함하는 것을 특징으로 하는 시스템.
- 제333항에 있어서, 태그는 제 2 LPT에 인접하게 기판(substrate) 상에 위치하는 제 1 LPT를 포함하고, 상기 제 1 LPT는 제 1 공선 마커 세트를 포함하고, 제 2 LPT는 제 2 공선 마커 세트를 포함하는 것을 특징으로 하는 시스템.
- 제334항에 있어서, 상기 복수의 센서는 적어도 하나의 카메라를 포함하고 특징부 데이터는 적어도 하나의 카메라에 의해 획득되는 투영 이미지를 포함하고, 상기 투영 이미지는 태그를 포함하는 것을 특징으로 하는 시스템.
- 제335항에 있어서, 투영 이미지를 검색하고, 상기 투영 이미지에서 제 1 LPT를 식별하며, 제 1 LPT의 제 1 공선 마커 세트에 한 선을 적합시키는 것을 포함함을 특징으로 하는 시스템.
- 제336항에 있어서, 제 1 공선 마커 세트의 교차 비(cross ratio)를 계산하는 것을 포함하며, 상기 교차 비는 상기 제 1 공선 마커 세트의 복수의 공선 마커 간 쌍별 거리(pairwise distance)의 함수이며, 상기 교차 비를 알려진 LPT의 세트에 대응하는 교차 비 세트에 비교하는 것을 특징으로 하는 시스템.
- 제337항에 있어서, 투영 이미지를 검색하고 제 2 LPT를 식별하며 상기 제 1 LPT와 제 2 LPT를 태그 후보자(tag candidate)로 조합하고, 태그 후보자에 대응하는 포스 가설의 세트를 계산하고, 포즈 가설 세트 중 하나의 포즈의 재-투영 에러(re-projection error)인 신뢰도 메트릭을 계산하는 것을 포함함을 특징으로 하는 시스템.
- 제335항에 있어서, 적어도 하나의 카메라는 투영 이미지의 이미지 좌표와 복수의 공선 마커 간 대응 데이터(correspondence data)를 수집하는 것을 특징으로 하는 시스템.
- 제339항에 있어서, 카메라 교정 애플리케이션을 포함하고, 상기 카메라 교정 애플리케이션을 이용해 적어도 하나의 카메라의 고유 파라미터(intrinsic parameter)가 모델링되며, 상기 고유 파라미터는 초점 비(focal ratio), 광학 중심(optical center), 스큐니스(skewness), 및 렌즈 왜곡(lens distortion) 중 적어도 하나를 포함함을 특징으로 하는 시스템.
- 제340항에 있어서, 카메라 교정 애플리케이션으로의 입력은 대응 데이터를 포함하는 것을 특징으로 하는 시스템.
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161500416P | 2011-06-23 | 2011-06-23 | |
US61/500,416 | 2011-06-23 | ||
US13/430,509 US8941588B2 (en) | 2008-04-24 | 2012-03-26 | Fast fingertip detection for initializing a vision-based hand tracker |
US13/430,509 | 2012-03-26 | ||
US13/430,626 US8896531B2 (en) | 2008-04-24 | 2012-03-26 | Fast fingertip detection for initializing a vision-based hand tracker |
US13/430,626 | 2012-03-26 | ||
PCT/US2012/044080 WO2012178202A1 (en) | 2011-06-23 | 2012-06-25 | Adaptive tracking system for spatial input devices |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20140068855A true KR20140068855A (ko) | 2014-06-09 |
Family
ID=50350196
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020147001977A KR20140068855A (ko) | 2011-06-23 | 2012-06-25 | 공간 입력 장치를 위한 적응적 추적 시스템 |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP2724337A4 (ko) |
KR (1) | KR20140068855A (ko) |
CN (1) | CN103930944B (ko) |
WO (1) | WO2012178202A1 (ko) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160081788A (ko) * | 2014-12-30 | 2016-07-08 | 삼성전자주식회사 | 제스처 캘리브레이션 매카니즘을 포함하는 전자 기기 시스템 및 그 동작 방법 |
KR101669816B1 (ko) * | 2015-11-20 | 2016-10-27 | 동국대학교 산학협력단 | 소환현실과 상호작용하는 공간을 구축하기 위한 데이터 변환방법 |
KR20170131044A (ko) * | 2016-05-20 | 2017-11-29 | 이탁건 | 전자기기 및 그 동작 방법 |
KR20180057543A (ko) * | 2016-11-21 | 2018-05-30 | 가시오게산키 가부시키가이샤 | 화상 처리 장치, 해석 시스템, 화상 처리 방법 및 프로그램 |
KR20190066862A (ko) | 2017-12-06 | 2019-06-14 | 한국과학기술연구원 | 지능형 음성 정보 제공 시스템 및 방법 |
WO2024029695A1 (ko) * | 2022-08-05 | 2024-02-08 | 삼성전자주식회사 | 모션 정보에 의한 제어 신호를 식별하는 전자 장치 및 그 제어 방법 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10134267B2 (en) | 2013-02-22 | 2018-11-20 | Universal City Studios Llc | System and method for tracking a passive wand and actuating an effect based on a detected wand path |
CN105447886A (zh) * | 2014-08-26 | 2016-03-30 | 上海云罡同汇视觉艺术设计有限公司 | 动感影院播放控制方法 |
CN104777907B (zh) * | 2015-04-17 | 2018-05-25 | 中国科学院计算技术研究所 | 一种用于群体人机交互的系统 |
DE102016212234A1 (de) * | 2016-07-05 | 2018-01-11 | Siemens Aktiengesellschaft | Verfahren zur Interaktion eines Bedieners mit einem technischen Objekt |
EP3549337A4 (en) * | 2016-12-01 | 2020-01-01 | Magic Leap, Inc. | PROJECTOR WITH SCAN MATRIX ALTERNATOR |
CN107908276B (zh) * | 2017-09-26 | 2021-02-02 | 广州新维感信息技术有限公司 | Vr手柄回中处理方法、vr手柄及存储介质 |
CA3076356C (en) * | 2019-04-02 | 2022-06-21 | Ascension Technology Corporation | Distortion correction for tracking an object in a magnetic field |
US11610330B2 (en) | 2019-10-08 | 2023-03-21 | Samsung Electronics Co., Ltd. | Method and apparatus with pose tracking |
CN110782492B (zh) * | 2019-10-08 | 2023-03-28 | 三星(中国)半导体有限公司 | 位姿跟踪方法及装置 |
CN111444807B (zh) * | 2020-03-19 | 2023-09-22 | 北京迈格威科技有限公司 | 目标检测方法、装置、电子设备和计算机可读介质 |
CN111528804B (zh) * | 2020-05-21 | 2023-02-17 | 上海体育学院 | 一种人体平衡能力的检测装置系统 |
US11847037B2 (en) | 2020-09-16 | 2023-12-19 | Kioxia Corporation | Device and method for high performance memory debug record generation and management |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6400996B1 (en) * | 1999-02-01 | 2002-06-04 | Steven M. Hoffberg | Adaptive pattern recognition based control system and method |
US6173066B1 (en) * | 1996-05-21 | 2001-01-09 | Cybernet Systems Corporation | Pose determination and tracking by matching 3D objects to a 2D sensor |
US6720949B1 (en) * | 1997-08-22 | 2004-04-13 | Timothy R. Pryor | Man machine interfaces and applications |
US20010008561A1 (en) * | 1999-08-10 | 2001-07-19 | Paul George V. | Real-time object tracking system |
US7215322B2 (en) * | 2001-05-31 | 2007-05-08 | Siemens Corporate Research, Inc. | Input devices for augmented reality applications |
EP1556805B1 (en) * | 2002-10-22 | 2011-08-24 | Artoolworks | Tracking a surface in a 3-dimensional scene using natural visual features of the surface |
JP5631535B2 (ja) * | 2005-02-08 | 2014-11-26 | オブロング・インダストリーズ・インコーポレーテッド | ジェスチャベースの制御システムのためのシステムおよび方法 |
US8073528B2 (en) * | 2007-09-30 | 2011-12-06 | Intuitive Surgical Operations, Inc. | Tool tracking systems, methods and computer products for image guided surgery |
US8669939B2 (en) * | 2006-02-08 | 2014-03-11 | Oblong Industries, Inc. | Spatial, multi-modal control device for use with spatial operating system |
US8611594B2 (en) * | 2010-09-10 | 2013-12-17 | Apple Inc. | Dynamic display of virtual content on several devices using reference tags |
-
2012
- 2012-06-25 CN CN201280040950.6A patent/CN103930944B/zh not_active Expired - Fee Related
- 2012-06-25 EP EP12802574.9A patent/EP2724337A4/en not_active Withdrawn
- 2012-06-25 KR KR1020147001977A patent/KR20140068855A/ko not_active Application Discontinuation
- 2012-06-25 WO PCT/US2012/044080 patent/WO2012178202A1/en unknown
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160081788A (ko) * | 2014-12-30 | 2016-07-08 | 삼성전자주식회사 | 제스처 캘리브레이션 매카니즘을 포함하는 전자 기기 시스템 및 그 동작 방법 |
US10452195B2 (en) | 2014-12-30 | 2019-10-22 | Samsung Electronics Co., Ltd. | Electronic system with gesture calibration mechanism and method of operation thereof |
KR101669816B1 (ko) * | 2015-11-20 | 2016-10-27 | 동국대학교 산학협력단 | 소환현실과 상호작용하는 공간을 구축하기 위한 데이터 변환방법 |
KR20170131044A (ko) * | 2016-05-20 | 2017-11-29 | 이탁건 | 전자기기 및 그 동작 방법 |
US11169640B2 (en) | 2016-05-20 | 2021-11-09 | Coredar Co., Ltd. | Electronic device and operating method therefor |
KR20180057543A (ko) * | 2016-11-21 | 2018-05-30 | 가시오게산키 가부시키가이샤 | 화상 처리 장치, 해석 시스템, 화상 처리 방법 및 프로그램 |
KR20190066862A (ko) | 2017-12-06 | 2019-06-14 | 한국과학기술연구원 | 지능형 음성 정보 제공 시스템 및 방법 |
WO2024029695A1 (ko) * | 2022-08-05 | 2024-02-08 | 삼성전자주식회사 | 모션 정보에 의한 제어 신호를 식별하는 전자 장치 및 그 제어 방법 |
Also Published As
Publication number | Publication date |
---|---|
EP2724337A4 (en) | 2015-06-17 |
EP2724337A1 (en) | 2014-04-30 |
CN103930944B (zh) | 2016-08-24 |
CN103930944A (zh) | 2014-07-16 |
WO2012178202A1 (en) | 2012-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10255489B2 (en) | Adaptive tracking system for spatial input devices | |
US8941590B2 (en) | Adaptive tracking system for spatial input devices | |
KR20140068855A (ko) | 공간 입력 장치를 위한 적응적 추적 시스템 | |
US20180136734A1 (en) | Spatial, multi-modal control device for use with spatial operating system | |
US8669939B2 (en) | Spatial, multi-modal control device for use with spatial operating system | |
US8941589B2 (en) | Adaptive tracking system for spatial input devices | |
KR101705924B1 (ko) | 공간 운영 시스템을 위한 공간, 다중-모드 제어 장치 | |
US10521021B2 (en) | Detecting, representing, and interpreting three-space input: gestural continuum subsuming freespace, proximal, and surface-contact modes | |
US8665213B2 (en) | Spatial, multi-modal control device for use with spatial operating system | |
EP2427857B1 (en) | Gesture-based control systems including the representation, manipulation, and exchange of data | |
US8370383B2 (en) | Multi-process interactive systems and methods | |
US20150371083A1 (en) | Adaptive tracking system for spatial input devices | |
KR101649769B1 (ko) | 멀티-프로세스 대화형 시스템 및 방법 | |
US9063801B2 (en) | Multi-process interactive systems and methods | |
US10990454B2 (en) | Multi-process interactive systems and methods | |
US20130076616A1 (en) | Adaptive tracking system for spatial input devices | |
US9933852B2 (en) | Multi-process interactive systems and methods | |
US20150138086A1 (en) | Calibrating control device for use with spatial operating system | |
US9052970B2 (en) | Multi-process interactive systems and methods | |
JP2015525381A (ja) | 相互ユーザ手追跡および形状認識ユーザ・インターフェース |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |