KR20150082382A - 적응형 스케일 및/또는 중력 추정 - Google Patents
적응형 스케일 및/또는 중력 추정 Download PDFInfo
- Publication number
- KR20150082382A KR20150082382A KR1020157014270A KR20157014270A KR20150082382A KR 20150082382 A KR20150082382 A KR 20150082382A KR 1020157014270 A KR1020157014270 A KR 1020157014270A KR 20157014270 A KR20157014270 A KR 20157014270A KR 20150082382 A KR20150082382 A KR 20150082382A
- Authority
- KR
- South Korea
- Prior art keywords
- estimate
- pose
- target
- gravity vector
- image
- Prior art date
Links
Images
Classifications
-
- G06T7/004—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
- G06T7/74—Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
-
- G06T7/0044—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30244—Camera pose
Landscapes
- Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- User Interface Of Digital Computer (AREA)
- Navigation (AREA)
- Studio Devices (AREA)
- Length Measuring Devices By Optical Means (AREA)
- Processing Or Creating Images (AREA)
- Image Analysis (AREA)
Abstract
모바일 디바이스에서 중력 및/또는 스케일을 추정하기 위한 시스템들, 장치, 및 방법들이 제시된다. 이미지-기반 포즈와 관성-기반 포즈 사이의 차이를 사용하여 중력 및/또는 스케일의 추정치들을 업데이트한다. 이미지-기반 포즈는 2개의 포즈들로부터 계산되고, 차이 이전의 스케일의 추정치로 스케일링된다. 관성-기반 포즈는 가속도계 측정치들로부터 계산되며, 가속도계 측정치들은 중력에 대한 추정치에 의해 조정된다.
Description
관련 출원에 대한 상호 참조
[0001] 본 출원은, 발명의 명칭이 "Adaptive Scale and/or Gravity Estimation"으로 2013년 8월 29일자로 출원된 미국 출원 제 14/014,174호의 이득 및 이에 대한 우선권을 주장하고, 차례로, 2013년 3월 15일자로 출원된 미국 가출원 제 61/801,741호, 및 2012년 11월 5일자로 출원된 미국 가출원 제 61/722,601호의 이득 및 이들에 대한 35 U.S.C.§119(e) 하의 우선권을 주장하며, 이들 둘 모두는 발명의 명칭이 "Adaptive Scale and/or Gravity Estimation"이다. 전술된 미국 출원들은 이로써 본 명세서에 그 전체 내용들이 인용에 의해 포함된다
[0002] I. 발명의 분야
[0003] 본 발명은 일반적으로 스케일 및/또는 중력 추정 분야의 시스템들, 장치 및 방법들에 관한 것으로, 더 상세하게는, 중력의 더 이른 추정으로부터 형성된 관성-기반 포즈(pose)와 스케일의 더 이른 추정으로부터 형성된 이미지-기반 포즈를 비교함으로써, 스케일 및/또는 중력을 추정하는 것에 관한 것이다.
[0004] II. 배경기술
[0005] 몇몇 시스템들은, 증강 현실(AR) 애플리케이션들에 대해, 그리고 스케일의 추정치를 결정하기 위해 이미지들 상에 컴퓨터 비전 알고리즘들을 사용한다. 스케일의 추정치는 포즈와 곱셈되어 오브젝트가 카메라로부터 얼마나 멀리 떨어져 있는지를 결정한다. 다른 시스템들은, 관성 센서들을 사용하여 중력의 추정치를 결정함으로써 (예를 들어, 추측 항법(dead reckoning)을 통하여) 이동을 결정한다. 가속도계 측정치들은 중력의 추정치에 의해 조정되어 선형 가속도를 결정한다. 카메라와 관성 센서들 둘 모두를 이용하여 시스템들에 대한 스케일 및 중력 둘 모두의 결정을 조정하기 위한 수단이 요구된다.
[0006] 모바일 디바이스에서 포즈를 추정하기 위한 시스템들, 장치 및 방법들이 기재된다.
[0007] 몇몇 양상들에 따르면, 모바일 디바이스에서 추정하기 위한 방법이 기재되며, 방법은, 타겟과 모바일 디바이스 카메라의 제 1 포지션 사이의 제 1 포즈를 제 1 시간에서 캡쳐된 제 1 이미지로부터 결정하는 단계(여기서, 제 1 이미지는 타겟을 포함함); 타겟과 카메라의 제 2 포지션 사이의 제 2 포즈를 제 2 시간에서 캡쳐된 제 2 이미지로부터 결정하는 단계(여기서, 제 2 이미지는 타겟을 포함함); 스케일링 팩터의 제 1 추정치를 사용하여 제 1 포즈와 제 2 포즈 사이의 이미지-기반 포즈를 계산하는 단계; 제 1 시간으로부터 제 2 시간까지 모바일 디바이스의 가속도계로부터 측정치들을 수신하는 단계; 가속도계로부터의 측정치들 및 중력 벡터에 대한 제 1 추정치에 기초하여 관성-기반 포즈를 형성하는 단계; 이미지-기반 포즈와 관성-기반 포즈 사이의 차이를 계산하는 단계; 및 중력 벡터의 제 2 추정치 또는 스케일링 팩터의 제 2 추정치 중 적어도 하나를, 차이에 기초하여 형성하는 단계를 포함한다.
[0008] 몇몇 양상들에 따르면 모바일 디바이스에서 추정하기 위한 모바일 디바이스가 기재되며, 모바일 디바이스는, 타겟을 포함하는 제 1 이미지를 제 1 시간 및 카메라의 제 1 포지션에서 캡쳐하고, 타겟을 포함하는 제 2 이미지를 제 2 시간 및 카메라의 제 2 포지션에서 캡쳐하도록 구성되는 카메라; 제 1 시간으로부터 제 2 시간까지의 측정치들을 제공하도록 구성되는 가속도계; 및 제 1 이미지로부터 모바일 디바이스의 타겟 사이의 제 1 포즈를 결정하고, 제 2 이미지로부터 모바일 디바이스의 타겟 사이의 제 2 포즈를 결정하고, 스케일링 팩터의 제 1 추정치를 사용하여 제 1 포즈와 제 2 포즈 사이의 이미지-기반 포즈를 계산하고, 측정치들 및 중력 벡터에 대한 제 1 추정치에 기초하여 관성-기반 포즈를 형성하고, 이미지-기반 포즈와 관성-기반 포즈 사이의 차이를 계산하며, 중력 벡터의 제 2 추정치 또는 스케일링 팩터의 제 2 추정치 중 적어도 하나를, 차이에 기초하여 형성하도록 구성되고, 카메라와 가속도계에 커플링되는 프로세서를 포함한다.
[0009] 몇몇 양상들에 따르면, 모바일 디바이스에서 추정하기 위한 모바일 디바이스가 기재되며, 모바일 디바이스는, 타겟과 모바일 디바이스 카메라의 제 1 포지션 사이의 제 1 포즈를 제 1 시간에서 캡쳐된 제 1 이미지로부터 결정하기 위한 수단(여기서, 제 1 이미지는 타겟을 포함함); 타겟과 카메라의 제 2 포지션 사이의 제 2 포즈를 제 2 시간에서 캡쳐된 제 2 이미지로부터 결정하기 위한 수단(여기서, 제 2 이미지는 타겟을 포함함); 스케일링 팩터의 제 1 추정치를 사용하여 제 1 포즈와 제 2 포즈 사이의 이미지-기반 포즈를 계산하기 위한 수단; 제 1 시간으로부터 제 2 시간까지 모바일 디바이스의 가속도계로부터 측정치들을 수신하기 위한 수단; 가속도계로부터의 측정치들 및 중력 벡터에 대한 제 1 추정치에 기초하여 관성-기반 포즈를 형성하기 위한 수단; 이미지-기반 포즈와 관성-기반 포즈 사이의 차이를 계산하기 위한 수단; 및 중력 벡터의 제 2 추정치 또는 스케일링 팩터의 제 2 추정치 중 적어도 하나를, 차이에 기초하여 형성하기 위한 수단을 포함한다.
[0010] 몇몇 양상들에 따르면, 모바일 디바이스에서 모바일 디바이스가 추정하기 위한 프로그램 코드가 저장된 비-일시적인 컴퓨터-판독가능 저장 매체가 기재되며, 타겟과 모바일 디바이스 카메라의 제 1 포지션 사이의 제 1 포즈를 제 1 시간에서 캡쳐된 제 1 이미지로부터 결정하고(여기서, 제 1 이미지는 타겟을 포함함); 타겟과 카메라의 제 2 포지션 사이의 제 2 포즈를 제 2 시간에서 캡쳐된 제 2 이미지로부터 결정하krh(여기서, 제 2 이미지는 타겟을 포함함); 스케일링 팩터의 제 1 추정치를 사용하여 제 1 포즈와 제 2 포즈 사이의 이미지-기반 포즈를 계산하고; 제 1 시간으로부터 제 2 시간까지 모바일 디바이스의 가속도계로부터 측정치들을 수신하고; 측정치들 및 중력 벡터에 대한 제 1 추정치에 기초하여 관성-기반 포즈를 형성하고; 이미지-기반 포즈와 관성-기반 포즈 사이의 차이를 계산하며; 그리고 중력 벡터의 제 2 추정치 또는 스케일링 팩터의 제 2 추정치 중 적어도 하나를, 차이에 기초하여 형성하기 위한 프로그램 코드를 포함한다.
[0011] 예시로서 다양한 양상들이 도시되고 설명되는 다음의 상세한 설명으로부터 다른 양상들이 당업자에게 용이하게 명백해질 것임이 이해된다. 도면들 및 상세한 설명은 제한적인 것으로서가 아닌 속성상 예시적인 것으로서 간주되어야 한다.
[0012] 본 발명의 실시예들이 도면들을 참조하여 단지 예시로서 설명될 것이다.
[0013] 도 1은 본 발명의 몇몇 실시예들에 따른 예시적인 디바이스를 도시한다.
[0014] 도 2는 본 발명의 몇몇 실시예들에 따른, 도 1에 도시된 디바이스의 예시적인 블록도를 도시한다.
[0015] 도 3은 본 발명의 몇몇 실시예들에 따른, 도 1에 도시된 디바이스의 예시적인 블록도를 도시한다.
[0016] 도 4는 본 발명의 몇몇 실시예들에 따른, 포즈, 관성 내비게이션 시스템의 상태들, 스케일, 및/또는 중력을 추정하는 방법의 예를 도시한다.
[0017] 도 5 내지 도 7은 본 발명의 몇몇 실시예들에 따른, 고정(stationary) 평면 타겟 및 수직 중력 벡터를 도시한다.
[0018] 도 8은 본 발명의 몇몇 실시예들에 따른, 모바일 디바이스 및 고정 평면 타겟을 도시한다.
[0019] 도 9는 다양한 기준 시스템들에 관련된다.
[0020] 도 10은 2개의 포즈 측정들을 도시한다.
[0021] 도 11은 스케일링 모호성(ambiguity)을 도시한다.
[0022] 도 12 및 도 13은 본 발명의 몇몇 실시예들에 따른, 관성-기반 포즈와 이미지-기반 포즈 사이의 에러들을 정정하기 위한 모듈들을 도시한다.
[0023] 도 14는 본 발명의 몇몇 실시예들에 따른, 중력 벡터 및 스케일을 개선하기 위한 방법을 도시한다.
[0014] 도 2는 본 발명의 몇몇 실시예들에 따른, 도 1에 도시된 디바이스의 예시적인 블록도를 도시한다.
[0015] 도 3은 본 발명의 몇몇 실시예들에 따른, 도 1에 도시된 디바이스의 예시적인 블록도를 도시한다.
[0016] 도 4는 본 발명의 몇몇 실시예들에 따른, 포즈, 관성 내비게이션 시스템의 상태들, 스케일, 및/또는 중력을 추정하는 방법의 예를 도시한다.
[0017] 도 5 내지 도 7은 본 발명의 몇몇 실시예들에 따른, 고정(stationary) 평면 타겟 및 수직 중력 벡터를 도시한다.
[0018] 도 8은 본 발명의 몇몇 실시예들에 따른, 모바일 디바이스 및 고정 평면 타겟을 도시한다.
[0019] 도 9는 다양한 기준 시스템들에 관련된다.
[0020] 도 10은 2개의 포즈 측정들을 도시한다.
[0021] 도 11은 스케일링 모호성(ambiguity)을 도시한다.
[0022] 도 12 및 도 13은 본 발명의 몇몇 실시예들에 따른, 관성-기반 포즈와 이미지-기반 포즈 사이의 에러들을 정정하기 위한 모듈들을 도시한다.
[0023] 도 14는 본 발명의 몇몇 실시예들에 따른, 중력 벡터 및 스케일을 개선하기 위한 방법을 도시한다.
[0024] 첨부된 도면들과 관련하여 아래에 기재되는 상세한 설명은, 본 발명의 다양한 양상들의 설명으로서 의도되며, 본 발명이 실시될 수 있는 양상들만을 표현하도록 의도되지 않는다. 본 발명에서 설명된 각각의 양상은 단지 본 발명의 예 또는 예시로서 제공되며, 다른 양상들에 비해 반드시 바람직하거나 유리한 것으로서 해석되지는 않아야 한다. 상세한 설명은 본 발명의 철저한 이해를 제공하려는 목적을 위해 특정한 세부사항들을 포함한다. 그러나, 본 발명이 이들 특정한 세부사항들 없이 실시될 수도 있다는 것은 당업자들에게 명백할 것이다. 몇몇 예시들에서, 본 발명의 개념들을 불명료하게 하는 것을 회피하기 위해, 잘-알려진 구조들 및 디바이스들은 블록도 형태로 도시되어 있다. 약어들 및 다른 기술적(descriptive) 용어들이 단지 편의 및 명확성을 위해 사용될 수도 있으며, 본 발명의 범위를 제한하는 것으로 의도되지 않는다.
[0025] 본 명세서에 사용된 바와 같이, 모바일 디바이스는, 종종, 모바일 스테이션(MS) 또는 사용자 장비(UE) 예컨대 셀룰러 폰, 모바일 폰 또는 다른 무선 통신 디바이스, 개인 통신 시스템(PCS) 디바이스, 개인 내비게이션 디바이스(PND), 개인 정보 관리자(PIM), 개인 휴대 정보 단말(PDA), 랩톱, 또는 무선 통신 및/또는 내비게이션 신호들을 수신할 수 있는 다른 적절한 모바일 디바이스로 지칭된다. 또한, 용어 "모바일 디바이스"는, 위성 신호 수신, 보조 데이터 수신, 및/또는 포지션-관련 프로세싱이 디바이스에서 발생하는지 또는 PND에서 발생하는지에 관계없이, 예컨대 단거리 무선 접속, 적외선 접속, 유선 접속, 또는 다른 접속에 의해 개인 내비게이션 디바이스(PND)와 통신하는 디바이스들을 포함하도록 의도된다. 또한, "모바일 디바이스"는, 위성 신호 수신, 보조 데이터 수신, 및/또는 포지션-관련 프로세싱이 디바이스, 서버, 또는 네트워크와 연관된 다른 디바이스에서 발생하는지에 관계없이, 예컨대 인터넷, WiFi, 또는 다른 네트워크를 통하여 서버와 통신할 수 있는 무선 통신 디바이스들, 컴퓨터들, 랩톱들 등을 포함하는 모든 디바이스들을 포함하도록 의도된다. 상기의 임의의 동작가능한 결합이 또한 "모바일 디바이스"로 고려된다.
[0026] 적어도 스케일 및/또는 중력 추정의 실시예들이 본 명세서에 설명된다. 몇몇 실시예들에서, 스케일 및/또는 중력 추정은, 하나 또는 그 초과의 이미지들 및/또는 하나 또는 그 초과의 관성 센서들로부터의 입력들에 기초한다. 몇몇 실시예들에서, 스케일 및/또는 중력 추정은, 이미지 프로세싱, 컴퓨터 비전, 오브젝트 및/또는 이동 추적, 및/또는 증강 현실에 대해 사용될 수도 있다. 증강 현실 애플리케이션들, 디바이스들, 및/또는 환경들에 관한 하나 또는 그 초과의 실시예들이 후술되지만, 실시예들은 설명된 실시예들로 제한되지 않는다. 예를 들어, 본 명세서의 실시예들은, 스케일 및/또는 중력이, 예를 들어, 하나 또는 그 초과의 이미지들 및/또는 하나 또는 그 초과의 관성 센서들로부터의 입력들에 기초하여 추정되는 임의의 상황 또는 기능에 사용될 수도 있다.
[0027] 몇몇 실시예들에서, 본 명세서에 설명된 기능들은 실질적으로 실-시간으로 수행된다. 다른 실시예들에서, 이미지 및/또는 센서 측정치들이 이후의 프로세싱을 위해 저장되거나, 프로세싱은, 저장되고 그리고/또는 수신된 이미지 및/또는 센서 측정치들에 기초한다. 몇몇 실시예들에서, 본 명세서에 설명된 기능들 중 하나 또는 그 전부가 모바일 디바이스, 예컨대 스마트폰 또는 태블릿 또는 다른 디바이스에서 수행될 수도 있다. 몇몇 실시예들에서, 본 명세서에 설명된 기능들 중 하나 또는 그 초과는, 모바일 디바이스로부터 수신되는 정보에 적어도 부분적으로 기초하여 서버 또는 다른 컴퓨팅 디바이스에서 수행될 수도 있다. 몇몇 실시예들에서, 본 명세서에 설명된 기능들 중 하나 또는 그 초과의 성능은, 모바일 디바이스와 통신하는 서버 또는 다른 컴퓨팅 디바이스와 모바일 디바이스 사이에 분할될 수도 있다.
[0028] 특정한 실시예들은, 예를 들어, 더 많은 오브젝트들 또는 타겟들을 식별하고 그리고/또는 엘리먼트들 및/또는 디바이스, 예컨대 이미지 또는 다른 시각적 입력을 캡쳐하는 디바이스의 이동을 추적하기 위해, 이미지 또는 다른 시각적 입력을 프로세싱하는 것을 포함할 수도 있다. 몇몇 환경들 및/또는 애플리케이션들, 예컨대 증강 현실(AR) 애플리케이션들에서, 비전 보조(vision aided) 관성 내비게이션 시스템(INS)을 사용하는 것은 비전 한정(vision only) 접근법에 비해 실질적으로 개선된 성능을 제공할 수도 있다. 예를 들어, 비전 보조 INS를 사용하는 것은, 알려진 및/또는 고정된 타겟을 사용하는 애플리케이션들에서 유익할 수도 있다. 몇몇 실시예들에서, 관성 센서들은 단기적으로 정확히 추적할 수도 있고, 예를 들어, 게이밍 또는 AR 애플리케이션들에 대해 통상적인 신속한 폰 이동들을 추적하는데 사용될 수도 있다. 추가적으로, 관성 센서 입력 및/또는 컴퓨터 비전을 이용하는 측정치들을 융합(fuse)시키는 것은, 예를 들어, 장기적으로 관성 센서들이 단독으로 사용되면 발생할 수도 있는 병진(translation)에서의 잠재적인 드리프트를 완화시킬 수도 있다. 비전 보조 관성 내비게이션 시스템은, 조명 및/또는 특성 포인트 카운트(count)가 열화되는 경우조차 강건한 추적을 제공할 수도 있다.
[0029] 몇몇 실시예들에서, INS는, 예를 들어, 자이로스코프 정보만을 사용하는 자세-한정-INS(attitude-only-INS)를 포함한다. 몇몇 실시예들에서, INS는, 예를 들어 가속도계 및 자이로스코프 측정치들 둘 모두를 사용하는 6 DOF(degree-of-freedom) INS를 포함한다. 예를 들어, 6 DOF INS에서 자이로스코프 정보에 부가하여 가속도계 정보를 사용하는 경우, 예를 들어, 고정된 타겟 프레임에서, 중력 벡터에 의해 표현되는 바와 같은 중력을 아는 것이 유익할 수도 있다. 추가적으로, 예를 들어, 타겟의 특성들의 위치들이 하나 또는 그 초과의 유닛들로부터 하나 또는 그 초과의 다른 유닛들로, 예컨대 타겟에 대해 정규화된 유닛들로부터 메트릭(metric) 유닛들로 변환될 수도 있도록, 타겟의 스케일을 아는 것이 유익할 수도 있다. 알려진 타겟 상의 특성들의 위치들은, 타겟 사이즈로 정규화된 유닛들로 표현되어 다양한 타겟 사이즈들을 지원할 수도 있다. 타겟 사이즈는, 본 명세서에서 타겟의 스케일로서 지칭될 수도 있고, 스케일링 팩터에 의해 정의된다. 몇몇 실시예들에서, 가속도계는 시각적 양식(modality)(예를 들어, 이미지 또는 시각적 입력)을 사용하여 특성 위치를 메트릭 유닛들로 제공할 수도 있다. 따라서, 타겟 사이즈로 정규화된 유닛들로부터 메트릭 유닛들로의 특성 위치들의 변환은, 적어도 가속도계의 이러한 사용에 대해 유익할 수도 있다.
[0030] 몇몇 실시예들에서, 중력 벡터 및/또는 타겟의 스케일은, 스케일 정보의 사용자 입력으로부터 그리고/또는 (예를 들어, 중력 벡터가 알려지도록) 몇몇 알려진 배향으로 타겟을 관측함으로써 알려지거나 결정될 수도 있다. 타겟 스케일 및 중력 벡터가 알려져 있으면, 필터를 사용하는 비전 기반 INS, 예컨대 확장형 칼만 필터(Extended Kalman Filter)(EKF) 기반 비전 보조 INS가 카메라 포즈(또는 시각적 입력을 캡쳐하는 다른 센서의 포즈) 및/또는 관성 센서 교정을 추정하기 위해 사용될 수도 있다. 몇몇 실시예들에서, EKF 기반 비전 보조 INS는, 선형화 에러(들)에 이르기까지 카메라 포즈 및 관성 센서 교정의 최적의 추정들을 제공할 수도 있다.
[0031] 몇몇 실시예들에서, 예를 들어 중력 벡터 형태의 중력, 및/또는 타켓의 스케일은 적응적으로 추정될 수도 있다. 예를 들어, 비전 측정들이 관성 측정들과 융합으로 사용되어 포즈, 예컨대 신체(body) 또는 디바이스 포즈 뿐만 아니라 변하는 바이어스(bias)들 및/또는 중력을 추정할 수도 있다. 몇몇 실시예들에서, 필터는, 관성 센서 판독들 및 타겟의 특성 포인트들로부터 포즈들을 추정하기 위해 사용된다. 추가적으로, 중력 및 타겟 스케일은 필터에서 추정될 수도 있다. 몇몇 그러한 실시예들은, 사용자로부터의 입력 없이 그리고/또는 알려진 타겟 배향을 요구하지 않으면서 그러한 추정을 수행할 수도 있다. 추가적으로, 몇몇 실시예들에서, 그러한 추정들은, 스크래치(scratch)로부터 그리고/또는 알려진 타겟 없이(예를 들어, 기준 없이(reference free))결정될 수도 있다. 몇몇 실시예들은 증강 현실 애플리케이션들로 사용될 수도 있다.
[0032] 도 1은 증강 현실 인에이블된(enabled) 디바이스를 도시한다. 도 1에 도시된 바와 같이, 증강 현실 인에이블된 디바이스(ARD) 또는 모바일 디바이스(100)는, 하우징(101), 디스플레이(102), 하나 또는 그 초과의 스피커들(104), 및/또는 하나 또는 그 초과의 하드웨어 또는 소프트웨어 버튼들(106)을 포함할 수도 있다. 몇몇 실시예들에서, 마이크로폰이 버튼들(106) 중 하나의 적소에 또는 버튼들(106)에 부가하여 포함될 수도 있다. 터치 스크린 디스플레이일 수도 있는 디스플레이(102)는, 카메라(105)에 의해 캡쳐된 이미지들 또는 임의의 다른 소망하는 사용자 인터페이스 정보를 나타낼 수도 있다. 물론, 모바일 디바이스(100)는 도시되지 않은 부가적인 컴포넌트들을 포함할 수도 있고, 하나 또는 그 초과의 컴포넌트들이 생략될 수도 있다.
[0033] 모바일 디바이스(100)는, 셀룰러 또는 다른 무선 통신 디바이스, 개인 통신 시스템(PCS) 디바이스, 개인 내비게이션 디바이스(PND), 개인 정보 관리자(PIM), 개인 휴대 정보 단말(PDA), 랩톱, 또는 다른 모바일 플랫폼과 같은 임의의 휴대용 전자 디바이스를 포함할 수도 있다. 모바일 플랫폼은, 무선 통신 및/또는 내비게이션 포지셔닝 신호들과 같은 내비게이션 신호들을 수신할 수 있을 수도 있다. 용어 ARD는, 위성 신호 수신, 보조 데이터 수신, 및/또는 포지션-관련 프로세싱이 디바이스에서 또는 개인 내비게이션 디바이스(PND)에서 발생하는지에 관계없이, 예컨대 단거리 무선 접속, 적외선 접속, 유선 접속, 또는 다른 접속에 의해 PND와 통신하는 디바이스들을 또한 포함할 수도 있다. 또한, ARD는, 추적에 사용되는 이미지들을 캡쳐할 수 있고 그리고/또는 증강 현실 기능들을 수행할 수 있는 무선 통신 디바이스들, 컴퓨터들, 랩톱들, 태블릿 컴퓨터들, 스마트 폰들, 디지털 카메라들 등을 포함하는 모든 전자 디바이스들을 포함한다.
[0034] 도 2는 모바일 디바이스(100)의 엘리먼트들의 예시적인 블록도를 도시한다. 모바일 디바이스(100)는, 개별적인 포토들 또는 비디오의 프레임들일 수도 있는 환경의 이미지들을 캡쳐하기 위한 카메라(105)를 포함하거나, 다른 시각적 센서를 포함할 수도 있다. 모바일 디바이스(100)는, 예를 들어, 데이터를 제공할 수도 있는 관성 센서들과 같은 센서들(116)을 또한 포함할 수도 있고, 데이터를 이용하여 모바일 디바이스(100)는 자신의 포지션 및/또는 배향 또는 포즈를 결정할 수 있다. 센서들(116)의 예들은, 가속도계들(116-1), 쿼츠(quartz) 센서들, 자이로스코프들(116-2), 선형 가속도계들로서 사용되는 마이크로-전자기계 시스템(MEMS) 센서들 뿐만 아니라 자력계들을 포함할 수도 있다. 몇몇 실시예들에서, 예를 들어, 센서들(116)은 자이로스코프(예를 들어, 바이어스들을 최소화하기 위한 교정된 자이로스코프) 및 가속도계를 포함할 수도 있다. 또한, 모바일 디바이스(100)는, 이미지들을 디스플레이할 수 있는 디스플레이(102)를 포함하는 사용자 인터페이스(110)를 포함할 수도 있다. 사용자 인터페이스(110)는 키패드(114) 또는 다른 입력 디바이스를 또한 포함할 수도 있으며, 이를 통해 사용자는 모바일 디바이스(100)에 정보를 입력할 수 있다. 소망되면, 터치 센서를 이용하여 가상의 키패드가 디스플레이(102)에 통합될 수도 있다. 또한, 사용자 인터페이스(110)는, 예를 들어, 모바일 플랫폼이 셀룰러 전화라면, 마이크로폰(116-3) 및 하나 또는 그 초과의 스피커들(104)을 포함할 수도 있다.
[0035] 모바일 디바이스의 모바일 플랫폼(100)은, 임의의 다른 소망하는 특성들과 함께, 카메라(105) 및 센서들(116) 뿐만 아니라 사용자 인터페이스(110)에 접속되고 이들과 통신하는 제어 유닛(120)을 더 포함한다. 제어 유닛(120)은, 하나 또는 그 초과의 프로세서들(122) 및 연관된 메모리/저장부(124)에 의해 제공될 수도 있다. 또한, 제어 유닛(120)은, 소프트웨어(126) 뿐만 아니라 하드웨어(128), 및 펌웨어(130)를 포함할 수도 있다. 제어 유닛(120)은, 모바일 디바이스(100)의 포지션 및/또는 모바일 디바이스(100)에 의해 모니터링되는 하나 또는 그 초과의 오브젝트들의 포지션들을 추적하도록 구성되는 추적 유닛(132)을 포함한다. 제어 유닛(120)은, 모바일 디바이스(100)의 디스플레이(102) 상에 증강 현실 컨텐츠를 제시하도록 구성되는 증강 현실 유닛(134)을 더 포함할 수도 있다. 추적 유닛(132) 및 증강 현실 유닛(134)은, 명확성을 위해 프로세서(122), 메모리(124), 하드웨어(128), 및/또는 펌웨어(130)와 별개로 도시되지만, 이들 컴포넌트들 중 임의의 것에 결합될 수도 있거나, 이들 유닛들 전부에서 구현될 수도 있다. 몇몇 실시예들에서, 증강 현실 유닛(134)의 일부들은, 예를 들어, 분산형 방식으로, 프로세서(122), 메모리(124), 하드웨어(128), 및/또는 펌웨어(130)에 걸쳐 구현된다. 몇몇 실시예들에서, 증강 현실 유닛(134)은, 소프트웨어(126) 및 펌웨어(130) 내의 명령들에 기초하여 프로세서(122) 및/또는 하드웨어(128)로 구현된다. 몇몇 실시예들에서, 추적 유닛은, 증강 현실 유닛(134)에 의해 그리고/또는 프로세서(122), 메모리(124), 하드웨어(128), 및/또는 펌웨어(130) 중 하나 또는 그 초과에 의해 구현된다. 물론, 모바일 디바이스(100)는 도시되지 않은 부가적인 컴포넌트들을 포함할 수도 있고, 하나 또는 그 초과의 컴포넌트들이 생략될 수도 있다.
[0036] 몇몇 실시예들에서, 카메라 포즈, 가속도계 바이어스, 자이로스코프 바이어스, 카메라-투-관성(camera-to-inertial) 교정, 타겟 프레임에서의 중력 벡터, 및 타겟 스케일은, 컴퓨터 비전 포즈 측정치들을 이용하여 미지수들로서 함께 관측가능하다. 예를 들어, 이들 미지수들은, 미지수들에 대한 특정한 제약들(예를 들어, 일정한 바이어스들, 일정한 카메라-투-관성 교정 등) 및/또는 모션(예를 들어, 넌-제로(non-zero) 병진 가속도 및/또는 회전 속도 등) 하에서 관측가능할 수도 있다. 예를 들어, 카메라(105)의 포즈, 센서들(116) 중 가속도계의 바이어스, 센서들(116) 중 자이로스코프(116-2)의 바이어스, 및/또는 카메라-투-센서(camera-to-sensors) 교정의 교정은 미지수들로서 함께 관측가능할 수도 있다.
[0037] 아래의 실시예에서, X는 하나 또는 그 초과의 INS 상태들을 나타낸다. 예를 들어, X는 카메라 포즈, 가속도계 및/또는 자이로(gyro) 바이어스들 등을 나타낼 수도 있다. 추가적으로, 후술되는 실시예에서, Y는 중력 및/또는 타겟 스케일 파라미터들을 나타낸다. 부가적으로, 아래의 설명에서, C는 비전 양식에 의해 계산된 카메라(105)의 포즈를 나타낸다.
[0038] 베이지안 원리(baysian philosophy)가, 컴퓨터 비전 포즈(C), INS 상태들(X), 및 스케일 및 중력(Y)의 결합 확률 분포(joint probability distribution)를 최대화하기 위해 사용될 수도 있다. 이러한 관계는 아래에서 식 1로 나타난다.
[0040] 본 명세서에 사용된 바와 같이, 심볼들 및 은 X 및 Y의 MAP(Maximum-A-Posteriori) 추정치들을 나타낸다. 그러나, 당업자들은, INS 상태, 중력, 및/또는 스케일의 다른 추정치들이 대신 또는 부가적으로 도출될 수도 있음을 인식할 것이다. 몇몇 실시예들에서, arg max는 최대치의 인수, 예를 들어, 주어진 인수의 포인트들의 세트에 대하여, 주어진 함수가 자신의 최대 값을 획득하는 주어진 인수의 포인트들의 세트를 표현한다.
[0041] MAP 추정치는 적응형 접근법을 사용하여 계산될 수도 있다. 예를 들어, MAP 추정치는 필터를 사용하여 계산될 수도 있다. 필터(302)의 일 예가 도 3에 도시된다. 필터(302)는 프로세서(122) 또는 전용 하드웨어 내의 기능 또는 모듈일 수도 있다. 몇몇 실시예들에서, 필터, 예컨대 필터(302)는, EKF를 포함한다. 필터는, 추적 유닛(132), 증강 현실 유닛(134)으로 구현될 수도 있고 그리고/또는 프로세서(122), 메모리(124), 하드웨어(128) 및/또는 펌웨어(130) 중 임의의 것으로 구현될 수도 있다. 몇몇 실시예들에서, 필터는 위에 인용된 컴포넌트들 중 임의의 것과 별개로 구현된다.
[0042] 몇몇 실시예들에서, 상태 공간(state space)은, 자이로스코프 바이어스, 자세, 가속도계 바이어스, 포지션, 속도, 각속도, 각 가속도, 병진 가속도, 병진 저크(jerk), 중력, 및/또는 타겟 스케일로 이루어진다. 상태들은, 자이로스코프(116-2)로부터의 자이로스코프 측정치들, 가속도계(116-1)로부터의 가속도계 측정치들, 및/또는 카메라(105)로부터의 포즈 측정치들을 이용하여 업데이트될 수도 있다.
[0043] 몇몇 실시예에서, 통상적으로, 모바일 디바이스(100)와 같은 디바이스를 쥐고 있는 사용자는, EKF가 짧은 시간 내에, 예컨대 2-3초 내에 중력 및 가속도계 모호성제거(disambiguation)를 달성하게 하는 충분한 회전을 야기한다. 추가적으로, 비교적 높은 프로세스 잡음을 타겟 스케일의 상태에 할당하는 것은, 컨버전스(convergence)를 개선시킬 수도 있다. 예를 들어, 1e-1의 프로세스 잡음은 약 3-4초 내에 컨버전스를 달성하는 것으로 보여진다. 따라서, 스케줄링이 결정될 수도 있다. 예를 들어, 높은 프로세스 잡음이 (고속 컨버전스를 허용하기 위해) 처음 몇 초 동안 셋팅된 후, 이후에 감소되어 타겟의 사이즈가 변하지 않는다는 점을 설명할 수도 있다. 이러한 방식에서, 실시예들은, 사용자로부터의 입력 없이 수행될 수도 있다. 추가적으로, 필터는, 어떠한 사전 정보도 알려져 있지 않은 경우조차 수 초 내에 "타이트닝(tighten)"되며, 개선된 추적을 초래할 수도 있다.
[0044] 도 4는 예시적인 프로세스(400)를 도시한다. (402)에서, 하나 또는 그 초과의 시각적 측정치들이, 예를 들어, 카메라(105)를 사용하여 획득된다. (404)에서, 하나 또는 그 초과의 관성 센서 측정치들이, 예를 들어, 센서들(116)을 사용하여 획득된다. (404)에서, 몇몇 실시예들에서, 측정치들은 자이로스코프 및 가속도계로부터 획득된다.
[0045] (406)에서, 포즈, INS 상태(들), 스케일, 및/또는 중력이, 예를 들어, 증강 현실 유닛(134), 프로세서(122), 메모리(124), 하드웨어(128), 및/또는 펌웨어(130)를 사용하여, (402) 및 (404)에서 획득된 측정치들에 기초하여 계산된다. (406)에서, 이들 파라미터들 중 하나 또는 그 초과의 MAP 추정치들이 식 1에 따라 계산될 수도 있다.
[0046] 몇몇 실시예들에서, (406)에서 수행되는 계산은, 예를 들어, 필터(302)를 사용하여 (402) 및/또는 (404)로부터의 측정치들을 (414)에서 필터링하는 것을 포함한다. 몇몇 실시예들에서, (406)은, 예를 들어, 관성 센서(예를 들어, 센서(116)) 및/또는 증강 현실 애플리케이션의 상태들 또는 다른 상태를 (416)에서 업데이트하는 것을 추가적으로 포함한다. 증강 현실 유닛(134), 추적 유닛(132), 프로세서(122), 메모리(124), 하드웨어(128), 및/또는 펌웨어(130)가 (416)을 수행하는데 사용될 수도 있다.
[0047] 몇몇 실시예들에서, 프로세스(400)는, (406)에서 적응적으로 계산된 파라미터들 중 하나 또는 그 초과에 기초하여, 엘리먼트(예를 들어, 타겟), 또는 디바이스(예를 들어, 모바일 디바이스(100) 또는 프로세스(400)를 구현한 다른 디바이스)의 이동을 추적하는 것을 추가적으로 포함한다. 예를 들어, 추적 유닛(132)이 (132)를 수행할 수도 있다.
[0048] 상술된 실시예들의 이점들은, 시각적 타겟에 관한 고속이고 정확한 중력의 추정 뿐만 아니라, 시각적 타겟의 고속이고 정확한 스케일의 추정을 포함할 수도 있다. 예를 들어, 스케일 또는 스케일링 팩터는, 실제 타겟 사이즈와 데이터 베이스의 타겟 사이즈 사이의 비를 포함할 수도 있다. 따라서, 컴퓨터 비전으로부터의 포즈들을 관성 센서 측정치들과 융합시키기 위해, 가속도계가 자이로스코프에 부가하여 사용될 수도 있으며, 이는, 몇몇 실시예들에서, 선형화 에러들에 이르기까지 최적일 수도 있다. 추가적으로, 스케일 증강들이 절대 차원(absoulte dimension)들에서 결정될 수도 있다. 따라서, 증강들의 사이즈는 타겟 사이즈의 함수가 아닐 수도 있다. 추가적으로, 증강들은 중력에 관해 배향될 수도 있다(예를 들어, 게임에서, 피겨(figure)들이 중력에 대해 라인 업(line up)되는 것이 기대될 수도 있음).
[0049] 몇몇 실시예들에서, x 및 y(또는 임의의 2개의 차원들)에서의 스케일이 추정될 수도 있다. 예를 들어, 타겟들은 부정확한 종횡비(aspect ration)(예를 들어, "선택된 종이 사이즈에 대해 적합한 사이즈")로 종종 인쇄된다. x 및 y에서의 타겟 스케일의 추정은 이러한 이슈를 해결(address)할 수도 있다. 추가적으로, 컴퓨터 비전 포즈는, 상술된 실시예들에 따라 자연 속성(natrual feature) 추적자로부터 도출될 수도 있다. 몇몇 실시예들에서, PTAM 포즈 측정치들은, EKF 프레임워크에 입력될 수도 있는데, 예를 들어, 개선된 추적 강건성 외에 스케일 및 중력을 획득하기 위해, 관성 측정치들에 부가하여 필터(302)에 공급될 수도 있다.
[0050] 몇몇 실시예들에서, 더 이상 타겟이 시야에 없도록 시각적 센서가 이동되면, 중력 벡터가 방향을 변경하도록 타겟의 배향이 변경되고, 그 후, 타겟이 시야에 있도록 시각적 센서가 이동되는데, 본 명세서에 설명된 실시예들은, 성능, 예컨대 점근적(asymptotic) 시간에서의 적은 차이로 또는 그러한 차이 없이 수행할 수도 있다. 예를 들어, 이것은 적응적 중력 추정을 사용하여 달성될 수도 있다.
[0051] 몇몇 실시예들에서, 더 이상 타겟이 시야에 없도록 시각적 센서가 이동되면, 타겟은 상이한 사이즈의 유사한 타겟으로 대체(replace)되고, 그 후, 타겟이 시야에 있도록 시각적 센서가 이동되는데, 본 명세서에 설명된 실시예들은, 성능, 예컨대 점근적 시간에서의 적은 차이로 또는 그러한 차이 없이 수행할 수도 있다. 예를 들어, 이것은 적응적 스케일 추정을 사용하여 달성될 수도 있다.
[0052] 도 5 내지 도 7은 본 발명의 몇몇 실시예들에 따른, 고정 평면 타겟(500) 및 수직 중력 벡터를 도시한다. 도 5에서, 고정 평면 타겟(500)은 글로벌 기준 시스템(GRS)(520)에 관하여 도시된다. X-축 및 Y-축은 경도(longitude) 및 위도(latitude)에 의해 표현되는 평면을 형성한다. Z-축은, 이론적인 중력의 방향 [0, 0, 1] 또는 세계의 특정 지역(part)에 대한 실제의 중력을 표현하며, 이는, 예를 들어, GRS(520)에서 San Diego에 대해 [0, 0, 9.79]로 표현될 수도 있다. 고정 평면 타겟(500)은 GRS(520)에 관하여 이동하지 않으며, X-Y 평면과 정렬되지 않는다. 중력 벡터에 대한 제 1 추측 또는 제 1 추정 G(510)는, 고정 평면 타겟(500)의 평면에 수직으로 셋팅될 수도 있으며, 이는, 타겟 기준 시스템(TRS)(530)과 독립적이다. 제 1 추정 G(510)는, 수신되거나, 사전셋팅(preset)되거나, 각각의 발생 시 셋팅되거나, 사전에 결정되거나, 또는 메모리에 저장될 수도 있으며, 상이한 AR 애플리케이션들에 대해 공통이거나 고유일 수도 있다. 도 6에서, 중력 벡터에 대한 추정인 G(510)는 GRS(520)에 관하여 도시된다. 이러한 예에서, [x, y, z]GRS의 관점에서의 G는, 대략적으로 [0.1, 0.05, 0.9]GRS와 동일하다. 도 7에서, 고정 평면 타겟(500)은 GRS(520)(점선들)에 관한 타겟 기준 시스템(TRS)(530)(실선 축)에서 도시된다. 고정 평면 타겟(500)은 TRS(530)를 정의한다. 고정 평면 타겟(500)의 평면은 TRS(530)의 X-Y 평면에 있다. G(510)는, 중력에 대한 초기 추측 또는 추정이 [x, y, z]TRS = [0, 0, 1]TRS이도록 Z-축을 따라 지향된다.
[0053] 도 8은 본 발명의 몇몇 실시예들에 따른, 모바일 디바이스(100) 및 고정 평면 타겟(500)을 도시한다. 모바일 디바이스(100)는 카메라(105) 및 가속도계(116-1)를 포함한다. 카메라(105)는 고정 평면 타겟(500)을 향해 지향된다. 고정 평면 타겟(500)에 관한 측정치들은 TRS(530)에서 비롯할 수도 있다. 카메라(105)로부터의 이미지와 같은 측정치들은, 카메라 기준 시스템(CRS)(540)에서 비롯한다. 가속도계(116-1)로부터의 측정치들은 가속도계 기준 시스템(ARS)(550)에서 비롯한다.
[0054] 도 9는 다양한 기준 시스템들에 관련된다. 3개의 도시된 기준 시스템들은, (1) 종종 타겟 기준 프레임으로 지칭되는 타겟 기준 시스템(TRS)(530); (2) 종종 카메라 기준 프레임으로 지칭되는 카메라 기준 시스템(CRS)(540); 및 (3) 종종 가속도계 기준 프레임으로 지칭되는 가속도계 기준 시스템(ARS)(550)이다. TRS(530)와 CRS(540) 사이를 변환하기 위해, 포즈는, 컴퓨터 비전(CV) 알고리즘을 사용하는 이미지로부터 결정된다. 포즈는, 병진 벡터 및 회전 매트릭스를 정의할 수도 있으며, 이들 각각은, 가변적이고, 카메라(105)와 고정 평면 타겟(500) 사이의 적절한 관계에 의존한다. CRS(540)와 ARS(550) 사이를 변환하기 위해, 일정한 포즈가 사용될 수도 있다. 일정한 포즈는 일정한 병진 벡터 및 일정한 회전 매트릭스에 의해 정의될 수도 있다. 일정한 병진 벡터는, 변위 스칼라(displacement scalar)를 포함할 수도 있고, 카메라(105)와 가속도계(116-1) 사이에 있을 수도 있다. CRS(540)와 ARS(550) 사이에 어떠한 회전도 존재하지 않는다면, 항등(identity) 매트릭스가 회전 매트릭스에 대해 사용될 수도 있다. 그러나, 몇몇 구현들에서, 카메라(105) 및 가속도계는, 공통 회로 기판의 상이한 부분들 상에 땜납(solder)되거나 별개이지만 접속된 회로 기판들 상에 땜납된다. 오정렬(misalignment)들로 인한 컴포넌트들의 약간의 오프셋들을 처리(account for)하기 위해, 일정한 회전 매트릭스는 항등 매트릭스와 약간 상이할 수도 있다. TRS(530)와 ARS(550) 사이를 변환하기 위해, 계산은 CRS(540)에서 과도(interim) 값을 발견하거나, 처음 2개의 병진 벡터들 및 처음 2개의 매트릭스들이 결합되어 가변 병진 벡터 및 가변 회전 매트릭스를 형성할 수도 있다.
[0055] 다음의 도 10 내지 도 14의 설명은, 가속도계(116-1)로부터의 관성-기반 포즈(860)와 카메라(105)의 제 1 이미지(610) 및 제 2 이미지(710)로부터의 이미지-기반 포즈(880)를 비교한다. 도 10은, 카메라(105)가 제 1 시간(630)에서 제 1 포지션(620)으로부터 제 2 시간(730)에서 제 2 포지션(720)으로 이동했음이 가정됨을 도시한다. 도 10은, CV 알고리즘이, 이미지-기반 포즈(880)를 초래하는 제 1 포즈(600)와 제 2 포즈(700)를 생성함을 또한 도시한다. 도 11은, 카메라 이미지에 대해 가정된 스케일링 팩터에서의 변동들을 도시한다. 도 12 및 도 13은, 가속도계(116-1) 및 자이로스코프(116-2)로부터의 판독들이 관성-기반 포즈(860)를 결정하는 것을 돕는 것을 도시한다. 도 13에서, 관성-기반 포즈(860)와 이미지-기반 포즈(880)의 비교는, 각 에러 및 스칼라 에러를 갖는 에러 벡터를 초래한다. 에러 벡터는, 칼만-필터 문헌에서 이노베이션(innovation) 시퀀스 또는 이노베이션 벡터로서 알려져 있다. 도 14는 모바일 디바이스에서 추정하기 위한 방법을 도시한다.
[0056] 도 10은 2개의 포즈 측정들을 도시한다. 예에서, 제 1 이미지(610)는 제 1 포지션(620)(고정 평면 타겟(500)으로부터의 상대적 배향 및 거리)으로부터 제 1 시간(630)에서 캡쳐된다. CV 알고리즘으로부터, 예를 들어, TRS(530)와 CRS(540) 사이의 제 1 포즈(600)가 계산될 수도 있다. 제 1 시간(630)으로부터 제 2 시간(730)까지, 카메라(105)는 제 1 포지션(620)으로부터 제 2 포지션(720)으로 이동된다. 이동은, 도 12 및 도 13을 참조하여 후술되는 바와 같이, 가속도계(116-1)로부터의 가속도계 측정치들(810) 및 자이로스코프(116-2)로부터의 자이로스코프 측정치들(820)을 이용하여 계산된 포즈 또는 병진 벡터 및 회전 매트릭스에 의해 정의될 수도 있다. 제 2 포지션(720) 및 제 2 시간(730)에서, 카메라(105)는 제 2 이미지(710)를 캡쳐한다. 다시, CV 알고리즘으로부터, 예를 들어, 카메라(105)와 고정 평면 타겟(500) 사이에서 제 2 포즈(700)가 결정된다. 따라서, 제 1 포즈(600)로부터 제 2 포즈(700)로의 병진 및 회전은, CV 또는 이미지-기반 포즈(880) 및 대응하는 회전 매트릭스를 정의할 수도 있다.
[0057] 도 11은 스케일링 모호성을 도시한다. 카메라(105)는 단일 이미지 단독으로부터 고정 평면 타겟(500)의 스케일을 결정할 수 없다. 카메라(105)의 관점(point of view)으로부터, 고정 평면 타겟(500)은, 소형이고 카메라(105)에 근접해 있거나(예를 들어, 고정 평면 타겟(500-1), 평균 사이즈이고 및 카메라(105)로부터 평균 거리에 있거나(예를 들어, 고정 평면 타겟(500-2), 크고 카메라(105)로부터 멀리 있을 수도 있다(예를 들어, 고정 평면 타겟(500-3). 상이한 사이즈들의 고정 평면 타겟(500)을 수용하기 위해 스케일링 팩터가 사용된다. 예를 들어, 고정 평면 타겟(500-1)은 0.5의 스케일링 팩터에 의해 표현되고, 고정 평면 타겟(500-2)은 1.0의 스케일링 팩터에 의해 표현되면, 고정 평면 타겟(500-3)은 2.0의 스케일링 팩터에 의해 표현된다. 스케일링 팩터는, 고정 평면 타겟(500)이 카메라(105)로부터 떨어져 있는 거리를 설명한다.
[0058] 도 12 및 도 13은 본 발명의 몇몇 실시예들에 따른, 관성-기반 포즈와 이미지-기반 포즈 사이의 에러들을 정정하기 위한 모듈들을 도시한다. 첫째로, 관성-기반 포즈를 결정하기 위한 프로세스가 설명된다. 도 12에서, 가속도계 측정치들(810)이 가속도계(116-1)로부터 프로세서에 의해 수신된다. 포즈가 결정될 수도 있기 이전에, 중력으로 인한 가속도가 가속도계 측정치들(810)로부터 감산기(150)에 의해 제거된다. 감산기(150)는 프로세서(122) 내의 기능 또는 모듈일 수도 있다. 중력으로 인한 가속도를 결정하기 위해, 중력 벡터의 현재 추측 또는 현재 추정치(832)가 각각의 가속도계 측정치(810)에 대해 제 1 시간과 제 2 시간 사이에서 보상기(140)에 의해 보상된다. 보상기(140)는 프로세서(122) 내의 기능 또는 모듈일 수도 있다. 보상기(140)는 자이로스코프 측정치들(820)을 누산(accumulate)하고 , 결과를 중력 벡터의 현재 추정치(832)에 가산한다. 중력 벡터의 현재 추정치(832)는, 중력 벡터의 제 1 추정치(832)가 고정 평면 타겟(500)에 수직인 벡터로 셋팅될 수도 있는 제 1 시간에서 셋팅된다. 보상기(140)의 동작은, 특정한 자이로스코프 측정치(820)와 연관되는 조정된 추측 또는 조정된 추정치(840)를 초래한다. 가속도계 측정치들(810)로부터 중력 벡터의 조정된 추정치(840)를 감산하는 감산기(150)의 결과는, 중력 없는 가속도 벡터(850)일 수도 있다. 프로세싱은 도 13에서 계속된다.
[0059] 도 13의 비교에서, 에러 벡터는, 관성-기반 포즈(860)와 이미지-기반 포즈(880) 사이의 벡터 차이로부터 직접 계산될 수도 있다. 도 13의 엘리먼트들 각각은, 프로세서(122) 내의 기능 또는 모듈일 수도 있다. 에러 벡터를 최소화하기 위한 관성-기반 포즈(860)에 대한 새로운 값이 해결될 수도 있다. 유사하게, 에러 벡터를 최소화하기 위한 이미지-기반 포즈(880)에 대한 새로운 벡터가 해결될 수도 있다. 그러나, 새로운 스케일링 팩터 및 새로운 중력 벡터 둘 모두가 추정되면, 예를 들어, (예를 들어, 확장형 칼만 필터(EKF) 알고리즘으로부터의) 대응하는 칼만 필터 이득들에 의해 특정되는 바와 같은 절충(compromise) 또는 평균이 2개의 솔루션들 사이에서 선택되어 중간적(intermediate) 결과를 제공할 수도 있다. 이러한 방식에서, 중력의 더 양호한 추정치를 결정하기 위해 에러 벡터가 사용될 수도 있다. 유사하게, 스케일링 팩터(515)의 더 양호한 추정치를 결정하기 위해 에러 벡터가 사용될 수도 있다.
[0060] 도 13에서, 중력 없는 가속도 벡터(850)가 누산기(160)에 의해 누산된다. 누산기(160)는, 가속도 벡터(850)로부터의 병진을 이중 적분, 예컨대 추측 항법에 의해 계산한다. 누산기(160)의 결과는, 관성-기반 포즈(860)이다. 비교기(170)는 에러 벡터를 결정하고, 에러 벡터를 중력 벡터의 다음 추측 또는 다음 추정치(830)로 변환한다. 지연 유닛(190)은 중력 벡터의 다음 추정치(830)를 수용하고, 중력 벡터의 현재 추정치(832)를 생성한다. 현재 추정치(832)는, 제 1 시간과 제 2 시간 사이의 기간 T 동안 일정하게 유지된다.
[0061] 또한 도 13에서, 이미지-기반 포즈(880)가 결정된다. 이미지-기반 포즈(880)는 관성-기반 포즈(860)와 등가여야 한다. 2개의 벡터들(860, 880)은 비교기(170)에 의해 비교되어 중력 벡터의 다음 추정치(830) 및 스케일링 팩터의 다음 추정치(890)를 형성하며, 이들은 지연 유닛들(190 및 194)에 의해 각각 지연되어 현재 값들을 유지한다.
[0062] 제 1 포즈(600) 및 제 2 포즈(700)는, 포즈들 사이의 병진 벡터를 계산하기 위해 생성기(180)에 의해 사용되고, 그에 의해, 스케일링 되지 않은 이미지-기반 포즈(870)를 생성한다. 스케일링되지 않은 이미지-기반 포즈(870)는 스케일링 팩터의 현재 추정치(892)와 곱셈되어 스케일링된 이미지-기반 포즈(880)를 생성한다. 비교기(170)는 관성-기반 포즈(860)와 함께 이미지-기반 포즈(880)를 수용하여 중력 벡터의 다음 추정치(830) 및 스케일링 팩터의 다음 추정치(890)를 결정한다. 다음 추정치(830)는 에러 벡터를 최소화하는 중력 값일 수도 있다. 다음 추정치(890)는 에러 벡터를 최소화하는 스케일링 팩터일 수도 있다. 대안적으로, 다음 추정치(830) 및 다음 추정치(890)는 이들 2개의 솔루션들 사이의 절충일 수도 있다.
[0063] 도 14는 본 발명의 몇몇 실시예들에 따른, 중력 벡터 및 스케일을 개선하기 위한 방법(1000)을 도시한다. 몇몇 실시예들에서, 스케일링 팩터가 가정될 수도 있고, 중력 벡터의 다음 추정치(830)가 결정된다. 다른 실시예들에서, 중력 벡터는 가정되고, 스케일링 팩터의 다음 추정치(890)는 결정된다. 그렇지만 다른 실시예들에서, 중력에 대한 추측 또는 추정치들(830) 및 스케일링 팩터에 대한 추정치들(890) 둘 모두는 다음의 예에서 도시된 바와 같이 결정된다.
[0064] (1010)에서, 모바일 디바이스(100)의 프로세서(예컨대, 도 2의 프로세서(122)는 중력 벡터의 제 1 추정치(832)(G(510)로서 위에 또한 설명됨)를 셋팅한다. 예를 들어, 중력 벡터의 제 1 추정치(832)는, 고정 평면 타겟(500)에 의해 형성된 평면에 수직일 수도 있다. (1015)에서, 프로세서는 스케일링 팩터의 제 1 추정치(892)를 셋팅한다. 예를 들어, 스케일링 팩터의 제 1 추정치(832)는 단일(unity)로 셋팅될 수도 있다. 프로세서는, (1010) 및 (1015) 둘 모두를 수행하거나 (1010) 또는 (1015) 중 어느 하나를 수행할 수도 있다. (1010) 및/또는 (1015)에서 중력 벡터 및/또는 스케일링 팩터의 제 1 추정치를 셋팅하는 대신, 중력 벡터의 제 1 추정치 및/또는 스케일의 제 1 추정치는, 예를 들어, 사전셋팅되거나, 사전에 결정되거나, 사전에 메모리에 셋팅되거나, 다양한 AR 애플리케이션들에 대해 상이하거나, 또는 필요할 때마다 셋팅될 수도 있다.
[0065] (1020)에서, 프로세서는, 고정 평면 타겟(500)과 카메라(105)의 제 1 포지션(620) 사이의 제 1 포즈(600)를, 제 1 시간(630)에서 캡쳐된 제 1 이미지(610)로부터 결정하며, 여기서, 제 1 이미지(610)는 고정 평면 타겟(500)의 이미지를 포함한다.
[0066] (1030)에서, 프로세서는, 고정 평면 타겟(500)과 카메라(105)의 제 2 포지션(720) 사이의 제 2 포즈(700)를, 제 2 시간(730)에서 캡쳐된 제 2 이미지(710)로부터 결정하며, 여기서, 제 2 이미지(710)는 고정 평면 타겟(500)의 이미지를 또한 포함한다.
[0067] (1040)에서, 프로세서는, 제 1 포즈(600) 와 제 2 포즈(700) 사이의 이미지-기반 포즈(880)를 계산한다.
[0068] (1050)에서, 프로세서는, 제 1 시간(630)으로부터 제 2 시간(730)RK지의 가속도계 측정치들(810)을 수신한다.
[0069] (1060)에서, 프로세서는, 중력 벡터의 제 1 추정치(832)와 가속도계 측정치들(810)을 감산하여 가속도계 측정치들(810) 각각에 대한 가속도 벡터(850)를 형성한다.
[0070] (1070)에서, 프로세서는, 가속도계 측정치들(810) 각각에 대한 가속도 벡터(850)로부터 관성-기반 포즈(860)를 형성한다.
[0071] (1080)에서, 프로세서는, 이미지-기반 포즈(880)와 관성-기반 포즈(860) 사이의 차이에 기초하여 중력 벡터의 제 2 추정치(830)를 형성한다. (1085)에서, 프로세서는, 이미지-기반 포즈(880)와 관성-기반 포즈(860) 사이의 차이에 기초하여 스케일링 팩터의 제 2 추정치(890)를 또한 형성한다. 프로세서는, (1080) 및 (1085) 둘 모두를 수행하거나 (1080) 또는 (1085) 중 어느 하나를 수행할 수도 있다.
[0072] 프로세싱은, (1030)에서, 정교화된(refined) 값들(중력에 대한 제 2 추정치(830) 및 스케일링 팩터에 대한 제 2 추정치(890)), 새로운 자이로스코프 및 가속도계 측정치들, 및 새로운 이미지에 대해 되풀이하여(iteratively) 반복된다. 요컨대, 몇몇 실시예들은, 도 2의 프로세서(122) 및/또는 추적 유닛(132) 및/또는 도 3의 필터(302)를 사용하여, 도 14의 엘리먼트들을 수행한다. 몇몇 실시예들에서, (1010) 및/또는 (1015)는, 비교기(170) 및/또는 카메라(105) 및/또는 센서(116)에 의해 수행된다. 몇몇 실시예들에서, (1020) 및/또는 (1030)은 카메라(105)에 의해 수행된다. 몇몇 실시예들에서, (1040)은 생성기(180)에 의해 수행된다. 몇몇 실시예들에서, (1050)은, 가속도계(116-1)로부터 가속도계 측정치들(810)을 수신하는 감산기(150)에 의해 수행된다. 몇몇 실시예들에서, (1060)은 감산기(150)에 의해 수행된다. 몇몇 실시예들에서, (1070)은 누산기(160)에 의해 수행된다. 몇몇 실시예들에서, (1080) 및 (1085)는 비교기(170)에 의해 수행된다.
[0073] 본 명세서에 설명된 방법들은, 애플리케이션에 의존하여 다양한 수단에 의해 구현될 수도 있다. 예를 들어, 이들 방법들은 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 임의의 결합으로 구현될 수도 있다. 하드웨어 구현에 대해, 프로세싱 유닛들은, 하나 또는 그 초과의 주문형 집적 회로(ASIC)들, 디지털 신호 프로세서(DSP)들, 디지털 신호 프로세싱 디바이스(DSPD)들, 프로그래밍가능 로직 디바이스(PLD)들, 필드 프로그래밍가능 게이트 어레이(FPGA)들, 프로세서들, 제어기들, 마이크로-제어기들, 마이크로프로세서들, 전자 디바이스들, 본 명세서에 설명된 기능들을 수행하도록 설계된 다른 전자 유닛들, 또는 이들의 결합 내에 구현될 수도 있다.
[0074] 펌웨어 및/또는 소프트웨어 구현에 대해, 방법들은 본 명세서에 설명된 기능들을 수행하는 모듈들(예를 들어, 절차들, 함수들 등)을 이용하여 구현될 수도 있다. 명령들을 유형으로 구현하는 임의의 머신-판독가능 매체는, 본 명세서에 설명된 방법들을 구현할 시에 사용될 수도 있다. 예를 들어, 소프트웨어 코드들은 메모리에 저장되고 프로세서 유닛에 의해 실행될 수도 있다. 메모리는 프로세서 유닛의 내부에 또는 프로세서 유닛의 외부에 구현될 수도 있다. 본 명세서에 사용된 바와 같이, 용어 "메모리"는 장기, 단기, 휘발성, 비휘발성, 또는 다른 메모리의 임의의 타입을 의미하며, 임의의 특정한 타입의 메모리 또는 메모리들의 수, 또는 메모리가 저장되는 매체들의 타입에 제한되지 않는다.
[0075] 펌웨어 및/또는 소프트웨어로 구현되면, 기능들은 비-일시적인 컴퓨터-판독가능 매체 상에 하나 또는 그 초과의 명령들 또는 코드로서 저장될 수도 있다. 예들은, 데이터 구조로 인코딩된 비-일시적인 컴퓨터-판독가능 매체들 및 컴퓨터 프로그램으로 인코딩된 컴퓨터-판독가능 매체들을 포함한다. 비-일시적인 컴퓨터-판독가능 매체들은 물리적 컴퓨터 저장 매체들을 포함한다. 저장 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 이용가능한 매체일 수도 있다. 제한이 아닌 예로서, 그러한 비-일시적인 컴퓨터-판독가능 매체들은 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 저장부, 자기 디스크 저장 또는 다른 자기 저장 디바이스들, 또는 명령들 또는 데이터 구조들의 형태로 원하는 프로그램 코드를 저장하는데 사용될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있고; 본 명세서에 사용된 바와 같이, 디스크(disk) 및 디스크(disc)는 컴팩트 디스크(disc)(CD), 레이저 디스크(disc), 광학 디스크(disc), 디지털 다목적 디스크(disc)(DVD), 플로피 디스크(disk) 및 Blu-ray 디스크(disc)를 포함하며, 여기서, 디스크(disk)들은 일반적으로 데이터를 자기적으로 재생하지만, 디스크(disc)들은 레이저들을 이용하여 광학적으로 데이터를 재생한다. 또한, 상기 것들의 결합들은 컴퓨터-판독가능 매체들의 범위 내에 포함되어야 한다.
[0076] 컴퓨터 판독가능 매체 상의 저장에 부가하여, 명령들 및/또는 데이터는 통신 장치에 포함된 송신 매체들 상의 신호들로서 제공될 수도 있다. 예를 들어, 통신 장치는 명령들 및 데이터를 표시하는 신호들을 갖는 트랜시버를 포함할 수도 있다. 명령들 및 데이터는, 하나 또는 그 초과의 프로세서들로 하여금 청구항들에서 약술된 기능들을 구현하게 하도록 구성된다. 즉, 통신 장치는, 기재된 기능들을 수행하기 위한 정보를 표시하는 신호들을 갖는 송신 매체들을 포함한다. 제 1 시간에서, 통신 장치에 포함된 송신 매체들은 기재된 기능들을 수행하기 위한 정보의 제 1 부분을 포함할 수도 있지만, 제 2 시간에서, 통신 장치에 포함된 송신 매체들은 기재된 기능들을 수행하기 위한 정보의 제 2 부분을 포함할 수도 있다.
[0077] 기재된 양상들의 이전 설명은 당업자가 본 발명을 사용 또는 실시할 수 있도록 제공된다. 이들 실시예들에 대한 다양한 변형들은 당업자들에게는 용이하게 명백할 것이며, 본 명세서에 정의된 일반적인 원리들은 본 발명의 사상 또는 범위를 벗어나지 않으면서 다른 양상들에 적용될 수도 있다.
Claims (40)
- 모바일 디바이스에서 추정하기 위한 방법으로서,
타겟과 상기 모바일 디바이스의 카메라의 제 1 포지션 사이의 제 1 포즈(pose)를, 제 1 시간에서 캡쳐된 제 1 이미지로부터 결정하는 단계 ― 상기 제 1 이미지는 상기 타겟을 포함함 ―;
상기 타겟과 상기 카메라의 제 2 포지션 사이의 제 2 포즈를, 제 2 시간에서 캡쳐된 제 2 이미지로부터 결정하는 단계 ― 상기 제 2 이미지는 상기 타겟을 포함함 ―;
스케일링 팩터의 제 1 추정치를 사용하여 상기 제 1 포즈와 상기 제 2 포즈 사이의 이미지-기반 포즈를 계산하는 단계;
상기 제 1 시간으로부터 상기 제 2 시간까지, 상기 모바일 디바이스의 가속도계로부터 측정치들을 수신하는 단계;
상기 가속도계로부터의 상기 측정치들 및 중력 벡터에 대한 제 1 추정치에 기초하여 관성-기반 포즈를 형성하는 단계;
상기 이미지-기반 포즈와 상기 관성-기반 포즈 사이의 차이를 계산하는 단계; 및
상기 차이에 기초하여 상기 중력 벡터의 제 2 추정치 또는 상기 스케일링 팩터의 제 2 추정치 중 적어도 하나를 형성하는 단계를 포함하는, 모바일 디바이스에서 추정하기 위한 방법. - 제 1 항에 있어서,
상기 제 1 시간에서의 상기 제 1 포지션으로부터 상기 제 1 이미지를 캡쳐하는 단계, 및 상기 제 2 시간에서의 상기 제 2 포지션으로부터 상기 제 2 이미지를 캡쳐하는 단계를 더 포함하는, 모바일 디바이스에서 추정하기 위한 방법. - 제 1 항에 있어서,
상기 타겟은 평면 타겟을 포함한다고 가정하는 단계를 더 포함하는, 모바일 디바이스에서 추정하기 위한 방법. - 제 1 항에 있어서,
상기 타겟은 고정(stationary) 타겟을 포함한다고 가정하는 단계를 더 포함하는, 모바일 디바이스에서 추정하기 위한 방법. - 제 1 항에 있어서,
상기 중력 벡터의 상기 제 1 추정치는 상기 타겟에 수직인, 모바일 디바이스에서 추정하기 위한 방법. - 제 1 항에 있어서,
상기 중력 벡터의 상기 제 1 추정치는 타겟 기준 시스템(TRS)에서 Z-축을 따라서 있는, 모바일 디바이스에서 추정하기 위한 방법. - 제 1 항에 있어서,
상기 제 1 포즈 및 상기 제 2 포즈는 카메라 기준 시스템(CRS)에 있고, 상기 측정치들은 가속도계 기준 시스템(ARS)에 있는, 모바일 디바이스에서 추정하기 위한 방법. - 제 1 항에 있어서,
상기 가속도계로부터의 상기 측정치들 각각에 대해, 상기 중력 벡터의 상기 제 1 추정치를 누산(accumulative) 자이로스코프 측정치만큼 조정하여 상기 모바일 디바이스의 회전을 보상하는 단계를 더 포함하는, 모바일 디바이스에서 추정하기 위한 방법. - 제 1 항에 있어서,
상기 가속도계로부터의 상기 측정치들 각각에 대해 상기 중력 벡터의 상기 제 1 추정치를 감산함으로써, 상기 가속도계로부터의 상기 측정치들을 정규화하는 단계를 더 포함하는, 모바일 디바이스에서 추정하기 위한 방법. - 제 1 항에 있어서,
상기 관성-기반 포즈를 형성하는 단계는, 추측 항법(dead reckoning)을 행하는 단계를 포함하는, 모바일 디바이스에서 추정하기 위한 방법. - 제 1 항에 있어서,
상기 차이에 기초하여 상기 중력 벡터의 제 2 추정치 또는 상기 스케일링 팩터의 제 2 추정치 중 적어도 하나를 형성하는 단계는, 상기 차이에 기초하여 상기 중력 벡터의 제 2 추정치를 형성하는 단계를 포함하는, 모바일 디바이스에서 추정하기 위한 방법. - 제 1 항에 있어서,
상기 차이에 기초하여 상기 중력 벡터의 제 2 추정치 또는 상기 스케일링 팩터의 제 2 추정치 중 적어도 하나를 형성하는 단계는, 상기 차이에 기초하여 상기 스케일링 팩터의 제 2 추정치를 형성하는 단계를 포함하는, 모바일 디바이스에서 추정하기 위한 방법. - 제 1 항에 있어서,
상기 차이에 기초하여 상기 중력 벡터의 제 2 추정치 또는 상기 스케일링 팩터의 제 2 추정치 중 적어도 하나를 형성하는 단계는, 상기 차이에 기초하여 상기 중력 벡터의 제 2 추정치 및 상기 스케일링 팩터의 제 2 추정치 둘 모두를 형성하는 단계를 포함하는, 모바일 디바이스에서 추정하기 위한 방법. - 제 13 항에 있어서,
상기 타겟과 상기 카메라의 제 3 포지션 사이의 제 3 포즈를, 제 3 시간에서 캡쳐된 제 3 이미지로부터 결정하는 단계 ― 상기 제 3 이미지는 상기 타겟을 포함함 ―;
상기 스케일링 팩터의 상기 제 2 추정치에 기초하여 상기 제 2 포즈와 상기 제 3 포즈 사이의 다음 이미지-기반 포즈를 계산하는 단계;
상기 제 2 시간으로부터 상기 제 3 시간까지, 상기 가속도계로부터 다음 측정치들을 수신하는 단계;
상기 가속도계로부터의 상기 다음 측정치들 및 상기 중력 벡터에 대한 상기 제 2 추정치에 기초하여 다음 관성-기반 포즈를 형성하는 단계; 및
상기 다음 이미지-기반 포즈와 상기 다음 관성-기반 포즈 사이의 다음 차이를 계산하는 단계를 더 포함하는, 모바일 디바이스에서 추정하기 위한 방법. - 제 14 항에 있어서,
상기 다음 차이에 기초하여 상기 중력 벡터의 제 3 추정치 또는 상기 스케일링 팩터의 제 3 추정치 중 적어도 하나를 형성하는 단계를 더 포함하는, 모바일 디바이스에서 추정하기 위한 방법. - 제 1 항에 있어서,
상기 스케일링 팩터의 추정을 증강 현실(AR) 애플리케이션에 적용하는 단계를 더 포함하며,
상기 스케일링 팩터의 상기 추정은 상기 스케일링 팩터의 상기 제 1 추정치에 기초하는, 모바일 디바이스에서 추정하기 위한 방법. - 제 1 항에 있어서,
상기 중력 벡터의 추정을 증강 현실(AR) 애플리케이션에 적용하는 단계를 더 포함하며,
상기 중력 벡터의 상기 추정은 상기 중력 벡터의 상기 제 1 추정치에 기초하는, 모바일 디바이스에서 추정하기 위한 방법. - 모바일 디바이스에서 추정하기 위한 모바일 디바이스로서,
카메라;
가속도계; 및
프로세서를 포함하고,
상기 카메라는,
타겟을 포함하는 제 1 이미지를 상기 카메라의 제 1 포지션 및 제 1 시간에서 캡쳐하고,
상기 타겟을 포함하는 제 2 이미지를 상기 카메라의 제 2 포지션 및 제 2 시간에서 캡쳐하도록 구성되고,
상기 가속도계는,
상기 제 1 시간으로부터 상기 제 2 시간까지의 측정치들을 제공하도록 구성되고,
상기 프로세서는,
상기 카메라 및 상기 가속도계에 커플링되고,
상기 제 1 이미지로부터 상기 모바일 디바이스의 상기 타겟 사이의 제 1 포즈를 결정하고,
상기 제 2 이미지로부터 상기 모바일 디바이스의 상기 타겟 사이의 제 2 포즈를 결정하고,
스케일링 팩터의 제 1 추정치를 사용하여 상기 제 1 포즈와 상기 제 2 포즈 사이의 이미지-기반 포즈를 계산하고;
상기 측정치들 및 중력 벡터의 제 1 추정치에 기초하여 관성-기반 포즈를 형성하고;
상기 이미지-기반 포즈와 상기 관성-기반 포즈 사이의 차이를 계산하고; 그리고
상기 차이에 기초하여 상기 중력 벡터의 제 2 추정치 또는 상기 스케일링 팩터의 제 2 추정치 중 적어도 하나를 형성하도록 구성되는,
모바일 디바이스에서 추정하기 위한 모바일 디바이스. - 제 18 항에 있어서,
상기 타겟은 평면 타겟을 포함하는, 모바일 디바이스에서 추정하기 위한 모바일 디바이스. - 제 18 항에 있어서,
상기 타겟은 고정 타겟을 포함하는, 모바일 디바이스에서 추정하기 위한 모바일 디바이스. - 제 18 항에 있어서,
상기 중력 벡터의 상기 제 1 추정치는 상기 타겟에 수직인, 모바일 디바이스에서 추정하기 위한 모바일 디바이스. - 제 18 항에 있어서,
상기 중력 벡터의 상기 제 1 추정치는, 타겟 기준 시스템(TRS)에서 Z-축을 따라서 있는, 모바일 디바이스에서 추정하기 위한 모바일 디바이스. - 제 18 항에 있어서,
상기 프로세서는, 상기 측정치들 각각에 대해, 상기 중력 벡터의 상기 제 1 추정치를 누산 자이로스코프 측정치만큼 조정하여 상기 모바일 디바이스의 회전을 보상하도록 추가적으로 구성되는, 모바일 디바이스에서 추정하기 위한 모바일 디바이스. - 제 18 항에 있어서,
상기 프로세서는, 상기 측정치들 각각에 대해 상기 중력 벡터의 상기 제 1 추정치를 감산함으로써 상기 측정치들을 정규화하도록 추가적으로 구성되는, 모바일 디바이스에서 추정하기 위한 모바일 디바이스. - 제 18 항에 있어서,
상기 차이에 기초하여 상기 중력 벡터의 제 2 추정치 또는 상기 스케일링 팩터의 제 2 추정치 중 적어도 하나를 형성하도록 구성되는 상기 프로세서는, 상기 차이에 기초하여 상기 중력 벡터의 제 2 추정치 및 상기 스케일링 팩터의 제 2 추정치 둘 모두를 형성하도록 구성되는 프로세서를 포함하는, 모바일 디바이스에서 추정하기 위한 모바일 디바이스. - 제 18 항에 있어서,
상기 관성-기반 포즈를 형성하도록 구성되는 상기 프로세서는, 추측 항법을 행하도록 구성되는 프로세서를 포함하는, 모바일 디바이스에서 추정하기 위한 모바일 디바이스. - 제 18 항에 있어서,
상기 차이에 기초하여 상기 중력 벡터의 제 2 추정치 또는 상기 스케일링 팩터의 제 2 추정치 중 적어도 하나를 형성하도록 구성되는 상기 프로세서는, 상기 차이에 기초하여 상기 중력 벡터의 제 2 추정치를 형성하도록 구성되는 프로세서를 포함하는, 모바일 디바이스에서 추정하기 위한 모바일 디바이스. - 제 18 항에 있어서,
상기 차이에 기초하여 상기 중력 벡터의 제 2 추정치 또는 상기 스케일링 팩터의 제 2 추정치 중 적어도 하나를 형성하도록 구성되는 상기 프로세서는, 상기 차이에 기초하여 상기 스케일링 팩터의 제 2 추정치를 형성하도록 구성되는 프로세서를 포함하는, 모바일 디바이스에서 추정하기 위한 모바일 디바이스. - 제 18 항에 있어서,
상기 차이에 기초하여 상기 중력 벡터의 제 2 추정치 또는 상기 스케일링 팩터의 제 2 추정치 중 적어도 하나를 형성하도록 구성되는 상기 프로세서는, 상기 차이에 기초하여 상기 중력 벡터의 제 2 추정치 및 상기 스케일링 팩터의 제 2 추정치 둘 모두를 형성하도록 구성되는 프로세서를 포함하는, 모바일 디바이스에서 추정하기 위한 모바일 디바이스. - 제 29 항에 있어서,
상기 프로세서는,
상기 타겟과 상기 카메라의 제 3 포지션 사이의 제 3 포즈를, 제 3 시간에서 캡쳐된 제 3 이미지로부터 결정하고 ― 상기 제 3 이미지는 상기 타겟을 포함함 ―;
상기 스케일링 팩터의 상기 제 2 추정치에 기초하여 상기 제 2 포즈와 상기 제 3 포즈 사이의 다음 이미지-기반 포즈를 계산하고;
상기 제 2 시간으로부터 상기 제 3 시간까지, 상기 가속도계로부터 다음 측정치들을 수신하고;
상기 가속도계로부터의 상기 다음 측정치들 및 상기 중력 벡터의 상기 제 2 추정치에 기초하여 다음 관성-기반 포즈를 형성하고; 그리고
상기 다음 이미지-기반 포즈와 상기 다음 관성-기반 포즈 사이의 다음 차이를 계산하도록 추가적으로 구성되는,
모바일 디바이스에서 추정하기 위한 모바일 디바이스. - 제 30 항에 있어서,
상기 프로세서는, 상기 다음 차이에 기초하여 상기 중력 벡터의 제 3 추정치 또는 상기 스케일링 팩터의 제 3 추정치 중 적어도 하나를 형성하도록 추가적으로 구성되는, 모바일 디바이스에서 추정하기 위한 모바일 디바이스. - 제 18 항에 있어서,
상기 프로세서는, 상기 스케일링 팩터의 추정을 증강 현실(AR) 애플리케이션에 적용하도록 추가적으로 구성되며,
상기 스케일링 팩터의 상기 추정은 상기 스케일링 팩터의 상기 제 1 추정치에 기초하는, 모바일 디바이스에서 추정하기 위한 모바일 디바이스. - 제 18 항에 있어서,
상기 프로세서는, 상기 중력 벡터의 추정을 증강 현실(AR) 애플리케이션에 적용하도록 추가적으로 구성되며,
상기 중력 벡터의 상기 추정은 상기 중력 벡터의 상기 제 1 추정치에 기초하는, 모바일 디바이스에서 추정하기 위한 모바일 디바이스. - 모바일 디바이스에서 추정하기 위한 모바일 디바이스로서,
타겟과 상기 모바일 디바이스의 카메라의 제 1 포지션 사이의 제 1 포즈를, 제 1 시간에서 캡쳐된 제 1 이미지로부터 결정하기 위한 수단 ― 상기 제 1 이미지는 상기 타겟을 포함함 ―;
상기 타겟과 상기 카메라의 제 2 포지션 사이의 제 2 포즈를, 제 2 시간에서 캡쳐된 제 2 이미지로부터 결정하기 위한 수단 ― 상기 제 2 이미지는 상기 타겟을 포함함 ―;
스케일링 팩터의 제 1 추정치를 사용하여 상기 제 1 포즈와 상기 제 2 포즈 사이의 이미지-기반 포즈를 계산하기 위한 수단;
상기 제 1 시간으로부터 상기 제 2 시간까지, 상기 모바일 디바이스의 가속도계로부터 측정치들을 수신하기 위한 수단;
상기 가속도계로부터의 상기 측정치들 및 중력 벡터에 대한 제 1 추정치에 기초하여 관성-기반 포즈를 형성하기 위한 수단;
상기 이미지-기반 포즈와 상기 관성-기반 포즈 사이의 차이를 계산하기 위한 수단; 및
상기 차이에 기초하여 상기 중력 벡터의 제 2 추정치 또는 상기 스케일링 팩터의 제 2 추정치 중 적어도 하나를 형성하기 위한 수단을 포함하는, 모바일 디바이스에서 추정하기 위한 모바일 디바이스. - 제 34 항에 있어서,
상기 타겟은 평면 타겟을 포함하는, 모바일 디바이스에서 추정하기 위한 모바일 디바이스. - 제 34 항에 있어서,
상지 중력 벡터의 상기 제 1 추정치는 상기 타겟에 수직인, 모바일 디바이스에서 추정하기 위한 모바일 디바이스. - 제 34 항에 있어서,
상기 측정치들 각각에 대해, 상기 중력 벡터의 상기 제 1 추정치를 누산 자이로스코프 측정치만큼 조정하여 상기 모바일 디바이스의 회전을 보상하기 위한 수단을 더 포함하는, 모바일 디바이스에서 추정하기 위한 모바일 디바이스. - 제 34 항에 있어서,
상기 측정치들 각각에 대해 상기 중력 벡터의 상기 제 1 추정치를 감산함으로써 상기 측정치들을 정규화하기 위한 수단을 더 포함하는, 모바일 디바이스에서 추정하기 위한 모바일 디바이스. - 제 34 항에 있어서,
상기 차이에 기초하여 상기 중력 벡터의 제 2 추정치 또는 상기 스케일링 팩터의 제 2 추정치 중 적어도 하나를 형성하기 위한 수단은, 상기 차이에 기초하여 상기 중력 벡터의 제 2 추정치 및 상기 스케일링 팩터의 제 2 추정치 둘 모두를 형성하기 위한 수단을 포함하는, 모바일 디바이스에서 추정하기 위한 모바일 디바이스. - 모바일 디바이스에서 모바일 디바이스가 추정하기 위한 프로그램 코드가 저장된 비-일시적인 컴퓨터-판독가능 저장 매체로서,
상기 프로그램 코드는,
타겟과 상기 모바일 디바이스의 카메라의 제 1 포지션 사이의 제 1 포즈를, 제 1 시간에서 캡쳐된 제 1 이미지로부터 결정하고 ― 상기 제 1 이미지는 상기 타겟을 포함함 ―;
상기 타겟과 상기 카메라의 제 2 포지션 사이의 제 2 포즈를, 제 2 시간에서 캡쳐된 제 2 이미지로부터 결정하고 ― 상기 제 2 이미지는 상기 타겟을 포함함 ―;
스케일링 팩터의 제 1 추정치를 사용하여 상기 제 1 포즈와 상기 제 2 포즈 사이의 이미지-기반 포즈를 계산하고;
상기 제 1 시간으로부터 상기 제 2 시간까지, 상기 모바일 디바이스의 가속도계로부터 측정치들을 수신하고;
상기 측정치들 및 중력 벡터에 대한 제 1 추정치에 기초하여 관성-기반 포즈를 형성하고;
상기 이미지-기반 포즈와 상기 관성-기반 포즈 사이의 차이를 계산하고;
상기 차이에 기초하여 상기 중력 벡터의 제 2 추정치 또는 상기 스케일링 팩터의 제 2 추정치 중 적어도 하나를 형성하기 위한 코드를 포함하는,
비-일시적인 컴퓨터-판독가능 저장 매체.
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261722601P | 2012-11-05 | 2012-11-05 | |
US61/722,601 | 2012-11-05 | ||
US201361801741P | 2013-03-15 | 2013-03-15 | |
US61/801,741 | 2013-03-15 | ||
US14/014,174 | 2013-08-29 | ||
US14/014,174 US9159133B2 (en) | 2012-11-05 | 2013-08-29 | Adaptive scale and/or gravity estimation |
PCT/US2013/063900 WO2014070391A1 (en) | 2012-11-05 | 2013-10-08 | Adaptive scale and/or gravity estimation |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20150082382A true KR20150082382A (ko) | 2015-07-15 |
Family
ID=50622423
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020157014270A KR20150082382A (ko) | 2012-11-05 | 2013-10-08 | 적응형 스케일 및/또는 중력 추정 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9159133B2 (ko) |
EP (1) | EP2915139B1 (ko) |
JP (1) | JP6215337B2 (ko) |
KR (1) | KR20150082382A (ko) |
CN (1) | CN104737205B (ko) |
WO (1) | WO2014070391A1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109196306A (zh) * | 2016-04-21 | 2019-01-11 | 交互数字Ce专利控股公司 | 用于估计渲染设备的姿态的方法和装置 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9159133B2 (en) * | 2012-11-05 | 2015-10-13 | Qualcomm Incorporated | Adaptive scale and/or gravity estimation |
US9367811B2 (en) * | 2013-03-15 | 2016-06-14 | Qualcomm Incorporated | Context aware localization, mapping, and tracking |
JP2016070891A (ja) * | 2014-10-01 | 2016-05-09 | 日本電信電話株式会社 | 映像データ処理装置及び映像データ処理プログラム |
DE102015203968A1 (de) * | 2014-12-12 | 2016-06-16 | Robert Bosch Gmbh | Vorrichtung zum Abgleich und Selbsttest von Inertialsensoren und Verfahren |
US20160378204A1 (en) * | 2015-06-24 | 2016-12-29 | Google Inc. | System for tracking a handheld device in an augmented and/or virtual reality environment |
US10197998B2 (en) * | 2015-12-27 | 2019-02-05 | Spin Master Ltd. | Remotely controlled motile device system |
US10238962B2 (en) | 2015-12-27 | 2019-03-26 | Spin Master Ltd. | System and method for recharging battery in augmented reality game system |
RU2626755C1 (ru) * | 2016-07-18 | 2017-07-31 | Общество с ограниченной ответственностью "НАСТЭК" (ООО "НАСТЭК") | Устройство для определения положения объекта в пространстве |
US10503245B2 (en) * | 2016-09-21 | 2019-12-10 | Apple Inc. | Relative intertial measurement system |
WO2020024909A1 (zh) * | 2018-08-02 | 2020-02-06 | 广东虚拟现实科技有限公司 | 定位跟踪方法、终端设备及计算机可读取存储介质 |
US10955245B2 (en) | 2019-04-30 | 2021-03-23 | Samsung Electronics Co., Ltd. | System and method for low latency, high performance pose fusion |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3486613B2 (ja) * | 2001-03-06 | 2004-01-13 | キヤノン株式会社 | 画像処理装置およびその方法並びにプログラム、記憶媒体 |
FR2828315B1 (fr) * | 2001-07-31 | 2005-08-05 | Sagem | Stabilisation des images d'une scene, correction des offsets de niveaux de gris, detection d'objets mobiles et harmonisation de deux appareils de prise de vues fondes sur la stabilisation des images |
JP4743818B2 (ja) * | 2003-04-04 | 2011-08-10 | キヤノン株式会社 | 画像処理装置、画像処理方法、コンピュータプログラム |
JP4914019B2 (ja) * | 2005-04-06 | 2012-04-11 | キヤノン株式会社 | 位置姿勢計測方法及び装置 |
JP4977995B2 (ja) * | 2005-10-26 | 2012-07-18 | 日本電気株式会社 | 携帯表示装置 |
JP4684147B2 (ja) * | 2006-03-28 | 2011-05-18 | 任天堂株式会社 | 傾き算出装置、傾き算出プログラム、ゲーム装置およびゲームプログラム |
JP4976756B2 (ja) * | 2006-06-23 | 2012-07-18 | キヤノン株式会社 | 情報処理方法および装置 |
JP5043133B2 (ja) * | 2007-03-13 | 2012-10-10 | リサーチ インスティチュート オブ インダストリアル サイエンス アンド テクノロジー | 移動ロボットの位置認識用ランドマーク、並びにこれを利用した位置認識装置及び方法 |
TWI356357B (en) * | 2007-12-24 | 2012-01-11 | Univ Nat Chiao Tung | A method for estimating a body pose |
JP4956456B2 (ja) * | 2008-02-05 | 2012-06-20 | キヤノン株式会社 | 画像処理装置、画像処理方法 |
US8441441B2 (en) * | 2009-01-06 | 2013-05-14 | Qualcomm Incorporated | User interface for mobile devices |
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 |
US8493453B2 (en) | 2009-06-05 | 2013-07-23 | Apple Inc. | Image capturing devices using orientation detectors to implement automatic exposure mechanisms |
CN101989126B (zh) * | 2009-08-07 | 2015-02-25 | 深圳富泰宏精密工业有限公司 | 手持式电子装置及其屏幕画面自动旋转方法 |
CN101729665B (zh) | 2009-12-11 | 2013-10-02 | 惠州Tcl移动通信有限公司 | 一种具有防抖功能的拍照手机及其在拍照中的防抖方法 |
US8494225B2 (en) * | 2010-02-19 | 2013-07-23 | Julian L. Center | Navigation method and aparatus |
FR2960082B1 (fr) * | 2010-05-17 | 2012-08-10 | Commissariat Energie Atomique | Procede et systeme pour fusionner des donnees issues de capteurs d'images et de capteurs de mouvement ou de position |
US9341720B2 (en) * | 2011-01-11 | 2016-05-17 | Qualcomm Incorporated | Camera-based position location and navigation based on image processing |
US9160980B2 (en) | 2011-01-11 | 2015-10-13 | Qualcomm Incorporated | Camera-based inertial sensor alignment for PND |
EP2668617A1 (en) | 2011-01-27 | 2013-12-04 | Metaio GmbH | Method for determining correspondences between a first and a second image, and method for determining the pose of a camera |
US8509483B2 (en) * | 2011-01-31 | 2013-08-13 | Qualcomm Incorporated | Context aware augmentation interactions |
JP5726024B2 (ja) * | 2011-09-05 | 2015-05-27 | キヤノン株式会社 | 情報処理方法および装置 |
US8965057B2 (en) * | 2012-03-02 | 2015-02-24 | Qualcomm Incorporated | Scene structure-based self-pose estimation |
US9123135B2 (en) * | 2012-06-14 | 2015-09-01 | Qualcomm Incorporated | Adaptive switching between vision aided INS and vision only pose |
US9159133B2 (en) * | 2012-11-05 | 2015-10-13 | Qualcomm Incorporated | Adaptive scale and/or gravity estimation |
JP6109213B2 (ja) * | 2015-02-02 | 2017-04-05 | キヤノン株式会社 | 情報処理装置および方法、プログラム |
-
2013
- 2013-08-29 US US14/014,174 patent/US9159133B2/en active Active
- 2013-10-08 JP JP2015540680A patent/JP6215337B2/ja active Active
- 2013-10-08 CN CN201380055388.9A patent/CN104737205B/zh not_active Expired - Fee Related
- 2013-10-08 EP EP13784056.7A patent/EP2915139B1/en active Active
- 2013-10-08 KR KR1020157014270A patent/KR20150082382A/ko not_active Application Discontinuation
- 2013-10-08 WO PCT/US2013/063900 patent/WO2014070391A1/en active Application Filing
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109196306A (zh) * | 2016-04-21 | 2019-01-11 | 交互数字Ce专利控股公司 | 用于估计渲染设备的姿态的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104737205B (zh) | 2017-08-25 |
WO2014070391A1 (en) | 2014-05-08 |
CN104737205A (zh) | 2015-06-24 |
EP2915139B1 (en) | 2020-04-22 |
US9159133B2 (en) | 2015-10-13 |
US20140126771A1 (en) | 2014-05-08 |
JP6215337B2 (ja) | 2017-10-18 |
JP2016505809A (ja) | 2016-02-25 |
EP2915139A1 (en) | 2015-09-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20150082382A (ko) | 적응형 스케일 및/또는 중력 추정 | |
US9906702B2 (en) | Non-transitory computer-readable storage medium, control method, and computer | |
US9013617B2 (en) | Gyroscope conditioning and gyro-camera alignment | |
US9995575B2 (en) | System and method for improving orientation data | |
EP2434256B1 (en) | Camera and inertial measurement unit integration with navigation data feedback for feature tracking | |
US20150092048A1 (en) | Off-Target Tracking Using Feature Aiding in the Context of Inertial Navigation | |
WO2014022664A2 (en) | Method and apparatus for data fusion of a three axis magnetometer and three axis accelerometer | |
JP2012173190A (ja) | 測位システム、測位方法 | |
JP7025215B2 (ja) | 測位システム及び測位方法 | |
CN106813679B (zh) | 运动物体的姿态估计的方法及装置 | |
CN112414400B (zh) | 一种信息处理方法、装置、电子设备和存储介质 | |
JP5511088B2 (ja) | 自律測位に用いる重力ベクトルを補正する携帯装置、プログラム及び方法 | |
JP6384194B2 (ja) | 情報処理装置、情報処理方法及び情報処理プログラム | |
CN102073988B (zh) | 一种基于普通精度陀螺的电子减抖方法 | |
CN117058430B (zh) | 用于视场匹配的方法、装置、电子设备和存储介质 | |
Henrik | Fusion of IMU and Monocular-SLAM in a Loosely Coupled EKF | |
CN108801248B (zh) | 基于ukf的平面视觉惯性导航方法 | |
JP2017151327A (ja) | プロジェクタ装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |