KR102219246B1 - 헤드 마운티드 디바이스를 사용한 사용자 초점 제어 그래픽 사용자 인터페이스 - Google Patents

헤드 마운티드 디바이스를 사용한 사용자 초점 제어 그래픽 사용자 인터페이스 Download PDF

Info

Publication number
KR102219246B1
KR102219246B1 KR1020167000651A KR20167000651A KR102219246B1 KR 102219246 B1 KR102219246 B1 KR 102219246B1 KR 1020167000651 A KR1020167000651 A KR 1020167000651A KR 20167000651 A KR20167000651 A KR 20167000651A KR 102219246 B1 KR102219246 B1 KR 102219246B1
Authority
KR
South Korea
Prior art keywords
user
menu
spoke
focus
head
Prior art date
Application number
KR1020167000651A
Other languages
English (en)
Other versions
KR20160018792A (ko
Inventor
캐슬린 멀카히
아론 번스
토드 오모타니
펠리시아 윌리엄즈
제프 콜
팀 시아키
Original Assignee
마이크로소프트 테크놀로지 라이센싱, 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 filed Critical 마이크로소프트 테크놀로지 라이센싱, 엘엘씨
Publication of KR20160018792A publication Critical patent/KR20160018792A/ko
Application granted granted Critical
Publication of KR102219246B1 publication Critical patent/KR102219246B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/012Head tracking input arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/013Eye tracking input arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser

Abstract

접안 투시형 디스플레이 디바이스에 대한 사용자 입력이 개시되어 있다. 증강 현실 환경에서의 핸즈프리 사용자 입력이 제공된다. 사용자는 머리의 배향을 움직이는 것에 의해 입력을 제공할 수 있다. 예를 들어, 사용자는 머리를 회전시킬 수 있을 것이다. 하나의 양태에서, 사용자는 눈 시선을 어떤 방향으로 움직임으로써 입력을 제공할 수 있다. 하나의 양태에서, 사용자가 사용자 인터페이스 심볼로 주의를 돌릴 때, 핸들이 사용자 인터페이스 심볼로부터 멀어지는 쪽으로 연장된다. 사용자가 핸들을 따라 사용자 인터페이스 심볼로부터 멀어지는 쪽으로 주의를 돌리는 경우, 선택이 행해질 수 있도록, 핸들이 한 유형의 선택 디바이스로서 역할할 수 있다. 하나의 예로서, 그 선택은, 본 시스템이 사용자가 중앙 허브로부터 멀어지는 쪽으로 스포크를 따라 바라보고 있다고 결정하도록 머리를 회전시키는 것에 의해, 사용자가 선택할 수 있는 스포크 메뉴가 나타나게 한다.

Description

헤드 마운티드 디바이스를 사용한 사용자 초점 제어 그래픽 사용자 인터페이스{USER FOCUS CONTROLLED GRAPHICAL USER INTERFACE USING A HEAD MOUNTED DEVICE}
본 발명은 헤드 마운티드 디바이스(head mounted display)(HMD)를 사용한 사용자 초점 제어(user focus controlled) 그래픽 사용자 인터페이스에 관한 것이다.
증강 현실(augmented reality)(AR)은 현실 세계 환경(또는 현실 세계 환경을 표현하는 데이터)의 지각이 컴퓨터에 의해 발생된 가상 데이터로 증강되거나 수정되는 증강된 현실 세계 환경의 제공에 관한 것이다. 예를 들어, 현실 세계 환경을 표현하는 데이터는 카메라 또는 마이크와 같은 감각적 입력 디바이스(sensory input device)를 사용하여 실시간으로 캡처되고 가상 영상 및 가상 사운드를 비롯한 컴퓨터에 의해 발생된 가상 데이터로 증강될 수 있다. 가상 데이터는 또한 현실 세계 환경에 있는 현실 세계 객체와 연관된 텍스트 설명과 같은 현실 세계 환경에 관련된 정보를 포함할 수 있다. AR 구현은 비디오 게임, 지도 제작, 내비게이션, 및 모바일 디바이스 응용 분야들을 비롯한 수많은 응용 분야들을 향상시키기 위해 사용될 수 있다.
가상 객체와 실제 객체의 혼합 영상을 보기 위해, 헤드 마운티드 디스플레이(HMD)와 같은 접안 디스플레이(near-eye display)가 사용자에 의해 착용될 수 있다. 접안 디스플레이는 사용자의 시야에 있는 가상 영상에 초점을 맞추기 위해 광학계와 입체 영상(stereopsis)의 조합을 사용한다.
증강 현실 환경에서 핸즈프리 방식으로 시스템 메뉴들에 액세스하는 것은 아주 중요하다. 음성은 부자연스럽고, 사람들이 남들 앞에서 명령을 말하는 거북한 사회적 상황을 만드는 단점이 있고, 현재 기술로는 단번에 명령을 항상 정확하게 해석하지는 못한다. 마우스 및 글러브 유형 컨트롤러들은 추가의 하드웨어를 필요로 하는 단점이 있고, 양손이 사용되고 있는(예컨대, 물건을 들고 있는, 식사는 하고 있는 등) 동안 용이하게 사용될 수 없다.
HMD와 같은 투시형 접안 디스플레이에 사용자 인터페이스를 제공하는 시스템 및 방법이 제공된다. 하나의 실시예에서, 사용자 인터페이스는 머리 배향에 의해 제어된다. 눈 시선이 또한 사용될 수 있을 것이다.
하나의 실시예에 따르면, 이하를 포함하는 방법이 제공된다. 사용자 인터페이스 심볼이 투시형 접안 디스플레이에 제시된다. 투시형 접안 디스플레이를 착용하고 있는 사용자의 초점이 결정된다. 사용자가 사용자 인터페이스 심볼에 초점을 맞추고 있는 것으로 결정한 것에 응답하여, 사용자 인터페이스 심볼로부터 멀어지는 쪽으로 연장되는 핸들이 투시형 접안 디스플레이에 제시된다. 사용자의 초점이 핸들을 따라 사용자 인터페이스 심볼로부터 멀어지는 쪽으로 이동되었다는 결정이 행해진다. 선택 기준을 충족시키기 위해 사용자의 초점이 핸들을 따라 사용자 인터페이스 심볼로부터 멀어지는 쪽으로 이동되었다고 결정한 것에 응답하여 사용자 인터페이스 요소가 활성화된다.
하나의 실시예는 투시형 접안 디스플레이 디바이스 및 디스플레이 디바이스와 통신하는 로직을 포함하는 디스플레이 시스템을 포함한다. 로직은 사용자 인터페이스 심볼을 투시형 접안 디스플레이 디바이스에 제시하도록 구성되어 있다. 로직은 투시형 접안 디스플레이 디바이스를 착용하고 있는 사용자의 눈 시선 또는 머리 배향을 추적하도록 구성되어 있다. 로직은, 눈 시선 또는 머리 배향이 사용자가 사용자 인터페이스 심볼을 보고 있는 것을 나타낸다고 결정한 것에 응답하여, 사용자 인터페이스 심볼로부터 멀어지는 쪽으로 연장되는 핸들을 투시형 접안 디스플레이 디바이스에 디스플레이하도록 구성되어 있다. 로직은, 눈 시선 또는 머리 배향이 사용자가 선택 기준을 충족시키기 위해 핸들을 따라 사용자 인터페이스 심볼로부터 멀어지는 쪽을 바라보고 있는 것을 나타낸다고 결정한 것에 응답하여, 사용자 인터페이스 요소를 활성화시키도록 구성되어 있다.
하나의 실시예는 사용자 인터페이스를 투시형 접안 디스플레이 디바이스에 제공하는 방법을 포함한다. 이 방법은 이하를 포함한다. 사용자 인터페이스 심볼이 투시형 접안 디스플레이 디바이스에 제시된다. 투시형 접안 디스플레이 디바이스를 착용하고 있는 사용자의 머리 배향이 추적된다. 머리 배향에 기초하여 사용자가 대략적으로 사용자 인터페이스 심볼의 방향으로 바라보고 있다고 결정한 것에 응답하여, 사용자 인터페이스 심볼로부터 멀어지는 쪽으로 연장되는 핸들이 투시형 접안 디스플레이 디바이스에 제시된다. 사용자의 머리 배향이 사용자가 사용자 인터페이스 심볼을 바라보는 것으로부터 핸들을 따라 이동했다는 것을 나타낸다고 결정한 것에 응답하여, 스포크 메뉴(spoke menu)가 투시형 접안 디스플레이 디바이스에 생성된다. 스포크 메뉴는 중앙 허브 주위에 메뉴 항목들을 포함하고, 메뉴 항목들 각각은 그와 중앙 허브 사이에 스포크를 갖는다.
이 발명의 내용은 이하에서 설명에 추가로 기술되는 일련의 개념들을 간략화된 형태로 소개하기 위해 제공된다. 이 발명의 내용은 청구된 발명 요지의 주요 특징들 또는 필수적인 특징들을 확인하기 위한 것이 아니며, 청구된 발명 요지의 범주를 정하는 데 보조 수단으로 사용되기 위한 것도 아니다.
도 1은 투시형 혼합 현실 디스플레이 디바이스가 동작할 수 있는 시스템 환경에서 그 디바이스의 하나의 실시예의 예시적인 구성요소들을 나타낸 블록도.
도 2는 사용자가 어떤 환경에서 헤드 마운티드 디스플레이 디바이스를 착용하고 있는 것을 나타낸 도면.
도 3은 헤드 마운티드 디스플레이 유닛의 하나의 실시예의 일부분의 평면도.
도 4a는 헤드 마운티드 디스플레이 유닛의 구성요소들의 하나의 실시예의 블록도.
도 4b는 헤드 마운티드 디스플레이 유닛과 연관된 처리 유닛의 구성요소들의 하나의 실시예의 블록도.
도 5는 헤드 마운티드 디스플레이 유닛과 함께 사용되는 허브 컴퓨팅 시스템의 구성요소들의 하나의 실시예의 블록도.
도 6은 본 명세서에 기술된 허브 컴퓨팅 시스템을 구현하기 위해 사용될 수 있는 컴퓨팅 시스템의 하나의 실시예의 블록도.
도 7은 본 기술의 일 실시예에 따른 프로세스를 나타낸 플로우차트.
도 8a는 하나의 실시예에 따른, 객체 상에 제시되는 사용자 인터페이스 심볼의 일례를 나타낸 도면.
도 8b는 심볼이 하이라이트되는 하나의 예를 나타낸 도면.
도 8c는 핸들이 심볼로부터 멀어지는 쪽으로 연장되는 하나의 예를 나타낸 도면.
도 8d는 스포크 메뉴의 하나의 실시예의 일례를 나타낸 도면.
도 9a, 도 9b 및 도 9c는 스포크 메뉴의 하나의 실시예의 일례를 나타낸 도면.
도 10은 스포크 메뉴 상의 메뉴 항목의 선택을 제공하는 프로세스의 하나의 실시예의 플로우차트.
도 11a, 도 11b 및 도 11c는 스포크가 점진적으로 채워지는 것의 일례를 나타낸 도면.
도 12는 스포크 메뉴 상의 메뉴 항목의 선택을 제공하는 프로세스의 하나의 실시예의 플로우차트.
도 13은 메뉴 항목들이 허브로부터 대각선으로 있는 하나의 실시예를 나타낸 도면.
도 14a 및 도 14b는 스포크 메뉴의 다른 실시예를 나타낸 도면.
도 15는 객체와 연관된 제1 사용자 선택 심볼 및 제2 사용자 선택 심볼이 있는 일례를 나타낸 도면.
도 16은 사용자 선택 심볼이 핸들이 연장된 방향을 가리키고 있는 하나의 실시예를 나타낸 도면.
도 17은 내포된 스포크 메뉴의 하나의 예를 나타낸 도면.
도 18은 핸들에 초점을 맞춘 것에 기초하여 사용자 입력을 가능하게 하는 하나의 실시예를 나타낸 도면.
접안 투시형 디스플레이 디바이스를 사용할 때의 사용자의 경험이 향상되는 기술이 본 명세서에 개시되어 있다. 하나의 실시예에 따르면, 증강 현실 환경에서의 핸즈프리 사용자 입력이 제공된다. 하나의 실시예에 따르면, 시스템 메뉴에의 액세스가 제공된다. 하나의 실시예에서, 사용자가 자신의 머리의 배향을 움직이는 것에 의해 입력을 제공할 수 있다. 예를 들어, 사용자가 자신의 머리를 회전시킬 수 있을 것이다. 하나의 실시예에서, 사용자가 자신의 눈 시선의 방향을 움직이는 것에 의해 입력을 제공할 수 있다. 하나의 실시예에서, 사용자 인터페이스 심볼이 접안 디스플레이 디바이스에 제시된다. 사용자 인터페이스 심볼이 현실 세계 객체 상에 또는 그 근방에 또는 접안 디스플레이 디바이스에 렌더링되어 있는 가상 객체 상에 또는 그 근방에 있는 것처럼 보이도록 제시될 수 있을 것이다. 사용자 인터페이스 심볼은 사용자가 객체와 어떻게든 상호작용하기 위해 입력을 입력할 기회를 가지고 있다는 사용자에 대한 지시자로서 역할할 수 있다. 사용자가 사용자 인터페이스 심볼로 주의를 돌리는 경우, 하나의 실시예에서, 핸들이 사용자 인터페이스 심볼로부터 멀어지는 쪽으로 연장된다. 본 시스템은 사용자의 머리 배향 및/또는 사용자의 눈 시선을 확인하는 것에 의해 사용자가 사용자 인터페이스 심볼에 주의를 집중시키고 있다고 결정할 수 있을 것이다. 사용자 인터페이스 심볼은 또한, 일부 실시예들에서, 사용자가 그 심볼을 보고 있는 것에 응답하여, 반짝이거나 번뜩이거나 기타로 될 수 있기 때문에 “반짝임(gleam)”이라고 지칭될 수 있다.
사용자가 핸들을 따라 사용자 인터페이스 심볼로부터 멀어지는 쪽으로 주의를 돌리는 경우, 선택이 행해질 수 있도록, 핸들이 한 유형의 선택 디바이스로서 역할할 수 있다. 하나의 예로서, 사용자는 시스템이 사용자가 핸들을 따라 사용자 인터페이스 심볼로부터 멀어지는 쪽을 보고 있다고 결정하도록 머리를 회전시키는 것에 의해 메뉴가 나타나게 할 수 있다. 하나의 실시예에서, 이것은 허브를 둘러싸고 있는 메뉴 항목들을 가지는 스포크 메뉴(spoke menu)이다. 스포크 메뉴를 활성화시키기 위해 사용자가 보고 있었던 마지막 지점이 스포크 메뉴에 대한 허브로서 역할할 수 있다. 사용자는 이어서 메뉴 항목들 중 하나로 초점을 돌리는 것에 의해 메뉴 항목들을 선택할 수 있다. 하나의 실시예에서, 사용자는 메뉴 항목을 선택하기 위해 머리를 메뉴 항목 쪽으로 움직인다. 예를 들어, 사용자는 메뉴 항목을 선택하기 위해 머리를 왼쪽으로, 오른쪽으로, 위로, 또는 아래로 회전할 수 있다. 하나의 실시예에서, 사용자는 선택 프로세스의 일부로서 눈을 메뉴 항목 쪽으로 움직인다.
도 1은 투시형 혼합 현실 디스플레이 디바이스(2)가 동작할 수 있는 시스템 환경(100)에서 그 디바이스의 하나의 실시예의 예시적인 구성요소들을 나타낸 블록도이다. 투시형 디스플레이 디바이스는 전선(6)을 통해 처리 유닛(4)과 통신하는 접안 헤드 마운티드 디스플레이 디바이스(2)이다. 다른 실시예들에서, 헤드 마운티드 디스플레이 디바이스(2)는 무선 통신을 통해 처리 유닛(4)과 통신한다. 처리 유닛(4)은 다양한 실시예들을 가질 수 있다. 일부 실시예들에서, 처리 유닛(4)은 사용자의 신체(예컨대, 예시된 예에서, 손목) 상에 또는 주머니에 착용될 수 있는 별개의 유닛이고, 접안 디스플레이 디바이스(2)를 동작시키는 데 사용되는 컴퓨팅 능력의 상당 부분을 포함할 수 있다. 처리 유닛(4)은 하나 이상의 허브 컴퓨팅 시스템(12), 핫스폿, 셀룰러 데이터 네트워크 등과 무선(예컨대, Wi-Fi, 블루투스, 적외선, 또는 다른 무선 통신 수단)으로 통신할 수 있다. 다른 실시예들에서, 처리 유닛(4)의 기능이 디스플레이 디바이스(2)의 소프트웨어 및 하드웨어 구성요소들에 통합될 수 있다.
하나의 실시예에서, 안경테(115) 내의 안경알의 형상으로 되어 있는 투시형 헤드 마운티드 디스플레이 디바이스(2)는, 사용자가, 이 예에서, 각각의 눈에 대한 디스플레이 광학계(14)로서 구현되는 디스플레이를 투시하고 따라서 사용자의 전방에 있는 공간을 실제로 직접 볼 수 있도록, 사용자의 머리에 착용된다. "실제로 직접 본다"라는 용어의 사용은, 객체들의 생성된 영상 표현들을 보는 것이 아니라, 현실 세계 객체들을 사람의 눈으로 직접 볼 수 있다는 것을 지칭한다. 예를 들어, 안경을 통해 방을 보는 것은 사용자가 방을 실제로 직접 볼 수 있게 하는 것인 반면, 텔레비전에서 방의 비디오를 보는 것은 방을 실제로 직접 보는 것이 아니다. 소프트웨어, 예를 들어, 게임 애플리케이션을 실행하는 상황에 기초하여, 본 시스템은 투시형 디스플레이 디바이스를 착용하고 있는 사람이 디스플레이를 통해 현실 세계 객체들을 보고 있는 동안에도 그 사람에게 보이는 가상 객체들의 영상들(때때로 가상 영상이라고 지칭됨)을 디스플레이 상에 투사할 수 있다.
프레임(115)은 HMD(2)의 요소들을 제자리에 유지시키기 위한 지지체는 물론 전기적 연결을 위한 통로를 제공한다. 이 실시예에서, 프레임(115)은 이하에서 더 논의되는 시스템의 요소들에 대한 지지체로서 편리한 안경테를 제공한다. 다른 실시예들에서, 다른 지지 구조물들이 사용될 수 있다. 이러한 구조물의 일례는 바이저, 모자, 헬멧 또는 고글이다. 프레임(115)은 사용자의 각각의 귀 위에 놓이는 안경다리 또는 사이드 아암을 포함한다. 안경다리(102)는 우측 안경다리의 일 실시예를 나타내고, 디스플레이 디바이스(2)에 대한 제어 회로(136)를 포함한다. 프레임의 코 받침(104)은 소리를 녹음하고 오디오 데이터를 처리 유닛(4)으로 전송하기 위한 마이크(110)를 포함한다.
허브 컴퓨팅 시스템(12)은 컴퓨터, 게임 시스템 또는 콘솔 등일 수 있다. 예시적인 실시예에 따르면, 허브 컴퓨팅 시스템(12)은 허브 컴퓨팅 시스템(12)이 게임 애플리케이션, 비게임 애플리케이션 등과 같은 애플리케이션을 실행하는 데 사용될 수 있도록 하드웨어 구성요소들 및/또는 소프트웨어 구성요소들을 포함할 수 있다. 애플리케이션은 허브 컴퓨팅 시스템(12), 디스플레이 디바이스(2) 상에서, 이하에서 논의되는 바와 같이, 모바일 디바이스(5) 또는 이들의 조합 상에서 실행 중일 수 있다.
하나의 실시예에서, 허브 컴퓨팅 시스템(12)은 캡처 디바이스들(20A 및 20B)과 같은 하나 이상의 캡처 디바이스들을 추가로 포함한다. 2 개의 캡처 디바이스들은 사용자의 방 또는 다른 물리적 환경을 캡처하는 데 사용될 수 있지만, 모든 실시예들에서 투시형 헤드 마운티드 디스플레이 디바이스(2)와 함께 사용할 필요는 없다.
캡처 디바이스들(20A 및 20B)은, 예를 들어, 애플리케이션 내에서 하나 이상의 제어들 또는 동작들을 수행하기 위해 그리고/또는 아바타 또는 온스크린 캐릭터(on-screen character)에 애니메이션 효과를 주기 위해 하나 이상의 사용자들은 물론 주변 공간의 구조물에 의해 수행되는 제스처들 및/또는 움직임들이 캡처, 분석, 및 추적될 수 있도록, 하나 이상의 사용자들 및 주변 공간을 시각적으로 모니터링하는 카메라일 수 있다.
허브 컴퓨팅 시스템(12)은 게임 또는 애플리케이션 시각 정보(visual)를 제공할 수 있는 텔레비전, 모니터, HDTV(high-definition television) 등과 같은 시청각 디바이스(audiovisual device)(16)에 연결될 수 있다. 어떤 경우에, 시청각 디바이스(16)는 3 차원 디스플레이 디바이스일 수 있다. 하나의 예에서, 시청각 디바이스(16)는 내부 스피커를 포함한다. 다른 실시예들에서, 시청각 디바이스(16), 별개의 스테레오 또는 허브 컴퓨팅 시스템(12)이 외부 스피커(22)에 연결되어 있다.
유의할 점은, HMD(2) 및 처리 유닛(4)이 허브 컴퓨팅 시스템(12) 없이 사용될 수 있고, 이 경우에 처리 유닛(4)이 Wi-Fi 네트워크, 셀룰러 네트워크 또는 다른 통신 수단과 통신할 것이라는 것이다.
다양한 실시예들에서, 본 명세서에 기술된 프로세스들이 전체적으로 또는 부분적으로 헤드 마운티드 디스플레이 디바이스(2), 처리 유닛(4), 허브 컴퓨팅 시스템(12), 또는 이들의 조합에 의해 수행된다.
하나의 예시적인 구현에서, 가속도계 및 자이로스코프로부터의 관성 측정을 사용하는 관성 감지, GPS(global positioning system), 눈 추적 요소들을 비롯한 헤드 마운티드 디스플레이 디바이스(2)에 내장된 다양한 센서 기술들이 사용자의 초점을 결정한다. 초점이라는 것은, 사용자가 어디를 보고 있는지 또는 무엇이 사용자의 주의를 끌고 있는지를 의미한다. 사용자의 초점은 머리 배향 및/또는 눈 시선에 의해 결정될 수 있다. 어떤 경우들에서, 머리 배향 및 눈 시선이 상이한 지점들에 초점이 맞춰져 있다. 예를 들어, 사용자는 똑바로 앞을 보고 있지 않을 수 있다. 이러한 경우에, 머리 배향은 초점을 규정하는 데 사용될 수 있다. 대안적으로, 둘이 상이할 때, 눈 시선은 사용자의 초점을 결정하는 데 사용될 수 있을 것이다.
다른 기법들 및 센서들이 사용자의 초점을 결정하는 데 사용될 수 있다. 이들은 비행 시간(time of flight), 공간 스캔(spatial scan), 기계적 연결(mechanical linkage), 위상차 감지(phase-difference sensing), 및/또는 직접 장 감지(direct field sensing)를 포함할 수 있다. 이러한 경우들에서, 헤드 마운티드 디스플레이에 부가의 하드웨어가 필요할 수 있다. 헤드 마운티드 디스플레이 디바이스(2) 및 처리 유닛(4)의 추가 상세는 도 3, 도 4a 및 도 4b와 관련하여 이하에서 기술될 것이다.
하나의 실시예에서, 허브 컴퓨팅 디바이스(12)는 헤드 마운티드 디스플레이 디바이스(2)의 위치 및 배향의 예비 결정을 제공하기 위해 사용자 및 헤드 마운티드 디스플레이 디바이스(2)를 추적하는 데 사용될 수 있다. 헤드 마운티드 디스플레이 디바이스(2)의 위치 및 배향을 결정하기 위해 RGB 카메라, 깊이 센서, 및/또는 다른 기술들을 비롯한 다양한 센서 기술들이 허브 컴퓨팅 디바이스(12)에 구현될 수 있다. 허브 컴퓨팅 디바이스(12)의 추가 상세는 도 5와 관련하여 이하에서 기술될 것이다.
클라우드로부터 검색되는 정보, 하나 이상의 외부 디바이스들에 의해 검출 및/또는 수집되는 정보, 및 다른 관련 정보와 같은 부가 정보가 또한 사용자의 머리 위치 및 회전을 식별하고 계속 추적하는 데 사용될 수 있다. RGB 및/또는 깊이 센서 데이터를 사용하는 SLAM(Simultaneous Localization and Mapping)과 같은 기법들이 지도 제작된 환경에 대한 사용자의 머리의 실시간 위치를 제공하는 데 이용될 수 있다. 클라우드로부터의 데이터 및/또는 깊이 센서 데이터를 사용하여 환경 타이포그라피(environmental typography)가 식별될 수 있다. 사용자가 자신을 보고 있을 때 깊이 센서를 사용하여 사용자의 신체의 부위들(예컨대, 손, 팔, 몸통, 다리)이 식별될 수 있다.
앞서 논의된 모든 센서 정보 및/또는 감지 기술들이 항상 필요한 것은 아님을 잘 알 것이다. 사용자의 전 시야의 측정을 추가로 세밀화하기 위해 하나 이상의 센서들이 중복하여 사용될 수 있다.
도 2는 사용자(2222)가 어떤 환경(2220)에서 헤드 마운티드 디스플레이 디바이스(2)를 착용하고 있는 것을 나타낸 것이다. 이 예에서, 사용자의 머리 위치 및 배향이 계속 추적된다. 선택적으로, 사용자의 눈 시선도 추적될 수 있다. 예를 들어, 앞서 기술된 다양한 센서 기술들을 사용하여 사용자(2222)의 머리 위치 및 배향이 식별되는 때와 같은 주어진 순간에, 사용자(2222)는 사용자의 초점이 그림, 텔레비전 화면 등일 수 있는 요소(2234) 쪽으로 향해 있는 것으로 나타내어져 있다. 사용자의 초점은 양눈 사이의 지점에서 시작하여 “똑바로 나가는” 벡터로서 규정될 수 있을 것이다.
사용자의 초점이 눈 추적을 사용하여 규정될 수도 있을 것이다. 이 경우에, HMD(2) 또는 다른 곳에서의 기술은 사용자의 양눈 중 하나 또는 둘 다가 응시하고 있는 방향을 추적할 수 있다. 전형적으로, 눈 시선은 사용자의 눈이 순간적으로 고정되어 있는 지점인 것으로 간주된다.
환경은 램프(2224), 시계(2232), 벽의 일부분(2230), 벽의 일부분(2226), 테이블(2240), 처리 디바이스(2238), 캡처 디바이스들(20A, 20B), 및 디스플레이(2234), 바닥(2231), 및 꽃(2242)을 포함한다. 환경(2220)은 좌표계(2250)와 관련하여 규정될 수 있고, 사용자의 머리 위치 및 배향은 제2 좌표계(2252)와 관련하여 규정될 수 있다.
다양한 시간 인스턴스들에서 사용자의 머리 위치 및 배향을 환경(2220)과 관련하여 식별하고 계속 추적하는 것에 의해, 초점의 방향이 확인될 수 있다. 또한, 초점의 방향을 확인하기 위해, 머리 추적 대신에 또는 그에 부가하여, 눈 추적이 사용될 수 있다.
도 3은 안경다리(102) 및 코 받침(104)을 포함하는 프레임의 일부분을 포함하는 헤드 마운티드 디스플레이 디바이스(2)의 일부분의 평면도를 나타낸 것이다. 헤드 마운티드 디스플레이 디바이스(2)의 우측만이 도시되어 있다. 헤드 마운티드 디스플레이 디바이스(2)의 전방에는 비디오 및 정지 영상들을 캡처할 수 있는 물리적 환경을 향해 있는 카메라(113)가 있다. 이하에서 기술되는 바와 같이, 그 영상들은 처리 유닛(4)으로 전송된다.
하나의 실시예에서, 물리적 환경을 향해 있는 카메라(113)는 장면의 깊이 영상을 캡처할 수 있는 깊이 카메라이다. 깊이 영상은 캡처된 장면의 2차원(2D) 픽셀 영역을 포함할 수 있고, 여기서 2D 픽셀 영역 내의 각각의 픽셀은 캡처된 장면 내의 객체와 카메라 사이의 거리(단위: 예를 들어, 센티미터, 밀리미터 등)와 같은 깊이 값을 나타낼 수 있다. 예를 들어, 깊이 카메라는 가시 영상 센서(visible image sensor)의 전방에 IR 조명 투과기(IR illuminator transmitter) 및 핫 미러(hot mirror)와 같은 고온 반사면(hot reflecting surface)을 포함할 수 있고, 가시 영상 센서는 가시광을 통과시키고 조명기에 의해 투과되는 파장 범위 내의 반사된 IR 방사를 CCD 또는 다른 유형의 깊이 센서로 지향시킨다. 센서들로부터의 데이터는 처리를 위해 처리 유닛(4) 또는 허브 컴퓨팅 시스템(12)로 송신될 수 있다. 처리는 사용자의 현실 세계 시야를 식별하고 지도 제작한다. 그에 부가하여, 물리적 환경을 향해 있는 카메라(113)는 또한 주변광을 측정하기 위한 광 측정기(light meter)를 포함할 수 있다.
헤드 마운티드 디스플레이 디바이스(2)의 프레임의 일부분은 (하나 이상의 렌즈들을 포함하는) 디스플레이를 둘러싸고 있을 것이다. 헤드 마운티드 디스플레이 디바이스(2)의 구성요소들을 보여주기 위해, 디스플레이를 둘러싸고 있는 프레임의 일부분이 도시되어 있지 않다. 디스플레이는 도광체 광학 요소(light-guide optical element)(112), 불투명도 필터(opacity filter)(114), 투시형 렌즈(see-through lens)(116) 및 투시형 렌즈(118)를 포함한다. 하나의 실시예에서, 불투명도 필터(114)는 투시형 렌즈(116)의 후방에 있고 그와 정렬되어 있으며, 도광체 광학 요소(112)는 불투명도 필터(114)의 후방에 있고 그와 정렬되어 있으며, 투시형 렌즈(118)는 도광체 광학 요소(112)의 후방에 있고 그와 정렬되어 있다. 투시형 렌즈들(116 및 118)은 안경에서 사용되는 표준 렌즈이고, 임의의 처방에 따라(처방 없음을 포함함) 제조될 수 있다. 하나의 실시예에서, 투시형 렌즈들(116 및 118)은 가변 처방 렌즈(variable prescription)로 대체될 수 있다. 일부 실시예들에서, 헤드 마운티드 디스플레이 디바이스(2)는 하나의 투시형 렌즈만을 포함하거나 투시형 렌즈를 포함하지 않을 것이다. 다른 대안에서, 처방 렌즈가 도광체 광학 요소(112) 내부에 들어갈 수 있다. 불투명도 필터(114)는 가상 영상의 콘트라스트를 향상시키기 위해 (픽셀별로 또는 균일하게) 자연 광을 필터링 제거한다. 도광체 광학 요소(112)는 인공 광(artificial light)을 눈으로 보낸다. 불투명도 필터(114) 및 도광체 광학 요소(112)의 추가 상세가 이하에 제공된다.
(하나의 실시예에서) 가상 영상을 투사하기 위한 마이크로 디스플레이 어셈블리(120) 및 마이크로 디스플레이(120)로부터의 영상들을 도광체 광학 요소(112) 내로 지향시키기 위한 렌즈(122)를 포함하는 영상 소스가 안경다리(102)에 또는 그의 내부에 탑재되어 있다. 하나의 실시예에서, 렌즈(122)는 평행화 렌즈(collimating lens)이다.
제어 회로(136)는 헤드 마운티드 디스플레이 디바이스(2)의 다른 구성요소들을 지원하는 다양한 전자 회로를 제공한다. 제어 회로(136)의 추가 상세들은 도 4a 및 도 4b와 관련하여 이하에서 제공된다. 이어폰(130), 관성 및/또는 자기 센서들(132) 그리고 온도 센서(138)가 안경다리(102) 내부에 있거나 안경다리(102)에 탑재되어 있다. 하나의 실시예에서, 관성 및 자기 센서들(132)은 3축 자력계(132A), 3축 자이로(132B), 및 3축 가속도계(132C)를 포함한다(도 4a를 참조). 관성 및/또는 자기 센서들은 헤드 마운티드 디스플레이 디바이스(2)의 위치, 배향, 및 급가속을 감지하기 위한 것이다.
마이크로 디스플레이(120)는 영상을 렌즈(122)를 통해 투사한다. 마이크로 디스플레이(120)를 구현하기 위해 사용될 수 있는 다른 영상 발생 기술들이 있다. 예를 들어, 마이크로 디스플레이(120)는 광원이 백색광으로 백라이팅되는 광학적 활성 물질(optically active material)에 의해 변조되는 투과형 투사 기술을 사용하여 구현될 수 있다. 이 기술들은 보통 강력한 백라이트 및 높은 광 에너지 밀도를 갖는 LCD 유형 디스플레이를 사용하여 구현된다. 마이크로 디스플레이(120)는 또한 외부 광이 반사되어 광학적 활성 물질에 의해 변조되는 반사 기술을 사용하여 구현될 수 있다. 기술에 따라, 백색 광원 또는 RGB 광원 중 어느 하나에 의해, 조명이 전방으로 비춰진다. DLP(digital light processing), LCOS(liquid crystal on silicon) 및 Qualcomm, Inc.로부터의 Mirasol® 디스플레이 기술 모두는 대부분의 에너지가 변조된 구조물(modulated structure)로부터 멀어지는 쪽으로 반사되기 때문에 효율적인 반사 기술의 예이고 본 명세서에 기술된 시스템에서 사용될 수 있다. 그에 부가하여, 광이 디스플레이에 의해 발생되는 발광 기술(emissive technology)을 사용하여 마이크로 디스플레이(120)가 구현될 수 있다. 예를 들어, Micro vision, Inc.으로부터의 PicoP™ 디스플레이 엔진은 레이저 신호를, 마이크로 미러 조정(micro mirror steering)에 의해 투과 요소로서 기능하는 작은 스크린 상으로 방출하거나 직접 눈 쪽으로 보낸다(예컨대, 레이저).
도광체 광학 요소(112)는 마이크로 디스플레이(120)로부터의 광을 헤드 마운티드 디스플레이 디바이스(2)를 착용하고 있는 사용자의 눈(140) 쪽으로 투과시킨다. 도광체 광학 요소(112)는 또한, 화살표(142)로 나타낸 바와 같이, 헤드 마운티드 디스플레이 디바이스(2)의 전방으로부터의 광이 도광체 광학 요소(112)를 통해 눈(140) 쪽으로 투과될 수 있게 하고, 그에 의해, 마이크로 디스플레이(120)로부터 가상 영상을 수신하는 것에 부가하여, 사용자가 헤드 마운티드 디스플레이 디바이스(2)의 전방에 있는 공간을 실제로 직접 볼 수 있게 한다. 이와 같이, 도광체 광학 요소(112)의 벽은 투시형이다. 도광체 광학 요소(112)는 제1 반사면(124)(예컨대, 거울 또는 다른 표면)을 포함한다. 마이크로 디스플레이(120)로부터의 광은 렌즈(122)를 통과하여 반사면(124)에 입사하게 된다. 반사면(124)은, 광이 내부 반사에 의해 도광체 광학 요소(112)를 구성하는 평면 기판 내부에 포획되도록, 마이크로 디스플레이(120)로부터의 입사광을 반사시킨다. 기판의 표면들로부터의 몇 번의 반사 후에, 포획된 광파들은 선택적 반사면들(126)의 어레이에 도달한다. 유의할 점은, 도면의 혼잡을 방지하기 위해, 5 개의 반사면들 중 하나만이 126으로 표시되어 있다는 것이다. 반사면들(126)은 기판으로부터 그 반사면들에 입사하는 광파들을 사용자의 눈(140) 안으로 결합시킨다. 상이한 광선들이 진행하여 기판의 내부로부터 상이한 각도들로 반사하기 때문에, 상이한 광선들이 다양한 반사면들(126)에 상이한 각도들로 충돌할 것이다. 따라서, 상이한 광선들이 기판으로부터 반사면들 중 상이한 것들에 의해 반사될 것이다. 어느 광선들이 어느 반사면(126)에 의해 기판으로부터 반사될 것인지의 선택은 반사면들(126)의 적절한 각도를 선택하는 것에 의해 이루어진다. 하나의 실시예에서, 각각의 눈은 그 자신의 도광체 광학 요소(112)를 가질 것이다. 헤드 마운티드 디스플레이 디바이스가 2 개의 도광체 광학 요소들을 가질 때, 각각의 눈은 양 눈에 동일한 영상을 디스플레이하거나 2 개의 눈에 상이한 영상들을 디스플레이할 수 있는 그 자신의 마이크로 디스플레이(120)를 가질 수 있다. 다른 실시예에서, 광을 양 눈 안으로 반사시키는 하나의 도광체 광학 요소가 있을 수 있다.
도광체 광학 요소(112)와 정렬되어 있는 불투명도 필터(114)는 자연 광을, 균일하게 또는 픽셀별로, 도광체 광학 요소(112)를 통과하지 못하게 선택적으로 차단시킨다. 하나의 실시예에서, 불투명도 필터는 투시형 LCD 패널, 전기 변색 필름(electro chromic film), PDLC(Polymer dispersed Liquid Crystal), 또는 불투명도 필터로서 역할할 수 있는 유사한 디바이스일 수 있다. 이러한 투시형 LCD 패널은 종래의 LCD로부터 기판, 백라이트 및 확산기(diffuser)의 다양한 층들을 제거하는 것에 의해 획득될 수 있다. LCD 패널은 광이 액정을 통과할 수 있게 하는 하나 이상의 광 투과 LCD 칩들을 포함할 수 있다. 이러한 칩들은, 예를 들어, LCD 프로젝터들에서 사용된다.
불투명도 필터(114)는 픽셀들의 조밀한 격자를 포함할 수 있고, 여기서 각각의 픽셀의 광 투과율은 최소 투과율과 최대 투과율 사이에서 개별적으로 제어가능하다. 0부터 100%까지의 투과율 범위가 이상적이지만, 더 제한된 범위들도 허용 가능하다. 일례로서, LCD의 해상도까지 픽셀당 약 50% 내지 90%의 불투명도 범위를 제공하기 위해 2 개 이하의 편광 필터들을 갖는 단색 LCD 패널로 충분하다. 최소 50%에서, 렌즈는 약간 착색된 외관을 가질 것이고, 이는 그런대로 괜찮다. 100% 투과율은 완벽하게 투명한 렌즈를 나타낸다. “알파” 스케일이 0부터 100%까지 규정될 수 있고, 여기서 0%는 광이 통과할 수 없게 하고 100%는 모든 광이 통과할 수 있게 한다. 이하에서 기술되는 불투명도 필터 제어 회로(224)에 의해 각각의 픽셀에 대해 알파의 값이 설정될 수 있다.
현실 세계 객체들에 대한 대용물들로 z-버퍼링(z-buffering)을 한 후에, 알파 값들의 마스크가 렌더링 파이프라인으로부터 사용될 수 있다. 본 시스템이 증강 현실 디스플레이를 위한 장면을 렌더링할 때, 본 시스템은 어느 현실 세계 객체들이 어느 가상 객체들의 전방에 있는지에 주목한다. 가상 객체가 현실 세계 객체의 전방에 있는 경우, 불투명도가 가상 객체의 커버리지 영역(coverage area)에 대해 온이다. 가상 객체가 (가상적으로) 현실 세계 객체의 후방에 있는 경우, 불투명도가 오프임은 물론, 그 픽셀에 대해 임의의 색이며, 따라서 사용자는 실제 광의 그 대응하는 영역(크기가 한 픽셀 이상임)에 대한 현실 세계 객체를 볼 것이다. 커버리지는 픽셀 단위로(on a pixel-by-pixel basis) 되어 있을 것이고, 따라서 본 시스템은 가상 객체의 일부가 현실 세계 객체의 전방에 있는 경우, 가상 객체의 일부가 현실 세계 객체의 후방에 있는 경우, 및 가상 객체의 일부가 현실 세계 객체와 일치하는 경우를 처리할 수 있을 것이다. 낮은 비용, 전력 및 중량에서 0%부터 100% 불투명도에 이를 수 있는 디스플레이가 이 용도에 가장 바람직하다. 더욱이, 넓은 시야를 제공하기 위해, 불투명도 필터가, 예컨대, 컬러 LCD에 의해 또는 유기 LED와 같은 다른 디스플레이에 의해, 컬러로 렌더링될 수 있다.
헤드 마운티드 디스플레이 디바이스(2)는 또한 사용자의 눈의 위치를 추적하는 시스템을 포함할 수 있다. 예를 들어, 헤드 마운티드 디스플레이 디바이스(2)는 눈 추적 조명 디바이스(134A)(도 4a를 참조) 및 눈 추적 카메라(134B)(도 4a를 참조)를 포함하게 될 눈 추적 어셈블리(134)를 포함한다. 하나의 실시예에서, 눈 추적 조명 광원(134A)은 눈 쪽으로 적외선(IR) 광을 방출하는 하나 이상의 IR 방출기를 포함한다. 눈 추적 카메라(134B)는 반사된 IR 광을 감지하는 하나 이상의 카메라들을 포함한다. 각막의 반사를 검출하는 공지의 영상 기법들에 의해 동공의 위치가 식별될 수 있다. 이러한 기법은 추적 카메라에 대한 눈의 중앙의 위치를 찾아낼 수 있다. 일반적으로, 눈 추적은 눈의 영상을 획득하는 것 및 컴퓨터 비전(computer vision) 기법들을 사용하여 안와(eye socket) 내의 동공의 위치를 결정하는 것을 포함한다. 하나의 실시예에서, 눈이 보통 일제히 움직이기 때문에, 하나의 눈의 위치를 추적하는 것으로 충분하다. 그렇지만, 각각의 눈을 개별적으로 추적하는 것이 가능하다.
하나의 실시예에서, 헤드 마운티드 디스플레이 디바이스(2)의 렌즈의 각각의 코너에 하나씩 IR LED 및 IR 광 검출기가 있도록 직사각형 배열로 눈 추적 조명 디바이스(134A)는 4 개의 IR LED들을 사용할 것이고 눈 추적 카메라(134B)는 4 개의 IR 광 검출기들(도시되지 않음)을 사용할 것이다. LED들로부터의 광이 눈으로부터 반사한다. 4 개의 IR 광 검출기들 각각에서 검출되는 적외선 광의 양은 동공 방향을 결정한다. 즉, 눈에서의 백색 대 흑색의 양은 그 특정의 광 검출기에 대한 눈으로부터 반사되는 광의 양을 결정할 것이다. 이와 같이, 광 검출기는 눈에서의 백색 또는 흑색의 양을 측정할 것이다. 4 개의 샘플들로부터, 본 시스템은 눈의 방향을 결정할 수 있다.
다른 대안은 앞서 논의된 바와 같은 4 개의 적외선 LED들과 헤드 마운티드 디스플레이 디바이스(2)의 렌즈의 측면에 있는 단지 하나의 적외선 CCD를 사용하는 것이다. CCD가 안경 프레임으로부터 보이는 눈의 최대 75%를 촬영할 수 있도록, CCD는 소형 거울 및/또는 렌즈[어안 렌즈(fish eye lens)]를 사용할 것이다. 앞서 논의된 것과 거의 유사하게, CCD는 이어서 영상을 감지하고 컴퓨터 비전을 사용하여 눈 위치를 찾아낼 것이다. 4 개 초과 또는 미만의 IR 송신기들 및/또는 4 개 초과 또는 미만의 IR 센서들이 또한 사용될 수 있다.
눈의 방향을 추적하는 다른 실시예는 전하 추적(charge tracking)에 기초하고 있다. 이 개념은 망막이 측정가능한 양전하를 지니고 각막이 음전하를 가진다는 관찰에 기초하고 있다. 센서들은 눈이 이리저리 움직이는 동안 전위(electrical potential)를 검출하고 눈이 무엇을 하고 있는지를 실시간으로 효과적으로 판독하기 위해 사용자의 귀에[이어폰(130) 근방에] 탑재되어 있다. 눈을 추적하기 위한 다른 실시예들이 또한 사용될 수 있다.
도 3은 헤드 마운티드 디스플레이 디바이스(2)의 절반만을 나타낸 것이다. 전체 헤드 마운티드 디스플레이 디바이스(2)는 (적용 가능한 경우) 다른 세트 렌즈, 다른 불투명도 필터, 다른 도광체 광학 요소, 다른 마이크로 디스플레이, 다른 렌즈, 방을 향해 있는 카메라, 눈 추적 어셈블리, 마이크로 디스플레이, 이어폰, 및 온도 센서를 포함할 것이다.
도 4a는 헤드 마운티드 디스플레이 디바이스(2)의 다양한 구성요소들을 나타낸 블록도이다. 도 3을 참조하면, 도 4a에 예시된 일부 구성요소들이 도 3에 나타낸 실시예에 존재하지 않을 수 있다는 것을 잘 알 것이다. 도 4b는 도 1의 처리 유닛(4)의 다양한 구성요소들을 나타낸 블록도이다. 헤드 마운티드 디스플레이 디바이스(2)(그의 구성요소들이 도 4a에 도시되어 있음)는 최적화된 영상을 사용자[사용자(2222)]에게 디스플레이하는 데 사용된다. 그에 부가하여, 도 4a의 헤드 마운티드 디스플레이 디바이스 구성요소들은 사용자(2222)의 머리 위치 및 회전을 비롯한 다양한 조건들을 추적하는 많은 센서들을 포함할 수 있다. 헤드 마운티드 디스플레이 디바이스(2)는 처리 유닛(4)으로부터 가상 영상에 관한 명령어들을 수신할 것이고 센서 정보를 다시 처리 유닛(4)에 제공할 것이다. 처리 유닛(4)(그의 구성요소들이 도 4b에 도시되어 있음)은 헤드 마운티드 디스플레이 디바이스(2)로부터 그리고 또한 허브 컴퓨팅 디바이스(12)(도 1을 참조)로부터 감각 정보를 수신할 것이다. 그 정보에 기초하여, 처리 유닛(4)은 가상 영상을 언제 어디서 사용자에게 제공할지를 결정하고 그에 따라 명령어들을 도 4a의 헤드 마운티드 디스플레이 디바이스로 송신할 것이다.
유의할 점은 그 디바이스들 각각이 2 개씩(헤드 마운티드 디스플레이 디바이스(2)의 좌측에 하나 그리고 우측에 하나) 있을 수 있다는 것을 나타내기 위해, 도 4a의 구성요소들 중 일부[예컨대, 후방 카메라(113), 눈 추적 카메라(134B), 마이크로 디스플레이(120 또는 153), 불투명도 필터(114), 눈 추적 조명(134A) 및 이어폰(130)]가 음영 처리되어 나타내어져 있다는 것이다. 도 4a는 전력 관리 회로(202)와 통신하는 제어 회로(200)를 나타내고 있다. 제어 회로(200)는 프로세서(210), 메모리(214)(예컨대, DRAM)와 통신하는 메모리 제어기(212), 카메라 인터페이스(216), 카메라 버퍼(218), 디스플레이 구동기(display driver)(220), 디스플레이 포맷터(display formatter)(222), 타이밍 발생기(226), 디스플레이 출력 인터페이스(display out interface)(228), 및 디스플레이 입력 인터페이스(display in interface)(230)를 포함한다. 하나의 실시예에서, 제어 회로(200)의 구성요소들 모두는 전용 라인(dedicated line)들 또는 하나 이상의 버스들을 통해 서로 통신한다. 다른 실시예에서, 제어 회로(200)의 구성요소들 각각은 프로세서(210)와 통신한다. 카메라 인터페이스(216)는 방을 향해 있는 2 개의 카메라들(113)에 대한 인터페이스를 제공하고, 방을 향해 있는 카메라들로부터 수신되는 영상들을 카메라 버퍼(218)에 저장한다. 디스플레이 구동기(220)는 마이크로 디스플레이(120 또는 153)를 구동할 것이다. 디스플레이 포맷터(222)는 마이크로 디스플레이(120 또는 153) 상에 디스플레이되는 가상 영상에 관한 정보를 불투명도 필터(114)를 제어하는 불투명도 제어 회로(224)에 제공한다. 타이밍 발생기(226)는 시스템에 대한 타이밍 데이터를 제공하기 위해 사용된다. 디스플레이 출력 인터페이스(228)는 방을 향해 있는 카메라들(113)로부터의 영상들을 처리 유닛(4)에 제공하기 위한 버퍼이다. 디스플레이 입력 인터페이스(230)는 마이크로 디스플레이(120) 상에 디스플레이될 가상 영상과 같은 영상들을 수신하기 위한 버퍼이다. 디스플레이 출력 인터페이스(228) 및 디스플레이 입력 인터페이스(230)는 처리 유닛(4)에 대한 인터페이스인 밴드 인터페이스(band interface)(232)와 통신한다. 디스플레이 구동기(220)는 또한 도 3c 및 도 3d의 상기 실시예에 따라 촛점이 맞춰진 영상을 디스플레이하도록 미러(166)를 위치시키기 위해 미러 제어기(162)를 구동할 수 있다.
전력 관리 회로(202)는 전압 조정기(234), 눈 추적 조명 구동기(236), 오디오 DAC 및 증폭기(238), 마이크 전치 증폭기 및 오디오 ADC(240), 온도 센서 인터페이스(242) 및 클럭 발생기(244)를 포함한다. 전압 조정기(234)는 처리 유닛(4)으로부터 밴드 인터페이스(232)를 통해 전력을 받고 그 전력을 헤드 마운티드 디스플레이 디바이스(2)의 다른 구성요소들에 제공한다. 눈 추적 조명 구동기(236)는, 앞서 기술된 바와 같이, 눈 추적 조명(134A)을 위한 IR 광원을 제공한다. 오디오 DAC 및 증폭기(238)는 이어폰(130)으로부터 오디오 정보를 수신한다. 마이크 전치 증폭기 및 오디오 ADC(240)는 마이크(110)에 대한 인터페이스를 제공한다. 온도 센서 인터페이스(242)는 온도 센서(138)에 대한 인터페이스이다. 전력 관리 유닛(202)은 또한 3축 자력계(132A), 3축 자이로(132B) 및 3축 가속도계(132C)에 전력을 제공하고 그로부터 다시 데이터를 수신한다.
도 4b는 처리 유닛(4)의 다양한 구성요소들을 나타낸 블록도이다. 도 4b는 전력 관리 회로(306)와 통신하는 제어 회로(304)를 나타내고 있다. 제어 회로(304)는 CPU(central processing unit)(320), GPU(graphics processing unit)(322), 캐시(324), RAM(326), 메모리(330)(예컨대, DRAM)와 통신하는 메모리 제어기(328), 플래시 메모리(334)(또는 다른 유형의 비휘발성 저장소)와 통신하는 플래시 메모리 제어기(332), 밴드 인터페이스(302) 및 밴드 인터페이스(232)를 통해 헤드 마운티드 디스플레이 디바이스(2)와 통신하는 디스플레이 출력 버퍼(display out buffer)(336), 밴드 인터페이스(302) 및 밴드 인터페이스(232)를 통해 헤드 마운티드 디스플레이 디바이스(2)와 통신하는 디스플레이 입력 버퍼(display in buffer)(338), 마이크에 연결하기 위해 외부 마이크 커넥터(342)와 통신하는 마이크 인터페이스(340), 무선 통신 디바이스(346)에 연결하기 위한 PCI Express 인터페이스, 및 USB 포트(들)(348)를 포함한다. 하나의 실시예에서, 무선 통신 디바이스(346)는 Wi-Fi 지원 통신 디바이스, 블루투스 통신 디바이스, 적외선 통신 디바이스 등을 포함할 수 있다. USB 포트는, 데이터 또는 소프트웨어를 처리 유닛(4)에 로드하는 것은 물론, 처리 유닛(4)을 충전시키기 위해, 처리 유닛(4)을 허브 컴퓨팅 디바이스(12)에 도킹시키는 데 사용될 수 있다. 하나의 실시예에서, CPU(320) 및 GPU(322)는 가상 영상들을 언제, 어디서 그리고 어떻게 사용자의 뷰에 삽입해야 하는지를 결정하기 위한 주된 수단이다. 추가 상세들이 이하에서 제공된다.
전력 관리 회로(306)는 클럭 발생기(360), 아날로그-디지털 변환기(262), 배터리 충전기(364), 전압 조정기(366), 헤드 마운티드 디스플레이 전원(376), 및 온도 센서(374)[처리 유닛(4)의 손목 밴드 상에 위치해 있음]와 통신하는 온도 센서 인터페이스(372)를 포함한다. 아날로그-디지털 변환기(362)는 AC 전원을 받아서 시스템에 대한 DC 전원을 생성하기 위한 충전 잭(370)에 연결되어 있다. 전압 조정기(366)는 시스템에 전력을 공급하기 위해 배터리(368)와 통신한다. 배터리 충전기(364)는 충전 잭(370)으로부터 전력을 받을 때 [전압 조정기(366)를 통해] 배터리(368)를 충전시키는 데 사용된다. HMD 전원(376)은 전력을 헤드 마운티드 디스플레이 디바이스(2)에 제공한다.
앞서 기술된 시스템은, 가상 영상이 현실 세계 객체의 뷰를 대체하도록, 가상 영상을 사용자의 시야 내에 삽입하도록 구성될 것이다. 대안적으로, 현실 세계 객체의 영상을 대체함이 없이 가상 영상이 삽입될 수 있다. 다양한 실시예들에서, 가상 영상이 대체되는 객체 또는 영상이 삽입되는 환경에 기초하여 적절한 배향, 크기 및 형상과 일치하도록 조정될 것이다. 그에 부가하여, 가상 영상이 반사성 및 음영을 포함하도록 조정될 수 있다. 하나의 실시예에서, 헤드 마운티드 디스플레이 디바이스(2), 처리 유닛(4) 및 허브 컴퓨팅 디바이스(12)는, 디바이스들 각각이 언제, 어디서 그리고 어떻게 가상 영상들을 삽입할지를 결정하기 위한 데이터를 획득하기 위해 사용되는 센서들의 일부를 포함하기 때문에, 협력한다. 하나의 실시예에서, 언제, 어디서 그리고 어떻게 가상 영상을 삽입할지를 결정하는 계산들은 허브 컴퓨팅 디바이스(12)에 의해 수행된다. 다른 실시예에서, 그 계산들이 처리 유닛(4)에 의해 수행된다. 다른 실시예에서, 계산들 중 일부는 허브 컴퓨팅 디바이스(12)에 의해 수행되는 반면, 다른 계산들은 처리 유닛(4)에 의해 수행된다. 다른 실시예들에서, 계산들이 헤드 마운티드 디스플레이 디바이스(2)에 의해 수행될 수 있다.
하나의 예시적인 실시예에서, 허브 컴퓨팅 디바이스(12)는 사용자가 있는 환경의 모델을 생성하고 그 환경에 있는 다양한 움직이는 객체들을 추적할 것이다. 그에 부가하여, 허브 컴퓨팅 디바이스(12)는 헤드 마운티드 디스플레이 디바이스(2)의 위치 및 배향을 추적한다. 모델 및 추적 정보가 허브 컴퓨팅 디바이스(12)로부터 처리 유닛(4)에 제공된다. 센서 정보가 헤드 마운티드 디스플레이 디바이스(2)로부터도 획득될 수 있다. 처리 유닛(4)은 이어서 헤드 마운티드 디스플레이 디바이스(2)로부터 수신하는 부가의 센서 정보를 사용하여, 사용자의 시야를 개선시키고, 언제, 어디서 그리고 어떻게 가상 영상을 삽입할지에 관한 명령어들을 헤드 마운티드 디스플레이 디바이스(2)에 제공한다.
도 5는 캡처 디바이스를 갖는 허브 컴퓨팅 시스템(12)의 예시적인 실시예를 나타낸 것이다. 하나의 실시예에서, 캡처 디바이스들(20A 및 20B)은 동일한 구조이고, 따라서 도 5는 캡처 디바이스(20A)만을 나타내고 있다. 예시적인 실시예에 따르면, 캡처 디바이스(20A)는, 예를 들어, 비행 시간, 구조화된 광(structured light), 입체 영상 등을 비롯한 임의의 적당한 기법을 통해, 깊이 값들을 포함할 수 있는 깊이 영상을 비롯한 깊이 정보를 갖는 비디오를 캡처하도록 구성될 수 있다. 하나의 실시예에 따르면, 캡처 디바이스(20)는 깊이 정보를 "Z 층들", 즉 깊이 카메라로부터 그의 시선(line of sight)을 따라 뻗어 있는 Z 축에 수직일 수 있는 층들로 구성할 수 있다.
도 5에 도시된 바와 같이, 캡처 디바이스(20)는 카메라 구성요소(423)를 포함할 수 있다. 예시적인 실시예에 따르면, 카메라 구성요소(423)는 장면의 깊이 영상을 캡처할 수 있는 깊이 카메라일 수 있거나 그를 포함할 수 있다. 깊이 영상은 캡처된 장면의 2차원(2D) 픽셀 영역을 포함할 수 있고, 여기서 2D 픽셀 영역 내의 각각의 픽셀은 캡처된 장면 내의 객체와 카메라 사이의 거리(단위: 예를 들어, 센티미터, 밀리미터 등)와 같은 깊이 값을 나타낼 수 있다.
카메라 구성요소(23)는 장면의 깊이 영상을 캡처하는 데 사용될 수 있는 적외선(IR) 광 구성요소(425), 3차원(3D) 카메라(426), 및 RGB(시각 영상) 카메라(428)를 포함할 수 있다. 예를 들어, 비행 시간 분석에서, 캡처 디바이스(20A)의 IR 광 구성요소(425)는 장면 상으로 적외선 광을 방출할 수 있고, 이어서, 예를 들어, 3D 카메라(426) 및/또는 RGB 카메라(428)를 사용하여 장면 내의 하나 이상의 목표물들 및 객체들의 표면으로부터 후방 산란된 광을 검출하기 위해 센서들(일부 실시예들에서, 도시되지 않은 센서들을 포함함)을 사용할 수 있다. 일부 실시예들에서, 나가는 광 펄스와 대응하는 들어오는 광 펄스 간의 시간이 측정되고 캡처 디바이스(20A)로부터 장면 내의 목표물들 또는 객체들 상의 특정의 위치까지의 물리적 거리를 결정하는 데 사용될 수 있도록 펄스형 적외선 광(pulsed infrared light)이 사용될 수 있다. 그에 부가하여, 다른 예시적인 실시예들에서, 위상 천이를 결정하기 위해 나가는 광파의 위상이 들어오는 광파의 위상과 비교될 수 있다. 위상 천이는 이어서 캡처 디바이스로부터 목표물들 또는 객체들 상의 특정의 위치까지의 물리적 거리를 결정하는 데 사용될 수 있다.
다른 예시적인 실시예에 따르면, 예를 들어, 셔터 방식의 광 펄스 영상화(shuttered light pulse imaging)를 비롯한 다양한 기법들을 통해 시간에 따라 반사된 광 빔의 강도를 분석함으로써 캡처 디바이스(20A)로부터 목표물들 또는 객체들 상의 특정의 위치까지의 물리적 거리를 간접적으로 결정하기 위해 비행 시간 분석이 사용될 수 있다.
다른 예시적인 실시예에서, 캡처 디바이스(20A)는 깊이 정보를 캡처하기 위해 구조화된 광을 사용할 수 있다. 이러한 분석에서, 패턴화된 광(즉, 격자 패턴, 줄무늬 패턴, 또는 다른 패턴과 같은 기지의 패턴으로서 디스플레이되는 광)이, 예를 들어, IR 광 구성요소(424)를 통해 장면 상으로 투사될 수 있다. 장면 내의 하나 이상의 목표물들 또는 객체들의 표면에 부딪칠 때, 패턴이 그에 응답하여 변형될 수 있다. 패턴의 이러한 변형은, 예를 들어, 3D 카메라(426) 및/또는 RGB 카메라(428)(및/또는 다른 센서)에 의해 캡처될 수 있고, 이어서 캡처 디바이스로부터 목표물들 또는 객체들 상의 특정의 위치까지의 물리적 거리를 결정하기 위해 분석될 수 있다. 일부 구현들에서, IR 광 구성요소(425)가 카메라들(425 및 426)로부터 변위되어 있고, 따라서 카메라들(425 및 426)로부터의 거리를 결정하기 위해 삼각측량이 사용될 수 있다. 일부 구현들에서, 캡처 디바이스(20A)는 IR 광을 감지하기 위한 전용 IR 센서, 또는 IR 필터를 갖는 센서를 포함할 것이다.
다른 실시예에 따르면, 캡처 디바이스(20A)는 깊이 정보를 발생시키기 위해 분석될 수 있는 시각적 입체 데이터를 획득하기 위해 상이한 각도들로부터 장면을 볼 수 있는 2개 이상의 물리적으로 분리된 카메라들을 포함할 수 있다. 다른 유형의 깊이 영상 센서들이 또한 깊이 영상을 생성하는 데 사용될 수 있다.
캡처 디바이스(20A)는 소리를 수신하여 전기 신호로 변환할 수 있는 트랜스듀서 또는 센서를 포함하는 마이크(430)를 추가로 포함할 수 있다. 마이크(430)는 허브 컴퓨팅 시스템(12)에 의해서도 제공될 수 있는 오디오 신호들을 수신하는 데 사용될 수 있다.
예시적인 실시예에서, 캡처 디바이스(20A)는 영상 카메라 구성요소(423)와 통신할 수 있는 프로세서(432)를 추가로 포함할 수 있다. 프로세서(432)는, 예를 들어, 깊이 영상을 수신하고, 적절한 데이터 포맷(data format)(예컨대, 프레임)을 발생시키며, 데이터를 허브 컴퓨팅 시스템(12)으로 전송하기 위한 명령어들을 비롯한 명령어들을 실행할 수 있는 표준화된 프로세서, 특수 프로세서, 마이크로프로세서 등을 포함할 수 있다.
캡처 디바이스(20A)는 프로세서(432)에 의해 실행될 수 있는 명령어들, 3D 카메라 및/또는 RGB 카메라에 의해 캡처된 영상들 또는 영상들의 프레임들, 또는 임의의 다른 적당한 정보, 영상들 등을 저장할 수 있는 메모리(434)를 추가로 포함할 수 있다. 예시적인 실시예에 따르면, 메모리(434)는 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 캐시, 플래시 메모리, 하드 디스크, 또는 임의의 다른 적당한 저장 구성요소를 포함할 수 있다. 도 5에 도시된 바와 같이, 하나의 실시예에서, 메모리(434)는 영상 캡처 구성요소(423) 및 프로세서(432)와 통신하는 별개의 구성요소일 수 있다. 다른 실시예에 따르면, 메모리(434)는 프로세서(432) 및/또는 영상 캡처 구성요소(422) 내에 통합될 수 있다.
캡처 디바이스들(20A 및 20B)는 통신 링크(436)를 통해 허브 컴퓨팅 시스템(12)과 통신한다. 통신 링크(436)는, 예를 들어, USB 연결, Firewire 연결, 이더넷 케이블 연결 등을 비롯한 유선 연결 및/또는 무선 802.11b, g, a, 또는 n 연결과 같은 무선 연결일 수 있다. 하나의 실시예에 따르면, 허브 컴퓨팅 시스템(12)은, 예를 들어, 통신 링크(436)를 통해 언제 장면을 캡처해야 하는지를 결정하는 데 사용될 수 있는 클럭을 캡처 디바이스(20)에 제공할 수 있다. 그에 부가하여, 캡처 디바이스(20A)는, 예를 들어, 3D 카메라(426) 및/또는 RGB 카메라(428)에 의해 캡처된 깊이 정보 및 시각(예컨대, RGB) 영상들을 통신 링크(436)를 통해 허브 컴퓨팅 시스템(12)에 제공한다. 하나의 실시예에서, 깊이 영상들 및 시각 영상들은 초당 30 프레임으로 전송되지만; 다른 프레임 레이트들이 사용될 수 있다. 허브 컴퓨팅 시스템(12)은 이어서, 예를 들어, 게임 또는 워드 프로세서와 같은 애플리케이션을 제어하기 위해 그리고/또는 아바타 또는 온스크린 캐릭터에 애니메이션 효과를 주기 위해, 모델, 깊이 정보 및 캡처된 영상들을 생성하여 사용할 수 있다.
허브 컴퓨팅 시스템(12)은 캡처 디바이스(20A)의 깊이 카메라 기능에 의해 검출 가능한 하나 이상의 사람들을 추적하기 위해 깊이 영상들을 사용하는 깊이 영상 처리 및 골격 추적 모듈(450)을 포함한다. 깊이 영상 처리 및 골격 추적 모듈(450)은 비디오 게임, 생산성 애플리케이션, 통신 애플리케이션 또는 다른 소프트웨어 애플리케이션 등일 수 있는 애플리케이션(453)에 추적 정보를 제공한다. 오디오 데이터 및 시각 영상 데이터가 또한 애플리케이션(452)과 깊이 영상 처리 및 골격 추적 모듈(450)에 제공된다. 애플리케이션(452)은 추적 정보, 오디오 데이터 및 시각 영상 데이터를 인식기 엔진(recognizer engine)(454)에 제공한다. 다른 실시예에서, 인식기 엔진(454)은 추적 정보를 깊이 영상 처리 및 골격 추적 모듈(450)로부터 직접 수신하고, 오디오 데이터 및 시각 영상 데이터를 캡처 디바이스들(20A 및 20B)로부터 직접 수신한다.
인식기 엔진(454)은 필터들(460, 462, 464, ..., 466)의 집합체와 연관되어 있고, 각각의 필터는 캡처 디바이스(20A 또는 20B)에 의해 검출 가능한 임의의 사람 또는 객체에 의해 수행될 수 있는 제스처, 행동 또는 조건에 관한 정보를 포함한다. 예를 들어, 사용자 또는 사용자들의 그룹이 하나 이상의 제스처들 또는 다른 행동들을 수행했을 때를 식별하기 위해, 캡처 디바이스(20A)로부터의 데이터가 필터들(460, 462, 464, ..., 466)에 의해 처리될 수 있다. 그 제스처들은 애플리케이션(452)의 다양한 제어들, 객체들 또는 조건들과 연관되어 있을 수 있다. 이와 같이, 허브 컴퓨팅 시스템(12)은, 객체들(사람들을 포함함)의 움직임을 해석하고 추적하기 위해, 필터들과 함께 인식기 엔진(454)을 사용할 수 있다.
캡처 디바이스(20A 및 20B)는 RGB 영상들(또는 다른 포맷들으로 된 또는 다른 색 공간들에서의 시각 영상들) 및 깊이 영상들을 허브 컴퓨팅 시스템(12)에 제공한다. 깊이 영상은 복수의 관찰된 픽셀들일 수 있고, 여기서 각각의 관찰된 픽셀은 관찰된 깊이 값을 가진다. 예를 들어, 깊이 영상은 캡처된 장면의 2차원(2D) 픽셀 영역을 포함할 수 있고, 여기서 2D 픽셀 영역 내의 각각의 픽셀은 캡처된 장면 내의 객체와 캡처 디바이스 간의 거리와 같은 깊이 값을 가질 수 있다. 허브 컴퓨팅 시스템(12)은 사용자 또는 객체의 움직임들을 추적하기 위해 RGB 영상들 및 깊이 영상들을 사용할 것이다. 예를 들어, 본 시스템은 깊이 영상들을 사용하여 사람의 골격을 추적할 것이다. 깊이 영상들을 사용하여 사람의 골격을 추적하기 위해 사용될 수 있는 많은 방법들이 있다.
인식기 엔진(454)은 제스처 또는 행동을 결정하기 위해 다수의 필터들(460, 462, 464, ..., 466)을 포함한다. 필터는 제스처, 행동 또는 조건을 규정하는 정보를, 그 제스처, 행동 또는 조건에 대한 파라미터들 또는 메타데이터와 함께, 포함한다. 예를 들어, 신체의 후방으로부터 신체의 전방으로의 하나의 손의 움직임을 포함하는 던지기는 신체의 후방으로부터 신체의 전방으로의 사용자의 하나의 손의 움직임을 나타내는 정보를 포함하는 제스처로서 구현될 수 있는데, 그 이유는 그 움직임이 깊이 카메라에 의해 캡처될 것이기 때문이다. 이어서 그 제스처(426)에 대해 파라미터들이 설정될 수 있다. 제스처가 던지기인 경우, 파라미터는 손이 도달해야만 하는 임계 속도, 손이 이동하는 거리(절대적 또는 사용자의 크기 전체에 대해 상대적), 및 제스처가 발생했다는 인식기 엔진에 의한 신뢰도 평가(confidence rating)일 수 있다. 제스처(426)에 대한 이 파라미터들은 애플리케이션들 간에, 단일 애플리케이션의 컨텍스트들 간에, 또는 하나의 애플리케이션의 하나의 컨텍스트 내에서 시간에 따라 변할 수 있다.
필터들은 모듈 방식(modular)이거나 교체 가능할 수 있다. 하나의 실시예에서, 필터는 다수의 입력들(그 입력들 각각은 유형을 가짐) 및 다수의 출력들(그 출력들 각각은 유형을 가짐)을 가진다. 제1 필터는, 인식기 엔진 아키텍처의 임의의 다른 측면을 변경함이 없이, 제1 필터와 동일한 수 및 유형의 입력들 및 출력들을 가지는 제2 필터로 대체될 수 있다. 예를 들어, 입력으로서 골격 데이터를 받고 필터와 연관된 제스처가 행해지고 있을 신뢰도 및 조종 각도를 출력하는 구동용 제1 필터가 있을 수 있다. 이 제1 구동 필터를 제2 구동 필터로 대체하고자 하는 경우 - 어쩌면 제2 구동 필터가 보다 효율적이고 보다 적은 수의 처리 자원들을 필요로 하기 때문임 -, 제2 필터가 그 동일한 입력들 및 출력들 - 골격 데이터 유형의 하나의 입력과 신뢰도 유형 및 각도 유형의 2개의 출력들 - 을 가지는 한, 제1 필터를 제2 필터로 대체하기만 함으로써 그렇게 할 수 있다.
필터가 파라미터를 가질 필요는 없다. 예를 들어, 사용자의 신장을 반환하는 "사용자 신장(user height)" 필터는 조정될 수 있는 어떤 파라미터들도 허용하지 않을 수 있다. 대안의 "사용자 신장" 필터는 조정 가능 파라미터들 - 사용자의 신장을 결정하는 데 사용자의 신발, 헤어스타일, 모자 및 자세를 고려해야 할지 여부 등 - 를 가질 수 있다.
필터에 대한 입력들은 사용자의 관절 위치에 관한 관절 데이터, 관절에서 만나는 뻐들에 의해 형성되는 각도, 장면으로부터의 RGB 컬러 데이터, 및 사용자의 상황의 변화율과 같은 것들을 포함할 수 있다. 필터로부터의 출력들은 주어진 제스처가 행해질 신뢰도, 제스처 움직임이 행해지는 속도, 및 제스처 움직임이 행해지는 시간과 같은 것들을 포함할 수 있다.
인식기 엔진(454)은 기능을 필터들에 제공하는 베이스 인식기 엔진(base recognizer engine)을 가질 수 있다. 하나의 실시예에서, 인식기 엔진(454)이 구현하는 기능은 인식된 제스처들 및 다른 입력을 추적하는 시간에 따른 입력 보관(input-over-time archive), 은닉 마코프 모델(Hidden Markov Model) 구현(모델링된 시스템이 마코프 프로세스 - 현재 상태가 미래 상태를 결정하는 데 사용되는 임의의 과거 상태 정보를 캡슐화하고 따라서 이 목적을 위해 어떤 다른 과거 상태 정보도 유지되어서는 안되는 프로세스 - 인 것으로 가정되고, 미지의 파라미터들 및 은닉 파라미터들 관찰 가능 데이터로부터 결정됨)은 물론, 제스처 인식의 특정의 인스턴스들을 해결하는 데 사용되는 다른 기능을 포함한다.
필터들(460, 462, 464, ..., 466)은 인식기 엔진(454) 상부에 로드되어 구현되며, 인식기 엔진(454)에 의해 모든 필터들(460, 462, 464, ..., 466)에 제공되는 서비스들을 이용할 수 있다. 하나의 실시예에서, 인식기 엔진(454)은 데이터를 수신하여, 그 데이터가 임의의 필터(460, 462, 464, ..., 466)의 요구사항들을 충족시키는지를 판정한다. 입력을 파싱하는 것과 같은 이 제공된 서비스들이 각각의 필터(460, 462, 464, ..., 466)에 의해서라기보다는 인식기 엔진(454)에 의해 한번 제공되기 때문에, 이러한 서비스는 어떤 기간에 필터마다 한번씩이 아니라 그 기간에 한번 처리되기만 하면 되며, 따라서 제스처들을 결정하는 데 사용되는 처리가 감소된다.
애플리케이션(452)은 인식기 엔진(454)에 의해 제공되는 필터들(460, 462, 464, ..., 466)을 사용할 수 있거나, 인식기 엔진(454)에 플러그 인(plug in)되어 있는 그 자신의 필터를 제공할 수 있다. 하나의 실시예에서, 모든 필터들은 이 플러그 인 특성을 가능하게 하기 위해 공통의 인터페이스를 가진다. 게다가, 모든 필터들은 파라미터들을 이용할 수 있고, 따라서 이하에서의 단일 제스처 도구가 필터 시스템 전체를 디버그하고 조정하는 데 사용될 수 있다.
하나의 실시예에서, 허브 컴퓨팅 시스템(12)은 허브 컴퓨팅 시스템(12)과 상호작용하는 하나 이상의 사용자들에 관련된 사용자 관련 정보를 포함하는 사용자 프로필 데이터베이스(470)를 포함한다. 하나의 예에서, 사용자 관련 정보는 사용자의 표현된 선호 사항들, 사용자의 친구들의 목록, 사용자의 선호된 활동들, 사용자의 리마인더들의 목록, 사용자의 소셜 그룹들, 사용자의 현재 위치, 사용자의 환경에 있는 객체들과 상호작용하려는 사용자의 과거 의도들, 및 다른 사용자-생성 콘텐츠(사용자의 사진, 영상 및 녹화된 비디오 등)와 같은 사용자에 관련된 정보를 포함한다. 하나의 실시예에서, 사용자 관련 정보는 사용자의 소셜 네트워킹 사이트들, 주소록, 이메일 데이터, 인스턴스 메시징 데이터, 사용자 프로필들 또는 인터넷 상의 다른 소스들과 같은 하나 이상의 데이터 소스들로부터 획득될 수 있다. 하나의 접근법에서 그리고 이하에서 상세히 기술될 것인 바와 같이, 사용자 관련 정보는 사용자의 환경에 있는 하나 이상의 객체들과 상호작용하려는 사용자의 의도를 자동으로 결정하기 위해 이용된다.
도 6은 허브 컴퓨팅 시스템(12)을 구현하기 위해 사용될 수 있는 컴퓨팅 시스템의 예시적인 실시예를 나타낸 것이다. 도 6에 도시된 바와 같이, 멀티미디어 콘솔(500)은 레벨 1 캐시(502), 레벨 2 캐시(504), 및 플래시 ROM(Read-Only Memory)(506)을 갖는 중앙 처리 유닛(central processing unit, CPU)(501)을 가진다. 레벨 1 캐시(502) 및 레벨 2 캐시(504)는 데이터를 일시적으로 저장하고, 따라서 메모리 액세스 사이클의 수를 감소시킴으로써 처리 속도 및 처리율(throughput)을 향상시킨다. 2개 이상의 코어, 따라서 부가의 레벨 1 및 레벨 2 캐시들(502 및 504)을 가지는 CPU(501)가 제공될 수 있다. 플래시 ROM(506)은, 멀티미디어 콘솔(500)의 전원이 켜질 때, 부팅 프로세스의 초기 단계 동안에 로드되는 실행 가능 코드를 저장할 수 있다.
그래픽 처리 유닛(graphics processing unit, GPU)(508) 및 비디오 인코더/비디오 코덱(코더/디코더)(514)는 고속 및 고해상도 그래픽 처리를 위한 비디오 처리 파이프라인을 형성한다. 데이터는 버스를 통해 그래픽 처리 유닛(508)으로부터 비디오 인코더/비디오 코덱(514)으로 전달된다. 비디오 처리 파이프라인은 텔레비전 또는 다른 디스플레이로 전송하기 위해 데이터를 A/V(오디오/비디오) 포트(540)로 출력한다. 메모리 제어기(510)는 RAM(Random Access Memory)(이것으로 제한되지 않음) 등의 다양한 유형의 메모리(512)에 대한 프로세서 액세스를 용이하게 하기 위해 GPU(508)에 연결되어 있다.
멀티미디어 콘솔(500)은, 바람직하게는 모듈(518) 상에 구현되어 있는, I/O 제어기(520), 시스템 관리 제어기(522), 오디오 처리 유닛(523), 네트워크 인터페이스(524), 제1 USB 호스트 제어기(526), 제2 USB 제어기(528) 및 프런트 패널 I/O 서브어셈블리(530)를 포함한다. USB 제어기들(526 및 528)은 주변기기 제어기들[542(1) 및 542(2)], 무선 어댑터(548), 및 외부 메모리 디바이스(546)(예컨대, 플래시 메모리, 외장형 CD/DVD ROM 드라이브, 이동식 매체 등)에 대한 호스트로서 역할한다. 네트워크 인터페이스(524) 및/또는 무선 어댑터(548)는 네트워크(예컨대, 인터넷, 홈 네트워크 등)에의 액세스를 제공하고, 이더넷 카드, 모뎀, 블루투스 모듈, 케이블 모뎀 등을 비롯한 광범위한 다양한 유선 또는 무선 어댑터 구성요소들 중 임의의 것일 수 있다.
시스템 메모리(543)는 부팅 프로세스 동안에 로드되는 애플리케이션 데이터를 저장하기 위해 제공된다. 매체 드라이브(544)가 제공되고, DVD/CD 드라이브, 블루레이 드라이브, 하드 디스크 드라이브, 또는 다른 이동식 매체 드라이브 등을 포함할 수 있다. 매체 드라이브(144)는 멀티미디어 콘솔(500)에 대해 내장형이거나 외장형일 수 있다. 멀티미디어 콘솔(500)에 의한 실행, 재생 등을 위해, 애플리케이션 데이터가 매체 드라이브(544)를 통해 액세스될 수 있다. 매체 드라이브(544)는 직렬 ATA 버스 또는 다른 고속 연결(예를 들어, IEEE 1394) 등의 버스를 통해 I/O 제어기(520)에 연결된다.
시스템 관리 제어기(522)는 멀티미디어 콘솔(500)의 이용 가능성을 확인하는 것과 관련된 각종의 서비스 기능들을 제공한다. 오디오 처리 유닛(523) 및 오디오 코덱(532)은 Hi-Fi(high fidelity) 및 스테레오 처리를 갖는 대응하는 오디오 처리 파이프라인을 형성한다. 오디오 데이터는 통신 링크를 통해 오디오 처리 유닛(523)과 오디오 코덱(532) 사이에서 전달된다. 오디오 처리 파이프라인은 오디오 기능을 갖는 외장형 오디오 사용자 또는 디바이스에 의한 재생을 위해 데이터를 A/V 포트(540)로 출력한다.
프런트 패널 I/O 서브어셈블리(530)는 전원 버튼(550) 및 꺼내기 버튼(552)의 기능은 물론, 멀티미디어 콘솔(500)의 외부 표면 상에 노출되어 있는 임의의 LED(light emitting diode) 또는 다른 표시기들도 지원한다. 시스템 전원 모듈(536)은 멀티미디어 콘솔(500)의 구성요소들에 전력을 제공한다. 팬(538)은 멀티미디어 콘솔(500) 내의 회로를 냉각시킨다.
멀티미디어 콘솔(500) 내의 CPU(501), GPU(508), 메모리 제어기(510) 및 다양한 다른 구성요소들은 각종의 버스 아키텍처들 중 임의의 것을 사용하는, 직렬 및 병렬 버스들, 메모리 버스, 주변기기 버스, 및 프로세서 또는 로컬 버스를 비롯한 하나 이상의 버스들을 통해 상호연결되어 있다. 예로서, 이러한 아키텍처들은 PCI(Peripheral Component Interconnects) 버스, PCI-Express 버스 등을 포함할 수 있다.
멀티미디어 콘솔(500)의 전원이 켜질 때, 애플리케이션 데이터가 시스템 메모리(543)로부터 메모리(512) 및/또는 캐시들(502, 504)에 로드되고 CPU(501) 상에서 실행될 수 있다. 애플리케이션은 멀티미디어 콘솔(500) 상에서 이용 가능한 상이한 미디어 유형들을 탐색할 때 일관성 있는 사용자 경험을 제공하는 그래픽 사용자 인터페이스를 제시할 수 있다. 동작을 설명하면, 멀티미디어 콘솔(500)에 부가의 기능들을 제공하기 위해, 매체 드라이브(544) 내에 들어 있는 애플리케이션들 및/또는 다른 미디어가 매체 드라이브(544)로부터 시작되거나 재생될 수 있다.
멀티미디어 콘솔(500)은 본 시스템을 텔레비전 또는 다른 디스플레이에 간단히 연결시킴으로써 독립형 시스템(standalone system)으로서 동작될 수 있다. 이 독립형 모드에서, 멀티미디어 콘솔(500)은 하나 이상의 사용자들이 본 시스템과 상호작용하거나, 영화를 시청하거나, 음악을 듣게 할 수 있다. 그렇지만, 광대역 연결의 통합이 네트워크 인터페이스(524) 또는 무선 어댑터(548)를 통해 이용 가능하게 되는 경우, 멀티미디어 콘솔(500)은 또한 대규모 네트워크 커뮤니티에의 참여자로서 동작될 수 있다. 그에 부가하여, 멀티미디어 콘솔(500)은 무선 어댑터(548)를 통해 처리 유닛(4)과 통신할 수 있다.
멀티미디어 콘솔(500)의 전원이 켜질 때, 설정된 양의 하드웨어 자원들이 멀티미디어 콘솔 운영 체제에 의한 시스템 사용을 위해 예약되어 있다. 이 자원들은 메모리, CPU 및 GPU 사이클, 네트워킹 대역폭 등의 예약을 포함할 수 있다. 이 자원들이 시스템 부팅 시에 예약되기 때문에, 예약된 자원들은 애플리케이션의 관점에서 볼 때 존재하지 않는다. 상세하게는, 메모리 예약은 바람직하게는 시작 커널(launch kernel), 동시 시스템 애플리케이션들(concurrent system applications) 및 드라이버들을 포함할 정도로 충분히 크다. 예약된 CPU 사용량이 시스템 애플리케이션들에 의해 사용되지 않는 경우, 유휴 스레드(idle thread)가 임의의 미사용 사이클들을 사용하도록, CPU 예약이 바람직하게는 일정하다.
GPU 예약과 관련하여, 시스템 애플리케이션들에 의해 발생되는 경량 메시지들(예컨대, 팝업)은 GPU 인터럽트를 사용하여 코드가 팝업을 오버레이로 렌더링하도록 스케줄링하는 것에 의해 디스플레이된다. 오버레이에 필요한 메모리의 양은 오버레이 영역 크기에 의존하며, 오버레이는 바람직하게는 화면 해상도에 따라 스케일링된다. 사용자 인터페이스 전체가 동시 시스템 애플리케이션에 의해 사용되는 경우, 애플리케이션 해상도에 독립적인 해상도를 사용하는 것이 바람직하다. 주파수를 변경하고 TV를 재동기시킬 필요가 없도록 이 해상도를 설정하기 위해 스케일러(scaler)가 사용될 수 있다.
멀티미디어 콘솔(500)이 부팅되고 시스템 자원들이 예약된 후에, 시스템 기능들을 제공하기 위해 동시 시스템 애플리케이션들이 실행된다. 시스템 기능들은 앞서 기술된 예약된 시스템 자원들 내에서 실행되는 일단의 시스템 애플리케이션들에 캡슐화되어 있다. 운영 체제 커널은 시스템 애플리케이션 스레드들 및 게임 애플리케이션 스레드들인 스레드들을 식별한다. 시스템 애플리케이션들은 바람직하게는 애플리케이션에게 일관성 있는 시스템 자원 뷰를 제공하기 위해 미리 결정된 때에 그리고 미리 결정된 간격으로 CPU(501) 상에서 실행되도록 스케줄링되어 있다. 스케줄링은 콘솔 상에서 실행 중인 게임 애플리케이션에 대한 캐시 방해(cache disruption)를 최소화하는 것이다.
동시 시스템 애플리케이션이 오디오를 필요로 할 때, 오디오 처리가 시간 민감도로 인해 게임 애플리케이션에 비동기적으로 스케줄링된다. 시스템 애플리케이션들이 활성일 때, 멀티미디어 콘솔 애플리케이션 관리자(이하에서 기술됨)는 게임 애플리케이션 오디오 레벨(예컨대, 음소거, 감쇠)을 제어한다.
선택적인 입력 디바이스들[예컨대, 제어기들(542(1) 및 542(2))]이 게임 애플리케이션들 및 시스템 애플리케이션들에 의해 공유된다. 입력 디바이스들은 예약된 자원들이 아니고, 각각이 디바이스의 포커스를 가지도록 시스템 애플리케이션들과 게임 애플리케이션 간에 전환되어야 한다. 애플리케이션 관리자는 바람직하게는, 게임 애플리케이션의 정보를 모르는 상태에서, 입력 스트림의 전환을 제어하고, 드라이버는 포커스 전환에 관한 상태 정보를 유지한다. 캡처 디바이스들(20A 및 20B)은 USB 제어기(526) 또는 다른 인터페이스를 통해 콘솔(500)에 대한 부가의 입력 디바이스들을 규정할 수 있다. 다른 실시예들에서, 허브 컴퓨팅 시스템(12)은 다른 하드웨어 아키텍처들을 사용하여 구현될 수 있다. 허브 컴퓨팅 시스템(12)의 구현은 임의의 특정의 하드웨어 아키텍처를 필요로 하지 않는다.
도 7은 본 기술의 일 실시예에 따른 프로세스를 나타낸 간략화된 플로우차트이다. 다른 단계들이 추가될 수 있고, 많은 변형들이 가능하다. 단계들 모두가 필요한 것은 아니다. 하나의 실시예에서, 도 7에 나타낸 처리는 도 1에 도시된 헤드 마운티드 디바이스(2)의 하나 이상의 구성요소들에 의해 수행될 수 있다. 프로세스의 다양한 단계들이 소프트웨어, 하드웨어, 또는 하드웨어와 소프트웨어의 어떤 조합에 의해 수행될 수 있을 것이다. 본 명세서에서, “로직”이라는 용어는 소프트웨어, 하드웨어, 또는 하드웨어와 소프트웨어의 어떤 조합을 지칭한다. 이와 같이, HMD(2)는 도 7에 기술된 동작들을 수행하도록 구성되어 있는 로직을 가질 수 있다. 동작들의 일부 또는 전부를 수행하는 로직은 HMD(2)를 벗어나 있거나, 허브 컴퓨팅 시스템(12)에 있거나, 어떤 다른 프로세서일 수 있다.
유의할 점은, 도 7에 예시된 단계들이 병렬로 또는 동시에 수행될 수 있고, 단계들이 연속적으로 수행될 수 있다는 것이다. 예를 들어, 사용자의 초점이 연속적으로 추적되도록 단계(702)가 연속적으로 수행될 수 있다.
단계(702)에서, HMD(2)를 착용하고 있는 사용자의 초점이 결정된다. 초점은 사용자가 주의를 어디로 돌리고 있는지(예컨대, 어디를 보고 있는지)를 지칭한다. 하나의 실시예에서, 머리 배향 및/또는 위치를 추적하는 것에 의해 초점이 결정된다. 이것은 머리 이동, 회전 등을 추적하는 것을 포함할 수 있다. 이와 같이, 사용자가 객체를 보기 위해 머리를 회전할 때, 본 시스템(100)은 사용자가 무엇에 초점을 맞추고 있는지를 결정한다. 하나의 실시예에서, 초점이 눈 시선 추적에 기초하여 결정된다. 하나의 실시예에서, 초점이 눈 시선 추적 및 머리 추적의 조합에 기초하여 결정된다.
하나의 실시예에서, 사용자 및 사용자와 연관된 헤드 마운티드 디스플레이 디바이스(2)의 위치 및 배향을 식별해주는 정보가 허브 컴퓨팅 디바이스(12)로부터 전송되고 처리 유닛(4)에 의해 수신된다. 이것은 3D 좌표계로 규정될 수 있다. 도 2는 사용자, 사용자의 머리, 및 헤드 마운티드 디스플레이 디바이스(2)의 위치 및 배향이 규정될 수 있는 3D 좌표계(2252)의 하나의 예를 나타낸 것이다. 예를 들어, 허브 컴퓨팅 디바이스(12)는 (예컨대, 골격 추적을 사용하여) 사용자를 추적하기 위해 하나 이상의 깊이 영상들 및 하나 이상의 시각 영상들을 사용할 것이다. 사용자 및 사용자와 연관된 헤드 마운티드 디스플레이 디바이스의 위치 및 배향을 결정하기 위해 하나 이상의 깊이 영상들 및 하나 이상의 시각 영상들이 사용될 수 있다.
하나의 실시예에서, 헤드 마운티드 디바이스(2)에 내장된 하나 이상의 센서들에 의해 로컬적으로[예컨대, 헤드 마운티드 디바이스(2)로부터] 감지된 정보가 단계(702)에서 사용된다. 가속도계, 자력계 및 자이로스코프를 비롯한 헤드 마운티드 디스플레이에 내장된 다양한 센서 기술들, 또는 다른 센서 기술들이 머리 위치 및 배향을 식별하는 데 사용될 수 있다. 다른 센서 기술들은 비행 시간, 공간 스캔, 기계적 연결, 위상차 감지, 및/또는 직접 장 감지를 포함할 수 있다. 하나의 실시예에서, 처리 유닛(4)은 3축 자이로(132B), 3축 가속도계(132C), 및 3축 자력계(132A)로부터의 데이터에 액세스할 것이다.
하나의 실시예에서, 환경에서의 사용자의 눈의 위치를 식별해주는 정보가 단계(702)에서 사용된다. 이것은 또한 앞서 논의된 바와 같이 “눈 추적”이라고 알려져 있다. 예를 들어, 환경에서의 사용자의 눈의 위치를 추적하는 하나의 실시예에서, 사용자의 눈이 눈 추적 조명(134A)으로부터의 적외선 광을 사용하여 조명될 수 있다. 눈으로부터의 반사가 하나 이상의 눈 추적 카메라들(134B)을 사용하여 검출된다. 반사 데이터가 헤드 마운티드 디스플레이 디바이스(2)로부터 처리 유닛(4)으로 송신된다. 처리 유닛(4)은, 앞서 논의된 바와 같이, 반사 데이터에 기초하여 눈의 위치를 결정할 것이다. 하나의 실시예에서, 환경에서의 사용자의 눈의 위치를 식별해주는 정보가 처리 유닛(4)에 의해 수신되거나 액세스된다.
클라우드로부터 검색되는 정보, 하나 이상의 외부 디바이스들에 의해 검출 및/또는 수집되는 정보, 및 다른 관련 정보와 같은 부가 정보가 또한 단계(702)에서 사용될 수 있다. RGB 및/또는 깊이 센서 데이터를 사용하는 SLAM(Simultaneous Localization and Mapping)과 같은 기법들이 지도 제작된 환경에 대한 사용자의 머리의 실시간 위치를 제공하는 데 이용될 수 있다. 클라우드로부터의 데이터 및/또는 깊이 센서 데이터를 사용하여 환경 타이포그라피(environmental typography)가 식별될 수 있다. 사용자가 자신을 보고 있을 때 깊이 센서를 사용하여 사용자의 신체의 부위들(예컨대, 손, 팔, 몸통, 다리)이 식별될 수 있다.
단계(704)에서, 본 시스템(100)은 사용자의 초점이 대략적으로 사용자 인터페이스 심볼과 연관된 객체의 방향으로 있는지를 결정한다. 이 시점에서, 사용자 인터페이스 심볼이 HMD(2)에 디스플레이될 수 있거나 그렇지 않을 수 있다. 사용자 인터페이스 심볼이 현실 세계 객체 또는 가상 객체와 연관되어 있을 수 있다. 예를 들어, 이 심볼이 실제의 현실 세계 책과 또는 가상 개와 연관되어 있을 수 있다.
본 시스템(100)이 사용자가 대략적으로 그 객체의 방향으로 초점을 맞추고 있다고 결정하는 경우, 본 시스템(100)은, 단계(706)에서, 심볼을 제시한다. 도 8a는 하나의 실시예에 따른, 객체 상에 제시되는 사용자 인터페이스 심볼의 일례를 나타낸 것이다. 사용자 인터페이스 심볼(804)이 객체(802)와 연관되어 있는 것처럼 보이도록 HMD(2)에 제시된다. 객체(802)는 HMD(2)에 렌더링되고 있는 현실 세계 객체 또는 가상 객체일 수 있다. 이 예에서, 심볼(804)은 객체(802)의 한쪽 가장자리에 제시되고 객체(802)와 맞닿아 있는 것처럼 보인다. 많은 다른 가능한 경우들이 있다. 심볼(804)이 객체(802)와 접촉하고 있는 것처럼 보일 필요는 없다. 그렇지만, 근접해 있는 것은 사용자가 심볼(804)이 객체(802)와 관련하여 사용자 상호작용, 사용자 입력 등을 개시하는 방법으로서 역할할 수 있다는 것을 이해하는 데 도움을 준다.
단계(706)에서, 본 시스템(100)은 객체(802) 상에 2 개 이상의 심볼(804)을 제시할 수 있다. 이러한 이유는 객체(802)가 그와 연관된 2 개 이상의 심볼(804)을 가질 수 있기 때문이다.
하나의 옵션이 사용자가 객체(802)를 보고 있지 않더라도 HMD(2)에 심볼(804)을 제시하는 것임에 유의한다. 이 경우에, 본 시스템(100)은 사용자가 객체(802)를 보고 있거나 대략적으로 그의 방향으로 보고 있을 때 심볼(804)을 얼마간 더 잘 보이게 만들 수 있다.
본 시스템이 단계(704)에서 사용자가 객체(802)의 방향으로 초점을 맞추고 있지 않은 것으로 결정한 경우, 제어가 단계(702)로 넘어가서, 사용자의 초점을 계속 모니터링한다. 유의할 점은, 사용자가 객체(802)의 방향으로 초점을 맞추고 있지 않은 경우, 심볼(804)이 디스플레이될 필요가 없지만, 심볼(804)이 선택적으로 어떤 포맷으로 디스플레이된다는 것이다. 이 포맷은 사용자가 객체(802)의 방향으로 보고 있을 때와 상이할 수 있다. 예를 들어, 심볼(804)이 덜 지각 가능할 수 있다.
단계(706)에서 심볼(804)을 제시한 후에, 본 시스템(100)은, 단계(708)에서, 사용자가 심볼(804)에 초점을 맞추고 있는지를 결정한다. 이것은 사용자의 머리 배향 및/또는 위치 및/또는 사용자의 눈 시선을 모니터링하는 것에 의해 달성될 수 있다. 하나의 실시예에서, 본 시스템(100)은 사용자의 주의가 어떤 최소 시간 동안 심볼(804)에 초점을 맞추고 있는지를 결정한다.
살펴본 바와 같이, 객체(802)는 그와 연관된 2 개 이상의 심볼(804)을 가질 수 있다. 하나의 실시예에서, 본 시스템(100)은 사용자가 어느 심볼(804)에 가장 직접적으로 초점을 맞추고 있는지를 결정하고 그 심볼(804)를 하이라이트한다.
사용자의 주의가 심볼(804)에 초점을 맞추고 있는 경우, 본 시스템(100)은, 단계(710)에서, 심볼(804)로부터 멀어지는 쪽으로 연장되는 핸들을 HMD(2)에 디스플레이한다. 하나의 실시예에서, 사용자가 심볼(804)에 처음으로 초점을 맞출 때, 심볼(804)이 하이라이트된다. 하이라이트의 예는 심볼(804)을 반짝이게 하거나, 번뜩이게 하거나, 빛나게 하거나, 점점 더 밝아지게 하는 것 등이다. 이와 같이, 심볼(804)은 “반짝임”이라고 지칭될 수 있다. 사용자가 심볼(804)을 계속하여 보는 경우, 핸들이 바깥쪽으로 연장된다. 도 8b는 심볼(804)이 하이라이트되는 하나의 예를 나타낸 것이다. 도 8c는 핸들(806)이 심볼(804)로부터 멀어지는 쪽으로 연장되는 하나의 예를 나타낸 것이다. 핸들(806)은 그와 연관된 텍스트 라벨을 가질 수 있거나 그렇지 않을 수 있다. 핸들(806)은 그와 연관된 아이콘을 가질 수 있거나 그렇지 않을 수 있다.
핸들(806)이 제시된 후에, 본 시스템(100)은, 단계(712)에서, 사용자가 핸들(806)을 따라 심볼(804)로부터 멀어지는 쪽으로 사용자의 초점을 움직이는지를 결정한다. 아니오인 경우, 본 시스템(100)은 단계(708)로 되돌아간다. 사용자는 심볼(804)을 처음으로 본 후에 심볼(804)로부터 멀어지는 쪽을 보려고 할 수 있다. 이 경우에, 단계(708)의 테스트가 “아니오”일 것이고, 제어가 단계(704)로 넘어간다.
하나의 실시예에서, 단계(712)는 본 시스템(100)이 사용자의 초점이 핸들(806)을 따라 움직이고 있다는 것을 나타내는 방식으로 사용자가 머리를 움직이는지를 결정하는 것을 포함한다. 이것은, 하나의 예로서, 머리의 회전일 수 있다.
하나의 실시예에서, 본 시스템(100)은 사용자의 눈 시선이 핸들(806)을 따라 움직이고 있다는 것을 나타내는 방식으로 사용자가 눈을 움직이는지를 결정한다. 전형적으로, 눈 추적에 의해 결정되는 눈 시선은 사용자의 눈(또는 양눈)이 순간적으로 고정되어 있는 지점인 것으로 간주된다. 이 경우에, 본 시스템(100)은 사용자가 응시하고 있는 상이한 지점들을 추적하고, 이 지점들이 핸들(806)을 따라 점진적으로 움직이고 있다고 결정할 수 있다.
사용자 초점의 이동이 핸들(806)을 정확히 따라갈 필요는 없다. 예를 들어, 도 8c의 예에 대한 머리 회전을 추적하는 경우, 사용자가 머리를 우측으로 회전할 때, 초점이 핸들(806)로부터 얼마간 위쪽 또는 아래쪽에 있도록 사용자가 또한 머리를 위로 또는 아래로 회전하더라도, 본 시스템(100)은 여전히 이것을 핸들(806)을 따라 초점을 맞추고 있는 것으로 간주할 수 있다. 그렇지만, 사용자가 핸들(806)로부터 위쪽으로(또는 아래쪽으로) 멀리 떨어진 곳을 보는 경우, 이것은 사용자가 핸들(806)을 따라 보려고 시도하고 있지 않고 사용자의 주의를 다른 무언가로 이동시켰다는 것을 나타낼 수 있다. 본 시스템(100)이 여기서 제공하는 자유도는 조절 가능한 파라미터일 수 있다. 유의할 점은, 이 시스템(100)이 머리 배향 및/또는 눈 시선을 추적하는 것에 의해 핸들(806)을 따라 있는 사용자의 초점을 결정할 수 있다는 것이다.
본 시스템(100)이 사용자가 핸들(806)을 따라 사용자의 초점을 이동시킨 것으로 결정하는 경우, 본 시스템(100)은, 단계(714)에서, 선택 기준이 충족되었는지를 결정한다. 선택 기준은, 하나의 예로서, 사용자의 초점이 핸들(806)의 끝에 또는 그 근방에 있는 것일 수 있다.
선택 기준이 충족되는 경우, 단계(716)에서, 사용자 인터페이스 요소가 활성화된다. 이것의 하나의 예는 스포크 메뉴를 HMD(2)에 제시하는 것이다. 예시적인 스포크 메뉴들이 본 명세서에서 논의된다. 하나의 실시예에서, 심볼(804)로부터 떨어져 있는 핸들(806)의 끝에서 또는 그 근방에서 사용자 인터페이스 요소가 활성화된다.
단계(714)의 논의로 돌아가서, 어떤 경우들에서, 사용자는 심볼(804)을 본 후에 핸들(806)을 따라 사용자의 초점을 움직이지 않을 것이다. 게다가, 사용자는 심볼(804)로부터 멀어지는 쪽을 볼 수 있다.
하나의 경우에, 심볼(804)을 본 후에, 사용자는 심볼(804) 및 객체(802) 둘 다로부터 눈길을 돌린다. 이 경우에, 본 시스템(100)은 핸들(806) 및 심볼(804)을 제시하는 것을 중단할 수 있다. 이것은 단계(718)로 나타내어져 있고, 그 결과 “멀어지는 쪽” 조건으로 된다. 이 경우에, 단계(720)는 심볼(804) 및 핸들(806)을 HMD(2)에 제시하는 것을 중단하는 것이다. 이 경우에, 본 시스템(100)은 단계(702)에서 사용자의 초점을 모니터링하는 것으로 복귀할 수 있다.
다른 경우에, 사용자는 핸들(806)에 계속 초점을 맞추고 있지만, 선택 기준이 충족되지 않는다. 예를 들어, 사용자는 핸들(806)의 끝을 충분히 쳐다보지 않는다. 다른 경우에, 사용자가 핸들(806)을 본 후에 심볼(804)을 다시 본다(그러나 선택 기준을 충족시키지 않음). 어느 경우든지, 본 시스템(100)은 핸들(806)을 계속하여 제시한다. 이것은 제어를 단계(710)로 넘기는 단계(718)의 “핸들 또는 심볼” 조건으로 나타내어져 있다.
또 다른 가능한 경우는 사용자가 심볼(804)로부터 눈길을 돌리지만 여전히 객체(802)를 보고 있는 것이다. 이 경우에, 본 시스템(100)은 핸들(806)을 디스플레이하는 것을 중단할 수 있다. 그렇지만, 심볼(804)은 여전히 디스플레이된다. 이것은 제어를 단계(722)로 넘기는 단계(718)의 “객체” 조건으로 나타내어져 있다. 이 경우에, 제어는 이어서 단계(706)로 넘어간다.
도 7의 프로세스 동안, 본 시스템(100)은 사용자에게 피드백을 제공할 수 있다. 이것은, 하나의 예로서, 오디오 피드백일 수 있다. 이 피드백은 각종의 이벤트들과 관련하여 제공될 수 있을 것이다. 예를 들어, 사용자가 심볼(804)을 볼 때, 오디오 피드백이 제공될 수 있을 것이다. 사용자가 핸들(806)을 따라 볼 때, 사용자가 진행 중임을 알도록 돕기 위해 오디오 피드백이 제공될 수 있을 것이다. 사용자가 핸들(806)을 따라 사용자의 초점을 움직일 때 시각적 피드백도 제공될 수 있을 것이다.
어떤 경우들에서, 단계(714)의 결과는 입력의 선택이다. 예를 들어, 객체(802)는 단계(714)에서의 선택의 결과로서 꼬리를 흔드는 가상 개일 수 있다. 이 예에서, 이것이 심볼(804)과 연관되어 있는 유일한 선택일 수 있다.
다른 경우들에서, 단계(714)의 결과는 메뉴를 나타나게 하는 것이다. 하나의 유형의 메뉴는 본 명세서에서 “스포크 메뉴”라고 지칭된다. 도 8d는 스포크 메뉴(808)의 하나의 실시예의 일례이다. 스포크 메뉴(808)와 연관되어 있는 객체(802)가 도 8d에도 도시되어 있다. 스포크 메뉴(808)는, 이 예에서, 흑색 점으로 표현되어 있는, 중앙 허브(816)를 가진다. 중앙 허브(816)가 HMD(2)에서 사용자에게 꼭 보여지는 것은 아니다. 하나의 실시예에서, 중앙 허브(816)는 심볼(804)의 반대쪽에 있는 핸들(806)의 끝이 있는 곳에 위치해 있다. 그렇지만, 하나의 실시예에서, 스포크 메뉴(808)가 디스플레이될 때, 핸들(806) 및 심볼(804)이 디스플레이에 더 이상 제시되지 않는다. 하나의 실시예에서, 스포크 메뉴(808)가 핸들(806)의 끝으로부터 자라는 것처럼 나타나고; 이어서 핸들(806) 및 심볼(804)이 사라진다.
메뉴(808)는 중앙 허브(816) 주위에 바깥쪽으로 다수의 메뉴 항목들(810)을 가진다. 각각의 메뉴 항목(810)과 허브(816) 사이에 스포크(812)가 있다. 스포크들(812)이 사용자에게 항상 보일 필요는 없다. 처음에, 사용자의 초점이 허브(816)에 있을 것으로 예상된다. 이것은 허브(816)가 핸들(806)의 끝에 위치해 있는 것에 기인한다. 이전에 살펴본 바와 같이, 사용자는 스포크 메뉴(808)를 활성화시키기 위해 사용자의 초점을 핸들(806)의 끝 쪽으로 이동시킬 수 있다. 활성화시킨다는 것은 HMD로 하여금 스포크 메뉴(808)를 디스플레이하게 하는 것을 의미한다.
사용자는 사용자의 초점을 허브(816)로부터 메뉴 항목들(810) 중 하나 쪽으로 이동시키는 것에 의해 메뉴 항목(810)을 선택할 수 있다. 처음에, 허브(816)와 그 메뉴 항목(810) 사이의 스포크(812)가 전혀 보이지 않을 수 있다. 하나의 실시예에서, 사용자가 사용자의 초점을 메뉴 항목(810) 쪽으로 이동시킬 때, 스포크(812)가 메뉴 항목(810) 쪽으로 자라난다. 추가 상세들은 이하에서 논의된다.
도 9a는 스포크 메뉴(808)의 하나의 실시예의 다른 예이다. 이 예에서, 스포크 메뉴(808)와 연관되어 있는 객체(802)가 도시되어 있지 않다. 또한, 논의를 위해 스포크들(812) 및 허브(816)가 도시되어 있다. 스포크들(812) 및 허브(816)가 HMD(2)에 제시될 필요는 없다. 전형적으로, 메뉴 항목들(810)은 객체(802)와 연관된 행동들이지만, 꼭 그럴 필요는 없다. 이 예에서, 메뉴 항목들(810)은 비디오 등을 조작하기 위한 다양한 컨트롤들(예컨대, 볼륨, 재생/일시 중지, FF/Rev)을 포함한다. 이 예에서, 메뉴 항목들(810)은 텍스트 라벨들을 갖지만, 꼭 그럴 필요는 없다. 스포크들(812)은 그들과 연관된 텍스트 라벨들을 가질 수 있거나 그렇지 않을 수 있다. 스포크들(812)은 그들과 연관된 아이콘들을 가질 수 있거나 그렇지 않을 수 있다.
하나의 실시예에서, 스포크 메뉴들(808)은 내포될 수 있다. 이것은 메뉴 항목(810)의 선택이 다른 스포크 메뉴(808)를 생성할 수 있다는 것을 의미한다. 예를 들어, 사용자가 볼륨이라고 표시된 메뉴 항목(810)을 선택하는 경우, 이것은 도 9b에 나타낸 스포크 메뉴(808)를 생성할 수 있다. 예를 들어, 사용자가 FF/Rev라고 표시된 메뉴 항목(810)을 선택하는 경우, 이것은 도 9c에 나타낸 스포크 메뉴(808)를 생성할 수 있다. 메뉴를 생성한다는 것은 메뉴가 HMD에 제시된다는 것을 의미한다.
도 10은 스포크 메뉴(808) 상의 메뉴 항목(810)의 선택을 제공하는 프로세스(1000)의 하나의 실시예의 플로우차트이다. 프로세스(1000)는 도 7로부터의 단계(714) 이후에 수행될 수 있다. 하나의 실시예에서, 단계(714)의 결과, 스포크 메뉴(808)이 활성화된다는 것을 상기한다. 예를 들어, 도 8d 또는 도 9a에 나타낸 것과 같은 스포크 메뉴(808)가 활성화된다. 프로세스(1000)에서, 머리 추적이 사용된다. 프로세스(1000)에서 눈 추적이 사용될 필요는 없다. 프로세스(1000)는 하드웨어, 소프트웨어, 또는 하드웨어와 소프트웨어의 어떤 조합에 의해 수행될 수 있다. 하나의 실시예에서, 프로세스(1000)는, 적어도 부분적으로, HMD(2)에 의해 수행된다. HMD(2)에 결합된 프로세서가 단계들 중 일부를 도울 수 있다.
프로세스(1000)의 시작에서, 본 시스템(100)은 사용자의 주의가 스포크 메뉴(808)의 허브(816)에 초점이 맞춰져 있는 것으로 가정할 수 있다. 이것은 단계(1002)에 기술되어 있다. 허브(816)가 핸들(806)의 끝에 또는 그 근방에 위치해 있을 수 있는 경우에, 이 가정이 행해질 수 있다. 앞서 살펴본 바와 같이, 허브(816)가 HMD(2)에 시각적으로 제시될 필요는 없다. 또한, 사용자가 허브(816)의 위치를 실제로 직접 보고 있을 필요가 없다.
단계(1004)는 사용자의 머리 배향 및/또는 위치를 추적하는 것이다. 이것은 이미 논의되었다. 머리 추적은 프로세스(1000) 전체에 걸쳐 계속 수행될 수 있다.
단계(1006)에서, 본 시스템(100)은 사용자의 초점이 허브(816)로부터 멀어지게 이동하도록 사용자의 머리가 움직이고 있는지를 결정한다. 본 시스템(100)이, 머리가 어떤 규정된 양만큼(예컨대, 임계치를 넘어) 움직이지 않는 한, 이것을 의미 있는 머리 움직임인 것으로 간주하지 않도록 허브(816) 근방에 어떤 “안전 지대”가 있을 수 있다. 머리 움직임이 측정되는 방식이 변할 수 있다. 하나의 기법은 머리 회전을 정도의 면에서 추적하는 것이다. 이것을 의미 있는 움직임인 것으로 간주하기 위해 머리가 회전의 정도의 면에서 어떤 최소량을 움직일 필요가 있을 수 있다.
머리 움직임이 있는 경우, 본 시스템(100)은, 단계(1008)에서, 관련 스포크(812)를 하이라이트한다. 하나의 실시예에서, 스포크(812)의 일부분만이 하이라이트된다. 이 부분은 허브(816)에 가장 가까운 부분일 수 있다. 하나의 실시예에서, 스포크(812)가 채워지는 양은 사용자가 머리를 얼마나 멀리 움직였는지(예컨대, 회전시켰는지)에 의존한다.
도 11a 내지 도 11c는 스포크(812)가 점진적으로 채워지는 것의 일례를 나타낸 것이다. 이것은 사용자가 머리를 “더 크게“라고 표시된 메뉴 항목 쪽의 방향으로 허브(816)로부터 더 멀리 움직인 것에 응답한 것일 수 있다. 예를 들어, 사용자의 양눈 사이로부터 “똑바로 나가는” 벡터가 허브(816)로부터 우측으로 “더 크게” 메뉴 항목 쪽으로 움직이도록 사용자가 머리를 회전시킬 때, 스포크(812)가 점진적으로 채워진다. 스포크(812)를 점진적으로 채운다는 것은, 하나의 실시예에서, HMD(2)에서 스포크(812)를 점진적으로 또는 점차적으로 더 많이 제시한다는 것을 의미한다. 스포크(812)를 점진적으로 채운다는 것은, 하나의 실시예에서, 예를 들어, 스포크(812)를 더 진한 색으로 만들거나, 더 밝게 만들거나, 채워지게 하는 것 등에 의해, 스포크(812)를 점진적으로 또는 점차적으로 “채운다”는 것을 의미한다. 예를 들어, 스포크(812) 전체가 처음에 희미하게 되어 있을 수 있다. 이어서, 점진적으로 또는 점차적으로 스포크(812)의 더 많은 부분이 더 밝게 되거나, 채워지거나, 진한 색으로 되거나 한다. 유의할 점은, 스포크들(812)이, 사용자의 초점에 따라, “비워질(unfilled)” 수도 있다는 것이다.
유의할 점은, 스포크(812)를 채우는 것이 머리 움직임에 대해 상이한 감도들을 가질 수 있다는 것이다. 환언하면, 특정 양의 머리 움직임에 응답하여 스포크(812)가 채워지는 정도가 조정 가능한 파라미터일 수 있다. 이것이 암시하는 바는 사용자의 머리로부터의 전술한 벡터가 스포크(812)가 채워진 곳을 정확히 가리킬 필요는 없다는 것이다. 예를 들어, 도 11b에서, 스포크(812)는 지점 A까지 채워져 있다. 사용자의 머리로부터의 벡터가 지점 A를 가리키고 있을 수 있거나 그렇지 않을 수 있다. 이 벡터는 지점 A보다 허브(816)에 더 가까운 곳 또는 허브(816)로부터 더 먼 곳을 가리키고 있을 수 있다. 감도는 사용자가 입력을 제공하는 것을 여전히 용이하게 만들어주면서 거짓 양성(false positive)을 방지하는 데 도움을 줄 수 있다.
일부 스포크들(812)은 “성장 모델”이라고 지칭될 수 있는 방식으로 채워진다. 이 경우에, 본 시스템(100)이 단계(1006)에서 사용자가 특정 양만큼 머리를 움직인 것으로 결정할 때, 스포크(812)가 채워지기 시작한다. 사용자가 중앙 허브(816) 근방에서 “안전 지대” 밖에 머리 위치를 유지하는 한, 스포크(812)가 계속 채워질 수 있다. 이것은 머리 위치가 또한 대체로 스포크(812)의 영역을 따라 있는 것으로 가정한다. 이와 같이, 사용자의 머리가 움직이고 있지 않더라도, 도 11a 내지 도 11c의 시퀀스에 나타낸 바와 같이, 스포크(812)가 계속하여 점진적으로 채워질 수 있다.
도 10에 관한 논의로 다시 돌아가면, 단계(1010)에서, 본 시스템(100)은 선택 기준이 충족되었는지를 결정한다. 하나의 실시예에서, 머리가 특정 양만큼 움직이는 것에 의해 선택 기준이 충족된다. 이와 같이, 본 시스템(100)은 사용자의 머리 위치가 선택 지점에 도달하는지를 결정한다. 하나의 실시예에서, 이 선택 지점은 특정 양의 움직임(예컨대, 머리 회전)을 지칭한다. 선택 지점은 선택 기준의 하나의 예이다. 이 선택 기준이 충족될 때, 본 시스템은, 단계(1012)에서, 메뉴 항목을 선택한다. 도 11c를 참조하면, 사용자의 머리가 규정된 양만큼 움직였을 때(예컨대, 회전되었을 때) “더 크게” 메뉴 항목(810)이 선택된다. 이 양은 전술한 머리 벡터가 그의 우측에 있는 또는 그의 좌측(그러나 허브의 우측)에 있는 더 크게 메뉴 항목(810)을 가리키고 있도록 되어 있을 수 있다.
유의할 점은, 메뉴 항목(810)의 선택 후에, 스포크 메뉴(808)가 사라질 수 있다는 것이다. 예를 들어, 도 9b에서 “완료” 메뉴 항목(810)의 선택 후에, 도 9b의 스포크 메뉴(808)가 사라질 수 있을 것이다. 다른 스포크 메뉴가 기존의 스포크 메뉴를 대체하는 것[본 명세서에서 스포크 메뉴(808)를 “생성”하는 것이라고 지칭됨]도 가능하다. 예를 들어, 도 9a의 볼륨 메뉴 항목의 선택 시에, 도 9b의 메뉴 항목이 생성될 수 있을 것이다. 스포크 메뉴(808)를 사라지게 하기 위해, 사용자가 머리를 끄덕이는 것과 같은 다른 기법들이 사용될 수 있다.
사용자가 선택을 하기 위해(즉, 선택 기준을 달성하기 위해) 머리를 움직일 필요가 있는 정도는 조정 가능한 파라미터일 수 있다. 이 감도는 스포크 메뉴(808)의 구성에 의존할 수 있을 것이다. 예를 들어, 어떤 메뉴 항목들(810)이 다른 것들보다 허브(816)로부터 더 멀리 떨어져 위치될 수 있을 것이다(여기서 더 멀리 떨어져 있다는 것은, 하나의 예로서, 머리 회전의 정도의 면에서 측정될 수 있음).
하나의 실시예에서, 스포크(812)가 특정 정도로 채워질 때 선택 지점에 도달된다. 하나의 예로서, 이것은, 도 11c에 나타낸 바와 같이, 스포크(812)가 메뉴 항목(810)에 도달할 때일 수 있다. 이 선택 기법은 앞서 기술된 “성장 모델” 기법과 관련하여 사용될 수 있다. 그렇지만, 이는 또한 사용자가 머리를 계속하여 더 움직일 때(예컨대, 회전할 때) 스포크(812)를 점진적으로 채우는 것들과 같은 다른 기법들과 관련하여 사용될 수 있다.
선택 기준이 충족되지 않는 경우[단계(1010)에서 아니오], 제어가 단계(1011)로 넘어간다. 단계(1011)에서, 본 시스템은 사용자가 여전히 동일한 스포크에 초점을 맞추고 있는지를 결정한다. 그러한 경우, 제어는 선택 기준이 충족되는지를 결정하기 위해 단계(1010)로 넘어간다. 유의할 점은, 사용자가 동일한 스포크에 계속 초점을 맞추고 있는 동안, 사용자의 초점에 따라, 스포크가 점차적으로 더 많이 채워질 수 있거나, 점차적으로 “비워질” 수 있다는 것이다.
사용자가 스포크(812)를 따라 머리를 움직이기 시작하지만, 이어서 마음을 바꾸고 사용자의 초점을 중앙 허브(816)로 또는 다른 스포크(812)로 복귀시키는 것이 가능하다. 사용자가 동일한 스포크에 더 이상 초점을 맞추고 있지 않은 경우에[단계(1011)에서 아니오], 이것은 단계(1014)에서 테스트된다. 하나의 옵션은 사용자가 현재 초점을 맞추고 있는(예컨대, 머리가 그 쪽으로 배향되어 있는) 스포크를 하이라이트하기 위해 단계(1008)로 복귀하는 것이다. 사용자의 머리가 허브(816) 근방의 안전 지대로 배향되어 있다고 결정할 때 단계(1014)로부터 시작되는 다른 옵션은 단계(1004)로 복귀하는 것이다. 이것은 단계(1014)의 “허브” 조건으로 나타내어져 있다.
또 다른 가능한 경우는 사용자가 스포크 메뉴(808) 근방의 어느 곳도 더 이상 보고 있지 않다고 결정되는 경우 단계(1016)에서 종료하는 것이다. 이것은 제어를 단계(1016)로 넘기는 단계(1014)의 “스포크 메뉴로부터 멀어지는 쪽” 조건으로 나타내어져 있다.
도 10의 프로세스 동안, 본 시스템(100)은 사용자에게 피드백을 제공할 수 있다. 이것은, 하나의 예로서, 오디오 피드백일 수 있다. 이 피드백은 각종의 이벤트들과 관련하여 제공될 수 있을 것이다. 예를 들어, 스포크(812)가 점진적으로 채워질 때, 사용자가 진행 중임을 알도록 돕기 위해 오디오 피드백이 제공될 수 있을 것이다.
도 10의 프로세스에서, 사용자는 본 시스템(100)으로부터의 응답을 트리거함이 없이 눈을 움직일 수 있다. 이러한 이유는 이 기법에서 사용되는 것이 머리 추적이기 때문이다. 이것은 사용자가 스포크 메뉴(808)에 있는 다른 메뉴 항목들(810)을 스캔하기 위해 눈은 움직이면서 머리는 비교적 움직이지 않은 채로 유지할 수 있게 한다. 사용자는, 이전에 논의된 바와 같이, “안전 지대” 등이 있는 경우 머리를 완전히 움직이지 않은 채로 유지할 필요가 없다.
도 12는 스포크 메뉴(808) 상의 메뉴 항목(810)의 선택을 제공하는 프로세스(1200)의 하나의 실시예의 플로우차트이다. 프로세스(1200)는 도 7로부터의 단계(714) 이후에 수행될 수 있다. 하나의 실시예에서, 단계(714)의 결과, 스포크 메뉴(808)이 활성화된다는 것을 상기한다. 예를 들어, 도 8d 또는 도 9a에 나타낸 것과 같은 스포크 메뉴(808)가 활성화된다. 프로세스(1200)에서, 눈 추적이 사용된다.
프로세스(1200)의 시작에서, 본 시스템(100)은 사용자의 주의가 스포크 메뉴(808)의 허브(816)에 초점이 맞춰져 있는 것으로 가정할 수 있다. 이것은 단계(1202)에 기술되어 있다. 허브(816)가 핸들(806)의 끝에 또는 그 근방에 위치해 있을 수 있는 경우에, 이 가정이 행해질 수 있다. 앞서 살펴본 바와 같이, 허브(816)은 물론 스포크들(812)이 HMD(2)에 제시될 필요가 없다. 또한, 사용자가 허브(816)의 위치를 실제로 직접 보고 있을 필요가 없다.
단계(1204)는 사용자의 눈 시선을 추적하는 것이다. 이것은 이미 논의되었다. 눈 추적은 프로세스(1200) 전체에 걸쳐 계속 수행될 수 있다.
프로세스(1200)에서, 본 시스템(100)은 거짓 양성을 방지하기 위해 각종의 기법들을 사용할 수 있다. 하나의 실시예에서, 본 시스템(100)은, 사용자로 하여금 현재 선택을 위해 눈을 사용하고 있다는 신호를 제공하게 하는 것에 의해, 부적절한 선택을 하는 일 없이 사용자가 스포크 메뉴 항목들(810)을 조사할 수 있게 한다. 이와 같이, 단계(1206)를 수행하기 위한 조건은 눈 시선을 분석하는 모드에 들어간 것이다.
단계(1206)에서, 본 시스템은 사용자의 눈 시선이 허브(816)로부터 멀어지는 쪽으로 이동했는지를 결정한다. 본 시스템이, 눈 시선이 어떤 규정된 양만큼 움직이지 않는 한, 이것을 의미 있는 눈 움직임인 것으로 간주하지 않도록 허브(816) 근방에 어떤 “안전 지대”가 있을 수 있다. 눈 움직임이 측정되는 방식이 변할 수 있다.
눈 움직임이 있는 경우, 본 시스템(100)은, 단계(1208)에서, 관련 스포크(812)를 하이라이트한다. 하나의 실시예에서, 스포크(812)의 일부분만이 하이라이트된다. 이 부분은 허브(816)에 가장 가까운 부분일 수 있다. 하나의 실시예에서, 스포크(812)가 점진적으로 채워지는 양은 사용자가 눈을 얼마나 멀리 움직였는지(예컨대, 회전시켰는지)에 의존한다. 도 11a 내지 도 11c의 이전에 논의된 예들은 눈 시선에 기초하여 스포크를 점진적으로 채우는 것에 적용 가능하다. 머리 움직임에서와 같이, 스포크(812)를 채우는 것이 눈 움직임에 대해 상이한 감도들을 가질 수 있을 것이다.
머리 움직임의 예에서와 같이, 일부 스포크들(812)은 “성장 모델”이라고 지칭될 수 있는 방식으로 채워진다. 이 경우에, 본 시스템(100)이 단계(1206)에서 사용자가 특정 양만큼 눈을 움직인 것으로 결정할 때, 스포크(812)가 점진적으로 채워지기 시작한다. 사용자가 허브(812) 근방에서 “안전 지대” 밖에 눈 위치를 유지하는 한, 스포크(812)가 계속 점진적으로 채워질 수 있다. 이와 같이, 사용자의 눈이 움직이고 있지 않더라도, 도 11a 내지 도 11c의 시퀀스에 나타낸 바와 같이, 스포크(812)가 계속하여 점진적으로 채워질 수 있다.
도 12에 관한 논의로 다시 돌아가면, 단계(1210)에서, 본 시스템(100)은 선택이 트리거되었는지를 결정한다. 하나의 실시예에서, 눈이 특정 양만큼 움직이는 것에 의해 선택 지점이 트리거된다. 하나의 실시예에서, 본 시스템(100)은 눈이 어떤 규정된 기간 동안 메뉴 항목(810)(또는 다른 선택 지점) 근방에서 “배회”하는지를 결정한다. 하나의 실시예에서, 본 시스템(100)은 사용자의 눈 시선이 메뉴 항목(810)(또는 다른 선택 지점) 근방에 있는 동안 부가의 선택 이벤트가 일어나는지를 결정한다. 예를 들어, 사용자는 선택하라는 음성 명령을 사용하거나, 손 움직임을 사용하거나, HMD(2)(또는 안경다리)의 영역을 터치하거나, 기타를 할 수 있다. 이상은, 적어도 부분적으로, 눈 시선에 기초하는 선택 기준의 모든 예들이다.
사용자가 선택을 하기 위해 눈을 움직일 필요가 있는 정도는 조정 가능한 파라미터일 수 있다. 이 감도는 스포크 메뉴(808)의 구성에 의존할 수 있을 것이다.
하나의 실시예에서, 스포크(812)가 특정 정도로 채워질 때 선택 지점에 도달된다. 하나의 예로서, 이것은, 도 11c에 나타낸 바와 같이, 스포크(812)가 메뉴 항목(810)에 도달할 때일 수 있다. 이 선택 기법은 앞서 기술된 “성장 모델” 기법과 관련하여 사용될 수 있다. 그렇지만, 이는 또한 사용자가 눈을 계속하여 더 움직일 때 스포크(812)를 점진적으로 채우는 것들과 같은 다른 기법들과 관련하여 사용될 수 있다.
선택 기준이 충족되지 않는 경우[단계(1210)에서 아니오], 제어가 단계(1211)로 넘어간다. 단계(1211)에서, 본 시스템은 사용자가 여전히 동일한 스포크에 초점을 맞추고 있는지를 결정한다. 그러한 경우, 제어는 선택 기준이 충족되는지를 결정하기 위해 단계(1210)로 넘어간다. 유의할 점은, 사용자가 동일한 스포크에 계속 초점을 맞추고 있는 동안, 사용자의 초점에 따라, 스포크가 점차적으로 더 많이 채워질 수 있거나, 점차적으로 “비워질” 수 있다는 것이다.
사용자가 스포크(812)를 따라 눈 시선을 움직이기 시작하지만, 이어서 마음을 바꾸고 사용자의 초점을 중앙 허브(816)로 또는 다른 스포크(812)로 복귀시키는 것이 가능하다. 본 시스템이 사용자가 동일한 스포크에 더 이상 초점을 맞추고 있지 않다고 결정하는 경우[단계(1211)에서 아니오], 눈 시선에 기초하여 취할 조치를 결정하기 위해 제어가 단계(1214)로 넘어간다. 하나의 옵션은 사용자가 사용자의 초점을 이동시켜 간(예컨대, 눈 시선이 그 쪽으로 배향되어 있는) 스포크를 하이라이트하기 위해 단계(1208)로 복귀하는 것이다.
사용자의 눈 시선이 허브(816) 근방의 안전 지대로 배향되어 있다고 결정할 때 다른 옵션은 단계(1204)로 복귀하는 것이다. 또 다른 가능한 경우는 사용자가 스포크 메뉴(808) 근방의 어느 곳도 더 이상 보고 있지 않다고 결정되는 경우 단계(1216)에서 종료하는 것이다.
도 10 및 도 12의 논의에서, 스포크들(812)이 점진적으로 채워진다. 그렇지만, 이것이 절대적으로 요구되는 것은 아니다. 하나의 실시예에서, 메뉴 항목(810) 근방에 초점이 맞춰지는 것과 같이, 사용자의 초점이 어떤 기준을 충족시킨 것에 응답하여 스포크(812)가 한꺼번에 채워진다.
스포크 메뉴(808)에 대해 아주 다양한 구성들이 사용될 수 있다. 도 13은 메뉴 항목들(810)이 허브(816)로부터 대각선으로 있는 하나의 실시예를 나타낸 것이다. 다시 말하지만, 스포크들(812)이 HMD(2)에 항상 제시될 필요는 없다. 살펴본 바와 같이, 주어진 스포크(812)가 사용자의 초점에 응답하여 점진적으로 채워지거나 자랄 수 있다. 허브(816)가 결코 디스플레이되지 않을 수 있다.
도 14a 및 도 14b는 스포크 메뉴(808)의 다른 실시예를 나타낸 것이다. 도 14a는 4 개의 메뉴 항목들(810)을 방사상 구성으로 나타내고 있다. 허브가 메뉴의 중앙에 있지만, 도 14a에서는 나타내어져 있지 않다. 도 14a에 스포크들도 나타내어져 있지 않다. 메뉴 항목들(810) 중 3 개는 사용자가 영화를 선택할 수 있게 하고, 다른 것은 하나의 메뉴를 뒤로 가게 하기 위한 것이다.
도 14b는 본 시스템(100)이 사용자의 초점이 허브로부터 영화 B에 대한 메뉴 항목(810) 쪽으로 이동되었다고 결정한 것에 응답하여 하나의 스포크(812)가 (적어도 부분적으로) 채워졌을 때의 이 실시예를 나타낸 것이다. 예를 들어, 본 시스템(100)은 사용자의 머리가 어떤 미리 규정된 양만큼 아래쪽으로 회전했다고 결정하였다. 도 10의 논의에서와 같이, 스포크(812)를 채우기 시작하기 전에 얼마간의 움직임을 허용하기 위해 중앙 허브 주위에 안전 지대가 있을 수 있다. 스포크(812)는 점진적으로 채워지거나 한꺼번에 채워질 수 있다. 스포크(812)는 또한, 사용자의 초점에 따라, 점진적으로 또는 한꺼번에 비워질 수 있다. 도 10 또는 도 12와 관련하여 논의된 다른 기법들이 사용될 수 있다. 이 예에서, 스포크(812)가 파이 형상으로 되어 있다. 스포크(812)에 대해 많은 다른 형상들이 사용될 수 있다.
객체(802)와 연관된 2 개 이상의 사용자 선택 심볼(804)이 있을 수 있다. 도 15는 객체(802)와 연관된 제1 사용자 선택 심볼(804a) 및 제2 사용자 선택 심볼(804b)이 있는 일례를 나타낸 것이다. 제2 사용자 선택 심볼(804b)은 사용자가 그에 또는 그 근방에 주의를 집중한 것에 응답하여 그로부터 연장된 핸들(806)을 가진다. 앞서 논의된 바와 같이, 사용자가 제2 사용자 선택 심볼(804b)로부터 멀어지는 쪽으로 핸들(806)을 따라 주의를 집중시키는 경우, 이것은 객체(802)와 연관된 어떤 메뉴 요소를 활성화시킬 것이다. 사용자는 또한 제1 사용자 선택 심볼(804a)에 주의를 집중시키는 것에 의해 그를 선택할 수 있다.
하나의 실시예에서, 본 시스템(100)은 사용자가 대체로 객체(802)의 방향으로 바라보고 있는 것에 응답하여 심볼들(804a, 804b) 둘 다를 객체(802) 상에 제시한다. 본 시스템(100)은 사용자가 심볼(804a)을 바라보고 있는 것에 응답하여 그 심볼(804a)을 하이라이트하고, 사용자가 심볼(804b)을 바라보고 있는 것에 응답하여 그 심볼(804b)을 하이라이트한다. 이전에 논의된 바와 같이, 초점이 머리 추적 및/또는 눈 추적에 의해 결정될 수 있다.
하나의 실시예에서, 사용자 선택 심볼(804)의 형상은 핸들(806)이 연장될 방향을 식별하는 방식으로 되어 있다. 도 16은 사용자 선택 심볼(804c)이 핸들(806)이 연장된 방향을 가리키고 있는 하나의 실시예를 나타낸 것이다. 사용자 선택 심볼(804d)도 사용자가 그 심볼(804d)에 초점을 맞춘 것에 응답하여 핸들(806)이 그로부터 연장될 방향을 나타내기 위해 특정의 방향을 가리킨다.
하나의 실시예에서, 심볼(804)과 관련하여 사용자의 눈 또는 머리 벡터가 있는 곳을 나타내는 심볼(804)에 관한 피드백이 있다. 예를 들어, 심볼(804)은 사용자의 눈이 초점을 맞추고 있는 곳으로 자기적으로 끌려가는 우주진을 가지는 혜성처럼 보인다. 이것은 심볼(804)이 아주 작을 때 사용자가 초점을 맞추고 있는 곳을 알도록 하는 데 도움을 준다. 이는 또한 본 시스템이 보이지 않는 커서를 사용하고 있을 때 도움을 준다. 예를 들어, 이것은 사용자가 사용자 인터페이스를 활성화시키기 위해 사용자의 초점을 약간 오른쪽으로 또는 약간 위로/아래로/왼쪽으로 이동시킬 필요가 있는지의 피드백을 제공하는 것에 의해 사용자에게 도움을 줄 수 있다.
하나의 실시예에서, 스포크 메뉴들(808)은 내포될 수 있다. 이것은 메뉴 항목(810)의 선택이 다른 스포크 메뉴(808)를 생성할 수 있다는 것을 의미한다. 도 17은 내포된 스포크 메뉴(808)의 하나의 예를 나타낸 것이다. 이 예에서, 주 컨트롤 스포크 메뉴(808a)가 있다. 비디오 제어 메뉴 항목(810a)의 선택은 재생 컨트롤 스포크 메뉴(808b)를 생성한다. 슬레이트 조절 메뉴 항목(810a)의 선택은 슬레이트 컨트롤 스포크 메뉴(808c)를 생성한다. 유의할 점은, 전형적으로 한번에 이 스포크 메뉴들(808) 중 하나만이 제시될 필요가 있다는 것이다. 이와 같이, 비디오 메뉴 항목(810a)의 선택 시에, 주 컨트롤 스포크 메뉴(808a)가 사라질 수 있다. 유사한 방식으로, 슬레이트 조절 메뉴 항목(810a)의 선택 시에, 주 컨트롤 스포크 메뉴(808a)가 사라질 수 있다.
더 아래로 가서, 재생 컨트롤 스포크 메뉴(808b)에서의 볼륨 메뉴 항목(810c)의 선택은 볼륨 컨트롤 스포크 메뉴(808d)를 생성한다. 볼륨 컨트롤 스포크 메뉴(808d)는 사용자에게 피드백을 제공하는 다른 방식을 보여주고 있다. 하나의 실시예에서, 사용자는 볼륨을 변경하기 위해 볼륨 줄이기 메뉴 항목(810e) 또는 볼륨 높이기 메뉴 항목(810d)에 초점을 맞춘다. 하나의 실시예에서, 사용자는 입력을 제공하기 위해 메뉴 항목(810)과 연관된 스포크를 따라 주의를 집중시킨다. 예를 들어, 사용자는 사용자의 초점을 볼륨 메뉴 항목(810e)과 연관된 스포크(812)를 따라 이동시키는 것에 의해 볼륨을 제어할 수 있다. 볼륨이 스포크를 따라 있는 사용자의 초점의 위치에 의해 제어될 수 있다. 예를 들어, 볼륨 메뉴 항목(810e)에 가까울수록, 볼륨이 더 커진다. 대안적으로, 볼륨이 변하는 속도가 볼륨 스포크 메뉴 항목(810e)과 연관된 스포크를 따라 있는 사용자의 초점의 위치에 의해 제어될 수 있다. 예를 들어, 사용자의 초점이 볼륨 높이기 메뉴 항목(810d) 근방에 있을 때 볼륨이 보다 빠르게 증가할 수 있다. 볼륨 바(1712)는 사용자에게 피드백을 제공한다. 사용자 입력에 대한 유사한 제어가 다른 메뉴 항목들(810)과 연관된 스포크들에 의해 제공될 수 있다.
이상은 2 가지(또는 그 이상) 유형의 스포크들(812)이 있을 수 있다는 것을 나타낸다. 하나의 유형의 스포크(812)는 ”선택 스포크”라고 지칭될 수 있다. 선택 스포크의 결과, 메뉴 항목과 연관된 선택이 있을 수 있다. 예를 들어, 그 선택은 다른 스포크 메뉴를 생성할 수 있거나, 입력(예컨대, 재생 선택, 빨리 감기 선택 등)일 수 있다. 다른 유형의 스포크(812)는 ”크기” 스포크라고 지칭될 수 있다. 크기 스포크는 사용자가, 하나의 예로서, 값을 변경할 수 있게 할 것이다. 예를 들어, 사용자는 볼륨 레벨을 변경하거나, 빨리 감기의 속도를 변경하거나, 기타를 할 수 있다.
또한 도 17에서 슬레이트 컨트롤(808c)에 크기 조정 메뉴 항목(810f)이 나타내어져 있고, 그의 선택 시에 크기 조정 스포크 메뉴(808e)를 생성할 수 있다.
도 7의 논의에서 살펴본 바와 같이, 단계(714)의 하나의 가능한 경우는 사용자가 사용자의 초점을 핸들(806)의 끝으로 이동시키는 것에 의해 입력이 제공되는 것이다. 이것의 하나의 예는 키보드 상에서 글자들을 입력하는 것이다. 도 18은 핸들(806)을 따라 초점을 슬라이딩하는 것에 기초하여 사용자 입력을 가능하게 하는 하나의 실시예를 나타낸 것이다. 도 18은 다수의 사용자 인터페이스 심볼들(804)을 나타내고 있고, 그 각각은 영어 알파벳의 상이한 글자들과 연관되어 있다. 이 심볼들(804)은 HMD(2)에서 가상 영상들로서 사용자에게 제시된다. 심볼들(804)과 연관된 어떤 객체(802)가 있을 수 있지만, 그 객체가 도 18에 도시되어 있지 않다.
사용자가 심볼들(804) 중 하나를 바라볼 때, 본 시스템(100)은 그 심볼(804)을 하이라이트하고 핸들(804)을 심볼(806) 밖으로 자라나게 한다. 사용자는 이어서 사용자의 초점을 심볼(804)로부터, 심볼(804)로부터 먼 쪽에 있는 핸들(806)의 끝에 또는 그 근방에 있는 지점으로 이동시키는 것에 의해 그 글자를 선택할 수 있다. 글자의 선택을 수신하는 것은, 도 7의 단계(714)에 따라, 선택 기준을 충족시키기 위해 사용자의 초점이 핸들(806)을 따라 사용자 인터페이스 심볼(804)로부터 멀어지는 쪽으로 이동되었다고 결정한 것에 응답하여 사용자 인터페이스 요소를 활성화시키는 것의 하나의 예이다.
본 명세서에서의 기술에 대한 이상의 상세한 설명은 예시 및 설명을 위해 제시되어 있다. 이는 전수적이거나 본 기술을 개시된 정확한 형태로 제한하기 위한 것이 아니다. 이상의 개시 내용을 고려하여 많은 수정들 및 변형들이 가능하다. 본 기술의 원리들 및 그의 실제 응용을 가장 잘 설명하기 위해 상기한 실시예들이 선택되었으며, 그에 따라 통상의 기술자라면 다양한 실시예들에서 그리고 생각되는 특정의 사용에 적합한 다양한 수정들로 본 기술을 가장 잘 이용할 수 있게 된다. 본 기술의 범주는 첨부된 청구범위에 의해 한정되는 것으로 보아야 한다.
발명 요지가 구조적 특징들 및/또는 방법 동작들과 관련하여 기술되어 있지만, 첨부된 청구범위에 한정된 발명 요지가 앞서 기술된 구체적인 특징들 또는 동작들로 꼭 제한되는 것은 아님을 잘 알 것이다. 오히려, 앞서 기술된 구체적인 특징들 및 동작들은 청구항들을 구현하는 예시적인 형태들로서 개시되어 있다.

Claims (17)

  1. 사용자 인터페이스를 제공하는 방법에 있어서,
    투시형(see-through) 접안(near-eye) 디스플레이 디바이스를 착용한 사용자의 머리 배향을 추적하는 단계;
    상기 사용자의 머리 배향에 기초하여 사용자의 초점을 결정하는 단계;
    상기 사용자의 초점이 제1 선택 기준을 충족할 때 상기 사용자의 머리 배향에 기초하는 위치를 결정하는 단계;
    상기 사용자의 초점이 상기 제1 선택 기준을 충족하는 것에 응답하여, 상기 투시형 접안 디스플레이 디바이스에 복수의 메뉴 항목들을 갖는 스포크(spoke) 메뉴를 생성하는(spawning) 단계로서, 상기 복수의 메뉴 항목들은 상기 사용자의 머리 배향에 기초하는 상기 위치 주변에 디스플레이되는 것인, 상기 생성하는 단계;
    상기 사용자가 상기 위치로부터 상기 복수의 메뉴 항목들 중의 제1 메뉴 항목을 향하여 초점 이동을 나타내도록 자신의 머리 배향을 점진적으로(progressively) 움직이는 것에 응답하여, 상기 위치로부터 상기 복수의 메뉴 항목들 중의 제1 메뉴 항목을 향하여 스포크를 점진적으로 채우는 단계; 및
    제2 선택 기준을 충족시키도록 상기 사용자의 초점이 상기 위치로부터 상기 스포크를 따라 상기 제1 메뉴 항목을 향하여 이동하였다고 결정하는 것에 응답하여, 상기 제1 메뉴 항목을 활성화(activate)시키는 단계를 포함하는, 사용자 인터페이스 제공 방법.
  2. 제1항에 있어서,
    상기 사용자의 초점이 사용자 인터페이스 심볼에 있다고 결정하는 것에 응답하여, 상기 사용자 인터페이스 심볼로부터 멀어지는 쪽으로 연장되는 핸들을 상기 투시형 접안 디스플레이 디바이스에 디스플레이하는 단계를 더 포함하며, 상기 스포크 메뉴를 생성하는 단계는, 상기 제1 선택 기준을 충족시키도록 상기 사용자의 머리 배향이, 상기 사용자의 초점이 상기 핸들을 따라 상기 위치로 움직임을 나타내는 것에 응답하여 이루어지는 것인, 사용자 인터페이스 제공 방법.
  3. 제1항에 있어서, 상기 복수의 메뉴 항목들의 각각은, 상기 메뉴 항목과, 상기 사용자의 초점이 제1 선택 기준을 충족할 때의 상기 사용자의 머리 배향에 기초하는 상기 위치 사이의 스포크를 가지며, 상기 방법은,
    상기 사용자의 머리 배향이, 상기 사용자의 초점이 상기 위치로부터 상기 제1 메뉴 항목을 향하여 이동함을 나타내는 것에 응답하여, 상기 위치와 상기 제1 메뉴 항목 사이에 있는 스포크를 하이라이트시키는 단계를 더 포함하는, 사용자 인터페이스 제공 방법.
  4. 제1항에 있어서, 상기 제2 선택 기준은, 상기 머리 배향이 상기 사용자의 초점이 상기 제1 메뉴 항목에 도달하였음을 나타내는 것에 기초하는 것인, 사용자 인터페이스 제공 방법.
  5. 제3항에 있어서, 상기 스포크를 하이라이트시키는 단계는,
    상기 사용자의 머리 배향이, 상기 사용자의 초점이 상기 위치 근방의 안전 지대 밖에 있고 전반적으로 상기 스포크의 영역을 따름을 나타내는 경우, 상기 위치로부터 상기 제1 메뉴 항목을 향하여 상기 스포크를 계속해서 점진적으로 채우는 단계를 포함하는 것인, 사용자 인터페이스 제공 방법.
  6. 제5항에 있어서, 상기 제2 선택 기준은, 상기 스포크가 상기 제1 메뉴 항목에 도달하는 것에 기초하는 것인, 사용자 인터페이스 제공 방법.
  7. 디스플레이 시스템에 있어서,
    투시형 접안 디스플레이 디바이스와;
    상기 디스플레이 디바이스와 통신하는 로직을 포함하고, 상기 로직은,
    상기 투시형 접안 디스플레이 디바이스를 착용한 사용자의 머리 배향을 추적하고;
    상기 사용자의 머리 배향에 기초하여 사용자의 초점을 결정하고;
    상기 사용자의 초점이 제1 선택 기준을 충족할 때 상기 사용자의 머리 배향에 기초하는 위치를 결정하고;
    상기 사용자의 초점이 상기 제1 선택 기준을 충족하는 것에 응답하여, 상기 투시형 접안 디스플레이 디바이스에 복수의 메뉴 항목들을 갖는 스포크 메뉴를 생성하되, 상기 복수의 메뉴 항목들은 상기 사용자의 머리 배향에 기초하는 상기 위치 주변에 디스플레이되고;
    상기 사용자가 자신의 머리 위치를 점진적으로 움직여 사용자의 초점이 상기 위치로부터 상기 복수의 메뉴 항목들 중의 제1 메뉴 항목을 향하여 이동함을 나타내는 것에 응답하여, 상기 위치로부터 상기 제1 메뉴 항목을 향하여 스포크를 점진적으로 채우고;
    제2 선택 기준을 충족시키도록 상기 사용자의 초점이 상기 위치로부터 상기 위치와 상기 제1 메뉴 항목 사이의 스포크로 이동하였다고 결정하는 것에 응답하여 상기 제1 메뉴 항목을 활성화시키도록,
    구성되는 것인, 디스플레이 시스템.
  8. 제7항에 있어서, 상기 로직은 또한,
    상기 사용자의 머리 배향이 사용자 인터페이스 심볼에 있는 사용자의 초점을 나타낸다고 결정하는 것에 응답하여, 상기 사용자 인터페이스 심볼로부터 멀어지는 쪽으로 핸들을 상기 투시형 접안 디스플레이 디바이스에 디스플레이하도록 구성되며, 상기 로직은, 상기 제1 선택 기준을 충족시키도록 상기 사용자의 머리 배향이 상기 사용자의 초점이 상기 핸들을 따라 움직임을 나타내는 것에 응답하여 상기 스포크 메뉴를 생성하도록 구성되는 것인, 디스플레이 시스템.
  9. 제7항에 있어서, 상기 사용자의 머리 배향이 제1 선택 기준을 충족할 때의 상기 사용자의 초점에 기초하는 상기 위치는, 상기 스포크 메뉴의 중앙 허브이고, 상기 복수의 메뉴 항목들의 각각은 상기 메뉴 항목과 상기 중앙 허브 사이의 스포크와 연관되며, 상기 제1 메뉴 항목과 연관된 스포크는 제1 스포크이고, 상기 로직은 또한,
    상기 사용자의 머리 배향이, 상기 사용자의 초점이 상기 중앙 허브로부터 상기 제1 메뉴 항목을 향하여 이동함을 나타내는 것에 응답하여, 상기 제1 스포크를 하이라이트시키도록 구성되는 것인, 디스플레이 시스템.
  10. 제7항에 있어서, 상기 제2 선택 기준은, 사용자 머리 배향이 상기 사용자의 초점이 상기 제1 메뉴 항목에 도달하였음을 나타내는 것에 기초하는 것인, 디스플레이 시스템.
  11. 제9항에 있어서, 상기 로직은 또한,
    상기 사용자의 머리 배향이, 상기 사용자의 초점이 상기 중앙 허브 근방의 안전 지대 밖에 있고 전반적으로 상기 제1 스포크의 영역을 따른다는 것을 나타내는 경우, 상기 중앙 허브로부터 상기 제1 메뉴 항목으로 상기 제1 스포크를 계속해서 점진적으로 채우도록 구성되는 것인, 디스플레이 시스템.
  12. 제11항에 있어서, 상기 제2 선택 기준은 상기 제1 스포크가 상기 제1 메뉴 항목에 도달하는 것에 기초하는 것인, 디스플레이 시스템.
  13. 투시형 접안 디스플레이 디바이스에서 사용자 인터페이스를 제공하는 방법에 있어서,
    투시형 접안 디스플레이 디바이스를 착용한 사용자의 머리 배향을 추적하는 단계;
    상기 사용자의 머리 배향이 제1 선택 기준을 충족할 때 상기 사용자의 머리 배향에 기초하는 위치를 결정하는 단계;
    상기 사용자의 머리 배향이 상기 제1 선택 기준을 충족한다고 결정하는 것에 응답하여, 상기 투시형 접안 디스플레이 디바이스에 스포크 메뉴를 생성하는 단계로서, 상기 스포크 메뉴는, 상기 제1 선택 기준이 충족되었을 때 상기 사용자의 머리 배향에 기초하는 상기 위치에서 중앙 허브 주변에 복수의 메뉴 항목들을 포함하고, 상기 메뉴 항목들의 각각은 상기 메뉴 항목과 상기 중앙 허브 사이에 스포크를 갖는 것인, 상기 생성하는 단계;
    상기 사용자의 머리 배향이, 상기 사용자의 초점이 상기 중앙 허브 근방의 안전 지대 밖에 있으며 스포크들 중 제1 스포크를 따라 상기 제1 메뉴 항목을 향하여 점진적으로 움직임을 나타내는 경우에, 상기 중앙 허브로부터 상기 메뉴 항목들 중의 제1 메뉴 항목을 향하여 상기 제1 스포크를 점진적으로 더 많이 제시하는 단계; 및
    상기 머리 배향에 기초한 상기 사용자의 초점이 상기 중앙 허브로부터 상기 제1 스포크를 따라 제2 선택 기준을 충족시키도록 이동하였다고 결정하는 것에 응답하여 상기 제1 메뉴 항목을 활성화시키는 단계를 포함하는, 사용자 인터페이스 제공 방법.
  14. 제13항에 있어서, 상기 제1 메뉴 항목은, 상기 사용자의 머리 배향이 상기 안전 지대 밖에 있으며 상기 중앙 허브로부터 상기 제1 메뉴 항목으로의 경로를 전부 움직이지는 않은 상태에서 상기 스포크가 상기 제1 메뉴 항목에 도달한 것에 응답하여, 활성화되는 것인, 사용자 인터페이스 제공 방법.
  15. 제13항에 있어서, 상기 제1 메뉴 항목은, 상기 제2 선택 기준이 충족될 때까지 상기 사용자가 자신의 머리 배향을 점진적으로 상기 스포크를 따라 상기 중앙 허브로부터 상기 제1 메뉴 항목을 향하여 변경하는 것에 응답하여, 활성화되는 것인, 사용자 인터페이스 제공 방법.
  16. 제13항에 있어서,
    상기 사용자의 머리가 사용자 인터페이스 심볼에 배향되어 있다고 결정하는 것에 응답하여, 상기 사용자 인터페이스 심볼로부터 멀어지는 쪽으로 핸들을 상기 투시형 접안 디스플레이 디바이스에 디스플레이하는 단계를 더 포함하며, 상기 스포크 메뉴를 생성하는 단계는, 상기 사용자의 머리 배향이 상기 제1 선택 기준을 충족시키도록 상기 핸들을 따라 움직임에 응답하는 것인, 사용자 인터페이스 제공 방법.
  17. 제13항에 있어서,
    상기 사용자의 머리가 스포크들 중 어느 것을 향하여 배향되는지 나타내도록 상기 사용자의 머리 배향이 상기 중앙 허브로부터 상기 제1 메뉴 항목을 향하여 이동하는 것에 응답하여 상기 스포크를 하이라이트시키는 단계를 더 포함하는, 사용자 인터페이스 제공 방법.
KR1020167000651A 2013-06-12 2014-06-05 헤드 마운티드 디바이스를 사용한 사용자 초점 제어 그래픽 사용자 인터페이스 KR102219246B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/916,193 2013-06-12
US13/916,193 US9710130B2 (en) 2013-06-12 2013-06-12 User focus controlled directional user input
PCT/US2014/041121 WO2014200811A1 (en) 2013-06-12 2014-06-05 User focus controlled graphical user interface using a head mounted device

Publications (2)

Publication Number Publication Date
KR20160018792A KR20160018792A (ko) 2016-02-17
KR102219246B1 true KR102219246B1 (ko) 2021-02-22

Family

ID=51022486

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167000651A KR102219246B1 (ko) 2013-06-12 2014-06-05 헤드 마운티드 디바이스를 사용한 사용자 초점 제어 그래픽 사용자 인터페이스

Country Status (5)

Country Link
US (1) US9710130B2 (ko)
EP (1) EP3008567B1 (ko)
KR (1) KR102219246B1 (ko)
CN (1) CN105378632B (ko)
WO (1) WO2014200811A1 (ko)

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150015489A1 (en) * 2010-06-01 2015-01-15 Vladimir Vaganov System and method for digital recording of handpainted, handdrawn and handwritten information
US9377852B1 (en) * 2013-08-29 2016-06-28 Rockwell Collins, Inc. Eye tracking as a method to improve the user interface
EP2818948B1 (en) * 2013-06-27 2016-11-16 ABB Schweiz AG Method and data presenting device for assisting a remote user to provide instructions
CN103797761B (zh) * 2013-08-22 2017-02-22 华为技术有限公司 通信方法、客户端和终端
US9769585B1 (en) * 2013-08-30 2017-09-19 Sprint Communications Company L.P. Positioning surround sound for virtual acoustic presence
US10254920B2 (en) * 2013-12-01 2019-04-09 Upskill, Inc. Systems and methods for accessing a nested menu
US9285872B1 (en) * 2013-12-12 2016-03-15 Google Inc. Using head gesture and eye position to wake a head mounted device
US9817474B2 (en) * 2014-01-24 2017-11-14 Tobii Ab Gaze driven interaction for a vehicle
US9442631B1 (en) * 2014-01-27 2016-09-13 Google Inc. Methods and systems for hands-free browsing in a wearable computing device
US20170097656A1 (en) * 2014-03-18 2017-04-06 Telefonaktiebolaget Lm Ericsson (Publ) Controlling a target device
US9958935B2 (en) * 2014-05-07 2018-05-01 Verizon Patent And Licensing Inc. Methods and systems for facilitating remote control by a wearable computer system of an application being executed by a media content processing device
US20150362990A1 (en) * 2014-06-11 2015-12-17 Lenovo (Singapore) Pte. Ltd. Displaying a user input modality
JP6237504B2 (ja) * 2014-07-08 2017-11-29 株式会社デンソー 視線入力装置
USD824417S1 (en) 2014-08-22 2018-07-31 Adp, Llc Display screen or portion thereof with graphical user interface
US10943395B1 (en) * 2014-10-03 2021-03-09 Virtex Apps, Llc Dynamic integration of a virtual environment with a physical environment
US10073516B2 (en) 2014-12-29 2018-09-11 Sony Interactive Entertainment Inc. Methods and systems for user interaction within virtual reality scene using head mounted display
WO2016136837A1 (ja) * 2015-02-25 2016-09-01 京セラ株式会社 ウェアラブル装置、制御方法及び制御プログラム
US9959658B2 (en) * 2015-02-26 2018-05-01 Rovi Guides, Inc. Methods and systems for generating holographic animations
NZ773833A (en) * 2015-03-16 2022-07-01 Magic Leap Inc Methods and systems for diagnosing and treating health ailments
US11016302B2 (en) * 2015-03-17 2021-05-25 Raytrx, Llc Wearable image manipulation and control system with high resolution micro-displays and dynamic opacity augmentation in augmented reality glasses
CN106303652B (zh) * 2015-05-27 2019-09-06 阿里巴巴集团控股有限公司 一种界面元素的绘制方法及装置
JP6553418B2 (ja) * 2015-06-12 2019-07-31 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 表示制御方法、表示制御装置及び制御プログラム
US9898865B2 (en) * 2015-06-22 2018-02-20 Microsoft Technology Licensing, Llc System and method for spawning drawing surfaces
US10409443B2 (en) * 2015-06-24 2019-09-10 Microsoft Technology Licensing, Llc Contextual cursor display based on hand tracking
EP3115871A1 (en) * 2015-07-09 2017-01-11 Cogisen SRL Graphic user interface for selection by gaze or other input methods
USD804513S1 (en) * 2015-09-02 2017-12-05 Samsung Electronics Co., Ltd Display screen or portion thereof with graphical user interface
USD788158S1 (en) * 2015-09-02 2017-05-30 Samsung Electronics Co., Ltd. Display screen or portion thereof with animated graphical user interface
US20170092002A1 (en) * 2015-09-30 2017-03-30 Daqri, Llc User interface for augmented reality system
EP3367213A4 (en) * 2015-10-22 2019-04-17 LG Electronics Inc. MOBILE DEVICE AND CONTROL PROCESS THEREFOR
US10209785B2 (en) * 2016-02-02 2019-02-19 Microsoft Technology Licensing, Llc Volatility based cursor tethering
WO2017145154A1 (en) 2016-02-22 2017-08-31 Real View Imaging Ltd. Wide field of view hybrid holographic display
US10788791B2 (en) 2016-02-22 2020-09-29 Real View Imaging Ltd. Method and system for displaying holographic images within a real object
WO2017145158A1 (en) 2016-02-22 2017-08-31 Real View Imaging Ltd. Zero order blocking and diverging for holographic imaging
US11663937B2 (en) 2016-02-22 2023-05-30 Real View Imaging Ltd. Pupil tracking in an image display system
IL299497B2 (en) 2016-04-08 2024-02-01 Magic Leap Inc Augmented reality systems and methods with variable focus lens elements
EP3249497A1 (en) * 2016-05-24 2017-11-29 Harman Becker Automotive Systems GmbH Eye tracking
EP3465631B1 (en) * 2016-06-07 2020-07-08 Koninklijke KPN N.V. Capturing and rendering information involving a virtual environment
US20180046352A1 (en) * 2016-08-09 2018-02-15 Matthew Johnson Virtual cursor movement
CN106648047A (zh) * 2016-09-14 2017-05-10 歌尔科技有限公司 用于虚拟现实设备的焦点定位方法、装置及虚拟现实设备
KR20180041890A (ko) 2016-10-17 2018-04-25 삼성전자주식회사 가상 객체를 표시하는 방법 및 장치
CN107015637B (zh) * 2016-10-27 2020-05-05 阿里巴巴集团控股有限公司 虚拟现实场景下的输入方法和装置
US20180150204A1 (en) * 2016-11-30 2018-05-31 Google Inc. Switching of active objects in an augmented and/or virtual reality environment
JP6616023B2 (ja) * 2017-01-06 2019-12-04 株式会社ソニー・インタラクティブエンタテインメント 音声出力装置、ヘッドマウントディスプレイ、音声出力方法及びプログラム
AU2018225146A1 (en) 2017-02-23 2019-08-29 Magic Leap, Inc. Display system with variable power reflector
IL252056A (en) 2017-05-01 2018-04-30 Elbit Systems Ltd Head-up display device, system and method
CN108958590A (zh) * 2017-05-26 2018-12-07 成都理想境界科技有限公司 应用于头戴式显示设备的菜单操作方法及头戴式显示设备
US10957069B2 (en) * 2017-09-29 2021-03-23 Tobii Ab Head pose estimation from local eye region
US10877643B2 (en) 2018-03-15 2020-12-29 Google Llc Systems and methods to increase discoverability in user interfaces
US10831030B2 (en) * 2018-04-20 2020-11-10 Microsoft Technology Licensing, Llc Systems and methods for visually guided gaze-based targeting
CN109613982A (zh) * 2018-12-13 2019-04-12 叶成环 头戴式ar显示设备的显示交互方法
US11609675B2 (en) * 2018-12-19 2023-03-21 Google Llc Placement of objects in an augmented reality environment
CN111722716B (zh) * 2020-06-18 2022-02-08 清华大学 眼动交互方法、头戴式设备和计算机可读介质
WO2022155113A1 (en) * 2021-01-14 2022-07-21 Sterling Labs Llc Method and device for visualizing multi-modal inputs
US11797081B2 (en) * 2021-08-20 2023-10-24 Huawei Technologies Co., Ltd. Methods, devices and media for input/output space mapping in head-based human-computer interactions
US20230418371A1 (en) * 2022-06-24 2023-12-28 Apple Inc. Controlling a Device Setting Using Head Pose

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130135353A1 (en) 2011-11-28 2013-05-30 Google Inc. Head-Angle-Trigger-Based Action

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6009210A (en) 1997-03-05 1999-12-28 Digital Equipment Corporation Hands-free interface to a virtual reality environment using head tracking
CA2233047C (en) 1998-02-02 2000-09-26 Steve Mann Wearable camera system with viewfinder means
US6152563A (en) 1998-02-20 2000-11-28 Hutchinson; Thomas E. Eye gaze direction tracker
US7121946B2 (en) 1998-08-10 2006-10-17 Cybernet Systems Corporation Real-time head tracking system for computer games and other applications
US7883415B2 (en) 2003-09-15 2011-02-08 Sony Computer Entertainment Inc. Method and apparatus for adjusting a view of a scene being displayed according to tracked head motion
US7412077B2 (en) 2006-12-29 2008-08-12 Motorola, Inc. Apparatus and methods for head pose estimation and head gesture detection
KR100978829B1 (ko) * 2008-02-01 2010-09-02 주식회사 오 코스모스 단어예측 입력방법 및 그 방법이 구현되는 전자장치
KR101008581B1 (ko) * 2008-03-06 2011-01-17 주식회사 오 코스모스 데이터 입력장치
US8194075B2 (en) * 2008-10-01 2012-06-05 International Business Machines Corporation Method and system for generating and displaying an interactive dynamic list view of multiply connected objects
EP2438504A1 (en) * 2009-06-05 2012-04-11 Dassault Systemes SolidWorks Corporation Predictive target enlargement
US8799775B2 (en) * 2009-09-25 2014-08-05 Apple Inc. Device, method, and graphical user interface for displaying emphasis animations for an electronic document in a presentation mode
DE102009049073A1 (de) * 2009-10-12 2011-04-21 Metaio Gmbh Verfahren zur Darstellung von virtueller Information in einer Ansicht einer realen Umgebung
JP4679661B1 (ja) * 2009-12-15 2011-04-27 株式会社東芝 情報提示装置、情報提示方法及びプログラム
US8976086B2 (en) 2010-12-03 2015-03-10 Esight Corp. Apparatus and method for a bioptic real time video system
US9213405B2 (en) 2010-12-16 2015-12-15 Microsoft Technology Licensing, Llc Comprehension and intent-based content for augmented reality displays
US9727132B2 (en) 2011-07-01 2017-08-08 Microsoft Technology Licensing, Llc Multi-visor: managing applications in augmented reality environments
US20130021374A1 (en) * 2011-07-20 2013-01-24 Google Inc. Manipulating And Displaying An Image On A Wearable Computing System
BR112014003632A2 (pt) * 2011-08-19 2017-03-21 Apple Inc conteúdo interativo para livros digitais
US9035878B1 (en) * 2012-02-29 2015-05-19 Google Inc. Input system
CN104185986A (zh) * 2012-03-30 2014-12-03 索尼公司 图像处理装置、图像处理方法及程序

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130135353A1 (en) 2011-11-28 2013-05-30 Google Inc. Head-Angle-Trigger-Based Action

Also Published As

Publication number Publication date
EP3008567A1 (en) 2016-04-20
CN105378632A (zh) 2016-03-02
KR20160018792A (ko) 2016-02-17
US20140372944A1 (en) 2014-12-18
EP3008567B1 (en) 2018-07-25
US9710130B2 (en) 2017-07-18
WO2014200811A1 (en) 2014-12-18
CN105378632B (zh) 2019-01-08

Similar Documents

Publication Publication Date Title
KR102219246B1 (ko) 헤드 마운티드 디바이스를 사용한 사용자 초점 제어 그래픽 사용자 인터페이스
US9727132B2 (en) Multi-visor: managing applications in augmented reality environments
EP2652940B1 (en) Comprehension and intent-based content for augmented reality displays
KR102208376B1 (ko) Hmd 상의 하이브리드 월드/바디 락 hud
CA2820950C (en) Optimized focal area for augmented reality displays
US9116666B2 (en) Gesture based region identification for holograms
EP2834723B1 (en) Touch sensitive user interface
US8884984B2 (en) Fusing virtual content into real content
US20160131902A1 (en) System for automatic eye tracking calibration of head mounted display device
US20130342572A1 (en) Control of displayed content in virtual environments

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant