KR101247991B1 - 사용자 인터페이스 제어를 위한 카메라 제스처들 - Google Patents

사용자 인터페이스 제어를 위한 카메라 제스처들 Download PDF

Info

Publication number
KR101247991B1
KR101247991B1 KR1020117000451A KR20117000451A KR101247991B1 KR 101247991 B1 KR101247991 B1 KR 101247991B1 KR 1020117000451 A KR1020117000451 A KR 1020117000451A KR 20117000451 A KR20117000451 A KR 20117000451A KR 101247991 B1 KR101247991 B1 KR 101247991B1
Authority
KR
South Korea
Prior art keywords
feature points
camera
movement
delete delete
shift
Prior art date
Application number
KR1020117000451A
Other languages
English (en)
Other versions
KR20110016994A (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 KR20110016994A publication Critical patent/KR20110016994A/ko
Application granted granted Critical
Publication of KR101247991B1 publication Critical patent/KR101247991B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/0304Detection arrangements using opto-electronic means
    • 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
    • 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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • User Interface Of Digital Computer (AREA)
  • Image Analysis (AREA)
  • Position Input By Displaying (AREA)

Abstract

3차원적인 사용자 인터페이스를 통한 내비게이션을 제어하기 위해서 디지털 카메라로부터 캡처된 이미지들을 이용하는 시스템 및 방법이 개시된다. 상기 카메라에 의해 캡처된 이미지들의 연속된 프레임들을 통해서 추적되는 특징 포인트들을 식별하기 위해서 일련의 이미지들이 검사될 수 있을 것이다. 상기 카메라가 위치가 시프트되거나 또는 회전될 때에 상기 이미지 내의 특징 포인트들의 예상되는 행동을 기반으로 하여 회전 제스처들로부터 시프트를 구분하기 위해서 복수의 분류자들이 사용될 수 있을 것이다. 다양한 분류자들은 시프트 제스처와 회전 제스처를 위한 투표 값들을 생성할 수 있을 것이며, 그리고 상기 시스템은 현재 제스처를 분류하는 것을 돕기 위해 이력 제스처 정보를 이용할 수 있다.

Description

사용자 인터페이스 제어를 위한 카메라 제스처들{Camera gestures for user interface control}
본 원은 사용자 인터페이스 제어를 위한 카메라 제스처들에 일반적으로 관련된다.
사람은 시각적인 신호에 크게 의존한다. 개인용 컴퓨터들을 위한 그래픽 사용자 인터페이스는 그런 기계들이 광범위하게 수용되는 것을 돕고, 그리고 하이퍼텍스트 마크업 언어 (HyperText Markup Language (HTML))는 그 언어의 그래픽적인 데이터 표현을 이용하여 인터넷에 대해 동일한 기능을 한다.
이런 유형들의 시각적인 인터페이스들의 주요한 구성 요소는 사용자 입력을 위한 메커니즘이다. 핸드-헬드 컴퓨터 마우스들, 트랙볼들 그리고 터치 패드들과 같은 기기들은 시각적인 인터페이스를 통해서 스크린 상의 커서를 직관적으로 이동시키도록 하는데 사용된다. 그러나 이것들은 2차원적인 입력 기기들로, 컴퓨터 디스플레이들 상에서 2차원적인 사용자 인터페이스에 입력을 제공하기 위해서 유용할 뿐이다.
컴퓨터 프로세싱 파워가 증가하면서, 더욱 더 많은 사용자 인터페이스들이 3차원적인 특징들을 병합한다. 불행하게도, 현재 사용되는 마우스, 트랙볼 및 터치 패드는 3차원적인 환경을 통해서 내비게이트하기에는 대개는 이상적이지 않다. 따라서, 3차원적인 인터페이스들을 통해서 내비게이트하는 것에 관한 개선된 접근 방식에 대한 필요가 존재한다.
- Jianbo Shi 등의 "Good Features to Track", Proc. EEEE Comput. Soc. Conf.Comput. Vision and Pattern Recogn., pp. 593-600, 1994. - Bouguet, J.V.의 "Pyramidal Implementation of the Lucas Kanade Feature Tracker Description of the Algorithm," Intel Corp. Microprocessor Research Labs, 1999.
본 발명의 목적은, 상기에 설명된 것과 같은, 3차원적인 인터페이스들을 통해서 내비게이트하는 것에 관한 개선된 접근 방식에 대한 필요를 충족시키는 장치 및 방법을 제공하는 것이다.
여기에서 설명된 특정 특징들은 3차원적인 환경을 통해서 내비게이트하는 것에 대한 신규한 접근 방식을 제공한다. 다양한 실시예들에서, 이런 접근 방법은 카메라를 내비게이션 기기로서 사용한다. 몇몇 실시예들에서, 현재 사용되는 카메라들 (예를 들면, 많은 셀룰러 전화기들에 통합된 디지털 카메라들)은, 예를 들면, 컴퓨터 상에서의 3차원적인 가상 공간을 통해서 커서를 이동시키는 3차원적인 내비게이션 툴로서 사용될 수 있을 것이다.
일부 실시예들에서, 시스템은, 카메라로부터의 현재 비디오 이미지로부터 복수의 특징 포인트들을 식별하고; 상기 특징 포인트들의 위치들을, 상기 카메라의 이전의 비디오 이미지로부터의 상기 특징 포인트들의 대응 위치들과 비교하고; 상기 특징 포인트들의 상기 위치들에서의 변화들로부터 상기 카메라의 3차원적인 이동 (movement)을 판별하고; 그리고 상기 카메라의 상기 3차원적인 이동을 식별한 것을 제스처 출력으로서 출력할 수 있을 것이다.
일부 실시예들에서, 상기 판별하는 것은 상기 현재의 이미지와 이전 이미지 사이에서 상기 특징 포인트들의 위치들에서의 차이들에 복수의 분류자들을 적용함으로써 상기 카메라의 시프트 (shift) 제스처와 회전 (rotation) 제스처 사이를 구분한다.
상기 분류자들은, 복수의 특징 포인트들이 공통의 이동 거리를 공유하는가의 여부를 기반으로 하는 제1 분류자, 상기 특징 포인트들 중의 상이한 하나가 상이한 거리만큼 이동했는가의 여부를 기반으로 하는 제2 분류자, 상기 특징 포인트들의 평균 이동 속도를 기반으로 하는 제3 분류자 그리고 새로운 특징 포인트들이 얼마나 자주 요청되는가를 기반으로 하는 제4 분류자를 포함할 수 있을 것이다.
몇몇 실시예들에서, 동작을 위해서 특징 포인트들의 미리 정해진 범위가 요청될 수 있다. 특정 상황들에서, 몇몇의 실시예들은 기록된 제스처들의 이력 파일을 기록할 수 있을 것이며, 그리고 몇몇 제스처들은 상기 이력에서 시프트로서 기록되지만 인터페이스 애플리케이션으로는 회전으로서 (또는 그 반대로) 출력될 수 있을 것이다
몇몇 실시예들에서, 개인용 컴퓨터 상에서의 3차원적인 사용자 인터페이슬 통해서 내비게이트하기 위해 셀룰러 전화기 카메라가 사용될 수 있다.
다른 특징들 및 모습들이 아래의 상세한 설명 부분에서 설명된다.
본 발명에 대한 설명에서 언급되어 있음.
여기에서 설명된 특징들 그리고 그 특징들의 이점들에 대한 더욱 완전한 이해는 첨부된 도면들을 고려하면서 다음의 설명을 참조하여 얻어질 수 있을 것이며, 첨부된 도면들에서 유사한 참조번호들은 유사한 특징들을 표시한다.
도 1은 여기에서 설명된 특징들이 구현될 수 있을 컴퓨팅 시스템의 기본적인 컴포넌트들을 도시한다.
도 2는 예시의 장면을 보여주는 핸드-헬드 카메라의 예의 실시예를 도시한다.
도 3은 도 2에서의 카메라의 이동의 예시적인 유형을 도시한다.
도 4는 카메라를 3차원 내비게이션 툴로서 사용하는 예시의 방법을 도시한다.
도 5는 도 2로부터의 예시의 장면을 도시하며, 식별된 특징 포인트들의 예들을 포함한다.
도 6은 도 5로부터의 예시의 특징 포인트들을, 픽셀 좌표들은 분리하여 도시한 것이다.
도 7a 및 도 7b는 제스처를 줌으로서 분류하기 위한 이동 거리들의 비교를 도시한다.
도 8a 및 도 8b는 시프트 이동들을 회전 이동들로부터 구별하기 위해 사용될 수 있는 분류자를 위한 이동 거리들의 비교를 도시한다.
도 9a 및 도 9b는 시프트 이동들을 회전 이동들로부터 구별하기 위해서 사용될 수 있는 제2 분류자를 위한 이동 거리들의 비교를 도시한다.
다음의 설명에서, 첨부된 도면들을 참조하며, 그 첨부된 도면은 본 명세서의 일부를 형성하며, 그리고 그 도면은 이용될 수 있을 다양한 특징들을 예시하기 위해서 도시된다. 다른 실시예들이 활용될 수 있을 것이며 그리고 본 출원의 범위와 사상으로부터 벗어나지 않으면서도 구조적이며 기능적인 수정들을 할 수 있을 것이라는 것이 이해될 것이다.
도 1은, 여기에서 설명된 하나의 모습에서, 본원에서 설명된 특징들이 구현될 수 있을 컴퓨터 시스템의 기본적인 컴포넌트들을 도시한다. 상기 시스템 (100)은 개인용 컴퓨터와 같은 범용 컴퓨터의 형상을 취할 수 있을 것이다. 대안으로, 상기 시스템 (100)은 모바일 셀룰러 전화기, 모바일 통신 기기, 개인용 데이터 보조기 (personal data assistant (PDA)), 페이저, TV 기기, 음악 플레이어, AM/FM/디지털 라디오 수신기, 비디오 플레이어, 카메라 등과 같은 어떤 다른 고정된 또는 모바일 전자 기기로서 구현될 수 있을 것이다.
상기 시스템 (100)은 본원에서 설명된 특징들을 제공하기 위해 명령어들을 실행시킬 수 있을, 프로그램 가능한 로직 디바이스 또는 다중-목적 마이크로프로세서와 같은 하나 또는 그 이상의 프로세서들 (101)을 구비할 수 있을 것이다. 상기 명령어들은, 동적인 그리고/또는 정적인 랜덤 액세스 메모리 (RAM), 읽기-전용 메모리 (ROM), 자기 디스크 또는 광학 디스크, 또는 어떤 다른 원하는 컴퓨터-독출가능 저장 디바이스일 수 있을, 메모리 디바이스들 (102)과 같은 하나 또는 그 이상의 컴퓨터-독출가능 매체 또는 전자 저장 매체 상에 컴퓨터-독출가능 명령어들로서 저장될 수 있을 것이다. 상기 시스템 (100)은 본원에서 설명된 데이터 중의 어떤 것도 (예를 들면, 컴퓨터-독출 가능 명령어들, 아래에서 설명되는 데이터 등) 또한 저장할 수 있는 하나 또는 그 이상의 탈부착 가능한 매체 (103)를 또한 포함할 수 있을 것이다. 상기 탈부착 가능한 매체 (103)는 탈부착 가능한 플래시 메모리, 디스크 드라이브, 광학 디스크 또는 자기 디스크 등과 같은 임의의 필요한 유형일 수 있을 것이다.
상기 시스템 (100)은 사용자에게 정보와 피드백을 제공하기 위한 하나 또는 그 이상의 출력 기기들을 포함할 수 있을 것이다. 상기 출력 기기들은 메뉴 선택들, 인터액티브 디스플레이들, 비디오 또는 사용자로 어떤 다른 시각적인 정보를 디스플레이할 수 있는 디스플레이 (104)와 같은 비디오 출력 기기들을 포함할 수 있을 것이다. 상기 출력 기기들은 하나 또는 그 이상의 스피커들 (105)을 또한 포함할 수 있을 것이며, 이는 오디오 트랙들 또는 노래들을 사용자에게 재생하기 위해서 사용될 수 있다.
상기 시스템 (100)은 하나 또는 그 이상의 사용자 입력 기기들 (106)을 또한 포함할 수 있을 것이다. 상기 사용자 입력 기기들 (106)은, 예를 들면, 키보드 (예를 들면, 데스크탑 컴퓨터 키보드, 모바일 전화기 키패드 등) 상의 알파뉴메릭 푸시 버튼들, 랩탑에서의 터치 및/또는 정전-감지 패드들, 컴퓨터 마우스, 트랙볼, 감지 입력 영역 또는 디스플레이 상에서의 스타일러스 등일 수 있을 것이다.
상기 시스템 (100)은 하나의 통합된 시스템으로서 도시되지만, 필요하다면 다양한 개별적인 컴포넌트들로 분리될 수 있을 것이다. 예를 들면, 카메라 (107)는 유선 그리고/또는 무선 인터페이스를 통해서 상기 시스템의 나머지와 통신 가능하게 연결된, 셀룰러 전화기 상에 있는 것과 같은, 분리된 핸드헬드 카메라일 수 있을 것이다. 예를 들면, 카메라 (107)는 로컬 데스크탑 컴퓨터와 (예를 들면, Bluetooth™ 접속을 통해서) 통신하는 셀룰러 전화기의 일부일 수 있을 것이다. 상기 프로세서 (101)는 그런 컴퓨터 시스템의 프로세서일 수 있을 것이며, 또는 그 프로세서는 상기 카메라 (107)와 동일한 기기 내에 위치할 수 있을 것이다. 다른 실시예에서와 같이, 상기 카메라 (107)는 상기 시스템 (100)의 나머지에 유선 접속에 의해 연결된, 컴퓨터 마우스와 같은 핸드-헬드 입력 기기일 수 있을 것이다.
도 2에 도시된 것과 같이, 상기 카메라 (107)는 장면 (201)을 볼 수 있을 것이며, 그리고 그 장면에 대응하는 데이터를 상기 프로세서 (101)로 전달할 수 있을 것이다. 상기 데이터는 *.jpg, *.pdf, *.bmp 등과 같이 어떤 필요한 비디오 이미지 포맷일 수 있을 것이다. 상기 장면 (201) 그 자체는 상기 예에서 나무 (203), 집 (203) 및 구름 (204)으로 도시된 다양한 구성요소들을 구비할 수 있을 것이며, 그 보이는 구성요소들에서의 특징들을 식별하는 것은 아래에서 설명되는 것과 같이 이용될 것이다.
시간이 흐르면, 상기 카메라 (107)는 다양한 방식들로 이동할 수 있을 것이다. 도 3은 이동의 세 가지 주된 방식들을 도시한다. 도시된 것과 같이, 상기 카메라는 Z-축과 일치하는 시선과 같이 도시된다. 이동의 한 가지 방식은 줌 이동으로, 이는 보이는 장면 쪽으로 또는 그 장면으로부터 멀어져서 Z-축 방향을 따르는 이동을 포함한다. 이동의 두 번째 방식은 시프트 이동일 것이며, 이는 X-Y 평면에서의 이동을 포함한다 (100 % 시프트 이동은 어떤 Z-성분도 또는 어떤 줌 성분도 가지고 있지 않을 것이다). 이동의 세 번째 방식은 회전 (rotation) 이동이다. 도시된 것과 같이, 상기 회전은 Y-축 주위를 휘감을 수 있을 것이다. 여기에서의 설명이 X-축 또는 Y-축 주위의 회전들에 초점을 맞추고 있지만, 회전은 X-축 또는 Z-축 주위에 또한 존재할 수 있을 것이다. 상기 Z-축 주위의 회전들은 시프트의 한 유형으로서 또한 간주될 수 있을 것이다. 아래에서 설명되는 것과 같이, 본원에서 설명된 시스템들은 상기 이미지들에서 보여지는 변화들을 기반으로 하여 카메라의 이동을 구분할 수 있을 것이며, 그리고 3차원적인 사용자 인터페이스와 같은 인터페이스와 상호 작용하기 위해 그 이동을 이용할 수 있을 것이다. 예를 들면, 3차원적인 사용자 인터페이스는 객체들의 3차원적인 그래픽 시뮬레이션들을 포함할 수 있을 것이며, 그리고 이 공간을 통해서 내비게이트하는 것은 전통적인 컴퓨터 인터페이스들에서와 같이 상/하/좌/우로 이동하는 것은 물론이며 그리고 상기 인터페이스로 이동하는 것 그리고 밖으로 이동하는 것을 또한 포함할 수 있을 것이다.
도 4는 예시의 방법을 도시하며, 상기 방법에 의해 카메라 (107)는 상기 프로세서 (101) 상에서 동작하는 3차원적인 사용자 인터페이스 애플리케이션에 줌, 시프트 및 회전 입력들을 제공하기 위해서 제스처 입력 기기로서 사용될 수 있을 것이다. 우선, 단계 401에서, 상기 카메라 (107)로부터 비디오 이미지가 캡쳐된다. 상기 비디오 이미지는 초당 30 프레임들과 같이 임의의 필요한 레이트로 샘플링될 수 있을 것이다. 상기 레이트는 상기 카메라 (107)에 의해 실제로 이미지들이 제공되는 그런 레이트와 동일할 수 있을 것이며, 또는 대안으로, 상기 시스템은 상기 카메라 (107)에 의해 제공되는 이미지의 일부만을 샘플링할 수 있을 것이다 (예를 들면, 매 5번째 프레임, 등등..)
단계 402에서, 상기 이미지는 알려진 특징 포인트들을 식별하기 위해서 처리된다. 특징 포인트들은 복수의 이미지들을 통해서 추적될 수 있는 이미지 내에 있는 포인트들이다. 상기 특징 포인트들을 식별하기 위해 임의의 필요한 패턴 인식 프로세스가 사용될 수 있을 것이다. 도 5는 도 2로부터의 예시의 장면 (201) 그리고 몇 가지 예시의 특징 포인트들 (501)을 도시한다. 상기 포인트들은 색상, 깊이, 모습에서의 대비 (contrast)로 인해서 식별될 수 있을 것이며 또는 어떤 특징 또는 패턴이라도 상기 필요한 패턴 인식 방법에 의해 인식될 수 있다. 예시의 패턴 인식 프로세스들은 Jianbo Shi 등의 "Good Features to Track", (Proc. EEEE Comput. Soc. Conf.Comput. Vision and Pattern Recogn., pp. 593-600, 1994) 또는 Bouguet, J.V.의 "Pyramidal Implementation of the Lucas Kanade Feature Tracker Description of the Algorithm," (Intel Corp. Microprocessor Research Labs, 1999)에서 설명된다.
도 6은, 분리된 것으로 간주된, 도 5로부터의 특징 포인트들 (501)의 세트의 예를 도시한다. 이런 특징 포인트들을 식별할 때에, 상기 시스템은 2차원 X-Y 좌표 값들을 뷰 (view)의 시야 내에서의 상기 포인트들의 위치들에 할당할 수 있을 것이다. 예를 들면, 상기 카메라 이미지가 320 x 240 픽셀들을 지원하면, 상기 시스템은 상기 뷰의 시야 내에서 상기 특징 포인트들의 위치를 기술하기 위해 320 x 240 픽셀 좌표 시스템을 사용할 수 있다. 도 6의 예에서, 참조번호 510a의 포인트는 뷰의 시야 상에서 (50 픽셀, 10 픽셀)의 위치에 존재할 수 있을 것이다.
상기 시스템은 이전의 이미지로부터 추적된 미리 정해진 알려진 개수의 특징 포인트들을 필요로 하도록 구성될 수 있을 것이다. 예를 들면, 상기 시스템은 현재 이미지 내에서, 이전의 이미지에서도 또한 발견된 최소 5개 그리고 최대 30개의 특징 포인트들을 필요로 할 수 있을 것이다. 이런 알려진 포인트들의 이동 또는 추적 포인트들이 상기 카메라 (107)의 이동을 해석하기 위해 사용된다. 단계 402를 통한 첫 번째 차례에 어떤 이전의 추적 포인트들이 존재하지 않는 때에, 상기 시스템은 가장 필요한 개수의 특징 포인트들 (예를 들면, 30개)을 식별하기 위해 상기 패턴 인식 프로세스를 이용할 수 있을 것이며, 그리고 상기 식별된 특징 포인트들을 반영하는 데이터를 메모리에 저장할 수 있을 것이다. 단계 402를 통한 연속하는 과정들에서, 상기 카메라 (107)는 이동되고 특징 포인트들은 뷰의 상기 시야 내로 그리고 시야 밖으로 통과할 때에, 상기 시스템은 상기 추적 포인트들을 특별히 찾을 수 있을 것이다. 이런 연속적인 과정들 (402)에서, 상기 시스템은 추적을 하기 위해서, 알려진 특징 포인트들을 식별하기 위해, 최근에 탐지된 특징 포인트들을 식별하는 데이터를 이전에 저장된 특징 포인트 식별들과 비교할 수 있을 것이다.
단계 403에서, 상기 시스템은 현재의 이미지 내에서 충분한 개수의 추적 포인트들이 탐지되었는가의 여부를 판별할 수 있을 것이다. 이런 충분함은 임의의 필요한 범위일 수 있을 것이다. 예를 들면, 상기 시스템은 사용될 최소 개수의 추적 포인트들 (예를 들면, 5개) 및 최대 개수의 추적 포인트들 (예를 들면, 30개)을 배치할 수 있을 것이다. 식별된 추적 포인트들의 개수가 이 범위 외에 있다면 (예를 들면, 탐지된 추적 포인트들이 5개보다 작으면), 상기 시스템은 새로운 특징 포인트들을 획득하고 그리고 사용된 추적 포인트들을 업데이트하기 위해 단계 404로 나아갈 수 있을 것이다. 단계 404에서, 메모리에 저장된 추적 포인트들의 세트를 대체하기 위해서 현재의 이미지로부터 추가적인 특징 포인트들을 식별하기 위해 또는 현존하는 포인트들을 보충하고 그리고 전체 개수 백업을 필요한 레벨로 이끌기 위해서 (예를 들면, 원래의 최대 30개) 추가적인 추적 포인트들을 간단하게 식별하기 위해 상기 패턴 인식 프로세스가 수행될 수 있을 것이다. 배치된 추적 포인트들의 새로운 세트와 함께, 상기 시스템은 다음의 이미지를 캡쳐하기 위해 단계 401로 복귀할 수 있다.
단계 403에서 충분한 추적 포인트들이 현재의 이미지 내에서 탐지되면, 상기 프로세스는 이동이 결국 탐지되었는가의 여부를 판별하기 위해서 단계 405로 이동할 수 있을 것이다. 이는 상기 추적 포인트들 중의 하나 (또는 그 이상)가 미리 정의된 거리보다 더 이동했나를 알기 위해 검사함으로써 수행될 수 있을 것이다. 예를 들면, 상기 시스템은 다양한 추적 포인트들에 대해 이동하는 평균 거리를 찾기 위해서 검사할 수 있을 것이며, 그리고 만일 그 평균 거리가 기껏해야 2 픽셀들이면, 상기 시스템은 어떤 실제적인 움직임이나 제스처가 아직 발생하지 않았다고 가정할 수 있다. 이런 미리 결정된 거리는 사용자의 고정되지 않은 손들에 대해 허용하기 위한 어떤 필요한 거리일 수 있을 것이다. 어떤 이동도 탐지되지 않으면, 상기 프로세스는 다음 이미지를 캡쳐하기 위해 단계 401로 복귀할 수 있을 것이다.
단계 405에서, 이동 제스처가 발생했다고 판별되면, 상기 프로세스는 단계 406으로 진행할 수 있을 것이며, 그리고 줌 제스처가 상기 카메라 (107)를 이용하여 만들어졌는가의 여부를 판별한다. 도 3에서 도시된 것과 같이, 줌 제스처는 상기 장면을 향하여 또는 상기 장면으로부터 상기 Z-축을 따라서 카메라를 이동시키는 것을 포함한다. 그런 제스처와 함께, 상기 특징 포인트들은 상기 이미지의 외부 경계를 향하여 또는 그 경계로부터 멀어지게 이동할 것이다. 도 7a 및 도 7b는 이런 이동을 도시한다. 도 7a에서, 여섯 개의 추적 포인트들이 이전의 이미지에서는 위치들 A-F에 보이고 그리고 그 여섯 개의 추적 포인트들이 현재 이미지에서는 위치들 A1-F1에 존재한다. 상기 카메라가 상기 장면을 향해서 (더 가까이) 이동한 결과 상기 새로운 위치들 A1-F1은 상기 이미지의 외부 경계 (701)에 더 가까워진다. 또한 이런 포인트들은 상기 장면의 중심 포인트로부터는 더욱 멀어진다. 도 7b는 상이한 줌을 보여주며 - 그 중 하나는 상기 카메라는 상기 장면으로부터 떨어져서 이동하고 그리고 다양한 특징 포인트들이 상기 이미지의 외부 경계 (701)로부터 멀리 (또는 중심 포인트를 향하여) 이동한다
단계 406에서, 상기 시스템은 줌 제스처가 수행되었는가의 여부를 판별하기 위해 뷰의 시야 내에서 상기 추적 포인트들의 위치에서의 변화를 이용할 수 있을 것이다. 이는 다양한 방식들로 수행될 수 있다. 하나의 예를 들면, 상기 시스템은 상기 특징 포인트들 (예를 들면, 도 7a-7b 예들에서의 A, B, C, D, E 및 F 포인트들)의 선택된 부분집합을 연결하여 다각형을 정의하고, 그리고 그 다각형의 전체 영역이 뷰의 상기 시야 내에서 증가하는가 또는 감소하는가를 판별할 수 있을 것이다. 그 영역이 증가하면, 그러면 상기 카메라 (107)는 상기 장면을 향하여 줌 하는 것이며, 상기 전체 영역이 감소하면 그 반대의 현상이 맞는 것이다. 다른 하나의 예로서, 상기 시스템은 상기 특징 포인트들이 상기 이미지 내에서 뷰의 상기 시야의 외부 경계 (701)에 더 가까워지나 또는 더 멀어지나를 알기 위해서 검사할 수 있다. 상기 추적된 특징 포인트들이 상기 경계 (701)의 각 가장 자리에 더 가까이에 있는 포인트들 (예를 들면, 적어도 하나의 포인트는 왼쪽 가장자리에 더 가깝고, 적어도 하나의 포인트는 상단의 가장자리에 더 가깝고, 적어도 하나의 포인트는 오른쪽 가장자리에 더 가깝고 그리고 적어도 하나의 포인트는 바닥의 가장자리에 더 가깝다)을 포함한다면, 그러면 상기 카메라 (107)는 상기 장면에 더 가깝게 줌 한 것이다. 대안으로, 상기 추적된 특징 포인트들이 상기 외부 경계로부터 더 멀리에 있거나 또는 중심 포인트에 더 가까이에 있으면, 그러면 상기 카메라 (107)는 상기 장면으로부터 더 멀리 줌 한 것이다.
단계 406에서, 상기 카메라 (107)가 줌 제스처를 수행했다고 판별되면, 그러면 줌 표시가 단계 407에서 출력된다. 이 출력은 상기 카메라 (107)가 줌 했던 프로세서 (101)로부터의 단순한 신호일 수 있을 것이다. 상기 줌 출력 신호는 소프트웨어 프로세스 (예를 들면, 프로세서 (101) 상에서 실행되는 다른 프로세스)에 제공될 수 있을 것이며, 이 그 소프트웨어 프로세스는 자기 자신의 프로세싱에 상기 줌 제스처를 이용할 수 있다. 예를 들면, 3차원적인 사용자 인터페이스 애플리케이션은 메모리 (102)에 또는 탈부착가능 매체 (103)에 저장될 수 있을 것이며, 그리고 프로세서 (101) 상에서 실행되어, 상기 3차원 사용자 인터페이스 내에서 대응하는 줌을 수행하기 위해 상기 줌 제스처를 사용하도록 할 수 있을 것이다. 이런 방식으로, 3차원적인 엘리먼트들을 통해서 내비게이트하기 위해서 상기 카메라의 이동은 3차원적인 사용자 인터페이스 애플리케이션에서의 커서의 대응 움직임이 일어나게 할 수 있을 것이다.
단계 408에서, 줌 제스처가 만들어졌다는 사실이, 상기 시스템에 의해 탐지되었던 다양한 제스처들을 기록하는 이력 파일 (예를 들면, 메모리 (102) 내에 있는)에 추가될 수 있다. 상기 이력 파일은 상기 카메라 (107)로 만들어진 제스처들에 대응하는 데이터를 기록할 수 있으며, 그리고 과거의 미리 정해진 시간 구간에 대한 데이터를 기록할 수 있다. 예를 들면, 상기 이력은 프로세싱된 마지막 5개 프레임들에 대한 데이터를 저장할 수 있을 것이다. 5 내지 10개 프레임들 내의 임의의 곳과 같이 다른 시간 구간들이 사용될 수 있다. 상기 데이터는 줌이 발생했다고 단순하게 표시할 수 있으며, 또는 상기 데이터는 상기 제스처의 시간, 탐지된 줌의 양, 상기 추적 포인트들과 중심 포인트 및/또는 외부 경계 사이의 거리들, 상기 줌을 분류하기 위해 사용된 추적 포인트들의 개수 및 신원, (혹시 있다면) 정의된 다각형과 그 다각형을 정의하기 위해 사용된 특징 포인트들, 상기 다각형의 계산된 영역 등과 같은 특수한 정보를 더 포함할 수 있다. 상기 이력 파일은 상기 시간 구간 내에서 만들어진 모든 제스처를 기록할 수 있을 것이며, 그리고 어떤 움직임도 탐지되지 않은 캡처된 이미지들에 대한 정보를 또한 저장할 수 있을 것이다 (예를 들면, 단계 405에서, 어떤 이동도 탐지되지 않으면, 상기 이력은 이동 제스처가 없다는 것을 나타내기 위해 "정지 제스처"를 기록할 수 있다). 상기 이력 파일을 업데이트한 이후에, 상기 시스템은 다음 이미지를 캡처하기 위해 단계 401로 복귀할 수 있을 것이다.
어떤 줌 제스처도 만들어지지 않았다고, 단계 406에서, 상기 시스템이 판별하면, 상기 시스템은 단계 409로 진행하며 그리고 시프트 또는 회전 제스처가 만들어졌는가의 여부를 판별하기 위하여 분류자들을 프로세싱한다. 이런 구분을 하기 위해 다양한 분류자들이 사용될 수 있을 것이다. 각 분류자는 상기 카메라가 시프트 또는 회전 제스처를 수신했는가의 여부에 대한 표를 던지기 위해 상기 뷰된 (viewed) 이미지의 미리 정해진 모습을 분석하는 프로세스나 프로그램일 수 있을 것이다. 상이한 분류자들 그리고 그 분류자들이 고려하는 모습들은 아래에서 설명된다. 그 전체는 투표 프로세스일 수 있을 것이다. 예를 들면, 한 분류자는 상기 제스처가 시프트인 것으로 보인다고 표시할 수 있을 것이지만, 반면에 다른 분류자는 그 제스처가 회전인 것으로 보인다고 표시할 수 있을 것이다. 상기 시스템은 메모리에서 동작하는 계산에서 각각에 대한 투표들을 합계할 수 있을 것이며, 그리고 종료 결과를 (예를 들면, 시프트였던 제스처를 포함하여) 출력으로서 제공할 수 있을 것이다.
일부 실시예들에서, 각 분류자 과정 (routine)은 시프트 또는 회전 중의 어느 하나에 대해서 단일의 투표를 할 수 있을 것이다. 다른 실시예들에서, 다양한 분류자 과정들은 자신들의 신뢰 레벨들을 기반으로 하여 가중된 투표를 할 수 있을 것이다. 그래서, 예를 들면, 하나의 분류자 과정이 상기 제스처가 시프트라고 강력하게 느끼지만, 그러나 다른 분류자는 약하게 불일치할 뿐이라면, 그 결과인 득표는 상기 제스처가 시프트일 가능성이 높다는 것을 여전히 반영할 수 있다. 가중된 가능성의 예들은 상기 분류자들과 함께 아래에서 설명된다.
첫 번째인 모든-포인트-이동 (All-Points-Moved) 분류자는 모든 특징 포인트들 또는 적어도 미리 결정된 개수의 특징 포인트들이 이전의 이미지에서의 자신의 위치로부터 공통된 양의 이동 거리만큼 이동했는가의 여부를 판별하는 것을 기반으로 할 수 있을 것이다. 도 8a에 도시된 것과 같이, 뷰의 시야 내의 모든 포인트들이 동일한 양만큼 이동하면, 그러면 상기 제스처는 시프트였을 가능성이 더 높다. 대비하면, 도 8b에 도시된 것과 같이, 상기 제스처가 회전이면, 그러면 상기 카메라로부터 더 멀리 위치했던 상기 특정 포인트들은 뷰의 상기 시야 내에서 더 가까이에 있던 포인트들 (예를 들면, 도 8b에서의 특정 포인트 A)보다 더 먼 거리를 이동할 것이며, 그래서 상이한 특징 포인트들의 상기 카메라 (107)로의 근접함에 종속하여 상기 상이한 특징 포인트들이 상이한 거리들을 이동할 것이라는 것이 기대될 수 있을 것이다.
이런 분류자를 구현하기 위해, 상기 시스템은 추적된 특징 포인트들이 뷰의 상기 시야에서 이동했던 거리들 (예를 들면, 200 픽셀) 그리고 이동의 방향 (30도의 방향)을 먼저 판별할 수 있을 것이다. 상기 시스템은 그러면 미리 결정된 개수의 추적된 특징 포인트들의 탐지된 이동이 (시프트 제스처가 만들어졌다고 암시하는) 동일한 것인가의 여부 또는 회전 제스처라고 할 수 있을 정도로 충분한 차이들이 존재하는가를 고려할 수 있을 것이다. 예를 들면, 상기 시스템은 추적된 특징들 모두가 동일한 이동을 구비하는가의 여부를 판별할 수 있다. 그런 상황에서, 상기 분류자는 시프트를 위해서 투표할 수 있을 것이다. 미리 정해진 개수의 포인트들보다 더 작은 포인트가 (예를 들면, 추적된 포인트들의 90% 미만이) 공통의 이동을 가지면, 또는 상기 추적된 포인트들의 이동이 어떤 문턱 양 (threshold amount) (예를 들면, 거리 및/또는 각도에서 10% 차이) 이상으로 차이가 나면, 상기 분류자는 시프트로 투표하는 것에 반대하기로 결정하고, 그리고 회전을 위해서 투표할 수 있을 것이다.
상기 모든-포인트-이동 분류자 역시 가중될 수 있을 것이다. 예를 들면, 상기 포인트들의 90%만이 동일한 거리를 이동하면, 상기 분류자는 시프트에 대해 조금만 더 약하게 투표할 수 있을 것이다 (예를 들면, 0.8의 투표). 또한, 이동의 거리들 및/또는 각도들이 약간 변하면 (예를 들면, 5% 만큼), 상기 분류자는 시프트를 위해서 더 약하게 투표할 수 있을 것이다. 유사하게, 상기 거리들이 미리 결정된 다른 양 이상으로 차이가 나면 또는 많은 포인트들이 상이한 이동들을 구비하면, 상기 분류자는 회전을 위해서 강하게 투표할 수 있을 것이지만, 그러나, 상기 거리들의 일부가 공통이면 (예를 들어, 10%), 또는 상기 포인트들의 일부가 공통의 이동을 가지면 (예를 들면, 상기 포인트들의 10%), 상기 분류자는 회전을 위해 약한 투표를 할 수 있을 것이다.
두 번째 분류자인 상대적인 위치 변화 (Relative Location Change) 분류자는 이웃하는 특징 포인트들 사이의 상대적인 위치를 검사한다. 이 분류자는 상기 첫 번째 분류자와 동일한 전제, 즉, 도 8a 및 도 8b에 도시된 것과 같은, 멀리 있는 특징들과 가까이에 있는 특징들에 대한 이동의 양에서의 예상되는 차이를 기반으로 한다. 그러나, 상기 특징 포인트들의 이동을 개별적으로 검사하는 대신에, 상기 두 번째 분류자는 특징 포인트들의 쌍들 사이의 거리에서의 변화들을 고려한다. 도 9a 및 도 9b는 이런 개념을 도시한다. 도 9a에서 보이는 것과 같이, 상기 카메라가 위치에서 시프트하면, 그러면 이전의 이미지에서의 A 및 B의 위치들에서의 특징 포인트들은 그 포인트들이 A1 및 B1의 위치들에 있을 때에 서로에 대해서 자신들의 상대적인 위치를 유지할 것으로 기대될 수 있을 것이다. 그런 특징 포인트들을 구비하는 물리적인 객체 (예를 들면, 도 9a에서의 정사각형)는 동일한 비율들을 유지한다. 다른 말로 하면, A와 B 사이의 거리는 A1과 B1 사이의 거리와 동일해야만 한다. 대안으로, 상기 카메라가 회전하면, 상기 객체는 다르게 보일 것으로 기대될 수 있을 것이며, 그리고 상기 특징 포인트들 사이의 위치는 변한 것으로 기대할 수 있을 것이다. 그래서 도 9b에서 도시된 것과 같이, A와 B 사이의 거리는 A1과 B1 사이의 거리와 동일하지 않으며, 그리고 그것들의 각도에서의 관계 역시 다르다 (A와 B 사이에서는 평평한 수평선이지만, A1과 B1 사이에서는 각도를 이룬다).
이 분류자는 여러 방식으로 구현될 수 있을 것이다. 예를 들면, 상기 특징 포인트들의 좌표들 사이의 거리들은 축마다 계산될 수 있을 것이다. 그래서, 예를 들면, A, B, A1 및 B1 포인트들이 각각 (XA, YA), (XB, YB). (XA1, YA1) 그리고 (XB1, YB1)의 좌표들을 구비하면, 상기 분류자 과정은 X- 차원 및 Y- 차원에서의 위치들 사이에서의 차이들을 계산할 수 있을 것이다. 그래서, 원래의 이미지에서, X-좌표에서의 거리는 ΔX = XB - XA 일 것이며; Y-좌표에서의 거리는 ΔY = YB - YA 일 것이다. 새로운 이미지에서, 그 차이들은 ΔX1 = XB1 - XA1 그리고 ΔY1 = YB1 - YA1 일 것이다. 만일 그 차이들이 서로 같으면 또는 서로 근접하면, 그러면 상기 포인트들은 자신들의 상대적인 위치를 유지한 것이며, 그리고 상기 분류자는 회전 대신에 시프트를 위해서 투표할 것이다. 그래서, 예를 들면, X-축에서의 거리에서의 변화가 미리 정해진 값 ε 보다 더 작으면 (이 경우 ε 는 10 픽셀처럼 작은 값이다), |ΔX - ΔX1| < ε이며, 그리고 Y-축에서도 동일하다면, 그러면 상대적인 거리들은 동일한 것으로 간주된다.
역으로, 두 특징 포인트들 사이에서의 X-축 또는 Y-축 거리들에서의 차이가 미리 정해진 양 ζ (예를 들면, 100 픽셀)을 초과하면, 그러면 상기 분류자는 회전 제스처를 위해서 대해 투표할 수 있을 것이며, 이는, 도 9b에서 도시된 것과 같이, 회전하면 상대적인 위치들이 변하기 때문이다.
이 상대적인 위치 변화 분류자 프로세스는 단지 두 포인트들에 대해서 수행될 수 있을 것이지만, 대안으로서, 모든 가능한 쌍의 추적된 특징 포인트들에 대해서 수행될 수 있을 것이다. 각 가능한 쌍은 자신의 투표 (시프트 또는 회전)를 특정 쌍이 자신의 상대적인 위치를 우연히 유지하는가의 여부의 의존하여 등록할 수 있을 것이며, 이런 두 번째 분류자로부터의 전체적인 투표는 각 쌍에 대한 개별적인 투표들을 기반으로 할 수 있을 것이다. 예를 들면, 10개의 추적된 특징 포인트들 (P1-P10)이 존재하면, 그러면 이 상대적인 위치 계산은 포인트들의 매 가능한 쌍들에 대해서 수행될 수 있으며, 다음과 같은 표의 결과가 된다.
P1 P2 P3 P4 P5 P6 P7 P8 P9 P10
P1
P2 시프트
P3 시프트 시프트
P4 시프트 시프트 시프트
P5 회전 시프트 시프트 시프트
P6 시프트 회전 회전 시프트 시프트
P7 시프트 시프트 시프트 시프트 회전 시프트
P8 시프트 시프트 회전 시프트 시프트 시프트 시프트
P9 시프트 회전 회전 시프트 회전 시프트 시프트 시프트
P10 시프트 시프트 시프트 시프트 시프트 회전 시프트 시프트 시프트
표 1: 추적된 특징 포인트들의 쌍마다의 개별적인 투표들
상기의 예에서, 가능한 쌍들 중의 36개 쌍은 자신의 상대적인 위치를 유지하며 (그럼으로써 시프트 제스처가 발생했다는 결론을 지지한다), 상기 가능한 쌍들 중의 9개 쌍은 자신의 상대적인 위치를 변경한다 (그럼으로써 회전 제스처가 발생했다는 결론을 지지한다). 이 예에서, 쌍들의 80% (36/45)는 시프트가 발생했다고 시사하며, 반면에 20% (9/45)는 회전을 시사한다. 이 두 번째 분류자를 위한 최종의 투표는 더 높은 결과 (이 경우에는, 시프트)에 대한 단순한 전체 투표일 수 있을 것이며, 또는 상기 투표는 분할된 것을 반영하여 가중 (예를 들면, 시프트를 위해서 0.8 투표) 될 수 있을 것이다
세 번째 분류자인 업데이트 속도 (Update Speed) 분류자는 상기 시스템이 단계 404에서 업데이트를 생성할 것을 얼마나 빈번하게 필요로 하는가를 기반으로 할 수 있을 것이다. 상기에서 설명된 것과 같이, 충분하지 않은 개수의 추적된 특징 포인트들이 현재 이미지에서 발견되고, 그리고 새로운/추가적인 특징 포인트들이 필요할 때에 상기 업데이트가 필요하다. 회전은 새로운 특징 포인트들을 필요로 할 가능성이 일반적으로 더 높기 때문에 (회전 동안에, 특징 포인트들은 뷰의 시야를 통해서 시프트 동안보다 더 빨리 이동할 것이다), 상기 시스템이 상기 업데이트를 더욱 자주 수행하면, 그러면 이는 상기 카메라 (107)가 회전하는 중이라는 것을 시사하는 것이다. 일 실시예에서, 이런 빈도는 캡처된 이미지들의 관점에서 측정될 수 있을 것이다. 예를 들면, 이전의 5개의 처리된 프레임들에 대해 하나의 업데이트가 수행되었다면, 이 분류자는 그 현재의 프레임에서는 회전 제스처를 위한 투표를 생성할 수 있을 것이다.
처리된 이미지들의 미리 정해진 개수를 기반으로 하는 판별에 대한 대안으로, 상기 시스템은 업데이트가 수행될 때마다 시각을 단순하게 기록할 수 있을 것이며, 그리고 이 세 번째 분류자는 각 업데이트 이후에 미리 정해진 시간의 양 (예를 들면, 500 ms)마다 회전에 대한 투표를 생성할 수 있을 것이다.
네 번째 분류자인 평균 이동 속도 (Average Moving Speed) 분류자 역시 이용될 수 있을 것이다. 이 네 번째 분류자는 모든 추적된 특징 포인트들에 대해 평균 이동 속도를 계산하고, 그리고 그 특징 포인트들은 회전하는 중에는 시프트하는 중에서 보다 뷰의 시야를 통해 더욱 빨리 이동하는 경향이 있다는 사실을 염두에 두는 것과 결부될 수 있을 것이다. 상기 평균 속도가 첫 번째의 미리 정해진 값 (예를 들면, 320 x 240 프레임의 30 fps에서, 프레임마다 18 픽셀)을 초과하면, 그러면 상기 분류자는 회전이 발생했다고 판별한다. 상기 평균 속도가 두 번째의 미리 결정된 값 (예를 들면, 320 x 240 프레임의 30 fps에서, 프레임마다 13 픽셀) 밑으로 떨어지면, 이 네 번째 분류자는 시프트가 발생했다고 결론지을 수 있을 것이다. 상기 평균 속도가 이런 값들 사이에 있으면 (예를 들면, 상기 예시의 환경에서는 13 픽셀과 18 픽셀 사이), 그러면 상기 분류자는 단순하게 투표를 보류한다.
상기 다양한 분류자들의 모두가 상기 이미지에 대해 프로세싱했을 때에, 메모리는 상기 다양한 분류자들에 의한 시프트 그리고 회전을 위한 전체 투표들을 포함할 것이다. 상기 프로세스는 그러면 이 전체를 이용하여 현재의 제스처를 해석하는 출력을 생성하고 그리고 기록된 제스처들의 이력을 업데이트한다.
단계 410에서, 이력이 비었는가의 여부를 판별하기 위해서 이 이력이 검사된다. 이력이 비었다면 (예를 들면, 상기 이력이 유지되는 동안에 어떤 제스처도 기록되지 않았다), 그러면 상기 프로세스는 단계 411로 이동할 수 있을 것이며 그리고 적용된 분류자들로부터의 가장 높은 투표 카운트를 가진 제스처 (시프트 또는 회전)를 식별하는 엔트리를 이용하여 상기 이력 파일을 업데이트할 수 있을 것이다. 상기 이력 파일에 기록된 제스처는 상기 3차원 인터페이스 애플리케이션에 의해 사용되기 위한 탐지된 제스처로서 또한 출력될 수 있을 것이다. 상기 출력 (그리고 이력 파일 엔트리)은 상기 시프트의 (예를 들면, 픽셀들 단위) 거리, 상기 시프트의 (예를 들면, 각도에서의) 방향, 회전의 각도 방향 (예를 들면, 시계 방향), 또는 상기 회전의 각도의 양 (예를 들면, 회전 축에 대한 각도)을 식별하는 정보를, 시프트 또는 회전이 탐지되었는가의 여부를 단순하게 식별하는 것에 추가하여 또한 포함할 수 있을 것이다. 상기 출력이 시프트이면, 상기 시스템은 상기에서 설명된 상기 상대적인 위치 변화 분류자에서 생성된 측정치들 및 계산들을 기반으로 하여 거리 및 시프트의 방향을 판별할 수 있을 것이다. 상기 출력이 회전이며, 회전의 방향은 상기 상대적인 위치 변화 분류자에서 생성된 데이터로부터 또한 판별될 수 있다 (예를 들면, 상기 포인트들이 오른쪽으로 이동하면, 그러면 상기 카메라는 왼쪽으로 회전된다).
단계 410에서, 상기 이력이 비어있지 않으면, 그러면 상기 프로세스는 단계 412로 이동할 수 있을 것이며, 그리고 시프트에 대해 또는 회전에 대해 수신된 더 많은 투표들이 있었는가의 여부를 판별할 수 있을 것이다. 시프트를 위한 더 많은 투표들이 있었다면, 그러면 상기 프로세스는 단계 413으로 이동하고 그리고 상기 이력에 시프트 제스처의 기록을 추가한다.
그러면, 단계 414에서, 상기 시스템은 이전의 출력 제스처 역시 시프트였나의 여부를 판별할 수 있을 것이다. 상기에서 언급된 것과 같이, 상기 이력 파일은 상기 시스템에 의해 판별된 제스처들의 표시들을 저장할 수 있을 것이다. 아래에서 설명될 것처럼, 하나의 제스처는 출력되지만, 다른 제스처는 이력에 기록되는 예들이 존재할 수 있을 것이다. 따라서, 상기 이력 파일은 상기 이력에 기록된 이전의 엔트리에 추가로, 실제로 출력되었던 마지막 제스처에 대한 표시를 또한 저장할 수 있을 것이다 (또는 별개의 파일이 저장할 수 있을 것이다). 그렇다면, 상기 프로세스는 단계 415로 이동할 수 있을 것이며, 그 단계에서는, 시프트가 탐지된 제스처로서 출력된다. 상기 프로세스는 그러면 다음 이미지를 처리하기 위해 단계 401로 복귀할 것이다.
그러나, 단계 414에서 이전 출력 제스처가 시프트가 아니라면, 상기 프로세스는 단계 416으로 이동하여, 시프트 또는 회전의 어느 제스처가 상기 이력에서 더 자주 나타나는가를 판별할 수 있을 것이다. 시프트가 더 많이 등록되었다면, 그러면 상기 프로세스는 단계 415로 이동하고 그리고 시프트가 출력된다. 그러나, 회전이 더 많이 등록되었다면, 또는 회전과 시프트가 동일한 개수로 등록되었다면, 그러면 상기 프로세스는 단계 417로 이동하며, 그 단계에서 회전이 출력된다. 이력에는 시프트를 기록하지만 회전 제스처를 출력하는 이 이벤트들의 흥미있는 회전은 경계선 상황들에 대해 시프트 해석과 회전 해석 사이에서의 빠르게 토글하는 것을 방지하기에 유용할 수 있을 것이다. 상기 출력과 함께, 상기 프로세스는 다음 이미지를 처리하기 위해 단계 401로 복귀할 수 있을 것이다.
단계 412로 돌아와서, 현재 기록에서 회전을 위해서 더 많은 투표들이 존재했다면, 그러면 상기 프로세스는 단계 418로 이동할 수 있을 것이며, 상기 이력에 회전을 기록할 수 있을 것이다. 단계 419에서, 이전 출력 제스처가 역시 회전이었으면, 그러면 상기 프로세스는 단계 417로 이동하고 그리고 회전 제스처가 출력된다. 단계 419에서, 이전에 출력된 제스처가 회전이 아니면, 그러면 상기 프로세스는 단계 420로 이동하여, 시프트 또는 회전의 어느 제스처가 상기 이력에 더 빈번하게 나타나는가를 판별한다. 회전들이 더 많이 나타나면, 또는 회전과 시프트가 동일한 수로 나타나면, 상기 프로세스는 단계 417로 이동하며 그리고 회전이 출력된다. 시프트가 더 많이 나타나면, 상기 프로세스는 단계 415로 이동하며 그리고 시프트를 출력한다. 다시, 이력에는 회전을 기록하지만 시프트를 출력하는 이런 상황은 경계선 상황들에 대해 상기 둘 사이에서 빠르게 토글하는 것을 방지하는데 도움을 준다.
상기에서 설명된 특징들은 3차원적인 사용자 인터페이스에게 디지털 카메라를 입력 또는 내비게이션 기기로서 사용하도록 하는 자연스러우면서도 직관적인 인터페이스를 허용한다. 일부 실시예들에서, 보통의 핸드헬드 컴퓨터 마우스가 카메라와 함께 준비될 수 있으며, 그리고 부속된 개인용 컴퓨터 상의 추가의 소프트웨어는 사용자로 하여금 상기 기기를 전형적인 2차원 인터페이스 애플리케이션을 위한 보통의 마우스로서 사용하도록 하고 그리고 3차원 인터페이스 애플리케이션이 사용될 때에는 그 마우스를 집어서 상기 카메라를 입력 기기로서 사용하도록 한다. 대안으로, 상기 프로세서 (101)는 범용 개인용 컴퓨터 프로세서일 수 있을 것이며, 그리고 상기 카메라는 셀룰러 전화기의 일부일 수 있을 것이다. 그런 구성에서, 사용자는 자신의 셀룰러 전화기를 (예를 들면, 무선 접속을 통해서) 개인용 컴퓨터에 접속하기 위해 사용할 수 있을 것이며, 그리고 3차원적인 사용자 인터페이스를 통해서 내비게이트하기 위해 그 셀룰러 전화기 카메라를 사용할 수 있을 것이다. 예를 들면, 상기 셀룰러 전화기는 개인용 컴퓨터에 접속하기 위해 블루투스 (BLUETOOTH™) 무선 접속을 이용할 수 있다.
상기에서 설명된 다양한 실시예들 및 특징들은 도식적인 예들이며, 그리고 필요한대로 변형들이 만들어질 수 있을 것이다. 예를 들면, 도 1에서 도시된 물리적인 구성은 단지 하나의 배치일 뿐이다. 본 발명의 범위 내에서 다양한 컴포넌트들이 상이하게 배치될 수 있을 것이며, 세부적으로 분할되고 또는 결합되고, 또는 그렇지 않다면 수정되고 그리고 여전히 그대로 남아 있을 수 있다.
추가로, 도 4에서 도시된 프로세스는 예시이며, 변이들이 필요한대로 만들어질 수 있을 것이다. 본 발명의 설명의 범위 내에서 원하는 결과를 얻기 위해 단계들은 교환되고, 생략되고 또는 추가될 수 있을 것이다.
상기에서 설명된 예시의 특징들은 예들이다. 본 특허의 범위는 설명된 모든 특징들로 한정되어서는 안 되며, 이어지는 청구범위에 의해서만 제한되어야만 한다.

Claims (36)

  1. 카메라로부터의 현재 비디오 이미지로부터 복수의 특징 포인트들을 식별하고;
    상기 복수의 특징 포인트들의 위치들을, 상기 카메라의 이전의 비디오 이미지로부터의 상기 복수의 특징 포인트들의 대응 위치들과 비교하고;
    상기 복수의 특징 포인트들의 상기 위치들에서의 변화들로부터 상기 카메라의 3차원적인 이동 (movement)을 판별하고;
    상기 카메라의 상기 3차원적인 이동을 식별한 것을 제스처 출력으로서 출력하고;
    상기 이전 비디오 이미지에서도 발견되었던, 상기 현재의 비디오 이미지 내에서 식별된 특징 포인트들의 개수를 카운팅하고;
    상기 식별된 특징 포인트들의 개수를 특징 포인트들의 미리 정해진 최소 개수와 비교하며; 그리고
    식별된 특징 포인트들의 상기 개수가 상기 미리 정해진 최소보다 더 작으면 상기 현재의 비디오 이미지에서 하나 이상의 새로운 특징 포인트들을 식별함으로써 상기 특징 포인트들을 업데이트하는 것을 포함하는 방법.
  2. 제1항에 있어서,
    상기 판별하는 것은 상기 현재의 이미지와 이전 이미지 사이에서 상기 복수의 특징 포인트들의 위치들에서의 차이들에 복수의 분류자들을 적용함으로써 상기 카메라의 시프트 (shift) 제스처와 회전 (rotation) 제스처 사이를 구분하는 것인, 방법.
  3. 제2항에 있어서,
    상기 복수의 분류자들은 상기 복수의 특징 포인트들이 공통의 이동 거리를 공유하는가의 여부를 기반으로 하는 제1 분류자를 포함하는, 방법.
  4. 제2항 또는 제3항에 있어서,
    상기 복수의 분류자들은 상기 복수의 특징 포인트들 중의 상이한 것들이 다른 거리만큼 이동했는가의 여부를 기반으로 하는 제2 분류자를 포함하는, 방법.
  5. 제2항 또는 제3항에 있어서
    상기 복수의 분류자들은 상기 복수의 특징 포인트들의 평균 이동 속도를 기반으로 하는 제3 분류자를 포함하는, 방법.
  6. 삭제
  7. 제1항에 있어서,
    상기 판별하는 것은 상기 업데이트하는 것이 얼마나 자주 수행되는가를 기반으로 하여 상기 카메라의 시프트 제스처와 회전 제스처 사이를 구분하는 것인, 방법.
  8. 제1항 내지 제3항 중의 어느 한 항에 있어서, 상기 방법은,
    상기 카메라의 이동이 시프트 이동 또는 회전 이동이었는가를 판별하고; 그리고
    대응하는 시프트 이동 또는 회전 이동을 상기 카메라의 이동 이력에 기록하지만, 상기 이동 이력 내에 기록된 상기 이동과는 상이한 제스처를 출력하는 것을 더 포함하는, 방법.
  9. 제8항에 있어서,
    상기 이동이 시프트 이동인 것으로 판별되면, 상기 이동을 상기 출력에서 회전 이동으로 식별하고; 그리고
    상기 이동이 회전 이동인 것으로 판별되면, 상기 이동을 상기 출력에서 시프트 이동인 것으로 식별하는, 방법.
  10. 제2항에 있어서,
    상기 복수의 분류자들은:
    상기 복수의 특징 포인트들이 공통의 이동 거리를 구비하는가의 여부를 기반으로 하는 제1 분류자;
    상기 복수의 특징 포인트들 중의 두 개의 특징 포인트들에 대한 이동 거리에서의 차이를 기반으로 하는 제2 분류자;
    새로운 특징 포인트들이 얼마나 자주 요청되는가를 기반으로 하는 제3 분류자; 및
    상기 복수의 특징 포인트들의 평균 이동 속도를 기반으로 하는 제4 분류자를 포함하는, 방법.
  11. 제1항 내지 제3항 중의 어느 한 항에 있어서, 상기 방법은,
    컴퓨터 상에서의 3차원적인 사용자 인터페이스를 통해서 내비게이트하기 위해 셀룰러 전화기 카메라를 사용하는 것을 더 포함하는, 방법.
  12. 제1항 내지 제3항 중의 어느 한 항에 있어서,
    상기 판별하는 것은 상기 3차원적인 이동이 줌 (zoom) 이동이라고 판별하는 것인, 방법.
  13. 카메라로부터 비디오 이미지 데이터를 수신하도록 구성된 비디오 입력부; 및
    프로세서를 포함하는 장치로서,
    상기 프로세서는,
    상기 카메라로부터의 현재 비디오 이미지로부터 복수의 특징 포인트들을 식별하고;
    상기 복수의 특징 포인트들의 위치들을, 상기 카메라의 이전의 비디오 이미지로부터의 상기 특징 포인트들의 대응 위치들과 비교하고;
    상기 복수의 특징 포인트들의 상기 위치들로부터의 변화들로부터 상기 카메라의 3차원적인 이동을 판별하고;
    상기 카메라의 상기 3차원적인 이동을 식별한 것을 제스처 출력으로서 출력하고;
    상기 이전 비디오 이미지에서도 발견되었던, 상기 현재의 비디오 이미지 내에서 식별된 특징 포인트들의 개수를 카운팅하고;
    상기 식별된 특징 포인트들의 개수를 특징 포인트들의 미리 정해진 최소 개수와 비교하며; 그리고
    식별된 특징 포인트들의 상기 개수가 상기 미리 정해진 최소보다 더 작으면 상기 현재의 비디오 이미지에서 하나 이상의 새로운 특징 포인트들을 식별함으로써 상기 특징 포인트들을 업데이트하는,
    동작들을 수행하도록 설정된, 장치.
  14. 제13항에 있어서,
    상기 프로세서는 제2항 또는 제3항에 따른 방법을 수행하도록 또한 설정된, 장치.
  15. 제1항 내지 제3항 중의 어느 한 항에 따른 방법을 수행하기 위한, 컴퓨터로 실행 가능한 명령어들을 저장하는 컴퓨터-독출 가능 매체.
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
KR1020117000451A 2008-06-11 2009-06-11 사용자 인터페이스 제어를 위한 카메라 제스처들 KR101247991B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/137,202 US8269842B2 (en) 2008-06-11 2008-06-11 Camera gestures for user interface control
US12/137,202 2008-06-11
PCT/IB2009/005913 WO2009150522A1 (en) 2008-06-11 2009-06-11 Camera gestures for user interface control

Publications (2)

Publication Number Publication Date
KR20110016994A KR20110016994A (ko) 2011-02-18
KR101247991B1 true KR101247991B1 (ko) 2013-03-27

Family

ID=41414251

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117000451A KR101247991B1 (ko) 2008-06-11 2009-06-11 사용자 인터페이스 제어를 위한 카메라 제스처들

Country Status (8)

Country Link
US (1) US8269842B2 (ko)
EP (1) EP2304534A4 (ko)
JP (1) JP5312578B2 (ko)
KR (1) KR101247991B1 (ko)
CN (1) CN102089738B (ko)
BR (1) BRPI0915357A2 (ko)
CA (1) CA2727213C (ko)
WO (1) WO2009150522A1 (ko)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL172995A (en) * 2006-01-05 2011-07-31 Gadi Royz Method and device for making a virtual film for use in browsing the site
US20100053151A1 (en) * 2008-09-02 2010-03-04 Samsung Electronics Co., Ltd In-line mediation for manipulating three-dimensional content on a display device
US8294766B2 (en) 2009-01-28 2012-10-23 Apple Inc. Generating a three-dimensional model using a portable electronic device recording
US8760432B2 (en) 2010-09-21 2014-06-24 Visteon Global Technologies, Inc. Finger pointing, gesture based human-machine interface for vehicles
KR101799270B1 (ko) * 2010-12-29 2017-11-21 엘지전자 주식회사 이동 단말기 및 이것의 터치 인식 방법
WO2012117570A1 (ja) * 2011-03-03 2012-09-07 オムロン株式会社 ジェスチャ入力装置およびジェスチャ入力装置の制御方法
US9423876B2 (en) 2011-09-30 2016-08-23 Microsoft Technology Licensing, Llc Omni-spatial gesture input
KR101926563B1 (ko) * 2012-01-18 2018-12-07 삼성전자주식회사 카메라 추적을 위한 방법 및 장치
EP2824425B1 (en) * 2012-03-06 2017-05-17 Nissan Motor Co., Ltd Moving-object position/attitude estimation apparatus and method for estimating position/attitude of moving object
SE537366C2 (sv) * 2012-09-25 2015-04-14 Jonas Patrik Graphenius Säkerhetsanordning och förfarande för detektering av förflyttning av en dörr samt övervakning av rörelse i ett område
US8933882B2 (en) 2012-12-31 2015-01-13 Intentive Inc. User centric interface for interaction with visual display that recognizes user intentions
US9105550B2 (en) 2013-01-11 2015-08-11 Digimarc Corporation Next generation imaging methods and systems
US9164653B2 (en) 2013-03-15 2015-10-20 Inspace Technologies Limited Three-dimensional space for navigating objects connected in hierarchy
US10031586B2 (en) * 2013-06-12 2018-07-24 Amazon Technologies, Inc. Motion-based gestures for a computing device
JP5946965B2 (ja) * 2013-06-28 2016-07-06 楽天株式会社 表示システム、表示方法、及びプログラム
JP6390799B2 (ja) * 2015-09-28 2018-09-19 日本電気株式会社 入力装置、入力方法、及びプログラム
CN109948511A (zh) * 2019-03-14 2019-06-28 广东美的白色家电技术创新中心有限公司 手势识别方法及装置
EP3963476A1 (en) * 2019-05-03 2022-03-09 Verily Life Sciences LLC Predictive classification of insects
JP7280976B2 (ja) * 2019-05-03 2023-05-24 トヨタ モーター ヨーロッパ 対象追跡用画像取得手段
CN218251559U (zh) 2019-05-03 2023-01-10 威里利生命科学有限责任公司 昆虫分拣系统
CN112818868B (zh) * 2021-02-03 2024-05-28 招联消费金融股份有限公司 基于行为序列特征数据的违规用户识别方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006018482A1 (en) 2004-08-17 2006-02-23 Nokia Corporation Electronic device and a method for controlling the functions of the electronic device as well as a program product for implementing the method
WO2006074290A2 (en) * 2005-01-07 2006-07-13 Gesturetek, Inc. Optical flow based tilt sensor

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1701351A (zh) * 2000-09-07 2005-11-23 卡尼斯塔公司 检测和定位用户-对象与虚拟传送设备的交互作用的准三维方法和装置
US6944315B1 (en) * 2000-10-31 2005-09-13 Intel Corporation Method and apparatus for performing scale-invariant gesture recognition
US6798429B2 (en) * 2001-03-29 2004-09-28 Intel Corporation Intuitive mobile device interface to virtual spaces
JP3926837B2 (ja) * 2004-06-04 2007-06-06 松下電器産業株式会社 表示制御方法および装置、プログラム、並びに携帯機器
NO20044073D0 (no) 2004-09-27 2004-09-27 Isak Engquist Informasjonsbehandlingssystem og fremgangsmate
GB0503253D0 (en) * 2005-02-17 2005-03-23 Univ Northumbria Newcastle User control of a hand-held device
KR100643470B1 (ko) * 2005-09-29 2006-11-10 엘지전자 주식회사 휴대용 단말기의 그래픽 신호 표시장치 및 방법
US7620316B2 (en) * 2005-11-28 2009-11-17 Navisense Method and device for touchless control of a camera
FI20051283A (fi) 2005-12-13 2007-06-14 Elcoteq Se Menetelmä ja sovitelma graafisen käyttöliittymän hallitsemiseksi sekä graafisella käyttöliittymällä varustettu kannettava laite
US20070222746A1 (en) * 2006-03-23 2007-09-27 Accenture Global Services Gmbh Gestural input for navigation and manipulation in virtual space
JP4725526B2 (ja) * 2006-08-28 2011-07-13 ソニー株式会社 情報処理装置、撮像装置、情報処理システム、装置制御方法及びプログラム
US9317124B2 (en) 2006-09-28 2016-04-19 Nokia Technologies Oy Command input by hand gestures captured from camera
US7971156B2 (en) * 2007-01-12 2011-06-28 International Business Machines Corporation Controlling resource access based on user gesturing in a 3D captured image stream of the user

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006018482A1 (en) 2004-08-17 2006-02-23 Nokia Corporation Electronic device and a method for controlling the functions of the electronic device as well as a program product for implementing the method
WO2006074290A2 (en) * 2005-01-07 2006-07-13 Gesturetek, Inc. Optical flow based tilt sensor

Also Published As

Publication number Publication date
JP5312578B2 (ja) 2013-10-09
KR20110016994A (ko) 2011-02-18
JP2011528819A (ja) 2011-11-24
US20090309765A1 (en) 2009-12-17
US8269842B2 (en) 2012-09-18
EP2304534A1 (en) 2011-04-06
CN102089738B (zh) 2013-05-08
CA2727213A1 (en) 2009-12-17
CN102089738A (zh) 2011-06-08
EP2304534A4 (en) 2014-06-04
WO2009150522A1 (en) 2009-12-17
BRPI0915357A2 (pt) 2015-11-03
CA2727213C (en) 2017-12-05

Similar Documents

Publication Publication Date Title
KR101247991B1 (ko) 사용자 인터페이스 제어를 위한 카메라 제스처들
US8395658B2 (en) Touch screen-like user interface that does not require actual touching
US10101874B2 (en) Apparatus and method for controlling user interface to select object within image and image input device
US8941587B2 (en) Method and device for gesture recognition diagnostics for device orientation
US8839136B2 (en) Method of controlling virtual object or view point on two dimensional interactive display
US11443453B2 (en) Method and device for detecting planes and/or quadtrees for use as a virtual substrate
EP1837741A2 (en) Gestural input for navigation and manipulation in virtual space
US20110298708A1 (en) Virtual Touch Interface
US20110157017A1 (en) Portable data processing appartatus
CN102906671A (zh) 手势输入装置及手势输入方法
US9535493B2 (en) Apparatus, method, computer program and user interface
US11501505B2 (en) Traversing photo-augmented information through depth using gesture and UI controlled occlusion planes
CN104081307A (zh) 图像处理装置、图像处理方法和程序
WO2013082760A1 (en) Method and system for responding to user&#39;s selection gesture of object displayed in three dimensions
US9310851B2 (en) Three-dimensional (3D) human-computer interaction system using computer mouse as a 3D pointing device and an operation method thereof
Clark et al. Seamless interaction in space
CN102609734A (zh) 一种机器视觉的手写识别方法和系统
US20130249807A1 (en) Method and apparatus for three-dimensional image rotation on a touch screen
US20130201157A1 (en) User interface device and method of providing user interface
US8363011B2 (en) Control apparatus and method
CN113672749A (zh) 相册展示方法和相册展示装置
CN105528059A (zh) 一种三维空间手势操作方法及系统
CN118243105A (zh) 路径规划方法、装置、电子设备及存储介质

Legal Events

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

Payment date: 20160218

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170220

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee