KR102493185B1 - 깊이 힌트를 사용하는 깊이 추정 모델의 자가 감독 훈련 - Google Patents

깊이 힌트를 사용하는 깊이 추정 모델의 자가 감독 훈련 Download PDF

Info

Publication number
KR102493185B1
KR102493185B1 KR1020217016884A KR20217016884A KR102493185B1 KR 102493185 B1 KR102493185 B1 KR 102493185B1 KR 1020217016884 A KR1020217016884 A KR 1020217016884A KR 20217016884 A KR20217016884 A KR 20217016884A KR 102493185 B1 KR102493185 B1 KR 102493185B1
Authority
KR
South Korea
Prior art keywords
image
hint
depth
pixel
loss value
Prior art date
Application number
KR1020217016884A
Other languages
English (en)
Other versions
KR20210069125A (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 KR20210069125A publication Critical patent/KR20210069125A/ko
Application granted granted Critical
Publication of KR102493185B1 publication Critical patent/KR102493185B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/261Image signal generators with monoscopic-to-stereoscopic image conversion
    • H04N13/268Image signal generators with monoscopic-to-stereoscopic image conversion based on depth image-based rendering [DIBR]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/128Adjusting depth or disparity
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • 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
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/80Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
    • G06T7/85Stereo camera calibration
    • 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/10016Video; Image sequence
    • G06T2207/10021Stereoscopic video; Stereoscopic image sequence
    • 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/30Subject of image; Context of image processing
    • G06T2207/30244Camera pose
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N2013/0074Stereoscopic image analysis
    • H04N2013/0081Depth or disparity estimation from stereoscopic image signals

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Medical Informatics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Image Analysis (AREA)
  • Processing Or Creating Images (AREA)
  • Image Processing (AREA)

Abstract

깊이 힌트를 사용하여 깊이 추정 모델을 훈련하는 방법이 개시된다. 각 이미지 쌍에 대해: 첫 번째 이미지에 대해 깊이 예측 모델에 의해 깊이 예측이 결정되고 깊이 힌트가 획득되는 단계; 제 2이미지는 깊이 예측에 기초하여 합성 프레임을 생성하고 깊이 힌트에 기초하여 힌트 합성 프레임을 생성하기 위해 제 1이미지에 한번 투영되고; 프라이머리 손실은 합성 프레임으로 계산된다; 힌트 손실은 힌트 합성 프레임으로 계산된다; 및 픽셀 당 결정에 따라 이미지 쌍에 대한 전체 손실이 계산되고, 힌트 손실이 프라이머리 손실보다 작으면, 전체 손실은 프라이머리 손실과 깊이 예측과 깊이 힌트 사이의 감독된 깊이 손실을 포함하는 것을 특징으로 한다. 깊이 추정 모델은 이미지 쌍의 전체 손실을 최소화하여 훈련된다.

Description

깊이 힌트를 사용하는 깊이 추정 모델의 자가 감독 훈련 {SELF-SUPERVISED TRAINING OF A DEPTH ESTIMATION MODEL USING DEPTH HINTS}
본 출원은 2019 년 5 월 2 일에 출원된 미국 가특허출원 62/842,531호의 이익을 주장하며, 이는 모든 목적을 위해 그 전체가 참조로 포함된다.
설명된 기술적 사상은 일반적으로 단색 입력 이미지로부터 깊이 맵을 추정하는 것과 관련되며, 특히 다른 모델에 의해 제공되는 깊이 힌트를 사용하여 훈련된 깊이 맵을 추정하기 위해 기계 학습된 모델을 훈련하는 것과 관련된다.
깊이 센싱은 내비게이션 및 장면 이해 모두에 적용된다. 많은 방법이 훈련된 모델 또는 네트워크를 사용하여 단색 입력 이미지에서 깊이 맵을 결정한다. 이 추정 시스템을 훈련하기 위해 다양한 종류의 훈련 데이터를 사용하는 몇 가지 방법이 있다. 카메라에 의해 촬영된 동일한 장면의 이미지와 쌍을 이루는 환경(즉, 무선 탐지 및 범위 측정(RADAR), 빛 감지 및 거리 측정(LIDAR 등)의 객체에 대한 그라운드 트루스(ground truth) 깊이를 설정하기 위해 검출 및 거리 측정 시스템을 사용하여 깊이 추정 시스템을 훈련할 수 있다. 감지 및 거리 측정 시스템은 객체의 깊이에 대한 그라운드 트루스를 제공할 수 있지만 감지 및 거리 측정 시스템을 지속적으로 활용하여 다양한 환경의 깊이를 감지하는 것은 시간과 리소스 면에서 많은 비용이 들 수 있다. 더욱이, 감지 및 거리 측정 시스템은 감지 및 거리 측정 시스템에서 감지할 수 없게 만드는 물질적 특성(예: 반사 객체)을 가질 수 있는 일부 객체의 깊이를 결정할 수 없다.
깊이 추정 시스템을 훈련하는 또 다른 방법은 동일한 장면의 입체 이미지 쌍을 사용한다. 단일 임시 인스턴스에서 입체 이미지 쌍을 캡처하는 것은 동일한 장면에 초점을 맞추고 있지만 어느 정도 떨어져 있는 두 대의 카메라를 사용하는 것에 달려 있다. 깊이 추정 시스템은 입체 이미지 쌍의 입체 이미지 중 하나에서 다른 입체 이미지로 투영하는 방식으로 작동한다. 깊이 추정 시스템은 하나에서 다른 입체 이미지로 투영하기 위해 두 이미지 사이의 간격(배율된 깊이의 역) 및 두 이미지 사이의 포즈(즉, 입체 이미지 쌍을 촬영하는데 사용되는 두 카메라의 관점 사이의 변환 매트릭스) 외에 현재의 입체 이미지를 고려한다. 캡처된 입체 이미지와 비교하여 투영의 광도 재구성 오차를 최소화함으로써, 깊이 추정 시스템은 장면의 깊이를 결정할 수 있다.
다른 방법은 끊임없이 변화하는 장면의 단안 비디오 데이터를 활용하여 깊이 추정 시스템을 훈련시킨다. 깊이 추정 시스템은 단안 비디오 데이터에서 하나의 시간의 이미지로부터 광도 재구성 오차를 최소화하면서 후속 시간의 이미지로 투영하여 훈련한다. 그러나 이러한 시스템은 하나의 시간의 이미지에서 다른 시간의 이미지로 들어 오거나 사라지는 객체를 부정확하게 설명하여 깊이 맵과 깊이 맵 테두리 주변에 아티팩트(artifact)를 유발할 수 있다. 또한 기존 시스템은 깊이 맵을 업 샘플링(upsampling)하기 전에 저해상도 이미지를 입력하여 깊이 맵을 결정하는데, 이는 깊이 업 샘플링 아티팩트가 발생하기 쉽다.
광도 오차는 L1 거리, L2 거리, 구조적 비유사성(DSSIM: structure dissimilarity) 거리 또는 이들 거리의 조합과 같은 다양한 메트릭(metric)을 사용하여 측정될 수 있다. 자가 감독 훈련의 단점은 최적의 깊이 값을 찾는 것이 어려운 경우가 많으며, 특히 다중 깊이 값에 대한 광도 손실이 낮을 수 있다는 점이다. 결과적으로 훈련이 더 어려워 예측 정확도가 낮아질 수 있다.
본 발명은 모델의 현재 예측에 대한 대안으로서 깊이 힌트를 사용하여 깊이 추정 모델을 훈련시키는 것을 설명한다. 픽셀에 대한 깊이 힌트가 훈련중인 모델로부터 픽셀에 대한 깊이 출력보다 더 나은 재투영(예: 더 낮은 광도 재구성 오차)을 초래하는 경우, 깊이 예측 및 힌트(예: 모델의 출력과 조합)를 사용하여 손실에 대한 픽셀의 기여도를 계산한다. 깊이 힌트가 더 나은 재투영을 가져 오지 않으면 훈련은 깊이 힌트를 무시하고 모델의 깊이 출력에서 손실에 대한 픽셀의 기여도를 결정한다. 학습 프로세스는 손실에 따라 모델을 업데이트한다(예: 역전파 사용). 이러한 깊이 힌트를 사용하면 기존 훈련 프로세스만 사용하는 것보다 훈련 프로세스의 성능을 향상시킬 수 있다. 깊이 힌트는 대안으로 훈련된 깊이 추정 모델, 예를 들어 외부 시스템에 의해 훈련된 것에서 얻을 수 있다.
훈련 시스템은 훈련 이미지 데이터와 함께 자가 감독 훈련 알고리즘에 의존한다. 자가 감독 훈련은 감독 훈련과는 반대로 그라운드 트루스(ground truth) 깊이를 요구하지 않는다. 훈련 이미지 데이터는 이미지 쌍으로 분할될 수 있다. 이미지 쌍은 쌍안 카메라 시스템에 의해 캡처되는 진정한 입체 이미지 쌍 및/또는 적어도 하나의 카메라를 갖는 시스템에 의해 캡처된 단안 비디오 데이터의 시간적으로 구별되는 프레임으로부터의 모조 입체 이미지 쌍일 수 있다. 훈련 시스템은 이미지 쌍으로부터의 제 1훈련 이미지를 입력하여 제 1훈련 이미지에 대한 초기 깊이 예측을 결정한다. 훈련 시스템은 이미지 쌍의 제 2훈련 이미지를 이미지 쌍의 제 1훈련 이미지에 투영하여 적어도 제 1훈련 이미지의 깊이 예측 및 두 훈련 이미지 사이의 포즈에 기초하여 합성 프레임을 생성한다. 훈련 시스템은 제 1훈련 이미지에 대한 깊이 예측보다는 깊이 힌트에 기초하여 힌트 합성 프레임을 생성하기 위해 제 2훈련 이미지를 제 1훈련 이미지에 두 번째로 투영한다. 포즈는 훈련 이미지를 촬영하는 데 사용되는 카메라의 알려진 위치, 예를 들어 양안 카메라 시스템에서 카메라의 알려진 배치로부터 알 수 있다. 그렇지 않으면, 포즈는 포즈 추정 모델 또는 깊이-포즈 하이브리드 모델에 의해 추정될 수 있는데, 예를 들어, 시간적으로 인접한 프레임이 모조 입체 이미지 쌍을 구성하는 단안 비디오 데이터가 있는 경우이다.
투영 프로세스의 정확도는 적어도 제 1훈련 이미지의 깊이 예측의 정확도에 기초한다. 이와 같이, 프라이머리 손실은 합성 프레임과 그에 대응하는 훈련 이미지 사이의 광도 재구성 오차에 따라 정의될 수 있다. 힌트 합성 프레임과 해당 훈련 이미지 간의 광도 재구성 오차에 따라 힌트 손실이 정의될 수 있다. 이미지 쌍의 전체 손실은 모든 픽셀의 손실 기여도를 합산한다. 전술한 바와 같이, 훈련 시스템은 전체 손실에 대한 그 픽셀의 기여도를 결정하기 위해 픽셀 당 기준으로 프라이머리 손실 및 힌트 손실을 비교할 수 있다. 픽셀의 프라이머리 손실 값이 힌트 손실 값보다 작거나 같으면 훈련 시스템은 깊이 힌트에서 힌트 손실을 무시하고 전체 손실에 대한 기여도는 해당 픽셀의 프라이머리 손실 값이다. 픽셀에 대한 힌트 손실 값이 프라이머리 손실 값보다 작으면 전체 손실에 대한 기여도는 해당 픽셀의 깊이 예측 값과 해당 픽셀의 깊이 힌트 사이의 프라이머리 손실 값 및 감독된 깊이 손실을 기초로 한다. 일 실시 예에서, 기여도는 프라이머리 손실 값의 합이고, 감독된 깊이 손실은 모델의 깊이 예측과 해당 픽셀에서의 깊이 힌트 사이의 절대 값 차이다.
입체 이미지 데이터로 훈련하는 실시 예에서, 깊이 힌트는 힌트 합성 프레임을 생성하기 위해 입체 이미지 쌍의 다른 입체 이미지에 각각의 입체 이미지를 투영하는 데 사용된다. 깊이 힌트는 대안적으로 훈련된 깊이 추정 모델, 예를 들어 입체 이미지를 입력하고 단일 깊이 맵을 출력하도록 구성된 입체 깊이 모델로부터 획득될 수 있다. 깊이 힌트는 또한 최소 이미지 데이터와 일부 위치 데이터(예: 전역 좌표, 가속 데이터, 주행 거리 데이터 등)를 기초로 생성된 맵 내에서 동시에 맵을 생성하고 클라이언트 장치를 찾도록 구성된 SLAM(simultaneous-localization-and-mapping)모듈로부터 획득할 수 있다.
단안 비디오 데이터를 사용한 훈련의 실시 예에서, 힌트 합성 프레임을 생성하기 위해 하나의 시간의 이미지를 다른 시간의 이미지에 투영하는 동안 깊이 힌트 및/또는 포즈 힌트가 사용될 수 있다. 깊이 힌트는 위에서 설명한대로 얻을 수 있다. 포즈 힌트는 대안적으로 훈련된 포즈 추정 모델로부터 획득할 수 있다.
도 1은 하나 이상의 실시 예에 따른 네트워크 컴퓨팅 환경을 도시한다.
도 2는 하나 이상의 실시 예들에 따라 현실 세계와 평행한 지형을 갖는 가상 세계의 표현을 묘사한다.
도 3은 하나 이상의 실시 예에 따른 병렬 현실 게임의 예시적인 게임 인터페이스를 도시한다.
도 4는 하나 이상의 실시 예에 따라 입체 이미지 데이터 및 깊이 힌트를 사용하여 깊이 추정 모델을 훈련하는 일반적인 프로세스를 설명하는 흐름도이다.
도 5는 하나 이상의 실시 예에 따른 증강 현실 애플리케이션에서 깊이 힌트를 사용하여 훈련된 깊이 추정 모델의 예시적인 사용을 설명하는 흐름도이다.
도 6은 하나 이상의 실시 예에 따른 깊이 추정 모델을 훈련하거나 응용하는데 사용하기에 적합한 예시적인 컴퓨터 시스템을 도시한다.
도면 및 다음 설명은 단지 예시로서 특정 실시 예를 설명한다. 당업자는 설명된 원리로부터 벗어나지 않고 구조 및 방법의 대안적인 실시 예가 사용될 수 있다는 것을 다음 설명으로부터 쉽게 인식할 것이다. 이제 여러 실시 예에 대한 참조가 이루어질 것이며, 그 예는 첨부 도면에 도시되어 있다.
예시적인 위치 기반의 병렬 현실 게임 시스템
다양한 실시 예는 현실 세계의 플레이어 움직임 및 행동이 가상 세계에서의 행동에 영향을 미치고 그 반대의 경우도 마찬가지인 현실 세계 지리의 적어도 일부와 평행하는 가상 세계 지리의 증강 현실 콘텐츠를 포함하는 병렬 현실 게임의 맥락에서 설명된다. 본 명세서에서 제공하는 발명을 이용하여 당업자는 설명된 주제가 이미지 데이터로부터 깊이 정보를 결정하는 것이 바람직한 다른 상황에서 적용 가능하다는 것을 이해할 것이다. 또한 컴퓨터 기반 시스템의 고유한 유연성은 시스템 구성 요소간에 작업 및 기능을 매우 다양한 구성, 조합 및 분할할 수 있다. 예를 들어, 본 발명의 양태에 따른 시스템 및 방법은 단일 컴퓨팅 장치를 사용하여 또는 다수의 컴퓨팅 장치(예를 들어, 컴퓨터 네트워크에 연결됨)에 걸쳐 구현될 수 있다.
도 1은 하나 이상의 실시 예에 따른 네트워크 컴퓨팅 환경(100)을 도시한다. 네트워크 컴퓨팅 환경(100)은 현실 세계와 평행하는 지리를 갖는 가상 세계에서 플레이어의 상호 작용을 제공한다. 특히, 현실 세계의 지리적 영역은 가상 세계의 해당 영역에 직접 연결되거나 매핑 될 수 있다. 플레이어는 현실 세계의 다양한 지리적 위치로 이동하여 가상 세계에서 이동할 수 있다. 예를 들어 현실 세계에서 플레이어의 위치를 추적하고 가상 세계에서 플레이어의 위치를 업데이트하는데 사용할 수 있다. 전형적으로, 현실 세계에서 플레이어의 위치는 플레이어가 가상 세계와 상호 작용하는 클라이언트 장치(120)의 위치를 찾고 플레이어가 동일한(또는 거의 동일한) 위치에 있다고 가정함으로써 결정된다. 예를 들어, 다양한 실시 예에서, 플레이어는 현실 세계에서 플레이어의 위치가 가상 세계에서 가상 요소의 가상 위치에 대응하는 현실 세계 위치의 임계 거리(예를 들어, 10 미터, 20 미터 등) 내에 있는 경우 가상 요소와 상호 작용할 수 있다. 편의상, 다양한 실시 예가 "플레이어의 위치”를 참조하여 설명되지만, 당업자는 그러한 참조가 플레이어의 클라이언트 장치(120)의 위치를 참조할 수 있다는 것을 이해할 것이다.
이제 일 실시 예에 따라 병렬 현실 게임의 플레이어를 위한 게임 보드로서 작용할 수 있은 현실 세계(200)와 평행하는 가상 세계(210)의 개념도를 도시하는 도 2를 참조한다. 예시된 바와 같이, 가상 세계(210)는 현실 세계(200)의 지리와 평행하는 지리를 포함할 수 있다. 특히, 현실 세계(200)에서 지리적 영역 또는 공간을 정의하는 좌표 범위는 가상 세계(210)에서 가상 공간을 정의하는 해당 좌표 범위에 매핑된다. 현실 세계(200)의 좌표 범위는 도시, 이웃, 도시, 캠퍼스, 로케일, 국가, 대륙, 전 세계 또는 기타 지리적 영역과 연관될 수 있다. 지리적 좌표 범위의 각 지리적 좌표는 가상 세계의 가상 공간에서 해당 좌표에 매핑된다.
가상 세계(210)에서 플레이어의 위치는 현실 세계(200)에서 플레이어의 위치에 대응한다. 예를 들어, 현실 세계(200)에서 위치(212)에 위치한 플레이어 A는 가상 세계(210)에서 해당 위치(222)를 갖는다. 유사하게, 현실 세계에서 위치(214)에 위치한 플레이어 B는 가상 세계에서 해당 위치(224)를 갖는다. 레이어가 현실 세계의 지리적 좌표 범위 내에서 이동함에 따라, 플레이어는 가상 세계(210)에서 가상 공간을 정의하는 좌표 범위 내에서도 이동한다. 특히, 플레이어가 휴대하는 모바일 컴퓨팅 장치와 관련된 포지셔닝 시스템(예: GPS 시스템)은 플레이어가 실제 세계에서 지리적 좌표 범위를 탐색할 때 플레이어의 위치를 추적하는데 사용될 수 있다. 현실 세계(200)에서 플레이어의 위치와 관련된 데이터는 가상 세계(210)에서 가상 공간을 정의하는 좌표의 해당 범위에서 플레이어의 위치를 업데이트하기 위해 사용된다. 이러한 방식으로 플레이어는 현실 세계(200)의 특정 개별 위치에서 위치 정보를 체크인하거나 주기적으로 업데이트하지 않고도 현실 세계(200)에 해당하는 지리적 좌표 범위 사이를 이동함으로써 가상 세계(210)에서 가상 공간을 정의하는 좌표 범위에서 연속 트랙을 따라 탐색할 수 있다.
위치 기반 게임은 플레이어가 가상 세계의 다양한 가상 위치에 흩어져있는 다양한 가상 요소 및/또는 가상 객체로 이동 및/또는 상호 작용하도록 요구하는 복수의 게임 목표를 포함할 수 있다. 플레이어는 현실 세계에서 가상 요소 또는 객체의 해당 위치로 이동하여 이러한 가상 위치로 이동할 수 있다. 예를 들어, 포지셔닝 시스템은 플레이어가 계속해서 현실 세계를 탐색할 때 플레이어가 병렬 가상 세계를 계속 탐색하도록 플레이어의 위치를 지속적으로 추적할 수 있다. 그런 다음 플레이어는 특정 위치에서 다양한 가상 요소 및/또는 객체와 상호 작용하여 하나 이상의 게임 목표를 달성하거나 수행할 수 있다.
예를 들어, 게임 목표는 가상 세계(210)의 다양한 가상 위치에 위치한 가상 요소(230)와 상호 작용하는 플레이어를 갖는다. 이러한 가상 요소(230)는 현실 세계(200)의 랜드 마크, 지리적 위치 또는 객체(240)에 링크될 수 있다. 현실 세계의 랜드 마크 또는 객체(240)는 예술 작품, 기념물, 건물, 사업체, 도서관, 박물관, 또는 다른 적절한 현실 세계의 랜드 마크 또는 객체일 수 있다. 상호 작용에는 캡처, 소유권 주장, 일부 가상 항목 사용, 일부 가상 화폐 사용 등이 포함된다. 이러한 가상 요소(230)를 포획하기 위해, 플레이어는 현실 세계에서 가상 요소(230)에 연결된 랜드 마크 또는 지리적 위치(240)로 이동해야하며 가상 세계(210)에서 가상 요소(230)와 필요한 상호 작용을 수행해야 한다. 예를 들어, 도 2의 플레이어 A는 특정 랜드 마크(240)와 연결된 가상 요소(230)와 상호 작용하거나 포획하기 위해 현실 세계(200)의 랜드 마크(240)로 이동해야 할 수 있다. 가상 요소(230)와의 상호 작용은 사진 촬영 및/또는 가상 요소(230)와 관련된 랜드 마크 또는 객체(240)에 대한 다른 정보를 확인, 획득 또는 캡처하는 것과 같은 현실 세계에서의 행동을 요구할 수 있다.
게임 목표는 플레이어가 위치 기반 게임에서 플레이어에 의해 수집된 하나 이상의 가상 아이템을 사용하도록 요구할 수 있다. 예를 들어, 플레이어는 게임 목표를 완료하는데 유용할 수 있는 가상 아이템(예를 들어, 무기, 생물, 파워 업 또는 기타 아이템)을 찾기 위해 가상 세계(210)를 이동할 수 있다. 이러한 가상 아이템은 현실 세계(200)의 다른 위치로 이동하거나 가상 세계(210) 또는 현실 세계(200)에서 다양한 액션을 완료함으로써 찾아지거나 수집될 수 있다. 도 2에 도시된 예에서, 플레이어는 하나 이상의 가상 요소(230)를 포획하기 위해 가상 아이템(232)을 사용한다. 특히, 플레이어는 가상 요소(230)에 근접하거나 가상 세계(210) 내의 위치에 가상 아이템(232)을 배치할 수 있다. 이러한 방식으로 하나 이상의 가상 아이템(232)을 배치하는 것은 특정 플레이어 또는 특정 플레이어의 팀/진영에 대한 가상 요소(230)의 포획을 초래할 수 있다.
하나의 특정 구현에서, 플레이어는 병렬 현실 게임의 일부로서 가상 에너지를 수집해야할 수 있다. 도 2에 도시된 바와 같이, 가상 에너지(250)는 가상 세계(210)의 다른 위치에 흩어질 수 있다. 플레이어는 현실 세계(200)에서 가상 에너지(250)의 해당 위치로 이동하여 가상 에너지(250)를 수집할 수 있다. 가상 에너지(250)는 가상 아이템에 전력을 공급 및/또는 게임에서 다양한 게임 목표를 수행하기 위해 사용될 수 있다. 모든 가상 에너지(250)를 잃은 플레이어는 게임에서 연결 해제될 수 있다.
본 발명의 양태에 따르면, 병렬 현실 게임은 게임의 모든 참가자가 동일한 가상 세계를 공유하는 대규모 멀티 플레이어 위치 기반 게임일 수 있다. 플레이어는 별도의 팀 또는 파벌로 나눌 수 있으며 가상 요소의 소유권을 확보하거나 소유권을 주장하는 것과 같은 하나 이상의 게임 목표를 달성하기 위해 함께 작업할 수 있다. 이러한 방식으로 병렬 현실 게임은 본질적으로 게임 내에서 플레이어 간의 협력을 장려하는 소셜 게임이 될 수 있다. 반대 팀의 플레이어는 병렬 현실 게임 중에 서로 대결(또는 때때로 상호 목표를 달성하기 위해 협력)할 수 있다. 플레이어는 가상 아이템을 사용하여 상대 팀의 플레이어를 공격하거나 진행을 방해할 수 있다. 경우에 따라 플레이어는 병렬 현실 게임에서 협력 또는 상호 작용 이벤트를 위해 실제 위치에 모이도록 권장된다. 이러한 경우 게임 서버는 플레이어가 실제로 존재하고 스푸핑(spoofing)하지 않는지 확인한다.
병렬 현실 게임은 병렬 현실 게임 내에서 게임 플레이를 향상시키고 장려하기 위해 다양한 특징을 가질 수 있다. 예를 들어, 플레이어는 게임 전체에서 사용할 수 있는 가상화폐나 다른 가상 보상(예: 가상 토큰, 가상 포인트, 가상 재료 자원 등)을 축적할 수 있다(예: 게임 내 아이템 구매, 기타 아이템 상환, 아이템 제작 등). 플레이어는 플레이어가 하나 이상의 게임 목표를 완료하고 게임 내에서 경험을 쌓으면서 다양한 레벨을 통해 발전할 수 있다. 일부 실시 예에서, 플레이어는 게임에서 제공되는 하나 이상의 통신 인터페이스를 통해 서로 통신할 수 있다. 플레이어는 게임 내에서 게임 목표를 완료하는데 사용할 수 있은 강화된 "파워"또는 가상 아이템을 획득할 수 있다. 본 명세서에 제공되는 발명을 이용하여 당업자는 다양한 다른 게임 특징이 본 발명의 범위를 벗어나지 않고 병렬 현실 게임에 포함될 수 있음을 이해해야 한다.
다시 도 1을 참조하면, 네트워크 컴퓨팅 환경(100)은 클라이언트-서버 아키텍처를 사용하는데, 여기서 게임 서버(120)는 네트워크(105)를 통해 클라이언트 장치(110)와 통신하여 클라이언트 장치(110)에서 플레이어에게 병렬 현실 게임을 제공한다. 네트워크 컴퓨팅 환경(100)은 또한 스폰서/광고주 시스템 또는 비즈니스 시스템과 같은 다른 외부 시스템을 포함할 수 있다. 도 1에는 하나의 클라이언트 장치(110)만이 도시되어 있지만, 임의의 수의 클라이언트(110) 또는 다른 외부 시스템이 네트워크(105)를 통해 게임 서버(120)에 연결될 수 있다. 더욱이, 네트워크 컴퓨팅 환경(100)은 상이하거나 부가적인 요소를 포함할 수 있고, 기능은 아래에 설명된 것과 다른 방식으로 클라이언트 장치(110)와 서버(120) 사이에 분산될 수 있다.
클라이언트 장치(110)는 게임 서버(120)와 인터페이스하기 위해 플레이어에 의해 사용될 수 있는 임의의 휴대용 컴퓨팅 장치 일 수 있다. 예를 들어, 클라이언트 장치(110)는 무선 장치, PDA(Personal Digital Assistant), 휴대용 게임 장치, 휴대폰, 스마트 폰, 태블릿, 내비게이션 시스템, 핸드 헬드 GPS 시스템, 웨어러블 컴퓨팅 장치, 하나 이상의 프로세서를 가지는 디스플레이 또는 기타 그러한 장치가 될 수 있다. 다른 예에서, 클라이언트 장치(110)는 데스크톱 또는 랩톱 컴퓨터와 같은 종래의 컴퓨터 시스템을 포함한다. 그럼에도 불구하고, 클라이언트 장치(110)는 컴퓨팅 장치가 있는 차량일 수 있다. 요컨대, 클라이언트 장치(110)는 플레이어가 게임 서버(120)와 상호 작용할 수 있게 하는 임의의 컴퓨터 장치 또는 시스템일 수 있다. 컴퓨팅 장치로서, 클라이언트 장치(110)는 하나 이상의 프로세서 및 하나 이상의 컴퓨터 판독 가능 저장 매체를 포함할 수 있다. 컴퓨터 판독 가능 저장 매체는 프로세서가 작업을 수행하도록 하는 명령어를 저장할 수 있다. 클라이언트 장치(110)는 바람직하게는 스마트 폰 또는 태블릿과 같은 플레이어와 함께 쉽게 운반되거나 다른 방법으로 이송될 수 있는 휴대용 컴퓨팅 장치이다.
클라이언트 장치(110)는 게임 서버(120)에 물리적 환경의 감각 데이터를 제공하는 게임 서버(120)와 통신한다. 클라이언트 장치(110)는 클라이언트 장치(110)가있는 물리적 환경에서의 장면의 2 차원에서 이미지 데이터를 캡처하는 카메라 어셈블리(125)를 포함한다. 클라이언트 장치(110)는 또한 예를 들어 게임 서버(120)에 의해 훈련된 기계 학습 모델 인 깊이 추정 모델(130)을 포함한다. 도 1에 도시된 실시 예에서, 각각의 클라이언트 장치(110)는 게임 모듈(135) 및 포지셔닝 모듈(140)과 같은 소프트웨어 구성 요소를 포함한다. 클라이언트 장치(110)는 플레이어로부터 정보를 수신 및/또는 플레이어에게 정보를 제공하기 위한 다양한 다른 입출력 장치를 포함할 수 있다. 입력/출력 장치의 예로는 디스플레이 화면, 터치 스크린, 터치 패드, 데이터 입력 키, 스피커 및 음성 인식에 적합한 마이크가 있다. 클라이언트 장치(110)는 또한 이동 센서, 가속도계, 자이로스코프, 기타 관성 측정 유닛(IMU), 기압계, 포지셔닝 시스템, 온도계, 광 센서 등을 포함하지만 이에 제한되지 않는 클라이언트 장치(110)로부터 데이터를 기록하기 위한 다른 다양한 센서를 포함할 수 있다. 클라이언트 장치(110)는 네트워크(105)를 통해 통신을 제공하기 위한 네트워크 인터페이스를 더 포함할 수 있다. 네트워크 인터페이스는 예를 들어 송신기, 수신기, 포트, 컨트롤러, 안테나 또는 다른 적절한 구성 요소를 포함하여 하나 이상의 네트워크와 인터페이스하기 위한 임의의 적절한 구성 요소를 포함할 수 있다.
카메라 어셈블리(125)는 클라이언트 장치(110)가 있는 환경의 장면의 이미지 데이터를 캡처한다. 카메라 어셈블리(125)는 다양한 캡처 속도로 다양한 컬러 캡처 범위를 갖는 많은 다양한 포토 센서를 활용할 수 있다. 카메라 어셈블리(125)는 광각 렌즈 또는 망원 렌즈를 포함할 수 있다. 카메라 어셈블리(125)는 단일 이미지 또는 비디오를 이미지 데이터로 캡처하도록 구성될 수 있다. 추가적으로, 카메라 어셈블리(125)의 배향은 카메라 어셈블리(125)가 수평선을 향하도록 하여 지면과 평행할 수 있다. 카메라 어셈블리(125)는 이미지 데이터를 캡처하고 이미지 데이터를 클라이언트 장치(110)상의 컴퓨팅 장치와 공유한다. 이미지 데이터는 감각 데이터(예: 온도, 환경의 밝기) 또는 캡처 데이터(예: 노출, 따뜻함, 셔터 속도, 초점 거리, 캡처 시간 등)를 포함한 이미지 데이터의 기타 세부 사항을 설명하는 메타 데이터와 함께 추가될 수 있다. 카메라 어셈블리(125)는 이미지 데이터를 캡처할 수 있는 하나 이상의 카메라를 포함할 수 있다. 일 예에서, 카메라 어셈블리(125)는 하나의 카메라를 포함하고 단안 이미지 데이터를 캡처하도록 구성된다. 다른 예에서, 카메라 어셈블리(125)는 2 개의 카메라를 포함하고 입체 이미지 데이터를 캡처하도록 구성된다. 다양한 다른 구현에서, 카메라 어셈블리(125)는 각각 이미지 데이터를 캡처하도록 구성된 복수의 카메라를 포함한다.
깊이 추정 모델(130)은 장면의 입력 이미지를 수신하여 입력 이미지에 기초하여 장면의 깊이 맵을 출력한다. 깊이 추정 모델(130)은 깊이 추정 훈련 시스템(170)에 의해 훈련되고, 깊이 추정 훈련 시스템(170)에 의해 업데이트되거나 조정될 수 있으며, 이는 아래에서 더 자세히 논의된다. 수신된 입력 이미지는 카메라 어셈블리(125)의 카메라 또는 다른 클라이언트 장치(110)로부터의 다른 카메라에 의해 캡처될 수 있다. 일부 실시 예에서, 수신된 입력 이미지는 입력 이미지의 본질을 지정하는 이미지에 첨부된 메타 데이터를 갖는다. 이미지의 본질은 이미지를 캡처할 때 카메라의 하나 이상의 기하학적 속성(예: 이미지를 캡처할 때 카메라의 초점 거리, 카메라의 주요 지점 오프셋, 카메라의 기울기 등)을 나타낸다. 본질을 가지고 깊이 추정 모델(130)은 본질에 대한 내적 행렬(matrix) 생성할 수 있다. 일부 실시 예에서, 깊이 추정 모델(130)은 입력 이미지가 예를 들어 임계 해상도 이상을 만족하는지 여부를 결정한다. 그렇지 않은 경우, 깊이 추정 모델(130)은 입력 이미지가 만족스러운 것을 보장하기 위해 하나 이상의 전처리 기술을 수행할 수 있으며, 예를 들어 장면의 깊이 맵을 결정하기 전에 입력 이미지를 원하는 해상도로 업 샘플링할 수 있다. 다른 예로는 대비, 그레인, 색상 스케일, 이미지의 다른 특성 등이 있다. 깊이 추정 모델(130)은(수신된 대로 또는 전처리 후) 이미지를 입력하고 장면의 깊이 맵을 결정한다.
깊이 추정 모델(130)은 하나 이상의 기계 학습 알고리즘으로 구현된다. 깊이 추정 모델(130)에 사용될 수 있는 기계 학습 알고리즘은 신경망, 결정 트리, 랜덤 포레스트, 리그레서, 클러스터링, 이들의 다른 파생 알고리즘, 또는 이들의 일부 조합을 포함한다. 하나 이상의 실시 예에서, 깊이 추정 모델(130)은 적어도 입력 이미지를 수신하도록 구성된 입력 레이어 및 깊이 예측을 출력하도록 구성된 출력 레이어를 포함하는 복수의 레이어를 포함하는 신경망으로 구성된다. 각 레이어는 다수의 노드로 구성되며 각 노드는 이전 레이어에 있는 하나 이상의 노드의 가중치 조합으로 정의된다. 입력 레이어 다음의 노드를 정의하는 가중치는 깊이 추정 훈련 시스템(170)에 의해 훈련 중에 결정된다. 하나의 예시적인 아키텍처에서, 깊이 추정 모델(130)은 추상적인 깊이 특징을 결정하기 위해 입력 이미지로부터 차원성을 감소 시키도록 구성된 포즈 인코더라고 하는 제 1레이어 세트 및 입력 이미지의 동일한 차원의 깊이 맵을 출력하기 위해 추상 깊이 특징으로부터 차원을 증가 시키도록 구성된 포즈 디코더라고 하는 제 2세트의 레이어를 포함할 수 있다.
게임 모듈(135)은 플레이어에게 병렬 현실 게임에 참여할 수 있는 인터페이스를 제공한다. 게임 서버(120)는 게임 서버(120)로부터 멀리 떨어진 위치에 있는 플레이어들에게 클라이언트 장치(110)에서 게임 모듈(135)을 사용할 수 있도록 게임의 로컬 버전을 제공하기 위해 네트워크(105)를 통해 클라이언트 장치(110)로 게임 데이터를 전송한다. 게임 서버(120)는 네트워크(105)를 통해 통신을 제공하기 위한 네트워크 인터페이스를 포함할 수 있다. 네트워크 인터페이스는 예를 들어 송신기, 수신기, 포트, 컨트롤러, 안테나 또는 다른 적절한 구성 요소를 포함하여 하나 이상의 네트워크와 인터페이스 하기 위한 임의의 적절한 구성 요소를 포함할 수 있다.
클라이언트 장치(110)에 의해 실행되는 게임 모듈(135)은 플레이어와 병렬 현실 게임 간의 인터페이스를 제공한다. 게임 모듈(135)은 게임과 관련된 가상 세계를 표시하고(예를 들어, 가상 세계의 이미지를 렌더링하는) 클라이언트 장치(110)와 관련된 디스플레이 장치에 사용자 인터페이스를 제공할 수 있으며 사용자가 가상 세계에서 상호 작용하여 다양한 게임 목표를 수행하도록 한다. 일부 다른 실시 예에서, 게임 모듈(135)은 병렬 현실 게임으로부터의 가상 요소로 증강된 현실 세계(예를 들어, 카메라 어셈블리(125)에 의해 캡처됨)로부터의 이미지 데이터를 제공한다. 이러한 실시 예에서, 게임 모듈(135)은 클라이언트 장치(110)의 다른 구성 요소로부터 수신된 다른 정보에 따라 가상 콘텐츠를 생성 및/또는 가상 콘텐츠를 조정할 수 있다. 예를 들어, 게임 모듈(135)은 이미지 데이터에서 캡처된 장면의 깊이 맵(예를 들어, 깊이 추정 모델(130)에 의해 결정됨)에 따라 사용자 인터페이스에 표시될 가상 객체를 조정할 수 있다.
게임 모듈(135)은 또한 플레이어가 디스플레이 스크린을 볼 필요 없이 플레이어가 게임과 상호 작용할 수 있도록 다양한 다른 출력을 제어할 수 있다. 예를 들어, 게임 모듈(135)은 플레이어가 디스플레이 화면을 보지 않고 게임을 할 수 있도록 하는 다양한 오디오, 진동 또는 기타 알림을 제어할 수 있다. 게임 모듈(135)은 게임의 정확한 표현을 사용자에게 제공하기 위해 게임 서버(120)로부터 수신된 게임 데이터에 액세스할 수 있다. 게임 모듈(135)은 플레이어 입력을 수신 및 처리하고 네트워크(105)를 통해 게임 서버(120)에 업데이트를 제공할 수 있다. 게임 모듈(135)은 또한 클라이언트 장치(110)에 의해 디스플레이될 게임 콘텐츠를 생성 및/또는 조정할 수 있다. 예를 들어, 게임 모듈(135)은 깊이 정보(예를 들어, 깊이 추정 모델(130)에 의해 결정됨)에 기초하여 가상 요소를 생성할 수 있다.
포지셔닝 모듈(140)은 클라이언트 장치(110)의 위치를 모니터링하기 위한 임의의 장치 또는 회로일 수 있다. 예를 들어, 포지셔닝 모듈(140)은 위성 내비게이션 위치 시스템(예: GPS 시스템, 갈릴레오 위치 설정 시스템, 글로벌 내비게이션 위성 시스템(GLONASS), 베이더우(BeiDou) 위성 내비게이션 및 위치 시스템), 관성 내비게이션 시스템, 삼각 측량 및/또는 셀룰러 타워 또는 Wi-Fi 핫스팟에 대한 근접성을 사용하여 IP 주소를 기초로 하는 추측 항법 시스템, 및/또는 위치를 결정하기 위한 다른 적절한 기술을 사용하여 실제 또는 상대적 위치를 결정할 수 있다. 포지셔닝 모듈(140)은 클라이언트 장치(110) 위치를 정확하게 포지셔닝하는 데 도움이 될 수 있는 다양한 다른 센서를 더 포함할 수 있다.
플레이어가 현실 세계에서 클라이언트 장치(110)와 함께 이동함에 따라, 포지셔닝 모듈(140)은 플레이어의 위치를 추적하고 플레이어 위치 정보를 게임 모듈(135)에 제공한다. 게임 모듈(135)은 현실 세계에서 플레이어의 실제 위치에 기초하여 게임과 관련된 가상 세계에서 플레이어 위치를 업데이트한다. 따라서, 플레이어는 단순히 현실 세계에서 클라이언트 장치(110)를 운반하거나 이동함으로써 가상 세계와 상호 작용할 수 있다. 특히 가상 세계에서 플레이어의 위치는 현실 세계에서 플레이어의 위치와 일치할 수 있다. 게임 모듈(135)은 네트워크(105)를 통해 게임 서버(120)에 플레이어 위치 정보를 제공할 수 있다. 이에 응답하여, 게임 서버(120)는 치터(cheater)가 클라이언트 장치(110) 위치를 스푸핑하는 것을 방지하기 위해 클라이언트 장치(110) 위치를 검증하는 다양한 기술을 제정할 수 있다. 플레이어와 관련된 위치 정보는 플레이어가 플레이어의 위치 정보에 액세스해야 한다는 알림을 받은 후 권한이 부여된 경우에만 사용되며, 게임 맥락에서 위치 정보가 어떻게 활용되어야 하는지 이해해야 한다(예: 가상 세계에서 플레이어 위치 업데이트). 또한 플레이어와 관련된 모든 위치 정보는 플레이어의 개인 정보를 보호하기 위해 저장되고 유지된다.
게임 서버(120)는 임의의 컴퓨팅 장치 일 수 있고 하나 이상의 프로세서 및 하나 이상의 컴퓨터 판독 가능 저장 매체를 포함할 수 있다. 컴퓨터 판독 가능 저장 매체는 프로세서가 작업을 수행하도록 하는 명령어를 저장할 수 있다. 게임 서버(120)는 게임 데이터베이스(115)를 포함하거나 그와 통신할 수 있다. 게임 데이터베이스(115)는 네트워크(105)를 통해 클라이언트(들)(120)에 제공되거나 제공될 병렬 현실 게임에서 사용되는 게임 데이터를 저장한다.
게임 데이터베이스(115)에 저장된 게임 데이터는(1) 병렬 현실 게임에서 가상 세계와 관련된 데이터(예를 들어, 디스플레이 장치에서 가상 세계를 렌더링하는 데 사용되는 이미지 데이터, 가상 세계에서 게임 내 위치의 지리적 좌표 등);(2) 병렬 현실 게임의 플레이어와 관련된 데이터(예 : 플레이어 정보, 플레이어 경험 수준, 플레이어 통화, 가상 세계/현실 세계에서의 현재 플레이어 위치, 플레이어 에너지 수준, 플레이어 선호도, 팀 정보, 진영 정보 등을 포함하지만 이에 국한되지 않는 플레이어 프로필);(3) 게임 목표와 관련된 데이터(예 : 현재 게임 목표, 게임 목표 상태, 과거 게임 목표, 미래 게임 목표, 원하는 게임 목표 등과 관련된 데이터)(4) 가상 세계에서 가상 요소와 관련된 데이터(예 : 가상 요소의 위치, 가상 요소의 유형, 가상 요소와 관련된 게임 목표, 가상 요소에 대한 해당 현실 세계 위치 정보, 가상 요소의 동작, 가상 요소의 관련성 등);(5) 실제 객체, 랜드 마크, 가상 세계 요소와 연결된 위치와 관련된 데이터(예 : 실제 객체/랜드 마크의 위치, 실제 객체/랜드 마크 설명, 실제 객체에 연결된 가상 요소의 관련성 등);(6) 게임 상태(예 : 현재 플레이어 수, 게임 목표의 현재 상태, 플레이어 순위표 등);(7) 플레이어 동작/입력과 관련된 데이터(예 : 현재 플레이어 위치, 과거 플레이어 위치, 플레이어 이동, 플레이어 입력, 플레이어 쿼리, 플레이어 커뮤니케이션 등); 및(8) 병렬 현실 게임의 구현 중에 사용, 관련 또는 획득된 기타 데이터;를 포함할 수 있다. 게임 데이터베이스(115)에 저장된 게임 데이터는 시스템 관리자 및/또는 네트워크(105)를 통한 클라이언트 장치(110)와 같은 시스템(100)의 사용자/플레이어로부터 수신된 데이터에 의해 오프라인 또는 실시간으로 채워질 수 있다.
게임 서버(120)는 클라이언트 장치(110)로부터(예를 들어 원격 프로 시저 호출(RPC)을 통해) 게임 데이터에 대한 요청을 수신하고 네트워크(105)를 통해 이러한 요청에 응답하도록 구성될 수 있다. 예를 들어, 게임 서버(120)는 하나 이상의 데이터 파일로 게임 데이터를 인코딩하고 데이터 파일을 클라이언트 장치(110)에 제공할 수 있다. 또한, 게임 서버(120)는 네트워크(105)를 통해 클라이언트 장치(110)로부터 게임 데이터(예를 들어, 플레이어 위치, 플레이어 동작, 플레이어 입력 등)를 수신하도록 구성될 수 있다. 예를 들어, 클라이언트 장치(110)는 게임 서버(120)에 플레이어 입력 및 다른 업데이트를 주기적으로 전송하도록 구성될 수 있으며, 게임 서버(120)는 게임에 대한 임의의 그리고 모든 변경된 조건을 반영하기 위해 게임 데이터베이스(115)의 게임 데이터를 업데이트하는데 사용한다.
도시된 실시 예에서, 서버(120)는 범용 게임 모듈(145), 상용 게임 모듈(150), 데이터 수집 모듈(155), 이벤트 모듈(160) 및 깊이 추정 훈련 시스템(170)을 포함한다. 전술한 바와 같이, 게임 서버(120)는 게임 서버(120)의 일부이거나 원격으로 액세스될 수 있는 게임 데이터베이스(115)와 상호 작용한다(예를 들어, 게임 데이터베이스(115)는 네트워크(105)를 통해 액세스되는 분산 데이터베이스 일 수 있다). 다른 실시 예에서, 게임 서버(120)는 상이한 및/또는 추가적 요소를 포함한다. 또한, 기능은 설명된 것과 다른 방식으로 요소간에 분산될 수 있다. 예를 들어, 게임 데이터베이스(115)는 게임 서버(120)에 통합될 수 있다.
범용 게임 모듈(145)은 모든 플레이어를 위한 병렬 현실 게임을 호스팅하고 모든 플레이어를 위한 병렬 현실 게임의 현재 상태에 대한 권위 있는 소스 역할을 한다. 호스트로서, 범용 게임 모듈(145)은 예를 들어 각각의 클라이언트 장치(110)를 통해 플레이어에게 제공하기 위한 게임 콘텐츠를 생성한다. 범용 게임 모듈(145)은 병렬 현실 게임을 호스팅할 때 게임 데이터를 검색 및/또는 저장하기 위해 게임 데이터베이스(115)에 액세스할 수 있다. 범용 게임 모듈(145)은 또한 클라이언트 장치(110)로부터 게임 데이터(예를 들어 깊이 정보, 플레이어 입력, 플레이어 위치, 플레이어 동작, 랜드 마크 정보 등)를 수신하고 수신된 게임 데이터를 병렬 현실 게임의 모든 플레이어를 위한 전체 병렬 현실 게임에 통합한다. 범용 게임 모듈(145)은 또한 네트워크(105)를 통해 클라이언트 장치(110) 로의 게임 데이터의 전달을 관리할 수 있다. 범용 게임 모듈(145)은 또한 클라이언트 장치(110)와 게임 서버(120) 간의 연결 보안, 다양한 클라이언트 장치(110) 간의 연결 설정 및 다양한 클라이언트 장치(110)의 위치 검증을 포함하지만 이에 제한되지 않는 클라이언트 장치(110)의 보안 측면을 관리할 수 있다.
하나가 포함되는 실시 예에서, 상용 게임 모듈(150)은 범용 게임 모듈(145)로부터 분리되거나 그 일부일 수 있다. 상용 게임 모듈(150)은 현실 세계에서의 상업 활동과 연계된 병렬 현실 게임 내 다양한 게임 기능의 포함을 관리할 수 있다. 예를 들어, 상업 게임 모듈(150)은 병렬 현실 게임에서 상업 활동과 연결된 게임 특징을 포함하기 위해 네트워크(105)를 통해(네트워크 인터페이스를 통해) 스폰서/광고주, 비즈니스 또는 다른 엔티티와 같은 외부 시스템으로부터 요청을 수신할 수 있다. 그 후, 상용 게임 모듈(150)은 병렬 현실 게임에 이러한 게임 특징을 포함하도록 배열할 수 있다.
게임 서버(120)는 데이터 수집 모듈(155)을 더 포함할 수 있다. 데이터 수집 모듈(155)은 하나가 포함된 실시 예에서 범용 게임 모듈(145)과 분리되거나 그 일부일 수 있다. 데이터 수집 모듈(155)은 현실 세계에서 데이터 수집 활동과 연계된 병렬 현실 게임 내 다양한 게임 특징의 포함을 관리할 수 있다. 예를 들어, 데이터 수집 모듈(155)은 병렬 현실 게임에서 데이터 수집 활동과 연결된 게임 특징을 포함하도록 게임 데이터베이스(115)에 저장된 게임 데이터를 수정할 수 있다. 데이터 수집 모듈(155)은 또한 데이터 수집 활동에 따라 플레이어가 수집한 데이터를 분석 및 수집할 수 있으며, 다양한 플랫폼에서 접근할 수 있는 데이터를 제공할 수 있다.
이벤트 모듈(160)은 병렬 현실 게임에서 이벤트에 대한 플레이어 액세스를 관리한다. "이벤트"라는 용어는 편의상 사용되지만, 이 용어는 특정 장소 나 시간에 특정 이벤트를 지칭할 필요는 없음을 이해해야 한다. 오히려 플레이어가 해당 콘텐츠에 액세스할 수 있는지 여부를 결정하기 위해 하나 이상의 액세스 기준이 사용되는 액세스 제어 게임 콘텐츠의 모든 조항을 지칭할 수 있다. 이러한 콘텐츠는 액세스 제어가 적거나 없는 게임 콘텐츠를 포함하는 더 큰 병렬 현실 게임의 일부이거나 스탠드 얼론(stand-alone) 액세스 제어 병렬 현실 게임일 수 있다.
깊이 추정 훈련 시스템(170)은 깊이 추정 모델, 예를 들어 클라이언트 장치(110)에 제공된 깊이 추정 모델(130)을 훈련시킨다. 깊이 추정 훈련 시스템(170)은 깊이 추정 모델을 훈련하는데 사용하기 위한 이미지 데이터를 수신한다. 일반적으로 깊이 추정 훈련 시스템(170)은 이미지 데이터를 처리하고, 깊이 추정 모델에 이미지 데이터를 입력하여 깊이 예측을 생성하고, 깊이 예측을 통해 하나의 훈련 이미지를 다른 훈련 이미지에 투영하고, 광도 재구성 오차를 기초로 손실을 계산하고, 손실을 최소화하기 위해 깊이 추정 모델의 파라미터를 반복적으로 조정한다. 위의 일반적인 프로세스는 자가 감독 훈련 알고리즘을 설명한다. 일반적으로 자가 감독 훈련은 감독 훈련 알고리즘에 일반적으로 요구되는 것처럼 훈련을 위한 실측 정보 깊이를 요구하지 않는다. 깊이 추정 시스템(170)은 다른 모델(예를 들어, 기성품 깊이 추정 모델)에 의해 제공된 깊이 힌트에 기초하여 모델을 부분적으로 훈련시킨다. 깊이 추정 훈련 시스템(170)은 깊이 추정 모델이 깊이 정보를 추정할 때 충분히 정확한지 여부를 결정하는데 사용될 수 있은 깊이 추정 모델에 대한 오차 임계치를 더 정의할 수 있다. 깊이 추정 훈련 시스템(170)에 의한 훈련에 대해서는 후술한다.
깊이 추정 모델이 학습되면, 깊이 추정 모델은 이미지 데이터를 수신하여 이미지 데이터를 기초로 환경의 깊이 정보를 출력한다. 깊이 추정 훈련 시스템(170)은 훈련된 모델을 클라이언트 장치(110)에 제공한다. 클라이언트 장치(110)는 훈련된 모델을 사용하여 이미지(예를 들어, 장치의 카메라에 의해 캡처 됨)의 픽셀 깊이를 추정한다. 깊이 추정치는 가상 콘텐츠의 렌더링을 지원하여 실제 이미지를 확대하고, 로봇의 내비게이션을 지원하고, 자율 주행 차량에 대한 잠재적 위험을 감지하는 등 다양한 용도를 가질 수 있다.
네트워크(105)는 근거리 네트워크(예를 들어 인트라넷), 광역 네트워크(예를 들어 인터넷), 또는 이들의 일부 조합과 같은 임의의 유형의 통신 네트워크 일 수 있다. 네트워크는 또한 클라이언트 장치(110)와 게임 서버(120) 사이의 직접 연결을 포함할 수 있다. 일반적으로, 게임 서버(120)와 클라이언트 장치(110) 사이의 통신은 다양한 통신 프로토콜(예: TCP/IP, HTTP, SMTP, FTP)을 사용하는 모든 유형의 유선 및/또는 무선 연결을 사용하는 네트워크 인터페이스, 인코딩 또는 포맷(예: HTML, XML, JSON) 및/또는 보호 스킴(예: VPN, 보안 HTTP, SSL)을 통해 수행될 수 있다.
본 명세서에서 논의된 기술은 서버, 데이터베이스, 소프트웨어 애플리케이션 및 기타 컴퓨터 기반 시스템뿐만 아니라 이러한 시스템으로(부터) 전송되는 조치 및 정보를 참조한다. 당업자는 컴퓨터 기반 시스템의 고유 유연성이 요소들 간에 다양한 구성, 조합, 작업 및 구성 요소 간의 기능 분할을 매우 다양하게 할 수 있다는 것을 인식할 것이다. 예를 들어, 여기에 설명된 서버 프로세스는 단일 서버 또는 조합으로 작동하는 다중 서버를 사용하여 구현될 수 있다. 데이터베이스와 애플리케이션은 단일 시스템에서 구현되거나 여러 시스템에 분산될 수 있다. 분산된 구성 요소는 순차적으로 또는 병렬적으로 작동할 수 있다.
또한, 본 명세서에서 설명된 시스템 및 방법이 사용자에 대한 개인 정보에 액세스 및 분석하거나 위치 정보와 같은 개인 정보를 사용하는 상황에서, 사용자는 프로그램 또는 특징이 정보를 수집할지 여부와 시스템 또는 기타 애플리케이션으로부터 컨텐츠를 수신할지 여부 및/또는 방법을 제어할 수 있는 기회를 제공받을 수 있다. 사용자가 수집되는 정보가 무엇인지 및 정보가 어떻게 사용되는지에 대한 의미있는 통지를 제공받을 때까지 그러한 정보나 데이터는 수집되거나 사용되지 않는다. 정보는 이용자가 동의하지 않는 한 수집 또는 이용되지 않으며 이용자가 언제든지 철회하거나 수정할 수 있다. 따라서 사용자는 사용자에 대한 정보를 수집하고 응용 프로그램 또는 시스템에서 사용하는 방법을 제어할 수 있다. 또한 특정 정보 또는 데이터는 저장 또는 사용되기 전에 하나 이상의 방법으로 처리될 수 있으므로 개인 식별 정보가 제거된다. 예를 들어, 사용자에 대한 개인 식별 정보를 확인할 수 없도록 사용자의 신원을 처리할 수 있다.
예시적인 게임 인터페이스
도 3은 플레이어와 가상 세계(210) 사이의 인터페이스의 일부로서 클라이언트(120)의 디스플레이 상에 제시될 수 있은 게임 인터페이스(300)의 일 실시 예를 도시한다. 게임 인터페이스(300)는 가상 세계(210) 및 가상 세계(210)에서 게임 플레이어 위치(222) 및 가상 요소(230)의 위치, 가상 아이템(232) 및 가상 에너지(250)와 같은 게임의 다양한 다른 측면을 디스플레이하는 데 사용될 수 있은 디스플레이 윈도우(310)를 포함한다. 사용자 인터페이스(300)는 또한 게임 데이터 정보, 게임 통신, 플레이어 정보, 클라이언트 위치 확인 명령 및 게임과 관련된 기타 정보와 같은 다른 정보를 디스플레이할 수 있다. 예를 들어, 사용자 인터페이스는 플레이어 이름, 경험 수준 및 기타 정보와 같은 플레이어 정보(315)를 디스플레이할 수 있다. 사용자 인터페이스(300)는 다양한 게임 설정 및 게임과 관련된 기타 정보에 액세스하기 위한 메뉴(320)를 포함할 수 있다. 사용자 인터페이스(300)는 또한 게임 시스템과 플레이어 사이 및 병렬 현실 게임의 하나 이상의 플레이어 사이의 통신을 가능하게 하는 통신 인터페이스(330)를 포함할 수 있다.
본 발명의 양태들에 따르면, 플레이어는 현실 세계에서 클라이언트 장치(120)를 단순히 운반함으로써 병렬 현실 게임과 상호 작용할 수 있다. 예를 들어, 플레이어는 스마트 폰에서 병렬 현실 게임과 관련된 애플리케이션에 액세스하고 스마트 폰으로 현실 세계를 이동하는 것만으로 게임을 할 수 있다. 따라서 플레이어가 위치 기반 게임을 하기 위해 디스플레이 화면에서 가상 세계의 시각적 표현을 지속적으로 볼 필요는 없다. 그 결과, 사용자 인터페이스(300)는 사용자가 게임과 상호 작용할 수 있도록 하는 복수의 비 시각적 요소를 포함할 수 있다. 예를 들어, 게임 인터페이스는 플레이어가 게임의 가상 요소 또는 객체에 접근할 때 또는 병렬 현실 게임에서 중요한 이벤트가 발생할 때 플레이어에게 청각적 알림을 제공할 수 있다. 플레이어는 오디오 제어(340)로 이러한 가청 알림을 제어할 수 있다. 가상 요소 또는 이벤트의 유형에 따라 다양한 유형의 청각 적 알림이 사용자에게 제공될 수 있다. 가청 알림은 플레이어가 가상 요소 또는 객체에 근접한 정도에 따라 빈도 또는 볼륨을 높이거나 낮출 수 있다. 진동 알림 또는 다른 적절한 알림 또는 신호와 같은 다른 비 시각적 알림 및 신호가 사용자에게 제공될 수 있다.
본 명세서에 제공된 발명을 이용하여 당업자는 본 발명에 비추어 볼 때 수많은 게임 인터페이스 구성 및 기본 기능이 명백할 것을 이해할 것이다. 본 발명은 특정 구성에 국한되지 않는다.
깊이 추정 훈련
깊이 추정 훈련 시스템(170)은 클라이언트 장치(110)에 의해 사용되는 깊이 힌트의 도움으로 깊이 추정 모델(130)을 훈련시킨다. 다음 단락에서는 입체 이미지 데이터, 단안 비디오 데이터, 깊이 힌트, 포즈 힌트 또는 이들의 일부 조합에 의존하는 다양한 훈련 방법을 설명한다. 깊이 힌트는 깊이 추정 모델(130)과 다른 접근법에 의해 생성된 깊이 맵이다. 이러한 접근법 중 하나는 깊이 추정 모델(130)과 다르게 훈련된 대안적인 깊이 추정 모델로부터 깊이 맵을 생성하는 것이다. 예를 들어, 대안적인 깊이 추정 모델은 입체 이미지 쌍을 수신하고 입체 이미지 쌍에 기초하여 깊이 맵을 생성하도록 구성된 양안 깊이 추정 모델로서 제 3 자 시스템에 의해 훈련될 수 있다. 또 다른 접근 방식은 장치(예: 전화, 자율 주행 차량)에서 SLAM(Simplicit-Localization-and-mapping) 모듈을 사용하여 깊이 맵을 생성하는 것이다. 깊이 힌트가 어떻게 생성되는지에 관계없이, 훈련 단계는 입력 이미지를 수신하고 입력 이미지에 기초하여 깊이 맵을 출력하도록 구성된 훈련된 단안 깊이 추정 모델(130)을 산출한다.
일반적으로, 깊이 추정 훈련 시스템(170)은 이미지 쌍으로 결합된 훈련 이미지 데이터로 훈련한다. 이미지 쌍은 실제 입체 이미지 쌍 또는 모조 입체 이미지 쌍일 수 있다. 한편, 진정한 입체 이미지 쌍은 예를 들어, 양안 카메라 시스템에서 두 개의 서로 다른 카메라에 의해 비교적 동시에 캡처된 두 개의 이미지로 구성된다. 반면에, 모조 입체 이미지 쌍은 단일 카메라에 의해 캡처된 두 개의 시간적으로 구별되는 프레임(즉, 서로 다른 타임 스탬프에서 캡처됨), 예를 들어 단안 카메라 시스템에 의해 캡처된 단안 비디오 데이터에서 시간적으로 인접한 두 프레임으로 구성된다. 진정한 입체 이미지 쌍을 사용하면 이미지 쌍에서 입체 이미지 사이의 포즈가 일반적으로 알려져 있다. 모조 입체 이미지 쌍의 경우 두 프레임 간의 포즈는 일반적으로 알 수 없다. 포즈는 일반적으로 두 이미지 사이의 상대적 위치를 나타낸다. 수학적으로 말해서 포즈는 이미지의 두 관점 사이의 변환 행렬에 의해 정의되며, 두 관점 사이의 변환과 회전을 모두 설명할 수 있다. 수용하기 위해, 깊이 추정 훈련 시스템(170)은 깊이 추정 모델에 추가하여 포즈 추정 모델을 훈련시킬 수도 있다. 일부 실시 예에서, 포즈 및 깊이를 동시에 추정하기 위한 단일 깊이-포즈 하이브리드 모델이 사용될 수 있다. 미국 특허 공개 번호 2019/0356905 A1("깊이 추정 시스템의 자가 감독 훈련"이라는 제목으로 2019 년 11 월 21 일에 공개됨)은 여기에 참조로 통합되고 깊이 포즈 하이브리드 모델과 관련된 실시 예를 추가로 설명한다.
도 1에 도시된 실시 예에서, 깊이 추정 훈련 시스템(170)은 깊이 예측 모듈(175), 힌트 모듈(180), 이미지 합성 모듈(185), 손실 계산 모듈(190) 및 훈련 모듈(195)을 포함한다. 일부 실시 예에서, 깊이 추정 훈련 시스템(170)은 추가 동작을 수행하는 추가 모듈을 더 포함한다. 다른 실시 예에서, 깊이 추정 훈련 시스템(170)은 예를 들어 데이터 저장소, 피드백 모듈, 스무딩 모듈 등과 같은 상이한 및/또는 추가 구성 요소를 포함할 수 있다. 예를 들어, 데이터 저장소는 훈련 데이터 또는 훈련된 파라미터를 저장할 수 있다. 다른 예에서, 스무딩 모듈은 깊이 맵을 처리할 수 있다; 한 가지 예는 깊이 맵에서 깊이 값을 부드럽게 하는 것이다.
깊이 예측 모듈(175)은 훈련 이미지에 대한 깊이 예측을 생성한다. 깊이 예측 모듈(175)은 훈련 이미지에 대한 초기 깊이 예측을 생성하기 위해 깊이 추정 모델(130)에 대한 입력으로서 훈련 이미지를 제공한다. 깊이 예측은 훈련 이미지의 각 픽셀에 대한 예측된 깊이 값을 포함하는 예측된 깊이 맵이다.
힌트 모듈(180)은 훈련 이미지에 대한 깊이 힌트를 획득한다. 위에서 언급했듯이 깊이 힌트는 몇 가지 접근 방식을 통해 얻을 수 있다. 한 가지 접근 방식에서는 대안적으로 훈련된 깊이 추정 모델이 사용된다(예: 상대적으로 낮은 계산 리소스 요구 사항을 가진 기성 깊이 추정 모델). 대안 적으로 훈련된 입체 깊이 추정 모델을 갖는 실시 예에서, 힌트 모듈(180)은 깊이 힌트를 생성하기 위해 대안 적으로 훈련된 입체 깊이 추정 모델에 훈련 이미지 쌍을 제공한다. 다른 접근 방식에서는 SLAM 모듈이 사용된다. 이러한 실시 예에서, 힌트 모듈(180)은 SLAM 모듈에 의해 생성된 깊이 힌트를 획득한다. 임의의 다른 접근법에서, 힌트 모듈(180)은 깊이 힌트를 생성한 적절한 모듈, 장치 또는 시스템으로부터 깊이 힌트를 획득한다. 하나 이상의 실시 예에서, 힌트 모듈(180)은 상기 접근법의 일부 조합으로부터 다중 깊이 힌트를 획득할 수 있다. 일부 실시 예에서, 힌트 모듈(180)은 의사 입체 이미지 쌍을 사용한 훈련에 사용될 수 있은 포즈 힌트를 획득한다. 포즈 힌트는 대안 적으로 훈련된 포즈 추정 모델, SLAM 모듈 또는 일부 다른 로컬리제이션(localization) 모듈에서 획득될 수 있다.
이미지 합성 모듈(185)은 하나의 훈련 이미지를 이미지 쌍의 다른 훈련 이미지에 투영함으로써 하나 이상의 합성 프레임을 생성한다. 이미지 쌍의 제 2훈련 이미지로부터 제 1훈련 이미지로의 투영으로서 합성 프레임을 생성하기 위해, 이미지 합성 모듈(185)은 제 2훈련 이미지, 제 2훈련 이미지의 고유 파라미터, 두 개의 훈련 이미지 사이의 상대 포즈, 제 1훈련 이미지에 대한 깊이 맵, 및 제 1훈련 이미지의 고유 파라미터를 사용한다. 일반적으로, 훈련 이미지를 캡처한 카메라에 의해 기록된대로 훈련 이미지의 고유 파라미터가 알려져 있다. 이미지의 고유 파라미터("본질"이라고도 함)는 해당 이미지를 캡처하는 데 사용되는 카메라의 기하학적 속성, 예를 들어 카메라의 초점 거리, 카메라의 주요 지점 오프셋, 카메라의 왜곡 등을 나타낸다. 어떤 경우에는 촬영된 모든 이미지 사이에서 각 카메라에 대해 본질은 일정할 수 있고, 다양한 이미지를 촬영할 때 카메라가 파라미터를 조정함에 따라 본질은 달라질 수 있다. 두 경우 모두 본질은 본질 행렬로 표현될 수 있다. 진정한 입체 이미지를 투영하는 경우, 실제 입체 이미지를 촬영한 두 대의 카메라의 구성에 따라 이미지 합성 모듈(185) 포즈를 알 수 있다. 단안 비디오 데이터를 투영할 때, 두 개의 시간적으로 구별되는 프레임 사이의 포즈는 예를 들어 포즈 추정 모델에 의해 훈련 이미지에 기초하여 추정될 수 있다.
이미지 합성 모듈(185)은 깊이 추정 모델(130)이 출력한 깊이 예측을 이용하여 먼저 투영함으로써 모델 합성 프레임을 생성한다. 명확성을 위해, 이미지 합성 모듈(185)은 깊이 예측 모듈(175)에 의해 생성된 깊이 예측과 같은 제 1훈련 이미지에 대해 깊이 추정 모델(130)에 의해 출력된 깊이 예측을 사용하여 제 2훈련 이미지로부터 훈련 이미지 쌍의 제 1훈련 이미지로 투영한다.
깊이 힌트가 있는 훈련 이미지 쌍에 대해, 이미지 합성 모듈(185)은 깊이 힌트를 사용하여 힌트 합성 프레임을 생성한다. 명확성을 위해, 그리고 위 단락의 예에 따라, 이미지 합성 모듈(185)은 깊이 예측이 아닌 힌트 모듈(180)에 의해 획득된 깊이 힌트를 사용하여 제 2훈련 이미지에서 훈련 이미지 쌍의 제 1훈련 이미지로 두 번째로 투영한다. 깊이 힌트와 함께 알려진 포즈를 갖는 진정한 입체 이미지 쌍의 예로서, 이미지 합성 모듈(185)은 모델 합성 프레임 및 힌트 합성 프레임을 생성한다. 마찬가지로, 포즈 힌트로 힌트 합성 프레임을 생성하기 위해 이미지 합성 모듈(185)은 포즈 추정 모델에 의해 추정된 포즈 대신 포즈 힌트를 고려하여 이미지 쌍에서 하나의 훈련 이미지에서 다른 훈련 이미지로 투영한다. 자연스러운 확장으로서, 깊이 힌트와 포즈 힌트를 모두 사용하기 위해, 이미지 합성 모듈(185)은 제 1훈련 이미지에 대한 깊이 힌트와 두 훈련 이미지 사이의 포즈 힌트로 투영한다. 깊이 힌트 및/또는 포즈 힌트를 갖는 모조 입체 이미지 쌍을 갖는 예에서, 이미지 합성 모듈(185)은 다중 힌트 합성 프레임을 생성할 수 있다: 깊이 힌트에 따른 제 1힌트 합성 프레임, 포즈 힌트에 따른 제 2힌트 합성 프레임, 깊이 힌트 및 포즈 힌트 또는 이들의 일부 조합에 따른 제 3 힌트 합성 프레임. 다수의 한 유형의 힌트(예를 들어, 다중 깊이 힌트)를 갖는 실시 예에서, 이미지 합성 모듈(185)은 각각의 깊이 힌트에 대해 하나 이상의 힌트 합성 프레임을 생성할 수 있다.
손실 계산 모듈(190)은 깊이 추정 모델(130)을 훈련하는데 사용하기 위해 전체 손실을 계산한다. 먼저, 손실 계산 모듈(190)은 모델 합성 프레임과 해당 훈련 이미지 간의 광도 재구성 오차를 프라이머리 손실로 계산한다. 프라이머리 손실은 그 픽셀에서의 깊이 예측에 따른 광도 재구성의 정확도를 설명하는 훈련 이미지의 픽셀 당 프라이머리 손실 값을 포함한다. 전체 손실은 모든 픽셀에서 손실 기여도를 합산한다. 깊이 힌트가 없는 훈련 이미지 쌍의 경우 전체 손실은 프라이머리 손실 값의 합을 기초로 한다. 예를 들어, 프라이머리 손실은 픽셀 당 프라이머리 손실 값을 포함하고, 따라서 각 픽셀의 전체 손실에 대한 기여도는 프라이머리 손실 값이 되며, 훈련 이미지 쌍에 대한 전체 손실은 프라이머리 손실 값의 합계가 된다.
깊이 힌트를 가진 훈련 이미지 쌍에 대해, 손실 계산 모듈(190)은 전체 손실을 계산할 때 힌트 손실을 더 고려한다. 힌트 손실은 힌트 합성 프레임과 대응하는 훈련 이미지 사이의 광도 재구성으로 계산될 수 있다. 힌트 손실은 픽셀 당 힌트 손실 값을 포함한다. 손실 계산 모듈(190)은 픽셀 단위로 프라이머리 손실 값과 힌트 손실 값을 비교한다. 프라이머리 손실 값이 픽셀에서 힌트 손실 값보다 작거나 같으면(모델의 깊이 예측이 해당 픽셀의 깊이 힌트보다 정확하거나 더 정확함을 의미), 손실 계산 모듈(190)은 깊이 힌트를 무시하고, 전체 손실에 대한 해당 픽셀의 기여도는 깊이 예측을 기초로 한다(예를 들어 기여도는 프라이머리 손실 값이다). 힌트 손실 값이 픽셀에서 프라이머리 손실 값보다 작으면(깊이 힌트가 해당 픽셀에서 모델의 깊이 예측보다 더 정확함을 의미 함), 손실 계산 모듈(190)은 깊이 힌트와 그 기여도를 고려하고, 전체 손실에 대한 픽셀은 깊이 예측 및 깊이 힌트를 기초로 한다. 일 실시 예에서, 픽셀의 기여도(프라이머리 손실보다 작은 힌트 손실을 가짐)는 프라이머리 손실 값과 그 픽셀에서 깊이 예측 값과 깊이 힌트 값 사이의 감독 손실의 합이다.
광도 재구성 오차의 다양한 정의는 손실 계산 모듈(190)에 의해 구현될 수 있다. 높은 레벨에서 깊이의 광도 재구성 오차는 일반적으로 깊이에 따라 투영되는 합성 프레임의 픽셀과 합성 프레임에 해당하는 이미지의 픽셀 간의 차이이다. 픽셀에서 깊이에 대해 계산된 광도 재구성 오차의 정의의 예는 L1 거리, L2 거리, 구조적 비유사성(DSSIM)(예: 2x2, 3x3, 4x4 등 두 이미지 사이의 픽셀 윈도우 고려), 하나 또는 더 많은 연산자가 적용되거나 이들의 일부 조합이 적용된다. 광도 재구성(사전)에 대한 하나 이상의 정의 방정식이 아래에 제공된다:
Figure 112021063695433-pat00001
L1 거리
Figure 112021063695433-pat00002
로서픽셀 i 에서 깊이
Figure 112021063695433-pat00003
에 대한 광도 재구성 오차는 제 1이미지
Figure 112021063695433-pat00004
의 픽셀 i 와 제 2이미지
Figure 112021063695433-pat00005
의 픽셀 i 간의 절대 차이다.
Figure 112021063695433-pat00006
L2거리
Figure 112021063695433-pat00007
로서 픽셀 i 에서 깊이
Figure 112021063695433-pat00008
에 대한 광도 재구성 오차는 제 1이미지
Figure 112021063695433-pat00009
의 픽셀 i 와 제 2이미지
Figure 112021063695433-pat00010
의 픽셀 i 의 차의 제곱 거리이다.
Figure 112021063695433-pat00011
Figure 112021063695433-pat00012
구조적 비유사성
Figure 112021063695433-pat00013
으로 계산된 픽셀 i에서 깊이
Figure 112021063695433-pat00014
에 대한 광도 재구성 오차는 1에서 픽셀 i를 중심으로한 두 이미지
Figure 112021063695433-pat00015
Figure 112021063695433-pat00016
의 해당하는 윈도우 사이의 구조적 유사성 계산인
Figure 112021063695433-pat00017
을 뺀 값의 절반이다.
Figure 112021063695433-pat00018
는 픽셀 i 를 중심으로 한 제 1이미지의 윈도우 x 와 대응하는 제2 이미지의 윈도우 y 사이의 구조적 유사성에 대한 계산이다.
Figure 112021063695433-pat00019
는 윈도우 x 의 평균이고,
Figure 112021063695433-pat00020
는 윈도우 y 의 평균이다.
Figure 112021063695433-pat00021
는 윈도우 x 의 분산;
Figure 112021063695433-pat00022
는 윈도우 y의 분산 및
Figure 112021063695433-pat00023
는 윈도우 x와 y의 공분산이다. c1 및 c2 는 픽셀 값의 동적 범위를 기반으로 계산된 분할에 대한 스무딩 요소이다.
Figure 112021063695433-pat00024
DSSIM + L1의 광도 재구성 오차 정의는 위에 표시된 DSSIM 및 L1의 광도 재구성 오차를 통합한다. 다른 실시 예는 DSSIM과 L1의 광도 재구성 오차 사이에서 다른 백분율을 사용할 수 있다.
감독된 깊이 손실의 다양한 정의는 손실 계산 모듈(190)에 의해 구현될 수 있다. 높은 수준에서, 감독된 깊이 손실은 두 깊이 예측 사이의 차이다. 예시는 L1 거리, L2 거리, 두 깊이 값 사이의 L1 거리의 로그, 거기에 적용된 하나 이상의 연산자, 또는 이들의 일부 조합을 포함한다.
훈련 모듈(195)은 전체 손실을 최소화하여 깊이 추정 모델(130)을 훈련한다. 훈련 모듈(195)은 깊이 추정 모델(130)의 파라미터를 조정하여 훈련하여 각 훈련 이미지 쌍의 전체 손실을 최소화한다. 훈련 모듈(195)은 전체 손실을 최소화하기 위해 깊이 추정 모델(130)의 파라미터를 조정하면서 깊이 추정 모델(130)을 통해 역 전파한다. 일부 실시 예에서 훈련 모듈(195)은, 예를 들어, 훈련 이미지 쌍의 배치별로 깊이 추정 모델(130)을 훈련하는 것과 같은 반복적인 배치 훈련을 수행할 수 있다. 훈련을 위한 다수의 에포치(epoch)는 깊이 추정 모델(130)을 통해 훈련 이미지 데이터를 전방 및 후방으로 공급하는 인스턴스의 개수를 결정한다. 훈련이 끝나면, 훈련 모듈(195)은 훈련된 깊이 추정 모델(130)의 정확도를 결정하기 위해 그라운드 트루스 데이터를 갖는 훈련 이미지 데이터의 홀드 아웃(hold-out) 세트로 깊이 추정 모델(130)을 검증할 수 있다.
훈련 이미지로 모델 및 모듈을 훈련시킨 후 깊이 추정 훈련 시스템(170)은 깊이 추정 모델(130)에 대한 파라미터를 제공하여 색상 입력 이미지을 수신하고 깊이 추정 훈련 시스템(170)에 의해 훈련된 파라미터에 기초하여 깊이 맵을 생성할 수 있다. 깊이 추정 훈련 시스템(170)이 편의를 위해 게임 서버(120)의 일부로 도시되어 있지만, 모델의 일부 또는 전부는 다른 컴퓨팅 장치에 의해 훈련되고, 게임 애플리케이션에 포함되는 운영체제의 일부로서 클라이언트 장치(110)에 제공되거나 필요에 따라 클라우드에서 액세스하는 다양한 방식으로 제공될 수 있다.
도 4는 하나 이상의 실시 예에 따라 이미지 쌍으로 깊이 추정 모델을 훈련시키는 일반적인 프로세스(400)를 설명하는 흐름도이다. 프로세스(400)는 주어진 입력 이미지에 대해 깊이 맵을 생성할 수 있는 훈련된 깊이 추정 모델(130)을 생성한다. 프로세스(400)는 깊이 추정 훈련 시스템(170)에 의해 달성되지만, 보다 일반적으로 임의의 다른 컴퓨팅 장치에 의해 달성될 수 있다.
깊이 추정 훈련 시스템(170)은 복수의 이미지 쌍을 포함하는 훈련 이미지 데이터에 액세스한다(410). 이미지 쌍은 하나 이상의 진정한 입체 이미지 쌍, 하나 이상의 모조 입체 이미지 쌍, 또는 이들의 일부 조합을 포함할 수 있다. 일반적으로, 각각의 진정한 입체 이미지 쌍 사이에 포즈가 알려져 있는 반면, 모조 입체 이미지 쌍에 대해서는 포즈가 추정된다.
깊이 추정 훈련 시스템(170)은 훈련된 각 이미지 쌍에 대해 동작 420-480을 수행한다.
깊이 추정 훈련 시스템(170)은 이미지 쌍의 제 1이미지에 대한 깊이 추정 모델을 사용하여 깊이 예측을 생성한다(420). 제 1이미지는 제 1이미지의 픽셀 당 깊이 예측 값을 포함하는 깊이 예측을 추출하는 깊이 추정 모델(130)에 입력된다. 하나 이상의 실시 예에서, 깊이 예측 모듈(175)은 깊이 예측을 생성한다.
깊이 추정 훈련 시스템(170)은 이미지 쌍의 제 1이미지에 대한 깊이 힌트를 획득한다(430). 깊이 힌트는 본 발명 전체에 걸쳐 설명된 다양한 접근법 중 임의의 것으로부터 획득될 수 있다. 일 실시 예에서, 깊이 힌트는 이미지 쌍을 대안 적으로 훈련된 입체 깊이 추정 모델에 입력함으로써 획득된다. 다른 접근 방식으로는 SLAM 모듈, LIDAR 등에서 깊이 힌트를 얻는 것이 있다. 하나 이상의 실시 예에서, 힌트 모듈(180)은 깊이 예측을 생성한다.
깊이 추정 훈련 시스템(170)은 깊이 예측에 기초하여 제 2이미지를 제 1이미지에 투영하여 모델 합성 프레임을 생성한다. 제 2이미지로부터 제 1이미지로의 투영은 또한 제 1이미지에 대한 제 1세트의 고유 파라미터, 제 2이미지에 대한 제 2세트의 고유 파라미터, 및 제 1이미지와 제 2이미지 사이의 포즈에 기초할 수 있다. 하나 이상의 실시 예에서, 이미지 합성 모듈(185)은 투영을 달성한다.
깊이 추정 훈련 시스템(170)은 깊이 힌트에 기초하여 제 1이미지에 제 2이미지를 투영함으로써 힌트 합성 프레임을 생성한다(450). 힌트 합성 프레임의 경우 투영은 깊이 예측 대신 깊이 힌트에 의존한다. 포즈 힌트가 있는 실시 예에서, 포즈 힌트는 추가 힌트 합성 프레임을 생성하는 데 사용된다. 하나 이상의 실시 예에서, 이미지 합성 모듈(185)은 투영을 달성한다.
깊이 추정 훈련 시스템(170)은 모델 합성 프레임으로 프라이머리 손실을 계산한다(460). 프라이머리 손실은 모델 합성 프레임과 제 1이미지의 비교를 기초로 한 광도 재구성 오차이다. 깊이 예측을 위한 프라이머리 손실은 제1 이미지의 픽셀 당 프라이머리 손실 값을 포함한다.
깊이 추정 훈련 시스템(170)은 힌트 합성 프레임으로 힌트 손실을 계산한다(470). 힌트 손실은 힌트 합성 프레임과 제 1이미지의 비교를 기초로 한 광도 재구성 오차이다. 깊이 힌트에 대한 힌트 손실은 제 1이미지의 픽셀 당 힌트 손실 값을 포함한다. 추가적인 힌트 합성 프레임에 대해 추가 힌트 손실이 계산될 수 있는데, 예를 들어, 하나의 힌트 합성 프레임이 포즈 힌트를 기초로 하고, 다른 힌트 합성 프레임은 깊이 힌트 및 포즈 힌트를 기초로 하거나, 또 다른 힌트 합성 프레임은 첫번째와 다르게 획득된 제 2깊이 힌트에 기초한다.
깊이 추정 훈련 시스템(170)은 프라이머리 손실 및 힌트 손실에 기초하여 전체 손실을 계산한다(480). 전체 손실은 제 1이미지의 각 픽셀의 기여도를 합산한다. 주어진 픽셀의 기여도는 프라이머리 손실 또는 힌트 손실이 더 작은 지에 따라 결정된다. 프라이머리 손실이 해당 픽셀의 힌트 손실보다 작거나 같으면 전체 손실에 대한 픽셀의 기여도가 프라이머리 손실 값이다. 힌트 손실이 해당 픽셀의 프라이머리 손실보다 작은 경우 전체 손실에 대한 픽셀의 기여도는 깊이 예측과 해당 픽셀의 깊이 힌트 사이의 감독된 깊이 손실과 프라이머리 손실 값의 합계이다. 일 실시 예에서, 감독된 깊이 손실은 깊이 예측과 깊이 힌트 사이의 절대 차이를 측정한다. 다른 실시 예에서, 감독된 깊이 손실은 깊이 예측과 깊이 힌트 사이의 절대 차이의 로그를 측정한다. 하나 이상의 실시 예에서, 손실 계산 모듈(190)은 프라이머리 손실, 힌트 손실 및 전체 손실을 계산한다. 깊이 힌트가 없는 어떤 훈련 이미지 쌍에 대한 전체 손실은 프라이머리 손실에만 기초할 수 있는데, 즉, 훈련 이미지 쌍에 대한 전체 손실에 대한 각 픽셀의 기여도가 프라이머리 손실 값이다.
깊이 추정 훈련 시스템(170)은 이미지 쌍의 전체 손실을 최소화함으로써 깊이 추정 모델(130)을 훈련한다(490). 손실을 최소화하기 위해, 깊이 추정 훈련 시스템(170)은 단색 입력 이미지로부터 깊이를 추정하기 위해 깊이 추정 모델(130)의 파라미터를 정제한다.
깊이 추정 모델
도 5는 하나 이상의 실시 예에 따른 깊이 추정 모델을 사용하는 일반적인 프로세스(500)를 설명하는 흐름도이다. 프로세스(500)는 입력 이미지가 주어진 깊이 맵을 생성한다. 프로세스(500)는 훈련된 깊이 추정 모델을 갖는 클라이언트 장치(110)에 의해 달성될 수 있다. 클라이언트 장치는 일반 컴퓨팅 장치일 수 있으며 카메라도 가질 수 있다. 일부 실시 예에서, 클라이언트 장치는 위의 도 1-3에서 설명된 병렬 현실 게임에서 구현된다. 다음 설명은 클라이언트 장치의 맥락 내에서 이루어지지만, 프로세스(500)는 다른 컴퓨팅 장치에서 수행될 수 있다.
클라이언트 장치(110)는 장면의 이미지를 수신한다(510). 장면의 이미지는 클라이언트 장치(110)의 구성 요소 또는 클라이언트 장치(110)의 외부 카메라에 의해 캡처될 수 있다. 병렬 현실 게임의 맥락에서 장면은 가상 세계의 가상 위치에 매핑될 수 있은 실제 위치 일 수 있다. 장면의 이미지는 이미지를 캡처한 카메라의 기하학적 특성에 해당하는 본질을 가질 수도 있다. 이미지는 카메라로 캡처한 단일 이미지 일 수 있다. 대안으로, 이미지는 카메라에 의해 캡처되는 비디오의 프레임일 수 있다.
클라이언트 장치(110)는 훈련된 깊이 추정 모델에 장면의 이미지를 입력한다(520). 깊이 추정 모델은 깊이 추정 시스템(170)에 의해, 예를 들어, 도 4의 프로세스(400), 도 6의 프로세스(600), 또는 이들의 일부 조합을 통해 훈련될 수 있다. 깊이 추정 모델은 장면의 이미지를 수신하고, 일부 실시 예에서 이미지의 본질도 수신한다.
클라이언트 장치(110)는 훈련된 깊이 추정 모델에 의해 장면의 이미지에 대응하는 장면의 깊이 맵을 생성한다(530). 깊이 맵의 각 픽셀에는 장면 이미지의 해당 픽셀에서 표면의 상대적 거리를 설명하는 깊이 값이 있다. 깊이 추정은 장면의 이미지를 수신하고 깊이 추정 모델에 대해 훈련된 파라미터를 기초로 깊이 맵을 출력한다.
클라이언트 장치(110)는 생성된 깊이 맵으로 다양한 추가 동작을 수행할 수 있다. 예를 들어, 클라이언트 장치(110)는 깊이 맵을 사용하여 현실 세계 환경에서 탐색할 수 있는 자율 차량 일 수 있다. 다른 예에서, 클라이언트 장치(110)는 증강 현실 시스템의 일부이고 가상 콘텐츠로 증강된 현실 세계 이미지를 제공할 수 있다. 이 작업을 수행하기 위해, 클라이언트 장치(110)는 생성된 깊이 맵을 이용하여 가상 콘텐츠를 생성할 수 있으며, 그 결과 가상 콘텐츠가 현실 세계 이미지의 객체와 정확한 깊이에서 상호 작용하게 된다. 증강 콘텐츠 생성 단계는 다음과 같다.
추가 실시 예에서, 클라이언트 장치(110)는 장면의 깊이 맵에 기초하여 가상 콘텐츠를 생성한다(540). 가상 콘텐츠는 예를 들어 게임 데이터베이스(115)에 저장된 병렬 현실 게임용 콘텐츠로부터 공급될 수 있다. 생성된 가상 콘텐츠는 장면의 이미지에 증강될 수 있는 증강 현실 콘텐츠 일 수 있다. 예를 들어 장면의 깊이를 이해하고 장면을 이동할 수 있은 가상 캐릭터가 생성된다. 어떤 경우에는 가상 캐릭터가 사용자를 향해 거리를 걷고 있을 때 가상 캐릭터의 크기가 커질 수 있다. 또 다른 경우에, 가상 캐릭터는 가상 캐릭터의 일부가 나무에 의해 가려지는 나무 뒤에 숨어있을 수 있다.
클라이언트 장치(110)는 가상 콘텐츠로 증강된 장면의 이미지를 디스플레이한다(550). 클라이언트 장치는 전자 디스플레이를 포함한다. 전자 디스플레이는 증강된 가상 콘텐츠와 함께 카메라로 캡처한 비디오의 지속적인 피드를 제공할 수 있다.
위의 예에 따라, 병렬 현실 게임은 목표로서 가상 캐릭터와의 상호 작용을 제공할 수 있다. 가상 캐릭터와 상호 작용하기 위해 모바일 장치의 사용자는 카메라 시야에 가상 캐릭터를 유지하면서 모바일 장치를 움직여야할 수 있다. 사용자가 모바일 장치를 움직일 때 모바일 장치는 사용자의 모바일 장치 움직임에 따라 장면이 변경됨에 따라 장면의 깊이 정보를 반복적으로 생성하는 데 사용할 수 있는 비디오 또는 이미지 데이터를 지속적으로 캡처할 수 있다. 모바일 장치는 디스플레이에서 비디오 피드를 업데이트하는 동시에 생성된 깊이 정보를 기초로 가상 캐릭터를 업데이트할 수 있으므로 사용자가 장면 내에서(예를 들어, 어떤 객체도 그 부분을 막지 않고 잘린 부분도 없이) 항상 적절하게 상호 작용하는 것으로 가상 캐릭터를 인식할 수 있다.
컴퓨팅 시스템 예시
도 6은 일 실시 예에 따른 컴퓨팅 장치의 예시적인 아키텍처이다. 도 6은 일 실시 예에 따라 본 명세서에 설명된 하나 이상의 엔티티의 일부 또는 모두로서 사용되는 컴퓨터의 물리적 구성 요소를 예시하는 상위 레벨 블록도를 도시하지만, 컴퓨터는 도 6에 제공된 구성 요소의 추가, 더 적은 또는 변형을 가질 수 있다. 도 6은 컴퓨터(600)를 도시하고 있지만, 도면은 여기에 설명된 구현의 구조적 개략도보다는 컴퓨터 시스템에 존재할 수 있은 다양한 특징에 대한 기능적 설명으로 의도되었다. 실제로, 그리고 당업자에 의해 인식되는 바와 같이, 개별적으로 도시된 항목은 결합될 수 있고 일부 항목은 분리될 수 있다.
칩셋(604)에 연결된 적어도 하나의 프로세서(602)가 도 6에 도시되어있다. 또한 칩셋(604)에는 메모리(606), 저장 장치(608), 키보드(610), 그래픽 어댑터(612), 포인팅 장치(614) 및 네트워크 어댑터(616)가 결합된다. 디스플레이(618)는 그래픽 어댑터(612)에 연결된다. 일 실시 예에서, 칩셋(604)의 기능은 메모리 컨트롤러 허브(620) 및 I/O 허브(622)에 의해 제공된다. 다른 실시 예에서, 메모리(606)는 칩셋(604) 대신에 프로세서(602)에 직접 결합된다. 일부 실시 예에서, 컴퓨터(600)는 이들 컴포넌트를 상호 연결하기 위한 하나 이상의 통신 버스를 포함한다. 하나 이상의 통신 버스는 시스템 구성 요소 간의 통신을 상호 연결하고 제어하는 회로(칩셋이라고도 함)를 선택적으로 포함한다.
저장 장치(608)는 하드 드라이브, CD-ROM(compact disk read-only memory), DVD 또는 솔리드 스테이트 메모리 장치 또는 기타 광학 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 기타 자기 저장 장치, 자기 디스크 저장 장치, 광 디스크 저장 장치, 플래시 메모리 장치 또는 기타 비 휘발성 솔리드 스테이트 저장 장치와 같은 임의의 비 일시적 컴퓨터 판독 가능 저장 매체이다. 이러한 저장 장치(608)는 또한 영구 메모리로 지칭될 수 있다. 포인팅 장치(614)는 마우스, 트랙볼 또는 기타 유형의 포인팅 장치 일 수 있으며, 컴퓨터(600)에 데이터를 입력하기 위해 키보드(610)와 조합하여 사용된다. 그래픽 어댑터(612)는 디스플레이(618)에 이미지 및 기타 정보를 디스플레이한다. 네트워크 어댑터(616)는 컴퓨터(600)를 근거리 또는 광역 네트워크에 연결한다.
메모리(606)는 프로세서(602)에 의해 사용되는 명령 및 데이터를 보유한다. 메모리(606)는 비 영구 메모리 일 수 있으며, 그 예는 DRAM, SRAM, DDR RAM, ROM, EEPROM, 플래시 메모리와 같은 고속 랜덤 액세스 메모리를 포함한다.
당 업계에 공지된 바와 같이, 컴퓨터(600)는 도 13에 도시된 것과 상이한 및/또는 다른 구성 요소를 가질 수 있다. 또한, 컴퓨터(600)는 특정 예시된 구성 요소가 부족할 수 있다. 일 실시 예에서, 서버 역할을 하는 컴퓨터(600)는 키보드(610), 포인팅 장치(614), 그래픽 어댑터(612) 및/또는 디스플레이(618)가 없을 수 있다. 더욱이, 저장 장치(608)는 컴퓨터(600)(예를 들어, SAN(Storage Area Network) 내에 구현 됨)로부터 로컬 및/또는 원격 일 수 있다.
당 업계에 공지된 바와 같이, 컴퓨터(600)는 여기에 설명된 기능을 제공하기 위한 컴퓨터 프로그램 모듈을 실행하도록 구성된다. 본 명세서에서 사용되는 용어 "모듈"은 지정된 기능을 제공하기 위해 사용되는 컴퓨터 프로그램 로직을 의미한다. 따라서 모듈은 하드웨어, 펌웨어 및/또는 소프트웨어로 구현될 수 있다. 일 실시 예에서, 프로그램 모듈은 저장 장치(608)에 저장되고, 메모리(606)에 로드되고, 프로세서(602)에 의해 실행된다.
추가 고려 사항
상기 설명의 일부 부분은 알고리즘 프로세스 또는 동작의 관점에서 실시 예를 설명한다. 이러한 알고리즘 설명 및 표현은 일반적으로 데이터 처리 기술의 숙련자에 의해 작업의 본질을 당업자에게 효과적으로 전달하는 데 사용된다. 이러한 동작은 기능적으로, 계산적으로 또는 논리적으로 설명되었지만 프로세서 또는 등가 전기 회로, 마이크로 코드 등에 의한 실행을 위한 명령을 포함하는 컴퓨터 프로그램에 의해 구현되는 것으로 이해된다. 또한 이러한 기능적 작업 배열을 일반성을 잃지 않고 모듈이라고 부르는 것이 때때로 편리함이 입증되었다.
본 명세서에서 사용된 바와 같이, "일 실시 예"또는 "실시 예"에 대한 임의의 언급은 실시 예와 관련하여 설명된 특정 요소, 특징, 구조 또는 특성이 적어도 하나의 실시 예에 포함된다는 것을 의미한다. 명세서의 다양한 위치에서 "일 실시 예에서"라는 문구의 출현은 반드시 모두 동일한 실시 예를 지칭하는 것은 아니다.
일부 실시 예는 그들의 파생어와 함께 "결합된"및 "연결된"이라는 표현을 사용하여 설명될 수 있다. 이러한 용어는 서로 동의어로 의도된 것이 아님을 이해해야 한다. 예를 들어, 일부 실시 예는 2 개 이상의 요소가 서로 직접 물리적 또는 전기적 접촉을 하고 있음을 나타내기 위해 "연결된"이라는 용어를 사용하여 설명될 수 있다. 다른 예에서, 일부 실시 예는 2 개 이상의 요소가 직접적인 물리적 또는 전기적 접촉에 있음을 나타내기 위해 "결합된"이라는 용어를 사용하여 설명될 수 있다. 그러나 "결합된"이라는 용어는 또한 둘 이상의 요소가 서로 직접 접촉하지 않지만 여전히 서로 협력하거나 상호 작용한다는 것을 의미할 수 있다. 실시 예는 이러한 맥락에서 제한되지 않는다.
본 명세서에서 사용되는 용어 "포함하다(comprise)”, "포함하는(comprising) “, "포함하다(include)", "포함하는(including)”, "갖는다(has)”, "갖는(having)” 또는 이의 임의의 다른 변형은 비 독점적 포함을 포괄하기 위한 것이다. 예를 들어, 요소의 목록을 포함하는 프로세스, 방법, 물품 또는 장치는 반드시 그러한 요소로만 제한되는 것은 아니지만 명시 적으로 나열되지 않거나 그러한 프로세스, 방법, 물품 또는 장치에 고유하지 않은 다른 요소를 포함할 수 있다. 또한, 달리 명시적으로 언급되지 않는 한, "또는”은 논리합이고 배타적 논리합이 아니다. 예를 들어, 조건 A 또는 B가 다음 중 하나에 의해 충족된다: A는 참(또는 존재)이고, B는 거짓(또는 존재하지 않음), A는 거짓(또는 존재하지 않음), B는 참(또는 존재)이고, A와 B가 모두 참(또는 존재)이다.
추가로, "a"또는 "an"의 사용은 실시 예의 요소 및 구성 요소를 설명하기 위해 사용된다. 이것은 단지 편의를 위해 그리고 공개의 일반적인 의미를 제공하기 위해 수행된다. 이 설명은 하나 또는 적어도 하나를 포함하도록 읽어야 하며, 단수는 다른 의미가 분명하지 않은 한 복수도 포함한다.
본 발명을 읽을 때, 당업자는 온라인 서비스 제공자와의 계정을 검증하는 프로세스 및 진정한 비즈니스에 대응하는 시스템에 대한 추가적인 대안적인 구조적 및 기능적 설계를 이해할 것이다. 따라서, 특정 실시 예 및 응용이 예시되고 설명되었지만, 설명된 주제는 여기에 개시된 정확한 구성 및 구성 요소로 제한되지 않음을 이해해야 하며, 당업자에게 명백한 다양한 수정, 변경 및 변경이 개시된 방법 및 장치의 배열, 동작 및 세부 사항에서 이루어질 수 있다. 보호 범위는 다음 청구 범위에 의해서만 제한되어야 한다.

Claims (20)

  1. 장면의 이미지를 수신하는 단계;
    프로세스에 의해 훈련된 깊이 추정 모델에 상기 이미지를 입력하는 단계; 및
    상기 깊이 추정 모델에 의해 상기 장면의 이미지에 대응하는 장면의 깊이 맵을 생성하는 단계;를 포함하고,
    상기 프로세스는:
    복수의 모조 입체 이미지 쌍을 포함하는 훈련 이미지 데이터를 액세스하는 단계 - 각각의 모조 입체 이미지 쌍은 제 1이미지 및 제 2이미지를 포함함 -;
    각각의 이미지 쌍에 대하여:
    상기 깊이 추정 모델에 의해, 상기 제 1이미지의 픽셀에 대한 깊이 예측 값을 생성하는 단계;
    상기 제 1이미지의 픽셀에 대한 카메라 포즈 힌트를 획득하는 단계;
    모델 합성 프레임을 생성하기 위해 상기 제 1이미지의 픽셀에 대한 깊이 예측 값을 사용하여 상기 제 2이미지를 상기 제 1이미지에 투영하는 단계;
    힌트 합성 프레임을 생성하기 위해 상기 제 1이미지에 대한 카메라 포즈 힌트를 사용하여 상기 제 2이미지를 상기 제 1이미지에 투영하는 단계;
    상기 모델 합성 프레임의 픽셀과 제 1이미지의 픽셀의 비교에 기초하여 상기 제 1이미지의 픽셀에 대응하는 프라이머리 손실 값을 계산하는 단계;
    상기 힌트 합성 프레임의 픽셀과 상기 제 1이미지의 픽셀의 비교에 기초하여 상기 제 1이미지의 픽셀에 대응하는 힌트 손실 값을 계산하는 단계; 및
    상기 이미지 쌍에 대한 전체 손실을 계산하는 단계 - 상기 제 1이미지의 주어진 픽셀에 대응하는 힌트 손실 값이 주어진 픽셀에 해당하는 상기 프라이머리 손실 값보다 더 작은 것에 응답하여, 전체 손실에 대한 주어진 픽셀의 기여도는 주어진 픽셀에 대응하는 상기 프라이머리 손실 값과 감독된 손실 값을 사용하여 결정되고, 상기 감독된 손실 값은 주어진 픽셀 값에 대한 깊이 예측 값 및 카메라 포즈 힌트를 사용하여 결정된 주어진 픽셀에 대한 깊이 값을 사용하여 결정됨 -;
    상기 모조 입체 이미지 쌍의 전체 손실에 기초하여, 상기 깊이 추정 모델의 파라미터를 조정하는 단계;를 포함하는, 컴퓨터로 구현되는 방법.
  2. 제1항에 있어서,
    상기 제 1이미지의 주어진 픽셀에 대응하는 힌트 손실 값이 상기 주어진 픽셀에 대응하는 프라이머리 손실 값보다 큰 것에 응답하여, 전체 손실에 대한 주어진 픽셀의 기여도는 감독된 손실 값을 포함하지 않는, 컴퓨터로 구현되는 방법.
  3. 제1항에 있어서,
    상기 깊이 추정 모델을 훈련하는 프로세스는:
    상기 제 1이미지의 픽셀에 대한 깊이 힌트 값을 획득하는 단계;
    추가적인 힌트 합성 프레임을 생성하기 위하여 상기 제 1이미지의 픽셀에 대한 깊이 힌트 값에 기초하여 제 2이미지를 제 1이미지에 투영하는 단계;
    상기 추가적인 힌트 합성 프레임의 픽셀과 상기 제 1이미지의 픽셀의 비교에 기초하여 상기 깊이 힌트 값에 대한 추가적인 힌트 손실 값을 계산하는 단계;
    상기 추가적인 힌트 손실 값을 사용하여 상기 이미지 쌍의 전체 손실을 계산하는 단계;를 더 포함하는, 컴퓨터로 구현되는 방법.
  4. 제1항에 있어서,
    상기 주어진 픽셀에 대한 상기 깊이 값은 제 1이미지에 대하여 생성된 차이 맵과 카메라 포즈 힌트를 사용한 힌트 합성 프레임을 사용하여 결정되는, 컴퓨터로 구현되는 방법.
  5. 제1항에 있어서,
    상기 제 1이미지 및 상기 제 2이미지는 단일 카메라에 의해 시간적으로 구별되는 프레임인, 컴퓨터로 구현되는 방법.
  6. 제1항에 있어서,
    상기 깊이 예측 값을 기초로 제 2이미지를 제 1이미지에 투영하는 단계는 상기 제 1이미지 및 상기 제 2이미지 사이의 포즈를 더 기초로 하는, 컴퓨터로 구현되는 방법.
  7. 제1항에 있어서,
    깊이 예측 값에 따른 픽셀에서의 상기 프라이머리 손실 값은 모델 합성 프레임의 픽셀과 상기 제 1이미지의 픽셀간의 차이에 기초하고, 깊이 힌트 값에 따른 상기 픽셀에서의 상기 힌트 손실 값은 힌트 합성 프레임의 픽셀과 상기 제 1이미지의 픽셀간의 차이에 기초하는, 컴퓨터로 구현되는 방법.
  8. 제1항에 있어서,
    상기 프라이머리 손실 값이 상기 주어진 픽셀에서 상기 힌트 손실 값보다 작거나 같으면, 상기 전체 손실에 대한 주어진 픽셀의 기여도는 주어진 픽셀의 상기 프라이머리 손실 값이고,
    상기 힌트 손실 값이 주어진 픽셀에서 상기 프라이머리 손실 값보다 작으면, 상기 전체 손실에 대한 주어진 픽셀의 기여도는 주어진 픽셀의 상기 프라이머리 손실 값 및 깊이 예측 값과 주어진 픽셀에 대한 카메라 포즈 힌트를 사용하여 결정된 깊이 값 간의 차이의 합인, 컴퓨터로 구현되는 방법.
  9. 제1항에 있어서,
    상기 카메라 포즈 힌트는 상기 이미지 쌍을 입력으로 하고, 상기 이미지 쌍을 기초로 카메라 포즈 힌트를 출력으로 하는 것으로 구성된 포즈 추정 모델에 의해 생성되는, 컴퓨터로 구현되는 방법.
  10. 복수의 모조 입체 이미지 쌍을 포함하는 훈련 이미지 데이터를 액세스하는 단계 - 각각의 모조 입체 이미지 쌍은 제 1이미지 및 제 2이미지를 포함함 -;
    각각의 이미지 쌍에 대하여:
    깊이 추정 모델에 의해, 상기 제 1이미지의 픽셀에 대한 깊이 예측 값을 생성하는 단계;
    상기 제 1이미지의 픽셀에 대한 카메라 포즈 힌트를 획득하는 단계;
    모델 합성 프레임을 생성하기 위해 상기 제 1이미지의 픽셀에 대한 깊이 예측 값을 사용하여 상기 제 2이미지를 상기 제 1이미지에 투영하는 단계;
    힌트 합성 프레임을 생성하기 위해 상기 제 1이미지에 대한 카메라 포즈 힌트를 사용하여 상기 제 2이미지를 상기 제 1이미지에 투영하는 단계;
    상기 모델 합성 프레임의 픽셀과 제 1이미지의 픽셀의 비교에 기초하여 상기 제 1이미지의 픽셀에 대응하는 프라이머리 손실 값을 계산하는 단계;
    상기 힌트 합성 프레임의 픽셀과 상기 제 1이미지의 픽셀의 비교에 기초하여 상기 제 1이미지의 픽셀에 대응하는 힌트 손실 값을 계산하는 단계; 및
    상기 이미지 쌍에 대한 전체 손실을 계산하는 단계 - 상기 제 1이미지의 주어진 픽셀에 대응하는 힌트 손실 값이 주어진 픽셀에 해당하는 상기 프라이머리 손실 값보다 더 작은 것에 응답하여, 전체 손실에 대한 주어진 픽셀의 기여도는 주어진 픽셀에 대응하는 상기 프라이머리 손실 값과 감독된 손실 값을 사용하여 결정되고, 상기 감독된 손실 값은 주어진 픽셀 값에 대한 깊이 예측 값 및 카메라 포즈 힌트를 사용하여 결정된 주어진 픽셀에 대한 깊이 값을 사용하여 결정됨 -;
    상기 모조 입체 이미지 쌍의 전체 손실에 기초하여, 상기 깊이 추정 모델의 파라미터를 조정하는 단계; 를 포함하는, 컴퓨터로 구현되는 방법.
  11. 제10항에 있어서,
    상기 제 1이미지의 주어진 픽셀에 대응하는 힌트 손실 값이 상기 주어진 픽셀에 대응하는 프라이머리 손실 값보다 큰 것에 응답하여, 전체 손실에 대한 주어진 픽셀의 기여도는 감독된 손실 값을 포함하지 않는, 컴퓨터로 구현되는 방법.
  12. 제10항에 있어서,
    상기 제 1이미지의 픽셀에 대한 깊이 힌트 값을 획득하는 단계;
    추가적인 힌트 합성 프레임을 생성하기 위하여 상기 제 1이미지의 픽셀에 대한 깊이 힌트 값에 기초하여 제 2이미지를 제 1이미지에 투영하는 단계;
    상기 추가적인 힌트 합성 프레임의 픽셀과 상기 제 1이미지의 픽셀의 비교에 기초하여 상기 깊이 힌트 값에 대한 추가적인 힌트 손실 값을 계산하는 단계;
    상기 추가적인 힌트 손실 값을 사용하여 상기 이미지 쌍의 전체 손실을 계산하는 단계;를 더 포함하는, 컴퓨터로 구현되는 방법.
  13. 제10항에 있어서,
    상기 주어진 픽셀에 대한 상기 깊이 값은 제 1이미지에 대하여 생성된 차이 맵과 카메라 포즈 힌트를 사용한 힌트 합성 프레임을 사용하여 결정되는, 컴퓨터로 구현되는 방법.
  14. 제10항에 있어서,
    상기 제 1이미지 및 상기 제 2이미지는 단일 카메라에 의해 시간적으로 구별되는 프레임인, 컴퓨터로 구현되는 방법.
  15. 제10항에 있어서,
    상기 깊이 예측 값을 기초로 제 2이미지를 제 1이미지에 투영하는 단계는 상기 제 1이미지 및 상기 제 2이미지 사이의 포즈를 더 기초로 하는, 컴퓨터로 구현되는 방법.
  16. 제10항에 있어서,
    깊이 예측 값에 따른 픽셀에서의 상기 프라이머리 손실 값은 모델 합성 프레임의 픽셀과 상기 제 1이미지의 픽셀간의 차이에 기초하고, 깊이 힌트 값에 따른 상기 픽셀에서의 상기 힌트 손실 값은 힌트 합성 프레임의 픽셀과 상기 제 1이미지의 픽셀간의 차이에 기초하는, 컴퓨터로 구현되는 방법.
  17. 제10항에 있어서,
    상기 프라이머리 손실 값이 주어진 픽셀에서 상기 힌트 손실 값보다 작거나 같으면, 상기 전체 손실에 대한 주어진 픽셀의 기여도는 주어진 픽셀의 상기 프라이머리 손실 값이고,
    상기 힌트 손실 값이 주어진 픽셀에서 상기 프라이머리 손실 값보다 작으면, 상기 전체 손실에 대한 주어진 픽셀의 기여도는 주어진 픽셀의 상기 프라이머리 손실 값 및 깊이 예측 값과 주어진 픽셀에 대한 카메라 포즈 힌트를 사용하여 결정된 깊이 값 간의 차이의 합인, 컴퓨터로 구현되는 방법.
  18. 제10항에 있어서,
    상기 카메라 포즈 힌트는 상기 이미지 쌍을 입력으로 하고, 상기 이미지 쌍을 기초로 카메라 포즈 힌트를 출력으로 하는 것으로 구성된 포즈 추정 모델에 의해 생성되는, 컴퓨터로 구현되는 방법.
  19. 프로세서에 의해 실행될 때 상기 프로세서로 하여금 동작을 수행하게 하는 명령어를 저장한 비 일시적 컴퓨터 판독 가능 저장 매체로서,
    상기 동작은:
    프로세스에 의해 훈련된 깊이 추정 모델에 이미지를 입력하는 단계; 및 상기 깊이 추정 모델에 의해 장면의 이미지에 대응하는 장면의 깊이 맵을 생성하는 단계; 를 포함하고,
    상기 프로세스는:
    복수의 모조 입체 이미지 쌍을 포함하는 훈련 이미지 데이터를 액세스하는 단계 - 각각의 모조 입체 이미지 쌍은 제 1이미지 및 제 2이미지를 포함함 -;
    각각의 이미지 쌍에 대하여:
    상기 깊이 추정 모델에 의해, 상기 제 1이미지의 픽셀에 대한 깊이 예측 값을 생성하는 단계;
    상기 제 1이미지의 픽셀에 대한 카메라 포즈 힌트를 획득하는 단계;
    모델 합성 프레임을 생성하기 위해 상기 제 1이미지의 픽셀에 대한 깊이 예측 값을 사용하여 상기 제 2이미지를 상기 제 1이미지에 투영하는 단계;
    힌트 합성 프레임을 생성하기 위해 상기 제 1이미지에 대한 카메라 포즈 힌트를 사용하여 상기 제 2이미지를 상기 제 1이미지에 투영하는 단계;
    상기 모델 합성 프레임의 픽셀과 제 1이미지의 픽셀의 비교에 기초하여 상기 제 1이미지의 픽셀에 대응하는 프라이머리 손실 값을 계산하는 단계;
    상기 힌트 합성 프레임의 픽셀과 상기 제 1이미지의 픽셀의 비교에 기초하여 상기 제 1이미지의 픽셀에 대응하는 힌트 손실 값을 계산하는 단계; 및
    상기 이미지 쌍에 대한 전체 손실을 계산하는 단계 - 상기 제 1이미지의 주어진 픽셀에 대응하는 힌트 손실 값이 주어진 픽셀에 해당하는 상기 프라이머리 손실 값보다 더 작은 것에 응답하여, 전체 손실에 대한 주어진 픽셀의 기여도는 주어진 픽셀에 대응하는 상기 프라이머리 손실 값과 감독된 손실 값을 사용하여 결정되고, 상기 감독된 손실 값은 주어진 픽셀 값에 대한 깊이 예측 값 및 카메라 포즈 힌트를 사용하여 결정된 주어진 픽셀에 대한 깊이 값을 사용하여 결정됨 -;
    상기 모조 입체 이미지 쌍의 전체 손실에 기초하여, 상기 깊이 추정 모델의 파라미터를 조정하는 단계; 를 포함하는, 비 일시적 컴퓨터 판독 가능 저장 매체.
  20. 제19항에 있어서,
    상기 깊이 추정 모델을 훈련하는 프로세스는:
    상기 제 1이미지의 픽셀에 대한 깊이 힌트 값을 획득하는 단계;
    추가적인 힌트 합성 프레임을 생성하기 위하여 상기 제 1이미지의 픽셀에 대한 깊이 힌트 값에 기초하여 제 2이미지를 제 1이미지에 투영하는 단계;
    상기 추가적인 힌트 합성 프레임의 픽셀과 상기 제 1이미지의 픽셀의 비교에 기초하여 상기 깊이 힌트 값에 대한 추가적인 힌트 손실 값을 계산하는 단계;
    상기 추가적인 힌트 손실 값을 사용하여 상기 이미지 쌍의 전체 손실을 계산하는 단계;를 더 포함하는, 비 일시적 컴퓨터 판독 가능 저장 매체.
KR1020217016884A 2019-05-02 2020-05-02 깊이 힌트를 사용하는 깊이 추정 모델의 자가 감독 훈련 KR102493185B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201962842531P 2019-05-02 2019-05-02
US62/842,531 2019-05-02
PCT/IB2020/054170 WO2020222204A1 (en) 2019-05-02 2020-05-02 Self-supervised training of a depth estimation model using depth hints
KR1020207031640A KR102262824B1 (ko) 2019-05-02 2020-05-02 깊이 힌트를 사용하는 깊이 추정 모델의 자가 감독 훈련

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020207031640A Division KR102262824B1 (ko) 2019-05-02 2020-05-02 깊이 힌트를 사용하는 깊이 추정 모델의 자가 감독 훈련

Publications (2)

Publication Number Publication Date
KR20210069125A KR20210069125A (ko) 2021-06-10
KR102493185B1 true KR102493185B1 (ko) 2023-01-30

Family

ID=73016748

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020207031640A KR102262824B1 (ko) 2019-05-02 2020-05-02 깊이 힌트를 사용하는 깊이 추정 모델의 자가 감독 훈련
KR1020217016884A KR102493185B1 (ko) 2019-05-02 2020-05-02 깊이 힌트를 사용하는 깊이 추정 모델의 자가 감독 훈련

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020207031640A KR102262824B1 (ko) 2019-05-02 2020-05-02 깊이 힌트를 사용하는 깊이 추정 모델의 자가 감독 훈련

Country Status (8)

Country Link
US (3) US11044462B2 (ko)
EP (1) EP3776468A4 (ko)
JP (2) JP6996009B2 (ko)
KR (2) KR102262824B1 (ko)
CN (1) CN112805748B (ko)
AU (2) AU2020266341B2 (ko)
CA (1) CA3097393C (ko)
WO (1) WO2020222204A1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11044462B2 (en) 2019-05-02 2021-06-22 Niantic, Inc. Self-supervised training of a depth estimation model using depth hints
US20220215567A1 (en) * 2019-05-10 2022-07-07 Nippon Telegraph And Telephone Corporation Depth estimation device, depth estimation model learning device, depth estimation method, depth estimation model learning method, and depth estimation program
US20210295171A1 (en) * 2020-03-19 2021-09-23 Nvidia Corporation Future trajectory predictions in multi-actor environments for autonomous machine applications
CN111753961B (zh) * 2020-06-26 2023-07-28 北京百度网讯科技有限公司 模型训练方法和装置、预测方法和装置
KR102471353B1 (ko) 2020-07-03 2022-11-28 한국공학대학교산학협력단 바이메탈을 이용한 복원 기능을 포함하는 퓨즈
CN112561979B (zh) * 2020-12-25 2022-06-28 天津大学 一种基于深度学习的自监督单目深度估计方法
CN113269066B (zh) * 2021-05-14 2022-10-04 网易(杭州)网络有限公司 说话视频生成方法、装置和电子设备
KR102489890B1 (ko) * 2021-05-28 2023-01-17 한국항공대학교산학협력단 깊이 추정 시스템 및 깊이 추정 방법
CN114037087B (zh) * 2021-10-29 2024-02-09 北京百度网讯科技有限公司 模型训练方法及装置、深度预测方法及装置、设备和介质
KR102531286B1 (ko) * 2022-03-29 2023-05-12 포티투닷 주식회사 깊이 정보 추정 모델 학습을 위한 데이터 처리 방법 및 장치
CN115512116B (zh) * 2022-11-01 2023-06-30 北京安德医智科技有限公司 图像分割模型优化方法、装置、电子设备及可读存储介质
CN117351450B (zh) * 2023-12-06 2024-02-27 吉咖智能机器人有限公司 一种单目3d检测方法、装置、电子设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107067465A (zh) 2017-04-14 2017-08-18 深圳市唯特视科技有限公司 一种基于验证转换图像生成网络的三维视图合成方法
WO2018046964A1 (en) 2016-09-12 2018-03-15 Ucl Business Plc Predicting depth from image data using a statistical model

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011188358A (ja) 2010-03-10 2011-09-22 Panasonic Corp Vpn装置及びip通信装置
CN102223553B (zh) 2011-05-27 2013-03-20 山东大学 一种二维视频到三维视频的自动转换方法
US20130077820A1 (en) * 2011-09-26 2013-03-28 Microsoft Corporation Machine learning gesture detection
US10262462B2 (en) * 2014-04-18 2019-04-16 Magic Leap, Inc. Systems and methods for augmented and virtual reality
US9275078B2 (en) 2013-09-05 2016-03-01 Ebay Inc. Estimating depth from a single image
JP6148154B2 (ja) 2013-10-29 2017-06-14 日本電信電話株式会社 画像処理装置及び画像処理プログラム
JP5937709B1 (ja) 2015-01-29 2016-06-22 エヌ・ティ・ティ・コミュニケーションズ株式会社 通信制御装置、通信制御方法及び通信制御プログラム
JP6359985B2 (ja) * 2015-02-12 2018-07-18 株式会社デンソーアイティーラボラトリ デプス推定モデル生成装置及びデプス推定装置
EP3295368A1 (en) 2015-05-13 2018-03-21 Google LLC Deepstereo: learning to predict new views from real world imagery
JP2017129904A (ja) 2016-01-18 2017-07-27 ソニー株式会社 情報処理装置、情報処理方法、及び記録媒体
US10255522B2 (en) 2016-06-17 2019-04-09 Facebook, Inc. Generating object proposals using deep-learning models
KR102529137B1 (ko) 2016-08-22 2023-05-03 매직 립, 인코포레이티드 딥 러닝 센서들을 갖는 증강 현실 디스플레이 디바이스
CN107204010B (zh) * 2017-04-28 2019-11-19 中国科学院计算技术研究所 一种单目图像深度估计方法与系统
CN107578436B (zh) 2017-08-02 2020-06-12 南京邮电大学 一种基于全卷积神经网络fcn的单目图像深度估计方法
CN107767413B (zh) 2017-09-20 2020-02-18 华南理工大学 一种基于卷积神经网络的图像深度估计方法
US10803546B2 (en) 2017-11-03 2020-10-13 Baidu Usa Llc Systems and methods for unsupervised learning of geometry from images using depth-normal consistency
CN111386550A (zh) 2017-11-15 2020-07-07 谷歌有限责任公司 图像深度和自我运动预测神经网络的无监督学习
CN107909150B (zh) 2017-11-29 2020-08-18 华中科技大学 基于逐块随机梯度下降法在线训练cnn的方法与系统
US10810754B2 (en) 2018-04-24 2020-10-20 Ford Global Technologies, Llc Simultaneous localization and mapping constraints in generative adversarial networks for monocular depth estimation
CN109191514B (zh) * 2018-10-23 2020-11-24 北京字节跳动网络技术有限公司 用于生成深度检测模型的方法和装置
US11044462B2 (en) 2019-05-02 2021-06-22 Niantic, Inc. Self-supervised training of a depth estimation model using depth hints

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018046964A1 (en) 2016-09-12 2018-03-15 Ucl Business Plc Predicting depth from image data using a statistical model
CN107067465A (zh) 2017-04-14 2017-08-18 深圳市唯特视科技有限公司 一种基于验证转换图像生成网络的三维视图合成方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Clement Godard 등, Unsupervised Monocular Depth Estimation with Left-Right Consistency, arXiv:1609.03677v3.(2017.04.12.)
Ravi Garg 등, Unsupervised CNN for Single View Depth Estimation: Geometry to the Rescue, arXiv:1603.04992v2.(2016.07.29.)

Also Published As

Publication number Publication date
CA3097393A1 (en) 2020-11-05
AU2020266341A1 (en) 2020-12-03
KR20210069125A (ko) 2021-06-10
US11711508B2 (en) 2023-07-25
WO2020222204A1 (en) 2020-11-05
EP3776468A4 (en) 2022-01-12
JP2022037113A (ja) 2022-03-08
US11317079B2 (en) 2022-04-26
TW202109458A (zh) 2021-03-01
JP2021522603A (ja) 2021-08-30
AU2021206838A1 (en) 2021-08-12
JP6996009B2 (ja) 2022-01-17
CN112805748B (zh) 2022-10-25
CA3097393C (en) 2022-02-01
US20210218950A1 (en) 2021-07-15
KR102262824B1 (ko) 2021-06-10
KR20200130472A (ko) 2020-11-18
AU2020266341B2 (en) 2021-04-22
CN112805748A (zh) 2021-05-14
EP3776468A1 (en) 2021-02-17
US11044462B2 (en) 2021-06-22
AU2021206838B2 (en) 2023-08-17
JP7174139B2 (ja) 2022-11-17
US20200351489A1 (en) 2020-11-05
US20220210392A1 (en) 2022-06-30

Similar Documents

Publication Publication Date Title
KR102493185B1 (ko) 깊이 힌트를 사용하는 깊이 추정 모델의 자가 감독 훈련
JP7241775B2 (ja) 深度推定システムの自己教師ありトレーニング
US20230360339A1 (en) Determining Traversable Space from Single Images
WO2023111909A1 (en) High-speed real-time scene reconstruction from input image data
TWI839513B (zh) 用於利用深度提示之深度預估模型之自我監督訓練之電腦實施之方法及非暫時性電腦可讀儲存媒體
TW202238068A (zh) 自監督多圖框單眼深度估計模型

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