KR20150082358A - 기준 좌표계 결정 - Google Patents

기준 좌표계 결정 Download PDF

Info

Publication number
KR20150082358A
KR20150082358A KR1020157013924A KR20157013924A KR20150082358A KR 20150082358 A KR20150082358 A KR 20150082358A KR 1020157013924 A KR1020157013924 A KR 1020157013924A KR 20157013924 A KR20157013924 A KR 20157013924A KR 20150082358 A KR20150082358 A KR 20150082358A
Authority
KR
South Korea
Prior art keywords
coordinate system
reference coordinate
orientation
origin
mobile device
Prior art date
Application number
KR1020157013924A
Other languages
English (en)
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 KR20150082358A publication Critical patent/KR20150082358A/ko

Links

Images

Classifications

    • G06T7/004
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B11/00Measuring arrangements characterised by the use of optical techniques
    • G01B11/002Measuring arrangements characterised by the use of optical techniques for measuring two or more coordinates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Graphics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • User Interface Of Digital Computer (AREA)
  • Studio Devices (AREA)
  • Processing Or Creating Images (AREA)
  • Digital Computer Display Output (AREA)
  • Position Input By Displaying (AREA)
  • Length Measuring Devices With Unspecified Measuring Means (AREA)

Abstract

기준 좌표계를 결정하는 방법은 디바이스와 관련되는 중력의 방향을 나타내는 정보를 획득하는 단계; 및 기준 좌표계를 생성하기 위해서 디바이스와 관련되는 중력의 방향을 이용하여 디바이스 좌표계의 배향을 변환하는 단계를 포함한다. 방법은 또한 기준 좌표계의 원점을 셋팅하는 단계 및/또는 기준 좌표계의 스케일 값을 결정하는 단계를 포함할 수 있다. 방법은 또한 기준 좌표계를 리파인하는 단계를 포함할 수 있다.

Description

기준 좌표계 결정{REFERENCE COORDINATE SYSTEM DETERMINATION}
[0001]증강 현실(AR)은 컴퓨터-생성 오디오 및/또는 시각 콘텐츠로 증강되는 실세계 환경의 뷰를 제공한다. 오디오 및/또는 시각 콘텐츠는, 모바일 디바이스의 카메라를 이용하여 캡쳐된 실세계 환경의 이미지 또는 비디오에 중첩되거나 또는 이미지 또는 비디오에 통합되어, 사용자가 투명 또는 반투명 스크린을 통하여 실세계 환경을 보고 있는 그 투명 또는 반투명 스크린에 디스플레이될 수 있다. 예를 들어, 증강 현실 애플리케이션은 실세계 환경의 뷰의 이미지들 또는 비디오를 캡쳐하기 위해 사용될 수 있는 카메라와 실세계 환경의 증강된 뷰를 디스플레이하도록 사용될 수 있는 디스플레이, 및/또는 헤드-장착식 디스플레이(HDM)를 포함하는 모바일 폰 또는 태블릿 컴퓨터 상에서 구현될 수 있다.
[0002]디바이스는 디바이스의 위치, 배향, 속도 및/또는 이동 방향을 결정하는 데에 사용될 수 있는 데이터를 수집하는 하나 또는 그보다 많은 센서들을 포함할 수 있다. 이 정보는 증강 콘텐츠의 생성 시 디바이스를 보조하기 위해 사용될 수 있다. 사용자로부터 입력된 정보, 이를 테면, 터치스크린 선택들 또는 사용자로 하여금 디바이스 상에 디스플레이된 증강 콘텐츠를 네비게이팅하게 하기 위해서 사용될 수 있는 다른 입력 정보를 수집하기 위해서, 센서들이 또한 사용될 수 있다.
[0003]SLAM(simultaneous localization and mapping) 시스템(예를 들어, AR 로보틱스 등)에서, 통상적으로, 환경 내에, 예를 들어, 카메라의 시야 내에 알려진 기준 타겟이 존재한다. 알려진 기준 타겟이 환경 내에 있지 않은 경우, SLAM을 위한 좌표계가 임의적으로 정의될 수 있다. 예를 들어, 추적이 시작될 때 카메라의 포즈(포지션과 배향)가 SLAM에 대한 좌표계를 정의하는 데에 사용될 수 있다.
[0004]기준 좌표계를 결정하는 예시적인 방법은 디바이스와 관련되는 중력의 방향을 나타내는 정보를 획득하는 단계; 및 기준 좌표계를 생성하기 위해서 디바이스와 관련되는 중력의 방향을 이용하여 디바이스 좌표계의 배향을 변환하는 단계를 포함한다.
[0005]이러한 방법의 구현들은 다음의 피쳐들 중 하나 또는 그보다 많은 것을 포함할 수 있다. 방법은 중력에 수직인 방향을 나타내는 정보를 획득하는 단계를 더 포함하며, 변환하는 단계는 중력에 수직인 방향을 이용하여 디바이스 좌표계의 배향을 변환하는 단계를 포함한다. 중력에 수직인 방향은 자북 또는 중력에 수직인 평면 상으로 디바이스의 카메라의 시야 방향의 투영(projection) 중 하나이다. 방법은 기준 좌표계의 원점을 셋팅하는 단계를 더 포함한다. 원점을 셋팅하는 단계는, 포인트 클라우드를 획득하는 단계; 및 포인트 클라우드의 실질적으로 평탄한 부분의 기하학적 중심을 결정하는 단계를 포함한다. 원점을 셋팅하는 단계는, 포인트 클라우드를 획득하는 단계; 및 디바이스의 카메라의 시야 방향과 포인트 클라우드의 실질적으로 평탄한 부분에 대응하는 평면의 교차지점을 결정하는 단계를 포함한다.
[0006]또한 또는 대안으로, 방법의 구현들은 다음 피쳐들 중 하나 또는 그보다 많은 것을 포함할 수 있다. 방법은 스케일 값을 계산하는 단계와 스케일 값을 이용하여 기준 좌표계를 생성하는 단계를 더 포함한다. 스케일 값을 계산하는 단계는 포인트 클라우드를 획득하는 단계; 및 포인트 클라우드의 차원을 고정 사이즈와 비교하는 단계를 포함한다. 스케일 값을 계산하는 단계는, 기준 좌표계의 원점이 디바이스로부터 미리결정된 거리를 가지도록 스케일 값을 계산하는 단계를 포함한다. 스케일 값을 계산하는 단계는 디바이스의 하나 또는 그보다 많은 입력 센서들로부터 절대 측정들을 이용하는 단계를 포함한다. 하나 또는 그보다 많은 입력 센서들은 가속도계 또는 복수의 카메라들을 포함한다. 방법은 기준 좌표계를 리파인하는 단계를 더 포함한다. 기준 좌표계를 리파인하는 단계는 기준 좌표계와 적어도 하나의 사전 결정된 좌표계의 결합을 생성하기 위해서 기준 좌표계와 적어도 하나의 사전 결정된 좌표계로부터의 정보를 이용하는 단계를 포함한다.
[0007]기준 좌표계를 결정하기 위한 예시적인 디바이스는 디바이스와 관련되는 중력의 방향을 나타내는 정보를 획득하기 위한 수단; 및 기준 좌표계를 생성하기 위해서 디바이스와 관련되는 중력의 방향을 이용하여 디바이스 좌표계의 배향을 변환하기 위한 수단을 포함한다.
[0008]이러한 디바이스의 구현들은 다음 피쳐들 중 하나 또는 그보다 많은 것을 포함할 수 있다. 디바이스는 중력의 방향을 나타내는 정보를 획득하기 위한 수단을 더 포함하고 변환하기 위한 수단은 중력에 수직인 방향을 이용하여 디바이스 좌표계의 배향을 변환하기 위한 수단이다. 중력에 수직인 방향은 자북 또는 중력에 수직인 평면 상으로 디바이스의 카메라의 시야 방향의 투영 중 하나이다. 디바이스는 기준 좌표계의 원점을 셋팅하기 위한 수단을 더 포함한다. 원점을 셋팅하기 위한 수단은, 포인트 클라우드를 획득하기 위한 수단; 및 포인트 클라우드의 실질적으로 평탄한 부분의 기하학적 중심을 결정하기 위한 수단을 포함한다. 원점을 셋팅하기 위한 수단은, 포인트 클라우드를 획득하기 위한 수단; 및 디바이스의 카메라의 시야 방향과 포인트 클라우드의 실질적으로 평탄한 부분에 대응하는 평면의 교차지점을 결정하기 위한 수단을 포함한다.
[0009]또한 또는 대안으로, 디바이스의 구현들은 다음 피쳐들 중 하나 또는 그보다 많은 것을 포함할 수 있다. 디바이스는 스케일 값을 계산하기 위한 수단을 더 포함한다. 스케일 값을 계산하기 위한 수단은 포인트 클라우드를 획득하기 위한 수단; 및 포인트 클라우드의 차원을 고정 사이즈와 비교하기 위한 수단을 포함한다. 스케일 값을 계산하기 위한 수단은, 기준 좌표계의 원점이 디바이스로부터 미리결정된 거리를 가지도록 스케일 값을 계산하기 위한 수단을 포함한다. 스케일 값을 계산하기 위한 수단은, 디바이스의 하나 또는 그보다 많은 입력 센서들로부터 절대 측정들을 이용하기 위한 수단을 포함하다. 하나 또는 그보다 많은 입력 센서들은 가속도계 또는 복수의 카메라를 포함한다.
[0010]예시적인 모바일 디바이스는 중력의 방향을 결정하고 그리고 모바일 디바이스와 관련되는 중력의 방향의 인디케이션을 제공하도록 구성된 센서; 및 센서에 통신가능하게 결합되고, 그리고 기준 좌표계를 생성하기 위해서 모바일 디바이스와 관련되는 중력의 방향의 인디케이션을 이용하여, 모바일 디바이스의 디바이스 좌표계의 배향을 변환하도록 구성되는 배향 모듈을 포함한다.
[0011]이러한 모바일 디바이스의 구현들은 다음 피쳐들 중 하나 또는 그보다 많은 것을 포함할 수 있다. 배향 모듈은 추가로, 중력에 수직인 방향을 이용하여 디바이스 좌표계의 배향을 변환하도록 구성된다. 모바일 디바이스는 배향 모듈에 통신가능하게 결합되고, 그리고 포인트 클라우드를 획득하는 것과, 포인트 클라우드의 실질적으로 평탄한 부분의 기하학적 중심을 결정하는 것; 또는 모바일 디바이스의 카메라의 시야 방향과 포인트 클라우드의 실질적으로 평탄한 부분에 대응하는 평면의 교차지점을 결정하는 것 중 적어도 하나에 의해 기준 좌표계의 원점을 셋팅하도록 구성되는 원점 모듈을 더 포함한다. 모바일 디바이스는 배향 모듈에 통신가능하게 결합되고, 그리고 (1)포인트 클라우드를 획득하고 그리고 포인트 클라우드의 차원을 고정 사이즈와 비교하는 것; (2)기준 좌표계의 원점이 모바일 디바이스로부터 미리결정된 거리를 갖도록 스케일 값을 계산하는 것; 또는 (3)모바일 디바이스의 하나 또는 그보다 많은 입력 센서들로부터 절대 측정들을 이용하는 것에 의해 디바이스 좌표계와 관련하여 기준 좌표계에 대한 스케일 값을 셋팅하도록 구성되는 스케일 모듈을 더 포함한다. 배향 모듈은, 기준 좌표계와 적어도 하나의 사전 결정된 좌표계로부터의 정보를 이용하여 리파인된 기준 좌표계를 생성하도록 구성된다.
[0012]모바일 디바이스의 프로세서-판독가능 저장 매체의 예는, 프로세서로 하여금, 모바일 디바이스와 관련되는 중력의 방향의 인디케이션을 획득하게 하고; 그리고 기준 좌표계를 생성하기 위해서 모바일 디바이스와 관련되는 중력의 방향의 인디케이션을 이용하여, 모바일 디바이스의 디바이스 좌표계의 배향을 변환하게 하도록 구성되는 프로세서-판독가능 명령들을 포함한다.
[0013]이러한 저장 매체의 구현들은 다음 피쳐들 중 하나 또는 그보다 많은 것을 포함할 수 있다. 프로세서로 하여금 디바이스 좌표계의 배향을 변환하게 하도록 구성된 명령들은 중력에 수직인 방향을 이용하도록 구성된 명령들을 포함한다. 저장 매체는 프로세서로 하여금 기준 좌표계의 원점을 셋팅하게 하도록 구성되는 명령들을 더 포함하며, 프로세서로 하여금 기준 좌표계의 원점을 셋팅하게 하도록 구성되는 명령들은, 프로세서로 하여금 포인트 클라우드를 획득하게 하고, 그리고 포인트 클라우드의 실질적으로 평탄한 부분의 기하학적 중심을 결정하는 것; 또는 모바일 디바이스의 카메라의 시야 방향과 포인트 클라우드의 실질적으로 평탄한 부분에 대응하는 평면의 교차지점을 결정하는 것 중 적어도 하나의 결정을 하게 하도록 구성된다. 저장 매체는 프로세서로 하여금 (1)포인트 클라우드를 획득하고 그리고 포인트 클라우드의 차원을 고정 사이즈와 비교하는 것; (2) 기준 좌표계의 원점이 모바일 디바이스로부터 미리결정된 거리를 갖도록 스케일 값을 계산하는 것; 또는 (3) 모바일 디바이스의 하나 또는 그보다 많은 입력 센서들로부터 절대 측정들을 이용하는 것에 의해 디바이스 좌표계와 관련하여 기준 좌표계에 대한 스케일 값을 셋팅하게 하도록 구성되는 명령들을 더 포함한다. 저장 매체는 프로세서로 하여금 기준 좌표계와 적어도 하나의 사전 결정된 좌표계로부터의 정보를 이용하여 리파인된 기준 좌표계를 생성하게 하도록 구성되는 명령들을 더 포함한다.
[0014]본원에 설명된 아이템들 및/또는 기술들은 다음 능력들뿐만 아니라 언급되지 않은 다른 능력들 중 하나 또는 그보다 많은 것을 제공할 수 있다. 증강 현실 애플리케이션들을 위한 좌표계를 정의하는 중요한 방법들이 제공된다. 예를 들어, 보드 게임 증강 현실 애플리케이션에서, 좌표축은 지면 또는 테이블과 같은 다른 표면에 평행하게 정렬될 수 있고, 그래피티(graffiti) 증강 현실 애플리케이션에서 좌표축은 지면에 수직하게, 예를 들어, 벽 또는 다른 구조물에 평행하게 정렬될 수 있다. 알려진 물체가 시야에 존재하거나 또는 알려진 물체가 시야에 존재하지 않는 좌표계들이 제공될 수 있다. 하나 또는 그보다 많은 물체들이 시야에 있는 경우들에 대해서, 이전 기술들에 비하여 더욱 중요한 좌표계가 확립될 수 있다. 예를 들어, 다수의 타겟들이 시야에 있는 경우, 타겟들이 추적되고 좌표계가 확립될 수 있다. 대안으로, 다수의 타겟들이 시야에 있는 경우, 좌표계는 물체에 맞추어 조정될 수 있지만, 추적된 타겟들 중 하나와 맞추어 조정되는 것은 아니므로, 모든 타겟들에 대한 글로벌 좌표계를 제공한다. 다른 능력들이 제공될 수 있고 개시물에 따른 모든 각각의 구현이, 모든 능력들은 차치하고더라도 반드시 언급된 임의의 특정 능력을 제공해야 하는 것은 아니다. 추가로, 상기 언급된 효과가 언급된 것 이외의 수단에 의해 달성되게 하는 것이 가능할 수 있고, 언급된 아이템/기술이 반드시 언급된 효과를 내는 것을 아닐 수 있다.
[0015]도 1은 증강 현실 시스템의 단순화된 사시도이다.
[0016]도 2는 도 1에 도시된 모바일 디바이스의 컴포넌트들을 포함하는 컴퓨터 시스템의 블록도이다.
[0017]도 3은 도 2에 도시된 컴퓨터 시스템의 기능 블록도이다.
[0018]도 4 및 도 5는 도 1에 도시된 모바일 디바이스의 단순화된 평면도들이다.
[0019]도 6은 기준 좌표계를 계산하는 프로세스의 블록 흐름도이다.
[0020]도 7은 기준 좌표계의 원점을 설정하기 위한 기술들을 보여주는 도 1에 도시된 시스템의 사시도이다.
[0021]도 8 내지 도 10은 기준 좌표계의 배향을 셋팅하기 위한 기술들을 보여주는 도 1에 도시된 시스템의 사시도이다.
[0022]도 11 내지 도 13은 기준 좌표계를 결정하기 위한 프로세스들의 블록 흐름도들이다.
[0023]좌표계의 원점 및/또는 배향, 그리고 선택적으로 스케일을 정의하는 기술들이 제공된다. 좌표계는 동시 로컬리제이션 및 맵핑 시스템에 대한 것일 수 있다. 기술들은 다양한 상황들에서 사용될 수 있지만, 기술들 중 적어도 일부는, 원점과 배향이 알려진 기준에 의해 선험적으로 주어지지 않는 상황들에서 특히 유용할 수 있다.
[0024]예를 들어, 증강 현실(AR) 애플리케이션들을 위한, 예를 들어, SLAM(simultaneous localization and mapping) 시스템을 위한 기준 좌표계를 정의하기 위한 기술들이 제공된다. 좌표계의 원점 및/또는 배향, 그리고 선택적으로 스케일을 결정하기 위한 기술들이 제공된다. 예를 들어, 모바일 디바이스와 같은 디바이스는 입력들로서 카메라 포즈(위치 및 배향), 포인트 클라우드, 및 센서 데이터(예를 들어, 가속도계와 자력계와 같은 관성 센서들로부터 측정됨)를 사용할 수 있다. 이러한 입력들을 이용하여, 모바일 디바이스는 원하는 좌표계의 원점, 원하는 좌표계의 배향(예를 들어, 3개의 직교 축들), 및 스케일에 대해 공간 내에서 3 차원적인 포인트를 결정할 수 있다. 모바일 디바이스는 카메라의 좌표계로부터 원하는 좌표계로의 병진이동을 결정하기 위해서 이 정보를 사용할 수 있다.
[0025]좌표계에 대해 중요한 원점, 배향(및 스케일)을 선택하는 것은 독립적인 작업들일 수 있다. 이러한 작업들 각각에 대해 상이한 기술들이 제공된다. 일부 기술들이 3차원적(3D) 포인트 클라우드를 활용한다. 일부 기술들은 센서들을 사용한다. 정의된 좌표계는 시간에 따라 리파인될 수 있다. 원점을 결정하기 위한 상이한 기술들 및/또는 좌표계에 대한 배향을 결정하기 위한 상이한 기술들이, 예를 들어, 사용된 특정 애플리케이션에 의존하여 사용될 수 있다.
[0026]도 1을 참고하면, 좌표계를 결정하기 위한 시스템, 여기서는 SLAM 시스템을 포함할 수 있는 증강 현실(AR) 시스템(10)은, 디바이스, 여기서는 AR-인에이블 모바일 디바이스(12), 및 오브젝트(14)를 포함한다. 모바일 디바이스(12)는 카메라 및 디스플레이와 같은 입력 센서 유닛을 갖는 임의의 컴퓨팅 디바이스일 수 있다. 여기서, 모바일 디바이스(12)는 스마트폰들이지만, 본원에 설명된 기능성이 스마트 폰들로 제한되는 것은 아니다. 예를 들어, 모바일 디바이스(12)는 디지털 카메라, 캠코더, 태블릿 컴퓨터, 개인 휴대 보조 단말, 비디오 게임 콘솔, HMD 또는 다른 착용가능한 디스플레이, 프로젝터 디바이스, 또는 다른 디바이스일 수 있다. 추가로, 모바일 디바이스(12) 대신, 디바이스, 이를 테면 퍼스널 컴퓨터(예를 들어, 데스크탑 컴퓨터) 또는 다른 비-휴대식 디바이스 또는 통상적으로 모바일 디바이스로 라벨링되지 않은 디바이스가 사용될 수 있다. 모바일 디바이스(12)는 카메라의 시야(18)에 있는 오브젝트들의 이미지들, 여기서는 오브젝트(14)를 캡쳐하기 위한 카메라를 포함한다. 본원에 사용된 바와 같이, 포인트 클라우드는, 오브젝트, 여기서는 오브젝트(14)(모바일 디바이스(12)의 카메라에 의해 시야(18)에서 가시적임)의 적어도 일 부분에 대응하는 3차원 공간의 포인트들의 집합이다. 포인트 클라우드는, 예를 들어, 모바일 디바이스(12)의 카메라(24)로부터의 이미지 데이터(아래에 설명됨)에 기초하여 모바일 디바이스(12)의 프로세서에 의해 수행된 하나 또는 그보다 많은 기술들에 의해 결정될 수 있다. 모바일 디바이스(12)는 그의 환경의 이미지들을 캡쳐하고, 여기서는, 오브젝트(14)의 이미지들을 캡쳐링하고, 그리고 오브젝트(14)가 보이는 투명 또는 반투명 디스플레이 상에 추가 이미저리(imagery)를 디스플레이하거나 또는 추가 이미저리로 보충된 오브젝트(14)의 이미지, 여기서는, 오브젝트(14) 상에 부분 중첩된 그리고 오브젝트(14) 위에 부분 배치된 그림(16)(예를 들어, 여기서 그래피티 AR 애플리케이션에서 이용하기 위한 것임)을 디스플레이함으로써 현실을 증강시키도록 구성된다.
[0027]도 2를 참조하면, 모바일 디바이스(12)는 센서들(20), 센서 프로세서(22), 하나 또는 그보다 많은 카메라들(24), 카메라 프로세서(26), 디스플레이(28), 그래픽스 프로세서(30), 터치 센서(32), 터치 센서 프로세서(34), 통신 모듈(36), 프로세서(38), 및 메모리(40)를 포함한다. 프로세서들(22, 26, 30, 34), 통신 모듈(36), 프로세서(38), 및 메모리(40)는 도시된 바와 같이 버스(42)를 통해 통신가능하게 결합되거나, 또는 직접 결합되거나 또는 다른 방식으로 결합될 수 있다. 프로세서들(22, 26, 30, 34)은 하나의 프로세서의 부분들일 수 있거나, 또는 메모리(40)에 저장되고 프로세서(38), 또는 별개의 전용 프로세서들, 또는 이들의 조합들(예를 들어, 프로세서들(22, 26, 30, 34) 중 하나 또는 그보다 많은 것이 전용 프로세서 또는 프로세서들이고 다른 프로세서들은 프로세서(38)의 부분임)에 의해 실행되는 소프트웨어 코드의 상이한 부분들에 의해 구현될 수 있다. 프로세서들(22, 26, 30, 34, 38)은 하나 또는 그보다 많은 범용 프로세서들 및/또는 하나 또는 그보다 많은 특수 목적 프로세서들(이를 테면, 디지털 신호 프로세싱 칩들, 그래픽스 가속 프로세서들 등)일 수 있다. 센서들(20)은 다양한 감지 파라미터들의 인디케이션 및/또는 인디케이션들, 예를 들어, 모바일 디바이스(12)의 배향과 관련하여(모바일 디바이스(12)의 디바이스 좌표계과 관련하여), 예를 들어, 중력 방향의 인디케이션을 제공할 수 있다.
[0028]센서들(20) 및 센서 프로세서(22)가, 모바일 디바이스(12)의 배향을 결정하도록 구성된다. 센서들(20)은, 모바일 디바이스(12)의 배향을 결정하는 데에 사용하기 위한 정보를 감지하도록 구성된 배향 센서들이다. 예를 들어, 센서들(20)은, 자이로스코프들과 같은 하나 또는 그보다 많은 관성 센서들, 하나 또는 그보다 많은 가속도계들, 관성 측정 장비(IMU), 및/또는 센서들의 다른 타입 및/또는 다른 타입들을 포함할 수 있다. 센서 프로세서(22)는 센서들(20)에 의해 측정된/수집된 데이터를 프로세싱하도록 구성되어 모바일 디바이스(12)의 배향을 결정한다.
[0029]카메라(들)(24) 및 카메라 프로세서(26)는, 시각 정보를 캡쳐하고 생성하도록 구성된다. 카메라(들)(24)는 증강 로직을 이용하여 (증강, 예를 들어, 실세계 표면 상에 위치된 텍스트 또는 설계들을 이용하여) 증강될 수 있는 실세계 장면의 이미지들 및/또는 비디오를 캡쳐하도록 구성된다. 카메라 프로세서(26)는 데이터를 증강 로직에 의해 사용될 수 있는 포맷으로 변환하기 위해 카메라(들)(26)에 의해 수집된 데이터를 프로세싱하도록 구성된다. 카메라 프로세서(26)는 디스플레이(28) 상에 디스플레이용 콘텐츠를 준비하기 위해서 카메라(들)(24)로부터 수집된 데이터 상에서 다양한 타입들의 이미지 또는 비디오 프로세싱을 수행하도록 구성된다.
[0030]디스플레이(28) 및 그래픽스 프로세서(30)는, 카메라(들)(24)에 의해 캡쳐되고 카메라 프로세서(26)에 의해 프로세싱된 데이터에 기초하여 시각 정보를 제공하고, 그리고 증강 로직에 의해 생성된 정보에 기초하여 시각 정보를 제공하도록 구성된다. 디스플레이(28)는 터치 센서(32)를 포함하는 터치 스크린 인터페이스일 수 있다. 그래픽스 프로세서(30)는 디스플레이(28) 상에 디스플레이용 그래피컬 데이터를 생성하도록 구성된다. 그래픽스 프로세서(30)는 증강된 이미지 또는 비디오 콘텐츠를 디스플레이하기 위해 증강 로직에 의해 제공된 정보를 사용하도록 구성된다.
[0031]터치 센서 프로세서(34)는 사용자가 터치 스크린을 터치할 경우, 식별하기 위해서 터치 센서(32)에 의해 출력된 데이터를 프로세싱할 수 있다. 터치 센서 프로세스(34)는 터치 스크린의 다수의 손가락 터치들을 포함하여, 다양한 터치 제스쳐들을 식별하도록 구성될 수 있다. 증강 로직은, 증강이 사용자 입력에 응답하여 어떻게 반응하여야 할지를 적어도 부분적으로 결정하기 위해서 터치 센서 프로세서(34)에 의해 결정된 제스쳐 정보를 사용할 수 있다.
[0032]통신 모듈(36)은 모바일 디바이스(12)로 하여금 하나 또는 그보다 많은 무선 프로토콜들을 이용하여 통신할 수 있게 하도록 구성된다. 통신 모듈(36)은, 모바일 디바이스(12)로 하여금, 무선 액세스 포인트들 및 다른 AR-인에이블 디바이스들을 비롯하여, 인근 무선 디바이스들로부터 데이터를 송신하고 수신할 수 있게 하도록 구성된다. 통신 모듈(36)은 모뎀, 무선 네트워크 카드, 적외선 통신 디바이스, 무선 통신 디바이스 및/또는 칩셋(이를 테면, BluetoothTM 디바이스, 또는 802.11, WiFi 디바이스, WiMax 디바이스, 셀룰러 통신 설비들 등과 같은 단거리 무선 디바이스) 등을 포함할 수 있다. 통신 모듈(36)은, 데이터가 네트워크, 다른 컴퓨터 시스템들, 및/또는 다른 디바이스들과 교환되게 허용할 수 있다.
[0033]프로세서(38)는 센서 프로세서(22), 카메라 프로세서(26), 그래픽스 프로세서(30), 또는 터치 센서 프로세서(34) 중 하나 또는 그보다 많은 것을 제어하도록 구성된다. 센서 프로세서(22), 카메라 프로세서(26), 그래픽스 프로세서(30) 또는 터치 센서 프로세서(34) 중 하나 또는 그보다 많은 것이 또한 프로세서(38)에 의해 구현될 수 있다.
[0034]메모리(40)는 AR-인에이블 모바일 디바이스(12)의 다양한 컴포넌트들에 의해 사용된 데이터를 저장하기 위한 휘발성 및/또는 영구적, 비일시적 메모리를 포함한다. 메모리(40)는 로컬 및/또는 네트워크 액세스 가능 스토리지, 디스크 드라이브, 드라이브 어레이, 광학 스토리지 디바이스, 고체 상태 스토리지 디바이스, 이를 테면, 랜덤 액세스 메모리("RAM") 및/또는 판독 전용 메모리("ROM")를 포함할 수 있으며, 이는 프로그램가능하고, 플래시-업데이트 가능한 식일 수 있다. 이러한 스토리지 디바이스들은 다양한 파일 시스템들, 데이터베이스 구조들 등을 포함한(이것으로 제한되지 않음) 임의의 적절한 데이터 스토리지를 구현하도록 구성될 수 있다.
[0035]메모리(40)는 모바일 디바이스(12)에 포함된 프로세서들 중 하나 또는 그보다 많은 것을 위한 프로세서-판독가능, 프로세서-실행가능 소프트웨어 프로그램 코드(44)를 저장한다. 소프트웨어 코드(44)는, (디스크립션이 소프트웨어를 판독할 수 있거나 또는 프로세서가 기능(들)을 수행하더라도) 아래에 설명된 기능들을 수행하도록 프로세서(들)를 제어하기 위한 명령들을 포함한다. 일부 예시들에서, 증강 로직은 메모리(40)에 저장된 프로세서-실행가능 명령들로서 구현될 수 있다. 소프트웨어(44)는, 본원에 설명된 방법들을 구현할 수 있는, 운영 시스템, 디바이스 드라이버들, 실행가능 라이브러리들 및/또는 다른 소프트웨어 코드 명령들, 이를 테면, 하나 또는 그보다 많은 애플리케이션 프로그램들을 포함한다. 예를 들어, 본원에 설명된 하나 또는 그보다 많은 절차들이 프로세서에 의해 실행된 소프트웨어 코드 명령들로서 구현될 수 있다. 이러한 명령들은, 범용 컴퓨터(또는 다른 디바이스)로 하여금 본원에 설명된 바와 같은 하나 또는 그보다 많은 동작들을 수행하게 할 수 있다. 소프트웨어(44)는 모바일 디바이스(12) 내에 포함된 메모리(40)의 비-착탈식 부분에 저장될 수 있거나 또는 착탈식 매체, 이를 테면, 컴팩트 디스크에 저장될 수 있고 그리고/또는 인스톨레이션 패키지로 제공될 수 있다. 명령들은 프로세서에 의해 직접적으로 실행가능한 실행가능 코드의 형태를 취할 수 있거나, 대안으로 명령들은 소스 및/또는 인스톨가능한 코드의 형태를 취할 수 있으며, 이 코드 형태는 이후, (예를 들어, 다양한 일반적으로 이용가능한 컴파일러들, 인스톨레이션 프로그램들, 압축/압축해제 유틸리티들 등 중 어느 것을 이용하여) 컴파일레이션 및/또는 인스톨레이션 시에 실행가능 코드의 형태를 취한다. 모바일 디바이스(12)에 대하여 상술된 엘리먼트들 중 하나 또는 그보다 많은 엘리먼트들이 생략될 수 있다. 예를 들어, 통신 모듈(36) 및/또는 터치 센서(32) 및 터치 센서 프로세서(34)는 생략될 수 있다. 또한, 추가 엘리먼트들이 일부 실시형태들에 포함될 수 있다. 프로세서들(22, 26, 30, 34) 중 하나 또는 그보다 많은 것이 프로세서(38)와 결합되거나, 또는 프로세서(38)에서 구현될 수 있고, 그리고/또는 프로세서들(22, 26, 30, 34) 중 하나 또는 그보다 많은 것의 일부 또는 모든 기능이 메모리(40)에 저장된 명령들에 의해 구현될 수 있다.
[0036]도 3을 참조하면, 모바일 디바이스(12)는 원점 모듈(좌표계 원점을 셋팅하기 위한 수단)(46), 배향 모듈(배향 수단 또는 좌표계 배향을 셋팅하기 위한 수단)(48), 스케일 모듈(좌표계 스케일을 셋팅하기 위한 수단)(50), 및 리파이닝 모듈(좌표계를 리파인하기 위한 수단)(52)을 포함한다. 원점 모듈(46), 배향 모듈(48), 스케일 모듈(50), 및 리파이닝 모듈(52)은 서로 통신가능하게 결합된다. 모듈들(46, 48, 50, 52)은 프로세서들(22, 26, 38) 및/또는 메모리(40)에 저장된 소프트웨어(44)에 의해 구현될 수 있는 기능 모듈들이지만, 모듈들(46, 48, 50, 52)은 하드웨어, 펌웨어, 또는 소프트웨어, 또는 이들의 조합들에서 구현될 수 있다. 기능을 수행하는 또는 기능을 수행하도록 구성되는 모듈들(46, 48, 50, 52)의 언급은 소프트웨어(44)(및/또는 펌웨어, 및/또는 프로세서들(22, 26, 38)의 하드웨어))에 따라 기능을 수행하거나 또는 기능을 수행하도록 구성되는 프로세서들(22, 26, 38) 중 하나 또는 그보다 많은 것에 대한 약칭이다. 유사하게, 좌표계의 원점을 결정하는, 또는 좌표계의 배향을 결정하는, 또는 좌표계의 스케일을 셋팅하는 프로세서들(22, 26, 38) 중 하나 또는 그보다 많은 것에 대한 언급은 각각 그 기능을 수행하는 원점 모듈(46), 또는 배향 모듈(48), 또는 스케일 모듈(50)과 동등하다. 원점 모듈(46), 또는 좌표계 원점을 셋팅하기 위한 수단은 카메라(들)(24)에 의해 캡쳐된 정보에 기초하여 좌표계, 예를 들어, AR 좌표계의 원점을 셋팅하도록 구성된다. 원점 모듈(46)의 동작의 예들은 도 6과 관련하여 아래에 설명되지만, 원점 모듈(46)은 마찬가지로 하나 또는 그보다 많은 다른 방식들로 동작할 수 있다. 배향 모듈(48), 또는 좌표계 배향을 셋팅하기 위한 수단은 카메라(들)(24)에 의해 캡쳐된 정보 및/또는 센서(들)(22)로부터 획득된 정보를 이용하여 좌표계, 예를 들어, AR 좌표계의 배향을 셋팅하도록 구성된다. 배향 모듈(48), 또는 좌표계 배향을 셋팅하기 위한 수단은 모바일 디바이스(12)의 디바이스 배향 시스템의 배향을 기준 좌표계의 배향으로 변환하기 위한 변환 수단을 포함한다. 배향 모듈(48)의 동작의 예들은 도 6에 대하여 아래에 설명되지만, 배향 모듈(48)은 마찬가지로 하나 또는 그보다 많은 다른 방식들로 동작할 수 있다. 스케일 모듈(50)은, 아래에 설명된 기술들 또는 다른 적절한 기술들을 이용하여 좌표계, 예를 들어, AR 좌표계의 스케일 값을 (결정하는 것을 비롯하여) 셋팅하도록 구성된다. 리파이닝 모듈(52)은, 사전-결정된 정보, 예를 들어, 원점 및/또는 배향 및/또는 스케일 값을 사용하고, 기준 좌표계를 리파인하도록, 예를 들어, 기준 좌표계의 원점 및/또는 배향 및/또는 스케일 값을 변경하도록 구성된다.
[0037]모듈들(46, 48, 50, 52)은 디바이스(12)의 성능을 향상시키기 위해 기준 좌표계를 확립하도록 구성된다. 예를 들어, 기준 좌표계가 AR 좌표계인 경우, 모듈들(46, 48, 50, 52)은 AR 이미지들의 제공에 도움을 주어, AR 이미지들이, 예를 들어, 게이밍 경험이 보다 현실적이고 그리고/또는 신뢰할 만하도록 사용자 예상들에 맞게 거동하게 한다. 추가적인 실시예들로서, 모듈들(46, 48, 50, 52)은, 페인팅 애플리케이션은 수직 이젤을 제공하고, 보드-게임 애플리케이션은 수평 게임보드를 제공하고, 스포츠 애플리케이션이 카메라(24)의 시야에서 스포츠 장비(예를 들어, 농구 후프)와 맞춰지는 것 등을 보장하도록 도울 수 있다. 이러한 모듈들의 사용은 AR 이미지들이 적절한 사이즈로 예상된 배향에서, 그리고/또는 표면에 대하여 적절한 증강으로 디바이스(12)에 의해 디스플레이되어 나타나게 할 수 있으며, 예를 들어, 표면 위에 떠있는 대신 표면상에서 걷거나 표면에 고정되어 나타나게 할 수 있다. 추가로, 이러한 모듈들은, 예를 들어, 추적 및/또는 맵핑이, 이를 테면, 상이한 타입의 SLAM 시스템에서 사용되는 다른 애플리케이션들에서 AR 이외의 용도로 디바이스(12)에 의한 기준 시스템의 확립을 위해 사용될 수 있다.
[0038]도 4 및 도 5를 참고하면, 모바일 디바이스(12)는 적어도 일부 구성들에서 2개의 카메라들(241, 242)을 포함할 수 있다. 카메라(241)는, 디스플레이(28)와 함께, 모바일 디바이스(12)의 전면(54)에 배치되고, 카메라(242)는 모바일 디바이스(12)의 이면 또는 후면(56) 상에 배치된다. 카메라(241)는, 프런트-페이싱 카메라로 지칭되고, 카메라(242)는 본원에서, 리어-페이싱 카메라로 지칭된다. 모바일 디바이스(12)는 통상적으로, 프런트-페이싱 카메라(241)는 모바일 디바이스(12)의 사용자를 대면하고 리어-페이싱 카메라(242)는 모바일 디바이스(12)의 사용자가 있는 쪽의 반대쪽을 향하도록 유지된다. 대안으로, 사용자가 모바일 디바이스(12)를 지니고 있는 방법에 따라 정반대가 참(true)일 수 있다. 또한 도 1을 참고하면, 카메라들(241, 242) 중 어느 하나는 FOV(field of view)(18)를 가질 수 있다. 카메라(242)가 FOV(18)를 갖는 것으로 아래에 설명되지만, 다른 상황들 또는 구현들에서 카메라(241) 또는 다른 카메라는 FOV(18)를 가질 수 있다.
[0039]도 1 내지 도 5를 추가로 참고하면서, 도 6을 참고하면, 기준 좌표계를 확립하는 프로세스(60)는 도시된 스테이지들을 포함한다. 그러나, 프로세스(60)는 실시예일 뿐이고, 이것으로 제한되지 않는다. 프로세스(60)는, 예를 들어, 스테이지들의 추가, 제거, 재배열, 결합 및/또는 동시 수행에 의해 변경될 수 있다. 예를 들어, 아래에 설명된 스테이지들(70 및 74)은 제거될 수 있거나, 또는 스테이지들(64, 66, 68) 중 둘 또는 그보다 많은 것은 예시된 것과는 상이한 순서로 수행될 수 있다. 기준 좌표계는 AR 좌표계과 같은 SLAM 좌표계일 수 있다.
[0040]스테이지(62)에서, 모바일 디바이스(12)는 이미지 프레임을 획득하고, 일부 실시형태들에서, 또한 센서 데이터를 획득한다. 트리거링 이벤트, 이를 테면, 파워 업, AR 애플리케이션의 활성화, 사용자 선택, 또는 다른 트리거링 이벤트 시에, 모바일 디바이스(12)는, 카메라 프로세서(26)에 의해 프로세싱된 것으로서 카메라(24), 예를 들어, 리어-페이싱 카메라(242) 중 하나로부터 이미지를 캡쳐한다. 모바일 디바이스(12)는 추가로, 센서 프로세서(22)에 의해 프로세싱된 정보를 센서들(20)로부터 획득할 수 있다. 이 실시예에서, 가속도계를 이용하여, 모바일 디바이스(12)는 모바일 디바이스(12)의 좌표계와 관련한 중력 방향에 관한 정보를 획득한다. 추가로, 가속도계 또는 자기력계를 이용하여, 모바일 디바이스(12)는 모바일 디바이스(12)의 좌표계와 관련한 자북 방향을 획득한다. 일부 실시형태들에서, 2개의 비선형 벡터들이 사용된다. 2개의 비선형 벡터들은 (아래쪽으로 포인팅된) 중력 벡터와 (자북을 향해 포인팅된) 자북 벡터, 또는 이러한 벡터들 중 하나와 다른 벡터의 결합, 또는 2개의 다른 비선형 벡터들의 조합을 포함할 수 있다. 중력 벡터 및 자북의 벡터(즉, 자북 벡터)는 둘 모두 하나 또는 그보다 많은 가속도계 측정들로부터 유도될 수 있다.
[0041]스테이지(64)에서, 모바일 디바이스(12)는 기준 좌표계 원점을 결정한다. 원점 모듈(46)은 상황들에 따라 다양한 방식들 중 하나로 원점을 셋팅할 수 있다. 제 1 기술에서, 원점 모듈(46)은 도 7에 도시된 바와 같이 카메라(242)의 현재 3D 포지션(80)에서 원점을 셋팅한다. 제 2 기술에서, 원점 모듈(46)은, 포인트 클라우드, 예를 들어, 도 7에 도시된 바와 같이 오브젝트(14)의 기하학적 중심과 연관된 기하학적 중심에서 원점(82)을 셋팅한다. 이 기술은, 예를 들어, 포인트 클라우드가 알려지거나 또는 평탄면(예를 들어, 테이블, 벽 위의 포스터 등)을 갖는 것으로 결정되는 경우에 사용될 수 있다. 포인트 클라우드와 연관된 기하학적 중심은 평탄면의 기하학적 중심으로서 결정될 수 있다. 제 3 기술에서, 원점 모듈(46)은, 도 7에 도시된 바와 같이 포인트 클라우드의 일 포인트의 2-차원적(2D) 투영이 카메라 이미지의 중심에 가깝게 놓이는 포인트 클라우드의 일 포인트에 원점(84)을 셋팅한다. 이 기술은 원점을 물리적인 오브젝트에 부착하거나 또는 할당하는데, 포인트 클라우드의 임의의 포인트가 (모바일 디바이스(12) 주위의) 환경의 물리적인 구조에 대응하기 때문이다. 이 기술은 다양한 상황들에서 사용될 수 있지만, 포인트 클라우드의 포인트들이 카메라(24)로부터 유사한 거리들에 있는 것으로서 물리적인 환경에서 깊이의 변화가 작은 경우에 특히 유용할 수 있다. 제 4 기술에서, 원점 모듈(46)은 카메라 뷰 방향(88)(즉, 카메라 프레임의 중심을 통과하는 광선, 즉, 카메라(24)의 시야의 중심에 있는 광선)과 포인트 클라우드와 맞춰진 평면 사이의 교차지점에서 기준 좌표계의 원점(86)을 셋팅한다. 평면은, 포인트 클라우드가 평탄한지(평탄면을 나타냄) 또는 실질적인 평탄면을 나타내지 않는지 여부에 따라 포인트 클라우드의 큰 또는 작은 부분에 맞춰질 수 있다. 예를 들어, 원점 모듈(46)은 포인트 클라우드의 일부 포인트들의 2D 투영들이 카메라 중심에 가까이 놓이는 포인트 클라우드의 일부 포인트들에 평면을 맞춘다. 이 기술은, 원점이 카메라의 뷰의 중앙에 또는 그 가까이에 있을 것이고 또한 모바일 디바이스(12) 주위의 환경에서 물리적인 기하학적 형상과 연관될 것이라는 것을 보장하도록 돕는다. 도 7에 도시된 바와 같이, 원점들(82, 84, 86)은 상이한 위치들에 있지만 서로 가까이 있다. 이것은 단지 예시일 뿐이고, 다른 실시예들에서, 원점들(82, 84, 86) 중 하나 또는 그보다 많은 것이 함께 위치될 수 있고, 그리고/또는 원점들(82, 84, 86) 중 하나 또는 그보다 많은 것이 다른 원점들(82, 84, 86) 중 하나 또는 그보다 많은 것으로부터, 도시된 것보다 더 많거나 또는 더 적게 변위될 수 있다.
[0042]스테이지(66)에서, 모바일 디바이스(12)는, 예를 들어, 2개의 비평행 벡터들을 이용하여 기준 좌표계 배향을 결정한다. 기준 좌표계의 배향은, x-y-z 직교 좌표계를 가정하면, 고도(업/다운, +/- z-방향), 방위각(좌/우, +/- x-방향), 및 앞/뒤(+/- y-방향)에 대한 방향들을 정의한다. 기준 좌표계가 직교이기 때문에, 최종 축이 축들 (그리고 오른손잡이와 같은 측면성) 사이의 직교성으로부터 비롯됨에 따라, 배향 모듈(48)이 z-축과 y-축을 충분히 정의할 수 있다. 일부 기술들에서, 2개 축들의 상이한 조합이 사용된다. 몇 가지 기술들이 배향을 결정하기 위해서 이용가능하다. 제 1 기술에서, 배향 모듈(48)은, 도 8에 도시된 바와 같이, 기준 좌표계의 배향을 현재 카메라 이미지 프레임의 배향으로서 셋팅한다. 이 기술은, 도 8에 도시된 바와 같이, 원점(86)에 적용되지만, 기술은 임의의 기술을 이용하여 선택된 임의의 원점에 적용될 수 있다. 이 기술은 센서 측정들과는 무관하고 센서 정보가 이용가능하지 않은 경우(예를 들어, 센서들(20)이 작동불가 상태이거나 또는 전력을 절약하는 것이 바람직하다)에 사용될 수 있다. 결과적으로 획득된 기준 좌표계가 중력을 고려하지 않고 배향될 것이고 물리적인 환경과 관련하여 비스듬한 상태(예를 들어, 방위각이 바닥에 대하여 비평행임)일 수 있다. 제 2 기술에서, 도 9에 도시된 바와 같이, 배향 모듈(48)은, 배향을, 중력(벡터 g로 도시됨)에 대하여 그리고 중력에 수직인 방향에 대하여, 또는, 자북(또는 대안으로, 진북(true north))과 같이 중력에 수직하여(즉, 지구 또는 지구 표면에 대하여 실질적으로 수평 배향으로) 허용오차, 예를 들어, 10°이내에서 셋팅한다. 배향 모듈(48)은 센서 프로세서(22)로부터의 정보를 사용하여 기준 좌표계의 포지티브 z-축(ZR)을 중력의 반대 방향으로 또는 가속도계로부터의 정보에 기초하여 이 방향(즉, 지구 또는 지구 표면에 대하여 실질적으로 수직 배향)의 허용오차, 예를 들어, 10°이내로 셋팅하고, 그리고 기준 좌표계의 포지티브 y-축(YR)을 (자기력계 및/또는 가속도계로부터의 정보에 기초하여) 자북의 방향으로 셋팅할 수 있다. 이 기술은 다양한 상황들에서 사용될 수 있고, 지리적인 방향들에 따른 정렬(예를 들어, 네비게이션 시스템의 경우)이 유용하거나 또는 중요한 상황들에서 특히 유용할 수 있다. 제 3 기술에서, 도 10에 도시된 바와 같이, 배향 모듈(48)은 중력에 대한 기준 좌표계의 배향과 카메라(24)의 현재 시야 방향을 셋팅한다. 예를 들어, 배향 모듈(48)은 (가속도계를 이용하여) 포지티브 z-축을 중력의 반대 방향으로 셋팅하고 포지티브 y-축을, z-축에 수직한 평면(여기서, 테이블(14)의 상부 표면) 상으로 투영된, 리어-페이싱 카메라(242)의 현재 시야 방향으로 셋팅한다. 이 기술은 다양한 상황들에서 사용될 수 있고, 지리적인 방향들에 따른 정렬이 거의 중요하지 않거나 또는 전혀 중요하지 않거나 또는 카메라 시야 방향에 다른 사용과 정렬이 유용하거나 중요한 상황들에서 특히 유용할 수 있다.
[0043]도 11을 또한 참고하면, 중력의 방향을 이용하여 기준 좌표계를 결정하는 프로세스(110)는 도시된 스테이지들을 포함한다. 그러나, 프로세스(110)는 단지 예시일 뿐이고 이것으로 제한되지 않는다. 프로세스(110)는, 예를 들어, 스테이지들의 추가, 제거, 재배열, 결합, 및/또는 동시 수행에 의해 변경될 수 있다. x-y-z 좌표계들이 아래에 논의되지만, 다른 좌표계들이 사용될 수 있다. 프로세스(110)는 도 9 및 도 10 둘 모두에 도시되고, 기준 좌표계의 배향에 대해 상기 논의된 기술들을 포함한다.
[0044]스테이지(112)에서, 프로세스(110)는 디바이스와 관련한 중력의 방향을 나타내는 정보를 획득하는 단계를 포함한다. 배향 모듈(48)은 센서 프로세서(22)로부터의 중력 방향에 관한 정보를 획득하며, 그 센서 프로세서(22)로부터의 정보는 센서들(20) 중 하나 또는 그보다 많은 것으로부터의 센서 데이터로부터 계산된다. 중력 방향에 관한 센서 프로세서(22)로부터의 정보는 디바이스(12)에 관한 것, 예를 들어, 디바이스 좌표계(XD-YD-ZD)에 관한 것일 수 있거나 또는 디바이스 좌표계와 관련되도록 배향 모듈(48)에 의해 변환될 수 있다.
[0045]스테이지(114)에서, 프로세스(110)는 기준 좌표계(XR-YR-ZR)를 생성하기 위해서 디바이스와 관련되는 중력 방향을 이용하여 디바이스 좌표계(XD-YD-ZD)의 배향을 변환하는 단계를 포함한다. 알려진 기술들이 기준 좌표계를 산출하기 위해서 디바이스 좌표계를 변환(원점을 트랜슬레이팅시키고 그리고/또는 배향을 회전시키는 것)하는 데에 사용될 수 있다. 용어 트랜슬레이팅(및 그의 컨쥬게이션들)은, 미국 가출원 제 61/722,023호에서 본원에 사용된 변환(converting)을 의미하기 위해 사용되었지만, 여기서는 선형 움직임(linear motion)을 나타내기 위해 트랜슬레이트가 사용된다.
[0046]도 12를 추가로 참고하면, 기준 좌표계를 사용할 애플리케이션에 기초하여 기준 좌표계를 결정하는 프로세스(120)는 도시된 스테이지들을 포함한다. 그러나, 프로세스(120)는 단지 예시일 뿐이고, 이것으로 제한되지 않는다. 프로세스(120)는, 예를 들어, 스테이지들의 추가, 제거, 재배열, 결합 및/또는 동시 수행에 의해 변경될 수 있다. 프로세스(120)는 기준 좌표계를 배향하기 위한 기술들을 포함한다.
[0047]스테이지(122)에서, 프로세스(120)는 디바이스의 배향을 나타내는 정보를 획득하는 단계를 포함한다. 배향 모듈(48)은 센서 프로세서(22)로부터 정보를 획득하며, 그 센서 프로세서(22)로부터의 정보는 센서들(20) 중 하나 또는 그보다 많은 것으로부터의 센서 데이터로부터 계산된다. 정보는 디바이스 좌표계, 예를 들어, 여기서 도 9 및 도 10에 도시된 XD-YD-ZD 좌표계의 배향을 (직접적으로 또는 배향 모듈(48)에 의한 프로세싱 이후에) 나타낸다.
[0048]스테이지(124)에서, 프로세스(120)는 기준 좌표계에 대해 선택된 애플리케이션에 기초하여 기준 좌표계의 배향을 결정하는 단계를 포함한다. 기준 좌표계는, 예를 들어, 모바일 디바이스(12) 상에서 실행된 AR 애플리케이션을 통해, 모바일 디바이스(12)에 의해 결정되거나 또는 가정된 표면과 정렬시키기 위해, 유용한 것 또는 중요한 것으로 처음에 정의되고 그리고/또는 설정될 수 있다. 예를 들어, x-y-z 좌표계의 2개의 축들은, 예를 들어, 게이밍 애플리케이션용 테이블의 표면의 평면, 그래피티 애플리케이션용 벽, 또는 다른 표면 또는 제공된 예시들에 대하여 아래에 설명된 바와 같은 임의적인 배향에 놓이도록 정의될 수 있다. 예를 들어, 프로세서(38)는 포인트 클라우드의 평면을 결정하고, 2개의 축들을 서로에 대해 직교하도록 배치하고, 그리고 제 3 축이 다른 2개의 축들 중 둘 모두에 대해 직교하는 평면에 놓이도록 하나 또는 그보다 많은 카메라 이미지들로부터의 정보를 분석할 수 있다. 기준 좌표계의 배향을 결정하는 단계는, 예를 들어, AR 애플리케이션으로부터 및/또는 사용자 입력으로부터 기준 좌표계의 배향을 수신하는 단계를 포함할 수 있고, 따라서, 배향을 결정하기 위한 수단은 예를 들어, AR 애플리케이션으로부터 및/또는 사용자 입력으로부터 기준 좌표계의 배향을 수신하기 위한 수단을 포함할 수 있다. 또한 또는 대안으로, 기준 좌표계의 배향은 AR 애플리케이션과 연관된 증강 타입에 기초하여 결정될 수 있다. 예를 들어, 증강 타입은 실세계 표면 상에 위치된 텍스트 및/또는 설계들, 및/또는 실세계 표면 상에서 이동하는 캐릭터를 포함할 수 있다. 이러한 증강들은, 예를 들어, 기준 좌표계의 x-y 평면에 의해 점유되어야 하는 평면을 나타낸다.
[0049]배향 모듈(48)은 애플리케이션에 기초하여 기준 좌표계의 배향을 결정하기 위해 어느 기술 또는 기술들을 사용할지를 결정할 수 있다. 예를 들어, 배향 모듈(48)은 애플리케이션에 기초하여 스테이지(66)에 대하여 상술된 기술들 중 하나 또는 그보다 많은 것을 선택할 수 있다. 2개 이상의 기술이 선택되는 경우, 적절하다면 기준 좌표계 배향을 결정하기 위해서 결과들이 결합, 예를 들어 평균화(가중 평균 또는 비가중 평균을 포함함)될 수 있고, 아니면 기술들 중 하나가 다르게(otherwise) 선택된다. 배향 모듈(48)은 애플리케이션과 관련하여 기술들의 하나 또는 그보다 많은 특성들 또는 이점들에 기초하여 배향 기술(들)을 결정(또는 선택)할 수 있다. 예를 들어, 스포츠 애플리케이션(예를 들어, 농구 게임)의 경우, 배향은 우주선에서 1인칭 슈터 게임을 하는 동안 중력과 관련되는 것이 바람직할 수 있고, 배향은 애플리케이션의 시작 시 카메라 이미지 프레임과 관련되는 것이 바람직할 수 있다. 본 애플리케이션의 이점(들) 및/또는 특성(들)은, 예를 들어, 배향 모듈(48)에 의한 분석에 의해, 사용자 입력에 의해, 미리결정된 셋팅들 등에 의해 (예를 들어, 애플리케이션 개발자에 의해) 배향 기술에 매칭될 수 있다. 2개 이상의 기술이 선택되는 경우, 적절하다면 기준 좌표계 배향을 결정하기 위해서 결과들이 결합, 예를 들어 평균화(가중 평균 또는 비가중 평균을 포함함)될 수 있고, 아니면 기술들 중 하나가 다르게 선택될 수 있다. 즉, 다수의 배향 기술들이 각각 바람직할 수 있는 상황에서, 배향 모듈(48)은 실제의 경우 배향들을 결합할 수 있거나, 또는 (예를 들어, 미리정의된 것으로서) 특정 애플리케이션에 대한 우선권에 기초하여 기술들 중 하나를 선택할 수 있거나, 또는 사용자로 하여금 배향 기술을 선택하게 할 수 있는 식이다.
[0050]스테이지(126)에서, 프로세스(120)는 기준 좌표계를 생성하기 위해서 디바이스 좌표계의 배향을 결정된 배향으로 변환하는 것을 포함한다. 배향 모듈(48)은 디바이스 좌표계의 배향을 스테이지(124)로부터 결정된 배향의 배향으로 변환하여, 예를 들어, 디바이스 좌표계를 결정된 배향으로 회전시키는 공지 기술을 이용하여 기준 좌표계를 생성한다.
[0051]추가로, 프로세스(120)는 최초 원점을 나타내는 정보를 획득하는 것, 기준 좌표계의 원하는 원점을 결정하는 것, 및 최초 원점을 기준 좌표계의 원점으로서의 원하는 원점으로 변환하는 것을 위한 스테이지들을 포함할 수 있다. 이러한 스테이지들은 프로세스(120)의 일부로서, 또는 프로세스(120)와 무관하게 별개의 프로세스로서 이루어질 수 있다. 원점 모듈(46)은, 애플리케이션에 기초하여 기준 좌표계의 원점을 결정하기 위해서 어느 기술 또는 기술들을 사용할지를 결정할 수 있다. 예를 들어, 원점 모듈(46)은 애플리케이션에 기초하여 스테이지(64)에 대하여 상술된 기술들 중 하나 또는 그보다 많은 것을 선택할 수 있다. 원점 모듈(46)은 애플리케이션과 관련하여 기술들의 하나 또는 그보다 많은 특성들 또는 이점들에 기초하여 원점 기술(들)을 결정(또는 선택)할 수 있다. 예를 들어, 스포츠 애플리케이션(예를 들어, 농구 게임)의 경우, 원점은 스포츠 장비, 예를 들어, 농구 바스켓과 연관되는 것이 바람직할 수 있고, 페인팅 애플리케이션의 경우, 원점은 벽 또는 이젤의 캔버스와 같은 평탄면의 중심이 되는 것이 바람직할 수 있는 한편, 가이던스 애플리케이션의 경우 원점은 카메라(24)의 원점이 되게 하는 것이 바람직할 수 있다. 본 애플리케이션의 이점(들) 및/또는 특성(들)은, 예를 들어, 원점 모듈(46)에 의한 분석에 의해, 사용자 입력에 의해, 미리결정된 셋팅들 (예를 들어, 애플리케이션 개발자에 의해) 등에 의해 원점 기술에 매칭될 수 있다. 2개 이상의 기술이 선택되는 경우, 적절하다면 기준 좌표계 원점을 결정하기 위해서 결과들이 결합, 예를 들어 평균화(가중 평균 또는 비가중 평균을 포함함)될 수 있고, 아니면 기술들 중 하나가 다르게 선택된다. 즉, 다수의 배향 기술들이 각각 바람직할 수 있는 상황에서, 원점 모듈(46)은 실제의 경우 원점들을 결합할 수 있거나, 또는 (예를 들어, 미리정의된 것으로서) 특정 애플리케이션에 대한 우선권에 기초하여 기술들 중 하나를 선택할 수 있거나, 또는 사용자로 하여금 원점 기술을 선택하게 할 수 있는 식이다.
[0052]도 6으로 돌아가면, 스테이지(68)에서, 모바일 디바이스(12)는 기준 좌표계의 스케일을 결정하지만, 스케일 값이 미리결정될 수 있기 때문에 그렇게 하는 것은 선택적이다. 스케일 값이 다양한 기술들을 이용하여 결정될 수 있다. 제 1 기술에서, 스케일 모듈(50)은 포인트 클라우드를 고정 사이즈, 예를 들어, 1 유닛과 비교하고 스케일링함으로써 스케일 값을 셋팅한다. 그렇게 하기 위해서, 스케일 모듈(50)은 카메라(24)로부터 보이는 높이, 폭, 또는 최장의 차원과 같은 포인트 클라우드의 다양한 차원들 중 임의의 것을 스케일링할 수 있다. 제 2 기술에서, 스케일 모듈(50)은, AR 좌표 원점이 특정한 미리결정된 거리, 예를 들어, 1 유닛을 갖도록 스케일 값을 현재 카메라 위치로, 예를 들어, 카메라 좌표계의 원점으로 셋팅한다. 제 3 기술에서, 스케일 모듈(50)은, 예를 들어, 가속도계 또는 스테레오 카메라 시스템(예를 들어, 모바일 디바이스(12)의 이면(56)에 배치된 2개의 리어-뷰 카메라들(24))에 의해 제공된 것으로서 절대 측정들에 기초하여 스케일 값을 셋팅한다. 절대 측정들은 AR 좌표계의 스케일을 정의하기 위해 직접적으로 사용될 수 있다. 예를 들어, 절대 측정들로부터 1㎝와 같은 측정치가 AR 좌표계에서 1 유닛으로서 사용될 수 있다.
[0053]스테이지(70)에서, 모바일 디바이스(12)는 스테이지들(64, 66, 68)에서 결정된 현재 기준 좌표계를 리파인한다. 기준 좌표계가 시간에 따라 리파인될 수 있어서 기준 좌표계가 개선될 수 있다(예를 들어, 최초 가설이 부정확한 경우 정확해 질 수 있다). 모바일 디바이스(12)는, 어쨌든, 사전 결정된 기준 좌표계, 여기서는, 가장 최근에 결정된 기준 좌표계로부터의 정보를 이용하여 현재 기준 좌표계(원점, 배향 및 가능하게는 스케일)를 리파인한다. 예를 들어, 프로세서(38)는, 이전 반복들로부터의 값들 및/또는 센서 데이터 중 하나 또는 그보다 많은 것을 이용함으로써 칼만 필터를 이용하여 시간에 따라, 기준 좌표계, 예를 들어, 원점 및/또는 배향 및/또는 스케일을 반복할 수 있다. 아래에 설명되는 스테이지(74)와 같이, 스테이지는 선택적이다.
[0054]스테이지(72)에서, 모바일 디바이스(12)는 현재 기준 좌표계를 출력한다. 현재 기준 좌표계는 AR 애플리케이션, 이를 테면, 드로잉 애플리케이션, 보드 게임 애플리케이션, 1인칭 슈터 애플리케이션 등으로 출력될 수 있다. 현재 기준 좌표계는, 스테이지들(64, 66, 68)에서 결정된 시스템에 대한 수정을 유도하는 스테이지(70)에서 현재 기준 좌표계가 이용가능했었던 경우 리파인된 기준 좌표계일 수 있고, 이전 기준 좌표계가 스테이지(70)에서 이용가능하지 않았거나 또는 이전 기준 좌표계가 스테이지들(64, 66, 68)에서 결정된 시스템에 대한 수정을 유도하지 않는 경우 리파인되지 않은 좌표계일 것이다.
[0055]스테이지(74)에서, 현재 기준 좌표계가 저장된다. 현재 기준 좌표계가, 스테이지(70)에서 이전 기준 좌표계로서 이용하기 위해 메모리(40)에 저장된다. 스테이지(70)에서와 같이, 스테이지(74)는 선택적이다.
[0056]프로세스(60)는 스테이지(72) 이후 스테이지(62)로 복귀한다. 모바일 디바이스(12)가 파워 다운되거나 또는 모바일 디바이스(12) 상에서 실행되고 있는 AR 애플리케이션이 종료될 때까지 프로세스(60)가 계속된다. 다양한 기준 중 하나 또는 그보다 많은 것에 기초하거나 또는 다양한 기준 중 하나 또는 그보다 많은 것에 응답하여 프로세스(60)가 개시되거나 또는 반복될 수 있다. 예를 들어, 프로세스(60)는, 각각의 이미지가 캡쳐되는 것, 임계 이미지들의 수가 캡쳐되는 것, 애플리케이션 요청; 사용자 요청, 임계 시간량의 경과; 원점 및/또는 배향에서 임계 드리프트량의 결정이 발생되는 것 등에 응답하여 수행될 수 있다.
[0057]도 13을 참고하면, 결정된 기준 좌표계를 리파인함으로써 기준 좌표계를 결정하는 프로세스(130)는 도시된 스테이지들을 포함한다. 그러나, 프로세스(130)는 단지 예시일 뿐이고, 이것으로 한정되지 않는다. 프로세스(130)는, 예를 들어, 스테이지들의 추가, 제거, 재배열, 결합, 및/또는 동시 수행에 의해 변경될 수 있다.
[0058]스테이지(132)에서, 프로세스(130)는 제 1 타임에 디바이스의 배향을 나타내는 제 1 정보를 획득하는 것을 포함한다. 프로세서(38)는 센서들(20)에 의해 취해진 측정치들에 따라서 센서 프로세서로부터 정보를 획득할 수 있고 그리고/또는 메모리(40)로부터 정보 등을 획득할 수 있다. 예를 들어, 스테이지(132)는 상술된 스테이지(62)를 포함할 수 있다.
[0059]스테이지(134)에서, 프로세스(130)는 제 1 정보에 기초하여 기준 좌표계를 결정하는 것을 포함한다. 프로세서(38)는, 예를 들어, 스테이지들(64, 66), 및 선택적으로 스테이지(68)에 대하여 상술된 바와 같이 기준 좌표계를 결정한다.
[0060]스테이지(136)에서, 프로세스(130)는 제 1 타임 이후 제 2 타임에 디바이스의 배향을 나타내는 제 2 정보에 기초하여 기준 좌표계를 리파인하는 것을 포함한다(즉, 제 1 정보가 획득, 예를 들어, 감지된 이후에 제 2 정보가 획득, 예를 들어, 감지된다). 예를 들어, 프로세서(38)는 적어도 하나의 사전 결정된 좌표계와 연관된 사전 결정된 기준 좌표계 정보에 관하여 저장된 정보를 이용하여 스테이지(70)에 대하여 상술된 바와 같이 기준 좌표계를 리파인할 수 있다. 제 1 타임과 제 2 타임 사이에서의 모바일 디바이스(12)의 움직임이 리파인먼트를 개선할 수 있다.
[0061]예들
[0062]기준 좌표계의 바람직한 선택은, 어느 기준 좌표계가 사용될 것인지에 대하여 애플리케이션에 의해 영향을 받을 수 있다. 원점 모듈(46) 및/또는 배향 모듈(48)은 사용될 애플리케이션에 기초하여 기준 좌표계의 원점 및/또는 배향을 결정하기 위한 기술 또는 기술들을 선택할 수 있다. 다음은 프로세서(38)가 몇몇 애플리케이션용으로 다양한 좌표 선택 기술들 사이에서 선택할 수 있는 방법의 예들이지만, 좌표계 원점들 및/또는 좌표계 배향들을 셋팅하기 위한 다른 기술들이 논의된 애플리케이션들 또는 다른 애플리케이션들에 대해 사용될 수 있다.
[0063]게임-보드 AR 게임에서, 중요한 좌표계의 예는, 예를 들어, 수직이고 테이블의 수평면과 일직선인 것이다. 이 경우, 프로세서(38)는, 포인트 클라우드가 예를 들어, 상술된 제 1 또는 제 4 원점-셋팅 기술들을 이용하여 기준 좌표계 원점의 계산을 위해 적절하게 평탄하다는 것을 가정할 수 있다. 기준 좌표계의 배향은, 예를 들어, 상술된 제 3 배향-셋팅 기술을 이용하여 중력에 대하여 그리고 카메라(24)의 시야 방향에 대하여 배향 모듈(48) 및/또는 프로세서(38)에 의해 계산될 수 있다. 유사하게, 그래피티 AR 애플리케이션에서, 중요한 좌표계는 통상적으로 벽과 일직선이고 벽의 바깥 면을 향한다. 이 경우, 예를 들어, 프로세서(38)는, 포인트 클라우드가 실질적으로/적절하게 평탄하므로(예를 들어, 실질적으로 평탄한 부분, 예를 들어, 허용되는 허용오차, 예를 들어, 평면의 높이 대 길이 또는 폭의 10% 편차 이내의 평탄함을 가짐), 상술된 제 2 또는 제 4 원점-셋팅 기술들을 이용하여 원점을 계산할 수 있다. 이 경우, 예를 들어, 프로세서(38)는 상술된 제 3 배향-셋팅 기술을 이용하고 이후 z-축이 윗쪽이 아닌 벽 밖으로 수평으로 포인팅하도록 좌표계를 x-축을 중심으로 90도 회전시켜 기준 좌표계의 배향을 계산할 수 있다.
[0064]로봇이 알려지지 않은 환경을 네비게이팅하는 애플리케이션에서, 중요한 좌표계의 예는 로봇의 최초 위치에 중심을 두고 중력에 대해 그리고 북쪽에 대해 정렬되는 것이다. 이 경우는, 예를 들어, 프로세서(38) 및/또는 원점 모듈(46)이 기준 좌표계의 원점을 계산하기 위해서 상술된 제 1 원점-셋팅 기술을 이용할 수 있고, 중력에 대하여 그리고 북쪽에 대하여 정확하게 기준 좌표계를 배향시키기 위해서 상술된 제 2 배향-셋팅 기술을 이용할 수 있다. 일부 구현들에서, 이러한 기준 좌표계는 SLAM을 위해 사용될 수 있고, 로봇은 SLAM을 이용하여 알려지지 않은 환경을 네비게이팅할 수 있다.
[0065]우주 공간에서의 1인칭 슈팅 게임에서, 중요한 기준 좌표계의 예는 최초 카메라 위치와 배향과 일치하는 것, 그리고 중력과 무관한 것이다. 이 경우, 예를 들어, 프로세서(38)는 상술된 제 1 원점-셋팅 기술 및 제 1 배향-셋팅 기술을 사용할 수 있다.
[0066]기준 좌표계의 적절한 셋팅은 사용자 경험을 개선하도록 도울 수 있다. 예를 들어, 기준 좌표계의 적절한 셋팅은, 증강들이 적절한 비율들(예를 들어, 농구공은 농구공 바스켓보다는 작음)로, 적절한 위치(예를 들어, 무거운 물체가 공중에 떠있지 않고, 물고기가 날지 않는 것 등)에, 그리고 적절한 배향(예를 들어, 사람들이 반듯이 서있는 것, 차들이 수평으로 운전하는 것 등)으로 있도록 보장하는 것을 도울 수 있다.
[0067]다른 고려사항들
[0068]x-y-z 좌표계들, 연관된 원리들, 및/또는 거의 수정하지 않은 논의된 특정 기술들을 이용하는 예시들을 제공하는 본 설명은 다른 좌표계들에 적용될 수 있다.
[0069]다른 예시들 및 구현들은 개시물과 첨부된 청구범위의 범위와 정신 내에 있다. 예를 들어, 상기 논의가 증강 현실 시스템들 및/또는 SLAM 시스템들에 초점을 맞추지만, 논의된 기술들은 비-증강 현실 시스템들에 적용될 수 있다. 또한, 소프트웨어의 본질로 인해, 상술된 기능들은 프로세서, 하드웨어, 펌웨어, 하드와이어링, 또는 이들의 임의의 조합들에 의해 실행된 소프트웨어를 이용하여 구현될 수 있다. 기능들을 구현하는 피쳐들은 또한, 기능들의 부분들이 상이한 물리적인 위치들에서 구현되도록 분포되는 것을 비롯하여 다양한 위치들에 물리적으로 위치될 수 있다. 또한, 청구범위를 비롯하여 본원에 사용된 것으로서, 예를 들어, "A, B 또는 C 중 적어도 하나"의 리스트가 A 또는 B 또는 C 또는 AB 또는 AC 또는 BC 또는 ABC(즉, A 및 B 및 C), 또는 하나 초과의 특징과의 결합들(예를 들어, AA, AAB, ABBC 등)을 의미하도록, "중 적어도 하나"로 기술(preface)되는 아이템들의 리스트에서 이용되는 바와 같은 "또는"은 이접성(disjunctive) 리스트를 표시한다.
[0070]청구범위를 비롯하여 본원에 사용된 것으로서, 다르게 언급되지 않는 한, 기능 또는 동작이 아이템 또는 조건에 "기초한다"는 기재는 기능 또는 동작이 언급된 아이템 또는 조건에 기초하고 언급된 아이템 또는 조건 이외에도 하나 또는 그보다 많은 아이템들 및/또는 조건들에 기초할 수 있다는 것을 의미한다.
[0071]특정 요구들에 따라 상당한 변화들이 이루어질 수 있다. 예를 들어, 커스터마이징된 하드웨어가 또한 이용될 수 있고, 그리고/또는 특정한 엘리먼트들이 하드웨어, 소프트웨어(애플릿들과 같은 휴대용 소프트웨어 등을 포함함) 또는 둘 다로 구현될 수 있다. 추가로, 네트워크 입력/출력 디바이스들과 같은 다른 컴퓨팅 디바이스들로의 연결이 이용될 수 있다.
[0072]본 명세서에 이용되는 바와 같은 "기계 판독가능한 매체" 및 "컴퓨터 판독가능한 매체"라는 용어들은, 기계로 하여금 특정 방식으로 동작하게 하는 데이터를 제공하는데 참여하는 임의의 매체를 지칭한다. 컴퓨터 시스템을 이용하여, 다양한 컴퓨터 판독가능한 매체들이, 실행을 위한 명령들/코드를 프로세서(들)에 제공하는데 수반될 수 있고, 그리고/또는 (예를 들어, 신호들과 같은) 이러한 명령들/코드를 저장 및/또는 전달하는데 이용될 수 있다. 많은 구현들에서, 컴퓨터 판독가능한 매체는 물리적 그리고/또는 유형의 저장 매체이다. 이러한 매체는 비-휘발성 매체들, 휘발성 매체들을 포함하는(그러나, 이에 제한되는 것은 아님) 많은 형태들을 취할 수 있다. 비-휘발성 매체들은, 예를 들어, 광 그리고/또는 자기 디스크들을 포함한다. 휘발성 매체들은, 제한이 아니라, 동적 메모리를 포함한다.
[0073]물리적 그리고/또는 유형의 컴퓨터 판독가능한 매체들의 일반적인 형태들은, 예를 들어, 플로피 디스크, 플렉서블 디스크, 하드 디스크, 자기 테이프 또는 임의의 다른 자기 매체, CD-ROM, 블루-레이 디스크, 임의의 다른 광 매체, 펀치 카드들(punch cards), 페이퍼테이프(papertape), 홀들의 패턴들을 갖는 임의의 다른 물리 매체, RAM, PROM, EPROM, FLASH-EPROM, 임의의 다른 메모리 칩 또는 카트리지, 이하에 설명되는 바와 같은 반송파 또는 컴퓨터가 명령들 및/또는 코드를 판독할 수 있는 임의의 다른 매체를 포함한다.
[0074]다양한 형태들의 컴퓨터 판독가능한 매체들은, 하나 또는 그보다 많은 명령들의 하나 또는 그보다 많은 시퀀스들을, 실행을 위한 하나 또는 그보다 많은 프로세서들에 전달하는 것과 관련될 수 있다. 단지 예로서, 명령들은 초기에, 원격 컴퓨터의 자기 디스크 및/또는 광 디스크 상에서 전달될 수 있다. 원격 컴퓨터는 그것의 동적 메모리에 명령들을 로딩하며, 컴퓨터 시스템에 의해 수신 및/또는 실행되도록 송신 매체 상에서 신호들로서 명령들을 전송할 수 있다.
[0075]위에서 논의된 방법들, 시스템들 및 디바이스들은 예들이다. 다양한 대안적 구성들은 적절하게 다양한 프로시저들 또는 컴포넌트들을 생략, 치환 또는 부가할 수 있다. 예를 들어, 대안적인 구성들에서, 방법들은 위에서의 논의와 서로 다른 순서들로 수행될 수 있고 다양한 단계들이 부가, 생략 또는 결합될 수 있다. 또한, 특정 구성들에 관하여 설명된 특징들은 다양한 다른 구성들에서 결합될 수 있다. 구성들의 서로 다른 양상들 및 엘리먼트들은 유사한 방식으로 결합될 수 있다. 또한, 기술은 진화하고, 따라서, 많은 엘리먼트들이 예들이며, 본 개시 또는 청구항들의 범위를 제한하지 않는다.
[0076]구체적인 세부사항들이 (구현들을 포함하는) 예시적 구성들의 완전한 이해를 제공하기 위해 설명에 주어진다. 그러나, 구성들은 이러한 구체적인 세부사항들 없이 실시될 수 있다. 예를 들어, 공지된 회로들, 프로세스들, 알고리즘들, 구조들 및 기법들은 구성들을 모호하게 하는 것을 회피하기 위해 불필요한 세부사항 없이 나타낸다. 이러한 설명은 단지 예시적 구성들만을 제공하며, 청구항들의 범위, 적용가능성 또는 구성들을 제한하지 않는다. 오히려, 구성들의 상기 설명은 설명된 기법들을 구현하기 위한 가능한 설명을 당업자들에게 제공할 것이다. 본 개시의 사상 또는 범위로부터 벗어나지 않으면서 엘리먼트들의 배열 및 기능에서 다양한 변화들이 이루어질 수 있다.
[0077]또한, 구성들은 흐름도 또는 블록도로서 도시되는 프로세스로서 설명될 수 있다. 각각은 순차적 프로세스로서 동작들을 설명할 수 있지만, 동작들 중 다수는 병렬로 또는 동시에 수행될 수 있다. 또한, 동작들의 순서가 재배열될 수 있다. 프로세스는 도면에 포함되지 않는 추가 스테이지들 또는 기능들을 가질 수 있다. 게다가, 방법들의 예들은 하드웨어, 소프트웨어, 펌웨어, 미들웨어, 마이크로코드, 하드웨어 기술어들 또는 이들의 임의의 결합에 의해 구현될 수 있다. 소프트웨어, 펌웨어, 미들웨어 또는 마이크로 코드로 구현될 때, 필요한 태스크들을 수행하기 위한 프로그램 코드 또는 코드 세그먼트들은 저장 매체와 같은 비-일시적 컴퓨터 판독가능한 매체에 저장될 수 있다. 프로세서들은 설명된 태스크들을 수행할 수 있다.
[0078]몇몇 예시적 구성들을 설명하였지만, 본 개시의 사상으로부터 벗어나지 않고 다양한 변경들, 대안적 구성들 및 등가물들이 이용될 수 있다. 예를 들어, 위의 엘리먼트들은 더 큰 시스템의 컴포넌트들일 수 있으며, 여기서 다른 규칙들이 본 발명의 애플리케이션보다 우선할 수도 있고 또는 그렇지 않으면 애플리케이션을 변경할 수도 있다. 또한, 다수의 동작들이 위의 엘리먼트들이 고려되기 이전에, 고려되는 동안에 또는 고려된 이후에 착수될 수 있다. 따라서, 위의 설명은 청구항들의 범위를 제한하지 않는다.
[0079]또한, 다음은 상술된 설명의 다양한 양상들에 관한 예시적인 청구범위이다.
[0080]1.기준 좌표계를 결정하는 방법으로서,
제 1 타임에 디바이스의 배향을 나타내는 제 1 정보를 획득하는 단계;
상기 제 1 정보에 기초하여 상기 기준 좌표계를 결정하는 단계; 및
제 1 타임 이후 제 2 타임에 상기 디바이스의 상기 배향을 나타내는 제 2 정보에 기초하여 상기 기준 좌표계를 리파인하는 단계를 포함하는, 기준 좌표계를 결정하는 방법.
[0081]2.제 1 항에 있어서,
상기 디바이스가 상기 제 1 타임과 상기 제 2 타임 사이에서 이동되는, 기준 좌표계를 결정하는 방법.
[0082]3.제 1 항에 있어서,
상기 기준 좌표계는 디바이스의 애플리케이션과 함께 사용하기 위한 좌표계를 포함하고, 상기 결정하는 단계는 디바이스의 애플리케이션과 함께 사용하기 위해 디바이스의 좌표계의 배향을 기준 좌표계로 변환하는 단계를 포함하는, 기준 좌표계를 결정하는 방법.
[0083]4.제 3 항에 있어서,
상기 디바이스의 애플리케이션과 함께 사용하기 위한 상기 기준 좌표계는 SLAM 좌표계를 포함하는, 기준 좌표계를 결정하는 방법.
[0084]5.제 3 항에 있어서,
상기 애플리케이션은 AR 애플리케이션을 포함하는, 기준 좌표계를 결정하는 방법.
[0085]6.제 1 항에 있어서,
상기 제 1 정보는 2개의 비선형 벡터들을 포함하는, 기준 좌표계를 결정하는 방법.
[0086]7.제 6 항에 있어서,
상기 2개의 비선형 벡터들 중 첫 번째는 하나 또는 그보다 많은 가속도계 측정치들로부터 유도된 중력 벡터를 포함하는, 기준 좌표계를 결정하는 방법.
[0087]8.제 7 항에 있어서,
상기 2개의 비선형 벡터들 중 두 번째는 자북의 방향으로 포인팅된 벡터를 포함하고, 2개의 벡터들 중 두 번째는 적어도 자기력계로부터 유도되고, 또는 2개의 비선형 벡터들 중 두 번째는 디바이스의 카메라의 시야 방향을 중력에 대하여 수직인 평면으로 투영하는 것을 포함하는, 기준 좌표계를 결정하는 방법.
[0088]9.제 1 항에 있어서,
상기 결정하는 단계는 기준 좌표계의 원점을 셋팅하는 단계 및/또는 기준 좌표계의 스케일 값을 결정하는 단계를 포함하는, 기준 좌표계를 결정하는 방법.
[0089]10.모바일 디바이스로서,
제 1 타임에 디바이스의 배향을 나타내는 제 1 정보를 획득하기 위한 수단;
상기 제 1 정보에 기초하여 상기 기준 좌표계를 결정하기 위한 수단; 및
제 1 타임 이후 제 2 타임에 상기 디바이스의 상기 배향을 나타내는 제 2 정보에 기초하여 상기 기준 좌표계를 리파인하기 위한 수단을 포함하는, 모바일 디바이스.
[0090]11.제 10 항에 있어서,
결정하기 위한 수단은 상기 모바일 디바이스의 애플리케이션과 함께 사용하기 위해 상기 모바일 디바이스의 좌표계의 배향을 상기 기준 좌표계로 변환하도록 구성되는, 모바일 디바이스.
[0091]12.제 10 항에 있어서,
상기 획득하기 위한 수단은 2개의 비선형 벡터들을 상기 제 1 정보로서 획득하도록 구성되고, 상기 2개의 비선형 벡터들 중 적어도 하나는 중력 벡터 또는 자북의 벡터인, 모바일 디바이스.
[0092]13.제 10 항에 있어서,
상기 결정하기 위한 수단은 상기 기준 좌표계의 원점을 셋팅하고 그리고/또는 상기 기준 좌표계의 스케일 값을 결정하도록 구성되는, 모바일 디바이스.
[0093]14.모바일 디바이스의 프로세서-판독가능 저장 매체로서,
프로세서로 하여금,
제 1 타임에 상기 모바일 디바이스의 배향을 나타내는 제 1 정보를 획득하게 하고;
상기 제 1 정보에 기초하여 상기 기준 좌표계를 결정하게 하고; 그리고
상기 제 1 타임 이후 제 2 타임에 상기 디바이스의 상기 배향을 나타내는 제 2 정보에 기초하여 상기 기준 좌표계를 리파인하게 하도록
구성된 프로세서-판독가능 명령들을 포함하는, 모바일 디바이스의 프로세서-판독가능 저장 매체.
[0094]15.제 14 항에 있어서,
상기 프로세서로 하여금 상기 기준 좌표계를 결정하게 하도록 구성된 명령들은, 상기 모바일 디바이스의 애플리케이션과 함께 사용하기 위해 상기 모바일 디바이스의 좌표계의 배향을 상기 기준 좌표계로 변환하도록 구성되는 명령들을 포함하는, 모바일 디바이스의 프로세서-판독가능 저장 매체.
[0095]16.제 14 항에 있어서,
상기 프로세서로 하여금 상기 제 1 정보를 획득하게 하도록 구성되는 명령들은, 상기 프로세서로 하여금 2개의 비선형 벡터들을 제 1 정보로서 획득하게 하도록 구성되는 명령들을 포함하고, 상기 2개의 비선형 벡터들 중 적어도 하나는 중력 벡터 또는 자북의 벡터인, 모바일 디바이스의 프로세서-판독가능 저장 매체.
[0096]17.제 14 항에 있어서,
상기 프로세서로 하여금 상기 제 1 정보를 획득하게 하도록 구성된 명령들은, 상기 프로세서로 하여금 상기 기준 좌표계의 원점을 셋팅하게 하고 그리고/또는 상기 기준 좌표계의 스케일 값을 결정하게 하도록 구성되는 명령들을 포함하는, 모바일 디바이스의 프로세서-판독가능 저장 매체.
[0097]18.모바일 디바이스로서,
프로세서-판독가능 명령들을 저장하는 메모리; 및
상기 메모리에 통신가능하게 결합된 프로세서를 포함하고,
상기 프로세서는,
제 1 타임에 상기 모바일 디바이스의 배향을 나타내는 제 1 정보를 획득하고;
상기 제 1 정보에 기초하여 상기 기준 좌표계를 결정하고; 그리고
상기 제 1 타임 이후 제 2 타임에 상기 모바일 디바이스의 상기 배향을 나타내는 제 2 정보에 기초하여 상기 기준 좌표계를 리파인하도록 구성되는, 모바일 디바이스.
[0098]19.제 18 항에 있어서,
상기 프로세서는 상기 모바일 디바이스의 애플리케이션과 함께 사용하기 위해 상기 모바일 디바이스의 좌표계의 배향을 상기 기준 좌표계로 변환하도록 구성되는, 모바일 디바이스.
[0099]20.제 18 항에 있어서,
상기 프로세서는 2개의 비선형 벡터들을 상기 제 1 정보로서 획득하도록 구성되고, 상기 2개의 비션형 벡터들 중 적어도 하나는 중력 벡터 또는 자북 벡터인, 모바일 디바이스.
[0100]21.제 18 항에 있어서,
상기 기준 좌표계를 결정하기 위해서, 상기 프로세서는 상기 기준 좌표계의 원점을 셋팅하고 그리고/또는 상기 기준 좌표계의 스케일 값을 결정하도록 구성되는, 모바일 디바이스.
[0101]22.기준 좌표계를 결정하는 방법으로서,
디바이스의 배향을 나타내는 제 1 정보를 획득하는 단계;
상기 기준 좌표계를 위해 선택된 애플리케이션에 기초하여 상기 기준 좌표계의 배향을 결정하는 단계; 및
상기 기준 좌표계를 생성하기 위해서 디바이스 좌표계의 배향을 상기 기준 좌표계의 상기 배향으로 변환하는 단계를 포함하는, 기준 좌표계를 결정하는 방법.
[0102]23.제 22 항에 있어서,
상기 디바이스의 배향을 나타내는 후속적으로 획득된 정보에 기초하여 상기 기준 좌표계를 리파인하는 단계를 더 포함하는, 기준 좌표계를 결정하는 방법.
[0103]24.제 22 항에 있어서,
상기 기준 좌표계는 SLAM 좌표계를 포함하는, 기준 좌표계를 결정하는 방법.
[0104]25.제 22 항에 있어서,
상기 애플리케이션을 AR 애플리케이션을 포함하는, 기준 좌표계를 결정하는 방법.
[0105]26.제 25 항에 있어서,
상기 결정하는 단계는 상기 AR 애플리케이션으로부터 배향을 수신하는 단계를 포함하는, 기준 좌표계를 결정하는 방법.
[0106]27.제 25 항에 있어서,
상기 결정하는 단계는 상기 AR 애플리케이션과 연관된 증강의 타입에 기초하는, 기준 좌표계를 결정하는 방법.
[0107]28.제 27 항에 있어서,
상기 증강의 타입은 실세계 표면에 위치된 텍스트 또는 디자인들을 포함하는, 기준 좌표계를 결정하는 방법.
[0108]29.제 27 항에 있어서,
상기 증강의 타입은 실세계 표면에서 이동하는 캐릭터를 포함하는, 기준 좌표계를 결정하는 방법.
[0109]30.제 22 항에 있어서,
상기 기준 좌표계의 상기 배향은 지구에 대하여 실질적으로 수평 배향을 포함하는, 기준 좌표계를 결정하는 방법.
[0110]31.제 22 항에 있어서,
상기 기준 좌표계의 상기 배향은 지구에 대하여 실질적으로 수직 배향을 포함하는, 기준 좌표계를 결정하는 방법.
[0111]32.제 22 항에 있어서,
상기 선택된 애플리케이션에 기초하여 상기 기준 좌표계의 원점을 셋팅하는 단계를 더 포함하는, 기준 좌표계를 결정하는 방법.
[0112]33.모바일 디바이스로서,
모바일의 배향을 나타내는 정보를 획득하기 위한 수단을 획득하는 단계; 및
상기 기준 좌표계를 위해 선택된 애플리케이션에 기초하여 기준 좌표계의 배향을 결정하기 위한, 상기 획득하기 위한 수단에 통신가능하게 결합되는 배향 수단을 포함하고, 상기 배향 수단은 상기 기준 좌표계를 생성하기 위해서, 상기 모바일 디바이스의 디바이스 좌표계의 배향을 상기 기준 좌표계의 상기 배향으로 변환하기 위한 변환 수단을 포함하는, 모바일 디바이스.
[0113]34.제 33 항에 있어서,
상기 변환 수단은 상기 디바이스의 배향을 나타내는 후속적으로 획득된 정보에 기초하여 상기 기준 좌표계를 리파인하기 위한 리파이닝 수단을 포함하는, 모바일 디바이스.
[0114]35.제 33 항에 있어서,
상기 기준 좌표계는 SLAM 좌표계를 포함하는, 모바일 디바이스.
[0115]36.제 33 항에 있어서,
상기 애플리케이션은 AR 애플리케이션을 포함하는, 모바일 디바이스.
[0116]37.제 36 항에 있어서,
상기 배향 수단은 상기 AR 애플리케이션으로부터 배향을 수신하기 위한 수단을 포함하는, 모바일 디바이스.
[0117]38.제 36 항에 있어서.
상기 결정하는 것은 상기 AR 애플리케이션과 연관된 증강의 타입에 기초하는, 모바일 디바이스.
[0118]39.제 38 항에 있어서,
상기 증강의 타입은 실세계 표면 상에 위치된 텍스트 또는 디자인들을 포함하는, 모바일 디바이스.
[0119]40.제 38 항에 있어서,
상기 증강의 타입은 실세계 표면 상에서 이동하는 캐릭터를 포함하는, 모바일 디바이스.
[0120]41.제 33 항에 있어서,
상기 기준 좌표계의 배향은 지구에 대하여 실질적으로 수평 배향을 포함하는, 모바일 디바이스.
[0121]42.제 33 항에 있어서,
상기 기준 좌표계의 배향은 지구에 대하여 실질적으로 수직 배향을 포함하는, 모바일 디바이스.
[0122]43.제 33 항에 있어서,
상기 선택된 애플리케이션에 기초하여 상기 기준 좌표계의 원점을 셋팅하기 위한 수단을 더 포함하는, 모바일 디바이스.
[0123]44.모바일 디바이스로서,
프로세서-판독가능 명령들을 저장하는 메모리; 및
상기 메모리에 통신가능하게 결합된 프로세서를 포함하고,
상기 프로세서는,
디바이스의 배향을 나타내는 정보를 획득하고;
상기 기준 좌표계를 위해 선택된 애플리케이션에 기초하여 기준 좌표계의 배향을 결정하고; 그리고
상기 기준 좌표계를 생성하기 위해서, 상기 모바일 디바이스의 디바이스 좌표계의 배향을 상기 기준 좌표계의 상기 배향으로 변환하도록 구성되는, 모바일 디바이스.
[0124]45.제 44 항에 있어서,
상기 프로세서는 상기 디바이스의 배향을 나타내는 후속적으로 획득된 정보에 기초하여 상기 기준 좌표계를 리파인하도록 추가로 구성되는, 모바일 디바이스.
[0125]46.제 44 항에 있어서,
상기 기준 좌표계는 SLAM 좌표계를 포함하는, 모바일 디바이스.
[0126]47.제 44 항에 있어서,
상기 애플리케이션은 AR 애플리케이션을 포함하는, 모바일 디바이스.
[0127]48.제 47 항에 있어서,
상기 프로세서는 상기 AR 애플리케이션으로부터 배향을 수신하도록 구성되는, 모바일 디바이스.
[0128]49.제 47 항에 있어서,
상기 프로세서는 상기 AR 애플리케이션과 연관된 증강의 타입에 기초하여 상기 기준 좌표계의 배향을 결정하도록 구성되는, 모바일 디바이스.
[0129]50.제 49 항에 있어서,
상기 증강의 타입은 실세계 표면 상에 위치된 텍스트 또는 디자인들을 포함하는, 모바일 디바이스.
[0130]51.제 49 항에 있어서,
상기 증강의 타입은 실세계 표면 상에서 이동하는 캐릭터를 포함하는, 모바일 디바이스.
[0131]52.제 44 항에 있어서,
상기 기준 좌표계의 상기 배향은 지구에 대하여 실질적으로 수평 배향을 포함하는, 모바일 디바이스.
[0132]53.제 44 항에 있어서,
상기 기준 좌표계의 배향은 지구에 대하여 실질적으로 수직 배향을 포함하는, 모바일 디바이스.
[0133]54.제 44 항에 있어서,
상기 프로세서는 상기 선택된 애플리케이션에 기초하여 상기 기준 좌표계의 원점을 셋팅하도록 구성되는, 모바일 디바이스.
[0134]55.모바일 디바이스의 프로세서-판독가능 저장 매체로서,
프로세서로 하여금,
디바이스의 배향을 나타내는 정보를 획득하게 하고;
상기 기준 좌표계를 위해 선택된 애플리케이션에 기초하여 기준 좌표계의 배향을 결정하게 하고; 그리고
상기 기준 좌표계를 생성하기 위해서 상기 모바일 디바이스의 디바이스 좌표계의 배향을 상기 기준 좌표계의 배향으로 변환하게 하도록
구성된 프로세서-판독가능 명령들을 포함하는, 모바일 디바이스의 프로세서-판독가능 저장 매체.
[0135]56.제 55 항에 있어서,
상기 프로세서로 하여금 상기 디바이스의 배향을 나타내는 후속적으로 획득된 정보에 기초하여 상기 기준 좌표계를 리파인하게 하도록 구성되는 명령들을 더 포함하는, 모바일 디바이스의 프로세서-판독가능 저장 매체.
[0136]57.제 55 항에 있어서,
상기 기준 좌표계는 SLAM 좌표계를 포함하는, 모바일 디바이스의 프로세서-판독가능 저장 매체.
[0137]58.제 55 항에 있어서,
상기 애플리케이션은 AR 애플리케이션을 포함하는, 모바일 디바이스의 프로세서-판독가능 저장 매체.
[0138]59.제 58 항에 있어서,
상기 프로세서로 하여금 상기 AR 애플리케이션으로부터 배향을 수신하게 하도록 구성된 명령들을 더 포함하는, 모바일 디바이스의 프로세서-판독가능 저장 매체.
[0139]60.제 58 항에 있어서,
상기 프로세서로 하여금 상기 기준 좌표계의 배향을 결정하게 하도록 구성된 상기 명령들은, 상기 프로세서로 하여금 상기 AR 애플리케이션과 연관된 증강의 타입에 기초하여 상기 기준 좌표계의 배향을 결정하게 하도록 구성되는 명령들을 포함하는, 모바일 디바이스의 프로세서-판독가능 저장 매체.
[0140]61.제 60 항에 있어서,
상기 증강의 타입은 실세계 표면 상에 위치된 텍스트 또는 디자인들을 포함하는, 모바일 디바이스의 프로세서-판독가능 저장 매체.
[0141]62.제 60 항에 있어서,
상기 증강의 타입은 실세계 표면 상에서 움직이는 캐릭터를 포함하는, 모바일 디바이스의 프로세서-판독가능 저장 매체.
[0142]63.제 55 항에 있어서,
상기 기준 좌표계의 배향은 지구에 대하여 실질적으로 수평 배향을 포함하는, 모바일 디바이스의 프로세서-판독가능 저장 매체.
[0143]64.제 55 항에 있어서,
상기 기준 좌표계의 배향은 지구에 대하여 실질적으로 수직 배향을 포함하는, 모바일 디바이스의 프로세서-판독가능 저장 매체.
[0144]65.제 55 항에 있어서,
상기 프로세서로 하여금 상기 기준 좌표계의 배향을 결정하게 하도록 구성된 명령들은, 상기 프로세서로 하여금 상기 선택된 애플리케이션에 기초하여 상기 기준 좌표계의 원점을 셋팅하게 하도록 구성되는 명령들 포함하는, 모바일 디바이스의 프로세서-판독가능 저장 매체.

Claims (35)

  1. 기준 좌표계를 결정하는 방법으로서,
    디바이스와 관련되는 중력의 방향을 나타내는 정보를 획득하는 단계; 및
    상기 기준 좌표계를 생성하기 위해서, 상기 디바이스와 관련되는 상기 중력의 방향을 이용하여 디바이스 좌표계의 배향을 변환하는 단계를 포함하는, 기준 좌표계를 결정하는 방법.
  2. 제 1 항에 있어서,
    중력에 수직인 방향을 나타내는 정보를 획득하는 단계를 더 포함하고, 상기 변환하는 단계는 상기 중력에 수직인 방향을 이용하여 상기 디바이스 좌표계의 상기 배향을 변환하는 단계를 포함하는, 기준 좌표계를 결정하는 방법.
  3. 제 2 항에 있어서,
    상기 중력에 수직인 방향은 자북 또는 상기 중력에 수직인 평면 상으로 상기 디바이스의 카메라의 시야 방향의 투영 중 하나인, 기준 좌표계를 결정하는 방법.
  4. 제 1 항에 있어서,
    상기 기준 좌표계의 원점을 셋팅하는 단계를 더 포함하는, 기준 좌표계를 결정하는 방법.
  5. 제 4 항에 있어서,
    상기 원점을 셋팅하는 단계는,
    포인트 클라우드를 획득하는 단계; 및
    상기 포인트 클라우드의 실질적으로 평탄한 부분의 기하학적 중심을 결정하는 단계를 포함하는, 기준 좌표계를 결정하는 방법.
  6. 제 4 항에 있어서,
    상기 원점을 셋팅하는 단계는,
    포인트 클라우드를 획득하는 단계; 및
    상기 디바이스의 카메라의 시야 방향과 상기 포인트 클라우드의 실질적으로 평탄한 부분에 대응하는 평면의 교차지점을 결정하는 단계를 포함하는, 기준 좌표계를 결정하는 방법.
  7. 제 1 항에 있어서,
    스케일 값을 계산하는 단계와 상기 스케일 값을 이용하여 상기 기준 좌표계를 생성하는 단계를 더 포함하는, 기준 좌표계를 결정하는 방법.
  8. 제 7 항에 있어서,
    상기 스케일 값을 계산하는 단계는,
    포인트 클라우드를 획득하는 단계; 및
    상기 포인트 클라우드의 차원을 고정 사이즈와 비교하는 단계를 포함하는, 기준 좌표계를 결정하는 방법.
  9. 제 7 항에 있어서,
    상기 스케일 값을 계산하는 단계는, 상기 기준 좌표계의 원점이 상기 디바이스로부터 미리결정된 거리를 가지도록 상기 스케일 값을 계산하는 단계를 포함하는, 기준 좌표계를 결정하는 방법.
  10. 제 7 항에 있어서,
    상기 스케일 값을 계산하는 단계는 상기 디바이스의 하나 또는 그보다 많은 입력 센서들로부터 절대 측정들을 이용하는 단계를 포함하는, 기준 좌표계를 결정하는 방법.
  11. 제 10 항에 있어서,
    상기 하나 또는 그보다 많은 입력 센서들은 가속도계 또는 복수의 카메라들을 포함하는, 기준 좌표계를 결정하는 방법.
  12. 제 1 항에 있어서,
    상기 기준 좌표계와 적어도 하나의 사전 결정된 좌표계의 결합을 생성하기 위해서 상기 기준 좌표계와 상기 적어도 하나의 사전 결정된 좌표계로부터의 정보를 이용하여 상기 기준 좌표계를 리파인하는 단계를 더 포함하는, 기준 좌표계를 결정하는 방법.
  13. 제 1 항에 있어서,
    기준 좌표계가 사용될 애플리케이션에 기초하여 상기 배향을 변환하기 위한 제 1 기술 또는 상기 기준 좌표계의 원점을 셋팅하기 위한 제 2 기술 중 적어도 하나를 결정하는 단계를 더 포함하는, 기준 좌표계를 결정하는 방법.
  14. 제 1 항에 있어서,
    상기 기준 좌표계는 증강 현실 좌표계이고, 상기 방법은 상기 기준 좌표계에 따라서 배치되고 지향되는 증강 현실 이미지를 디스플레이하는 단계를 더 포함하는, 기준 좌표계를 결정하는 방법.
  15. 기준 좌표계를 결정하기 위한 디바이스로서,
    상기 디바이스와 관련되는 중력의 방향을 나타내는 정보를 획득하기 위한 수단; 및
    상기 기준 좌표계를 생성하기 위해서 상기 디바이스와 관련되는 상기 중력의 방향을 이용하여 디바이스 좌표계의 배향을 변환하기 위한 수단을 포함하는, 기준 좌표계를 결정하기 위한 디바이스.
  16. 제 15 항에 있어서,
    중력에 수직인 방향을 나타내는 정보를 획득하기 위한 수단을 더 포함하고, 상기 변환하기 위한 수단은 상기 중력에 수직인 방향을 이용하여 상기 디바이스 좌표계의 상기 배향을 변환하기 위한 것인, 기준 좌표계를 결정하기 위한 디바이스.
  17. 제 16 항에 있어서,
    상기 중력에 수직인 방향은 자북 또는 상기 중력에 수직인 평면 상으로 상기 디바이스의 카메라의 시야 방향의 투영 중 하나인, 기준 좌표계를 결정하기 위한 디바이스.
  18. 제 15 항에 있어서,
    상기 기준 좌표계의 원점을 셋팅하기 위한 수단을 더 포함하는, 기준 좌표계를 결정하기 위한 디바이스.
  19. 제 18 항에 있어서,
    상기 원점을 셋팅하기 위한 수단은,
    포인트 클라우드를 획득하기 위한 수단; 및
    상기 포인트 클라우드의 실질적으로 평탄한 부분의 기하학적 중심을 결정하기 위한 수단을 포함하는, 기준 좌표계를 결정하기 위한 디바이스.
  20. 제 18 항에 있어서,
    상기 원점을 셋팅하기 위한 수단은,
    포인트 클라우드를 획득하기 위한 수단; 및
    상기 디바이스의 카메라의 시야 방향과 상기 포인트 클라우드의 실질적으로 평탄한 부분에 대응하는 평면의 교차지점을 결정하기 위한 수단을 포함하는, 기준 좌표계를 결정하기 위한 디바이스.
  21. 제 15 항에 있어서,
    상기 기준 좌표계의 원점이 상기 디바이스로부터 미리결정된 거리를 가지도록 상기 스케일 값을 계산하기 위한 수단을 더 포함하는, 기준 좌표계를 결정하기 위한 디바이스.
  22. 제 21 항에 있어서,
    상기 스케일 값을 계산하기 위한 수단은,
    포인트 클라우드를 획득하기 위한 수단; 및
    상기 포인트 클라우드의 차원을 고정 사이즈와 비교하기 위한 수단을 포함하는, 기준 좌표계를 결정하기 위한 디바이스.
  23. 제 21 항에 있어서,
    상기 스케일 값을 계산하기 위한 수단은, 상기 기준 좌표계의 원점이 상기 디바이스로부터 미리결정된 거리를 가지도록 상기 스케일 값을 계산하기 위한 수단을 포함하는, 기준 좌표계를 결정하기 위한 디바이스.
  24. 제 21 항에 있어서,
    상기 스케일 값을 계산하기 위한 수단은 상기 디바이스의 하나 또는 그보다 많은 입력 센서들로부터 절대 측정들을 이용하기 위한 수단을 포함하는, 기준 좌표계를 결정하기 위한 디바이스.
  25. 제 24 항에 있어서,
    상기 하나 또는 그보다 많은 입력 센서들은 가속도계 또는 복수의 카메라들을 포함하는, 기준 좌표계를 결정하기 위한 디바이스.
  26. 제 15 항에 있어서,
    상기 기준 좌표계와 적어도 하나의 사전 결정된 좌표계의 결합을 생성하기 위해서 상기 기준 좌표계와 상기 적어도 하나의 사전 결정된 좌표계로부터의 정보를 이용하여 상기 기준 좌표계를 리파인하기 위한 수단을 더 포함하는, 기준 좌표계를 결정하기 위한 디바이스.
  27. 제 15 항에 있어서,
    기준 좌표계가 사용될 애플리케이션에 기초하여 상기 배향을 변환하기 위한 제 1 기술 또는 상기 기준 좌표계의 원점을 셋팅하기 위한 제 2 기술 중 적어도 하나를 결정하기 위한 수단을 더 포함하는, 기준 좌표계를 결정하기 위한 디바이스.
  28. 제 15 항에 있어서,
    상기 기준 좌표계는 증강 현실 좌표계이고, 상기 디바이스는 상기 기준 좌표계에 따라서 배치되고 지향되는 증강 현실 이미지를 디스플레이하기 위한 수단을 더 포함하는, 기준 좌표계를 결정하기 위한 디바이스.
  29. 모바일 디바이스로서,
    중력의 방향을 결정하고 그리고 상기 모바일 디바이스와 관련되는 상기 중력의 방향의 인디케이션을 제공하도록 구성된 센서; 및
    상기 센서에 통신가능하게 결합되고, 그리고 기준 좌표계를 생성하기 위해서 상기 모바일 디바이스와 관련되는 상기 중력의 방향의 상기 인디케이션을 이용하여, 상기 모바일 디바이스의 디바이스 좌표계의 배향을 변환하도록 구성되는 배향 모듈을 포함하는, 모바일 디바이스.
  30. 제 29 항에 있어서,
    상기 배향 모듈은 중력에 수직인 방향을 이용하여 상기 디바이스 좌표계의 상기 배향을 변환하도록 추가로 구성되는, 모바일 디바이스.
  31. 제 29 항에 있어서,
    상기 배향 모듈에 통신가능하게 결합되고, 그리고
    포인트 클라우드를 획득하는 것과
    상기 포인트 클라우드의 실질적으로 평탄한 부분의 기하학적 중심을 결정하는 것; 또는 상기 모바일 디바이스의 카메라의 시야 방향과 상기 포인트 클라우드의 실질적으로 평탄한 부분에 대응하는 평면의 교차지점을 결정하는 것 중 적어도 하나에 의해 상기 기준 좌표계의 원점을 셋팅하도록 구성되는 원점 모듈을 더 포함하는, 모바일 디바이스.
  32. 제 29 항에 있어서,
    상기 배향 모듈에 통신가능하게 결합되고,그리고
    (1)포인트 클라우드를 획득하고 그리고 상기 포인트 클라우드의 차원을 고정 사이즈와 비교하는 것;
    (2)상기 기준 좌표계의 원점이 상기 모바일 디바이스로부터 미리결정된 거리를 갖도록 상기 스케일 값을 계산하는 것; 또는
    (3)상기 모바일 디바이스의 하나 또는 그보다 많은 입력 센서들로부터 절대 측정들을 이용하는 것
    에 의해 상기 디바이스 좌표계와 관련하여 상기 기준 좌표계에 대한 스케일 값을 셋팅하도록
    구성되는 스케일 모듈을 더 포함하는, 모바일 디바이스.
  33. 제 29 항에 있어서,
    상기 배향 모듈은 상기 기준 좌표계와 적어도 하나의 사전 결정된 좌표계로부터의 정보를 이용하여 리파인된 기준 좌표계를 생성하도록 구성되는, 모바일 디바이스.
  34. 제 29 항에 있어서,
    상기 기준 좌표계는 증강 현실 좌표계이고, 상기 모바일 디바이스는 디스플레이와, 상기 디스플레이로 하여금 상기 기준 좌표계에 따라서 배치되고 지향된 증강 현실 이미지를 디스플레이하게 하도록 구성되는 프로세서를 더 포함하는, 모바일 디바이스.
  35. 모바일 디바이스의 프로세서-판독가능 저장 매체로서,
    상기 프로세서로 하여금,
    상기 모바일 디바이스와 관련되는 중력의 방향의 인디케이션을 획득하게 하고; 그리고
    기준 좌표계를 생성하기 위해서 상기 모바일 디바이스와 관련되는 상기 중력의 방향의 상기 인디케이션을 이용하여, 상기 모바일 디바이스의 디바이스 좌표계의 배향을 변환하게 하도록
    구성되는 프로세서-판독가능 명령들을 포함하는, 모바일 디바이스의 프로세서-판독가능 저장 매체.
