KR102689634B1 - 클라우드 기반 증강 현실 - Google Patents

클라우드 기반 증강 현실 Download PDF

Info

Publication number
KR102689634B1
KR102689634B1 KR1020227044329A KR20227044329A KR102689634B1 KR 102689634 B1 KR102689634 B1 KR 102689634B1 KR 1020227044329 A KR1020227044329 A KR 1020227044329A KR 20227044329 A KR20227044329 A KR 20227044329A KR 102689634 B1 KR102689634 B1 KR 102689634B1
Authority
KR
South Korea
Prior art keywords
map data
client device
image
environment
map
Prior art date
Application number
KR1020227044329A
Other languages
English (en)
Other versions
KR20230003646A (ko
Inventor
로스 에드워드 핀만
시 잉 다이아나 후
Original Assignee
나이앤틱, 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 나이앤틱, 인크. filed Critical 나이앤틱, 인크.
Publication of KR20230003646A publication Critical patent/KR20230003646A/ko
Application granted granted Critical
Publication of KR102689634B1 publication Critical patent/KR102689634B1/ko

Links

Classifications

    • 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
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/05Geographic models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/04Indexing scheme for image data processing or generation, in general involving 3D image data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/08Indexing scheme for image data processing or generation, in general involving all processing steps from image acquisition to 3D model generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2004Aligning objects, relative positioning of parts

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Remote Sensing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Processing Or Creating Images (AREA)
  • Image Analysis (AREA)
  • Closed-Circuit Television Systems (AREA)

Abstract

증강 현실 시스템은 클라이언트 장치 상에 컴퓨터 매개 현실을 생성한다. 클라이언트 장치는 환경의 이미지 데이터를 캡처하도록 구성된 카메라 및 클라이언트 장치의 지리적 위치를 기술하는 위치 데이터를 캡처하기 위한 위치 센서를 포함하는 센서들을 갖는다. 클라이언트 장치는 현실 증강을 위해 가상 객체 생성에 사용하기 위해 이미지 데이터 및 위치 데이터를 갖는 3 차원(3-D) 맵을 생성한다. 클라이언트 장치는 생성된 3-D 맵을 외부 서버에 전송하고, 외부 서버는 이 3-D 맵을 이용하여 외부 서버에 저장된 월드 맵을 업데이트할 수 있다. 외부 서버는 월드 맵의 로컬 부분을 클라이언트 장치로 보낸다. 클라이언트 장치는 클라이언트 장치에 디스플레이될 매핑 포인트에 컴퓨터 매개 현실 이미지를 생성하기 위해 클라이언트 장치와 매핑 포인트 사이의 거리를 판정한다.

Description

클라우드 기반 증강 현실 {CLOUD ENABLED AUGMENTED REALITY}
본 출원은 2017년 7월 7일에 출원된 미국 가출원 제62/529,492호 및 2018년 7월 6일에 출원된 미국 가출원 제16/029,530호의 우선권을 주장하며, 이 둘 모두 그 전체가 본 명세서에 참조로서 통합되어 있다.
본 발명은 일반적으로 컴퓨터 매개 현실 시스템(computer-mediated reality system)에 관한 것으로, 보다 상세하게는 클라이언트 장치에 의해 수집된 데이터로부터 3-D 맵을 생성하는 증강 현실(AR) 시스템에 관한 것이다.
컴퓨터 매개 현실 기술은 휴대용 또는 웨어러블 장치를 가진 사용자가 그 장치를 통해 볼 때 환경의 시각적 또는 청각적 인식을 더하거나, 빼거나 또는 다르게 변경하는 것을 가능하게 해준다. 증강 현실(AR)은 컴퓨팅 장치에서 생성된 감각 입력을 사용하여 물리적, 실세계 환경의 실시간 인식을 특별하게 변경하는 컴퓨터 매개 현실의 한 유형이다.
특정 실시예에 따르면, 방법은 컴퓨터 매개 현실 데이터를 생성한다. 상기 방법은 클라이언트 장치에서 3 차원(3-D) 맵 데이터 및 카메라 위치 데이터를 생성하는 단계를 포함한다. 상기 방법은 또한 3-D 맵 데이터 및 클라이언트 데이터를 외부 서버로 전송하는 단계, 외부 서버로부터 클라이언트 장치에서 월드 맵 데이터를 수신하는 단계 및 클라이언트 장치에서 컴퓨터 매개 현실 이미지를 생성하는 단계를 포함한다. 월드 맵 데이터는 3-D 맵 데이터를 이용하여 생성될 수 있다.
다른 특정 실시예에 따르면, 로컬 저장된 애니메이션 엔진을 포함하는 증강 현실 엔진이 휴대용 컴퓨터에서 실행된다. 애니메이션 엔진은 휴대용 컴퓨터에 통합된 카메라에 의해 생성된 디지털 이미지 스트림을 수신하는 제 1 입력을 포함한다. 디지털 이미지는 카메라에 의해 보여지는 환경의 근실시간의 뷰(view)를 나타낼 수 있다. 애니메이션 엔진은 또한 휴대용 컴퓨터에 통합된 지리적 위치 확인 시스템으로부터 지리적 위치를 수신하는 제 2 입력, 제 1 입력 및 제 2 입력을 수신하고 특정 시점에서의 카메라 위치와 하나 이상의 매핑 포인트 간의 거리를 추정하는 3D 매핑 엔진, 및 컴퓨터 생성 이미지로 오버레이된, 카메라에 의해 생성된 디지털 이미지 스트림을 포함하는 출력을 포함한다. 컴퓨터 생성 이미지는 3D 맵 내 특정 위치에 놓일 수 있고, 사용자가 카메라를 공간 내 다른 위치로 이동시킬 때 그 특정 위치에 위치를 유지한다. 로컬 저장된 애니메이션 엔진과 네트워크 통신하는 로컬 저장되지 않은 객체 검출 엔진은 3D 맵 내 객체를 검출하고 검출된 객체의 표시(예를 들어, 하나의 유형과 같은 위치 및 식별정보)를 휴대용 컴퓨터에 반환하기 위해 사용될 수 있다. 객체 검출 엔진은 카메라에 의해 생성된 디지털 이미지 스트림으로부터의 디지털 이미지를 포함하는 로컬 저장된 애니메이션 엔진으로부터 수신된 제 1 입력 및 로컬 저장된 애니메이션 엔진으로부터 수신된 디지털 이미지와 연관된 지리적 위치를 포함하는 로컬 저장된 애니메이션 엔진으로부터 수신된 제 2 입력을 사용할 수 있다.
본 개시물의 다른 특징 및 장점이 아래에 설명된다.
도 1은 일 실시예에 따른, 증강 현실 데이터를 생성 및 디스플레이하기 위한 네트워크 컴퓨팅 환경을 도시한다.
도 2는 일 실시예에 따른, 증강 현실 데이터를 생성 및 디스플레이하기 위한 도 1의 컴퓨팅 시스템에 의해 실행 가능한 프로세스를 도시하는 흐름도이다.
시스템 및 방법은 (예를 들어, 센티미터 정도의 해상도로) 3 차원(3-D) 맵을 생성한 다음 그 3-D 맵을 사용하여 실세계와의 상호 작용을 가능하게 한다. 다양한 실시예에서, 이러한 매핑은 클라이언트 측(예를 들어, 전화 또는 헤드셋)에서 달성되고, 이전에 컴파일된 이미지를 제공하고 클라이언트 장치에 다시 매핑하는 백엔드 서버와 페어링된다.
일 실시예에서, 상기 시스템은 클라이언트 측(예를 들어, 휴대용 또는 착용식 전자 장치)에서 이미지 및 GPS(global positioning system) 좌표를 선택하고, 선택된 데이터를 3-D 맵과 페어링한다. 3-D 맵은 카메라 녹화 모듈 및 가속도계 또는 자이로스코프와 같은 관성 측정 유닛(IMU)으로부터 구축된다. 클라이언트 데이터는 서버로 전송된다. 서버 및 클라이언트 측 컴퓨팅 장치는 데이터를 함께 처리하여 객체와 지오메트리(geometry)를 수립하고 잠재적인 상호 작용을 판정한다. 잠재적인 상호 작용의 예는 AR 애니메이션을 통해 룸 내에서 이루어지는 상호 작용을 포함한다.
이미지 및 3-D 맵을 함께 사용함으로써, 상기 시스템은 신경망 또는 다른 유형의 모델을 사용하여 객체 검출 및 지오메트리 추정을 달성할 수 있다. 신경망의 일례는 연결된 간단한 유닛들의 큰 집합체(인공 뉴런)를 사용하는 기계 학습에서 사용되는 계산 모델이다. 이 유닛은 소프트웨어에서 함께 연결되며, 결합된 입력 신호가 충분히 큰 경우, 이 유닛은 자체 출력 신호를 발생시킨다. 상기 시스템은 AR 데이터를 상황에 맞게 이해하기 위해 딥 러닝(예를 들어, 다층 신경망)을 이용할 수 있다. 다른 유형의 모델은 다른 통계 모델 또는 다른 기계 학습 모델을 포함할 수 있다.
일부 실시예에서, 상기 시스템은 (예를 들어, 로컬 맵을 함께 링크함으로써) 로컬 맵들을 합쳐 하나 이상의 글로벌 맵을 생성한다. 합쳐진 맵은 서버에서 글로벌 맵으로 결합되어 환경 또는 "월드"의 디지털 맵을 생성한다. 예를 들어, 미리 정해진 임계치 내에 일치하는 부분을 포함하는, 유사한 GPS 좌표, 유사한 이미지 및 유사한 센서 데이터의 임의의 조합에 대하여 하나 이상의 장치에 의해 생성된 2 개의 로컬 맵은 중첩된 것으로 판정될 수 있다. 따라서, 이러한 중첩 부분들은 2 개의 로컬 맵을 서로 이어 붙이는데(stitch) 사용될 수 있고, 이는 (예를 들어, 글로벌 맵을 생성하는 것의 일부로서) 월드 맵 및 로컬 맵과의 일관성을 갖는 글로벌 좌표 시스템을 얻는데 도움을 줄 수 있다. 월드 맵은 (예컨대, 1 피트 정도의 해상도로) 특정 GPS 좌표에 저장되고, 3-D 포인트와 시각적 이미지를 통해 월드 내의 특정 장소까지 더 인덱싱되어 있는 맵 내에 이전에 저장된 애니메이션을 기억하는데 사용된다.
예시적인 프로세스는 데이터를 클라우드로 또는 클라우드로부터 매핑한다. 본 명세서에 기술된 바와 같이, 맵은 3-D 픽셀과 유사한 방식으로, 월드를 나타내는 공간 내의 3-D 포인트의 집합체이다. 이미지 데이터는 사용 가능하고 유용한 경우 3-D 맵과 함께 전송된다. 어떤 예는 이미지 데이터 없이 3-D 맵 데이터를 전송한다.
다양한 실시예에서, 클라이언트 장치는 프로세서에 의해 실행되는 3-D 알고리즘을 사용하여 3-D 맵을 생성한다. 클라이언트 장치는 이미지, 3-D 맵, GPS 데이터 및 임의의 다른 센서 데이터(예를 들어, IMU 데이터, 임의의 다른 위치 데이터)를 효율적인 방식으로 전송한다. 예를 들어, 이미지는 전송 또는 처리가 멈추지(bog down) 않도록 선택적으로 전송될 수 있다. 일례에서, 신규 시점이 있을 때 이미지가 선택적으로 전송될 수 있지만, 현재 시점에 대해 이미지가 이미 제공된 경우에는 그렇지 않을 수도 있다. 예를 들어, 카메라의 시야가 과거 또는 최근의 카메라 포즈로부터의 이전 이미지들과 최소한의 오버랩을 가질 때, 또는 객체의 예상되는 움직임에 의존하는 시간 크기 동안 그 시점이 관찰되지 않았을 때, 이미지가 알고리즘에 의해 전송되도록 지정된다. 다른 예로서, 현재 (또는 실질적으로 중첩된) 시점으로부터의 이전 이미지가 제공된 이래로 임계치 초과의 시간량이 경과한 경우 이미지가 제공될 수 있다. 이것은 맵과 연관된 저장된 이미지가 실세계 위치의 보다 현재의(또는 적어도 최근의) 상태를 반영하도록 업데이트될 수 있게 한다.
다양한 실시예에서, 클라우드 측 장치는 객체를 검출하기 위한 3-D 데이터 및 이미지에 기초한 실시간 검출 시스템을 포함하고, 실세계 환경의 지오메트리를 추정한다. 예를 들어, 실사가 아닌(예를 들어, 반-조밀 및/또는 조밀 3-D 복원) 룸의 3-D 맵은 이미지들을 통해 결정 가능할 수 있다.
서버는 이미지 및 3-D 데이터를 검출 시스템을 통해 융합하여 월드의 일관되고 쉽게 인덱싱된 3-D 맵, 또는 GPS 데이터를 사용하는 합성 실세계 맵을 구축한다. 저장된 후, 이 실세계 맵은 이전에 저장된 실세계 맵 및 관련 애니메이션을 찾기 위해 검색된다.
다양한 실시예들에서, 매핑 및 추적은 클라이언트 측에서 수행된다. 실세계에 대한 카메라의 위치와 함께, 실세계의 스파스 복원(sparse reconstruction)(세계의 디지털화)이 수집된다. 매핑은 포인트 클라우드 또는 3-D 포인트들의 집합체를 생성하는 것을 포함한다. 상기 시스템은 GPS 데이터와 함께, 포인트 클라우드 정보를 직렬화하고 전송함으로써 스파스 표현을 서버로 다시 보낸다. 클라우드 프로세싱은 멀티 플레이어 기능(실시간으로 또는 실시간에 가깝게 독립 장치들 간에 맵 데이터를 공유하는 것)이 작동하는 물리적 메모리(장치에 로컬 저장되지 않은 미래의 경험에 대한 맵 및 애니메이션 데이터를 저장하는 것) 및 객체 검출을 갖게 할 수 있다.
서버는 맵 및 이미지의 데이터베이스를 포함한다. 서버는 GPS 데이터를 사용하여 좌표에 대해 실세계 맵이 이미 저장되어 있는지 판정한다. 발견된 경우, 저장된 맵은 클라이언트 장치로 다시 전송된다. 예를 들어, 집에 있는 사용자는 그 집 위치와 관련된 이전에 저장된 데이터를 수신할 수 있다. 또한, 맵 및 이미지 데이터는 저장된 합성 실세계에 추가될 수 있다.
도 1은 일 실시예에 따른, 네트워크(104)를 통해 액세스되는 요소들과 협력하는 클라이언트 장치(102)를 포함하는 AR 컴퓨팅 시스템(100)의 블록도이다. 예를 들어, 이러한 요소들은 AR 데이터를 생성하기 위한 서버 장치의 구성요소일 수 있다. 클라이언트 장치(102)는, 예를 들어, 게임 엔진(106)(예를 들어, 유니티 게임(Unity game) 엔진 또는 다른 물리/렌더링 엔진) 및 AR 플랫폼(108)을 포함한다. AR 플랫폼(108)은 분할(segmentation) 및 객체 인식을 실행할 수 있다. 도 1에 도시된 AR 플랫폼(108)은 클라이언트 측 이미지 프로세싱(이미지 분할 및 로컬 3-D 추정 등을 포함)을 실행하는 복합 컴퓨터 비전 모듈(110)을 포함한다.
AR 플랫폼(108)은 또한 동시 로컬라이제이션 및 매핑(SLAM) 모듈(112)을 포함한다. 일 실시예에서, SLAM(112) 기능은 공간 내의 카메라의 위치를 찾기 위해 포인트 클라우드 및 추적을 구축하는 매핑 시스템을 포함한다. 이 예의 SLAM 프로세스는 애니메이션 또는 증강된 값을 실세계로 다시 더 재투영한다. 다른 실시예들에서, SLAM(112)은 클라이언트 장치(102) 주변 환경을 매핑하고 및/또는 그 환경 내의 클라이언트 장치(102)의 위치를 판정하기 위해 상이한 또는 추가적인 접근법을 사용할 수도 있다.
도 1의 실시예에서, AR 플랫폼(108)은 또한 객체 인식을 위한 맵 검색 모듈(114) 및 딥 러닝 모듈(116)을 포함한다. 맵 검색 모듈(114)은 (예를 들어, 네트워크(104)를 통해) 이전에 생성된 맵을 검색한다. 일부 실시예에서, 맵 검색 모듈(114)은 일부 맵(예를 들어, 사용자의 집 위치에 대한 맵)을 로컬 저장할 수 있다. 딥 러닝 모듈(116)은 객체 인식을 위한 기계 학습 알고리즘을 적용한다. 딥 러닝 모듈(116)은 (예를 들어, 네트워크(104)를 통해) 외부 시스템에 대한 트레이닝 후 기계 학습 알고리즘을 얻을 수 있다. 일부 실시예에서, 딥 러닝 모듈(116)은 또한 추가 모델 트레이닝을 가능하게 하기 위해 객체 인식 및/또는 사용자 피드백의 결과들을 제공할 수 있다.
도시된 실시예에서, 네트워크(104)를 통해 (예를 들어, 서버 컴퓨팅 장치에서) 액세스되는 컴포넌트는 원 월드 매핑 모듈(120), 객체 인지 모듈(122), 맵 데이터베이스(124), 객체 데이터베이스(126), 및 딥 러닝 트레이닝 모듈(128)과 통신하는 AR 백엔드 엔진(118)을 포함한다. 다른 실시예들에서, 추가적인 또는 상이한 구성요소들이 포함될 수 있다. 또한, 이 기능은 본 명세서에 기술된 것과 다르게 분배될 수 있다. 예를 들어, 객체 인식 기능의 일부 또는 전부는 클라이언트 장치(102)에서 수행될 수 있다.
원 월드 매핑 모듈(120)은 상이한 로컬 맵들을 함께 융합하여 합성 실세계 맵을 생성한다. 전술한 바와 같이, 맵을 최초로 생성했던 클라이언트 장치(102)로부터의 GPS 위치 데이터는 인접하거나 중첩 가능성이 있는 로컬 맵을 식별하는데 사용될 수 있다. 패턴 매칭은 맵의 중첩 부분을 식별하기 위해 또는 2 개의 로컬 맵이 (예를 들어, 이들이 동일한 객체의 반대측의 표현을 포함하기 때문에) 서로 인접한 것인지를 식별하는데 사용될 수 있다. 2 개의 로컬 맵이 중첩되거나 인접한 것으로 판정되면, 그 2 개의 맵이 서로 관련되어 있는 방식을 나타내는 매핑이 (예를 들어, 맵 데이터베이스에) 저장될 수 있다. 원 월드 매핑 모듈(120)은 합성 실세계 맵을 계속 개선하기 위해 하나 이상의 클라이언트 장치(102)로부터 수신된 로컬 맵들을 함께 융합하는 것을 계속할 수 있다. 일부 실시예에서, 원 월드 매핑 모듈(120)에 의한 개선은 합성 실세계 맵을 확장하는 것, 합성 실세계 맵의 누락된 부분을 채우는 것, 합성 실세계 맵의 일부를 업데이트하는 것, 복수의 클라이언트 장치(102) 등으로부터 수신된 로컬 맵들로부터의 중첩 부분들을 합치는 것을 포함할 수 있다. 원 월드 매핑 모듈(120)은 다양한 클라이언트 장치(102)의 맵 검색 모듈(114)에 의한 보다 효율적인 검색을 위해 합성 실세계 맵을 더 처리할 수 있다. 일부 실시예에서, 합성 실세계 맵의 처리는 합성 실세계 맵을 하나 이상의 타일 층으로 세분화하는 것 및 합성 실세계 맵의 다양한 부분을 태깅하는 것(tagging)을 포함할 수 있다. 이 층들은 각각의 줌과 상관될 수 있는데, 더 높은 레벨에 비해 더 낮은 레벨에서 합성 실세계 맵의 더 상세한 내용이 저장될 수 있다.
객체 인식 모듈(122)은 캡처된 이미지 및 수집된 3-D 데이터로부터의 객체 정보를 사용하여 그 데이터에 표현되어 있는 실세계의 특징들을 식별한다. 이러한 방식으로, 네트워크(104)는, 예를 들어, 의자가 하나의 3-D 위치에 있다고 판정하고 그 위치와 연관된 객체 데이터베이스(126)에 액세스한다. 딥 러닝 모듈(128)은 맵 정보를 객체 정보와 융합하는데 사용될 수 있다. 이러한 방식으로, AR 컴퓨팅 시스템(100)은 객체 인식 및 맵으로의 재 융합을 위해 3-D 정보를 연결할 수 있다. 객체 인식 모듈(122)은 다양한 클라이언트 장치(102)로부터 캡처된 이미지로부터 객체 정보를 지속적으로 수신하여 캡처된 이미지에서 식별된 다양한 객체를 객체 데이터베이스(126)에 추가할 수 있다. 일부 실시예에서, 객체 인식 모듈(122)은 캡처된 이미지에서 검출된 객체를 다양한 카테고리로 더 구별할 수 있다. 일 실시예에서, 객체 인식 모듈(122)은 캡처된 이미지 내의 객체가 고정된 것인지 또는 일시적인 것인지 식별할 수 있다. 예를 들어, 객체 인식 모듈(122)은 나무를 고정된 객체로 판정한다. 후속 인스턴스들에서, 객체 인식 모듈(122)은 일시적인 것으로 판정될 수 있는 객체들에 비해 고정된 객체들을 덜 빈번하게 업데이트할 수 있다. 예를 들어, 객체 인식 모듈(122)은 캡처된 이미지에서 동물을 일시적인 것으로 판정하고, 후속 이미지에서 그 동물이 더 이상 그 환경 내에 존재하지 않으면 그 객체를 제거할 수 있다.
맵 데이터베이스(124)는 클라이언트 장치(102)에 의해 생성된 맵 데이터를 저장하도록 구성된 하나 이상의 컴퓨터 판독 가능 매체를 포함한다. 맵 데이터는 한 위치에서 이미지 및 클라이언트 장치(102)에 의해 수집된 다른 센서 데이터와 관련지어 저장된 3-D 포인트 클라우드의 로컬 맵을 포함할 수 있다. 맵 데이터는 또한 상이한 로컬 맵들 간의 지리적 관계를 나타내는 매핑 정보를 포함할 수 있다. 이와 유사하게, 객체 데이터베이스(126)는 인식된 객체에 대한 정보를 저장하도록 구성된 하나 이상의 컴퓨터 판독 가능 매체를 포함한다. 예를 들어, 객체 데이터베이스(126)는 객체들의 속성과 함께 대응하는 위치를 갖는 알려진 객체(예를 들어, 의자, 책상, 나무, 건물 등)의 목록을 포함할 수 있다. 이 속성은 객체 유형에 대해 일반적이거나 객체의 각 인스턴스에 대하여 특별하게 정의될 수 있다(예컨대, 모든 의자는 가구로 간주될 수 있지만, 각 의자의 위치는 개별적으로 정의될 수 있다). 객체 데이터베이스(126)는 각 객체의 객체 유형에 기초하여 객체를 더 구별할 수 있다. 객체 유형은 유사한 특성에 기초하여 객체 데이터베이스(126) 내의 모든 객체를 그룹화할 수 있다. 예를 들어, 식물 객체 유형의 모든 객체는 객체 인식 모듈(122) 또는 딥 러닝 모듈(128)에 의해 나무, 덤불, 잔디, 덩굴 등과 같은 식물로 식별되는 객체일 수 있다. 맵 데이터베이스(124) 및 객체 데이터베이스(126)가 단일 엔티티로서 도시되어 있지만, 이들은(예를 들어, 분산형 데이터베이스와 같이) 복수의 장치의 복수의 저장 매체에 걸쳐 분산될 수 있다.
도 2는 일 실시예에 따른, AR 데이터를 생성 및 디스플레이하기 위해 클라이언트 장치(102) 및 서버 장치에 의해 실행되는 프로세스를 도시하는 흐름도이다. 클라이언트 장치(102) 및 서버 컴퓨팅 장치는 도 1에 도시된 것과 유사할 수 있다. 점선은 클라이언트 장치(102)와 서버 간의 데이터 통신을 나타내고, 실선은 단일 장치 내의(예를 들어, 클라이언트 장치(102) 또는 서버 내의) 데이터 통신을 나타낸다. 다른 실시예들에서, 이 기능은 장치들 간에 상이하게 분배될 수 있고 및/또는 상이한 장치들이 사용될 수도 있다.
단계(202)에서, 원시(raw) 데이터는 하나 이상의 센서에 의해 클라이언트 장치(102)에서 수집된다. 일 실시예에서, 원시 데이터는 이미지 데이터, 관성 측정 데이터 및 위치 데이터를 포함한다. 이미지 데이터는 물리적으로 또는 무선으로 클라이언트 장치(102)에 링크된 하나 이상의 카메라에 의해 캡처될 수 있다. 관성 측정 데이터는 자이로스코프, 가속도계 또는 이들의 조합을 사용하여 수집될 수 있으며, 최대 6 자유도(즉 3 자유도의 병진 운동 및 3 자유도의 회전 운동)까지의 관성 측정 데이터를 포함할 수 있다. 위치 데이터는 GPS(global position system) 수신기로 수집될 수 있다. 압력 레벨, 조명 레벨, 습도 레벨, 고도 레벨, 사운드 레벨, 오디오 데이터 등과 같은, 추가적인 원시 데이터는 다양한 다른 센서에 의해 수집될 수 있다. 원시 데이터는 클라이언트 장치(102)의 다양한 센서에 의해 이력적으로(historically) 취해진 원시 데이터를 기록할 수 있는 하나 이상의 저장 모듈에서 클라이언트 장치(102)에 저장될 수 있다.
클라이언트 장치(102)는 로컬 맵 스토리지(204)를 유지할 수 있다. 로컬 맵 스토리지(204)는 로컬 포인트 클라우드 데이터를 포함한다. 포인트 클라우드 데이터는 구축 가능한 메시 표면을 형성하는 공간 내 위치를 포함한다. 로컬 맵 스토리지(204)는 클라이언트 장치(102)에 의한 사용을 위한 용이한 검색을 위해 로컬 포인트 클라우드 데이터의 계층적 캐시를 포함할 수 있다. 로컬 맵 스토리지(204)는 로컬 포인트 클라우드 데이터에 융합되는 객체 정보를 추가로 포함할 수 있다. 객체 정보는 로컬 포인트 클라우드 데이터 내의 다양한 객체를 규정할 수 있다.
단계(202)에서 원시 데이터가 수집되면, 단계(206)에서 클라이언트 장치(102)는 맵이 초기화되는지 여부를 검사한다. 단계(206)에서 맵이 초기화되면, 클라이언트 장치(102)는 단계(208)에서 SLAM 기능을 초기화할 수 있다. SLAM 기능은 포인트 클라우드를 구축하고 초기화된 맵 상의 공간 내에서 카메라 위치를 찾기 위해 추적하는 매핑 시스템을 포함한다. 또한, 이 예의 SLAM 프로세스는 애니메이션 또는 증강된 값을 실세계로 다시 재투영한다. 맵이 초기화되지 않았다면, 단계(210)에서 클라이언트 장치(102)는 로컬 저장된 맵에 대하여 로컬 맵 스토리지를 검색할 수 있다. 로컬 맵 스토리지(204)에서 맵이 발견되면, 클라이언트 장치(102)는 SLAM 기능에 의한 사용을 위해 그 맵을 검색할 수 있다. 단계(210)에서 맵이 발견되지 않으면, 클라이언트 장치(102)는 단계(212)에서 초기화 모듈을 사용하여 새로운 맵을 생성할 수 있다.
새로운 맵이 생성되면, 초기화 모듈은 로컬 맵 스토리지(204)에 새로 생성된 맵을 저장할 수 있다. 클라이언트 장치(102)는 로컬 맵 스토리지(204) 내의 맵 데이터를 서버 측의 클라우드 맵 스토리지(220)와 정기적으로 동기화 할 수 있다. 맵 데이터를 동기화할 때, 클라이언트 장치(102) 상의 로컬 맵 스토리지(204)는 서버로 임의의 새로 생성된 맵을 전송할 수 있다. 단계(226)에서 서버 측은 클라이언트 장치(102)로부터 수신된 맵이 클라우드 맵 스토리지(220)에 이미 저장되어 있는지 여부에 대해 클라우드 맵 스토리지(220)를 검사한다. 저장되어 있지 않다면, 서버 측은 클라우드 맵 스토리지(220)에 저장하기 위해 단계(228)에서 새로운 맵을 생성한다. 서버는 대안적으로서 단계(228)에서 새로운 맵을 클라우드 맵 스토리지(220)의 기존 맵에 덧붙일 수 있다.
클라이언트 측으로 돌아가서, 클라이언트 장치(102)는 단계(214)에서 신규 시점이 검출되는지를 판정한다. 일부 실시예에서, 클라이언트 장치(102)는 캡처된 이미지의 스트림 내의 각각의 시점이 클라이언트 장치(102) 상에 저장된 기존의 시점과 임계치 미만의 오버랩을 가지는지 여부를 결정한다(예를 들어, 로컬 맵 스토리지(204)는 클라이언트 장치(102)에 의해 취해진 또는 클라우드 맵 스토리지(220)로부터 검색된 시점들을 저장할 수 있다). 다른 실시예들에서, 클라이언트 장치(102)는 다단계 판정에서 신규 시점이 검출되는지 여부를 단계(214)에서 판정한다. 상위 레벨에서, 클라이언트 장치(102)는 클라이언트 장치(102)의 지리적 위치의 로컬 반경 내에서 임의의 기존 시점들을 검색할 수 있다. 기존 시점들로부터, 클라이언트 장치(102)는 그 기존 시점들과 비교하여 해당 시점 내의 유사한 객체 또는 피처를 식별하기 시작할 수 있다. 예를 들어, 클라이언트 장치(102)는 해당 시점 내의 나무를 식별하고, 로컬 반경 내의 기존 시점으로부터 나무를 볼 수 있는 모든 기존 시점들을 더 줄일 수 있다. 클라이언트 장치(102)는 해당 시점을 기존의 시점들의 여과된 세트에 매칭시킴에 있어서 보다 강력한 추가 여과 층들을 사용할 수 있다. 일례에서, 클라이언트 장치(102)는 기계 학습 모델을 사용하여 해당 시점이 여과된 세트 내의 다른 시점과 일치하는지 여부를 판정한다(즉, 해당 시점이 기존 시점과 일치한다면 신규가 아니다). 신규 시점이 단계(214)에서 검출되면, 클라이언트 장치(102)는 단계(216)에서 로컬 환경 추론에 의해 수집된 데이터를 기록한다. 예를 들어, 클라이언트 장치(102)가 현재 신규 시점을 갖는다고 판정하면, 그 신규 시점으로 캡처된 이미지는 서버로(예를 들어, 서버 측의 맵/이미지 데이터베이스(218)로) 전송될 수 있다. 3-D 데이터와 함께 이미지를 언제 어떻게 전송하는지를 판정하기 위해 신규 시점 검출기 모듈이 사용될 수 있다. 로컬 환경 추론은 로컬 매핑 시스템 및 직렬화된 이미지 및/또는 맵 데이터에 대한 업데이트된 키 프레임을 포함할 수 있다. 로컬 환경 추론은 맵 내 주어진 위치의 다른 시점에 신규 시점을 맞추기 위해 서버에 의해 사용될 수 있다.
서버 측에서, (예를 들어, 최상부에 메시 데이터를 갖는 포인트 클라우드 정보를 포함하는) 신규 시점 데이터는 서버 측의 맵/이미지 데이터베이스(218)에 저장될 수 있다. 서버는 저장된 클라우드 맵 스토리지(220) 및 객체 데이터베이스(222)로부터의 실세계 맵의 상이한 부분들을 추가할 수 있다. 클라우드 환경 추론(224)(추가 구성요소 데이터를 포함)은 클라이언트 장치로 다시 전송될 수 있다. 추가 데이터는 로컬 맵 스토리지(204)에 저장될 포인트 및 메시 및 의미론적 라벨을 갖는 객체 데이터(예를 들어, 벽 또는 침대)를 포함할 수 있다.
도 3은 클라이언트 장치(102) 또는 서버로서 사용하기에 적합한 예시적인 컴퓨터(300)를 도시한 하이-레벨 블록도이다. 예시적인 컴퓨터(300)는 칩셋(304)에 연결된 적어도 하나의 프로세서(302)를 포함한다. 칩셋(304)은 메모리 컨트롤러 허브(320) 및 입/출력(I/O) 컨트롤러 허브(322)를 포함한다. 메모리(306) 및 그래픽 어댑터(312)는 메모리 컨트롤러 허브(320)에 연결되고, 디스플레이(318)는 그래픽 어댑터(312)에 연결된다. 저장 장치(308), 키보드(310), 포인팅 장치(314) 및 네트워크 어댑터(316)는 I/O 제어기 허브(322)에 연결된다. 컴퓨터(300)의 다른 실시예는 상이한 아키텍처를 갖는다.
도 3에 도시된 실시예에서, 저장 장치(308)는 하드 드라이브, 콤팩트 디스크 판독 전용 메모리(CD-ROM), DVD 또는 솔리드 스테이트 메모리 장치와 같은 비 일시적 컴퓨터 판독 가능 저장 매체이다. 메모리(306)는 프로세서(302)에 의해 사용되는 명령 및 데이터를 보유한다. 포인팅 장치(314)는 마우스, 트랙볼, 터치 스크린 또는 다른 유형의 포인팅 장치이며, 컴퓨터 시스템(300)에 데이터를 입력하기 위해 키보드(310)(온 스크린 키보드 일 수 있음)와 함께 사용된다. 다른 실시예에서, 컴퓨터(300)는 터치 스크린, 조이스틱, 버튼, 스크롤 휠 또는 이들의 임의의 조합 등과 같은 다양한 다른 입력 메커니즘을 갖는다. 그래픽 어댑터(312)는 이미지 및 기타 정보를 디스플레이(318)에 표시한다. 네트워크 어댑터(316)는 컴퓨터 시스템(300)을 하나 이상의 컴퓨터 네트워크에 연결한다(예를 들어, 네트워크 어댑터(316)는 네트워크(104)를 통해 클라이언트 장치(102)를 서버에 연결할 수 있다).
도 1의 개체에 의해 사용되는 컴퓨터의 유형은 실시예 및 그 개체에 의해 요구되는 처리 능력에 따라 다양할 수 있다. 예를 들어, 서버는 설명된 기능을 제공하기 위해 함께 작동하는 복수의 블레이드 서버를 포함하는 분산형 데이터베이스 시스템을 포함할 수 있다. 또한, 컴퓨터는 키보드(310), 그래픽 어댑터(312) 및 디스플레이(318)와 같은 상술한 구성요소 중 일부가 결여될 수 있다.
도 4는 일 실시예에 따른, 클라이언트 장치(예를 들어, 클라이언트 장치(102))에 의해 캡처된 이미지의 증강(augmentation)(400)를 보여주는 흐름도이다. 클라이언트 장치는 이미지 데이터 및 위치 데이터를 기록하기 위한 하나 이상의 센서 및 증강 이미지를 디스플레이하기 위한 하나 이상의 디스플레이 장치를 포함한다.
클라이언트 장치는 클라이언트 장치 상의 하나 이상의 센서로 이미지 데이터 및 위치 데이터를 수집한다(410). 일 실시예에서, 클라이언트 장치는 클라이언트 장치와 연관된 하나 이상의 카메라(예를 들어, 컴포넌트로서의 카메라, 클라이언트 장치에 물리적으로 링크된 카메라, 또는 클라이언트 장치에 무선으로 링크된 카메라)를 이용할 수 있다. 이미지 데이터는 또한 비디오 파일로서 저장되거나 비디오 파일로부터의 개별 프레임으로서 저장된 비디오 데이터를 포함할 수 있다. 다른 실시예에서, 클라이언트 장치는 GPS 수신기, 관성 측정 유닛(IMU), 가속도계, 자이로스코프, 고도계, 클라이언트 장치의 공간 위치를 판정하기 위한 다른 센서, 또는 이들의 일부 조합을 이용하여 클라이언트 장치의 위치 데이터를 기록할 수 있다.
클라이언트 장치는 환경의 3-D 맵 내의 클라이언트 장치의 위치를 판정한다(420). 일 실시예에서, 클라이언트 장치는 수집된 이미지 데이터 또는 위치 데이터에 기초하여 환경의 3-D 맵을 생성한다. 다른 실시예에서, 클라이언트 장치는 외부 시스템에 저장된 3-D 맵의 일부를 검색한다. 예를 들어, 클라이언트 장치는 네트워크(예를 들어, 네트워크(104))를 통해 서버로부터 합성 실세계 3-D 맵의 일부를 검색한다. 검색된 3-D 맵은 실세계 내의 객체를 3-D 맵 내의 공간 좌표에 매핑하는 포인트 클라우드 데이터를 포함한다. 클라이언트 장치는 위치 데이터를 이용하여 3-D 맵 내의 클라이언트 장치의 공간 위치를 판정한다. 추가 실시예에서, 클라이언트 장치는 또한 3-D 맵 내의 클라이언트 장치의 공간 위치를 판정하는 것을 돕기 위해 이미지 데이터를 이용한다.
클라이언트 장치는 환경의 3-D 맵 내의 클라이언트 장치에 대한 매핑 포인트의 거리를 판정한다(430). 클라이언트 장치는 3-D 맵 내의 매핑 포인트 및 매핑 포인트의 대응 좌표를 식별한다. 예를 들어, 클라이언트 장치는 3-D 맵 내의 객체, 예컨대, 나무, 표지판, 벤치, 분수 등을 식별한다. 클라이언트 장치는 클라이언트 장치와 매핑 포인트 사이의 거리를 판정하기 위해 클라이언트 장치의 위치뿐만 아니라 식별된 매핑 포인트의 좌표를 이용한다.
클라이언트 장치는 클라이언트 장치에 대한 매핑 포인트의 거리에 기초한 크기를 갖는 가상 객체를 매핑 포인트에 생성한다(440). 가상 객체는 클라이언트 장치에 저장된 실행 가능한 애플리케이션의 애플리케이션 프로그래밍 인터페이스에 의해 생성될 수 있다. 가상 객체는 또한 외부 서버에 의해 전송되어 3-D 맵 내의 매핑 포인트에 위치될 수 있다. 일부 실시예에서, 가상 객체는 클라이언트 장치의 다른 센서에 의해 수집된 다른 감각 데이터에 기초하여 클라이언트 장치에 의해 선택될 수 있다. 가상 객체는 클라이언트 장치의 매핑 포인트까지의 거리에 기초하여 크기가 변할 수 있다.
클라이언트 장치는 가상 객체를 갖는 이미지 데이터를 증강시킨다(450). 이미지 데이터 내의 가상 객체의 크기는 클라이언트 장치와 매핑 포인트까지의 판정된 거리에 의존한다. 이미지 데이터 내의 가상 객체의 외관은 또한 클라이언트 장치에 의해 수집된 다른 감각 데이터에 기초하여 변할 수 있다. 일부 실시예들에서, 클라이언트 장치는 주기적으로, 또는 가상 객체에 대응하는 입력(예를 들어, 가상 객체와 상호 작용하는 사용자 입력)이 클라이언트 장치에 의해 수신될 때, 또는 감각 데이터가 변할 때(예컨대, 클라이언트 장치의 회전 운동 또는 병진 운동, 일중 시간에 따른 변화 등) 가상 객체를 갖는 이미지 데이터를 업데이트한다.
클라이언트 장치는 가상 객체를 갖는 증강 이미지 데이터를 디스플레이한다(460). 클라이언트 장치는 가상 객체를 하나 이상의 디스플레이 상에 디스플레이할 수 있다. 클라이언트 장치가 증강 이미지 데이터를 지속적으로 업데이트하는 실시예에서, 클라이언트 장치는 또한 이미지 데이터의 증강에 대한 업데이트를 반영하도록 디스플레이를 업데이트한다.
당업자는 설명된 개념을 벗어나지 않고 본 명세서에 개시된 장치 및 기술을 다양하게 활용하고 변형 및 발전시킬 수 있다. 예를 들어, 본 개시물에 예시되거나 설명된 컴포넌트 또는 특징들은 도시되거나 설명된 위치, 설정 또는 환경에 제한되지 않는다. 본 개시물에 따른 장치의 예는 전술한 도면 중 하나 이상을 참조하여 설명된 것의 전부, 또는 그보다 더 적거나 상이한 구성요소를 포함할 수 있다. 따라서, 본 개시물은 여기에 설명된 특정 구현예로 제한되지 않고, 첨부된 청구 범위 및 그 등가물과 일치할 수 있는 가장 넓은 범위에 따라야 한다.

Claims (20)

  1. 클라이언트 장치에서 맵 데이터를 생성하기 위한 명령어를 저장하는 비일시적 컴퓨터 판독 가능 저장 매체로서, 상기 명령어는 상기 클라이언트 장치에 의해 실행될 때 상기 클라이언트 장치로 하여금 다음의 동작을 수행하게 하고, 상기 동작은:
    환경의 뷰(view)를 묘사하는 이미지를 수신하는 단계;
    상기 이미지의 시야와 기존 이미지 사이의 오버랩이 임계치 미만의 오버랩인 것에 기초하여 신규 시점으로서 상기 환경의 뷰를 식별하는 단계;
    상기 이미지로부터 3 차원(3D) 포인트 클라우드를 포함하는 신규 로컬 맵 데이터를 생성하는 단계; 및
    집합 맵 데이터와 융합하기 위해 신규 로컬 맵 데이터를 서버에 제공하는 단계; 를 포함하는, 비일시적 컴퓨터 판독 가능 저장 매체.
  2. 제1항에 있어서,
    상기 집합 맵 데이터는 상기 환경의 기존 이미지에 대응하는 데이터로부터 생성되는, 비일시적 컴퓨터 판독 가능 저장 매체.
  3. 제1항에 있어서,
    상기 동작은:
    서버로부터 상기 집합 맵 데이터의 부분을 수신하는 단계;
    상기 집합 맵 데이터의 일부 내의 매핑 포인트와 집합 맵 데이터의 일부 내의 클라이언트 장치의 공간 위치 사이의 거리를 판정하는 단계;
    상기 매핑 포인트와 상기 클라이언트 장치의 공간 위치 사이의 거리에 적어도 부분적으로 기초하여 집합 맵 데이터의 일부 내의 매핑 포인트에서 컴퓨터 매개 현실 이미지를 생성하는 단계; 및
    상기 매핑 포인트에서 컴퓨터 매개 현실 이미지를 디스플레이하는 단계; 를 더 포함하는, 비일시적 컴퓨터 판독 가능 저장 매체.
  4. 제3항에 있어서,
    상기 동작은:
    상기 집합 맵 데이터의 일부 내의 매핑 포인트와 상기 집합 맵 데이터의 일부 내의 클라이언트 장치의 후속 공간 위치 사이의 후속 거리를 판정하는 단계;
    후속 위치 데이터에 기초하여 상기 집합 맵 데이터의 일부 내의 매핑 포인트에서 컴퓨터 매개 현실 이미지를 조정하는 단계; 및
    조정된 컴퓨터 매개 현실 이미지를 매핑 포인트에서 디스플레이하는 단계; 를 더 포함하는, 비일시적 컴퓨터 판독 가능 저장 매체.
  5. 제3항에 있어서,
    상기 동작은 상기 이미지를 서버로 전송하는 단계를 더 포함하고, 상기 집합 맵 데이터의 일부는 상기 이미지에 기초하여 선택되는, 비일시적 컴퓨터 판독 가능 저장 매체.
  6. 제1항에 있어서,
    상기 신규 시점으로서 상기 환경의 뷰를 식별하는 단계는:
    상기 이미지의 시야와 기존 이미지 사이의 오버랩이 임계치 미만의 오버랩을 갖는지 판정하는 단계를 더 포함하는, 비일시적 컴퓨터 판독 가능 저장 매체.
  7. 제1항에 있어서,
    상기 신규 시점으로서 상기 환경의 뷰를 식별하는 단계는:
    기존 이미지 및 하나 이상의 다른 기존 이미지를 검색하는 단계로서, 상기 기존 이미지는 상기 클라이언트 장치의 지리적 위치의 임계 반경 내의 지리적 위치와 연관된 것인 기존 이미지 및 하나 이상의 다른 기존 이미지를 검색하는 단계;
    상기 이미지에서 식별된 특징 세트와 기존 이미지에서 식별된 특징의 비교에 기초하여 기존 이미지를 필터링하는 단계; 및
    상기 이미지가 필터링된 기존 이미지와 일치하지 않았는지 판정하는 단계; 를 포함하는, 비일시적 컴퓨터 판독 가능 저장 매체.
  8. 제1항에 있어서,
    상기 신규 시점으로서 상기 환경의 뷰를 식별하는 단계는:
    상기 환경의 뷰가 임계 시간 동안 수신되지 않았는지 판정하는 단계; 를 포함하는, 비일시적 컴퓨터 판독 가능 저장 매체.
  9. 제1항에 있어서,
    상기 신규 로컬 맵 데이터를 생성하는 단계는:
    상기 이미지로부터 상기 환경 내의 하나 이상의 객체를 식별하는 단계;
    상기 이미지로부터 상기 객체에 대한 공간 위치를 판정하는 단계; 및
    상기 객체들 각각에 대한 3D 포인트의 세트를 포함하는 3D 포인트 클라우드를 생성하는 단계; 를 포함하는, 비일시적 컴퓨터 판독 가능 저장 매체.
  10. 제9항에 있어서,
    상기 신규 로컬 맵 데이터를 생성하는 단계는:
    각각의 객체를 복수의 객체 유형 중 하나로 분류하는 단계를 더 포함하고, 상기 복수의 객체 유형은 실질적으로 동일한 공간 위치에 남아 있을 것으로 예상되는 객체를 기술하는 고정 유형을 포함하는 것인, 비일시적 컴퓨터 판독 가능 저장 매체.
  11. 제10항에 있어서,
    상기 복수의 객체 유형은 실질적으로 동일한 공간 위치에 남아 있을 것으로 예상되지 않는 객체를 기술하는 임시 유형을 더 포함하는, 비일시적 컴퓨터 판독 가능 저장 매체.
  12. 제1항에 있어서,
    상기 집합 맵 데이터는 타일 층들로 세분화되고, 상기 층들은 상이한 줌 레벨과 상관되는 것인, 비일시적 컴퓨터 판독 가능 저장 매체.
  13. 컴퓨팅 장치에 의하여 실행될 때 상기 컴퓨팅 장치로 하여금 다음을 포함하는 동작을 수행하게 하는 명령어를 저장하는 비일시적 컴퓨터 판독 가능 저장 매체로서, 상기 동작은:
    환경의 뷰(view)를 묘사하는 이미지를 수신하는 단계;
    상기 환경을 기술하는 맵 데이터를 저장하는 단계로서, 상기 맵 데이터는 상기 환경 내의 하나 이상의 시점으로부터 캡쳐된 이미지로부터 도출된 것인 맵 데이터를 저장하는 단계;
    상기 환경 내의 신규 시점에서 캡처된 이미지로부터 생성되고, 상기 환경을 공간적으로 기술하는 3D 포인트 클라우드를 포함하는 신규 로컬 맵 데이터를 수신하는 단계;
    상기 이미지와 상기 환경을 기술하는 맵 데이터의 일부를 비교하여 시점의 신규성을 확인하는 단계; 및
    수신된 신규 로컬 맵 데이터를 기초로 하여 상기 환경을 기술하는 맵 데이터를 업데이트하는 단계; 를 포함하는, 비일시적 컴퓨터 판독 가능 저장 매체.
  14. 제13항에 있어서,
    상기 동작은 클라이언트에 상기 맵 데이터의 일부를 전송하는 단계를 더 포함하는, 비일시적 컴퓨터 판독 가능 저장 매체.
  15. 제13항에 있어서,
    상기 동작은:
    상기 환경 내에 클라이언트 장치에 의하여 디스플레이될 가상 객체를 생성하는 단계; 및
    상기 클라이언트 장치에 상기 가상 객체를 전송하는 단계; 를 더 포함하는, 비일시적 컴퓨터 판독 가능 저장 매체.
  16. 제13항에 있어서,
    상기 이미지와 상기 맵 데이터의 일부를 비교하는 것은:
    주변 환경 내의 하나 이상의 시점으로부터 캡처된 이미지들의 시야 사이의 오버랩이 임계치 미만의 오버랩을 갖는지 판정하는 단계; 를 포함하는, 비일시적 컴퓨터 판독 가능 저장 매체.
  17. 제13항에 있어서,
    상기 이미지를 상기 맵 데이터의 부분과 비교하는 것은:
    상기 신규 로컬 맵 데이터를 제공한 클라이언트 장치의 지리적 위치를 수신하는 단계;
    상기 클라이언트 장치의 지리적 위치에 대응하는 상기 맵 데이터의 일부를 검색하는 단계로서, 상기 맵 데이터의 일부는 상기 클라이언트 장치의 지리적 위치의 임계 반경 내에서 하나 이상의 시점으로부터 캡처된 하나 이상의 대응 이미지로부터 도출된 것인 상기 클라이언트 장치의 지리적 위치에 대응하는 맵 데이터의 일부를 검색하는 단계;
    상기 이미지에서 식별된 특징 세트와 하나 이상의 시점으로부터 캡처된 하나 이상의 대응 이미지에서 식별된 특징의 비교에 기초하여 하나 이상의 시점을 필터링 하는 단계; 및
    상기 신규 시점이 필터링된 하나 이상의 시점과 일치하지 않는지 판정하는 단계; 를 포함하는, 비일시적 컴퓨터 판독 가능 저장 매체.
  18. 맵 데이터를 생성하는 방법에 있어서, 상기 방법은:
    환경의 뷰(view)를 묘사하는 이미지를 수신하는 단계;
    상기 이미지의 시야와 기존 이미지 사이의 오버랩이 임계치 미만의 오버랩인 것에 기초하여 신규 시점으로서 상기 환경의 뷰를 식별하는 단계;
    상기 이미지로부터 3 차원(3D) 포인트 클라우드를 포함하는 신규 로컬 맵 데이터를 생성하는 단계;
    집합 맵 데이터와 융합하기 위해 상기 신규 로컬 맵 데이터를 서버에 제공하는 단계; 를 포함하는, 방법.
  19. 제18항에 있어서,
    상기 방법은:
    서버로부터 상기 집합 맵 데이터의 일부를 수신하는 단계;
    상기 집합 맵 데이터의 일부 내의 매핑 포인트와 집합 맵 데이터의 일부 내의 클라이언트 장치의 공간 위치 사이의 거리를 판정하는 단계;
    상기 매핑 포인트와 상기 클라이언트 장치의 공간 위치 사이의 거리에 적어도 부분적으로 기초하여 집합 맵 데이터의 일부 내의 매핑 포인트에서 컴퓨터 매개 현실 이미지를 생성하는 단계; 및
    상기 매핑 포인트에서 컴퓨터 매개 현실 이미지를 디스플레이하는 단계; 를 더 포함하는, 방법.
  20. 제19항에 있어서,
    상기 방법은:
    상기 집합 맵 데이터의 일부 내의 매핑 포인트와 상기 집합 맵 데이터의 일부 내의 클라이언트 장치의 후속 공간 위치 사이의 후속 거리를 판정하는 단계;
    후속 위치 데이터에 기초하여 상기 집합 맵 데이터의 일부 내의 매핑 포인트에서 컴퓨터 매개 현실 이미지를 조정하는 단계; 및
    조정된 컴퓨터 매개 현실 이미지를 매핑 포인트에서 디스플레이하는 단계; 를 더 포함하는, 방법.
KR1020227044329A 2017-07-07 2018-07-07 클라우드 기반 증강 현실 KR102689634B1 (ko)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201762529492P 2017-07-07 2017-07-07
US62/529,492 2017-07-07
US16/029,530 US10885714B2 (en) 2017-07-07 2018-07-06 Cloud enabled augmented reality
US16/029,530 2018-07-06
KR1020207003149A KR102480362B1 (ko) 2017-07-07 2018-07-07 클라우드 기반 증강 현실
PCT/US2018/041164 WO2019010466A1 (en) 2017-07-07 2018-07-07 INCREASED REALITY THAT CAN USE THE CLOUD

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020207003149A Division KR102480362B1 (ko) 2017-07-07 2018-07-07 클라우드 기반 증강 현실

Publications (2)

Publication Number Publication Date
KR20230003646A KR20230003646A (ko) 2023-01-06
KR102689634B1 true KR102689634B1 (ko) 2024-07-30

Family

ID=64903345

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020207003149A KR102480362B1 (ko) 2017-07-07 2018-07-07 클라우드 기반 증강 현실
KR1020227044329A KR102689634B1 (ko) 2017-07-07 2018-07-07 클라우드 기반 증강 현실

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020207003149A KR102480362B1 (ko) 2017-07-07 2018-07-07 클라우드 기반 증강 현실

Country Status (8)

Country Link
US (3) US10885714B2 (ko)
EP (1) EP3649576A4 (ko)
JP (3) JP7179819B2 (ko)
KR (2) KR102480362B1 (ko)
CN (2) CN110892410B (ko)
AU (2) AU2018297358B2 (ko)
CA (1) CA3068645C (ko)
WO (1) WO2019010466A1 (ko)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11077365B2 (en) 2018-06-27 2021-08-03 Niantic, Inc. Low latency datagram-responsive computer network protocol
US10600230B2 (en) * 2018-08-10 2020-03-24 Sheng-Yen Lin Mesh rendering system, mesh rendering method and non-transitory computer readable medium
US20210319591A1 (en) * 2018-09-13 2021-10-14 Sony Corporation Information processing device, terminal device, information processing system, information processing method, and program
US11922489B2 (en) 2019-02-11 2024-03-05 A9.Com, Inc. Curated environments for augmented reality applications
US11288842B2 (en) 2019-02-15 2022-03-29 Interaptix Inc. Method and system for re-projecting and combining sensor data for visualization
US11420116B2 (en) 2019-02-25 2022-08-23 Niantic, Inc. Augmented reality mobile edge computing
US11461586B2 (en) * 2019-06-25 2022-10-04 International Business Machines Corporation Learned interaction with a virtual scenario
CN112785700B (zh) * 2019-11-08 2024-09-24 华为技术有限公司 虚拟物体显示方法、全局地图更新方法以及设备
US11489763B2 (en) 2019-12-20 2022-11-01 Niantic, Inc. Data hierarchy protocol for data transmission pathway selection
KR20220119664A (ko) * 2019-12-20 2022-08-30 나이앤틱, 인크. 3d 라인 정션을 통한 위치 판정 및 매핑
US11969651B2 (en) 2019-12-20 2024-04-30 Niantic, Inc. Merging local maps from mapping devices
KR102346090B1 (ko) * 2020-05-06 2021-12-31 광운대학교 산학협력단 체적 3d 비디오 데이터의 실시간 혼합 현실 서비스를 위해 증강 현실 원격 렌더링 방법
US11972576B2 (en) * 2020-06-30 2024-04-30 Lyft, Inc. Generating and fusing reconstructions using overlapping map segments
JP7336653B2 (ja) * 2020-10-26 2023-09-01 3アイ インコーポレイテッド ディープラーニングを利用した屋内位置測位方法
KR102449031B1 (ko) * 2020-10-26 2022-09-29 주식회사 쓰리아이 딥러닝을 이용한 실내 위치 측위 방법
CN112699884A (zh) * 2021-01-29 2021-04-23 深圳市慧鲤科技有限公司 定位方法、装置、电子设备及存储介质
CN113398577B (zh) * 2021-05-13 2024-04-09 杭州易现先进科技有限公司 一种线下空间的多人ar互动方法和系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120166074A1 (en) * 2010-12-23 2012-06-28 Research In Motion Limited Updating map data from camera images

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4115117B2 (ja) * 2001-10-31 2008-07-09 キヤノン株式会社 情報処理装置および方法
US7324687B2 (en) 2004-06-28 2008-01-29 Microsoft Corporation Color segmentation-based stereo 3D reconstruction system and process
US9024972B1 (en) 2009-04-01 2015-05-05 Microsoft Technology Licensing, Llc Augmented reality computing with inertial sensors
EP2430614B1 (de) * 2009-05-11 2013-09-18 Universität zu Lübeck Verfahren zur echtzeitfähigen, rechnergestützten analyse einer eine veränderliche pose enthaltenden bildsequenz
JP5471626B2 (ja) * 2010-03-09 2014-04-16 ソニー株式会社 情報処理装置、マップ更新方法、プログラム及び情報処理システム
WO2012018497A2 (en) * 2010-07-25 2012-02-09 Raytheon Company ENHANCED SITUATIONAL AWARENESS AND TARGETING (eSAT) SYSTEM
US8570320B2 (en) * 2011-01-31 2013-10-29 Microsoft Corporation Using a three-dimensional environment model in gameplay
KR101591579B1 (ko) 2011-03-29 2016-02-18 퀄컴 인코포레이티드 증강 현실 시스템들에서 실세계 표면들에의 가상 이미지들의 앵커링
US20120306850A1 (en) 2011-06-02 2012-12-06 Microsoft Corporation Distributed asynchronous localization and mapping for augmented reality
US20130249947A1 (en) * 2011-08-26 2013-09-26 Reincloud Corporation Communication using augmented reality
US8798840B2 (en) * 2011-09-30 2014-08-05 Irobot Corporation Adaptive mapping with spatial summaries of sensor data
US9064337B2 (en) * 2012-06-05 2015-06-23 Apple Inc. Method, system and apparatus for rendering a map with adaptive textures for map features
US10115202B2 (en) * 2012-12-27 2018-10-30 Arria Data2Text Limited Method and apparatus for motion detection
JP6281496B2 (ja) * 2013-02-01 2018-02-21 ソニー株式会社 情報処理装置、端末装置、情報処理方法及びプログラム
US20140267234A1 (en) * 2013-03-15 2014-09-18 Anselm Hook Generation and Sharing Coordinate System Between Users on Mobile
US20140323148A1 (en) * 2013-04-30 2014-10-30 Qualcomm Incorporated Wide area localization from slam maps
CN104616278B (zh) * 2013-11-05 2020-03-17 北京三星通信技术研究有限公司 三维点云兴趣点检测方法和系统
US20150206343A1 (en) * 2014-01-17 2015-07-23 Nokia Corporation Method and apparatus for evaluating environmental structures for in-situ content augmentation
US9582888B2 (en) 2014-06-19 2017-02-28 Qualcomm Incorporated Structured light three-dimensional (3D) depth map based on content filtering
US20170243403A1 (en) * 2014-11-11 2017-08-24 Bent Image Lab, Llc Real-time shared augmented reality experience
US10133947B2 (en) 2015-01-16 2018-11-20 Qualcomm Incorporated Object detection using location data and scale space representations of image data
US10185463B2 (en) * 2015-02-13 2019-01-22 Nokia Technologies Oy Method and apparatus for providing model-centered rotation in a three-dimensional user interface
US9652896B1 (en) * 2015-10-30 2017-05-16 Snap Inc. Image based tracking in augmented reality systems
US9984499B1 (en) * 2015-11-30 2018-05-29 Snap Inc. Image and point cloud based tracking and in augmented reality systems
US9934587B2 (en) * 2016-06-30 2018-04-03 Daqri, Llc Deep image localization
US10685489B2 (en) * 2017-03-02 2020-06-16 Daqri, Llc System and method for authoring and sharing content in augmented reality

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120166074A1 (en) * 2010-12-23 2012-06-28 Research In Motion Limited Updating map data from camera images

Also Published As

Publication number Publication date
KR20230003646A (ko) 2023-01-06
WO2019010466A1 (en) 2019-01-10
AU2018297358A1 (en) 2020-02-20
US20210082202A1 (en) 2021-03-18
KR102480362B1 (ko) 2022-12-22
JP2020526829A (ja) 2020-08-31
KR20200020937A (ko) 2020-02-26
JP7486565B2 (ja) 2024-05-17
CA3068645C (en) 2024-01-02
CA3068645A1 (en) 2019-01-10
AU2022268310B2 (en) 2024-06-13
JP2023022841A (ja) 2023-02-15
JP2024110426A (ja) 2024-08-15
EP3649576A1 (en) 2020-05-13
US11430189B2 (en) 2022-08-30
CN118587373A (zh) 2024-09-03
CN110892410A (zh) 2020-03-17
EP3649576A4 (en) 2020-11-04
US10885714B2 (en) 2021-01-05
US20190012840A1 (en) 2019-01-10
US20220351476A1 (en) 2022-11-03
AU2022268310A1 (en) 2022-12-15
AU2018297358B2 (en) 2022-09-15
CN110892410B (zh) 2024-06-07
JP7179819B2 (ja) 2022-11-29

Similar Documents

Publication Publication Date Title
KR102689634B1 (ko) 클라우드 기반 증강 현실
AU2022256192B2 (en) Multi-sync ensemble model for device localization
US11969651B2 (en) Merging local maps from mapping devices

Legal Events

Date Code Title Description
A107 Divisional application of patent
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant