KR20210097145A - 느슨하게 결합된 재국소화 서비스 및 자산 관리 서비스를 통해 인공 환경들 내에서 디지털 자산들을 제공하기 위한 시스템들 및 방법들 - Google Patents

느슨하게 결합된 재국소화 서비스 및 자산 관리 서비스를 통해 인공 환경들 내에서 디지털 자산들을 제공하기 위한 시스템들 및 방법들 Download PDF

Info

Publication number
KR20210097145A
KR20210097145A KR1020217019400A KR20217019400A KR20210097145A KR 20210097145 A KR20210097145 A KR 20210097145A KR 1020217019400 A KR1020217019400 A KR 1020217019400A KR 20217019400 A KR20217019400 A KR 20217019400A KR 20210097145 A KR20210097145 A KR 20210097145A
Authority
KR
South Korea
Prior art keywords
real
world environment
client device
image
anchor point
Prior art date
Application number
KR1020217019400A
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 KR20210097145A publication Critical patent/KR20210097145A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/53Querying
    • G06F16/538Presentation of query results
    • 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
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20112Image segmentation details
    • G06T2207/20164Salient point detection; Corner detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30244Camera pose

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Processing Or Creating Images (AREA)
  • User Interface Of Digital Computer (AREA)
  • Image Analysis (AREA)

Abstract

개시된 컴퓨터 구현 방법은 실세계 환경 내의 클라이언트 디바이스로부터, 실세계 환경을 나타내는 정보를 획득하는 단계, 및 실세계 환경을 나타내는 정보를 재국소화 서비스(relocalization service)로 송신하는 단계를 포함할 수 있다. 방법은 재국소화 서비스로부터, (1) 실세계 환경 내의 매핑된 포지션을 포함할 수 있는 앵커 지점, 및 (2) 앵커 지점의 매핑된 포지션에 대한 클라이언트 디바이스의 실세계 환경 내의 결정된 포지션을 수신하는 단계를 더 포함할 수 있다. 방법은 앵커 지점의 식별자를 자산 관리 서비스로 전송하는 단계, 및 자산 관리 서비스로부터 디지털 자산을 얻는 단계를 더 포함할 수 있다. 방법은 앵커 지점의 매핑된 포지션에 대한 인공 환경 내의 포지션에서 디지털 자산을 제공하는 단계를 더 포함할 수 있다. 다양한 다른 방법들, 시스템들, 및 컴퓨터 판독가능한 매체들이 또한 개시된다.

Description

