KR20130004357A - 컴퓨팅 디바이스 인터페이스 - Google Patents

컴퓨팅 디바이스 인터페이스 Download PDF

Info

Publication number
KR20130004357A
KR20130004357A KR1020127028675A KR20127028675A KR20130004357A KR 20130004357 A KR20130004357 A KR 20130004357A KR 1020127028675 A KR1020127028675 A KR 1020127028675A KR 20127028675 A KR20127028675 A KR 20127028675A KR 20130004357 A KR20130004357 A KR 20130004357A
Authority
KR
South Korea
Prior art keywords
hand
computing device
image
tracking
pattern
Prior art date
Application number
KR1020127028675A
Other languages
English (en)
Other versions
KR101457777B1 (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 KR20130004357A publication Critical patent/KR20130004357A/ko
Application granted granted Critical
Publication of KR101457777B1 publication Critical patent/KR101457777B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/28Quantising the image, e.g. histogram thresholding for discrimination between background and foreground patterns
    • 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
    • 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/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
    • 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/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/0416Control or interface arrangements specially adapted for digitisers
    • G06F3/0418Control or interface arrangements specially adapted for digitisers for error correction or compensation, e.g. based on parallax, calibration or alignment
    • 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/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/042Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means by opto-electronic means
    • G06F3/0425Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means by opto-electronic means using a single imaging device like a video camera for tracking the absolute position of a single or a plurality of objects with respect to an imaged reference surface, e.g. video camera imaging a display or a projection screen, a table or a wall surface, on which a computer generated image is displayed or projected
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • G06T7/248Analysis of motion using feature-based methods, e.g. the tracking of corners or segments involving reference images or patches
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30196Human being; Person
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/10Image acquisition
    • G06V10/12Details of acquisition arrangements; Constructional details thereof
    • G06V10/14Optical characteristics of the device performing the acquisition or on the illumination arrangements
    • G06V10/145Illumination specially adapted for pattern recognition, e.g. using gratings

Abstract

인터페이스를 제공하도록 구성된 컴퓨팅 디바이스가 설명된다. 컴퓨팅 디바이스는 프로세서 및 메모리에 저장된 명령들을 포함한다. 컴퓨팅 디바이스는 프로젝터로부터 투영된 이미지를 투영한다. 컴퓨팅 디바이스는 또한 카메라를 이용하여 투영된 이미지를 포함하는 이미지를 캡처한다. 카메라는 가시적 스펙트럼에서 동작한다. 컴퓨팅 디바이스는 스스로 캘리브레이션하며, 손을 검출하며, 검색 공간에서 트랙킹 패턴에 기초하여 손을 트랙킹한다. 컴퓨팅 디바이스는 또한 동작을 수행한다.

Description

컴퓨팅 디바이스 인터페이스 {A COMPUTING DEVICE INTERFACE}
관련된 출원들
본 출원은 2010년 4월 1일에 "A COMPUTING DEVICE INTERFACE USING A PROJECTED IMAGE" 라는 명칭으로 출원된 미국 특허 가출원 제 61/320,158 호에 관련되며 이 가출원을 우선권 주장한다.
기술 분야
본 개시는 일반적으로 전자 디바이스들에 관한 것이다. 더 구체적으로는, 본 개시는 컴퓨팅 디바이스 인터페이스에 관한 것이다.
지난 수십년간, 전자 디바이스들의 사용은 흔한 일이 되었다. 특히, 전자 기술의 발전은 더욱 복잡하고 유용한 전자 디바이스들의 비용을 감소시켰다. 비용 감소와 소비자 수요는 현대 사회에서 전자 디바이스들이 사실상 유비쿼터스 (ubiquitous) 하도록 전자 디바이스들의 사용을 확산시켰다. 전자 디바이스들의 사용이 확장되면서, 전자 디바이스들의 새롭고 향상된 피쳐들 (features) 에 대한 수요도 확장되었다. 더 구체적으로는, 더 신속하고, 더 효율적으로 또는 더 높은 품질로 기능들을 수행하는 전자 디바이스들이 종종 추구된다.
많은 전자 디바이스들은 동작중에 하나 이상의 인터페이스들을 사용한다. 예를 들면, 컴퓨터들은 상호작용을 위한 사용자 입력을 획득하기 위하여 종종 키보드 및 마우스를 사용한다. 다른 전자 디바이스들은 상호작용을 위한 사용자 입력을 획득하기 위하여 터치스크린들 및/또는 터치패드들을 사용한다. 이러한 상호작용들 중 많은 상호작용들이 하드웨어 피스 (piece) 와의 직접적인 물리적 상호작용을 요구한다. 예를 들면, 사용자는 키보드를 통하여 텍스트 또는 커맨드들을 입력하기 위하여 키보드 상에서 타이핑 (type) 해야 한다. 사용자는 마우스를 통하여 컴퓨터와 상호작용하기 위하여 마우스 상의 하나 이상의 버튼들을 물리적으로 이동 및/또는 푸시 (push) 해야 한다.
일부의 경우들에서, 입력 또는 커맨드들을 컴퓨팅 디바이스에 제공하기 위하여 하드웨어 피스와 직접적인 상호작용을 하는 것은 불편하거나 최적이 아닐 수도 있다. 예를 들면, 투영된 프레젠테이션 (projected presentation) 을 제공하는 사용자가, 상호작용을 원할 때마다 컴퓨터로 되돌아가야 하는 것은 불편할 수도 있다. 더욱이, 프레젠테이션을 제공하는 동안 마우스 또는 완드 (wand) 와 같은 인터페이스 디바이스를 휴대하는 것은 사용자가 방향성 패드 (directional pad) 를 누름으로써 입력을 제공해야 하거나 사용자가 인터페이스 디바이스를 동작하는 방법에 익숙하지 않으면 불편할 수도 있다. 이 논의에 의해 예시된 바와 같이, 컴퓨팅 디바이스 인터페이스를 제공하는 개선된 시스템들 및 방법들은 유익할 수도 있다.
인터페이스를 제공하도록 구성된 컴퓨팅 디바이스가 개시된다. 컴퓨팅 디바이스는 프로세서 및 메모리에 저장된 명령을 포함한다. 컴퓨팅 디바이스는 프로젝터로부터 투영된 이미지를 투영하고 카메라를 이용하여 이미지를 캡처한다. 카메라는 가시적 스펙트럼에서 동작한다. 컴퓨팅 디바이스는 스스로 캘리브레이션 (calibrates) 하며 손을 검출한다. 컴퓨팅 디바이스는 또한 검색 공간에서 트랙킹 패턴 (tracking pattern) 에 기초하여 손을 트랙킹하고 동작을 수행한다.
컴퓨팅 디바이스를 캘리브레이션하는 것은 투영된 이미지의 코너들을 발견하고 투영된 이미지의 좌표를 데스트톱 공간에 맵핑 (mapping) 하는 것을 포함할 수도 있다. 컴퓨팅 디바이스를 캘리브레이션하는 것은 손 사이즈를 판정하는 것을 포함할 수도 있다. 손 사이즈는 투영된 이미지에 기초하여 판정될 수도 있으며, 여기서 투영된 이미지는 복수의 타원들을 포함한다. 손 사이즈는 얼굴 인식에 기초하여 판정될 수도 있다. 손은 초기 상호작용 영역 (initial interaction area) 에서 검출될 수도 있다.
컴퓨팅 디바이스는 몸을 추가로 트랙킹하고 몸 트랙킹에 기초하여 초기 상호작용 영역을 이동할 수도 있다. 컴퓨팅 디바이스는 트랙킹 패턴이 손에 매칭된다는 것을 추가로 결정할 수도 있다. 컴퓨팅 디바이스는 추가로 손의 움직임에 기초하여 검색 공간을 동적으로 변경시킬 수도 있다. 트랙킹 패턴은 직사각형의 옅은 외부 영역들이 3 개의 면들에 접해 있고 직사각형의 짙은 외부 영역이 1 개의 면에 접해 있는 직사각형의 중심이 짙은 영역을 포함할 수도 있다.
동작은 손을 트랙킹하는 것에 기초하여 수행될 수도 있다. 컴퓨팅 디바이스는 제스처 패턴 (gesture pattern) 에 기초하여 손 제스처를 인식할 수도 있다. 손 제스처를 인식하는 것은 트랙킹된 손이 일정 기간 동안 이동을 중단하였는지의 여부를 판정하고 트랙킹된 손 이미지를 고정된 사이즈로 스케일링 (scaling) 하는 것을 포함할 수도 있다. 제스처 패턴은 직사각형의 옅은 외부 영역들이 2 개의 면들에 접해 있는 직사각형의 중심이 짙은 영역을 포함할 수도 있다.
컴퓨팅 디바이스는 인식된 손 제스처에 기초하여 동작을 추가로 수행할 수도 있다. 컴퓨팅 디바이스는 손 제스처가 다수의 프레임들의 퍼센티지에 대하여 인식되었을 때 동작을 추가로 수행할 수도 있다.
손 제스처는 엄지 손가락과 집게손가락 사이의 각도에 기초하여 인식될 수도 있으며 컴퓨팅 디바이스는 엄지 손가락과 집게손가락 사이의 각도에 기초하여 커서를 손으로부터 떨어져서 이동할 수도 있다.
컴퓨팅 디바이스는 손 주위의 영역에서 투영된 이미지를 더 밝게 추가로 밝힐 수도 있다. 컴퓨팅 디바이스는 복수의 손들을 추가로 트랙킹할 수도 있다. 컴퓨팅 디바이스는 복수의 손 제스처들을 추가로 인식할 수도 있다. 컴퓨팅 디바이스는 손의 그림자 (shadow) 를 트랙킹하는 것을 피하기 위하여 손을 트랙킹하기 전에 이미지의 어두운 부분들을 추가로 제거할 수도 있다. 컴퓨팅 디바이스는 투영된 이미지의 영역에서 이미지의 개선된 포커스 및 노출을 추가로 제공할 수도 있다. 동작은 커서를 릴리스할 수도 있다.
인터페이스를 제공하는 방법이 또한 개시되었다. 이 방법은 프로젝터로부터 투영된 이미지를 투영하고 카메라를 이용하여 이미지를 캡처하는 단계를 포함한다. 카메라는 가시적 스펙트럼에서 작동된다. 이 방법은 또한 컴퓨팅 디바이스를 캘리브레이션하며 손을 검출하는 단계를 포함한다. 이 방법은 또한 검색 공간에서 트랙킹 패턴에 기초하여 손을 트랙킹하고 동작을 수행하는 단계를 포함한다.
인터페이스를 제공하기 위한 컴퓨터-프로그램 제품이 또한 개시된다. 컴퓨터-프로그램 제품은 명령들을 가진 비-일시적인 유형의 컴퓨터-판독가능 매체를 포함한다. 명령들은 컴퓨팅 디바이스로 하여금 프로젝터로부터 투영된 이미지를 투영하도록 하는 코드를 포함하며 카메라를 이용하여 이미지를 캡처한다. 카메라는 가시적 스펙트럼에서 작동된다. 명령들은 또한 컴퓨팅 디바이스로 하여금 컴퓨팅 디바이스를 캘리브레이션하며 손을 검출하도록 하는 코드를 포함한다. 명령들은 또한 컴퓨팅 디바이스로 하여금 검색 공간에서 트랙킹 패턴에 기초하여 손을 트랙킹하고 동작을 수행하도록 하는 코드를 포함한다.
인터페이스를 제공하기 위한 장치가 또한 개시된다. 이 장치는 프로젝터로부터 투영된 이미지를 투영하고 카메라를 이용하여 이미지를 캡처하기 위한 수단을 포함한다. 카메라는 가시적 스펙트럼에서 작동된다. 이 장치는 또한 컴퓨팅 디바이스를 캘리브레이션하고 손을 검출하기 위한 수단을 포함한다. 이 장치는 또한 검색 공간에서 트랙킹 패턴에 기초하여 손을 트랙킹하고 동작을 수행하기 위한 수단을 포함한다.
도 1 은 컴퓨팅 디바이스 인터페이스가 구현될 수도 있는 컴퓨팅 디바이스의 하나의 구성을 도시한 블록도이다.
도 2 는 카메라, 컴퓨팅 디바이스 및 프로젝터를 포함하는 전자 디바이스의 하나의 구성을 도시한 블록도이다.
도 3 은 컴퓨팅 디바이스 인터페이스가 구현될 수도 있는 컴퓨팅 디바이스의 더 구체적인 구성을 도시한 블록도이다.
도 4 는 컴퓨팅 디바이스 인터페이스를 제공하기 위한 방법의 하나의 구성을 도시한 흐름도이다.
도 5 는 컴퓨팅 디바이스 인터페이스를 제공하기 위한 방법의 더 구체적인 구성을 도시한 흐름도이다.
도 6 은 투영된 영역에서의 체크무늬 또는 바둑판무늬 패턴의 하나의 구성을 도시한 다이어그램이다.
도 7 은 투영된 공간을 데스크톱 공간으로 맵핑하는 것을 도시한 다이어그램이다.
도 8 은 손 사이즈 캘리브레이션을 위한 이미지를 도시한 다이어그램이다.
도 9 는 컴퓨팅 디바이스 인터페이스를 제공하기 위한 방법의 다른 더 구체적인 구성을 도시한 흐름도이다.
도 10 은 컴퓨팅 디바이스 인터페이스를 제공하기 위한 방법의 또 다른 더 구체적인 구성을 도시한 흐름도이다.
도 11a 는 본원에서 개시된 시스템들 및 방법들에 따라 사용될 수도 있는 Haar 패턴의 일 예를 도시한다.
도 11b 는 본원에서 개시된 시스템들 및 방법들에 따라 사용될 수도 있는 Haar 패턴의 다른 예를 도시한다.
도 11c 는 본원에서 개시된 시스템들 및 방법들에 따라 사용될 수도 있는 Haar 패턴의 또 다른 예를 도시한다.
도 11d 는 본원에서 개시된 시스템들 및 방법들에 따라 사용될 수도 있는 Haar 패턴의 또 다른 예를 도시한다.
도 11e 는 본원에서 개시된 시스템들 및 방법들에 따라 사용될 수도 있는 Haar 패턴의 또 다른 예를 도시한다.
도 12 는 컴퓨팅 디바이스 인터페이스를 제공하는 방법의 또 다른 더 구체적인 구성을 도시한 흐름도이다.
도 13 은 컴퓨팅 디바이스 인터페이스를 제공하는 방법의 또 다른 더 구체적인 구성을 도시한 흐름도이다.
도 14a 는 본원에서 개시된 시스템들 및 방법들에 따라 사용될 수도 있는 Haar 패턴의 일 예를 도시한 다이어그램이다.
도 14b 는 본원에서 개시된 시스템들 및 방법들에 따라 사용될 수도 있는 Haar 패턴의 다른 예를 도시한 다이어그램이다.
도 14c 는 본원에서 개시된 시스템들 및 방법들에 따라 사용될 수도 있는 Haar 패턴의 또 다른 예를 도시한 다이어그램이다.
도 14d 는 본원에서 개시된 시스템들 및 방법들에 따라 사용될 수도 있는 Haar 패턴의 또 다른 예를 도시한 다이어그램이다.
도 15 는 전자 디바이스에서 활용될 수도 있는 다양한 컴포넌트들을 도시한다.
도 16 은 무선 통신 디바이스내에 포함될 수도 있는 일정한 컴포넌트들을 도시한다.
본원에서 이용되는 바처럼, 용어 "무선 통신 디바이스" 는 일반적으로 기지국 또는 다른 전자 디바이스와 무선으로 통신할 수도 있는 전자 디바이스 (예를 들면, 액세스 단말, 클라이언트 단말, 클라이언트 스테이션 등) 를 지칭한다. 무선 통신 디바이스는 대안적으로 모바일 디바이스, 이동국, 가입국, 사용자 장비 (UE), 원격지국, 액세스 단말, 모바일 단말, 단말, 사용자 단말, 가입자 유닛 등으로 지칭될 수도 있다. 무선 통신 디바이스들의 예들은 랩톱 또는 데스크톱 컴퓨터들, 셀룰러 폰들, 스마트 폰들, 무선 모뎀들, e-리더들, 태블릿 디바이스들, 게이밍 시스템들 등을 포함한다. 무선 통신 디바이스들은 하나 이상의 표준들 (예를 들면, 3세대 파트너십 프로젝트 (3GPP), Wi-Max, 미국 전기 전자 학회 (IEEE) 802.11 또는 Wi-Fi 등) 에 따라 동작할 수도 있다. 따라서, 일반적인 용어 "무선 통신 디바이스" 는 산업 표준들에 따른 다양한 명명법들로 설명된 무선 통신 디바이스들 (액세스 단말, 사용자 장비 (UE), 원격 단말 등) 을 포함할 수도 있다.
본원에서 개시된 시스템들 및 방법들은 실시간 손 트랙킹 및/또는 제스처 인터페이스를 보여준다. 이 인터페이스는 표면 (예를 들면, 벽, 스크린, 화이트보드 등) 을 상호작용형 표면으로서 사용하기 위하여 컴퓨팅 디바이스 (예를 들면, 스마트폰, 랩톱 등과 같이 프로세서 및 메모리를 가진 전자 디바이스), 카메라 (예를 들면, 상보성 금속 산화막 반도체 (CMOS) 센서 또는 카메라, 전하 결합 소자 (CCD) 센서 또는 카메라, 웹 캠 등과 같이 가시적 스펙트럼에서 동작하는 카메라) 및 프로젝터 (예를 들면, 피코 프로젝터, 표준 프로젝터 등) 의 조합을 허용한다. 일 구성에서, 이 인터페이스를 제공하기 위하여 컴퓨팅 디바이스는 캘리브레이션되고, 손을 검출하고, 이 손을 트랙킹하고 제스처들을 인식한다. 본원에서 개시된 시스템들 및 방법들의 테스팅은, 이 시스템들 및 방법들이 사용자들이 많은 피부와 비슷한 컬러들 또는 많은 양의 움직임을 가진 콘텐츠와 상호작용하는 경우와 같이 다양하고 도전적인 환경들에서 훌륭하게 작동하는 것으로 예시하였다.
프로젝터들은 오늘날 비주얼 콘텐츠를 여러 명의 다른 사람들과 공유하기 위하여 개인들에 의해 광범위하게 사용된다. 프로젝션 시스템들은 통상적으로 입력 소스 (예를 들면, 랩톱 컴퓨터 등) 를 사용하며, 종종 적어도 한 명의 개인에게 실행중인 애플리케이션을 제어할 것을 요구한다. 전통적인 애플리케이션들에서, 이 개인은 다음의 또는 이전의 슬라이드 로 프레젠테이션을 진행하고, 콘텐츠의 부분들을 하이라이트 하고, 관심 영역들을 드로우, 줌 인 및 줌 아웃하고, 비디오 클립들을 플레이 또는 정지하고, 사용자 인터페이스 (UI) 엘리먼트들을 클릭하기 위하여 종종 랩톱 옆에 착석하여 컴퓨터의 마우스 및 키보드로 액세스한다.
많은 상황들에서 컴퓨터 옆에 착석하는 것이 허용가능하지만, 발표자가 공유되는 콘텐츠의 옆에 서서 자신의 청중들 모두를 대면하고 그 청중들에게 말하는 것을 선호하는 경우가 있다. 불행하게도, 이런 경우는 실행중인 애플리케이션을 제어하기 위하여 발표자가 스크린과 컴퓨터 사이에서 지속적으로 걸을 것을 요구할 수도 있다.
그러므로 사용자로 하여금 투영된 이미지에 가까이 또는 투영된 이미지 내에 서서 컴퓨팅 디바이스를 제어하도록 허용하는 시스템들 및 방법들을 개발하는 것이 유익하다. 청중 멤버들이 더 높은 레벨들로 협력하여 참여하도록 하기 위하여 청중 멤버들로 하여금 멀리서 컴퓨팅 디바이스를 제어하도록 허용하는 것이 더 유익할 수도 있다.
사용자들이 프로젝터-컴퓨팅 디바이스 리그 (rig) 로부터 풀려나도록 (un-tethered) 허용하는 일부 핸드헬드 원격 제어들이 존재한다. 그러나, 적정하게 가격이 매겨진 버전들보다 낮은 가격의 버전은 종종 제한된 기능을 가지며 사용자들이 자유롭게 UI 엘리먼트들을 표면상에서 드로우하고, 하이라이트하고, 복사하고, 붙이거나 상호작용하도록 허용하지 않는다. 비용에 상관없이, 그러한 시스템들은 전통적으로 프로세스에서 액티브한 참가자가 되고자 희망하는 룸 내에 있는 모든 사람이 자신의 디바이스를 소유할 것을 요구하며, 이는 항상 가능한 것이 아닐 수도 있다.
인간들이 일상 생활에서 서로의 의사소통 및 그들 주위에서 오브젝트들을 이동 및 성형하기 위한 수단으로서 손 제스처들을 종종 사용한다는 것을 고려하면, 컴퓨팅 디바이스를 원격으로 제어하기 위하여 참가자들이 그들의 손들을 사용하도록 허용하는 것은 유익할 수도 있다. 예를 들면, 세션에서 액티브한 참가자가 되고자 희망하는 사용자는 투영된 콘텐츠를 드로우, 하이라이트, 줌 인 온, 복사, 붙이기 및/또는 드래그 및 드롭하기 위하여 자신의 손을 이용할 수도 있다. 일 구성에서, 투영되는 콘텐츠는 임베디드 피코 프로젝터를 가진 스마트폰으로부터 온 것이다. 예를 들면, 일부 스마트폰들은 피코 프로젝터 및 카메라를 구비할 수 있다.
본원에서 개시된 시스템들 및 방법들은 프로젝터와 함께 사용될 손 제스처 인식 시스템을 설명한다. 예를 들면, 본원에서 개시된 시스템들 및 방법들은 오늘날의 많은 랩톱들 및 모바일 전화기들에서 보편화된 카메라를 사용할 수도 있다. 이러한 카메라들이 통신회의를 위하여 또는 사진들을 찍기 위하여 포함되었지만, 온보드 (onboard) 센서 (예를 들면, 카메라) 는 마우스 또는 키보드 대신에 입력 디바이스로서 사용될 수도 있다. 예를 들면, 본원에서 개시된 시스템들 및 방법들은 개인들이 임의의 벽을 매우 협력적인 작업공간으로 전환할 기회들을 제공할 수도 있다. 이것은 많은 스마트폰들이, 손들을 트랙킹하기 위해 사용될 수 있는 카메라들뿐만 아니라 15 루멘 (lumens) 을 투영할 수 있는 피코 프로젝터들을 구비하였기 때문에 가능할 수도 있으며, 이는 적정 조명의 룸에서 4-피트 대각선 이미지를 생성하기에 충분하다.
본원에서 개시된 시스템들 및 방법들의 하나의 구성에 따르면, 투영된 영역의 전체 콘텐츠들은 카메라의 시야 내에 배치되며, (예를 들면, 15 초 지속되는) 캘리브레이션 스테이지 (calibration stage) 는 세션이 시작하기 전에 완료된다.
본 개시는 아래와 같이 손 제스처 인식의 분야에서 수개의 전통적인 접근법들을 설명한다. 손 검출은 특히 그 복잡도의 레벨을 고려해볼 때, 컴퓨터 비전 (vision) 에서 능동적인 리서치 (research) 의 영역이다. 오늘날 많은 양호한 솔루션들이 존재하는 얼굴 검출에 비교해볼 때, 모든 환경들내에서 훌륭하게 작동하는 손 검출 및 트랙킹 시스템을 구축 (building) 하는 것은 몇 가지 이유들로 인하여 어려움이 있었다.
우선, 펼쳐진 손 (open hand) 은 프론트-페이싱 (front-facing) 카메라에 대하여 인간 얼굴의 사이즈의 대략 절반이며, 이는 동일한 해상도에서의 피쳐 트랙킹 (feature tracking) 을 더욱 어렵게 한다. 비디오 그래픽스 어레이 (VGA) 해상도에서, 룸을 가로질러 10 피트 (feet) 로부터 손을 트랙킹하는 것은 인식 시스템에 의해 사용될, 대략 20 픽셀 폭을 제공한다. 이것은 얼굴 검출 알고리즘들에 사용가능한 데이터의 약 절반이다. 더욱이, 얼굴과 달리, 손들은 극소수의 고유 피쳐들을 가지며, 이는 양호한 트랙킹을 위해 유용하다. 카메라-프로젝터 시나리오에서, 스크린을 응시하는 사용자들이 상호작용하기를 희망하는 콘텐츠를 보기 위해서, 그리고 그 콘텐츠와 상호작용하기 위하여 (그들의 손톱 대신에) 그들의 손가락 끝을 사용할 수 있도록 하기 위해서, 사용자들은 그들의 등이 카메라를 향하도록 서야한다. 이것은 (얼굴과 달리) 극소수의 고유 피쳐들을 가진 손등을 트랙킹할 것을 요구할 수도 있다. 또한, 인간의 손이 공간을 통해 자유롭게 이동하는 방식은, 손들이 그 다수의 관절들이 목 (neck) 보다 더 큰 자유도들 (degrees of freedom) 을 제공하는 긴 팔들에 붙어있다는 것을 고려할 때, 얼굴 트랙킹보다 더 많은 도전들을 제기할 수도 있다.
많은 손 제스처 시스템들이 컴퓨팅 디바이스들과의 비전-기반 상호작용들을 위하여 제안되었다. 하나의 제스처 시스템에서, 이동성 목적들을 위해 실시간 손 제스처 시스템이 제안되었다. 그 시스템에서 사용된 메인 (main) 피쳐들은, 검출된 영역으로부터 "트랙킹하기 좋은" 피부 컬러 스폿들상에 배치된 KLT (Kanade, Lucas 및 Tomasi) 피쳐들이다. KLT 피쳐들은 적어도 2개의 방향들을 따른 가파른 밝기 경사도가 트랙킹에 적합한 피쳐에 기여한다는 것을 발견한 Kanade, Lucas 및 Tomasi 를 따서 명명되었다. 오픈 컴퓨터 비전의 (OpenCV's) 애플리케이션 프로그래밍 인터페이스 (API) 함수들 (예를 들면, cvGoodFeaturesToTrack 및 cvCalcOpticalFlowPyrLK) 에서 구현된 것과 같은 그러한 알고리즘들을 이용한 실험들은 사용자의 손이 카메라로부터 수 피트보다 더 많이 떨어진 상황들에 대해 양호한 결과들을 내놓지 못하였다.
의사 2-차원 은닉 마르코프 모델들 (pseudo two-dimensional Hidden Markov Models) 을 이용한 다른 더욱 복잡하고 계산상 비효율적인 손 제스처 인식 알고리즘이 제안되었다. 다양한 투영된 콘텐츠하에서 인간 피부의 큰 변화들에 대한 테스트들은 광범위한 영역을 보여주므로 그러한 시스템들은 카메라-프로젝터 시나리오에서 훌륭하게 작동하지 않을 것이다. 예를 들면, 카메라에 의해 보여지는 것과 같이 (광범위한 색 영역 (color gamut) 일 수도 있는) 상이한 투영된 빛 하에서의 피부는 피부-톤 검출-기반의 방법들을 비효과적으로 만들 수도 있다.
또 다른 접근 방법은 카메라-프로젝터 시스템에 대한 실시간 손 제스처 알고리즘을 제안한다. 캘리브레이션 스테이지 동안에, 원근 왜곡 (perspective distortion) 은 카메라와 투영된 스크린의 좌표들 사이의 다항식 와핑 (polynomial warping) 에 의해 모델링된다. 검출 및 트랙킹은 배경 세그먼트화에 기초하였다. 그러나, 그러한 접근법은 정적인 배경들을 요구하며, 이는 본원에서 개시된 시스템들 및 방법들에 대하여 보장되지 않는 일이다.
본원에서 개시된 시스템들 및 방법들의 설계에서의 하나의 동기는 오늘날의 모바일 전화기들에서 발견되는 현대의 임베디드 프로세서상에서 (예를 들면, 50 밀리초 (ms) 응답 시간보다 적은) 실시간 수행 (real-time performance) 을 달성할 수 있는 시스템을 설계하는 것이었다. 따라서, 다른 접근 방법은 복잡도의 레벨 때문에 사용되지 않을 것이다. 그 접근 방법은 2 개의 VGA 이미지들 (하나의 이미지는 투영된 이미지이고 다른 하나의 이미지는 스크린상에서 카메라가 이 이미지를 어떻게 보는가에 따른 이미지) 을 판독하고, 실제 이미지로의 적절한 등록을 위하여 카메라로부터의 이미지를 크롭핑 (crop), 와핑 (warp) 및 컬러 보정 (color correct) 한 이후에 상이한 이미지에 의해 생성된 실루엣들 (silhouettes) 에서 다수의 손들을 검색할 것에 대한 요건을 포함하였다. 그 접근 방법은 인지된 실시간 수행에 대하여 50ms 미만의 요건에 대해서 실행 가능한 것으로 보이지 않는다.
사용자에게 부담을 주는 것을 피하기 위하여, TOF (time-of-flight) 카메라들에 의존하는 접근 방법들, 적외선 (IR) 하에서 작동하는 카메라들, 스테레오 카메라들을 요구하는 시스템들의 다른 유형들, 또는 사용자에게 특별한 장갑을 착용하거나 그들의 손가락들상에 컬러 캡들을 배치하도록 요구하는 시스템들의 유형들은 고려되지 않았다. 다르게 말하면, 본원에서 개시된 시스템들 및 방법들은 사용자에게 특별한 장갑 또는 컬러 캡들을 착용하도록 요구하지 않으며 사용자에게 그의/그녀의 손을 마킹하도록 (marked) 요구하지 않는다. 더욱이, 본원에서 개시된 시스템들 및 방법들은 IR 또는 TOF 카메라들이 디바이스의 배터리에 부담을 주거나 상대적으로 많은 양의 에너지를 소모할 수도 있으므로, IR 또는 TOF 카메라들을 요구하지 않는다. 또한, 본원에서 개시된 시스템들 및 방법들은 다수의 (예를 들면, 스테레오) 카메라들의 사용을 요구하지 않는다. 본원에서 개시된 시스템들 및 방법들에 의해 달성된 하나의 목표는 트랙킹 및/또는 상호작용에서의 정확도이다. 예를 들면, 본원에서 개시된 시스템들 및 방법들은 그래픽 유저 인터페이스 (GUI) 상의 작은 버튼들과 상호작용하기 위하여 충분한 해상도를 제공한다.
본원에서 개시된 시스템들 및 방법들의 일 예가 되는 구성은 아래와 같다. 이 구성에서, 투영된 이미지들로부터의 좌표를 컴퓨팅 디바이스의 디스플레이 공간으로 맵핑하고 손 사이즈를 판정하는 2-단계 캘리브레이션 스테이지, (사용자들로 하여금 트랙킹 프로세스를 개시하도록 허용하는) 손 검출이 수행된 스테이지, 패턴들 (예를 들면, Haar 피쳐들) 에 기초하여 손을 트랙킹하기 위해 사용된 스테이지 및 제스처 인식 스테이지의 4 개의 상이한 스테이지들이 설명된다. 제스처 인식 스테이지에서, 예를 들면, 손가락 인식은 컴퓨팅 디바이스의 마우스상의 좌측 버튼으로 맵핑된 패턴들 (예를 들면, 4 개의 패턴들 또는 Haar 피쳐들) 에 기초한다. 라이브 데모들 (live demos) 은 본원에서 개시된 시스템들 및 방법들이 다양한 상이한 콘텐츠들에 대해 훌륭하게 수행한다는 것을 보여주었다.
사용자들이 임의의 새로운 활동에 관심을 가지도록 하는 하나의 팩터는 시스템의 일부 양태에 낮은 학습 곡선 (learning curve) 을 제공하여 그로 인해 사용자들이 약간의 즐거움의 감각을 즉각적으로 경험할 수 있게 하는 것이다. 사용자의 감정이 이 초기의 기쁜 느낌으로부터 담담해지면, 사용자들은 이후에 시스템을 학습하기 위해 더 많은 시간을 들이겠다고 결심할 수도 있으며, 어쩌면 영향력있는 사용자가 될 수도 있다.
본원에서 개시된 시스템들 및 방법들이 새로운 사용자들에 대해 최소의 훈련을 하게 하면서도 높은 기능성 레벨을 제공하기 위하여, 이 시스템들 및 방법들은 많은 사용자들이 그들의 책상들 뒤에 착석했을 때 그들의 컴퓨터들을 사용하는 기존의 방식을 반영한다. 그 셋팅에서, 사용자들은 우선 컴퓨팅 디바이스 마우스를 잡기 위해 손을 뻗고, 그 마우스 위에 손을 올려놓고, 커서를 디스플레이상의 원하는 로케이션에 맵핑하는 테이블에서의 어떤 로케이션으로 그 마우스를 이동시키며, 이후에 원하는 태스크 (task) 를 달성하기 위하여 마우스 버튼들 중에서 하나를 누를 수도 있다. 본원에서 개시된 시스템들 및 방법들은 일 구성에서 유사하게 작용한다. 예를 들면, 사용자는 투영된 이미지 또는 디스플레이쪽으로 걸어가서, (예를 들면, (마치 좌측 마우스 버튼 위인 것처럼) 집게손가락을 뻗어서, 가상의 "마우스 패드" 로 지정된 영역인) 일부 최초 상호작용 영역으로부터 가상의 마우스를 "픽업 (pick up)" 하고, 커서가 그들의 손을 따르는 동안 스크린 위의 그들의 손을 원하는 로케이션으로 이동시키고, 이후에 사용자 인터페이스 (UI) 엘리먼트들상에서 "클릭 (click) " 또는 "클릭 및 홀드 (hold) 및 드래그 (drag)" 또는 "클릭을 릴리스 (release click)" 한다.
예를 들면, 사용자들은 사용자가 그의 손은 컴퓨터 마우스 상에 올려두고 그의 집게손가락은 좌측 마우스 버튼 상에 올려두는 것을 시뮬레이션하기 위하여 손은 쥐고 집게손가락은 뻗은 제스처와, 클릭 또는 클릭-및-홀드 동작을 시뮬레이션하기 위하여 동일한 제스처이지만 집게손가락은 감춘 제스처의 2 개의 직관적인 제스처들을 학습할 수도 있다. "마우스 버튼" 을 릴리스하는 것은 휴지하는 포지션으로 되돌아가기 위하여 손가락을 드러냄으로써 이루어진다. 따라서, 이러한 제스처들은 많은 사용자들이 학습하기에 용이하거나 직관적일 수도 있다.
본원에서 개시된 시스템들 및 방법들은 정확할 수도 있고 거의 실시간으로 수행될 수도 있다. 예를 들면, 본원의 시스템들 및 방법들에 대한 하나의 목표는 50ms 미만으로 손 포지션을 로케이팅할 수 있게 되는 것이었으며, (예를 들면, 투영된 이미지가 90 인치의 폭과 65 인치의 높이를 가진) 전형적인 프로젝션 셋업 (projection setup) 에서 마이크로소프트 윈도우즈 비스타의 스타트 메뉴상에서 UI 엘리먼트들을 사용자가 선택할 수 있도록 충분히 정확해지는 것이었다. 본원의 시스템들 및 방법들에 대한 다른 목표는 0 또는 최소 캘리브레이션을 사용하는 것이었다. 더욱이, 이 시스템들 및 방법들이, 예를 들면, VGA 해상도 카메라를 가진 프로젝터 및 랩톱 또는 전화기 보다 정교한 임의의 장비의 사용을 요구하지 않는 것이 바람직하였다. 따라서, 본원에서 개시된 시스템들 및 방법들의 사용의 단순함 및 용이함은 사용자들에게 이 시스템들 및 방법들을 사용하도록 장려할 수도 있다.
본원에서 개시된 시스템들 및 방법들의 하나의 구성은 아래에 설명된 바와 같이 캘리브레이션 손 검출, 손 트랙킹 및 제스처 인식을 포함한다. 캘리브레이션은 카메라-프로젝터 쌍 구성들을 위해 사용될 수도 있다. 투영된 공간으로 지칭되는, 카메라의 시점으로부터 캡처된 투영된 콘텐츠의 좌표는, 데스크톱 공간 좌표으로 지칭되는, 컴퓨팅 디바이스 디스플레이상의 좌표에 맵핑된다. 예를 들면, 투영된 공간에서의 코너들 A, B, C 및 D 는 데스크톱 공간에서의 코너들 A', B', C' 및 D' 로 맵핑될 수도 있다. "데스크톱 공간 좌표" 라고 지칭되기는 하지만, 맵핑은 컴퓨팅 디바이스 디스플레이 또는 "데스크톱" 의 전체를 점유할 수도 또는 점유하지 않을 수도 있다. 카메라에 의해 캡처된 이미지들은 데스크톱 공간 좌표에 관련된 로케이션 및 스케일 차이들의 문제가 있을 수도 있고, 오브젝트들이 3-차원 (3D) 환경의 2-차원 (2D) 프로젝션들이므로 원근 왜곡의 문제가 있을 수도 있다.
변환 매트릭스를 생성하기 위하여, 본원에서 개시된 시스템들 및 방법들의 하나의 구성은 1회용 캘리브레이션을 채용한다. 캘리브레이션을 위한 알려진 이미지는 투영된다. 예를 들면, 체크무늬 또는 바둑판무늬 패턴이 프로젝션 공간으로 투영될 수도 있다. 체크무늬 또는 바둑판무늬 이미지의 4 개의 코너들이 (예를 들면, OpenCV's cvFindChessboardCorners() 함수를 이용하여) 발견될 수도 있다. 이 포인트들은 투영된 공간의 실제 좌표를 검색하기 위하여 이후에 사용될 수도 있다. 캘리브레이션 프로세스를 성공적으로 완료하기 위하여, 투영되는 콘텐츠는 일 구성에서 완전히 카메라의 시야 내에 있다.
본원에서 개시된 시스템들 및 방법들은 또한 정확한 트랙킹을 위한 손 사이즈를 판정할 수도 있다. 카메라가 본 것과 같이 손의 사이즈를 결정하는 유력한 팩터는 프로젝터가 얼마나 큰 이미지를 생성할 수 있는가 이다. 프로젝터가 파워풀 (powerful) 할수록, 가능한 가장 큰 이미지를 생성하기 위하여 프로젝터는 스크린으로부터 더욱 후방으로 배치될 수도 있으며, 이것은 또한 카메라가 스크린으로부터 더욱 멀리 떨어져서 배치되도록 요구할 수도 있다. 일 구성에서, 상이한 반경들의 원들을 가진 이미지가 투영된다. 사용자는 그의/그녀의 쥔 주먹을, 가장 타이트한 핏(tightest fit) 을 제공하는 원의 내부에 잠시 (예를 들면, 2 초) 동안 배치한다. 강도 (intensity) 의 변화들에 기초하여, 사용자가 선택한 원이 식별될 수도 있다.
본원에서 개시된 시스템들 및 방법들은 손을 검출하기 위하여 사용될 수도 있다. 예를 들면, 사용자의 손은, 초기 상호작용 영역 또는 가상 "마우스 패드" 로 지칭되는, 투영된 공간의 마킹된 영역에 배치되었을 때 검출된다. 이것은 손 트랙킹을 개시할 수도 있다. 일 구성에서, 가상의 마우스 패드는 스크린의 하단 우측 코너에 있으며 캘리브레이션 단계동안 판정된 손의 사이즈보다 4 배 더 크다. 컴퓨팅 디바이스가 작동되는 동안에, 이 컴퓨팅 디바이스는 이 마킹된 영역에서의 입력된 픽셀 값들을 이전 프레임들에서의 대응하는 픽셀들로부터 계속하여 구별하고 있다. 루마 (luma) 또는 광도 (luminosity) 채널에서 관측된 바와 같은, 차이들의 합이 고정된 임계치보다 높을 때, 손-트랙킹 단계에 진입하며, 이는 변화가 사실상 손 때문이라는 것을 보장함으로써 시작된다.
본원에서 개시된 시스템들 및 방법들은 하나 이상의 손들을 트랙킹하기 위하여 사용될 수도 있다. 예를 들면, 본원에서 개시된 시스템들 및 방법들은 인간의 피부는 통상적으로, 스크린들, 페인트 칠해진 벽들, 화이트 보드들 등과 같은 주위의 영역들에서 발견되는 물질들보다 더 많은 빛을 흡수한다는 사실을 이용할 수도 있다. 이것을 고려할 때, 수개의 패턴들 (예를 들면, 5 개의 새로운 Haar 피쳐들) 은, 피부가 아닌 (non-skin) 물질들에 관하여, 투영된 빛 하에서 손등 및 손목과 유사한 반사 성질 (reflectance properties) 을 가지는 오브젝트를 찾기 위하여 사용될 수도 있다.
일 구성에서, 패턴들 (예를 들면, 5 개의 필터들 또는 Haar 피쳐들) 의 각각은, 이미지내의 최후의 알려진 손 로케이션에서, 측정된 손 사이즈 보다 4 배 더 큰 영역을 커버하는 데이터에 적용된다. 이 구성에서, 검색 공간은 좌측에서 우측으로, 상단에서 하단으로, 픽셀 단위로 스캐닝 (scanned) 된다. 주어진 필터에 대한 옅은 그레이 영역들의 합과 대응하는 짙은 그레이 영역들의 합 사이에 최대 차이를 가지는 패턴이 선택된다. 이후에 최적의 핏 (fit) 을 가진 필터가 (예를 들면, 미리 결정되거나 오프라인으로 계산되는) 임계치들의 세트에 대하여 점검된다. 더 구체적으로, 더 옅은 영역들 또는 영역들 (예를 들면, 3 개의 영역들: "1", "2" 및 "3") 에서의 평균 픽셀 값들 (예를 들면, 루마 (luma), 강도 (intensity) 등) 은 제 1 더 짙은 영역 또는 영역 (예를 들면, "5") 에서의 평균 픽셀 값들과 하나의 임계치 (예를 들면, 20 루마 또는 강도 레벨들 - 더 상세한 내역은 아래에 주어진다) 의 합보다 더 크다. 제 2 더 짙은 영역 (예를 들면, "4") 에서의 평균 픽셀 값들은 제 1 더 짙은 영역 (예를 들면, "5") 에서 하나의 임계치 (예를 들면, 20) 를 뺀 값보다 더 적도록 점검된다. 게다가, 제 1 더 짙은 또는 중심 영역 (예를 들면, "5") 으로부터의 평균 픽셀 값은 하나의 값 (예를 들면, 30 루마 또는 강도 레벨들) 보다 더 크도록 점검되며, 이것은 머리 또는 손의 그림자들을 트랙킹하는 것을 피하도록 도울 수도 있다. 필터들 (예를 들면, 5 개의 필터들) 의 어느 것도 주먹 및 손목 발견에 성공하지 못하면, 손이 발견될 때까지 동작이 반복될 수도 있다.
본원에서 개시된 시스템들 및 방법들은 "픽셀 값들", "강도" 또는 "루마" 값들을 사용할 수도 있다. 일 구성에서, 예를 들면, 카메라는 적색, 녹색 및 청색 컴포넌트들의 각각에 대하여 1 바이트의 데이터를 출력할 수도 있다. 이 데이터는 루마 (Y 또는 Y'), 청색 차이 (Cb) 및/또는 적색 차이 컴포넌트들 (Cr) 로 변환될 수도 있다. 루마 컴포넌트는 "픽셀 값" 또는 "강도" 로 지칭될 수도 있다. 루마 컴포넌트는, 예를 들면, 8-비트 (1 바이트) 수를 이용하여 표현될 수도 있다. 따라서, 루마, 픽셀 값 또는 강도는 검은색에 대한 0 (모든 비트들이 0) 으로부터 흰색에 대한 255 (모든 비트들이 1) 까지에 이르는 값 또는 레벨들의 범위를 가진다. "임계치" 는 임의의 강도 값 또는 임의의 강도 레벨들의 수로서 정의될 수도 있다. 예를 들면, 임계치는 20 또는 30 등으로서 정의될 수도 있다.
예를 들면, 실시간 수행을 위해서, 집적 이미지들이 Haar 피쳐들 (예를 들면, 5 개의 Haar 피쳐 패턴들) 에 의해 사용되기 위해 계산된다. 3 개의 수평 및 수직 Haar 피쳐 패턴들을 위해, 집적 이미지들이 계산될 수 있다. +45 및 -45 도의 2 개의 필터들을 위해, 집적 이미지들은 설명된 회전 합 영역 표 (rotated sum area table) 를 통해 계산된다. 검색은 5 개의 필터들 중 하나가 기준에 매칭되면 종료될 수도 있다.
본원에서 개시된 시스템들 및 방법들은 제스처 인식을 위해 사용될 수도 있다. 예를 들면, 컴퓨팅 디바이스의 좌측 마우스 버튼 누르기 및 릴리스의 2 개의 상이한 입력 액션들 (actions) 이 지원될 수도 있다. 예를 들면, 주먹을 쥐고 집게손가락을 뻗은 것은 마우스 버튼이 눌려지지 않은 경우를 나타낼 수도 있으며, 집게손가락을 감추는 것은 버튼이 눌린 것으로 맵핑하는 것이다.
일 구성에서, 트랙킹된 손이 약간의 간격 (예를 들면, 700 밀리초 (ms)) 동안 이동을 중단하면, 시스템들 및 방법들은 집게손가락의 존재에 대한 검색을 시작한다. 이를 위해 수개의 (예를 들면, 4) Haar 피쳐들이 사용될 수도 있다. 일 구성에서, 제스처 인식은 우선 트랙킹된 손 이미지를 고정된 사이즈의 이미지 (예를 들면, 640 x 480 픽셀들의 웹캠 (webcam) 에 대한 40 x 40 픽셀들) 로 스케일링 (scaling) 함으로써 시작된다. 스케일링은 구하려는 오브젝트 (예를 들면, 손가락) 사이즈 및/또는 카메라의 해상도에 좌우될 수도 있다. Haar 피쳐들 또는 필터들은 추가로 또는 대안적으로 스케일링될 수도 있다는 것에 유의해야 한다. (스케일링된) 이미지에 기초하여, 집게손가락이 수평 또는 수직 방향을 포인팅하는 경우에 사용되기 위하여 집적 이미지가 계산된다. 선택된 집게손가락에 대한 기준은 옅은 영역들 (예를 들면, "1" 및 "3") 을 위한 평균 픽셀 값은 짙은 영역 (예를 들면, "2") 에서의 값 플러스 하나의 임계치 (예를 들면, 30) 보다 더 커야 한다는 것이다. 수평 또는 수직 패턴에서의 손가락이 발견되면, 검색은 종료된다. 그렇지 않으면, 회전된 집적 이미지가 +45 및 -45 도에서 계산된다. 이 필터들을 이용하여 집게손가락이 발견되지 않으면, 손은 주먹을 쥔 제스처로 여겨진다.
손가락 인식기의 강건성 (robustness) 을 개선하기 위하여, 예를 들면, 최대 보팅 알고리즘 (maximum voting algorithm) 이 20 개의 저장된 프레임들의 버퍼에 적용된다. 예를 들면, 시스템들 및 방법들은 좌측 마우스 버튼 이벤트가 (예를 들면, 운영 시스템의 (OS 의) 윈도우 관리자로) 트리거 (triggered) 되기 전에 버퍼내의 이미지들 중 적어도 80% 가 감추어진 집게손가락을 묘사할 것을 요구할 수도 있다. 드러낸 집게손가락을 검출하기 위하여, 예를 들면, 검색된 20 개의 프레임들의 50% 는 집게손가락의 발견을 보고해야 한다. 집게손가락의 드러냄 대 감춤 (reveal vs. hiding) 에 대한 낮은 임계치 요건은 상태 머신 (state machine) 때문이며, 상태 머신은 업-마우스 (up-mouse) 이벤트들이 다운-마우스 (down-mouse) 이벤트가 검출된 후에야 트리거 되도록 요구할 수도 있다. 상태 머신은 폴스 포지티브들 (false positives) 을 감소시키기 위한 필터로서 사용된다.
본원의 시스템들 및 방법들은 아래와 같은 일 예 테스트 구현에 따라 구현될 수도 있다. 예를 들면, 하나의 구현에서, 시스템들 및 방법들은 OpenCV 라이브러리 (library) 를 레버리징 (leveraging) 하는 C 로 개발되었다. 2 GB RAM 을 가진 Intel Core 2 Duo T7300 2GHz 프로세서들로 구성되며 윈도우즈 XP 를 실행하는 HP Compaq 6710b 랩톱이 사용되었다. 웹캠은 VGA 해상도 이미지들은 초당 30 프레임들 (fps) 로서 캡처할 수 있는 Creative Live! Cam Video IM Ultra 였다. 프로젝터는 폭 92 인치 높이 65 인치로 측정되는 스크린상에 이미지를 투영하는 Epson PowerLite 83+ 였다. 룸 내의 조명은 66 럭스 (lux) 로 낮추어졌으며, 이 룸내에서 사용자들은 스크린을 용이하게 볼 수 있고 서로 편안하게 볼 수 있었다. 128 의 적색-녹색-청색 (RGB) 값을 가지는 그레이 이미지를 투영할 때의 스크린에서의 조명은 72 럭스였다. 손-트랙킹 및 제스처-인식 단계들 동안에, 중앙 처리 유닛 (CPU) 의 오직 23% 만을 소모하도록 구현이 측정되었다. 구현의 정확도를 측정하기 위하여, 시스템에 이미 익숙한 사용자가 카메라로부터 10 피트 떨어져서 서서 업-마우스 이벤트가 뒤따르는 다운-마우스 이벤트를 트리거하기 위하여 사용자의 맨손을 사용하여 스크린상의 4 개의 미리-결정된 포지션들로 내비게이션하는 횟수를 표로 작성하였다.
투영되는 콘텐츠는 풀-스크린 (full-screen) 모드로 재생되는 비디오였다. 비디오들이 무작위로 선택되었음을 보장하기 위하여, 테스트 당시에 "현재 시청중인 비디오들 (Videos Being Watched Now)" 카테고리 (category) 에서 YouTube 상의 가장 인기있는 비디오들중 50 개가 선택되었다. 비디오들중 어느 것도 개발 단계에서는 사용되지 않았다. 테스트 내내 재생되는 비디오들이 중단되지 않는 것을 보장하기 위하여, 길이가 1 분보다 더 긴 비디오들만이 선택되었으며 테스트들을 시작하기 전에 충분히 버퍼링되었고 제스처들은 비디오를 정지시킬 수 있는 마우스 이벤트들을 실제로 트리거할 수 없도록 디스에이블 (disabled) 되었다.
테스트에서, 스크린상의 4 개의 영역들은 A, B, C, D 로 라벨이 붙어져서 (labeled) 스크린의 하단 1/3 에 중심을 둔 투영된 영역의 1/2 폭 및 1/2 높이를 가지는 직사각형의 상부 좌측, 상부 우측, 하부 우측 및 하부 좌측 코너로 각각 맵핑된다. 테스트는 사용자에게 초기 상호작용 영역 또는 가상의 마우스 패드로부터 커서 또는 가상의 마우스를 "픽업" 하고, 손을 포지션 A 로 내비게이션하고, 만약 커서가 그 포지션의 2 인치 이내로 성공적으로 트랙킹되면, 영역상에서 클릭하도록 요구한다. 그 제스처가 정확하게 인식되었으면, 사용자는 이후에 집게손가락을 드러냄으로써 가상의 마우스 버튼을 릴리즈한다. 뒤를 이어서, 사용자는 이후에 그의/그녀의 손을 포지션 B 를 향해 우측으로, 포지션 C 를 향해 아래로 그리고 마지막으로 포지션 D 를 향해 좌측으로 이동하며, 이 3 개의 포지션들 각각에서도 역시 2 개의 손 제스처들을 실행한다. 모두 합쳐서, 각각의 비디오에 대해 12 개의 측정치들이 획득되었다.
50 개의 비디오들 각각에 대한 4 개의 테스트들의 결과들이 아래의 표 1 에 보여진다. 이 결과들은 위의 본원에서 개시된 시스템들 및 방법들의 구현이 미리결정된 로케이션들의 각각으로 손을 트랙킹함에 있어서 96% 효과적이었음을 예시한다. 커서가 손을 성공적으로 192 회 트랙킹한 것 중에서, 157 회의 클릭 제스처가 검출되었고, 이는 82% 의 유효성을 나타내었다. 157 회의 성공적인 인식들 중에서, 이 구현은 수반되는 154 회의 릴리스 제스처를 검출하였다.
모든 포지션들
트랙킹 클릭 릴리스
시도 200 192 157
실패 8 35 3
유효성 96% 82% 98%
클릭 제스처 인식의 82% 의 유효성은 손가락 검출에서 개선의 여지가 있다는 것을 나타내는 것이다. 그러나, 사용자들이 기억하는 것 뿐만 아니라 학습하기에도 용이한 제스처들을 선정하려는 노력으로, 본원에서 개시된 시스템들 및 방법들은, VGA 카메라가 스크린으로부터 10 피트라는 것을 고려해 볼 때, 폭이 대략 6 픽셀인 손가락을 트랙킹한다. 다른 구성들에서, 클릭 제스처는, 이 거리들로부터 더욱 가시적인 액션으로, 예를 들면, 아마도 주먹을 편 액션에서 쥔 액션으로, 맵핑될 수도 있다. 선택적으로, 제스처 엔진을 구동하기 위하여 손 트랙커가 사용될 수 있다. 예를 들면, 손을 일정 기간동안 중단한 후에, 커서는 그것의 현재 포지션에 고정될 수도 있으며 클릭 액션을 나타내기 위하여 사용자는 그의/그녀의 손을 좌측 및 우측으로 3 회 이동한다. 예를 들면, 손을 우측에서 좌측으로 3 회 이동하는 것은 클릭 및 홀드 (hold) 액션을 나타내며, 뒤이어서 버튼의 릴리스를 위하여 우측에서 좌측으로 3회 더 이동한다. 요약하면, 제스처 시스템의 품질과 제스처 세트의 직관성 사이에는 종종 역 관계 (inverse relationship) 가 존재한다. 사용자들을 위한 제스처가 간단할수록, 지원하기는 종종 더욱 복잡하다.
본원에서 개시된 시스템들 및 방법들에 따른 가능한 액션들은 드로잉 (drawing), (피부와 유사한 컬러들에서 더욱 진할 수도 있는) 화상으로 주밍 (zooming) 하거나 유투브 (YouTube) 비디오를 정지 및 재생하는 것 등을 포함한다. 위에서 논의한 바와 같이, 본원에서 개시된 시스템들 및 방법들은, 컴퓨팅 디바이스와 피코 또는 표준 프로젝터의 조합으로 하여금 임의의 벽 또는 스크린을 "터치-가능한 (touch-capable) " 표면 (예를 들면, 사용자들이 투영된 이미지에 관한 제스처들을 통하여 컴퓨팅 디바이스와 상호작용할 수 있는 표면) 으로 전환하도록 허용하는 실시간이며 강건한 손-제스처 시스템들 및 방법들을 제공한다. 본원에서 개시된 시스템들 및 방법들의 하나의 구성은 캘리브레이션, 손 검출, 손 트랙킹 및 제스처 인식의 4 개의 스테이지들을 포함한다. 이 시스템들 및 방법들은 사용자들이, 예를 들면, 룸을 가로질러 10 피트로부터 투영된 애플리케이션을 실행하는 컴퓨팅 디바이스의 단일-버튼 "마우스" 를 제어하기 위하여 사용자들의 맨손을 사용하도록 허용할 수도 있다. 하나의 구현의 200 개의 테스트들을 실시한 후에, 이 구현은 사용자의 손을 트랙킹하는 데 있어서 96% 효과적이라는 것과, 좌측 마우스 클릭에 할당된 제스처를 검출하는데 있어서 82% 효과적이라는 것과, 릴리스되는 좌측 마우스 버튼을 검출하는데 있어서 98% 의 성공률을 입증하였다. 그 구현은 실시간 경험을 제공하며 현대의 랩톱상의 CPU 의 23% 만을 소모한다.
본원에서 개시된 시스템들 및 방법들의 다른 구성들은 추가적인 기능성 또는 피쳐들을 포함할 수도 있다. 일 구성에서, 시스템들 및 방법들은 커서를 "릴리스" 하거나 현재의 로케이션에 커서를 그대로 두는 기능을 포함할 수도 있다. 예를 들면, 제스처는 사용자로 하여금 그의/그녀의 손을 (예를 들면, 시스템이 손을 트랙킹하는 것을 중단하고 커서의 현재 포지션에 커서를 그대로 두는) 가상의 마우스로부터 치우도록 허용하기위해 사용될 수도 있다. 예를 들면, 제스처 인식은, 사용자가 그의/그녀의 손을 펴면 (예를 들면, 5 개 손가락 모두를 뻗으면), 시스템들 및 방법들이 커서를 커서의 현재 로케이션에 그대로 둘 수도 있고/있거나 손 트랙킹을 중단할 수도 있도록 사용될 수도 있다.
일 구성에서, 손 트랙커 및 제스처 엔진의 강건성을 더 개선하기 위하여 손의 포지션 (예를 들면, 최후에 판정된 손 포지션) 에 대한 밝은 "글로우 (glow)" 효과가 추가될 수도 있다. 오직 손 주위에만 투영된 콘텐츠를 실제로 수정함으로써, 하이 콘트라스트 이미지로부터의 수행에 대한 간섭은 감소되거나 제거될 수도 있다. 예를 들면, 투영된 이미지는 사용자의 손의 최후에 트랙킹되거나 판정된 로케이션 주위의 영역이 연해지거나 밝아지도록 수정될 수도 있다. 예를 들면, 화이트 원은 최후에 판정된 손 로케이션 주위의 투영된 이미지내에 배치될 수도 있으며 (그렇게 함으로써, 예를 들면, 투영된 이미지의 일부를 "마스킹" 한다). 이것은 (예를 들면, 손이 너무 빨리 움직이지 않는다는 가정하에) 현재의 손 로케이션을 결정하기위한 본원의 시스템들 및 방법들의 능력을 개선할 수도 있다.
일 구성에서, 시스템들 및 방법들은 초기 상호작용 영역 또는 가상의 마우스 패드로 하여금 사용자가 매번 마우스 패드로 걸어갈 필요가 없도록 사용자의 몸 또는 엉덩이를 트랙킹하도록 허용할 수도 있다. 예를 들면, 스크린의 (아래) 부분은 또 다른 인접한 옅은 영역 옆에 있는 인접한 짙은 영역 옆에 있는 인접한 옅은 영역을 발견하기 위하여 스캐닝될 (scanned) 수도 있다. 짙은 영역은, 예를 들면, 사용자의 몸, 엉덩이 또는 몸통의 로케이션을 나타낼 수도 있다. 이 로케이션은 초기 상호작용 영역을 사용자의 바로 옆이 되도록 이동시키기 위해 사용될 수도 있다. 예를 들면, (예를 들면, 캘리브레이션/얼굴 인식에 기초하여) 추정된 손 사이즈 및/또는 얼굴 사이즈는 사용자의 몸 (예를 들면, 엉덩이, 몸통 등) 의 사이즈를 추정하기 위하여 사용될 수도 있다. 일 구성에서, 이 추정된 손 사이즈의 다수가 사용될 수도 있다. 예를 들면, 사용자의 몸은 사용자의 손의 폭의 5 배로서 추정될 수도 있다. 따라서, 추정된 몸 사이즈에 기초하여 하나 이상의 Haar 패턴들 또는 필터들이 결정될 수도 있다. 예를 들면, 옅은 좌측 영역은 손 사이즈의 2 내지 3 배일 수도 있고, 짙은 (중심) 영역은 손 사이즈의 4 내지 6 배일 수도 있고 그리고/또는 옅은 우측 영역은 손 사이즈의 2 내지 3 배일 수도 있다. 일 구성에서, 예를 들면, 이 몸 트랙킹은 손 트랙킹이 수행되지 않을 때만 수행될 수도 있다.
시스템들 및 방법들은 또한 손 사이즈를 추정하기 위하여 얼굴 검출을 사용할 수도 있다. 예를 들면, 얼굴 검출은 얼굴 사이즈를 추정 또는 판정하기 위하여 사용될 수도 있으며, 이 얼굴 사이즈는 이후에 주먹 사이즈를 추정하기 위하여 사용될 수도 있다 (몸 사이즈 등을 추정하기 위하여 사용될 수도 있다). 예를 들면, 주먹 사이즈는 사용자의 얼굴 사이즈의 1/6 내지 1/4 로서 추정될 수도 있다. 본원에서 개시한 시스템들 및 방법들은 (예를 들면, 단일 또는 다수의 사용자들의) 다수의 손들을 트랙킹하는 것을 지원할 수도 있다. 예를 들면, 다수의 손들의 트랙킹을 허용하기 위하여 (일부 패턴에서 중첩될 수도 있는) 수 개의 가상 마우스 패드들이 제공될 수도 있다.
본원에서 개시한 시스템들 및 방법들은 좌측 마우스 클릭 이후에 제스처들을 지원할 수도 있고 스크린의 먼 코너들에 도달하기 위하여 커서를 사용자의 손으로부터 떠나서 확장시키는 능력을 지원할 수도 있다. 이것은, 예를 들면, 사용자의 엄지손가락과 집게손가락 사이의 각도를 계산함으로써 달성될 수도 있다. 예를 들면, 0, 15, 30, 45, 60, 75 및 90 도와 같은 다양한 상이한 각도들에서의 매칭들을 허용하는 수 개의 Haar 패턴들 또는 피쳐들이, 예를 들면, 사용될 수 있다. 90 도 패턴의 매칭으로, 커서는 사용자의 손으로부터 최대 거리 (예를 들면, 15 피트) 로 떨어져서 확장될 수도 있으며, 적게는 0 도 패턴 매칭으로 최소 거리까지 확장될 수도 있다. 엄지손가락을 검색하기 위하여 손의 로케이션은 (예를 들면, 손에 대한) 영역을 판정하기 위하여 사용될 수도 있다.
다양한 구성들이 이제 도면들을 참조하여 설명되며, 도면들에서 유사한 참조 번호들은 기능적으로 유사한 엘리먼트들을 나타낼 수도 있다. 본원의 도면들에서 일반적으로 설명되고 도시된 시스템들 및 방법들은 매우 다양하고 상이한 구성들로 배열 및 설계될 수 있다. 따라서, 도면들에서 표현한 바와 같이, 수 개의 구성들의 아래의 더욱 상세한 설명은 청구된 범위를 제한하려는 의도가 있는 것이 아니며 시스템들 및 방법들의 단지 대표에 지나지 않는다.
도 1 은 컴퓨팅 디바이스 인터페이스가 구현될 수도 있는 컴퓨팅 디바이스 (104) 의 하나의 구성 (100) 을 도시한 블록도이다. 컴퓨팅 디바이스 (104) 의 예들은 데스크톱 컴퓨터들, 랩톱 컴퓨터들, 스마트폰들, 셀룰러 전화기들, 개인 휴대 정보 단말기들 (PDAs), e-리더들, 프로세서 및 메모리를 포함하는 집적 회로, 게이밍 콘솔들 (gaming consoles) 등을 포함한다. 컴퓨팅 디바이스 (104) 는 카메라 (102) 및/또는 프로젝터 (108) 와 통신하고/통신하거나 카메라 (102) 및/또는 프로젝터 (108) 에 연결되어있다. 일 구성에서, 컴퓨팅 디바이스 (104) 는 프로젝터 (108) 에 의해 투영될 이미지들을 생성한다. 컴퓨팅 디바이스 (104) 는 카메라 (102) 로부터 캡처된 이미지들 또는 이미지 데이터를 수신한다. 카메라 (102), 컴퓨팅 디바이스 (104) 및/또는 프로젝터 (108) 는 하나의 디바이스 (예를 들면, 카메라 및 피코 프로젝터를 구비한 스마트 폰) 에 통합될 수도 있거나 별개의 디바이스들 (예를 들면, 웹 캠, 랩톱 컴퓨터 및 표준 프로젝터) 일 수도 있다.
컴퓨팅 디바이스 (104) 는 인터페이스 모듈 (106) 을 포함한다. 인터페이스 모듈 (106) 은 하드웨어, 소프트웨어 또는 양측의 조합으로서 구현될 수도 있다. 인터페이스 모듈 (106) 은 카메라 (102) 에 의해 캡처된 이미지들에 대한 손 트랙킹 및 제스처 인식을 가능하게 한다. 예를 들면, 인터페이스 모듈 (106) 은 컴퓨팅 디바이스 (104) 를 캘리브레이션하고, 하나 이상의 손들을 검출하고, 하나 이상의 손들을 트랙킹하고, (카메라 (102) 에 의해 캡처된 이미지들에 기초하여) 제스처들을 인식한다. 동작을 수행하거나 커맨드를 트리거하기 위하여 손 트랙킹 및/또는 제스처 인식은 인터페이스 모듈 (106) 에 의해 사용될 수도 있다. 다르게 말하면, 컴퓨팅 디바이스 (104) 는 손 트랙킹 및/또는 제스처 인식에 기초하여 동작을 수행하고/하거나 커맨드를 트리거할 수도 있다. 이러한 방식으로, 인터페이스 모듈 (106) 은 손 트랙킹 및 제스처 인식 인터페이스를 가능하게 한다. 예를 들면, 컴퓨팅 디바이스 (104) 는 벽, 스크린 또는 표면에 프로젝터 (108) 에 의해 투영되는 이미지를 생성할 수도 있다. 인터페이스 모듈은 투영된 이미지상의 (또는 앞의) 로케이션으로 사용자가 그의/그녀의 손을 이동시키고 및/또는 제스처를 취함으로써 컴퓨팅 디바이스 (104) 와 상호작용할 수 있도록 허용한다. 카메라 (102) 에 의해 캡처된 손 이동 및/또는 제스처의 이미지들은 손 로케이션을 판정하고/하거나 제스처가 수행되었는지의 여부를 판정하기 위하여 인터페이스 모듈 (106) 에 의해 사용될 수도 있다. 이것은 투영된 이미지에서 보여진 아이콘 상에서 "클릭하기", 줌 인 또는 줌 아웃, 드로잉, 선택하기, 복사하기, 붙이기, 드래깅하기 등과 같은 액션 또는 동작을 수행하기 위하여 수행될 수 있다.
도 2 는 카메라 (202), 컴퓨팅 디바이스 (204) 및 프로젝터 (208) 를 포함하는 전자 디바이스 (210) 의 하나의 구성을 도시한 블록도이다. 일 구성에서, 예를 들면, 카메라 (202), 컴퓨팅 디바이스 (204) 및 프로젝터 (208) 는 하나의 전자 디바이스 (210) 로 통합된다. 예를 들면, 전자 디바이스 (210) 는 셀룰러 폰, 스마트폰, 랩톱 컴퓨터 등과 같은 무선 통신 디바이스일 수도 있다. 무선 통신 디바이스는 통합된 디지털 카메라 (202), 통합된 피코 프로젝터 (208) 및 컴퓨팅 디바이스 (예를 들면, 통합된 프로세서 및 메모리) (204) 를 포함할 수도 있다. 다른 전자 디바이스들 (210) 의 예들은 (통합된 카메라 (202) 및 프로젝터 (208) 를 가진) 데스크톱 컴퓨터 및 (통합된 카메라 (202) 및 프로젝터 (208) 를 가진) 태블릿 디바이스를 포함한다.
컴퓨팅 디바이스 (204) 는 인터페이스 모듈 (206) 을 포함할 수도 있다. 예를 들면, 인터페이스 모듈 (206) 은 프로세서에 의해 실행되는, 메모리내의 명령들을 가진 소프트웨어로서 구현될 수도 있다. 다른 구성에서, 인터페이스 모듈 (106) 은 하드웨어로 직접적으로 구현될 수도 있다. 전자 디바이스 (210) 는 본원에서 개시된 방법들을 수행하도록 구성될 수도 있다.
도 3 은 컴퓨팅 디바이스 인터페이스가 구현될 수도 있는 컴퓨팅 디바이스 (304) 의 더 상세한 구성을 도시한 블록도이다. 컴퓨팅 디바이스 (304) 는 프로젝터 (308) 및 카메라 (302) 와 통신할 수도 있다. 위에서 논의한 바와 같이, 프로젝터 (308), 컴퓨팅 디바이스 (304) 및/또는 카메라 (302) 는 별개의 디바이스들일 수도 있거나 하나 이상의 디바이스들로 통합될 수도 있다.
컴퓨팅 디바이스 (304) 는 이미지 데이터를 생성하고/하거나 프로젝터 (308) 로 이미지 데이터를 전송할 수도 있다. 프로젝터 (308) 는 이미지 데이터를 이용하여 투영된 이미지 (330) 를 생성할 수도 있다. 카메라 (302) 는 투영된 이미지 (330) 를 포함하는 카메라 캡처 영역 (328) 에서 이미지 또는 이미지 데이터를 캡처한다. 카메라 (302) 는 또한 사용자 (332) 의 완전한 또는 부분적인 이미지들 또는 이미지 데이터를 캡처할 수도 있다.
컴퓨팅 디바이스 (304) 는 인터페이스 모듈 (306) 을 포함한다. 도 3 에서 도시된 구성에서, 인터페이스 모듈 (306) 은 캘리브레이션 모듈 (312), 손 검출 모듈 (318), 손 트랙킹 모듈 (320) 및 제스처 인식 모듈 (324) 를 포함한다. 캘리브레이션 모듈 (312) 은 맵핑 모듈 (314) 및 손 사이즈 판정 모듈 (316) 을 포함한다.
맵핑 모듈 (314) 은 투영된 이미지 (330) 또는 투영된 공간으로부터의 좌표를 "데스크톱 공간" 으로 맵핑하기 위하여 사용된다. 예를 들면, 데스크톱 공간은, 시각적으로 상호작용형 공간의 모두 또는 일부, 또는 컴퓨팅 디바이스 (304) 에 의해 생성된 "데스크톱" 또는 "윈도우" 와 같은, 컴퓨팅 디바이스 (304) 상의 그래픽 사용자 인터페이스 (GUI) 를 포함할 수도 있다. 일 구성에서, 투영된 이미지 (330) 는 데스크톱 공간의 이미지이다. 예를 들면, 데스크톱 공간은 아이콘들, 버튼들, 상호작용형 제어부들 (예를 들면, 슬라이더들, 다이얼들, 라디오 버튼들, 텍스트 박스들 등), 하나 이상의 애플리케이션들의 비주얼 디스플레이들, 이미지들, 비디오들 등을 포함할 수도 있다. 이러한 데스크톱 공간 엘리먼트들은 투영된 이미지 (330) 로서 투영될 수도 있다.
맵핑 모듈 (314) 은 카메라 (302) 에 의해 캡처된 투영된 이미지 (330) 로부터의 로케이션들을 데스크톱 공간에서의 로케이션들로 맵핑할 수도 있다. 이러한 맵핑을 달성하기 위하여, 컴퓨팅 디바이스 (304) 는 맵핑 모듈 (314) 이 맵핑을 결정하는데 사용될 수 있는 투영된 이미지 (330) 를 투영하기 위하여 프로젝터 (308) 를 사용할 수도 있다. 예를 들면, 투영된 이미지 (330) 는, 맵핑 모듈 (314) 이 (예를 들면, 카메라 (302) 에 의해 캡처된 이미지로부터) 투영된 이미지 (330) 또는 투영된 공간의 코너들을 발견 또는 판정하기 위하여 사용할 수도 있는 체크무늬 또는 바둑판무늬 패턴일 수도 있다. 그 코너들은 이후에 데스크톱 공간의 코너들로 맵핑될 수도 있다.
손 사이즈 판정 모듈 (316) 은 사용자 (332) 의 손 (334) 의 사이즈 (또는 사이즈의 추정치) 를 판정하기 위해 사용된다. 예를 들면, 컴퓨팅 디바이스 (304) 는 일련의 원들 또는 타원들을 포함하는 이미지를 투영하기 위하여 프로젝터 (308) 를 사용한다. 손 사이즈 판정 모듈 (316) 은 사용자의 손 (334) 이 어느 원 내에 있는지를 판정할 수도 있다. 예를 들면, 사용자 (332) 는 그의/그녀의 손 (334) 사이즈에 가장 가깝게 매칭되는 원 또는 타원 내에 그의/그녀의 손 (334) 을 배치한다. 컴퓨팅 디바이스 (304) (예를 들면, 손 사이즈 판정 모듈 (316)) 는 그 특정 원 또는 타원에 대한 강도의 변화를 검출한다. 손 사이즈 판정 모듈 (316)) 은 이후에 (예를 들면, 픽셀들로 나타낸) 원 또는 타원의 크기가 사용자 (332) 의 손 (334) 사이즈라고 판정할 수도 있다. 판정된 손 (334) 사이즈는, 예를 들면, 검색 공간 (333) 의 사이즈를 판정하기 위하여 사용될 수도 있다.
손 검출 모듈 (318) 은 사용자의 손 (334) 이 컴퓨팅 디바이스 (304) 와 상호작용하기 위하여 사용될 경우를 검출하기 위하여 사용될 수 있는 모듈이다. 예를 들면, 손 검출 모듈 (318) 은 투영된 이미지 (또는 투영된 공간) 내의 초기 상호작용 영역 (338) 을 모니터링할 수도 있다. 일 구성에서, 초기 상호작용 영역 (338) 은 손 사이즈 판정 모듈 (316) 에 의해 판정된 손 (334) 사이즈보다 4 배 더 크며, 투영된 이미지 (330) 또는 투영된 공간의 하부 우측 부분에 상주한다. 다수의 초기 상호작용 영역 (338) 들이 다수의 손들 및/또는 다수의 사용자들 (332) 을 수용하기 위해 사용될 수도 있다. 예를 들면, 다수의 초기 상호작용 영역 (338) 들은 중첩될 수도 있고, 특정 패턴 (예를 들면, 바둑판무늬로) 배치될 수도 있고/있거나 (예를 들면, 하나 이상의 사용자들 (332) 을 이용하여) 이동할 수도 있다.
일 구성에서, 초기 상호작용 영역 (338) 은 상이한 사이즈를 가질 수도 있고, 투영된 이미지 (330) 또는 투영된 공간의 상이한 로케이션에 배치될 수도 있고/있거나 이동할 수도 있다 (예를 들면, 사용자 (332) 의 몸 또는 몸통이 트랙킹될 수도 있고 초기 상호작용 영역은, 예를 들면, 사용자 (332) 를 이용하여 사용자 (332) 의 옆으로 이동할 수도 있다). 일 구성에서, 예를 들면, 컴퓨팅 디바이스 (304) 는 사용자 (332)의 몸 로케이션에 기초하여 초기 상호작용 영역 (338) 을 이동시킬 수도 있다. 컴퓨팅 디바이스 (304) 는 사용자 (332) 의 몸 (예를 들면, 엉덩이, 백사이드, 몸통, 등 등) 에 대응하는 짙은 영역 또는 패턴을 검색함으로써 이를 달성할 수도 있다. 컴퓨팅 디바이스 (304) 는 이 짙은 영역 또는 패턴에 대한 투영된 이미지의 일부 (예를 들면, 투영된 이미지 등의 하단 1/10) 만을 검색할 수도 있다. 사용자 (332) 의 몸의 폭은 손 (334) 사이즈의 배수 (예를 들면, 사용자 (332) 의 주먹 사이즈의 5 배) 로서 추정될 수도 있다. 컴퓨팅 디바이스 (304) 는 (예를 들면, 사용자 (332) 의 허리 등에 의해) 초기 상호작용 영역 (338) 이 사용자 (332) 옆에 있도록 초기 상호작용 영역 (338) 을 이동시키기 위하여 사용자 (332) 의 몸의 트랙킹된 로케이션을 사용할 수도 있다. 따라서, 사용자 (332) 는 그가/그녀가 "가상 마우스" 또는 커서를 "픽업" 하기를 원할때마다 투영된 이미지의 하부 우측 코너로 이동시키지 않아도 될 것이다.
사용자 (332) 의 몸을 트랙킹하기 위하여, 하나 이상의 Haar 패턴들 또는 필터들이 사용될 수도 있다. 예를 들면, 하나의 패턴은 직사각형의 우측의 옅은 영역 옆에 있는 직사각형의 중심의 짙은 영역 옆에 있는 직사각형의 좌측의 옅은 영역을 포함할 수도 있다. 이 패턴은 몸 로케이션을 나타내는 이미지 데이터와의 매칭을 위한 이미지 데이터를 검색하기 위하여 사용될 수도 있다. 영역들의 사이즈는 캘리브레이션에 기초하여, 또는 판정되거나 추정된 손 (334) 사이즈에 기초하여 판정되거나 추정될 수도 있다. 예를 들면, 컴퓨팅 디바이스는 하나 이상의 원들 또는 타원들을 이용한 캘리브레이션을 통하거나 얼굴 인식을 통하여 손 사이즈를 판정하거나 추정할 수도 있다. 좌측 및/또는 우측의 옅은 영역들의 사이즈 (예를 들면, 폭) 는 2 개 내지 3 개의 손 사이즈들 (예를 들면, 폭들) 의 배수일 수도 있고, 중심의 짙은 영역의 사이즈 (예를 들면, 폭) 는 3 개 내지 5 개의 손 사이즈들 (예를 들면, 폭들) 일 수도 있다. 이미지 데이터에서의 패턴 매칭의 로케이션은 초기 상호작용 영역을 이동시키기 위하여 사용될 수도 있다.
하부 1/10 와 같이, 투영된 이미지 (330) 의 하부만이 사용자 (332) 의 몸을 위해 검색될 수도 있다. 일 구성에서, 손 (334) 이 트랙킹되지 않으면 사용자 (332) 의 몸이 검색되었다. 일 구성에서, 이미지 데이터에서 패턴과의 매칭이 발견되지 않는 동안 초기 상호작용 영역 (338) 은 움직이지 않는다. 추가로 또는 대안적으로, 사용자 (322) 측이 카메라 (302) 를 대면하고 있을 때 사용자 (332) 의 몸을 트랙킹하기 위하여 (예를 들면, 하나 이상의 영역들의 사이즈가 상이할 수도 있으나, 전술한 예와 유사할 수도 있는) 하나 이상의 추가적 패턴들 또는 필터들이 사용될 수도 있다.
손 검출 모듈 (318) 은 사용자 손 (334) 을 위한 초기 상호작용 영역 (338) 을 모니터링할 수도 있다. 일 구성에서, 손 검출 모듈 (318) 은 초기 상호작용 영역 (338) 에서 현재 프레임에서의 픽셀들의 루마 (예를 들면, 강도 (intensity)) 또는 광도 (luminosity) 와 하나 이상의 이전의 프레임들에서의 대응하는 픽셀들의 루마 또는 광도 사이의 차이들을 계산한다. 이 차이들은 합산될 수도 있다. (예를 들면, 루마 또는 광도 채널의) 차이들의 합이 임계치 보다 많으면, 이것은 손 (334) 이 초기 상호작용 영역 (338) 내에 있다는 것을 나타낼 수도 있다. 이것이 발생하면, 손 검출 모듈 (318) 은 손 트랙킹 모듈 (320) 이 손 (334) 을 트랙킹하는 것을 시작해야 한다는 것을 나타낼 수도 있다. 손 트랙킹 모듈 (320) 은 변화가 사실상 손 (334) 때문이라는 것을 보장하기 위하여 (예를 들면, 루마 또는 광도에서의) 변화를 점검 또는 확인할 수도 있다.
손 트랙킹 모듈 (320) 은 사용자의 손 (334) 을 트랙킹하기 위하여 사용된다. 손 트랙킹 모듈 (320) 은 하나 이상의 트랙킹 패턴들 (322) 을 포함할 수도 있다. 트랙킹 패턴들 (322) 의 예들은 Haar 피쳐 패턴들을 포함한다. 예를 들면, 트랙킹 패턴들 (322) 은 2 개의 짙은 영역들을 포함한다. 짙은 영역들 중 하나는 3 개의 더 옅은 영역들로 둘러싸인 (예를 들면, 사용자 손 (334) 등 (back) 을 나타내는) 중심이 짙은 영역일 수도 있다. 다른 짙은 영역은 (예를 들면, 사용자 (332) 의 손목을 나타내는) 중심이 짙은 영역에 인접할 수도 있다.
컴퓨팅 디바이스 (304) 가 손 (334) 을 트랙킹할 때 (이것은 손 검출 모듈 (318) 에 의해 개시되었을 수도 있다), 손 트랙킹 모듈 (320) 은 카메라 (302) 에 의해 제공된 이미지 또는 이미지 데이터의 특정 검색 공간 (333) 을 스캐닝할 수도 있다. 일 구성에서, 검색 공간 (333) 은 손 사이즈 판정 모듈 (316) 에 의해 판정된 손 (334) 사이즈의 약 4 배이다. 컴퓨팅 디바이스 (304) (예를 들면, 손 트랙킹 모듈 (320)) 는 트랙킹 패턴들 (322) 중 하나에 대한 최적의 핏 (best fit) 을 위해 검색 공간 (333) 을 스캐닝할 수도 있다. 매칭이 발견되지 않으면, 손 트랙킹 모듈 (320) 은 손 (334) 에 대한 검색을 계속할 수도 (있고/있거나, 예를 들면, 일정 기간 동안 손 (334) 이 발견되지 않으면 손 (334) 에 대한 검색을 결국에는 종료할 수도 있다). 매칭이 발견되면, 컴퓨팅 디바이스 (304) (예를 들면, 손 트랙킹 모듈 (320)) 는 매칭의 로케이션 및/또는 포지션을 사용할 수도 있다. 일 구성에서, 검색 공간 (333) 은 손 (334) 의 움직임 (예를 들면, 속도 및 방향) 에 기초하여 동적으로 변경 (예를 들면, 커지거나 축소) 될 수도 있다. 예를 들면, 트랙킹된 손 (334) 이 특정 공간으로 신속하게 이동하면, 컴퓨팅 디바이스 (304) 는 특히 움직임의 방향으로 검색 공간의 영역을 증가시킬수도 있다. 일 구성에서, 특히 사용자의 손 (334) 이 천천히 이동하면 검색 공간 (333) 의 영역이 또한 감소될 수도 있다. 검색 공간 (333) 은 카메라 캡처 영역 (328) 의 사이즈까지 및 카메라 캡처 영역 (328) 의 사이즈를 포함한, 임의의 사이즈일 수도 있다는 것에 또한 유의해야 한다. 그러나, 감소된 검색 영역 (333) (예를 들면, 사용자 (332) 의 주먹의 사이즈의 4 배) 이 사용될 수도 있으며 계산상으로 더욱 효율적일 수도 있다.
최적합한 필터 또는 트랙킹 패턴 (322) 이 임계치의 세트에 대하여 점검될 수도 있다. 이 점검은 사용자의 머리 (332) 또는 손 (334) 의 그림자들 (336) 을 트랙킹하는 것을 피하도록 도와줄 수도 있다. 최적합한 필터 또는 트랙킹 패턴 (322) 이 점검되고 (점검을 통과하면), 매칭의 로케이션 및/또는 포지션이 사용될 수도 있다. 예를 들면, 매칭의 로케이션은 컴퓨팅 디바이스 (304) 상의 커서의 로케이션을 제어하기 위하여 사용될 수도 있다. 다르게 말하면, 컴퓨팅 디바이스 (304) 는 그것의 커서를 매칭에 의해 나타낸 데스크톱 공간내의 로케이션으로 이동할 수도 있다.
제스처 인식 모듈 (324) 은 제스처를 검출하기 위하여 제스처 패턴들 (326) 을 사용할 수도 있다. 예를 들면, 제스처 패턴들 (326) 은 하나 이상의 손가락들을 뻗거나 오므리거나 손가락들을 특정 포지션에 배치하는 것과 같은, 특정 제스처를 검출하기 위하여 사용되는 Haar 피쳐들일 수도 있다. 예를 들면, 제스처 패턴들 (326) 은 (예를 들면, 나란히 스택된 (stacked)) 3 개의 직사각형 영역들을 포함할 수도 있다. 2 개의 외부 영역들은 더 옅은 영역들일 수도 있고 내부 영역은 더 짙은 영역일 수도 있다. 직사각형 영역들의 그룹은 수직이고, 수평이고/이거나 각도들 (예를 들면, ±45°) 을 가질 수도 있다. 일 구성에서, 컴퓨팅 디바이스 (304) (예를 들면, 제스처 인식 모듈 (324)) 는 트랙킹된 손 (334) 이 약간의 시간 간격 (예를 들면, 700 ms) 동안 이동을 중단하는 시점을 검출한다. 이 경우, 제스처 인식 모듈 (324) 은 트랙킹된 손 (334) 이미지를 고정된 사이즈 (예컨대, 40 × 40) 로 스케일링한다. 예를 들면, 손 (334) 의 최종 트랙킹된 로케이션에 기초한 영역은 검색될 이미지 영역을 판정하기 위하여 사용될 수도 있다. 이 이미지에 기초하여, 집적 이미지는 집게손가락이 수평 또는 수직 방향으로 포인팅하고 있을 때 사용되기 위하여 계산된다. 수평 또는 수직 패턴 (326) 의 손가락이 발견되면, 검색은 종료된다. 그렇지 않으면, +45°및 -45°에서 회전된 이미지가 계산된다. 회전된 손가락이 발견되면, 검색은 또한 종료될 수도 있다. 그러나, 손가락이 발견되지 않으면, 컴퓨팅 디바이스 (304) (예를 들면, 제스처 인식 모듈 (324)) 는 손 (334) 을 (뻗은 손가락 없이) 쥐었다고 판정할 수도 있다.
일 구성에서, 컴퓨팅 디바이스 (304) 는 특정 제스처가 인식되면 동작을 수행할 수도 있고/있거나 이벤트를 트리거할 수도 있다. 예를 들면, 제스처 인식 모듈 (324) 이 손가락을 발견하지 못하였다고 판정하면, 컴퓨팅 디바이스 (304) 는 좌측 마우스 다운 또는 클릭 이벤트를 트리거할 수도 있다. 더욱이, 손가락이 발견되면, 이후에 컴퓨팅 디바이스 (304) 는 마우스 업 이벤트를 트리거할 수도 있다. 따라서, 마우스 클릭이 시뮬레이션될 수도 있다. 다른 구성에서, 제스처 인식 모듈 (324) 은 "보팅" 동작 또는 기능을 사용할 수도 있다. 예를 들면, 제스처 인식 모듈 (324) 은 20 개의 프레임들을 버퍼링 또는 저장할 수도 있다. 제스처 인식 모듈 (324) 은 좌측 마우스 이벤트가 트리거되기 전에, 감추어진 손가락을 나타내기 위하여, 버퍼링된 프레임들의 80% 를 요구할 수도 있다. 더욱이, 제스처 인식 모듈 (324) 은 마우스 업 이벤트를 트리거하기 전에, 20 개의 프레임들의 50%가 뻗은 손가락을 나타낼 것을 요구할 수도 있다. 더욱이, 컴퓨팅 디바이스 (304) 는 마우스 다운 이벤트를 뒤따르는 마우스 업 이벤트들만을 허용할 상태 머신을 채용할 수도 있다. 상태 머신은 폴스 포지티브들을 감소시키기 위한 필터로서 사용될 수도 있다.
추가적인 구성들은 대안적이고/이거나 추가적인 피쳐들을 채용할 수도 있다. 일 구성에서, 컴퓨팅 디바이스 (304) 는 트랙킹을 개선하기 위하여 트랙킹된 손 (334) 주위에 더 밝은 영역 또는 "글로우" 를 생성할 수도 있다. 예를 들면, 컴퓨팅 디바이스 (304) 는 투영될 이미지에서 트랙킹된 손 (334) 의 로케이션 주위의 다수의 픽셀들의 밝기를 증가시킬 수도 있다. 위에서 언급한 바와 같이, 다수의 손들은 동시에 트랙킹될 수도 있고/있거나 다수의 제스처들은 일부 구성들에서 동시에 인식될 수도 있다.
일 구성에서, 컴퓨팅 디바이스 (304) 는 사용자의 손 (334) 및/또는 손가락들의 그림자들 (336) 으로부터 제스처들을 검출, 트랙킹 및/또는 인식하는 것을 피하기 위하여 트랙킹 및/또는 제스처 인식을 수행하기 전에, 캡처된 이미지의 어두운 부분들 (예를 들면, 루마 <∼35) 을 제거할 수도 있다. 예를 들면, 컴퓨팅 디바이스 (304) 는 (예를 들면, 특정 임계치 아래의) 매우 어두운 캡처된 이미지로부터 픽셀들을 판정할 수도 있고 그 픽셀들을 패턴 검색에서 고려의 대상으로부터 제거할 수도 있다.
일 구성에서, 컴퓨팅 디바이스 (304) (예를 들면, 제스처 인식 모듈 (324)) 는 사용자의 손 (334) 의 엄지손가락과 검지손가락 사이의 각도에 기초하여 제스처를 인식할 수도 있다. 예를 들면, 컴퓨팅 디바이스 (304) 는 커서를 사용자 (332) 의 검지손가락과 엄지손가락 사이의 각도에 기초하여 사용자의 손 (334) 으로부터 떨어져서 이동할 수도 있다. 이것은, 구성에 따라, 사용자로 하여금 투영된 이미지의 도달할 수 없는 영역들에서 커서를 제어하도록 허용할 수도 있다. 예를 들면, 컴퓨팅 디바이스 (304) 는 완전히 뻗은 엄지손가락 (예를 들면, 엄지손가락과 검지손가락 사이가 대략 90°) 을 특정 거리 (예를 들면, 픽셀들의 수, 사용자의 손 (334)과 투영된 이미지의 에지 사이의 거리의 퍼센티지, 손 (334) 사이즈들의 수 등) 만큼 사용자의 손 (334) 으로부터 떨어져서 커서를 이동시키는 커맨트로 해석할 수도 있다. 이 거리는 집게손가락과 엄지손가락 사이의 각도의 사이즈에 기초할 수도 있다. 예를 들면, 사용자 (332) 가 집게손가락과 엄지손가락 사이의 각도를 감소시킴에 따라, 집게손가락과 엄지손가락 사이에 각도를 가지지 않는 사용자의 손 (334) 에 커서가 존재할 때까지 거리는 감소될 수도 있다. 일 구성에서, (예를 들면, 커서가 손 (334) 으로부터 직접적으로 연장되도록) 방향은 검출된 손목 로케이션에 기초할 수도 있다. 다른 구성에서, 집게손가락과 엄지손가락 사이의 각도는, 예를 들면, 줌-인/줌-아웃 동작과 같은, 다른 동작을 위해 사용될 수도 있다.
일 구성에서, 카메라 (302) 는 투영된 이미지 (330) 의 영역에서 개선된 포커스, 노출 및/또는 컬러 재생을 제공한다. 예를 들면, 컴퓨팅 디바이스 (304) 는 카메라 (302) 에게 투영된 이미지 (330) 상에 포커싱하고/하거나 투영된 이미지 (330) 를 위한 카메라의 노출 및/또는 컬러 재생을 개선할 것을 명령할 수도 있다. 이것은 카메라 캡처 영역 (328) 의 나머지를 희생하고 이루어질 수도 있다. 예를 들면, 투영된 이미지 (330) 이외에도 카메라 캡처 영역 (328) 의 일부 또는 모두가 포커스를 벗어날 수도 있거나 불량한 노출 및/또는 컬러 재생을 가질 수도 있다. 추가로 또는 대안적으로, 향상된 포커스, 노출 및/또는 컬러 재생은, 예를 들면, 검색 공간 (333) 또는 초기 상호작용 영역 (338) 과 같은 다른 관심 영역상에서 사용될 수도 있다.
일 구성에서, 프로젝터 (308), 카메라 (302) 및 사용자 (332) 는 모두 투영된 이미지 (330) 를 위해 사용된 표면 (예를 들면, 벽, 스크린, 화이트 보드 등) 의 동일한 측면 상에 있다. 다른 구성에서, 프로젝터 (308) 는 투영된 이미지 (330) 를 위해 사용된 표면의 뒤에 있을 수도 있다. 본원의 시스템들 및 방법들은 임의의 포지션에서 사용자의 손 (334) 에 적용될 수도 있다는 것에 유의해야 한다. 예를 들면, 사용자의 손 (334) 의 손등, 손바닥 또는 측면이 트랙킹될 수도 있다. 사용자의 손 (334) 은 추가로 또는 대안적으로 여러 경우들에서 뻗어있고/뻗어 있거나 감추어진 하나 이상의 손가락들을 가질 수도 있다.
도 4 는 컴퓨팅 디바이스 인터페이스를 제공하기 위한 방법 (400) 의 하나의 구성을 도시한 흐름도이다. 컴퓨팅 디바이스 (104) 는 캘리브레이션될 수도 있다 (402). 즉, 컴퓨팅 디바이스 (104) 는 그 자신 (104) 을 캘리브레이션할 수도 있다 (402). 예를 들면, 컴퓨팅 디바이스 (104) 는 프로젝터 (108) 에 의해 투영된 이미지 또는 (카메라 (102) 에 의해 캡처된) 투영된 공간의 코너들을 발견할 수도 있다. 컴퓨팅 디바이스 (104) 는 투영된 공간을 데스크톱 공간으로 맵핑하기 위하여 이 코너들을 사용할 수도 있다. 예를 들면, 투영된 공간에서의 좌표는 (예를 들면, 변환 매트릭스를 통하여) 데스크톱 공간에서의 좌표로 맵핑될 수도 있다. 컴퓨팅 디바이스 (104) 는 또한 투영된 이미지상의 원 또는 타원 내의 손 (334) 의 존재를 검출함으로써 손 (334) 의 사이즈를 판정할 수도 있다.
컴퓨팅 디바이스 (104) 는 초기 상호작용 영역에서 손 (334) 을 검출할 수도 있다 (404). 예를 들면, 컴퓨팅 디바이스 (104) 는 캡처된 이미지의 영역에서 (예를 들면, 하부 우측 코너에서 또는 사용자 (332) 의 몸통 등에 의해) 루마 또는 광도의 변화를 검출할 수도 있다.
컴퓨팅 디바이스 (104) 는 손 (334) 을 트랙킹할 수도 있다 (406). 예를 들면, 컴퓨팅 디바이스 (104) 는 손 (334) 의 로케이션 및/또는 포지션을 판정하기 위하여 트랙킹 패턴들 (예를 들면, Haar 피쳐들) 을 사용할 수도 있다. 예를 들면, 컴퓨팅 디바이스 (104) 는 주어진 필터에 대한 옅은 그레이 영역들의 합과 짙은 그레이 영역들의 합 사이의 차이가 가장 큰 트랙킹 패턴을 선택할 수도 있다. 최적합한 필터가 임계치들의 세트에 대하여 점검될 수도 있다. 점검을 통과하면, 컴퓨팅 디바이스 (104) 는 트랙킹된 손 (334) 의 로케이션 및/또는 포지션을 사용할 수도 있다.
컴퓨팅 디바이스 (104) 는 손 (334) 제스처를 인식할 수도 있다 (408). 예를 들면, 컴퓨팅 디바이스 (104) 는 제스처로서 해석될 수도 있는 하나 이상의 손가락들 또는 손 (334) 의 이동을 검출할 수도 있다. 일 구성에서, 컴퓨팅 디바이스 (104) 는 하나 이상의 손가락들을 검색하기 위하여 제스처 패턴들을 사용한다. 컴퓨팅 디바이스 (104) 는 하나 이상의 손가락들의 이동들의 존재, 부재 또는 시퀀스 (sequence) 를 제스처로서 해석할 수도 있다. 제스처가 검출되면, 이 제스처는 이벤트 또는 동작을 트리거하기 위하여 사용될 수도 있다. 예를 들면, 컴퓨팅 디바이스 (104) 는 임의의 손가락들의 부재를 마우스-다운 이벤트로서 해석할 수도 있고, (마우스 다운 이벤트 후의) 손가락의 존재를 마우스-업 이벤트로서 해석할 수도 있다.
다른 구성에서, 컴퓨팅 디바이스 (104) 는 손 (334) (또는 손가락들) 의 특정 움직임을 제스처로서 해석할 수도 있다. 예를 들면, 컴퓨팅 디바이스 (104) 는 3 번의 주먹 흔들기를 이벤트 또는 동작을 트리거할 수 있는 특정 제스처로서 해석할 수도 있다. 예를 들면, 컴퓨팅 디바이스 (104) 는 하나 이상의 프레임들을 버퍼링할 수도 있고 주먹 및/또는 하나 이상의 손가락들의 이동을 제스처를 나타내는 특정 패턴으로 매칭할 수도 있다. 버퍼링된 프레임들은 추가로 또는 대안적으로 제스처 인식의 강건성을 증가시키기 위하여 사용된다. 예를 들면, 컴퓨팅 디바이스 (104) 는 이벤트 또는 동작을 트리거하기 전에, 버퍼링된 프레임들의 일정 퍼센티지가 특정 검출 (예를 들면, 뻗은 손가락, 감추어진 손가락 등) 을 나타낼 것을 요구할 수도 있다.
도 5 는 컴퓨팅 디바이스 인터페이스를 제공하기 위한 방법 (500) 의 더 구체적인 구성을 도시한 흐름도이다. 더 구체적으로, 도 5 에 도시된 방법 (500) 은 컴퓨팅 디바이스 (104) 를 캘리브레이션하는 단계 (402) 에 대하여 더 상세한 내역을 제공한다. 컴퓨팅 디바이스 (104) 는 프로젝터 (108) 를 이용하여 캘리브레이션을 위한 이미지를 투영할 수도 있다 (502). 예를 들면, 컴퓨팅 디바이스 (104) 는 카메라 (102) 에 의해 캡처된 투영된 이미지의 코너들을 판정하기 위하여 사용될 수도 있는 체크무늬 또는 바둑판무늬 이미지 또는 다른 이미지를 생성하고 (프로젝터 (108) 를 이용하여) 투영할 수도 있다. 컴퓨팅 디바이스 (104) 는 캘리브레이션을 위한 캡처된 이미지에 기초하여 투영된 공간 좌표를 데스크톱 공간 좌표로 맵핑할 수도 있다 (504). 예를 들면, 컴퓨팅 디바이스 (104) 는 (예를 들면, 에지들에서의) 루마 또는 광도에서 하나 이상의 드롭들 (drops) 에 대한 검색을 함으로써 투영된 이미지의 코너들을 발견할 수도 있다. 컴퓨팅 디바이스 (104) 는 카메라 (102) 에 의해 캡처된 투영된 이미지의 코너들을 컴퓨팅 디바이스 (104) 상의 데스크톱 공간의 코너들로 맵핑할 수도 있다. 예를 들면, 컴퓨팅 디바이스 (104) 는 투영된 이미지 또는 투영된 공간의 코너들의 로케이션들에 기초하여 변환 매트릭스를 생성할 수도 있다.
컴퓨팅 디바이스 (104) 는 손 (334) 사이즈 판정을 위한 이미지를 투영할 수도 있다 (506). 예를 들면, 컴퓨팅 디바이스 (104) 는 일련의 원들 또는 타원들을 포함한 이미지를 투영하기 위하여 프로젝터 (108) 를 사용할 수도 있다. 컴퓨팅 디바이스 (104) 는 손 (334) 사이즈 판정을 위한 캡처 이미지에 기초하여 손 (334) 사이즈를 판정할 수도 있다 (508). 예를 들면, 컴퓨팅 디바이스 (104) 는 사용자의 손 (334) 이 그 안에 배치된 투영된 원 또는 타원을 판정하기 위하여 카메라 (102) 에 의해 캡처된 하나 이상의 이미지들 또는 이미지 프레임들을 사용할 수도 있다. 예를 들면, 컴퓨팅 디바이스 (104) 는 현재의 프레임으로부터의 픽셀 강도 값들을 이용할 수도 있고 이 값들을 하나 이상의 이전의 프레임들로부터의 대응하는 픽셀 강도 값들에 비교할 수도 있다. 컴퓨팅 디바이스 (104) 는 사용자가 그의/그녀의 손 (334) 을 특정 원내에 배치하였다는 것을 나타내는 픽셀 강도 값들에서의 변화를 검출할 수도 있다. 예를 들면, 특정 원 또는 타원에 대응하는 픽셀 강도 값들이 이전의 프레임으로부터 현재의 프레임으로 감소되면, 컴퓨팅 디바이스 (104) 는 감소된 강도를 가진 특정 원 또는 타원이 사용자의 손 (334) 또는 주먹의 사이즈라고 판정할 수도 있다.
추가로 또는 대안적으로, 컴퓨팅 디바이스 (104) 는 얼굴 인식을 수행함으로써 사용자의 손 (334) 의 사이즈를 추정할 수도 있다. 일 구성에서, 컴퓨팅 디바이스 (104) 는 사용자의 손 (334) 의 사이즈를 추정하기 위하여 (얼굴 인식을 통하여 판정된) 사용자 (332) 의 머리의 사이즈를 이용할 수도 있다. 예를 들면, 컴퓨팅 디바이스 (104) 는 사용자의 손 (334) 의 사이즈를 사용자 (332) 머리의 사이즈의 1/3 로서 추정할 수도 있다. 다른 구성에서, 컴퓨팅 디바이스 (104) 는 원 또는 타원을 이용하여 손 (334) 사이즈 판정을 수행하고, 또한 (얼굴 인식을 이용한) 사용자 (332) 의 얼굴에 기초하여 캘리브레이션 데이터를 저장할 수도 있다. 예를 들면, 컴퓨팅 디바이스 (104) 는 사용자 (A) 에 대한 손 (334) 사이즈 판정/캘리브레이션을 수행하고, 사용자 (332) 와 연관된 판정/캘리브레이션 데이터를 (얼굴 인식을 통하여) 사용자 (A) 를 인식하기 위해 사용될 수 있는 데이터와 함께 저장할 수도 있다. 이런 방식으로, 다음에 사용자 (A) 가 인터페이스를 사용할 때에는, 컴퓨팅 디바이스 (104) 는 인식된 사용자 (A) 의 얼굴과 연관된 손 (334) 사이즈에 대해 자동으로 그 자신을 캘리브레이션할 수도 있다.
도 6 은 투영된 영역 (640) 에서의 체크무늬 또는 바둑판무늬 패턴 (642) 의 하나의 구성을 도시한 다이어그램이다. 컴퓨팅 디바이스 (104) 는 투영된 공간 (640) 에서 체크무늬 또는 바둑판무늬 패턴 (642) 의 이미지를 생성하여 (프로젝터 (108) 를 이용하여) 투영할 수도 있다. 카메라 (102) 는 체크무늬 또는 바둑판무늬 패턴 (642) 의 이미지를 캡처하고 이미지 또는 이미지 데이터를 컴퓨팅 디바이스 (104) 로 전송할 수도 있다. 컴퓨팅 디바이스 (104) 는 투영된 공간 (640) 의 코너들을 판정하기 위하여 이미지 또는 이미지 데이터를 사용할 수도 있다. 예를 들면, 컴퓨팅 디바이스 (104) 는 코너들을 판정하기 위하여 에지들 (예를 들면, 상단, 하단, 좌측, 우측 등) 에서의 루마 또는 광도에서 하나 이상의 드롭들을 위하여 체크무늬 또는 바둑판무늬 패턴 (642) 을 검색할 수도 있다. 변환 매트릭스를 판정하기 위하여 (카메라 (102) 에 의해 캡처된) 투영된 공간 (640) 의 코너들이 사용될 수도 있다. 투영된 공간 (640) 의 코너들은 투영된 공간 (640) 의 실제 좌표를 검색하기 위하여 사용될 수도 있다.
도 7 은 투영된 공간 (740) 을 데스크톱 공간 (748) 으로 맵핑하는 것을 도시한 다이어그램이다. 컴퓨팅 디바이스 (104) 는 이미지를 생성하고 (프로젝터 (108) 를 이용하여) 투영된 공간 (740) 으로 투영한다. 카메라 (102) 는 투영된 이미지를 캡처한다. 카메라 (102) 는, 그러나, 투영된 공간 (740) 보다 더 클 수도 있는, 카메라 캡처 영역 (728) 에 이미지를 캡처할 수도 있다. 예를 들면, 투영된 공간 (740) 으로 지칭되는, 카메라 캡처 영역 (728) (또는 시점) 으로부터 캡처되는 투영된 콘텐츠의 좌표는, 컴퓨팅 디바이스 (104) 의 디스플레이상의 좌표 또는, 데스크톱 공간 (748) 좌표로 지칭되는, 컴퓨팅 디바이스 (104) 의 디스플레이상의 영역에서의 좌표로 맵핑될 수도 있다. 예를 들면, 포인트 A (744a), 포인트 B (744b), 포인트 C (744c) 및 포인트 D (744d) (예를 들면, 코너들) 는 각각 포인트 A' (746a), 포인트 B' (746b), 포인트 C' (746c) 및 포인트 D' (746d) 로 맵핑된다. 카메라 (102) 에 의해 캡처된 이미지들은 데스크톱 공간 (748) 좌표에 대한 로케이션 및 스케일 차이들의 문제가 있을 수도 있고, 오브젝트들이 3D 환경의 2D 프로젝션들이므로 원근 왜곡의 문제가 있을 수도 있다.
도 8 은 손 (334) 사이즈 캘리브레이션을 위한 이미지 (850) 를 도시한 다이어그램이다. 예를 들면, 컴퓨팅 디바이스 (104) 는 손 (334) (예를 들면, 주먹) 사이즈 캘리브레이션을 위한 이미지 (850) 를 생성할 수도 있고, 프로젝터 (108) 를 이용하여 이미지 (850) 를 투영할 수도 있다. 일 구성에서, 손 (334) 사이즈 캘리브레이션을 위한 이미지 (850) 는 손 (334) 사이즈 캘리브레이션을 위한 원들 또는 타원들 (852) 을 포함한다. 카메라 (102) 는 손 (334) 사이즈 캘리브레이션을 위한 이미지 (850) 의 하나 이상의 이미지들 (예를 들면, 이미지 데이터의 프레임들) 을 캡처한다. 컴퓨팅 디바이스 (104) 는 이후에 원들 또는 타원들 (852) 중 하나 (예를 들면, 또는 하나 이상) 에서의 강도 (예를 들면, 픽셀 강도) 의 변화를 검출한다. 예를 들면, 컴퓨팅 디바이스 (104) 는 하나 이상의 이전 프레임들로부터의 원들 또는 타원들에 대응하는 픽셀들의 강도를 현재 프레임에서의 픽셀들에 비교한다. 변화가 검출되면, 컴퓨팅 디바이스 (104) 는 강도의 변화에 대응하는 원 또는 타원 (852) 을 선택한다. 일 구성에서, 컴퓨팅 디바이스 (104) 는 다수의 프레임들에 대하여 변화가 검출된 후에서야 (예를 들면, 2 초와 같이 일정 시간 동안 변화가 일관될 때) 원 또는 타원 (852) 을 선택할 수도 있다. 이것은, 예를 들면, 사용자 (332) 가 그 앞에서 걷고 있을 때 원 또는 타원 (852) 을 선정하는 것을 피하도록 도와줄 수도 있다. 선택된 원 또는 타원 (852) 은 손 (334) (예를 들면, 주먹) 사이즈를 (예를 들면, 픽셀들의 수로) 나타낼 수도 있다.
도 9 는 컴퓨팅 디바이스 인터페이스를 제공하기 위한 방법 (900) 의 다른 더 구체적인 구성을 도시한 흐름도이다. 더 구체적으로, 도 9 에 도시된 방법 (900) 은 (예를 들면, 손 트랙킹으로 전이 (transition) 하기 위하여) 초기 상호작용 영역에서 손 (334) 을 검출하는 단계 (404) 에 대한 더 상세한 내역을 제공한다. 컴퓨팅 디바이스 (104) 는 초기 상호작용 영역을 판정할 수도 있다 (902). 일 구성에서, 초기 상호작용 영역은 (예를 들면, 캘리브레이션동안 판정된) 손 (334) 사이즈의 대략 4 배의 사이즈를 가지고, 투영된 이미지의 하부 우측 코너에 세팅된다. 다른 구성들에서, 초기 상호작용 영역은, 투영된 이미지의 하부 좌측 부분, 투영된 이미지의 하부 중간 부분, 또는 다른 영역과 같은 다른 미리결정된 영역에 배치되거나 세팅될 수도 있다. 다른 구성에서, 컴퓨팅 디바이스 (104) 는 초기 상호작용 영역을 이동할 수도 있다. 예를 들면, 컴퓨팅 디바이스 (104) 는 사용자 (332) 의 포지션 (예를 들면, 캘리브레이션에 기초한 사용자 (332) 의 몸통 또는 가장 짙은 1/n 폭) 을 트랙킹하고 초기 상호작용 영역을 사용자 (332) 의 옆에 배치할 수도 있다. 이런 방식으로, 사용자 (332) 가 이동할 때 초기 상호작용 영역도 이동한다. 따라서, 컴퓨팅 디바이스 (104) 는 초기 상호작용 영역을 판정할 수도 있다 (902).
컴퓨팅 디바이스 (104) 는 초기 상호작용 영역을 모니터링할 수도 있다 (904). 예를 들면, 컴퓨팅 디바이스 (104) 는 카메라 (102) 에 의해 캡처된 이미지들 또는 이미지 데이터를 이용하여 초기 상호작용 영역에서 픽셀들의 루마 또는 광도 값들을 모니터링할 수도 있다 (904). 일 구성에서, 컴퓨팅 디바이스 (104) 는 초기 상호작용 영역에 대응하는 이미지 데이터 (예를 들면, 픽셀들) 의 하나 이상의 프레임들을 저장 또는 버퍼링한다.
컴퓨팅 디바이스 (104) 는 손 (334) 이 초기 상호작용 영역에서 검출되는지의 여부를 판정할 수도 있다 (906). 일 구성에서, 컴퓨팅 디바이스 (104) 는 하나 이상의 이전의 프레임들에서의 초기 상호작용 영역에서의 픽셀들의 루마 또는 광도 값들과 현재 프레임에서의 픽셀들의 대응하는 값들 사이의 차이들을 계산한다. 이 구성에서, 컴퓨팅 디바이스 (104) 는, 임계치와 비교되는, 이 차이들의 합을 계산한다. 차이들의 합이 임계치보다 적으면, 컴퓨팅 디바이스 (104) 는 초기 상호작용 영역에서 손 (334) 이 검출되지 않았다고 판정한다 (906). 그 경우에, 동작은 초기 상호작용 영역을 판정하는 단계 (902) 로 리턴 (return) 될 수도 있다. 차이들의 합이 임계치보다 더 크면, 컴퓨팅 디바이스 (104) 는 초기 상호작용 영역에서 손 (334) 이 검출되었다고 판정하고 (906), 손 트랙킹을 수행 (908) 하기 위하여 전이한다. 이 판정 (906) 은 예비적일 수도 있다는 것에 유의해야 한다. 예를 들면, 컴퓨팅 디바이스 (104) 가 초기 상호작용 영역에서 손 (334) 이 검출되었다고 일단 판정하면 (906), 루마 또는 광도에서의 변화가 손 (334) 의 존재 때문이라는 것을 보장 (예를 들면, 확인 또는 점검) 하기 위하여 손 트랙킹을 수행 (908) 함에 있어서 하나 이상의 동작들이 수행될 수도 있다.
도 10 은 컴퓨팅 디바이스 인터페이스를 제공하기 위한 방법 (1000) 의 다른 더 구체적인 구성을 도시한 흐름도이다. 컴퓨팅 디바이스 (104) 는 카메라 (102) 를 이용하여 손 (334) 트랙킹을 위한 이미지를 캡처할 수도 있다 (1002). 예를 들면, 카메라 (102) 는, 컴퓨팅 디바이스 (104) 에 제공된, 하나 이상의 이미지 또는 이미지 데이터를 캡처할 수도 있다. 컴퓨팅 디바이스 (104) 는 이 이미지들 또는 이미지 데이터들 수신, 저장 (예를 들면, 버퍼링) 및/또는 사용할 수도 있다.
컴퓨팅 디바이스 (104) 는 검색 공간에서의 이미지 데이터에 최상으로 매칭되는 패턴을 판정할 수도 있다 (1004). 다르게 말하면, 컴퓨팅 디바이스 (104) 는 검색 공간에서 최적합한 패턴 (예를 들면, 트랙킹 패턴) 을 판정할 수도 있다 (1004). 예를 들면, 수 개의 Haar 피쳐 패턴들이 사용될 수도 있다. 일 구성에서, 5 개의 Haar 패턴들이 사용되고, 각각의 패턴은 5 개의 직사각형 영역들 또는 영역들을 포함한다. 중심의 "짙은" 직사각형 영역은 4 개의 외부 직사각형 영역들 또는 영역들에 의해 둘러싸이거나 이 영역들 또는 영역들과 보더들 (borders) 을 공유하며 (예를 들면, 사용자 (332) 의 주먹을 표현한다). 4 개의 외부 영역들 중에서, 3 개는 더 옅은 영역들이고 하나는 짙은 영역이다. 예를 들면, 패턴들 중 하나는 중심의 짙은 영역의 좌측으로 짙은 외부 영역을 포함한다. 다른 패턴들은 중심의 짙은 영역 아래와 중심의 짙은 영역 우측에 짙은 영역을 가질 수도 있으며, 2 개의 다른 패턴들은 중심의 짙은 영역의 하부 좌측 및 하부 우측으로 짙은 외부 영역을 가질 수도 있다. 이 2 개의 패턴들은, 예를 들면, 중심의 짙은 영역 바로 아래에 짙은 외부 영역을 가진 패턴의 ±45°회전들일 수도 있다. 이 패턴들의 예들은 도 11a 내지 11e 에 주어진다.
컴퓨팅 디바이스 (104) 는 검색 공간에서의 이미지 데이터에 최상으로 매칭되는 (예를 들면, 최적으로 피팅되는) 패턴을 판정 (1004) 하기 위하여 패턴들을 사용할 수도 있다. 예를 들면, 사용자의 손 (334) 을 트랙킹하는 것은 (예를 들면, 피부는 투영하는 표면보다 더 많은 빛을 흡수하는 경향이 있으므로) 사용자의 손 (334) 보다 더 큰 (이미지 데이터의) 검색 공간 또는 영역에서 하나 이상의 더 밝은 영역들에 의해 둘러싸인 하나 이상의 짙은 영역들에 대한 검색을 함으로써 달성될 수도 있다. 일 구성에서, 검색 공간은 판정된 손 (334) 사이즈의 대략 4 배이며 사용자의 손 (334) 의 최후 (에 결정된) 로케이션에 로케이팅 (예를 들면, 중심에 배치) 된다. 컴퓨팅 디바이스 (104) 는 좌측에서 우측으로 그리고 상단에서 하단으로 픽셀 단위로 검색 공간에서의 이미지 데이터를 스캐닝한다. 컴퓨팅 디바이스 (104) 는 이후에, 주어진 필터에 대한 옅은 (예를 들면, 옅은 그레이) 영역들의 합과 짙은 (예를 들면, 짙은 그레이) 영역들의 합 사이에 (예를 들면, 루마, 픽셀 값 또는 강도로 나타낸) 가장 큰 또는 최대의 차이들을 가지는, 최상으로 매칭되는 패턴 (예를 들면, 필터 또는 피쳐) 을 선택한다. 가장 큰 또는 최대의 차이를 가지는 패턴이 검색 공간 이미지 데이터에서 최상의 매치 또는 최적의 핏으로서 선택된다. 최상으로 매칭되는 패턴은, 손 (334) 을 트랙킹하는 것과 같은 동작을 수행하기 위하여 사용될 수도 있는 검색 공간에서의 이미지 데이터에 대응하는 로케이션 및/또는 배향 (orientation) 을 가진다.
더 구체적으로, 예를 들면, 이미지 데이터에서 매치를 발견하기 위하여 하나 이상의 패턴들이 사용될 수도 있다. 예를 들면, 패턴의 짙은 영역에 대응하는 이미지 데이터의 평균 픽셀 값 (예를 들면, 루마, 강도 등) 이 다른 더 옅은 영역들 (예를 들면, 3 개의 옅은 영역들) 에 대응하는 이미지 데이터의 평균 픽셀 값들보다 더 짙은 임계치 (예를 들면, 이 평균 픽셀 값들보다 더 낮은 20 루마 레벨들) 인 경우에 매치가 판정될 수도 있다. 평균 픽셀 값은, 예를 들면, 영역내의 픽셀들의 수로 나누어진 픽셀 값들의 합일 수도 있다. 매치를 판정하기 위해 사용된 픽셀들은 이미지 데이터에서의 필터 또는 패턴의 현재 로케이션에 대응할 수도 있다.
컴퓨팅 디바이스 (104) 는 패턴이 손 (334) 에 매칭되는지의 여부를 판정할 수도 있다 (1006). 예를 들면, 판정된 (예를 들면, 그 로케이션 및 배향을 가진) 패턴이, 예를 들면, 손 (334) 에 매칭되고 사용자의 손 (334) 또는 사용자 (332) 의 머리의 그림자에는 매칭되지 않는다는 것을 확인하기 위하여 하나 이상의 점검들이 수행될 수도 있다. 다르게 말하면, 컴퓨팅 디바이스 (104) 는 최적합한 패턴을 점검할 수도 있다. 예를 들면, 최적합한 패턴 또는 이미지 데이터가 임계치들 (예를 들면, 미리-결정된 임계치들) 의 세트에 대하여 점검될 수도 있다. 일 구성에서, 컴퓨팅 디바이스 (104) 는 더 옅은 외부 영역들 (예를 들면, 옅은 그레이 영역들) 에서의 (예를 들면, 루마 또는 강도로 나타낸) 평균 픽셀 값들이 중심의 짙은 영역에서의 평균 픽셀 값 플러스 하나의 임계치 (예를 들면, 20) 보다 더 크다는 것을 확인하기 위하여 점검한다. 컴퓨팅 디바이스 (104) 는 또한 짙은 (예를 들면, 짙은 그레이) 외부 영역에서의 평균 픽셀 값이 중심의 짙은 (예를 들면, 짙은 그레이) 영역에서의 평균 픽셀 값 마이너스 하나의 임계치 (예를 들면, 20) 보다 적다는 것을 확인하기 위하여 점검할 수도 있다. 앞에서 말한 이 점검들은 최적합한 패턴이 사용자의 손 (334) 에 대응한다는 것을 보장하는 것을 도울 수도 있다. 추가로, 컴퓨팅 디바이스 (104) 는 중심의 짙은 영역으로부터의 평균 픽셀 값이 값 (예를 들면, 30) 보다 더 크다는 것을 확인하기 위하여 점검할 수도 있으며, 이것은 사용자 (332) 의 머리 또는 사용자의 손 (334) 의 그림자들을 트랙킹하는 것을 피하도록 도울 수도 있다.
예를 들면, (패턴이 손 (334) 에 매칭되었는지의 여부를 판정 (1006) 하기 위하여) 컴퓨팅 디바이스는 이전에 언급된 모든 점검들이 충족되었는지의 여부를 판정한다. 예를 들면, 컴퓨팅 디바이스는 더 옅은 외부 영역들에서의 평균 픽셀 값들이 짙은 영역으로부터의 평균 픽셀 값 플러스 임계치보다 더 큰 지의 여부, 짙은 외부 영역에서의 평균 픽셀 값이 중심의 짙은 영역에서의 평균 픽셀 값 마이너스 임계치보다 더 적은지의 여부 및 중심 짙은 영역에서의 평균 픽셀 값이 미리-결정된 값보다 더 큰지의 여부를 판정한다 (1006). 패턴이 손 (334) 에 매칭되지 않는다고 컴퓨팅 디바이스 (104) 가 판정하면 (1006), 동작은 손 (334) 트랙킹을 위한 이미지 캡처하는 단계 (1002) 로 리턴될 수도 있다. 다르게 말하면, (예를 들면, 최적합한) 최상으로 매칭되는 패턴 또는 이미지 데이터가 점검들을 통과하지 못하면 (예를 들면, 필터들 중에서 어느 것도 주먹과 손목을 발견하는 것을 성공하지 못하였다면), 동작은 손 (334) 트랙킹을 위한 이미지를 캡처하는 단계 (1002) 로 리턴될 수도 있다 (예를 들면, 동작들 (1002, 1004, 1006) 은 손 (334) 이 발견될 때까지 및/또는 동작들이 타임 아웃될 때까지 반복된다).
패턴이 손 (334) 에 매칭된다는 것을 컴퓨팅 디바이스 (104) 가 판정하면 (1006), 컴퓨팅 디바이스 (104) 는 이미지 데이터에 최상으로 매칭되는 패턴에 기초하여 손 (334) 을 트랙킹할 수도 있다 (1008). 예를 들면, 컴퓨팅 디바이스 (104) 는 매칭된 패턴의 로케이션으로 커서를 이동할 수도 있다. 더 일반적으로, 최적합한 패턴이 점검들을 통과하면, 컴퓨팅 디바이스 (104) 는 최적합한 패턴에 기초하여 동작 (예를 들면, 손 트랙킹 (1008)) 을 수행할 수도 있다. 예를 들면, 컴퓨팅 디바이스 (104) 는 데스크톱 공간내의 커서를 최적합한 패턴의 대응하는 로케이션으로 이동할 수도 있다. 최적합한 패턴에 기초하여 수행될 수도 있는 다른 동작들의 예들은 데스크톱 공간에서 이미지를 이동시키기 (예를 들면, 화상, 아이콘, 문서 뷰 (view) 등을 트랜스레이팅 (translating) 하기 또는 "드래깅" 하기), 제어를 이용하기 (예를 들면, 슬라이드 제어를 슬라이딩하기, 다이얼 제어를 터닝 (turning) 하기 등), 게임 액션을 수행하기 (예를 들면, 가상의 공 던지기, 가상의 복싱 상대에게 펀치를 스윙하기 등) 및 다른 동작들을 포함한다. 최적의 피팅 패턴의 포지션이 또한 사용될 수도 있다. 예를 들면, 사용자의 손 (334) 의 로케이션에 비교하여 사용자 (332) 의 주먹이 수평, 대각선 또는 수직이라는 것을 최적의 피팅 패턴이 나타내면, 컴퓨팅 디바이스 (104) 는 가상의 다이얼을 대응하는 수평, 대각선 또는 수직 포지션으로 각각 터닝할 수도 있다. 더욱이, 일련의 최적의 핏 로케이션들이 사용될 수도 있다. 예를 들면, 컴퓨팅 디바이스 (104) 는 수 개의 프레임들에 대하여 손 (334) 이동을 트랙킹할 수도 있다 (1008). 손 (334) 이동이 특정 경로 또는 움직임 (예를 들면, 3 회의 흔들기) 에 매칭되면, 컴퓨팅 디바이스 (104) 는 동작을 수행하거나 이벤트 등을 트리거할 수도 있다. 더 구체적으로, 손 (334) 트랙킹은 제스처 인식에 더하여 또는 제스처 인식으로부터 대안적으로 동작 또는 이벤트를 트리거하기 위하여 사용될 수도 있다. 많은 다른 추가적 및/또는 대안적 동작들이 최적합한 패턴에 기초하여 수행될 수도 있다.
도 11a 는 본원에서 개시된 시스템들 및 방법들에 따라 사용될 수도 있는 Haar 패턴 (1100a) (예를 들면, 트랙킹 패턴) 의 일 예를 도시한다. 이 예에서, Haar 패턴 (1100a) 은 5 개의 직사각형 영역들 또는 영역들 (1154a, 1154b, 1154c, 1156d, 1156e) 을 포함한다. 더 구체적으로, Haar 패턴 (1100a) 은 중심의 짙은 영역 E (1156e) 를 포함한다. 중심의 짙은 영역 E (1156e) 는, 예를 들면, 사용자의 손 (334) 또는 주먹을 표현할 수도 있다. 외부의 옅은 영역들 A (1154a), B (1154b) 및 C (1154c) 는 (예를 들면, 중심의 짙은 영역 E (1156e) 위로, 우측으로 및 아래로 각각) 중심의 짙은 영역 E (1156e) 에 접해 있다. 외부의 짙은 영역 D (1156d) 는 (예를 들면, 좌측으로) 중심의 짙은 영역 E (1156e) 에 접해 있다. 외부의 짙은 영역 D (1156d) 는, 예를 들면, 사용자 (332) 의 주먹을 표현할 수도 있다.
도 11b 는 본원에서 개시된 시스템들 및 방법들에 따라 사용될 수도 있는 Haar 패턴 (1100b) (예를 들면, 트랙킹 패턴) 의 다른 예를 도시한다. 이 예에서, Haar 패턴 (1100b) 은 5 개의 직사각형 영역들 또는 영역들 (1103a, 1103b, 1103c, 1105d, 1105e) 을 포함한다. 더 구체적으로, Haar 패턴 (1100b) 은 중심의 짙은 영역 E (1105e) 를 포함한다. 중심의 짙은 영역 E (1105e) 는, 예를 들면, 사용자의 손 (334) 또는 주먹을 표현할 수도 있다. 외부의 옅은 영역들 A (1103a), B (1103b) 및 C (1103c) 는 (예를 들면, 각각 중심의 짙은 영역 E (1105e) 좌측 위로, 우측 위로 및 우측 아래로) 중심의 짙은 영역 E (1105e) 에 접해 있다. 외부의 짙은 영역 D (1105d) 는 (예를 들면, 좌측 아래로) 짙은 영역 E (1105e) 에 접해 있다. 외부의 짙은 영역 D (1105d) 는, 예를 들면, 사용자 (332) 의 주먹을 표현할 수도 있다. 관측될 수도 있는 바와 같이, 도 11b 에 도시된 Haar 패턴 (1100b) 은 도 11c 에 도시된 Haar 패턴 (1100c) 의 -45°회전의 예일 수도 있다.
도 11c 는 본원에서 개시된 시스템들 및 방법들에 따라 사용될 수도 있는 Haar 패턴 (1100c) (예를 들면, 트랙킹 패턴) 의 다른 예를 도시한다. 이 예에서, Haar 패턴 (1100c) 은 5 개의 직사각형 영역들 또는 영역들 (1107a, 1107b, 1107c, 1109d, 1109e) 을 포함한다. 더 구체적으로, Haar 패턴 (1100c) 은 중심의 짙은 영역 E (1109e) 를 포함한다. 중심의 짙은 영역 E (1109e) 는, 예를 들면, 사용자의 손 (334) 또는 주먹을 표현할 수도 있다. 외부의 옅은 영역들 A (1107a), B (1107b) 및 C (1107c) 는 (예를 들면, 각각 중심의 짙은 영역 E (1109e) 좌측으로, 위로 및 우측으로) 중심의 짙은 영역 E (1109e) 에 접해 있다. 외부의 짙은 영역 D (1109d) 는 (예를 들면, 아래로) 짙은 영역 E (1109e) 에 접해 있다. 외부의 짙은 영역 D (1109d) 는, 예를 들면, 사용자 (332) 의 주먹을 표현할 수도 있다.
도 11d 는 본원에서 개시된 시스템들 및 방법들에 따라 사용될 수도 있는 Haar 패턴 (1100d) (예를 들면, 트랙킹 패턴) 의 다른 예를 도시한다. 이 예에서, Haar 패턴 (1100d) 은 5 개의 직사각형 영역들 또는 영역들 (1111a, 1111b, 1111c, 1113d, 1113e) 을 포함한다. 더 구체적으로, Haar 패턴 (1100d) 은 중심의 짙은 영역 E (1113e) 를 포함한다. 중심의 짙은 영역 E (1113e) 는, 예를 들면, 사용자의 손 (334) 또는 주먹을 표현할 수도 있다. 외부의 옅은 영역들 A (1111a), B (1111b) 및 C (1111c) 는 (예를 들면, 각각 중심의 짙은 영역 E (1113e) 좌측 아래로, 좌측 위로 및 우측 위로) 중심의 짙은 영역 E (1113e) 에 접해 있다. 외부의 짙은 영역 D (1113d) 는 (예를 들면, 우측 아래로) 짙은 영역 E (1113e) 에 접해 있다. 외부의 짙은 영역 D (1113d) 는, 예를 들면, 사용자 (332) 의 주먹을 표현할 수도 있다. 관측될 수도 있는 바와 같이, 도 11d 에 도시된 Haar 패턴 (1100d) 은 도 11c 에 도시된 Haar 패턴 (1100c) 의 +45°회전의 예일 수도 있다.
도 11e 는 본원에서 개시된 시스템들 및 방법들에 따라 사용될 수도 있는 Haar 패턴 (1100e) (예를 들면, 트랙킹 패턴) 의 다른 예를 도시한다. 이 예에서, Haar 패턴 (1100e) 은 5 개의 직사각형 영역들 또는 영역들 (1115a, 1115b, 1115c, 1117d, 1117e) 을 포함한다. 더 구체적으로, Haar 패턴 (1100e) 은 중심의 짙은 영역 E (1117e) 를 포함한다. 중심의 짙은 영역 E (1117e) 는, 예를 들면, 사용자의 손 (334) 또는 주먹을 표현할 수도 있다. 외부의 옅은 영역들 A (1115a), B (1115b) 및 C (1115c) 는 (예를 들면, 각각 중심의 짙은 영역 E (1117e) 아래로, 좌측으로 및 위로) 중심의 짙은 영역 E (1117e) 에 접해 있다. 외부의 짙은 영역 D (1117d) 는 (예를 들면, 우측으로) 짙은 영역 E (1117e) 에 접해 있다. 외부의 짙은 영역 D (1117d) 는, 예를 들면, 사용자 (332) 의 주먹을 표현할 수도 있다. 도 11a 내지 도 11e 에 도시된 Haar 패턴들 (1100a 내지 1100e) 은 (예를 들면, 도 10 과 관련되어 위에서 설명된) 본원에서 개시된 시스템들 및 방법들에 따라서 사용된 Haar 패턴들의 세트일 수도 있다.
도 12 는 컴퓨팅 디바이스 인터페이스를 제공하는 방법 (1200) 의 다른 더 구체적인 구성을 도시한 흐름도이다. 더 구체적으로, 도 12 는 손 (334) 제스처를 인식하는 단계 (408) 에 대한 더 상세한 내역을 도시한다. 컴퓨팅 디바이스 (104) 는 손 트랙킹을 모니터링할 수도 있다 (1202). 일 구성에서, 컴퓨팅 디바이스 (104) 는 (예를 들면, 다수의 프레임들에 대해) 트랙킹된 손 (334) 이 여전히 이동하고 있는지 또는 이동을 중단하였는지의 여부를 모니터링할 수도 있다. 컴퓨팅 디바이스 (104) 는 트랙킹된 손 (334) 이 이동을 중단하였는지의 여부를 판정할 수도 있다 (1204). 예를 들면, 컴퓨팅 디바이스 (104) 는 다수의 프레임들 또는 일정 시간량 동안 트랙킹된 손 (334) 이 (일부 범위 내에서) 움직이지 않는지 또는 대략 움직이지 않는지 판정할 수도 있다 (1204). 컴퓨팅 디바이스 (104) 가 트랙킹된 손 (334) 이 이동을 중단하지 않았다 (예를 들면, 이동을 계속하고 있다) 고 판정하면, 동작은 계속되거나 손 (334) 트랙킹을 모니터링하는 단계 (1202) 로 리턴될 수도 있다.
컴퓨팅 디바이스 (104) 가 트랙킹된 손 (334) 이 이동하지 않았다 (예를 들면, 일정 시간량 (예를 들면, 700ms) 또는 다수의 프레임들 동안 움직이지 않았다) 고 판정하면 (1204), 컴퓨팅 디바이스 (104) 는 트랙킹된 손 (334) 이미지를 고정된 사이즈로 스케일링할 수도 있다 (1206). 예를 들면, 컴퓨팅 디바이스 (104) 는 (카메라 (102) 를 이용하여 캡처된) 이미지 또는 이미지 데이터를 특정 치수들 (예를 들면, 40 × 40 픽셀들) 로 스케일링할 수도 있다 (1206). 대안적으로, 컴퓨팅 디바이스 (104) 는 필터 또는 패턴의 사이즈를 스케일링할 수도 있다. 이것은 이미지의 필터들로의 일대일 맵핑을 생성할 수도 있으며, 이것은이미지를 검색중인 탬플릿 또는 패턴으로 정렬되도록 허용할 수도 있다. 예를 들면, 더 큰 손가락 사이즈와 패턴들 사이의 양호한 대응을 제공하기 위하여 이미지는 스케일 다운될 수도 있고, 더 작은 손가락 사이즈와 패턴들 사이의 양호한 대응을 제공하기 위하여 이미지는 스케일 업될 수도 있다.
컴퓨팅 디바이스 (104) 는 검색 공간 (예를 들면, 스케일링된 이미지) 에서의 이미지 데이터에 최상으로 매칭되는 (또는, 예를 들면, 이미지 데이터에 최적으로 피팅되는) 패턴 (예를 들면, 제스처 패턴) 을 판정할 수도 있다 (1208). 예를 들면, 컴퓨팅 디바이스 (104) 는 스케일링된 이미지에서의 이미지 데이터에 최상으로 매칭되는 패턴을 판정 (1208) 하기 위하여 4 개의 Haar 패턴들의 세트를 사용할 수도 있다. 예를 들면, 컴퓨팅 디바이스 (104) 는 사용자의 손 (334) 이 움직이지 않을 때, 사용자 (332) 의 검출된 손 (334) 에 관하여 (예를 들면, 사용자의 손 (334) 또는 주먹의 검출된 중심에 관하여) (예를 들면, 옅고 짙은) 손가락 패턴에 대한 검색을 함으로써 사용자 (332) 의 손가락에 대한 검색을 할 수도 있다. 예를 들면, 각각의 패턴은 3 개의 직사각형 영역들 또는 영역들을 포함할 수도 있다. 짙은 (예를 들면, 짙은 그레이) 영역 또는 직사각형은 2 개의 더 옅은 (예를 들면, 옅은 그레이) 영역들 또는 직사각형들 사이에 있을 수도 있다. 다르게 말하면, 2 개의 더 옅은 영역들은 짙은 영역의 반대편들상에서 짙은 영역에 접해 있을 수도 있다. 예를 들면, 패턴들 중 하나는 수직으로 정렬될 수도 있고, 다른 패턴은 수평으로 정렬될 수도 있고, 나머지 2 개의 패턴들은 ±45°대각선들로 정렬될 수도 있다.
일 구성에서, 컴퓨팅 디바이스 (104) 는 손가락 (예를 들면, 집게손가락) 이 수평 또는 수직 방향으로 포인팅하고 있는 경우에 사용하기 위한 집적 이미지 (예를 들면, 합산된 영역 표) 를 계산하기 위하여 스케일링된 이미지 또는 이미지 데이터를 사용할 수도 있다. 예를 들면, 선택된 (집게) 손가락에 대한 기준은 외부의 더 옅은 영역들에 대한 평균 픽셀 값이 짙은 영역에서의 평균 픽셀 값 플러스 하나의 임계치 (예를 들면, 30) 보다 커야한다는 것이다. 수평 또는 수직 패턴에서의 손가락이 발견되면, 검색은 종료될 수도 있다. 그렇지 않으면, 컴퓨팅 디바이스 (104) 는 +45 및 -45 도에서 회전된 집적 이미지를 계산할 수도 있다. 필터들을 이용하여 손가락이 발견되지 않으면, 컴퓨팅 디바이스 (104) 는 (예를 들면, 쥔 주먹 제스처에서) 손 (334) 을 쥐었다고 판정한다 (1208). 즉, 검색 공간에서의 이미지 데이터에 최상으로 매칭되는 패턴을 판정하는 단계 (1208) 는 이미지 데이터에 매칭되는 패턴이 패턴들의 세트 중에 없다 (예를 들면, 손가락이 발견되지 않는다) 는 것을 판정하는 단계를 포함할 수도 있다는 것에 유의해야 한다.
제스처 인식의 강건성을 개선하기 위하여, "보팅" 접근 방법이 사용될 수도 있다. 예를 들면, 손가락을 인식할 때, 다수 (예를 들면, 20) 의 프레임들이 버퍼링되고 저장될 수도 있다. 컴퓨팅 디바이스 (104) 는 손가락이 감추어졌다고 판정하기 전에 버퍼내의 최소 퍼센티지 (예를 들면, 80%) 의 이미지들이 감추어진 집게손가락을 묘사할 것을 요구할 수도 있다. 더욱이, 컴퓨팅 디바이스 (104) 는 집게손가락이 뻗어졌다고 판정하기 전에 다른 최소 퍼센티지 (예를 들면, 50%) 의 검색된 프레임들이 집게손가락의 발견을 보고해야 한다고 요구할 수도 있다. 다운 마우스 이벤트가 검출된 후에야 업 마우스 이벤트들이 트리거될 것을 요구하는 상태 머신이 사용될 수도 있으므로 뻗은 집게손가락 대 감추어진 집게손가락에 대한 더 낮은 임계치 요건이 사용될 수도 있다. 상태 머신은 폴스 포지티브들을 감소시키기 위한 필터로서 사용될 수도 있다.
컴퓨팅 디바이스 (104) 는 (예를 들면, 패턴들의 세트 중에는 없는 패턴일 수도 있는) 최상으로 매칭되는 패턴이 동작에 대응하는 지의 여부를 판정할 수도 있다 (1210). 예를 들면, 컴퓨팅 디바이스 (104) 는 일정한 패턴들 또는 그 패턴들의 부재를 동작을 수행하기 위한 제스처들로서 해석할 수도 있다. 예를 들면, 손가락이 발견되지 않으면, 컴퓨팅 디바이스 (104) 는 손가락 패턴의 부재를 "마우스 다운" 또는 좌측 마우스 버튼 누르기 이벤트 또는 동작으로 해석할 수도 있다. 더욱이, 컴퓨팅 디바이스 (104) 는 검출된 뻗은 손가락을 "마우스-업" 또는 좌측 마우스 버튼 릴리스 이벤트 또는 동작으로서 해석할 수도 있다. 많은 다른 손 (334) 제스처들의 부재 또는 존재가 사용될 수도 있다. 예를 들면, 특정 포지션 (예를 들면, 집게손가락과 엄지손가락 사이의 특정 각도) 에서 홀딩된 하나 이상의 손가락들은 이벤트 또는 동작에 대응할 수도 있다. 컴퓨팅 디바이스 (104) 가 (검출된 바와 같이, 없는 매칭 패턴일 수도 있는) 최상으로 매칭되는 패턴이 동작에 대응하지 않는다고 판정하면 (1210), 컴퓨팅 디바이스 (104) 는 이후에 손 (334) 트랙킹을 모니터링하는 단계 (1202) 로 리턴될 수도 있다. 이 판정 (1210) 은 상태 머신을 이용하여 이루어질 수도 있다는 것에 유의해야 한다. 예를 들면, 특정 상태에 있을 때 오직 일정한 제스처들 (예를 들면, 패턴들 또는 그 패턴들의 부족) 만이 이벤트 또는 동작에 대응하는 것으로 유효하게 해석될 수도 있다. 예를 들면, 검출된 집게손가락의 존재는 컴퓨팅 디바이스 (104) 가 "마우스-다운" 상태에 있지 않으면 "마우스-업" 이벤트를 나타내지 않는다. "마우스-업" 이벤트가 뒤따르는 "마우스-다운" 이벤트는 (예를 들면, 컴퓨팅 디바이스 (104) 사용자 인터페이스 (UI) 와의 상호작용을 위한) "클릭" 을 포함할 수도 있다는 것에 유의해야 한다.
컴퓨팅 디바이스 (104) 가 (패턴들의 세트 중에는 없는 패턴일 수도 있는) 최상으로 매칭되는 패턴이 동작에 대응한다고 판정하면 (1210), 컴퓨팅 디바이스 (104) 는 (예를 들면, 패턴들의 세트 중에는 없는 패턴일 수도 있는) 최상으로 매칭되는 패턴에 대응하는 동작을 수행할 수도 있다 (1212). 예를 들면, 컴퓨팅 디바이스 (104) 는 인식된 손 (334) 제스처에 대응하는 동작을 수행할 수도 있다 (1212). 일 구성에서, 예를 들면, 컴퓨팅 디바이스 (104) 는 "마우스-다운" 또는 좌측 마우스 버튼 누르기 이벤트를 오퍼레이팅 시스템의 (OS 의) 윈도우 관리자로 트리거하기 위하여, 뻗은 손가락을 나타내는 최적의 핏 패턴의 부족 (예를 들면, 검출된 손가락의 부재) 을 사용할 수도 있다. 대응하는 동작의 수행 단계 (1212) 이후에, 컴퓨팅 디바이스 (104) 는 손 트랙킹을 모니터링하는 단계 (1202) 로 리턴할 수도 있다.
본원에서 개시된 시스템들 및 방법들에 따르면, 동작의 수행 단계 (1212) 를 트리거하기 위하여 추가의 또는 대안적인 패턴들 및/또는 제스처들이 사용될 수도 있다. 예를 들면, 제스처는 커서를 "릴리스" 하기 위하여 사용될 수도 있다. 예를 들면, (예를 들면, 손가락들은 뻗은) 펼쳐진 손 (334) 에 대응하는 하나 이상의 Haar 패턴들이 사용될 수도 있다. 컴퓨팅 디바이스 (104) 가 최상의 매칭 패턴을 펼쳐진 손 (334) 으로 판정하고 (1208) 펼쳐진 손 패턴이 커서 릴리스 동작에 대응한다고 판정하면 (1210), 컴퓨팅 디바이스 (104) 는 커서를 그것의 현재 포지션에 그대로 둠으로써 동작을 수행할 수도 있다 (1212). 일 구성에서, 예를 들면, 컴퓨팅 디바이스 (104) 가 초기 상호작용 영역 (338) 에서 손 (334) 을 검출할 때까지 커서는 그것의 현재 포지션에 그대로 남아있을 수도 있다.
도 13 은 컴퓨팅 디바이스 인터페이스를 제공하는 방법 (1300) 의 다른 더 구체적인 구성을 도시한 흐름도이다. 더 구체적으로, 도 13 은 손 (334) 제스처를 인식하는 단계 (408) 에 대한 더 상세한 내역을 도시하며, 여기서 제스처는 손가락의 사용과 연관된다. 컴퓨팅 디바이스 (104) 는 손 트랙킹을 모니터링할 수도 있다 (1302). 일 구성에서, 컴퓨팅 디바이스 (104) 는 (예를 들면, 다수의 프레임들에 대해) 트랙킹된 손 (334) 이 여전히 이동중인지 또는 이동을 중단하였는지의 여부를 모니터링할 수도 있다. 컴퓨팅 디바이스 (104) 는 트랙킹된 손 (334) 이 이동을 중단하였는지의 여부를 판정할 수도 있다 (1304). 예를 들면, 컴퓨팅 디바이스 (104) 는 다수의 프레임들 또는 일정 시간량 동안 트랙킹된 손 (334) 이 (일부 범위 내에서) 움직이지 않았는지 또는 대략 움직이지 않았는지 판정할 수도 있다 (1304). 컴퓨팅 디바이스 (104) 가 트랙킹된 손 (334) 이 이동을 중단하지 않았다 (예를 들면, 이동을 계속하고 있다) 고 판정하면, 동작은 계속되거나 손 (334) 트랙킹을 모니터링하는 단계 (1302) 로 리턴될 수도 있다.
컴퓨팅 디바이스 (104) 가 트랙킹된 손 (334) 이 이동하지 않았다 (예를 들면, 일정 시간량 (예를 들면, 700ms) 또는 다수의 프레임들 동안 움직이지 않았다) 고 판정하면 (1304), 컴퓨팅 디바이스 (104) 는 트랙킹된 손 (334) 이미지를 고정된 사이즈로 스케일링할 수도 있다 (1306). 예를 들면, 컴퓨팅 디바이스 (104) 는 (카메라 (102) 를 이용하여 캡처된) 이미지 또는 이미지 데이터를 특정 치수들 (예를 들면, 40 × 40 픽셀들) 로 스케일링할 수도 있다 (1306).
컴퓨팅 디바이스 (104) 는 수평 또는 수직 방향으로 포인팅하는 손가락을 위하여 이미지를 검색할 수도 있다 (1308). 예를 들면, 컴퓨팅 디바이스 (104) 는 스케일링된 이미지에서의 최적합한 패턴을 판정하기 위하여 4 개의 Haar 패턴들 (예를 들면, 제스처 패턴들) 의 세트를 사용할 수도 있다. 예를 들면, 각각의 패턴은 3 개의 직사각형 영역들 또는 영역들을 포함할 수도 있다. 짙은 (예를 들면, 짙은 그레이) 영역 또는 직사각형은 2 개의 더 옅은 (예를 들면, 옅은 그레이) 영역들 또는 직사각형들 사이에 있을 수도 있다. 다르게 말하면, 2 개의 더 옅은 영역들은 짙은 영역의 반대편들 상에서 짙은 영역에 접해 있을 수도 있다. 예를 들면, 패턴들 중 하나는 수직으로 정렬될 수도 있고, 다른 패턴은 수평으로 정렬될 수도 있고 나머지 2 개의 패턴들은 ±45°대각선들로 정렬될 수도 있다. 예를 들면, 짙은 영역은 사용자 (332) 의 손가락을 표현할 수도 있다.
예를 들면, 컴퓨팅 디바이스 (104) 는 손가락 (예를 들면, 집게손가락) 이 수평 또는 수직 방향으로 포인팅하고 있는 경우에 사용하기 위한 집적 이미지 (예를 들면, 합산된 영역 표) 를 계산하기 위하여 스케일링된 이미지 또는 이미지 데이터를 사용할 수도 있다. 예를 들면, 선택된 (집게) 손가락에 대한 기준은 외부의 더 옅은 영역들에 대한 평균 픽셀 값이 짙은 영역에서의 평균 픽셀 값 플러스 하나의 임계치 (예를 들면, 30) 보다 커야한다는 것이다.
컴퓨팅 디바이스 (104) 는 수평 또는 수직 패턴들에서의 손가락이 발견되는지의 여부를 판정할 수도 있다 (1310). 손가락이 발견되면, 검색은 종료될 수도 있고 동작은 손 트랙킹을 모니터링하는 단계 (1302) 로 리턴될 수도 있다. 그러나, 수평 또는 수직 패턴들에서의 손가락이 발견되지 않으면, 컴퓨팅 디바이스 (104) 는 대각선 방향으로 포인팅하는 손가락을 위하여 이미지를 검색할 수도 있다 (1312). 예를 들면, 컴퓨팅 디바이스 (104) 는 +45 및 -45 도에서 회전된 집적 이미지를 계산할 수도 있다. 컴퓨팅 디바이스 (104) 는 손가락이 발견되거나 검출되었는지를 판정하기 위하여 (1314) 대각선 패턴들을 사용할 수도 있다. 컴퓨팅 디바이스가 손가락이 발견되었다고 판정하면 (1314), 컴퓨팅 디바이스 (104) 는 손 트랙킹을 모니터링하는 단계 (1302) 로 리턴될 수도 있다. 컴퓨팅 디바이스 (104) 가 손가락이 발견되지 않았다고 판정하면 (1314), 컴퓨팅 디바이스 (104) 는 동작을 수행할 수도 있다 (1316). 예를 들면, 컴퓨팅 디바이스 (104) 는 (예를 들면, 쥔 주먹 제스처에서) 손 (334) 을 쥐었다고 판정할 수도 있고, 쥔 손 (334) 제스처가 "마우스-다운" 이벤트에 대응한다는 것을 판정할 수도 있다. 컴퓨팅 디바이스 (104) 는 따라서 "마우스다운" 이벤트를 트리거함으로써 동작을 수행할 수도 있다 (1316).
제스처 인식의 강건성을 개선하기 위하여, "보팅" 접근 방법이 사용될 수도 있다. 예를 들면, 손가락을 인식할 때, 다수의 프레임들 (예를 들면, 20) 이 버퍼링되고 저장될 수도 있다. 컴퓨팅 디바이스 (104) 는 손가락이 감추어졌다고 판정하기 전에 버퍼내의 최소 퍼센티지 (예를 들면, 80%) 의 이미지들이 감추어진 집게손가락을 묘사할 것을 요구할 수도 있다. 더욱이, 컴퓨팅 디바이스 (104) 는 집게손가락이 뻗어졌다고 판정하기 전에 다른 최소 퍼센티지 (예를 들면, 50%) 의 검색된 프레임들이 집게손가락의 발견을 보고해야 한다고 요구할 수도 있다. 다운-마우스 이벤트가 검출된 후에야 업-마우스 이벤트들이 트리거될 것을 요구하는 상태 머신이 사용될 수도 있으므로 뻗은 집게손가락 대 감추어진 집게손가락에 대한 더 낮은 임계치 요건이 사용될 수도 있다. 상태 머신은 폴스 포지티브들을 감소시키기 위한 필터로서 사용될 수도 있다.
도 14a 는 본원에서 개시된 시스템들 및 방법들에 따라 사용될 수도 있는 Haar 패턴 (1400a) (예를 들면, 제스처 패턴) 의 일 예를 도시한 다이어그램이다. 더 구체적으로, Haar 패턴 (1400a) 은 뻗은 손가락을 검출하기 위하여 사용될 수도 있다. Haar 패턴 (1400a) 은 직사각형의 옅은 영역 A (1458a) 및 옅은 영역 C (1458c) 이 접해 있는 직사각형의 짙은 영역 B (1460b) 를 포함할 수도 있다. 예를 들면, 짙은 영역 B (1460b) 는 사용자 (332) 의 손가락을 표현할 수도 있다. 특히, 도 14a 에 도시된 Haar 패턴 (1400a) 은 수직으로 뻗은 손가락을 검출하기 위하여 사용될 수도 있다.
도 14b 는 본원에서 개시된 시스템들 및 방법들에 따라 사용될 수도 있는 Haar 패턴 (1400b) (예를 들면, 제스처 패턴) 의 다른 예를 도시한 다이어그램이다. 더 구체적으로, Haar 패턴 (1400b) 은 뻗은 손가락을 검출하기 위하여 사용될 수도 있다. Haar 패턴 (1400b) 은 직사각형의 옅은 영역 A (1419a) 및 옅은 영역 C (1419c) 이 접해 있는 직사각형의 짙은 영역 B (1421b) 을 포함할 수도 있다. 예를 들면, 짙은 영역 B (1421b) 는 사용자 (332) 의 손가락을 표현할 수도 있다. 특히, 도 14b 에 도시된 Haar 패턴 (1400b) 은 (예를 들면, 하부 우측으로부터 상부 좌측으로) 대각선으로 뻗은 손가락을 검출하기 위하여 사용될 수도 있다. 도 14b 에 도시된 Haar 패턴 (1400b) 은 도 14a 에 도시된 Haar 패턴 (1400a) 으로부터 +45°회전된 Haar 패턴의 예라는 것이 관측될 수도 있다.
도 14c 는 본원에서 개시된 시스템들 및 방법들에 따라 사용될 수도 있는 Haar 패턴 (1400c) (예를 들면, 제스처 패턴) 의 다른 예를 도시한 다이어그램이다. 더 구체적으로, Haar 패턴 (1400c) 은 뻗은 손가락을 검출하기 위하여 사용될 수도 있다. Haar 패턴 (1400c) 은 직사각형의 옅은 영역 A (1423a) 및 옅은 영역 C (1423c) 이 접해 있는 직사각형의 짙은 영역 C (1425b) 를 포함할 수도 있다. 예를 들면, 짙은 영역 B (1425b) 는 사용자 (332) 의 손가락을 표현할 수도 있다. 특히, 도 14c 에 도시된 Haar 패턴 (1400c) 은 (예를 들면, 하부 좌측으로부터 상부 우측으로) 대각선으로 뻗은 손가락을 검출하기 위하여 사용될 수도 있다. 도 14c 에 도시된 Haar 패턴 (1400c) 은 도 14a 에 도시된 Haar 패턴 (1400a) 으로부터 -45°회전된 Haar 패턴의 예라는 것이 관측될 수도 있다.
도 14d 는 본원에서 개시된 시스템들 및 방법들에 따라 사용될 수도 있는 Haar 패턴 (1400d) (예를 들면, 제스처 패턴) 의 다른 예를 도시한 다이어그램이다. 더 구체적으로, Haar 패턴 (1400d) 은 뻗은 손가락을 검출하기 위하여 사용될 수도 있다. Haar 패턴 (1400d) 은 직사각형의 옅은 영역 A (1427a) 및 옅은 영역 C (1427c) 이 접해 있는 직사각형의 짙은 영역 D (1429b) 를 포함할 수도 있다. 예를 들면, 짙은 영역 D (1429b) 는 사용자 (332) 의 손가락을 표현할 수도 있다. 특히, 도 14d 에 도시된 Haar 패턴 (1400d) 은 수평으로 뻗은 손가락을 검출하기 위하여 사용될 수도 있다.
일 구성에서, 도 14a 내지 도 14d 에 도시된 Haar 패턴들과 동일 및/또는 유사한 Haar 패턴들은 엄지손가락과 검지손가락 사이의 각도를 검출하기 위해 사용될 수도 있다. 예를 들면, 컴퓨팅 디바이스 (304) 는 사용자 (332) 의 엄지손가락과 검지손가락 사이의 각도를 검출 또는 추정하기 위하여, Haar 패턴 매치를 위해, ((어느 손이 사용되는지에 따라, 예를 들면, 우측 또는 좌측으로) 트랙킹된 손 옆에 있는 영역에서의) 이미지 데이터 영역을 검색할 수도 있다. 이미지 데이터는, 예를 들면, 사용자 (332) 가 그의/그녀의 오른손 (334) 을 사용하고/하거나 (컴퓨팅 디바이스 (304) 에 의해 오른손 (334) 을 사용하도록 지시된), 트랙킹된 손 (334) 의 좌측으로 검색될 수도 있다. 이미지 데이터는, 예를 들면, 사용자의 손 (334) 이 이동을 중단하였을 때, 검색될 수도 있다. 상이한 각도들을 가진 하나 이상의 Haar 패턴들이 사용될 수도 있다. 예를 들면, 상이한 회전들에서의, 도 14a 에 도시된 옅은-어두운-옅은 패턴 (1400a) 과 유사한 패턴들이 사용될 수도 있다. 예를 들면, 0, 15, 30, 45, 60, 75 및/또는 90 도의 회전들에서의 패턴들이 사용될 수도 있다. 이미지 데이터에 매칭되는 패턴은 사용자 (332) 의 엄지손가락과 검지손가락 사이의 각도를 나타낼 수도 있다. 이 각도는, 이 각도에 대응하는 거리 만큼 사용자의 손 (334) 으로부터 떨어져서 커서를 이동 또는 확장하는 것과 같은 동작을 트리거하기 위하여 사용될 수도 있다. 예를 들면, 90 도 각도는 일부 거리 (예를 들면, 피트, 픽셀들, 투영된 이미지 (330) 의 에지까지의 거리의 퍼센티지 등) 에서 최대 확장에 대응할 수도 있고, 0 또는 15 도는, 이 각도들 사이의 거리들의 범위에 대응하는 개입 각도들을 가진, 최소 확장 또는 무 확장에 대응할 수도 있다.
도 15 는 전자 디바이스 (1562) 에서 활용될 수도 있는 다양한 컴포넌트들을 도시한다. 도시된 컴포넌트들은 동일한 물리적 구조 내에서 또는 분리된 하우징들 또는 구조들에서 로케이팅될 수도 있다. 도 2 에 관하여 논의된 전자 디바이스 (210) 는 전자 디바이스 (1562) 와 유사하게 구성될 수도 있다. 더욱이, 위에서 설명된 카메라들 (102, 202, 302), 컴퓨팅 디바이스들 (104, 204, 304) 및/또는 프로젝터들 (108, 208, 308) 은 각각 전자 디바이스 (1562) 와 유사하게 구성될 수도 있다. 전자 디바이스 (1562) 는 프로세서 (1570) 를 포함한다. 프로세서 (1570) 는 범용 단일- 또는 멀티-칩 마이크로프로세서 (예를 들면, ARM), 특수 목적 마이크로프로세서 (예를 들면, 디지털 신호 프로세서 (DSP)), 마이크로제어기, 프로그래머블 게이트 어레이 등일 수도 있다. 프로세서 (1570) 는 중앙 처리 유닛 (CPU) 으로서 지칭될 수도 있다. 도 15 의 전자 디바이스 (1562) 에서 단지 단일 프로세서 (1570) 만이 도시되었지만, 대안적 구성, 프로세서들 (예를 들면, ARM 및 DSP) 의 조합이 사용될 수 있다.
전자 디바이스 (1562) 는 또한 프로세서 (1570) 와 전자 통신하는 메모리 (1564) 를 포함한다. 즉, 프로세서 (1570) 는 메모리 (1564) 로부터 정보를 판독하고/하거나 메모리 (1564) 에 정보를 기입할 수 있다. 메모리 (1564) 는 전자 정보를 저장할 수 있는 임의의 전자 컴포넌트일 수도 있다. 메모리 (1564) 는, 이들의 조합들을 포함한, 랜덤 액세스 메모리 (RAM), 판독 전용 메모리 (ROM), 자기 디스크 저장 매체, 광 저장 매체, RAM 내의 플래시 메모리 디바이스들, 프로세서와 함께 포함된 온-보드 메모리, 프로그래머블 판독 전용 메모리 (PROM), 소거가능 프로그래머블 판독 전용 메모리 (EPROM), 전기 소거가능 PROM (EEPROM), 레지스터들 등일 수도 있다.
데이터 (1568a) 및 명령들 (1566a) 은 메모리 (1564) 내에 저장될 수도 있다. 명령들 (1566a) 은 하나 이상의 프로그램들, 루틴들 (routines), 서브-루틴들, 함수들, 프로시저들 (procedures), 코드 등을 포함할 수도 있다. 명령들 (1566a) 은 단일 컴퓨터-판독가능 스테이트먼트 (single computer-readable statement) 또는 많은 컴퓨터-판독가능 스테이트먼트들을 포함할 수도 있다. 명령들 (1566a) 은 위에서 설명된 방법들 (400, 500, 900, 1000, 1200, 1300) 을 구현하기 위하여 프로세서 (1570) 에 의해 실행될 수도 있다. 명령들 (1566a) 을 실행하는 것은 메모리 (1564) 에 저장된 데이터 (1568a) 의 사용과 연관될 수도 있다. 도 15 는 프로세서 (1570) 내로 로딩되는 일부 명령들 (1566b) 및 데이터 (1568b) 를 도시한다.
전자 디바이스 (1562) 는 또한 다른 전자 디바이스들과의 통신을 위한 하나 이상의 통신 인터페이스들 (1570) 을 포함할 수도 있다. 통신 인터페이스들 (1570) 은 유선 통신 기술, 무선 통신 기술, 또는 양측 모두에 기초할 수도 있다. 통신 인터페이스들 (1570) 의 상이한 유형들의 예들은 직렬 포트, 병렬 포트, 범용 직렬 버스 (USB), 이더넷 어댑터 (Ethernet adapter), IEEE 1394 버스 인터페이스, 소형 컴퓨터 시스템 인터페이스 (SCSI) 버스 인터페이스, 적외선 (IR) 통신 포트, 청색투스 무선 통신 어댑터 등을 포함한다.
전자 디바이스 (1562) 는 또한 하나 이상의 입력 디바이스들 (1572) 및 하나 이상의 출력 디바이스들 (1574) 을 포함할 수도 있다. 입력 디바이스들 (1572) 의 상이한 종류들의 예들은 키보드, 마우스, 마이크로폰, 원격 제어 디바이스, 버튼, 조이스틱 (joystick), 트랙볼 (trackball), 터치패드 (touchpad), 라이트펜 (lightpen) 등을 포함한다. 출력 디바이스들 (1574) 의 상이한 종류들의 예들은 스피커, 프린터 등을 포함한다. 전자 디바이스 (1562) 에 전통적으로 포함될 수도 있는 출력 디바이스의 하나의 특정한 유형은 디스플레이 디바이스 (1576) 이다. 본원에서 개시된 구성들과 함께 사용된 디스플레이 디바이스 (1576) 들은 음극선관 (CRT), 액정 디스플레이 (LCD), 발광 다이오드 (LED), 가스 플라즈마, 전계발광 (electroluminescence) 등과 같은 임의의 적합한 이미지 프로젝션 기술을 활용할 수도 있다. 디스플레이 제어기 (1578) 가 또한 메모리 (1564) 내에 저장된 데이터를 디스플레이 디바이스 (1576) 상에 보여진 텍스트, 그래픽 및/또는 움직이는 이미지들로 (적절하게) 변환하기 위하여 제공될 수도 있다.
전자 디바이스 (1562) 의 다양한 컴포넌트들은, 파워 버스, 제어 신호 버스, 상태 신호 버스, 데이터 버스 등을 포함할 수도 있는, 하나 이상의 버스들에 의해 함께 결합될 수도 있다. 단순화를 위해, 다양한 버스들은 버스 시스템 (1580) 으로서 도 15 에 도시된다. 도 15 는 전자 디바이스 (1562) 의 단지 하나의 가능한 구성을 도시하였다는 것에 유의해야 한다. 다양한 다른 아키텍처들 및 컴포넌트들이 활용될 수도 있다.
도 16 은 무선 통신 디바이스 (1682) 내에 포함될 수도 있는 일정한 컴포넌트들을 도시한다. 이전에 설명된 무선 통신 디바이스들은 도 16 에 도시된 무선 통신 디바이스 (1682) 와 유사하게 구성될 수도 있다. 무선 통신 디바이스 (1682) 는 프로세서 (1698) 를 포함한다. 프로세서 (1698) 는 범용 단일- 또는 멀티-칩 마이크로프로세서 (예를 들면, ARM), 특수 목적 마이크로프로세서 (예를 들면, 디지털 신호 프로세서 (DSP)), 마이크로제어기, 프로그래머블 게이트 어레이 등일 수도 있다. 프로세서 (1698) 는 중앙 처리 유닛 (CPU) 로서 지칭될 수도 있다. 도 16 의 무선 통신 디바이스 (1682) 에서 단지 단일 프로세서 (1698) 만이 도시되었지만, 대안적 구성, 프로세서들 (예를 들면, ARM 및 DSP) 의 조합이 사용될 수 있다.
무선 통신 디바이스 (1682) 는 또한 프로세서 (1698) (즉, 메모리 (1684) 로부터 정보를 판독하고/하거나 메모리 (1684) 에 정보를 기입할 수 있는 프로세서 (1698)) 와 전자 통신하는 메모리 (1684) 를 포함한다. 메모리 (1684) 는 전자 정보를 저장할 수 있는 임의의 전자 컴포넌트일 수도 있다. 메모리 (1684) 는, 이들의 조합들을 포함한, 랜덤 액세스 메모리 (RAM), 판독 전용 메모리 (ROM), 자기 디스크 저장 매체, 광 저장 매체, RAM 내의 플래시 메모리 디바이스들, 프로세서와 함께 포함된 온보드 메모리, 프로그래머블 판독 전용 메모리 (PROM), 소거가능 프로그래머블 판독 전용 메모리 (EPROM), 전기 소거가능 PROM (EEPROM), 레지스터들 등일 수도 있다.
데이터 (1686a) 및 명령들 (1688a) 은 메모리 (1684) 내에 저장될 수도 있다. 명령들 (1688a) 은 하나 이상의 프로그램들, 루틴들, 서브-루틴들, 함수들, 프로시저들 등을 포함할 수도 있다. 명령들 (1688a) 은 단일 컴퓨터-판독가능 스테이트먼트 또는 많은 컴퓨터-판독가능 스테이트먼트들을 포함할 수도 있다. 명령들 (1688a) 은 위에서 설명된 방법들 (400, 500, 900, 1000, 1200, 1300) 을 구현하기 위하여 프로세서 (1698) 에 의해 실행될 수도 있다. 명령들 (1688a) 을 실행하는 것은 메모리 (1684) 에 저장된 데이터 (1686a) 의 사용과 연관될 수도 있다. 도 16 은 프로세서 (1698) 내로 로딩되는 일부 명령들 (1688b) 및 데이터 (1686b) 를 도시한다.
무선 통신 디바이스 (1682) 는 또한 무선 통신 디바이스 (1682) 와 원격 로케이션 (예를 들면, 기지국 또는 다른 무선 통신 디바이스) 사이의 신호들의 송신 및 수신을 허용하기 위하여 송신기 (1694) 와 수신기 (1696) 를 포함할 수도 있다. 송신기 (1694) 와 수신기 (1696) 는 집합적으로 송수신기 (1692) 로서 지칭될 수도 있다. 안테나 (1690) 는 송수신기 (1692) 에 전기적으로 결합될 수도 있다. 무선 통신 디바이스 (1682) 는 또한 다수의 송신기들, 다수의 수신기들, 다수의 송수신기들 및/또는 다수의 안테나를 포함할 수도 있다 (미도시).
무선 통신 디바이스 (1682) 의 다양한 컴포넌트들은 파워 버스, 제어 신호 버스, 상태 신호 버스, 데이터 버스 등을 포함할 수도 있는, 하나 이상의 버스들에 의해 함께 결합될 수도 있다. 단순화를 위해, 다양한 버스들은 버스 시스템 (1601) 으로서 도 16 에 도시된다.
위의 설명에서, 참조 번호들은 때때로 다양한 용어들과 관련되어 사용되었다. 용어가 참조 번호와 관련되어 사용된 경우, 이것은 도면들의 하나 이상에서 도시된 특정 엘리먼트를 지칭하고자 할 의도였을 수도 있다. 용어가 참조 번호없이 사용된 경우, 이것은 임의의 특정 도면에 대한 제한 없이 일반적으로 용어를 지칭하고자 할 의도였을 수도 있다.
용어 "판정하는 (determining)" 은 매우 다양한 액션들을 포함하며, 그러므로, "판정하는" 은 산출하는 (calculating), 계산하는 (computing), 처리하는 (processing), 유도하는 (deriving), 조사하는 (investigating), 검색하는 (looking up) (예를 들면, 표, 데이터베이스 또는 다른 데이터 구조를 검색하는), 확인하는 (ascertaining) 등을 포함할 수 있다. 또한, "판정하는" 은 수신하는 (receiving) (예를 들면, 정보를 수신하는), 액세스하는 (accessing) (예를 들면, 메모리내의 데이터를 액세스하는) 등을 포함할 수 있다. 또한, "판정하는" 은 해결하는 (resolving), 선택하는 (selecting), 선정하는 (choosing), 확립하는 (establishing) 등을 포함할 수도 있다.
달리 명확히 명시되지 않는 한, 구절 "기초하는 (based on)" 은 "오직 기초하는 (based only on)" 을 의미하지 않는다. 다르게 말하면, 구절 "기초하는" 은 "오직 기초하는" 및 "적어도 기초하는" 양측 모두를 설명한다.
본원에서 설명된 함수들은 프로세서-판독가능한 또는 컴퓨터-판독가능한 매체상에 하나 이상의 명령들로서 저장될 수도 있다. 용어 "컴퓨터-판독가능한 매체" 는 컴퓨터 또는 프로세서에 의해 액세스될 수 있는 임의의 이용가능한 매체를 지칭한다. 비한정적 예로서, 그러한 매체는 RAM, ROM, EEPROM, 플래시 메모리, CD-ROM 또는 다른 광 디스크 스토리지, 자기 디스크 스토리지 또는 다른 자기 스토리지 디바이스들, 또는 원하는 프로그램 코드를 명령들 또는 데이터 구조들의 형태로 저장하기 위해 사용될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수도 있다. 본원에서 사용된 디스크 (disk) 와 디스크 (disc) 는 콤팩트 디스크 (compact disc; CD), 레이저 디스크 (laser disc), 광 디스크 (optical disc), 디지털 다용도 디스크 (digital versatile disc; DVD), 플로피 디스크 (floppy disk) 및
Figure pct00001
디스크를 포함하며, 여기서 디스크들 (disks) 은 보통 자기적으로 데이터를 재생하며 디스크들 (discs) 은 레이저를 이용하여 광학적으로 데이터를 재생한다. 컴퓨터-판독가능한 매체는 유형의 비-일시적 매체일 수도 있다는 것에 유의해야 한다. 용어 "컴퓨터-프로그램 제품" 은 컴퓨딩 디바이스 또는 프로세서에 의해 실행되거나, 처리되거나 계산될 수도 있는 코드 또는 명령들 (예를 들면, "프로그램") 과 결합된 컴퓨딩 디바이스 또는 프로세서를 지칭한다. 본원에서 사용된 바와 같이, 용어 "코드" 는 컴퓨딩 디바이스 또는 프로세서에 의해 실행가능한 소프트웨어, 명령들, 코드 또는 데이터를 지칭할 수도 있다.
소프트웨어 또는 명령들은 또한 송신 매체를 통하여 송신될 수도 있다. 예를 들면, 소프트웨어가 동축 케이블, 광섬유 케이블, 연선, 디지털 가입자 회선 (DSL), 또는 적외선, 라디오 및 마이크로웨이브와 같은 무선 기술들을 이용하여 웹사이트, 서버 또는 다른 원격 소스로부터 송신되면, 동축 케이블, 광섬유 케이블, 연선, DSL, 또는 적외선, 라디오 및 마이크로웨이브와 같은 무선 기술들은 송신 매체의 정의에 포함된다.
본원에서 개시된 방법들은 원하는 방법을 달성하기 위한 하나 이상의 단계들 또는 액션들을 포함한다. 방법 단계들 및/또는 액션들은 청구항들의 범위를 벗어나지 않고 서로 교환될 수도 있다. 다르게 말하면, 설명되는 방법의 적절한 동작을 위해 단계들 또는 액션들의 특정 순서가 요구되지 않는 한, 특정 단계들 및/또는 액션들의 순서 및/또는 사용은 청구항들의 범위를 벗어나지 않고 수정될 수도 있다.
청구항들은 위에서 도시된 정밀한 구성 및 컴포넌트들에 제한되지 않는다는 것이 이해되어야 한다. 본원에서 설명된 시스템들, 방법들 및 장치들의 배치, 동작 및 상세한 내역들에서의 다양한 수정들, 변경들 및 변화들은 청구항들의 범위를 벗어나지 않고 이루어질 수도 있다.

Claims (52)

  1. 인터페이스를 제공하도록 구성된 컴퓨팅 디바이스로서,
    프로세서;
    상기 프로세서와 전자 통신하는 메모리; 및
    상기 메모리에 저장된 명령들을 포함하고,
    상기 명령들은,
    프로젝터로부터 투영된 이미지를 투영하고;
    가시적 스펙트럼에서 동작하는 카메라를 이용하여 이미지를 캡처하고;
    상기 컴퓨팅 디바이스를 캘리브레이션하고;
    손을 검출하고;
    검색 공간에서 트랙킹 패턴에 기초하여 상기 손을 트랙킹하고; 그리고
    동작을 수행하도록
    실행가능한, 인터페이스를 제공하도록 구성된 컴퓨팅 디바이스.
  2. 제 1 항에 있어서,
    상기 컴퓨팅 디바이스를 캘리브레이션하는 것은,
    상기 투영된 이미지의 코너들을 발견하고; 그리고
    상기 투영된 이미지의 좌표들을 데스크톱 공간으로 맵핑하는 것을 포함하는, 인터페이스를 제공하도록 구성된 컴퓨팅 디바이스.
  3. 제 1 항에 있어서,
    상기 컴퓨팅 디바이스를 캘리브레이션하는 것은 손 사이즈를 판정하는 것을 포함하는, 인터페이스를 제공하도록 구성된 컴퓨팅 디바이스.
  4. 제 3 항에 있어서,
    상기 손 사이즈는 상기 투영된 이미지에 기초하여 판정되며, 상기 투영된 이미지는 복수의 타원들을 포함하는, 인터페이스를 제공하도록 구성된 컴퓨팅 디바이스.
  5. 제 3 항에 있어서,
    상기 손 사이즈는 얼굴 인식에 기초하여 판정되는, 인터페이스를 제공하도록 구성된 컴퓨팅 디바이스.
  6. 제 1 항에 있어서,
    상기 손은 초기 상호작용 영역에서 검출되는, 인터페이스를 제공하도록 구성된 컴퓨팅 디바이스.
  7. 제 6 항에 있어서,
    상기 명령들은,
    몸을 트랙킹하고; 및
    상기 몸의 트랙킹에 기초하여 상기 초기 상호작용 영역을 이동시키도록 더 실행가능한, 인터페이스를 제공하도록 구성된 컴퓨팅 디바이스.
  8. 제 1 항에 있어서,
    상기 명령들은 상기 트랙킹 패턴이 손에 매칭된다고 판정하도록 더 실행가능한, 인터페이스를 제공하도록 구성된 컴퓨팅 디바이스.
  9. 제 1 항에 있어서,
    상기 명령들은 상기 손의 움직임에 기초하여 상기 검색 공간을 동적으로 변경하도록 더 실행가능한, 인터페이스를 제공하도록 구성된 컴퓨팅 디바이스.
  10. 제 1 항에 있어서,
    상기 트랙킹 패턴은, 직사각형의 옅은 외부 영역들이 3 개의 면들에 접해 있고 직사각형의 짙은 외부 영역이 1 개의 면에 접해 있는, 직사각형의 중심이 짙은 영역을 포함하는, 인터페이스를 제공하도록 구성된 컴퓨팅 디바이스.
  11. 제 1 항에 있어서,
    상기 동작은 상기 손의 트랙킹에 기초하여 수행되는, 인터페이스를 제공하도록 구성된 컴퓨팅 디바이스.
  12. 제 1 항에 있어서,
    상기 명령들은 제스처 패턴에 기초하여 손 제스처를 인식하도록 더 실행가능한, 인터페이스를 제공하도록 구성된 컴퓨팅 디바이스.
  13. 제 12 항에 있어서,
    상기 손 제스처를 인식하는 것은,
    트랙킹된 손이 일정 기간 동안 이동을 중단하였는지의 여부를 판정하고; 그리고
    트랙킹된 손 이미지를 고정된 사이즈로 스케일링하는 것을 더 포함하는, 인터페이스를 제공하도록 구성된 컴퓨팅 디바이스.
  14. 제 12 항에 있어서,
    상기 제스처 패턴은 직사각형의 옅은 외부 영역들이 2 개의 면들에 접해 있는 직사각형의 중심이 짙은 영역을 포함하는, 인터페이스를 제공하도록 구성된 컴퓨팅 디바이스.
  15. 제 12 항에 있어서,
    상기 명령들은 상기 인식된 손 제스처에 기초하여 동작을 수행하도록 더 실행가능한, 인터페이스를 제공하도록 구성된 컴퓨팅 디바이스.
  16. 제 12 항에 있어서,
    상기 명령들은 상기 손 제스처가 일정 퍼센티지의 다수의 프레임들에 대해 인식될 경우에 동작을 수행하도록 더 실행가능한, 인터페이스를 제공하도록 구성된 컴퓨팅 디바이스.
  17. 제 12 항에 있어서,
    상기 손 제스처는 엄지 손가락과 집게손가락 사이의 각도에 기초하여 인식되며, 상기 명령들은 상기 엄지 손가락과 집게손가락 사이의 각도에 기초하여 커서를 상기 손으로부터 떨어져서 이동시키도록 더 실행가능한, 인터페이스를 제공하도록 구성된 컴퓨팅 디바이스.
  18. 제 1 항에 있어서,
    상기 명령들은 상기 투영된 이미지를 손 주위의 영역에서 더 밝게 밝히도록 더 실행가능한, 인터페이스를 제공하도록 구성된 컴퓨팅 디바이스.
  19. 제 1 항에 있어서,
    상기 명령들은 복수의 손들을 트랙킹하도록 더 실행가능한, 인터페이스를 제공하도록 구성된 컴퓨팅 디바이스.
  20. 제 1 항에 있어서,
    상기 명령들은 복수의 손 제스처들을 인식하도록 더 실행가능한, 인터페이스를 제공하도록 구성된 컴퓨팅 디바이스.
  21. 제 1 항에 있어서,
    상기 명령들은 상기 손의 그림자를 트랙킹하는 것을 회피하기 위하여 상기 손을 트랙킹하기 전에 상기 이미지의 어두운 부분들을 제거하도록 더 실행가능한, 인터페이스를 제공하도록 구성된 컴퓨팅 디바이스.
  22. 제 1 항에 있어서,
    상기 명령들은 상기 투영된 이미지의 영역에서 상기 이미지의 개선된 포커스 및 노출을 제공하도록 더 실행가능한, 인터페이스를 제공하도록 구성된 컴퓨팅 디바이스.
  23. 제 15 항에 있어서,
    상기 동작은 커서를 릴리스하는, 인터페이스를 제공하도록 구성된 컴퓨팅 디바이스.
  24. 인터페이스를 제공하는 방법으로서,
    프로젝터로부터 투영된 이미지를 투영하는 단계;
    가시적 스펙트럼에서 동작하는 카메라를 이용하여 이미지를 캡처하는 단계;
    컴퓨팅 디바이스를 캘리브레이션하는 단계;
    상기 컴퓨팅 디바이스에 의해 손을 검출하는 단계;
    상기 컴퓨팅 디바이스에 의해 검색 공간에서 트랙킹 패턴에 기초하여 상기 손을 트랙킹하는 단계; 및
    상기 컴퓨팅 디바이스에 의해 동작을 수행하는 단계를 포함하는, 인터페이스를 제공하는 방법.
  25. 제 24 항에 있어서,
    상기 컴퓨팅 디바이스를 캘리브레이션하는 단계는,
    상기 투영된 이미지의 코너들을 발견하는 단계; 및
    상기 투영된 이미지의 좌표들을 데스크톱 공간으로 맵핑하는 단계를 포함하는, 인터페이스를 제공하는 방법.
  26. 제 24 항에 있어서,
    상기 컴퓨팅 디바이스를 캘리브레이션하는 단계는,
    손 사이즈를 판정하는 단계를 포함하는, 인터페이스를 제공하는 방법.
  27. 제 26 항에 있어서,
    상기 손 사이즈는 상기 투영된 이미지에 기초하여 판정되며, 상기 투영된 이미지는 복수의 타원들을 포함하는, 인터페이스를 제공하는 방법.
  28. 제 26 항에 있어서,
    상기 손 사이즈는 얼굴 인식에 기초하여 판정되는, 인터페이스를 제공하는 방법.
  29. 제 24 항에 있어서,
    상기 손은 초기 상호작용 영역에서 검출되는, 인터페이스를 제공하는 방법.
  30. 제 29 항에 있어서,
    몸을 트랙킹하는 단계; 및
    상기 몸 트랙킹에 기초하여 상기 초기 상호작용 영역을 이동시키는 단계를 더 포함하는, 인터페이스를 제공하는 방법.
  31. 제 24 항에 있어서,
    상기 트랙킹 패턴이 손에 매칭된다고 판정하는 단계를 더 포함하는, 인터페이스를 제공하는 방법.
  32. 제 24 항에 있어서,
    상기 손의 움직임에 기초하여 상기 검색 공간을 동적으로 변경하는 단계를 더 포함하는, 인터페이스를 제공하는 방법.
  33. 제 24 항에 있어서,
    상기 트랙킹 패턴은, 직사각형의 옅은 외부 영역들이 3 개의 면들에 접해 있고 직사각형의 짙은 외부 영역이 1 개의 면에 접해 있는, 직사각형의 중심이 짙은 영역을 포함하는, 인터페이스를 제공하는 방법.
  34. 제 24 항에 있어서,
    상기 동작은 상기 손의 트랙킹에 기초하여 수행되는, 인터페이스를 제공하는 방법.
  35. 제 24 항에 있어서,
    제스처 패턴에 기초하여 손 제스처를 인식하는 단계를 더 포함하는, 인터페이스를 제공하는 방법.
  36. 제 35 항에 있어서,
    상기 손 제스처를 인식하는 단계는,
    트랙킹된 손이 일정 기간 동안 이동을 중단하였는지의 여부를 판정하는 단계; 및
    트랙킹된 손 이미지를 고정된 사이즈로 스케일링하는 단계를 더 포함하는, 인터페이스를 제공하는 방법.
  37. 제 35 항에 있어서,
    상기 제스처 패턴은 직사각형의 옅은 외부 영역들이 2 개의 면들에 접해 있는 직사각형의 중심이 짙은 영역을 포함하는, 인터페이스를 제공하는 방법.
  38. 제 35 항에 있어서,
    상기 인식된 손 제스처에 기초하여 동작을 수행하는 단계를 더 포함하는, 인터페이스를 제공하는 방법.
  39. 제 35 항에 있어서,
    상기 손 제스처가 일정 퍼센티지의 다수의 프레임들에 대해 인식될 경우에 동작을 수행하는 단계를 더 포함하는, 인터페이스를 제공하는 방법.
  40. 제 35 항에 있어서,
    상기 손 제스처는 엄지 손가락과 집게손가락 사이의 각도에 기초하여 인식되며, 상기 인터페이스를 제공하는 방법은 상기 엄지 손가락과 집게손가락 사이의 각도에 기초하여 커서를 상기 손으로부터 떨어져서 이동시키는 단계를 더 포함하는, 인터페이스를 제공하는 방법.
  41. 제 24 항에 있어서,
    상기 투영된 이미지를 손 주위의 영역에서 더 밝게 밝히는 단계를 더 포함하는, 인터페이스를 제공하는 방법.
  42. 제 24 항에 있어서,
    복수의 손들을 트랙킹하는 단계를 더 포함하는, 인터페이스를 제공하는 방법.
  43. 제 24 항에 있어서,
    복수의 손 제스처들을 인식하는 단계를 더 포함하는, 인터페이스를 제공하는 방법.
  44. 제 24 항에 있어서,
    상기 손의 그림자를 트랙킹하는 것을 회피하기 위하여 상기 손을 트랙킹하기 전에 상기 이미지의 어두운 부분들을 제거하는 단계를 더 포함하는, 인터페이스를 제공하는 방법.
  45. 제 24 항에 있어서,
    상기 투영된 이미지의 영역에서 상기 이미지의 개선된 포커스 및 노출을 제공하는 단계를 더 포함하는, 인터페이스를 제공하는 방법.
  46. 제 38 항에 있어서,
    상기 동작은 커서를 릴리스하는, 인터페이스를 제공하는 방법.
  47. 인터페이스를 제공하기 위한, 비-일시적인 유형의 컴퓨터-판독가능 매체를 포함하는 컴퓨터-프로그램 제품으로서,
    상기 비-일시적인 유형의 컴퓨터-판독가능 매체는 명령들을 포함하고,
    상기 명령들은,
    컴퓨팅 디바이스로 하여금 프로젝터로부터 투영된 이미지를 투영하게 하는 코드;
    상기 컴퓨팅 디바이스로 하여금 가시적 스펙트럼에서 동작하는 카메라를 이용하여 이미지를 캡처하게 하는 코드;
    상기 컴퓨팅 디바이스로 하여금 상기 컴퓨팅 디바이스를 캘리브레이션하게 하는 코드;
    상기 컴퓨팅 디바이스로 하여금 손을 검출하게 하는 코드;
    상기 컴퓨팅 디바이스로 하여금 검색 공간에서 트랙킹 패턴에 기초하여 상기 손을 트랙킹하게 하는 코드; 및
    상기 컴퓨팅 디바이스로 하여금 동작을 수행하게 하는 코드
    를 포함하는, 비-일시적인 유형의 컴퓨터-판독가능 매체를 포함하는 컴퓨터-프로그램 제품.
  48. 제 47 항에 있어서,
    상기 손은 초기 상호작용 영역에서 검출되는, 비-일시적인 유형의 컴퓨터-판독가능 매체를 포함하는 컴퓨터-프로그램 제품.
  49. 제 47 항에 있어서,
    상기 명령들은 상기 컴퓨팅 디바이스로 하여금 제스처 패턴에 기초하여 손 제스처를 인식하게 하는 코드를 더 포함하는, 비-일시적인 유형의 컴퓨터-판독가능 매체를 포함하는 컴퓨터-프로그램 제품.
  50. 인터페이스를 제공하는 장치로서,
    프로젝터로부터 투영된 이미지를 투영하는 수단;
    가시적 스펙트럼에서 동작하는 카메라를 이용하여 이미지를 캡처하는 수단;
    상기 인터페이스를 제공하는 장치를 캘리브레이션하는 수단;
    손을 검출하는 수단;
    검색 공간에서 트랙킹 패턴에 기초하여 상기 손을 트랙킹하는 수단; 및
    동작을 수행하는 수단을 포함하는, 인터페이스를 제공하는 장치.
  51. 제 50 항에 있어서,
    상기 손은 초기 상호작용 영역에서 검출되는, 인터페이스를 제공하는 장치.
  52. 제 50 항에 있어서,
    제스처 패턴에 기초하여 손 제스처를 인식하는 수단을 더 포함하는, 인터페이스를 제공하는 장치.
KR1020127028675A 2010-04-01 2011-04-01 컴퓨팅 디바이스 인터페이스 KR101457777B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US32015810P 2010-04-01 2010-04-01
US61/320,158 2010-04-01
US13/013,657 2011-01-25
US13/013,657 US8818027B2 (en) 2010-04-01 2011-01-25 Computing device interface
PCT/US2011/031030 WO2011123845A2 (en) 2010-04-01 2011-04-01 A computing device interface

Publications (2)

Publication Number Publication Date
KR20130004357A true KR20130004357A (ko) 2013-01-09
KR101457777B1 KR101457777B1 (ko) 2014-11-03

Family

ID=44709720

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127028675A KR101457777B1 (ko) 2010-04-01 2011-04-01 컴퓨팅 디바이스 인터페이스

Country Status (6)

Country Link
US (1) US8818027B2 (ko)
EP (1) EP2553656A2 (ko)
JP (1) JP5567206B2 (ko)
KR (1) KR101457777B1 (ko)
CN (1) CN102822862B (ko)
WO (1) WO2011123845A2 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101369358B1 (ko) * 2013-08-06 2014-03-04 홍주희 디스플레이 제어 시스템 및 그 기록매체
KR20140116585A (ko) * 2013-03-25 2014-10-06 삼성전자주식회사 동작 인식을 이용하여 가상 피팅 서비스를 제공하는 가상 피팅 장치 및 그 장치를 이용한 방법
KR101984240B1 (ko) * 2018-10-31 2019-09-03 (주)앤트로스 동작 인식을 위한 자동 캘리브레이션 방법 및 시스템
KR20220023681A (ko) * 2020-08-21 2022-03-02 김덕규 투영된 콘텐츠와 인터렉션하기 위한 시스템

Families Citing this family (91)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110317871A1 (en) * 2010-06-29 2011-12-29 Microsoft Corporation Skeletal joint recognition and tracking system
EP2421251A1 (en) * 2010-08-17 2012-02-22 LG Electronics Display device and control method thereof
US20120081391A1 (en) * 2010-10-05 2012-04-05 Kar-Han Tan Methods and systems for enhancing presentations
US8861797B2 (en) 2010-11-12 2014-10-14 At&T Intellectual Property I, L.P. Calibrating vision systems
US20120139827A1 (en) * 2010-12-02 2012-06-07 Li Kevin A Method and apparatus for interacting with projected displays using shadows
EP2671134A1 (en) * 2011-02-04 2013-12-11 Koninklijke Philips N.V. Gesture controllable system uses proprioception to create absolute frame of reference
JP2012173911A (ja) * 2011-02-21 2012-09-10 Seiko Epson Corp 画像生成装置、プロジェクターおよび画像生成方法
US9857868B2 (en) 2011-03-19 2018-01-02 The Board Of Trustees Of The Leland Stanford Junior University Method and system for ergonomic touch-free interface
US8840466B2 (en) 2011-04-25 2014-09-23 Aquifi, Inc. Method and system to create three-dimensional mapping in a two-dimensional game
US20140055400A1 (en) 2011-05-23 2014-02-27 Haworth, Inc. Digital workspace ergonomics apparatuses, methods and systems
US9086794B2 (en) * 2011-07-14 2015-07-21 Microsoft Technology Licensing, Llc Determining gestures on context based menus
US9030445B2 (en) 2011-10-07 2015-05-12 Qualcomm Incorporated Vision-based interactive projection system
JP5904754B2 (ja) * 2011-10-17 2016-04-20 キヤノン株式会社 情報処理システム、情報処理装置、それらの制御方法、およびプログラム
TW201322058A (zh) * 2011-11-16 2013-06-01 Chunghwa Picture Tubes Ltd 手勢辨識系統及方法
JP5917116B2 (ja) * 2011-12-06 2016-05-11 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、およびプログラム
US8874657B2 (en) * 2012-04-27 2014-10-28 Seiko Epson Corporation Method for securely distributing meeting data from interactive whiteboard projector
WO2013108268A1 (en) * 2012-01-18 2013-07-25 Abhishek Kumar Tiwari System and method for headphone coupled with a handheld device
GB2499979A (en) * 2012-01-20 2013-09-11 Light Blue Optics Ltd Touch-sensitive image display devices
US8854433B1 (en) 2012-02-03 2014-10-07 Aquifi, Inc. Method and system enabling natural user interface gestures with an electronic system
US20130229345A1 (en) * 2012-03-01 2013-09-05 Laura E. Day Manual Manipulation of Onscreen Objects
US9141197B2 (en) 2012-04-16 2015-09-22 Qualcomm Incorporated Interacting with a device using gestures
WO2013166513A2 (en) * 2012-05-04 2013-11-07 Oblong Industries, Inc. Cross-user hand tracking and shape recognition user interface
US9122378B2 (en) * 2012-05-07 2015-09-01 Seiko Epson Corporation Image projector device
US9587804B2 (en) * 2012-05-07 2017-03-07 Chia Ming Chen Light control systems and methods
US20130300831A1 (en) * 2012-05-11 2013-11-14 Loren Mavromatis Camera scene fitting of real world scenes
US9619036B2 (en) * 2012-05-11 2017-04-11 Comcast Cable Communications, Llc System and methods for controlling a user experience
US9262068B2 (en) * 2012-05-31 2016-02-16 Opportunity Partners Inc. Interactive surface
US10114609B2 (en) 2012-05-31 2018-10-30 Opportunity Partners Inc. Computing interface for users with disabilities
JP5935529B2 (ja) 2012-06-13 2016-06-15 ソニー株式会社 画像処理装置、画像処理方法、およびプログラム
JP5991039B2 (ja) * 2012-06-18 2016-09-14 株式会社リコー 情報処理装置および会議システム
US8837780B2 (en) * 2012-06-22 2014-09-16 Hewlett-Packard Development Company, L.P. Gesture based human interfaces
US8934675B2 (en) 2012-06-25 2015-01-13 Aquifi, Inc. Systems and methods for tracking human hands by performing parts based template matching using images from multiple viewpoints
US9111135B2 (en) * 2012-06-25 2015-08-18 Aquifi, Inc. Systems and methods for tracking human hands using parts based template matching using corresponding pixels in bounded regions of a sequence of frames that are a specified distance interval from a reference camera
US9874977B1 (en) * 2012-08-07 2018-01-23 Amazon Technologies, Inc. Gesture based virtual devices
US8836768B1 (en) 2012-09-04 2014-09-16 Aquifi, Inc. Method and system enabling natural user interface gestures with user wearable glasses
US8955982B2 (en) * 2012-09-25 2015-02-17 Microvision, Inc. Virtual segmentation of interactive scanning laser projector display
US8836222B1 (en) 2012-11-09 2014-09-16 Google Inc. Method, apparatus and system for adaptive light projection
US9412053B1 (en) 2012-11-09 2016-08-09 Google Inc. Method, apparatus and system for projecting light for user guidance
US10126820B1 (en) * 2012-11-29 2018-11-13 Amazon Technologies, Inc. Open and closed hand detection
CN102981623B (zh) * 2012-11-30 2016-05-18 深圳先进技术研究院 触发输入指令的方法及系统
US9904414B2 (en) * 2012-12-10 2018-02-27 Seiko Epson Corporation Display device, and method of controlling display device
JP6255810B2 (ja) * 2013-09-06 2018-01-10 セイコーエプソン株式会社 表示装置、及び、表示装置の制御方法
TWI454968B (zh) * 2012-12-24 2014-10-01 Ind Tech Res Inst 三維互動裝置及其操控方法
WO2014105012A1 (en) * 2012-12-27 2014-07-03 Thomson Licensing System and method for gesture based touchscreen control of displays
JP2014145813A (ja) * 2013-01-28 2014-08-14 Funai Electric Co Ltd プロジェクタ
US9129155B2 (en) 2013-01-30 2015-09-08 Aquifi, Inc. Systems and methods for initializing motion tracking of human hands using template matching within bounded regions determined using a depth map
US9092665B2 (en) * 2013-01-30 2015-07-28 Aquifi, Inc Systems and methods for initializing motion tracking of human hands
US11861561B2 (en) 2013-02-04 2024-01-02 Haworth, Inc. Collaboration system including a spatial event map
US10304037B2 (en) 2013-02-04 2019-05-28 Haworth, Inc. Collaboration system including a spatial event map
US9298266B2 (en) 2013-04-02 2016-03-29 Aquifi, Inc. Systems and methods for implementing three-dimensional (3D) gesture based graphical user interfaces (GUI) that incorporate gesture reactive interface objects
US9609262B2 (en) * 2013-06-27 2017-03-28 Intel Corporation Device for adaptive projection
US20150370441A1 (en) * 2014-06-23 2015-12-24 Infosys Limited Methods, systems and computer-readable media for converting a surface to a touch surface
US9798388B1 (en) 2013-07-31 2017-10-24 Aquifi, Inc. Vibrotactile system to augment 3D input systems
US9448689B2 (en) * 2013-08-30 2016-09-20 Paypal, Inc. Wearable user device enhanced display system
US9857971B2 (en) * 2013-12-02 2018-01-02 Industrial Technology Research Institute System and method for receiving user input and program storage medium thereof
US9507417B2 (en) 2014-01-07 2016-11-29 Aquifi, Inc. Systems and methods for implementing head tracking based graphical user interfaces (GUI) that incorporate gesture reactive interface objects
US9619105B1 (en) 2014-01-30 2017-04-11 Aquifi, Inc. Systems and methods for gesture based interaction with viewpoint dependent user interfaces
JP6349811B2 (ja) * 2014-03-17 2018-07-04 セイコーエプソン株式会社 映像信号出力装置、映像信号出力方法、及びプログラム
JP6292007B2 (ja) * 2014-04-28 2018-03-14 富士通株式会社 画像検索装置、画像検索方法及びプログラム
CN106796020A (zh) 2014-04-29 2017-05-31 陈家铭 灯控系统和方法
US9740338B2 (en) * 2014-05-22 2017-08-22 Ubi interactive inc. System and methods for providing a three-dimensional touch screen
JP6385729B2 (ja) * 2014-06-13 2018-09-05 株式会社東芝 画像処理装置および画像投影装置
EP3163421A4 (en) * 2014-06-24 2018-06-13 Sony Corporation Information processing device, information processing method, and program
CN104267802A (zh) * 2014-08-29 2015-01-07 福州瑞芯微电子有限公司 人机交互式虚拟触控装置、系统及方法
US20180101277A9 (en) * 2014-09-24 2018-04-12 Evan John Kaye Skin Touchpad
US9710160B2 (en) 2014-10-21 2017-07-18 International Business Machines Corporation Boundless projected interactive virtual desktop
DE102014224618A1 (de) * 2014-12-02 2016-06-02 Robert Bosch Gmbh Verfahren und Vorrichtung zum Betreiben einer Eingabevorrichtung
CN106033257B (zh) * 2015-03-18 2019-05-31 联想(北京)有限公司 一种控制方法和装置
US9715213B1 (en) * 2015-03-24 2017-07-25 Dennis Young Virtual chess table
EP3292524B1 (en) 2015-05-06 2020-07-08 Haworth, Inc. Virtual workspace viewport follow mode in collaboration systems
US10255023B2 (en) 2016-02-12 2019-04-09 Haworth, Inc. Collaborative electronic whiteboard publication process
US10043066B2 (en) * 2016-08-17 2018-08-07 Intel Corporation Gesture masking in a video feed
US11226704B2 (en) * 2016-09-29 2022-01-18 Sony Group Corporation Projection-based user interface
USD819684S1 (en) * 2016-11-04 2018-06-05 Microsoft Corporation Display screen with graphical user interface
CN106708256B (zh) * 2016-11-14 2018-05-25 北京视据科技有限公司 基于opencv和easyar的虚拟按键触发方法
CN108304759A (zh) * 2017-01-11 2018-07-20 神盾股份有限公司 识别手指的方法和电子装置
US10515474B2 (en) 2017-01-19 2019-12-24 Mindmaze Holding Sa System, method and apparatus for detecting facial expression in a virtual reality system
US20190025919A1 (en) * 2017-01-19 2019-01-24 Mindmaze Holding Sa System, method and apparatus for detecting facial expression in an augmented reality system
US10943100B2 (en) 2017-01-19 2021-03-09 Mindmaze Holding Sa Systems, methods, devices and apparatuses for detecting facial expression
JP6822209B2 (ja) * 2017-02-24 2021-01-27 セイコーエプソン株式会社 プロジェクターおよびプロジェクターの制御方法
CN109558000B (zh) * 2017-09-26 2021-01-22 京东方科技集团股份有限公司 一种人机交互方法及电子设备
US10705673B2 (en) * 2017-09-30 2020-07-07 Intel Corporation Posture and interaction incidence for input and output determination in ambient computing
US11934637B2 (en) 2017-10-23 2024-03-19 Haworth, Inc. Collaboration system including markers identifying multiple canvases in multiple shared virtual workspaces
US11126325B2 (en) 2017-10-23 2021-09-21 Haworth, Inc. Virtual workspace including shared viewport markers in a collaboration system
JP6765545B2 (ja) * 2017-12-22 2020-10-07 ベイジン センスタイム テクノロジー デベロップメント カンパニー, リミテッド 動的ジェスチャ認識方法および装置、ジェスチャ対話制御方法および装置
US11328533B1 (en) 2018-01-09 2022-05-10 Mindmaze Holding Sa System, method and apparatus for detecting facial expression for motion capture
CN108053836B (zh) * 2018-01-18 2021-03-23 成都嗨翻屋科技有限公司 一种基于深度学习的音频自动化标注方法
US11064219B2 (en) * 2018-12-03 2021-07-13 Cloudinary Ltd. Image format, systems and methods of implementation thereof, and image processing
US11573694B2 (en) 2019-02-25 2023-02-07 Haworth, Inc. Gesture based workflows in a collaboration system
CN112422933A (zh) * 2019-08-21 2021-02-26 台达电子工业股份有限公司 投影装置、投影系统以及运行方法
US11750672B2 (en) 2020-05-07 2023-09-05 Haworth, Inc. Digital workspace sharing over one or more display clients in proximity of a main client

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5936615A (en) * 1996-09-12 1999-08-10 Digital Equipment Corporation Image-based touchscreen
AU8141198A (en) 1997-06-20 1999-01-04 Holoplex, Inc. Methods and apparatus for gesture recognition
JP3968477B2 (ja) * 1997-07-07 2007-08-29 ソニー株式会社 情報入力装置及び情報入力方法
US6600480B2 (en) 1998-12-31 2003-07-29 Anthony James Francis Natoli Virtual reality keyboard system and method
US6614422B1 (en) 1999-11-04 2003-09-02 Canesta, Inc. Method and apparatus for entering data using a virtual input device
US6545670B1 (en) * 1999-05-11 2003-04-08 Timothy R. Pryor Methods and apparatus for man machine interfaces and related activity
US6275214B1 (en) 1999-07-06 2001-08-14 Karl C. Hansen Computer presentation system and method with optical tracking of wireless pointer
US6663491B2 (en) 2000-02-18 2003-12-16 Namco Ltd. Game apparatus, storage medium and computer program that adjust tempo of sound
US6624833B1 (en) 2000-04-17 2003-09-23 Lucent Technologies Inc. Gesture-based input interface system with shadow detection
US7227526B2 (en) 2000-07-24 2007-06-05 Gesturetek, Inc. Video-based image control system
JP4154847B2 (ja) 2000-09-26 2008-09-24 コニカミノルタビジネステクノロジーズ株式会社 画像処理装置、画像処理方法および画像処理プログラムを記録したコンピュータ読取可能な記録媒体
JP2003108305A (ja) 2001-09-28 2003-04-11 Fuji Photo Optical Co Ltd プレゼンテーションシステム
US20050122308A1 (en) 2002-05-28 2005-06-09 Matthew Bell Self-contained interactive video display system
US7710391B2 (en) 2002-05-28 2010-05-04 Matthew Bell Processing an image utilizing a spatially varying pattern
US7665041B2 (en) 2003-03-25 2010-02-16 Microsoft Corporation Architecture for controlling a computer using hand gestures
DE602004006190T8 (de) * 2003-03-31 2008-04-10 Honda Motor Co., Ltd. Vorrichtung, Verfahren und Programm zur Gestenerkennung
WO2005104010A2 (en) 2004-04-15 2005-11-03 Gesture Tek, Inc. Tracking bimanual movements
US8508710B2 (en) * 2004-12-02 2013-08-13 Hewlett-Packard Development Company, L.P. Display panel
HUE049974T2 (hu) 2005-01-07 2020-11-30 Qualcomm Inc Képeken lévõ objektumok észlelése és követése
JP4689684B2 (ja) 2005-01-21 2011-05-25 ジェスチャー テック,インコーポレイテッド 動作に基づくトラッキング
WO2007088942A1 (ja) 2006-02-03 2007-08-09 Matsushita Electric Industrial Co., Ltd. 入力装置、及びその方法
US8125526B2 (en) 2006-02-03 2012-02-28 Olympus Imaging Corp. Camera for selecting an image from a plurality of images based on a face portion and contour of a subject in the image
US8106884B2 (en) 2006-03-20 2012-01-31 Samsung Electronics Co., Ltd. Pointing input device, method, and system using image pattern
US9696808B2 (en) * 2006-07-13 2017-07-04 Northrop Grumman Systems Corporation Hand-gesture recognition method
US7701439B2 (en) * 2006-07-13 2010-04-20 Northrop Grumman Corporation Gesture recognition simulation system and method
US7907117B2 (en) * 2006-08-08 2011-03-15 Microsoft Corporation Virtual controller for visual displays
EP2124139A4 (en) 2006-12-22 2013-01-09 Panasonic Corp USER INTERFACE DEVICE
US8726194B2 (en) * 2007-07-27 2014-05-13 Qualcomm Incorporated Item selection using enhanced control
JP4991458B2 (ja) 2007-09-04 2012-08-01 キヤノン株式会社 画像表示装置及びその制御方法
US9377874B2 (en) 2007-11-02 2016-06-28 Northrop Grumman Systems Corporation Gesture recognition light and video image projector
US8514251B2 (en) * 2008-06-23 2013-08-20 Qualcomm Incorporated Enhanced character input using recognized gestures
WO2010011923A1 (en) 2008-07-24 2010-01-28 Gesturetek, Inc. Enhanced detection of circular engagement gesture
CN101650624B (zh) * 2008-08-13 2012-07-18 英属维京群岛速位互动股份有限公司 图形化使用者界面的操控装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140116585A (ko) * 2013-03-25 2014-10-06 삼성전자주식회사 동작 인식을 이용하여 가상 피팅 서비스를 제공하는 가상 피팅 장치 및 그 장치를 이용한 방법
KR101369358B1 (ko) * 2013-08-06 2014-03-04 홍주희 디스플레이 제어 시스템 및 그 기록매체
KR101984240B1 (ko) * 2018-10-31 2019-09-03 (주)앤트로스 동작 인식을 위한 자동 캘리브레이션 방법 및 시스템
KR20220023681A (ko) * 2020-08-21 2022-03-02 김덕규 투영된 콘텐츠와 인터렉션하기 위한 시스템
KR20230054806A (ko) * 2020-08-21 2023-04-25 김덕규 콘텐츠와 인터렉션하기 위한 빔 프로젝터

Also Published As

Publication number Publication date
JP5567206B2 (ja) 2014-08-06
WO2011123845A3 (en) 2012-06-28
CN102822862A (zh) 2012-12-12
EP2553656A2 (en) 2013-02-06
US20110243380A1 (en) 2011-10-06
JP2013524354A (ja) 2013-06-17
US8818027B2 (en) 2014-08-26
WO2011123845A2 (en) 2011-10-06
KR101457777B1 (ko) 2014-11-03
CN102822862B (zh) 2016-03-30

Similar Documents

Publication Publication Date Title
KR101457777B1 (ko) 컴퓨팅 디바이스 인터페이스
US11003253B2 (en) Gesture control of gaming applications
US9690388B2 (en) Identification of a gesture
US10146298B2 (en) Enhanced handheld screen-sensing pointer
US9600078B2 (en) Method and system enabling natural user interface gestures with an electronic system
Molyneaux et al. Interactive environment-aware handheld projectors for pervasive computing spaces
CN105022498B (zh) 电子装置及其方法
US20150331491A1 (en) System and method for gesture based touchscreen control of displays
US9632592B1 (en) Gesture recognition from depth and distortion analysis
GB2474536A (en) Computer vision gesture based control by hand shape recognition and object tracking
US20170214862A1 (en) Projection video display device and control method thereof
Dai et al. Touchscreen everywhere: On transferring a normal planar surface to a touch-sensitive display
WO2018000519A1 (zh) 一种基于投影的用户交互图标的交互控制方法及系统
US20140053115A1 (en) Computer vision gesture based control of a device
JP2004246578A (ja) 自己画像表示を用いたインタフェース方法、装置、およびプログラム
CN111527468A (zh) 一种隔空交互方法、装置和设备
JP2012238293A (ja) 入力装置
Dai et al. Making any planar surface into a touch-sensitive display by a mere projector and camera
CN103543825B (zh) 摄像机光标系统
KR20160063075A (ko) 공간 인터랙션에서 모션 인식 방법 및 이를 위한 장치
Liang et al. Turn any display into a touch screen using infrared optical technique
CN108227923A (zh) 一种基于体感技术的虚拟触控系统和方法
CN113542832B (zh) 显示控制方法、显示装置及计算机可读存储介质
Forutanpour et al. ProJest: Enabling Higher Levels of Collaboration Using Today’s Mobile Devices
Huang et al. Air Manipulation: A Manipulation System using Wearable Device of Camera Glasses in Smart Mobile Projector

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
FPAY Annual fee payment

Payment date: 20170929

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee