KR20160080109A - 사용자 인터페이스 제어를 위한 시스템 및 기법 - Google Patents

사용자 인터페이스 제어를 위한 시스템 및 기법 Download PDF

Info

Publication number
KR20160080109A
KR20160080109A KR1020167014520A KR20167014520A KR20160080109A KR 20160080109 A KR20160080109 A KR 20160080109A KR 1020167014520 A KR1020167014520 A KR 1020167014520A KR 20167014520 A KR20167014520 A KR 20167014520A KR 20160080109 A KR20160080109 A KR 20160080109A
Authority
KR
South Korea
Prior art keywords
pointer
user
logic
point
computing system
Prior art date
Application number
KR1020167014520A
Other languages
English (en)
Other versions
KR101844390B1 (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 KR20160080109A publication Critical patent/KR20160080109A/ko
Application granted granted Critical
Publication of KR101844390B1 publication Critical patent/KR101844390B1/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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/002Specific input/output arrangements not covered by G06F3/01 - G06F3/16
    • G06F3/005Input arrangements through a video camera
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/0304Detection arrangements using opto-electronic means
    • G06K9/00355
    • G06T7/004
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/20Movements or behaviour, e.g. gesture recognition
    • G06V40/28Recognition of hand or arm movements, e.g. recognition of deaf sign language

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Psychiatry (AREA)
  • Social Psychology (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

사용자 인터페이스(UI) 제어를 위한 시스템들 및 기법들의 실시예들이 본원에 개시되어 있다. 일부 실시예들에서, UI 제어 시스템은 컴퓨팅 시스템의 사용자의 신체 상의 표지점들의 위치들을 결정하고, 표지점 위치들에 적어도 부분적으로 기초하여 포인터를 결정하며, 포인터에 적어도 부분적으로 기초하여 컴퓨팅 시스템의 UI의 UI 요소를 식별할 수 있다. 다른 실시예들이 기술되고 그리고/또는 청구될 수 있다.

Description

사용자 인터페이스 제어를 위한 시스템 및 기법{SYSTEMS AND TECHNIQUES FOR USER INTERFACE CONTROL}
관련 출원의 상호 참조
본 출원은 2014년 1월 3일자로 출원된, 발명의 명칭이 "SYSTEMS AND TECHNIQUES FOR USER INTERFACE CONTROL"인 미국 가특허 출원 제61/923,595호를 우선권 주장하고, 그 전체 내용이 그대로 본원에 포함된다.
기술 분야
본 개시내용은 일반적으로 사용자 인터페이스(UI)의 분야에 관한 것이며, 더욱 상세하게는, UI 제어에 관한 것이다.
컴퓨팅 시스템들에 대한 종래의 입력 디바이스들은 사용자가 제공할 수 있는 가능한 입력들의 범위를 제약하고, 시스템과 효과적으로 상호작용하기 위해 사용자가 인위적인 움직임들을 학습하고 사용하는 것을 종종 필요로 한다. 제스처 기반 인터페이스가 제안되었지만, 제한된 유연성, 좋지 않은 정확도, 및 경험이 없는 사용자들에 대한 높은 진입 장벽을 겪는다.
실시예들은 첨부 도면들과 관련한 이하의 상세한 설명에 의해 용이하게 이해될 것이다. 이 설명을 용이하게 하기 위해, 유사한 참조 번호들은 유사한 구조 요소들을 가리킨다. 실시예들은 첨부 도면들의 도면들에, 제한이 아닌 예로서, 예시되어 있다.
도 1은 다양한 실시예들에 따른, 사용자 인터페이스(UI) 제어를 위해 구성된 예시적인 컴퓨팅 시스템의 블록도.
도 2는 다양한 실시예들에 따른, 도 1의 컴퓨팅 시스템에 의해 구현될 수 있는 예시적인 UI 제어 시스템의 블록도.
도 3은 다양한 실시예들에 따른, 도 2의 UI 제어 시스템에 의해 사용자의 신체의 한 부분 상에서 식별될 수 있는 다수의 표지점들을 나타낸 도면.
도 4는 다양한 실시예들에 따른, 다중 위치 포인터(multi-location pointer)를 나타낸 도면.
도 5는 다양한 실시예들에 따른, 도 4의 다중 위치 포인터가 다수의 UI 요소들 중에서 하나의 UI 요소를 식별하는 데 사용되는 구성을 나타낸 도면.
도 6 내지 도 9는 다양한 실시예들에 따른, 다중 위치 포인터들 - 그 각각은 하나 이상의 표지점 위치들에 기초하는 경계들을 갖는 구역을 포함함 - 을 나타낸 도면.
도 10은 다양한 실시예들에 따른, 도 9의 다중 위치 포인터가 다수의 UI 요소들 중에서 하나의 UI 요소를 식별하는 데 사용되는 구성을 나타낸 도면.
도 11은 다양한 실시예들에 따른, 다수의 구역들을 포함하는 다중 위치 포인터를 나타낸 도면.
도 12는 다양한 실시예들에 따른, 도 11의 다중 위치 포인터가 다수의 UI 요소들 중에서 하나의 UI 요소를 식별하는 데 사용되는 구성을 나타낸 도면.
도 13은 다양한 실시예들에 따른, 가상 상호작용 영역(1302)을 포함하는 구성을 나타낸 도면.
도 14a, 도 14b, 도 15a 및 도 15b는 다양한 실시예들에 따른, 가상 포인터의 동적 시각적 표시자를 포함하는 UI 디스플레이들을 나타낸 도면.
도 16은 다양한 실시예들에 따른, 베이스 포인터(base pointer)가 다수의 UI 요소들 중에서 하나의 UI 요소를 식별하는 데 사용되는 구성을 나타낸 도면.
도 17a, 도 17b, 도 18a 및 도 18b는 다양한 실시예들에 따른, 식별된 UI 요소를 선택하기 위해 도 2의 UI 제어 시스템에 의해 인식될 수 있는 다양한 제스처들을 나타낸 도면.
도 19는 다양한 실시예들에 따른, 식별된 UI 요소의 선택에 대한 UI 디스플레이를 나타낸 도면.
도 20은 다양한 실시예들에 따른, 식별된 UI 요소의 선택에 대한 UI 디스플레이를 나타낸 도면.
도 21 내지 도 23은 다양한 실시예들에 따른, 사용자가 UI 요소를 가리키기 위해 자신의 손을 사용할 수 있는 3가지 상이한 방식들을 나타낸 도면.
도 24 내지 도 29는 다양한 실시예들에 따른, 예시적인 UI 제어 프로세스들의 흐름도.
사용자 인터페이스(UI) 제어를 위한 시스템들 및 기법들의 실시예들이 본원에 개시되어 있다. 예를 들어, 일부 실시예들에서, UI 제어 시스템은 컴퓨팅 시스템의 사용자의 신체 상의 표지점들의 위치들을 (예컨대, 3차원에서 사용자의 손에 있는 표시점들의 위치 및 움직임을 추적하는 것에 의해) 결정하고, 표지점 위치들에 적어도 부분적으로 기초하여 포인터를 결정하며, 포인터에 적어도 부분적으로 기초하여 컴퓨팅 시스템의 UI의 UI 요소를 식별할 수 있다. UI 요소의 식별 및 후속하는 선택은, 예를 들어, 사용자의 움직임들의 위치들을 컴퓨팅 시스템의 디스플레이에 매핑하는 것에 의해, 또는 사용자에 의해 수행되는 특정 제스처들을 이해하는 것에 의해, 사용자가 UI와 연관된 컴퓨팅 시스템을 제어할 수 있게 할 것이다. 일부 실시예들에서, 표지점 위치들에 기초한 포인터가 (종래에 마우스 커서로 행해지는 바와 같이) 디스플레이에 시각적으로 표현될 수 있고, 사용자가 디스플레이에서의 UI 요소들과 상호작용할 때 그 표현이 변할 수 있다. 일부 실시예들에서, 본원에 개시되는 시스템들 및 기법들은 2차원 컴퓨터 화면 또는 3차원 디스플레이와 같은 가상 환경의 제어가, 복잡한 사용자 인터페이스 경험들의 생성을 지원하면서, 사용자의 손, 손가락 및/또는 사용자의 신체의 다른 부분들의 자유롭고 자연스런 움직임들에 의해 달성될 수 있는 사용자 상호작용 메커니즘(예컨대, "유효 포인터(effective pointer)")을 제공할 수 있다.
이하의 상세한 설명에서, 본원의 일부를 형성하는 첨부 도면들을 참조하고, 도면들에서 유사한 참조 번호들은 도면들 전체에 걸쳐 유사한 부분들을 가리키며, 실시될 수 있는 실시예들이 예시로서 도시되어 있다. 다른 실시예들이 이용될 수 있다는 것과 본 개시내용의 범주를 벗어남이 없이 구조적 또는 논리적 변경들이 행해질 수 있다는 것을 잘 알 것이다. 따라서, 이하의 상세한 설명을 제한적인 의미로 보아서는 안 되고, 실시예들의 범주는 첨부된 청구항들 및 그의 등가물들에 의해 한정된다.
다양한 동작들이, 청구된 발명 요지를 이해하는 데 가장 도움이 되는 방식으로, 다수의 개별 행동들 또는 동작들로서 차례로 기술될 수 있다. 그렇지만, 설명의 순서는 이 동작들이 꼭 순서 의존적(order dependent)임을 암시하는 것으로 해석되어서는 안 된다. 상세하게는, 이 동작들이 제시의 순서로 수행되지 않을 수 있다. 기술된 동작들이 기술된 실시예와 상이한 순서로 수행될 수 있다. 다양한 부가의 동작들이 수행될 수 있고 그리고/또는 기술된 동작들이 부가의 실시예들에서 생략될 수 있다.
본 개시내용의 목적상, "A 및/또는 B"라는 문구는 (A), (B), 또는 (A 및 B)를 의미한다. 본 개시내용의 목적상, "A, B, 및/또는 C"라는 문구는 (A), (B), (C), (A 및 B), (A 및 C), (B 및 C), 또는 (A, B 및 C)를 의미한다.
본 설명은 "일 실시예에서" 또는 "실시예들에서"와 같은 문구들을 사용하고, 그 각각은 동일하거나 상이한 실시예들 중 하나 이상의 실시예들을 지칭할 수 있다. 게다가, "포함하는(comprising)", "포함하는(including)", "가지는" 등과 같은 용어들은, 본 개시내용의 실시예들과 관련하여 사용되는 바와 같이, 동의어이다. 본원에서 사용되는 바와 같이, "로직"과 같은 용어는 기술된 기능을 제공하는, 하나 이상의 소프트웨어 또는 펌웨어 프로그램들을 실행하는 ASIC(Application Specific Integrated Circuit), 전자 회로, 프로세서(공유, 전용, 또는 그룹) 및/또는 메모리(공유, 전용, 또는 그룹), 조합 논리 회로(combinational logic circuit), 및/또는 다른 적당한 하드웨어를 지칭하거나, 그의 일부이거나, 그를 포함할 수 있다.
도 1은 다양한 실시예들에 따른, UI 제어를 위해 구성된 예시적인 컴퓨팅 시스템(100)을 나타낸 것이다. 일부 실시예들에서, 컴퓨팅 시스템(100)은 컴퓨팅 시스템의 사용자의 신체의 한 부분과 연관된 하나 이상의 표지점들의 위치들을 결정하고, 표지점 위치들에 적어도 부분적으로 기초하여 포인터를 결정하며, 포인터에 적어도 부분적으로 기초하여 컴퓨팅 시스템의 UI의 UI 요소를 식별하도록 구성될 수 있다. 다양한 실시예들에서 포인터는, 예들 중에서도 특히, 복수의 표지점 위치들에 기초한 "다중 위치" 포인터, 사용자의 손의 집게손가락의 하부 부분의 위치에 기초한 "베이스" 포인터, 또는 가상 상호작용 영역에 대한 표지점 위치의 상대 위치에 기초한 "가상" 포인터일 수 있다. 컴퓨팅 시스템(100)은 사용자의 움직임들을 감지하고 해석하도록 구성된 하드웨어(예컨대, 추적 및 제스처 인식 기법들을 수행하도록 구성된 3차원 카메라 및 연관된 처리 디바이스들) 및 사용자가 자신의 행동들을 통해 컴퓨팅 시스템(100)에 어떻게 영향을 미치고 있는지에 관한 피드백을 사용자에게 제공하는 하드웨어(예컨대, 모니터 또는 다른 디스플레이 디바이스)를 포함할 수 있다.
컴퓨팅 시스템(100)은 웨어러블 컴퓨팅 디바이스(102), 개인용 컴퓨팅 디바이스(104) 및 원격 컴퓨팅 디바이스(106)를 포함할 수 있다. 웨어러블 컴퓨팅 디바이스(102), 개인용 컴퓨팅 디바이스(104) 및 원격 컴퓨팅 디바이스(106) 각각은 UI 제어 구성요소들(도 1에서, UI 제어 구성요소들(114, 116 및 118)로서, 각각, 예시되어 있음)을 포함할 수 있다. UI 제어 동작들이, 적당한 경우, 컴퓨팅 시스템(100)의 UI 제어 구성요소들(114, 116 및 118) 간에 분산되어 있을 수 있다. 컴퓨팅 시스템(100)의 구성요소들 간의 동작들의 분산의 몇 가지 예들이 본원에서 논의되지만, 보다 많거나 보다 적은 구성요소들의 임의의 다른 조합 및 동작들의 분산이 사용될 수 있다. 일부 실시예들에서, 컴퓨팅 시스템(100)은 도 2를 참조하여 이하에서 논의되는 UI 제어 시스템(200)으로서 구성될 수 있다.
컴퓨팅 시스템(100) 내에서의 통신은 통신 경로들(108, 110 및 112)에 의해 가능하게 될 수 있다. 통신 경로들(108, 110 및 112) 각각은 직접 결합(direct coupling)을 통한 그리고/또는 PAN(personal area network), LAN(local area network) 및/또는 WAN(wide area network)을 통한, 유선 통신 경로들 및/또는 무선 통신 경로들을 포함할 수 있다. 웨어러블 컴퓨팅 디바이스(102), 개인용 컴퓨팅 디바이스(104) 및 원격 컴퓨팅 디바이스(106) 각각은, 네트워크 인터페이스 카드, 모뎀, WiFi 디바이스, 블루투스 디바이스 등과 같은, 통신 경로들(108, 110 및 112)을 지원하기 위한 적당한 하드웨어를 포함할 수 있다. 일부 실시예들에서, 통신 경로들(108, 110 및 112)은 도 1에 예시된 바와 같이 구성요소들 사이의 직접 통신 경로들일 수 있다. 본원에서 사용되는 바와 같이, 도 1의 컴퓨팅 시스템(100)(또는 본원에 개시되는 임의의 시스템 또는 디바이스)의 2개의 구성요소들 사이의 "직접" 통신 경로라고 말하는 것은 다른 예시된 구성요소를 통해 라우팅되지 않고 다른 예시되지 않은 디바이스들(예컨대, 라우터 및/또는 스위치)을 통해 라우팅될 수 있는 통신 경로를 지칭할 수 있다.
컴퓨팅 시스템(100)에 포함된 컴퓨팅 디바이스들 각각은 처리 디바이스 및 저장 디바이스(도시 생략)를 포함할 수 있다. 처리 디바이스는, 하나 이상의 처리 코어들, ASIC들, 전자 회로들, 프로세서들(공유, 전용, 또는 그룹), 조합 논리 회로들, 및/또는 전자 데이터를 처리하도록 구성될 수 있는 다른 적당한 구성요소들과 같은, 하나 이상의 처리 디바이스들을 포함할 수 있다. 저장 디바이스는 임의의 적당한 메모리 또는 대용량 저장 디바이스들(고상 드라이브(solid-state drive), 디스켓, 하드 드라이브, CD-ROM(compact disc read only memory), 기타 등등)을 포함할 수 있다. 컴퓨팅 시스템(100)에 포함된 컴퓨팅 디바이스들 각각은 각자의 컴퓨팅 디바이스들에 포함된 처리 디바이스, 저장 디바이스, 및 임의의 다른 디바이스들을 통신 가능하게 결합시키는 하나 이상의 버스들(그리고, 적당한 경우, 버스 브리지들)을 포함할 수 있다. 저장 디바이스는, 컴퓨팅 디바이스의 처리 디바이스에 의해 실행될 때, 컴퓨팅 디바이스로 하여금 본원에 개시되는 기법들 및 방법들 중 임의의 것 또는 그의 임의의 부분을 구현하게 할 수 있는 명령어들이 저장되어 있는 컴퓨터 판독 가능 매체의 하나 이상의 사본들을 포함할 수 있는 일단의 계산 로직(computational logic)을 포함할 수 있다. 웨어러블 컴퓨팅 디바이스(102), 개인용 컴퓨팅 디바이스(104) 및 원격 컴퓨팅 디바이스(106) 각각은 유선 또는 무선 통신 경로들을 통해 통신할 수 있는 주변 디바이스들(카메라, 프린터, 스캔, RFID(radio frequency identification) 판독기, 신용 카드 판독 디바이스(credit card swipe device), 또는 임의의 다른 주변 디바이스 등)을 포함할 수 있다. 본원에 포함되는 본 개시내용의 UI 제어 관련 내용을 제외하고는, 웨어러블 컴퓨팅 디바이스(102), 개인용 컴퓨팅 디바이스(104) 및 원격 컴퓨팅 디바이스(106)는 본 기술 분야에 공지된 광범위한 이러한 디바이스들일 수 있다. 제한하는 것이 아닌 특정의 예들이 이하에서 기술된다. 일부 실시예들에서, 계산 로직은 도 2를 참조하여 이하에서 논의되는 로직 중 임의의 것을 포함할 수 있다.
웨어러블 컴퓨팅 디바이스(102)는 의복, 액세서리 또는 사용자(또는 "착용자")의 신체 상에 착용되도록 구성되어 있는 다른 지지 구조물 내에 통합되는 컴퓨팅 디바이스일 수 있다. 웨어러블 컴퓨팅 디바이스(102)에 대한 적당한 지지 구조물들의 예들은, 그 중에서도 특히, 안경, 헤드셋, 헤어 액세서리(hair accessory)(예컨대, 머리띠 또는 머리핀), 이어폰, 장신구(예컨대, 브로치, 귀걸이 또는 목걸이), 손목 밴드(예컨대, 손목시계), 목 밴드(예컨대, 넥타이 또는 스카프), 의복(예컨대, 셔츠, 바지, 드레스 스커트 또는 재킷), 모자, 신발, 묶는 끈(lanyard) 또는 이름표, 콘택트 렌즈, 또는 이식 가능 지지 구조물을 포함할 수 있다. 일부 실시예들에서, 웨어러블 컴퓨팅 디바이스(102)는 카메라를 갖는 손목 장착형 컴퓨팅 디바이스일 수 있다. 일부 실시예들에서, 웨어러블 컴퓨팅 디바이스(102)는 카메라를 갖는 안경 장착형 컴퓨팅 디바이스일 수 있다. 일부 실시예들에서, 웨어러블 컴퓨팅 디바이스(102)는 사용자의 팔, 손 및 손가락의 제스처들 및/또는 사용자의 머리, 눈 또는 신체의 다른 부분의 제스처들을 포착할 수 있는 하나 이상의 카메라들(예컨대, 도 2를 참조하여 이하에서 논의되는 영상 포착 디바이스(224))을 포함할 수 있다. 일부 실시예들에서, 도 2를 참조하여 이하에서 논의되는 바와 같이, 웨어러블 컴퓨팅 디바이스(102)는 사용자의 신체의 한 부분과 연관된 하나 이상의 표지점들의 위치들을 나타내는 데이터를 제공할 수 있는 웨어러블 센서를 포함할 수 있다.
개인용 컴퓨팅 디바이스(104)는 주머니, 배낭 또는 다른 전용 가방(carrying case)에 휴대하도록 구성된 또는 (서버가 랙에 있거나 데스크톱 컴퓨터가 책상 위에 있는 것처럼) 표면 상에 반영구적으로 있도록 구성된 컴퓨팅 디바이스일 수 있다. 개인용 컴퓨팅 디바이스(104)로서 역할을 할 수 있는 개인용 컴퓨팅 디바이스들의 예들은 휴대폰, 스마트폰, 다른 개인 이동 통신 디바이스, 태블릿, 전자책 리더, PDA(personal digital assistant), 랩톱, 데스크톱 또는 다른 이러한 컴퓨팅 디바이스들을 포함한다. 사용자 인터페이스 제어 및 개인용 컴퓨팅 디바이스(104)에 의해 수행되는 다른 동작들이, 예를 들어, 개인용 컴퓨팅 디바이스(104) 상의 앱 또는 플러그인에 의해 제어될 수 있다. 일부 실시예들에서, 개인용 컴퓨팅 디바이스(104)는 웨어러블 컴퓨팅 디바이스(102)보다 더 많은 컴퓨팅 자원들(예컨대, 처리 능력, 메모리, 및/또는 통신 대역폭)을 가질 수 있다. 이와 같이, 일부 실시예들에서, 웨어러블 컴퓨팅 디바이스(102)에 의해 포착되고 예비적으로 처리되는 데이터(예컨대, 사용자의 신체의 한 부분의 위치를 나타내는 영상 또는 다른 센서 데이터)가 추가 처리를 위해 통신 경로(108)를 거쳐 개인용 컴퓨팅 디바이스(104)로 전송될 수 있다. 일부 실시예들에서, 개인용 컴퓨팅 디바이스(104)는 사용자의 팔, 손 및 손가락의 제스처들 및/또는 사용자의 머리, 눈 또는 신체의 다른 부분의 제스처들을 포착할 수 있는 하나 이상의 카메라들(예컨대, 도 2를 참조하여 이하에서 논의되는 영상 포착 디바이스(224))을 포함할 수 있다. 하나 이상의 이러한 카메라들은 개인용 컴퓨팅 디바이스에 포함된 디스플레이 상에(예컨대, 태블릿 디바이스에서 터치스크린 위쪽에) 또는 개인용 컴퓨팅 디바이스(104)의 다른 부분 상에 장착될 수 있다.
원격 컴퓨팅 디바이스(106)는 웨어러블 컴퓨팅 디바이스(102) 및 개인용 컴퓨팅 디바이스(104)로부터 원격지에 있는 하나 이상의 서버들(예컨대, "클라우드" 컴퓨팅 구성으로 배열됨) 또는 다른 컴퓨팅 디바이스들을 포함할 수 있다. 웨어러블 컴퓨팅 디바이스(102)와 원격 컴퓨팅 디바이스(106) 사이의 통신 경로(112) 및 개인용 컴퓨팅 디바이스(104)와 원격 컴퓨팅 디바이스(106) 사이의 통신 경로(110)는 임의의 원격 유선 또는 무선 통신 프로토콜에 따라 구성될 수 있다. 일부 실시예들에서, 원격 컴퓨팅 디바이스(106)는 웨어러블 컴퓨팅 디바이스(102) 또는 개인용 컴퓨팅 디바이스(104)보다 더 많은 컴퓨팅 자원들(예컨대, 처리 능력, 메모리, 및/또는 통신 대역폭)을 가질 수 있다. 이와 같이, 일부 실시예들에서, 웨어러블 컴퓨팅 디바이스(102) 및/또는 개인용 컴퓨팅 디바이스(104)에 의해 포착되고 예비적으로 처리되는 데이터(예컨대, 사용자의 신체의 한 부분의 위치를 나타내는 영상 또는 다른 센서 데이터)가 추가 처리를 위해 통신 경로들(110 및/또는 112)을 거쳐 원격 컴퓨팅 디바이스(106)로 전송될 수 있다. 일부 실시예들에서, 원격 컴퓨팅 디바이스(106)는, 표지점 로직(204) 및/또는 선택 로직(212)에 의해 수행되는 것들을 비롯한, 도 2를 참조하여 이하에서 논의되는 UI 제어 동작들 대부분을 수행할 수 있다. 일부 실시예들에서, 원격 컴퓨팅 디바이스(106)는 다양한 제스처들을 인식하도록 도 2의 제어 시스템(200)을 훈련시키기 위해 사용자의 특정의 움직임 패턴들을 학습하는 데 사용될 수 있는 사용자의 과거 움직임들을 나타내는 데이터를 저장하는 메모리를 포함할 수 있다.
일부 실시예들에서, 원격 컴퓨팅 디바이스(106)는 복수의 개인용 컴퓨팅 디바이스들(개인용 컴퓨팅 디바이스(104)와 유사하게 구성됨) 및/또는 복수의 웨어러블 컴퓨팅 디바이스들(웨어러블 컴퓨팅 디바이스(102)와 유사하게 구성됨)과 통신할 수 있다. 원격 컴퓨팅 디바이스(106)는 각각의 개인용 또는 웨어러블 컴퓨팅 디바이스에 대해 유사한 처리 및 저장 동작들을 수행할 수 있다. 예를 들어, 원격 컴퓨팅 디바이스(106)는 복수의 개인용 또는 웨어러블 컴퓨팅 디바이스들(개인용 컴퓨팅 디바이스(104) 또는 웨어러블 컴퓨팅 디바이스(102)와 유사하게 구성됨)에 포함된 영상 포착 디바이스들에 의해 포착된 사용자의 신체의 한 부분의 영상들을 수신할 수 있고, 이 영상들(예컨대, 표지점 위치들을 식별해줌)에 기초하여 UI 제어 동작들을 수행할 수 있다. 원격 컴퓨팅 디바이스(106)는 상이한 자원들(예컨대, 각각의 디바이스에 대한 상이한 메모리 파티션들 또는 데이터베이스들)을 원격 컴퓨팅 디바이스와 통신하는 복수의 개인용 또는 웨어러블 컴퓨팅 디바이스들 중 상이한 것들에 전용할 수 있다.
본원에 개시되는 UI 제어 시스템들의 일부 실시예들에서, 도 1에 도시된 컴퓨팅 시스템(100)의 구성요소들 중 하나 이상이 포함되지 않을 수 있다. 예를 들어, 일부 실시예들에서, 컴퓨팅 시스템(100)은 원격 컴퓨팅 디바이스(106)를 포함하지 않을 수 있다. 일부 실시예들에서, 컴퓨팅 시스템(100)은 웨어러블 컴퓨팅 디바이스(102)를 포함하지 않을 수 있고, 컴퓨팅 시스템(100)에 의해 수행되는 임의의 영상 포착이 개인용 컴퓨팅 디바이스(104)에 포함된 영상 포착 디바이스에 의해 수행될 수 있다. 일부 실시예들에서, 컴퓨팅 시스템(100)의 구성요소들 사이의 통신 경로들 중 하나 이상이 포함되지 않을 수 있고; 예를 들어, 일부 실시예들에서, 웨어러블 컴퓨팅 디바이스(102)는 통신 경로(112)를 통해 원격 컴퓨팅 디바이스(106)와 직접 통신하지 않을 수 있다(그러나 개인용 컴퓨팅 디바이스(104) 및 통신 경로들(108 및 110)을 통해 원격 컴퓨팅 디바이스(106)와 통신할 수 있음). 일부 실시예들에서, 컴퓨팅 디바이스들(102 및 104) 둘 다가 웨어러블일 수 있거나, 컴퓨팅 디바이스들(102 및 104) 둘 다가 핸드헬드일 수 있다.
도 2는 다양한 실시예들에 따른, 예시적인 UI 제어 시스템(200)을 나타낸 것이다. 컴퓨팅 시스템(100)을 참조하여 앞서 논의된 바와 같이, UI 제어 시스템(200)은 다수의 UI 제어 동작들 중 임의의 것을 수행하도록 구성될 수 있다. 예를 들어, UI 제어 시스템(200)은 사용자의 신체의 한 부분과 연관된 하나 이상의 표지점들의 위치들을 결정하고, 표지점 위치들에 기초하여 포인터를 결정하며, 포인터에 기초하여 UI 요소를 식별하도록 구성될 수 있다. 다양한 실시예들에 따른 UI 제어 시스템(200)은 도 1의 컴퓨팅 시스템(100)에 의해 구현될 수 있다. 상세하게는, UI 제어 시스템(200)의 구성요소들이 컴퓨팅 시스템(100)의 구성요소들 중 하나 이상 사이에 임의의 적당한 방식으로 분산되어 있을 수 있다. 다수의 구성요소들이 도 2에 예시되어 있지만, 다양한 실시예들은 UI 제어 동작들이 수행되는 데 적절한 경우 구성요소들을 생략할 수 있다. 예를 들어, UI 제어 시스템(200)의 일부 실시예들은 영상 정보 처리를 위해 구성되지 않을 수 있고(그리고 그 대신에 표지점 위치들을 결정하기 위해 장갑 기반 센서들 또는 다른 입력 디바이스들을 사용할 수 있음), 따라서 영상 포착 디바이스(224)를 포함하지 않을 수 있다.
일부 실시예들에서, UI 제어 시스템(200)은 하나 이상의 제스처 인식 기법들을 수행하고 따라서 제스처 기반 인터페이스를 인에이블시키도록 구성될 수 있다. 본원에서 사용되는 바와 같이, "제스처 인식"은 사용자에 의해 수행되는 특정 움직임들 또는 자세 구성(pose configuration)들을 식별하는 것을 지칭할 수 있다. 예를 들어, 제스처 인식은 특정의 속도를 가지는 특정의 방향으로의 손의 스와이프(swipe), 손가락이 터치 스크린 상에서 특정 형상을 그리는 것, 또는 손 흔들기를 식별하는 것을 지칭할 수 있다. UI 제어 시스템(200)은 사용자의 신체의 한 부분의 위치를 나타내는 데이터를 (예컨대, 깊이 카메라를 포함할 수 있는 입력 디바이스(230)를 통해) 추적하는 것, 사용자의 신체의 한 부분을 배경 데이터로부터 분리시키는 것, 사용자의 손 및 손가락의 표지점들(관절 등)을 (예컨대, 표지점 로직(204)을 통해) 식별하는 것, 및 이어서 사용자에 의해 수행되는 제스처들을 (예컨대, 포인터 로직(206) 및/또는 선택 로직(212)을 사용하여) 식별하기 위해 이 추적된 데이터를 분석하는 것에 의해 제스처 인식을 달성할 수 있다. 본원에 개시되는 시스템들 및 기법들은 UI 제어 시스템(200)이 사용자의 신체(예컨대, 사용자의 손 및 손가락)의 움직임들을 해석함으로써 UI와의 사용자의 의도된 상호작용들을 이해할 수 있게 할 것이다.
제스처 기반 인터페이스들은 사용자가, 사용자의 신체의 움직임들을 통해 UI 요소들을 탐색(navigate), 선택 및 조작하는 것에 의해, 인터페이스와 상호작용할 수 있게 할 것이다. UI 제어 시스템(200)에 의해 구현되는 제스처 기반 인터페이스들은 제스처 인식과 사용자의 신체의 추적의 혼합에 의존할 수 있다. 예를 들어, UI 제어 시스템(200)은 핀치 제스처(pinch gesture)를 항목을 선택하라는 지시로서 인식하도록 구성될 수 있고, 사용자의 관절의 추적은 UI 요소들을 (예컨대, 포인팅, 드래깅, 스케일링 및 회전에 의해) 직접 조작하는 데 사용될 수 있다.
제스처 기반 인터페이스들은 UI 경험에 대한 몇 가지 장점들을 제공할 수 있고, 더욱 자연스럽고 직관적인 상호작용을 지원할 수 있다. 제스처 기반 인터페이스들은 터치스크린, 마우스 또는 키보드와 같은 종래의 입력 디바이스와 근본적으로 상이할 수 있다. 상세하게는, 사용자의 신체(예컨대, 사용자의 손 및 손가락)가 3차원 공간에서 자유롭게 움직일 수 있는 반면, 종래의 입력 디바이스들을 사용하는 사용자 움직임들은 제약되어 있을 수 있다. 그에 부가하여, 제스처 기반 상호작용들은 물리 입력 디바이스들의 촉각 피드백(예컨대, 키보드 상에서 키를 누르는 것 또는 터치스크린 표면을 두드리는 것의 느낌)이 없을 수 있다. 그 결과, 제스처 기반 인터페이스들은 성공적이고 자연스러우며 즉각 채택되는 사용자 경험들을 생성함에 있어서 독자적인 과제들을 제기한다. 다수의 이러한 과제들은 본원에 개시되는 시스템들 및 기법들에 의해 해결된다.
UI 제어 시스템(200)은 입력 디바이스(230)를 포함할 수 있다. 입력 디바이스(230)는 영상 포착 디바이스(224), 웨어러블 센서(226), 및/또는 다른 입력 디바이스들(228)을 포함할 수 있다. 입력 디바이스(230)(및 본원에 기술되는 다른 구성요소들)가 단수로 지칭될 수 있지만, 임의의 수의 입력 디바이스들이 입력 디바이스(230)에 포함될 수 있다(그리고 마찬가지로, 임의의 구성요소가 다수의 이러한 구성요소들을 포함할 수 있다). 일부 실시예들에서, 입력 디바이스(230)는 단일의 입력 디바이스(예컨대, 단일의 카메라)를 포함할 수 있다.
일부 실시예들에서, 영상 포착 디바이스(224)는, 예를 들어, 하나 이상의 디지털 카메라들을 포함할 수 있고, 임의의 촬영 파장(imaging wavelength)(예컨대, 가시 또는 적외선 광)을 사용할 수 있다. 본원에서 사용되는 바와 같이, "카메라"라는 용어는 정지 영상 카메라 및 비디오 카메라를 포함할 수 있다. 일부 실시예들에서, 영상 포착 디바이스(224)는 고선명 비디오(high-definition video)와 같은 비디오를 포착할 수 있다. 일부 실시예들에서, 영상 포착 디바이스(224)는 유선 또는 무선 통신 경로를 통해 영상 데이터(예컨대, 비디오 데이터)를 다른 디바이스들로 스트리밍하도록 구성될 수 있다. 예를 들어, 영상 포착 디바이스(224)는 웨어러블 컴퓨팅 디바이스(102)(도 1)에 포함될 수 있고, 통신 경로(108)를 통해 영상 데이터를 개인용 컴퓨팅 디바이스(104)로 무선으로 스트리밍할 수 있다. 일부 실시예들에서, 영상 포착 디바이스(224)는 개인용 컴퓨팅 디바이스(104)와 일체로 되어 있거나 그에 대한 주변 기기일 수 있고, 스트리밍되는 영상 데이터를 제공할 수 있다. 일부 실시예들에서, 영상 포착 디바이스(224)는 가시광 카메라 및 적외선 카메라를 포함할 수 있고, 이 디바이스들에 의해 포착되는 영상들을 결합시키거나 그 영상들을 개별적으로 처리할 수 있다. 일부 실시예들에서, 영상 포착 디바이스(224)는 상이한 배향들을 가지는 2개 이상의 카메라들을 포함할 수 있다 (예컨대, 하나의 카메라는 개인용 컴퓨팅 디바이스(104) 상에 장착되거나 다른 방식으로 그와 연관되어 있고, 사용자의 신체의 전면을 향해 있으며, 하나의 카메라는 웨어러블 컴퓨팅 디바이스(102) 상에 장착되어 있고 사용자로부터 멀어지는 쪽을 향해 있지만, 사용자의 팔 및 손이 사용자의 전면에서 제스처를 행할 때 사용자의 팔 및 손을 포함할 수 있다). 일부 실시예들에서, 영상 포착 디바이스(224)는 연속적인 영상들의 시퀀스를 포착할 수 있다. 이 연속적인 영상들이 초당 다수의 프레임의 레이트로, 또는 보다 빠르게 또는 보다 느리게 포착될 수 있다.
일부 실시예들에서, 영상 포착 디바이스(224)는 깊이 카메라("3차원 카메라"라고도 지칭될 수 있음)를 포함할 수 있다. 깊이 카메라에 의해 생성된 영상들은 픽셀마다 깊이 데이터를 포함할 수 있다. 픽셀에 대한 깊이 데이터는 픽셀에 대응하는 촬영된 장면 내의 객체와 영상 포착 디바이스(224) 사이의 거리를 나타내는 값일 수 있다. 깊이 카메라는, 구성요소들 중에서도 특히, 깊이 영상 센서, 광학 렌즈, 및 조명 광원을 포함할 수 있다. 깊이 영상 센서는, 예를 들어, TOF(time-of-flight) 기술(예컨대, 스캐닝 TOF 또는 어레이 TOF), 구조화된 광, 레이저 스펙클 패턴(laser speckle pattern) 기술, 입체 카메라(stereoscopic camera), 능동 입체 센서(active stereoscopic sensor), 및 SFS(shape-from-shading) 기술과 같은, 다수의 상이한 센서 기술들 중 임의의 것에 의존할 수 있다. 많은 깊이 카메라 센서 기술들은 "능동" 센서(그 자신의 조명 광원을 제공함)를 포함한다. 다른 깊이 카메라 센서 기술들(예컨대, 입체 카메라)은 "수동" 센서(그 자신의 조명 광원을 제공하지 않지만 그 대신에 주변 환경 조명에 의존함)를 포함할 수 있다. 깊이 데이터에 부가하여, 깊이 카메라는 또한 종래의 컬러 카메라와 동일한 방식으로 색상 데이터를 발생시킬 수 있고, 이 색상 데이터는 깊이 카메라 영상들의 처리 동안 깊이 데이터와 결합될 수 있다.
깊이 카메라는 종래의 카메라("RGB"(red-green-blue) 카메라 등)보다 다수의 장점을 가질 수 있다. 예를 들어, 깊이 카메라가 거리 정보를 제공할 수 있기 때문에, 포착된 영상에서의 전경 객체들이 배경 객체들과 보다 정확하고 강건하게 구별될 수 있으며, 이러한 객체들이 서로 가릴 때 특히 그렇다. 데이터 카메라 영상들을 사용하는 영상 처리 기법들은 또한 조명 상태들의 변화에 더욱 강건할 수 있고; 일부 종래의 RGB 영상 처리 기법들은, 객체의 위치 또는 배향의 변화가 일어나지 않았을 때, 조명의 변화로 인해 포착된 영상에서의 객체들의 깊이를 부정확하게 추정할 수 있다. 상세하게는, 깊이 카메라 영상들은 사용자의 손 및 손가락의 종종 복잡한 관절(articulation)을 추적하는 데 유리할 수 있다.
일부 실시예들에서, 웨어러블 센서(226)는 손 및/또는 손가락에 착용된 장갑, 팔찌, 반지 또는 다른 의복 또는 장신구를 포함할 수 있고, 사용자의 손가락, 손바닥, 관절 또는 다른 표지점들의 위치를 나타내는 데이터를 발생시키도록 구성된, 의복 또는 장신구에 배치된 하나 이상의 센서들을 추가로 포함할 수 있다. 이러한 센서들의 예들은 가속도계를 포함할 수 있고, 가속도계의 데이터가 속도 데이터를 발생시키기 위해서는 한 번 적분될 수 있고 위치 데이터를 발생시키기 위해서는 두 번 적분될 수 있다. 다른 센터들이 가속도계 대신에 또는 그에 부가하여 사용될 수 있다. 사용자의 팔, 손 및/또는 손가락 대신에 또는 그에 부가하여, 사용자의 신체의 다른 부분들이 추적될 수 있다. 예를 들어, 일부 실시예들에서, 웨어러블 센서(226)는 사용자의 머리의 위치를 나타내는(예를 들어, 사용자의 시선이 어디로 향해 있는지를 나타내는 또는 고개를 끄덕이는 것과 같은 머리 움직임을 감지하는) 데이터를 발생시키도록 구성된 안경 장착형 센서를 포함할 수 있다.
다른 입력 디바이스들(228)의 예들은 키보드, 마우스와 같은 커서 제어 디바이스, 스타일러스, 터치 패드, 바코드 판독기, QR(Quick Response) 코드 판독기, RFID 판독기, GPS(Global Positioning System) 수신기, 단거리 무선 수신기(예컨대, 블루투스 수신기), 오디오 포착 디바이스(다양한 구성들로 배열된 하나 이상의 마이크로폰들을 포함할 수 있음), 또는 임의의 다른 적당한 입력 디바이스를 포함할 수 있다.
UI 제어 시스템(200)은 제어 동작 로직(202)을 포함할 수 있다. 제어 동작 로직(202)은 입력 디바이스(230)로부터 데이터를 수신하도록 구성된 입력 디바이스 인터페이스(238), 및 입력 디바이스(230)에 의해 제공되는 정보를 분석하고 분석의 결과를 UI 제어 시스템(200)의 하나 이상의 부가 구성요소들(식별 로직(208), 디스플레이 로직(210) 및 선택 로직(212)을 포함함)에 출력하도록 구성된 로직 구성요소들을 포함할 수 있다. 제어 동작 로직(202)의 구성요소들이 개별적으로 예시되어 있지만, 구성요소들이, 적당한 경우, 결합되거나 분할될 수 있고, 각각이 그 자신의 분석을 수행함에 있어서 다른 것들에 의해 발생된 결과들 중 하나 이상을 사용할 수 있다. 데이터가 물리 버스, 장거리 유선 통신 경로, 단거리 또는 장거리 무선 통신 경로, 또는 통신 경로들의 임의의 조합을 통해 제어 동작 로직(202)의 구성요소들 사이에서 전달될 수 있다. UI 제어 시스템(200)은 메모리(220)를 포함할 수 있다. 일부 실시예들에서, 메모리(220)는 UI 제어 동작을 위해 사용되는 본원에 기술되는 데이터 중 임의의 것을 저장하는, 데이터베이스 또는 메모리 구조를 포함할 수 있는 다른 데이터 저장 구조를 포함할 수 있다. 메모리(220)는, 예를 들어, 하나 이상의 하드 드라이브, 고상 로직, 또는 휴대용 저장 매체와 같은, 임의의 휘발성 또는 비휘발성 메모리 디바이스를 포함할 수 있다.
제어 동작 로직(202)은 사용자의 신체의 한 부분과 연관된 하나 이상의 표지점들의 위치들을 결정하도록 구성될 수 있는 표지점 로직(204)을 포함할 수 있다. 일부 실시예들에서, 그 부분은 사용자의 손을 포함할 수 있다. 일부 실시예들에서, 그 부분은 사용자의 손 및 팔을 포함할 수 있다. 일부 실시예들에서, 그 부분은, 사용자의 손과 사용자의 머리, 또는 사용자의 두 손과 같은, 2개 이상의 개별적인 부분들을 포함할 수 있다.
표지점 로직(204)은 입력 디바이스(230)와 결합될 수 있고, 입력 디바이스(230)에 의해 제공되는 데이터에 기초하여 표지점 위치들을 결정할 수 있다. 예를 들어, 일부 실시예들에서, 입력 디바이스(230)는 깊이 카메라를 영상 포착 디바이스(224)로서 포함할 수 있고, 표지점 로직(204)은 깊이 카메라에 의해 포착된 사용자의 신체의 하나 이상의 영상들에 포함된 색상 및/또는 깊이 데이터에 기초하여 표지점들의 위치를 식별하기 위해 임의의 적당한 영상 처리 기법들을 수행할 수 있다. 일부 실시예들에서, 영상 포착 디바이스(224)는 종래의 비-깊이 카메라(non-depth camera)를 포함할 수 있고, 표지점 로직(204)은 비-깊이 카메라에 의해 포착된 사용자의 신체의 하나 이상의 영상들에서 표지점들의 위치를 식별하기 위해 영상 처리 기법들을 수행할 수 있다. 일부 실시예들에서, 입력 디바이스(230)는 하나 이상의 표지점들(예컨대, 손 관절들 또는 사용자의 손가락의 부분들)의 위치를 나타내는 데이터를 표지점 로직(204)에 제공할 수 있는 웨어러블 센서(226)를 포함할 수 있다. 일부 실시예들에서, 표지점 로직(204)은 사용자의 신체의 한 부분과 연관된 하나 이상의 표지점들의 위치들을 결정하기 위해 입력 디바이스(230)에 포함된 다수의 입력 디바이스들로부터의 데이터를 사용할 수 있다.
도 3은 사용자의 신체의 한 부분(300)을 나타낸 것이고, 다양한 실시예들에 따른, 표지점 로직(204)에 의해 식별될 수 있는 다수의 표지점들을 부분(300) 상에 표시하고 있다. 도 3에 예시된 부분(300)은, 영상 포착 디바이스(224), 웨어러블 센서(226), 및/또는 다른 입력 디바이스들(228)에 의해 포착될 수 있는, 사용자의 손이다. 손가락 끝 표지점들(302a 내지 302e), 제1 손가락 관절 표지점들(304a 내지 304e), 제2 손가락 관절 표지점들(306a 내지 306e), 기부 관절(base joint) 표지점들(308a 내지 308e), 손바닥 중심 표지점(314) 및 손 기부(hand base) 표지점(312)을 비롯한, 몇 가지 상이한 유형의 표지점들이 도 3에 표시되어 있다. 표지점 로직(204)은 사용자의 손의 다른 표지점들(예컨대, 영상에서의 사용자의 손의 가장자리와 연관된 표지점들) 및/또는 사용자의 신체의 다른 부분들 상의 표지점들을 식별할 수 있다. 도 3은 또한 사용자의 신체의 부분(300)의 골격 모델을 형성하기 위해 표지점 로직(204)에 의해 식별되는 다양한 표지점들을 연결시킬 수 있는 구조선(structural line)들(316)을 나타내고 있다. 표지점 로직(204)은, 일부 실시예들에서, 공지된 신체 모델링 및 추적 기법들에 따라, 추적 및 표지점 인식을 위해 이러한 모델을 이용할 수 있다.
도 3은 또한 다른 표지점들에 기초하여 표지점 로직(204)에 의해 결정된 몇 개의 보조 표지점들을 나타내고 있다. 상세하게는, 표지점(302c)(가운뎃손가락의 끝)과 표지점(302d)(집게손가락의 끝) 사이의 선분 상의 지점(중간 지점 등)에 보조 표지점(318)이 위치될 수 있다. 표지점(302b)(넷째 손가락의 끝)과 표지점(302e)(엄지손가락의 끝) 사이의 선분 상의 지점(중간 지점 등)에 보조 표지점(320)이 위치될 수 있다. 표지점(102d)(집게손가락의 끝)과 표지점(302e)(엄지손가락의 끝) 사이의 선분 상의 지점(중간 지점 등)에 보조 표지점(322)이 위치될 수 있다. 표지점 로직(204)은 임의의 수 및 종류의 원하는 보조 표지점들을 발생시키도록 구성될 수 있다.
표지점 로직(204)은 사용자의 신체의 한 부분의 움직임을 추적함으로써, 사용자의 신체의 그 부분의 표지점들의 위치들을 동적으로 식별하도록 구성될 수 있다. 표지점 로직(204)은 움직임 추적을 위한 임의의 적당한 기법을 수행하도록 구성될 수 있고, 그 기법의 많은 정확하고 강건한 예들은 본 기술 분야에 공지되어 있고 따라서 본원에서 상세히 논의되지 않는다. 추적이 실시간으로 수행될 수 있다. 앞서 논의된 바와 같이, 일부 실시예들에서, 영상 포착 디바이스(224)는 (사용자의 신체의 부분의) 포착된 영상에서의 각각의 픽셀에 대한 색상 및 거리 정보 둘 다를 표지점 로직(204)에 제공할 수 있는 깊이 카메라를 포함할 수 있다. 표지점 로직(204)은 (예컨대, 기법들 중에서도 특히, 표지점 위치들의 3차원 모델을 구성하는 것에 의해) 표지점 위치들을 인식하고 추적하기 위해 깊이 카메라에 의해 제공된 정보를 사용할 수 있다. 예를 들어, TOF 카메라로부터의 깊이 데이터와 진폭 데이터의 조합 기법이 사용자의 신체의 부분들을 식별하고 추적하기 위해 표지점 로직(204)에 의해 사용될 수 있다.
제어 동작 로직(202)은 포인터 로직(206)을 포함할 수 있고, 포인터 로직(206)은 표지점 로직(204)에 결합될 수 있고 표지점 로직(204)에 의해 결정된 표지점 위치들에 기초하여 포인터를 결정하도록 구성될 수 있다. 포인터 로직(206)은 다수의 방식들 중 임의의 것으로 포인터를 결정하도록 구성될 수 있고, 그 방식들 중 몇몇이 본원에서 상세히 논의된다. 일부 실시예들에서, 포인터는 복수의 표지점 위치들에 기초한 다중 위치 포인터일 수 있다. 일부 실시예들에서, 포인터는 사용자의 손의 집게손가락의 하부 부분의 위치에 기초한 베이스 포인터일 수 있다. 일부 실시예들에서, 포인터는 가상 상호작용 영역에 대한 표지점 위치의 상대 위치에 기초한 가상 포인터일 수 있다. 이들 및 다른 실시예들이 이하에서 더 상세히 논의된다.
제어 동작 로직(202)은 식별 로직(208)을 포함할 수 있고, 식별 로직(208)은 포인터 로직(206)에 결합될 수 있고 포인터 로직(206)에 의해 결정된 포인터에 기초하여 다수의 UI 요소들 중에서 하나의 UI 요소를 식별하도록 구성될 수 있다. 식별 로직(208)은 다수의 방식들 중 임의의 것으로 UI 요소를 식별하도록 구성될 수 있고, 그 방식들 중 몇몇이 본원에서 상세히 논의된다. 예를 들어, 식별 로직(208)은 다수의 UI 요소들의 각자의 UI 요소에 대응하는 UI에서의 다수의 구역들을 식별하고, UI 요소에 대응하는 구역과 포인터 사이의 중첩의 양에 기초하여 UI 요소를 식별할 수 있다. 상세하게는, 일부 실시예들에서, 식별 로직(208)은 포인터와의 가장 큰 중첩을 갖는 UI 요소를 식별할 수 있다. 일부 실시예들에서, UI 요소를 식별하기 위해 식별 로직(208)에 의해 사용되는 기법은 포인터를 결정하기 위해 포인터 로직(206)에 의해 사용되는 기법에 의존할 수 있다. 식별 로직(208)의 다수의 실시예들이 이하에서 더 상세히 논의된다.
제어 동작 로직(202)은 디스플레이 로직(210)을 포함할 수 있고, 디스플레이 로직(210)은 디스플레이(222)에 결합될 수 있고 제어 동작 로직(202)에 의해 수행되는 다양한 UI 제어 동작들에 기초하여 디스플레이(222)를 조절하도록 구성될 수 있다. 예를 들어, 디스플레이 로직(210)은 포인터 로직(206)에 의해 결정되는 포인터를 디스플레이(222)에 시각적으로 표시하도록 구성될 수 있다. 일부 실시예들에서, 포인터가 커서, 화살표, 손의 이미지 또는 다른 시각적 표시자로서 시각적으로 표시될 수 있다. 사용자의 신체의 부분이 움직일 때, 시각적 표시자가 그에 따라 움직일 수 있다. 일부 실시예들에서, 이 시각적 표시자는 그와 연관된 애니메이션 효과(animation)를 가질 수 있다. 예를 들어, 시각적 표시자는 손이 펴지고 오므려지는 것처럼 보이도록 연관된 애니메이션 효과를 갖는 사람 손의 아이콘 표현일 수 있고, 이 동작은 사용자의 손이 펴지고 오므려지는 동작에 매핑될 수 있다. 일부 실시예들에서, 사용자의 신체의 부분의 더욱 직접적인 표현이 사용될 수 있다. 예를 들어, 영상 포착 디바이스(224)가 깊이 카메라를 포함할 때, 사용자의 신체의 부분에 대응하는 깊이 픽셀들이 깊이 데이터 스트림으로부터 추출되고, UI 디스플레이(예컨대, 디스플레이(222)에 의해 제공되는 UI)의 상단에 오버레이될 수 있다. 그 결과, 사용자는 사용자의 신체의 부분(예컨대, 사용자의 손)이 디스플레이에서 UI 요소들에 대해 어디에 위치되어 있는지 그리고 어떻게 움직이는지에 관한 직접적이고 즉각적인 피드백을 수신할 수 있다. 시각적 표시자는 표지점 로직(204) 및/또는 선택 로직(212)에 의해 사용되는 추적 기법들에 의해 계산되는, 사용자의 손의 3차원 모델일 수 있다. 일부 실시예들에서, 손의 시각적 표현이 제공되지 않을 수 있지만, 피드백이 디스플레이에서 식별된 UI 요소 상에 또는 어딘가 다른 곳에 중첩될 수 있는 하이라이트 또는 애니메이션 효과와 같은 다른 시각적 또는 가청 이벤트의 형태를 취할 수 있다.
이와 같이, 일부 실시예들에서, 사용자는 상호작용 동안 UI 제어 시스템(200)이 사용자의 움직임들을 어떻게 해석하고 있는지를 나타내는 실시간 피드백을 UI를 통해 제시받을 수 있다. 일부 실시예들에서, 디스플레이 로직(210)은, 사용자의 움직임들이 UI 제어 시스템(200)에 의해 어떻게 해석되고 있는지를 보여주기 위해, 하나 이상의 UI 요소들이 사용자에 의해 선택되기 전에 그 요소들을 시각적으로 하이라이트하는 것에 의해 포인터를 표시할 수 있다. 예를 들어, 일부 실시예들에서, 디스플레이 로직(210)은 식별 로직(208)에 의해 식별된 UI 요소를 디스플레이(222)에 시각적으로 표시하도록 구성될 수 있다. 일부 실시예들에서, 식별 로직(208)에 의해 식별된 UI 요소는 요소가 식별되는 동안 UI에서 UI 요소를 확대시키는 것에 의해 시각적으로 표시될 수 있다. 이것은 UI 요소의 식별의 시각적 표시를 사용자에게 제공할 수 있기도 하고 포인터가 UI 요소의 경계에 가까이 있을 때(그로써 UI 요소를 식별 및 비식별(de-identify)해 줄 수 있는 작은 움직임들에 영향을 받을 수 있을 때) UI에서의 지터(jitter)를 피하는 데 도움을 줄 수도 있다. 이와 같이, 사용자의 신체가 작은 움직임을 겪을 때에도, 다른 UI 요소의 식별이 적절할 정도로 움직임이 충분히 커지게 될 때까지 UI 요소가 여전히 식별될 수 있다. UI 요소가 더 이상 식별되지 않을 때, UI에서의 UI 요소의 크기가 공칭 크기로 감소될 수 있다. 포인터가 표지점 위치와 가상 상호작용 영역의 상대 위치에 기초한 가상 포인터인 일부 실시예들에서, 디스플레이 로직(210)은 표지점 위치와 시각 인터페이스 표면 사이의 거리의 시각적 표현을 제공하도록 구성될 수 있다. 디스플레이 로직(210)의 다수의 실시예들이 이하에서 더 상세히 논의된다.
제어 동작 로직(202)은 선택 로직(212)을 포함할 수 있고, 선택 로직(212)은 식별 로직(208)에 결합될 수 있고 사용자의 제스처를 나타내는 제스처 데이터에 기초하여 식별 로직(208)에 의해 식별된 UI 요소를 선택하도록 구성될 수 있다. 표지점 로직(204)을 참조하여 앞서 논의된 바와 같이, 선택 로직(212)은 입력 디바이스(230)와 결합될 수 있고, 입력 디바이스(230)에 의해 제공되는 데이터에 기초하여 사용자의 제스처를 식별할 수 있다. 선택 로직(212)에 의해 분석된 제스처 데이터는 표지점 로직(204)에 대한 표지점 위치를 참조하여 앞서 논의된 데이터의 종류들 중 임의의 것을 포함할 수 있다. 예를 들어, 일부 실시예들에서, 입력 디바이스(230)는 깊이 카메라를 영상 포착 디바이스(224)로서 포함할 수 있고, 선택 로직(212)은 깊이 카메라에 의해 포착된 사용자의 신체의 하나 이상의 영상들에 포함된 색상 및/또는 깊이 데이터에 기초하여 사용자 제스처들을 식별하기 위해 임의의 적당한 영상 처리 기법들을 수행할 수 있다. 선택 로직(212)의 다수의 실시예들이 이하에서 더 상세히 논의된다.
UI 제어 시스템(200)은 출력 디바이스(234)를 포함할 수 있다. 입력 디바이스(230)를 참조하여 앞서 논의된 바와 같이, 출력 디바이스(234)가 단수로 지칭될 수 있지만, 임의의 수의 출력 디바이스들이 출력 디바이스(234)에 포함될 수 있다. 일부 실시예들에서, 출력 디바이스(234)는 단일의 출력 디바이스(예컨대, 단일의 디스플레이)를 포함할 수 있다. 일부 실시예들에서, 출력 디바이스(234)는 디스플레이(222) 및 다른 출력 디바이스들(236)을 포함할 수 있다. 디스플레이(222)는 사용자와 상호작용할 수 있는 다수의 UI 요소들의 시각적 표현을 제공할 수 있고; 이 상호작용들은 본원에 기술되는 UI 제어 기법들에 따라 처리될 수 있다. UI 제어 시스템(200)은 이 사용자 상호작용들에 기초하여 디스플레이(222)에서의 UI 요소들의 시각적 표현을 조절할 수 있다. 디스플레이(222)는, 예를 들어, 하나 이상의 헤드업 디스플레이(heads-up display)(즉, 광 콜리메이터(optical collimator) 구성으로 배열된 프로젝터 및 사용자가 사용자의 전형적인 시점으로부터 눈길을 돌릴 필요 없이 데이터를 제공하는 결합기(combiner)를 포함하는 디스플레이), 컴퓨터 모니터, 프로젝터, 터치스크린 디스플레이, LCD(liquid crystal display), LED(light-emitting diode) 디스플레이 또는 평판 디스플레이를 포함할 수 있다. 일부 실시예들에서, 디스플레이(222)는 3차원 디스플레이일 수 있고, UI 제어 시스템(200)은 본원에 개시되는 UI 제어 기법들을 3차원으로 수행할 수 있다. 다른 출력 디바이스들(236)은 하나 이상의 스피커들 또는 다른 오디오 트랜스듀서들(예를 들어, 하나 이상의 이어폰들 또는 이어버드(earbud)들에 장착될 수 있음), 프린터들, 프로젝터들, 또는 정보를 다른 디바이스들에 제공하는 유선 또는 무선 송신기들, 부가의 저장 디바이스들, 또는 임의의 적당한 출력 디바이스를 포함할 수 있다.
UI 제어 시스템(200)의 구성요소들이 도 1의 컴퓨팅 시스템(100)의 구성요소들 중 하나 이상 사이에 임의의 적당한 조합으로 분산되어 있을 수 있다. 예를 들어, 영상 포착 디바이스(224) 및/또는 웨어러블 센서(226)는 웨어러블 컴퓨팅 디바이스(102)에 포함될 수 있고, 제어 동작 로직(202)은 개인용 컴퓨팅 디바이스(104)와 원격 컴퓨팅 디바이스(106) 사이에 분산되어 있을 수 있다. 일부 실시예들에서, 영상 포착 디바이스(224), 제어 동작 로직(202) 및 디스플레이(222)는 개인용 컴퓨팅 디바이스(104)에 포함될 수 있다.
UI 제어 시스템(200)의 다수의 실시예들이 이하의 단락들에서 논의된다. 이 실시예들이 단독으로 또는 결합하여 구현될 수 있고, 그의 특징들이 다양한 구현들에서 임의의 조합으로 포함될 수 있다.
일부 실시예들에서, UI 제어 시스템(200)은 다중 위치 포인터를 결정하고 이용하도록 구성될 수 있다. 상세하게는, 표지점 로직(204)은 사용자의 신체의 한 부분과 연관된 다수의 표지점들의 위치들을 결정하도록 구성될 수 있고, 포인터 로직(206)은 다수의 표지점 위치들에 기초하여 다중 위치 포인터를 결정하도록 구성될 수 있다. 도 4는 표지점들(302c, 304c, 302d, 304d, 302e, 314, 318, 320 및 322)을 포함하는 다중 위치 포인터(400)를 나타낸 것이다. 다중 위치 포인터(400)에 포함된 표지점들은 예시적인 것에 불과하고, 다수의 표지점들의 다른 조합들이 다중 위치 포인터에 포함될 수 있다.
포인터 로직(206)이 다중 위치 포인터를 결정하는 실시예들에서, 식별 로직(208)은 UI에서의 각각의 요소에 대한 포인터 점수(pointer score)를 결정하는 것 및 가장 높은 점수를 가지는 UI 요소를 식별하는 것에 의해 UI 요소를 식별할 수 있다. 일부 실시예들에서, 식별 로직(208)은 상이한 UI 요소들에 대응하는 UI에서의 상이한 구역들을 식별하는 것 및 상이한 UI 요소들에 대응하는 구역들에서의 다중 위치 포인터 사이의 중첩의 양에 기초하여 포인터 점수를 결정하는 것에 의해 포인터 점수를 결정할 수 있다. 본원에서 사용되는 바와 같이, "중첩"은 다중 위치 포인터의 한 부분이 UI 요소에 대응하는 구역 내에 있을 때 일어날 수 있다. 예를 들어, 도 5는 사용자의 신체의 부분(300)이 다수의 UI 요소들(502 내지 518) 상에 위치되어 있는 구성(500)을 나타낸 것이다. UI 요소들(502 내지 518) 각각은 (각자의 원 내의) 구역에 대응한다. 도시된 바와 같이, 다중 위치 포인터(400)의 다양한 표지점들이 상이한 UI 요소들(502 내지 518)에 대응하는 다양한 구역들과 중첩한다. 상세하게는, 표지점들(302c, 304c 및 318)은 UI 요소(504)와 중첩하고, 표지점들(320 및 322)은 UI 요소(512)와 중첩하며, 표지점(314)은 UI와 중첩한다. 표지점들(302d, 304d 및 302e)이 UI 요소들(502 내지 518) 중 어느 것과도 중첩하지 않을 수 있다.
일부 실시예들에서, 각각의 UI 요소에 대한 포인터 점수는 UI 요소와 중첩하는 다중 위치 포인터에 포함된 표지점들의 개수의 합과 같을 수 있다. 동점(tie)인 경우에, 식별 로직(208)은 특정 종류의 표지점들에 우선순위를 부여하도록 구성될 수 있다(예컨대, 끝 부분 표지점들이 손바닥 표지점들 또는 보조 표지점들보다 더 중요할 수 있다). 도 5의 예에서, UI 요소(504)가 (임의의 다른 UI 요소보다 더 많은) 다중 위치 포인터(400)의 3개의 표지점과 중첩하기 때문에, 식별 로직(208)은 UI 요소(504)를 식별할 수 있다. 도 5에서, UI 요소(504)는 하이라이트되어 있는 것으로 도시되어 있고, 이는 식별 로직(208)에 의한 UI 요소(504)의 식별을 나타낸다. 일부 실시예들에서, UI 요소(504)가, 식별되는 동안 확대되는 것과 같이, 상이한 방식으로 시각적으로 표시될 수 있다.
일부 실시예들에서, 각각의 UI 요소에 대한 포인터 점수는 UI 요소와 중첩하는 다중 위치 포인터에 포함된 표지점들의 개수의 가중 합과 같을 수 있다. 다중 위치 포인터 내의 각각의 표지점은 가중치와 연관되어 있을 수 있고, 이 가중치는 UI 요소의 포인터 점수에 대한 그 특정의 표지점의 기여분(contribution)을 결정하는 데 사용될 수 있다. 예를 들어, 다중 위치 포인터(400)에서, 표지점(302d)은 1.0의 가중치를 가질 수 있고, 표지점(302e)은 0.5의 가중치를 가질 수 있으며, 표지점(302c)은 0.8의 가중치를 가질 수 있고, 표지점(304d)은 0.5의 가중치를 가질 수 있으며, 표지점(304c)은 0.5의 가중치를 가질 수 있고, 표지점(314)은 0.5의 가중치를 가질 수 있고, 표지점(318)은 0.5의 가중치를 가질 수 있으며, 표지점(320)은 0.5의 가중치를 가질 수 있고, 표지점(322)은 0.5의 가중치를 가질 수 있다. 이 예에서, UI 요소(504)에 대한 포인터 점수는 1.8일 수 있고, UI 요소(512)에 대한 포인터 점수는 1일 수 있으며, UI 요소(516)에 대한 포인터 점수는 0.5일 수 있다. 이와 같이, 이 예에서, 식별 로직(208)은 UI 요소(504)를 식별할 수 있다. 이 가중치들은 임의의 원하는 방식으로 할당될 수 있고, 사용자가 컴퓨팅 시스템(100)과 상호작용하기 위해 통상적으로 또는 우선적으로 사용하는 손 움직임들의 유형들에 기초하여 (예컨대, 학습 알고리즘을 사용하여) 동적으로 결정될 수 있다.
일부 실시예들에서, 다중 위치 포인터에서의 표지점과 연관된 가중치는 표지점과 사용자의 신체의 한 부분 상의 기준 위치 사이의 거리에 따라 변할 수 있다. 일부 실시예들에서, 손가락들이 사용자의 손바닥 상으로 오므려질 때 손가락들 상의 표지점들의 영향을 감소시키기 위해 이러한 가중치 조절이 수행될 수 있다. 일부 이러한 실시예들에서, 따라서, (앞서 논의된 바와 같이) 표지점들 각각과 연관된 가중치들이 공칭 가중치일 수 있고, 손가락이 완전히 접혀질 때 가중치가 거의 0일 때까지 표지점이 기준 위치(예컨대, 손바닥의 중심에 있는 위치)에 가까워짐에 따라 감소될 수 있다. 일부 실시예들에서, 표지점 로직(204)은 (예컨대, 사용자의 손이 입력 디바이스(230)에 의해 측정될 수 있도록 사용자로 하여금 자신의 뻗은 손을 떠받치고 있게 하는 것에 의해 수행되는 초기 교정 절차를 통해) 다양한 표지점들과 기준 위치 사이의 예상된 거리를 교정할 수 있고, 포인터 로직(206)은 표지점 로직(204)에 의해 결정된 표지점 위치들에 기초하여 가중치들을 조절할 수 있다.
일부 실시예들에서, 앞서 논의된 표지점 위치들 및 그의 대응하는 가중치들에 기초하여 가중 평균 위치를 계산하는 것에 의해 다중 위치 포인터가 결정될 수 있다. 이 가중 평균 위치는 (예컨대, 커서가 UI 요소와 중첩할 때) UI 요소를 식별하는 데 사용될 수 있는 커서에 대응할 수 있는, UI에서의 단일의 지점을 나타낼 수 있다. 일부 실시예들에서, 디스플레이 로직(210)은 이 가중 평균 위치의 시각적 표시자를 제공할 수 있다.
일부 실시예들에서, 다중 위치 포인터는, 표지점 위치들의 집합체에 부가하여 또는 그 대신에, 구역을 포함할 수 있다. 도 6 내지 도 9는 다중 위치 포인터들(600 내지 900)을 나타낸 것으로서, 그 각각은 표지점 로직(204)에 의해 결정된 하나 이상의 표지점 위치들에 기초하는 경계들을 갖는 구역을 포함한다. 상세하게는, 다중 위치 포인터(600)는 표지점(102e)에 기초할 수 있고, 다중 위치 포인터(700)는 표지점들(302e 및 302d)에 기초할 수 있으며, 다중 위치 포인터(800)는 표지점(302d)에 기초할 수 있고, 다중 위치 포인터(800)는 표지점들(302c, 302d 및 302e)에 기초할 수 있다. 다중 위치 포인터들(600 내지 900)의 경계들은 식별된 표지점으로부터 특정의 거리로 설정될 수 있고, 다중 위치 포인터에 포함된 다수의 표지점들 사이의 영역들을 포함할 수 있다. 다양한 형상들을 가지는 다중 위치 포인터들의 다수의 예들이 도 6 내지 도 9에 도시되어 있지만, 임의의 다른 형상(예컨대, 모서리가 둥근 형상들 또는 비인접 형상들)이 사용될 수 있다. 일부 실시예들에서, 사용자의 신체의 부분이 사용자의 손을 포함하고 표지점들 중 하나 이상이 사용자의 손가락들 위의 지점들과 연관되어 있을 때, 포인터를 결정하는 데 손바닥 위로 완전히 접혀진 손가락 위에 위치된 표지점이 무시될 수 있다. 일부 실시예들에서, 손가락 위의 표지점이 포인터를 결정하는 데 사용되기 위해서는, 그 표지점이 기준 위치(예컨대, 손바닥의 중심)로부터 문턱 거리 초과만큼 떨어져 있어야만 한다.
다중 위치 포인터가 구역을 포함하는 일부 실시예들에서, 도 5를 참조하여 앞서 논의된 바와 같이, 식별 로직(208)은 상이한 UI 요소들에 대한 포인터 점수를 결정하고 가장 높은 점수를 가지는 UI 요소를 식별하도록 구성될 수 있다. 다중 위치 포인터(400)를 참조하여 앞서 논의된 실시예들 중 임의의 것이 구역들을 포함하는 다중 위치 포인터들에 적용될 수 있다. 예를 들어, 식별 로직(208)은 다중 위치 포인터의 구역과 다양한 UI 요소들에 대응하는 구역들 사이의 중첩의 양("충돌 구역(collision area)")에 기초하여 포인터 점수를 결정하도록 구성될 수 있다. 이 중첩 구역들이 픽셀 단위로 또는 임의의 다른 적당한 단위로 측정될 수 있다. 예를 들어, 도 10은 사용자의 신체의 부분(300)이 다수의 UI 요소들(502 내지 518) 상에 위치되고 다중 위치 포인터(900)가 상이한 UI 요소들(502 내지 518)에 대응하는 다양한 구역들과 중첩하는 구성(1000)을 나타낸 것이다. 이 예에서, 다중 위치 포인터(900)와의 중첩의 양이 UI 요소(504)에 대해 가장 클 수 있고(가장 높은 포인터 점수를 산출함), 따라서 식별 로직(208)은 UI 요소(504)를 식별할 수 있다.
일부 실시예들에서, 다중 위치 포인터는 다수의 구역들을 포함할 수 있고, 구역들 각각은 사용자의 신체의 식별된 부분 내의 관심 구역들로서 정의될 수 있다. 예를 들어, 표지점 로직(204)은 영상 포착 디바이스(224)에 의해 포착된 영상(예컨대, 깊이 영상)에서 (영상 "블로브(blob)"로서의) 사용자의 손 또는 다른 관심 신체 부분을 배경 객체들로부터 분리시키고, 분리된 블로브 내의 표지점들의 위치들을 결정하며, 표지점 위치들 주위의 블로브의 구역들을 다중 위치 포인터의 구역들로서 사용하도록 구성될 수 있다. 도 11은 4개의 구역들(1102 내지 1108)을 가지는 다중 위치 포인터(1100)를 나타낸 것이고, 그 구역들 각각은 다양한 관심 표지점들 주위의 손 블로브의 한 부분(가운뎃손가락, 집게손가락 및 엄지손가락의 끝 부분들, 그리고 집게손가락과 엄지손가락 사이의 손갈퀴(web)와 손바닥의 중심 사이의 손의 한 부분)에 대응한다. 다중 위치 포인터(1100)의 구역들은 충돌 구역일 수 있고, 상이한 UI 요소들에 대한 포인터 점수들은 도 10을 참조하여 앞서 논의된 바와 같이 계산될 수 있다. 그에 부가하여, 다중 위치 포인터(1100)의 상이한 구역들이, 다중 위치 포인터(400)를 참조하여 앞서 논의된 바와 같이, 가중치들을 가질 수 있다. 일부 실시예들에서, 이 가중치들이, 앞서 논의된 바와 같이, 구역들과 사용자의 신체 상의 기준 위치 사이의 거리에 기초하여 조절될 수 있다. 일부 실시예들에서, 사용자의 신체의 부분이 사용자의 손을 포함하고 구역들 중 하나 이상이 사용자의 손가락들 위의 지점들과 연관되어 있을 때, 포인터를 결정하는 데 손바닥 위로 완전히 접혀진 손가락 위에 위치된 구역이 무시될 수 있다. 일부 실시예들에서, 손가락 위의 구역이 포인터를 결정하는 데 사용되기 위해서는, 그 구역이 기준 위치(예컨대, 손바닥의 중심)로부터 문턱 거리 초과만큼 떨어져 있어야만 한다.
예를 들어, 도 12는 사용자의 신체의 부분(300)이 다수의 UI 요소들(502 내지 518) 상에 위치되고 다중 위치 포인터(1100)가 상이한 UI 요소들(502 내지 518)에 대응하는 다양한 구역들과 중첩하는 구성(1200)을 나타낸 것이다. 이 예에서, 모든 구역들이 동일하게 가중되는 것으로 가정하면, 다중 위치 포인터(1100)와의 중첩의 양이 UI 요소(516)에 대해 가장 클 수 있고(가장 높은 포인터 점수를 산출함), 따라서 식별 로직(208)은 UI 요소(516)를 식별할 수 있다. 상이한 구역들(1102 내지 1108)이 다중 위치 포인터(1100) 내에서 상이하게 가중되는 경우, 식별 로직(208)에 의해 식별되는 UI 요소는 UI 요소(516)가 아닐 수 있다. 예를 들어, 구역(1104)이 충분히 높은 가중치를 부여받는 경우, UI 요소(506)가 식별 로직(208)에 의해 식별될 수 있다.
일부 실시예들에서, UI 제어 시스템(200)은 가상 포인터를 결정하고 이용하도록 구성될 수 있다. 상세하게는, 표지점 로직(204)은 사용자의 신체의 한 부분과 연관된 표지점의 위치를 결정하도록 구성될 수 있고, 포인터 로직(206)은 가상 상호작용 영역에 대한 표지점 위치의 상대 위치에 기초한 가상 포인터를 결정하도록 구성될 수 있다. 본원에서 사용되는 바와 같이, "가상 상호작용 영역"은 컴퓨팅 시스템과의 사용자 상호작용을 위한 기준으로서 사용될 수 있는, 컴퓨팅 시스템의 UI 하드웨어(예컨대, 디스플레이 또는 입력 디바이스)로부터 떨어져 있는 평면, 곡면, 체적(구체 또는 직방체(rectangular solid) 등) 또는 다른 영역을 지칭할 수 있다. 일부 실시예들에서, 가상 상호작용 영역은 UI 요소들이 투영되거나 다른 방식으로 디스플레이되는 3차원 영역일 수 있다. 일부 실시예들에서, UI 요소의 선택은 사용자의 신체의 한 부분이 가상 상호작용 영역과 교차하는 것을 필요로 할 수 있지만, UI 요소들의 식별은 사용자의 신체가 가상 상호작용 영역으로부터 떨어져 있을 때 일어날 수 있다(그리고 커서 또는 다른 시각적 표시 기법에 의해 표시될 수 있다).
예를 들어, 도 13은 가상 상호작용 영역(1302)이 보여지는 구성(1300)을 나타낸 것이다. 도 13의 가상 상호작용 영역(1302) 예는 디스플레이(222)로부터 떨어져 있는 오목 곡면이다. 사용자는 가상 상호작용 영역(1302)과 상호작용하기 위해 사용자의 신체 및/또는 물체들을 사용하여 디스플레이(222)를 포함하는 컴퓨팅 시스템(예컨대, 도 1의 컴퓨팅 시스템(100))과 상호작용할 수 있다. 예를 들어, 도 13에서, 사용자(1304)는 가상 상호작용 영역(1302)과 교차하도록 자신의 포인터 및 가운뎃손가락(1306)을 위치시키는 것으로 도시되어 있는 반면, 다른 손가락들은 가상 상호작용 영역(1302) 근방에 위치되어 있지만 그와 교차하지 않는다. 포인터 로직(206)은 사용자의 신체 상의 표지점들(예컨대, 사용자(1304)의 집계손가락 및 가운뎃손가락 상의 표지점들 및/또는 사용자(1304)의 다른 손가락들 상의 표지점들)과 가상 상호작용 영역(1302)의 상대 위치들에 기초하여 가상 포인터를 결정할 수 있다. 일부 실시예들에서, 포인터 로직(206)은 다중 위치 포인터를 참조하여 본원에 기술되는 기법들 중 임의의 것에 따라 가상 포인터를 결정할 수 있고, 다양한 UI 요소들(예컨대, 디스플레이(222) 상에 디스플레이되는 요소들)의 포인터 점수들에 대한 임의의 하나 이상의 표지점들의 기여분을 가중하기 위해 다양한 표지점들과 가상 상호작용 영역 사이의 거리를 사용할 수 있다.
일부 실시예들에서, 사용자의 신체의 부분이 가상 상호작용 영역에 대한 위치를 변경함에 따라, 가상 포인터를 결정하기 위해 포인터 로직(206)에 의해 사용되는 표지점이 변할 수 있다. 상세하게는, 사용자의 신체의 한 부분이 가상 상호작용 영역과 교차할 때, 가상 포인터를 결정하는 데 사용되는 표지점이 사용자의 신체의 부분과 가상 상호작용 영역 사이의 교차 지점에 대응하도록 변할 수 있다. 예를 들어, 표지점 로직(204)은, 사용자의 손의 손가락의 끝 부분에 근접한 제1 표지점(예컨대, 끝 부분 표지점들(302a 내지 302e) 중 임의의 것)의 위치를 결정하는 것에 의해, 사용자의 신체의 부분 상의 표지점의 위치를 결정할 수 있고, 사용자의 손의 손가락의 기부 관절에 근접한 제2 표지점(기부 관절 표지점들(308a 내지 308e) 중 임의의 것)의 위치를 결정한다. 제1 표지점(손가락의 끝 부분에 근접해 있음)이 가상 상호작용 영역의 제1 측면에 위치될 때, 포인터 로직(206)은 가상 상호작용 영역에 대한 제1 표지점의 위치의 상대 위치에 기초하여 가상 포인터를 결정할 수 있다. 제1 표지점이 가상 상호작용 영역의 제2 측면에 위치될 때, 포인터 로직은 가상 상호작용 영역에 대한 제2 표지점(손가락의 기부 관절에 근접해 있음)의 위치의 상대 위치에 기초하여 가상 포인터를 결정할 수 있다.
이러한 방식으로, 사용자의 손가락의 끝 부분이 가상 상호작용 영역에 접근하고, 가상 상호작용 영역과 교차하며, 가상 상호작용 영역을 통해 반대쪽 측면으로 진행할 때, 가상 포인터를 결정하기 위해 포인터 로직(206)에 의해 사용되는 표지점이 그에 따라 변할 수 있고, 제1 표지점으로부터 제2 표지점으로 전환될 수 있다. 일부 실시예들에서, 제1 표지점이 가상 상호작용 영역의 제1 측면에 있을 때 제1 표지점이 가상 포인터를 결정하는 데 단독으로 사용될 수 있고 제1 표지점이 가상 상호작용 영역의 제2 측면에 있을 때 제2 표지점이 가상 포인터를 결정하는 데 단독으로 사용될 수 있다는 점에서, 이 전환이 이산적일 수 있다. 일부 실시예들에서, 제1 표지점이 제1 측면으로부터 가상 상호작용 영역에 접근하고 가상 상호작용 영역을 통해 제2 측면으로 진행할 때 표지점 로직(204)이 손가락과 가상 상호작용 영역 사이의 교차 지점에 대응하는 제1 및 제2 표지점들 사이의 보조 표지점을 실질적으로 연속적으로 식별하도록 구성될 수 있고 포인터 로직(206)이 이 보조 표지점에 기초하여 가상 포인터를 결정하도록 구성될 수 있다는 점에서, 이 전환이 실질적으로 연속적일 수 있다. 이전의 논의에서 "손가락"이라고 지칭하는 것은 예시적인 것에 불과하고; 표지점 로직(204) 및 포인터 로직(206)은 사용자의 신체의 임의의 부분을 사용하도록 구성될 수 있다.
예를 들어, 도 13에서, 사용자(1304)의 가운뎃손가락의 기부 관절이 가상 상호작용 영역(1302)의 제1 측면(1310)(사용자(1304)와 마주하는 가상 상호작용 영역(1302)의 측면)에 위치되어 있는 것으로 도시되어 있는 반면, 사용자(1304)의 가운뎃손가락의 끝 부분은 가상 상호작용 영역(1302)의 제2 측면(1308)(디스플레이(222)와 마주하는 가상 상호작용 영역(1302)의 측면)에 위치되어 있는 것으로 도시되어 있다. 구성(1300)에서, 포인터 로직(206)은 가운뎃손가락의 끝 부분(가상 상호작용 영역(1302)의 제2 측면(1308)에 위치됨)과 가운뎃손가락의 기부 관절(가상 상호작용 영역(1302)의 제1 측면(1310)에 위치됨) 사이에 위치된 표지점(예컨대, 보조 표지점)에 기초하여 가상 포인터를 결정하도록 구성될 수 있다. 사용자(1304)의 손이 전체적으로 가상 상호작용 영역(1302)의 제1 측면(1310)에 위치된 경우, 포인터 로직(206)은 가상 포인터를 결정하는 데 가운뎃손가락의 끝 부분에 근접한 표지점을 사용하도록 구성될 수 있다.
일부 실시예들에서, 디스플레이 로직(210)은 표지점 로직(204)에 의해 식별된 표지점 위치와 가상 상호작용 영역 사이의 거리의 시각적 표시자를 제공하도록 구성될 수 있다. 거리가 변함에 따라 이 시각적 표시자가 변할 수 있고, 그로써 가상 상호작용 영역에 대한 사용자의 상대 위치에 관한 피드백을 사용자에게 제공한다. 일부 실시예들에서, 이 표시자는 거리가 변함에 따라 변하는 드롭 쉐도우(drop shadow)와 함께 디스플레이되는 커서를 포함할 수 있다. 예를 들어, 도 14a는 UI 요소(1402) 및 가상 포인터의 시각적 표시자(1404)를 포함하는 (예컨대, 디스플레이(222)에 의해 제공되는) UI 디스플레이(1400)를 나타낸 것이다. 시각적 표시자(1404)는 가상 포인터의 위치를 나타내는 커서(1406), 및 커서(1406)의 드롭 쉐도우(1408)를 포함한다. 가상 포인터에 대해 사용되는 표지점(예컨대, 사용자의 집게손가락의 끝 부분)의 위치와 가상 상호작용 영역 사이의 거리가 변함에 따라 드롭 쉐도우(1408)와 커서(1406) 사이의 거리가 변할 수 있다. 예를 들어, 도 14b는 가상 포인터에 대해 사용되는 표지점이 가상 상호작용 영역에 더욱 가깝게 움직인 후의 UI 디스플레이(1400)를 나타낸 것이며; 도시된 바와 같이, 표지점과 가상 상호작용 영역 사이의 감소된 거리를 반영하기 위해 커서(1406)와 드롭 쉐도우(1408) 사이의 거리가 감소되었다.
일부 실시예들에서, 거리가 변함에 따라 표시자의 크기가 변할 수 있다. 예를 들어, 도 15a는 UI 요소(1502) 및 가상 포인터의 시각적 표시자(1504)를 포함하는 (예컨대, 디스플레이(222)에 의해 제공되는) UI 디스플레이(1500)를 나타낸 것이다. 시각적 표시자(1504)는 가상 포인터의 위치를 나타내는 커서(1506), 및 커서(1506) 주위의 원(1508)을 포함한다. 가상 포인터에 대해 사용되는 표지점(예컨대, 사용자의 집게손가락의 끝 부분)의 위치와 가상 상호작용 영역 사이의 거리가 변함에 따라 원(1508)의 직경이 변할 수 있다. 예를 들어, 도 15b는 가상 포인터에 대해 사용되는 표지점이 가상 상호작용 영역에 더욱 가깝게 움직인 후의 UI 디스플레이(1500)를 나타낸 것이며; 도시된 바와 같이, 표지점과 가상 상호작용 영역 사이의 감소된 거리를 반영하기 위해 원(1508)의 직경이 감소되었다.
디스플레이 로직(210)은 표지점 위치와 가상 상호작용 영역 사이의 거리를 나타내기 위해, 앞서 논의된 기법들에 부가하여 또는 그 대신에, 다수의 부가 기법들 중 임의의 것을 구현할 수 있다. 일부 실시예들에서, 거리가 변함에 따라 커서의 색상이 변할 수 있다(예컨대, 거리가 감소함에 따라 청색으로부터 적색으로의 점진적 전환, 및 그 반대). 일부 실시예들에서, 디스플레이(222) 상에 디스플레이되는 하나 이상의 UI 요소들은 (예컨대, 사용자가 현재 "호버링(hovering)"하고 있는 UI 요소를, UI 요소를 음영으로 렌더링하거나 그의 시각적 표현을 다른 방식으로 변경함으로써, 표시하는 것에 의해) 표지점 위치와 가상 상호작용 영역 사이의 거리를 나타내기 위해 시각적 변화를 겪을 수 있다.
일부 실시예들에서, UI 제어 시스템(200)은 베이스 포인터를 결정하고 이용하도록 구성될 수 있다. 상세하게는, 표지점 로직(204)은 사용자의 손의 집게손가락의 하부 부분(이 하부 부분은 집게손가락의 끝 부분으로부터 떨어져 있음)의 위치를 결정하도록 구성될 수 있고, 포인터 로직(206)은 사용자의 손의 집게손가락의 하부 부분의 위치에 기초하여 베이스 포인터를 결정하도록 구성될 수 있다. 일부 실시예들에서, 사용자의 손의 집게손가락의 하부 부분은 (예컨대, 기부 관절 표지점(308d) 또는 기부 관절 표지점(308d)에 근접한 보조 표지점에 대응하는) 사용자의 손의 집게손가락의 기부 관절에 근접해 있을 수 있다. 일부 실시예들에서, 사용자의 손의 집게손가락의 하부 부분은 집게손가락의 기부 관절(예컨대, 기부 관절 표지점(308d)에 대응함)과 사용자의 손의 집게손가락의 제2 관절(예컨대, 제2 관절 표지점(306d)에 대응함) 사이에 있을 수 있다.
이 하부 부분 표지점에 기초하여 포인터 로직(206)에 의해 발생된 베이스 포인터는, 마우스 커서가 UI에서의 단일 지점에 대응하는 것과 거의 동일한 방식으로, UI에서의 단일 지점에 대응할 수 있다. 그 결과, 식별 로직(208)은 베이스 포인터와 UI 요소에 대응하는 구역 사이의 중첩에 기초하여 UI 요소를 식별하도록 구성될 수 있다. 예를 들어, 도 16은 사용자의 신체의 부분(300)이 다수의 UI 요소들(502 내지 518) 상에 위치되고 베이스 포인터(1602)(표지점(308d)에 의해 나타낸 바와 같이, 집게손가락의 하부 부분의 위치에 기초하여 포인터 로직(206)에 의해 발생됨)가 UI 요소(510)에 대응하는 구역과 중첩하는 구성(1600)을 나타낸 것이다. 이 예에서, 식별 로직(208)은 UI 요소(510)를 식별할 수 있다. 일부 실시예들에서, 디스플레이 로직(210)은 베이스 포인터를 나타내는 커서를 디스플레이(222) 상에 디스플레이하도록 구성될 수 있다.
앞서 기술된 실시예들의 특징들 중 임의의 것이 임의의 원하는 방식으로 결합될 수 있다. 예를 들어, 가상 상호작용 영역을 참조하여 앞서 논의된 시각적 표시자 기법들이 본원에 기술되는 포인터들 중 임의의 것의 시각적 표시자를 제공하는 데 사용될 수 있다. 다중 위치 포인터들이 가상 상호작용 영역들과 함께 사용될 수 있고, 다양한 표지점들과 가상 상호작용 영역의 상대 위치가 변함에 따라 다중 위치 포인터들을 결정하는 데 사용되는 표지점들이 변할 수 있다.
앞서 살펴본 바와 같이, 제어 동작 로직(202)은 선택 로직(212)을 포함할 수 있고, 선택 로직(212)은 사용자의 제스처를 나타내는 제스처 데이터에 기초하여 식별 로직(208)에 의해 식별된 UI 요소를 선택하도록 구성될 수 있다. UI 요소는 앞서 기술된 포인터 기법들 중 임의의 것을 사용하여 식별 로직(208)에 의해 식별될 수 있다. 도 17a, 도 17b, 도 18a 및 도 18b는 식별된 UI 요소를 선택하기 위해 선택 로직(212)에 의해 인식될 수 있는 다양한 제스처들을 나타낸 것이다. 상세하게는, 도 17a 및 도 17b는 "핀치" 제스처를 나타낸 것이고, 도 18a 및 도 18b는 "잡기(grab)" 제스처를 나타낸 것이며, 이들 중 어느 하나 또는 둘 다는 식별된 UI 요소를 선택하기 위해 선택 로직(212)에 의해 인식될 수 있다. 이 제스처들을 나타내는 데이터를 입력 디바이스(230)로부터 수신할 때, 선택 로직(212)은 제스처들을 인식하고 식별된 UI 요소를 선택할 수 있다.
일부 실시예들에서, 선택 로직(212)은 사용자의 신체의 한 부분이 UI 요소 "위에서 호버링(hovering over)"하는 것을 나타내는 제스처 데이터를 인식하도록 구성될 수 있다. 선택 로직(212)은 호버가 일어나는 시간의 양을 추적하도록 구성된 타이머를 포함할 수 있다. 일부 실시예들에서, 미리 결정된 기간의 경과 시에, 선택 로직(212)은 UI 요소를 선택할 수 있다. 일부 실시예들에서, 디스플레이 로직(210)은 경과된 시간의 시각적 표시자를 디스플레이하도록 구성될 수 있다. 예를 들어, 도 19는 UI 요소(1902), 포인터의 시각적 표시자(1904), 및 호버링 시간의 시각적 표시자(1906)를 포함하는 (예컨대, 디스플레이(222)에 의해 제공되는) UI 디스플레이(1900)를 나타낸 것이다. 도 19의 시각적 표시자(1906)는 시간이 진행됨에 따라 시각적 표시자(1906)의 가장자리 주위의 범위가 증가할 수 있고 미리 결정된 기간이 경과할 때 시각적 표시자(1906)를 완전히 둘러쌀 수 있는 음영 부분을 포함할 수 있다. 다른 실시예들에서, 다른 시각적 표시자들이 사용될 수 있다.
일부 실시예들에서, 미리 결정된 기간의 경과 시에, 디스플레이 로직(210)은 확인 UI 요소를 디스플레이할 수 있다. 선택 로직(212)은 이어서 확인 UI 요소의 선택을 나타내는 부가의 제스처 데이터를 기다릴 수 있고; 부가의 제스처 데이터의 검출 시에, 선택 로직(212)은 UI 요소를 선택할 수 있다. 예를 들어, 도 20은 UI 요소(2002), 포인터의 시각적 표시자(2004), 확인 UI 요소(2006), 및 취소 UI 요소(2008)를 포함하는 (예컨대, 디스플레이(222)에 의해 제공되는) UI 디스플레이(2000)를 나타낸 것이다. 디스플레이 로직(210)은 (시각적 표시자(2004)가 UI 요소(2002) 상에 위치되는 것에 의해 암시되는 바와 같이) 사용자가 UI 요소(2002) 위에서 호버링하기 시작한 후 미리 결정된 기간의 경과 시에 확인 UI 요소(2006) 및 취소 UI 요소(2008)를 디스플레이하도록 구성될 수 있다. 확인 UI 요소(2006) 및 취소 UI 요소(2008)의 디스플레이 후에, 사용자는 확인 UI 요소(2006)를 (선택 로직(212)에 의해 인식된 임의의 적절한 제스처를 사용하여) 선택하는 것에 의해 UI 요소(2002)의 선택을 확인하거나 취소 UI 요소(2008)를 (임의의 적절한 제스처를 사용하여) 선택하는 것에 의해 UI 요소(2002)의 선택을 취소할 수 있다. 일부 실시예들에서, 디스플레이 로직(210)이 확인 UI 요소만을 디스플레이하고 취소 UI 요소를 디스플레이하지 않을 수 있다. 일부 실시예들에서, 디스플레이 로직(210)이 타이머의 시각적 표시자(예컨대, 도 19의 시각적 표시자(1906))에 부가하여 취소 UI 요소를 디스플레이할 수 있고, 취소 UI 요소의 선택은 사용자가 타이머의 진행을 중지시킬 수 있게 할 것이다.
선택 로직(212)은 앞서 논의된 것들 대신에 또는 그에 부가하여, 다수의 다른 선택 기법들 중 임의의 것을 구현할 수 있다. 예를 들어, 가상 상호작용 영역을 포함하는 실시예들에서, 사용자는 가상 상호작용 영역과 교차하도록 사용자의 신체를 움직이는 것에 의해(예컨대, 가상 상호작용 영역을 "지나가게" 하나 이상의 손가락들을 내미는 것에 의해) UI 요소를 선택할 수 있다. 사용자는 제스처 기법들 대신에 또는 그에 부가하여, 음성 명령과 같은, 다른 방식들을 사용하여 UI 요소를 선택할 수 있다.
본원에 개시되는 포인터의 다양한 실시예들은 제스처 기반 인터페이스 설계의 과제들에 대한 유연하고 적응적인 접근법들을 제공할 수 있다. 전통적으로, 랩톱 컴퓨터, 태블릿 및 휴대폰과 같은 컴퓨팅 디바이스와의 사용자 상호작용들은 컨트롤(controls)을 물리적으로 조작하는 것, 버튼을 누르는 것, 또는 스크린을 터치하는 것을 필요로 한다. 예를 들어, 사용자는 키보드 및 마우스와 같은 입력 디바이스를 통해 컴퓨팅 디바이스와 종종 상호작용할 수 있다. 키보드 및 마우스가 2차원 디스플레이 상에서 텍스트를 입력하는 것 및 문서를 스크롤하는 것과 같은 기능들에 대해서는 만족스러울 수 있지만, 많은 다른 응용 분야들에 대해서는 만족스럽지 않을 수 있다. 예를 들어, 사용자의 손이 전형적으로 편평한 2차원 표면을 따라 마우스를 움직이도록 제약되어 있기 때문에, 마우스를 사용해 3차원 가상 공간을 탐색하는 것은 어색하고 비직관적일 수 있다. 태블릿 및 휴대폰과 같은 많은 더욱 새로운 컴퓨팅 디바이스들은 터치스크린 인터페이스를 포함할 수 있지만; 터치스크린의 종래의 편평한 인터페이스는 사용자 또는 컴퓨팅 디바이스가 어떤 깊이 관념도 전달할 수 없게 할 것이다. 이 종래의 디바이스들은 가능한 손 및 손가락 움직임의 전체 범위를 종래의 기술의 제약들에 부합하는 2차원 움직임들의 제한된 부분집합으로 종종 제한한다. 본원에 개시되는 시스템들 및 기법들의 다양한 실시예들은 사람들이 다른 사람들과 의사 소통하는 자연스런 방식과 유사한 방식으로 - 즉, 사람들의 신체를 사용해 제스처를 행하는 것에 의해(예컨대, 공중에서 사용자의 손 및 손가락을 움직여 객체들 쪽을 가리키거나 고개를 끄덕이는 것에 의해) - 사람들이 자신의 디바이스들과 통신할 수 있게 할 것이다. 종래의 사용자 인터페이스 기술들은 이러한 제스처 기반 상호작용을 가능하게 하지 않으며, 사람들이 흔히 자신의 손 및 손가락을 움직이는 방식들이 기존의 디바이스 인터페이스들(마우스 또는 터치스크린 인터페이스들 등)에 용이하게 매핑되지 않는다.
본원에 개시되는 시스템들 및 기법들의 일부 실시예들은 사용자의 다양한 의도된 상호작용들로 해석되는 광범위한 거동들(예컨대, 사용자의 손 및 손가락의 움직임)을 인식함으로써 사용자가 컴퓨팅 디바이스와 신속하고 정확하게 상호작용할 수 있게 할 것이다.
메뉴와 같은 종래의 사용자 인터페이스에서, 사용자는 포인터를 아이콘 상으로 움직이고 마우스 상의 버튼을 클릭하는 것에 의해 또는 터치스크린 상의 대응하는 지점을 터치하는 것에 의해, 격자(grid) 또는 스택(stack)으로 디스플레이되는 아이콘들 또는 텍스트 상자들과 같은, UI 요소들과 상호작용할 수 있다. 이 예들 둘 다에서, 사용자는 UI 요소를 선택하기 위해 단일의 접촉 지점을 사용한다. 다중 터치 디바이스들(디바이스가 입력 표면과의 2개 이상의 접촉 지점들을 인식할 수 있는 것들)에서도, UI 요소의 선택이 전형적으로 손가락과 같은 것에 의한 요소와의 첫 번째 접촉 시에 일어난다.
그렇지만, 상이한 사용자들은 상이한 UI 요소들을 상이한 방식들로 가리키기 위해 자신의 손, 손가락 및 다른 신체 부위를 사용할 수 있고, 따라서 손 구성 및 움직임과 UI 요소와의 의도된 상호작용 사이에 단일의 일대일 매핑이 없을 수 있다. 그 결과, 상이한 UI 응용 분야들은 상이하고 더욱 복잡한 추적 및 제스처 인식 기법들을 요구할 수 있다. 본원에 개시되는 다양한 기법들의 다양한 기법들은 상이한 과제들을 해결할 수 있고, 상이한 응용 분야들에서 적당할 수 있다.
예를 들어, 본원에 개시되는 다중 위치 포인터는 다양한 응용 분야들에서 유리할 수 있다. 일부 이러한 장점들의 예들은 사용자가 UI 요소를 가리키기 위해 자신의 손을 사용할 수 있는 3가지 상이한 방식들을 예시하는 도 21 내지 도 23을 참조하여 논의될 수 있다. UI가 사용자의 집게손가락의 끝 부분을 추적하고 포인터로서 사용하는 것에만 의존하는 경우, UI는 이 제스처들을 인식하지 못하고 그리고/또는 제스처들을 사용자의 의도된 상호작용들로 해석하지 못할 수 있다. 예를 들어, 도 21에서, 사용자는, UI 요소(2102)와 상호작용하려는 의도로, 자신의 신체의 한 부분(300)을 UI 요소(2102) 상에 위치시킬 수 있다. 사용자의 집게손가락이 UI 요소(2102) 바로 위에 있지 않더라도, 사용자는 자신의 제스처가 유효할 것이라고 예상할 수 있다. 도 22에서, UI 요소들의 격자가 디스플레이되고, 사용자가 어느 UI 요소와 상호작용하려고 의도하는지가 (신체 부분(300)의 위치에 기초하여) 명백하지 않다. 사용자는 손바닥이 포인터로서 기능할 것으로 예상할 수 있고, 시스템이 집게손가락의 끝 부분을 인식하도록만 구성되어 있다는 것을 알지 못할 수 있다. 도 23에서, 사용자는 UI 요소(2302)를 양측으로부터 "핀치"하는 것에 의해 자신의 신체의 한 부분(300)으로 UI 요소(508)를 가리키려고 시도한다. 이 제스처에서 사용자의 집게손가락이 꼭 UI 요소(2302)를 터치하거나 그와 중첩하는 것은 아니기 때문에, 이 제스처는 집게손가락의 끝 부분에 집중하고 있는 시스템에 의해 인식되지 못할 수 있고, 그로써 사용자를 좌절시킨다.
도 21 내지 도 23에 예시된 예들이 동일한 UI에서 동시에 나타날 수 있으며, 집게손가락 또는 손바닥의 중심과 같은 단일 지점 상에 고정되어 있는 포인터를 만족스럽지 못한 것으로 만든다. 그렇지만, 앞서 논의된 바와 같이 포인터를 결정하기 위해 다수의 표지점들에 의존할 수 있는 다중 위치 포인터의 사용은 사용자가 어느 UI 요소와 상호작용하려는 의도가 가장 많은지를 결정하는 데 사용자의 신체의 한 부분과 연관된 다수의 표지점들의 기여분들을 고려할 수 있고, 그로써 사용자의 의도된 목적을 보다 강건하고 즉각 채택 가능한 방식으로 달성할 수 있다.
본원에 개시되는 가상 포인터는 다양한 응용 분야들에서 유리할 수 있다. 예를 들어, 종래의 "가상 터치 스크린" 시스템들에서는, 상호작용 구역이 디스플레이 또는 다른 디바이스로부터 특정 거리로서 정의될 수 있고, 상호작용 구역에 들어가는 임의의 물체가 포인터로서 해석되며, 그의 움직임들을 UI 요소들에 매핑하기 위해 추적될 수 있다. 이러한 종래의 시스템들은 상호작용 구역에 들어가는 의도하지 않은 물체들(사용자의 다른 손 또는 얼굴 등)로부터의 거짓 양성(false positive)에 취약하며, (이러한 거짓 양성을 등록하는 것을 피하기 위해 사용자의 움직임들을 인위적으로 제약해야만 하는) 사용자에 대한 좌절감 및 불편을 야기한다. 본원에 개시되는 가상 포인터 실시예들의 다양한 실시예들의 사용은 (상호작용 구역에서의 임의의 간섭을 포인터로서 해석하기보다는) 포인터를 결정하는 데 하나 이상의 특정 표지점들에 집중하는 것에 의해 이 문제들을 해결할 수 있고, (예컨대, 어느 표지점들이 포인터를 결정하는 데 사용되는지를 동적으로 조절하는 것에 의해) 사용자 거동의 변동들에 특히 강건할 수 있다.
본원에 개시되는 베이스 포인터는 다양한 응용 분야들에서 유리할 수 있다. 상세하게는, 본원에 개시되는 베이스 포인터는 단순히 사용자의 집게손가락의 끝 부분을 사용하는 것보다 개선들을 제공할 수 있는데, 그 이유는 적어도 포인터를 결정하는 이러한 집게손가락 기반 접근법들이 사용자의 의도를 해석하는 데 바람직하지 않은 모호성을 야기할 수 있기 때문이다. 예를 들어, 일부 시스템들은 집게손가락의 손가락 끝을 포인터로서 추적할 수 있고 또한 UI 요소들을 선택하기 위해 "핀치" 제스처(도 17a 및 도 17b에 예시되어 있음)의 검출에 의존할 수 있다. 이 2개의 상이한 상호작용들은 서로 충돌할 수 있는데, 그 이유는 핀치 제스처를 수행하기 위해 집게손가락이 엄지손가락 쪽으로 움직이는 것이 또한 집게손가락의 끝 부분에 매핑되는 포인터를 움직이게 하기 때문이다. 하나의 대안의 접근법은 집게손가락의 끝 부분 대신에 포인터에 대한 표지점으로서 손바닥 중심에 의존하는 것일 수 있다. 그렇지만, 손바닥의 중심은 집게손가락의 끝 부분보다 훨씬 더 적은 차이를 갖는 포인터를 생성할 수 있고, 더욱이 사용자에 대해 덜 자연스러울 수 있으며, 본원에 개시되는 베이스 포인터는 집게손가락의 끝 부분의 추적에 의존하는 핀치 제스처와의 충돌을 야기함이 없이 미묘한 손바닥 움직임(예컨대, 손목 관절을 중심으로 손을 흔드는 것에 관여된 움직임, 손바닥의 중심만을 추적하는 것에 의해 실질적으로 상실될 수 있는 움직임)의 차이를 유지할 수 있다.
도 24 내지 도 29는 다양한 실시예들에 따른, 예시적인 UI 제어 프로세스들의 흐름도들이다. 본원에 기술되는 도 24 내지 도 29의 프로세스들의 동작들이 특정의 순서로 배열되고 각각 한 번씩 예시되어 있지만, 다양한 실시예들에서 동작들 중 하나 이상이 반복, 생략 또는 비순차적으로 수행될 수 있다. 상세하게는, 도 24 내지 도 29의 프로세스들의 동작들이, 예시를 위해 특정의 순서로 수행되는 것으로 예시되어 있지만, 적당한 경우 병렬로 수행될 수 있다. 도 24 내지 도 29의 프로세스들의 동작들이, 예시를 위해, 컴퓨팅 시스템(100)에 구현되는 UI 제어 시스템(200)에 의해 수행되는 것으로 기술될 수 있지만, 도 24 내지 도 29의 프로세스들의 개별적인 동작들을 포함하는 도 24 내지 도 29의 프로세스들의 동작들이 임의의 적당히 구성된 컴퓨팅 디바이스 또는 컴퓨팅 디바이스들의 집합체에 의해 수행될 수 있다. 도 24 내지 도 29의 프로세스들의 동작들 중 임의의 것이 본원에 기술되는 시스템들(100 및 200)의 실시예들 중 임의의 것에 따라 수행될 수 있다.
도 24는 다양한 실시예들에 따른, UI 제어 프로세스(2400)를 나타낸 흐름도이다. 프로세스(2400)는 UI 제어 시스템(200)(예컨대, 표지점 로직(204))이 사용자의 신체의 한 부분과 연관된 하나 이상의 표지점들의 위치들을 결정할 수 있는 동작(2402)에서 시작할 수 있다. 동작(2404)에서, UI 제어 시스템(200)(예컨대, 포인터 로직(206))은 동작(2402)에서 결정된 표지점 위치(들)에 기초하여 포인터를 결정할 수 있다. 동작(2406)에서, UI 제어 시스템(200)(예컨대, 디스플레이 로직(210))은 (동작(2404)에서 결정된) 포인터를 디스플레이(예컨대, 디스플레이(222)에 의해 제공되는 디스플레이)에 시각적으로 표시할 수 있다. 동작(2408)에서, UI 제어 시스템(200)(예컨대, 식별 로직(208))은 (동작(2406)에서 결정된) 포인터에 기초하여 디스플레이에서의 다수의 UI 요소들 중에서 하나의 UI 요소를 식별할 수 있다. 동작(2410)에서, UI 제어 시스템(200)(예컨대, 디스플레이 로직(210))은 (동작(2408)에서 식별된) UI 요소를 디스플레이에 시각적으로 표시할 수 있다. 일부 실시예들에서, 식별된 UI 요소는 UI 요소가 식별되는 동안 디스플레이에서 UI 요소를 확대시키는 것에 의해 시각적으로 표시될 수 있다. 동작(2412)에서, UI 제어 시스템(200)(예컨대, 선택 로직(212))은 사용자의 제스처를 나타내는 제스처 데이터에 기초하여 (동작(2408)에서 식별된) UI 요소를 선택할 수 있다. 프로세스(2400)가 이어서 종료될 수 있다.
도 25는 다양한 실시예들에 따른, 프로세스(2400)(도 24)의 동작들(2402 내지 2408)을 수행하기 위해 구현될 수 있는 프로세스(2500)를 나타내는 흐름도이다. 프로세스(2500)는 UI 제어 시스템(200)(예컨대, 표지점 로직(204))이 사용자의 신체의 한 부분 상의 하나 이상의 표지점들의 위치들을 결정할 수 있는 동작(2502)에서 시작할 수 있다. 이러한 표지점들의 예들은 사용자의 손의 다양한 관절들, 사용자의 얼굴의 특징들에 대응하는 표지점들, 또는 임의의 다른 원하는 표지점을 포함할 수 있다. 동작(2504)에서, UI 제어 시스템(예컨대, 표지점 로직(204))은 동작(2502)에서 식별된 표지점들에 기초하여 하나 이상의 보조 표지점들의 위치들을 결정할 수 있다. 보조 표지점들의 예들은 사용자의 신체의 한 부분 상의 2개 이상의 표지점들, 사용자의 신체의 다양한 구역들에 대한 센트로이드(centroid)에 대응하는 표지점들, 및 임의의 다른 적당한 보조 표지점들을 연결시키는 선분들을 따라 결정된 표지점들을 포함할 수 있다. 동작들(2502 및 2504)의 실행 시에, UI 제어 시스템(200)은 다수의 표지점들을 식별했을 수 있다. 동작(2506)에서, UI 제어 시스템(200)(예컨대, 포인터 로직(206))은 동작들(2502 및 2504)에서 식별된 표지점들 각각과 연관된 하나 이상의 가중치들을 결정할 수 있다. 본원에서 논의되는 실시예들 중 임의의 것에 따라, 이 표지점들 및 연관된 가중치들은 다중 위치 포인터를 형성할 수 있다. 동작(2508)에서, UI 제어 시스템(200)(예컨대, 식별 로직(208))은 UI에서의 각각의 UI 요소에 대한 포인터 점수를 결정할 수 있다. 포인터 점수는 포인터와 UI에서의 UI 요소들에 대응하는 구역들 사이의 중첩에 기초할 수 있다. 포인터 점수 기법들의 다수의 예들이 본원에 개시되어 있다. 동작(2510)에서, UI 제어 시스템(200)(예컨대, 식별 로직(208))은 어느 UI 요소가 가장 높은 점수를 가지는지를 결정하고, 그 UI 요소를 식별할 수 있다. 프로세스(2500)가 이어서 종료될 수 있다.
도 26은 다양한 실시예들에 따른, 프로세스(2400)(도 24)의 동작들(2402 내지 2408)을 수행하기 위해 구현될 수 있는 대안의 프로세스(2600)를 나타내는 흐름도이다. 프로세스(2600)는 UI 제어 시스템(200)(예컨대, 표지점 로직(204))이 사용자의 신체의 한 부분 상의 하나 이상의 표지점들의 위치들을 결정할 수 있는 동작(2602)에서 시작할 수 있다. 이러한 표지점들의 예들은 사용자의 손의 다양한 관절들, 사용자의 얼굴의 특징들에 대응하는 표지점들, 또는 임의의 다른 원하는 표지점을 포함할 수 있다. 일부 실시예들에서, 사용자의 신체의 부분이 사용자의 손을 포함하고 표지점들 중 하나 이상이 사용자의 손가락들 위의 지점들과 연관되어 있을 때, 손바닥 위로 완전히 접혀진 손가락 위에 위치된 표지점이 무시될 수 있다. 일부 실시예들에서, 손가락 위의 표지점이 후속 동작들에서 사용되기 위해서는, 그 표지점이 기준 위치(예컨대, 손바닥의 중심)로부터 문턱 거리 초과만큼 떨어져 있어야만 한다. 동작(2604)에서, UI 제어 시스템(200)(예컨대, 포인터 로직(206))은 동작(2602)에서 결정된 표지점들 중 하나 이상의 표지점들 주위의 사용자의 신체의 부분의 하나 이상의 구역들을 결정할 수 있다. 본원에서 논의되는 실시예들 중 임의의 것에 따라, 이 구역들은 다중 위치 포인터를 형성할 수 있다. 동작(2606)에서, UI 제어 시스템(200)(예컨대, 식별 로직(208))은 UI에서의 각각의 UI 요소에 대한 포인터 점수를 결정할 수 있다. 포인터 점수는 (예컨대, 충돌 평면 기법을 사용하여) 포인터와 UI에서의 UI 요소들에 대응하는 구역들 사이의 중첩에 기초할 수 있다. 동작(2608)에서, UI 제어 시스템(200)(예컨대, 식별 로직(208))은 어느 UI 요소가 가장 높은 점수를 가지는지를 결정하고, 그 UI 요소를 식별할 수 있다. 프로세스(2600)가 이어서 종료될 수 있다.
도 27은 다양한 실시예들에 따른, 프로세스(2400)(도 24)의 동작들(2402 내지 2408)을 수행하기 위해 구현될 수 있는 다른 대안의 프로세스(2700)를 나타내는 흐름도이다. 프로세스(2700)는 UI 제어 시스템(200)(예컨대, 표지점 로직(204))이 영상 내의 사용자의 신체의 한 부분을 배경 객체들로부터 분리시킬 수 있는 동작(2702)에서 시작할 수 있다. 동작(2704)에서, UI 제어 시스템(200)(예컨대, 표지점 로직(204))은 사용자의 신체의 분리된 부분의 하나 이상의 구역들을 결정할 수 있다. 본원에서 논의되는 실시예들 중 임의의 것에 따라, 이 구역들은 다중 위치 포인터를 형성할 수 있다. 일부 실시예들에서, 사용자의 신체의 부분이 사용자의 손을 포함하고 구역들 중 하나 이상이 사용자의 손가락들 위의 지점들과 연관되어 있을 때, 손바닥 위로 완전히 접혀진 손가락 위에 위치된 구역이 무시될 수 있다. 일부 실시예들에서, 손가락 위의 구역이 후속 동작들에서 사용되기 위해서는, 그 구역이 기준 위치(예컨대, 손바닥의 중심)로부터 문턱 거리 초과만큼 떨어져 있어야만 한다. 동작(2706)에서, UI 제어 시스템(200)(예컨대, 식별 로직(208))은 UI에서의 각각의 UI 요소에 대한 포인터 점수를 결정할 수 있다. 포인터 점수는 (예컨대, 충돌 평면 기법을 사용하여) 포인터와 UI에서의 UI 요소들에 대응하는 구역들 사이의 중첩에 기초할 수 있다. 동작(2708)에서, UI 제어 시스템(200)(예컨대, 식별 로직(208))은 어느 UI 요소가 가장 높은 점수를 가지는지를 결정하고, 그 UI 요소를 식별할 수 있다. 프로세스(2700)가 이어서 종료될 수 있다.
도 28은 다양한 실시예들에 따른, 프로세스(2400)(도 24)의 동작들(2402 내지 2404)을 수행하기 위해 구현될 수 있는 다른 대안의 프로세스(2800)를 나타내는 흐름도이다. 프로세스(2800)는 UI 제어 시스템(200)(예컨대, 표지점 로직(204))이 사용자의 신체의 한 부분과 연관된 표지점의 위치를 결정할 수 있는 동작(2802)에서 시작할 수 있다. 동작(2802)에서 결정된 표지점은 본원에 개시되는 표지점들(도 26의 동작들(2602 및 2604)을 참조하여 앞서 논의된 표지점들을 포함함) 중 임의의 것을 포함할 수 있다. 동작(2804)에서, UI 제어 시스템(200)(예컨대, 포인터 로직(206))은 가상 상호작용 영역에 대한 동작(2802)에서 결정된 표지점 위치의 상대 위치에 기초하여 포인터를 결정할 수 있다. 본원에서 논의되는 실시예들 중 임의의 것에 따라, 이 포인터는 가상 포인터일 수 있다. 프로세스(2800)가 이어서 종료될 수 있다.
도 29는 다양한 실시예들에 따른, 프로세스(2400)(도 24)의 동작들(2402 내지 2404)을 수행하기 위해 구현될 수 있는 다른 대안의 프로세스(2900)를 나타내는 흐름도이다. 프로세스(2900)는 UI 제어 시스템(200)(예컨대, 표지점 로직(204))이 사용자의 손의 집게손가락의 하부 부분의 위치를 결정할 수 있는 동작(2902)에서 시작할 수 있다. 동작(2904)에서, UI 제어 시스템(200)(예컨대, 포인터 로직(206))은 동작(2902)에서 결정된 사용자의 손의 집게손가락의 하부 부분의 위치에 기초하여 포인터를 결정할 수 있다. 본원에서 논의되는 실시예들 중 임의의 것에 따라, 이 포인터는 베이스 포인터일 수 있다. 프로세스(2900)가 이어서 종료될 수 있다.
이하의 단락들은 본 개시내용의 실시예들의 다수의 예들을 기술한다. 예 1은 컴퓨팅 시스템의 사용자의 신체의 한 부분과 연관된 복수의 표지점들의 위치들을 결정하는 표지점 로직; 표지점 로직과 결합되어 있는, 복수의 표지점 위치들에 적어도 부분적으로 기초하여 포인터를 결정하는 포인터 로직; 및 포인터 로직과 결합되어 있는, 포인터에 적어도 부분적으로 기초하여 컴퓨팅 시스템의 UI의 복수의 UI 요소들 중에서 하나의 UI 요소를 식별하는 식별 로직을 포함하는 UI 제어 시스템이다.
예 2는 예 1의 발명 요지를 포함하고, 표지점 로직이 깊이 카메라에 의해 포착된 사용자의 신체의 영상에 기초하여 사용자의 신체의 부분 상의 복수의 표지점들의 위치들을 결정한다는 것을 추가로 명시한다.
예 3은 예 1 및 예 2 중 임의의 예의 발명 요지를 포함하고, 사용자의 신체의 부분이 사용자의 손을 포함한다는 것을 추가로 명시한다.
예 4는 예 1 내지 예 3 중 임의의 예의 발명 요지를 포함하고, 포인터에 기초하여 복수의 UI 요소들 중에서 UI 요소를 식별하는 것이 복수의 UI 요소들의 각자의 UI 요소들에 대응하는 UI 내의 복수의 구역들을 식별하는 것; 및 UI 요소에 대응하는 구역과 포인터 사이의 중첩의 양에 기초하여 UI 요소를 식별하는 것을 포함한다는 것을 추가로 명시한다.
예 5는 예 4의 발명 요지를 포함하고, UI 요소에 대응하는 구역과 포인터 사이의 중첩의 양이 표지점의 가중치에 기초한다는 것을 추가로 명시한다.
예 6은 예 4의 발명 요지를 포함하고, 가중치가 표지점의 위치와 사용자의 신체의 부분 상의 기준 위치 사이의 거리에 기초한다는 것을 추가로 명시한다.
예 7은 예 1 내지 예 3 중 임의의 예의 발명 요지를 포함하고, 포인터가 UI 내의 한 구역을 포함하고, 그 구역이 표지점의 위치와 사용자의 신체의 부분 상의 기준 위치 사이의 거리에 기초한다는 것을 추가로 명시한다.
예 8은 예 1 내지 예 7 중 임의의 예의 발명 요지를 포함하고, 식별 로직과 결합되어 있는, UI 요소의 식별에 응답하여 디스플레이에서 UI 요소를 확대시키는 디스플레이 로직을 추가로 포함한다.
예 9는 예 1 내지 예 8 중 임의의 예의 발명 요지를 포함하고, 포인터 로직과 결합되어 있는, 포인터의 시각적 표시자를 디스플레이에 제공하는 디스플레이 로직을 추가로 포함한다.
예 10은 예 1 내지 예 9 중 임의의 예의 발명 요지를 포함하고, 식별 로직과 결합되어 있는, UI 요소의 식별 후에, 사용자의 제스처를 나타내는 제스처 데이터에 기초하여 UI 요소를 선택하는 선택 로직을 추가로 포함한다.
예 11은 예 10의 발명 요지를 포함하고, 포인터 로직에 결합되어 있는 디스플레이 로직을 추가로 포함하고, 여기서 사용자의 제스처를 나타내는 제스처 데이터는 미리 결정된 기간 동안 UI 요소 위에서의 호버를 나타내는 제1 제스처 데이터를 포함하고; 디스플레이 로직은 제1 제스처 데이터에 기초하여 확인 UI 요소를 디스플레이하며; 사용자 제스처를 나타내는 제스처 데이터는 확인 UI 요소의 디스플레이 후에 확인 UI 요소의 선택을 나타내는 제2 제스처 데이터를 포함하고; 선택 로직은 제2 제스처 데이터에 기초하여 UI 요소를 선택한다.
예 12는 컴퓨팅 시스템의 사용자의 손의 집게손가락의 하부 부분의 위치를 결정하는 표지점 로직 - 하부 부분은 집게손가락의 끝 부분으로부터 떨어져 있음 -; 표지점 로직과 결합되어 있는, 사용자의 손의 집게손가락의 하부 부분의 위치에 적어도 부분적으로 기초하여 포인터를 결정하는 포인터 로직; 및 포인터 로직과 결합되어 있는, 포인터에 적어도 부분적으로 기초하여 컴퓨팅 시스템의 UI의 복수의 UI 요소들 중에서 하나의 UI 요소를 식별하는 식별 로직을 포함하는 UI 제어 시스템이다.
예 13은 예 12의 발명 요지를 포함하고, 사용자의 손의 집게손가락의 하부 부분이 사용자의 손의 집게손가락의 기부 관절에 근접해 있다는 것을 추가로 명시한다.
예 14는 예 12 및 예 13 중 임의의 예의 발명 요지를 포함하고, 포인터 로직에 결합되어 있는, 포인터를 나타내는 커서를 디스플레이 상에 디스플레이하는 디스플레이 로직을 추가로 포함한다.
예 15는 예 14의 발명 요지를 포함하고, 포인터가 UI 내의 단일 지점에 대응한다는 것을 추가로 명시한다.
예 16은 컴퓨팅 시스템의 사용자의 신체의 한 부분과 연관된 표지점의 위치를 결정하는 표지점 로직; 표지점 로직과 결합되어 있는, 가상 상호작용 영역에 대한 표지점 위치의 상대 위치에 적어도 부분적으로 기초하여 포인터를 결정하는 포인터 로직; 및 포인터 로직과 결합되어 있는, 포인터에 적어도 부분적으로 기초하여 컴퓨팅 시스템의 UI의 복수의 UI 요소들 중에서 하나의 UI 요소를 식별하는 식별 로직을 포함하는 UI 제어 시스템이다.
예 17은 예 16의 발명 요지를 포함하고, 포인터 로직과 결합되어 있는, 표지점 위치와 가상 상호작용 영역 사이의 거리의 시각적 표시자를 제공하는 디스플레이 로직을 추가로 포함하고, 여기서 거리가 변함에 따라 시각적 표시자가 변한다.
예 18은 예 17의 발명 요지를 포함하고, 시각적 표시자는 거리가 증가함에 따라 증가하는 크기를 가진다는 것을 추가로 명시한다.
예 19는 예 16 내지 예 18 중 임의의 예의 발명 요지를 포함하고, 사용자의 신체의 부분 상의 표지점의 위치를 결정하는 것이 사용자의 손의 집게손가락의 끝 부분에 근접한 제1 표지점의 위치를 결정하는 것 및 제1 표지점과 사용자의 손의 집게손가락의 기부 관절 사이의 제2 표지점의 위치를 결정하는 것을 포함하고; 제1 표지점이 가상 상호작용 영역의 제1 측면에 위치되어 있을 때, 포인터 로직이 가상 상호작용 영역에 대한 제1 표지점의 위치의 상대 위치에 기초하여 포인터를 결정하며; 제1 표지점이 제1 측면과 상이한 가상 상호작용 영역의 제2 측면에 위치되어 있을 때, 포인터 로직이 가상 상호작용 영역에 대한 제2 표지점의 위치의 상대 위치에 기초하여 포인터를 결정한다는 것을 추가로 명시한다.
예 20은, 컴퓨팅 시스템의 하나 이상의 처리 디바이스들에 의해 실행될 때, 컴퓨팅 시스템으로 하여금 컴퓨팅 시스템의 사용자의 신체의 한 부분과 연관된 복수의 표지점들의 위치들을 결정하게 하고; 복수의 표지점 위치들에 적어도 부분적으로 기초하여 포인터를 결정하게 하며; 포인터에 적어도 부분적으로 기초하여 컴퓨팅 시스템의 UI의 복수의 UI 요소들 중에서 하나의 UI 요소를 식별하게 하는 컴퓨터 판독 가능 명령어들을 포함하는 하나 이상의 컴퓨터 판독 가능 매체이다.
예 21은 예 20의 발명 요지를 포함하고, 사용자의 신체의 부분 상의 복수의 표지점들의 위치들이 깊이 카메라에 의해 포착된 사용자의 신체의 영상에 기초하여 결정된다는 것을 추가로 명시한다.
예 22는 예 20 및 예 21 중 임의의 예의 발명 요지를 포함하고, 컴퓨팅 시스템의 하나 이상의 처리 디바이스들에 의해 실행될 때, 컴퓨팅 시스템으로 하여금 UI 요소의 식별에 응답하여 디스플레이에서 UI 요소를 확대시키게 하는 컴퓨터 판독 가능 명령어들을 추가로 포함한다.
예 23은 예 20 내지 예 22 중 임의의 예의 발명 요지를 포함하고, 컴퓨팅 시스템의 하나 이상의 처리 디바이스들에 의해 실행될 때, 컴퓨팅 시스템으로 하여금 포인터의 시각적 표시자를 디스플레이에 제공하게 하는 컴퓨터 판독 가능 명령어들을 추가로 포함한다.
예 24는 예 20 내지 예 23 중 임의의 예의 발명 요지를 포함하고, 컴퓨팅 시스템의 하나 이상의 처리 디바이스들에 의해 실행될 때, 컴퓨팅 시스템으로 하여금 UI 요소의 식별 후에, 사용자의 제스처를 나타내는 제스처 데이터에 기초하여 UI 요소를 선택하게 하는 컴퓨터 판독 가능 명령어들을 추가로 포함한다.
예 25는 예 24의 발명 요지를 포함하고, 사용자의 제스처를 나타내는 제스처 데이터가 미리 결정된 기간 동안 UI 요소 위에서의 호버를 나타내는 제1 제스처 데이터를 포함한다는 것을 추가로 명시하며, 컴퓨팅 시스템의 하나 이상의 처리 디바이스들에 의해 실행될 때, 컴퓨팅 시스템으로 하여금 제1 제스처 데이터에 기초하여 확인 UI 요소를 디스플레이하게 하고; 확인 UI 요소의 디스플레이 후에 확인 UI 요소의 선택을 나타내는 제2 제스처 데이터를 수신하게 하며; 제2 제스처 데이터에 기초하여 UI 요소를 선택하게 하는 컴퓨터 판독 가능 명령어들을 추가로 포함한다.
예 26은 컴퓨팅 시스템의 사용자의 신체의 한 부분과 연관된 복수의 표지점들의 위치들을 결정하는 단계; 복수의 표지점 위치들에 적어도 부분적으로 기초하여 포인터를 결정하는 단계; 및 포인터에 적어도 부분적으로 기초하여 컴퓨팅 시스템의 UI의 복수의 UI 요소들 중에서 하나의 UI 요소를 식별하는 단계를 포함하는 UI 제어 방법이다.
예 27은 예 26의 발명 요지를 포함하고, 사용자의 신체의 부분 상의 복수의 표지점들의 위치들을 결정하는 단계가 사용자의 신체의 부분 상의 복수의 표지점들의 위치들을 깊이 카메라에 의해 포착된 사용자의 신체의 영상에 기초하여 결정하는 단계를 포함한다는 것을 추가로 명시한다.
예 28은 예 26 및 예 27 중 임의의 예의 발명 요지를 포함하고, 사용자의 신체의 부분이 사용자의 손을 포함한다는 것을 추가로 명시한다.
예 29는 예 26 내지 예 28 중 임의의 예의 발명 요지를 포함하고, 포인터에 기초하여 복수의 UI 요소들 중에서 UI 요소를 식별하는 단계가 복수의 UI 요소들의 각자의 UI 요소들에 대응하는 UI 내의 복수의 구역들을 식별하는 단계; 및 UI 요소에 대응하는 구역과 포인터 사이의 중첩의 양에 기초하여 UI 요소를 식별하는 단계를 포함한다는 것을 추가로 명시한다.
예 30은 예 29의 발명 요지를 포함하고, UI 요소에 대응하는 구역과 포인터 사이의 중첩의 양이 표지점의 가중치에 기초한다는 것을 추가로 명시한다.
예 31은 예 29의 발명 요지를 포함하고, 가중치가 표지점의 위치와 사용자의 신체의 부분 상의 기준 위치 사이의 거리에 기초한다는 것을 추가로 명시한다.
예 32는 예 26 내지 예 28 중 임의의 예의 발명 요지를 포함하고, 포인터가 UI 내의 한 구역을 포함하고, 그 구역이 표지점의 위치와 사용자의 신체의 부분 상의 기준 위치 사이의 거리에 기초한다는 것을 추가로 명시한다.
예 33은 예 26 내지 예 32 중 임의의 예의 발명 요지를 포함하고, UI 요소의 식별에 응답하여 디스플레이에서 UI 요소를 확대시키는 단계를 추가로 포함한다.
예 34는 예 26 내지 예 33 중 임의의 예의 발명 요지를 포함하고, 포인터의 시각적 표시자를 디스플레이에 제공하는 단계를 추가로 포함한다.
예 35는 예 26 내지 예 24 중 임의의 예의 발명 요지를 포함하고, UI 요소의 식별 후에, 사용자의 제스처를 나타내는 제스처 데이터에 기초하여 UI 요소를 선택하는 단계를 추가로 포함한다.
예 36은 예 35의 발명 요지를 포함하고, 사용자의 제스처를 나타내는 제스처 데이터가 미리 결정된 기간 동안 UI 요소 위에서의 호버를 나타내는 제1 제스처 데이터 및 확인 UI 요소의 디스플레이 후에 확인 UI 요소의 선택을 나타내는 제2 제스처 데이터를 포함한다는 것을 추가로 명시하며, 제1 제스처 데이터에 기초하여 확인 UI 요소를 디스플레이하는 단계; 및 제2 제스처 데이터에 기초하여 UI 요소를 선택하는 단계를 추가로 포함한다.
예 37은 컴퓨팅 시스템의 사용자의 손의 집게손가락의 하부 부분의 위치를 결정하는 단계 - 하부 부분은 집게손가락의 끝 부분으로부터 떨어져 있음 -; 사용자의 손의 집게손가락의 하부 부분의 위치에 적어도 부분적으로 기초하여 포인터를 결정하는 단계; 및 포인터에 적어도 부분적으로 기초하여 컴퓨팅 시스템의 UI의 복수의 UI 요소들 중에서 하나의 UI 요소를 식별하는 단계를 포함하는 UI 제어 방법이다.
예 38은 예 37의 발명 요지를 포함하고, 사용자의 손의 집게손가락의 하부 부분이 사용자의 손의 집게손가락의 기부 관절에 근접해 있다는 것을 추가로 명시한다.
예 39는 예 37 및 예 38 중 임의의 예의 발명 요지를 포함하고, 포인터를 나타내는 커서를 디스플레이 상에 디스플레이하는 단계를 추가로 포함한다.
예 40은 예 39의 발명 요지를 포함하고, 포인터가 UI 내의 단일 지점에 대응한다는 것을 추가로 명시한다.
예 41은 컴퓨팅 시스템의 사용자의 신체의 한 부분과 연관된 표지점의 위치를 결정하는 단계; 가상 상호작용 영역에 대한 표지점 위치의 상대 위치에 적어도 부분적으로 기초하여 포인터를 결정하는 단계; 및 포인터에 적어도 부분적으로 기초하여 컴퓨팅 시스템의 UI의 복수의 UI 요소들 중에서 하나의 UI 요소를 식별하는 단계를 포함하는 UI 제어 방법이다.
예 42는 예 41의 발명 요지를 포함하고, 표지점 위치와 가상 상호작용 영역 사이의 거리의 시각적 표시자를 제공하는 단계를 추가로 포함하고, 여기서 거리가 변함에 따라 시각적 표시자가 변한다.
예 43은 예 42의 발명 요지를 포함하고, 시각적 표시자는 거리가 증가함에 따라 증가하는 크기를 가진다는 것을 추가로 명시한다.
예 44는 예 41 내지 예 43 중 임의의 예의 발명 요지를 포함하고, 사용자의 신체의 부분 상의 표지점의 위치를 결정하는 단계가 사용자의 손의 집게손가락의 끝 부분에 근접한 제1 표지점의 위치를 결정하는 단계 및 제1 표지점과 사용자의 손의 집게손가락의 기부 관절 사이의 제2 표지점의 위치를 결정하는 단계를 포함하고; 가상 상호작용 영역에 대한 표지점 위치의 상대 위치에 기초하여 포인터를 결정하는 단계가 제1 표지점이 가상 상호작용 영역의 제1 측면에 위치되어 있을 때, 가상 상호작용 영역에 대한 제1 표지점의 위치의 상대 위치에 기초하여 포인터를 결정하는 단계 및 제1 표지점이 제1 측면과 상이한 가상 상호작용 영역의 제2 측면에 위치되어 있을 때, 가상 상호작용 영역에 대한 제2 표지점의 위치의 상대 위치에 기초하여 포인터를 결정하는 단계를 포함한다는 것을 추가로 명시한다.
예 45는, 컴퓨팅 시스템에 의해 실행될 때, 컴퓨팅 시스템으로 하여금 예 26 내지 예 44 중 임의의 예의 방법을 수행하게 하는 컴퓨터 판독 가능 명령어들을 포함하는 하나 이상의 컴퓨터 판독 가능 매체이다.
예 46은 예 26 내지 예 44 중 임의의 예의 방법을 수행하는 수단을 포함하는, UI 제어를 위한 컴퓨팅 시스템이다.
예 47은 예 12 및 예 13 또는 예 16 내지 예 19 중 임의의 예의 발명 요지를 포함하고, 포인터 로직과 결합되어 있는, 포인터의 시각적 표시자를 디스플레이에 제공하는 디스플레이 로직을 추가로 포함한다.
예 48은 예 37 및 예 38 또는 예 41 내지 예 44 중 임의의 예의 발명 요지를 포함하고, 포인터의 시각적 표시자를 디스플레이에 제공하는 단계를 추가로 포함한다.
예 49는 컴퓨팅 시스템의 사용자의 신체의 한 부분과 연관된 복수의 표지점들의 위치들을 결정하는 수단; 복수의 표지점 위치들에 적어도 부분적으로 기초하여 포인터를 결정하는 수단; 및 포인터에 적어도 부분적으로 기초하여 컴퓨팅 시스템의 UI의 복수의 UI 요소들 중에서 하나의 UI 요소를 식별하는 수단을 포함하는 UI 제어 시스템이다.
예 50은 예 49의 발명 요지를 포함하고, 사용자의 신체의 부분 상의 복수의 표지점들의 위치들을 결정하는 수단이 사용자의 신체의 부분 상의 복수의 표지점들의 위치들을 깊이 카메라에 의해 포착된 사용자의 신체의 영상에 기초하여 결정하는 수단을 포함한다는 것을 추가로 명시한다.
예 51은 예 49 및 예 50 중 임의의 예의 발명 요지를 포함하고, 사용자의 신체의 부분이 사용자의 손을 포함한다는 것을 추가로 명시한다.
예 52는 예 49 내지 예 51 중 임의의 예의 발명 요지를 포함하고, 포인터에 기초하여 복수의 UI 요소들 중에서 UI 요소를 식별하는 수단이 복수의 UI 요소들의 각자의 UI 요소들에 대응하는 UI 내의 복수의 구역들을 식별하는 수단; 및 UI 요소에 대응하는 구역과 포인터 사이의 중첩의 양에 기초하여 UI 요소를 식별하는 수단을 포함한다는 것을 추가로 명시한다.
예 53은 예 52의 발명 요지를 포함하고, UI 요소에 대응하는 구역과 포인터 사이의 중첩의 양이 표지점의 가중치에 기초한다는 것을 추가로 명시한다.
예 54는 예 52의 발명 요지를 포함하고, 가중치가 표지점의 위치와 사용자의 신체의 부분 상의 기준 위치 사이의 거리에 기초한다는 것을 추가로 명시한다.
예 55는 예 49 내지 예 51 중 임의의 예의 발명 요지를 포함하고, 포인터가 UI 내의 한 구역을 포함하고, 그 구역이 표지점의 위치와 사용자의 신체의 부분 상의 기준 위치 사이의 거리에 기초한다는 것을 추가로 명시한다.
예 56은 예 49 내지 예 55 중 임의의 예의 발명 요지를 포함하고, UI 요소의 식별에 응답하여 디스플레이에서 UI 요소를 확대시키는 수단을 추가로 포함한다.
예 57은 예 49 내지 예 56 중 임의의 예의 발명 요지를 포함하고, 포인터의 시각적 표시자를 디스플레이에 제공하는 수단을 추가로 포함한다.
예 58은 예 49 내지 예 57 중 임의의 예의 발명 요지를 포함하고, UI 요소의 식별 후에, 사용자의 제스처를 나타내는 제스처 데이터에 기초하여 UI 요소를 선택하는 수단을 추가로 포함한다.
예 59는 예 58의 발명 요지를 포함하고, 사용자의 제스처를 나타내는 제스처 데이터가 미리 결정된 기간 동안 UI 요소 위에서의 호버를 나타내는 제1 제스처 데이터 및 확인 UI 요소의 디스플레이 후에 확인 UI 요소의 선택을 나타내는 제2 제스처 데이터를 포함한다는 것을 추가로 명시하며, 제1 제스처 데이터에 기초하여 확인 UI 요소를 디스플레이하는 수단; 및 제2 제스처 데이터에 기초하여 UI 요소를 선택하는 수단을 추가로 포함한다.
예 60은 컴퓨팅 시스템의 사용자의 손의 집게손가락의 하부 부분의 위치를 결정하는 수단 - 하부 부분은 집게손가락의 끝 부분으로부터 떨어져 있음 -; 사용자의 손의 집게손가락의 하부 부분의 위치에 적어도 부분적으로 기초하여 포인터를 결정하는 수단; 및 포인터에 적어도 부분적으로 기초하여 컴퓨팅 시스템의 UI의 복수의 UI 요소들 중에서 하나의 UI 요소를 식별하는 수단을 포함하는 UI 제어 시스템이다.
예 61은 예 60의 발명 요지를 포함하고, 사용자의 손의 집게손가락의 하부 부분이 사용자의 손의 집게손가락의 기부 관절에 근접해 있다는 것을 추가로 명시한다.
예 62는 예 60 및 예 61 중 임의의 예의 발명 요지를 포함하고, 포인터를 나타내는 커서를 디스플레이 상에 디스플레이하는 수단을 추가로 포함한다.
예 63은 예 62의 발명 요지를 포함하고, 포인터가 UI 내의 단일 지점에 대응한다는 것을 추가로 명시한다.
예 64는 컴퓨팅 시스템의 사용자의 신체의 한 부분과 연관된 표지점의 위치를 결정하는 수단; 가상 상호작용 영역에 대한 표지점 위치의 상대 위치에 적어도 부분적으로 기초하여 포인터를 결정하는 수단; 및 포인터에 적어도 부분적으로 기초하여 컴퓨팅 시스템의 UI의 복수의 UI 요소들 중에서 하나의 UI 요소를 식별하는 수단을 포함하는 UI 제어 시스템이다.
예 65는 예 64의 발명 요지를 포함하고, 표지점 위치와 가상 상호작용 영역 사이의 거리의 시각적 표시자를 제공하는 수단을 추가로 포함하고, 여기서 거리가 변함에 따라 시각적 표시자가 변한다.
예 66은 예 65의 발명 요지를 포함하고, 시각적 표시자는 거리가 증가함에 따라 증가하는 크기를 가진다는 것을 추가로 명시한다.
예 67은 예 64 내지 예 66 중 임의의 예의 발명 요지를 포함하고, 사용자의 신체의 부분 상의 표지점의 위치를 결정하는 수단이 사용자의 손의 집게손가락의 끝 부분에 근접한 제1 표지점의 위치를 결정하는 수단 및 제1 표지점과 사용자의 손의 집게손가락의 기부 관절 사이의 제2 표지점의 위치를 결정하는 수단을 포함하고; 가상 상호작용 영역에 대한 표지점 위치의 상대 위치에 기초하여 포인터를 결정하는 수단이 제1 표지점이 가상 상호작용 영역의 제1 측면에 위치되어 있을 때, 가상 상호작용 영역에 대한 제1 표지점의 위치의 상대 위치에 기초하여 포인터를 결정하는 수단 및 제1 표지점이 제1 측면과 상이한 가상 상호작용 영역의 제2 측면에 위치되어 있을 때, 가상 상호작용 영역에 대한 제2 표지점의 위치의 상대 위치에 기초하여 포인터를 결정하는 수단을 포함한다는 것을 추가로 명시한다.
예 68은 예 60 및 예 61 또는 예 64 내지 예 67 중 임의의 예의 발명 요지를 포함하고, 포인터의 시각적 표시자를 디스플레이에 제공하는 수단을 추가로 포함한다.

Claims (30)

  1. 사용자 인터페이스(UI) 제어 시스템으로서,
    컴퓨팅 시스템의 사용자의 신체의 한 부분과 연관된 복수의 표지점들의 위치들을 결정하는 표지점 로직(landmark logic);
    상기 표지점 로직과 결합되어 있는, 상기 복수의 표지점 위치들에 적어도 부분적으로 기초하여 포인터를 결정하는 포인터 로직;
    상기 포인터 로직과 결합되어 있는, 상기 포인터에 적어도 부분적으로 기초하여 상기 컴퓨팅 시스템의 UI의 복수의 UI 요소들 중에서 하나의 UI 요소를 식별하는 식별 로직; 및
    상기 포인터 로직과 결합되어 있는, 상기 식별된 UI 요소의 시각적 표시자를 상기 컴퓨팅 시스템의 디스플레이에 제공하는 디스플레이 로직
    을 포함하는, UI 제어 시스템.
  2. 제1항에 있어서, 상기 표지점 로직은 깊이 카메라에 의해 포착된 상기 사용자의 신체의 영상에 적어도 부분적으로 기초하여 상기 사용자의 신체의 상기 부분 상의 상기 복수의 표지점들의 위치들을 결정하는, UI 제어 시스템.
  3. 제1항에 있어서, 상기 사용자의 신체의 상기 부분은 상기 사용자의 손을 포함하는, UI 제어 시스템.
  4. 제1항에 있어서, 상기 식별 로직은
    상기 복수의 UI 요소들의 각자의 UI 요소들에 대응하는 상기 UI 내의 복수의 구역들을 식별하는 것; 및
    상기 UI 요소에 대응하는 상기 구역과 상기 포인터 사이의 중첩(overlap)의 양을 식별하는 것
    을 통해 복수의 UI 요소들 중에서 하나의 UI 요소를 식별하는, UI 제어 시스템.
  5. 제4항에 있어서, 상기 UI 요소에 대응하는 상기 구역과 상기 포인터 사이의 중첩의 양은 표지점의 가중치(weight)에 기초하는, UI 제어 시스템.
  6. 제5항에 있어서, 상기 가중치는 상기 표지점의 위치와 상기 사용자의 신체의 상기 부분 상의 기준 위치 사이의 거리에 기초하는, UI 제어 시스템.
  7. 제1항에 있어서, 상기 포인터는 상기 UI 내의 한 구역을 포함하고, 상기 구역은 표지점의 위치와 상기 사용자의 신체의 상기 부분 상의 기준 위치 사이의 거리에 기초하는, UI 제어 시스템.
  8. 제1항에 있어서, 상기 식별 로직과 결합되어 있는, 상기 UI 요소의 식별 후에, 상기 사용자의 제스처를 나타내는 제스처 데이터에 적어도 부분적으로 기초하여 상기 UI 요소를 선택하는 선택 로직을 추가로 포함하는, UI 제어 시스템.
  9. 제8항에 있어서, 상기 포인터 로직에 결합되어 있는 디스플레이 로직을 추가로 포함하고,
    상기 사용자의 상기 제스처를 나타내는 상기 제스처 데이터는 미리 결정된 기간 동안 상기 UI 요소 위에서의 호버(hover)를 나타내는 제1 제스처 데이터를 포함하고;
    상기 디스플레이 로직은 상기 제1 제스처 데이터에 기초하여 확인 UI 요소를 디스플레이하며;
    사용자 제스처를 나타내는 상기 제스처 데이터는 상기 확인 UI 요소의 디스플레이 후에 상기 확인 UI 요소의 선택을 나타내는 제2 제스처 데이터를 포함하고;
    상기 선택 로직은 상기 제2 제스처 데이터에 기초하여 상기 UI 요소를 선택하는, UI 제어 시스템.
  10. 사용자 인터페이스(UI) 제어 시스템으로서,
    컴퓨팅 시스템의 사용자의 손의 집게손가락의 하부 부분의 위치를 결정하는 표지점 로직 - 상기 하부 부분은 상기 집게손가락의 끝 부분으로부터 떨어져 있음 -;
    상기 표지점 로직과 결합되어 있는, 상기 사용자의 손의 상기 집게손가락의 상기 하부 부분의 위치에 적어도 부분적으로 기초하여 포인터를 결정하는 포인터 로직;
    상기 포인터 로직과 결합되어 있는, 상기 포인터에 적어도 부분적으로 기초하여 상기 컴퓨팅 시스템의 UI의 복수의 UI 요소들 중에서 하나의 UI 요소를 식별하는 식별 로직; 및
    상기 포인터 로직과 결합되어 있는, 상기 포인터의 시각적 표시자를 상기 컴퓨팅 시스템의 디스플레이에 제공하는 디스플레이 로직
    을 포함하는, UI 제어 시스템.
  11. 제10항에 있어서, 상기 사용자의 손의 상기 집게손가락의 상기 하부 부분은 상기 사용자의 손의 상기 집게손가락의 기부 관절(base joint)에 근접해 있는, UI 제어 시스템.
  12. 제10항에 있어서, 상기 포인터가 상기 UI 내의 단일 지점에 대응하는, UI 제어 시스템.
  13. 사용자 인터페이스(UI) 제어 시스템으로서,
    컴퓨팅 시스템의 사용자의 신체의 한 부분과 연관된 표지점의 위치를 결정하는 표지점 로직;
    상기 표지점 로직과 결합되어 있는, 가상 상호작용 영역에 대한 상기 표지점 위치의 상대 위치에 적어도 부분적으로 기초하여 포인터를 결정하는 포인터 로직;
    상기 포인터 로직과 결합되어 있는, 상기 포인터에 적어도 부분적으로 기초하여 상기 컴퓨팅 시스템의 UI의 복수의 UI 요소들 중에서 하나의 UI 요소를 식별하는 식별 로직; 및
    상기 포인터 로직과 결합되어 있는, 상기 포인터의 시각적 표시자를 상기 컴퓨팅 시스템의 디스플레이에 제공하는 디스플레이 로직
    을 포함하는, UI 제어 시스템.
  14. 제13항에 있어서, 상기 시각적 표시자는 상기 표지점 위치와 상기 가상 상호작용 영역 사이의 거리를 나타내고, 상기 거리가 변함에 따라 상기 시각적 표시자가 변하는, UI 제어 시스템.
  15. 제14항에 있어서, 상기 시각적 표시자는 상기 거리가 증가함에 따라 증가하는 크기를 가지는, UI 제어 시스템.
  16. 제13항에 있어서,
    상기 표지점 로직은 상기 사용자의 손의 집게손가락의 끝 부분에 근접한 제1 표지점의 위치를 결정하는 것을 통해 표지점의 위치를 결정하고 상기 제1 표지점과 상기 사용자의 손의 상기 집게손가락의 기부 관절 사이의 제2 표지점의 위치를 결정하며;
    상기 포인터 로직은 상기 제1 표지점이 상기 가상 상호작용 영역의 제1 측면에 위치되어 있을 때 상기 가상 상호작용 영역에 대한 상기 제1 표지점의 위치의 상대 위치에 기초하여 상기 포인터를 결정하고;
    상기 포인터 로직은 상기 제1 표지점이 상기 제1 측면과 상이한 상기 가상 상호작용 영역의 제2 측면에 위치되어 있을 때 상기 가상 상호작용 영역에 대한 상기 제2 표지점의 위치의 상대 위치에 기초하여 상기 포인터를 결정하는, UI 제어 시스템.
  17. 사용자 인터페이스(UI) 제어 방법으로서,
    컴퓨팅 시스템의 사용자의 신체의 한 부분과 연관된 복수의 표지점들의 위치들을 결정하는 단계;
    상기 복수의 표지점 위치들에 적어도 부분적으로 기초하여 포인터를 결정하는 단계;
    상기 포인터에 적어도 부분적으로 기초하여 상기 컴퓨팅 시스템의 UI의 복수의 UI 요소들 중에서 하나의 UI 요소를 식별하는 단계; 및
    상기 포인터의 시각적 표시자를 상기 컴퓨팅 시스템의 디스플레이에 제공하는 단계
    를 포함하는, 방법.
  18. 제17항에 있어서, 복수의 UI 요소들 중에서 하나의 UI 요소를 식별하는 단계는
    상기 복수의 UI 요소들의 각자의 UI 요소들에 대응하는 상기 UI 내의 복수의 구역들을 식별하는 단계; 및
    상기 UI 요소에 대응하는 상기 구역과 상기 포인터 사이의 중첩의 양을 식별하는 단계를 포함하는, 방법.
  19. 제18항에 있어서, 상기 UI 요소에 대응하는 상기 구역과 상기 포인터 사이의 상기 중첩의 양은 표지점의 가중치에 기초하는, 방법.
  20. 제19항에 있어서, 상기 가중치는 상기 표지점의 위치와 상기 사용자의 신체의 상기 부분 상의 기준 위치 사이의 거리에 기초하는, 방법.
  21. 제17항에 있어서, 상기 포인터는 상기 UI 내의 한 구역을 포함하고, 상기 구역은 표지점의 위치와 상기 사용자의 신체의 상기 부분 상의 기준 위치 사이의 거리에 기초하는, 방법.
  22. 제17항에 있어서, 상기 UI 요소의 식별에 응답하여 상기 컴퓨팅 시스템의 디스플레이에서 상기 UI 요소의 크기를 증가시키는 단계를 추가로 포함하는, 방법.
  23. 제17항에 있어서, 상기 UI 요소의 식별 후에, 상기 사용자의 제스처를 나타내는 제스처 데이터에 적어도 부분적으로 기초하여 상기 UI 요소를 선택하는 단계를 추가로 포함하고;
    상기 사용자의 상기 제스처를 나타내는 상기 제스처 데이터는 미리 결정된 기간 동안 상기 UI 요소 위에서의 호버를 나타내는 제1 제스처 데이터를 포함하고;
    상기 방법은 상기 제1 제스처 데이터에 기초하여 확인 UI 요소를 디스플레이하는 단계를 추가로 포함하며;
    사용자 제스처를 나타내는 상기 제스처 데이터는 상기 확인 UI 요소의 디스플레이 후에 상기 확인 UI 요소의 선택을 나타내는 제2 제스처 데이터를 포함하고;
    상기 방법은 상기 제2 제스처 데이터에 기초하여 상기 UI 요소를 선택하는 단계를 추가로 포함하는, 방법.
  24. 사용자 인터페이스(UI) 제어 방법으로서,
    컴퓨팅 시스템의 사용자의 손의 집게손가락의 하부 부분의 위치를 결정하는 단계 - 상기 하부 부분은 상기 집게손가락의 끝 부분으로부터 떨어져 있음 -;
    상기 사용자의 손의 상기 집게손가락의 상기 하부 부분의 위치에 적어도 부분적으로 기초하여 포인터를 결정하는 단계;
    상기 포인터에 적어도 부분적으로 기초하여 상기 컴퓨팅 시스템의 UI의 복수의 UI 요소들 중에서 하나의 UI 요소를 식별하는 단계; 및
    상기 포인터의 시각적 표시자를 상기 컴퓨팅 시스템의 디스플레이에 제공하는 단계
    를 포함하는, 방법.
  25. 제24항에 있어서, 상기 사용자의 손의 상기 집게손가락의 상기 하부 부분은 상기 사용자의 손의 상기 집게손가락의 기부 관절에 근접해 있는, 방법.
  26. 사용자 인터페이스(UI) 제어 방법으로서,
    컴퓨팅 시스템의 사용자의 신체의 한 부분과 연관된 표지점의 위치를 결정하는 단계;
    가상 상호작용 영역에 대한 상기 표지점 위치의 상대 위치에 적어도 부분적으로 기초하여 포인터를 결정하는 단계;
    상기 포인터에 적어도 부분적으로 기초하여 상기 컴퓨팅 시스템의 UI의 복수의 UI 요소들 중에서 하나의 UI 요소를 식별하는 단계; 및
    상기 포인터의 시각적 표시자를 상기 컴퓨팅 시스템의 디스플레이에 제공하는 단계
    를 포함하는, 방법.
  27. 제26항에 있어서, 상기 시각적 표시자는 상기 표지점 위치와 상기 가상 상호작용 영역 사이의 거리를 나타내고, 상기 거리가 변함에 따라 상기 시각적 표시자가 변하는, 방법.
  28. 제26항에 있어서,
    표지점의 위치를 결정하는 단계는 상기 사용자의 손의 집게손가락의 끝 부분에 근접한 제1 표지점의 위치를 결정하는 단계 및 상기 제1 표지점과 상기 사용자의 손의 상기 집게손가락의 기부 관절 사이의 제2 표지점의 위치를 결정하는 단계를 포함하고;
    상기 포인터를 결정하는 단계는 상기 제1 표지점이 상기 가상 상호작용 영역의 제1 측면에 위치되어 있을 때 상기 가상 상호작용 영역에 대한 상기 제1 표지점의 위치의 상대 위치에 기초하여 상기 포인터를 결정하는 단계 및 상기 제1 표지점이 상기 제1 측면과 상이한 상기 가상 상호작용 영역의 제2 측면에 위치되어 있을 때 상기 가상 상호작용 영역에 대한 상기 제2 표지점의 위치의 상대 위치에 기초하여 상기 포인터를 결정하는 단계를 포함하는, 방법.
  29. 컴퓨팅 시스템에 의해 실행될 때, 상기 컴퓨팅 시스템으로 하여금 제17항 내지 제28항 중 어느 한 항의 방법을 수행하게 하는 컴퓨터 판독 가능 명령어들을 포함하는 하나 이상의 컴퓨터 판독 가능 매체.
  30. 제17항 내지 제28항 중 어느 한 항의 방법을 수행하는 수단을 포함하는, 사용자 인터페이스 제어를 위한 컴퓨팅 시스템.
KR1020167014520A 2014-01-03 2014-03-27 사용자 인터페이스 제어를 위한 시스템 및 기법 KR101844390B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201461923595P 2014-01-03 2014-01-03
US61/923,595 2014-01-03
PCT/US2014/032082 WO2015102658A1 (en) 2014-01-03 2014-03-27 Systems and techniques for user interface control

Publications (2)

Publication Number Publication Date
KR20160080109A true KR20160080109A (ko) 2016-07-07
KR101844390B1 KR101844390B1 (ko) 2018-04-03

Family

ID=53493850

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167014520A KR101844390B1 (ko) 2014-01-03 2014-03-27 사용자 인터페이스 제어를 위한 시스템 및 기법

Country Status (5)

Country Link
US (1) US9395821B2 (ko)
EP (1) EP3090331B1 (ko)
KR (1) KR101844390B1 (ko)
CN (1) CN105765490B (ko)
WO (1) WO2015102658A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102419506B1 (ko) * 2021-01-18 2022-07-12 주식회사 베오텍 공간 터치 제어장치 및 공간 터치 제어방법
WO2023200044A1 (ko) * 2022-04-13 2023-10-19 주식회사 베오텍 공간 터치 제어장치 및 공간 터치 제어방법

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10228242B2 (en) 2013-07-12 2019-03-12 Magic Leap, Inc. Method and system for determining user input based on gesture
KR20160034065A (ko) * 2014-09-19 2016-03-29 엘지전자 주식회사 이동 단말기 및 그 제어 방법
DE102014114742A1 (de) * 2014-10-10 2016-04-14 Infineon Technologies Ag Eine Vorrichtung zum Erzeugen eines Anzeigensteuerungssignals und ein Verfahren derselben
US10146414B2 (en) 2015-06-09 2018-12-04 Pearson Education, Inc. Augmented physical and virtual manipulatives
CN107450672B (zh) * 2017-09-19 2024-03-29 曾泓程 一种高识别率的腕式智能装置
US10768692B2 (en) * 2018-02-21 2020-09-08 Fuji Xerox Co., Ltd. Systems and methods for capturing and rendering hand skeletons over documents images for telepresence
US11500103B2 (en) * 2018-10-23 2022-11-15 Lg Electronics Inc. Mobile terminal
US11620044B2 (en) * 2018-10-23 2023-04-04 Lg Electronics Inc. Mobile terminal
WO2020085524A1 (ko) * 2018-10-23 2020-04-30 엘지전자 주식회사 이동단말기 및 그 제어 방법
KR102203933B1 (ko) * 2018-11-26 2021-01-15 재단법인 실감교류인체감응솔루션연구단 다수의 손가락을 이용한 모션 캡쳐 인터페이스 방법 및 장치
US11182073B2 (en) 2018-11-28 2021-11-23 International Business Machines Corporation Selection on user interface based on cursor gestures
US10885322B2 (en) 2019-01-31 2021-01-05 Huawei Technologies Co., Ltd. Hand-over-face input sensing for interaction with a device having a built-in camera
EP3693834A1 (en) * 2019-02-11 2020-08-12 Siemens Aktiengesellschaft Method and system for viewing virtual elements
WO2021054589A1 (en) * 2019-09-18 2021-03-25 Samsung Electronics Co., Ltd. Electronic apparatus and controlling method thereof
US11340707B2 (en) * 2020-05-29 2022-05-24 Microsoft Technology Licensing, Llc Hand gesture-based emojis
CN111601129B (zh) * 2020-06-05 2022-04-01 北京字节跳动网络技术有限公司 控制方法、装置、终端及存储介质
EP4288950A1 (en) 2021-02-08 2023-12-13 Sightful Computers Ltd User interactions in extended reality
JP2024507749A (ja) 2021-02-08 2024-02-21 サイトフル コンピューターズ リミテッド エクステンデッドリアリティにおけるコンテンツ共有
KR20230144042A (ko) 2021-02-08 2023-10-13 사이트풀 컴퓨터스 리미티드 생산성을 위한 확장 현실
CN113076556A (zh) * 2021-03-29 2021-07-06 北京中电华大电子设计有限责任公司 一种eUICC签约数据文件的管理方法
WO2023009580A2 (en) 2021-07-28 2023-02-02 Multinarity Ltd Using an extended reality appliance for productivity
CN113778217A (zh) * 2021-09-13 2021-12-10 海信视像科技股份有限公司 显示设备及显示设备控制方法
US11775077B2 (en) * 2021-12-03 2023-10-03 Htc Corporation Method for activating system function in response to triggered icon on hand object, host, and computer readable storage medium
US20230334795A1 (en) 2022-01-25 2023-10-19 Multinarity Ltd Dual mode presentation of user interface elements
US11948263B1 (en) 2023-03-14 2024-04-02 Sightful Computers Ltd Recording the complete physical and extended reality environments of a user
CN114581535B (zh) * 2022-03-03 2023-04-18 北京深光科技有限公司 图像中用户骨关键点标注方法、装置、存储介质及设备
WO2022221781A1 (en) * 2022-05-02 2022-10-20 Innopeak Technology, Inc. Novel finger swipe -based smart watch user interface (ui) control
US20240070994A1 (en) * 2022-08-31 2024-02-29 Snap Inc. One-handed zoom operation for ar/vr devices
US20240077936A1 (en) * 2022-09-07 2024-03-07 Snap Inc. Selecting ar buttons on a hand
US20240219997A1 (en) * 2023-01-03 2024-07-04 Meta Platforms Technologies, Llc Extended Reality User Interfaces for Hand-based Input

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7227526B2 (en) * 2000-07-24 2007-06-05 Gesturetek, Inc. Video-based image control system
US8284202B2 (en) * 2006-06-30 2012-10-09 Two Pic Mc Llc Methods and apparatus for capturing and rendering dynamic surface deformations in human motion
US7907117B2 (en) * 2006-08-08 2011-03-15 Microsoft Corporation Virtual controller for visual displays
US7698648B2 (en) * 2006-10-23 2010-04-13 Microsoft Corporation Animation of icons based on presence
EP2171688A2 (en) * 2007-07-10 2010-04-07 Koninklijke Philips Electronics N.V. Object motion capturing system and method
US9001036B2 (en) * 2007-12-20 2015-04-07 University Of Central Florida Research Foundation, Inc. Systems and methods of camera-based fingertip tracking
US8166421B2 (en) * 2008-01-14 2012-04-24 Primesense Ltd. Three-dimensional user interface
US9390516B2 (en) * 2008-09-29 2016-07-12 Two Pic Mc Llc Asynchronous streaming of data for validation
US8397181B2 (en) * 2008-11-17 2013-03-12 Honeywell International Inc. Method and apparatus for marking a position of a real world object in a see-through display
KR101221449B1 (ko) * 2009-03-27 2013-01-11 한국전자통신연구원 카메라간 영상 보정 장치 및 방법
JP2012073658A (ja) 2010-09-01 2012-04-12 Shinsedai Kk コンピュータシステム
US20120117514A1 (en) * 2010-11-04 2012-05-10 Microsoft Corporation Three-Dimensional User Interaction
US8994718B2 (en) * 2010-12-21 2015-03-31 Microsoft Technology Licensing, Llc Skeletal control of three-dimensional virtual world
US8497838B2 (en) * 2011-02-16 2013-07-30 Microsoft Corporation Push actuation of interface controls
US20120218395A1 (en) * 2011-02-25 2012-08-30 Microsoft Corporation User interface presentation and interactions
US9067136B2 (en) * 2011-03-10 2015-06-30 Microsoft Technology Licensing, Llc Push personalization of interface controls
JP6074170B2 (ja) * 2011-06-23 2017-02-01 インテル・コーポレーション 近距離動作のトラッキングのシステムおよび方法
JP5907762B2 (ja) 2012-03-12 2016-04-26 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 入力装置、入力支援方法及びプログラム
WO2013135286A1 (en) * 2012-03-14 2013-09-19 Nokia Corporation Touch screen hover input handling
US20130249793A1 (en) * 2012-03-22 2013-09-26 Ingeonix Corporation Touch free user input recognition
US9477303B2 (en) * 2012-04-09 2016-10-25 Intel Corporation System and method for combining three-dimensional tracking with a three-dimensional display for a user interface
EP2853989A1 (en) * 2012-05-21 2015-04-01 Huawei Technologies Co., Ltd. Contactless gesture-based control method and apparatus
US9122395B2 (en) 2012-05-29 2015-09-01 Garett Engle Method of capturing system input by relative finger positioning
US9213436B2 (en) 2012-06-20 2015-12-15 Amazon Technologies, Inc. Fingertip location for gesture input
CN104620212B (zh) * 2012-09-21 2018-09-18 索尼公司 控制装置和记录介质
KR102165444B1 (ko) * 2013-08-28 2020-10-14 엘지전자 주식회사 증강현실 이미지를 디스플레이하는 포터블 디바이스 및 그 제어 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102419506B1 (ko) * 2021-01-18 2022-07-12 주식회사 베오텍 공간 터치 제어장치 및 공간 터치 제어방법
WO2023200044A1 (ko) * 2022-04-13 2023-10-19 주식회사 베오텍 공간 터치 제어장치 및 공간 터치 제어방법

Also Published As

Publication number Publication date
WO2015102658A1 (en) 2015-07-09
US9395821B2 (en) 2016-07-19
EP3090331A1 (en) 2016-11-09
EP3090331B1 (en) 2020-03-04
US20150324001A1 (en) 2015-11-12
KR101844390B1 (ko) 2018-04-03
EP3090331A4 (en) 2017-07-19
CN105765490B (zh) 2020-03-10
CN105765490A (zh) 2016-07-13

Similar Documents

Publication Publication Date Title
KR101844390B1 (ko) 사용자 인터페이스 제어를 위한 시스템 및 기법
US11983326B2 (en) Hand gesture input for wearable system
US11861070B2 (en) Hand gestures for animating and controlling virtual and graphical elements
US20220326781A1 (en) Bimanual interactions between mapped hand regions for controlling virtual and graphical elements
US20220164032A1 (en) Enhanced Virtual Touchpad
US10048779B2 (en) Virtual hand based on combined data
KR101809636B1 (ko) 컴퓨터 장치의 원격 제어
CN116724285A (zh) 用于控制虚拟和图形元素的微手势
JP2019087279A (ja) デジタルデバイスとの対話のための直接的なポインティング検出のためのシステムおよび方法
WO2014106219A1 (en) User centric interface for interaction with visual display that recognizes user intentions
US12013985B1 (en) Single-handed gestures for reviewing virtual content
KR20180044535A (ko) 홀로그래피 스마트홈 시스템 및 제어방법
JP6523509B1 (ja) ゲームプログラム、方法、および情報処理装置
KR20240036582A (ko) 물리적 객체와의 사용자 인터페이스에 대한 상호작용들을 관리하기 위한 방법 및 디바이스
CN117784926A (zh) 控制装置、控制方法和计算机可读存储介质

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant