KR102006043B1 - 깊이 카메라를 이용한 머리 포즈 추적 기법 - Google Patents

깊이 카메라를 이용한 머리 포즈 추적 기법 Download PDF

Info

Publication number
KR102006043B1
KR102006043B1 KR1020147022170A KR20147022170A KR102006043B1 KR 102006043 B1 KR102006043 B1 KR 102006043B1 KR 1020147022170 A KR1020147022170 A KR 1020147022170A KR 20147022170 A KR20147022170 A KR 20147022170A KR 102006043 B1 KR102006043 B1 KR 102006043B1
Authority
KR
South Korea
Prior art keywords
frame
color image
image frame
transformation matrix
last
Prior art date
Application number
KR1020147022170A
Other languages
English (en)
Other versions
KR20140126707A (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 KR20140126707A publication Critical patent/KR20140126707A/ko
Application granted granted Critical
Publication of KR102006043B1 publication Critical patent/KR102006043B1/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/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/012Head tracking input arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/74Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
    • 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/10028Range image; Depth image; 3D point clouds
    • 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/30244Camera pose

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Image Analysis (AREA)
  • Length Measuring Devices By Optical Means (AREA)

Abstract

본 발명에 따르면 사용자의 머리 상에 배치되도록 구성된 센서들의 그룹을 사용하는 머리 포즈 추적 기술 실시예가 제시된다. 이러한 센서들의 그룹은 장면 내의 특징들의 3차원 위치를 식별하는 데 사용되는 깊이 센서 장치 및 적어도 하나의 다른 타입의 센서를 포함한다. 센서들의 그룹 내의 각각의 센서에 의해 출력되는 데이터는 주기적으로 입력되고, 데이터가 입력될 때마다 변환 행렬을 계산하도록 사용되며, 제 1 센서 데이터가 입력되었을 때 확립된 이전에 결정된 머리 포즈 위치 및 방향에 변환 행렬이 적용되면 현재 머리 포즈 위치 및 방향을 식별한다. 그 다음 이러한 변환 행렬은 현재 머리 포즈 위치 및 방향을 식별하도록 이전에 결정된 머리 포즈 위치 및 방향에 적용된다.

Description

깊이 카메라를 이용한 머리 포즈 추적 기법{HEAD POSE TRACKING USING A DEPTH CAMERA}
머리 포즈 추적(head pose tracking)은 전형적으로 공간 내의 사람의 머리의 위치 및 방향을 주기적으로 결정하는 것을 포함한다. 공간 내에 있는 사람의 머리의 위치는 일반적으로 공간에 대한 사전확립된 세계 좌표 시스템에 대해 표현된 3차원 위치로서 정의된다. 이러한 위치는, 예를 들어 머리 중심(즉, 사람의 머리의 추정된 중심)과 연관될 수 있다. 이와 달리 사람의 머리와 연관된 쉽게 알아낼 수 있는 다른 포인트가 규정될 수도 있다. 머리 포즈 방향은 일반적으로 머리 중심(또는 다른 규정된 머리 포인트)에서 공통 원점을 갖는 3개의 직교하는 축들에 대한 회전(피치(pitch), 롤(roll), 요(yaw))에 대해 정의된다. 전형적으로, 피치는 머리를 위아래로 움직이는 것이고, 요는 머리를 좌우로 움직이는 것이며, 롤은 머리를 양옆으로 움직이는 것이다.
머리 포즈는 다양한 애플리케이션에서 사용된다. 예를 들어, 머리 포즈는 증강 현실 애플리케이션의 맥락에서 추적된다. 증강 현실 애플리케이션에서, 사용자는 디스플레이 상에 제공되는 실세계와 가상 객체 모두를 볼 수 있도록 적어도 하나의 반투명 디스플레이를 갖는 고글 또는 유사한 디바이스를 착용한다. 가상 객체는 마치 그것이 현실 환경의 일부인 것처럼 나타나야만 한다. 가상 객체가 환경의 일부인 것처럼 나타나도록 보장하는 하나의 기술 구성요소는 머리 포즈 추적이다. 사용자가 자신의 머리를 움직일 때, (사용자의 머리와 함께 움직이는) 디스플레이 상에 제공되는 가상 객체는 현실 환경에 대해 움직이지 않게 나타나야만 한다.
정확한 머리 포즈 추적을 획득하기 위한 하나의 시도는 예를 들어 벽 또는 천장의 알려진 위치에 있는 알려진 패턴을 마커(marker)로 이용함으로써 현실 환경에 지시하는 것을 포함한다. 그 다음 (사용자의 머리 또는 공간 내의 다른 어딘가에 장착되는) 종래의 비디오 카메라가 이미지 내의 마커의 위치에 기초하여 사용자의 머리 포즈를 계산하도록 컴퓨터 비전 기술을 이용하여 프로세싱된다. 다른 시도는 사용자의 머리 포즈를 알아내도록 (헬멧 상에 있는 또는 한 쌍의 고글 내에 있는 것과 같은) 사용자의 머리에 장착된 관성 센서들(예를 들어, 자이로스코프, 가속도계 및 컴퍼스)을 사용하는 것을 포함한다. 또한, 환경을 조율할 필요 없이 머리 포즈 추정을 획득하도록 관성 센서들이 하나 이상의 종래의 비디오 카메라와 결합되는 머리 포즈 추적 설계가 제안되어왔다.
본 명세서에 기술된 머리 포즈 추적 기술 실시예는 일반적으로 공간 내에 있는 사람의 머리의 위치 및 방향을 주기적으로 추적하는 것을 포함한다. 일반적인 예시적인 실시예에서, 이것은 사용자의 머리 상에 장착되도록 구성된 센서들의 그룹을 사용하여 달성된다. 이러한 센서들의 그룹은 바람직하게는 센서들의 그룹에 의해 감지되는 장면 내에 있는 포인트들의 3차원 위치를 식별하는 데 사용되는 깊이 센서 장치 및 적어도 하나의 다른 타입의 센서를 포함한다. 컴퓨팅 디바이스는 머리 포즈 추적 컴퓨터 프로그램을 구동하도록 사용된다. 컴퓨터 프로그램은 센서들의 그룹 내의 각 센서에 의해 출력되는 데이터를 주기적으로 입력하기 위한 모듈을 포함한다. 또한 이것은 하나 이상의 센서로부터의 데이터가 입력될 때마다 변환 행렬을 계산하도록 입력된 데이터를 사용하기 위한 모듈을 포함한다. 이러한 변환 행렬이 제 1 센서 데이터가 입력되었을 때 확립된 이전에 결정된 머리 포즈 위치 및 방향에 적용되면 현재 머리 포즈 위치 및 방향을 식별한다.
보다 구체적으로, 일 실시예에서 전술된 다른 타입의 센서는 컬러 비디오 카메라이다. 깊이 센서 장치 및 컬러 비디오 카메라는 각각 깊이 프레임과 컬러 이미지 프레임의 형태로 동시발생하는 장면 데이터를 주기적으로 생성하도록 동기화된다. 또한, 깊이 센서 장치 및 컬러 비디오 카메라는 각각의 컬러 이미지 프레임 내의 각 픽셀을 (만약 가능하다면) 동시에 생성된 깊이 프레임 내의 상응하는 3차원 장면 위치에 맵핑하도록 캘리브레이트(calibrate)된다. 그 다음 전술된 컴퓨터 프로그램은 각각의 동시 생성된 깊이 프레임 및 컬러 이미지 프레임을 제 1 입력하는 것을 포함한다. (제 1 입력 이후의) 각각의 이러한 프레임 쌍들의 입력에 있어서, 매칭 특징들(matching features)이 마지막으로 입력된 컬러 이미지 프레임과 마지막으로 입력된 컬러 이미지 프레임 직전에 생성된 컬러 이미지 프레임 사이에서 식별된다. 그 다음 식별된 매칭 특징들과 마지막으로 입력된 컬러 이미지 프레임과 마지막으로 입력된 컬러 이미지 프레임 직전에 생성된 컬러 이미지 프레임 직전의 컬러 이미지 프레임 사이의 매칭 특징들의 상응하는 3차원 위치를 이용하여 제 1 변환 행렬이 추정된다. 이러한 변환 행렬은 하나의 프레임으로부터 다른 프레임으로의 포인트들의 평행이동(translation) 및 회전(rotation)을 정의하며, 특히 마지막으로 입력된 컬러 이미지 프레임 직전에 생성된 컬러 이미지 프레임으로부터 마지막으로 입력된 컬러 이미지 프레임으로의 포인트들의 평행이동 및 회전을 정의한다. 다음으로, 제 1 컬러 이미지 프레임 입력으로부터 마지막으로 입력된 컬러 이미지 프레임으로의 포인트들의 평행이동 및 회전을 정의하는 최종 변환 행렬이 추정된다. 이것은 제 1 컬러 이미지 프레임으로부터 마지막으로 입력된 컬러 이미지 프레임 직전의 컬러 이미지 프레임으로의 포인트들의 평행이동 및 회전을 정의하는 이전에 계산된 변환 행렬과 마지막으로 입력된 컬러 이미지 프레임 직전의 컬러 이미지 프레임으로부터 마지막으로 입력된 컬러 이미지 프레임으로의 포인트들의 평행이동 및 회전을 정의하는 제 1 변환 행렬을 누적(accumulating)함으로써 달성된다. 그 다음 현재 머리 포즈 위치 및 방향을 식별하도록 제 1 컬러 이미지 프레임 입력에 묘사된 장면 내에 있는 이전에 결정된 머리 포즈 위치 및 방향에 최종 변환 행렬이 적용된다.
또 다른 실시예에서 전술된 다른 타입의 센서들은 이전과 같이 구성된 컬러 비디오 카메라를 포함할 뿐 아니라 3개의 축 주변의 각속도와 3개의 축에 따른 선형 가속도를 측정하는 관성 센서들의 세트도 포함한다. 관성 센서들은 깊이 및 컬러 이미지 프레임이 제공되는 레이트와 동일하거나 이를 초과하는 레이트로 각속도 및 선형 가속도 데이터의 프레임을 제공한다. 이러한 경우에서, 전술된 컴퓨터 프로그램은 생성된 각각의 관성 센서 프레임을 제 1 입력하는 것을 포함한다. 그 다음, (제 1 입력 이후의) 각각의 관성 센서 프레임 입력에 대해서, 현재 관성 센서 기반 변환 행렬은 마지막으로 입력된 관성 센서 프레임을 이용하여 추정된다. 이러한 관성 센서 기반 변환 행렬은 마지막으로 입력된 컬러 이미지 프레임 직전의 센서 프레임 입력으로부터 마지막으로 입력된 컬러 이미지 프레임으로의 포인트들의 평행이동 및 회전을 정의한다. 그 다음 제 1 관성 센서 프레임으로부터 마지막으로 입력된 관성 센서 프레임 직전에 입력된 관성 센서 프레임으로의 포인트들의 평행이동 및 회전을 정의하는 이전에 계산된 변환 행렬을 마지막으로 입력된 관성 센서 프레임 직전에 입력된 관성 센서 프레임으로부터 마지막으로 입력된 관성 센서 프레임으로의 포인트들의 평행이동 및 회전을 정의하는 현재 관성 센서 기반 변환 행렬과 누적함으로써 제 1 관성 센서 프레임으로부터 마지막으로 입력된 관성 센서 프레임으로의 포인트들의 평행이동 및 회전을 정의하는 최종 관성 센서 기반 변환 행렬이 추정된다. 다음으로, 새로운 컬러 비디오 및 깊이 프레임이 생성되었는지가 결정된다. 만약 그렇지 않다면, 최종 관성 센서 기반 변환 행렬이 현재 머리 포즈 위치 및 방향을 식별하기 위해 제 1 관성 센서 프레임 입력과 연관된 이전에 결정된 머리 포즈 위치 및 방향에 적용된다. 그러나 만약 새로운 컬러 비디오 및 깊이 프레임이 생성되었다면, 이들이 입력되어 마지막으로 입력된 컬러 이미지 프레임과 마지막으로 입력된 컬러 이미지 프레임 직전에 생성된 컬러 이미지 프레임 사이의 매칭 특징들이 식별된다. 그 다음 마지막으로 입력된 컬러 이미지 프레임 직전에 생성된 컬러 이미지 프레임과 마지막으로 입력된 컬러 이미지 프레임 내의 매칭 특징들의 상응하는 3차원 위치 및 식별된 매칭 특징들을 사용하여 이미지 기반 변환 행렬이 추정된다. 이러한 이미지 기반 변환 행렬은 마지막으로 입력된 컬러 이미지 프레임 직전에 생성된 컬러 이미지 프레임으로부터 마지막으로 입력된 컬러 이미지 프레임으로의 포인트들의 평행이동 및 회전을 정의한다. 다음으로 제 1 관성 센서 프레임으로부터 마지막으로 입력된 컬러 이미지 프레임 직전의 컬러 이미지 프레임으로의 포인트들의 평행이동 및 회전을 정의하는 이전에 계산된 변환 행렬을 마지막으로 입력된 컬러 이미지 프레임 직전의 컬러 이미지 프레임으로부터 마지막으로 입력된 컬러 이미지 프레임으로의 포인트들의 평행이동 및 회전을 정의하는 현재 이미지 기반 변환 행렬과 누적함으로써 제 1 관성 센서 프레임 입력으로부터 마지막으로 입력된 컬러 이미지 프레임으로의 포인트들의 평행이동 및 회전을 정의하는 최종 이미지 기반 변환 행렬이 추정된다. 최종 이미지 기반 변환 행렬 및 최종 관성 센서 기반 변환 행렬은 제 1 관성 센서 프레임 입력으로부터 마지막으로 입력된 관성 센서 프레임으로의 포인트들의 평행이동 및 회전을 정의하는 단일의 결합된 변환 행렬로 결합한다. 그 다음 현재 머리 포즈 위치 및 방향을 식별하도록 제 1 관성 센서 프레임 입력과 연관된 이전에 결정된 머리 포즈 위치 및 방향에 이러한 결합된 변환 행렬이 적용된다.
전술된 요약부는 아래의 상세한 설명에서 추가로 설명되는 개념들의 선택을 단순화된 형태로 도입하도록 제공된다. 본 요약부는 청구된 청구범위의 중요 특성 또는 기본 특성을 식별하기 위한 것이 아니며, 청구된 청구범위의 범주를 결정하는 것을 돕기 위한 것 또한 아니다.
본 발명의 특정한 특징, 측면 및 장점이 아래의 상세한 설명, 첨부된 특허청구범위 및 첨부된 도면과 관련하여 잘 이해될 것이다.
도 1은 본 명세서에 기술된 머리 포즈 추적 기술 실시예를 구현하기 위한 머리 포즈 추적 시스템을 도시한 단순화된 다이어그램이다.
도 2는 본 명세서에 기술된 머리 포즈 추적 기술 실시예를 구현할 때 사용되는 다양한 프레임 및 좌표 설계의 단순화된 도면이다.
도 3은 종래의 컬러 비디오 카메라와 함께 깊이 센서 장치를 사용하는 도 1의 예시적인 머리 포즈 추적 시스템을 도시하는 단순화된 다이어그램이다.
도 4a 내지 4d는 도 3에 도시된 컬러 비디오 카메라 및 깊이 센서 장치에 의해 출력된 데이터를 사용하는 머리 추적 프로세스의 일 실시예를 일반적으로 아웃라인한 순서도이다.
도 5는 키프레임 매칭이 발생하는지 여부를 결정하기 위한 프로세스의 일 구현을 일반적으로 아웃라인한 순서도이다.
도 6은 종래의 컬러 비디오 카메라 및 관성 센서들의 세트와 함께 깊이 센서 장치를 사용하는 도 1의 예시적인 머리 포즈 추적 시스템을 도시한 단순화된 다이어그램이다.
도 7a 내지 7e는 도 6에 도시된 깊이 센서 장치, 컬러 비디오 카메라 및 관성 센서들의 세트에 의해 출력된 데이터를 사용하는 머리 추적 프로세스의 일 실시예를 일반적으로 아웃라인한 순서도이다.
도 8은 본 명세서에 기술된 머리 포즈 추적 기술 실시예를 구현하기 위한 예시적인 시스템을 구성하는 범용 컴퓨팅 디바이스를 도시한 도면이다.
머리 포즈 추적 기술(head pose tracking technique) 실시예에 대한 아래의 설명은 본 명세서의 일부를 구성하는 첨부된 도면을 참조하며, 도면에서 이러한 기술이 실시될 수 있는 특정한 실시예가 예시로서 도시되었다. 이러한 기술의 범주로부터 벗어나지 않고 다른 실시예가 사용될 수 있으며 구조적 변경이 이루어질 수 있음을 이해할 것이다.
1.0 머리 포즈 추적
일반적으로, 본 명세서에 기술된 머리 포즈 추적 기술 실시예는 공간 내에서 사람의 머리의 위치 및 방향을 주기적으로 추적한다. 도 1에 묘사된 일반적인 구현에서, 사용자의 머리 상에 배치되도록 구성된 센서들의 그룹(100)을 사용하는 시스템을 포함한다. 이러한 머리-장착(head-borne) 센서들의 그룹(100)은 센서들의 그룹에 의해 감지된 장면 내의 특징들의 3차원 위치를 식별하는 데 사용되는 깊이 센서 장치(102) 및 적어도 하나의 다른 타입의 센서(104)를 포함한다. 또한, 이러한 예시적인 머리 포즈 추적 시스템은 센서 모듈(110) 및 변환 행렬 모듈(112)을 포함하는 프로그램 모듈을 구비하는 컴퓨터 프로그램(108)을 구동하는 (예로서 본 상세한 설명에서 아래에 기술된 컴퓨팅 환경 섹션에서 설명된 것과 같은) 컴퓨팅 디바이스(106)를 구비한다. 일반적으로, 센서 모듈은 센서들의 그룹 내의 각 센서에 의해 출력된 데이터를 주기적으로 입력하고, 변환 행렬 모듈은 하나 이상의 센서로부터 데이터가 입력될 때마다 변환 행렬을 계산하도록 입력된 데이터를 사용한다. 변환 행렬은 제 1 센서 데이터가 입력되었을 때 확립된 이전에 결정된 머리 포즈 위치 및 방향에 적용되어 현재 머리 포즈 위치 및 방향을 식별하는데에 사용될 수 있다.
다른 센서 설계들이 본 명세서에 기술된 머리 포즈 추적 기술 실시예에 의해 사용된다. 위에 언급된 바와 같이, 각각의 이러한 설계들은 공간 내에서의 위치 및 장치들 사이의 거리를 식별하는 데 사용되는 (전형적으로 소정의 타입의 프로젝터 및 수신기를 포함하는) 깊이 센서 장치를 포함한다. 일 예시적인 구현에서, 깊이 센서 장치는 종래의 컬러 비디오 카메라와 함께 사용된다. 다른 예시적인 구현에서, 깊이 센서 장치는 종래의 컬러 비디오 카메라 및 관성 센서들의 세트와 함께 사용된다. 또한 이러한 각각의 설계는 다양한 센서들에 의해 출력된 센서 신호들을 프로세싱하기 위한 앞서 언급된 바와 같은 컴퓨팅 디바이스를 포함한다. 이어지는 섹션에서는 전술된 예시적인 구현들 각각이 더욱 자세하게 기술될 것이며, 각각에 대한 구현 프로세스 또한 기술될 것이다.
그러나, 머리 포즈 추적에서 세계 프레임(프레임 "W") 내의 머리 좌표 프레임(프레임 "H") 또는 센서 프레임(프레임 "S")의 위치(TWH 또는 TWS) 및 방향(RWH 또는 RWS)은 추정된 것임을 먼저 인지해야 한다. 센서 프레임은 컬러 카메라 프레임(프레임 "C")(202) 및 깊이 센서 장치(프레임 "DC")의 수신기 프레임(204)뿐 아니라 포함된 경우 관성 센서 프레임(프레임 "I")(206)을 나타낸다. 이러한 센서 프레임은 머리 프레임과 같도록 변환되며, 세계 프레임(200)은 추적 시작시에 변환된 센서 프레임을 오버레이(overlay)한다고 가정된다. 보다 구체적으로, 세 개의 센서 프레임 각각은 3개의 축을 갖는다. 세 개의 센서 프레임 사이의 상대적인 변환은 시간이 흐르면서 변화하지 않는다. 이렇게, 상대적인 변환은 오프라인으로 사전-캘리브레이트된다(pre-calibrated). 실질적인 문제로서, 시작시에 컬러 카메라의 센서 프레임이 세계 프레임으로서 사용되고, 깊이 센서 수신기와 관성 센서 프레임은 매칭되도록 변환된다. 전술된 프레임들은 세계 프레임(200)의 좌표가 (XW, YW, ZW)로서 표기되고, 컬러 카메라 프레임(202)의 좌표가 (XC, YC, ZC)로서 표기되고, 깊이 센서 수신기 프레임(204)의 좌표가 (XDC, YDC, ZDC)로서 표기되며, 관성 센서 프레임(206)의 좌표가 (XI, YI, ZI)로서 표기된 도 2에 묘사된 바와 같이 정의된다. 화살표(TI, TDC)는 깊이 센서 수신기 프레임 및 관성 센서 프레임과 연관된 전술된 상대적인 변환을 나타내며, 점선(O)은 컬러 카메라 프레임과 세계 프레임 사이의 통신(correspondence)을 나타낸다.
전술된 프레임 및 좌표에 추가하여, 다음의 표기법 및 정의가 아래의 설명에서 사용될 것이다:
p1: "프레임 1 내의 포인트 p의 좌표";
p2: "프레임 2 내의 포인트 p의 좌표";
R12: "프레임 1로부터 프레임 2로의 회전" 또는 "프레임 1 내에 기술된 프레임 2";
T12: "프레임 1 내에 기술된, 프레임 1의 좌표원점(origin)으로부터 프레임 2의 좌표원점으로의 변환"; 및
p1 = R12p2 + T12: "프레임 2로부터 프레임 1로의 포인트 p의 좌표 변환".
일반적으로, 위첨자는 포인트가 존재하는 프레임을 나타내고 아래첨자는 변환 순서와 같은 다른 정보를 나타낸다는 조약이 사용된다.
1.1 컬러 비디오 카메라 및 깊이 센서 장치를 이용하는 예시적인 시스템 구현 및 프로세스
전술된 바와 같이, 일 예시적인 시스템 구현은 일반적으로 도 3에 묘사된 바와 같이 깊이 센서 장치(302) 및 종래의 컬러 비디오 카메라(304)뿐 아니라 컴퓨터(306)도 포함하는 머리-장착 센서들(300)을 사용한다. 다양한 타입의 깊이 센서 장치가 사용될 수 있음이 이해될 것이다. 예시로서, 깊이 센서 장치는 적외선 프로젝터 및 적외선 비디오 카메라의 형태인 적외선 수신기일 수 있다. 적외선 프로젝터 및 카메라는 종래의 방식으로 작동하며, 적외선 프로젝터는 환경으로 적외선을 방출하고 적외선 카메라는 환경 내의 객체 및 표면으로부터 반사하는 적외선을 캡처한다. 반사된 적외선은 종래의 방식으로 환경 내의 포인트 및 특징과 수신기로부터의 거리를 계산하도록 사용된다. 컬러 비디오 카메라에 있어서, 이것은 (RGB(적색/녹색/청색) 비디오 카메라로도 알려진) 임의의 적절한 가시광선 비디오 카메라일 수 있다.
깊이 센서 장치 및 컬러 비디오 카메라는 사용자에 의해서 그 또는 그녀의 머리에 착용되도록 구성된다(예를 들어, 헬멧 상에 장착되거나, 고글 또는 안경 내에 내장되거나, 또는 둘 다). 깊이 센서 장치와 컬러 비디오 카메라 사이의 고정된 공간 관계가 유지된다는 것이 이해될 것이다. 또한, 깊이 센서 장치 및 컬러 비디오 카메라의 방향 및 위치가 사용자 머리의 방향 및 위치를 모방한다고 가정된다. 또한, 깊이 센서 장치 및 컬러 비디오 카메라는 동기화된 컬러 및 깊이 이미지 시퀀스를 제공하도록 구성된다.
추적에 앞서, 컬러 카메라 및 깊이 카메라는 그들 사이의 변환을 획득하도록 서로에 대해 캘리브레이트된다. 이것은 종래의 방법을 사용하여 달성된다. 캘리브레이션 결과를 이용하여, 컬러 이미지 내의 픽셀은 만약 가능하다면 상응하는 깊이 이미지 내의 픽셀에 맵핑될 수 있다. 일 구현에서, 포즈 추적은 광학 흐름 추적기(optical flow tracker)를 컬러 이미지 시퀀스에 적용함으로써 수행된다. 깊이 정보는 변환 계산에 사용된다. 그러나, 순수하게 광학 흐름 추적에 기초한 머리 포즈 추정은 결과적으로 드리프트(drift)를 야기할 수 있다. 따라서, 일 구현에서 하나 이상의 키프레임(keyframe)이 기록되며, 추적 결과를 이러한 키프레임과 비교함으로써 추적 결과가 정정된다.
보다 구체적으로, 도 4a 내지 4d를 참조하면, 본 명세서에 기술된 머리 포즈 추적 기술 실시예의 일 구현에서 깊이 센서 장치 및 컬러 비디오 카메라에 의해 캡처된 이미지 데이터는 다수의 프레임에 걸쳐 프레임 단위로 캡처된다. 각각의 캡처된 프레임은 차례로 전술된 컴퓨터에 입력된다. 따라서, 프로세스는 마지막으로 캡처된 컬러 비디오 및 깊이 프레임을 입력함으로써 시작된다(프로세스 동작(400)). 그 다음 새로운 키프레임이 확립될 것인지가 결정된다(프로세스 동작(402)). 일 버전에서, 제 1 프레임 입력은 키프레임으로서 확립된다. 이러한 제 1 키프레임은 이 프로세스 동안에 확립되는 유일한 키프레임일 수 있다. 이와 달리, 새로운 키프레임이 주기적으로 확립될 수 있다. 예를 들어, 마지막으로 입력된 컬러 프레임이 이전에 확립된 키프레임 내에 묘사된 장면의 규정된 부분(예로서, 40%)보다 적은 부분을 묘사할 때마다 새로운 키프레임이 확립될 수 있다. 따라서, 주위 장면의 시각적 특징 파노라마가 시간이 흐름에 따라 구성되도록 키프레임들의 집합이 기록될 수 있다. 키프레임 또는 키프레임들을 확립하는 목적은 곧 더욱 자세하게 기술될 것이다.
새로운 키프레임이 확립되지 않을 것임이 결정될 때마다, 키프레임 매칭이 발생하는지 여부가 결정된다(프로세스 동작(404)). 광학 흐름 추적은 연속적인 프레임들 내의 특징 포인트를 추적한다. 연속적인 프레임들 사이에서 계산된 변환은 결과적으로 드리프트 효과를 생성할 수 있다. 일 구현에서, 이러한 드리프트 효과는 절대 기준(absolute reference)을 이용함으로써 정정된다. 이러한 절대 기준을 생성하는 하나의 방식은 연속적인 프레임들이 프로세싱될 때 다시 제 1 컬러 이미지 프레임으로 가서 하나 이상의 키프레임을 변환 행렬과 함께 기억하는 것이다. 현재 프레임이 키프레임 내에도 캡처된 장면의 부분(예로서, 50%)을 묘사할 때마다, 아래에서 곧 설명되는 것과 같이 드리프트에 대해 정정하는 것이 가능하다. 이러한 방식으로 키프레임 매칭을 이용하는 것은 일시적 추적 실패로부터의 회복을 가능하게 하는 장점도 갖는다는 것을 인지해야 한다. 그러나 아래에서 곧 설명될 이유로, 키프레임 매칭은 각각의 새로운 컬러 이미지 프레임 입력에 대해 수행되지 않을 수 있다. 키프레임 매칭이 마지막으로 입력된 컬러 이미지 프레임에 대해 수행되지 않을 때마다, 마지막으로 입력된 컬러 이미지 프레임과 마지막으로 입력된 컬러 이미지 프레임 직전에 생성된 컬러 이미지 프레임 사이의 매칭 특징(matching feature)을 식별하도록 제 1 프레임 입력 이후의 각각의 새로운 프레임 입력에 대해서 전술된 광학 흐름 기술이 사용된다(프로세스 동작(406)). 임의의 적절한 종래의 광학 흐름 방법이 이러한 목적을 위해 사용될 수 있지만, 일 구현에서 이것은 실시간 실행을 가능하게 하도록 계산 효율적이어야만 한다. 카메라 프레임 레이트가 약 30Hz라고 가정하면, 광학 흐름 추적기는 보통의 속도 모션에 대해 효율적으로 이전 프레임과 현재 프레임 사이에서 매치하는 포인트를 찾을 수 있다. 발견된 매칭 포인트의 수는 환경과 추적기 내의 파라미터 설정에 의존한다. 때때로 포인트 외의 이미지 특징들이 광학 흐름 절차에서 매칭된다는 것을 인지해야 한다. 본 명세서에서 제공된 설명은 매칭 포인트를 지칭하지만, 다른 매칭 특징들이 매칭 포인트 대신에, 또는 그에 추가로 사용될 수 있음이 이해될 것이다.
다음으로 프로세스 동작(420)에서, 광학 흐름 정보 및 이전에 입력된 깊이 프레임을 이용하여 현재 변환 행렬이 추정된다. 이러한 변환 행렬은 마지막으로 입력된 컬러 이미지 프레임 직전에 생성된 프레임으로부터 마지막으로 입력된 컬러 이미지 프레임으로의 포인트들의 평행이동 및 회전을 정의한다. 광학 흐름 기술이 두 프레임 내의 매칭 포인트의 2차원 이미지 좌표를 식별한다는 것이 인지해야 한다. 그러나, 스케일 모호성이 존재하고 정확도를 보장하기 어렵다. 여기에서 두 컬러 이미지 프레임에 상응하는 깊이 이미지가 사용된다. 깊이 이미지는 장면의 3차원 정보를 제공하며, 따라서 각각의 컬러 카메라 프레임에 대해 매칭 포인트의 3차원 위치가 발견될 수 있다. 둘 이상의 매칭 포인트 세트의 3차원 좌표가 주어지면, 전술된 변환 행렬이 표준 방법을 이용하여 추정될 수 있다.
그러나, 매칭 포인트가 종종 코너 포인트(corner point)라는 사실로 인해 상응하는 깊이 이미지로부터 컬러 이미지 내의 수정의 포인트에 대한 깊이 값을 알아내는 것은 어려울 수 있다. 따라서, 매칭 포인트가 3차원 코너일 가능성이 존재한다. 이러한 경우에, 깊이 맵 상에서 이러한 포인트의 투영(projection)은 에지 상에 또는 진공 영역 내에 놓일 수 있다. 이것은 두 개의 매치하는 포인트에 있어서 하나의 포인트는 더 가까운 표면상에서 발견될 수 있는 반면 다른 포인트는 더 먼 표면상에서 발견될 수 있거나, 또는 둘 중 하나가 유효하지 않은 깊이 값을 가질 수 있기 때문에 모호성을 발생시킨다. 이는 유용한 매칭의 수를 감소시킬 것이다. 이러한 문제를 해결하기 위해서, (도 4c에서 선택적 특성의 동작들을 나타내도록 점선 박스 내에 묘사된) 일 구현에서, 변환 행렬을 계산하기에 앞서 깊이 정정 모듈이 사용된다. 보다 구체적으로, 이러한 모듈은 직접 맵핑된 매칭 포인트 둘레에 작은 탐색 윈도우(searching window)(예로서, 3×3 픽셀)를 정의하는 것을 포함한다(프로세스 동작(408)). 그 다음 각 윈도우 내의 카메라에 가장 가까운 포인트가 식별되어 정제된(refined) 매칭 포인트로서 지정된다(프로세스 동작(410)). 그 다음 이러한 정제된 매칭 포인트는 프로세스 동작(420)에서 변환 행렬을 계산하도록 사용될 수 있다. 더 가까운 표면을 선택함으로써, 전술된 모호성이 방지된다.
광학 흐름 추적 동안, 매칭 포인트 이상점(matching point outlier)이 도입될 가능성이 높음이 인지되어야 한다. 이상점의 수는 사용된 매칭 알고리즘에 의해 전형적으로 식별되는 더 낮은 매칭 품질을 갖는 매칭을 삭제함으로써 감소될 수 있다. 보다 구체적으로, (도 4c에서 선택적 특성의 동작들을 나타내도록 점선 박스 내에 묘사된) 일 구현에서, 변환 행렬을 계산하기에 앞서 이전에 선택되지 않은 매칭 포인트들의 쌍이 선택된다(프로세스 동작(412)). 그 다음 프로세스 동작(414)에서 선택된 매칭 포인트를 식별하는 데 사용된 매칭 알고리즘에 의해 식별되는 매칭 품질 레벨이 규정된 최소 레벨(예로서, 1mm) 아래에 있는지 여부가 결정된다. 만약 그렇다면, 선택된 매칭 포인트는 매칭 포인트로서 지정해제된다(프로세스 동작(416)). 선택된 매칭 포인트가 지정해제되거나 선택된 포인트의 매칭 품질 레벨이 규정된 최소 레벨 아래에 있지 않다면, 선택되지 않은 임의의 남아있는 매칭 포인트들이 존재하는지 여부가 결정된다(프로세스 동작(418)). 만약 남아있는 매칭 포인트들이 존재하면, 프로세스 동작(412) 내지 프로세스 동작(418)이 모든 매칭 포인트들의 쌍이 고려될 때까지 필요에 따라 반복된다.
전술된 절차가 이상점 매칭 포인트의 수를 감소시킬 것이지만, 종종 남아있는 이상점으로 인해 높은 성능을 보장하지 않을 것이다. 따라서, 규정된 최소 레벨 아래에 있는 매칭 품질에 의해 표시된 바와 같은 나쁜 매칭 품질을 갖는 매칭을 삭제한 후에, 남아있는 이상점들 중 적어도 가장 뚜렷한 것을 추가로 제거하기 위한 반복적인 절차가 사용될 수 있다. 보다 구체적으로, (도 4d에서 선택적 특성의 동작들을 나타내도록 점선 박스 내에 묘사된) 일 구현에서, 마지막으로 추정된 변환 행렬(RAB, TAB)(이때 A는 현재 프레임 내의 포인트들의 세트 B 내에 있는 포인트에 각각 매칭하는 이전 프레임 내의 포인트들의 세트를 나타냄)이 세트 B 내의 포인트들을 변환하도록 사용된다(프로세스 동작(422)). 그 다음 각 변환된 포인트의 결과적인 포인트 좌표가 차이 정도(difference measure)를 확립하도록 세트 A 내에 있는 상응하는 포인트에 비교된다(프로세스 동작(424)). 다음으로, 매칭 포인트 쌍의 차이 정도의 평균이 계산되며, 프로세스 동작(426)에서 이러한 평균이 규정된 최소 레벨(예로서, 1mm)을 초과하는지 여부가 결정된다. 만약 평균이 규정된 최소 레벨을 초과한다면, 차이 정도가 크기에 의해 순서화되어 가장 큰 차이 정도로부터 시작해 내림차순인 차이 정도의 규정된 백분율(예로서, 10%)이 식별된다(프로세스 동작(428)). 그 다음 식별된 차이 정도 중 하나와 연관된 각 매칭 쌍의 세트 B 내의 매칭 포인트와 그에 상응하는 세트 A 내의 매칭 포인트가 매칭 포인트 쌍으로서 지정해제된다(프로세스 동작(430)). 다음으로, 변환 행렬이 남아있는 매칭 포인트 쌍들을 이용하여 재추정된다(프로세스 동작(432)). 그 다음 변환 행렬 재추정 반복의 규정된 최대 수(예로서, 3)에 도달되었는지 여부가 결정된다(프로세스 동작(434)). 만약 그렇지 않다면, 프로세스 동작(422) 내지 프로세스 동작(434)이 적절하게 반복된다. 이것은 이전에 계산된 평균이 규정된 최소 레벨을 초과하지 않을 때까지 또는 변환 행렬 재추정 반복의 규정된 최대 수에 도달하였다고 결정될 때까지 계속된다.
다음으로 제 1 입력 컬러 이미지 프레임으로부터 마지막으로 입력된 프레임 직전의 컬러 이미지 프레임 입력으로의 포인트들의 평행이동 및 회전을 정의하는 최종 변환 행렬을 마지막으로 입력된 컬러 이미지 프레임 직전의 프레임으로부터 마지막으로 입력된 컬러 이미지 프레임으로의 포인트들의 평행이동 및 회전을 정의하는 현재 변환 행렬과 누적함으로써 제 1 컬러 이미지 프레임 입력으로부터 마지막 프레임 입력으로의 포인트들의 평행이동 및 회전을 정의하는 최종 변환 행렬이 추정된다(프로세스 동작(438)). 전술된 변환 행렬은 종래의 방법을 이용하여 최종 변환 행렬을 형성하도록 누적된다는 것이 추가로 인지되어야 한다.
그러나 만약 프로세스 동작(402)에서 새로운 키프레임이 확립된다고 결정된다면, 컬러 카메라의 마지막으로 입력된 프레임이 기록되어 현재 키프레임으로서 지정된다(프로세스 동작(436)). 또한, 키프레임 매칭이 발생하였는지에 대한 결정과 관련하여, 현재 프레임과 키프레임이 모두 장면의 동일한 부분을 묘사한다 해도 현재 프레임과 키프레임 사이의 뚜렷한 모션이 존재할 수 있기 때문에, 전형적으로 (종래의 SURF(Speeded Up Robust Features) 매칭 절차를 이용하여 발견될 수 있는 것과 같은) 강한 특징이 매칭시에 정확한 결과를 획득하기 위해 필요하다. 불행히도, 이러한 강력한 특징 검출기 및 서술자는 일반적으로 계산 소모적이다. 따라서 일 버전에서, 키프레임 매칭은 단지 몇 프레임마다(예로서, 15 프레임) 수행된다. 드리프트가 단지 몇 프레임 동안 변환 오류가 누적된 후에 뚜렷해질 것이기 때문에 이것이 이해될 수 있다. 전술된 관점에서, 도 5는 키프레임 매칭이 발생하는지 여부를 결정하는 하나의 방식을 개략적으로 서술한다. 먼저, 키프레임 매칭 절차가 마지막으로 수행될 때까지 규정된 수의 프레임이 입력되었는지가 결정된다(프로세스 동작(500)). 만약 규정된 수의 프레임이 입력되지 않았다면, 새로운 키프레임 매칭을 위한 시간이 아니라고 지정된다(프로세스 동작(502)). 그러나, 만약 규정의 수의 프레임이 입력되었다면, 키프레임 매칭 절차를 수행하기 위한 시간으로 간주된다(프로세스 동작(504)).
전술된 관점에서 다시 도 4a를 참조하면, 만약 프로세스 동작(404)에서 키프레임 매칭이 발생한다고 결정되거나 마지막으로 입력된 컬러 이미지 프레임이 현재 키프레임으로서 지정되었다고 결정되면, (아래에서 식별된 키프레임으로 지칭되는) 마지막으로 입력된 프레임 내에서 묘사된 장면의 적어도 규정된 부분을 묘사하는 키프레임과 마지막으로 입력된 컬러 이미지 프레임 사이의 매칭 포인트들이 식별된다(프로세스 동작(440)). 앞서 언급된 바와 같이, 일 구현에서 종래의 SURF 매칭 절차가 이러한 목적을 위해 사용된다. 프로세스 동작(408 내지 410) 및 프로세스 동작(412 내지 418)에서 앞서 기술된 선택적인 매칭 포인트 정제 및 이상점 제거 동작들이 식별된 키프레임과 마지막으로 입력된 프레임 사이의 매칭 포인트 위치를 정제하기 위해서도 구현될 수 있음이 인지되어야 한다.
마지막으로 입력된 컬러 이미지 프레임과 식별된 키프레임 사이의 매칭 포인트들이 식별되면, 프로세스 동작(442)에서 현재 변환 행렬(즉, (Rt ,k, Tt ,k))을 추정하도록 상응하는 깊이 프레임으로부터의 3차원 위치 데이터와 함께 사용된다. 이러한 변환 행렬은 식별된 키프레임(즉, k)으로부터 마지막으로 입력된 프레임(즉, t)으로의 포인트들의 평행이동 및 회전을 정의한다. 이러한 변환 행렬 추정은 연속적인 프레임들 사이의 변환 행렬이 프로세스 동작(420)에서 추정된 것과 동일한 방식으로 달성된다. 또한, 앞서 프로세스 동작(422 내지 434)에서 설명되었던 선택적인 반복 이상점 제거 동작들이 추정된 변환의 정확도를 잠재적으로 증가시키도록 구현될 수 있다. 그 다음 제 1 컬러 이미지 프레임 입력으로부터 마지막으로 입력된 프레임으로의 포인트들의 평행이동 및 회전을 정의하는 키프레임-매칭 변환 행렬이 식별된 키프레임과 마지막으로 입력된 프레임 사이에서 획득된 변환 행렬 및 제 1 컬러 이미지 프레임 입력(즉, 프레임 1)으로부터 식별된 키프레임으로의 포인트들의 평행이동 및 회전을 정의하는 이전에 계산된 키프레임 변환 행렬(즉, (R1 ,t, T1 ,t))을 이용하여 추정된다(프로세스 동작(444)). 일 구현에서 이는 식별된 키프레임과 마지막으로 입력된 프레임 사이에서 추정된 변환 행렬과 제 1 프레임과 식별된 키프레임 사이의 이전에 계산된 변환 행렬을 곱하여 달성된다. 마지막으로 입력된 컬러 이미지 프레임이 현재 키프레임으로 지정되는 경우에, 이러한 프레임과 연관된 키프레임-매칭 변환 행렬은 프레임에 대한 키프레임 변환 행렬로 지정된다(프로세스 동작(445)). 이것은 다음 키프레임이 생성될 때 키프레임-매칭 변환 행렬을 계산할 때 사용하기 위해 제 1 컬러 이미지 프레임 입력으로부터 현재 키프레임으로의 포인트들의 평행이동 및 회전을 정의하는 사전-계산된 키프레임 변환 행렬을 획득한다. 또한, 제 1 입력 컬러 이미지 프레임으로부터 마지막으로 입력된 프레임 직전의 컬러 이미지 프레임 입력으로의 포인트들의 평행이동 및 회전을 정의하는 최종 변환 행렬을 마지막으로 입력된 컬러 이미지 프레임으로부터 마지막으로 입력된 컬러 이미지 프레임 직전의 프레임으로의 포인트들의 평행이동 및 회전을 정의하는 현재 변환 행렬과 누적함으로써 제 1 컬러 이미지 프레임 입력으로부터 마지막으로 입력된 프레임으로의 포인트들의 평행이동 및 회전을 정의하는 변환 행렬이 추정된다(프로세스 동작(446)). 앞서 언급된 바와 같이, 광학 흐름 추적에 있어서 제 1 프레임(즉, (R12, T12), (R23, T23), ..., (Rk -1,k, Tk -1,k))으로 시작하여 각 프레임으로부터 다음 프레임으로 추정된 변환이 종래의 방법을 사용하여 제 1 프레임 키프레임(즉, 프레임 1)으로부터 가장 최근의 프레임(즉, 프레임 k)으로의 변환 행렬을 생성하도록 누적될 수 있기 때문에 이것이 가능하다.
프로세스 내의 이 시점에서, 제 1 컬러 이미지 프레임 입력으로부터 마지막으로 입력된 프레임으로의 포인트들의 평행이동 및 회전을 정의하는 개별적인 변환 행렬이 광학 흐름 추적 및 키프레임 매칭 모두에 기초하여 존재한다. 이러한 변환 행렬은 단일의 결합된 변환 행렬을 생성하도록 결합된다(프로세스 동작(448)).
일 구현에서, 두 변환 행렬 추정 사이의 가중된 보간(interpolation)이 주기적으로 더 나은 변환을 획득하기 위해 수행된다. 깊이 이미지를 통해 매칭 포인트들의 3차원 위치가 알려졌기 때문에, 3차원 정보를 이용하여 변환 추정 오류 메트릭을 정의하는 것이 가능하다. 보다 구체적으로, 좌표 프레임 1(F1)로부터 이미지 1(I1)를 고려한다. 그리고 좌표 프레임 2(F2)로부터 이미지 2(I2)를 고려한다. 이전에 추정된 변환 행렬(R12, T12)은 F1로부터 F2로의 회전 및 평행이동을 기술한다. F2로부터의 I2 내의 이미지 포인트들을 (R12, T12)을 적용함으로써 F1로 변환된다. 그 다음 F1의 좌표원점(그 시점의 카메라의 광학 중심)이 변환된 각 포인트와 연결된다. 만약 3차원 공간에서 연결된 라인 상의 I1 내의 포인트가 존재하면, 이러한 두 포인트 사이의 거리가 계산된다. 전술된 오류 메트릭은 계산에 포함된 모든 포인트들에 걸쳐 계산된 거리의 평균이다(즉, 라인들 상의 I1 포인트가 존재하는 것). 계산량을 감소시키기 위해서, 일 구현에서 이미지들이 전술된 변환 절차에 앞서 동일한 정도로(예로서, 50%) 다운-샘플링된다. 또한, 고려되지 않은 변환 후에 I1에 묘사된 장면 밖에 있는 일부 포인트가 존재할 것이다.
변환 추정 오류 메트릭(아래에서는 오류로 지칭됨)이 계산되면, 현재 프레임에 대해 계산된 두 변환 행렬 사이의 보간이 수행된다. 일 구현에서, 이것은 쿼터니언(quaternion) 공간 내의 선형 보간을 사용함으로써 수행된다. 보다 구체적으로 전술된 가중이 아래의 수식을 사용하여 계산되며:
Figure 112014074871545-pct00001
이때 a는 상수(예로서, 10000)이다. 결과적인 가중값이 현재 프레임에 대해 계산된 두 변환 행렬 사이의 보간을 위해 사용하기 전에 정규화된다. 일 구현에서, 이러한 보간은 아래와 같이 달성된다. p1 및 q1은 (쿼터니온에서) 제 1 변환 행렬의 위치 및 방향을 표시한다. p2 및 q2는 (쿼터니온에서) 제 2 변환 행렬의 위치 및 방향을 표시한다. w1은 제 1 변환 행렬에 상응하는 오류를 표시하고, w2는 제 2 변환 행렬에 상응하는 오류를 나타낸다. a1=w1/(w1+w2)이고, a2=w2/(w1+w2)이다. 보간된 위치 및 쿼터니온은 p=a1*p1+a2*p2, q=a1*q1+a2*q2이다. 쿼터니온에서 기술된 방향의 전술된 선형 보간은 두 쿼터니온 사이의 각도가 작을 때에도 잘 적용된다. 구상 선형 보간(spherical linear interpolation)이 더 큰 각도에 대해 사용될 수 있다.
다시 도 4b를 참조하면, 단일의 결합된 변환 행렬이 생성되면 최종 변환 행렬로 지정된다(프로세스 동작(450)). 그 다음 (프로세스 동작(438) 또는 프로세스 동작(450)에서 생성된) 최종 변환 행렬이 마지막으로 입력된 컬러 이미지 프레임 내에 묘사된 장면 내의 현재 머리 포즈 위치 및 방향을 식별하도록 제 1 컬러 이미지 프레임 입력 내에 묘사된 장면 내의 이전에 결정된 머리 포즈 위치 및 방향에 적용된다(프로세스 동작(452)). 그 다음 현재 머리 포즈 및 변환 행렬이 증강현실 애플리케이션 내의 현재 프레임 내의 가상 객체의 위치를 계산하는 것을 포함하는 다양한 다른 태스크를 위해 사용될 수 있다.
다음으로 새로운 컬러 비디오 및 깊이 프레임이 입력되었는지 여부가 결정된다(프로세스 동작(454)). 만약 그렇다면, 그 다음 필요에 따라 프로세스 동작(400 내지 454)이 반복된다. 이것은 새로운 프레임이 캡처되어 컴퓨터에 입력되는 동안 계속된다.
1.2 컬러 비디오 카메라, 깊이 센서 장치 및 관성 센서들을 이용한 예시적인 시스템 구현 및 프로세스
전술된 바와 같이, 다른 예시적인 시스템 구현은 일반적으로 도 6에 도시된 바와 같이 깊이 센서 장치(602), 종래의 컬러 비디오 카메라(604) 및 관성 센서들의 세트(606)를 포함하는 머리-장착 센서(600)와 함께 컴퓨터(608)를 사용한다. 다시, 전술된 적외선 프로젝터 및 적외선 카메라 장치와 같은 다양한 타입의 깊이 센서 장치가 사용될 수 있음이 이해될 것이다. 관성 센서와 관련하여, 일반적으로 이것은 가속도계와 자이로스코프의 조합을 사용하여 속도, 방향 및 중력을 측정하는 센서들의 그룹을 포함한다. 일 구현에서 자이로스코프 및 가속도계(예를 들어, 센서가 하나의 작은 칩 내에 집적될 수 있게 하는 3-축 MEM 자이로스코프 및 3-축 MEM 가속도계)를 포함하는 종래의 관성 측정 장치가 사용된다. 자이로스코프는 3개의 축 둘레의 각속도를 측정하고, 가속도계는 3개의 축을 따라 선형 가속도를 측정한다.
깊이 센서 장치, 컬러 비디오 카메라 및 관성 센서들은 사용자에 의해서 그 또는 그녀의 머리에 착용되도록 구성된다는 것이 인지되어야 한다(예를 들어, 헬멧 상에 장착되거나, 고글 또는 안경 내에 내장되거나, 또는 둘 다). 센서들 사이의 고정된 공간 관계가 유지되며 이들이 공동 좌표 시스템 원점을 공유한다는 것이 이해될 것이다. 또한, 이러한 센서들의 방향 및 위치가 사용자 머리의 방향 및 위치를 모방한다고 가정된다. 또한, 깊이 센서 장치 및 컬러 비디오 카메라는 동기화된 컬러 및 깊이 이미지 시퀀스를 제공하도록 구성된다.
관성 센서들의 추가는 특히 환경이 시각적으로 풍부한 텍스처를 갖지 않는 경우에 장점을 갖는다. 보다 구체적으로, 카메라 및 관성 센서들은 컴플리멘터리 특징들을 갖는다. 예를 들어, 프로세싱 때 카메라는 더 낮은 프레임 레이트를 가지고 더 많은 계산 능력을 필요로 하지만, 시각적인 특징이 풍부한 환경 내의 관성 센서들보다 상당히 더 정확한 측정을 제공할 수 있다. 반면에, 관성 센서들은 매우 높은 프레임 레이트에 도달할 수 있고 프로세싱이 훨씬 더 효율적이며, 예시적인 시스템이 시각적 특성이 약한 주기를 극복하도록 도울 수 있다. 또한, 자이로스코프 및 가속도계에 기초한 추적은 수 초 내에 뚜렷한 드리프트를 야기할 것이지만, 카메라가 랜드마크를 기록하여 드리프트를 정정하도록 사용될 수 있다.
일 구현에서, 포즈 추적은 관성 센서들로부터의 측정을 이용하여 수행되며, 이용가능한 경우 컬러 및 깊이 이미지로부터의 시각적 측정과 이것을 결합한다. 다시, 시각적 측정과 관련하여 광학 흐름 추적기가 컬러 이미지 시퀀스에 적용된다. 깊이 정보는 변환 계산에 사용된다. 그러나, 순수하게 광학 흐름 추적에 기초한 머리 포즈 추정은 결과적으로 드리프트를 야기할 수 있다. 따라서, 일 구현에서 하나 이상의 키프레임이 기록되며, 추적 결과를 이러한 키프레임과 비교함으로써 추적 결과가 정정된다.
보다 구체적으로, 도 7a 내지 7e를 참조하면, 본 명세서에 기술된 머리 포즈 추적 기술 실시예의 일 구현에서 깊이 센서 장치 및 컬러 비디오 카메라에 의해 캡처된 이미지 데이터는 다수의 프레임에 걸쳐 프레임 단위로 캡처된다. 또한, 관성 센서들에 의해 캡처된 관성 데이터는 전술된 이미지 데이터와 적어도 동일하거나 전형적으로는 더 빠른 레이트로 주기적으로 캡처된다. 편의를 위해서, 동시에 캡처된 관성 센서 판독들의 각각의 세트는 관성 센서들의 프레임으로 지칭될 것이다. 각각의 캡처된 이미지 및 관성 센서 프레임은 차례로 전술된 컴퓨터에 입력된다. 프로세스는 들어오는 프레임을 모니터링함으로써 시작된다(프로세스 동작(700)). (제 1 프레임 이후에) 새로운 관성 센서 프레임이 입력되었는지가 주기적으로 결정된다(프로세스 동작(702)). 만약 그렇지 않다면, 모니터링이 계속된다. 만약 새로운 관성 센서 프레임이 입력되었다면, 현재 관성 센서 기반 변환 행렬이 추정된다(프로세스 동작(704)). 이러한 관성 센서 기반 변환 행렬은 마지막으로 입력된 관성 센서 프레임 직전의 관성 센서 프레임 입력으로부터 마지막으로 입력된 관성 센서 프레임으로의 포인트들의 평행이동 및 회전을 정의하고, 종래의 방법을 이용하여 추정된다. 그 다음 관성 센서 기반 변환 행렬은 제 1 관성 센서 프레임 입력으로부터 마지막으로 입력된 관성 센서 프레임으로의 포인트들의 평행이동 및 회전을 정의하는 최종 관성 센서 기반 변환 행렬을 추정하도록 사용된다(프로세스 동작(706)). 이것은 종래의 방법을 이용하여 제 1 관성 센서 프레임으로부터 마지막으로 입력된 관성 센서 프레임 직전의 관성 센서 프레임 입력으로의 포인트들의 평행이동 및 회전을 정의하는 단일의 결합된 변환 행렬과 마지막으로 입력된 관성 센서 프레임 직전의 관성 센서 프레임 입력으로부터 마지막으로 입력된 관성 센서 프레임으로의 포인트들의 평행이동 및 회전을 정의하는 현재 관성 센서 기반 변환 행렬을 누적함으로써 달성된다. 그 다음 새로운 컬러 비디오 및 깊이 프레임이 생성되었는지가 결정된다(프로세스 동작(708)). 만약 그렇지 않다면, 현재 머리 포즈 위치 및 방향을 식별하기 위해서 제 1 관성 센서 프레임 입력과 연관된 이전에 결정된 머리 포즈 위치 및 방향에 최종 관성 센서 기반 변환 행렬이 적용된다(프로세스 동작(710)). 그 다음 현재 머리 포즈 및 최종 관성 센서 기반 변환 행렬이 증강 현실 애플리케이션 내의 현재 프레임 내의 가상 객체의 위치를 계산하는 것을 포함하는 다양한 다른 태스크를 위해 사용될 수 있다.
그러나, 만약 프로세스 동작(708)에서 새로운 컬러 비디오 및 깊이 프레임이 생성되었다고 결정되면, 도 4a 내지 4d와 관련하여 기술되었던 것과 유사한 방식으로 프로세싱된다. 보다 구체적으로, 새로운 컬러 비디오 및 깊이 프레임이 입력되고(프로세스 동작(712)), 새로운 키프레임이 확립될 것인지가 결정된다(프로세스 동작(714)). 일 버전에서, 제 1 프레임 입력은 키프레임으로서 확립된다. 이러한 제 1 키프레임은 이 프로세스 동안에 확립되는 유일한 키프레임일 수 있다. 이와 달리, 새로운 키프레임이 주기적으로 확립될 수 있다. 예를 들어, 마지막으로 입력된 컬러 프레임이 이전에 확립된 키프레임 내에 묘사된 장면의 규정된 부분(예로서, 40%)보다 적은 부분을 묘사할 때마다 새로운 키프레임이 확립될 수 있다. 따라서, 주위 장면의 시각적 특징 파노라마가 시간이 흐름에 따라 구성되도록 키프레임들의 집합이 기록될 수 있다. 키프레임 또는 키프레임들을 확립하는 목적은 곧 더욱 자세하게 기술될 것이다.
새로운 키프레임이 확립되지 않을 것임이 결정될 때마다, 키프레임 매칭이 발생하는지 여부가 결정된다(프로세스 동작(716)). 광학 흐름 추적은 연속적인 프레임들 내의 특징 포인트를 추적한다. 연속적인 프레임들 사이에서 계산된 변환은 결과적으로 드리프트 효과를 생성할 수 있다. 일 구현에서, 이러한 드리프트 효과는 절대 기준을 이용함으로써 정정된다. 이러한 절대 기준을 생성하는 하나의 방식은 연속적인 프레임들이 프로세싱될 때 다시 제 1 컬러 이미지 프레임으로 가서 하나 이상의 키프레임을 변환 행렬과 함께 기억하는 것이다. 현재 프레임이 키프레임 내에도 캡처된 장면의 부분(예로서, 50%)을 묘사할 때마다, 아래에서 곧 설명되는 것과 같이 드리프트에 대해 정정하는 것이 가능하다. 이러한 방식으로 키프레임 매칭을 이용하는 것은 일시적 추적 실패로부터의 회복을 가능하게 하는 장점도 갖는다는 것을 인지해야 한다. 그러나 아래에서 곧 설명될 이유로, 키프레임 매칭은 각각의 새로운 컬러 이미지 프레임 입력에 대해 수행되지 않을 수 있다. 키프레임 매칭이 마지막으로 입력된 컬러 이미지 프레임에 대해 수행되지 않을 때마다, 마지막으로 입력된 컬러 이미지 프레임과 마지막으로 입력된 컬러 이미지 프레임 직전에 생성된 컬러 이미지 프레임 사이의 매칭 특징을 식별하도록 제 1 프레임 이후의 각각의 새로운 프레임 입력에 대해, 전술된 광학 흐름 기술이 사용된다(프로세스 동작(718)). 임의의 적절한 종래의 광학 흐름 방법이 이러한 목적을 위해 사용될 수 있지만, 일 구현에서 이것은 실시간 실행을 가능하게 하도록 계산 효율적이어야만 한다. 카메라 프레임 레이트가 약 30Hz라고 가정하면, 광학 흐름 추적기는 보통의 속도 모션에 대해 효율적으로 이전 프레임과 현재 프레임 사이에서 매치하는 포인트를 찾을 수 있다. 발견된 매칭 포인트의 수는 환경과 추적기 내의 파라미터 설정에 의존한다. 때때로 포인트 외의 이미지 특징들이 광학 흐름 절차에서 매칭된다는 것이 인지되어야 한다. 본 명세서에서 제공된 설명은 매칭 포인트를 지칭하지만, 다른 매칭 특징들이 매칭 포인트 대신에, 또는 그에 추가로 사용될 수 있음이 이해될 것이다.
다음으로 프로세스 동작(732)에서, 광학 흐름 정보 및 이전에 입력된 깊이 프레임을 이용하여 현재 변환 행렬이 추정된다. 이러한 변환 행렬은 마지막으로 입력된 컬러 이미지 프레임 직전에 생성된 프레임으로부터 마지막으로 입력된 컬러 이미지 프레임으로의 포인트들의 평행이동 및 회전을 정의한다. 전술된 바와 같이, 광학 흐름 기술이 두 프레임 내의 매칭 포인트의 2차원 이미지 좌표를 식별한다. 그러나, 스케일 모호성이 존재하고 정확도를 보장하기 어렵다. 여기에서 두 컬러 이미지 프레임에 상응하는 깊이 이미지가 사용된다. 깊이 이미지는 장면의 3차원 정보를 제공하며, 따라서 각각의 컬러 카메라 프레임에 대해 매칭 포인트의 3차원 위치가 발견될 수 있다. 둘 이상의 매칭 포인트 세트의 3차원 좌표가 주어지면, 전술된 변환 행렬이 표준 방법을 이용하여 추정될 수 있다.
전술된 바와 같이, 매칭 포인트가 종종 코너 포인트라는 사실로 인해 상응하는 깊이 이미지로부터 컬러 이미지 내의 수정의 포인트에 대한 깊이 값을 알아내는 것은 어려울 수 있다. 따라서, 매칭 포인트가 3차원 코너일 가능성이 존재한다. 이러한 경우에, 깊이 맵 상에서 이러한 포인트의 투영은 에지 상에 또는 진공 영역 내에 놓일 수 있다. 이것은 두 개의 매치하는 포인트에 있어서 하나의 포인트는 더 가까운 표면상에서 발견될 수 있는 반면 다른 포인트는 더 먼 표면상에서 발견될 수 있거나, 또는 둘 중 하나가 유효하지 않은 깊이 값을 가질 수 있기 때문에 모호성을 발생시킨다. 이는 유용한 매칭의 수를 감소시킬 것이다. 이러한 문제를 해결하기 위해서, (도 7d에서 선택적 특성의 동작들을 나타내도록 점선 박스 내에 묘사된) 일 구현에서, 변환 행렬을 계산하기에 앞서 깊이 정정 모듈이 사용된다. 보다 구체적으로, 이러한 모듈은 직접 맵핑된 매칭 포인트 둘레에 작은 탐색 윈도우(예로서, 3×3 픽셀)를 정의하는 것을 포함한다(프로세스 동작(720)). 그 다음 각 윈도우 내의 카메라에 가장 가까운 포인트가 식별되어 정제된 매칭 포인트로서 지정된다(프로세스 동작(722)). 그 다음 이러한 정제된 매칭 포인트는 프로세스 동작(732)에서 변환 행렬을 계산하도록 사용될 수 있다. 더 가까운 표면을 선택함으로써, 전술된 모호성이 방지된다.
또한, 광학 흐름 추적 동안 매칭 포인트 이상점이 도입될 가능성이 높다. 이상점의 수는 사용된 매칭 알고리즘에 의해 전형적으로 식별되는 더 낮은 매칭 품질을 갖는 매칭을 삭제함으로써 감소될 수 있다. 보다 구체적으로, (도 7d에서 선택적 특성의 동작들을 나타내도록 점선 박스 내에 묘사된) 일 구현에서, 변환 행렬을 계산하기에 앞서 이전에 선택되지 않은 매칭 포인트들의 쌍이 선택된다(프로세스 동작(724)). 그 다음 프로세스 동작(726)에서 선택된 매칭 포인트를 식별하는 데 사용된 매칭 알고리즘에 의해 식별되는 매칭 품질 레벨이 규정된 최소 레벨(예로서, 1mm) 아래에 있는지가 결정된다. 만약 그렇다면, 선택된 매칭 포인트는 매칭 포인트로서 지정해제된다(프로세스 동작(728)). 선택된 매칭 포인트가 지정해제되었거나 선택된 포인트의 매칭 품질 레벨이 규정된 최소 레벨 아래에 있지 않다면, 선택되지 않은 임의의 남아있는 매칭 포인트들이 존재하는지가 결정된다(프로세스 동작(730)). 만약 남아있는 매칭 포인트들이 존재하면, 프로세스 동작(724) 내지 프로세스 동작(730)이 모든 매칭 포인트들의 쌍이 고려될 때까지 필요에 따라 반복된다.
전술된 바와 같이, 전술된 절차가 이상점 매칭 포인트의 수를 감소시킬 것이지만, 종종 남아있는 이상점으로 인해 높은 성능을 보장하지 않을 것이다. 따라서, 규정된 최소 레벨 아래에 있는 매칭 품질에 의해 표시된 바와 같은 나쁜 매칭 품질을 갖는 매칭을 삭제한 후에, 남아있는 이상점들 중 적어도 가장 뚜렷한 것을 추가로 제거하기 위해 반복적인 절차가 사용될 수 있다. 보다 구체적으로, (도 7e에서 선택적 특성의 동작들을 나타내도록 점선 박스 내에 묘사된) 일 구현에서, 마지막으로 추정된 변환 행렬(RAB, TAB)(이때 A는 현재 프레임 내의 포인트들의 세트 B 내에 있는 포인트에 각각 매칭하는 이전 프레임 내의 포인트들의 세트를 나타냄)이 세트 B 내의 포인트들을 변환하도록 사용된다(프로세스 동작(734)). 그 다음 각 변환된 포인트의 결과적인 포인트 좌표가 차이 정도를 확립하도록 세트 A 내에 있는 상응하는 포인트에 비교된다(프로세스 동작(736)). 다음으로, 매칭 포인트 쌍의 차이 정도의 평균이 계산되며, 프로세스 동작(738)에서 이러한 평균이 규정된 최소 레벨(예로서, 1mm)을 초과하는지가 결정된다. 만약 평균이 규정된 최소 레벨을 초과한다면, 차이 정도가 크기에 의해 순서화되어 가장 큰 차이 정도로부터 시작해 내림차순인 차이 정도의 규정된 백분율(예로서, 10%)이 식별된다(프로세스 동작(740)). 그 다음 식별된 차이 정도 중 하나와 연관된 각 매칭 쌍의 세트 B 내의 매칭 포인트와 그에 상응하는 세트 A 내의 매칭 포인트가 매칭 포인트 쌍으로서 지정해제된다(프로세스 동작(742)). 다음으로, 변환 행렬이 남아있는 매칭 포인트 쌍들을 이용하여 재추정된다(프로세스 동작(744)). 그 다음 변환 행렬 재추정 반복의 규정된 최대 수(예로서, 3)에 도달되었는지가 결정된다(프로세스 동작(746)). 만약 그렇지 않다면, 프로세스 동작(734) 내지 프로세스 동작(746)이 적절하게 반복된다. 이것은 이전에 계산된 평균이 규정된 최소 레벨을 초과하지 않을 때까지 또는 변환 행렬 재추정 반복의 규정된 최대 수에 도달하였다고 결정될 때까지 계속된다.
다음으로 제 1 관성 센서 프레임으로부터 마지막으로 입력된 프레임 직전의 컬러 이미지 프레임 입력으로의 포인트들의 평행이동 및 회전을 정의하는 단일의 결합된 변환 행렬을 마지막으로 입력된 컬러 이미지 프레임 직전의 프레임으로부터 마지막으로 입력된 컬러 이미지 프레임으로의 포인트들의 평행이동 및 회전을 정의하는 현재 변환 행렬과 누적함으로써 제 1 관성 센서 프레임 입력으로부터 마지막으로 입력된 컬러 이미지 프레임으로의 포인트들의 평행이동 및 회전을 정의하는 변환 행렬이 추정된다(프로세스 동작(750)). 전술된 변환 행렬은 종래의 방법을 이용하여 이러한 변환 행렬을 형성하도록 누적된다는 것 또한 인지되어야 한다.
그러나 만약 프로세스 동작(714)에서 새로운 키프레임이 확립된다고 결정된다면, 컬러 카메라의 마지막으로 입력된 프레임이 기록되어 현재 키프레임으로서 지정된다(프로세스 동작(748)). 또한, 키프레임 매칭이 발생하였는지에 대한 결정과 관련하여, 현재 프레임과 키프레임이 모두 장면의 동일한 부분을 묘사한다 해도 현재 프레임과 키프레임 사이의 뚜렷한 모션이 존재할 수 있기 때문에, 전형적으로 (종래의 SURF(Speeded Up Robust Features) 매칭 절차를 이용하여 발견될 수 있는 것과 같은) 강한 특징이 정확한 결과를 획득하기 위해 매칭시에 필요하다. 불행히도, 이러한 강력한 특징 검출기 및 서술자는 일반적으로 계산 소모적이다. 따라서 일 버전에서, 전술된 바와 같이 키프레임 매칭은 단지 몇 프레임마다(예로서, 15 프레임) 수행된다. 드리프트가 단지 몇 프레임 동안 변환 오류가 누적된 후에 뚜렷해질 것이기 때문에 이것이 이해될 수 있다. 전술된 관점에서, 도 5는 키프레임 매칭이 발생하는지 여부를 결정하는 하나의 방식을 개략적으로 서술한다. 먼저, 키프레임 매칭 절차가 마지막으로 수행될 때까지 규정된 수의 프레임이 입력되었는지가 결정된다(프로세스 동작(500)). 만약 규정된 수의 프레임이 입력되지 않았다면, 새로운 키프레임 매칭을 위한 시간이 아니라고 지정된다(프로세스 동작(502)). 그러나, 만약 규정의 수의 프레임이 입력되었다면, 키프레임 매칭 절차를 수행하기 위한 시간으로 간주된다(프로세스 동작(504)).
전술된 관점에서 다시 도 7b를 참조하면, 만약 프로세스 동작(716)에서 키프레임 매칭이 발생한다고 결정되거나 마지막으로 입력된 컬러 이미지 프레임이 현재 키프레임으로서 지정되었다고 결정되면, (아래에서 식별된 키프레임으로 지칭되는) 마지막으로 입력된 프레임 내에서 묘사된 장면의 적어도 규정된 부분을 묘사하는 키프레임과 마지막으로 입력된 컬러 이미지 프레임 사이의 매칭 포인트들이 식별된다(프로세스 동작(752)). 앞서 언급된 바와 같이, 일 구현에서 종래의 SURF 매칭 절차가 이러한 목적을 위해 사용된다. 프로세스 동작(720 내지 722) 및 프로세스 동작(724 내지 730)에서 앞서 기술된 선택적인 매칭 포인트 정제 및 이상점 제거 동작들이 식별된 키프레임과 마지막으로 입력된 프레임 사이의 매칭 포인트 위치를 정제하기 위해서도 구현될 수 있음이 인지되어야 한다.
마지막으로 입력된 컬러 이미지 프레임과 식별된 키프레임 사이의 매칭 포인트들이 식별되면, 프로세스 동작(754)에서 현재 변환 행렬(즉, (Rt ,k, Tt ,k))을 추정하도록 상응하는 깊이 프레임으로부터의 3차원 위치 데이터와 함께 사용된다. 이러한 변환 행렬은 식별된 키프레임(즉, k)으로부터 마지막으로 입력된 프레임(즉, t)으로의 포인트들의 평행이동 및 회전을 정의한다. 이러한 변환 행렬 추정은 연속적인 프레임들 사이의 변환 행렬이 프로세스 동작(732)에서 추정된 것과 동일한 방식으로 달성된다. 또한, 앞서 프로세스 동작(734 내지 746)에서 설명되었던 선택적인 반복 이상점 제거 동작들이 추정된 변환의 정확도를 잠재적으로 증가시키도록 구현될 수 있다. 그 다음 제 1 컬러 이미지 프레임 입력으로부터 마지막으로 입력된 프레임으로의 포인트들의 평행이동 및 회전을 정의하는 키프레임-매칭 변환 행렬이, 식별된 키프레임과 마지막으로 입력된 컬러 이미지 프레임 사이에서 획득된 현재 변환 행렬 및 제 1 컬러 이미지 프레임 입력(즉, 프레임 1)으로부터 식별된 키프레임으로의 포인트들의 평행이동 및 회전을 정의하는 이전에 계산된 키프레임 변환 행렬(즉, (R1 ,t, T1 ,t))을 이용하여 추정된다(프로세스 동작(756)). 일 구현에서 이는 식별된 키프레임과 마지막으로 입력된 프레임 사이에서 추정된 변환 행렬과 제 1 프레임과 식별된 키프레임 사이의 이전에 계산된 변환 행렬을 곱함으로써 달성된다. 마지막으로 입력된 컬러 이미지 프레임이 현재 키프레임으로 지정되는 경우에, 이러한 프레임과 연관된 키프레임-매칭 변환 행렬은 프레임에 대한 키프레임 변환 행렬로 지정된다(프로세스 동작(757)). 이것은 다음 키프레임이 생성될 때 키프레임-매칭 변환 행렬을 계산할 때 사용하기 위해 제 1 컬러 이미지 프레임 입력으로부터 현재 키프레임으로의 포인트들의 평행이동 및 회전을 정의하는 사전-계산된 키프레임 변환 행렬을 확립한다. 또한, 제 1 관성 센서 프레임으로부터 마지막으로 입력된 컬러 이미지 프레임 직전의 컬러 이미지 프레임 입력으로의 포인트들의 평행이동 및 회전을 정의하는 단일의 결합된 변환 행렬을 마지막으로 입력된 컬러 이미지 프레임 직전의 컬러 이미지 프레임으로부터 마지막으로 입력된 컬러 이미지 프레임으로의 포인트들의 평행이동 및 회전을 정의하는 현재 변환 행렬과 누적함으로써 제 1 관성 센서 프레임 입력으로부터 마지막으로 입력된 프레임으로의 포인트들의 평행이동 및 회전을 정의하는 변환 행렬이 추정된다(프로세스 동작(758)). 앞서 언급된 바와 같이, 광학 흐름 추적에 있어서 각 프레임으로부터 제 1 프레임(즉, (R12, T12), (R23, T23), ..., (Rk -1,k, Tk -1,k))으로 시작하는 다음 프레임으로 추정된 변환이 종래의 방법을 사용하여 제 1 프레임 키프레임(즉, 프레임 1)으로부터 가장 최근의 프레임(즉, 프레임 k)으로의 변환 행렬을 생성하도록 누적될 수 있기 때문에 이것이 가능하다.
프로세스 내의 이 시점에서, 제 1 관성 센서 프레임 입력으로부터 마지막으로 입력된 관성 센서 프레임으로의 포인트들의 평행이동 및 회전을 정의하는 개별적인 변환 행렬이 관성 데이터 및 광학 흐름 추적에 기초하여, 또는 관성 데이터, 광학 흐름 추적 및 키프레임 매칭에 기초하여 존재한다. 전자의 경우에, 광학 흐름 추적에 기초한 제 1 관성 센서 프레임 입력으로부터 마지막으로 입력된 컬러 이미지 프레임으로의 포인트들의 평행이동 및 회전을 정의하는 변환 행렬과 제 1 관성 센서 프레임 입력으로부터 마지막으로 입력된 관성 센서 프레임으로의 포인트들의 평행이동 및 회전을 정의하는 최종 관성 센서 기반 변환 행렬이, 제 1 관성 센서 프레임 입력으로부터 마지막으로 입력된 관성 센서 프레임으로의 포인트들의 평행이동 및 회전을 정의하는 단일의 결합된 변환 행렬을 생성하도록 결합된다(프로세스 동작(760)). 후자의 경우에, 광학 흐름 추적 및 키프레임 매칭에 기초하여 제 1 관성 센서 프레임 입력으로부터 마지막으로 입력된 컬러 이미지 프레임으로의 포인트들의 평행이동 및 회전을 정의하는 변환 행렬과 제 1 관성 센서 프레임 입력으로부터 마지막으로 입력된 관성 센서 프레임으로의 포인트들의 평행이동 및 회전을 정의하는 최종 관성 센서 기반 변환 행렬이, 제 1 관성 센서 프레임 입력으로부터 마지막으로 입력된 관성 센서 프레임으로의 포인트들의 평행이동 및 회전을 정의하는 단일의 결합된 변환 행렬을 생성하도록 결합된다(프로세스 동작(762)).
일 구현에서, 재귀적 베이지안 프레임워크(recursive Bayesian framework) 및 확장된 칼만 필터(EKF; extended Kalman filter)가 변환 행렬들을 결합하는데에 사용된다. 보다 구체적으로, 이러한 유형의 결합(fusion) 및 상태 추정 문제를 다루기 위한 일반적으로 사용되지만 강력한 툴은 재귀적 베이지안 필터이다. 이것은 서로 다른 소스들로부터의 측정치들을 하나의 균일한 프레임워크로 결합할 수 있으며, 확립된 프로세스 모델 및 관찰 모델을 통해서 숨겨진 상태를 추정할 수 있다. 또한 이것은 서로 다른 센서들의 서로 다른 레이트들을 다룰 수 있다.
재귀적 베이지안 필터는 시스템 모델링과 시스템 출력 측정을 통해 시스템의 숨겨진 상태 변수의 사후 확률 분포 함수(posterior probability distribution function; posterior PDF)를 추정하도록 사용된다. 상태 벡터 x를 갖는 소정의 시스템에 있어서, x는 관찰가능하지 않을 수 있고, 이것의 프로세스는 일반적으로:
Figure 112014074871545-pct00002
로서 모델링될 수 있으며, 이때 uk는 시스템으로의 입력이고 vk는 프로세스 노이즈이다. 이 수식은 입력 uk의 영향이 있는 상태 변수의 시간 변화를 기술한다.
동시에, 시스템의 측정가능한 출력이 측정 수식을 이용하여 상태 변수와 관련될 수 있으며:
Figure 112014074871545-pct00003
이때 zk는 관찰 벡터이고 ek는 측정 노이즈이다.
이 아이디어는 z1 :k가 주어진 xk의 사후 분포를 추정하기 위한 것이다. 재귀적 솔루션이 베이지안의 이론을 적용함으로써 획득될 수 있음이 잘 알려져 있으며, 아래와 같은 결과를 이끈다:
Figure 112014074871545-pct00004
위의 수식 내의 다차원 적분은 몇몇 특별한 경우 외에는 분석적으로 풀릴 수 없다. 보통의 경우는 프로세스 수식 및 측정 수식 모두가 선형적이고, 프로세스 노이즈 및 측정 노이즈가 제로 평균 가우시안 분산(zero mean Gaussian distribution)을 사용하여 모델링될 수 있으며:
Figure 112014074871545-pct00005
이때 Q는 프로세스 노이즈 공분산(covariance)이고 R은 측정 노이즈 공분산이다.
이러한 경우에, 모든 밀도가 가우시안일 것이며 이것은 평균과 공분산을 단지 전파시키기에 충분할 것이다. 이는 유명한 칼만 필터(Kalman Filter)를 발생시킨다.
시간 업데이트:
Figure 112014074871545-pct00006
측정 업데이트:
Figure 112014074871545-pct00007
모델이 비선형인 경우에, 이것은 공간 파생을 계산함으로써 국부적으로 선형화될 수 있다. 이것은 확장된 칼만 필터(EKF)를 발생시킨다:
Figure 112014074871545-pct00008
시간 업데이트:
Figure 112014074871545-pct00009
측정 업데이트:
Figure 112014074871545-pct00010
.
전술된 내용을 고려하여 시스템 모델이 정의될 수 있다. 보다 구체적으로, 상태 변수는 머리의 위치 및 방향을 포함해야만 한다. 또한 상수 선형 가속도 및 회전 속도가 가정될 수 있도록 선형 속도 및 가속도와 회전 속도가 포함된다. 또한 관성 센서의 미세하게 변화하는 바이어스를 처리하도록 센서 바이어스가 포함된다. 아래에서 관성 센서들이 공통의 좌표 프레임 원점을 갖는 가속도계(a) 및 자이로스코프(g)라고 가정된다는 것을 인지해야 한다. 따라서, 일 구현에서
Figure 112014074871545-pct00011
이며, 이때
Figure 112014074871545-pct00012
는 프레임 "W" 내에 기술된 머리 위치이다.
Figure 112014074871545-pct00013
Figure 112014074871545-pct00014
는 각각 머리 선형 속도 및 가속도이다.
Figure 112014074871545-pct00015
는 프레임 "W" 내의 쿼터니언을 사용하여 기술된 머리 방향이다.
Figure 112014074871545-pct00016
는 프레임 "I" 내에 기술된 머리 각속도이다. 또한 바이어스
Figure 112014074871545-pct00017
가 관성 센서 좌표 프레임 내에 존재한다. 쿼터니언은 추적 공간 내에서 연속적이기 때문에 방향을 기술하는데에 사용된다.
다음으로, 프로세스가 다음과 같이 모델링된다:
Figure 112014074871545-pct00018
동작들은 다음과 같이 정의된다:
Figure 112014074871545-pct00019
관측 수식에 있어서, 이것은 관성 센서 데이터뿐 아니라 컬러 이미지 및 깊이 이미지 데이터를 어드레스해야 할 필요가 있다. 관성 센서들(즉, 자이로스코프 및 가속도계)에 있어서, 관측 수식은 다음과 같다:
Figure 112014074871545-pct00020
그러나, 이미지 데이터를 사용하는 방식과 관련하여 서로 다른 옵션이 존재한다. 일 구현에서 관측 수식을 선형화하기 위해서 변환 추정이 측정치로서 사용된다. 광학 흐름 추적 및 (만약 이용가능하다면) 키프레임 매칭으로부터의 추정 모두가 다음과 같이 포함되며:
Figure 112014074871545-pct00021
이때
Figure 112014074871545-pct00022
는 k-s에 있는 카메라 좌표 프레임 내에서 광학 흐름 파이프라인으로부터 획득된 시간 단계 k-s로부터 현재 시간 단계 k로의 회전을 기술하는 쿼터니언이다. qIC는 프레임 "I"로부터 프레임 "C"로의 알려진 회전이다.
Figure 112014074871545-pct00023
는 k-s에 있는 카메라 좌표 프레임 내에서 광학 흐름 파이프라인으로부터 획득된 시간 단계 k-s로부터 단계 k로의 평행이동이다.
Figure 112014074871545-pct00024
는 키프레임 파이프라인으로부터 획득된 시간 단계 k-t로부터 현재 시간 단계 k로의 회전을 기술하는 쿼터니언이다. 시간 단계 t는 키프레임이 기록된 프레임이다.
Figure 112014074871545-pct00025
는 키프레임 파이프라인으로부터의 평행이동이다. 키프레임 매칭 변환 행렬이 존재하지 않고 행렬이 단지 관성 데이터 및 광학 흐름 추적에만 기초할 때, 키프레임 매칭 변환 행렬에 대한 보간 가중이 0으로 설정된다는 것을 인지해야 한다.
만약 Q 및 R 파라미터가 조율되면 EKF가 더 효율적으로 구동할 것이라는 것이 인지되어야 한다. 전술된 바와 같이, Q는 프로세스 노이즈 공분산이고 R은 측정 노이즈 공분산이다. 일반적으로, Q가 작을수록 프로세스가 더 정확하며, R이 작을수록 측정이 더 정확하다. R은 오프라인으로 측정될 수 있지만, Q는 사전지식에 기초하여, 또는 움직임의 가정에 기초하여 조율될 수 있다.
단일 결합된 변환 행렬이 생성되면, 이것은 현재 머리 포즈 위치 및 방향을 식별하기 위해 제 1 관성 센서 프레임 입력과 연관된 이전에 결정된 머리 포즈 위치 및 방향에 적용된다(프로세스 동작(764)). 그 다음 현재 머리 포즈 및 결합된 변환 행렬은 증강 현실 애플리케이션 내의 현재 프레임 내의 가상 객체의 위치를 계산하는 것을 포함하는 다양한 다른 태스크를 위해 사용될 수 있다.
그 다음 전술된 프로세스는 새로운 관성 센서, 컬러 비디오 및 깊이 프레임이 캡처되어 컴퓨팅 디바이스로 입력되는 한 계속 반복된다.
2.0 예시적인 머리 포즈 추적 애플리케이션
앞서 언급된 바와 같이, 전술된 방식으로 사용자의 머리 포즈를 추적하는 것은 증강 현실을 포함하는 다양한 애플리케이션에서 유용하다. 증강 현실 애플리케이션에서, 정확하고 강건한 머리 포즈 추적 시스템이 가상 객체의 안정적인 디스플레이를 보장하기 위해 필요하다. 사용자의 머리 포즈를 추적하기 위한 전술된 머리-장착 센서에 더하여, 이러한 증강 현실 애플리케이션 또한 머리-장착 디스플레이(HMD)를 포함할 수 있다. 예를 들어, 일 구현에서 HMD는 사용자의 눈 앞에 장착되는 단일 반투명 안경 디스플레이의 형태를 취한다.
3.0 예시적인 운영 환경
본 명세서에 기술된 머리 포즈 추적기술 실시예는 다수의 범용 또는 전용 컴퓨팅 시스템 환경 또는 구성에서 동작가능하다. 도 8은 본 명세서에 기술된 바와 같은 머리 포즈 추적 기술 실시예의 다양한 실시예 및 요소가 구현될 수 있는 범용 컴퓨터 시스템의 단순화된 예시를 도시한다. 도 8에서 꺾인 선 또는 점선으로 나타내어진 임의의 박스들은 단순화된 컴퓨팅 디바이스의 대안적인 실시예를 나타내며, 아래에서 기술되는 바와 같이 임의의 또는 모든 대안적인 실시예가 본 명세서에 걸쳐 기술된 다른 대안적인 실시예와 조합하여 사용될 수 있음을 인지해야만 한다.
예를 들어, 도 8은 단순화된 컴퓨팅 디바이스(10)를 나타내는 일반적인 시스템 다이어그램을 도시한다. 이러한 컴퓨팅 디바이스는 전형적으로 적어도 일부 최소한의 컴퓨터 능력을 갖는 디바이스에서 발견될 수 있으며, 개인 컴퓨터, 서버 컴퓨터, 핸드헬드 컴퓨팅 디바이스, 랩탑 또는 모바일 컴퓨터, 휴대폰 및 PDA와 같은 통신 디바이스, 멀티프로세스 시스템, 마이크로프로세서 기반 시스템, 셋톱박스, 프로그램가능한 소비자 전자기기, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 오디오 또는 비디오 매체 플레이어 등을 포함하지만, 이것으로 한정되는 것은 아니다.
디바이스가 본 명세서에 기술된 머리 포즈 추적 기술 실시예를 구현할 수 있게 하도록, 디바이스는 기본적인 컴퓨터 연산을 가능하게 하기 위한 충분한 컴퓨터 능력 및 시스템 메모리를 구비해야만 한다. 특히, 도 8에 의해 도시된 바와 같이 컴퓨터 능력은 일반적으로 하나 이상의 프로세싱 장치(들)(12)에 의해 보여지고, 하나 이상의 GPU(14)도 포함할 수 있으며, 둘 중 하나 또는 둘 모두가 시스템 메모리(16)와 통신한다. 일반적인 컴퓨팅 디바이스의 프로세싱 장치(들)(12)는 DSP, VLIW, 또는 그외의 마이크로컨트롤러일 수 있거나, 또는 멀티코어 CPU 내에 전문화된 GPU 기반 코어를 포함하는 하나 이상의 프로세싱 코어를 구비하는 종래의 CPU일 수 있다.
또한, 도 8의 단순화된 컴퓨팅 디바이스는 예를 들어 통신 인터페이스(18)와 같은 다른 구성요소도 포함할 수 있다. 도 8의 단순화된 컴퓨팅 디바이스는 또한 하나 이상의 종래의 컴퓨터 입력 디바이스(20)(예를 들어, 포인팅 디바이스, 키보드, 오디오 입력 디바이스, 비디오 입력 디바이스, 햅틱 입력 디바이스, 유선 또는 무선 데이터 전송을 수신하기 위한 디바이스 등)를 포함할 수 있다. 도 8의 단순화된 컴퓨팅 디바이스는 또한 예를 들어 하나 이상의 종래의 디스플레이 디바이스(들)(24) 및 그외의 컴퓨터 출력 디바이스(22)(예를 들어, 오디오 출력 디바이스, 비디오 출력 디바이스, 유선 또는 무선 데이터 전송을 위한 디바이스 등)와 같은 다른 선택적인 구성요소도 포함할 수 있다. 범용 컴퓨터에 대한 전형적인 통신 인터페이스(18), 입력 디바이스(20), 출력 디바이스(22) 및 스토리지 디바이스(26)는 당업자에게 잘 알려져 있으며, 본 명세서에서 상세하게 기술되지 않을 것이다.
도 8의 단순화된 컴퓨팅 디바이스는 또한 다양한 컴퓨터 판독가능한 매체를 포함할 수 있다. 컴퓨터 판독가능한 매체는 스토리지 디바이스(26)를 통해 컴퓨터(10)에 의해서 액세스될 수 있는 임의의 입수가능한 매체일 수 있으며, 컴퓨터-판독가능한 또는 컴퓨터 실행가능한 명령, 데이터 구조, 프로그램 모듈, 또는 그외의 데이터와 같은 정보의 저장을 위한 제거가능한(28) 및/또는 제거 불가능한(30) 휘발성 및 비휘발성 매체를 모두 포함한다. 예시로서, 컴퓨터 판독가능한 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있지만, 이것으로 한정되지는 않는다. 컴퓨터 저장 매체는 DVD, CD, 플로피 디스크, 테이프 드라이브, 하드 드라이브, 광학 드라이브, 고체 상태 메모리 디바이스, RAM, ROM, EEPROM, 플래시 메모리 또는 그외의 메모리 기술, 자기 카세트, 자기 테이프, 자기 디스크 스토리지, 또는 그외의 자기 스토리지 디바이스와 같은 컴퓨터 또는 머신 판독가능한 매체 또는 스토리지 디바이스, 또는 원하는 정보를 저장하도록 사용될 수 있고 하나 이상의 컴퓨팅 디바이스에 의해서 액세스될 수 있는 임의의 다른 디바이스를 포함하지만, 이것으로 제한되는 것은 아니다.
컴퓨터 판독가능한 또는 컴퓨터 실행가능한 명령, 데이터 구조, 프로그램 모듈 등과 같은 정보의 보유는 하나 이상의 변조된 데이터 신호 또는 반송파를 인코딩하기 위한 임의의 다양한 전술된 통신 매체, 또는 다른 수송 메커니즘 또는 통신 프로토콜을 이용함으로써 달성될 수 있으며, 임의의 유선 또는 무선 정보 전달 메커니즘을 포함한다. "변조된 데이터 신호" 또는 "반송파"와 같은 용어는 일반적으로 신호 내의 정보를 인코딩하는 방식으로 설정되거나 변경된 하나 이상의 자신의 특징을 갖는 신호를 지칭한다. 예를 들어, 통신 매체는 하나 이상의 변조된 데이터 신호를 전달하는 유선 네트워크 또는 다이렉트-와이어 접속과 같은 유선 매체 및 음향, RF, 적외선, 레이저 및 하나 이상의 변조된 데이터 신호 또는 반송파를 전송 및/또는 수신하기 위한 다른 무선 매체와 같은 무선 매체를 포함한다. 이들의 임의의 조합 역시 통신 매체의 범주 내에 포함되어야 한다.
또한, 본 명세서에 기술된 다양한 머리 포즈 추적 기술 실시예의 일부 또는 전부를 구현하는 소프트웨어, 프로그램 및/또는 컴퓨터 프로그램 제품, 또는 이들의 일부가 컴퓨터 또는 머신 판독가능한 매체 또는 스토리지 디바이스와 컴퓨터 실행가능한 명령 또는 다른 데이터 구조의 형태인 통신 매체의 임의의 원하는 조합으로부터 저장, 수신, 전송, 또는 판독될 수 있다.
마지막으로, 본 명세서에서 기술된 헤드 포즈 추적 기술 실시예는 컴퓨팅 디바이스에 의해 실행되는 프로그램 모듈과 같은 컴퓨터 실행가능한 명령의 일반적인 맥락으로 추가로 기술될 수 있다. 일반적으로, 프로그램 모듈은 특정한 태스크를 수행하거나 특정한 추출 데이터 유형을 구현하는 루틴, 프로그램, 객체, 구성요소, 데이터 구조 등을 포함한다. 본 명세서에서 기술된 실시예는 또한 하나 이상의 원격 프로세싱 디바이스에 의해 태스크가 수행되는 분산 컴퓨팅 환경에서, 또는 하나 이상의 통신 네트워크를 통해 링크되는 하나 이상의 디바이스의 클라우드 내에서 실시될 수도 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 매체 저장 디바이스를 포함하는 로컬 및 원격 컴퓨터 스토리지 매체 모두에 위치될 수 있다. 또한, 전술된 명령은 부분적으로 또는 전체적으로 프로세서를 포함할 수 있거나 포함하지 않을 수 있는 하드웨어 논리 회로로서 구현될 수 있다.
4.0 그외의 실시예
또 다른 예시적인 하드웨어 시스템 구현에서, 깊이 센서 장치가 관성 센서들의 세트와 함께 사용되지만, 컬러 카메라는 존재하지 않는다. 이러한 구현은 제 1 깊이 프레임 입력으로부터 마지막으로 입력된 깊이 프레임으로의 포인트들의 평행이동 및 회전을 정의하는 변환 행렬을 계산하기 위해 반복적인 최근접 포인트(ICP) 절차 및 깊이 센서를 사용한다. 그 다음 이러한 깊이 프레임 기반 변환 행렬이 컬러 비디오 카메라, 깊이 센서 및 관성 센서를 이용하는 전술된 예시적인 시스템 내의 컬러 이미지 프레임을 사용하여 추정된 전술된 최종 이미지 기반 변환 행렬을 대신할 수 있다. 따라서, 깊이 프레임 기반 변환 행렬은 제 1 관성 센서 프레임 입력으로부터 마지막으로 입력된 관성 센서 프레임으로의 포인트들의 평행이동 및 회전을 정의하는 단일의 결합된 변환 행렬을 생성하도록 최종 관성 센서 기반 변환 행렬과 결합되며, 그 다음 결합된 변환 행렬이 현재 머리 포즈 위치 및 방향을 식별하도록 제 1 관성 센서 프레임 입력과 연관된 이전에 결정된 머리 포즈 위치 및 방향에 적용된다.
또한 본 명세서에 걸쳐 전술된 임의의 또는 모든 실시예가 추가적인 혼성 실시예를 형성하기 위해 요구되는 임의의 조합에서 사용될 수 있음이 인지되어야 한다. 또한, 청구사항이 구조적 특징 및/또는 방법론적 동작에 대해 특정한 언어로 기술되었지만, 첨부된 특허청구범위 내에 정의된 청구사항이 전술된 특정한 특징 또는 동작으로 반드시 제한되지 않는다는 것이 이해될 것이다. 오히려, 전술된 특정한 특징 및 동작들은 특허청구범위를 구현하는 예시적인 형태로서 개시되었다.

Claims (19)

  1. 머리 포즈 추적(head pose tracking)을 위한 시스템으로서,
    머리 포즈 추적 센서 그룹 -상기 그룹 내의 모든 센서는 사용자의 머리에 배치되고, 상기 센서 그룹은 상기 센서 그룹에 의해 감지된 장면 내의 포인트들의 3차원 위치를 식별하는 데 사용되는 깊이 센서 장치 및 컬러 비디오 카메라를 포함하고, 상기 깊이 센서 장치 및 상기 컬러 비디오 카메라는 동시발생(contemporaneous) 장면 데이터를 깊이 프레임 및 컬러 이미지 프레임의 형태로 주기적으로 생성하도록 동기화되고 각 컬러 이미지 프레임 내의 각 픽셀을 동시에 생성된 깊이 프레임 내의 상응하는 3차원 장면 위치에 맵핑하도록 캘리브레이트(calibrate)됨- 과,
    컴퓨팅 디바이스와,
    상기 컴퓨팅 디바이스에 의해 실행되는 프로그램 모듈을 포함하는 컴퓨터 프로그램을 포함하되,
    상기 컴퓨팅 디바이스는 상기 컴퓨터 프로그램의 상기 프로그램 모듈에 의해서,
    각각의 동시에 생성된 깊이 프레임 및 컬러 이미지 프레임을 입력하고,
    제 1 깊이 프레임 및 컬러 이미지 프레임 쌍(pair) 이후에 입력된 각각의 동시에 생성된 깊이 프레임 및 컬러 이미지 프레임 쌍에 대해서,
    마지막으로 입력된 컬러 이미지 프레임과 상기 마지막으로 입력된 컬러 이미지 프레임 직전에 생성된 컬러 이미지 프레임 사이의 매칭 특징(matching feature)을 식별하고,
    상기 마지막으로 입력된 컬러 이미지 프레임과 상기 마지막으로 입력된 컬러 이미지 프레임 직전에 생성된 컬러 이미지 프레임의 상기 식별된 매칭 특징 및 상기 매칭 특징의 상응하는 3차원 위치를 이용하여 제 1 변환 행렬을 추정 -상기 제 1 변환 행렬은 상기 마지막으로 입력된 컬러 이미지 프레임 직전에 생성된 상기 컬러 이미지 프레임으로부터 상기 마지막으로 입력된 컬러 이미지 프레임으로의 포인트들의 평행이동(translation) 및 회전을 정의함- 하고,
    제 1 컬러 이미지 프레임으로부터 상기 마지막으로 입력된 컬러 이미지 프레임 직전에 입력된 컬러 이미지 프레임으로의 포인트들의 평행이동 및 회전을 정의하는 이전에 계산된 변환 행렬을 상기 마지막으로 입력된 컬러 이미지 프레임 직전의 컬러 이미지 프레임으로부터 상기 마지막으로 입력된 컬러 이미지 프레임으로의 포인트들의 평행이동 및 회전을 정의하는 상기 제 1 변환 행렬과 누적함으로써, 상기 제 1 컬러 이미지 프레임 입력으로부터 상기 마지막으로 입력된 컬러 이미지 프레임으로의 포인트들의 평행이동 및 회전을 정의하는 최종 변환 행렬을 추정하고,
    상기 마지막으로 입력된 컬러 이미지 프레임 내에 묘사된 장면 내의 현재 머리 포즈 위치 및 방향을 식별하도록 상기 제 1 컬러 이미지 프레임 입력 내에 묘사된 장면 내에서 이전에 결정된 머리 포즈 위치 및 방향에 대해 상기 최종 변환 행렬을 적용
    하도록 지시되는
    시스템.
  2. 제 1 항에 있어서,
    상기 매칭 특징을 식별하기 위한 상기 프로그램 모듈은 광학 흐름(optical flow) 기술을 이용하여 상기 마지막으로 입력된 컬러 이미지 프레임과 상기 마지막으로 입력된 컬러 이미지 프레임 직전에 생성된 컬러 이미지 프레임 사이의 매칭 포인트를 식별하기 위한 서브-모듈을 포함하는
    시스템.
  3. 제 2 항에 있어서,
    상기 제 1 변환 행렬을 추정하기 위한 상기 프로그램 모듈을 실행하기에 앞서 실행되는 깊이 정정 프로그램 모듈을 더 포함하되,
    상기 깊이 정정 프로그램 모듈은,
    각각의 식별된 매칭 포인트 주변의 윈도우를 정의하고,
    각 윈도우 내의 카메라에 가장 가까운 포인트를 식별하며,
    상기 윈도우와 연관된 상기 이전에 식별된 매칭 포인트 대신 각 윈도우 내의 상기 식별된 가장 가까운 포인트를 매칭 포인트로서 지정하는 서브-모듈을 포함하는
    시스템.
  4. 제 2 항에 있어서,
    상기 제 1 변환 행렬을 추정하기 위한 상기 프로그램 모듈을 실행하기에 앞서 실행되는 매칭 포인트 이상점(outlier) 지정해제 프로그램 모듈을 더 포함하되,
    상기 매칭 포인트 이상점 지정해제 프로그램 모듈은 규정된 최소 레벨 아래로 떨어지는 매칭 품질 레벨을 갖는 식별된 매칭 포인트들의 각각의 쌍을 매칭 포인트에서 지정해제하는 것을 포함하는
    시스템.
  5. 제 2 항에 있어서,
    상기 제 1 변환 행렬을 추정하기 위한 상기 프로그램 모듈을 실행한 후 그리고 상기 최종 변환 행렬을 추정하기 위한 상기 프로그램 모듈을 실행하기 전에 실행되는 매칭 포인트 이상점 지정해제 프로그램 모듈을 더 포함하되,
    상기 매칭 포인트 이상점 지정해제 프로그램 모듈은:
    (a) 상기 마지막으로 입력된 컬러 이미지 프레임 내의 매칭 포인트에 해당하는 상기 마지막으로 입력된 컬러 이미지 프레임 직전에 생성된 상기 컬러 이미지 프레임 내의 매칭 포인트를 확인하기 위해 상기 마지막으로 입력된 컬러 이미지 프레임 내의 식별된 상기 매칭 포인트에 마지막으로 추정된 변환 행렬을 적용하고,
    (b) 상기 마지막으로 입력된 컬러 이미지 프레임 직전에 생성된 상기 컬러 이미지 프레임 내의 이전에 식별된 각각의 매칭 포인트에 대해서, 상기 마지막으로 입력된 컬러 이미지 프레임 직전에 생성된 상기 컬러 이미지 프레임 내의 이전에 식별된 매칭 포인트에 해당하는 마지막으로 입력된 컬러 이미지 프레임 내의 상기 매칭 포인트에 대해 상기 마지막으로 추정된 변환 행렬을 적용함으로써 확인된 매칭 포인트의 좌표와 상기 이전에 식별된 매칭 포인트의 좌표 사이의 차이 정도(difference measure)를 계산하고,
    (c) 남아있는 매칭 포인트 쌍들의 상기 차이 정도의 평균을 계산하여 상기 계산된 평균이 규정된 최소 레벨을 초과하는지 여부를 결정하고,
    (d) 상기 계산된 평균이 규정된 최소 레벨을 초과하면,
    상기 차이 정도를 크기(magnitude)에 의해 순서화하여 가장 큰 차이 정도로부터 시작하는 내림차순의 상기 차이 정도의 규정된 백분율을 식별하고,
    상기 식별된 차이 정도 중 하나와 연관된 각각의 매칭 포인트 쌍의 상기 마지막으로 입력된 컬러 이미지 프레임 내의 상응하는 매칭 포인트와 상기 마지막으로 입력된 컬러 이미지 프레임 직전에 생성된 상기 컬러 이미지 프레임 내의 상기 이전에 식별된 매칭 포인트를 매칭 포인트로서 지정한 것을 지정해제하고,
    상기 남아있는 매칭 포인트를 이용하여 상기 제 1 변환 행렬을 재추정하고,
    (e) 변환 행렬 재추정 반복의 규정된 최대 횟수에 도달하였는지 여부를 결정하며,
    (f) 변환 행렬 재추정 반복의 상기 규정된 최대 횟수에 도달하지 않았다면 서브모듈(a)부터 서브모듈(f)까지의 실행을 반복
    하는 서브-모듈을 포함하는
    시스템.
  6. 제 2 항에 있어서,
    상기 마지막으로 입력된 컬러 이미지 프레임과 상기 마지막으로 입력된 컬러 이미지 프레임 직전에 생성된 컬러 이미지 프레임 사이의 매칭 특징을 식별하는 상기 프로그램 모듈을 실행하기 전에 실행되는 키프레임 프로그램 모듈을 더 포함하되, 상기 키프레임 프로그램 모듈은,
    새로운 키프레임이 확립되어야 하는지를 결정하고,
    새로운 키프레임이 확립되어야 한다고 결정되면 상기 마지막으로 입력된 컬러 이미지 프레임을 기록하고 상기 기록된 프레임을 키프레임으로서 지정하는 서브-모듈을 포함하는
    시스템.
  7. 제 6 항에 있어서,
    상기 새로운 키프레임이 확립되어야 하는지 여부를 결정하는 상기 서브-모듈은, 상기 마지막으로 입력된 컬러 이미지 프레임이 제 1 컬러 이미지 프레임 입력이고 상기 마지막으로 입력된 컬러 이미지 프레임이 이전에 확립된 키프레임 내에 묘사된 장면의 규정된 부분보다 작은 부분을 묘사하는 경우에 새로운 키프레임이 확립되어야 한다고 결정하는 것을 포함하는
    시스템.
  8. 제 6 항에 있어서,
    상기 키프레임 프로그램 모듈은 서브-모듈을 더 포함하되,
    상기 서브-모듈은,
    새로운 키프레임이 확립될 필요가 없다고 결정되면 키프레임 매칭이 발생하는지를 결정하고,
    키프레임 매칭이 발생하거나 새로운 키프레임이 확립되었다고 결정되면,
    상기 마지막으로 입력된 컬러 이미지 프레임과 상기 마지막으로 입력된 컬러 이미지 프레임 내에 묘사된 장면의 적어도 규정된 부분을 묘사하는 기록된 키프레임 사이의 키프레임 매칭 포인트를 식별하고,
    상기 마지막으로 입력된 컬러 이미지 프레임과 상기 마지막으로 입력된 컬러 이미지 프레임 내의 묘사된 장면의 적어도 규정된 부분을 묘사하는 상기 기록된 키프레임 내의 키프레임 매칭 특징의 상응하는 3차원 위치 및 상기 식별된 키프레임 매칭 포인트를 이용하여 제 2 변환 행렬을 추정 -상기 제 2 변환 행렬은 상기 마지막으로 입력된 컬러 이미지 프레임 내에 묘사된 장면의 적어도 규정된 부분을 묘사하는 상기 기록된 키프레임으로부터 상기 마지막으로 입력된 컬러 이미지 프레임으로의 포인트들의 평행이동 및 회전을 정의함- 하고,
    상기 제 1 컬러 이미지 프레임 입력으로부터 상기 마지막으로 입력된 컬러 이미지 프레임 내에 묘사된 장면의 적어도 규정된 부분을 묘사하는 상기 기록된 키프레임으로의 포인트들의 평행이동 및 회전을 정의하는 이전에 계산된 키프레임 변환 행렬 및 상기 제 2 변환 행렬을 이용하여 제 3 변환 행렬을 추정 -상기 제 3 변환 행렬은 상기 제 1 컬러 이미지 프레임 입력으로부터 상기 마지막으로 입력된 컬러 이미지 프레임으로의 포인트들의 상기 평행이동 및 회전을 정의함- 하고,
    상기 마지막으로 입력된 컬러 이미지 프레임이 새롭게 확립된 키프레임인 경우 상기 제 3 변환 행렬을 상기 제 1 컬러 이미지 프레임 입력으로부터 상기 새롭게 확립된 키프레임으로의 포인트들의 상기 평행이동 및 회전을 정의하는 키프레임 변환 행렬로서 지정하고,
    상기 제 1 컬러 이미지 프레임 입력으로부터 상기 마지막으로 입력된 컬러 이미지 프레임 직전에 입력된 상기 컬러 이미지 프레임으로의 포인트들의 상기 평행이동 및 회전을 정의하는 최종 변환 행렬을 상기 마지막으로 입력된 컬러 이미지 프레임 직전의 프레임으로부터 상기 마지막으로 입력된 컬러 이미지 프레임으로의 포인트들의 상기 평행이동 및 회전을 정의하는 상기 제 1 변환 행렬과 누적함으로써, 상기 제 1 컬러 이미지 프레임 입력으로부터 상기 마지막으로 입력된 컬러 이미지 프레임으로의 포인트들의 상기 평행이동 및 회전을 정의하는 제 4 변환 행렬을 추정하고,
    상기 제 1 컬러 이미지 프레임 입력으로부터 상기 마지막으로 입력된 컬러 이미지 프레임으로의 포인트들의 상기 평행이동 및 회전을 정의하는 단일 결합 변환 행렬을 생성하도록 상기 제 3 변환 행렬과 상기 제 4 변환 행렬을 결합하며,
    상기 결합된 변환 행렬을 상기 마지막으로 입력된 컬러 이미지 프레임에 대한 상기 최종 변환 행렬로서 지정하는
    시스템.
  9. 제 8 항에 있어서,
    키프레임 매칭 포인트를 식별하는 상기 서브-모듈은 SURF(Speeded Up Robust Features) 매칭 절차를 이용하는 것을 포함하는
    시스템.
  10. 제 8 항에 있어서,
    단일 결합 변환 행렬을 생성하도록 상기 제 3 변환 행렬과 상기 제 4 변환 행렬을 결합하는 상기 서브-모듈은 가중된 보간(interpolation) 절차를 이용하는 것을 포함하는
    시스템.
  11. 제 8 항에 있어서,
    이전에 계산된 키프레임 변환 행렬 및 상기 제 2 변환 행렬을 이용하여 제 3 변환 행렬을 추정하는 상기 서브-모듈은 상기 제2 변환 행렬에 상기 키프레임 변환 행렬을 곱하는 것을 포함하는
    시스템.
  12. 제 8 항에 있어서,
    키프레임 매칭 포인트를 식별하기 위한 상기 서브-모듈을 실행한 후에 상기 제 2 변환 행렬을 추정하기 위한 상기 서브-모듈을 실행하기 이전에 실행되는 깊이 정정 서브-모듈로서,
    각각의 식별된 키프레임 매칭 포인트 주변의 윈도우를 정의하고,
    각 윈도우 내의 카메라에 가장 가까운 포인트를 식별하며,
    상기 윈도우와 연관된 상기 이전에 식별된 키프레임 매칭 포인트 대신 각 윈도우 내의 상기 식별된 가장 가까운 포인트를 키프레임 매칭 포인트로서 지정하기 위한 서브-모듈
    을 포함하는 상기 깊이 정정 서브-모듈과,
    깊이 정정을 위한 상기 서브-모듈을 실행한 후에 상기 제 2 변환 행렬을 추정하기 위한 상기 서브-모듈을 실행하기 이전에 실행되며, 규정된 최소 레벨 아래로 떨어지는 매칭 품질 레벨을 갖는 식별된 키프레임 매칭 포인트들 각각의 쌍을 키프레임 매칭 포인트에서 지정해제하는 것을 포함하는 키프레임 매칭 포인트 이상점 지정해제 서브-모듈과,
    상기 제 2 변환 행렬을 추정하기 위한 상기 서브-모듈을 실행한 후에 상기 제 3 변환 행렬을 추정하기 위한 상기 서브-모듈을 실행하기 이전에 실행되는 제 2 키프레임 매칭 포인트 이상점 지정해제 서브-모듈을 더 포함하되,
    상기 제 2 키프레임 매칭 포인트 이상점 지정해제 서브-모듈은,
    (a) 상기 마지막으로 입력된 컬러 이미지 프레임 내의 키프레임 매칭 포인트에 해당하는 상기 마지막으로 입력된 컬러 이미지 프레임 내에 묘사된 장면의 적어도 규정된 부분을 묘사하는 상기 기록된 키프레임 내의 키프레임 매칭 포인트를 확인하기 위해 상기 마지막으로 입력된 컬러 이미지 프레임 내에서 식별된 상기 키프레임 매칭 포인트에 상기 제 2 변환 행렬을 적용하고,
    (b) 상기 마지막으로 입력된 컬러 이미지 프레임 내에서 묘사된 장면의 적어도 규정된 부분을 묘사하는 상기 기록된 키프레임 내의 이전에 식별된 각 키프레임 매칭 포인트에 대해서, 상기 마지막으로 입력된 컬러 이미지 프레임 내에 묘사된 장면의 적어도 규정된 부분을 묘사하는 상기 기록된 키프레임 내의 상기 이전에 식별된 키프레임 매칭 포인트에 해당하는 상기 마지막으로 입력된 컬러 이미지 프레임 내의 상기 키프레임 매칭 포인트에 상기 제 2 변환 행렬을 적용함으로써 확인된 키프레임 매칭 포인트의 좌표와 상기 이전에 식별된 키프레임 매칭 포인트의 좌표 사이의 차이 정도를 계산하고,
    (c) 남아있는 키프레임 매칭 포인트 쌍의 상기 차이 정도의 평균을 계산하고 상기 계산된 평균이 규정된 최소 레벨을 초과하는지 여부를 결정하고,
    (d) 상기 계산된 평균이 규정된 최소 레벨을 초과하면,
    상기 차이 정도를 크기에 의해 순서화하여 가장 큰 차이 정도로부터 시작하는 내림차순의 상기 차이 정도의 규정된 백분율을 식별하고,
    상기 식별된 차이 정도 중 하나와 연관된 각각의 키프레임 매칭 포인트 쌍의 상기 마지막으로 입력된 컬러 이미지 프레임 내의 상응하는 키프레임 매칭 포인트와 상기 마지막으로 입력된 컬러 이미지 프레임 내에 묘사된 장면의 적어도 규정된 부분에서 묘사하는 상기 기록된 키프레임 내의 상기 이전에 식별된 키프레임 매칭 포인트를 키프레임 매칭 포인트에서 지정해제하고,
    상기 남아있는 키프레임 매칭 포인트를 이용하여 상기 제 2 변환 행렬을 재추정하고,
    (e) 변환 행렬 재추정 반복의 규정된 최대 횟수에 도달하였는지 여부를 결정하며,
    (f) 변환 행렬 재추정 반복의 상기 규정된 최대 횟수에 도달하지 않은 경우, 서브모듈(a)부터 서브모듈(f)까지의 실행을 반복
    하는 서브-모듈을 포함하는
    시스템.
  13. 제 8 항에 있어서,
    상기 서브-모듈이 키프레임 매칭이 발생하는지 여부를 결정하는 것은,
    상기 키프레임 매칭이 마지막으로 수행된 후에 규정된 수의 프레임이 입력되었는지를 결정하고,
    상기 키프레임 매칭이 마지막으로 수행된 후에 상기 규정된 수의 프레임이 입력되지 않았다고 결정되면 키프레임 매칭이 발생할 시간이 아닌 것으로 지정하고,
    상기 키프레임 매칭이 마지막으로 수행된 후에 상기 규정된 수의 프레임이 입력되었다고 결정되면, 키프레임 매칭이 발생할 시간인 것으로 지정하는
    시스템.
  14. 제 1 항에 있어서,
    상기 최종 변환 행렬 및 상기 장면 내의 현재 머리 포즈 위치 및 방향은 상기 장면 내에 가상 객체를 배치하기 위해 증강 현실에서 이용되는
    시스템.
  15. 머리 포즈 추적을 위한 시스템으로서,
    머리 포즈 추적 센서 그룹 -상기 그룹 내의 모든 센서는 사용자의 머리에 배치되고, 상기 센서 그룹은 상기 센서 그룹에 의해 감지되는 장면 내의 포인트들의 3차원 위치를 식별하는 데 사용되는 깊이 센서 장치, 컬러 비디오 카메라 및 3개의 축 둘레의 각속도와 상기 3개의 축을 따른 선형 가속도를 측정하는 관성 센서들의 세트를 포함하고, 상기 깊이 센서 장치 및 상기 컬러 비디오 카메라는 깊이 프레임 및 컬러 이미지 프레임의 형태로 동시발생하는 장면 데이터를 주기적으로 생성하도록 동기화되고 각각의 컬러 이미지 프레임 내의 각 픽셀을 상기 동시에 생성된 깊이 프레임 내의 상응하는 3차원 장면 위치에 맵핑하도록 캘리브레이트되며, 상기 관성 센서들은 상기 깊이 프레임 및 상기 컬러 이미지 프레임이 제공되는 레이트와 같거나 이를 초과하는 레이트로 각속도 및 선형 가속도 데이터의 프레임들을 제공함- 과,
    컴퓨팅 디바이스와,
    상기 컴퓨팅 디바이스에 의해 실행되는 프로그램 모듈을 포함하는 컴퓨터 프로그램을 포함하되,
    상기 컴퓨팅 디바이스는 상기 컴퓨터 프로그램의 상기 프로그램 모듈에 의해,
    생성된 각각의 관성 센서 프레임을 입력하고,
    제 1 입력 이후에 입력된 각각의 관성 센서 프레임에 대해서,
    마지막으로 입력된 관성 센서 프레임을 이용하여, 상기 마지막으로 입력된 관성 센서 프레임 직전에 입력된 관성 센서 프레임으로부터 상기 마지막으로 입력된 관성 센서 프레임으로의 포인트들의 평행이동 및 회전을 정의하는 현재 관성 센서 기반 변환 행렬을 추정하고,
    제 1 관성 센서 프레임으로부터 상기 마지막으로 입력된 관성 센서 프레임 직전에 입력된 관성 센서 프레임으로의 포인트들의 평행이동 및 회전을 정의하는 이전에 계산된 변환 행렬을 상기 마지막으로 입력된 관성 센서 프레임 직전에 입력된 관성 센서 프레임으로부터 상기 마지막으로 입력된 관성 센서 프레임으로의 포인트들의 평행이동 및 회전을 정의하는 현재 관성 센서 기반 변환 행렬과 누적함으로써, 상기 제 1 관성 센서 프레임으로부터 상기 마지막으로 입력된 관성 센서 프레임으로의 포인트들의 평행이동 및 회전을 정의하는 최종 관성 센서 기반 변환 행렬을 추정하고,
    새로운 컬러 비디오 및 깊이 프레임이 생성되었는지를 결정하고,
    새로운 컬러 비디오 및 깊이 프레임이 생성되지 않았다면, 현재의 머리 포즈 위치 및 방향을 식별하기 위해 상기 제 1 관성 센서 프레임 입력과 연관된 이전에 결정된 머리 포즈 위치 및 방향에 상기 최종 관성 센서 기반 변환 행렬을 적용하고,
    새로운 컬러 비디오 및 깊이 프레임이 생성되었다면,
    상기 새로운 컬러 비디오 및 깊이 프레임을 입력하고,
    마지막으로 입력된 컬러 이미지 프레임과 상기 마지막으로 입력된 컬러 이미지 프레임 직전에 생성된 컬러 이미지 프레임 사이의 매칭 특징들을 식별하고,
    상기 마지막으로 입력된 컬러 이미지 프레임과 상기 마지막으로 입력된 컬러 이미지 프레임 직전에 생성된 컬러 이미지 프레임 모두에 있는 상기 식별된 매칭 특징들 및 상기 매칭 특징들의 상응하는 3차원 위치를 이용하여 현재 이미지 기반 변환 행렬을 추정 -상기 이미지 기반 변환 행렬은 상기 마지막으로 입력된 컬러 이미지 프레임 직전에 생성된 컬러 이미지 프레임으로부터 상기 마지막으로 입력된 컬러 이미지 프레임으로의 포인트들의 평행이동 및 회전을 정의함- 하고,
    상기 제 1 관성 센서 프레임으로부터 상기 마지막으로 입력된 컬러 이미지 프레임 직전에 입력된 컬러 이미지 프레임으로의 포인트들의 평행이동 및 회전을 정의하는 이전에 계산된 변환 행렬을 상기 마지막으로 입력된 컬러 이미지 프레임 직전의 컬러 이미지 프레임으로부터 상기 마지막으로 입력된 컬러 이미지 프레임으로의 포인트들의 평행이동 및 회전을 정의하는 상기 현재 이미지 기반 변환 행렬과 누적함으로써, 상기 제 1 관성 센서 프레임 입력으로부터 상기 마지막으로 입력된 컬러 이미지 프레임으로의 포인트들의 평행이동 및 회전을 정의하는 최종 이미지 기반 변환 행렬을 추정하고,
    상기 제 1 관성 센서 프레임 입력으로부터 상기 마지막으로 입력된 관성 센서 프레임으로의 포인트들의 평행이동 및 회전을 정의하는 단일의 결합된 변환 행렬을 생성하도록 상기 최종 이미지 기반 변환 행렬 및 상기 최종 관성 센서 기반 변환 행렬을 결합하고,
    상기 현재 머리 포즈 위치 및 방향을 식별하도록 상기 제 1 관성 센서 프레임 입력과 연관된 이전에 결정된 머리 포즈 위치 및 방향에 상기 결합된 변환 행렬을 적용
    하도록 지시되는
    시스템.
  16. 제 15 항에 있어서,
    상기 새로운 컬러 이미지 및 깊이 프레임을 입력하는 상기 프로그램 모듈을 실행한 후에, 그리고 상기 마지막으로 입력된 컬러 이미지 프레임과 상기 마지막으로 입력된 컬러 이미지 프레임 직전에 생성된 컬러 이미지 프레임 사이의 상기 매칭 특징을 식별하는 상기 프로그램 모듈을 실행하기 전에 실행되는 키프레임 프로그램 모듈을 더 포함하되, 상기 키프레임 프로그램 모듈은,
    새로운 키프레임이 확립되어야 하는지를 결정하고,
    새로운 키프레임이 확립되어야 한다고 결정되면, 상기 마지막으로 입력된 컬러 이미지 프레임을 기록하여 상기 기록된 프레임을 키프레임으로서 지정하는 서브-모듈을 포함하는
    시스템.
  17. 제 16 항에 있어서,
    상기 새로운 키프레임이 확립되어야 하는지를 결정하는 상기 서브-모듈은, 상기 마지막으로 입력된 컬러 이미지 프레임이 상기 제 1 컬러 이미지 프레임 입력이고 상기 마지막으로 입력된 컬러 이미지 프레임이 상기 이전에 확립된 키프레임 내에 묘사된 장면의 규정된 부분보다 작은 부분을 묘사하는 경우에 새로운 키프레임이 확립되어야 한다고 결정하는 것을 포함하는
    시스템.
  18. 제 16 항에 있어서,
    상기 키프레임 프로그램 모듈은 서브-모듈을 더 포함하되,
    상기 서브-모듈은,
    새로운 키프레임이 확립될 필요가 없다고 결정되면 키프레임 매칭이 발생하는지를 결정하고,
    키프레임 매칭이 발생하거나 새로운 키프레임이 확립되었다고 결정되면,
    상기 마지막으로 입력된 컬러 이미지 프레임과 상기 마지막으로 입력된 컬러 이미지 프레임 내에 묘사된 장면의 적어도 규정된 부분을 묘사하는 기록된 키프레임 사이의 키프레임 매칭 포인트를 식별하고,
    상기 마지막으로 입력된 컬러 이미지 프레임과 상기 마지막으로 입력된 컬러 이미지 프레임 내에 묘사된 상기 장면의 적어도 상기 규정된 부분을 묘사하는 상기 기록된 키프레임 모두에 있는 상기 식별된 키프레임 매칭 포인트 및 상기 키프레임 매칭 특징의 상응하는 3차원 위치를 이용하여 제 2 변환 행렬을 추정 -상기 제 2 변환 행렬은 상기 마지막으로 입력된 컬러 이미지 프레임 내에 묘사된 상기 장면의 적어도 상기 규정된 부분을 묘사하는 상기 기록된 키프레임으로부터 상기 마지막으로 입력된 컬러 이미지 프레임으로의 포인트들의 평행이동 및 회전을 정의함- 하고,
    상기 제 2 변환 행렬과, 상기 제 1 컬러 이미지 프레임 입력으로부터 상기 마지막으로 입력된 컬러 이미지 프레임 내에 묘사된 상기 장면의 적어도 상기 규정된 부분을 묘사하는 상기 기록된 키프레임으로의 포인트들의 평행이동 및 회전을 정의하는 이전에 계산된 키프레임 변환 행렬을 이용하여 제 3 변환 행렬을 추정 -상기 제 3 변환 행렬은 상기 제 1 컬러 이미지 프레임 입력으로부터 상기 마지막으로 입력된 컬러 이미지 프레임으로의 포인트들의 평행이동 및 회전을 정의함- 하고,
    상기 마지막으로 입력된 컬러 이미지 프레임이 새롭게 확립된 키프레임인 경우 상기 제 3 변환 행렬을 상기 제 1 컬러 이미지 프레임 입력으로부터 상기 새롭게 확립된 키프레임으로의 포인트들의 평행이동 및 회전을 정의하는 키프레임 변환 행렬로서 지정하고,
    상기 제 1 관성 센서 프레임으로부터 상기 마지막으로 입력된 컬러 이미지 프레임 직전에 입력된 컬러 이미지 프레임으로의 포인트들의 평행이동 및 회전을 정의하는 상기 이전에 계산된 변환 행렬과 상기 마지막으로 입력된 컬러 이미지 프레임 직전의 컬러 이미지 프레임으로부터 상기 마지막으로 입력된 컬러 이미지 프레임으로의 포인트들의 평행이동 및 회전을 정의하는 상기 현재 이미지 기반 변환 행렬을 누적함으로써 상기 제 1 관성 센서 프레임 입력으로부터 상기 마지막으로 입력된 컬러 이미지 프레임으로의 포인트들의 평행이동 및 회전을 정의하는 제 4 변환 행렬을 추정하고,
    상기 제 1 관성 센서 프레임 입력으로부터 상기 마지막으로 입력된 컬러 이미지 프레임으로의 포인트들의 평행이동 및 회전을 정의하는 단일의 결합된 이미지 기반 변환 행렬을 생성하도록 상기 제 3 변환 행렬과 상기 제 4 변환 행렬을 결합하며,
    상기 결합된 이미지 기반 변환 행렬을 상기 최종 이미지 기반 변환 행렬로 지정하는
    시스템.
  19. 제 15 항에 있어서,
    새로운 컬러 비디오 및 깊이 프레임이 생성되지 않으면, 상기 장면 내에 가상 객체를 배치하기 위해 상기 관성 센서 기반 변환 행렬 및 상기 장면 내에서의 현재의 헤드 포즈 위치 및 방향이 증강 현실 애플리케이션에 이용되고,
    새로운 컬러 비디오 및 깊이 프레임이 생성되면, 상기 장면 내에 가상 객체를 배치하기 위해 상기 결합된 변환 행렬 및 상기 장면 내의 현재의 헤드 포즈 위치 및 방향이 증강 현실 애플리케이션에 이용되는
    시스템.
KR1020147022170A 2012-02-08 2013-01-14 깊이 카메라를 이용한 머리 포즈 추적 기법 KR102006043B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/369,168 2012-02-08
US13/369,168 US9529426B2 (en) 2012-02-08 2012-02-08 Head pose tracking using a depth camera
PCT/US2013/021353 WO2013119352A1 (en) 2012-02-08 2013-01-14 Head pose tracking using a depth camera

Publications (2)

Publication Number Publication Date
KR20140126707A KR20140126707A (ko) 2014-10-31
KR102006043B1 true KR102006043B1 (ko) 2019-07-31

Family

ID=48902542

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147022170A KR102006043B1 (ko) 2012-02-08 2013-01-14 깊이 카메라를 이용한 머리 포즈 추적 기법

Country Status (6)

Country Link
US (1) US9529426B2 (ko)
EP (1) EP2813082B1 (ko)
JP (1) JP6198230B2 (ko)
KR (1) KR102006043B1 (ko)
CN (1) CN104106262B (ko)
WO (1) WO2013119352A1 (ko)

Families Citing this family (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2984057B1 (fr) 2011-12-13 2014-01-03 Solidanim Systeme de tournage de film video
GB201208088D0 (en) * 2012-05-09 2012-06-20 Ncam Sollutions Ltd Ncam
US10365711B2 (en) * 2012-05-17 2019-07-30 The University Of North Carolina At Chapel Hill Methods, systems, and computer readable media for unified scene acquisition and pose tracking in a wearable display
US10025379B2 (en) * 2012-12-06 2018-07-17 Google Llc Eye tracking wearable devices and methods for use
WO2014160342A1 (en) 2013-03-13 2014-10-02 The University Of North Carolina At Chapel Hill Low latency stabilization for head-worn displays
US8995754B2 (en) * 2013-05-30 2015-03-31 Xerox Corporation Estimating a pose of a camera for volume estimation
US9336440B2 (en) * 2013-11-25 2016-05-10 Qualcomm Incorporated Power efficient use of a depth sensor on a mobile device
US9600925B2 (en) * 2014-01-06 2017-03-21 Oculus Vr, Llc Calibration of multiple rigid bodies in a virtual reality system
US9437000B2 (en) * 2014-02-20 2016-09-06 Google Inc. Odometry feature matching
JP2017512398A (ja) * 2014-02-27 2017-05-18 トムソン ライセンシングThomson Licensing 映像を提示する方法及び装置
US9495801B2 (en) 2014-05-01 2016-11-15 Microsoft Technology Licensing, Llc Pose tracking an augmented reality device
DE102014106718B4 (de) * 2014-05-13 2022-04-07 Immersight Gmbh System, welches eine Blickfelddarstellung in einer gegenständlichen Lage in einem veränderbaren Raumwinkelbereich darbietet
US9727776B2 (en) * 2014-05-27 2017-08-08 Microsoft Technology Licensing, Llc Object orientation estimation
US20160027220A1 (en) * 2014-07-24 2016-01-28 JRC Integrated Systems, Inc. Low latency methodologies for a headset-mounted camera on virtual reality displays
US20160077166A1 (en) * 2014-09-12 2016-03-17 InvenSense, Incorporated Systems and methods for orientation prediction
CN104346816B (zh) * 2014-10-11 2017-04-19 京东方科技集团股份有限公司 一种深度确定方法、装置及电子设备
US11049476B2 (en) 2014-11-04 2021-06-29 The University Of North Carolina At Chapel Hill Minimal-latency tracking and display for matching real and virtual worlds in head-worn displays
GB2532461A (en) * 2014-11-19 2016-05-25 Bae Systems Plc System and method for position tracking in a head mounted display
CN107847187B (zh) * 2015-07-07 2021-08-17 皇家飞利浦有限公司 用于对肢体的至少部分进行运动跟踪的装置和方法
US10360718B2 (en) * 2015-08-14 2019-07-23 Samsung Electronics Co., Ltd. Method and apparatus for constructing three dimensional model of object
US10742961B2 (en) 2015-09-02 2020-08-11 Industrial Technology Research Institute Depth sensing apparatus with self-calibration and self-calibration method thereof
CN106488204B (zh) * 2015-09-02 2018-06-15 财团法人工业技术研究院 具备自身校准的深度摄影装置以及自身校准方法
KR102371634B1 (ko) * 2015-09-10 2022-03-08 엘지이노텍 주식회사 스테레오 카메라의 거리 추출 방법
EP3377853A4 (en) * 2015-11-20 2019-07-17 Magic Leap, Inc. METHOD AND SYSTEMS FOR LARGE DETERMINATION OF RGB CAMERA POSITIONS
US9872011B2 (en) * 2015-11-24 2018-01-16 Nokia Technologies Oy High-speed depth sensing with a hybrid camera setup
EP3386389B1 (en) 2015-12-11 2020-03-11 Brainlab AG Determination of center of rotation of a bone
US10565723B2 (en) * 2016-02-02 2020-02-18 Samsung Electronics Co., Ltd. Systems and methods for drift correction
CN107122002A (zh) * 2016-02-24 2017-09-01 北京锤子数码科技有限公司 一种头戴式可视设备
CN106095090A (zh) * 2016-06-07 2016-11-09 北京行云时空科技有限公司 基于智能系统的空间场景的操控方法、装置和系统
CN106325517A (zh) * 2016-08-29 2017-01-11 袁超 一种基于虚拟现实的目标对象触发方法、系统和穿戴设备
FR3057347B1 (fr) * 2016-10-06 2021-05-28 Univ Aix Marseille Systeme de mesure de la distance d'un obstacle par flux optique
US10499997B2 (en) 2017-01-03 2019-12-10 Mako Surgical Corp. Systems and methods for surgical navigation
CN108335327B (zh) * 2017-01-19 2021-09-24 富士通株式会社 摄像机姿态估计方法和摄像机姿态估计装置
US10698068B2 (en) * 2017-03-24 2020-06-30 Samsung Electronics Co., Ltd. System and method for synchronizing tracking points
EP3388863A1 (en) * 2017-04-10 2018-10-17 Bea S.A. Sensor for controlling an automatic door
EP3616400A4 (en) * 2017-04-28 2020-05-13 Samsung Electronics Co., Ltd. METHOD FOR PROVIDING CONTENT AND DEVICE THEREFOR
US20180322689A1 (en) * 2017-05-05 2018-11-08 University Of Maryland, College Park Visualization and rendering of images to enhance depth perception
US10809380B2 (en) * 2017-05-15 2020-10-20 Ouster, Inc. Augmenting panoramic LIDAR results with color
US10621751B2 (en) * 2017-06-16 2020-04-14 Seiko Epson Corporation Information processing device and computer program
CN107516327B (zh) * 2017-08-21 2023-05-16 腾讯科技(上海)有限公司 基于多层滤波确定相机姿态矩阵的方法及装置、设备
TWI652447B (zh) 2017-09-12 2019-03-01 財團法人成大研究發展基金會 適用於疊代最近點法以選擇關鍵圖框的系統與方法
US10839547B2 (en) * 2017-09-28 2020-11-17 Samsung Electronics Co., Ltd. Camera pose determination and tracking
GB2569803B (en) * 2017-12-22 2021-11-24 Novarum Dx Ltd Analysis of a captured image to determine a test outcome
KR20200106547A (ko) 2018-01-18 2020-09-14 밸브 코포레이션 센서 집적 회로들을 포함하는 머리-착용 디스플레이들에 대한 위치 추적 시스템
US10559276B2 (en) 2018-02-03 2020-02-11 Facebook Technologies, Llc Apparatus, system, and method for mitigating motion-to-photon latency in head-mounted displays
US10706813B1 (en) 2018-02-03 2020-07-07 Facebook Technologies, Llc Apparatus, system, and method for mitigating motion-to-photon latency in head-mounted displays
JP6516042B2 (ja) * 2018-05-11 2019-05-22 セイコーエプソン株式会社 信号処理装置、検出装置、センサー、電子機器及び移動体
US11677833B2 (en) * 2018-05-17 2023-06-13 Kaon Interactive Methods for visualizing and interacting with a three dimensional object in a collaborative augmented reality environment and apparatuses thereof
US10678325B2 (en) * 2018-05-22 2020-06-09 Facebook Technologies, Llc Apparatus, system, and method for accelerating positional tracking of head-mounted displays
US10410372B1 (en) 2018-06-14 2019-09-10 The University Of North Carolina At Chapel Hill Methods, systems, and computer-readable media for utilizing radial distortion to estimate a pose configuration
JPWO2020110659A1 (ja) * 2018-11-27 2021-10-14 ソニーグループ株式会社 情報処理装置、情報処理方法、およびプログラム
CN109960402B (zh) * 2018-12-18 2022-04-01 重庆邮电大学 一种基于点云和视觉特征融合的虚实注册方法
KR102256050B1 (ko) * 2019-01-28 2021-05-25 한국기술교육대학교 산학협력단 웨어러블 장치 및 이를 포함하는 컴퓨터 시각 증후군 방지 시스템
KR102100639B1 (ko) * 2019-05-28 2020-04-14 주식회사 젠다카디언 낙상 및 기립 감지 장치
US11153488B2 (en) 2019-09-26 2021-10-19 United States Of America, As Represented By The Secretary Of The Army Variable latency and frame rate camera
US11061469B2 (en) * 2019-11-20 2021-07-13 XRSpace CO., LTD. Head mounted display system and rotation center correcting method thereof
CN111242090B (zh) * 2020-01-22 2023-06-23 腾讯科技(深圳)有限公司 基于人工智能的人脸识别方法、装置、设备及介质
CN111369596B (zh) * 2020-02-26 2022-07-05 华南理工大学 一种基于视频监控的手扶电梯客流量统计方法
US11625857B1 (en) * 2020-06-15 2023-04-11 Apple Inc. Enhanced content positioning
DE102020121408A1 (de) 2020-08-14 2022-02-17 Bayerische Motoren Werke Aktiengesellschaft Computerimplementiertes Verfahren und System zur Vorhersage einer Orientierung und räumlichen Position einer am Kopf eines Nutzers montierbaren Anzeigevorrichtung
US20210110606A1 (en) * 2020-12-23 2021-04-15 Intel Corporation Natural and immersive data-annotation system for space-time artificial intelligence in robotics and smart-spaces
CN113900516A (zh) * 2021-09-27 2022-01-07 阿里巴巴达摩院(杭州)科技有限公司 数据处理方法、装置、电子设备和存储介质
CN114007099A (zh) * 2021-11-04 2022-02-01 北京搜狗科技发展有限公司 一种视频处理方法、装置和用于视频处理的装置
CN116704587B (zh) * 2023-08-02 2023-10-20 山东建筑大学 融合纹理信息和深度信息的多人头部姿态估计方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020105484A1 (en) 2000-09-25 2002-08-08 Nassir Navab System and method for calibrating a monocular optical see-through head-mounted display system for augmented reality
JP2005033319A (ja) 2003-07-08 2005-02-03 Canon Inc 位置姿勢計測方法及び装置
US20100103196A1 (en) 2008-10-27 2010-04-29 Rakesh Kumar System and method for generating a mixed reality environment
US20100245387A1 (en) 2005-04-11 2010-09-30 Systems Technology, Inc. Systems and methods for combining virtual and real-time physical environments

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6414731B2 (en) * 1990-11-30 2002-07-02 Sun Microsystems, Inc. Low cost virtual reality system
US6064749A (en) 1996-08-02 2000-05-16 Hirota; Gentaro Hybrid tracking for augmented reality using both camera motion detection and landmark tracking
WO1998050878A1 (en) 1997-05-05 1998-11-12 Shell Oil Company Visual recognition method
JP2001101410A (ja) * 1999-09-28 2001-04-13 Suzuki Motor Corp 変換行列データ生成方法及び較正治具並びに三次元計測システム
US7203356B2 (en) * 2002-04-11 2007-04-10 Canesta, Inc. Subject segmentation and tracking using 3D sensing technology for video compression in multimedia applications
US8570378B2 (en) 2002-07-27 2013-10-29 Sony Computer Entertainment Inc. Method and apparatus for tracking three-dimensional movements of an object using a depth sensing camera
JP2004085476A (ja) 2002-08-28 2004-03-18 Sony Corp ヘッドトラッキング方法及び装置
US7002551B2 (en) 2002-09-25 2006-02-21 Hrl Laboratories, Llc Optical see-through augmented reality modified-scale display
US20070035562A1 (en) 2002-09-25 2007-02-15 Azuma Ronald T Method and apparatus for image enhancement
JP4355341B2 (ja) 2003-05-29 2009-10-28 本田技研工業株式会社 深度データを用いたビジュアルトラッキング
JP2005147894A (ja) * 2003-11-17 2005-06-09 Canon Inc 計測方法、計測装置
US7542210B2 (en) * 2006-06-29 2009-06-02 Chirieleison Sr Anthony Eye tracking head mounted display
KR101335346B1 (ko) 2008-02-27 2013-12-05 소니 컴퓨터 엔터테인먼트 유럽 리미티드 장면의 심도 데이터를 포착하고, 컴퓨터 액션을 적용하기 위한 방법들
KR101537948B1 (ko) 2008-12-16 2015-07-20 삼성전자주식회사 얼굴 포즈 추정을 이용한 촬영 방법 및 장치
US8970690B2 (en) 2009-02-13 2015-03-03 Metaio Gmbh Methods and systems for determining the pose of a camera with respect to at least one object of a real environment
US8831277B1 (en) * 2009-10-02 2014-09-09 Rockwell Collins, Inc. Optical helmet tracking system
KR101313797B1 (ko) 2009-12-18 2013-10-01 한국전자통신연구원 머리 위치 추적을 이용한 입체 영상 표시 장치 및 이의 동작 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020105484A1 (en) 2000-09-25 2002-08-08 Nassir Navab System and method for calibrating a monocular optical see-through head-mounted display system for augmented reality
JP2005033319A (ja) 2003-07-08 2005-02-03 Canon Inc 位置姿勢計測方法及び装置
US20100245387A1 (en) 2005-04-11 2010-09-30 Systems Technology, Inc. Systems and methods for combining virtual and real-time physical environments
US20100103196A1 (en) 2008-10-27 2010-04-29 Rakesh Kumar System and method for generating a mixed reality environment

Also Published As

Publication number Publication date
JP6198230B2 (ja) 2017-09-20
JP2015513662A (ja) 2015-05-14
CN104106262B (zh) 2017-01-18
EP2813082B1 (en) 2018-03-28
CN104106262A (zh) 2014-10-15
EP2813082A1 (en) 2014-12-17
US9529426B2 (en) 2016-12-27
WO2013119352A1 (en) 2013-08-15
EP2813082A4 (en) 2015-09-23
US20130201291A1 (en) 2013-08-08
KR20140126707A (ko) 2014-10-31

Similar Documents

Publication Publication Date Title
KR102006043B1 (ko) 깊이 카메라를 이용한 머리 포즈 추적 기법
US11734846B2 (en) System and method for concurrent odometry and mapping
CN109146965B (zh) 信息处理装置、计算机可读介质和头戴式显示装置
CN110047104B (zh) 对象检测和跟踪方法、头戴式显示装置和存储介质
CN110310329B (zh) 操作显示设备的方法、信息处理系统及非暂时性存储介质
KR101776622B1 (ko) 다이렉트 트래킹을 이용하여 이동 로봇의 위치를 인식하기 위한 장치 및 그 방법
KR101725060B1 (ko) 그래디언트 기반 특징점을 이용한 이동 로봇의 위치를 인식하기 위한 장치 및 그 방법
KR101776621B1 (ko) 에지 기반 재조정을 이용하여 이동 로봇의 위치를 인식하기 위한 장치 및 그 방법
CN108700946B (zh) 用于并行测距和建图的故障检测和恢复的系统和方法
KR101776620B1 (ko) 검색 기반 상관 매칭을 이용하여 이동 로봇의 위치를 인식하기 위한 장치 및 그 방법
KR20150144728A (ko) 이동 로봇의 맵을 업데이트하기 위한 장치 및 그 방법
JP2024519940A (ja) データ処理方法、装置、データ処理システム、電子機器及びコンピュータプログラム
US10861185B2 (en) Information processing apparatus and method of controlling the same
EP3047454A1 (en) 3d reconstruction
Huai et al. Real-time large scale 3D reconstruction by fusing Kinect and IMU data
JP6154759B2 (ja) カメラパラメータ推定装置、カメラパラメータ推定方法及びカメラパラメータ推定プログラム
Presnov et al. Robust range camera pose estimation for mobile online scene reconstruction
US11847259B1 (en) Map-aided inertial odometry with neural network for augmented reality devices
WO2023090213A1 (ja) 情報処理装置、情報処理方法及びプログラム
US20220198697A1 (en) Information processing apparatus, information processing method, and program
CN116704022A (zh) 基于结构线段的vio系统的位姿估计方法、装置及介质
CN117128961A (zh) 水下机器人定位方法、装置、电子设备和存储介质
CN115428031A (zh) 信息处理装置、信息处理方法和信息处理程序

Legal Events

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