KR20220145807A - 신경 네트워크를 사용한 깊이 추정 - Google Patents

신경 네트워크를 사용한 깊이 추정 Download PDF

Info

Publication number
KR20220145807A
KR20220145807A KR1020227003139A KR20227003139A KR20220145807A KR 20220145807 A KR20220145807 A KR 20220145807A KR 1020227003139 A KR1020227003139 A KR 1020227003139A KR 20227003139 A KR20227003139 A KR 20227003139A KR 20220145807 A KR20220145807 A KR 20220145807A
Authority
KR
South Korea
Prior art keywords
depth
depth map
image data
neural network
estimates
Prior art date
Application number
KR1020227003139A
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 KR20220145807A publication Critical patent/KR20220145807A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • G06T3/0006
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/02Affine transformations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/285Analysis of motion using a sequence of stereo image pairs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • G06T7/593Depth or shape recovery from multiple images from stereo images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10004Still image; Photographic image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • 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/20084Artificial neural networks [ANN]

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Graphics (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Multimedia (AREA)
  • Image Analysis (AREA)

Abstract

일 양태에 따라, 깊이 추정을 위한 방법은 센서 시스템으로부터 이미지 데이터를 수신하는 단계, 신경 네트워크에 의해, 상기 이미지 데이터에 기초하여 제1 깊이 맵을 생성하는 단계, 상기 제1 깊이 맵을 제1 스케일을 가지며; 상기 이미지 데이터와 연관된 깊이 추정치들을 획득하는 단계, 및 상기 깊이 추정치들을 사용하여, 상기 제1 깊이 맵을 제2 깊이 맵으로 변환하는 단계를 포함하고, 상기 제2 깊이 맵은 제2 스케일을 가진다.

Description

신경 네트워크를 사용한 깊이 추정
본 설명은 일반적으로 신경 네트워크를 사용한 깊이 추정과 관련된다.
깊이 추정은 이미지 데이터로부터 깊이(디스패리티)를 추정하는 컴퓨터 비전 설계 작업이다(예: RGB 이미지를 수신하고 깊이 이미지를 출력). 일부 종래 접근법에서, 장면의 다수의 카메라 및/또는 물리적 마커는 동일한 장면/객체의 다중 뷰로부터 깊이 맵을 재구성하는데 사용된다. 그러나 단일 이미지로부터 깊이 맵을 추정하려면 광범위한 계산 능력이 필요할 수 있으며 일부 경우에는 모바일 애플리케이션에 적합하지 않다.
일 양태에 따르면, 깊이 추정을 위한 방법은 센서 시스템으로부터 이미지 데이터를 수신하는 단계, 신경 네트워크에 의해, 상기 이미지 데이터에 기초하여 제1 깊이 맵을 생성하는 단계, 상기 제1 깊이 맵을 제1 스케일을 가지며; 상기 이미지 데이터와 연관된 깊이 추정치들을 획득하는 단계, 및 상기 깊이 추정치들을 사용하여, 상기 제1 깊이 맵을 제2 깊이 맵으로 변환하는 단계를 포함하고, 상기 제2 깊이 맵은 제2 스케일을 가진다.
일부 양태에 따르면, 방법은 다음 구성들(또는 이들의 임의의 조합) 중 하나 이상을 포함할 수 있다. 상기 방법은 상기 신경 네트워크에 의해, 상기 이미지 데이터에 기초하여 표면 법선들을 생성하는 단계를 포함하고, 상기 제1 깊이 맵은 상기 표면 법선들 및 깊이 추정치들을 사용하여 상기 제2 깊이 맵으로 변환된다. 상기 방법은 상기 이미지 데이터에 기초하여 시각적 피처 포인트들을 생성하는 단계를 더 포함하고, 상기 시각적 피처 포인트들은 상기 깊이 추정치들과 연관된다. 상기 방법은 깊이 센서로부터 상기 깊이 추정치들을 획득하는 단계를 포함한다. 깊이 추정치들은 모바일 컴퓨팅 디바이스에 의해 실행가능한 증강 현실(AR) 세션 동안 획득될 수 있다. 상기 방법은 제1 깊이 맵과 깊이 추정치들 사이의 오프셋들에 기초하여 아핀 파라미터들을 추정하는 단계를 포함할 수 있으며, 상기 아핀 파라미터들은 스케일 및 시프트를 포함하고, 상기 제1 깊이 맵은 상기 아핀 파라미터에 기초하여 제2 깊이 맵으로 변환된다. 방법은 상기 신경 네트워크에 의해, 상기 이미지 데이터에 기초하여 제1 표면 법선들을 예측하는 단계, 상기 제2 깊이 맵으로부터 제2 표면 법선들을 예측하는 단계, 상기 제1 표면 법선들 및 상기 제2 표면 법선들에 기초하여 자기 일관성 손실(self-consistency loss)을 계산하는 단계, 및 상기 자기 일관성 손실에 기초하여 상기 신경 네트워크를 업데이트하는 단계를 포함한다. 상기 방법은 상기 제2 깊이 맵을 사용하여 상기 이미지 데이터에서 적어도 하나의 평면 영역을 추정하는 단계를 포함하고, 상기 적어도 하나의 평면 영역은 가상 객체를 부착하기 위한 표면으로 사용되도록 구성된다.
일 양태에 따르면, 깊이 추정 시스템은 이미지 데이터를 획득하도록 구성된 센서 시스템, 상기 이미지 데이터에 기초하여 제1 깊이 맵을 생성하도록 구성된 신경 네트워크, 상기 제1 깊이 맵을 제1 스케일을 가지며; 상기 이미지 데이터와 연관된 깊이 추정치들을 획득하도록 구성된 깊이 추정치 생성기, 및 상기 깊이 추정치들 및 상기 제1 깊이 맵에 기초하여 아핀 파라미터들을 추정하고, 상기 아핀 파라미터들을 사용하여 상기 1 깊이 맵을 제2 깊이 맵으로 변환하도록 구성된 깊이 맵 변환기를 포함하며, 상기 제2 깊이 맵은 제2 스케일을 가진다.
일부 양태에 따르면, 깊이 추정 시스템은 위/아래의 구성들(또는 이들의 임의의 조합) 중 하나 이상을 포함할 수 있다. 신경 네트워크는 모바일 컴퓨팅 디바이스에서 실행되도록 구성된다. 깊이 추정 시스템은 시각적 피처 포인트들을 생성하도록 구성된 시각적 관성 모션 추적기를 포함하며, 상기 시각적 피처 포인트들은 상기 깊이 추정치들과 연관된다. 깊이 추정 시스템은 깊이 추정치들을 획득하도록 구성된 깊이 센서를 포함할 수 있다. 상기 깊이 추정치 생성기는 증강 현실(AR) 세션 동안 깊이 추정치들을 획득하도록 구성되고, 상기 깊이 추정치 생성기는 상기 AR 세션 동안 포즈 데이터, 중력 방향 및 상기 이미지 데이터의 하나 이상의 평면 영역의 식별도 획득하도록 구성된다. 아핀 파라미터들은 제1 깊이 맵에서 각각의 깊이 추정에 대한 스케일 및 시프트를 포함할 수 있다. 깊이 맵 변환기는 스케일 및 시프트를 추정하기 위한 목적 함수를 최소화하는 RANSAC(Random Sample Consensus) 기반 솔버를 포함할 수 있다. 깊이 추정 시스템은 컨벌루션 신경 네트워크 트레이너를 포함할 수 있고, 상기 컨벌루션 신경 네트워크 트레이너는 상기 신경 네트워크를 사용하여, 상기 이미지 데이터에 기초하여 제1 표면 법선들을 예측하고, 상기 제2 깊이 맵으로부터 제2 표면 법선들을 예측하고, 상기 제1 표면 법선들과 상기 제2 표면 법선들에 기초하여 자기 일관성 손실을 계산하고, 상기 제1 표면 법선들과 실제 법선들에 기초하여 손실을 계산하고, 그리고 상기 자기 일관성 손실 및 상기 손실에 기초하여 상기 신경 네트워크를 업데이트하도록 구성된다. 상기 깊이 맵 변환기는 상기 제2 깊이 맵을 사용하여 상기 이미지 데이터에서 적어도 하나의 평면 영역을 추정하도록 구성된 평면 생성기, 상기 적어도 하나의 평면 영역은 가상 객체를 부착하기 위한 표면으로 사용되도록 구성되고, 상기 평면 생성기는 상기 제2 깊이 맵을 포인트 클라우드 전환하도록 구성된 맵 컨버터를 포함하며; 및 상기 포인트 클라우드를 사용하여 평면 피팅 알고리즘에 따라 적어도 하나의 평면 영역을 검출하도록 구성되는 평면 검출기를 포함한다.
일 양태에 따르면, 실행가능한 명령어를 저장하는 비일시적 컴퓨터 판독가능 매체로서, 상기 명령어는 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서로 하여금: 센서 시스템으로부터 이미지 데이터를 수신하게 하고, 신경 네트워크에 의해, 상기 이미지 데이터에 기초하여 제1 깊이 맵을 생성하게 하고, 상기 제1 깊이 맵을 제1 스케일을 가지며, 상기 이미지 데이터와 연관된 깊이 추정치들을 획득하게 하고, 상기 깊이 추정치들을 사용하여, 상기 제1 깊이 맵을 제2 깊이 맵으로 변환하게 하고, 상기 제2 깊이 맵은 제2 스케일을 가지며, 그리고 상기 제2 깊이 맵을 사용하여 상기 이미지 데이터에서 적어도 하나의 평면 영역을 추정하게 하고, 상기 적어도 하나의 평면 영역은 증강 현실(AR) 세션 동안 가상 객체를 부착하기 위한 표면으로 사용되도록 구성된다.
비일시적 컴퓨터 판독가능 매체는 위/아래 구성들 중 임의의 것(또는 이들의 임의의 조합)을 포함할 수 있다. 상기 실행가능한 명령어는 명령어를 포함하며, 상기 명령어는 상기 적어도 하나의 프로세서에 의해 실행될 때 상기 적어도 하나의 프로세서로 하여금 상기 제1 깊이 맵과 상기 깊이 추정치들 사이의 오프셋들에 기초하여 아핀(affine) 파라미터들을 추정하게 하고, 상기 아핀 파라미터들은 스케일 및 시프트를 포함하고, 상기 제1 깊이 맵은 상기 아핀 파라미터들에 기초하여 상기 제2 깊이 맵으로 변환된다. 상기 깊이 추정치들은 시각적 관성 모션 추적기, 깊이 센서, 듀얼 픽셀 깊이 추정기, 모션 스테레오 깊이 추정기, 희소 활성 깊이 추정기 또는 미리 계산된 희소 맵 중 적어도 하나로부터 획득될 수 있다. 상기 실행가능한 명령어는 명령어를 포함하며, 상기 명령어는 상기 적어도 하나의 프로세서에 의해 실행될 때 상기 적어도 하나의 프로세서로 하여금 상기 신경 네트워크에 의해, 상기 이미지 데이터에 기초하여 표면 법선들을 생성하게 하고, 상기 제1 깊이 맵은 상기 표면 법선들 및 상기 깊이 추정치들을 사용하여 상기 제2 깊이 맵으로 변환된다.
도 1a는 일 양태에 따른 깊이 추정 시스템을 도시한다.
도 1b는 일 양태에 따른 깊이 추정치들을 획득하는 깊이 추정치 생성기를 도시한다.
도 1c는 일 양태에 따른 이미지 데이터의 시각적 피처 포인트들의 예를 도시한다.
도 1d는 일 양태에 따른 깊이 맵 변환기를 도시한다.
도 1e는 일 양태에 따른 깊이 맵 변환기의 파라미터 추정 솔버의 예시적인 동작을 도시한다.
도 1f는 일 양태에 따라 중력 방향을 획득하는 가속도계를 도시한다.
도 1g는 일 양태에 따른 시각적 피처 포인트들을 사용하여 하나 이상의 평면 영역을 검출하도록 구성된 평면 생성기를 도시한다.
도 1h는 증강 현실(AR) 세션 동안 캡처된 정보의 예를 도시한다.
도 1i는 일 양태에 따른 신경 네트워크 트레이너를 도시한다.
도 2는 일 양태에 따른 신경 네트워크를 도시한다.
도 3은 일 양태에 따른 메트릭 깊이 맵으로부터 이미지 데이터의 하나 이상의 평면 영역을 검출하도록 구성된 평면 생성기를 도시한다.
도 4는 일 양태에 따른 깊이 추정 시스템을 갖는 AR 시스템을 도시한다.
도 5는 일 양태에 따른 깊이 추정 시스템의 예시적인 동작을 도시하는 흐름도를 도시한다.
도 6은 일 양태에 따른 신경 네트워크를 조정하는 예시적인 동작을 도시하는 흐름도를 도시한다.
도 7은 다른 양태에 따른 깊이 추정 시스템의 예시적인 동작을 도시하는 흐름도를 도시한다.
도 8은 일 양태에 따른 깊이 추정 시스템의 예시적인 컴퓨팅 디바이스를 도시한다.
실시예는 이미지 데이터를 획득하는 센서 시스템, 및 이미지 데이터의 이미지 프레임에 기초하여 깊이 맵을 생성하도록 구성된 신경 네트워크(예를 들어, 단일 이미지 프레임을 사용하여 깊이 맵을 생성함)을 포함하는 깊이 추정 시스템을 제공한다. 일부 예에서, 신경 네트워크에 의해 생성된 깊이 맵은 제1 스케일(예를 들어, 비-메트릭 맵)과 연관될 수 있다. 신경 네트워크에 의해 생성된 깊이 맵은 최대 스케일/시프트이지만 메트릭 스케일(또는 영국식 숫자 시스템)과 연관되지 않은 깊이 맵인 아핀 불변 깊이 맵일 수 있다. 깊이 추정 시스템은 하나 이상의 소스로부터 깊이 추정치들(예를 들어, 제2 스케일(예를 들어, 메트릭 스케일)에 따른 깊이 값을 갖는 깊이 추정치들)을 획득하는 깊이 추정 생성기, 및 신경 네트워크에 의해 생성된 깊이 맵을 상기 깊이 추정치들을 사용하여 제2 스케일(예를 들어, 메트릭 스케일)을 갖는 깊이 맵으로 변환하도록 구성된 깊이 맵 변환기를 포함한다. 제1 및 제2 스케일은 상이한 표준을 갖는 2개의 상이한 측정 시스템에 기초할 수 있는 상이한 스케일들일 수 있다. 일부 예에서, 메트릭 깊이 맵은 이미지에서 대응하는 픽셀에 대한 메트릭 스케일(예를 들어, 미터)에 따라 각 픽셀이 메트릭 깊이 값을 나타내는 이미지를 지칭할 수 있다. 깊이 추정치 생성기에 의해 획득된 메트릭 깊이 추정치들은 희소 깊이 추정치들(예를 들어, 이미지 데이터의 픽셀 중 일부에 대한 깊이 추정치이지만 전부는 아님)로 간주될 수 있다. 일부 예에서, 메트릭 깊이 추정치들은 이미지 데이터의 픽셀의 서브세트와 연관된다. 깊이 맵 변환기는 희소 깊이 추정치들을 사용하여 신경 네트워크에 의해 생성된 깊이 맵에 대한 제2 스케일(예: 메트릭 스케일)을 제공한다. 일부 예에서, 실시예는 메트릭 깊이 추정치들이 희소 서브세트에 대해서만 존재할 수 있는 경우 모든 픽셀에 대한 메트릭 스케일을 제공할 수 있는 시스템을 제공하고, 밀집 메트릭 깊이 맵은 다운스트림 애플리케이션들(예를 들어, 3D 재구성, 평면 찾기 등)에 대한 희소 메트릭 깊이에 비해 기술적 이점을 제공한다.
깊이 추정 시스템은 단안 깊이 신경 네트워크에서 모호성(또는 일반적으로 아핀 모호성이라고 함)을 스케일/시프트하는 해결책을 제공할 수 있다. 예를 들어, 깊이 추정 시스템은 단안 기계 학습(ML) 깊이 모델에서 아핀 모호성을 해결하기 위해 메트릭 깊이의 희소 소스(들)를 사용할 수 있다. 아핀 모호성은 실제 스케일(예: 메트릭 스케일)을 필요로 하는(또는 그로부터 이점을 얻는) 일부 애플리케이션들에 대해 어려움을 유발할 수 있다. 예를 들어, 모바일 증강 현실(AR) 애플리케이션은 실제 차원의 카메라 뷰에 가상 객체를 배치하는 것을 포함할 수 있다. 실제 스케일로 객체를 렌더링하려면, 가상 객체가 배치되는 표면의 깊이를 메트릭 유닛으로 추정되어야 할 필요가 있다. 본 명세서에 논의된 실시예에 따르면, 깊이 추정 시스템에 의해 생성된 메트릭 깊이 맵은 이미지 데이터에서 평면 영역(들)을 추정하는데 사용될 수 있으며, 평면 영역은 가상 객체를 부착하기 위한 표면으로서 사용된다.
일부 기존 AR 애플리케이션에서, 표면들은 3차원(3D) 포인트 클라우드로 추정되지만, 이러한 접근법을 사용하면 사용자가 장면에 가상 객체를 빠르게(예: 즉시) 배치할 수 없다. 오히려, 사용자는 검출될 충분한 양의 3D 포인트 및 후속 평면 검출에 대해 충분한 텍스처가 있는 평면 표면을 스캔하여, AR 세션이 몇몇 평면을 검출하지 못하거나 및/또는 검출될 평면에 대해 상대적으로 오랜 시간이 걸릴 수 있다. 그러나 깊이 추정 시스템에서 생성된 메트릭 깊이 맵을 사용하면 평면 영역을 검출하기 위한 대기 시간을 줄일 수 있다. 예를 들어, 깊이 추정 시스템은 신경 네트워크를 사용하여 배치된 객체/평면 표면 깊이의 스케일을 예측함으로써 배치 지연을 감소시킬 수 있다(예를 들어, 단일 이미지 또는 적은 수의 이미지로부터 깊이를 추정하여 사용자의 움직임을 덜 요구함). 또한, 깊이 추정 시스템은 흰색 테이블과 같은 낮은 텍스처 표면에서 깊이를 예측할 수 있다. 또한, 깊이 추정 시스템에 의해 생성된 메트릭 깊이 맵은 로봇 공학을 포함하는 광범위한 애플리케이션(AR 애플리케이션 외에)에 사용될 수 있다.
일부 예에서, 깊이 맵 변환기는 신경 네트워크에 의해 생성된 깊이 맵에 대한 제2 스케일(예를 들어, 메트릭 스케일)을 제공하는 것을 돕기 위해 하나 이상의 다른 신호들을 사용한다. 일부 예에서, 신경 네트워크는 표면 법선을 예측하고, 깊이 맵 변환기는 신경 네트워크에 의해 생성된 깊이 맵에 대한 제2 스케일(예를 들어, 메트릭 스케일)을 제공하기 위해 희소 깊이 추정치들과 함께 예측된 표면 법선을 사용한다.
깊이 및 표면 법선을 예측하여 예측 깊이의 정확도를 향상시킬 수 있다. 예측된 깊이와 표면 법선 간의 일관성을 장려하기 위해 신경 네트워크의 트레이닝 또는 조정 중에 자기 일관성 손실(예: 비지도 자기 일관성 손실)이 사용된다. 예를 들어, 신경 네트워크는 RGB 이미지로부터 제1 표면 법선을 예측할 수 있고, 깊이 맵 변환기는 메트릭 깊이 맵으로부터 제2 표면 법선을 예측할 수 있다. 자기 일관성 손실은 제1 표면 법선과 제2 표면 법선 간의 차이에 기초하여 계산되고 자기 일관성 손실이 지도 손실(supervised loss)에 추가된다. 지도 손실은 제1 표면 법선과 실제 법선 간의 차이에 기초하여 계산된다. 자기 일관성 손실은 네트워크가 제1 표면 법선과 제2 표면 법선 간의 편차를 최소화하도록 한다.
일부 예에서, 깊이 맵 변환기는 중력 방향 및 평면 영역들을 수신할 수 있다. 중력 방향은 가속도계에서 획득된다. 평면 영역은 AR 세션 동안 시각적 특징 포인트(예를 들어, SLAM 포인트)를 사용하여 평면 생성기에 의해 추정될 수 있다. 깊이 맵 변환기는 (희소 깊이 추정치와 함께) 중력 방향 및 평면 영역을 사용하여, 신경 네트워크에 의해 생성된 깊이 맵에 대한 제2 스케일(예를 들어, 메트릭 스케일)을 제공할 수 있다.
깊이 맵 변환기는 희소 깊이 추정치들과 신경 네트워크에 의해 생성된 깊이 맵 사이의 오프셋들에 기초하여 아핀 파라미터들(예를 들어, 시프트, 스케일)을 추정하기 위해 파라미터 추정 알고리즘을 실행하도록 구성된 파라미터 추정기 솔버를 포함할 수 있다. 일부 예에서, 파라미터 추정기 솔버는 스케일 및 시프트를 추정하기 위해 목적 함수를 해결하는 랜덤 샘플 컨센서스(RANSAC) 기반 솔버이다. 일부 예에서, 파라미터 추정기 솔버는 깊이 맵을 제2 스케일(예를 들어, 메트릭 스케일)로 변환하기 위해 깊이 맵에 대한 아핀 파라미터들을 추정하기 위해 RANSAC 루프 내의 최소 제곱 파라미터 추정 문제를 해결하도록 구성된다.
일부 예에서, 신경 네트워크는 단일 이미지 프레임에 기초하여 깊이 맵을 예측하기 때문에 신경 네트워크는 단안 깊이 신경 네트워크로 간주된다. 일부 예에서, 신경 네트워크는 적-녹-청(RGB) 이미지로부터 픽셀 단위 깊이를 예측하도록 구성된 U-net 아키텍처를 포함한다. 일부 예에서, 신경 네트워크는 신경 네트워크가 모바일 컴퓨팅 디바이스(예를 들어, 스마트폰, 태블릿 등) 상에서 실행될 수 있게 하는 구성들을 포함한다. 예를 들어, 신경 네트워크는 깊이별 분리 가능한 컨볼루션을 사용할 수 있다. 깊이별 분리 가능한 컨볼루션은 표준 컨벌루션을 깊이별 컨벌루션 및 포인트별 컨벌루션으로 지칭되는 1x1 컨볼루선으로 인수분해하는 인수분해된 컨벌루션을 포함한다. 이 인수분해는 계산 및 모델 크기를 줄이는 효과가 있다. 일부 예에서, 신경 네트워크는 블러풀 인코더를 사용할 수 있으며, 이는 회전, 스케일링, 블러링 및 노이즈 변형과 같은 손상에 대해 네트워크를 보다 강력하고 안정적으로 만드는 결합된 앤티앨리어싱 및 서브샘플링 작업일 수 있다. 일부 예에서, 신경 네트워크는 쌍선형 업샘플링을 포함할 수 있으며, 이는 전치된 컨볼루션에 대한 파라미터들을 감소시킬 수 있고 따라서 네트워크의 크기를 감소시킬 수 있다. 이들 및 기타 구성들은 도면을 참조하여 추가로 설명된다.
도 1a 내지 도 1g는 일 양태에 따른 깊이 추정 시스템(100)을 예시한다. 깊이 추정 시스템(100)은 (하나 이상의 소스로부터 획득된) 깊이 추정(108) 및 신경 네트워크(118)에 의해 생성된 깊이 맵(120)에 기초하여 깊이 맵(138)을 생성한다. 신경 네트워크(118)에 의해 생성된 깊이 맵(120)은 제1 스케일을 갖는다. 일부 예에서, 제1 스케일은 비-메트릭 스케일이다. 깊이 맵(138)은 제2 스케일을 갖는다. 제1 및 제2 스케일은 상이한 표준을 가진 2개의 상이한 측정 시스템에 기초한다. 일부 예에서 제2 스케일은 메트릭 스케일이다. 깊이 추정 시스템(100)은 제1 스케일을 갖는 깊이 맵(120)을 제2 스케일을 갖는 깊이 맵(138)으로 전환하도록 구성된다. 제2 스케일을 갖는 깊이 맵(138)은 증강 현실, 로봇 공학, 자연 사용자 인터페이스 기술, 게임, 또는 다른 애플리케이션을 제어하는데 사용될 수 있다.
깊이 추정 시스템(100)은 이미지 데이터(104)를 획득하는 센서 시스템(102)을 포함한다. 센서 시스템(102)은 하나 이상의 카메라(107)를 포함한다. 일부 예에서, 센서 시스템(102)은 단일 카메라(107)를 포함한다. 일부 예에서, 센서 시스템(102)은 둘 이상의 카메라(107)를 포함한다. 센서 시스템(102)은 관성 모션 유닛(IMU)을 포함할 수 있다. IMU는 컴퓨팅 디바이스의 모션, 이동 및/또는 가속을 검출할 수 있다. IMU는 예를 들어 가속도계(도 1c의 가속도계(124), 자이로스코프, 자력계 및 기타 이러한 센서와 같은 다양한 상이한 유형의 센서들을 포함할 수 있다. 센서 시스템(102)은 예를 들어 광 센서, 오디오 센서, 거리 및/또는 근접 센서, 예를 들어 용량성 센서와 같은 접촉 센서, 타이머 및/또는 다른 센서들 및/또는 센서들의 상이한 조합(들)과 같은 기타 유형의 센서들을 포함할 수 있다.
깊이 추정 시스템(100)은 하나 이상의 기계 실행가능 명령어들 또는 소프트웨어, 펌웨어 또는 이들의 조합의 조각을 실행하도록 구성된 기판에 형성될 수 있는 하나 이상의 프로세서를 포함한다. 프로세서(140)는 반도체 기반일 수 있으며, 즉 프로세서는 디지털 논리를 수행할 수 있는 반도체 재료를 포함할 수 있다. 깊이 추정 시스템(100)은 또한 하나 이상의 메모리 디바이스(142)를 포함할 수 있다. 메모리 디바이스(142)는 프로세서(들)(140)에 의해 판독 및/또는 실행될 수 있는 형식으로 정보를 저장하는 임의의 유형의 저장 디바이스를 포함할 수 있다. 메모리 디바이스(142)는 프로세서(들)(140)에 의해 실행될 때 본 명세서에 기술된 하나 이상의 동작들을 수행하게 하는 애플리케이션 및 모듈을 저장할 수 있다. 일부 예에서, 애플리케이션 및 모듈은 외부 저장 디바이스에 저장되고 메모리 디바이스(142)에 로드될 수 있다.
신경 네트워크(118)은 센서 시스템(102)에 의해 캡처된 이미지 데이터(104)에 기초하여 깊이 맵(120)을 생성하도록 구성된다. 일부 예에서, 신경 네트워크(118)는 이미지 데이터(104)의 이미지 프레임(104a)을 수신하고 이미지 프레임(104a)에 기초하여 깊이 맵(120)을 생성한다. 이미지 프레임(104a)은 RGB(Red-Green-Blue) 이미지이다. 일부 예에서, 신경 네트워크(118)는 단일 이미지 프레임(104a)을 사용하여 깊이 맵(120)을 생성한다. 일부 예에서, 신경 네트워크(118)는 2개 이상의 이미지 프레임(104a)을 사용하여 깊이 맵(120)을 생성한다. 신경 네트워크(118)에 의해 생성된 깊이 맵(120)은 최대 스케일/시프트이지만 제1 스케일(또는 메트릭 스케일)과 연관되지 않은 깊이 맵인 아핀 불변 깊이 맵일 수 있다. 깊이 맵(120)은 각 픽셀이 이미지 내의 대응 픽셀에 대한 비-메트릭 스케일(예를 들어, 0 내지 1)에 따른 깊이 값을 나타내는 이미지를 참조할 수 있다. 비-메트릭 스케일은 미터법, 국제 단위 시스템 (SI) 또는 영국식 측정 시스템에 기초하지 않는 스케일일 수 있다. 실시예가 메트릭 스케일(또는 메트릭 값) 및 비-메트릭 스케일(또는 비-메트릭 스케일)을 참조하여 설명되지만, 제1 및 제2 스케일은 상이한 표준을 갖는 임의의 2개의 상이한 측정 시스템에 기초할 수 있다. 깊이 맵(120)은 카메라 시점에서 장면의 객체 표면까지의 거리에 관한 정보를 포함하는 이미지를 설명하는데 사용될 수 있다. 깊이 값은 카메라 시점에서 장면의 객체 표면까지의 거리와 반비례한다.
신경 네트워크(118)는 하나 이상의 이미지 프레임(104a)(또는 단일 이미지 프레임(104a))을 사용하여 깊이 맵(120)을 생성하도록 구성된 임의의 유형의 심층 신경 네트워크일 수 있다. 일부 구현예에서, 신경 네트워크(118)는 컨볼루션 신경 네트워크를 포함한다. 일부 예에서, 신경 네트워크(118)는 단일 이미지 프레임(104a)에 기초하여 깊이 맵(120)을 예측하기 때문에 신경 네트워크(118)는 단안 깊이 신경 네트워크로 간주된다. 신경 네트워크(118)는 이미지 프레임(104a)으로부터 픽셀별 깊이를 예측하도록 구성된다. 일부 예에서, 신경 네트워크(118)는 U-net 아키텍처, 예를 들어 학습가능한 파라미터들과의 스킵 연결을 갖는 인코더-디코더를 포함한다.
일부 예에서, 신경 네트워크(118)는 모바일 컴퓨팅 디바이스(예를 들어, 스마트폰, 태블릿 등) 상에서 실행할 수 있는 크기를 갖는다. 일부 예에서, 신경 네트워크(118)의 크기는 150Mb 미만이다. 일부 예에서, 신경 네트워크(118)의 크기는 100Mb 미만이다. 일부 예에서, 신경 네트워크(118)의 크기는 약 70Mb 또는 70Mb 미만이다. 일부 예에서, 신경 네트워크(118)는 표준 컨볼루션을 깊이별 컨볼루션과 포인트별 컨볼루션으로 지칭되는 1x1 컨볼루션으로 인수분해하는 인수분해된 컨볼루션의 형태인 깊이별 분리 가능한 컨볼루션을 사용한다. 이 인수분해는 계산 및 모델 크기를 줄이는 효과를 가질 수 있다. 일부 예에서, 신경 네트워크(118)는 블러풀 인코더를 사용할 수 있으며, 이는 회전, 스케일링, 블러링 및 노이즈 변형과 같은 손상에 대해 네트워크를 보다 강력하고 안정적으로 만드는 결합된 앤티앨리어싱 및 서브샘플링 작업일 수 있다. 일부 예에서, 신경 네트워크(118)는 쌍선형 업샘플링을 포함할 수 있으며, 이는 전치된 컨볼루션에 대한 파라미터들을 감소시킬 수 있고 따라서 네트워크의 크기를 감소시킬 수 있다.
일부 예에서, 신경 네트워크(118)는 또한 이미지 프레임(104a)(예를 들어, 장면에서 모든 가시적 표면들)의 표면 배향을 기술하는 표면 법선들(122a)을 예측한다. 일부 예에서, 표면 법선(122a)은 픽셀당 법선 또는 픽셀당 표면 배향을 포함한다. 일부 예에서, 표면 법선(122a)은 표면 법선 벡터를 포함한다. 이미지의 픽셀에 대한 표면 법선(122a)은 현실 세계에서 해당 픽셀에 의해 표현되는 3D 표면의 배향에 대응하는 3차원 벡터로 정의될 수 있다. 3D 표면의 배향은 실제 3D 표면에 수직인 방향 벡터로 표현된다. 표면 법선(122a) 일부 예에서, 신경 네트워크(118)는 또한 이미지 프레임(104a) 내의 평면 영역(124)을 검출하도록 구성된다. 평면 영역(124)은 수직 및/또는 수평 평면을 포함할 수 있다.
깊이 추정 시스템(100)은 이미지 데이터(104)와 연관된 깊이 추정치(108)(예를 들어, 메트릭 깊이 추정치들)을 획득하는 깊이 추정치 생성기(106)를 포함한다. 깊이 추정치들(108)은 이미지 데이터(104)의 일부 픽셀에 대한 메트릭 스케일의 깊이 값을 포함할 수 있다. 예를 들어, 메트릭 스케일은 미터법 및/또는 영국식 시스템과 같은 모든 유형의 측정 시스템을 지칭할 수 있다. 깊이 추정치 생성기(106)에 의해 획득된 깊이 추정치들(108)은 희소 깊이 추정치들(예를 들어, 이미지 데이터의 픽셀 중 일부에 대한 깊이 추정치이지만 전부는 아님)로 간주될 106 수 있다. 예를 들어, 이미지 프레임(104a)이 10x10인 경우, 이미지 프레임(104a)은 100개의 픽셀을 포함한다. 그러나, 깊이 추정치들(108)은 픽셀의 서브세트에 대한 메트릭 스케일의 깊이 추정치들을 포함할 수 있다. 대조적으로, 조밀한 깊이 맵(예를 들어, 깊이 맵(120))은 이미지의 많은 수의 픽셀 또는 이미지의 모든 픽셀에 대한 깊이 값(예를 들어, 비-메트릭 깊이 값)을 제공한다.
깊이 추정치 생성기(106)는 이미지 데이터(104)에 기초하여 깊이 추정치들(108)을 생성(또는 획득)하도록 구성된 임의의 유형의 컴포넌트일 수 있다. 일부 예에서, 깊이 추정치 생성기(106)는 또한 포즈 데이터(110)를 획득하고 이미지 데이터(104) 내의 평면 영역들(114)을 식별한다. 포즈 데이터(110)는 깊이 추정 시스템(100)을 실행하는 디바이스(예를 들어, 깊이 추정 시스템(100)를 갖는 스마트폰)의 포즈(예를 들어, 위치 및 방향)를 식별할 수 있다. 일부 예에서, 포즈 데이터(110)는 디바이스의 5자유도(DoF) 포지션을 포함한다. 일부 예에서, 포즈 데이터(110)는 디바이스의 6 DoF 포지션을 포함한다. 일부 예에서, 깊이 추정치 생성기(106)는 임의의 유형의 평면 검출 알고리즘(또는 평면 피팅 알고리즘)을 사용하여 이미지 데이터(104) 내의 평면 영역들(114)을 검출하도록 구성된 평면 생성기(123)를 포함한다. 평면 영역(114)은 이미지 데이터(104) 내의 객체(예를 들어, 테이블, 벽 등)의 평면적 표면일 수 있다.
도 1b를 참조하면, 깊이 추정치 생성기(106)는 시각적 관성 모션 추적기(160), 깊이 센서(164), 모션 스테레오 깊이 추정기(168), 희소 활성 깊이 추정기(170) 및/또는 사전-계산된 희소 맵(172)을 포함할 수 있다. 깊이 추정치 생성기(106)의 컴포넌트들 각각은 깊이 추정치들(108)을 획득하기 위한 개별 소스를 나타낼 수 있다. 예를 들어, 각각의 컴포넌트는 깊이 추정치들(108)을 독립적으로 생성할 수 있고, 여기서 깊이 추정치 생성기(106)는 하나의 컴포넌트 또는 다수의 컴포넌트들을 포함할 수 있다. 일부 예에서, 깊이 추정치 생성기(106)는 하나의 소스, 예를 들어 시각적 관성 모션 추적기(160), 깊이 센서(164), 듀얼 픽셀 깊이 추정기(166), 모션 스테레오 깊이 추정기(168), 희소 활성 깊이 추정기(170) 또는 사전 계산된 희소 맵(172) 중 하나를 포함할 수 있다. 일부 예에서, 깊이 추정치 생성기(106)가 다수의 소스들(예를 들어, 다수의 컴포넌트들)을 포함하는 경우, 깊이 추정치 생성기(106)는 깊이 맵(138)을 생성하는데 사용하기 위해 소스들 중 하나를 선택할 수 있다. 일부 예에서, 깊이 추정치 생성기(106)가 다수의 소스들(예를 들어, 다수의 컴포넌트들)을 포함하는 경우, 깊이 추정치 생성기(106)는 깊이 맵(138)을 생성하는데 사용하기 위한 다수의 소스들일 수 있다.
시각적 관성 모션 추적기(160)는 이미지 데이터(104)를 나타내는 시각적 피처 포인트들(162)을 생성하도록 구성된다. 시각적 피처 포인트들(162)은 깊이 추정치들(108)과 연관된다. 예를 들어, 각각의 시각적 피처 포인트들(162)은 메트릭 스케일의 깊이 값을 포함할 수 있다. 도 1c는 카메라(107)에 의해 캡처된 장면(125)을 도시하며, 여기서 장면(125)은 이미지 데이터(104)를 사용하여 시각적 관성 모션 추적기(160)에 의해 생성된 시각적 피처 포인트들(162)을 도시한다. 시각적 피처 포인트들(162)은 메트릭 스케일의 깊이 값을 포함할 수 있으며, 여기서 깊이 값은 카메라 시점으로부터 장면(125)의 객체 표면까지의 거리와 반비례한다.
시각적 피처 포인트들(162)은 사용자의 환경을 나타내는 3차원 공간상의 복수의 포인트들(예: 관심 포인트들)이다. 일부 예에서, 각각의 시각적 피처 포인트(162)는 3D 공간에서 고정된 위치 및 배향의 근사치를 포함하고, 시각적 피처 포인트들(162)은 시간이 지남에 따라 업데이트될 수 있다. 예를 들어, 사용자는 AR 세션(174) 동안 장면(125) 주위에서 자신의 모바일 폰의 카메라를 움직일 수 있고, 여기서 시각적 관성 모션 추적기(160)는 장면(125)을 나타내는 시각적 피처 포인트들(162)을 생성할 수 있다. 일부 예에서, 시각적 피처 포인트들(162)은 SLAM(simultaneous localization and mapping) 포인트들을 포함한다. 일부 예에서, 시각적 피처 포인트들(162)은 포인트 클라우드로 지칭된다. 일부 예에서, 시각적 피처 포인트들(162)은 피처 포인트들으로 지칭된다. 일부 예에서, 시각적 피처 포인트들(162)은 3D 피처 포인트들로 지칭된다. 일부 예에서, 시각적 피처 포인트들(162)은 이미지 프레임(104a)당 200-400의 범위에 있다.
다시 도 1b를 참조하면, 일부 예에서, 시각적 관성 모션 추적기(160)는 카메라(107)를 사용하여 공간에서 디바이스(예를 들어, 스마트폰)의 움직임을 추정할 수 있는 추적 알고리즘인 SLAM 알고리즘을 실행하도록 구성된다. 일부 예에서, SLAM 알고리즘은 또한 평면 영역(114)을 검출하도록 구성된다. 일부 예에서, SLAM 알고리즘은 각 이미지의 키 포인트들(예: 시각적 피처 포인트들(162)) 및 디스크립터를 분석하고 프레임에서 프레임으로 이러한 디스크립터를 추적함으로써 디바이스의 포지션 및 배향(예: 포즈 데이터(110))을 반복적으로 계산하여, 이는 환경의 3D 재구성을 허용할 수 있다.
깊이 센서(164)는 이미지 데이터(104)에 기초하여 깊이 추정치(108)를 생성하도록 구성된다. 일부 예에서, 깊이 센서(164)는 광 검출 및 거리 측정(LiDAR) 센서를 포함한다. 듀얼 픽셀 깊이 추정기(166)는 기계 학습 모델을 사용하여 카메라의 듀얼 픽셀 자동 초점 시스템으로부터 깊이를 추정한다. 듀얼 픽셀은 모든 픽셀을 반으로 분할하여 작동하므로 각 절반 픽셀이 기본 렌즈 조리개의 다른 반을 볼 수 있다. 이러한 절반 픽셀 이미지 각각을 개별적으로 판독함으로써, 장면의 약간 다른 2개의 뷰가 획득되고, 이러한 상이한 뷰는 듀얼 픽셀 깊이 추정기(166)에 의해 사용되어 깊이 추정값(108)을 생성한다. 모션 스테레오 깊이 추정기(168)는 깊이 추정치들(108)을 생성하기 위해 스테레오 매칭 알고리즘에 다수의 이미지를 사용할 수 있다. 일부 예에서, 단일 카메라는 다수의 이미지들을 캡처하기 위해 장면(125) 주위로 이동될 수 있고, 여기서 이러한 이미지들은 메트릭 깊이를 추정하기 위해 스테레오 매칭에 사용된다. 희소 활성 깊이 추정기(170)는 희소 비행 시간 추정기 또는 희소 위상 검출 자동 초점(PDAF) 추정기를 포함할 수 있다. 일부 예에서, 사전 계산된 희소 맵(172)은 시각적 포지셔닝 서비스에 의해 사용되는 희소 맵이다.
다시 도 1a를 참조하면, 깊이 추정 시스템(100)은 신경 네트워크(118)에 의해 생성된 깊이 맵(120)을 깊이 추정치들(108)을 사용하여 깊이 맵(138)으로 변환하도록 구성된 깊이 맵 변환기(126)를 포함한다. 깊이 맵(138)은 각 픽셀이 이미지 데이터(104) 내의 대응 픽셀에 대한 메트릭 스케일(예를 들어, 미터)에 따른 깊이 값을 나타내는 이미지를 참조할 수 있다. 깊이 맵 변환기(126)는 신경 네트워크(118)에 의해 생성된 깊이 맵(120)에 대한 메트릭 스케일을 제공하기 위해 깊이 추정치들(108)을 사용하도록 구성된다.
깊이 맵 변환기(126)는 신경 네트워크(118) 및 깊이 추정치들(108)에 의해 생성된 깊이 맵(120)에 기초하여 아핀 파라미터들(132)을 추정하도록 구성된다. 아핀 파라미터들(132)은 깊이 맵(120)의 스케일(134) 및 시프트(136)를 포함한다. 스케일(134)은 깊이 맵(120)의 크기 조정의 양을 나타내는 스케일 값을 포함한다. 시프트(136)는 깊이 맵(120)의 픽셀들이 시프트된 양을 나타내는 시프트 값을 포함한다. 스케일(134)(또는 스케일 값)은 사이징의 양을 지칭하며, 이는 위에서 언급한 "제1 스케일" 및 다른 측정 시스템을 지칭하는 "제2 스케일"과 완전히 다르다(예: 제1 스케일은 비-메트릭 스케일 및 제2 스케일은 메트릭 스케일일 수 있음). 깊이 맵 변환기(126)는 아핀 파라미터들(132)을 사용하여 깊이 맵(120)을 깊이 맵(138)으로 변환하도록 구성된다. 일부 예에서, 스케일(134) 및 시프트(136)는 곱해지고 깊이 맵(120)에서 각각의 픽셀의 값에 더해질 때(예: D138 (x, y) = s * D120 (x, y) + t, 여기서 D120(x, y)는 픽셀 위치(x,y)에서 깊이 맵(120)의 값) 깊이 맵(138)을 생성하는 두 개의 숫자이다(예: s=scale, t=shift). 아핀 파라미터들(132)은 깊이 추정치들(108)의 희소 세트로부터 추정될 수 있고, 그런 다음 위의 방정식을 사용하여 깊이 맵(120)의 모든 픽셀에 적용될 수 있다. 깊이 맵(120)이 모든 픽셀들에 대해 유효한 깊이를 갖기 때문에, 깊이 맵(138)도 모두에 대한 메트릭 스케일을 가질 것이다.
깊이 맵 변환기(126)는 깊이 추정치들(108)을 깊이 맵(120)과 정렬하는 목적을 최소화하는 최적화 문제(예를 들어, 목적 함수)를 풀기 위해 파라미터 추정 알고리즘을 실행하도록 구성된다. 다시 말해서, 깊이 맵 변환기(126)는 아핀 파라미터들(132)을 추정하기 위해 깊이 추정치들(108)을 깊이 맵(120)과 정렬하는 목적 함수를 최소화하도록 구성된다. 예를 들어, 상기 표시된 바와 같이, 깊이 추정치 생성기(106)에 의해 획득된 깊이 추정치들(108)은 희소 깊이 추정치들(예를 들어, 이미지 데이터(104)의 픽셀 중 일부에 대한 깊이 추정치이지만 전부는 아님)로 간주될 106 수 있다. 예를 들어, 이미지 프레임(104a)이 10x10인 경우, 이미지 프레임(104a)은 100개의 픽셀을 포함한다. 깊이 추정치들(108)은 이미지 프레임(104a)의 픽셀의 서브세트(예를 들어, 10x10 이미지의 예에서 100개 미만의 일부 수)에 대한 메트릭 스케일의 깊이 추정치들을 포함할 수 있다. 그러나, 깊이 맵(120)은 이미지의 각 픽셀에 대한 깊이 값을 포함하며, 여기서 깊이 값은 0과 1 사이의 숫자와 같은 비-메트릭 단위이다. 메트릭 깊이 추정치(108)(예를 들어, 메트릭 깊이 값)를 갖는 각각의 픽셀에 대해, 깊이 맵 변환기(126)는 깊이 맵(120)에서 대응하는 깊이 값(예를 들어, 비-메트릭 깊이 값)을 획득하고, 메트릭 깊이 값 및 비-메트릭 깊이 값을 사용하여 스케일(134) 및 시프트(136)를 추정하며, 스케일(134) 곱하기 비-메트릭 깊이 값 더하기 시프트(136) 빼기 메트릭 깊이 값이 0일 때 에러를 최소화하는 것을 포함할 수 있다. 일부 예에서, 깊이 맵 변환기(126)는 아핀 파라미터들(132)을 추정하기 위해 랜덤 샘플 컨센서스(RANSAC) 루프 내에서 최소 제곱 파라미터 추정 문제를 해결하도록 구성된다.
도 1d를 참조하면, 깊이 맵 변환기(126)는 깊이 추정치들(108)을 깊이 맵(120)에 투영하도록 구성된 데이터 프로젝터(176)를 포함할 수 있다. 깊이 추정치들(108)이 시각적 피처 포인트들(162)을 포함하는 경우, 데이터 프로젝터(176)는 시각적 피처 포인트들(162)을 깊이 맵(120)에 투영한다. 깊이 맵 변환기(126)는 최적화 문제가 깊이 추정치들(108)을 깊이 맵(120)과 정렬하는 목적을 최소화하는 아핀 파라미터들(132)(예를 들어, 스케일(134), 시프트(136))를 추정하기 위해 최적화 문제를 해결하도록 구성된 파라미터 추정 솔버(178)를 포함할 수 있다. 일부 예에서, 파라미터 추정 솔버(178)는 RANSAC 기반 파라미터 추정 알고리즘을 포함한다. 일부 예에서, 파라미터 추정 솔버(178)는 아핀 파라미터들(132)을 추정하기 위해 RANSAC 루프 내의 최소 제곱 파라미터 추정 문제를 해결하도록 구성된다.
도 1e는 파라미터 추정 솔버(178)의 예시적인 동작을 도시한다. 동작(101)에서, 파라미터 추정 솔버(178)는 깊이 추정치들(108)과 깊이 맵(120) 사이의 깊이 오프셋들에 기초하여 스케일(134) 및 시프트(136)를 결정한다. 파라미터 추정 솔버(178)는 다음 방정식에 기초하여 깊이 추정치들(108) 및 깊이 맵(120)의 임의의 2개의 포인트들을 사용하여 스케일(134)(예를 들어, 역 깊이에 대한 스케일) 및 시프트(136)(예를 들어, 역에 대한 시프트)를 계산한다:
식 (1): k=(li-lj)/(di-dj)
식 (2): c=li-kdi
파라미터 k는 스케일(134)을 나타내고, 파라미터 c는 시프트(136)을 나타낸다. 파라미터 li는 i번째 추정치(i번째 깊이 예측에 대응함)에 대한 역 깊이(예를 들어, 메트릭 깊이 값)다. 파라미터 di는 i번째 깊이 예측에 대한 역 깊이(예를 들어, 비-메트릭 깊이 값)다. 파라미터 lj는 j번째 추정치(j번째 깊이 예측에 대응함)에 대한 역 깊이(예를 들어, 메트릭 깊이 값)다. 파라미터 dj는 j번째 깊이 예측에 대한 역 깊이(예를 들어, 비-메트릭 깊이 값)이다. 예를 들어, li 및 lj는 깊이 추정치들(108)에서 2개의 포인트들(예를 들어, 2개의 픽셀들)에 대한 메트릭 깊이 값들을 나타낼 수 있고, di 및 dj는 깊이 맵(120)에서 대응하는 2개의 포인트들(예를 들어, 2개의 픽셀들)에 대한 비-메트릭 깊이 값들을 나타낼 수 있다.
동작(103)에서, 파라미터 추정 솔버(178)는 어떤 다른 포인트들(예를 들어, 픽셀들)이 다음 식에 기초하여 위의 해(예를 들어, 식 (1) 및 (2))의 인라이어(inlier)인지 식별하기 위해 평가 방법을 실행한다:
식 (3): e=(di-li)^2, 여기서 e <t, 및 t는 인라이어 임계값(예: RANSAC 인라이어 임계값). 예를 들어, 비-메트릭 깊이 값 및 메트릭 깊이 값을 갖는 특정한 포인트(예: 픽셀)에 대해, 파라미터 추정 솔버(178)는 비-메트릭 깊이 값(di) 및 메트릭 깊이 값(li)을 획득하고, 제곱 차이가 인라이어 임계값보다 작은 경우 해당 포인트는 인라이어로서 식별된다.
동작(105)에서, 파라미터 추정 솔버(178)는 평가 방법으로부터의 컨센서스 추정치로부터 추정치를 정제하기 위해 스케일(134(k)) 및 시프트(136(c))에 대한 최소 제곱 솔버를 실행하도록 구성된다.
다시 도 1a로 돌아가면, 깊이 맵 변환기(126)는 신경 네트워크(118)에 의해 생성된 깊이 맵(120)에 대한 메트릭 스케일을 제공하는 것을 돕기 위해 하나 이상의 다른 신호를 사용할 수 있다. 일부 예에서, 신경 네트워크(118)는 표면 법선들(122a)을 예측할 수 있고, 깊이 맵 변환기(126)는 신경 네트워크(118)에 의해 생성된 깊이 맵(120)에 대한 메트릭 스케일을 결정하기 위해 깊이 추정치들(108)과 함께 예측된 표면 법선들(122a)을 사용할 수 있다. 예를 들어, 깊이 맵 변환기(126)는 깊이 맵(138)으로부터 표면 법선들(122b)을 예측하고, 깊이 맵(138)으로부터 예측된 표면 법선들(122b)과 신경 네트워크(118)으로부터 예측된 표면 법선들(122a) 사이의 오프셋을 사용하여 아핀 파라미터(132)를 결정하는 것을 도울 수 있다. 예를 들어, 깊이 맵 변환기(126)는 깊이 맵(120)과 깊이 추정치들(108) 사이의 오프셋 및 신경 네트워크(118)으로부터 예측된 표면 법선들(122a)과 깊이 맵(138)으로부터 예측된 표면 법선들(122b) 사이의 오프셋에 페널티를 줄 수 있는 목적 함수를 최소화할 수 있다.
일부 예에서, 깊이 맵 변환기(126)는 중력 방향(112) 및/또는 평면 영역(114)을 수신한다. 깊이 맵 변환기(126)는 (깊이 추정치들(108)과 함께) 중력 방향(112) 및 평면 영역(114)을 사용하여 신경 네트워크(118)에 의해 생성된 깊이 맵(120)에 대한 메트릭 스케일을 제공하도록 구성된다. 도 1f에 도시된 바와 같이, 중력 방향(112)은 가속도계(121)로부터 획득될 수 있다. 평면 영역들(114)은 이미지 데이터(104)로부터 검출될 수 있다. 일부 예에서, 도 1g에 도시된 바와 같이, 평면 영역들(114)은 시각적 피처 포인트들(162)(예를 들어, SLAM 포인트들)을 사용하여 평면 생성기(123)에 의해 추정될 수 있다. 예를 들어, 평면 생성기(123)는 이미지 데이터(104)에서 평면 영역(114)을 검출하는 평면 검출 알고리즘(또는 평면 피팅 알고리즘)을 실행할 수 있다. 중력 방향(112) 및 평면 영역(114)을 사용하여, 깊이 맵 변환기(126)는 중력 방향(112)(또는 좌표 시스템에 따라 중력 방향(112)의 반대 방향)과 일치하도록 수평 표면 영역의 표면 법선(122b)에 페널티를 줄 수 있는 목적 함수를 최소화할 수 있다.
도 1h에 도시된 바와 같이, 깊이 추정치(108), 포즈 데이터(110), 중력 방향(112), 및 평면 영역(114)은 클라이언트 AR 애플리케이션(173)에 의해 실행가능한 AR 세션(174) 동안 획득될 수 있다. AR 세션(174)은 사용자가 도 4에서 추가로 논의되는 바와 같이 다수자 AR 협업 환경을 생성하거나 참가했을 때 개시될 수 있다. 클라이언트 AR 애플리케이션(173)은 모바일 컴퓨팅 디바이스에 설치(및 실행)될 수 있다. 일부 예에서, 클라이언트 AR 애플리케이션(173)은 하나 이상의 AR 애플리케이션과 함께 동작하는 소프트웨어 개발 키트(SDK)이다. 일부 예에서, 깊이 추정 시스템(100)의 다른 컴포넌트들(예를 들어, 깊이 추정 생성기(106), 센서 시스템(102) 등)과 조합하여, 클라이언트 AR 애플리케이션(173)은 포즈 데이터(110)를 획득하기 위한 물리적 공간과 관련하여 디바이스의 포지션을 검출 및 추적하고, 평면 영역(114)을 획득하기 위해 상이한 유형의 표면(예를 들어, 수평, 수직, 각진)의 크기 및 위치를 검출하고, 가속도계(121)로부터 중력 방향(112) 획득하고 및 깊이 추정치들(108)(예를 들어, 시각적 피처 포인트들(162))을 생성하도록 구성된다. AR 세션(174) 동안, 사용자는 가상 객체를 장면(125)에 추가할 수 있고, 그런 다음 다수의 사용자는 AR 환경에 합류하여 공유 물리적 공간의 상이한 포지션에서 이러한 가상 객체를 동시에 보고 그리고 인터렉션할 수 있다.
도 1i에 도시된 바와 같이, 깊이 추정 시스템(100)은 신경 네트워크(118)를 트레이닝 또는 업데이트하도록 구성된 CNN(Convolutional Neural Network) 트레이너(155)를 포함할 수 있다. 일부 예에서, 깊이 맵(138)의 정확도는 깊이 및 표면 법선들(122a)을 예측함으로써 개선될 수 있다. 표면 법선들은 동일한 3D 평면에 속하는 모든 픽셀들이 동일한 법선을 갖지만 반드시 같은 깊이는 아니기 때문에 고차 구조적 프라이어로 볼 수 있다. 따라서, 표면 법선들(122a)도 예측하도록 신경 네트워크(118)을 트레이닝함으로써, 신경 네트워크(118)는 장면(125)의 평면에 대한 고차 지식을 추리/추론하도록 트레이닝된다. 이는 가상 객체들이 일반적으로 배치되는 장면(125)의 평면 영역에 대한 더 부드러운 깊이를 초래할 수 있다.
예측된 깊이와 표면 법선(122a) 간의 일관성을 장려하기 위해 신경 네트워크(118)의 트레이닝 중에 자기 일관성 손실(182)(예: 비지도 자기 일관성 손실)이 사용된다. 예를 들어, 신경 네트워크(118)는 이미지 프레임(104a)으로부터 깊이 맵(120) 및 표면 법선(122a)을 예측하고, 깊이 맵 변환기(126)는 깊이 맵(138)으로부터 표면 법선들(122b)을 예측한다. 자기 일관성 손실(182)은 표면 법선들(122a)과 표면 법선들(122b) 사이의 차이에 기초하여 계산된다. 손실(180)(예를 들어, 지도 손실)은 표면 법선들(122a)과 실측 법선들(122c) 사이의 차이에 기초하여 계산된다. 총 손실(184)은 손실(180) 및 자기 일관성 손실(182)에 기초하여 계산된다(예를 들어, 손실(180)이 자기 일관성 손실(182)에 추가됨). 자기 일관성 손실(182)은 신경 네트워크(118)가 표면 법선들(122a)과 표면 법선들(122b) 사이의 임의의 편차를 최소화하도록 조장한다.
도 2는 신경 네트워크(218)의 예를 도시한다. 신경 네트워크(218)는 도 1a 내지 도 1i의 신경 네트워크(118)의 예일 수 있고, 이들 도면을 참조하여 논의된 세부사항 중 임의의 것을 포함할 수 있다. 일부 구현예에서, 신경 네트워크(218)는 컨볼루션 신경 네트워크를 포함한다. 신경 네트워크(218)는 이미지 프레임(204a)을 수신하고 깊이 맵(220)을 생성한다. 깊이 맵(220)은 도 1a 내지 도 1i의 깊이 맵(120)의 예일 수 있고, 이들 도면을 참조하여 논의된 세부사항 중 임의의 것을 포함할 수 있다. 또한, 일부 예에서, 신경 네트워크(218)는 표면 법선들(예를 들어, 도 1a 내지 도 1i의 표면 법선들(122a)) 및 평면 영역(124)(예를 들어, 도 1a 내지 도 1i의 평면 영역(124))을 예측하도록 구성된다. 일부 예에서, 신경 네트워크(218)는 적색-녹색-청색(RGB) 이미지로부터 픽셀별 깊이를 예측하도록 구성된 U-net 아키텍처를 포함하며, 여기서 U-net 아키텍처는 학습 가능한 파라미터들을 사용한 스킵 연결을 갖는 인코더-디코더이다.
신경 네트워크(118)는 다운샘플러 유닛(248-1), 다운샘플러 유닛(248-2), 다운샘플러 유닛(248-3), 다운샘플러 유닛(248-4), 다운샘플러 유닛(248-5)과 같은 복수의 다운샘플러 유닛들 및 업샘플러 유닛(249-1), 업샘플러 유닛(249-2), 업샘플러 유닛(249-3), 업샘플러 유닛(249-4), 및 업샘플러 유닛(249-5)과 같은 복수의 업샘플러 유닛들을 포함할 수 있다. 각각의 다운샘플러 유닛(예: 248-1, 248-2, 248-3, 248-4, 248-5)은 깊이별 분리 가능한 컨볼루션(252), ReLU(Rectified Linear Activation Function)(254) 및 최대 풀링 연산(256)을 포함한다. 각 업샘플러 유닛(예: 249-1, 249-2, 249-3, 249-4, 249-5)은 깊이별 분리 가능한 컨볼루션(252), ReLU(Rectified Linear Activation Function)(254) 및 쌍선형 업샘플링 연산(258)을 포함한다. 마지막 업샘플러 유닛(예를 들어, 249-5)의 출력은 ReLU(Rectified Linear Activation Function)가 뒤따르는 깊이별 분리 가능한 컨볼루션(252)에 제공된다.
깊이별 분리가능한 컨볼루션(252)은 표준 컨볼루션을 깊이별 컨볼루션과 포인트별 컨볼루션이라고 하는 1x1 컨볼루션으로 인수분해하는 인수분해된 컨볼루션을 포함한다. 이 인수분해는 계산 및 모델 크기를 줄이는 효과가 있다. 또한, 쌍선형 업샘플링 연산(258)의 사용은 전치된 컨볼루션에 대한 파라미터를 감소시킬 수 있고 따라서 네트워크의 크기를 감소시킬 수 있다. 일부 예에서, 신경 네트워크(218)는 블러풀 인코더를 사용할 수 있으며, 이는 회전, 스케일링, 블러링 및 노이즈 변형과 같은 손상에 대해 신경 네트워크(218)를 보다 강력하고 안정적으로 만드는 결합된 앤티앨리어싱 및 서브샘플링 작업일 수 있다.
도 3은 하나 이상의 평면 영역(395)(예를 들어, 메트릭 평면 영역(들))을 검출하거나 식별하기 위해 메트릭 깊이 맵(338)을 사용하는 평면 생성기(390)의 예를 도시한다. 예를 들어, 평면 영역(395)의 위치 및 크기는 메트릭 스케일에 따른 정보에 의해 식별될 수 있다. 일부 예에서, 평면 생성기(390)는 도 1a 내지 도 1i의 깊이 추정 시스템(100) 내에 포함되며, 이들 도면을 참조하여 논의된 세부사항 중 임의의 것을 포함할 수 있다. 메트릭 평면 영역은 메트릭 스케일이 있는 이미지 내의 객체의 평면 표면일 수 있다. 일부 예에서, 평면 생성기(390)는 메트릭 깊이 맵(338) 및 포즈 데이터(310)를 수신하고 메트릭 깊이 맵(338)으로부터 하나 이상의 평면 영역(395)을 검출할 수 있다.
위에서 지적한 바와 같이, 아핀 모호성은 실제 스케일을 필요로 하는(또는 그로부터 이점을 얻는) 일부 애플리케이션에서 어려움을 유발할 수 있다. 예를 들어, 모바일 애플리케이션은 실제 차원의 카메라 뷰에 가상 객체를 배치하는 것을 포함할 수 있다. 그러나 실제 스케일로 객체를 렌더링하려면, 가상 객체가 배치되는 표면의 깊이를 미터법 단위로 추정해야 할 수 있다. 본 명세서에 논의된 실시예에 따르면, 메트릭 깊이 맵(338)(도 1a 내지 도 1i의 깊이 추정 시스템(100)에 의해 생성된)은 이미지 데이터에서 적어도 하나의 평면(395)을 추정하는데 사용될 수 있으며, 적어도 하나의 평면 영역(395)은 가상 객체를 부착하기 위한 표면으로서 사용되도록 구성된다. 메트릭 깊이 맵(338)을 사용함으로써, 평면 영역(395)을 검출하기 위한 레이턴시가 감소될 수 있다. 예를 들어, 깊이 추정 시스템(예를 들어, 도 1a 내지 도 1i의 깊이 추정 시스템(100))은 컨벌루션 신경 네트워크를 사용하여 배치된 객체/평면 표면 깊이의 스케일을 예측함으로써 배치 지연을 감소시킬 수 있다(예를 들어, 단일 이미지 또는 적은 수의 이미지로부터 깊이를 추정하여 사용자의 움직임을 덜 요구함). 또한, 깊이 추정 시스템은 흰색 테이블과 같은 낮은 텍스처 표면에서 깊이를 예측할 수 있다.
평면 생성기(390)는 메트릭 깊이 맵(338)을 포인트 클라우드(394)로 전환하도록 구성된 맵 전환기(392)를 포함할 수 있다. 평면 생성기(390)는 포인트 클라우드(394)를 사용하여 하나 이상의 평면 영역(395)을 검출하도록 구성된 평면 피팅 알고리즘을 실행하는 평면 검출기(396)를 포함할 수 있다. 평면 생성기(390)는 가시성 및 다른 제약에 기초하여 하나 이상의 평면 영역(395)을 거부할 수 있는 평면 영역(395)을 프로세싱하도록 구성된 검증 모델(398)을 포함한다.
도 4는 일 양상에 따른 AR 시스템(450)을 도시한다. 도 4를 참조하면, AR 시스템(450)은 제1 컴퓨팅 디바이스(411-1) 및 제2 컴퓨팅 디바이스(411-2)를 포함하며, 여기서 제1 컴퓨팅 디바이스(411-1)의 사용자 및 제2 컴퓨팅 디바이스(411-2)의 사용자는 제1 컴퓨팅 디바이스(411-1)를 공유 AR 환경(401)에 포함된 하나 이상의 가상 객체(430)를 보고 그리고 그와 인터렉션할 수 있다. 비록 도 4는 2개의 컴퓨팅 디바이스를 예시하지만, 실시예는 공유 AR 환경(401)에 참여할 수 있는 임의의 수(예를 들어, 2개 초과)의 컴퓨팅 디바이스를 포함한다. 제1 컴퓨팅 디바이스(411-1) 및 제2 컴퓨팅 디바이스(411-2)는 하나 이상의 API(application programming interface)를 통해 서버 컴퓨터(461)에 의해 실행 가능한 AR 협업 서비스(415)와 통신하도록 구성된다.
AR 협업 서비스(415)는 사용자가 공유할 수 있는 다수 사용자 또는 협업 AR 경험을 생성하도록 구성된다. AR 협업 서비스(415)는 네트워크(451)를 통해 제1 컴퓨팅 디바이스(411-1) 및 제2 컴퓨팅 디바이스(411-2)를 포함하는 복수의 컴퓨팅 디바이스와 통신하며, 여기서 제1 컴퓨팅 디바이스(411-1)의 사용자와 제2 컴퓨팅 디바이스(411-2)의 사용자는 동일한 AR 환경(401)을 공유할 수 있다. AR 협업 서비스(415)는 사용자가 다른 사용자와 공유할 수 있는 멀티플레이어 또는 협업 AR 경험을 생성하기 위한 3D 맵을 생성하도록 허용할 수 있다. 사용자는 가상 객체(430)를 장면(425)에 추가할 수 있으며, 그런 다음 여러 사용자가 공유 물리적 공간의 상이한 포지션에서 이러한 가상 객체(430)를 동시에 보고 그리고 그와 인터렉션할 수 있다.
제1 컴퓨팅 디바이스(411-1) 및/또는 제2 컴퓨팅 디바이스(411-2)는 스마트폰, 태블릿, 랩톱, 웨어러블 디바이스 등과 같은 임의의 유형의 모바일 컴퓨팅 시스템일 수 있다. 웨어러블 디바이스는 광학 헤드 마운트 디스플레이(OHMD) 디바이스, 투명 헤드업 디스플레이(HUD) 디바이스, 증강 현실(AR) 디바이스와 같은 헤드 마운트 디스플레이(HMD) 디바이스 또는 센서, 디스플레이 및 컴퓨팅 기능이 있는 고글 또는 헤드셋과 같은 기타 디바이스를 포함할 수 있다. 일부 예에서, 웨어러블 디바이스는 스마트안경을 포함한다. 스마트안경은 안경 모양으로 설계된 광학 헤드 마운트 디스플레이 디바이스다. 예를 들어, 스마트 안경은 착용자가 안경을 통해 보는 것에 정보를 추가하는 안경이다.
증강 현실 환경(401)은 사용자의 시야 내에 있는 물리적 공간 및 하나 이상의 가상 객체(430)가 포지셔닝되는 가상 공간을 포함할 수 있다. 도 4에 도시된 가상 객체(430)는 상자로 표시되지만 사용자가 추가하는 임의의 유형의 가상 객체를 포함할 수 있다. AR 환경(401)을 제공(또는 렌더링)하는 것은 가상 객체(430)를 디스플레이함으로써 물리적 공간에 대한 사용자의 뷰를 변경하는 것을 포함할 수 있어서, 가상 객체(430)가 사용자의 뷰의 물리적 공간에 존재하거나 그 위에 또는 오버레이되는 것처럼 사용자에게 나타나게 할 수 있다. 따라서 가상 객체(430)의 디스플레이는 가상 공간과 물리적 공간 간의 매핑에 따른다. 가상 객체들(430)을 오버레이하는 것은, 예를 들어, 가상 객체들(430)을 물리적 공간의 사용자의 시야에 중첩함으로써, 물리적 공간의 사용자의 시야를 하나 이상의 디스플레이 스크린에 재생함으로써 및/또는 다른 방식으로, 예를 들어 헤드업 디스플레이, 모바일 디바이스 디스플레이 스크린 등을 사용함으로써 구현될 수 있다.
제1 컴퓨팅 디바이스(411-1) 및/또는 제2 컴퓨팅 디바이스(411-2)는 깊이 추정 시스템(400)을 포함한다. 깊이 추정 시스템(400)은 도 1a 내지 도 1i의 깊이 추정 시스템(100)의 예일 수 있고, 이들 도면을 참조하여 논의된 세부사항 중 임의의 것을 포함할 수 있다. 깊이 추정 시스템(400)은 제1 컴퓨팅 디바이스(411-1)에 의해 캡처된 이미지 데이터를 사용하여 메트릭 깊이 맵을 생성하고, 메트릭 깊이 맵을 사용하여 위에서 논의된 임의의 기술에 따라 하나 이상의 평면 영역(495)을 검출한다. 일부 예에서, 평면 영역(495)은 사용자가 평면 영역(495)에 가상 객체(430)를 부착할 수 있도록 평면 영역(495)을 볼 수 있도록 사용자에게 시각적으로 보여질 수 있다. 예를 들어, 제1 컴퓨팅 디바이스(411-1)의 사용자는 가상 객체(430)를 부착하기 위해 평면 영역(495)을 사용할 수 있다. 제2 컴퓨팅 디바이스(411-2)가 동일한 물리적 공간에 들어가면, AR 협업 서비스(415)는 AR 환경(401)을 제2 컴퓨팅 디바이스(411-2)의 스크린으로 렌더링할 수 있으며, 여기서 사용자는 제1 컴퓨팅 디바이스(411-1)의 사용자에 의해 추가된 가상 객체(430)를 보고 그리고 그와 인터렉션할 수 있다. 제 2 컴퓨팅 디바이스(411-2)는 메트릭 깊이 맵을 생성하고 메트릭 깊이 맵을 사용하여 하나 이상의 평면 영역(495)을 검출하도록 구성된 깊이 추정 시스템(400)을 포함할 수 있으며, 여기서 제 2 컴퓨팅 디바이스(411-2)의 사용자는 하나 이상의 다른 가상 객체(430)를 검출된 평면 영역(495)에 추가할 수 있고, 평면 영역(495)는 제1 컴퓨팅 디바이스(411-1)의 사용자가 보고 그리고 그와 인터렉션할 수 있다.
도 5는 깊이 추정 시스템의 예시적인 동작을 도시하는 흐름도(500)를 도시한다. 동작은 도 1a 내지 도 1i의 깊이 추정 시스템(100)을 참조하여 설명되지만, 도 5의 동작은 본 명세서에 기술된 시스템 중 임의의 것에 적용될 수 있다. 비록 도 5의 흐름도(500)는 동작을 순차적으로 도시하지만, 이것은 단지 예이고 추가적인 또는 대안적인 동작이 포함될 수 있다는 것이 인식될 것이다. 또한, 도 5의 동작 및 관련 동작은 도시된 것과 다른 순서로, 또는 병렬 또는 중첩 방식으로 실행될 수 있다.
동작(502)은 센서 시스템(102)으로부터 이미지 데이터(104)를 수신하는 것을 포함한다. 동작(504)은 신경 네트워크(118)에 의해, 이미지 데이터(104)에 기초하여 깊이 맵(120)(예를 들어, 제1 깊이 맵)을 생성하는 것을 포함하며, 여기서 깊이 맵(120)은 제1 스케일을 갖는다. 동작(506)은 이미지 데이터(104)와 연관된 깊이 추정치들(108)을 획득하는 것을 포함한다. 동작(508)은 깊이 추정치들(108)을 사용하여 깊이 맵(120)을 깊이 맵(138)(예를 들어, 제2 깊이 맵)으로 변환하는 것을 포함하며, 여기서 깊이 맵(138)은 제2 스케일을 갖는다. 제1 및 제2 스케일은 상이한 표준을 갖는 2개의 상이한 측정 시스템에 기초할 수 있는 상이한 스케일이다. 일부 예에서, 제1 스케일은 비-메트릭 스케일이다. 일부 예에서 제2 스케일은 메트릭 스케일이다. 또한, 깊이 추정치들(108)은 제2 스케일에 대응하는 깊이 값을 갖는다.
도 6는 깊이 추정 시스템의 예시적인 동작을 도시하는 흐름도(600)를 도시한다. 동작은 도 1a 내지 도 1i의 깊이 추정 시스템(100)을 참조하여 설명되지만, 도 6의 동작은 본 명세서에 기술된 시스템 중 임의의 것에 적용될 수 있다. 비록 도 6의 흐름도(600)는 동작을 순차적으로 도시하지만, 이것은 단지 예이고 추가적인 또는 대안적인 동작이 포함될 수 있다는 것이 인식될 것이다. 또한, 도 6의 동작 및 관련 동작은 도시된 것과 다른 순서로, 또는 병렬 또는 중첩 방식으로 실행될 수 있다.
동작(602)은 신경 네트워크(118)에 의해, 이미지 프레임(104a)에 기초하여 깊이 맵(120)(예를 들어, 제1 깊이 맵) 및 제1 표면 법선들(122a)을 예측하는 것을 포함하며, 여기서 깊이 맵(120)은 제1 스케일(예를 들어, 미터법 척도)을 갖는다. 동작(604)은 이미지 데이터(104)와 연관된 깊이 추정치들(108)을 획득하는 것을 포함한다. 일부 예에서, 깊이 추정치들(108)은 제2 스케일(예를 들어, 메트릭 스케일)에 따른 깊이 값들을 갖는다. 동작(606)은 깊이 추정치들(108)을 사용하여 깊이 맵(120)을 깊이 맵(138)(예를 들어, 제2 깊이 맵)으로 변환하는 것을 포함하며, 여기서 깊이 맵(138)은 제2 스케일(예를 들어, 메트릭 스케일)을 갖는다. 동작(608)은 깊이 맵(138)으로부터 제2 표면 법선들(122b)을 추정하는 것을 포함한다. 또한, 제1 및 제2 스케일은 상이한 표준을 갖는 2개의 상이한 측정 시스템에 기초할 수 있는 상이한 스케일이다.
동작(610)은 제1 표면 법선들(122a)과 제2 표면 법선들(122b) 사이의 차이에 기초하여 자기 일관성 손실(182)을 계산하는 것을 포함한다. 일부 예에서, 자기 일관성 손실(182)은 비지도 손실이다. 일부 예에서, 흐름도(600)는 제1 표면 법선들(122a)과 실측 법선들(122c) 사이의 차이에 기초하여 손실(180)(예를 들어, 지도 손실)을 계산하는 것을 포함한다. 동작(612)은 자기 일관성 손실(182)에 기초하여 신경 네트워크(118)을 업데이트하는 것을 포함한다. 일부 예에서, 신경 네트워크(118)은 자기 일관성 손실(182) 및 손실(180)에 기초하여 업데이트된다.
도 7는 깊이 추정 시스템의 예시적인 동작을 도시하는 흐름도(700)를 도시한다. 동작은 도 1a 내지 도 1i의 깊이 추정 시스템(100) 및 도 4의 AR 시스템(450)을 참조하여 설명되지만, 도 7의 동작은 본 명세서에 기술된 시스템 중 임의의 것에 적용될 수 있다. 비록 도 7의 흐름도(700)는 동작을 순차적으로 도시하지만, 이것은 단지 예이고 추가적인 또는 대안적인 동작이 포함될 수 있다는 것이 인식될 것이다. 또한, 도 7의 동작 및 관련 동작은 도시된 것과 다른 순서로, 또는 병렬 또는 중첩 방식으로 실행될 수 있다.
동작(702)은 센서 시스템(102)으로부터 이미지 데이터(104)를 수신하는 것을 포함한다. 동작(704)은 신경 네트워크(118)에 의해, 이미지 데이터(104)에 기초하여 깊이 맵(120)(예를 들어, 제1 깊이 맵)을 생성하는 것을 포함하며, 여기서 깊이 맵(120)은 제1 스케일(예를 들어, 비-메트릭 스케일)을 갖는다. 동작(706)은 이미지 데이터(104)와 연관된 깊이 추정치들(108)을 획득하는 것을 포함한다. 일부 예에서, 깊이 추정치들(108)은 제2 스케일(예를 들어, 메트릭 스케일)에 따른 깊이 값들을 갖는다. 동작(708)은 깊이 추정치들(108)을 사용하여 깊이 맵(120)을 깊이 맵(138)(예를 들어, 제2 깊이 맵)으로 변환하는 것을 포함하며, 여기서 깊이 맵(138)은 제2 스케일(예를 들어, 메트릭 스케일)을 갖는다. 동작(710)은 깊이 맵(138)을 사용하여 이미지 데이터(104)에서 적어도 하나의 평면 영역(495)을 추정하는 것을 포함하고, 여기서 적어도 하나의 평면 영역(495)은 증강 현실(AR) 세션(174) 동안 가상 객체(430)를 부착하기 위한 표면으로 사용되도록 구성된다.
예 1: 깊이 추정을 위한 방법에 있어서, 센서 시스템으로부터 이미지 데이터를 수신하는 단계; 신경 네트워크에 의해, 상기 이미지 데이터에 기초하여 제1 깊이 맵을 생성하는 단계, 상기 제1 깊이 맵을 제1 스케일을 가지며; 상기 이미지 데이터와 연관된 깊이 추정치들을 획득하는 단계; 및 상기 깊이 추정치들을 사용하여, 상기 제1 깊이 맵을 제2 깊이 맵으로 변환하는 단계를 포함하고, 상기 제2 깊이 맵은 제2 스케일을 가지는, 방법.
예 2: 예 1에 있어서, 상기 신경 네트워크에 의해, 상기 이미지 데이터에 기초하여 표면 법선들을 생성하는 단계를 더 포함하는, 방법.
예 3: 예 1 내지 예 2에 있어서, 상기 제1 깊이 맵은 상기 표면 법선들 및 깊이 추정치들을 사용하여 상기 제2 깊이 맵으로 변환되는, 방법.
예 4: 예 1 내지 예 3 중 어느 하나에 있어서, 상기 이미지 데이터에 기초하여 시각적 피처 포인트들을 생성하는 단계를 더 포함하고, 상기 시각적 피처 포인트들은 상기 깊이 추정치들과 연관되는, 방법.
예 5: 예 1 내지 예 4 중 어느 하나에 있어서, 깊이 센서로부터 깊이 추정치들을 획득하는 단계를 더 포함하는, 방법.
예 6: 예 1 내지 예 5 중 어느 하나에 있어서, 상기 깊이 추정치들은 모바일 컴퓨팅 디바이스에 의해 실행가능한 증강 현실(AR) 세션 동안 획득되는, 방법.
예 7: 예 1 내지 예 6 중 어느 하나에 있어서, 상기 제1 깊이 맵과 상기 깊이 추정치들 사이의 오프셋들에 기초하여 아핀(affine) 파라미터들을 추정하는 단계, 상기 아핀 파라미터들은 스케일 및 시프트를 포함하고, 상기 제1 깊이 맵은 상기 아핀 파라미터들에 기초하여 상기 제2 깊이 맵으로 변환되는, 방법.
예 8: 예 1 내지 예 7 중 어느 하나에 있어서, 상기 신경 네트워크에 의해, 상기 이미지 데이터에 기초하여 제1 표면 법선들을 예측하는 단계; 및 상기 제2 깊이 맵으로부터 제2 표면 법선들을 예측하는 단계를 더 포함하는, 방법.
예 9: 예 1 내지 예 8 중 어느 하나에 있어서, 상기 제1 표면 법선들과 상기 제2 표면 법선들에 기초하여 자기 일관성 손실을 계산하는 단계를 더 포함하는, 방법.
예 10: 예 1 내지 예 9 중 어느 하나에 있어서, 상기 자기 일관성 손실에 기초하여 상기 신경 네트워크를 업데이트하는 단계를 더 포함하는, 방법.
예 11: 예 1 내지 예 10 중 어느 하나에 있어서, 상기 제2 깊이 맵을 사용하여 상기 이미지 데이터에서 적어도 하나의 평면 영역을 추정하는 단계를 더 포함하고, 상기 적어도 하나의 평면 영역은 가상 객체를 부착하기 위한 표면으로 사용되도록 구성되는, 방법.
예 12: 깊이 추정 시스템으로서, 상기 깊이 추정 시스템은 이미지 데이터를 획득하도록 구성된 센서 시스템; 상기 이미지 데이터에 기초하여 제1 깊이 맵을 생성하도록 구성된 신경 네트워크, 상기 제1 깊이 맵을 제1 스케일을 가지며; 상기 이미지 데이터와 연관된 깊이 추정치들을 획득하도록 구성된 깊이 추정치 생성기; 및 상기 깊이 추정치들 및 상기 제1 깊이 맵에 기초하여 아핀 파라미터들을 추정하고, 상기 아핀 파라미터들을 사용하여 상기 1 깊이 맵을 제2 깊이 맵으로 변환하도록 구성된 깊이 맵 변환기를 포함하며, 상기 제2 깊이 맵은 제2 스케일을 가지는, 깊이 추정 시스템.
예 13: 예 12에 있어서, 상기 신경 네트워크는 모바일 컴퓨팅 디바이스에서 실행하도록 구성되는, 깊이 추정 시스템.
예 14: 예 12 내지 예 13 중 어느 하나에 있어서, 시각적 피처 포인트들을 생성하도록 구성된 시각적 관성 모션 추적기를 더 포함하며, 상기 시각적 피처 포인트들은 상기 깊이 추정치들과 연관되는, 깊이 추정 시스템.
예 15: 예 12 내지 예 14 중 어느 하나에 있어서, 깊이 추정치들을 획득하도록 구성된 깊이 센서를 더 포함하는, 깊이 추정 시스템.
예 16: 예 12 내지 예 15 중 어느 하나에 있어서, 상기 깊이 추정치 생성기는 증강 현실(AR) 세션 동안 깊이 추정치들을 획득하도록 구성되고, 상기 깊이 추정치 생성기는 상기 AR 세션 동안 포즈 데이터, 중력 방향 및/또는 상기 이미지 데이터의 하나 이상의 평면 영역의 식별도 획득하도록 구성되는, 깊이 추정 시스템.
예 17: 예 12 내지 예 16 중 어느 하나에 있어서, 상기 아핀 파라미터들은 제1 깊이 맵의 각각의 깊이 추정에 대한 스케일 및 시프트를 포함하는, 깊이 추정 시스템.
예 18: 예 12 내지 예 17 중 어느 하나에 있어서, 상기 깊이 맵 변환기는 상기 스케일 및 상기 시프트 중 추정하기 위한 목적 함수를 최소화하는 RANSAC(random sample Consensus) 기반 솔버(solver)를 포함하는, 깊이 추정 시스템.
예 19: 예 12 내지 예 18 중 어느 하나에 있어서, 신경 네트워크 트레이너를 더 포함하며, 상기 신경 네트워크 트레이너는 상기 신경 네트워크를 사용하여, 상기 이미지 데이터에 기초하여 제1 표면 법선들을 예측하고; 상기 제2 깊이 맵으로부터 제2 표면 법선들을 예측하고; 상기 제1 표면 법선들과 상기 제2 표면 법선들에 기초하여 자기 일관성 손실을 계산하고; 상기 제1 표면 법선들과 실제 법선들에 기초하여 손실을 계산하고; 및/또는 상기 자기 일관성 손실 및 상기 손실에 기초하여 상기 신경 네트워크를 업데이트하도록 구성되는, 깊이 추정 시스템.
예 20: 예 12 내지 예 19 중 어느 하나에 있어서, 상기 제2 깊이 맵을 사용하여 상기 이미지 데이터에서 적어도 하나의 평면 영역을 추정하도록 구성된 평면 생성기, 상기 적어도 하나의 평면 영역은 가상 객체를 부착하기 위한 표면으로 사용되도록 구성되고, 상기 평면 생성기는 상기 제2 깊이 맵을 포인트 클라우드 전환하도록 구성된 맵 컨버터를 포함하며; 및 상기 포인트 클라우드를 사용하여 평면 피팅 알고리즘에 따라 적어도 하나의 평면 영역을 검출하도록 구성되는 평면 검출기를 더 포함하는, 깊이 추정 시스템.
예 21: 실행가능한 명령어를 저장하는 비일시적 컴퓨터 판독가능 매체로서, 상기 명령어는 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서로 하여금: 센서 시스템으로부터 이미지 데이터를 수신하게 하고; 신경 네트워크에 의해, 상기 이미지 데이터에 기초하여 제1 깊이 맵을 생성하게 하고, 상기 제1 깊이 맵을 제1 스케일을 가지며; 상기 이미지 데이터와 연관된 깊이 추정치들을 획득하게 하고; 상기 깊이 추정치들을 사용하여, 상기 제1 깊이 맵을 제2 깊이 맵으로 변환하게 하고, 상기 제2 깊이 맵은 제2 스케일을 가지며; 그리고 상기 제2 깊이 맵을 사용하여 상기 이미지 데이터에서 적어도 하나의 평면 영역을 추정하게 하고, 상기 적어도 하나의 평면 영역은 증강 현실(AR) 세션 동안 가상 객체를 부착하기 위한 표면으로 사용되도록 구성되는, 비일시적 컴퓨터 판독가능 매체.
예 22: 예 21에 있어서, 상기 명령어는 추가로 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서로 하여금: 상기 제1 깊이 맵과 상기 깊이 추정치들 사이의 오프셋들에 기초하여 아핀(affine) 파라미터들을 추정하게 하고, 상기 아핀 파라미터들은 스케일 및 시프트를 포함하고, 상기 제1 깊이 맵은 상기 아핀 파라미터들에 기초하여 상기 제2 깊이 맵으로 변환되는, 비일시적 컴퓨터 판독가능 매체.
예 23: 예 21 내지 예 22 중 어느 하나에 있어서, 상기 깊이 추정치들은 시각적 관성 모션 추적기, 깊이 센서, 듀얼 픽셀 깊이 추정기, 모션 스테레오 깊이 추정기, 희소 활성 깊이 추정기 및/또는 미리 계산된 희소 맵 중 적어도 하나로부터 획득되는, 비일시적 컴퓨터 판독가능 매체.
예 24: 청구항 21 내지 23 중 어느 하나에 있어서, 상기 명령어는 추가로 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서로 하여금: 상기 신경 네트워크에 의해, 상기 이미지 데이터에 기초하여 표면 법선들을 생성하게 하고, 상기 제1 깊이 맵은 상기 표면 법선들 및 상기 깊이 추정치들을 사용하여 상기 제2 깊이 맵으로 변환되는, 비일시적 컴퓨터 판독가능 매체.
도 8는 본 명세서에 기술된 기법들과 사용될 수 있는 예시적 컴퓨터 디바이스(800)와 예시적 모바일 컴퓨터 디바이스(850)의 예시를 도시한다. 컴퓨팅 디바이스(800)는 프로세서(802), 메모리(804), 저장 디바이스(806), 메모리(804) 및 고속 확장 포트(810)에 연결되는 고속 인터페이스(808) 및 저속 버스(814) 및 저장 디바이스(806)에 연결되는 저속 인터페이스(812)를 포함한다. 컴포넌트들(802, 804, 806, 808, 810 및 812) 각각은 다양한 버스들을 사용하여 상호 연결되고, 공통 마더 보드 상에 또는 적절한 다른 방식으로 장착될 수 있다. 프로세서(802)는 메모리(804) 또는 저장 디바이스(806)에 저장된 명령어들을 포함하는, 컴퓨팅 디바이스(800) 내에서 실행하기 위한 명령어들을 프로세싱하여, 고속 인터페이스(808)에 연결된 디스플레이(816)와 같은 외부 입/출력 디바이스상에 GUI에 대한 그래픽 정보를 디스플레이할 수 있다. 다른 구현예에서, 다수의 프로세서들 및/또는 다수의 버스들이 다수의 메모리들 및 다수의 유형의 메모리와 함께, 적절하게 사용될 수 있다. 추가로, 다수의 컴퓨팅 디바이스들(800)은 필요한 동작의 부분들을 제공하는 각 디바이스와 연결될 수 있다(예를 들어, 서버 뱅크, 블레이드 서버 그룹 또는 멀티 프로세서 시스템).
메모리(804)는 컴퓨팅 디바이스(800) 내에 정보를 저장한다. 일 구현예에서, 메모리(804)는 휘발성 메모리 유닛 또는 유닛들이다. 다른 구현예에서, 메모리(804)는 비휘발성 메모리 유닛 또는 유닛들이다. 또한, 메모리(804)는 자기 또는 광학 디스크와 같은 컴퓨터 판독가능 매체의 다른 형태일 수 있다.
저장 디바이스(806)는 컴퓨팅 디바이스(800)에 대한 대형 스토리지를 제공할 수 있다. 일 구현예에서, 저장 디바이스(806)는 플로피 디스크 디바이스, 하드 디스크 디바이스, 광 디스크 디바이스 또는 테이프 디바이스, 플래시 메모리 또는 다른 유사한 고체 상태 메모리 디바이스, 또는 저장 영역 네트워크 또는 다른 구성의 디바이스를 포함하는 디바이스의 어레이와 같은 컴퓨터 판독가능 매체이거나 컴퓨터 판독가능 매체를 포함할 수 있다. 컴퓨터 프로그램 제품은 정보 캐리어에 유형적으로 수록될 수 있다. 컴퓨터 프로그램 제품은 또한 실행될 때 상기 기술된 바와 같은 하나 이상의 방법을 수행하는 명령어들을 포함할 수 있다. 정보 캐리어는 메모리(804), 저장 디바이스(806) 또는 프로세서(802)상의 메모리와 같은 컴퓨터 또는 기계 판독가능 매체이다.
고속 제어기(808)는 컴퓨팅 디바이스(800)에 대한 대역폭 집중 동작들을 관리하는 반면, 저속 제어기(812)는 낮은 대역폭 집중 동작들을 관리한다. 이러한 기능들의 할당은 단지 예시적인 것이다. 일 구현예에서, 고속 제어기(808)는 메모리(804), 디스플레이(816)(예를 들어, 그래픽 프로세서 또는 가속기를 통해) 및 다양한 확장 카드(도시되지 않음)를 수용할 수 있는 고속 확장 포트(810)에 연결된다. 구현예에서, 저속 제어기(812)는 저장 디바이스(806) 및 저속 확장 포트(814)에 결합된다. 다양한 통신 포트(예를 들어, USB, 블루투스, 이더넷, 무선 이더넷)를 포함할 수 있는 저속 확장 포트는 키보드, 포인팅 디바이스, 스캐너와 같은 하나 이상의 입력/출력 디바이스 또는 예를 들어 네트워크 어댑터를 통해 스위치 또는 라우터와 같은 네트워킹 디바이스에 결합될 수 있다.
컴퓨팅 디바이스(800)는 도면에 도시된 바와 같이 다수의 상이한 형태로 구현될 수 있다. 예를 들어, 그것은 표준 서버(820)로서 또는 그러한 서버들의 그룹에서 다수로 구현될 수 있다. 또한, 랙 서버 시스템(824)의 일부로서 구현될 수 있다. 또한, 랩톱 컴퓨터(822)와 같은 퍼스널 컴퓨터에서 구현될 수 있다. 대안적으로, 컴퓨팅 디바이스(800)로부터의 컴포넌트들은 디바이스(850)와 같은 모바일 디바이스(도시되지 않음) 내의 다른 컴포넌트들과 결합될 수 있다. 상기 디바이스들 각각은 컴퓨팅 디바이스(800, 850) 중 하나 이상을 포함할 수 있고, 전체 시스템은 서로 통신하는 다수의 컴퓨팅 디바이스들(800, 850)로 구성될 수 있다.
컴퓨팅 디바이스(850)는 다른 여러 컴포넌트들 중에서도 특히, 프로세서(852), 메모리(864), 디스플레이(854)와 같은 입/출력 디바이스, 통신 인터페이스(866) 및 송수신기(868)를 포함한다. 디바이스(850)에는 또한 추가적 저장을 제공하기 위해 마이크로 드라이브 또는 다른 디바이스와 같은 저장 디바이스가 제공될 수 있다. 컴포넌트들(850, 852, 864, 854, 866 및 868) 각각은 다양한 버스들을 사용하여 상호 연결되고, 몇몇 컴포넌트들은 공통 마더 보드 상에 또는 적절한 다른 방식으로 장착될 수 있다.
프로세서(852)는 메모리(864)에 저장된 명령어들을 포함하는 컴퓨팅 디바이스(850) 내의 명령어들을 실행할 수 있다. 프로세서는 별개의 그리고 다수의 아날로그 및 디지털 프로세서들을 포함하는 칩들의 칩셋으로서 구현될 수 있다. 프로세서는 예를 들어 사용자 인터페이스들, 디바이스(850)에 의해 실행되는 애플리케이션 및 디바이스(850)에 의한 무선 통신과 같은 디바이스(850)의 다른 컴포넌트들의 조정을 제공할 수 있다.
프로세서(852)는 제어 인터페이스(858) 및 디스플레이(854)에 연결된 디스플레이 인터페이스(856)를 통해 사용자와 통신할 수 있다. 디스플레이(854)는 예를 들어, TFT LCD(박막 트랜지스터 액정 디스플레이) 또는 OLED(유기 발광 다이오드) 디스플레이 또는 다른 적절한 디스플레이 기술을 포함할 수 있다. 디스플레이 인터페이스(856)는 사용자에게 그래픽 및 다른 정보를 제공하기 위해 디스플레이(854)를 구동하기 위한 적절한 회로를 포함할 수 있다. 제어 인터페이스(858)는 사용자로부터 명령을 수신하고, 프로세서(852)에 제출하기 위해 그들을 변환할 수 있다. 추가로, 외부 인터페이스(862)는 프로세서(852)와의 통신에 제공되어 다른 디바이스들과 디바이스(850)의 근거리 통신을 가능하게 할 수 있다. 외부 인터페이스(862)는 예를 들면, 일부 구현예들에서는 유선 통신을 위해 또는 다른 구현예들에서는 무선 통신을 위해 제공될 수 있고, 다수의 인터페이스들도 사용될 수 있다.
메모리(864)는 컴퓨팅 디바이스(850) 내에 정보를 저장한다. 메모리(864)는 컴퓨터 판독가능 매체 또는 매체들, 휘발성 메모리 유닛 또는 유닛들, 비휘발성 메모리 유닛 또는 유닛들 중 하나 이상으로 구현될 수 있다. 또한 확장 메모리(874)는 예를 들어 SIMM(Single In Line Memory Module) 카드 인터페이스를 포함할 수 있는 확장 인터페이스(872)를 통해 디바이스(850)에 제공되고 접속될 수 있다. 상기 확장 메모리(874)는 디바이스(850)에 대해 추가 저장 공간을 제공할 수 있거나, 또는 애플리케이션들 또는 디바이스(850)에 대한 다른 정보를 저장할 수 있다. 특히, 확장 메모리(874)는 전술한 프로세스들을 수행하거나 보충하는 명령어들을 포함할 수 있으며, 또한 보안 정보를 포함할 수 있다. 따라서, 예를 들면, 확장 메모리(874)는 디바이스(850)에 대한 보안 모듈로서 제공될 수 있고, 디바이스(850)의 보안 사용을 허용하는 명령어들로 프로그래밍될 수 있다. 또한, 보안 어플리케이션들은 SIMM 카드 상의 식별 정보를 해킹할 수 없는 방식으로 배치하는 것과 같이, SIMM 카드들을 통해 추가 정보와 함께 제공될 수 있다.
메모리는 예를 들어, 후술되는 바와 같이, 플래시 메모리 및/또는 NVRAM 메모리를 포함할 수 있다. 일 구현예에서, 컴퓨터 프로그램 제품은 정보 캐리어에 유형적으로 수록된다. 컴퓨터 프로그램 제품은 또한 실행될 때 상기 기술된 바와 같은 하나 이상의 방법을 수행하는 명령어들을 포함한다. 정보 캐리어는 예를 들어 송수신기(868) 또는 외부 인터페이스(862)를 통해 수신될 수 있는 메모리(864), 확장 메모리(874) 또는 프로세서(852)상의 메모리와 같은 컴퓨터 또는 기계 판독가능 매체이다.
디바이스(850)는 필요에 따라 디지털 신호 처리 회로를 포함할 수 있는 통신 인터페이스(866)를 통해 무선으로 통신할 수 있다. 통신 인터페이스(866)는 다른 것들 중에서도 GSM 보이스 콜들, SMS, EMS 또는 MMS 메시징, CDMA, TDMA, PDC, WCDMA, CDMA2000 또는 GPRS와 같은 다양한 모드들 또는 프로토콜들 하에서의 통신을 위해 제공될 수 있다. 이러한 통신은 예를 들어, 무선 주파수 송수신기(868)를 통해 발생될 수 있다. 추가로, 블루투스, Wi-Fi 또는 다른 트랜시버(도시되지 않음)를 사용하는 것과 같은 단거리 통신이 발생될 수 있다. 추가로, GPS(Global Positioning System) 수신기 모듈(870)은 디바이스(850)상에서 실행되는 애플리케이션들에 의해 적절히 사용될 수 있는 추가적인 네비게이션 및 위치 관련 무선 데이터를 디바이스(850)에 제공할 수 있다.
디바이스(850)는 또한 사용자로부터 발화된 정보를 수신하고 그것을 이용가능한 디지털 정보로 변환할 수 있는 오디오 코덱(860)을 사용하여 청각적으로 통신할 수 있다. 오디오 코덱(860)은 마찬가지로, 예를 들어 디바이스(850)의 핸드셋 내의 스피커를 통하는 것과 같이, 사용자를 위한 가청 사운드를 생성할 수 있다. 이러한 사운드는 보이스 전화 콜들로부터의 사운드 포함할 수 있고, 기록된 사운드(예를 들어, 음성 메시지, 음악 파일 등)를 포함할 수 있고, 또한 디바이스(850)상에서 동작하는 애플리케이션들에 의해 생성된 사운드를 포함할 수 있다.
컴퓨팅 디바이스(850)는 도면에 도시된 바와 같이 다수의 상이한 형태로 구현될 수 있다. 예를 들면, 그것은 셀룰러 전화(880)로서 구현될 수 있다. 또한 스마트폰(882), 개인 휴대 정보 단말기(PDA), 또는 다른 유사한 모바일 디바이스의 일부로서 구현될 수 있다.
본 명세서에 기술된 시스템들 및 기법들의 다양한 구현예들은 디지털 전자 회로, 집적 회로, 특수하게 설계된 ASIC들(application specific integrated circuits), 컴퓨터 하드웨어, 펌웨어, 소프트웨어 및/또는 이들의 조합으로 구현될 수 있다. 이들 다양한 구현예들은 적어도 하나의 프로그래머블 프로세서를 포함하는 프로그래머블 시스템 상에서 실행가능하고 및/또는 인터프리트가능한 하나 이상의 컴퓨터 프로그램들에서의 구현예를 포함할 수 있고, 이는 전용 또는 범용일 수 있고, 저장 시스템, 적어도 하나의 입력 디바이스 및 적어도 하나의 출력 디바이스으로부터 데이터 및 명령어들을 수신하고 그에 데이터 및 명령어들을 전송하기 위해 연결될 수 있다. 추가로, "모듈"이라는 용어는 소프트웨어 및/또는 하드웨어를 포함할 수 있다.
이들 컴퓨터 프로그램들(프로그램, 소프트웨어, 소프트웨어 애플리케이션 또는 코드로도 알려짐)은 프로그래머블 프로세서에 대한 기계 명령어들을 포함하며, 하이레벨 절차어 및/또는 객체 지향 프로그래밍 언어 및/또는 어셈블리/기계어에서 구현될 수 있다. 본 명세서에서 사용된 바와 같이, 용어 "기계 판독가능 매체", "컴퓨터 판독가능 매체"는 기계 판독가능 신호로서 기계 명령어들을 수신하는 기계 판독가능 매체를 포함하여, 기계 명령어들 및/또는 데이터를 프로그래머블 프로세서에 제공하는데 사용되는 임의의 컴퓨터 프로그램 물, 장치 및/또는 디바이스 예를 들어, 자기 디스크, 광학 디스크, 메모리, 프로그래머블 로직 디바이스(PLD)를 지칭한다. 용어 "기계 판독가능 신호"는 기계 명령어들 및/또는 데이터를 프로그래머블 프로세서에 제공하는데 사용되는 임의의 신호를 지칭한다.
사용자와의 인터렉션을 제공하기 위해, 본 명세서에서 기술된 시스템들 및 기법들은 사용자에게 정보를 디스플레이하기 위해 예를 들어, CRT(cathode ray tube) 또는 LCD(liquid crystal display) 모니터와 같은 디스플레이 디바이스 및 사용자가 컴퓨터에 입력을 제공할 수 있는 키보드 및 포인팅 디바이스 예를 들어, 마우스 또는 트랙볼을 갖는 컴퓨터에서 구현될 수 있다. 다른 종류의 디바이스들도 사용자와의 인터렉션을 제공하는데 사용될 수 있다. 예를 들어, 사용자에게 제공되는 피드백은 시각 피드백, 청각 피드백 또는 촉각 피드백과 같은 임의의 형태의 감각적 피드백일 수 있고, 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함하는 임의의 형태로 수신될 수 있다.
본 명세서에서 기술된 시스템들 및 기법들은 예를 들어 데이터 서버와 같은 백엔드 컴포넌트, 애플리케이션 서버와 같은 미들웨어 컴포넌트 또는 그래픽 사용자 인터페이스를 가지는 사용자 컴퓨터 또는 사용자가 본 명세서에 기술된 시스템들 및 기법들의 구현예와 인터렉션할 수 있는 웹 브라우저와 같은 프론트엔드 컴포넌트 또는 하나 이상의 상기 백엔드, 미들웨어 또는 프론트엔드 컴포넌트들의 임의의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 컴포넌트들은 디지털 데이터 통신의 임의의 형태 또는 매체, 예를 들어 통신 네트워크에 의해 상호연결될 수 있다. 통신 네트워크들의 예시들은 LAN(local area network), WAN(wide area network) 및 인터넷을 포함한다.
컴퓨팅 시스템은 사용자들 및 서버들을 포함할 수 있다. 사용자와 서버는 일반적으로 서로 멀리 떨어져 있으며, 일반적으로 통신 네트워크를 통해 인터렉션한다. 사용자와 서버의 관계는 각각의 컴퓨터에서 실행되고 서로 사용자-서버 관계를 갖는 컴퓨터 프로그램에 의해 발생한다.
일부 구현예에서,도 8에 도시된 컴퓨팅 디바이스는 가상 현실(VR 헤드셋(890))과 인터페이싱하는 센서들을 포함할 수 있다. 예를 들어, 컴퓨팅 디바이스(850) 또는 도 8에 도시된 다른 컴퓨팅 디바이스에 포함된 하나 이상의 센서는 VR 헤드셋(890)에 입력을 제공하거나 일반적으로 VR 공간에 입력을 제공할 수 있다. 센서는 터치 스크린, 가속도계, 자이로스코프, 압력 센서, 생체 센서, 온도 센서, 습도 센서 및 주변광 센서를 포함할 수 있지만 이에 제한되지 않는다. 컴퓨팅 디바이스(850)는 VR 공간으로의 입력으로서 사용될 수 있는 VR 공간 내의 컴퓨팅 디바이스의 절대 위치 및/또는 검출된 회전을 결정하기 위해 센서들을 사용할 수 있다. 예를 들어, 컴퓨팅 디바이스(850)는 제어기, 레이저 포인터, 키보드, 무기 등과 같은 가상 오브젝트로서 VR 공간에 통합될 수 있다. VR 공간에 통합된 경우 사용자에 의한 컴퓨팅 디바이스/가상 오브젝트의 위치는 사용자로 하여금 컴퓨팅 디바이스를 위치시켜 VR 공간에서 특정 방식으로 가상 오브젝트를 보게 한다. 예를 들어, 가상 오브젝트가 레이저 포인터를 나타내는 경우, 사용자는 실제 레이저 포인터인 것처럼 컴퓨팅 디바이스를 조작할 수 있다. 사용자는 컴퓨팅 디바이스를 좌우, 위, 아래, 원 등으로 움직일 수 있으며, 레이저 포인터를 사용하는 것과 유사한 방식으로 디바이스를 사용할 수 있다.
일부 구현예에서, 컴퓨팅 디바이스(850)에 포함되거나 연결되는 하나 이상의 입력 디바이스들이 VR 공간에 대한 입력으로 사용될 수 있다. 입력 디바이스들은 터치 스크린, 키보드, 하나 이상의 버튼들, 트랙 패드, 터치 패드, 포인팅 디바이스, 마우스, 트랙볼, 조이스틱, 카메라, 마이크로폰, 이어폰 또는 입력 기능이 있는 버드, 게임 컨트롤러 또는 기타 연결 가능한 입력 디바이스들을 포함할 수 있으며, 이제 한정되지 않는다. 컴퓨팅 디바이스가 VR 공간에 통합될 때 컴퓨팅 디바이스(850)에 포함된 입력 디바이스와 인터렉션하는 사용자는 특정한 액션이 VR 공간에서 발생하도록 할 수 있다.
일부 구현예에서, 컴퓨팅 디바이스(850)의 터치 스크린은 VR 공간에서 터치 패드로서 렌더링될 수 있다. 사용자는 컴퓨팅 디바이스(850)의 터치 스크린과 인터렉션할 수 있다. 인터렉션들은 예를 들어 VR 헤드셋(890)에서 VR 공간에서 렌더링된 터치 패드상의 움직임에 따라 렌더링된다. 렌더링된 움직임은 VR 공간에서 오브젝트들을 제어할 수 있다.
일부 구현예에서, 컴퓨팅 디바이스(850)에 포함된 하나 이상의 출력 디바이스들은 VR 공간에서 VR 헤드셋(890)의 사용자에게 출력 및/또는 피드백을 제공할 수 있다. 출력 및 피드백은 시각적, 촉각적 또는 청각적일 수 있다. 출력 및/또는 피드백은 진동, 하나 이상의 조명 또는 스트로브의 켜고 끄기 또는 깜박임 및/또는 플래시, 알람 울리기, 차임을 치는 것, 노래 연주 및 오디오 파일의 재생 등을 포함할 수 있으며, 이에 한정되지 않는다. 출력 디바이스들은 진동 모터, 진동 코일, 압전 디바이스, 정전기 디바이스, 발광 다이오드(LED), 스트로브 및 스피커를 포함할 수 있으며, 이제 한정되지 않는다.
일부 구현예에서, 컴퓨팅 디바이스(850)는 컴퓨터 생성 3D 환경에서 다른 오브젝트로서 표시될 수 있다. 사용자에 의한 컴퓨팅 디바이스(850)와의 인터렉션들(예를 들어, 회전, 흔들기, 터치스크린 터치, 터치 스크린을 가로지르는 손가락 스와이핑)은 VR 공간에서 오브젝트와의 인터렉션들로서 해석될 수 있다. VR 공간 내의 레이저 포인터의 예에서, 컴퓨팅 디바이스(850)는 컴퓨터 생성 3D 환경에서 가상 레이저 포인터로 나타난다. 사용자가 컴퓨팅 디바이스(850)를 조작함에 따라, VR 공간에서의 사용자는 레이저 포인터의 움직임을 보게된다. 사용자는 컴퓨팅 디바이스(850)상의 VR 공간 또는 VR 헤드셋(890)상의 컴퓨팅 디바이스(850)와의 인터렉션들로부터 피드백을 수신한다.
일부 구현예에서, 컴퓨팅 디바이스(예를 들어, 마우스, 키보드)에 더하여 하나 이상의 입력 디바이스들이 컴퓨터로 생성된 3D 환경에서 렌더링 될 수 있다. 렌더링된 입력 디바이스(예 : 렌더링된 마우스, 렌더링된 키보드)는 VR 공간에서 렌더링된 대로 사용되어 VR 공간의 오브젝트들을 제어할 수 있다.
컴퓨팅 디바이스(800)는 랩톱, 데스크톱, 워크 스테이션, 개인 휴대 정보 단말기, 서버, 블레이드 서버, 메인 프레임 및 다른 적절한 컴퓨터와 같은 다양한 형태의 디지털 컴퓨터들을 나타내기 위한 것이다. 컴퓨팅 디바이스(850)는 개인 휴대 정보 단말기, 셀룰러 전화기, 스마트폰 및 다른 유사한 컴퓨팅 디바이스들과 같은 다양한 형태의 모바일 디바이스들을 나타내기 위한 것이다. 여기에 도시된 컴포넌트들, 그들의 연결 및 관계, 및 그들의 기능은 단지 예시적인 것을 의미하며, 본 명세서에 기술된 및/또는 청구된 발명의 구현을 제한하는 것을 의미하지는 않는다.
다수의 실시예들이 기술되었다. 그럼에도 불구하고, 다양한 수정들이 본 발명의 정신과 범위로부터 벗어나지 않고 이루어질 수 있다는 것이 이해될 것이다.
추가로, 도면들에 도시된 논리 흐름들은 원하는 결과들을 달성하기 위해 특정한 도시된 순서, 또는 시계열적 순서를 반드시 필요로 하지 않는다. 추가로, 다른 단계들이 제공될 수 있거나, 단계들이 기술된 흐름으로부터 생략될 수 있고, 다른 컴포넌트들이 기술된 시스템에 추가되거나 그로부터 제거될 수 있다. 따라서, 다른 실시예들도 다음의 청구항들의 범위 내에 있다.

Claims (21)

  1. 깊이 추정을 위한 방법에 있어서,
    센서 시스템으로부터 이미지 데이터를 수신하는 단계;
    신경 네트워크에 의해, 상기 이미지 데이터에 기초하여 제1 깊이 맵을 생성하는 단계, 상기 제1 깊이 맵을 제1 스케일을 가지며;
    상기 이미지 데이터와 연관된 깊이 추정치들을 획득하는 단계; 및
    상기 깊이 추정치들을 사용하여, 상기 제1 깊이 맵을 제2 깊이 맵으로 변환하는 단계를 포함하고, 상기 제2 깊이 맵은 제2 스케일을 가지는, 방법.
  2. 청구항 1에 있어서,
    상기 신경 네트워크에 의해, 상기 이미지 데이터에 기초하여 표면 법선들을 생성하는 단계를 더 포함하고,
    상기 제1 깊이 맵은 상기 표면 법선들 및 깊이 추정치들을 사용하여 상기 제2 깊이 맵으로 변환되는, 방법.
  3. 청구항 1 또는 2에 있어서,
    상기 이미지 데이터에 기초하여 시각적 피처 포인트들을 생성하는 단계를 더 포함하고, 상기 시각적 피처 포인트들은 상기 깊이 추정치들과 연관되는, 방법.
  4. 청구항 1 내지 3 중 어느 한 항에 있어서,
    깊이 센서로부터 상기 깊이 추정치들을 획득하는 단계를 더 포함하는, 방법.
  5. 청구항 1 내지 4 중 어느 한 항에 있어서, 상기 깊이 추정치들은 모바일 컴퓨팅 디바이스에 의해 실행가능한 증강 현실(AR) 세션 동안 획득되는, 방법.
  6. 청구항 1 내지 5 중 어느 한 항에 있어서,
    상기 제1 깊이 맵과 상기 깊이 추정치들 사이의 오프셋들에 기초하여 적어도 하나의 아핀(affine) 파라미터를 추정하는 단계를 더 포함하고, 상기 적어도 하나의 아핀 파라미터는 스케일 또는 시프트 중 적어도 하나를 포함하고, 상기 제1 깊이 맵은 상기 적어도 하나의 아핀 파라미터에 기초하여 상기 제2 깊이 맵으로 변환되는, 방법.
  7. 청구항 1 내지 6 중 어느 한 항에 있어서,
    상기 신경 네트워크에 의해, 상기 이미지 데이터에 기초하여 제1 표면 법선들을 예측하는 단계;
    상기 제2 깊이 맵으로부터 제2 표면 법선들을 예측하는 단계; 및
    상기 제1 표면 법선들 및 상기 제2 표면 법선들에 기초하여 자기 일관성 손실(self-consistency loss)을 계산하는 단계; 및
    상기 자기 일관성 손실에 기초하여 상기 신경 네트워크를 업데이트하는 단계를 더 포함하는, 방법.
  8. 청구항 1 내지 7 중 어느 한 항에 있어서,
    상기 제2 깊이 맵을 사용하여 상기 이미지 데이터에서 적어도 하나의 평면 영역을 추정하는 단계, 상기 적어도 하나의 평면 영역은 가상 객체를 부착하기 위한 표면으로 사용되도록 구성되는, 방법.
  9. 깊이 추정 시스템으로서,
    이미지 데이터를 획득하도록 구성된 센서 시스템;
    상기 이미지 데이터에 기초하여 제1 깊이 맵을 생성하도록 구성된 신경 네트워크, 상기 제1 깊이 맵을 제1 스케일을 가지며;
    상기 이미지 데이터와 연관된 깊이 추정치들을 획득하도록 구성된 깊이 추정치 생성기; 및
    상기 깊이 추정치들 및 상기 제1 깊이 맵에 기초하여 적어도 하나의 아핀 파라미터를 추정하고, 상기 적어도 하나의 아핀 파라미터를 사용하여 상기 제1 깊이 맵을 제2 깊이 맵으로 변환하도록 구성된 깊이 맵 변환기를 포함하며, 상기 제2 깊이 맵은 제2 스케일을 갖는, 깊이 추정 시스템.
  10. 청구항 9에 있어서, 상기 신경 네트워크는 모바일 컴퓨팅 디바이스에서 실행하도록 구성되는, 깊이 추정 시스템.
  11. 청구항 9 또는 10에 있어서,
    시각적 피처 포인트들을 생성하도록 구성된 시각적 관성 모션 추적기를 더 포함하며, 상기 시각적 피처 포인트들은 상기 깊이 추정치들과 연관되는, 깊이 추정 시스템.
  12. 청구항 9 내지 10 중 어느 한 항에 있어서,
    상기 깊이 추정치들을 획득하도록 구성된 깊이 센서를 더 포함하는, 깊이 추정 시스템.
  13. 청구항 9 내지 12 중 어느 한 항에 있어서, 상기 깊이 추정치 생성기는 증강 현실(AR) 세션 동안 깊이 추정치들을 획득하도록 구성되고, 상기 깊이 추정치 생성기는 상기 AR 세션 동안 포즈 데이터, 중력 방향 및 상기 이미지 데이터의 하나 이상의 평면 영역의 식별도 획득하도록 구성되는, 깊이 추정 시스템.
  14. 청구항 9 내지 13 중 어느 한 항에 있어서, 상기 적어도 하나의 아핀 파라미터는 상기 제1 깊이 맵의 각각의 깊이 추정에 대한 스케일 또는 시프트 중 적어도 하나를 포함하는, 깊이 추정 시스템.
  15. 청구항 14에 있어서, 상기 깊이 맵 변환기는 상기 스케일 또는 상기 시프트 중 적어도 하나를 추정하기 위한 목적 함수를 최소화하는 RANSAC(random sample Consensus) 기반 솔버(solver)를 포함하는, 깊이 추정 시스템.
  16. 청구항 9 내지 15 중 어느 한 항에 있어서,
    신경 네트워크 트레이너를 포함하며, 상기 신경 네트워크 트레이너는:
    상기 신경 네트워크를 사용하여, 상기 이미지 데이터에 기초하여 제1 표면 법선들을 예측하고;
    상기 제2 깊이 맵으로부터 제2 표면 법선들을 예측하고;
    상기 제1 표면 법선들과 상기 제2 표면 법선들에 기초하여 자기 일관성 손실을 계산하고;
    상기 제1 표면 법선들과 실제 법선들에 기초하여 손실을 계산하고; 그리고
    상기 자기 일관성 손실 및 상기 손실에 기초하여 상기 신경 네트워크를 업데이트하도록 구성되는, 깊이 추정 시스템.
  17. 청구항 9 내지 16 중 어느 한 항에 있어서,
    상기 제2 깊이 맵을 사용하여 상기 이미지 데이터에서 적어도 하나의 평면 영역을 추정하도록 구성된 평면 생성기, 상기 적어도 하나의 평면 영역은 가상 객체를 부착하기 위한 표면으로 사용되도록 구성되고, 상기 평면 생성기는 상기 제2 깊이 맵을 포인트 클라우드 전환하도록 구성된 맵 컨버터를 포함하며; 및 상기 포인트 클라우드를 사용하여 평면 피팅 알고리즘에 따라 적어도 하나의 평면 영역을 검출하도록 구성되는 평면 검출기를 더 포함하는, 깊이 추정 시스템.
  18. 실행가능한 명령어를 저장하는 비일시적 컴퓨터 판독가능 매체로서, 상기 명령어는 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서로 하여금:
    센서 시스템으로부터 이미지 데이터를 수신하게 하고;
    신경 네트워크에 의해, 상기 이미지 데이터에 기초하여 제1 깊이 맵을 생성하게 하고, 상기 제1 깊이 맵을 제1 스케일을 가지며;
    상기 이미지 데이터와 연관된 깊이 추정치들을 획득하게 하고;
    상기 깊이 추정치들을 사용하여, 상기 제1 깊이 맵을 제2 깊이 맵으로 변환하게 하고, 상기 제2 깊이 맵은 제2 스케일을 가지며; 그리고
    상기 제2 깊이 맵을 사용하여 상기 이미지 데이터에서 적어도 하나의 평면 영역을 추정하게 하고, 상기 적어도 하나의 평면 영역은 증강 현실(AR) 세션 동안 가상 객체를 부착하기 위한 표면으로 사용되도록 구성되는, 비일시적 컴퓨터 판독가능 매체.
  19. 청구항 18에 있어서, 상기 명령어는 추가로 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서로 하여금:
    상기 제1 깊이 맵과 상기 깊이 추정치들 사이의 오프셋들에 기초하여 적어도 하나의 아핀(affine) 파라미터를 추정하게 하고, 상기 적어도 하나의 아핀 파라미터는 스케일 또는 시프트 중 적어도 하나를 포함하고, 상기 제1 깊이 맵은 상기 적어도 하나의 아핀 파라미터에 기초하여 상기 제2 깊이 맵으로 변환되는, 비일시적 컴퓨터 판독가능 매체.
  20. 청구항 18 내지 19 중 어느 한 항에 있어서, 상기 깊이 추정치들은 시각적 관성 모션 추적기, 깊이 센서, 듀얼 픽셀 깊이 추정기, 모션 스테레오 깊이 추정기, 희소 활성 깊이 추정기 또는 미리 계산된 희소 맵 중 적어도 하나로부터 획득되는, 비일시적 컴퓨터 판독가능 매체.
  21. 청구항 18 내지 20 중 어느 한 항에 있어서, 상기 명령어는 추가로 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서로 하여금:
    상기 신경 네트워크에 의해, 상기 이미지 데이터에 기초하여 표면 법선들을 생성하게 하고,
    상기 제1 깊이 맵은 상기 표면 법선들 및 깊이 추정치들을 사용하여 상기 제2 깊이 맵으로 변환되는, 비일시적 컴퓨터 판독가능 매체.
KR1020227003139A 2021-04-19 2021-04-19 신경 네트워크를 사용한 깊이 추정 KR20220145807A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2021/070422 WO2022225574A1 (en) 2021-04-19 2021-04-19 Depth estimation using a neural network

Publications (1)

Publication Number Publication Date
KR20220145807A true KR20220145807A (ko) 2022-10-31

Family

ID=75870823

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227003139A KR20220145807A (ko) 2021-04-19 2021-04-19 신경 네트워크를 사용한 깊이 추정

Country Status (6)

Country Link
US (1) US20220335638A1 (ko)
EP (1) EP4097680A1 (ko)
JP (1) JP7477596B2 (ko)
KR (1) KR20220145807A (ko)
CN (1) CN115500083A (ko)
WO (1) WO2022225574A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024101643A1 (ko) * 2022-11-07 2024-05-16 삼성전자 주식회사 외부 디바이스의 인공지능 모델을 이용하여 객체를 인식하는 증강 현실 디바이스 및 그 동작 방법

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10916035B1 (en) * 2018-11-30 2021-02-09 Zoox, Inc. Camera calibration using dense depth maps
CN112132972B (zh) 2020-09-29 2024-03-22 凌美芯(北京)科技有限责任公司 一种激光与图像数据融合的三维重建方法及系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024101643A1 (ko) * 2022-11-07 2024-05-16 삼성전자 주식회사 외부 디바이스의 인공지능 모델을 이용하여 객체를 인식하는 증강 현실 디바이스 및 그 동작 방법

Also Published As

Publication number Publication date
JP2023527595A (ja) 2023-06-30
CN115500083A (zh) 2022-12-20
US20220335638A1 (en) 2022-10-20
JP7477596B2 (ja) 2024-05-01
EP4097680A1 (en) 2022-12-07
WO2022225574A1 (en) 2022-10-27

Similar Documents

Publication Publication Date Title
KR102256706B1 (ko) 부드럽게 변화하는 포비티드 렌더링
US10007349B2 (en) Multiple sensor gesture recognition
US9779508B2 (en) Real-time three-dimensional reconstruction of a scene from a single camera
KR20110082636A (ko) 임의의 위치들을 가지는 디스플레이 구성 요소들 상에 3차원 콘텐츠의 공간적으로 상호 연관된 렌더링
EP3798986A1 (en) Location aware visual markers
US10937192B2 (en) Resolving incorrect distributed simultaneous localization and mapping (SLAM) data in edge cloud architectures
US20240031678A1 (en) Pose tracking for rolling shutter camera
KR20220145807A (ko) 신경 네트워크를 사용한 깊이 추정
WO2023140990A1 (en) Visual inertial odometry with machine learning depth
US11961195B2 (en) Method and device for sketch-based placement of virtual objects
US10869156B2 (en) Audio processing
JP2020173656A (ja) 情報処理装置、情報処理方法、及び記録媒体
US11558711B2 (en) Precision 6-DoF tracking for wearable devices
EP3951724A1 (en) Information processing apparatus, information processing method, and recording medium
US11354011B2 (en) Snapping range for augmented reality
US20230401796A1 (en) Fast ar device pairing using depth predictions
US11823339B2 (en) Localization accuracy response
US20220375110A1 (en) Augmented reality guided depth estimation
US20230102686A1 (en) Localization based on Detected Spatial Features
KR20230070308A (ko) 웨어러블 장치를 이용한 제어가능한 장치의 위치 식별
WO2022245649A1 (en) Augmented reality guided depth estimation
CN117994284A (zh) 碰撞检测方法、装置、电子设备和存储介质

Legal Events

Date Code Title Description
E902 Notification of reason for refusal