느슨하게 결합된 재국소화 서비스 및 자산 관리 서비스를 통해 인공 환경들 내에서 디지털 자산들을 제공하기 위한 시스템들 및 방법들
상호 참조
본 출원은 발명의 제목이 "느슨하게 결합된 재국소화 서비스 및 자산 관리 서비스를 통해 인공 환경들 내에서 디지털 자산들을 제공하기 위한 시스템들 및 방법들(SYSTEMS AND METHODS FOR PRESENTING DIGITAL ASSETS WITHIN ARTIFICIAL ENVIRONMENTS VIA A LOOSELY COUPLED RELOCALIZAIION SERVICE AND ASSET MANAGEMENT SERVICE)"이고, 2018년 11월 30일에 출원된 미국 정규 출원 번호 제16/205,255호에 대한 우선권을 주장하며, 그의 전체 내용은 본 명세서에 참조로서 통합된다.
증강 현실(AR) 시스템들은 실세계 환경의 사용자 뷰에 컴퓨터 생성 이미지를 중첩할 수 있다. 예를 들면, 사용자가 실세계 사무실의 AR 장면을 뷰잉할 때, 사용자는 실세계 사무실 내에 존재할 수 있는 다양한 실세계 객체들(예컨대, 벽들, 책상들, 의자들, 등)을 뷰잉할 수 있으며 또한, 실세계 사무실 내에 배치되는 것처럼 보일 수 있는 하나 이상의 가상 객체들을 뷰잉할 수 있다. 예를 들면, 문서의 가상 객체가 실세계 책상 위에 놓인 것처럼 보일 수 있고, 원격 사용자를 표현하는 가상 객체가 실세계 의자에 앉아있는 것처럼 보일 수 있으며, 가상 정보 디스플레이가 실세계 벽에 부착되는 것처럼 보일 수 있다.
다양한 종래의 AR 플랫폼들은 개발자들에게 사용자들을 위한 AR 경험들을 생성하는 도구들을 제공할 수 있으며 사용자들이 그들 AR 경험들을 뷰잉하고/거나 상호작용하는 것을 가능하게 할 수 있다. 불행히도, 종래의 AR 플랫폼들의 특정 피처들(예컨대, 디지털 자산들 및/또는 가상 객체들의 저장 및/또는 관리)은 그들 종래의 AR 플랫폼들과 연관된 실행 환경들(예컨대, 컴퓨팅 디바이스들, 운영 체제들, 개발 인터페이스들, 등)에 배타적일 수 있다. 따라서, 하나의 AR 플랫폼을 실행하는 디바이스가 또 다른 AR 플랫폼과 연관된 피처들(예컨대, 디지털 자산들 및/또는 가상 객체들)에 액세스하고/거나 이들을 활용하는 것이 어렵거나, 번거롭거나, 불가능할 수 있다. 따라서 개발자들이 다수의 실행 환경들 및/또는 AR 플랫폼들에 걸쳐 지속적인 AR 경험들을 생성하고 사용자들에게 제공하는 것이 어려울 수 있다.
하기에 더 상세하게 설명될 바와 같이, 본 발명은 느슨하게 결합된 재국소화 서비스(relocalization service) 및 자산 관리 서비스를 통해 인공 환경들 내에서 디지털 자산들을 제공하기 위한 다양한 시스템들 및 방법들을 설명한다. 일부 예들에서, 본 명세서에서 설명된 시스템들 및 방법들은 다수의 AR 플랫폼들에 걸쳐 지속적인 AR 경험들을 가능하게 할 수 있는 느슨하게 결합된 재국소화 서비스, 자산 관리 서비스, 및 클라이언트 프런트 엔드(front-end) 환경을 제공할 수 있다.
하나의 예에서, 특히 느슨하게 결합된 재국소화 서비스 및 자산 관리 서비스를 통해 인공 환경들 내에서 디지털 자산들을 제공하기 위한 컴퓨터 구현 방법은 실세계 환경 내에서 클라이언트 디바이스를 통해, 실세계 환경을 나타내는 정보를 획득하는 단계, 및 실세계 환경을 나타내는 정보를 국소화 서비스로 송신하는 단계를 포함할 수 있다. 방법은 실세계 환경을 나타내는 정보에 응답하여 재국소화 서비스로부터 (1) 실세계 환경 내의 매핑된 포지션을 포함할 수 있는 앵커 지점과 연관된 정보, 및 (2) 앵커 지점의 매핑된 포지션에 대한 클라이언트 디바이스의 실세계 환경 내의 결정된 포지션을 수신하는 단계를 더 포함할 수 있다.
방법은 (1) 앵커 지점과 연관된 식별자를 포함할 수 있는 질의를 자산 관리 서비스로 전송하는 단계, 및 (2) 질의에 응답하여 자산 관리 서비스로부터, 적어도 하나의 디지털 자산을 나타내는 정보를 얻는 단계를 더 포함할 수 있다. 방법은 실세계 환경 내의 클라이언트 디바이스의 결정된 포지션 및 앵커 지점의 매핑된 포지션에 대한 인공 환경 내의 포지션에서 디지털 자산을 제공하는 단계를 더 포함할 수 있다.
일부 예들에서, 실세계 환경을 나타내는 정보를 획득하는 단계는 (1) 클라이언트 디바이스에 포함된 이미징 디바이스를 통해, 실세계 환경의 적어도 일부의 이미지를 캡쳐하는 단계, 및 (2) 실세계 환경의 일부의 이미지를 캡쳐할 때의 이미징 디바이스의 지향방향(orientation)을 검출하는 단계를 포함할 수 있다.
일부 예들에서, 실세계 환경을 나타내는 정보를 획득하는 단계는 클라이언트 디바이스에 의해, 이미지에 대한 이미징 디바이스의 고유 파라미터의 효과를 감소시킴으로써 이미지를 조정하는 단계를 더 포함할 수 있다. 적어도 하나의 예에서, 고유 파라미터는 (1) 이미징 디바이스의 초점 길이, (2) 이미징 디바이스의 주요 지점, 또는 (3) 이미징 디바이스의 스큐 계수(skew coefficient) 중 적어도 하나를 포함할 수 있다.
적어도 하나의 예에서, 실세계 환경을 나타내는 정보를 획득하는 단계는 (1) 이미지에 포함된 적어도 하나의 이미지 피처(image feature)를 검출하는 단계, (2) 이미지에 포함된 이미지 피처에 기초하여 피처 설명자를 생성하는 단계, 및 (3) 실세계 환경을 나타내는 정보의 적어도 일부로서 피처 설명자를 포함하는 단계를 더 포함할 수 있다.
일부 실시예들에서, 실세계 환경을 나타내는 정보를 획득하는 단계는 이미지 피처 및 이미지를 캡쳐할 때의 이미징 디바이스의 지향방향에 기초하여, (1) 이미징 디바이스와 연관된 지점에서의 원점, 및 피처 광선(feature ray)으로 하여금 이미지 피처와 교차하게 하는 방향을 포함할 수 있는 피처 광선을 식별하는 단계를 더 포함할 수 있다. 일부 예들에서, 실세계 환경을 나타내는 정보를 획득하는 단계는 실세계 환경을 나타내는 정보의 적어도 일부로서 피처 광선을 포함하는 단계를 더 포함할 수 있다.
적어도 일부 실시예들에서, 실세계 환경을 나타내는 정보는 (1) 클라이언트 디바이스에 포함된 이미징 디바이스에 의해 캡쳐된 실세계 환경의 적어도 일부의 이미지, (2) 이미징 디바이스에 의해 이미지를 캡쳐할 때의 이미징 디바이스의 지향방향, (3) 이미징 디바이스의 고유 파라미터, (4) 이미지에 포함된 이미지 피처, (4) 이미지에 포함된 이미지 피처에 기초한 피처 설명자, (5) 이미지에 포함된 이미지 피처에 기초한 피처 설명자, 또는 (6) 이미징 디바이스와 연관되고 이미지 피처를 교차시키는 지점에서의 원점을 갖는 피처 광선 중 적어도 하나를 포함할 수 있다.
적어도 하나의 예에서, 실세계 환경을 나타내는 정보는 (1) 실세계 환경 내의 적어도 하나의 매핑된 포지션에 대한 클라이언트 디바이스의 이전에 결정된 포지션, (2) 클라이언트 디바이스의 이전에 결정된 포지션과 연관된 신뢰 레벨, (3) 클라이언트 디바이스와 연관된 글로벌 포지셔닝 시스템(GPS) 좌표, 또는 (4) 실세계 환경과 연관된 네트워크 식별자 중 적어도 하나를 더 포함할 수 있다.
일부 예들에서, 방법은 실세계 환경 내의 클라이언트 디바이스의 움직임을 추적하는 단계 및 실세계 환경 내의 클라이언트 디바이스의 움직임에 기초하여 클라이언트 디바이스의 실세계 환경 내의 결정된 포지션을 업데이트하는 단계를 더 포함할 수 있다. 적어도 하나의 예에서, 실세계 환경 내의 클라이언트 디바이스의 움직임을 추적하는 단계는 (1) 실세계 환경을 나타내는 정보를 재국소화 서비스로 송신할 때, 실세계 환경 내의 클라이언트 디바이스의 초기 포지션을 결정하는 단계, (2) 초기 포지션에 대응하는 부가적인 앵커 지점을 생성하는 단계, 및 (3) 부가적인 앵커 지점에 대한 실세계 환경 내의 클라이언트 디바이스의 움직임을 추적하는 단계를 포함할 수 있다.
적어도 하나의 실시예에서, 방법은 (1) 실세계 환경을 나타내는 정보의 일부에 기초하여 클라이언트 디바이스의 대략적인 포지션(coarse position)를 결정하는 단계, (2) 대략적인 포지션 및 실세계 환경을 나타내는 정보의 부가적인 부분에 기초하여 클라이언트 디바이스의 미세한 포지션을 식별하는 단계, 및 (3) 클라이언트 디바이스의 미세한 포지션에 기초하여 앵커 지점을 선택하는 단계를 더 포함할 수 있다.
게다가, 느슨하게 결합된 재국소화 서비스 및 자산 관리 서비스를 통해 인공 환경들 내에서 디지털 자산들을 제공하기 위한 대응하는 시스템은 (1) 실세계 환경 내의 클라이언트 디바이스를 통해, 실세계 환경을 나타내는 정보를 획득하는 획득 모듈, 및 (2) 실세계 환경을 나타내는 정보를 재국소화 서비스로 송신하는 송신 모듈을 포함하는 메모리에 저장된 몇몇 모듈들을 포함할 수 있다. 시스템은 실세계 환경을 나타내는 정보에 응답하여 재국소화 서비스로부터, (1) 실세계 환경 내의 매핑된 포지션을 포함할 수 있는 앵커 지점과 연관된 정보, 및 (2) 앵커 지점의 매핑된 포지션에 대한 클라이언트 디바이스의 실세계 환경 내의 결정된 포지션을 수신하는 수신 모듈을 더 포함할 수 있다.
시스템은 앵커 지점과 연관된 식별자를 포함할 수 있는 질의를 자산 관리 서비스로 전송하는 전송 모듈, 및 질의에 응답하여 자산 관리 서비스로부터, 적어도 하나의 디지털 자산을 나타내는 정보를 얻는 취득 모듈을 더 포함할 수 있다. 시스템은 실세계 환경 내의 클라이언트 디바이스의 결정된 포지션 및 앵커 지점의 매핑된 포지션에 대한 인공 환경 내의 포지션에서 디지털 자산을 제공하는 제공 모듈을 더 포함할 수 있다. 시스템은 또한, 획득 모듈, 송신 모듈, 수신 모듈, 전송 모듈, 취득 모듈, 및 제공 모듈을 실행하는 적어도 하나의 물리적 프로세서를 포함할 수 있다.
일부 예들에서, 획득 모듈은 (1) 클라이언트 디바이스에 포함된 이미징 디바이스를 통해, 실세계 환경의 적어도 일부의 이미지를 캡쳐하고, (2) 실세계 환경의 일부의 이미지를 캡쳐할 때의 이미징 디바이스의 지향방향을 검출함으로써 실세계 환경을 나타내는 정보를 획득할 수 있다.
일부 실시예들에서, 획득 모듈은 이미지에 대한 이미징 디바이스의 고유 파라미터의 효과를 감소시킴으로써 이미지를 조정함으로써 실세계 환경을 나타내는 정보를 더 획득할 수 있다. 또 다른 실시예들에서, 획득 모듈은 (1) 이미지에 포함된 적어도 하나의 이미지 피처를 검출하고, (2) 이미지에 포함된 이미지 피처에 기초하여 피처 설명자를 생성하며, (3) 실세계 환경을 나타내는 정보의 적어도 일부로서 피처 설명자를 포함함으로써 실세계 환경을 나타내는 정보를 더 획득할 수 있다.
적어도 하나의 실시예에서, 획득 모듈은 이미지 피처 및 이미지를 캡쳐할 때의 이미징 디바이스의 지향방향에 기초하여, (1) 이미징 디바이스와 연관된 지점에서의 원점, 및 (2) 피처 광선으로 하여금 이미지 피처와 교차하게 하는 방향을 포함할 수 있는 피처 광선을 식별함으로써 실세계 환경을 나타내는 정보를 더 획득할 수 있다. 일부 예들에서, 획득 모듈은 실세계 환경을 나타내는 정보의 적어도 일부로서 피처 광선을 포함함으로써 실세계 환경을 나타내는 정보를 더 획득할 수 있다.
적어도 하나의 예에서, 시스템은 실세계 환경 내의 클라이언트 디바이스의 움직임을 추적하고 실세계 환경 내의 클라이언트 디바이스의 움직임에 기초하여 클라이언트 디바이스의 실세계 환경 내의 결정된 포지션을 업데이트하는 추적 모듈을 더 포함할 수 있다. 적어도 하나의 예에서, 물리적 프로세서는 추적 모듈을 더 실행할 수 있다.
적어도 하나의 실시예에서, 추적 모듈은 (1) 실세계 환경을 나타내는 정보를 재국소화 서비스로 송신할 때, 실세계 환경 내의 클라이언트 디바이스의 초기 포지션을 결정하고, (2) 초기 포지션에 대응하는 부가적인 앵커 지점을 생성하며, (3) 부가적인 앵커 지점에 대한 실세계 환경 내의 클라이언트 디바이스의 움직임을 추적함으로써 실세계 환경 내의 클라이언트 디바이스의 움직임을 더 추적할 수 있다.
일부 예들에서, 시스템은 실세계 환경을 나타내는 정보의 일부에 기초하여 클라이언트 디바이스의 대략적인 포지션을 결정하는 메모리에 저장된 포지셔닝 모듈을 더 포함할 수 있다. 포지셔닝 모듈은 대략적인 포지션 및 실세계 환경을 나타내는 정보의 부가적인 부분에 기초하여 클라이언트 디바이스의 미세한 포지션을 더 식별할 수 있고 클라이언트 디바이스의 미세한 포지션에 기초하여 앵커 지점을 더 선택할 수 있다. 일부 예들에서, 물리적 프로세서는 포지셔닝 모듈을 더 실행할 수 있다.
일부 예들에서, 상기 설명된 방법은 컴퓨터 판독가능한 매체의 컴퓨터 판독가능한 지시들로서 인코딩될 수 있다. 예를 들면, 컴퓨터 판독가능한 매체는 컴퓨팅 디바이스의 적어도 하나의 프로세서에 의해 실행될 때, 컴퓨팅 디바이스로 하여금 실세계 환경 내의 클라이언트 디바이스를 통해, 실세계 환경을 나타내는 정보를 획득하게 하고 실세계 환경을 나타내는 정보를 국소화 서비스로 송신하게 할 수 있는 하나 이상의 컴퓨터 실행가능한 지시들을 포함할 수 있다. 컴퓨터 판독가능한 매체는 컴퓨팅 디바이스의 적어도 하나의 프로세서에 의해 실행될 때, 컴퓨팅 디바이스로 하여금 실세계 환경을 나타내는 정보에 응답하여 재국소화 서비스로부터, (1) 실세계 환경 내의 매핑된 포지션을 포함할 수 있는 앵커 지점과 연관된 정보, 및 (2) 앵커 지점의 매핑된 포지션에 대한 클라이언트 디바이스의 실세계 환경 내의 결정된 포지션을 수신하게 할 수 있는 하나 이상의 컴퓨터 실행가능한 지시들을 더 포함할 수 있다.
컴퓨터 판독가능한 매체는 컴퓨팅 디바이스의 적어도 하나의 프로세서에 의해 실행될 때, 컴퓨팅 디바이스로 하여금 (1) 앵커 지점과 연관된 식별자를 포함할 수 있는 질의를 자산 관리 서비스로 전송하게 하고, (2) 질의에 응답하여 자산 관리 서비스로부터, 적어도 하나의 디지털 자산을 나타내는 정보를 얻게 할 수 있는 하나 이상의 컴퓨터 실행가능한 지시들을 더 포함할 수 있다. 컴퓨터 판독가능한 매체는 컴퓨팅 디바이스의 적어도 하나의 프로세서에 의해 실행될 때, 컴퓨팅 디바이스로 하여금 실세계 환경 내의 클라이언트 디바이스의 결정된 포지션 및 앵커 지점의 매핑된 포지션에 대한 인공 환경 내의 포지션에서 디지털 자산을 제공하게 할 수 있는 하나 이상의 컴퓨터 실행가능한 지시들을 더 포함할 수 있다.
상기 언급된 실시예들 중 임의의 것으로부터의 특징들은 본 명세서에서 설명된 일반적인 원리들에 따라 서로 조합하여 사용될 수 있다. 이들 및 다른 실시예들, 특징들, 및 장점들은 첨부된 도면들 및 청구항들과 결부하여 다음의 상세한 설명을 판독할 때 더 완전하게 이해될 것이다.
본 발명에 따른 일 실시예에서, 하나 이상의 컴퓨터 판독가능한 비 일시적 저장 매체들은 실행될 때 본 발명 또는 상기 언급된 실시예들 중 임의의 실시예에 따른 방법을 수행하도록 동작가능한 소프트웨어를 구현할 수 있다.
본 발명에 따른 일 실시예에서, 시스템은: 하나 이상의 프로세서들; 및 프로세서들에 결합되고 프로세서들에 의해 실행가능한 지시들을 포함하는 적어도 하나의 메모리를 포함할 수 있고, 프로세서들은 지시들을 실행할 때 본 발명 또는 상기 언급된 실시예들 중 임의의 실시예에 따른 방법을 수행하도록 동작가능하다.
본 발명에 따른 일 실시예에서, 바람직하게 컴퓨터 판독가능한 비 일시적 저장 매체들을 포함하는 컴퓨터 프로그램 제품은 데이터 프로세싱 시스템에서 실행될 때 본 발명 또는 상기 언급된 실시예들 중 임의의 실시예에 따른 방법을 수행하도록 동작가능할 수 있다.
본 발명에 따른 실시예들은 특히, 방법, 시스템 및 저장 매체에 관한 첨부된 청구항들에 개시되고, 하나의 청구항 범주 예컨대, 방법에 언급된 임의의 특징은 또 다른 청구항 범주 예컨대, 시스템, 저장 매체 및 컴퓨터 프로그램 제품에서 또한 청구될 수 있다. 첨부된 청구항들의 종속성들 또는 역 참조들은 단지 공식적인 이유들로 인해 선택된다. 그러나, 임의의 이전 청구항들(특히 다중 종속성들)에 대한 고의적인 역 참조로부터 발생하는 임의의 주제가 또한 청구될 수 있어서, 청구항들과 그들의 특징들의 임의의 조합이 개시되게 하고 첨부된 청구항들에서 선택된 종속성들에 관계없이 청구될 수 있게 한다. 청구될 수 있는 주제는 첨부된 청구항들에 제시된 바와 같이 특징들의 조합들 뿐만 아니라 청구항들의 특징들의 임의의 다른 조합을 포함하고, 청구항들에 언급된 각각의 특징은 청구항들의 임의의 다른 특징 또는 다른 특징들의 조합과 조합될 수 있다. 또한, 본 명세서에서 설명되거나 묘사된 실시예들 및 특징들 중 임의의 것은 별개의 청구항에서 및/또는 본 명세서에서 설명되거나 묘사된 임의의 실시예 또는 특징과 또는 첨부된 청구항들의 특징들 중 임의의 것과의 임의의 조합으로 청구될 수 있다.
첨부된 도면들은 다수의 예시적인 실시예들을 도시하며 명세서의 일부이다. 다음의 설명과 함께, 이들 도면들은 본 발명의 다양한 원리들을 입증하고 설명한다.
도 1은 느슨하게 결합된 재국소화 서비스 및 자산 관리 서비스를 통해 인공 환경들 내에서 디지털 자산들을 제공하기 위한 일 예시적인 시스템의 블록도.
도 2는 느슨하게 결합된 재국소화 서비스 및 자산 관리 서비스를 통해 인공 환경들 내에서 디지털 자산들을 제공하기 위한 시스템의 일 예시적인 구현의 블록도.
도 3은 느슨하게 결합된 재국소화 서비스 및 자산 관리 서비스를 통해 인공 환경들 내에서 디지털 자산들을 제공하기 위한 일 예시적인 방법의 흐름도.
도 4는 실세계 환경 및 실세계 환경 내에 배치된 클라이언트 디바이스의 조감도.
도 5는 실세계 환경의 이미지를 포함하는 실세계 환경을 나타내는 정보를 도시한 도면.
도 6은 실세계 환경의 이미지 내에서 검출된 이미지 피처들을 도시한 도면.
도 7은 실세계 환경 내에서 매핑된 포지션들을 나타내는 다양한 앵커 지점들을 포함하는 실세계 환경의 맵을 도시한 도면.
도 8은 클라이언트 디바이스의 대략적인 포지션을 결정하고, 대략적인 포지션에 기초하여 클라이언트 디바이스의 미세한 포지션을 식별하며, 클라이언트 디바이스의 미세한 포지션에 기초하여 앵커 지점을 선택하기 위한 흐름도.
도 9는 클라이언트 디바이스에 대한 인공 환경 내의 포지션 및 앵커 지점의 매핑된 포지션을 포함하는 인공 환경(예컨대, 실세계 환경에 오버레이된 인공 현실 환경)의 조감도.
도 10은 클라이언트 디바이스의 결정된 포지션 및 앵커 지점의 매핑된 포지션에 대한 인공 환경 내의 포지션에서 제공된 디지털 자산(예컨대, 가상 객체)을 포함하는 인공 환경(예컨대, 실세계 환경에 오버레이된 인공 현실 환경)의 1인칭 시점을 도시한 도면.
도 11은 실세계 환경 내의 클라이언트 디바이스의 움직임을 추적하고 실세계 환경 내의 클라이언트 디바이스의 움직임에 기초하여 클라이언트 디바이스의 실세계 환경 내의 결정된 포지션을 업데이트하는 것을 도시한 도면.
도 12 내지 도 15는 컴퓨팅 디바이스의 적어도 하나의 프로세서에 의해 실행될 때, 컴퓨팅 디바이스로 하여금 본 명세서에서 설명된 시스템들 및 방법들에 따라 인공 환경 내에서 디지털 자산들을 제공하게 할 수 있는 컴퓨터 코드의 목록들을 포함하는 도면들.
도면들 전체에 걸쳐, 동일한 참조 문자들 및 설명들은 유사한 요소들을 나타내지만, 반드시 동일한 요소를 나타내지 않는다. 본 명세서에서 설명된 예시적인 실시예들이 다양한 수정들 및 대안적인 형태들의 영향을 받기 쉽지만, 특정 실시예들은 도면들에서 예로서 도시되었으며 본 명세서에서 상세하게 설명될 것이다. 그러나, 본 명세서에서 설명된 예시적인 실시예들은 개시된 특정한 형태들로 제한되도록 의도되지 않는다. 오히려, 본 발명은 첨부된 청구항들의 범위 내에 있는 모든 수정들, 등가물들, 및 대안들을 커버한다.
본 발명은 일반적으로, 느슨하게 결합된 재국소화 서비스 및 자산 관리 서비스를 통해 인공 환경들 내에서 디지털 자산들을 제공하기 위한 시스템들 및 방법들에 관한 것이다. 하기에 더 상세하게 설명될 바와 같이, 본 발명의 실시예들은 실세계 환경 내의 클라이언트 디바이스를 통해, 실세계 환경의 이미지, 클라이언트 디바이스의 현재 지향방향, 클라이언트 디바이스의 GPS 좌표 등과 같은, 실세계 환경을 나타내는 정보를 획득할 수 있다. 일 실시예는 또한, 획득된 정보를 재국소화 서비스로 송신할 수 있다.
일 실시예는 또한, 실세계 환경을 나타내는 정보에 응답하여 재국소화 서비스로부터, 앵커 지점과 연관된 식별자와 같은, 앵커 지점과 연관된 정보를 수신할 수 있다. 하기에 더 상세하게 설명될 바와 같이, 앵커 지점은 실세계 환경 내의 매핑된 포지션을 포함할 수 있고/거나 그와 연관될 수 있다. 일 실시예는 또한, 실세계 환경을 나타내는 획득된 정보에 응답하여, 앵커 지점의 매핑된 포지션에 대한 클라이언트 디바이스의 실세계 환경 내의 결정된 포지션을 수신할 수 있다. 이 정보에 기초하여, 일 실시예는 실세계 환경 내에서 클라이언트 디바이스를 재국소화할 수 있다.
일 실시예는 또한, 앵커 지점과 연관된 식별자를 포함할 수 있는 질의를 자산 관리 서비스로 전송할 수 있고, 질의에 응답하여, 가상 객체와 같은 적어도 하나의 디지털 자산을 나타내는 정보를 얻을 수 있다. 일 실시예는 또한, 실세계 환경 내에서 클라이언트 디바이스의 결정된 포지션 및 앵커 지점의 매핑된 포지션에 대한 AR 환경 또는 가상 현실(VR) 환경과 같은 인공 환경 내의 포지션에서 디지털 자산을 제공할 수 있다.
일부 실시예들에서, 본 명세서에서 설명된 시스템들 및 방법들은 다수의 AR 플랫폼들에 걸쳐 지속적인 AR 경험들을 제공하기 위해 느슨하게 결합된 재국소화 서비스, 자산 관리 서비스, 및 클라이언트 프런트 엔드를 제공할 수 있다. 일부 예들에서, "느슨하게 결합된" 시스템들은 일반적으로, 복수의 구성요소들을 포함할 수 있으며 여기서 각각의 구성요소는 시스템의 다른 구성요소들에 거의 또는 전혀 의존하지 않을 수 있다. 예를 들면, 본 명세서에서 설명된 바와 같이 재국소화 서비스, 자산 관리 서비스, 및 클라이언트 프런트 엔드는 재국소화 서비스 및 자산 관리 서비스가 클라이언트 프런트 엔드 디바이스들에 관한 정보(예컨대, 상태 정보)를 거의 또는 전혀 유지하지 않을 수 있다는 점에서 느슨하게 결합될 수 있다.
부가적으로, 본 명세서에서 설명된 바와 같이 재국소화 서비스, 자산 관리 서비스, 및 클라이언트 프런트 엔드는 각각의 구성요소가 실질적으로 자체 포함된 질의들 및 응답들을 통해 다른 구성요소들과 비동기적으로 통신할 수 있다는 점에서 느슨하게 결합될 수 있다. 부가적으로, 일부 예들에서, 재국소화 서비스 및 자산 관리 서비스는 재국소화 서비스로부터 클라이언트 디바이스들에 의해 수신되고 클라이언트 디바이스들로부터 자산 관리 서비스로 전송된 별개의 앵커 지점 식별자들을 통해 최소 및 간접적으로 서로 통신할 수 있다.
이 느슨하게 결합된 아키텍처는 각각의 구성요소(예컨대, 재국소화 서비스, 자산 관리 서비스, 및 클라이언트 프런트 엔드)가 다른 구성요소와 독립적으로 동작하고/거나 개발하는 것을 가능하게 할 수 있다. 게다가, 이 느슨하게 결합된 아키텍처는 재국소화 서비스 및/또는 자산 관리 서비스가 클라이언트 디바이스들로의 포지션 관련 데이터의 효율적인 전달을 제공할 수 있는 임의의 서비스와 같은, 다수의 유형들의 애플리케이션들을 제공하는 것을 가능하게 할 수 있다. 따라서, 본 발명의 일부 실시예들은 전통적인 재국소화 및/또는 자산 관리 시스템들과 비교할 때 증가된 유연성을 제공할 수 있다.
또한, 본 명세서에서 설명된 시스템들 및 방법들은 개발자들이 다수의 적합한 프론트 엔드 환경들 중 임의의 것을 이용하는 다양한 적합한 클라이언트 디바이스들 중 임의의 것을 통해 경험되고, 액세스되고, 뷰잉되고/거나, 즐길 수 있는 지속적인 교차 플랫폼 AR 경험들을 생성하는 것을 가능하게 할 수 있다. 임의의 적합한 프런트 엔드 환경을 이용하는 클라이언트 디바이스들은 인공 환경들 내에서 디지털 자산들을 제공하기 위해 본 명세서에서 설명된 바와 같이 재국소화 서비스 및/또는 자산 관리 서비스를 활용할 수 있다.
예를 들면, 본 명세서에서 설명된 시스템들 및 방법들의 실시예들은 제 1 AR 플랫폼을 실행하는 제 1 클라이언트 디바이스를 통해 제 1 사용자가 실세계 환경 내의(예컨대, 테이블의) 포지션에 대응하는 AR 환경 내의 포지션에 디지털 자산(예컨대, 가상 꽃)을 배치하고/거나 뷰잉하는 것을 가능하게 할 수 있다. 제 2 사용자는 그 다음, 제 2 AR 플랫폼을 이용하는 제 2 클라이언트 디바이스를 통해, AR 환경 내에서 디지털 자산의 포지션을 찾고, 뷰잉하고, 경험하고/거나, 이와 상호작용할 수 있다.
게다가, 본 발명의 실시예들은 전통적인 긴밀하게 결합된 재국소화, 자산 관리, 및 프런트 엔드 증강 현실 옵션들보다 원격통신 리소스들(예컨대, 대역폭) 및/또는 컴퓨팅 리소스들의 더 효율적인 사용을 제공할 수 있다. 예를 들면, 하기에 더 상세하게 설명될 바와 같이, 실세계 환경 내의 클라이언트 디바이스를 재국소화하는 것은 적은 양의 대역폭만 요구하고/거나 사용할 수 있지만 상대적으로 많은 양의 컴퓨팅 리소스들(예컨대, 프로세싱 리소스들, 메모리 리소스들, 등)을 요구하고/거나 사용할 수 있다. 그러나, 자산 관리 서비스로부터 자산을 검색하는 것은 상대적으로 많은 양의 대역폭, 그러나 적은 양의 컴퓨팅 리소스들만을 요구하고/거나 사용할 수 있다. 클라이언트 디바이스, 재국소화 서비스, 및 자산 관리 서비스 사이의 긴밀한 결합보다는 느슨한 결합을 이용함으로써, 본 명세서에서 설명된 시스템들 및 방법들이 종래의 AR 옵션들보다 원격통신 리소스들(예컨대, 대역폭) 및/또는 컴퓨팅 리소스들을 더 효율적으로 할당하고/거나 사용할 수 있다.
다음 내용은 도 1 및 도 2 및 도 4 내지 도 11을 참조하여, 느슨하게 결합된 재국소화 서비스 및 자산 관리 서비스를 통해 인공 환경들 내에서 디지털 자산들을 제공하기 위한 시스템들의 상세한 설명들을 제공할 것이다. 대응하는 컴퓨터 구현 방법들의 상세한 설명들은 또한, 도 3과 관련하여 제공될 것이다. 컴퓨팅 디바이스의 하나 이상의 프로세서들에 의해 실행될 때, 컴퓨팅 디바이스로 하여금 본 명세서에서 설명된 컴퓨터 구현 방법들 중 하나 이상을 수행하게 할 수 있는 컴퓨터 코드의 상세한 설명들이 또한, 도 12 내지 도 15와 관련하여 제공될 것이다.
도 1은 느슨하게 결합된 재국소화 서비스 및 자산 관리 서비스를 통해 인공 환경들 내에서 디지털 자산들을 제공하기 위한 일 예시적인 시스템(100)("시스템(100)")의 블록도이다. 이 도면에 도시된 바와 같이, 예시적인 시스템(100)은 하나 이상의 작업들을 수행하기 위한 하나 이상의 모듈들(102)을 포함할 수 있다. 하기에 더 상세하게 설명될 바와 같이, 모듈들(102)은 실세계 환경 내의 클라이언트 디바이스를 통해, 실세계 환경을 나타내는 정보를 획득하는 획득 모듈(104)을 포함할 수 있다. 도 1에 더 도시된 바와 같이, 시스템(100)은 실세계 환경을 나타내는 정보를 재국소화 서비스로 송신하는 송신 모듈(106), 및 실세계 환경을 나타내는 정보에 응답하여 재국소화 서비스로부터, (1) 실세계 환경 내에 매핑된 포지션을 포함할 수 있는 앵커 지점과 연관된 정보, 및 (2) 앵커 지점의 매핑된 포지션에 대한 클라이언트 디바이스의 실세계 환경 내의 결정된 포지션을 수신하는 수신 모듈(108)을 더 포함할 수 있다(예컨대, 모듈들(102)의 일부로서).
도 1에 더 도시된 바와 같이, 시스템(100)은 또한, 앵커 지점과 연관된 식별자를 포함할 수 있는 질의를 자산 관리 서비스로 전송하는 전송 모듈(110), 및 질의에 응답하여 자산 관리 서비스로부터, 적어도 하나의 디지털 자산을 나타내는 정보를 얻는 취득 모듈(112)을 포함할 수 있다(예컨대, 모듈들(102)의 일부로서). 도 1에 또한 도시된 바와 같이, 시스템(100)은 실세계 환경 내의 클라이언트 디바이스의 결정된 포지션 및 앵커 지점의 매핑된 포지션에 대한 인공 환경 내의 포지션에서 디지털 자산을 제공하는 제공 모듈(114)을 더 포함할 수 있다(예컨대, 모듈들(102)의 일부로서).
일부 실시예들에서, 도 1에 또한 도시된 바와 같이, 시스템(100)은 (1) 실세계 환경을 나타내는 정보의 일부에 기초하여 클라이언트 디바이스의 대략적인 포지션을 결정하고, (2) 대략적인 포지션 및 실세계 환경을 나타내는 정보의 부가적인 부분에 기초하여 클라이언트 디바이스의 미세한 포지션을 식별하는 포지셔닝 모듈(116)을 더 포함할 수 있다(예컨대, 모듈들(102)의 일부로서). 일부 예들에서, 포지셔닝 모듈(116)은 또한, 클라이언트 디바이스의 미세한 포지션에 기초하여 앵커 지점을 선택할 수 있다.
도 1에 더 도시된 바와 같이, 일부 실시예들에서, 시스템(100)은 실세계 환경 내의 클라이언트 디바이스의 움직임을 추적하고 실세계 환경 내의 클라이언트 디바이스의 움직임에 기초하여 클라이언트 디바이스의 실세계 환경 내의 결정된 포지션을 업데이트하는 추적 모듈(118)을 더 포함할 수 있다(예컨대, 모듈들(102)의 일부로서).
도 1에 더 도시된 바와 같이, 예시적인 시스템(100)은 또한, 메모리(120)와 같은 하나 이상의 메모리 디바이스들을 포함할 수 있다. 메모리(120)는 일반적으로, 데이터 및/또는 컴퓨터 판독가능한 지시들을 저장할 수 있는 임의의 유형 또는 형태의 휘발성 또는 비 휘발성 저장 디바이스 또는 매체를 표현한다. 하나의 예에서, 메모리(120)는 모듈들(102) 중 하나 이상을 저장, 로드 및/또는 유지할 수 있다. 메모리(120)의 예들은 제한 없이, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 플래시 메모리, 하드 디스크 드라이브들(HDDs), 고체 상태 드라이브들(SSDs), 광학 디스크 드라이브들, 캐시들, 그들 중 하나 이상의 변형들 또는 조합들, 또는 임의의 다른 적합한 저장 메모리를 포함한다.
도 1에 더 도시된 바와 같이, 예시적인 시스템(100)은 또한, 물리적 프로세서(130)와 같은 하나 이상의 물리적 프로세서들을 포함할 수 있다. 물리적 프로세서(130)는 일반적으로, 컴퓨터 판독가능한 지시들을 해석하고/거나 실행할 수 있는 임의의 유형 또는 형태의 하드웨어 구현 처리 장치를 표현할 수 있다. 하나의 예에서, 물리적 프로세서(130)는 메모리(120)에 저장된 모듈들(102) 중 하나 이상에 액세스하고/거나 그들을 수정할 수 있다. 부가적으로 또는 대안적으로, 물리적 프로세서(130)는 느슨하게 결합된 재국소화 서비스 및 자산 관리 서비스를 통해 인공 환경들 내에서 디지털 자산들을 제공하는 것을 용이하게 하기 위해 모듈들(102) 중 하나 이상을 실행할 수 있다. 물리적 프로세서(130)의 예들은 제한 없이, 마이크로프로세서들, 마이크로제어기들, 중앙 처리 장치들(CPUs), 소프트코어 프로세서들을 구현하는 필드 프로그래밍가능한 게이트 어레이들(FPGAs), 주문형 반도체들(ASICs), 그들 중 하나 이상의 부분들, 그들 중 하나 이상의 변형들 또는 조합들, 또는 임의의 다른 적합한 물리적 프로세서를 포함한다.
도 1에 또한 도시된 바와 같이, 예시적인 시스템(100)은 또한, 데이터를 수신, 저장, 및/또는 유지할 수 있는 데이터 저장장치(140)와 같은 하나 이상의 데이터 저장장치들을 포함할 수 있다. 데이터 저장장치(140)는 단일 데이터 저장장치 또는 컴퓨팅 디바이스 또는 복수의 데이터 저장장치들 또는 컴퓨팅 디바이스들의 일부들을 표현할 수 있다. 일부 실시예들에서, 데이터 저장장치(140)는 데이터에 대한 논리적 컨테이너일 수 있고 다양한 형태들(예컨대, 데이터베이스, 파일, 파일 시스템, 데이터 구조, 등)로 구현될 수 있다. 데이터 저장장치(140)의 예들은 제한 없이 파일들, 파일 시스템들, 데이터 저장장치들, 데이터베이스들, 및/또는 운영 데이터 저장장치(ODS)와 같은 데이터베이스 관리 시스템들, 관계형 데이터베이스, NoSQL 데이터베이스, NewSQL 데이터베이스, 및/또는 임의의 다른 적합한 조직된 데이터의 컬렉션을 포함할 수 있다.
적어도 하나의 예에서, 데이터 저장장치(140)는 국소화 데이터(142) 및/또는 자산 데이터(144)를 포함할 수 있다. 하기에 더 상세하게 설명될 바와 같이, 일부 예들에서, 국소화 데이터(142)는 재국소화 서비스가 제한 없이, 실세계 환경의 사전 생성되고/거나 동적으로 생성된 맵, 실세계 환경 내의 하나 이상의 매핑된 포지션들과 연관된 데이터, 실세계 환경 내의 매핑된 포지션들 사이의 및/또는 그들 중의 관계들과 연관된 데이터, 등을 포함하는 실세계 환경 내의 적어도 하나의 클라이언트 디바이스의 포지션을 식별, 산출, 검출, 및/또는 그렇지 않으면 결정하기 위해 사용할 수 있는 임의의 정보를 포함할 수 있다. 부가적으로, 자산 데이터(144)는 제한 없이, 디지털 자산들, 가상 객체들, 2차원 모델들, 3차원 모델들, 자산과 연관된 애니메이션 및/또는 이동 데이터, 시청각 데이터, 자산들 사이의 및/또는 그들 중의 관계들과 연관된 데이터, 디지털 자산들과 실세계 환경 내의 매핑된 포지션들 사이의 관계들과 연관된 데이터, 매핑된 포지션들로부터 디지털 자산들로의 상대적 이동들 및/또는 변환들, 디지털 자산들로부터 매핑된 포지션들로의 상대적 이동들 및/또는 변환들, 등을 포함하는 인공 환경 내에서 제공될 수 있는 자산들(예컨대, 디지털 자산들)과 연관된 임의의 적합한 데이터를 포함할 수 있다.
도 1의 예시적인 시스템(100)은 다양한 방식들로 구현될 수 있다. 예를 들면, 예시적인 시스템(100)의 전부 또는 일부는 도 2의 일 예시적인 시스템(200)("시스템(200)")의 일부들을 표현할 수 있다. 도 2에 도시된 바와 같이, 시스템(200)은 재국소화 서비스 서버(206)(또한 도 2 및 본 명세서에서 "RLS 서버(206)") 및 자산 관리 서비스 서버(208)(또한 도 2 및 본 명세서에서 "AMS 서버(208)")와 통신하는 클라이언트 디바이스(202)를 포함할 수 있다. 적어도 하나의 예에서, 클라이언트 디바이스(202)는 모듈들(102) 중 하나 이상으로 프로그래밍될 수 있다. 부가적으로 또는 대안적으로, RLS 서버(206), 및/또는 AMS 서버(208)는 모듈들(102) 중 하나 이상으로 프로그래밍될 수 있다.
적어도 하나의 실시예에서, 도 1로부터의 하나 이상의 모듈들(102)은 클라이언트 디바이스(202), RLS 서버(206), 및/또는 AMS 서버(208)에 의해 실행될 때, 클라이언트 디바이스(202), RLS 서버(206), 및/또는 AMS 서버(208)가 느슨하게 결합된 재국소화 서비스 및 자산 관리 서비스를 통해 인공 환경 내에서 디지털 자산들을 제공하기 위해 하나 이상의 동작들을 수행하는 것을 가능하게 할 수 있다. 예를 들면, 하기에 더 상세하게 설명될 바와 같이, 획득 모듈(104)은 클라이언트 디바이스(202), RLS 서버(206), 및/또는 AMS 서버(208)로 하여금 실세계 환경(예컨대, 실세계 환경(210)) 내에서 클라이언트 디바이스(예컨대, 클라이언트 디바이스(202))를 통해, 실세계 환경을 나타내는 정보(예컨대, 실세계 환경 정보(212), 또한 도 2에서 "RWE 정보(212)")를 획득하게 할 수 있다.
일부 예들에서, 획득 모듈(104)은 클라이언트 디바이스(202), RLS 서버(206), 및/또는 AMS 서버(208)로 하여금 (1) 클라이언트 디바이스에 포함된 이미징 디바이스(예컨대, 이미징 디바이스(228))를 통해, 실세계 환경의 적어도 일부의 이미지를 캡쳐하고, (2) 실세계 환경의 일부의 이미지를 캡쳐할 때의 이미징 디바이스의 지향방향을 검출함으로써(예컨대, 센서(230)를 통해) 실세계 환경을 나타내는 정보(예컨대, 실세계 환경 정보(212))를 획득하게 할 수 있다. 일부 예들에서, 이미지 및/또는 지향방향은 실세계 환경을 나타내는 정보에 포함될 수 있다.
적어도 일부 예들에서, 송신 모듈(106)은 클라이언트 디바이스(202), RLS 서버(206), 및/또는 AMS 서버(208)로 하여금 실세계 환경을 나타내는 정보(예컨대, 실세계 환경 정보(212))를 재국소화 서비스(예컨대, RLS 서버(206))로 송신하게 할 수 있다. 수신 모듈(108)은 또한, 클라이언트 디바이스(202), RLS 서버(206), 및/또는 AMS 서버(208)로 하여금 실세계 환경을 나타내는 정보에 응답하여 재국소화 서비스(예컨대, RLS 서버(206))로부터, 실세계 환경 내에 매핑된 포지션(예컨대, 앵커 지점 포지션(216))를 포함할 수 있는 앵커 지점(예컨대, 앵커 지점 정보(214), 또한 도 2의 "앵커 지점 정보(214)")과 연관된 정보를 수신하게 할 수 있다. 일부 예들에서, 수신 모듈(108)은 또한, 클라이언트 디바이스(202), RLS 서버(206), 및/또는 AMS 서버(208)로 하여금 앵커 지점의 매핑된 포지션에 대한(예컨대, 앵커 지점 포지션(216)에 대한) 클라이언트 디바이스의 실세계 환경 내의 결정된 포지션(예컨대, 클라이언트 디바이스 포지션(220))를 수신하게 할 수 있다.
일부 실시예들에서, 전송 모듈(110)은 클라이언트 디바이스(202), RLS 서버(206), 및/또는 AMS 서버(208)가 앵커 지점과 연관된 식별자(예컨대, 앵커 지점 식별자(218))를 포함할 수 있는 질의(예컨대, 질의(222))를 자산 관리 서비스(예컨대, AMS 서버(208))로 전송하게 할 수 있다. 적어도 하나의 실시예에서, 취득 모듈(112)은 클라이언트 디바이스(202), RLS 서버(206), 및/또는 AMS 서버(208)로 하여금 질의에 응답하여 자산 관리 서비스(예컨대, AMS 서버(208))로부터, 적어도 하나의 디지털 자산(예컨대, 디지털 자산(224))을 나타내는 정보를 얻게 할 수 있다.
하나의 예에서, 제공 모듈(114)은 클라이언트 디바이스(202), RLS 서버(206), 및/또는 AMS 서버(208)로 하여금 실세계 환경 내의 클라이언트 디바이스의 결정된 포지션(예컨대, 클라이언트 디바이스 포지션(220)) 및 앵커 지점의 매핑된 포지션(예컨대, 앵커 지점 포지션(216))에 대한 인공 환경 내의 포지션(예컨대, 제공 포지션(226)) 내의 포지션에서 디지털 자산(예컨대, 디지털 자산(224))을 제공하게 할 수 있다.
일부 예들에서, "포지션(position)"은 특정한 기준 프레임에 대한 환경 내의 위치 및/또는 지향방향(orientation)을 포함할 수 있다. 부가적으로, 일부 예들에서, "기준 프레임"은 어떤 크기, 위치, 포지션, 지향방향, 포즈(pose), 및/또는 움직임이 정의될 수 있는지에 관한 좌표 축들의 시스템과 같은 환경 내에서 상이한 위치들, 포지션들, 지향방향들, 및/또는 포즈들 사이의 관계들을 표현하고/거나 정의할 수 있는 기준들 및/또는 정의들의 세트를 포함할 수 있다. 또한, 일부 예들에서, 포지션은 3개의 수직 축들에서의 이동(예컨대, 전방/후방, 위/아래, 및 좌측/우측) 및 3개의 수직 축들 주위의 회전(예컨대, 요, 피치, 및 롤)과 같은, 특정한 기준 프레임에 대한 3차원 공간에서의 강체의 이동을 설명할 수 있는 6개의 자유도들(6DoF)이라는 측면에서 표현될 수 있다.
게다가, 일부 예들에서, "포즈"는 실세계 환경, 인공 환경(예컨대, 증강 현실 환경 또는 가상 현실 환경), 실세계 환경의 맵, 등과 같은 환경 내의 특정한 기준 지점에 대한 객체(예컨대, 앵커 지점, 클라이언트 디바이스, 디지털 자산, 실세계 객체, 가상 객체, 등)의 포지션, 위치, 및/또는 지향방향을 포함할 수 있다. 예를 들면, "앵커 지점의 포즈"는 실세계 환경, 실세계 환경의 맵, 및/또는 인공 환경 내의 앵커 지점의 위치 및/또는 지향방향을 언급할 수 있다. 또 다른 예로서, "클라이언트 디바이스의 포즈"는 실세계 환경 및/또는 인공 환경 내의 클라이언트 디바이스의 위치 및/또는 지향방향을 언급할 수 있다. 부가적으로, "디지털 자산의 포즈"는 인공 환경 내에서 디지털 자산의 위치 및 지향방향을 언급할 수 있다. 일부 예들에서, 위치, 지향방향, 포지션, 포즈, 및/또는 기준 프레임은 또 다른 위치, 지향방향, 포지션, 포즈, 및/또는 기준 프레임과 관련하여 표현될 수 있다.
위치들, 지향방향들, 포지션들, 포즈들, 변형들, 및/또는 움직임들은 예를 들면, 좌표들, 지점들, 각도들, 벡터들, 경로들, 등을 통해 기준 프레임 내에서 임의의 적합한 방식으로 표현될 수 있다. 일부 예들에서, 지향방향들, 회전들, 및/또는 상대적 지향방향들은 축 각도 표현, 오일러 각도들, 단위 벡터 및 축, 유클리드 회전 벡터, 회전 그룹, 특수 직교 그룹(예컨대, SO(3) 회전 그룹), 특수 유클리드 그룹(예컨대, SE(3) 유클리드 그룹), 하나 이상의 쿼터니언들, 그들 중 하나 이상의 변형들 또는 조합들, 등 중 하나 이상으로서 표현될 수 있다.
도 7을 참조하여 하기에 더 상세하게 설명될 바와 같이, 일부 예들에서, "앵커 지점"은 실세계 환경 내에서 식별가능한 매핑된 포지션(예컨대, 앵커 지점 포지션(216))를 포함하고/거나 이에 대응할 수 있다. 마찬가지로, "매핑된 포지션", "앵커 지점 포지션" 및/또는 "실세계 환경 내의 매핑된 포지션"는 앵커 지점과 연관될 수 있는 실세계 환경(예컨대, 실세계 환경(210))의 미리 생성된 맵 내의 미리 선택된 2 또는 3차원 포지션을 포함할 수 있다. 일부 예들에서, 앵커 지점은 또한, 본 명세서에서 "추적가능한" 및/또는 "키릭(keyrig)"으로서 언급될 수 있다.
앵커 지점들은 실세계 환경의 맵을 생성할 수 있는 예비 매핑 프로세스를 통해 선택, 식별, 결정, 생성, 및/또는 포지션될 수 있다. 일부 예들에서, 이러한 예비 매핑 프로세스는 상대적으로 높은 정확도를 가질 수 있고 따라서, 클라이언트 디바이스들의 국소화 및/또는 재국소화를 위해 유용할 수 있는 고 품질 맵들 및/또는 정확하게 배치된 앵커 지점들을 생성할 수 있다. 부가적으로, 일부 예들에서, 앵커 지점들은 본 명세서에서 설명된 시스템들 중 하나 이상의 개발자 및/또는 사용자에 의해 수동으로 선택되고/거나 맵에 삽입될 수 있다.
일부 예들에서, 앵커 지점들은 AR 세션들에 걸쳐 일관되게 식별될 수 있고/거나 실세계 환경 내에서 상대적으로 정적일 수 있는 실세계 환경의 피처들과 연관될 수 있다. 예를 들면, 앵커 지점은 자주 이동될 수 있는 사무실의 의자가 아니라 자주 이동될 수 없는 사무실의 테이블과 연관될 수 있다. 따라서, 일부 예들에서, 앵커 지점은 실세계 환경 내에서 알려진, 식별된, 및/또는 결정된 포지션을 표현할 수 있고, 클라이언트 디바이스를 재국소화하고/거나 AR 장면 내에서 디지털 자산을 제공하기 위해 사용될 수 있다.
일부 예들에서, 앵커 지점은 앵커 지점과 연관된 디지털 자산이 앵커 지점의 매핑된 포지션을 참조하여 인공 환경 내에 배치될 수 있도록 하나 이상의 디지털 자산들과 연관될 수 있다. 예를 들면, 앵커 지점과 연관된 매핑된 포지션에 원점이 있는 데카르트 좌표계를 가정하면, 디지털 자산은 x축을 따라 1 미터, y축을 따라 -2 미터, 및 z축을 따라 3 미터 지점에 있는 앵커 지점에 "고정"될 수 있다. 일부 예들에서, 디지털 자산은 또한, 1.2°의 피치 각도, -23°의 요 각도, 및 78°의 롤 각도와 같은, 앵커 지점의 지향방향에 대한 회전을 포함할 수 있다.
따라서, 상기 예를 계속하면, 본 명세서에서 설명된 시스템들 중 하나 이상(예컨대, 제공 모듈(114))이 인공 환경 내에서 디지털 자산을 제공할 때, 본 명세서에서 설명된 시스템들 중 하나 이상(예컨대, 제공 모듈(114))은 앵커 지점으로부터 x축을 따라 1 미터, 앵커 지점으로부터 y축을 따라 -2 미터, 앵커 지점로부터 z축을 따라 3 미터일 수 있는 인공 환경의 기준 프레임으로 이동되고, 앵커 지점의 방*에 대해 지향된(예컨대, 회전됨) 바와 같이 앵커 지점의 매핑된 포지션에 대한 인공 환경 내의 포지션을 결정할 수 있다. 본 명세서에서 설명된 시스템들 중 하나 이상(예컨대, 제공 모듈(114))은 그 다음, 인공 환경 내의 결정된 포지션에서 디지털 자산을 제공할 수 있다. 따라서, 사용자가 실세계 환경의 대응하는 뷰과 합성된 인공 환경을 뷰잉할 때, 디지털 자산은 실세계 환경 내의 결정된 포지션에 배치되는 것처럼 보일 수 있다. 부가적인 예들 및 설명들은 도 7 내지 도 11을 참조하여 하기에 제공될 것이다.
클라이언트 디바이스(202)는 일반적으로, 컴퓨터 실행가능한 지시들을 판독하고/거나 실행할 수 있는 임의의 유형 또는 형태의 컴퓨팅 디바이스를 표현한다. 적어도 하나의 실시예에서, 클라이언트 디바이스(202)는 RLS 서버(206) 및/또는 AMS 서버(208)로부터 하나 이상의 방향들을 수용할 수 있다. 클라이언트 디바이스(202)의 예들은 제한 없이, 서버들, 데스크탑들, 랩탑들, 태블릿들, 셀룰러 폰들(예컨대, 스마트폰들), 개인 휴대용 정보 단말기들(PDAs), 멀티미디어 플레이어들, 임베디드 시스템들, 착용가능한 디바이스들(예컨대, 스마트 시계들, 스마트 안경들, 등), 게이밍 콘솔들, 그들 중 하나 이상의 조합들, 또는 다른 적합한 모바일 컴퓨팅 디바이스를 포함한다. 일부 예들에서, 클라이언트 디바이스(202)는 AR 플랫폼의 프런트 엔드를 포함할 수 있고/거나 구현할 수 있다.
일부 실시예들에서, 클라이언트 디바이스(202)는 이미징 디바이스(228)와 같은 이미징 디바이스를 더 포함할 수 있다. 이미징 디바이스(228)는 실세계 환경(예컨대, 실세계 환경(210))과 연관된 이미징 정보를 수집(예컨대, 관찰, 뷰잉, 수신, 포지션 찾기, 식별 등)할 수 있는 임의의 적합한 이미징 디바이스를 포함할 수 있다. 예를 들면, 이미징 디바이스(228)는 제한 없이, 가시 광 이미징 디바이스, 적외선 이미징 디바이스, 열 이미징 디바이스, 레이더 센서, 그들 중 하나 이상의 조합, 등을 포함할 수 있다.
적어도 하나의 실시예에서, 이미징 디바이스(228)는 이미징 디바이스(228)에 의해 캡쳐된 적어도 일부 신호들이 2차원 이미징 정보(예컨대, 어떠한 깊이 정보도 없는 이미징 정보)를 포함할 수 있도록, 이미지 센서(예컨대, 카메라)를 포함할 수 있다. 일부 실시예들에서, 클라이언트 디바이스(202)는 대응하는 이미징 정보(예컨대, 실세계 환경 정보(212)의 일부로서)를 RLS 서버(206)와 같은 또 다른 디바이스로 송신할 수 있으며, 이는 실세계 환경(210) 내의 클라이언트 디바이스(202)의 포지션(예컨대, 클라이언트 디바이스 포지션(220))를 결정하기 위해 이미징 디바이스(228)로부터의 이미징 정보를 사용할 수 있다.
적어도 일부 예들에서, 클라이언트 디바이스(202)는 센서(230)와 같은 센서를 더 포함할 수 있다. 센서(230)는 실세계 환경(예컨대, 실세계 환경 정보(212))과 연관된 정보를 수집(예컨대, 관찰, 뷰잉, 수신, 포지션 찾기, 식별, 저장, 등)할 수 있는 임의의 적합한 센서를 포함할 수 있다. 예를 들면, 센서(230)는 제한 없이, 근접 센서, 깊이 센서, 온도 센서, 지향방향 센서, 가속도계, 레이더 센서, 소나 센서, 나침반, GPS 디바이스, 관성 측정 유닛(IMU), 그들 중 하나 이상의 조합, 등을 포함할 수 있다. 적어도 하나의 예에서, 센서(230)는 이미지 기반 추적 시스템 및/또는 재국소화 서비스(예컨대, RLS 서버(206))에 포함되고/거나 그렇지 않으면, 이와 통신하는 복수의 센서들에 포함될 수 있다. 일부 예들에서, 클라이언트 디바이스(202)는 센서 데이터(예컨대, 실세계 환경 정보(212)의 일부로서)를 RLS 서버(206)와 같은 또 다른 디바이스로 송신할 수 있고, 이는 클라이언트 디바이스(202)의 포지션(예컨대, 클라이언트 디바이스 포지션(220))를 식별, 검출, 획득, 및/또는 결정하기 위해 이미징 디바이스(228)로부터의 이미지 데이터 및/또는 센서(230)로부터의 센서 데이터를 사용할 수 있다.
일부 예들에서, 도 2에 도시되지 않을지라도, 클라이언트 디바이스(202)는 실세계 환경의 적어도 일부(예컨대, 실세계 환경(210)의 일부)의 국소 맵을 포함, 생성, 업데이트, 유지, 호스팅하고/거나, 이에 액세스할 수 있다. 일부 예들에서, 클라이언트 디바이스(202)는 국소 맵을 생성하고/거나 업데이트할 수 있고/거나 하나 이상의 관성 내비게이션, 컴퓨터 비전, 및/또는 동시 국소화 및 매핑(SLAM) 기술들과 같은 임의의 적합한 기술을 통해 실세계 환경 내에서 클라이언트 디바이스(202)의 위치를 추적할 수 있다.
네트워크(204)는 일반적으로, 클라이언트 디바이스(202), RLS 서버(206), 및/또는 AMS 서버(208) 사이의 통신 및/또는 데이터 전송을 용이하게 할 수 있는 임의의 매체 또는 아키텍처를 표현한다. 네트워크(204)의 예들은 제한 없이, 인트라넷, WAN, LAN, 개인 영역 네트워크(PAN), 인터넷, 전력선 통신들(PLC), 셀룰러 네트워크(예컨대, 모바일 통신들을 위한 글로벌 시스템(GSM) 네트워크, 코드 분할 다중 액세스(CDMA) 네트워크, 롱 텀 에볼루션(LTE) 네트워크, 등), 범용 직렬 버스(USB) 연결들, 독점 연결들, 등을 포함한다. 네트워크(204)는 무선 또는 유선 연결들을 사용하여 통신 또는 데이터 전송을 용이하게 할 수 있다. 하나의 실시예에서, 네트워크(204)는 클라이언트 디바이스(202), RLS 서버(206), 및 AMS 서버(208) 사이의 통신을 용이하게 할 수 있다.
RLS 서버(206)는 일반적으로, 컴퓨터 실행가능한 지시들을 판독하고/거나 실행할 수 있고/거나 실행 파일들을 호스팅할 수 있는 임의의 유형 또는 형태의 컴퓨팅 디바이스를 표현한다. RLS 서버(206)의 예들은 제한 없이, 애플리케이션 서버들, 저장 서버들, 데이터베이스 서버들, 웹 서버들, 및/또는 특정 소프트웨어 애플리케이션들을 실행하고/거나 다양한 애플리케이션, 저장, 및/또는 데이터베이스 서비스들을 제공하도록 구성된 임의의 다른 적합한 컴퓨팅 디바이스를 포함한다.
일부 예들에서, RLS 서버(206)는 재국소화 서비스를 제공할 수 있다. 일부 예들에서, "재국소화"는 특정한 기준 프레임 내에서 컴퓨팅 디바이스(예컨대, 클라이언트 디바이스(202))와 같은 객체의 포지션, 위치, 및/또는 지향방향을 결정하고/거나 식별하는 임의의 프로세스를 포함할 수 있다. 따라서, 일부 예들에서, "재국소화 서비스"는 실세계 환경과 연관된 적합한 정보(예컨대, 실세계 환경 정보(212))가 제공될 때, 실세계 환경과 연관된 정보에 기초하여 실세계 환경 내의 포지션, 위치, 및/또는 지향방향을 결정하고/거나 식별할 수 있는 임의의 컴퓨터 제공 서비스를 포함할 수 있다.
일부 예들에서, 재국소화 서비스는 또한, 실세계 환경 내의 위치들에 매핑된 하나 이상의 앵커 지점들을 식별할 수 있고, 식별된 앵커 지점의 포지션, 위치, 및/또는 지향방향을 클라이언트 디바이스 및/또는 AMS 서버에 제공할 수 있다. 또 다른 예들에서, 재국소화 서비스는 앵커 지점에 대한 실세계 환경 내의 포지션을 제공할 수 있다. 예를 들면, 하기에 더 상세하게 설명될 바와 같이, 재국소화 서비스에 이미징 디바이스에 의해 캡쳐된 실세계 환경의 이미지가 제공될 때, 재국소화 서비스는 이미징 디바이스가 이미지를 캡쳐한 시간에 이미지를 캡쳐한 이미징 디바이스의 포지션을 식별할 수 있다.
클라이언트 디바이스(202)와 마찬가지로, AMS 서버(208)는 일반적으로, 컴퓨터 실행가능한 지시들을 판독하고/거나 실행할 수 있는 임의의 유형 또는 형태의 컴퓨팅 디바이스를 표현한다. 적어도 하나의 실시예에서, AMS 서버(208)는 클라이언트 디바이스(202) 및/또는 RLS 서버(206)로부터 하나 이상의 방향들을 수용할 수 있다. AMS 서버(208)의 예들은 제한 없이 서버들, 랩톱들, 태블릿들, 셀룰러 폰들(예컨대, 스마트폰들), 개인 휴대용 정보 단말기들(PDAs), 멀티미디어 플레이어들, 임베디드 시스템들, 착용가능한 디바이스들(예컨대, 스마트 시계들, 스마트 안경들, 등), 게이밍 콘솔들, 그들 중 하나 이상의 조합들, 또는 임의의 다른 적합한 모바일 컴퓨팅 디바이스를 포함한다.
적어도 하나의 예에서, AMS 서버(208)는 자산 관리 서비스를 제공할 수 있다. 일부 예들에서, "자산 관리 서비스"는 컴퓨팅 디바이스(예컨대, RLS 서버(206), 클라이언트 디바이스(202), 등)가 앵커 지점과 연관된 적합한 정보(예컨대, 앵커 지점 식별자(218))를 서비스에 제공할 때, 서비스가 하나 이상의 디지털 자산들을 식별할 수 있고/거나 하나 이상의 디지털 자산들을 클라이언트 디바이스에 제공할 수 있는 임의의 컴퓨터 제공 서비스를 포함할 수 있다. 일부 예들에서, "디지털 자산"(본 명세서에서의 일부 예들에서 "가상 객체"로서 또한 언급됨)은 제한 없이, 실세계 환경 내의 포지션과 연관될 수 있는 임의의 데이터, 정보, 지시, 모델, 객체, 및/또는 리소스를 포함할 수 있다.
예를 들면, 디지털 자산은 적합한 프런트 엔드 클라이언트 디바이스(예컨대, 클라이언트 디바이스(202))가 실세계 환경 내의 포지션에 대응하는 인공 환경 내의 포지션에서 제공(예컨대, 디스플레이)할 수 있는 2 또는 3차원 그래픽 객체 또는 모델(예컨대, 상기 언급된 바와 같이, 가상 꽃과 같음)을 포함할 수 있다. 부가적이거나 대안적인 예들에서, 디지털 자산은 적합한 프런트 엔드 클라이언트 디바이스(예컨대, 클라이언트 디바이스(202))가 실세계 환경 내의 포지션에 대응하는 인공 환경 내의 포지션에서 제공(예컨대, 재생)할 수 있는 오디오 리소스(예컨대, 디지털 오디오 파일)를 포함할 수 있다. 예를 들면, 사용자가 박물관을 관광할 때 AR 가이드 애플리케이션과 상호작용하기 위해 프런트 엔드 디바이스(예컨대, 클라이언트 디바이스(202))를 사용하고 있다고 가정한다. 디지털 자산은 예술 작품을 제작한 아티스트의 전기 상세들을 설명하는 오디오 파일을 포함할 수 있다. 사용자가 AR 가이드 애플리케이션을 통해 예술 작품을 뷰잉할 때, 프런트 엔드 디바이스는 오디오 파일을 제공(예컨대, 재생)할 수 있다.
또 다른 예로서, 디지털 자산은 프런트 엔드 클라이언트 디바이스(예컨대, 클라이언트 디바이스(202))로 하여금 프런트 엔드 디바이스의 실세계 포지션에 기초하여 하나 이상의 동작들을 수행하게 할 수 있는 지시를 포함할 수 있다. 설명을 위해, 사용자가 AR 물건 찾기 게임을 플레이하기 위해 프런트 엔드 클라이언트 디바이스(예컨대, 클라이언트 디바이스(202))를 사용하고 있다고 가정한다. 게임은 사용자가 건물 내에서 지정된 방을 찾도록 요구할 수 있다. 디지털 자산은 프런트 엔드 클라이언트 디바이스로 하여금 클라이언트 디바이스(202)가 지정된 방을 향하고 있을 때 인공 환경의 뷰를 적색으로 음영 처리하고 클라이언트 디바이스(202)가 지정된 방으로부터 멀리 향하고 있을 때 청색으로 음영 처리하게 할 수 있는 지시를 포함할 수 있다.
부가적으로, 일부 예들에서, 디지털 자산은 상기 설명된 바와 같이, 앵커 지점과 연관될 수 있다(예컨대, "부착"될 수 있다). 따라서, 클라이언트가 앵커 지점와 연관된 적합한 정보(예컨대, 앵커 지점 식별자(218))를 자산 관리 서비스에 제공할 때, 자산 관리 서비스는 앵커 지점과 연관된 하나 이상의 디지털 자산들을 식별하고/거나 클라이언트에게 제공할 수 있다.
적어도 하나의 예에서, 클라이언트 디바이스(202), RLS 서버(206), 및 AMS 서버(208)는 모듈들(102) 중 하나 이상으로 프로그래밍된 컴퓨팅 디바이스들일 수 있다. 모듈들(102)의 기능의 전부 또는 일부는 클라이언트 디바이스(202), RLS 서버(206), AMS 서버(208), 및/또는 임의의 다른 적합한 컴퓨팅 시스템에 의해 수행될 수 있다. 하기에 더 상세하게 설명될 바와 같이, 도 1의 모듈들(102) 중 하나 이상은 클라이언트 디바이스(202), RLS 서버(206), 및/또는 AMS 서버(208)의 적어도 하나의 프로세서에 의해 실행될 때, 클라이언트 디바이스(202), RLS 서버(206), 및/또는 AMS 서버(208)가 느슨하게 결합된 재국소화 서비스 및 자산 관리 서비스를 통해 인공 환경들 내에서 디지털 자산들을 제공하는 것을 가능하게 할 수 있다.
많은 다른 디바이스들 또는 서브시스템들은 도 1의 시스템(100) 및/또는 도 2의 시스템(200)에 연결될 수 있다. 반대로, 도 1 및 도 2에 도시된 모든 구성요소들 및 디바이스들은 본 명세서에서 설명되고/거나 도시된 실시예들을 실행하기 위해 제공될 필요가 없다. 상기 참조된 디바이스들 및 서브시스템들은 또한, 도 2에 도시된 것들과 상이한 방식들로 상호연결될 수 있다. 시스템들(100 및 200)은 또한, 임의의 수의 소프트웨어, 펌웨어, 및/또는 하드웨어 구성들을 이용할 수 있다. 예를 들면, 본 명세서에 개시된 예시적인 실시예들 중 하나 이상은 컴퓨터 판독가능한 매체에 컴퓨터 프로그램(컴퓨터 소프트웨어, 소프트웨어 애플리케이션들, 컴퓨터 판독가능한 지시들, 및/또는 컴퓨터 제어 로직으로서 또한 언급됨)으로서 인코딩될 수 있다.
도 3은 느슨하게 결합된 재국소화 서비스 및 자산 관리 서비스를 통해 인공 환경들 내에서 디지털 자산들을 제공하기 위한 일 예시적인 컴퓨터 구현 방법(300)의 흐름도이다. 도 3에 도시된 단계들은 도 1의 시스템(100), 도 2의 시스템(200), 및/또는 그들 중 하나 이상의 변형들 또는 조합들을 포함하는 임의의 적합한 컴퓨터 실행가능한 코드 및/또는 컴퓨팅 시스템에 의해 수행될 수 있다. 하나의 예에서, 도 3에 도시된 단계들의 각각은 구조가 다수의 서브 단계들을 포함하고/거나 그들에 의해 표현되는 알고리즘을 표현할 수 있으며, 그의 예들은 하기에 더 상세하게 제공될 것이다.
도 3에 도시된 바와 같이, 단계(310)에서, 본 명세서에서 설명된 시스템들 중 하나 이상은 실세계 환경 내의 클라이언트 디바이스를 통해, 실세계 환경을 나타내는 정보를 획득할 수 있다. 예를 들면, 획득 모듈(104)은 도 2의 클라이언트 디바이스(202), RLS 서버(206), 및/또는 AMS 서버(208)의 일부로서, 실세계 환경(210) 내의 클라이언트 디바이스(202)를 통해, 실세계 환경 정보(212)를 획득할 수 있다.
일부 예들에서, "실세계 환경을 나타내는 정보"는 특정한 실세계 환경의 하나 이상의 특성들과 연관될 수 있는 임의의 정보를 포함할 수 있다. 예를 들면, 하기에 더 상세하게 설명될 바와 같이, 실세계 환경을 나타내는 정보는 제한 없이, 클라이언트 디바이스에 포함된 이미징 디바이스에 의해 캡쳐된 실세계 환경의 적어도 일부의 이미지, 이미징 디바이스에 의해 이미지를 캡쳐할 때의 이미징 디바이스의 지향방향, 이미징 디바이스의 고유 파라미터, 이미지에 포함된 이미지 피처, 이미지에 포함된 이미지 피처에 기초한 피처 설명자, 이미징 디바이스와 연관된 지점에서의 원점을 갖는 피처 광선, 실세계 환경 내의 적어도 하나의 매핑된 포지션에 대한 클라이언트 디바이스의 이전에 결정된 포지션, 클라이언트 디바이스의 이전에 결정된 포지션과 연관된 신뢰 레벨, 클라이언트 디바이스와 연관된 GPS 좌표, 실세계 환경과 연관된 네트워크 식별자, 그들 중 하나 이상의 변형들 또는 조합들, 등을 포함할 수 있다.
획득 모듈(104)은 실세계 환경 내의 클라이언트 디바이스를 통해, 다양한 맥락들에서 실세계 환경을 나타내는 정보를 획득할 수 있다. 예를 들면, 획득 모듈(104)은 이미징 디바이스(228)를 통해, 실세계 환경의 적어도 일부의 이미지를 캡쳐함으로써 실세계 환경 정보(212)를 획득할 수 있다.
예시로서, 도 4는 실세계 환경(예컨대, 실세계 환경(210))의 조감도(400)를 포함한다. 도시된 바와 같이, 클라이언트 디바이스(202)에 포함된 이미징 디바이스(228)는 실세계 환경(210)을 향해 지향된다. 실세계 환경(210)은 다양한 실세계 환경 객체들(402)(즉, 실세계 환경 객체들(402-1 내지 402-6))을 포함한다. 예를 들면, 실세계 환경 객체(402-1)는 책상일 수 있고, 실세계 환경 객체(402-2)는 매달린 그림일 수 있고, 실세계 환경 객체(404-3)는 식물일 수 있으며, 실세계 환경 객체들(402-4 내지 402-7)은 각각 서쪽 벽, 남쪽 벽, 및 동쪽 벽일 수 있다. 이미징 디바이스(228)는 이미징 디바이스(228)가 캡쳐할 수 있는 실세계 환경(210)의 일부를 나타낼 수 있는 연관된 시야(404)를 가질 수 있다.
도 5는 도 4에 도시된 시나리오에서 이미징 디바이스(228)에 의해 캡쳐될 수 있는 실세계 환경(210)의 이미지(500)를 도시한다. 도시된 바와 같이, 이미지(500)는 실세계 환경 객체들(402)에 대응할 수 있는 다양한 이미지 요소들(502)(예컨대, 이미지 요소들(502-1 내지 502-6))을 포함한다. 예를 들면, 이미지 요소(502-1)는 실세계 세계 객체(402-1)에 대응할 수 있고, 이미지 요소(502-2)는 실세계 환경 객체(402-2)에 대응할 수 있고, 등이다. 일부 예들에서, 획득 모듈(104)은 이미징 디바이스(228)를 통해, 이미지(500)와 같은 실세계 환경(210)의 적어도 일부의 이미지를 캡쳐함으로써 실세계 환경 정보(212)를 획득할 수 있다. 적어도 하나의 예에서, 획득 모듈(104)은 실세계 환경 정보(212)의 적어도 일부로서 캡쳐된 이미지를 포함할 수 있다.
부가적으로, 획득 모듈(104)은 실세계 환경의 일부의 이미지를 캡쳐할 때의 이미징 디바이스의 지향방향을 검출함으로써 실세계 환경 정보(212)를 획득할 수 있다. 예를 들면, 획득 모듈(104)은 이미징 디바이스(228)가 실세계 환경(210)의 이미지(예컨대, 이미지(500))를 캡쳐하는 시간에 이미징 디바이스(228)의 지향방향을 검출할 수 있다(예컨대, 센서(230)를 통해). 획득 모듈(104)은 그 다음, 실세계 환경 정보(212)의 일부로서 검출된 지향방향을 포함할 수 있다.
일부 예들에서, 획득 모듈(104)은 클라이언트 디바이스(202)로 하여금 캡쳐된 이미지에 대해 하나 이상의 프로세스들을 수행하게 할 수 있고, 그 다음 캡쳐된 이미지 대신에 또는 이에 더하여 실세계 환경 정보(212)의 일부로서 이미지의 프로세싱의 결과를 포함할 수 있다. 예를 들면, 획득 모듈(104)은 클라이언트 디바이스(202), RLS 서버(206), 및/또는 AMS 서버(208)로 하여금 이미지에 대한 이미징 디바이스의 고유 파라미터의 효과를 감소시킴으로써 이미징 디바이스(228)에 의해 캡쳐된 이미지를 조정하게 함으로써 실세계 환경 정보(212)를 획득할 수 있다. 이미지에 대한 하나 이상의 고유 파라미터들의 효과를 감소시키고/거나 제거하는 것은 이미지로부터의 하나 이상의 형태들의 왜곡(예컨대, 렌즈 왜곡)을 감소시키고/거나 제거할 수 있다.
일부 예들에서, "고유 파라미터" 및/또는 "이미징 디바이스의 고유 파라미터"는 제한 없이, 물리적 특성들, 광학적 특성들, 기하학적 특성들, 및/또는 디지털 특성들을 포함하는 이미징 디바이스(예컨대, 이미징 디바이스(228))의 특성을 설명할 수 있는 임의의 값을 포함할 수 있다. 고유 파라미터들의 예들은 제한 없이, 이미징 디바이스의 초점 길이, 이미징 디바이스의 주요 지점, 이미징 디바이스의 스큐 계수, 이미징 디바이스의 렌즈에 의해 도입된 기하학적 왜곡, 등을 포함할 수 있다.
일부 예들에서, 획득 모듈(104)은 교정 프로세스(예컨대, 기하학적 카메라 교정 프로세스)를 통해 이미징 디바이스와 연관된 하나 이상의 고유 파라미터들을 결정하고/거나 추정할 수 있다. 부가적인 예들에서, 획득 모듈(104)은 이미징 디바이스의 하나 이상의 미리 결정된 고유 파라미터들을 나타내는 데이터에 액세스할 수 있고/거나, 이미징 디바이스의 하나 이상의 고유 파라미터들(예컨대, 이미징 디바이스의 초점 길이)을 추정할 수 있다.
부가적인 예들에서, 획득 모듈(104)은 이미지에 포함된 적어도 하나의 이미지 피처를 검출하고, 이미지에 포함된 이미지 피처에 기초하여 피처 설명자를 생성함으로써 실세계 환경 정보(212)를 더 획득할 수 있다. 일부 예들에서, "이미지 피처", "핵심지점", "핵심 위치", 및/또는 "관심 지점"은 컴퓨터 비전 및/또는 재국소화 프로세스와 관련될 수 있고/거나, 적어도 하나의 피처 검출 알고리즘에 의해 이미지 피처로서 식별될 수 있는 정보를 포함하는 이미지의 임의의 식별가능한 부분을 포함할 수 있다. 일부 예들에서, 이미지 피처는 지점들, 에지들, 라인들, 접합부들, 또는 객체들과 같은, 이미지에 포함된 픽셀 데이터에 포함되고/거나 이에 기초하여 식별된 특정 구조들을 포함할 수 있다. 부가적으로 또는 대안적으로, 이미지 피처는 이미지의 영역(예컨대, "블롭(blob)"), 이러한 영역들 사이의 경계의 속성들의 측면에서 설명될 수 있고/거나, 이미지에 적용된 피처 검출 알고리즘의 결과를 포함할 수 있다.
피처 검출 알고리즘들의 예들은 제한 없이, 해리스 코너 검출(Harris corner detection), FAST(Features From Accelerated Segment Test), 가우시안-라플라시안(Laplacian of Gaussian), 가우시안들의 차(Difference of Gaussians), 헤시안의 행렬식(Determinant of Hessian), MSER(Maximally Stable Extremal Regions), PCBR(Principal Curvature-Based Region Detector), GLOH(Gradient Location and Orientation Histogram), 세기 기반 검출기들, 구조 기반 검출기들, 그들 중 하나 이상의 변형들 또는 조합들, 등을 포함할 수 있다.
예시로서, 도 6은 도 5의 이미지(500)와 유사하지만, 이미지 피처 표시기들(602)에 의해 표시된 다양한 검출된 이미지 피처들을 갖는 이미지(600)를 도시한다.
일부 예들에서, "피처 설명자"는 이미지 피처의 하나 이상의 속성들을 설명하는 임의의 정보를 포함할 수 있다. 예를 들면, 피처 설명자는 검출된 이미지 피처를 포함할 수 있는 이미지에 포함된 픽셀들의 영역 또는 픽셀의 2차원 좌표들을 포함할 수 있다. 부가적으로 또는 대안적으로, 피처 설명자는 이미지 피처 및/또는 이미지 피처를 둘러싸는 이미지의 구역에 적용된 피처 설명 알고리즘의 결과를 포함할 수 있다. 일례로서, SURF(Speed Up Robust Feature) 피처 설명자는 식별된 관심 지점의 "이웃" 내의 픽셀들의 세기 분포의 평가에 기초하여 생성될 수 있다.
많은 피처 검출 알고리즘들은 또한, 피처 설명 알고리즘들을 포함할 수 있고/거나 그들과 연관될 수 있다. 예를 들면, 스케일 불변 피처 변환(Scale Invariant Feature Transform; SIFT) 알고리즘은 가우시안 차 피처 검출 알고리즘에 기초한 피처 검출 알고리즘 뿐만 아니라, 일반적으로 검출된 이미지 피처를 둘러싸는 16×16 이웃을 추출하고, 이웃을 4×4 서브 블록들로 세분화하며, 서브 블록들에 기초하여 히스토그램들을 생성하여, 128개의 값들을 갖는 피처 설명자를 야기하는 "핵심지점 설명자" 피처 설명 알고리즘 둘 모두를 포함한다. 또 다른 예로서, 지향된 FAST 및 회전된 BRIEF(ORB) 알고리즘은 이미지 피처들을 검출하기 위해 FAST 코너 검출 알고리즘의 변형을 사용하고, 수정된 버전의 BRIEF(Binary Robust Independent Elementary Features) 피처 설명 알고리즘에 기초하여 피처 설명자들을 생성한다. 피처 검출 알고리즘들 및/또는 피처 설명 알고리즘들의 부가적인 예들은 제한 없이, SURF(Speed Up Robust Feature), KAZE, 가속화된 KAZE(AKAZE), BRISK(Binary Robust Invariant Scalable Keypoints), GLOH(Gradient Location and Orientation Histogram), HOG(histogram of oriented gradients), MOTS(Multiscale Oriented Patches descriptor), 그들 중 하나 이상의 변형들 또는 조합들, 등을 포함할 수 있다.
획득 모듈(104)은 이미지에 포함된 적어도 하나의 이미지 피처를 검출할 수 있고 적합한 피처 검출 알고리즘 및/또는 적합한 피처 설명 알고리즘을 이미지에 적용하는 것과 같은 임의의 적합한 방식으로 이미지에 포함된 이미지 피처에 기초하여 피처 설명자를 생성할 수 있다. 예를 들면, 획득 모듈(104)은 이미지에 포함된 적어도 하나의 이미지 피처를 검출할 수 있고, ORB 피처 검출 및 피처 설명 알고리즘을 이미지에 적용함으로써 검출된 이미지 피처에 기초하여 하나 이상의 피처 설명자들을 생성할 수 있다. 이것은 캡쳐된 이미지에 포함된 피처를 설명할 수 있는 적어도 하나의 피처 설명자를 야기할 수 있다. 획득 모듈(104)은 그 다음, 실세계 환경 정보(212)의 적어도 일부로서 피처 설명자를 포함할 수 있다.
부가적인 실시예들에서, 획득 모듈(104)은 이미지 피처 및 이미지를 캡쳐할 때의 이미징 디바이스의 지향방향에 기초하여, 이미징 디바이스와 연관된 지점에서의 원점을 포함하고 피처 광선으로 하여금 이미지 피처와 교차하게 하는 방향을 갖는 피처 광선을 식별함으로써 실세계 환경 정보(212)를 더 획득할 수 있다.
획득 모듈(104)은 임의의 적합한 방식으로 피처 광선을 식별할 수 있다. 예를 들면, 획득 모듈(104)은 상기 설명된 방식들 중 임의의 것으로 이미지로부터 이미징 디바이스(228)의 하나 이상의 고유 파라미터들의 효과를 제거할 수 있다. 획득 모듈(104)은 그 다음, 원점으로서 이미징 디바이스의 렌즈 및 원점으로부터 카메라의 초점 길이의 거리에 배치되고 이미지가 캡쳐되었을 때 이미징 디바이스의 검출된 지향방향에 따라 지향된 이미지 평면으로서 이미지를 갖는 "핀홀 카메라" 수학적 모델을 확립할 수 있다. 획득 모듈(104)은 이미징 디바이스(예컨대, 이미징 디바이스의 렌즈)와 연관된 포지션에서의 원점 및 광선으로 하여금 이 수학적 모델을 통해 이미지에 포함된 검출된 이미지 피처를 교차시키고/거나 이를 통과하게 하는 방향을 갖는 광선을 식별할 수 있다. 획득 모듈(104)은 그 다음, 실세계 환경 정보(212)의 일부로서 피처 광선을 포함할 수 있다.
캡쳐된 이미지 대신에 실세계 환경 정보(212)의 일부로서 피처 설명자들 및/또는 피처 광선들을 포함함으로써 여러 이득들이 실현될 수 있다. 예를 들면, 이것은 대역폭 리소스들을 보존할 수 있는데, 이는 피처 설명자들 및/또는 피처 광선들이 원시 이미지들보다 클라이언트 디바이스(예컨대, 클라이언트 디바이스(202))로부터 재국소화 서비스(예컨대, RLS 서버(206))로 송신하는데 더 적은 대역폭을 요구할 수 있기 때문이다. 부가적으로, 클라이언트 디바이스(예컨대, 클라이언트 디바이스(202))에 피처 설명자들을 생성하고/거나 피처 광선들을 식별하도록 지시하는 것은 클라이언트 디바이스의 컴퓨팅 리소스들을 효율적으로 활용할 수 있고 재국소화 서비스(예컨대, RLS 서버(206))의 컴퓨팅 리소스들을 보존할 수 있다. 또한, 캡쳐된 이미지 대신에 피처 설명자들 및/또는 피처 광선들을 송신하는 것은 이미지로부터 임의의 민감하고/거나 개인 정보를 효과적으로 제거할 수 있고, 그에 의해 송신된 데이터를 익명화하고 사용자 프라이버시를 보호한다.
일부 실시예들에서, 획득 모듈(104)은 실세계 환경 정보(212)의 일부로서 센서(230)를 통해 수집, 검출, 인지되고/거나, 이와 연관된 정보를 포함할 수 있다. 예를 들면, 상기 언급된 바와 같이, 센서(230)는 실세계 환경과 연관된 정보(예컨대, 실세계 환경 정보(212))를 수집(예컨대, 관찰, 뷰잉, 수신, 포지션 찾기, 식별, 저장, 등)할 수 있는 임의의 적합한 센서를 포함할 수 있다. 획득 모듈(104)은 실세계 환경 정보(212)의 일부로서 이 정보의 임의의 조합을 포함할 수 있다.
또한, 클라이언트 디바이스가 본 명세서에서 설명된 시스템들 및 방법들 중 하나 이상을 통해 이전에 재국소화되었을 때와 같은 일부 예들에서, 획득 모듈(104)은 실세계 환경 정보(212)의 일부로서, 실세계 환경 내의 적어도 하나의 매핑된 포지션에 대한 클라이언트 디바이스의 이전에 결정된 포지션을 더 포함할 수 있다. 예를 들면, 획득 모듈(104)은 실세계 환경 정보(212)의 일부로서, 이전 앵커 지점과 연관된 식별자 및 이전 앵커 지점의 매핑된 포지션과 클라이언트 디바이스(202)의 이전에 결정된 포지션 사이의 상대적 이동을 포함할 수 있다. 또한, 일부 예들에서, 획득 모듈(104)은 부가적으로 또는 대안적으로, 클라이언트 디바이스(202)의 이전에 결정된 포지션과 연관된 신뢰 레벨을 포함할 수 있다. 예를 들면, 이전 재국소화의 결과로서, 클라이언트 디바이스(202)가 이전 앵커 지점 식별자, 이전 앵커 지점의 매핑된 위치와 클라이언트 디바이스(202)의 이전 포지션 사이의 이전 상대적 이동, 및 92%의 신뢰 레벨을 수신했다고 가정한다. 획득 모듈(104)은 실세계 환경 정보(212)의 적어도 일부로서 이 정보를 포함할 수 있고, 재국소화 서비스는 현재 및/또는 후속 재국소화 프로세스에서 이 정보를 활용할 수 있다.
도 3으로 되돌아가면, 단계(320)에서, 본 명세서에서 설명된 시스템들 중 하나 이상은 실세계 환경을 나타내는 정보를 재국소화 서비스로 송신할 수 있다. 예를 들면, 송신 모듈(106)은 도 2의 클라이언트 디바이스(202), RLS 서버(206), 또는 자산 관리 서비스 서버(208)의 일부로서, 실세계 환경 정보(212)를 재국소화 서버(206)로 송신할 수 있다.
송신 모듈(106)은 클라이언트 디바이스(202), RLS 서버(206), 또는 자산 관리 서비스 서버(208)로 하여금 임의의 적합한 방식으로 실세계 환경 정보(212)를 재국소화 서버(206)로 송신하게 할 수 있다. 예를 들면, 상기 설명된 바와 같이, 모듈들(102) 중 적어도 하나(예컨대, 획득 모듈(104))는 클라이언트 디바이스(202)로 하여금 이미징 디바이스(228) 및/또는 센서(230)를 통해 실세계 환경 정보(212)를 획득하게 할 수 있다. 송신 모듈(106)은 그 다음, 클라이언트 디바이스(202)로 하여금 네트워크(204)를 통해(예컨대, 네트워크(204)를 구현하는 임의의 적합한 통신 매체 및/또는 프로토콜을 통해) 실세계 환경 정보(212)를 RLS 서버(206)로 송신하게 할 수 있다.
일부 실시예들에서, RLS 서버(206)가 실세계 환경 정보(212)를 수신할 때, 본 명세서에서 설명된 시스템들 중 하나 이상은 실세계 환경(210) 내에서 클라이언트 디바이스(202)를 재국소화하기 위해 하나 이상의 동작들을 수행할 수 있다. 예를 들면, 적어도 하나의 실시예에서, 포지셔닝 모듈(116)은 도 2의 클라이언트 디바이스(202), RLS 서버(206), 및/또는 자산 관리 서비스 서버(208)의 일부로서, 실세계 환경 정보(212)의 일부(예컨대, GPS 좌표, 네트워크 식별자, 등)에 기초하여 클라이언트 디바이스(202)의 대략적인 포지션을 결정하고, 대략적인 포지션 및 실세계 환경 정보(212)의 부가적인 부분(예컨대, 캡쳐된 이미지, 캡쳐된 이미지를 캡쳐할 때의 이미징 디바이스의 지향방향, 이미지 피처, 피처 설명자, 피처 광선, 등)에 기초하여 클라이언트 디바이스(202)의 미세한 포지션을 식별할 수 있으며, 클라이언트 디바이스의 미세한 포지션에 기초하여 앵커 지점을 선택할 수 있다.
일부 예들에서, "대략적인 포지션"는 실세계 환경의 영역을 포함, 설명할 수 있고/거나, 이와 연관될 수 있는 임의의 정보를 포함할 수 있다. 예를 들면, 클라이언트 디바이스(예컨대, 클라이언트 디바이스(202))의 대략적인 포지션은 제한 없이, GPS 좌표를 둘러싸는 실세계 환경의 영역(예컨대, GPS 좌표의 미리 정의된 거리 내의 실세계 환경의 영역), 클라이언트 디바이스가 네트워크 식별자에 액세스하고/거나 이를 관찰할 수 있는 실세계 환경의 영역, 클라이언트 디바이스가 현재 근처에 있거나 내에 있는 실세계 환경의 영역과 연관될 수 있고/거나 이와 대응할 수 있는 미리 정의된 맵의 일부, 등을 포함할 수 있다.
예시로서, 도 7은 실세계 환경의 맵(700)를 도시한다. 맵(700)은 예비 컴퓨터 비전 및/또는 동시 국소화 및 매핑(SLAM) 프로세스와 같은 임의의 적합한 방식으로 생성되고/거나 미리 생성될 수 있다. 도시된 바와 같이, 맵(700)는 본 명세서에서 재국소화 개체들(702)(예컨대, 재국소화 개체들(702-1 내지 702-4))로서 언급된 다양한 미리 정의된 영역들을 포함한다. "재국소화 개체"는 클라이언트 디바이스(예컨대, 클라이언트 디바이스(202))가 맵(700)에 의해 표현된 실세계 환경의 구역 또는 영역 내의 포지션으로 재국소화하는 것을 가능하게 하기 위해 충분한 정보를 포함하는 맵(700)의 임의의 부분을 포함할 수 있다.
일부 예들에서, 도 7에 더 도시된 바와 같이, 재국소화 개체들은 재국소화 개체가 부가적인 재국소화 개체에 또한 대응하고/거나 이와 연관되는 실세계 환경의 적어도 일부에 대응할 수 있고/거나 이와 연관될 수 있다는 점에서 서로 "중첩"할 수 있다. 예를 들면, 도 7에 도시된 바와 같이, 재국소화 개체(702-3)는 재국소화 개체(702-1)와 부분적으로 중첩하고, 이는 재국소화 개체(702-1) 및 재국소화 개체(702-3)가 둘 모두 실세계 환경(즉, 재국소화 개체(702-3)가 재국소화 개체(702-1) 중첩과 중첩하는 맵(700)의 일부에 의해 표현된 실세계 환경의 영역)의 동일한 부분과 적어도 부분적으로 연관되고/거나 이에 대응한다는 것을 나타낼 수 있다.
도 7에 더 도시된 바와 같이, 맵(700)은 실세계 환경 내에서 매핑된 포지션들 및/또는 포즈들을 표현할 수 있는 하나 이상의 앵커 지점들(704)(예컨대, 앵커 지점들(704-1 내지 704-10))을 포함할 수 있다. 각각의 앵커 지점(704)은 하나 이상의 재국소화 개체들(702)에 포함될 수 있다. 또한, 재국소화 개체들(702)이 서로 중첩할 수 있으므로, 각각의 앵커 지점(704)은 하나 이상의 재국소화 개체(702)에 포함될 수 있다. 예를 들면, 앵커 지점(704-1)은 재국소화 개체(702-1)에 포함될 수 있는 반면에, 앵커 지점(704-3)은 재국소화 개체(702-1 및 702-3) 둘 모두에 포함될 수 있다.
부가적으로, 앵커 지점들(704)을 연결하는 점선들(예컨대, 앵커 지점(704-1) 및 앵커 지점(704-2)을 연결하는 점선, 앵커 지점(704-1) 및 앵커 지점(704-5)을 연결하는 점선, 등)에 의해 언급된 바와 같이, 앵커 지점들(704)은 연결된 그래프로서 표현되고/거나 저장될 수 있다(예컨대, 국소화 데이터(142)의 일부로서 데이터 저장장치(140) 내에). 일부 예들에서, 앵커 지점들 사이의 연결들은 앵커 지점들 사이의 상대적 변환들을 표현하고, 그들로서 표현될 수 있고/거나, 그들로서 저장될 수 있다. 그래프를 가로지름으로써, 모듈들(102) 중 하나 이상(예컨대, 포지셔닝 모듈(116))은 연결된 앵커 지점들 사이(예컨대, 앵커 지점(704-1)과 앵커 지점 사이)의 상대적 변환을 결정할 수 있다. 일부 예들에서, 맵(예컨대, 맵(700) 및/또는 맵의 특정한 부분(예컨대, 재국소화 개체(702)) 내에 포함된 앵커 지점들의 상대적인 포즈들은 클라이언트 디바이스가 제 1 앵커 지점을 참조하여 재국소화하고 제 2 클라이언트 디바이스가 제 2 앵커 지점을 참조하여 재국소화는 경우, 클라이언트 디바이스들 둘 모두가 동일한 기준 프레임으로 재국소화될 수 있도록 일관될 수 있다. 이 일관성은 하기에 더 상세하게 설명될 바와 같이, 앵커 지점들 사이의 상대적 변환들을 미리 결정하고/거나 그들을 캐시하는 능력과 같은 이득들을 제공할 수 있다.
도 700은 또한, 가상 객체들(706)(예컨대, 가상 객체(706-1 내지 706-3))을 포함한다. 가상 객체들(706)의 각각과 앵커 지점들(704) 중 적어도 하나 사이의 점선 화살표들(예컨대, 앵커 지점(704-2)으로부터 가상 객체(706-1)까지의 화살표)로 도시된 바와 같이, 하나 이상의 가상 객체들은 하나 이상의 앵커 지점들에 부착될 수 있다(예컨대, 하나 이상의 앵커 지점들의 매핑된 포지션에 대한 가상 환경 내에 배치될 수 있음). 예를 들면, 가상 객체(706-1)는 앵커 지점들(704-2, 704-4, 및 704-6)에 부착될 수 있다. 따라서, 가상 객체(706-1)는 앵커 지점들(704-2, 704-4, 및/또는 704-6) 중 하나 이상을 참조하여 인공 환경 내에서 식별되고/거나 배치될 수 있다. 일부 예들에서, 이들 "부착물들"은 앵커 지점들의 매핑된 포지션들과 앵커 지점들에 부착된 가상 객체들의 포지션들 사이의 상대적인 변환들의 측면에서 표현될 수 있다. 단순화된 예로서, 가상 객체(704-7)의 포지션은 "앵커 지점(706-2)의 우측으로 2 미터"(맵(700)의 기준 프레임 내의)로서 표현될 수 있다
포지셔닝 모듈(116)은 임의의 적합한 방식으로 클라이언트 디바이스(202)의 대략적인 포지션을 결정할 수 있다. 예를 들면, 상기 설명된 바와 같이, 실세계 환경 정보(212)는 GPS 좌표, 네트워크 식별자(예컨대, 네트워크 이름, 서비스 세트 식별자(SSID), 셀룰러 및/또는 모바일 네트워크 식별자, 등), 등과 같은 클라이언트 디바이스(202)의 포지션과 연관된 임의의 적합한 대략적인 포지션 정보를 포함할 수 있다. 포지셔닝 모듈(116)은 클라이언트 디바이스(202)의 실세계 포지션에 대응할 수 있고/거나 이와 연관될 수 있는 맵(700)의 하나 이상의 부분들(예컨대, 맵(700) 내의 하나 이상의 재국소화 개체들(702))을 식별하기 위해 이 정보를 사용할 수 있다. 따라서, 적어도 일부 실시예들에서, 모듈들(102) 중 하나 이상(예컨대, 포지셔닝 모듈(116))은 클라이언트 디바이스(202)의 실세계 포지션과 연관되고/거나 이에 대응하는 하나 이상의 재국소화 개체들을 식별함으로써 클라이언트 디바이스(202)의 대략적인 포지션을 결정할 수 있다.
예를 들면, 실세계 환경 정보(212)는 맵(700)에 포함된 매핑된 포지션 및/또는 영역에 대응할 수 있고/거나 이와 연관될 수 있는 식별자("BuildingA3rdFloorWiFi")를 갖는 SSID를 포함할 수 있다. 포지셔닝 모듈(116)은 실세계 환경 정보(212)에 액세스하고, 포함된 SSID를 식별하며, 클라이언트 디바이스(예컨대, 클라이언트 디바이스(202))가 포함된 SSID를 관찰할 수 있는 실세계 환경(210)의 영역과 연관될 수 있고/거나 이에 대응할 수 있는 맵(700)의 하나 이상의 부분들(예컨대, 맵(700) 내의 하나 이상의 재국소화 개체들(702))을 식별하고/거나 그들에 액세스할 수 있다.
부가적인 예로서, 실세계 환경 정보(212)가 또한 GPS 좌표를 포함한다고 가정한다. 포지셔닝 모듈(116)은 실세계 환경 정보(212)에 액세스하고, 포함된 GPS 좌표를 식별할 수 있으며, (1) 클라이언트 디바이스가 포함된 SSID를 관찰할 수 있고, (2) 클라이언트 디바이스가 포함된 GPS 좌표를 결정(예컨대, 수신 및/또는 삼각 측량)할 수 있는 실세계 환경(210)의 영역과 연관될 수 있고/거나 이에 대응할 수 있는 맵(700)의 하나 이상의 부분들(예컨대, 하나 이상의 재국소화 개체들(702))을 식별하고/거나 그들에 액세스할 수 있다.
상기 예로 계속하면, 실세계 환경 정보(212)에 포함된 SSID 및 GPS 좌표에 기초하여, 포지셔닝 모듈(116)은 클라이언트 디바이스(202)가 도 7의 표시기(708)에 의해 표현된 실세계 환경(210)의 영역 내에 있다고 결정할 수 있다. 따라서, 포지셔닝 모듈(116)은 클라이언트 디바이스가 재국소화 개체(702-1) 및 재국소화 개체(702-3)에 대응하는 실세계 환경(210)의 영역 내에 있다고 결정함으로써 클라이언트 디바이스(202)의 대략적인 포지션을 식별할 수 있다.
부가적으로, 일부 예들에서, 포지셔닝 모듈(116)은 대략적인 포지션 및 실세계 환경을 나타내는 정보의 부가적인 부분에 기초하여 클라이언트 디바이스의 미세한 포지션을 식별할 수 있다. 예를 들면, 포지셔닝 모듈(116)은 대략적인 포지션 및 실세계 환경 정보(212)의 적어도 일부에 기초하여 클라이언트 디바이스(202)의 미세한 포지션을 식별할 수 있다. 일부 예들에서, 클라이언트 디바이스의 "미세한 포지션"은 실세계 환경 내의 클라이언트 디바이스의 재국소화된 포지션 및/또는 포즈를 포함할 수 있고/거나 이에 대응할 수 있다.
포지셔닝 모듈(116)은 다양한 맥락들에서 클라이언트 디바이스(202)의 미세한 포지션을 식별할 수 있다. 예를 들면, 상기 언급된 바와 같이, 실세계 환경 정보(212)는 다양한 이미지 정보(예컨대, 캡쳐된 이미지, 하나 이상의 이미지 피처들, 하나 이상의 피처 설명자들, 하나 이상의 피처 광선들, 등)를 포함할 수 있다. 포지셔닝 모듈(116)은 하나 이상의 컴퓨터 비전 및/또는 SLAM 기술들을 통해 클라이언트 디바이스(202)의 미세한 포지션을 식별하기 위해 이 이미지 정보를 사용할 수 있다.
예를 들면, 상기 언급된 바와 같이, 맵(700)은 컴퓨터 비전 및/또는 SLAM 매핑 프로세스에 따라 미리 생성될 수 있다. 이와 같이, 도 7에 도시된 요소들에 더하여, 맵(700)은 하나 이상의 이미지 피처들(예컨대, 하나 이상의 피처 설명자들, 하나 이상의 피처 광선들, 등)과 연관된 정보를 포함할 수 있다. 따라서, 포지셔닝 모듈(116)은 앵커 지점과 연관될 수 있는 하나 이상의 이미지 피처들을 실세계 환경 정보(212)에 포함될 수 있는 하나 이상의 이미지 피처들, 피처 설명자들, 및/또는 피처 광선들과 상관시키고/거나 매칭함으로써 앵커 지점을 식별할 수 있다.
부가적으로 또는 대안적으로, 실세계 환경 정보(212)가 이미지(예컨대, 이미징 디바이스(228)를 통해 캡쳐된 이미지)를 포함하는 실시예들에서, 포지셔닝 모듈(116)은 본 명세서에서 설명된 방식들 중 임의의 것을 포함하는 임의의 적합한 방식으로 이미지에 포함된 이미지 피처들을 식별하고/거나 식별된 피처들과 연관된 피처 설명자들을 생성할 수 있다. 포지셔닝 모듈(116)은 그 다음, 본 명세서에서 설명된 방식들 중 임의의 것으로 클라이언트 디바이스의 미세한 포지션을 식별하기 위해 이 정보를 사용할 수 있다.
도 7에 도시된 예로 돌아가면, 포지셔닝 모듈(116)은 클라이언트 디바이스(예컨대, 클라이언트 디바이스(202))가 도 7에서 표시기(708)에 의해 표현된 실세계 환경(210)의 영역 내에 배치된다고 결정할 수 있고 따라서, 실세계 환경 정보(212)에 포함되고/거나 이로부터 얻어진 하나 이상의 이미지 피처들, 피처 설명자들, 및/또는 피처 광선들을 재국소화 개체(702-1) 및/또는 재국소화 개체(702-3)에 포함된 하나 이상의 앵커 지점들과 연관된 하나 이상의 이미지 피처 설명자들, 및/또는 피처 광선들과 상관시키고/거나 매칭함으로써 앵커 지점을 식별하려고 시도할 수 있다.
일부 예들에서, 포지셔닝 모듈(116)이 클라이언트 디바이스(202)의 대략적인 포지션이 하나 이상의 재국소화 개체들(예컨대, 재국소화 개체(702-1) 및/또는 재국소화 개체(702-3))을 포함한다고 이미 결정했을 수 있으므로, 포지셔닝 모듈(116)은 검색 공간으로부터 다른 재국소화 개체들(예컨대, 재국소화 개체들(702-2 및 702-4)에 포함된 앵커 지점들) 내에 배치된 앵커 지점들을 제외할 수 있다. 대략적인 포지션 외부(예컨대, 재국소화 개체(702-1) 및 재국소화 개체(702-3) 외부)의 앵커 지점들을 제외하는 것은 포지셔닝 모듈(116)이 맵(700)에 포함된 하나 이상의 앵커 지점들을 식별할 때 저장, 액세스, 프로세싱, 및/또는 검색할 필요가 있을 수 있는 데이터의 범위 및/또는 양을 제한할 수 있으며, 이는 재국소화의 속도 및/또는 효율성을 개선할 수 있다.
일부 예들에서, 포지셔닝 모듈(116)은 하나 이상의 재국소화 개체들 내의 하나의 앵커 지점만을 식별할 수 있다. 부가적인 예들에서, 포지셔닝 모듈(116)은 하나 이상의 재국소화 개체들 내에서 하나보다 많은 앵커 지점을 식별할 수 있다. 임의의 경우에, 포지셔닝 모듈(116)은 식별된 앵커 지점들 중 적어도 하나를 선택할 수 있고 선택된 앵커 지점의 매핑된 포지션에 대한 클라이언트 디바이스의 실세계 환경 내의 포지션을 결정할 수 있다. 예를 들면, 포지셔닝 모듈(116)은 본 명세서에서 설명된 것들(예컨대, 컴퓨터 비전 포지셔닝 기술, SLAM 포지셔닝 기술, 관성 내비게이션 포지셔닝 기술, 등)과 같은 임의의 적합한 포지셔닝 기술 또는 포지셔닝 기술들의 조합을 통해, 실세계 환경 정보(212)가 실세계 환경(210) 내에서 클라이언트 디바이스(202)의 위치, 지향방향, 포지션 및/또는 포즈를 나타낸다고 결정할 수 있다. 포지셔닝 모듈(116)은 그 다음, 선택된 앵커 지점의 위치, 지향방향, 포지션 및/또는 포즈를 클라이언트 디바이스(202)의 결정된 위치, 지향방향, 포지션 및/또는 포즈와 비교하고, 선택한 앵커 지점의 매핑된 포지션에 대해 실세계 환경(210) 내에서 클라이언트 디바이스(202)를 재국소화할 수 있는 클라이언트 디바이스(202)의 현재 포즈 및 선택된 앵커의 포지션에 기초하여 상대적 변환을 결정할 수 있다.
포지셔닝 모듈(116)은 그 다음, 선택된 앵커 지점과 연관된 정보(예컨대, 앵커 지점 정보(214)) 및 결정된 상대적 변환(예컨대, 클라이언트 디바이스 포지션(220))를 클라이언트 디바이스(202)로 송신할 수 있다(예컨대, 네트워크(204)를 통해 RLS 서버(206)로부터).
도 8은 재국소화 서비스가 클라이언트 디바이스의 대략적인 포지션을 결정할 수 있고, 대략적인 포지션에 기초하여 클라이언트 디바이스의 미세한 포지션을 식별할 수 있으며, 클라이언트 디바이스의 미세한 포지션에 기초하여 앵커 지점을 선택할 수 있는 하나의 가능한 방법에 대한 흐름도이다. 도시된 바와 같이, 재국소화 질의(802)에서, 실세계 환경과 연관된 정보(예컨대, 실세계 환경 정보(212))가 재국소화 서비스(804)에 제공된다(예컨대, 클라이언트 디바이스(202)와 같은 클라이언트 디바이스에 의해 재국소화 서비스로 송신됨). 대략적인 맵 질의(806)에서, 포지션 메타데이터(예컨대, GPS 좌표, 네트워크 식별자, 등)는 재국소화 질의(802)로부터 추출되고 대략적인 맵 검색기(808)로 전송된다. 대략적인 맵 검색기(808)는 다수의 재국소화 개체들을 식별하고 그들을 K개의 가장 가까운 재국소화 개체들(810)(도 8에서 "K개의 가장 가까운 RelocEnts(810)")로서 재국소화 서비스(804)에 제공한다.
각각의 식별된 재국소화 개체에 대해, 재국소화 서비스(804)는 재국소화 질의(812)(도 8에서 "재국소화 질의"(812-1 내지 812-K))를 식별된 재국소화 개체에 대해 미세한 매칭(예컨대, 이미지 피처 매칭) 및 재국소화를 수행하는 대응하는 재국소화기 프로세스(814)(예컨대, 도 8의 재국소화기(814-1 내지 814-K))에 제출한다. 일부 예들에서, 재국소화기들(814)은 병행하여 동작할 수 있다. 부가적인 예들에서, 재국소화기들(814)은 임의의 재국소화 개체로의 재국소화 후에 조기 종료를 통해 우선순위로 동작할 수 있다.
재국소화기들(814)은 재국소화기 응답들(816)(예컨대, 도 8의 "재국소화기 응답"(816-1 내지 816-K))을 재국소화 응답 수집기(818)로 전송할 수 있으며, 이는 재국소화기 응답들(816)을 수집할 수 있고, 수집된 재국소화 응답(820)을 재국소화 서비스(804)로 전송할 수 있다. 재국소화 서비스(804)는 그 다음, 재국소화 응답(822)으로서 수집된 재국소화 응답(820)을 재패키징할 수 있고 재국소화 응답(822)을 클라이언트 디바이스(예컨대, 클라이언트 디바이스(202))로 전송할 수 있다.
도 3으로 돌아가면, 단계(330)에서, 본 명세서에서 설명된 시스템들 중 하나 이상은 실세계 환경을 나타내는 정보에 응답하여 재국소화 서비스로부터, (1) 실세계 환경 내의 매핑된 위치를 포함할 수 있는 앵커 지점과 연관된 정보, 및 (2) 앵커 지점의 매핑된 위치에 대한 클라이언트 디바이스의 실세계 환경 내의 결정된 위치를 수신할 수 있다. 예를 들면, 수신 모듈(108)은 도 2의 클라이언트 디바이스(202), RLS 서버(206), 및/또는 자산 관리 서비스 서버(208)의 일부로서, 실세계 환경 정보(212)에 응답하여 RLS 서버(206)로부터, (1) 앵커 지점 포지션(216)를 포함할 수 있는 앵커 지점 정보(214), 및 (2) 클라이언트 디바이스 포지션(220)를 수신할 수 있다.
수신 모듈(108)은 다양한 맥락들에서 앵커 지점 정보(214) 및 클라이언트 디바이스 포지션(220)를 수신할 수 있다. 예를 들면, 상기 설명된 바와 같이, 모듈들(102) 중 하나 이상(예컨대, 포지셔닝 모듈(116))은 RLS 서버(206)의 일부로서, 앵커 지점을 선택할 수 있고 앵커 지점(예컨대, 클라이언트 디바이스 포지션(220))에 대한 클라이언트 디바이스(202)의 실세계 환경(210) 내의 위치를 결정할 수 있다. 재국소화 서비스(예컨대, RLS 서버(206))는 그 다음, 앵커 지점 정보(214)로서, 선택된 앵커 지점과 연관된 정보, 및 클라이언트 디바이스 포지션(220)로서, 선택된 앵커 지점에 대한 클라이언트 디바이스(202)의 실세계 환경(210) 내의 결정된 위치를 네트워크(204)를 통해 클라이언트 디바이스(202)로 송신할 수 있다. 수신 모듈(108)은 그 다음, 네트워크(204)를 가능하게 하는 적합한 통신 프로토콜 및/또는 매체에 따라 네트워크(204)를 통해 송신된 데이터의 하나 이상의 패킷들로서 네트워크(204)를 통해 앵커 지점 정보(214) 및 클라이언트 디바이스 포지션(220)를 클라이언트 디바이스(202)의 부분으로서 수신할 수 있다. 수신 모듈(108)은 그 다음, 클라이언트 디바이스(202)의 일부로서, 네트워크(204)를 통해 앵커 지점 정보(214) 및 클라이언트 디바이스 포지션(220)를 수신할 수 있다.
도 3으로 돌아가면, 단계(340)에서, 본 명세서에서 설명된 시스템들 중 하나 이상은 앵커 지점과 연관된 식별자를 포함할 수 있는 질의를 자산 관리 서비스로 전송할 수 있다. 예를 들면, 전송 모듈(110)은 도 2의 클라이언트 디바이스(202), RLS 서버(206), 또는 AMS 서버(208)의 일부로서 앵커 지점 식별자(218)를 포함할 수 있는 질의(222)를 AMS 서버(208)로 전송할 수 있다.
질의(222)는 앵커 지점 식별자(218)와 연관된 정보(예컨대, 앵커 지점 식별자와 연관된 앵커 지점에 "부착된" 하나 이상의 디지털 자산들)에 대한 자산 관리 서비스(예컨대, AMS 서버(208))에 대한 요청을 포함하는 임의의 정보를 포함할 수 있다. 마찬가지로, 앵커 지점 식별자(218)는 실세계 환경 내의 매핑된 포지션(예컨대, 앵커 지점 포지션(216))와 연관될 수 있고/거나 이를 식별하기 위해 사용될 수 있는 임의의 정보를 포함할 수 있다. 예를 들면, 앵커 지점 식별자(218)는 제한 없이, 앵커 지점 포지션(216)에 대한 데이터베이스 참조, 앵커 지점 포지션(216)를 포함하는 데이터베이스(예컨대, 데이터 저장장치(140))의 레코드에 대한 포인터, 앵커 지점 포지션(216)의 설명, 앵커 지점 포지션(216)를 나타내는 데이터의 저장 위치, 등을 포함할 수 있다. 일부 예들에서, 상기 설명된 바와 같이, 앵커 지점 식별자(218)는 앵커 지점 정보(214)의 일부로서 포함될 수 있다.
전송 모듈(110)은 클라이언트 디바이스(202), RLS 서버(206), 또는 AMS 서버(208)로 하여금 임의의 적합한 방식으로 앵커 지점 식별자(218)를 포함할 수 있는 질의(222)를 AMS 서버(208)로 전송하게 할 수 있다. 예를 들면, 전송 모듈(110)은 클라이언트 디바이스(202)로 하여금 앵커 지점 정보(214) 내의 앵커 지점 식별자(218)를 식별하고, AMS 서버(208)에 저장, 유지 및/또는 포함된 데이터에 대한 요청 내에 앵커 지점 식별자(218)를 포함함으로써 질의(222)를 생성하며, 네트워크(204)를 통해(예컨대, 네트워크(204)를 구현하는 임의의 적합한 통신 매체 및/또는 프로토콜을 통해) 질의(222)를 AMS 서버(208)로 송신함으로써 질의(222)를 생성하게 할 수 있다.
도 3으로 돌아가면, 단계(350)에서, 본 명세서에서 설명된 시스템들 중 하나 이상은 질의에 응답하여 자산 관리 서비스로부터, 적어도 하나의 디지털 자산을 나타내는 정보를 얻을 수 있다. 예를 들면, 취득 모듈(112)은 도 2의 클라이언트 디바이스(202), RLS 서버(206), 또는 자산 관리 서비스 서버(208)의 일부로서, 질의(222)에 응답하여 자산 관리 서비스 서버(208)로부터 디지털 자산(224)을 얻을 수 있다.
취득 모듈(112)은 클라이언트 디바이스(202), RLS 서버(206), 또는 AMS 서버(208)로 하여금 질의(222)에 응답하여 AMS 서버(208)로부터, 디지털 자산(224)을 임의의 적합한 방식으로 얻게 할 수 있다. 예를 들면, 취득 모듈(112)은 클라이언트 디바이스(202)로부터 질의(222)의 수신 시에, AMS 서버(208)로 하여금 데이터 저장장치(140)로부터 자산 데이터(144)에 액세스하게 할 수 있고 앵커 지점 식별자(218)를 사용하여, AMS 서버(208)로 하여금 앵커 지점 식별자(218)와 연관된 디지털 자산(224)을 식별하게 할 수 있다. 디지털 자산(224)의 식별 시에, 취득 모듈(112)은 AMS 서버(208)로 하여금 인공 환경 내에서의 제공을 위해(예컨대, 클라이언트 디바이스(202)를 통한) 네트워크(204)를 통해(예컨대, 네트워크(204)를 구현하는 임의의 적합한 통신 매체 및/또는 프로토콜을 통해) 디지털 자산(224)을 클라이언트 디바이스(202)로 전송하게 할 수 있다. 따라서, 취득 모듈(112)은 클라이언트 디바이스(202)의 일부로서, 네트워크(204)를 통해 AMS 서버(208)로부터 디지털 자산(224)을 얻을 수 있다.
도 3으로 돌아가면, 단계(360)에서, 본 명세서에서 설명된 시스템들 중 하나 이상은 실세계 환경 내의 클라이언트 디바이스의 결정된 포지션 및 앵커 지점의 매핑된 포지션에 대한 인공 환경 내의 포지션에서 디지털 자산을 제공할 수 있다. 예를 들면, 제공 모듈(114)은 도 2의 클라이언트 디바이스(202), RLS 서버(206), 또는 AMS 서버(208)의 일부로서, 제공 포지션(226)에서 디지털 자산(224)을 제공할 수 있고, 제공 포지션(226)는 클라이언트 디바이스 포지션(220) 및 앵커 지점 포지션(216)에 대한 인공 환경 내의 포지션을 표현할 수 있다.
일부 예들에서, "인공 환경"은 제한 없이, 2차원 환경, 3차원 환경, VR 환경, AR 환경, 그들 중 하나 이상의 조합, 등을 포함하는 임의의 컴퓨터 생성 환경을 포함할 수 있다. 일부 예들에서, 인공 환경은 실세계 환경(예컨대, 실세계 환경(210))의 2 또는 3차원 표현을 포함할 수 있다. 일부 예들에서, 인공 환경은 실세계 환경의 이미지로 오버레이되고/거나 이와 합성될 수 있다. 일부 이러한 예들에서, 인공 환경에 포함된 하나 이상의 디지털 자산들은 사용자가 합성 이미지를 뷰잉할 때 실세계 환경 내에 존재하는 것처럼 사용자에게 나타날 수 있다.
제공 모듈(114)은 다양한 맥락들에서 제공 포지션(226)에서 디지털 자산(224)을 제공할 수 있다. 예를 들면, 클라이언트 디바이스 포지션(220)의 수신 시에, 제공 모듈(114)은 실세계 환경(210)의 국소 좌표계 및/또는 국소 맵이 실세계 환경(210)과 정렬되고/거나 재정렬될 수 있도록 클라이언트 디바이스(202)에 의해 유지된 실세계 환경(210)의 국소 맵 및/또는 국소 좌표계를 조정함으로써 실세계 환경(210) 내에서 클라이언트 디바이스(202)를 재국소화할 수 있다.
예를 들면, 도 7을 참조하여 상기 설명된 바와 같이, 포지셔닝 모듈(116)은 앵커 지점 포지션(216)로부터 클라이언트 디바이스 포지션(220)(즉, 앵커 지점 포지션(216)에 대한 클라이언트 디바이스(202)의 포지션)로의 상대적 변환을 결정할 수 있고, 클라이언트 디바이스 포지션(220)의 일부로서 상대적 변환을 포함할 수 있다. 이 상대적 변환에 기초하여, 제공 모듈(114)은 클라이언트 디바이스(202)에 의해 유지된 실세계 환경(210)의 국소 맵 내의 클라이언트 디바이스(202)의 포지션을 업데이트할 수 있다.
일부 예들에서, 클라이언트 디바이스(202)는 인공 현실 환경 내의 클라이언트 디바이스(202)의 포지션이 실세계 환경(210) 내의 클라이언트 디바이스 포지션(220)에 대응할 수 있도록 인공 환경을 제공할 수 있다. 따라서, 클라이언트 디바이스(202)는 실세계 환경(210) 내에서 재국소화될 수 있으며, 클라이언트 디바이스(202)는 인공 환경 내의 포지션들이 실세계 환경(210) 내의 포지션들과 정렬되도록 인공 환경 내의 하나 이상의 디지털 자산들을 제공하도록 가능해질 수 있다.
또한, 일부 예들에서, 제공 모듈(114)은 앵커 지점 포지션(216) 및 클라이언트 디바이스 포지션(220)에 대한 실세계 환경 내의 포지션에 대응하는 인공 환경 내의 포지션을 결정함으로써 제공 포지션(226)에서 디지털 자산(예컨대, 디지털 자산(224))을 제공할 수 있다.
예시로서, 도 9는 실세계 환경(210)에 오버레이된 증강 현실 환경일 수 있는 인공 환경(902)의 조감도(900)를 도시한다. 도시된 바와 같이, 클라이언트 디바이스(202), RLS 서버(206), 및/또는 AMS 서버(208)의 일부로서 제공 모듈(114)은 점선(904)으로 표시된 바와 같이, 앵커 지점 포지션(216)에 대해 실세계 환경(210) 내에서 클라이언트 디바이스(202)를 재국소화할 수 있다. 또한, 취득 모듈(112)은 앵커 지점 포지션(216)(예컨대, 제공 포지션(226))에 대한 디지털 자산(224)의 포지션을 포함할 수 있는 디지털 자산(224)을 나타내는 정보를 얻을 수 있다.
도 9에 더 도시된 바와 같이, 제공 모듈(114)은 또한, 점선(906)으로 표시된 바와 같이, 앵커 지점 포지션(216)에 대한 디지털 자산(224)에 대한 제공 포지션(226)를 결정할 수 있다. 일부 예들에서, 점선(906)은 앵커 지점의 매핑된 위치(예컨대, 앵커 지점 포지션(216))로부터 디지털 자산(224)의 제공 포지션(예컨대, 제공 포지션(226))로의 상대적 변환을 표현할 수 있다. 단순화된 예시로서, 앵커 지점 포지션(216)로부터 제공 포지션(226)로의 상대적 변환은 문구 "디지털 자산(224)이 앵커 지점 포지션(216)의 동쪽으로 1.2 미터 및 북쪽으로 0.4 미터에 배치된다"에 의해 표현될 수 있다. 상기 설명된 바와 같이, 이 상대적 변환은 디지털 자산(224)과 연관하여 및/또는 이의 일부로서 저장되고(예컨대, 자산 데이터(144) 내에), 액세스되고/거나(예컨대, 취득 모듈(112)에 의해), 클라이언트 디바이스(202)로 송신될 수 있다(예컨대, 취득 모듈(112)에 의해). 따라서, 제공 모듈(114)은 (1) 실세계 환경(210) 내의 앵커 지점 포지션(216)에 대한 디지털 자산(224)의 포지션에 대응할 수 있는 인공 환경(902) 내의 포지션을 식별하고, (2) 식별된 포지션을 제공 포지션(226)로서 지정함으로써 제공 포지션(226)를 결정할 수 있다.
또한, 도 9에 또한 도시된 바와 같이, 일부 예들에서, 제공 모듈(114)은 또한, 점선(908)으로 표시된 바와 같이, 클라이언트 디바이스 포지션(220)에 대한 제공 포지션(226)를 결정할 수 있다. 예를 들면, 제공 모듈(114)은 앵커 지점 포지션(216)로부터 클라이언트 디바이스 포지션(220)로의 상대적 변환 및 앵커 지점 포지션(216)로부터 디지털 자산(224)의 미리 결정된 포지션으로의 상대적 변환에 기초하여 제공 포지션(226)를 결정할 수 있다. 이것은 인공 환경(902) 내의 디지털 자산(224)의 더 미세한 포지셔닝 및/또는 클라이언트 디바이스(202)를 통한(예컨대, 클라이언트 디바이스(202)에 포함된 디스플레이를 통한) 디지털 자산(224)의 더 안정적인 뷰잉을 가능하게 할 수 있다.
도 10은 인공 환경(902) 내의 제공 포지션(226)에서 제공된 디지털 자산(224)을 포함하는 실세계 환경(210)에 오버레이된 인공 환경(902)의 1인칭 시점(1000)을 도시한다. 점선(904) 및 점선(908)이 명확성을 위해 생략되었으며, 제공 포지션(226)가 그것이 디지털 자산(224)에 의해 모호해질 수 있으므로 생략됨에 유의한다.
일부 예들에서, 클라이언트 디바이스(예컨대, 클라이언트 디바이스(202))는 본 명세서에서 설명된 바와 같이 재국소화 프로세스 및/또는 자산 관리 프로세스 동안 실세계 환경을 통해 계속 이동할 수 있다. 따라서, 실세계 환경 내의 클라이언트 디바이스의 결정된 포지션(예컨대, 클라이언트 디바이스 포지션(220))는 제공 모듈(114)이 인공 환경 내의 가상 객체(예컨대, 디지털 자산(224))를 제공하려고 시도할 때 실세계 환경 내의 클라이언트 디바이스의 실제 포지션에 더 이상 대응하지 않을 수 있다.
따라서, 일부 실시예들에서, 본 명세서에서 설명된 시스템들 중 하나 이상은 실세계 환경 내의 클라이언트 디바이스의 움직임을 추적할 수 있고(예컨대, 재국소화 프로세스 및/또는 자산 관리 프로세스 동안), 실세계 환경 내의 클라이언트 디바이스의 움직임에 기초하여 실세계 환경 내의 클라이언트 디바이스의 결정된 포지션(예컨대, 클라이언트 디바이스 포지션(220))를 업데이트할 수 있다. 예를 들면, 추적 모듈(118)은 클라이언트 디바이스(202), RLS 서버(206), 및/또는 AMS 서버(208)의 일부로서, 실세계 환경(210) 내의 클라이언트 디바이스(202)의 움직임을 추적할 수 있고, 실세계 환경(210) 내의 클라이언트 디바이스의 움직임에 기초하여 클라이언트 디바이스 포지션(220)를 업데이트할 수 있다.
추적 모듈(118)은 다양한 맥락들에서 실세계 환경(210) 내의 클라이언트 디바이스(202)의 움직임을 추적할 수 있다. 예를 들면, 추적 모듈(118)은 송신 모듈(106)이 실세계 환경 정보(212)를 RLS 서버(206)로 송신하는 시간에, 실세계 환경(210) 내의 클라이언트 디바이스(202)의 초기 포지션을 결정함으로써 실세계 환경(210) 내의 클라이언트 디바이스(202)의 움직임을 추적할 수 있다.
예를 들면, 송신 모듈(106)이 실세계 환경 정보(212)를 RLS 서버(206)로 송신할 때, 추적 모듈(118)은 이미징 디바이스(228) 및/또는 센서(230)에 의해 수집된 정보를 수신하고/거나 이에 액세스할 수 있고, 클라이언트 디바이스(202)의 초기 포지션을 결정하고/거나 확립하기 위해 이미징 디바이스(228) 및/또는 센서(230)에 의해 수집된 정보(예컨대, 이미지, GPS 좌표, 지향방향, 특정 힘, 관성 측정, 각속도, 선형 속도, 자기장, 등)를 사용할 수 있다. 일부 예들에서, 추적 모듈(118)은 초기 포지션에 대응하는 부가적인 앵커 지점을 생성할 수 있다. 적어도 하나의 예에서, 추적 모듈(118)은 클라이언트 디바이스(202)에 의해 유지된 실세계 환경(210)의 국소 맵과 같은, 실세계 환경(210)의 국소 맵의 일부로서 부가적인 앵커 지점을 기록할 수 있다.
추적 모듈(118)은 부가적인 앵커 지점에 대한 실세계 환경 내의 클라이언트 디바이스(202)의 움직임을 더 추적할 수 있다. 예를 들면, 시간 기간에 걸쳐 이미징 디바이스(228) 및/또는 센서(230)에 의해 수집된 정보를 분석함으로써, 추적 모듈(118)은 부가적인 앵커 지점에 의해 표시된 바와 같이 초기 포지션에 대한 실세계 환경(210)을 통해 클라이언트 디바이스(202)의 진행 및/또는 경로를 결정할 수 있다. 따라서, 수신 모듈(108)이 앵커 지점 정보(214) 및 클라이언트 디바이스 포지션(220)를 수신한 후에 언제든지, 추적 모듈(118)은 부가적인 앵커의 포지션 및/또는 부가적인 앵커 지점의 포지션에 대한 실세계 환경(210)을 통해 클라이언트 디바이스(202)의 추적된 움직임에 기초하여 클라이언트 디바이스 포지션(220)를 업데이트할 수 있다.
설명을 위해, 도 11은 실세계 환경(210) 및 인공 환경(902)의 부가적인 조감도(1100)를 도시한다. 조감도(1100)는 도 11의 조감도(900)와 유사하다. 그러나, 도 11에 도시된 시나리오에서, 클라이언트 디바이스(202)는 송신 모듈(106)이 실세계 환경 정보(212)를 RLS 서버(206)로 송신한 후에 이동했을 수 있다.
도 11에 도시된 바와 같이, 송신 모듈(106)이 실세계 환경 정보(212)를 RLS 서버(206)로 송신하는 시간에, 추적 모듈(118)은 실세계 환경(210) 내의 클라이언트 디바이스(202)의 초기 포지션(1102)를 결정할 수 있고/거나 초기 포지션(1102)에 대응하는 포지션에서 부가적인 앵커 지점(예컨대, 클라이언트 디바이스(202)에 의해 유지된 실세계 환경(210)의 국소 맵 내의)을 생성할 수 있다. 추적 모듈(118)은 그 다음, 실세계 환경(210) 내의 클라이언트 디바이스(202)의 움직임(1104)을 추적할 수 있다. 제공 모듈(114)이 제공 포지션(226)를 결정할 때, 추적 모듈(118)은 초기 포지션(1102) 및/또는 추적된 움직임(1104)에 기초하여 클라이언트 디바이스 포지션(220)를 업데이트할 수 있다. 일부 예들에서, 추적 모듈(118)은 추적된 움직임(1104)에 기초하여 앵커 지점 포지션(216)로부터 클라이언트 디바이스 포지션(220)로의 상대적 변환을 업데이트함으로써 클라이언트 디바이스 포지션(220)를 업데이트할 수 있다. 예를 들면, 2차원으로 단순화된 바와 같이, 클라이언트 디바이스 포지션(220)가 클라이언트 디바이스(202)가 앵커 지점 포지션(216)의 북쪽으로 3 미터 및 서쪽으로 1 미터에 있고, 클라이언트 디바이스(202)가 동쪽으로 2 미터 이동함을 나타내면, 추적 모듈(118)은 클라이언트 디바이스(202)가 앵커 지점 포지션(216)의 북쪽으로 3 미터 및 동쪽으로 1 미터에 있음을 나타내기 위해 클라이언트 디바이스 포지션(220)를 업데이트할 수 있다.
따라서, 도 11에 더 도시된 바와 같이, 제공 모듈(114)은 점선(1108)으로 표시된 바와 같이, 앵커 지점 포지션(216) 및 업데이트된 클라이언트 디바이스 포지션(1106)에 대해 실세계 환경(210) 내에서 클라이언트 디바이스(202)를 재국소화할 수 있다. 또한, 도 11에 또한 도시된 바와 같이, 일부 예들에서, 제공 모듈(114)은 또한, 점선(1110)으로 표시된 바와 같이, 업데이트된 클라이언트 디바이스 포지션(1106)에 대한 제공 포지션(226)를 결정할 수 있다.
상기 언급된 바와 같이, 본 명세서에 개시된 실시예들 중 하나 이상은 컴퓨터 판독가능한 매체의 컴퓨터 프로그램으로서 인코딩될 수 있다. 도 12 내지 도 15는 컴퓨팅 디바이스의 프로세서에 의해 실행될 때, 컴퓨팅 디바이스로 하여금 본 명세서에서 설명된 동작들 중 하나 이상을 수행하게 할 수 있는 소스 코드의 목록들을 포함한다. 당업자에게 명백할 수 있는 바와 같이, 도 12 내지 도 15에 포함된 목록들은 일반적으로, C++ 프로그래밍 언어의 관습들 및/또는 구문에 따를 수 있다. 이것은 본 명세서에서 설명된 실시예들이 임의의 적합한 프로그래밍 언어를 통해 부가적으로 또는 대안적으로 구현될 수 있기 때문에 단지 일례이다.
도 12 내지 도 14는 본 명세서에서 설명되는 바와 같이 재국소화 서비스를 위한 애플리케이션 프로그래밍 인터페이스(API)에 포함될 수 있는 다양한 정의들, 데이터 구조들, 데이터 객체들, 클래스들, 등을 포함할 수 있다.
도 12는 클래스(1202) 및 클래스(1204)를 포함하는 목록(1200)을 포함한다. 클래스(1204)는 일반적으로, 본 명세서에서 설명된 시스템들 중 하나 이상(예컨대, 송신 모듈(106))이 재국소화 서비스(예컨대, RLS 서버(206))로 송신할 수 있고 실세계 환경을 나타내는 정보를 포함할 수 있는 데이터 객체를 설명할 수 있다. 클래스(1202)는 SinglelmageRelocPacket으로 명명되고, 명칭공간(AssetManager)을 사용하며, Packet으로 명명된 공개 클래스로부터 얻어진다. 클래스(1202)는 또한, 몇몇 공개 데이터 멤버들 및 공개 함수 멤버들을 포함한다.
데이터 멤버(persistentClientId)의 데이터 유형은 uint64_t이며, 이는 persistentClientId가 부호 없는 64 비트 정수를 포함할 수 있음을 나타낸다. 따라서, persistentClientId는 지속적일 수 있는 클라이언트(예컨대, 클라이언트 디바이스(202))와 연관된 식별자를 포함할 수 있다(예컨대, AR 세션들에 걸쳐, 재국소화들에 걸쳐, 등).
데이터 멤버들(w, h, f, cx, cy, k1, 및 k2)은 부동 소수점 값들일 수 있고 이미징 디바이스(예컨대, 이미징 디바이스(228))의 고유 파라미터들에 대응하는 값들을 포함할 수 있다.
데이터 멤버들(width, height, 및 pitch)은 각각 이미지의 너비, 높이, 및 피치에 대응하는 정수 값들을 포함할 수 있다.
데이터 멤버(img_data)는 데이터 유형이 unit8_t인 벡터를 포함할 수 있으며, 이는 img_data가 부호 없는 8 비트 정수 값들의 벡터를 포함할 수 있음을 나타낸다. 일부 예들에서, img_data 벡터의 각각의 값은 이미지에 포함된 픽셀 값에 대응할 수 있다.
데이터 멤버(localAnchorId)는 국소 앵커 지점(예컨대, 재국소화 이전에 국소 맵 내에 배치된 앵커 지점)의 식별자에 대응할 수 있는 정수 값일 수 있다.
클래스(1202)는 또한, 호출될 때 앞서 말한 데이터 멤버들(예컨대, persistentClientId, w, h, f, cx, cy, kl, k2, width, height, pitch, img_data, 및 localAnchorId)을 직렬화할 수 있는 공개 멤버 함수 직렬화를 포함한다. 일부 예들에서, "직렬화(serialize)"는 데이터 구조들 및/또는 객체들이 저장되고(예컨대, 하드 디스크, 메모리 디바이스, 데이터 저장장치(140)와 같은 데이터 저장장치, 등과 같은 저장 매체 내에), 송신되고/거나(예컨대, 네트워크(204)과 같은 네트워크를 통해), 재구성될 수 있는(예컨대, 모듈들(102) 중 하나 이상에 의해) 포맷으로 그들을 이동시키는 프로세스를 언급할 수 있다.
RelocResponsePacket으로 명명된 클래스(1204)는 또한, 명칭공간(AssetManager)를 사용하고 Packet 클래스로부터 얻어진다. 클래스(1202)는 데이터 멤버들(persistentClientId, rotation_q_ca, translation_q_ca, cloudAnchorGuid, 및 localAnchorId)을 포함한다. 클래스(1202)는 또한, 공개 멤버 함수 직렬화를 포함한다.
클래스(1202)에서와 같이, 공개 데이터 멤버(persistentClientId)의 데이터 유형은 uint64_t이다. 이 데이터 멤버는 영구적일 수 있는 클라이언트와 연관된 식별자를 포함할 수 있다(예컨대, AR 세션들에 걸쳐, 재국소화들에 걸쳐, 등).
공개 데이터 멤버(rotation_q_ca)는 부동 소수점 값들의 벡터일 수 있으며, 질의된 포즈(예컨대, 실세계 환경 정보(212)가 RLS 서버(206)로 송신된 시간에 클라이언트 디바이스의 포즈로부터의) 및 하기에 설명된, cloudAnchorGuid에 의해 이 응답 패킷 내에서 식별된 재국소화 서비스에 의해 식별된 앵커 지점의 포즈로부터 쿼터니언으로서 표현된, 상대 회전을 표현할 수 있다.
공개 데이터 멤버(translation_q_ca)는 부동 소수점 값들의 벡터일 수 있으며, 질의된 포지션으로부터의(예컨대, 실세계 환경 정보(212)가 클라이언트 디바이스(202)에 의해 캡쳐되었고/거나 클라이언트 디바이스(202)로부터 RLS 서버(206)로 송신된 시간에 클라이언트 디바이스(202)의 포지션으로부터의) 및 하기에 설명된 cloudAnchorGuid에 의해 이 응답 패킷 내에서 식별된 재국소화 서비스에 의해 식별된 앵커 지점의 포지션으로부터의 상대적 이동 및/또는 변환을 표현할 수 있다.
공개 데이터 멤버(cloudAnchorGuid)는 실세계 환경의 맵(예컨대, 맵(700))에 포함된 앵커 지점과 연관된 전역 고유 식별자(Globally Unique Identifier; GUID)일 수 있는 정수 값일 수 있다.
클래스(1202)에서와 같이, 클래스(1204)의 공개 데이터 멤버(localAnchorId)는 국소 앵커 지점(예컨대, 재국소화 이전에 국소 맵 내에 배치된 앵커 지점)의 식별자에 대응할 수 있는 정수 값일 수 있다. 따라서, 재국소화 서비스(예컨대, RLS 서버(206))는 이 값을 클라이언트 디바이스에 다시 에코(echo)할 수 있다.
클래스(1202)에서와 같이, 클래스(1204)는 또한, 호출될 때 상기 데이터 멤버들(예컨대, persistentClientId, rotation_q_ca, translation_q_ca, cloudAnchorGuid, localAnchorId)을 직렬화할 수 있는 공개 함수 멤버 직렬화를 포함한다.
도 13은 실세계 환경을 나타내는 정보(예컨대, 실세계 환경 정보(212))를 재국소화 서비스(예컨대, RLS 서버(206))로 송신하기 위해 사용될 수 있는 부가적인 데이터 구조들 및 클래스들을 보여주는 목록(1300)을 포함한다.
데이터 구조(1302)는 ImageQuery로 명명되고 2개의 데이터 멤버들: 불 값(Boolean value)(gravity_aligned) 및 통합 데이터 구조(FeaturesAndDescriptors)를 포함한다. 본 발명의 목적들을 위해, 키워드 "통합"은 가능한 데이터 멤버들 중 하나만이 한 번에 정의될 수 있는 데이터 구조를 나타낼 수 있으며 데이터 구조의 및/또는 이에 대한 메모리 사용량을 나타내고/거나 반영하지 않을 수 있다.
도시된 바와 같이, 불 값(gravity_aligned)은 실세계 환경을 나타내는 정보(예컨대, 이미지들, 이미지 피처들, 피처 설명자들, 피처 광선들, 등)가 실세계 환경을 나타내는 정보가 중력 방향에 따라 정렬하기 위해 클라이언트 디바이스의 좌표계 내에서 미리 회전되었을 수 있다는 점에서 중력 정렬되는지의 여부를 나타낼 수 있다.
통합 구조(FeaturesAndDescriptors)는 4개의 가능한 데이터 멤버들을 포함하며, 각각은 이미지 피처들 및 피처 설명자들의 상이한 표현을 포함할 수 있는 상이한 데이터 구조를 표현한다. 이들 데이터 구조들은 하기에 더 상세하게 설명될 수 있다.
데이터 유형이 CalibratedImageFeaturesAndDescriptors인 데이터 멤버(calibrated_image_features_and_descriptors)는 이미징 디바이스가 교정되었을 때(즉, 이미징 디바이스의 고유 파라미터들이 식별, 산출, 결정, 등이 되었을 때), 및 이미징 디바이스의 고유 파라미터들의 영향들이 송신 이전에 이미지로부터 감소되고/거나 제거되었을 수 있을 때(예컨대, 클라이언트 디바이스에 의해) 사용될 수 있다. 데이터 멤버(calibrated_image_features_and_descriptors)는 본 명세서에서 설명된 방식들 중 임의의 것으로 생성되고/거나 식별된 피처 설명자들 및 피처 광선들을 포함할 수 있다.
UncalibratedImageFeaturesAndDescriptors의 데이터 유형을 갖는 데이터 멤버(uncalibrated_image_features_and_descriptors)는 이미징 디바이스의 모든 알려진 고유 파라미터들(예컨대, 이미징 디바이스(228)의 주요 지점)의 효과가 제거된 이미지 내에 하나 이상의 2D "정규화된" 피처 위치들을 포함할 수 있다. 일부 예들에서, 재국소화 서비스는 이미징 디바이스의 초점 길이만이 알려지지 않을 수 있다고 가정할 수 있다. 2D 피처들과 연관된 피처 설명자들이 또한, 포함될 수 있다.
데이터 유형이 MultiImageFeaturesAndDescriptors인 데이터 멤버(multi_image_reloc_query)는, (1) 다수의 시점들로부터 취해진(예컨대, 다중 카메라 매핑 장치를 통해) 다수의 이미지들로부터의 피처 광선들, (2) 질의의 국소 좌표계에서, 피처(들)를 관찰한 카메라(들)의 포지션들에 대응할 수 있는 피처 원점들, 및 (3) 피처 광선들과 연관된 피처 설명자들을 포함할 수 있다. 또한 데이터 유형(MultilmageFeaturesAndDescriptors)의 데이터 멤버(multi_image_unknown_scale_reloc_query)는 multi_image_reloc_query와 유사한 데이터를 포함할 수 있지만, 스케일 정보를 생략할 수 있다.
데이터 구조(1304)는 LatLonAlt로 명명되고 모두 이중 유형(즉, 이중 정밀도 부동 소수점 값)인 6개의 데이터 멤버들을 포함한다. 데이터 멤버(latitude_deg)는 위도의 정도를 나타낼 수 있고, 데이터 멤버(longitude_deg)는 경도의 정도를 나타낼 수 있으며, 데이터 멤버(altitude_meters)는 고도를 미터 단위로 나타낼 수 있다. 데이터 멤버들(lat_radius_meters, lon_radius_meters, 및 alt_radius_meters)은 데이터 멤버들(latitude_deg, longitude_deg, 및 altitude_meters)의 값들의 각각의 불확실성 반경(미터 단위)을 나타낼 수 있다.
데이터 구조(1306)는 CoarseGeoLocation으로 명명되고 데이터 유형이 LatLongAlt(예컨대, 데이터 구조(1304))인 데이터 멤버(lla)를 포함한다. 데이터 구조(1308)는 RelocalizationQuery로 명명되고 (1) 데이터 유형이 CoarseGeoLocation(예컨대, 데이터 구조(1306))인 location, 및 (2) 데이터 유형이 ImageQuery(예컨대, 데이터 구조(1302))인 image_query를 포함한다.
데이터 구조(1310)는 RelocalizationPrior로 명명되며 2개의 데이터 멤버들: (1) 데이터 유형이 부호 없는 64 비트 정수인 prior_reloc_ent_id, 및 (2) 데이터 유형이 SE3d인 T_query_reloc_ent를 포함한다. 일부 예들에서, SE3d 데이터 유형은 3D 및/또는 6DoF 변환과 연관된 정보를 포함할 수 있다. 따라서, prior_reloc_ent_id는 이전 재국소화를 위해 사용된 앵커 지점을 표현할 수 있고, T_query_reloc_ent는 현재 포지션과 이전 앵커 지점 사이의 상대적 변환을 표현할 수 있다. 이전 앵커 지점을 제공하는 것은 재국소화 서비스(예컨대, RLS 서버(206))가 재국소화 프로세스에서 대략적인 포지셔닝 동작을 우회하는 것을 가능하게 할 수 있다.
데이터 구조(1312)는 RelocalizationResponse로 명명되고 7개의 데이터 멤버들을 포함한다. 거짓 값으로 초기화된 불 값 성공은 재국소화의 성공 또는 실패를 나타낼 수 있다. 부호 없는 64 비트 정수(localized_ent_id)는 실세계 환경의 미리 정의된 맵 내의 앵커 지점에 대한 식별자를 표현할 수 있다. 데이터 유형(SE3d)의 데이터 멤버(T_ent_query)는 앵커 지점의 포지션(예컨대, localized_ent_id) 및 클라이언트 디바이스의 결정된 포지션으로부터의 상대적 변환을 나타낼 수 있다.
1.0의 값으로 초기화된 이중 데이터 유형의 데이터 멤버(scale_ent_query)는 질의 클라이언트를 메트릭 스케일로 업그레이드할 수 있는 스케일을 나타낼 수 있다. 데이터 멤버(estimated_focal_length)의 데이터 유형은 이중이다. 이것은 재국소화 질의의 일부로서(예컨대, 실세계 환경 정보(212)의 일부로서) 재국소화 서비스에 제출된 이미지 데이터를 캡쳐하기 위해 사용될 수 있는 이미징 디바이스(예컨대, 이미징 디바이스(228))의 추정된 초점 길이에 대응할 수 있다.
데이터 구조(1312) 내의 부가적인 데이터 멤버들은 선택적일 수 있다. 0 값으로 초기화된 정수 값(num_inliers), 및 정수 벡터(inlier_indices)는 재국소화 프로세스 동안 inliers인 이미지 피처들(예컨대, 실세계 환경 정보(212)의 일부로서 제출된 이미지 내에서 식별되고/거나 이에 포함된 이미지 피처들)의 수 및/또는 인덱스들을 나타낼 수 있다.
도 14로 진행하면, 목록(1400)은 본 명세서에서 설명된 바와 같이 재국소화 서비스에 대한 클라이언트 대면 인터페이스를 포함한다. 상기 설명된 바와 같이, 재국소화 서비스는 클라이언트 디바이스(예컨대, 클라이언트 디바이스(202))를 실세계 환경(예컨대, 실세계 환경(210))으로 재국소화하기 위해 실세계 환경의 미리 정의되고/거나 미리 생성된 맵 및/또는 미리 생성된 맵 내의 미리 정의된 앵커 지점들을 사용할 수 있다. 재국소화 프로세스의 맵 및/또는 로직은 클라이언트에 의도적으로 이용가능하지 않을 수 있으며, 클라이언트 대면 인터페이스는 의도적으로 작을 수 있다.
목록(1400)에 도시된 바와 같이, 클래스(1402)는 도 13을 참조하여 설명된 많은 데이터 구조들을 활용할 수 있는 2개의 함수들을 포함한다. 멤버 함수(relocalize)는 질의로 명명된 RelocalizationQuery 객체(예컨대, 데이터 구조(1308))에 대한 참조를 수용하고 RelocalizationResponse 객체(예컨대, 데이터 구조(1312))를 반환한다. 이전 멤버 함수는 질의로 명명된 RelocalizationQuery 데이터 객체(예컨대, 데이터 구조(1308))에 대한 참조 및 이전에 명명된 RelocalizationPrior 데이터 객체(예컨대, 1310)에 대한 참조를 수용한다. 클라이언트는 클라이언트가 대략적인 맵 검색을 우회하기를 원하고/거나 이전 재국소화로부터의 정보를 가지고 있을 때 이 함수를 호출할 수 있다.
도 15는 본 명세서에서 설명된 바와 같이 자산 관리 서비스를 위한 API에 포함될 수 있는 다양한 정의들, 데이터 구조들, 데이터 객체들, 클래스들, 등을 포함할 수 있는 목록(1500)을 포함한다.
코드 블록(1502)은 부호 없는 64 비트 정수들에 대한 앨리어스 유형(type aliases)(ARObjectID 및 ARTrackableID)을 포함한다. 따라서, 유형(ARObjectID 및/또는 ARTrackableID)의 변수들은 64 비트 부호 없는 정수들로서 정의될 수 있고/거나 그들을 포함할 수 있다.
데이터 구조(1504)는 앵커 지점 포지션으로부터 객체로의 상대적 변환을 설명할 수 있다. 데이터 구조(1504)는 ARObjectTransformation으로 명명되고 3개의 데이터 멤버들을 포함한다. 데이터 멤버(parent_trackable_id)는 ARTrackableID 유형(예컨대, 부호 없는 64 비트 정수)이며 앵커 지점에 대한 식별자를 표현할 수 있다. 데이터 멤버(T_obj_trackable)는 SE3d 유형이며 가상 객체(예컨대, 디지털 자산(224))의 포지션으로부터 parent_trackable_id로 식별된 앵커 지점의 매핑된 포지션으로의 변환을 표현할 수 있거나, 그 반대의 경우도 마찬가지이다. 데이터 멤버 스케일은 이중 유형이며 변환 및/또는 가상 객체와 연관된 스케일을 나타낼 수 있다.
데이터 구조(1506)는 현재(즉, 소스) 앵커 지점으로부터 타겟 앵커 지점으로의 상대적 변환을 표현할 수 있다. 데이터 구조(1504)는 ARTrackableEdge로 명명되고 타겟 앵커 지점에 대한 식별자를 나타낼 수 있는 ARTrackableID target_trackable_id, 및 현재(즉, 소스) 앵커 지점으로부터 target_trackable_id에 의해 식별된 타겟 앵커 지점으로의 상대적 변환을 표현할 수 있는 SE3d T_source_target을 포함할 수 있다.
데이터 구조(1508)는 ARObject의 이름을 가지며 가상 객체와 연관된 정보를 설명하고/거나 포함할 수 있다. 데이터 멤버 id는 ARObjectID 유형을 가지며 가상 객체와 연관된 식별자를 포함할 수 있다. 데이터 멤버(parent_trackable_transforms)는 ARObjectTransformation 데이터 객체들의 벡터이며 ARObjectID id에 의해 식별된 가상 객체와 하나 이상의 앵커 지점들 사이의 상대적 변환들을 표현할 수 있다. 데이터 멤버 메타데이터는 Metadata 유형을 가지며 가상 객체와 연관된 임의의 다른 적합한 정보(예컨대, 가상 객체와 연관된 모델, 가상 객체의 유형, 가상 객체와 연관된 프라이버시 지정, 등)를 포함할 수 있다.
데이터 구조(1510)는 ARTrackable의 이름을 가지며 앵커 지점과 연관된 데이터를 표현하고/거나 포함할 수 있다. 데이터 멤버 id는 ARTrackableID 유형을 가지며 앵커 지점과 연관된 식별자를 포함할 수 있다. 데이터 멤버 이웃들은 벡터 데이터 유형을 가지며 ARTrackableEdge 데이터 객체들을 포함한다. 데이터 멤버 이웃들은 ARTrackableID id에 의해 식별된 앵커 지점과 실세계 환경의 맵에 포함된 다른 앵커 지점들 사이의 관계들(예컨대, 변환들)을 나타내는 에지들(예컨대, 그래프 에지들)을 설명할 수 있다. 상기 언급된 바와 같이, 실세계 환경의 맵에 포함된 앵커 지점들은 그래프의 노드들로서 앵커 지점들 및 그래프의 에지들로서 앵커 지점들 사이의 상대적 변환들을 갖는, 연결된 그래프로서 저장, 참조, 구조화, 개념화, 등이 될 수 있다. 데이터 멤버(attached_objects)는 ARObject 데이터 객체들의 벡터를 포함하고 ARTrackableID id에 의해 식별된 앵커 지점에 "부착"될 수 있는 하나 이상의 가상 객체들을 나타낼 수 있다.
데이터 구조(1512)는 InsertARObjectRequest의 이름을 가지며 가상 객체 자산을 가상 객체들(예컨대, 자산 데이터(144))의 컬렉션에 삽입하기 위한 요청을 표현할 수 있다. 데이터 멤버(T_obj_trackable)는 SE3d의 데이터 유형을 가지며 ARTrackableID trackable_id에 의해 식별된 특정한 앵커 지점에 대한 6DoF 관계를 나타낼 수 있다. 데이터 멤버 스케일은 이중 유형이며 변환 및/또는 가상 객체와 연관된 스케일을 나타낼 수 있다. 데이터 멤버 메타데이터는 Metadata의 유형을 가지며 가상 객체와 연관된 임의의 다른 적합한 정보(예컨대, 가상 객체와 연관된 모델, 가상 객체의 유형, 가상 객체와 연관된 프라이버시 지정, 등)를 포함할 수 있다.
데이터 구조(1514)는 InsertARObjectResponse의 이름을 가지며 가상 객체를 가상 객체들의 컬렉션에 삽입하기 위한 요청(예컨대, 데이터 구조(1512)의 형태와 유사한 형태의 요청)에 응답하여 자산 관리 서버(예컨대, AMS 서버(208))로부터의 서버 응답을 표현할 수 있다. 불 값 성공은 가상 객체를 삽입하기 위한 요청의 성공 또는 실패를 나타낼 수 있다. 데이터 멤버(ARObjectID)는 성공적으로 삽입된 가상 객체에 할당될 수 있는 식별자일 수 있다.
데이터 구조(1516)는 FetchARObjectRequest의 이름을 가지며 클라이언트의 현재 포지션을 고려할 때, 클라이언트가 액세스한 모든 가시적 가상 객체들에 대한 요청을 표현할 수 있다. 데이터 멤버(trackable_id)는 데이터 유형(ARTrackableID)을 갖고 앵커 지점과 연관된 식별자를 표현할 수 있다. 데이터 멤버(T_you_trackable)는 유형(SE3d)을 갖고 실세계 환경 내의 클라이언트 디바이스의 포지션으로부터 ARTrackableID trackable_id에 의해 식별된 앵커 지점의 포지션으로의 상대적 이동을 표현할 수 있다. 데이터 멤버 메타데이터는 Metadata의 유형을 가지며 요청과 연관된 임의의 다른 적합한 정보를 포함할 수 있다.
데이터 구조(1518)는 FetchARObjectResponse의 이름을 가지며 클라이언트의 현재 위치를 고려할 때, 클라이언트가 액세스한 모든 가시적 가상 객체들에 대한 요청(예컨대, 데이터 구조(1516)의 형태와 같은 형태의 요청)에 대한 응답을 표현할 수 있다. 불 값 성공은 가시적 가상 객체들에 대한 요청의 성공 또는 실패를 나타낼 수 있다. 데이터 멤버(visible_objects)는 자산 관리 서비스(예컨대, AMS 서버(208))가 요청에 응답하여 클라이언트 디바이스(예컨대, 클라이언트 디바이스(202))로 반환할 수 있는 ARObject 데이터 객체들의 벡터를 포함할 수 있다.
본 발명 전반에 걸쳐 논의된 바와 같이, 개시된 시스템들 및 방법들은 인공 환경들 내에서 디지털 자산들을 제공하기 위한 전통적인 옵션들에 비해 하나 이상의 장점들을 제공할 수 있다. 예를 들면, 상기 설명된 바와 같이, 재국소화 서비스(예컨대, RLS 서버(206)), 자산 관리 서비스(예컨대, AMS 서버(208)), 및 프런트 엔드(예컨대, 클라이언트 디바이스(202))는 느슨하게 결합될 수 있다. 실제로, 일부 실시예들에서, 재국소화 서비스(예컨대, RLS 서버(206)) 및/또는 자산 관리 서비스(예컨대, AMS 서버(208))는 특정한 클라이언트 디바이스에 관한 정보를 거의 또는 전혀 유지하지 않을 수 있으며 실질적으로 앵커 지점 식별자들(예컨대, 재국소화 서비스로부터 클라이언트 디바이스들에 의해 수신되고 클라이언트 디바이스들에 의해 자산 관리 서비스로 전송된 앵커 지점 식별자들)을 통해 서로 통신할 수 있다. 이 느슨한 결합은 각각의 구성요소(예컨대, 재국소화 서비스, 자산 관리 서비스, 및 클라이언트 프런트 엔드)가 다른 구성요소와 독립적으로 동작하고/거나 개발하는 것을 가능하게 할 수 있다.
게다가, 재국소화 서비스, 자산 관리 서비스, 및 클라이언트 프런트 엔드가 느슨하게 결합될 수 있으므로, 재국소화 서비스 및/또는 자산 관리 서비스는 플랫폼에 구애받지 않을 수 있고 따라서, 재국소화 및/또는 자산 관리 서비스들을 임의의 적합한 AR 플랫폼을 실행하는 임의의 적합한 프론트 엔드 클라이언트에 제공할 수 있다.
또한, 본 명세서에서 설명된 시스템들 및 방법들은 전통적인 AR 시스템들과 비교할 때 증가된 유연성을 제공할 수 있다. 예를 들면, 재국소화 서비스 및/또는 자산 관리 서비스는 클라이언트 디바이스들에 위치 관련 데이터의 효율적인 운반을 제공할 수 있는 임의의 서비스와 같은 증강 현실 애플리케이션들에 더하여 다수의 유형들의 애플리케이션들을 제공할 수 있다. 예시로서, 일단 클라이언트 디바이스가 실세계 환경 내에서 재국소화되었으면, 사용자 및/또는 컴퓨팅 시스템은 클라이언트 디바이스의 위치와 관련된 임의의 데이터 요청할 수 있고, 자산 관리 서비스는 이를 클라이언트 디바이스에 전달할 수 있다.
부가적으로, 본 명세서에서 설명된 시스템들 및 방법들은 대역폭 리소스들을 더 보존하고, 클라이언트 디바이스의 컴퓨팅 리소스들을 효율적으로 활용하고/거나, 사용자 프라이버시를 가능하게 하고/거나 향상시킬 수 있다. 예를 들면, 상기 설명된 바와 같이, 본 명세서에서 설명된 시스템들 및 방법들의 일부 실시예들은 클라이언트 디바이스로 하여금 피처 설명자들을 추출하게 하고/거나 캡쳐된 원시 이미지로부터 피처 광선들을 생성하게 할 수 있고 클라이언트 디바이스로 하여금 이들 피처 설명자들 및/또는 피처 광선들을 원시 이미지 데이터 대신에 재국소화 서비스로 송신하게 할 수 있다. 이것은 피처 설명자들 및/또는 피처 광선들이 원시 이미지들보다 송신하는데 훨씬 적은 대역폭을 요구할 수 있으므로, 대역폭 리소스들을 보존할 수 있다. 부가적으로, 이러한 실시예들은 클라이언트 디바이스의 컴퓨팅 리소스들을 효율적으로 활용할 수 있고/거나 재국소화 서비스가 재국소화 프로세스의 일부로서 피처 추출 및/또는 피처 광선 생성 동작들을 수행하는 것으로부터 완화될 수 있기 때문에, 재국소화 서비스의 컴퓨팅 리소스들을 보존할 수 있다.
게다가, 일부 실시예들에서, 본 명세서에서 설명된 시스템들 및 방법들은 사용자 보안 및/또는 프라이버시를 향상시킬 수 있다. 원본 이미지 데이터는 추출된 피처 설명자들 및/또는 피처 광선들로부터 재구성하기 어렵거나 불가능할 수 있다. 따라서, 추출된 피처 설명자들 및/또는 피처 광선들을 원시 이미지 데이터 대신에 재국소화 서비스로 송신하는 것은 원시 이미지 데이터에 포함된 민감하고/거나 개인 정보를 의도하지 않은 공개로부터 효과적으로 보호할 수 있다.
상기 상세된 바와 같이, 본 명세서에서 설명되고/거나 도시된 컴퓨팅 디바이스들 및 시스템들은 본 명세서에서 설명된 모듈들 내에 포함된 것들과 같은 컴퓨터 판독가능한 지시들을 실행할 수 있는 임의의 유형 또는 형태의 컴퓨팅 디바이스 또는 시스템을 광범위하게 표현한다. 그들의 가장 기본적인 구성에서, 이들 컴퓨팅 디바이스(들)는 각각 적어도 하나의 메모리 디바이스 및 적어도 하나의 물리적 프로세서를 포함할 수 있다.
일부 예들에서, 용어 "메모리 디바이스"는 일반적으로, 데이터 및/또는 컴퓨터 판독가능한 지시들을 저장할 수 있는 임의의 유형 또는 형태의 휘발성 또는 비 휘발성 저장 디바이스 또는 매체를 언급한다. 하나의 예에서, 메모리 디바이스는 본 명세서에서 설명된 모듈들 중 하나 이상을 저장, 로드, 및/또는 유지할 수 있다. 메모리 디바이스들의 예들은 제한 없이, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 플래시 메모리, 하드 디스크 드라이브들(HDDs), 고체 상태 드라이브들(SSDs), 광 디스크 드라이브들, 캐시들, 그들 중 하나 이상의 변형들 또는 조합들, 또는 임의의 다른 적합한 저장 메모리를 포함한다.
일부 예들에서, 용어 "물리적 프로세서"는 일반적으로, 컴퓨터 판독가능한 지시들을 해석하고/거나 실행할 수 있는 임의의 유형 또는 형태의 하드웨어 구현 처리 장치를 언급한다. 하나의 예에서, 물리적 프로세서는 상기 설명된 메모리 디바이스에 저장된 하나 이상의 모듈들을 액세스하고/거나 수정할 수 있다. 물리적 프로세서들의 예들은 제한 없이, 마이크로프로세서들, 마이크로제어기들, 중앙 처리 장치들(CPUs), 소프트코어 프로세서들을 구현하는 필드 프로그래밍가능한 게이트 어레이들(FPGAs), 주문형 반도체들(ASICs), 그들 중 하나 이상의 부분들, 그들 중 하나 이상의 변형들 또는 조합들, 또는 임의의 다른 적합한 물리적 프로세서를 포함한다.
별개의 요소들로서 도시될지라도, 본 명세서에서 설명되고/거나 도시된 모듈들은 단일 모듈 또는 애플리케이션의 일부들을 표현할 수 있다. 게다가, 특정 실시예들에서, 이들 모듈들 중 하나 이상은 컴퓨팅 디바이스에 의해 실행될 때, 컴퓨팅 디바이스로 하여금 하나 이상의 작업들을 수행하게 할 수 있는 하나 이상의 소프트웨어 애플리케이션들 또는 프로그램들을 표현할 수 있다. 예를 들면, 본 명세서에서 설명되고/거나 도시된 모듈들 중 하나 이상은 본 명세서에서 설명되고/거나 도시된 컴퓨팅 디바이스들 또는 시스템들 중 하나 이상에서 실행되도록 저장되고 구성된 모듈들을 표현할 수 있다. 이들 모듈들 중 하나 이상은 또한, 하나 이상의 작업들을 수행하도록 구성된 하나 이상의 특수 목적 컴퓨터들의 전부 또는 일부들을 표현할 수 있다.
게다가, 본 명세서에서 설명된 모듈들 중 하나 이상은 데이터, 물리적 디바이스들, 및/또는 물리적 디바이스들의 표현들을 하나의 형태로부터 또 다른 형태로 변환할 수 있다. 예를 들면, 본 명세서에서 인용된 모듈들 중 하나 이상은 변환될 실세계 환경을 나타내는 정보(예컨대, 이미지 데이터)를 수신하고, 실세계 환경을 나타내는 정보를 변환하고, 실세계 환경 내의 클라이언트 디바이스의 포지션을 결정하기 위해 변환의 결과를 출력하고, 실세계 환경 내의 클라이언트 디바이스의 위치를 결정하기 위해 변환의 결과를 사용하며, 실세계 환경 내에서 디지털 자산을 제공하기 위해 변환의 결과를 저장할 수 있다. 부가적으로 또는 대안적으로, 본 명세서에서 인용된 모듈들 중 하나 이상은 컴퓨팅 디바이스에서 실행하고, 컴퓨팅 디바이스에 데이터를 저장하고/거나, 그렇지 않으면 컴퓨팅 디바이스와 상호작용함으로써 프로세서, 휘발성 메모리, 비 휘발성 메모리, 및/또는 물리적 컴퓨팅 디바이스의 임의의 다른 부분을 하나의 형태로부터 또 다른 형태로 변환할 수 있다.
일부 실시예들에서, 용어 "컴퓨터 판독가능한 매체" 및/또는 "비 일시적 컴퓨터 판독가능한 매체"는 컴퓨터 판독가능한 지시들을 저장하거나 전달할 수 있는 임의의 형태의 디바이스, 캐리어, 또는 매체를 언급할 수 있다. 컴퓨터 판독가능한 매체들의 예들은 제한 없이, 반송파들과 같은 송신 유형 매체들, 및 자기 저장 매체들(예컨대, 하드 디스크 드라이브들, 테이프 드라이브들, 및 플로피 디스크들), 광학 저장 매체들(예컨대, 컴팩트 디스크들(CDs), 디지털 비디오 디스크들(DVDs), 및 블루레이 디스크들), 전자 저장 매체들(예컨대, 고체 상태 드라이브들 및 플래시 매체들), 및 다른 분배 시스템들과 같은 비 일시적 유형 매체들을 포함한다.
본 발명의 실시예들은 인공 현실 시스템을 포함하거나 그와 결부하여 구현될 수 있다. 인공 현실은 예컨대, 가상 현실(VR), 증강 현실(AR), 혼합 현실(MR), 하이브리드 현실, 또는 그들의 일부 조합 및/또는 파생물들을 포함할 수 있는, 사용자에게 제공되기 전에 일부 방식으로 조정된 현실의 일 형태이다. 인공 현실 콘텐트는 캡쳐된(예컨대, 실세계) 콘텐트와 조합된 생성된 콘텐트 또는 완전히 생성된 콘텐트를 포함할 수 있다. 인공 현실 콘텐트는 비디오, 오디오, 햅틱 피드백, 또는 그들의 일부 조합을 포함할 수 있으며, 그들 중 임의의 것은 단일 채널로 또는 다수의 채널들(뷰어에게 3차원 효과를 생성하는 스테레오 비디오와 같음)로 제공될 수 있다. 부가적으로, 일부 실시예들에서, 인공 현실은 예컨대, 인공 현실에서 콘텐트를 생성하기 위해 사용되고/거나 그렇지 않으면, 인공 현실에서 사용되는 (예컨대, 인공 현실에서 활동들을 수행하는) 애플리케이션들, 제품들, 액세서리들, 서비스들, 또는 그들의 일부 조합과 또한 연관될 수 있다. 인공 현실 콘텐트를 제공하는 인공 현실 시스템은 호스트 컴퓨터 시스템에 연결된 머리 장착형 디스플레이(HMD), 독립형 HMD, 모바일 디바이스 또는 컴퓨팅 시스템, 또는 인공 현실 콘텐트를 한명 이상의 뷰어들에게 제공할 수 있는 임의의 다른 하드웨어 플랫폼을 포함하는 다양한 플랫폼들에서 구현될 수 있다.
본 명세서에서 설명되고/거나 도시된 프로세스 파라미터들 및 단계들의 시퀀스는 단지 예로서 주어지며 원하는대로 변경될 수 있다. 예를 들면, 본 명세서에서 도시되고/거나 설명된 단계들이 특정한 순서로 도시되거나 논의될 수 있지만, 이들 단계들은 반드시 도시되거나 논의된 순서로 수행될 필요는 없다. 본 명세서에서 설명되고/거나 도시된 다양한 예시적인 방법들은 또한, 본 명세서에서 설명되거나 도시된 단계들 중 하나 이상을 생략하거나 개시된 것들에 더하여 부가적인 단계들을 포함할 수 있다.
상기 설명은 당업자들이 본 명세서에 개시된 예시적인 실시예들의 다양한 양태들을 최상으로 활용하는 것을 가능하게 하도록 제공되었다. 이 예시적인 설명은 포괄적이거나 개시된 임의의 정확한 형태로 제한되도록 의도되지 않는다. 본 발명의 사상 및 범위를 벗어나지 않고 많은 수정들 및 변형들이 가능하다. 본 명세서에 개시된 실시예들은 제한적이지 않고 예시적인 모든 측면들에서 고려되어야 한다. 본 발명의 범위를 결정하는데 있어서 첨부된 청구항들 및 그들의 등가물들에 대한 참조가 행해져야 한다.
달리 언급되지 않는 한, 명세서 및 청구항들에서 사용된 바와 같이, 용어들 "~에 연결된" 및 "~에 결합된"(및 그들의 파생어들)은 직접 및 간접(즉, 다른 요소들 또는 구성요소들을 통한) 연결 둘 모두를 허용하는 것으로서 해석되어야 한다. 게다가, 명세서 및 청구항들에서 사용된 바와 같이, 용어들 "a" 또는 "an"은 "~중 적어도 하나"를 의미하는 것으로서 해석되어야 한다. 마지막으로, 사용의 용이를 위해, 명세서 및 청구항들에서 사용된 바와 같이, 용어들 "포함하는(including)" 및 "가지는"(및 그들의 파생어들)은 단어 "포함하는(comprising)"와 상호교환가능하고 동일한 의미를 갖는다.

Claims (33)

  1. 컴퓨터 구현 방법에 있어서:
    실세계 환경 내의 클라이언트 디바이스를 통해, 상기 실세계 환경을 나타내는 정보를 획득하는 단계;
    상기 실세계 환경을 나타내는 정보를 재국소화 서비스(relocalization service)로 송신하는 단계;
    상기 실세계 환경을 나타내는 정보에 응답하여 상기 재국소화 서비스로부터:
    상기 실세계 환경 내의 매핑된 포지션을 포함하는 앵커 지점과 연관된 정보; 및
    상기 앵커 지점의 매핑된 포지션에 대한 상기 클라이언트 디바이스의 실세계 환경 내의 결정된 포지션을 수신하는 단계;
    상기 앵커 지점과 연관된 식별자를 포함하는 질의를 자산 관리 서비스로 전송하는 단계;
    상기 질의에 응답하여 상기 자산 관리 서비스로부터, 적어도 하나의 디지털 자산을 나타내는 정보를 얻는 단계; 및
    상기 실세계 환경 내의 상기 클라이언트 디바이스의 결정된 포지션 및 상기 앵커 지점의 매핑된 포지션에 대한 인공 환경 내의 포지션에서 상기 디지털 자산을 제공하는 단계를 포함하는, 컴퓨터 구현 방법.
  2. 제 1 항에 있어서, 상기 실세계 환경을 나타내는 정보를 획득하는 단계는:
    상기 클라이언트 디바이스에 포함된 이미징 디바이스를 통해, 상기 실세계 환경의 적어도 일부의 이미지를 캡쳐하는 단계; 및
    상기 실세계 환경의 일부의 이미지를 캡쳐할 때의 상기 이미징 디바이스의 지향방향을 검출하는 단계를 포함하는, 컴퓨터 구현 방법.
  3. 제 2 항에 있어서, 상기 실세계 환경을 나타내는 정보를 획득하는 단계는 상기 이미지에 대한 상기 이미징 디바이스의 고유 파라미터의 효과를 감소시킴으로써 상기 이미지를 조정하는 단계를 더 포함하는, 컴퓨터 구현 방법.
  4. 제 3 항에 있어서, 상기 고유 파라미터는:
    상기 이미징 디바이스의 초점 길이;
    상기 이미징 디바이스의 주요 지점; 또는
    상기 이미징 디바이스의 스큐 계수(skew coefficient) 중 적어도 하나를 포함하는, 컴퓨터 구현 방법.
  5. 제 2 항에 있어서, 상기 실세계 환경을 나타내는 정보를 획득하는 단계는:
    상기 이미지에 포함된 적어도 하나의 이미지 피처(image feature)를 검출하는 단계;
    상기 이미지에 포함된 상기 이미지 피처에 기초하여 피처 설명자를 생성하는 단계; 및
    상기 실세계 환경을 나타내는 정보의 적어도 일부로서 상기 피처 설명자를 포함하는 단계를 더 포함하는, 컴퓨터 구현 방법.
  6. 제 5 항에 있어서, 상기 실세계 환경을 나타내는 정보를 획득하는 단계는:
    상기 이미지 피처 및 상기 이미지를 캡쳐할 때의 상기 이미징 디바이스의 지향방향에 기초하여 피처 광선(feature ray)을 식별하는 단계로서, 상기 피처 광선은:
    상기 이미징 디바이스와 연관된 지점에서의 원점; 및
    상기 피처 광선으로 하여금 상기 이미지 피처와 교차하게 하는 방향을 포함하는, 상기 피처 광선을 식별하는 단계; 및
    상기 실세계 환경을 나타내는 정보의 적어도 일부로서 상기 피처 광선을 포함하는 단계를 더 포함하는, 컴퓨터 구현 방법.
  7. 제 1 항에 있어서, 상기 실세계 환경을 나타내는 정보는:
    상기 클라이언트 디바이스에 포함된 이미징 디바이스에 의해 캡쳐된 상기 실세계 환경의 적어도 일부의 이미지;
    상기 이미징 디바이스에 의해 상기 이미지를 캡쳐할 때의 상기 이미징 디바이스의 지향방향;
    상기 이미징 디바이스의 고유 파라미터;
    상기 이미지에 포함된 이미지 피처;
    상기 이미지에 포함된 상기 이미지 피처에 기초한 피처 설명자; 또는
    상기 이미징 디바이스와 연관되고 상기 이미지 피처를 교차시키는 지점에서의 원점을 갖는 피처 광선 중 적어도 하나를 포함하는, 컴퓨터 구현 방법.
  8. 제 7 항에 있어서, 상기 실세계 환경을 나타내는 정보는:
    상기 실세계 환경 내의 적어도 하나의 매핑된 포지션에 대한 상기 클라이언트 디바이스의 이전에 결정된 포지션;
    상기 클라이언트 디바이스의 이전에 결정된 포지션과 연관된 신뢰 레벨;
    상기 클라이언트 디바이스와 연관된 위성 포지션 확인 시스템(GPS) 좌표; 또는
    상기 실세계 환경과 연관된 네트워크 식별자 중 적어도 하나를 더 포함하는, 컴퓨터 구현 방법.
  9. 제 1 항에 있어서,
    상기 실세계 환경 내의 상기 클라이언트 디바이스의 움직임을 추적하는 단계; 및
    상기 실세계 환경 내의 상기 클라이언트 디바이스의 움직임에 기초하여 상기 클라이언트 디바이스의 실세계 환경 내의 상기 결정된 포지션을 업데이트하는 단계를 더 포함하는, 컴퓨터 구현 방법.
  10. 제 9 항에 있어서, 상기 실세계 환경 내의 상기 클라이언트 디바이스의 움직임을 추적하는 단계는:
    상기 실세계 환경을 나타내는 정보를 상기 재국소화 서비스로 송신할 때, 상기 실세계 환경 내의 상기 클라이언트 디바이스의 초기 포지션을 결정하는 단계;
    상기 초기 포지션에 대응하는 부가적인 앵커 지점을 생성하는 단계; 및
    상기 부가적인 앵커 지점에 대한 상기 실세계 환경 내의 상기 클라이언트 디바이스의 움직임을 추적하는 단계를 포함하는, 컴퓨터 구현 방법.
  11. 제 1 항에 있어서,
    상기 실세계 환경을 나타내는 정보의 일부에 기초하여 상기 클라이언트 디바이스의 대략적인 포지션(coarse position)를 결정하는 단계;
    상기 대략적인 포지션 및 상기 실세계 환경을 나타내는 정보의 부가적인 부분에 기초하여 상기 클라이언트 디바이스의 미세한 포지션을 식별하는 단계; 및
    상기 클라이언트 디바이스의 미세한 포지션에 기초하여 상기 앵커 지점을 선택하는 단계를 더 포함하는, 컴퓨터 구현 방법.
  12. 시스템으로서:
    메모리에 저장된 획득 모듈로서, 실세계 환경 내의 클라이언트 디바이스를 통해, 상기 실세계 환경을 나타내는 정보를 획득하는, 상기 획득 모듈;
    메모리에 저장된 송신 모듈로서, 상기 실세계 환경을 나타내는 정보를 재국소화 서비스로 송신하는, 상기 송신 모듈;
    메모리에 저장된 수신 모듈로서, 상기 실세계 환경을 나타내는 정보에 응답하여 상기 재국소화 서비스로부터:
    상기 실세계 환경 내의 매핑된 포지션을 포함하는 앵커 지점과 연관된 정보; 및
    상기 앵커 지점의 매핑된 포지션에 대한 상기 클라이언트 디바이스의 실세계 환경 내의 결정된 포지션을 수신하는, 상기 수신 모듈;
    메모리에 저장된 전송 모듈로서, 상기 앵커 지점과 연관된 식별자를 포함하는 질의를 자산 관리 서비스로 전송하는, 상기 전송 모듈;
    메모리에 저장된 취득 모듈로서, 상기 질의에 응답하여 상기 자산 관리 서비스로부터, 적어도 하나의 디지털 자산을 나타내는 정보를 얻는, 상기 취득 모듈;
    메모리에 저장된 제공 모듈로서, 상기 실세계 환경 내의 상기 클라이언트 디바이스의 결정된 포지션 및 상기 앵커 지점의 매핑된 포지션에 대한 인공 환경 내의 포지션에서 상기 디지털 자산을 제공하는, 상기 제공 모듈; 및
    상기 획득 모듈, 상기 송신 모듈, 상기 수신 모듈, 상기 전송 모듈, 상기 취득 모듈, 및 상기 제공 모듈을 실행하는 적어도 하나의 물리적 프로세서를 포함하는, 시스템.
  13. 제 12 항에 있어서, 상기 획득 모듈은:
    상기 클라이언트 디바이스에 포함된 이미징 디바이스를 통해, 상기 실세계 환경의 적어도 일부의 이미지를 캡쳐하고;
    상기 실세계 환경의 일부의 이미지를 캡쳐할 때의 상기 이미징 디바이스의 지향방향을 검출함으로써;
    상기 실세계 환경을 나타내는 정보를 획득하는, 시스템.
  14. 제 13 항에 있어서, 상기 획득 모듈은 또한, 상기 이미지에 대한 상기 이미징 디바이스의 고유 파라미터의 효과를 감소시킴으로써 상기 이미지를 조정함으로써 상기 실세계 환경을 나타내는 정보를 획득하는, 시스템.
  15. 제 13 항에 있어서, 상기 획득 모듈은 또한:
    상기 이미지에 포함된 적어도 하나의 이미지 피처를 검출하고;
    상기 이미지에 포함된 상기 이미지 피처에 기초하여 피처 설명자를 생성하고;
    상기 실세계 환경을 나타내는 정보의 적어도 일부로서 상기 피처 설명자를 포함함으로써;
    상기 실세계 환경을 나타내는 정보를 획득하는, 시스템.
  16. 제 15 항에 있어서, 상기 획득 모듈은 또한:
    상기 이미지 피처 및 상기 이미지를 캡쳐할 때의 상기 이미징 디바이스의 지향방향에 기초하여 피처 광선을 식별하고 - 상기 피처 광선은:
    상기 이미징 디바이스와 연관된 지점에서의 원점; 및
    상기 피처 광선으로 하여금 상기 이미지 피처와 교차하게 하는 방향을 포함함 -;
    상기 실세계 환경을 나타내는 정보의 적어도 일부로서 상기 피처 광선을 포함함으로써;
    상기 실세계 환경을 나타내는 정보를 획득하는, 시스템.
  17. 제 12 항에 있어서,
    메모리에 저장된 추적 모듈로서:
    상기 실세계 환경 내의 상기 클라이언트 디바이스의 움직임을 추적하고;
    상기 실세계 환경 내의 상기 클라이언트 디바이스의 움직임에 기초하여 상기 클라이언트 디바이스의 실세계 환경 내의 상기 결정된 포지션을 업데이트하는, 상기 추적 모듈을 더 포함하고;
    상기 물리적 프로세서는 상기 추적 모듈을 더 실행하는, 시스템.
  18. 제 17 항에 있어서, 상기 추적 모듈은:
    상기 실세계 환경을 나타내는 정보를 상기 재국소화 서비스로 송신할 때, 상기 실세계 환경 내의 상기 클라이언트 디바이스의 초기 포지션을 결정하고;
    상기 초기 포지션에 대응하는 부가적인 앵커 지점을 생성하고;
    상기 부가적인 앵커 지점에 대한 상기 실세계 환경 내의 상기 클라이언트 디바이스의 움직임을 추적함으로써;
    상기 실세계 환경 내의 상기 클라이언트 디바이스의 움직임을 추적하는, 시스템.
  19. 제 12 항에 있어서, 메모리에 저장된 포지셔닝 모듈로서:
    상기 실세계 환경을 나타내는 정보의 일부에 기초하여 상기 클라이언트 디바이스의 대략적인 포지션을 결정하고;
    상기 대략적인 포지션 및 상기 실세계 환경을 나타내는 정보의 부가적인 부분에 기초하여 상기 클라이언트 디바이스의 미세한 포지션을 식별하고;
    상기 클라이언트 디바이스의 미세한 포지션에 기초하여 상기 앵커 지점을 선택하는, 상기 포지셔닝 모듈을 더 포함하고;
    상기 물리적 프로세서는 상기 포지셔닝 모듈을 더 실행하는, 시스템.
  20. 컴퓨터 판독가능한 지시들을 포함하는 비 일시적 컴퓨터 판독가능한 매체에 있어서,
    상기 컴퓨터 판독가능한 지시들은 컴퓨팅 시스템의 적어도 하나의 프로세서에 의해 실행될 때, 상기 컴퓨팅 시스템으로 하여금:
    실세계 환경 내의 클라이언트 디바이스를 통해, 상기 실세계 환경을 나타내는 정보를 획득하게 하고;
    상기 실세계 환경을 나타내는 정보를 재국소화 서비스로 송신하게 하고;
    상기 실세계 환경을 나타내는 정보에 응답하여 상기 재국소화 서비스로부터:
    상기 실세계 환경 내의 매핑된 포지션을 포함하는 앵커 지점과 연관된 정보; 및
    상기 앵커 지점의 매핑된 포지션에 대한 상기 클라이언트 디바이스의 실세계 환경 내의 결정된 포지션을 수신하게 하고;
    상기 앵커 지점과 연관된 식별자를 포함하는 질의를 자산 관리 서비스로 전송하게 하고;
    상기 질의에 응답하여 상기 자산 관리 서비스로부터, 적어도 하나의 디지털 자산을 나타내는 정보를 얻게 하고;
    상기 실세계 환경 내의 상기 클라이언트 디바이스의 결정된 포지션 및 상기 앵커 지점의 매핑된 포지션에 대한 인공 환경 내의 포지션에서 상기 디지털 자산을 제공하게 하는, 비 일시적 컴퓨터 판독가능한 매체.
  21. 컴퓨터 구현 방법에 있어서:
    실세계 환경 내의 클라이언트 디바이스를 통해, 상기 실세계 환경을 나타내는 정보를 획득하는 단계;
    상기 실세계 환경을 나타내는 정보를 재국소화 서비스로 송신하는 단계;
    상기 실세계 환경을 나타내는 정보에 응답하여 상기 재국소화 서비스로부터:
    상기 실세계 환경 내의 매핑된 포지션을 포함하는 앵커 지점과 연관된 정보; 및
    상기 앵커 지점의 매핑된 포지션에 대한 상기 클라이언트 디바이스의 실세계 환경 내의 결정된 포지션을 수신하는 단계;
    상기 앵커 지점과 연관된 식별자를 포함하는 질의를 자산 관리 서비스로 전송하는 단계;
    상기 질의에 응답하여 상기 자산 관리 서비스로부터, 적어도 하나의 디지털 자산을 나타내는 정보를 얻는 단계; 및
    상기 실세계 환경 내의 상기 클라이언트 디바이스의 결정된 포지션 및 상기 앵커 지점의 매핑된 포지션에 대한 인공 환경 내의 포지션에서 상기 디지털 자산을 제공하는 단계를 포함하는, 컴퓨터 구현 방법.
  22. 제 21 항에 있어서, 상기 실세계 환경을 나타내는 정보를 획득하는 단계는:
    상기 클라이언트 디바이스에 포함된 이미징 디바이스를 통해, 상기 실세계 환경의 적어도 일부의 이미지를 캡쳐하는 단계; 및
    상기 실세계 환경의 일부의 이미지를 캡쳐할 때의 상기 이미징 디바이스의 지향방향을 검출하는 단계를 포함하는, 컴퓨터 구현 방법.
  23. 제 22 항에 있어서, 상기 실세계 환경을 나타내는 정보를 획득하는 단계는 상기 이미지에 대한 상기 이미징 디바이스의 고유 파라미터의 효과를 감소시킴으로써 상기 이미지를 조정하는 단계를 더 포함하고;
    선택적으로, 상기 고유 파라미터는:
    상기 이미징 디바이스의 초점 길이;
    상기 이미징 디바이스의 주요 지점; 또는
    상기 이미징 디바이스의 스큐 계수 중 적어도 하나를 포함하는, 컴퓨터 구현 방법.
  24. 제 22 항 또는 제 23 항에 있어서, 상기 실세계 환경을 나타내는 정보를 획득하는 단계는:
    상기 이미지에 포함된 적어도 하나의 이미지 피처를 검출하는 단계;
    상기 이미지에 포함된 상기 이미지 피처에 기초하여 피처 설명자를 생성하는 단계; 및
    상기 실세계 환경을 나타내는 정보의 적어도 일부로서 상기 피처 설명자를 포함하는 단계를 더 포함하고;
    선택적으로, 상기 실세계 환경을 나타내는 정보를 획득하는 단계는:
    상기 이미지 피처 및 상기 이미지를 캡쳐할 때의 상기 이미징 디바이스의 지향방향에 기초하여 피처 광선을 식별하는 단계로서, 상기 피처 광선은:
    상기 이미징 디바이스와 연관된 지점에서의 원점; 및
    상기 피처 광선으로 하여금 상기 이미지 피처와 교차하게 하는 방향을 포함하는, 상기 피처 광선을 식별하는 단계; 및
    상기 실세계 환경을 나타내는 정보의 적어도 일부로서 상기 피처 광선을 포함하는 단계를 더 포함하는, 컴퓨터 구현 방법.
  25. 제 21 항 내지 제 24 항 중 어느 한 항에 있어서, 상기 실세계 환경을 나타내는 정보는:
    상기 클라이언트 디바이스에 포함된 이미징 디바이스에 의해 캡쳐된 상기 실세계 환경의 적어도 일부의 이미지;
    상기 이미징 디바이스에 의해 상기 이미지를 캡쳐할 때의 상기 이미징 디바이스의 지향방향;
    상기 이미징 디바이스의 고유 파라미터;
    상기 이미지에 포함된 이미지 피처;
    상기 이미지에 포함된 상기 이미지 피처에 기초한 피처 설명자; 또는
    상기 이미징 디바이스와 연관되고 상기 이미지 피처를 교차시키는 지점에서의 원점을 갖는 피처 광선 중 적어도 하나를 포함하고;
    선택적으로, 상기 실세계 환경을 나타내는 정보는:
    상기 실세계 환경 내의 적어도 하나의 매핑된 포지션에 대한 상기 클라이언트 디바이스의 이전에 결정된 포지션;
    상기 클라이언트 디바이스의 이전에 결정된 포지션과 연관된 신뢰 레벨;
    상기 클라이언트 디바이스와 연관된 위성 포지션 확인 시스템(GPS) 좌표; 또는
    상기 실세계 환경과 연관된 네트워크 식별자 중 적어도 하나를 더 포함하는, 컴퓨터 구현 방법.
  26. 제 21 항 내지 제 25 항 중 어느 한 항에 있어서,
    상기 실세계 환경 내의 상기 클라이언트 디바이스의 움직임을 추적하는 단계; 및
    상기 실세계 환경 내의 상기 클라이언트 디바이스의 움직임에 기초하여 상기 클라이언트 디바이스의 실세계 환경 내의 상기 결정된 포지션을 업데이트하는 단계를 더 포함하고;
    선택적으로, 상기 실세계 환경 내의 상기 클라이언트 디바이스의 움직임을 추적하는 단계는:
    상기 실세계 환경을 나타내는 정보를 상기 재국소화 서비스로 송신할 때, 상기 실세계 환경 내의 상기 클라이언트 디바이스의 초기 포지션을 결정하는 단계;
    상기 초기 포지션에 대응하는 부가적인 앵커 지점을 생성하는 단계; 및
    상기 부가적인 앵커 지점에 대한 상기 실세계 환경 내의 상기 클라이언트 디바이스의 움직임을 추적하는 단계를 포함하는, 컴퓨터 구현 방법.
  27. 제 21 항 내지 제 26 항 중 어느 한 항에 있어서,
    상기 실세계 환경을 나타내는 정보의 일부에 기초하여 상기 클라이언트 디바이스의 대략적인 포지션을 결정하는 단계;
    상기 대략적인 포지션 및 상기 실세계 환경을 나타내는 정보의 부가적인 부분에 기초하여 상기 클라이언트 디바이스의 미세한 포지션을 식별하는 단계; 및
    상기 클라이언트 디바이스의 미세한 포지션에 기초하여 상기 앵커 지점을 선택하는 단계를 더 포함하는, 컴퓨터 구현 방법.
  28. 시스템으로서:
    메모리에 저장된 획득 모듈로서, 실세계 환경 내의 클라이언트 디바이스를 통해, 상기 실세계 환경을 나타내는 정보를 획득하는, 상기 획득 모듈;
    메모리에 저장된 송신 모듈로서, 상기 실세계 환경을 나타내는 정보를 재국소화 서비스로 송신하는, 상기 송신 모듈;
    메모리에 저장된 수신 모듈로서, 상기 실세계 환경을 나타내는 정보에 응답하여 상기 재국소화 서비스로부터:
    상기 실세계 환경 내의 매핑된 포지션을 포함하는 앵커 지점과 연관된 정보; 및
    상기 앵커 지점의 매핑된 포지션에 대한 상기 클라이언트 디바이스의 실세계 환경 내의 결정된 포지션을 수신하는, 상기 수신 모듈;
    메모리에 저장된 전송 모듈로서, 상기 앵커 지점과 연관된 식별자를 포함하는 질의를 자산 관리 서비스로 전송하는, 상기 전송 모듈;
    메모리에 저장된 취득 모듈로서, 상기 질의에 응답하여 상기 자산 관리 서비스로부터, 적어도 하나의 디지털 자산을 나타내는 정보를 얻는, 상기 취득 모듈;
    메모리에 저장된 제공 모듈로서, 상기 실세계 환경 내의 상기 클라이언트 디바이스의 결정된 포지션 및 상기 앵커 지점의 매핑된 포지션에 대한 인공 환경 내의 포지션에서 상기 디지털 자산을 제공하는, 상기 제공 모듈; 및
    상기 획득 모듈, 상기 송신 모듈, 상기 수신 모듈, 상기 전송 모듈, 상기 취득 모듈, 및 상기 제공 모듈을 실행하는 적어도 하나의 물리적 프로세서를 포함하는, 시스템.
  29. 제 28 항에 있어서, 상기 획득 모듈은:
    상기 클라이언트 디바이스에 포함된 이미징 디바이스를 통해, 상기 실세계 환경의 적어도 일부의 이미지를 캡쳐하고;
    상기 실세계 환경의 일부의 이미지를 캡쳐할 때의 상기 이미징 디바이스의 지향방향을 검출함으로써;
    상기 실세계 환경을 나타내는 정보를 획득하는, 시스템.
  30. 제 29 항에 있어서,
    상기 획득 모듈은 또한, 상기 이미지에 대한 상기 이미징 디바이스의 고유 파라미터의 효과를 감소시킴으로써 상기 이미지를 조정함으로써 상기 실세계 환경을 나타내는 정보를 획득하고/거나;
    상기 획득 모듈은 또한:
    상기 이미지에 포함된 적어도 하나의 이미지 피처를 검출하고;
    상기 이미지에 포함된 상기 이미지 피처에 기초하여 피처 설명자를 생성하고;
    상기 실세계 환경을 나타내는 정보의 적어도 일부로서 상기 피처 설명자를 포함함으로써;
    상기 실세계 환경을 나타내는 정보를 획득하고;
    선택적으로, 상기 획득 모듈은 또한:
    상기 이미지 피처 및 상기 이미지를 캡쳐할 때의 상기 이미징 디바이스의 지향방향에 기초하여 피처 광선을 식별하고 - 상기 피처 광선은:
    상기 이미징 디바이스와 연관된 지점에서의 원점; 및
    상기 피처 광선으로 하여금 상기 이미지 피처와 교차하게 하는 방향을 포함함 -;
    상기 실세계 환경을 나타내는 정보의 적어도 일부로서 상기 피처 광선을 포함함으로써;
    상기 실세계 환경을 나타내는 정보를 획득하는, 시스템.
  31. 제 28 항 내지 제 30 항 중 어느 한 항에 있어서,
    메모리에 저장된 추적 모듈로서:
    상기 실세계 환경 내의 상기 클라이언트 디바이스의 움직임을 추적하고;
    상기 실세계 환경 내의 상기 클라이언트 디바이스의 움직임에 기초하여 상기 클라이언트 디바이스의 실세계 환경 내의 상기 결정된 포지션을 업데이트하는, 상기 추적 모듈을 더 포함하고;
    상기 물리적 프로세서는 상기 추적 모듈을 더 실행하고;
    선택적으로, 상기 추적 모듈은:
    상기 실세계 환경을 나타내는 정보를 상기 재국소화 서비스로 송신할 때, 상기 실세계 환경 내의 상기 클라이언트 디바이스의 초기 포지션을 결정하고;
    상기 초기 포지션에 대응하는 부가적인 앵커 지점을 생성하고;
    상기 부가적인 앵커 지점에 대한 상기 실세계 환경 내의 상기 클라이언트 디바이스의 움직임을 추적함으로써;
    상기 실세계 환경 내의 상기 클라이언트 디바이스의 움직임을 추적하는, 시스템.
  32. 제 28 항 내지 제 31 항 중 어느 한 항에 있어서,
    메모리에 저장된 포지셔닝 모듈로서:
    상기 실세계 환경을 나타내는 정보의 일부에 기초하여 상기 클라이언트 디바이스의 대략적인 포지션을 결정하고;
    상기 대략적인 포지션 및 상기 실세계 환경을 나타내는 정보의 부가적인 부분에 기초하여 상기 클라이언트 디바이스의 미세한 포지션을 식별하고;
    상기 클라이언트 디바이스의 미세한 포지션에 기초하여 상기 앵커 지점을 선택하는, 상기 포지셔닝 모듈을 더 포함하고;
    상기 물리적 프로세서는 상기 포지셔닝 모듈을 더 실행하는, 시스템.
  33. 컴퓨터 판독가능한 지시들을 포함하는 비 일시적 컴퓨터 판독가능한 매체에 있어서,
    상기 컴퓨터 판독가능한 지시들은 컴퓨팅 시스템의 적어도 하나의 프로세서에 의해 실행될 때, 상기 컴퓨팅 시스템으로 하여금:
    실세계 환경 내의 클라이언트 디바이스를 통해, 상기 실세계 환경을 나타내는 정보를 획득하게 하고;
    상기 실세계 환경을 나타내는 정보를 재국소화 서비스로 송신하게 하고;
    상기 실세계 환경을 나타내는 정보에 응답하여 상기 재국소화 서비스로부터:
    상기 실세계 환경 내의 매핑된 포지션을 포함하는 앵커 지점과 연관된 정보; 및
    상기 앵커 지점의 매핑된 포지션에 대한 상기 클라이언트 디바이스의 실세계 환경 내의 결정된 포지션을 수신하게 하고;
    상기 앵커 지점과 연관된 식별자를 포함하는 질의를 자산 관리 서비스로 전송하게 하고;
    상기 질의에 응답하여 상기 자산 관리 서비스로부터, 적어도 하나의 디지털 자산을 나타내는 정보를 얻게 하고;
    상기 실세계 환경 내의 상기 클라이언트 디바이스의 결정된 포지션 및 상기 앵커 지점의 매핑된 포지션에 대한 인공 환경 내의 포지션에서 상기 디지털 자산을 제공하게 하는, 비 일시적 컴퓨터 판독가능한 매체.
KR1020217019400A 2018-11-30 2019-04-24 느슨하게 결합된 재국소화 서비스 및 자산 관리 서비스를 통해 인공 환경들 내에서 디지털 자산들을 제공하기 위한 시스템들 및 방법들 KR20210097145A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/205,255 2018-11-30
US16/205,255 US11132841B2 (en) 2018-11-30 2018-11-30 Systems and methods for presenting digital assets within artificial environments via a loosely coupled relocalization service and asset management service
PCT/US2019/029021 WO2020112161A1 (en) 2018-11-30 2019-04-24 Systems and methods for presenting digital assets within artificial environments via a loosely coupled relocalization service and asset management service

Publications (1)

Publication Number Publication Date
KR20210097145A true KR20210097145A (ko) 2021-08-06

Family

ID=66912903

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217019400A KR20210097145A (ko) 2018-11-30 2019-04-24 느슨하게 결합된 재국소화 서비스 및 자산 관리 서비스를 통해 인공 환경들 내에서 디지털 자산들을 제공하기 위한 시스템들 및 방법들

Country Status (6)

Country Link
US (3) US11132841B2 (ko)
EP (1) EP3888054A1 (ko)
JP (1) JP7355821B2 (ko)
KR (1) KR20210097145A (ko)
CN (1) CN113396442A (ko)
WO (1) WO2020112161A1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3640767A1 (de) * 2018-10-17 2020-04-22 Siemens Schweiz AG Verfahren zum bestimmen mindestens eines bereichs in mindestens einem eingabemodell für mindestens ein zu platzierendes element
US11132841B2 (en) 2018-11-30 2021-09-28 Facebook Technologies, Llc Systems and methods for presenting digital assets within artificial environments via a loosely coupled relocalization service and asset management service
US10940387B2 (en) * 2019-03-15 2021-03-09 Disney Enterprises, Inc. Synchronized augmented reality gameplay across multiple gaming environments
US11217011B2 (en) * 2019-04-19 2022-01-04 Facebook Technologies, Llc. Providing semantic-augmented artificial-reality experience
DE102020111318A1 (de) * 2019-04-30 2020-11-05 Apple Inc. Lokalisieren von inhalten in einer umgebung
CN111859199A (zh) 2019-04-30 2020-10-30 苹果公司 在环境中定位内容
US11004256B2 (en) * 2019-05-08 2021-05-11 Citrix Systems, Inc. Collaboration of augmented reality content in stereoscopic view in virtualized environment
US11227007B2 (en) * 2019-07-23 2022-01-18 Obayashi Corporation System, method, and computer-readable medium for managing image
US20210287382A1 (en) * 2020-03-13 2021-09-16 Magic Leap, Inc. Systems and methods for multi-user virtual and augmented reality
US11544343B1 (en) 2020-10-16 2023-01-03 Splunk Inc. Codeless anchor generation for detectable features in an environment
US11200754B1 (en) * 2020-12-22 2021-12-14 Accenture Global Solutions Limited Extended reality environment generation
US11657568B2 (en) * 2021-04-30 2023-05-23 Verizon Patent And Licensing Inc. Methods and systems for augmented reality tracking based on volumetric feature descriptor data
US20220414988A1 (en) * 2021-06-28 2022-12-29 Microsoft Technology Licensing, Llc Guidance system for the creation of spatial anchors for all users, including those who are blind or low vision

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6975352B2 (en) * 2000-12-18 2005-12-13 Xerox Corporation Apparatus and method for capturing a composite digital image with regions of varied focus and magnification
DE102004018813A1 (de) * 2004-04-19 2006-02-23 Ibeo Automobile Sensor Gmbh Verfahren zur Erkennung und/oder Verfolgung von Objekten
JP5765019B2 (ja) 2011-03-31 2015-08-19 ソニー株式会社 表示制御装置、表示制御方法、およびプログラム
JP5741160B2 (ja) 2011-04-08 2015-07-01 ソニー株式会社 表示制御装置、表示制御方法、およびプログラム
US20130293530A1 (en) * 2012-05-04 2013-11-07 Kathryn Stone Perez Product augmentation and advertising in see through displays
US9218685B2 (en) * 2012-06-05 2015-12-22 Apple Inc. System and method for highlighting a feature in a 3D map while preserving depth
US20150123966A1 (en) 2013-10-03 2015-05-07 Compedia - Software And Hardware Development Limited Interactive augmented virtual reality and perceptual computing platform
US20160027218A1 (en) * 2014-07-25 2016-01-28 Tom Salter Multi-user gaze projection using head mounted display devices
JP6361714B2 (ja) 2015-09-30 2018-07-25 キヤノンマーケティングジャパン株式会社 情報処理装置、情報処理システム、その制御方法及びプログラム
KR101720132B1 (ko) 2016-03-17 2017-03-27 주식회사 엔토소프트 측위 정보를 기반으로 복수의 사용자 간 동일한 증강 현실 영상을 공유하는 방법 및 그 시스템
US20180158156A1 (en) * 2016-12-02 2018-06-07 Bank Of America Corporation Property Assessments Using Augmented Reality User Devices
US10466953B2 (en) * 2017-03-30 2019-11-05 Microsoft Technology Licensing, Llc Sharing neighboring map data across devices
GB2572786B (en) 2018-04-10 2022-03-09 Advanced Risc Mach Ltd Image processing for augmented reality
US11132841B2 (en) 2018-11-30 2021-09-28 Facebook Technologies, Llc Systems and methods for presenting digital assets within artificial environments via a loosely coupled relocalization service and asset management service

Also Published As

Publication number Publication date
JP2022509640A (ja) 2022-01-21
US20230334798A1 (en) 2023-10-19
CN113396442A (zh) 2021-09-14
JP7355821B2 (ja) 2023-10-03
EP3888054A1 (en) 2021-10-06
WO2020112161A1 (en) 2020-06-04
US11132841B2 (en) 2021-09-28
US20200175764A1 (en) 2020-06-04
US11715269B1 (en) 2023-08-01

Similar Documents

Publication Publication Date Title
US11715269B1 (en) Systems and methods for presenting digital assets within artificial environments via a loosely coupled relocalization service and asset management service
CN107430686B (zh) 用于移动设备定位的区域描述文件的众包创建和更新
Ventura et al. Global localization from monocular slam on a mobile phone
EP3295129B1 (en) Privacy filtering of area description file prior to upload
US10937214B2 (en) System and method for merging maps
KR20220009393A (ko) 이미지 기반 로컬화
Arth et al. Real-time self-localization from panoramic images on mobile devices
US9031283B2 (en) Sensor-aided wide-area localization on mobile devices
US20160335275A1 (en) Privacy-sensitive query for localization area description file
US20190197709A1 (en) Graphical coordinate system transform for video frames
JP2022544717A (ja) リアルタイム複数モダリティ画像アライメントのためのシステム及び方法
JP2020507853A (ja) 3次元点群の再構成のための方法および装置
BR112015023345B1 (pt) Criação in situ de alvos planos de recurso natural
KR102197615B1 (ko) 증강 현실 서비스를 제공하는 방법 및 증강 현실 서비스를 제공하기 위한 서버
WO2017041740A1 (en) Methods and systems for light field augmented reality/virtual reality on mobile devices
CN112070175B (zh) 视觉里程计方法、装置、电子设备及存储介质
Etzold et al. MIPos: towards mobile image positioning in mixed reality web applications based on mobile sensors
Navares-Vázquez et al. Virtual seeds for indoor point cloud segmentation with hololens 2
EP4261783A1 (en) Using cloud computing to improve accuracy of pose tracking
Gao User-oriented markerless augmented reality framework based on 3D reconstruction and loop closure detection
Jiang et al. Monocular visual odometry-based 3D-2D motion estimation
Kallin Clarke Markerless Augmented Reality for Visualization of 3D Objects in the Real World
CN112070175A (zh) 视觉里程计方法、装置、电子设备及存储介质
Ventura Wide-Area Visual Modeling and Tracking for Mobile Augmented Reality
Crijns et al. AUGMENTED REALITY FOR