KR1020157013924A 2012-11-02 2013-09-11 기준 좌표계 결정 KR20150082358A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261722023P 2012-11-02 2012-11-02
US61/722,023 2012-11-02
US13/787,525 US20140123507A1 (en) 2012-11-02 2013-03-06 Reference coordinate system determination
US13/787,525 2013-03-06
PCT/US2013/059148 WO2014070312A2 (en) 2012-11-02 2013-09-11 Reference coordinate system determination

Publications (1)

Publication Number Publication Date
KR20150082358A true KR20150082358A (ko) 2015-07-15

Family

ID=50621027

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157013924A KR20150082358A (ko) 2012-11-02 2013-09-11 기준 좌표계 결정

Country Status (6)

Country Link
US (2) US20140123507A1 (ko)
EP (1) EP2915136A2 (ko)
JP (1) JP2016507793A (ko)
KR (1) KR20150082358A (ko)
CN (1) CN104756154A (ko)
WO (1) WO2014070312A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102158316B1 (ko) * 2020-04-14 2020-09-21 주식회사 맥스트 점군 정보 가공 장치 및 방법

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140123507A1 (en) 2012-11-02 2014-05-08 Qualcomm Incorporated Reference coordinate system determination
EP2930693B1 (en) * 2012-12-10 2020-06-24 Sony Corporation Display control device, display control method and program
JP6255706B2 (ja) 2013-04-22 2018-01-10 富士通株式会社 表示制御装置、表示制御方法、表示制御プログラムおよび情報提供システム
KR20150042574A (ko) * 2013-10-11 2015-04-21 엘지전자 주식회사 이동 단말기 및 그 제어방법
US9773313B1 (en) 2014-01-03 2017-09-26 Google Inc. Image registration with device data
JP2015141139A (ja) * 2014-01-29 2015-08-03 株式会社ミツトヨ 手動測定装置
JP6244954B2 (ja) 2014-02-06 2017-12-13 富士通株式会社 端末装置、情報処理装置、表示制御方法、及び表示制御プログラム
JP6217437B2 (ja) * 2014-02-14 2017-10-25 富士通株式会社 端末装置、情報処理装置、表示制御方法、及び表示制御プログラム
WO2015148562A1 (en) * 2014-03-25 2015-10-01 Osram Sylvania Inc. Commissioning a luminaire with location information
US11226201B2 (en) * 2015-06-11 2022-01-18 Queen's University At Kingston Automated mobile geotechnical mapping
US20170177203A1 (en) * 2015-12-18 2017-06-22 Facebook, Inc. Systems and methods for identifying dominant hands for users based on usage patterns
US10217231B2 (en) * 2016-05-31 2019-02-26 Microsoft Technology Licensing, Llc Systems and methods for utilizing anchor graphs in mixed reality environments
CN107665507B (zh) * 2016-07-29 2021-04-30 成都理想境界科技有限公司 基于平面检测实现增强现实的方法及装置
CN107665508B (zh) * 2016-07-29 2021-06-01 成都理想境界科技有限公司 实现增强现实的方法及系统
CN107665506B (zh) * 2016-07-29 2021-06-01 成都理想境界科技有限公司 实现增强现实的方法及系统
US10843068B2 (en) 2017-01-18 2020-11-24 Xvisio Technology Corp. 6DoF inside-out tracking game controller
CN108765480B (zh) * 2017-04-10 2022-03-15 钰立微电子股份有限公司 深度处理设备
US10339714B2 (en) 2017-05-09 2019-07-02 A9.Com, Inc. Markerless image analysis for augmented reality
CN109550246B (zh) * 2017-09-25 2022-03-25 腾讯科技(深圳)有限公司 游戏客户端的控制方法、装置、存储介质和电子装置
US10565719B2 (en) 2017-10-13 2020-02-18 Microsoft Technology Licensing, Llc Floor detection in virtual and augmented reality devices using stereo images
CN108282651A (zh) * 2017-12-18 2018-07-13 北京小鸟看看科技有限公司 相机参数的矫正方法、装置及虚拟现实设备
KR102031331B1 (ko) * 2018-03-09 2019-10-11 주식회사 케이티 영상 내의 이동체를 식별하는 방법, 장치 및 컴퓨터 판독가능 매체
US11315321B2 (en) * 2018-09-07 2022-04-26 Intel Corporation View dependent 3D reconstruction mechanism
US20220284620A1 (en) 2019-09-20 2022-09-08 Maxell, Ltd. Information terminal apparatus and position recognition sharing method
US11378376B2 (en) * 2019-11-08 2022-07-05 Kevin P. Terry System and method for using a digital measuring device to install a structure
WO2022006116A1 (en) * 2020-06-30 2022-01-06 Snap Inc. Augmented reality eyewear with speech bubbles and translation
US20230219578A1 (en) * 2022-01-07 2023-07-13 Ford Global Technologies, Llc Vehicle occupant classification using radar point cloud

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7095424B2 (en) * 2001-10-26 2006-08-22 Canon Kabushiki Kaisha Image display apparatus and method, and storage medium
JP3805231B2 (ja) * 2001-10-26 2006-08-02 キヤノン株式会社 画像表示装置及びその方法並びに記憶媒体
US7317456B1 (en) * 2002-12-02 2008-01-08 Ngrain (Canada) Corporation Method and apparatus for transforming point cloud data to volumetric data
JP4218952B2 (ja) * 2003-09-30 2009-02-04 キヤノン株式会社 データ変換方法及び装置
JP2005326275A (ja) * 2004-05-14 2005-11-24 Canon Inc 情報処理方法および装置
US20060078215A1 (en) 2004-10-12 2006-04-13 Eastman Kodak Company Image processing based on direction of gravity
US8483442B2 (en) * 2007-02-16 2013-07-09 Mitsubishi Electric Corporation Measurement apparatus, measurement method, and feature identification apparatus
JP2008261755A (ja) * 2007-04-12 2008-10-30 Canon Inc 情報処理装置、情報処理方法
US8855819B2 (en) 2008-10-09 2014-10-07 Samsung Electronics Co., Ltd. Method and apparatus for simultaneous localization and mapping of robot
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
US8542252B2 (en) * 2009-05-29 2013-09-24 Microsoft Corporation Target digitization, extraction, and tracking
CN101598540B (zh) * 2009-06-24 2013-02-13 广东威创视讯科技股份有限公司 三维定位方法和三维定位系统
JP4816789B2 (ja) * 2009-11-16 2011-11-16 ソニー株式会社 情報処理装置、情報処理方法、プログラムおよび情報処理システム
WO2011070927A1 (ja) * 2009-12-11 2011-06-16 株式会社トプコン 点群データ処理装置、点群データ処理方法、および点群データ処理プログラム
JP5573238B2 (ja) * 2010-03-04 2014-08-20 ソニー株式会社 情報処理装置、情報処理法方法およびプログラム
JP2011197777A (ja) * 2010-03-17 2011-10-06 Sony Corp 情報処理装置、情報処理方法およびプログラム
WO2012037157A2 (en) * 2010-09-13 2012-03-22 Alt Software (Us) Llc System and method for displaying data having spatial coordinates
US9946076B2 (en) * 2010-10-04 2018-04-17 Gerard Dirk Smits System and method for 3-D projection and enhancements for interactivity
US20120113223A1 (en) * 2010-11-05 2012-05-10 Microsoft Corporation User Interaction in Augmented Reality
JP2012128779A (ja) * 2010-12-17 2012-07-05 Panasonic Corp 仮想物体表示装置
CN102609550B (zh) 2011-01-19 2015-11-25 鸿富锦精密工业(深圳)有限公司 产品三维模型自动摆正系统及方法
JP5799521B2 (ja) * 2011-02-15 2015-10-28 ソニー株式会社 情報処理装置、オーサリング方法及びプログラム
US9013469B2 (en) * 2011-03-04 2015-04-21 General Electric Company Method and device for displaying a three-dimensional view of the surface of a viewed object
JP5702653B2 (ja) * 2011-04-08 2015-04-15 任天堂株式会社 情報処理プログラム、情報処理装置、情報処理システム、および、情報処理方法
US8442307B1 (en) * 2011-05-04 2013-05-14 Google Inc. Appearance augmented 3-D point clouds for trajectory and camera localization
TW201248423A (en) 2011-05-17 2012-12-01 Ind Tech Res Inst Localization device and localization method with the assistance of augmented reality
US9600933B2 (en) * 2011-07-01 2017-03-21 Intel Corporation Mobile augmented reality system
EP2754131B1 (en) * 2011-09-08 2022-10-26 Nautilus, Inc. System and method for visualizing synthetic objects withinreal-world video clip
US8818133B2 (en) * 2012-07-11 2014-08-26 Raytheon Company Point cloud construction with unposed camera
US20140123507A1 (en) 2012-11-02 2014-05-08 Qualcomm Incorporated Reference coordinate system determination

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102158316B1 (ko) * 2020-04-14 2020-09-21 주식회사 맥스트 점군 정보 가공 장치 및 방법
WO2021210725A1 (ko) * 2020-04-14 2021-10-21 주식회사 맥스트 점군 정보 가공 장치 및 방법

Also Published As

Publication number Publication date
WO2014070312A2 (en) 2014-05-08
EP2915136A2 (en) 2015-09-09
CN104756154A (zh) 2015-07-01
US20140123507A1 (en) 2014-05-08
US20160300340A1 (en) 2016-10-13
JP2016507793A (ja) 2016-03-10
WO2014070312A3 (en) 2014-06-26
US10309762B2 (en) 2019-06-04

Similar Documents

Publication Publication Date Title
US10309762B2 (en) Reference coordinate system determination
US9953618B2 (en) Using a plurality of sensors for mapping and localization
US9576183B2 (en) Fast initialization for monocular visual SLAM
US11308347B2 (en) Method of determining a similarity transformation between first and second coordinates of 3D features
US9355451B2 (en) Information processing device, information processing method, and program for recognizing attitude of a plane
US9524021B2 (en) Imaging surround system for touch-free display control
JP6476657B2 (ja) 画像処理装置、画像処理方法、およびプログラム
JP6609640B2 (ja) 電子デバイス上における環境マッピング用のフィーチャ・データの管理
TWI758869B (zh) 互動對象的驅動方法、裝置、設備以及電腦可讀儲存介質
Marto et al. DinofelisAR demo augmented reality based on natural features
KR102337209B1 (ko) 주변 상황 정보를 통지하기 위한 방법, 전자 장치 및 저장 매체
US11935286B2 (en) Method and device for detecting a vertical planar surface
CN104580967A (zh) 一种基于便携式投影仪的地图投影方法和用于投影的装置
EP4207087A1 (en) Method and system for creating and storing map targets
WO2023090213A1 (ja) 情報処理装置、情報処理方法及びプログラム
CN117940963A (zh) 显示装置、显示装置的控制方法以及程序
CN112729327A (zh) 一种导航方法、装置、计算机设备及存储介质
JP2017111034A (ja) カメラ付き端末、ナビゲーション情報提供システム、及びナビゲーション情報表示方法

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid