KR20230111188A - 장면 레이아웃 추정 - Google Patents

장면 레이아웃 추정 Download PDF

Info

Publication number
KR20230111188A
KR20230111188A KR1020237015440A KR20237015440A KR20230111188A KR 20230111188 A KR20230111188 A KR 20230111188A KR 1020237015440 A KR1020237015440 A KR 1020237015440A KR 20237015440 A KR20237015440 A KR 20237015440A KR 20230111188 A KR20230111188 A KR 20230111188A
Authority
KR
South Korea
Prior art keywords
environment
layouts
determining
objects
candidate
Prior art date
Application number
KR1020237015440A
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 KR20230111188A publication Critical patent/KR20230111188A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/35Categorising the entire scene, e.g. birthday party or wedding scene
    • G06V20/36Indoor scenes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • G06F30/13Architectural design, e.g. computer-aided architectural design [CAAD] related to design of buildings, bridges, landscapes, production plants or roads
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • 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
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/64Three-dimensional objects
    • G06V20/653Three-dimensional objects by matching three-dimensional models, e.g. conformal mapping of Riemann surfaces
    • 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
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/12Bounding box

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Graphics (AREA)
  • Computational Mathematics (AREA)
  • Architecture (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Civil Engineering (AREA)
  • General Engineering & Computer Science (AREA)
  • Structural Engineering (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Artificial Intelligence (AREA)
  • Processing Or Creating Images (AREA)
  • Image Analysis (AREA)

Abstract

환경 레이아웃들을 결정하기 위한 시스템들 및 기법들이 제공된다. 예를 들어, 환경의 하나 이상의 이미지들 및 하나 이상의 이미지들과 연관된 깊이 정보에 기초하여, 환경에 대응하는 한 세트의 후보 레이아웃들 및 한 세트의 후보 객체들이 검출될 수 있다. 한 세트의 후보 레이아웃들 및 한 세트의 후보 객체들은 구조화된 트리로서 조직화될 수 있다. 예컨대, 한 세트의 후보 레이아웃들 및 한 세트의 후보 객체들에 대응하는 노드들을 포함하는 구조화된 트리가 생성될 수 있다. 구조화된 트리에서 (예컨대, 이를테면, MCTS(Monte-Carlo Tree Search) 알고리즘 또는 적응된 MCTS 알고리즘을 사용한, 구조화된 트리의 탐색에 기초하여) 객체들과 레이아웃들의 조합이 선택될 수 있다. 구조화된 트리에서의 객체들과 레이아웃들의 조합에 기초하여 환경의 3D(three-dimensional) 레이아웃이 결정될 수 있다.

Description

장면 레이아웃 추정
[0001] 본 개시내용들은 일반적으로 이미지들 내의 장면들의 레이아웃들 및 객체들을 추정하는 것에 관한 것으로, 보다 구체적으로는 장면 탐색 기법들을 사용하여 레이아웃 및 객체 추정을 수행하는 것에 관한 것이다.
[0002] 일부 실시예들에서, 이미지에 묘사된 장면 또는 환경의 레이아웃(예컨대, 3D(three-dimensional) 레이아웃) 및 객체들을 추정하기 위한 시스템들 및 기법들이 설명된다. 이미지들(예컨대, RGB(red-green-blue) 이미지들, RGB-D(RGB-Depth) 이미지들 또는 다른 이미지들)로부터의 3D 룸(room) 레이아웃(예컨대, 벽들, 바닥, 천장 등) 및 객체(예컨대, 의자들, 테이블들 등) 추정)은 많은 비전 안내 작업(vision guided task)들, 이를테면 다른 작업들 중에서도, 실내 내비게이션, AR(augmented reality), 로봇 공학, 자동차, 항공, 3차원 장면 이해, 객체 파악, 객체 추적에 유용하다. 예를 들어, 룸의 3D 레이아웃을 아는 것은 로컬화를 위한 안정적인 랜드마크를 제공한다.
[0003] 장면들에 대한 레이아웃 및 객체 추정은 일부 시나리오들에서 어려울 수 있다. 예컨대, 룸 또는 다른 공간 내의 객체들에 의한 폐색들(예컨대, 룸 내의 가구들에 의해 야기되는 폐색들)은 레이아웃 및 객체 추정을 수행할 때 문제들을 야기할 수 있다. 일례로, 환경의 중요한 이미지 특징들, 이를테면 코너들 또는 에지들은 폐색들로 인해 관찰 불가능하거나 부분적으로만 관찰 가능할 수도 있다. 다른 예들에서, 폐색들은 무엇보다도 조명 효과들(예컨대, 무엇보다도, 그림자들, 반사들)을 야기할 수 있고, 벽 및 천장 구역들에서 텍스처들의 결여를 야기할 수 있고, (예컨대, 머신 러닝 접근 방식들의 경우) 제한된 주석의 데이터로 이어질 수 있다.
[0004] 본 명세서에서 설명되는 시스템들 및 기법들은 하나 이상의 이미지들로부터의, 3D 레이아웃 추정을 포함하는 개선된 레이아웃 및 객체 추정을 제공한다. 적어도 하나의 예에 따르면, 하나 이상의 환경 레이아웃들 및 객체들을 결정하는 방법이 제공된다. 이 방법은: 환경의 하나 이상의 이미지들 및 하나 이상의 이미지들과 연관된 깊이 정보에 기초하여, 환경에 대응하는 한 세트의 후보 레이아웃들 및 한 세트의 후보 객체들을 검출하는 단계; 한 세트의 후보 레이아웃들 및 한 세트의 후보 객체들에 대응하는 노드들을 포함하는 구조화된 트리를 생성하는 단계; 구조화된 트리에서 객체들과 레이아웃들의 조합을 선택하는 단계; 및 구조화된 트리에서 객체들과 레이아웃들의 조합에 기초하여 환경의 3D(three-dimensional) 레이아웃을 결정하는 단계를 포함할 수 있다.
[0005] 다른 예에서, 하나 이상의 환경 레이아웃들 및 객체들을 결정하기 위한 장치가 제공된다. 이 장치는 적어도 하나의 메모리, 및 적어도 하나의 메모리에 결합된 (예컨대, 회로로 구현된) 적어도 하나의 프로세서를 포함한다. 적어도 하나의 프로세서는: 환경의 하나 이상의 이미지들 및 하나 이상의 이미지들과 연관된 깊이 정보에 기초하여, 환경에 대응하는 한 세트의 후보 레이아웃들 및 한 세트의 후보 객체들을 검출하고; 한 세트의 후보 레이아웃들 및 한 세트의 후보 객체들에 대응하는 노드들을 포함하는 구조화된 트리를 생성하고; 구조화된 트리에서 객체들과 레이아웃들의 조합을 선택하고; 그리고 구조화된 트리에서 객체들과 레이아웃들의 조합에 기초하여 환경의 3D(three-dimensional) 레이아웃을 결정하도록 구성된다.
[0006] 다른 예에서, 비-일시적 컴퓨터 판독 가능 매체 상에 명령들이 저장되며, 명령들은 하나 이상의 프로세서들에 의해 실행될 때, 하나 이상의 프로세서들로 하여금: 환경의 하나 이상의 이미지들 및 하나 이상의 이미지들과 연관된 깊이 정보에 기초하여, 환경에 대응하는 한 세트의 후보 레이아웃들 및 한 세트의 후보 객체들을 검출하게 하고; 한 세트의 후보 레이아웃들 및 한 세트의 후보 객체들에 대응하는 노드들을 포함하는 구조화된 트리를 생성하게 하고; 구조화된 트리에서 객체들과 레이아웃들의 조합을 선택하게 하고; 그리고 구조화된 트리에서 객체들과 레이아웃들의 조합에 기초하여 환경의 3D(three-dimensional) 레이아웃을 결정하게 한다.
[0007] 다른 예에서, 하나 이상의 환경 레이아웃들 및 객체들을 결정하기 위한 장치가 제공된다. 이 장치는: 환경의 하나 이상의 이미지들 및 하나 이상의 이미지들과 연관된 깊이 정보에 기초하여, 환경에 대응하는 한 세트의 후보 레이아웃들 및 한 세트의 후보 객체들을 검출하기 위한 수단; 한 세트의 후보 레이아웃들 및 한 세트의 후보 객체들에 대응하는 노드들을 포함하는 구조화된 트리를 생성하기 위한 수단; 구조화된 트리에서 객체들과 레이아웃들의 조합을 선택하기 위한 수단; 및 구조화된 트리에서 객체들과 레이아웃들의 조합에 기초하여 환경의 3D(three-dimensional) 레이아웃을 결정하기 위한 수단을 포함한다.
[0008] 일부 양상들에서, 구조화된 트리에서 객체들과 레이아웃들의 조합을 선택하기 위해, 위에서 설명된 방법, 장치들 및 컴퓨터 판독 가능 매체는 MCTS(Monte-Carlo Tree Search) 알고리즘을 사용하여, 구조화된 트리의 탐색을 수행하는 것을 포함할 수 있거나 그러한 탐색에 기반할 수 있다. 일부 예들에서, MCTS 알고리즘은 적응된 MCTS 알고리즘을 포함하며, 적응된 MCTS 알고리즘은 구조화된 트리에서 탐색된 각각의 노드에 적합도(fitness) 값을 할당하고, 적합도 값은 노드와 연관된 객체 및 레이아웃 중 적어도 하나가 환경에 존재할 가능성을 나타낸다. 일부 양상들에서, 위에서 설명된 방법, 장치들 및 컴퓨터 판독 가능 매체는 구조화된 트리의 각각의 노드에 대한 스코어(score)를 생성할 수 있으며, 스코어는 적응된 MCTS 알고리즘에 기반하고, 스코어는 구조화된 트리의 각각의 노드에서 하나 이상의 뷰(view)들에 대해 할당된 가중치, MCTS에 대해 도출된 탐구 항, 및 적합도 값을 포함한다. 일부 예들에서, 가중치는 하나 이상의 뷰들에 대한 뷰 스코어에 적어도 부분적으로 기초하며, 뷰에 대한 뷰 스코어는 뷰와 연관된 노드와 연관된 후보와 뷰와 연관된 하나 이상의 이미지들 및 깊이 정보로부터의 데이터 사이의 일관성 측정을 정의한다.
[0009] 일부 양상들에서, 한 세트의 후보 레이아웃들은 한 세트의 3D 레이아웃 모델들 및 연관된 포즈들을 포함할 수 있고, 한 세트의 후보 객체들은 한 세트의 3D 객체 모델들 및 연관된 포즈들을 포함할 수 있다.
[0010] 일부 양상들에서, 하나 이상의 이미지들은 하나 이상의 RGB(red-green-blue) 이미지들을 포함할 수 있고, 깊이 정보는 환경의 하나 이상의 깊이 맵들을 포함할 수 있다. 일부 경우들에서, 하나 이상의 이미지들 및 깊이 정보는 하나 이상의 RGB-D(RGB-Depth) 이미지들을 포함할 수 있다.
[0011] 일부 경우들에서, 한 세트의 후보 레이아웃들을 검출하는 것은, 하나 이상의 이미지들과 연관된 포인트 클라우드의 시맨틱 세그먼트화에 기초하여, 환경의 벽 및 환경의 바닥 중 적어도 하나에 대응하는 3D 포인트들을 식별하는 것; 3D 포인트들에 기초하여 3D 평면들을 생성하는 것; 3D 평면들 중 적어도 일부 3D 평면들 간의 교차점들에 기초하여 다각형들을 생성하는 것; 그리고 다각형들에 기초하여 레이아웃 후보들을 결정하는 것을 포함할 수 있다.
[0012] 일부 양상들에서, 한 세트의 후보 객체들을 검출하는 것은, 환경에 대해 생성된 포인트 클라우드의 객체들에 대한 3D 바운딩 박스 제안들을 검출하는 것; 그리고 각각의 바운딩 박스 제안에 대해, 데이터세트로부터 한 세트의 후보 객체 모델들을 리트리브하는 것을 포함할 수 있다.
[0013] 일부 경우들에서, 구조화된 트리는 다수의 레벨들을 포함하며, 각각의 레벨은 환경과 연관된 상이한 세트의 양립 불가능한 후보들을 포함한다. 일부 양상들에서, 상이한 세트의 양립 불가능한 후보들은 양립 불가능한 객체들 및/또는 양립 불가능한 레이아웃들을 포함한다. 일부 경우들에서, 상이한 세트의 양립 불가능한 후보들 중 2개 이상의 후보들은, 2개 이상의 후보들이 교차하거나 공간상 이웃들이 아닐 때는 양립 불가능하다.
[0014] 일부 양상들에서, 환경은 3D 장면을 포함한다.
[0015] 일부 양상들에서, 한 세트의 후보 레이아웃들 및 한 세트의 후보 객체들의 각각의 후보는 교차하는 평면들에 대응하는 다각형을 포함한다. 일부 경우들에서, 교차하는 평면들은 하나 이상의 2차원 평면들을 포함한다. 일부 예들에서, 다각형은 3차원 다각형을 포함한다. 일부 양상들에서, 하나 이상의 다각형들은 하나 이상의 3차원 다각형들을 포함한다.
[0016] 일부 양상들에서, 위에서 설명된 방법들, 장치들 및 컴퓨터 판독 가능 매체는 기계 학습 모델을 사용하여 하나 이상의 평면들을 검출하는 것을 더 포함한다.
[0017] 일부 양상들에서, 위에서 설명된 방법들, 장치들 및 컴퓨터 판독 가능 매체는 기계 학습 모델 및 시맨틱 세그먼트화를 사용하여 하나 이상의 평면들을 검출하는 단계를 더 포함한다.
[0018] 일부 양상들에서, 위에서 설명된 방법, 장치들 및 컴퓨터 판독 가능 매체는 환경의 결정된 3D 레이아웃에 기초하여 가상 콘텐츠를 생성하는 것을 포함할 수 있다.
[0019] 일부 양상들에서, 위에서 설명된 방법, 장치들 및 컴퓨터 판독 가능 매체는 환경의 결정된 3D 레이아웃을 컴퓨팅 디바이스와 공유(예컨대, 송신, 업로드 등)하는 것을 포함할 수 있다.
[0020] 일부 양상들에서, 장치들 중 하나 이상은 카메라, 모바일 디바이스(예컨대, 휴대 전화 또는 소위 "스마트폰" 또는 다른 모바일 디바이스), 웨어러블 디바이스, XR(extended reality) 디바이스(예컨대, VR(virtual reality) 디바이스, AR(augmented reality) 디바이스 또는 MR(mixed reality) 디바이스), 개인용 컴퓨터, 랩톱 컴퓨터, 서버 컴퓨터, 차량 또는 컴퓨팅 디바이스 또는 차량의 컴포넌트, 또는 다른 디바이스이고, 그 일부이고, 그리고/또는 이를 포함한다. 일부 양상들에서, 장치는 하나 이상의 이미지들을 캡처하기 위한 카메라 또는 다수의 카메라들을 포함한다. 일부 양상들에서, 장치는 하나 이상의 이미지들, 통지들 및/또는 다른 디스플레이 가능 데이터를 디스플레이 하기 위한 디스플레이를 더 포함한다. 일부 양상들에서, 위에서 설명된 장치들은 하나 이상의 센서들(예컨대, 하나 이상의 IMU(inertial measurement unit)들, 이를테면 하나 이상의 자이로미터들, 하나 이상의 가속도계들, 이들의 임의의 조합, 및/또는 다른 센서)을 포함할 수 있다.
[0021] 이 발명의 내용은 청구 대상의 핵심적인 또는 본질적인 특징들을 확인하는 것으로 의도되는 것도, 청구 대상의 범위를 결정하기 위해 별개로 사용되는 것으로 의도되는 것도 아니다. 청구 대상은 본 특허의 전체 명세서의 적절한 부분들, 임의의 또는 모든 도면들, 및 각각의 청구항에 대한 참조에 의해 이해되어야 한다.
[0022] 전술한 내용은 다른 특징들 및 실시예들과 함께, 다음의 명세서, 청구항들 및 첨부 도면들을 참조할 때 보다 명백해질 것이다.
[0023] 본 출원의 예시적인 실시예들은 다음의 도면들을 참조하여 아래에서 상세히 설명된다:
[0024] 도 1a는 일부 예들에 따라, 입력 이미지로부터 추정된 3D(three-dimensional) 장면을 생성하기 위한 예시적인 프로세스를 예시하는 도면이다.
[0025] 도 1b는 일부 예들에 따른 장면 추정 시스템의 일례를 예시하는 도면이다.
[0026] 도 2a는 일부 예들에 따른, 세그먼트화 맵들 및 깊이 맵들의 예들을 예시하는 이미지들이다.
[0027] 도 2b 내지 도 2d는 일부 예들에 따른, RGB-D(RGB(red-green-blue)-depth) 스캔(scan)들 및 3D 모델들에 대한 다양한 예시적인 난제들을 예시한다.
[0028] 도 3은 일부 예들에 따른, 3D 장면을 이해하기 위한 구조화된 트리 탐색 접근 방식에 대한 예시적인 프로세스를 예시하는 도면이다.
[0029] 도 4는 일부 예들에 따른, 룸 레이아웃 제안들을 생성하기 위한 예시적인 프로세스를 예시하는 도면이다.
[0030] 도 5는 일부 예들에 따른 객체 제안들의 생성에 대한 일례를 예시하는 도면이다.
[0031] 도 6a 및 도 6b는 일부 예들에 따른, 장면에 대해 선택될 수 있는 제안들의 예들을 예시하는 도면들이다.
[0032] 도 7은 일부 예들에 따라 생성된 (구조화된 트리로도 또한 지칭되는) 장면 트리 구조를 도시한다.
[0033] 도 8은 일부 예들에 따른, 구조화된 트리에서 후보 표현들을 찾기 위한 예시적인 MCTS(Monte Carlo Tree Search) 동작들을 예시하는 도면이다.
[0034] 도 9a 내지 도 9e는 일부 예들에 따라, 장면 트리를 효율적으로 탐색하기 위해 사용되는 MCTS에 기초한 적응된 알고리즘으로부터의 예시적인 결과들을 예시한다.
[0035] 도 10a 및 도 10b는 일부 예들에 따라, 자동으로 생성된 레이아웃 및 객체 주석들로부터의 예시적인 결과들과 수동 레이아웃 주석들로부터의 결과들의 비교를 예시한다.
[0036] 도 11은 일부 예들에 따른, 하나 이상의 환경 레이아웃들 및 객체들을 결정하는 프로세스의 일례를 예시하는 흐름도이다.
[0037] 도 12는 하나 이상의 실시예들이 구현될 수 있는 컴퓨팅 시스템의 일례를 예시한다.
[0038] 본 개시내용의 특정 양상들 및 실시예들이 아래에서 제공된다. 이러한 양상들 및 실시예들 중 일부는 독립적으로 적용될 수 있고, 이들 중 일부는 당해 기술분야에서 통상의 지식을 가진 자들에게 명백하듯이, 조합하여 적용될 수 있다. 다음의 설명에서는, 설명의 목적으로, 본 출원의 실시예들의 전반적인 이해를 제공하기 위해 특정 세부사항들이 제시된다. 그러나 다양한 실시예들은 이러한 특정 세부사항들 없이 실시될 수 있음이 명백할 것이다. 도면들 및 설명은 제한적인 것으로 의도되지 않는다.
[0039] 이어지는 설명은 예시적인 실시예들만을 제공하며, 본 개시내용의 범위, 적용 가능성 또는 구성을 제한하는 것으로 의도되지 않는다. 오히려, 예시적인 실시예들의 이어지는 설명은 예시적인 실시예를 구현하기 위한 가능한 설명을 당해 기술분야에서 통상의 지식을 가진 자들에게 제공할 것이다. 첨부된 청구항들에 제시된 바와 같이 본 출원의 사상 및 범위를 벗어나지 않으면서 엘리먼트들의 기능 및 어레인지먼트에 다양한 변경들이 이루어질 수 있다고 이해되어야 한다.
[0040] 하나 이상의 이미지들로부터의 개선된 레이아웃 및 객체 추정을 위한 (본 명세서에서는 집합적으로 "시스템들 및 기법들"로 지칭되는) 시스템들, 장치들, (방법들로도 또한 지칭되는) 프로세스들 및 컴퓨터 판독 가능 매체들이 본 명세서에서 설명된다. 하나의 예시적인 예에서, 하나 이상의 이미지들은 RGB(red-green-blue) 데이터 및 깊이 데이터를 포함할 수 있으며, 이는 일부 경우들에서 RGB-D(RGB-Depth) 이미지들을 포함할 수 있다. 다른 타입들의 이미지들, 이를테면 (픽셀별 루마 또는 휘도 성분(Y) 및 채도 또는 색차 성분들(U, V) 또는 Cb 및 Cr을 포함하는) YUV 또는 YCbCr 이미지들 또는 다른 타입들의 이미지들이 또한 사용될 수 있다. 본 명세서에서는 예시 목적들로 RGB-D 이미지들을 사용하여 예들이 설명되지만, 임의의 타입의 이미지 및 이미지와 연관된 깊이 정보가 본 명세서에서 설명되는 시스템들 및 기법들에 의해 사용될 수 있다.
[0041] 일부 양상들에서, 3D(three-dimensional) 장면 이해를 위해 AI(artificial intelligence) 알고리즘이 사용될 수 있다. 일부 경우들에서, 3D 장면 이해를 위해 AI 알고리즘을 사용하는 것은 트레이닝 데이터에 대한 필요성을 감소시킬 수 있다. 일부 양상들에서, 본 명세서에서 사용되는 AI 알고리즘은 MCTS(Monte Carlo Tree Search) 알고리즘 또는 기법을 포함할 수 있다. 일부 양상들에서, 본 명세서에서 사용되는 AI 알고리즘은 MCTS 알고리즘 또는 기법의 수정을 포함할 수 있다. 예컨대, 레이아웃 및 객체 추정을 효율적으로 수행하기 위해, 3D 장면들을 핸들링할 때 MCTS를 보다 효율적으로 만들도록 표준 MCTS 트리 구성 및 탐구 정책에 대한 변경들이 이루어질 수 있다. AI 알고리즘 또는 기법(예컨대, MCTS 또는 수정된 MCTS 등)은 이미지들(예컨대, 잡음이 있는 RGB-D(RGB(red-green-blue) depth) 스캔들)로부터 공동으로 객체들 및 룸 레이아웃들을 식별하는 데 사용될 수 있다.
[0042] 일반적으로, MCTS는 복잡한 지각 문제들을 1인용 게임들과 같은 특정 애플리케이션들에 캐스팅함으로써 이러한 문제들에 사용될 수 있다. 레이아웃 복구를 위한 그래프 기반 방법들과는 대조적으로, MCTS는 임의의 손실을 최적화할 수 있다. 일부 경우들에서, 본 명세서에 설명되는 MCTS 또는 수정된 MCTS 기법들은 객체들 및 룸 레이아웃 가설들의 사후 확률을 최적화하는 데 사용될 수 있다. 이는, 추정된 3D 레이아웃들 및 객체들을 갖는 장면들의 렌더링들을 생성하고 렌더링들을 장면들의 RGB-D 이미지들/관찰들과 비교함으로써 솔루션 공간을 탐구하는, 분석/합성(analysis-by-synthesis) 접근 방식을 야기한다.
[0043] 역 렌더링(inverse-rendering)으로 또는 렌더링-비교(render-and-compare)로도 또한 지칭되는 분석/합성은 이미지들로부터의 장면 이해를 위한 컴퓨터 비전의 개념이다. 장면 표현에 대한 현재 추정의 렌더링을 관찰된 이미지들과 비교함으로써, 이 추정을 개선하는 것이 가능할 수 있다. 분석/합성 접근 방식들의 잠재성은, 제1 추정치 및 업데이트 규칙을 예측하도록 학습함으로써 이러한 아이디어를 활용하는 심층 학습 아키텍처(deep learning architecture)들에 의해 관찰될 수 있다.
[0044] 분석/합성 심층 학습 접근 방식들은 입력 이미지들에 특정한 조건들에 적응할 수 있기 때문에, 이러한 접근 방식들은 직접 추론 방법들보다 더 나은 일반화들을 제공할 수 있고 더 적은 트레이닝 데이터를 필요로 할 수 있다. 일부 방법들은 자기 지도형(self-supervised) 또는 약지도형(weakly supervised)인데, 이는 주석이 달린 3D 트레이닝 데이터를 생성하는 것이 매우 번거로워지기 때문에 유리할 수 있다. 그러나 일부 방법들은 장면의 작은 부분들로 제한될 수 있고, 한 번에 하나의 객체를 고려할 수 있다. 이는, 객체 폐색들 및 상호 작용들이 무시되어 실제 장면들이 매우 복잡할 수 있기 때문에, 제한 팩터가 될 수 있다.
[0045] 위에서 언급된 바와 같이, 본 명세서에서 설명되는 시스템들 및 기법들은 장면 레이아웃들을 추정하고 장면들 내의 객체들의 배치(예를 들어, 위치 및 포즈 등)를 추정하기 위해 MCTS를 적용할 수 있다. MCTS는 하나 이상의 애플리케이션들에 사용될 수 있는 이산 AI 알고리즘이다. 하나의 예시적인 예에서, MCTS는 게임들을 하는 것을 학습하는 데 사용될 수 있다. 예컨대, MCTS는 바둑(Go) 및 체스와 같은 상이한 2인용 게임들에 대해 초인적인 성능을 달성하는 알고리즘인 알파고(AlphaGo) 및 알파제로(AlphaZero)의 컴포넌트일 수 있다. 임의의 주어진 애플리케이션에 대해, (1인용) 게임으로서의 지각을 확인하는 것이 가능하며, 여기서 목표는 장면을 설명하는 정확한 3D 엘리먼트들을 식별하는 것이다. 안내를 위한 감독의 부재 시에, 오픈 월드에서의 이러한 식별 프로세스는 매우 복잡한 작업이 될 수 있다. 장면들의 일부 예들에서, 탐색 공간은 2 N , N의 크기를 가질 수 있으며, 여기서 N은 100 내지 1000의 자릿수를 갖는다. 그러한 경우들에서, 탐색 문제가 포괄적인 평가를 하기에는 너무 큰 트리 구조로 조직화될 수 있는 경우, MCTS가 양호한 옵션일 수 있다. MCTS는 지금까지 발견된 최상의 솔루션을 리턴하기 위해 언제든지 인터럽트될 수 있으며, 이는 일부 애플리케이션들(예컨대, 로봇 애플리케이션들, 증강 현실 또는 가상 현실 등과 같은 XR(extended reality))에 유용할 수 있다.
[0046] MCTS는 미분 가능한 손실들일 필요는 없는 일반적인 손실 함수들을 최적화하는 데 사용될 수 있다. 따라서 시스템은 일부 분석/합성 접근 방식들에서와 같이 Bayesian 프레임워크로부터 직접적으로 도출된 손실 함수에 의존할 수 있다. 손실 함수는 추정치의 (현실적일 수 있지만 반드시 그럴 필요는 없는) 렌더링을 입력 이미지들과 비교할 수 있고 장면 엘리먼트들 간의 제약들을 통합할 수 있다. 이는 관찰들에 대한 가능한 설명들을 탐구하는 분석/합성 방법으로 MCTS를 전환하며, 설명이 유망하지 않을 때, 가능하게는 더 양호한 설명들로 역추적한다. MCTS의 하나의 예시적인 장점은, MCTS가 가장 유망한 브랜치들에 초점을 맞출 수 있다는 것이며, 이는 높은 결합 복잡도를 갖는 문제들에 대해서도 양호한 솔루션들을 찾는 것을 효율적으로 만든다.
[0047] 원칙적으로, 시스템들 및 기법들은 MCTS(예컨대, 1인용 MCTS)를 장면 이해 문제에 직접 적용할 수 있으며, 여기서 하나의 액션(예컨대, 하나의 움직임)은 제안을 선택하는 것에 대응할 수 있다. MCTS의 목표는 시퀀스에서 제안들을 선택함으로써 장면을 설명하는 것일 수 있다. 일부 경우들에서, 표준 MCTS 알고리즘을 사용하는 것은 특히 효율적이지 않을 수 있다. 정확한 솔루션을 획득하는 데 있어 장면 이해 솔루션을 보다 효율적으로 만들기 위해 표준 MCTS 알고리즘에 대한 수정들이 이루어질 수 있다. 예를 들어, 솔루션 트리는 제안들 사이의 물리적 제약들에 기초하여 구조화될 수 있다. 이미 선택된 제안들로부터 가장 멀리 있는 제안들뿐만 아니라, 예를 들어, 제안들이 이러한 제안들 중 적어도 하나와 교차한다면, 이미 선택된 제안들과 양립 불가능한 그러한 제안들이 프루닝(prune)될 수 있다. MCTS에 대한 이러한 수정들은 정확한 솔루션에 대한 탐색을 상당히 가속시킬 수 있다. 추가로, MCTS가 최적화를 위한 목적 스코어에 기초하여 더 많은 탐구/활용의 우선순위를 정할 수 있는 한편, 제안이 솔루션을 국소적으로 어떻게 개선하는지에 기초하여 스코어가 사용될 수 있다. 이는 장면 구조에서 세부사항들의 리트리브를 개선한다.
[0048] 일부 경우들에서, 본 명세서에 설명되는 시스템들 및 기법들은 그래프 최적화에 기반한 방법들에 관련될 수 있다. 이러한 방법들은 단항 및 이진 항들로 이루어진 목적 함수들에 의존하는데, 이는 이러한 함수들이 그래프 알고리즘들로 효율적으로 최적화될 수 있기 때문이다. 그러나 이러한 효율성은 문제의 덜 일반적인 공식화의 대가를 치른다. MCTS를 사용하는 하나의 예시적인 이점은 임의의 목적 함수가 사용될 수 있다는 것이다. 이는, 개별 객체들에 대한 합 대신에 모든 객체들을 동시에 수반하고, 단지 2개 대신에 다수의 객체들 간의 제약들을 수반하는 목적 손실이 사용될 수 있게 한다.
[0049] 일부 예들에서, 본 명세서에 개시된 시스템들 및 기법들은 이용 가능한 수동 주석들보다 더 정확할 수 있는 고품질 솔루션들을 결정할 수 있다. 하나의 가능한 용도는 3D 주석들을 자동으로 생성하기 위해 시스템들 및 기법들을 사용하는 것이다. 하나의 예시적인 예에서, 3D 주석들은 단일 이미지들로부터의 빠른 추론을 위한 심층 학습 방법들을 트레이닝하는 데 사용될 수 있다. 보다 일반적으로, 개시된 시스템들 및 기법들은 지각 문제들에 대한 새로운 장소들뿐만 아니라 지각과 제어 사이의 통합된 아키텍처로 이어질 수 있다. 예를 들어, 시스템들 및 기법들은 특히, (예컨대, 장면 내의 객체들에 가상 객체들을 앵커하기 위해, 맵들을 생성하기 위해 등을 위해) 로봇 모션 계획 제어, XR 기반 장면 이해 또는 매핑에 MCTS 또는 수정된 MCTS를 적용할 수 있다.
[0050] 일부 예들에서, 시스템들 및 기법들은 벽들, 바닥들 및 천장들과 같은 레이아웃 컴포넌트들의 위치를 재구성하기 위해 (예컨대, MCTS 또는 수정된 MCTS의 사용에 기초하여 결정된) 룸 레이아웃 추정을 사용할 수 있다. 일반적으로, 레이아웃 컴포넌트들이 종종, 룸 내의 가구에 의해 부분적으로 또는 완전히 가려지기 때문에, 룸 레이아웃 추정 작업은 매우 난제일 수 있다. 직육면체 가정은 레이아웃들이 박스의 형상이 되도록 제약하며, 싱글뷰(single-view) 룸 레이아웃 추정을 위해 가정될 수 있다. Manhattan 가정은 사전에 다소 완화되고, 이웃하는 레이아웃 컴포넌트들이 서로 직교하도록 강제한다. 파노라마 이미지들 및 포인트 클라우드들로부터 레이아웃들을 복원하는 일부 예시적인 방법들은 그러한 사전 지식(prior)에 의존할 수 있다.
[0051] 이러한 가정들은 레이아웃 추정 작업을 훨씬 더 쉽게 만들지만, 이들은 그러한 방법들이 적용될 수 있는 레이아웃 구성들의 양을 상당히 제한한다. 이러한 주석들을 극복하기 위한 하나의 방법은 지도 심층 학습을 통하는 것이다. 그러나 대규모 데이터세트들은 통상적으로 직육면체 또는 Manhattan 제약들로 제한되며, 작은 레이아웃 구조들에 주석을 다는 프로세스는 지루한 것일 수 있다. 이는 일반적인 레이아웃들에 대해 심층 학습 방법들을 견고하게 만드는 문제를 훨씬 더 어렵게 만든다.
[0052] 레이아웃 추정을 위한 특정 포인트 클라우드 기반 방법들과 대조적으로, 개시된 시스템들 및 기법들은 다양한 타입들의 데이터세트들에, 이를테면 불완전하고 잡음이 있는 스캔들(예컨대, ScanNet 데이터세트에 의해 제공되는 스캔들)에 적용될 수 있는데, 이는 개시된 접근 방식들이 포인트 클라우드 데이터만으로는 달성하기 어려운 잘못된 제안들을 렌더링-비교 방식으로 처리할 수 있기 때문이다.
[0053] 일부 레이아웃 제안 생성 시스템들은 Manhattan 레이아웃으로 제한된다. 예컨대, 일부 레이아웃 제안 생성 시스템들은 싱글뷰 설정에서 제안들을 검출하고, 렌더링-비교 접근 방식을 사용하여 레이아웃을 리트리브한다. 그러나 그러한 시스템들은 포괄적 탐색을 사용하여 솔루션을 찾는다. 본 명세서에서 설명되는 장면 구조 및 MCTS 기반 탐색 접근 방식은 이러한 싱글뷰 설정들에서도 효율을 상당히 개선하는 데 이용될 수 있다.
[0054] 일부 예들에서, 본 명세서에서 설명되는 시스템들 및 기법들은 이를테면, RGB 및 깊이 데이터로부터의 3D 객체 검출 및 모델 리트리브를 위해 적용될 수 있다. 일부 예들은 확률적 프레임워크에서 객체-객체 관계들을 모델링함으로써 RGB-D 이미지에서 다수의 객체들에 대한 3D 바운딩 박스들을 예측할 수 있다. 일부 예들에서, 수작업으로 제작된 특징들을 갖는 슬라이딩 형상들은 RGB-D 이미지로부터 3D 바운딩 박스들을 예측하고 나중에 이를 심층 특징들로 확장하는 데 사용될 수 있다. 일부 예들은 스캔 포인트 클라우드로부터 3D 바운딩 박스 제안들을 생성하기 위해 Hough 투표 방식을 사용할 수 있다. 일부 경우들에서, 하나 이상의 뷰들로부터의 RGB 특징들은 객체의 3D 바운딩 박스들, 객체의 객체성 스코어 및 카테고리를 예측하기 위해 장면의 포인트 클라우드 또는 복셀 그리드로부터의 특징들과 조합될 수 있다.
[0055] 레이아웃 및 객체들, 이를테면 생성적 방법들 및 판별 모델들을 공동으로 재구성하려고 시도하는 방법들의 하나 이상의 분류들이 고려될 수 있다. 생성 모델들은 여러 사전 지식들을 통합함으로써 장면의 보다 상세한 시맨틱 추론을 가능하게 한다. 판별 모델들은 암시적 시맨틱 구조를 학습하기 위해 큰 트레이닝 데이터에 의존하며, 입력 장면이 트레이닝 장면들과 매우 상이하다면 타당하지 않은 출력들을 생성하는 것으로 알려져 있다.
[0056] 완전한 장면 재구성을 위해 여러 생성적 방법들에서 분석/합성 기법들이 사용될 수 있다. 일부 예들은 직육면체 가정 하에서 룸 레이아웃을 추정하고, 입력 RGB 이미지 및 렌더링된 이미지로부터 추출된 컨볼루션 특징들의 코사인 거리를 최소화함으로써 장면에서 다수의 객체들의 정렬을 최적화할 수 있다. 일부 예들은 3D 장면을 구문 분석 그래프로 조직화하고 사전 지식 항들과 함께 이미지 및 깊이 데이터의 가능성을 최대화하는 것으로 문제를 형식화할 수 있다. 일부 경우들에서, 3D 기하학적 문구들은 객체들 사이의 3D 기하학적 및 정황적 상호 작용들 모두를 인코딩하는 데 사용될 수 있다. 일부 예들은 인간-객체, 객체-객체 및 객체-레이아웃 관계들을 이들의 사전 지식 항들로 인코딩할 수 있고, Markov Chain Monte Carlo 방법의 변형들을 사용하여 최적의 레이아웃 및 객체 구성들을 탐색할 수 있다.
[0057] 앞서 말한 예들 중 일부는 레이아웃들에 대한 특정 가정들(예컨대, 직육면체 가정)로 정확한 객체 및 레이아웃 정렬들을 획득하는 것에 초점을 맞출 수 있지만, 본 명세서에서 설명되는 시스템들 및 기법들은 제안들의 큰 풀(pool)로부터 각각의 객체에 대한 최적의 모델(예컨대, 최적의 CAD 모델)을 리트리브할 수 있으며, 어떠한 가정들도 하지 않고 복잡한 레이아웃 세부사항들을 복원할 수 있다. 예컨대, 일부 경우들에서, 시스템들 및 기법들은 단일 RGB-D 이미지에서 레이아웃 컴포넌트들 및 객체들에 대한 제안들을 생성할 수 있다. 시스템들 및 기법들은 이미지(예컨대, RGB 이미지) 및 이미지와 연관된 깊이 정보(예컨대, 깊이 이미지 또는 이미지에 포함된 깊이 정보, 이를테면 RGB-D)에 대해 정의된 피팅 비용(fitting cost)을 최소화하는 최적 세트의 제안들을 추정할 수 있다. 일부 경우들에서, 예제 기반 모델 리트리브 방법이 사용될 수 있다. 예컨대, 예제 기반 모델 리트리브 방법은 한 세트의 트레이닝 데이터의 크기에 의해 제한될 수 있고, 힐 클라이밍(hill-climbing) 기법을 사용하여 최적화를 수행할 수 있으며, 이는 국소적 최적해들(local optima)에 취약하고 더 큰 탐색 공간들로 잘 스케일링되지 않는다. 일부 경우들에서, 본 명세서에서 설명되는 시스템들 및 기법들은 합성 데이터를 사용하여 장면(예컨대, 전체 장면)에 대한 다수의 객체 제안들(예컨대, 수백 또는 일부 예들에서는 더 많은 또는 더 적은 객체 제안들)을 생성할 수 있고, (예컨대, 제안들의 큰 풀로도) 잠재적으로 전역적 최적해를 찾을 수 있는 보다 구조적인 그리고 최적의 탐색 방법에 의존할 수 있다. 그러한 시스템들 및 기법들은 또한 레이아웃 구성들에 대해 어떠한 가정도 하지 않으면서 보다 상세한 레이아웃들이 리트리브될 수 있게 한다.
[0058] 일부 경우들에서, 판별적 접근 방식들은 트레이닝 데이터에 의해 제한될 수 있으며, 이는 완전한 장면들에 대해 획득하기 어려울 수 있다. 객체들 및 레이아웃들에 대한 단순한 직육면체 표현들로부터 완전한 CAD 모델 주석들까지의 상이한 데이터세트들이 사용될 수 있다. 풍부하고 현실적인 3D 환경들을 갖는 합성 데이터세트들이 또한 사용될 수 있다. 일부 예들은, 파노라마 이미지 내의 객체들 및 레이아웃들에 대한 여러 3D 바운딩 박스 가설들을 생성하는 것, 그리고 이들을 전체적으로 랭크(rank)하기 위해 SVM(support vector machine)을 트레이닝하는 것을 포함할 수 있다. 일부 예들은 단일 RGB 이미지에서 레이아웃 및 객체들에 대한 바운딩 박스들을 공동으로 추정하기 위해 협력 손실들을 사용하는 것을 포함할 수 있다. 일부 예들은 객체들의 포즈들 및 레이아웃에 대한 깊이 맵과 함께 객체들에 대한 기준 복셀 표현을 예측하는 것을 포함할 수 있다. 일부 예시적인 접근 방식들은 단일 RGB 이미지에서 각각의 객체에 대한 메시를 추정할 수 있다.
[0059] 접근 방식들의 일부 예시들은 RGB-D 스캔들로부터 레이아웃 및 객체들을 추정하는 것, 그리고 코너들, 에지들 및 쿼드(quad)들을 예측하고, 프록시 손실을 통해 객체-객체 및 객체-레이아웃 일관성을 시행함으로써 레이아웃 추정에 대한 계층적 접근 방식을 따르는 것을 포함할 수 있다. 일부 예들에서, 본 명세서에서 설명되는 시스템들 및 기법들은 상향식 접근 방식과 하향식 접근 방식의 조합을 사용할 수 있으며, 여기서 포인트 클라우드의 저레벨 데이터로부터 레이아웃 컴포넌트들 및 객체들에 대한 여러 제안들이 생성될 수 있고, 장면을 표현하거나 설명하는 제안들의 최상의 서브세트를 획득하기 위해 물리적 타당성 제약들과 함께 이미지 및 깊이 데이터에서 전체적으로 명시적 추론이 사용될 수 있다.
[0060] 시스템들 및 기법들은 특정 데이터세트(예컨대, ScanNet 데이터세트)에 대해 구현될 수 있으며, 이는 시스템들 및 기법들을 사용하여 생성된 결과들이 여러 객체 카테고리들에 대해 다른 접근 방식들을 능가한다는 것을 보여주는 데 사용될 수 있다. 예를 들어, 현실적인 조건들에서 3D 장면 이해를 위해 MCTS가 어떻게 거동하는지를 평가하기 위해, ScanNet 데이터세트가 고려될 수 있다. 시스템은 장면 내의 객체들(예컨대, 가구)에 대한 그리고 장면의 레이아웃들(예컨대, 벽들, 바닥들, 천장들 등)에 대한 3D 모델들을 리트리브하는 것을 목표로 할 수 있다. 가능한 3D 모델들에 대한 제안들은 이미지들의 시퀀스(예컨대, RGB-D 이미지들의 시퀀스)로부터 생성된 포인트 클라우드를 사용하여 생성될 수 있다. 이미지들의 시퀀스에서 장면을 가장 잘 설명하는 제안들의 조합을 결정하기 위해 MCTS(또는 수정된 MCTS)가 적용될 수 있다. 일부 경우들에서, 3D 장면 추정치들과 포인트 클라우드 간의 비교는 3D로 직접 수행될 수 있다. 그러나 일부 경우들에서, 실제 장면의 부분들이 포인트 클라우드에서 누락될 수 있다. 예를 들어, 장면의 부분들이 스캔되지 않을 수 있거나, 또는 RGB-D 카메라(또는 다른 타입의 이미지 및/또는 깊이 센서)가 장면의 특정 부분들(예컨대, 어두운 자료들, 반사성 자료들에 대응하는 장면의 부분들, 또는 장면의 다른 부분들)에 대한 깊이 값들을 리턴하지 않을 수 있다. 일부 경우들에서, 장면 추정들이 렌더링되어 RGB-D 프레임들과 비교될 수 있다. 이는 시스템이 색 및 깊이 정보 모두를 효율적으로 활용할 수 있게 한다. 색 정보는 이미지들의 시맨틱 세그먼트화를 획득하는 데 사용될 수 있으며 투사된 객체들의 마스크들과 비교될 수 있는데, 이는 현실적인 렌더링에 대한 필요성을 피할 수 있다.
[0061] 데이터세트에 대한 분석에 기초하여, 본 명세서에서 설명되는 시스템들 및 기법들은 일부 수동 주석들보다 더 양호한 구성들을 리트리브할 수 있다. 위에서 언급된 바와 같이, 설명되는 시스템들 및 기법들은 3D 주석들을 자동으로 생성하는 데 사용될 수 있다. 3D 주석들, 이를테면 더 양호한(예컨대, 더 효율적인, 더 빠른 등의) 추론을 위해 심층 학습 접근 방식들을 트레이닝하는 데 사용되는 합성 트레이닝 입력이 다양한 목적들에 사용될 수 있다.
[0062] MCTS의 개요가 본 명세서에서 제공된다. MCTS는 트리 탐색으로서 형식화될 수 있는 높은 복잡도의 문제들을 효율적으로 해결하는 일반적인 알고리즘이다. MCTS는 트리 전체에 걸쳐 경로들을 샘플링하고 이러한 경로들의 스코어들을 평가함으로써 이를 수행한다. 루트 노드만을 포함하는 트리에서 시작하여, 이 트리는 가장 유망한 방향들로 점진적으로 확장된다.
[0063] 가장 유망한 솔루션들(예컨대, 루트 노드로부터 리프(leaf) 노드까지의 경로들)을 식별하기 위해, 각각의 노드(N)는 각각의 노드가 방문한 횟수 n(N)과 "시뮬레이션들" 동안 컴퓨팅된 게임 스코어들과의 합 Q(N)을 저장한다. 노드에서 시작하는 순회는 높은 스코어를 갖는 이미 방문한 노드로 계속하는 것(활용) 또는 새로운 노드를 시도하는 것(탐구)을 택할 수 있다. 활용을 엄격하게 시행하는 것은 국부적 최대치들로 이어질 것이므로, MCTS는 활용과 탐색의 균형을 맞추는 전략들에 의존한다. MCTS는 다수의 트리 순회들에 걸쳐 반복하는데, 각각 선택 단계, 확장 단계, 시뮬레이션 단계 및 업데이트 단계를 포함하는 4개의 연속적인 단계들이 루트 노드로부터 수행된다. 이러한 단계들은 아래에서 보다 상세히 설명된다. 본 명세서의 실례가 되는 예시적인 문제에 대응하는, 1인용 비랜덤 MCTS에 대한 의사 코드의 일례가 아래의 알고리즘 1에서 주어진다:
[0064] 선택 ― 이 단계는 현재 노드(N curr )의 자식들 중에서 순회할 트리의 다음 노드를 선택한다. 하나 또는 여러 자식들에 아직 방문하지 않았다면, 그들 중 하나가 랜덤으로 선택되고, MCTS는 확장 단계로 이동한다. 모든 자식들에 적어도 한번 방문했다면, 어떤 기준에 기초하여 다음 노드가 선택된다. 활용과 탐구의 균형을 맞추기 위한 가장 대중적인 기준은 다음을 취하는 UCB(Upper Confidence Bound)이며:
식(1)
[0065] 여기서 C(N curr )은 현재 노드에 대한 자식 노드들의 세트이다. 이 경우, 선택된 노드는 선택 단계를 반복하기 전에 N curr 에 할당된다. 2인용 게임들은 일반적으로 최대치보다는 평균 값을 고려하며, 이는 이 경우에서와 같이 1인용 게임들에 더 적응됨을 주목한다. 이는, 시스템이 1인용 게임들에서 상대의 움직임들의 불확실성을 고려할 필요가 없으며, 이는 게임 스코어를 보다 신뢰할 수 있게 하기 때문이다.
[0066] 확장 ― 이 단계는, 선택된 노드에 처음 방문할 때, 선택된 노드를 트리에 추가함으로써 트리를 확장시킨다.
[0067] 시뮬레이션 ― 새로운 노드를 추가한 후에, 새로운 노드에 스코어를 할당하고, 반복에 걸쳐 모든 방문된 노드들의 스코어들을 업데이트하도록 많은 "시뮬레이션들"이 실행된다. 각각의 시뮬레이션은 새로운 노드로부터 리프 노드, 예컨대 게임의 종료까지 랜덤으로 선택된 경로를 따른다.
[0068] 업데이트 ― 시뮬레이션들로부터 시뮬레이션 스코어가 컴퓨팅된다. 1인용 게임들의 경우, 이는 일반적으로, 최상의 시뮬레이션에 의해 게임의 종료 시에 획득된 스코어로서 취해진다. 이 스코어는 새로운 노드에 저장된 Q 값을 초기화하는 데 사용되고, 반복 동안 선택된 다른 노드들의 Q에 추가된다.
[0069] 그런 다음, 업데이트된 스코어들을 사용하여 다음 MCTS 반복이 트리를 순회할 것이다.
[0070] 선택된 수의 반복들 후에, 비랜덤 1인용 게임들 또는 다른 애플리케이션들의 경우, 알고리즘에 의해 리턴된 솔루션은 게임에 대한 최상의 스코어를 획득한 시뮬레이션이다.
[0071] 일부 예시적인 접근 방식들이 아래에서 추가로 설명된다. 일부 예들에서, 제안들을 생성하기 위한 예들 및 양호한 솔루션들을 효율적으로 리트리브하도록 MCTS를 적응시키기 위한 예들과 함께, 형식화가 제공된다.
[0072] 도 1a는 입력 이미지(102)로부터 추정된 3D 장면(108)을 생성하기 위한 예시적인 프로세스를 예시하는 도면이다. 입력 이미지(102)는 픽셀별 깊이 정보 및 적색, 녹색 및 청색 색성분들을 갖는 장면의 RGB-D 스캔 또는 이미지, 또는 다른 적절한 이미지를 포함할 수 있다. 입력 이미지(102)는 장면의 레이아웃(104) 및 객체들(106)을 예측하는 데 사용될 수 있다. 일부 예들에서, 장면은 실내 공간을 포함할 수 있다. 일부 예들에서, 하나 이상의 RGB-D 이미지들은 3D 스캔(예컨대, 입력 이미지(102))을 생성하는 데 사용될 수 있으며, 이는 레이아웃(104) 및 객체들(106)을 예측하는 데 사용될 수 있다. 일부 경우들에서, 시각적 주행 거리 측정 또는 SLAM(simultaneous localization and mapping) 기법들 및 RGB-D 센서들로 실내 장면의 RGB-D 스캔들이 획득될 수 있다.
[0073] 일부 예들에서, 레이아웃은 3D 다각형들로서 표현된 공간의 벽들 및 바닥들을 포함할 수 있다. 객체들은 이들의 3D 포즈들(예컨대, 3D 회전 및 3D 평행이동)과 함께 이들의 3D 모델들에 의해 표현될 수 있다. 일부 경우들에서, 생성되는 3D 장면은 추정된 객체들(106) 및 장면 상에 오버레이된 레이아웃(104)을 포함할 수 있다.
[0074] 일부 예들에서, 본 명세서에서 설명되는 프로세스들 및 기법들은 정의된 구조(예컨대, 하나 이상의 바닥들, 천장들, 벽들 및/또는 다른 객체들에 의해 정의된 구조)를 갖는 룸 또는 다른 환경의 3D 컴포넌트들(예컨대, 3D 레이아웃, 객체들 등)을 결정하는 데 사용될 수 있다. 예컨대, 아래에서 보다 상세히 설명되는 바와 같이, 기법들은 입력 이미지에 묘사된 환경의 평면들을 검출 및/또는 세그먼트화할 수 있다. 일부 경우들에서, 특정 정의된 레이아웃 컴포넌트들 또는 객체들 중 어느 것에도 속하지 않는 평면들은 폐기될 수 있다. 하나의 예시적인 예에서, 환경 내의 바닥, 천장, 벽들 및/또는 다른 객체들에 대응하는 평면들은 유지되는 한편, 다른 객체들 또는 컴포넌트들에 대응하는 평면들은 폐기된다. 일부 예들에서, 나머지 평면들에 대한 3D 파라미터들이 계산될 수 있고, 파라미터들에 기초하여 평면 교차점들이 결정된다. 평면 교차점들은 룸 레이아웃에 대한 후보 다각형들의 꼭짓점들을 표현할 수 있다. 예컨대, 코너들 및 에지들(또는 경계들)은 평면들의 교차점들에 기초하여 식별될 수 있다. 기법들은 코너들 및 에지들에 기초하여 다각형들을 결정할 수 있다. 예컨대, 이미지에 대한 레이아웃 다각형들의 최적의 세트를 찾기 위해 탐색(예컨대, 분석/합성 접근 방식)이 수행될 수 있다. 환경의 3D 레이아웃은 다각형들에 기초하여 결정될 수 있다.
[0075] 일부 예들에서, 본 명세서에서 설명되는 프로세스들 및 기법들은 예를 들어 그리고 제한 없이, 특히, 증강 현실, 로봇 내비게이션, 자율 주행 등과 같은 다양한 애플리케이션들에 대해 사용될 수 있다.
[0076] 도 1b는 예시적인 장면 추정 시스템(120)을 예시하는 도면이다. 장면 추정 시스템(120)은 하나 이상의 이미지 센서들(124), 저장소(126) 및 (도 1b에 도시된 점선 윤곽으로 표시된) 선택적인 하나 이상의 깊이 센서들(122), 프로세싱 시스템(130), 평면 검출 엔진(150), 파라미터 결정 엔진(154) 및 다각형 결정 엔진(156)을 포함한다. 일부 예들에서, 평면 검출 엔진(150)은 하나 이상의 신경망들 및/또는 다른 기계 학습 시스템들을 포함할 수 있는 기계 학습 시스템(152)을 포함한다.
[0077] 프로세싱 시스템(130)은 예를 들어 그리고 제한 없이, CPU(central processing unit)(132), GPU(graphics processing unit)(134), DSP(digital signal processor)(136), ISP(image signal processor)(138), 캐시 메모리(160) 및/또는 메모리(162)를 포함하는 컴포넌트들을 포함할 수 있으며, 프로세싱 시스템(130)은 이들을 사용하여 본 명세서에서 설명되는 동작들 중 하나 이상을 수행할 수 있다. 예컨대, CPU(132), GPU(134), DSP(136) 및/또는 ISP(138)는 전자 회로들 또는 다른 전자 하드웨어, 이를테면 하나 이상의 프로그래밍 가능 전자 회로들을 포함할 수 있다. CPU(132), GPU(134), DSP(136) 및/또는 ISP(138)는 본 명세서에서 설명되는 다양한 동작들을 수행하도록 컴퓨터 소프트웨어, 펌웨어, 또는 이들의 임의의 조합을 구현 또는 실행할 수 있다. 소프트웨어 및/또는 펌웨어는, 컴퓨터 판독 가능 저장 매체 상에 저장되고 그리고 프로세싱 시스템(130)의 하나 이상의 프로세서들에 의해 실행 가능한 하나 이상의 명령들을 포함할 수 있다. 일부 경우들에서, CPU(132), GPU(134), DSP(136) 및/또는 ISP(138) 중 하나 이상은 평면 검출 엔진(150), 파라미터 결정 엔진(154) 및/또는 다각형 결정 엔진(156)을 구현할 수 있다. 일부 예들에서, 프로세싱 시스템(130)은 도 1b에 도시되지 않은 하나 이상의 컴퓨팅 엔진들을 구현한다는 것이 주목되어야 한다. 평면 검출 엔진(150), 파라미터 결정 엔진(154) 및 다각형 결정 엔진(156)은 예시 및 설명을 목적으로 본 명세서에서 제공되며, 다른 가능한 컴퓨팅 엔진들은 단순화를 위해 도시되지 않는다.
[0078] 장면 추정 시스템(120)은 컴퓨팅 디바이스 또는 다수의 컴퓨팅 디바이스들의 일부이거나 또는 컴퓨팅 디바이스 또는 다수의 컴퓨팅 디바이스들에 의해 구현될 수 있다. 일부 예들에서, 장면 추정 시스템(120)은 전자 디바이스(또는 디바이스들), 이를테면 모바일 디바이스(예컨대, 스마트폰, 셀룰러 전화 또는 다른 모바일 디바이스), 카메라 시스템 또는 디바이스(예컨대, 디지털 카메라, 카메라 폰, 비디오 폰, IP 카메라, 비디오 카메라, 보안 카메라 또는 다른 카메라 시스템 또는 디바이스), 랩톱 또는 노트북 컴퓨터, 태블릿 컴퓨터, 셋톱 박스, 텔레비전, 디스플레이 디바이스, 디지털 미디어 플레이어, 게이밍 콘솔, 비디오 스트리밍 디바이스, 확장 현실 디바이스(예컨대, VR(virtual reality), AR(augmented reality) 및/또는 MR(mixed reality)을 렌더링하기 위한 HMD(head-mounted display), AR 안경류 또는 다른 확장 현실 디바이스), HUD(heads-up display), 드론, 차량(예컨대, 자율 주행 차량 또는 인간 구동 차량) 내의 컴퓨터 시스템, IoT(Internet-of-Things) 디바이스, 스마트 웨어러블 디바이스, 또는 임의의 다른 적절한 전자 디바이스(들)의 일부일 수 있다.
[0079] 일부 구현들에서, 하나 이상의 깊이 센서들(122), 이미지 센서(124), 저장소(126), 프로세싱 시스템(130), 평면 검출 엔진(150), 파라미터 결정 엔진(154) 및 다각형 결정 엔진(156)은 동일한 컴퓨팅 디바이스의 일부일 수 있다. 예를 들어, 일부 경우들에서, 하나 이상의 깊이 센서들(122), 이미지 센서(124), 저장소(126), 프로세싱 시스템(130), 평면 검출 엔진(150), 파라미터 결정 엔진(154) 및 다각형 결정 엔진(156)은 카메라, 스마트폰, 랩톱, 태블릿 컴퓨터, 스마트 웨어러블 디바이스, HMD, AR 안경류, IoT 디바이스, 게이밍 시스템 및/또는 임의의 다른 컴퓨팅 디바이스에 통합될 수 있다. 그러나 일부 구현들에서, 깊이 센서(122), 이미지 센서(124), 저장소(126), 프로세싱 시스템(130), 평면 검출 엔진(150), 파라미터 결정 엔진(154) 및 다각형 결정 엔진(156) 중 하나 이상은 2개 이상의 개별 컴퓨팅 디바이스들의 일부일 수 있거나 2개 이상의 개별 컴퓨팅 디바이스들에 의해 구현될 수 있다.
[0080] 장면 추정 시스템(120)은 환경의 3D 레이아웃을 추정하는 데 개선된 접근 방식을 제공할 수 있다. 예를 들어, 장면 추정 시스템(120)은 본 명세서에서 추가로 설명되는 바와 같이, 장면 이해를 위해 MCTS 또는 적응된 MCTS를 사용할 수 있다. 다른 예로서, (RoomNet에서와 같이) 코너들 또는 경계들을 검출하는 대신에, 평면 검출 엔진(150)은 환경에서 평면들을 검출할 수 있다. 일부 경우들에서, 환경 내의 특정 레이아웃 컴포넌트들 또는 객체들에 대한 평면들(예컨대, 룸의 바닥, 천장 및 벽들에 대해 검출된 평면들)의 3D 파라미터들은 파라미터 결정 엔진(154)에 의해 획득 또는 결정될 수 있다. 예를 들어, 일부 경우들에서, 파라미터 결정 엔진(154)은 환경 내의 레이아웃 컴포넌트들 또는 객체들에 대한 평면들의 3D 파라미터들을 결정하기 위해 깊이 정보를 사용할 수 있다. 일부 예들에서, 평면의 3D 파라미터들은 평면의 (표면 법선으로도 또한 지칭되는) 법선 벡터 및 이미지를 캡처한 카메라 중심으로부터의 평면의 거리를 표시하는 평면 오프셋을 포함할 수 있다. 코너들 및 경계들은 평면들의 교차점들을 컴퓨팅함으로써 복원될 수 있다. 3D 평면 검출을 위한 주석들은 (룸 레이아웃 주석들과 비교하여) 풍부하여, 높은 품질의 그리고 정확한 평면 검출을 수행하도록 방법을 훈련시키는 능력을 제공한다. 일부 경우들에서, 이 방법은 기하학적 방법을 포함할 수 있다. 다른 예들에서, 이 방법은 기계 학습 알고리즘 또는 모델(예컨대, 신경망)을 포함할 수 있다.
[0081] 일부 경우들에서, 장면 추정 시스템(120)은 3D 평면들을 1차 기하학적 엔티티들로서 사용할 수 있다. 일부 예들에서, 장면 추정 시스템(120)은 이미지 센서(124)와 같은 하나 이상의 RGB-D 센서들로부터의 데이터로부터 획득된 RGB-D 스캔으로부터 레이아웃의 3D 평면들을 추론할 수 있다. 환경의 2D 레이아웃을 구성하는 2D 다각형들을 생성하도록 다각형 결정 엔진(156)에 의해 구현될 수 있는 알고리즘이 본 명세서에서 소개된다. 2D 다각형들과 3D 평면들로부터의 정보를 결합함으로써, 다각형 결정 엔진(156)에 의해 최종 3D 다각형이 획득 또는 결정된다. 더욱이, 본 명세서의 알고리즘은 하나 이상의 RGB-D 이미지들로부터 장면의 레이아웃 및 객체들을 예측하기 위해 트리 구조의 MTCS를 수행할 수 있다.
[0082] 레이아웃의 정의된 세트의 시맨틱 클래스들(예컨대, 벽에 대응하는 "wall" 클래스, 바닥에 대응하는 "floor" 클래스, 천장에 대응하는 "ceiling") 중 하나에 속하는 평면 구역들을 식별함으로써 이미지 콘텐츠들에 대해 추론하기 위해 (예컨대, 평면 검출 엔진(150)의 기계 학습 시스템(152)에 의해) 기계 학습이 사용될 수 있다. 일반적인 룸 레이아웃 추정을 위한, 특히 3D 레이아웃 추정을 위한 주석이 달린 데이터의 양은 매우 제한될 수 있다. 그러나 이용 가능한 데이터세트들은 실내 환경들에 대한 시맨틱 세그먼트화 기계 학습 모델들(예컨대, 신경망들)을 트레이닝하는 데 사용될 수 있고, 평면 구역 검출을 트레이닝하기 위한 데이터는 일부 경우들에서 자동으로 획득될 수 있다. 일부 예들에서, (2D 또는 3D의) 평면 구역들은, 평면 구역 검출기로서 기계 학습 시스템(152)의 기계 학습 모델(예컨대, 컨볼루션 신경망 또는 다른 신경망 모델)을 적용함으로써 식별될 수 있다. 예를 들어, 평면 구역들을 정의된 세트의 시맨틱 클래스들 또는 카테고리들(예컨대, 벽들, 바닥들 및 천장)로 라벨링하기 위해 하나 이상의 CNN들을 사용하여 기계 학습 시스템(152)에 의해 평면 검출 및 시맨틱 세그먼트화가 수행될 수 있다. 평면 구역 검출기로서 사용될 수 있는 신경망 모델의 하나의 예시적인 예는 Chen Liu 등의 "PlaneRCNN: 3D Plane Detection and Reconstruction from a Single Image"(CVPR, 2019)에서 설명되는 PlaneRCNN이며, 이는 이로써 그 전체가 인용에 의해 그리고 모든 목적들을 위해 포함된다.
[0083] 일부 예들에서, 3D 객체 검출기는 Qi, Charles R 및 Litany, Or 및 He, Kaiming 및 Guibas, Leonidas J의 "Deep Hough Voting for 3D Object Detection in Point Clouds"에서 설명되는 바와 같이 Votenet을 사용하여 구현될 수 있으며, 이는 그 전체가 인용에 의해 그리고 모든 목적들을 위해 본 명세서에 포함된다.
[0084] 일부 예들에서, 깊이 정보가 획득될 수 있으며, 평면 검출 엔진(150)에 의해 결정된 레이아웃 평면들의 파라미터들(예컨대, 3D 파라미터들)의 계산을 위해 파라미터 결정 엔진(154)에 의해 사용될 수 있다. 위에서 언급된 바와 같이, 평면의 파라미터들은 평면의 법선 벡터(예컨대, 평면에 직교하는 벡터) 및/또는 평면의 평면 오프셋을 포함할 수 있다. 깊이 정보는 기계 학습 기법들을 사용하여 컬러 이미지로부터 추론될 수 있거나, 신뢰할 수 있는 정보를 제공할 수 있는 (예컨대, 하나 이상의 RGB-D 이미지들로 표현되는) 하나 이상의 깊이 센서들(122)로부터 획득될 수 있다. 기하학적 추론 프로세스가 수행될 수 있고, 3D로 룸 레이아웃들에 대한 가설들을 구성하기 위해 평면 교차점들을 찾는 것을 포함할 수 있으며, 이는 검증되고 개선될 수 있다. 예컨대, 3D 룸 레이아웃에 대한 코너들 및 에지들은 3D 레이아웃 평면들을 교차시킴으로써 결정될 수 있다. 본 명세서에서 설명되는 기법들은 정의된 구조(예컨대, 하나 이상의 바닥들, 천장들, 벽들 및/또는 다른 객체들에 의해 정의된 구조), 이를테면 일반적인 룸 레이아웃들을 갖는 다양한 타입들의 환경들에 적용 가능하다. 본 명세서에서 설명되는 레이아웃 추정 기법들은 위에서 논의된 다수의 접근 방식들에 대한 경우와 같이 박스형 레이아웃들로 제한되지는 않는다.
[0085] 모든 교차점이 유효한 레이아웃 코너는 아니기 때문에, "후보" 에지들을 조합하는 것은 모든 각각의 레이아웃 평면에 대해 다수의 가능한 다각형들을 야기할 수 있다. 레이아웃 평면들에 대한 다각형들의 최종 세트는, 추출되는 깊이 정보와 비교하여, 3D에서는 불일치를 최소화하고, 2D에서는, 레이아웃의 대응하는 평면 구역들과 다각형들의 중첩을 최대화하는 것이다.
[0086] 본 명세서에서 설명되는 레이아웃 추정 기법들은, 이미지에서 직접적으로 보이지 않는(예컨대, 가구에 의해 가려지는) 룸(또는 다른 환경) 레이아웃 에지들 및 코너들이 복원될 수 있게 한다. 3D 레이아웃(158)은 (예컨대, 검증 및 개선 단계 이후) 한 세트의 3D 평면들 및 대응하는 다각형들로서 모델링되는 3D의 최종 룸 레이아웃을 포함할 수 있다. 그러한 표현은 다른 용도들 중에서도, 효율적인 3D 시각화 및 평면도들의 생성을 가능하게 한다.
[0087] 예시적인 공식화의 일부 양상들에서, 3D 장면의 한 세트 N V 개의 등록된 RGB 이미지들 및 깊이 맵들이 주어지면, 장면 추정 시스템(120)은 3D 장면을 구성하는 객체들 및 벽들(및/또는 다른 구조들)에 대한 3D 모델들 및 이들의 포즈들을 결정할 수 있다. 이는 I의 관측들이 주어지면 사후 확률을 최대화하는 한 세트의 객체들 및 벽들(및/또는 다른 구조들)을 찾음으로써 이루어질 수 있다:
식(2)
[0088] 표준 도출들 및 가정들을 사용하여, 장면 추정 시스템(120)은 다음을 결정할 수 있다:
식(3)
[0089] P(I i |O) 및 P(D i |O)는 관측들의 확률들이다. P(I i |O)를 평가하기 위해, 장면 추정 시스템(120)은 이미지들 I i 의 시맨틱 세그먼트화를 수행하여 각각의 클래스 c에 대한 세그먼트화 신뢰도 맵들 S i (c)를 획득할 수 있다. 일부 경우들에서, 장면 추정 시스템(120)은 c ∈ {wall, floor, chair, table, sofa, bed}를 사용할 수 있고, RGB-D 이미지들의 관점들로부터 O 내의 제안들의 렌더링된 세그먼트화 맵들 S i R 을 획득할 수 있다. 하나의 예시적인 예에서, RGB 데이터(또는 다른 이미지 데이터)의 확률 항은 다음과 같이 정의될 수 있으며:
식(4)
[0090] 여기서 1(S i R ,c)는 S i R 에서, 클래스 c에 속하고 그렇지 않으면 O에 속하는 렌더링된 픽셀들에 대해 1이다. C S 는 최적화 문제에 영향을 미치지 않는 상수이다. 식(4)에서 S i (c)를 logS i (c)로 대체하는 것은 이를 S i (c)와 S i R 의 크로스-엔트로피로 만들 것이라는 점에 주목한다. 그러나 로그 연산을 제거하는 것은 앙상블 방법들에서 분류기들의 조합들에서와 같이 세그먼트화 에러들에 대해 로그 연산을 더 견고하게 만든다.
[0091] 유사하게, 제안들의 깊이 맵들 D i R 은 RGB-D 이미지들의 관점들로부터 O에서 렌더링될 수 있다. 장면 추정 시스템(120)은 이들을 캡처된 깊이 맵들 D i 와 다음과 같이 비교할 수 있다:
식(5)
[0092] 위에서 언급된 바와 같이, C D 는 최적화의 결과에 영향을 미치지 않는 상수이다. 도 2a는 대응하는 S i (최상부 좌측 이미지), S i R (최상부 우측 이미지), D i (최하부 좌측 이미지) 및 D i R (최하부 우측 이미지)에 대한 예들을 예시하는 도면이다. 예시적인 접근 방식은 모든 객체들을 함께 고려하고 이들 사이에서 발생할 수 있는 폐색들을 고려한다는 것을 주목한다.
[0093] P(O)는 한 세트의 제안들 O에 대한 사전 지식 항이다. 이는 물리적으로 불가능한 솔루션들을 방지하는 데 사용될 수 있다. 실제로, 제안들은 완벽하게 국소화되지 않을 수 있고, 일부 교차점들은 용인될 수 있다. 2개의 객체들 사이의 IoU(Intersection-over-Union)가 임계치보다 작을 때, 장면 추정 시스템(120)은 교차를 용인할 수 있지만 여전히 교차에 패널티를 부과할 수 있다. 예컨대, 시스템은 다음을 취할 수 있으며:
식(6)
[0094] 여기서 IoU는 객체들(O i , O k )에 대한 3D 모델들 사이의 합집합-위-교집합(intersection-over-Union)이다. 일부 예들에서, 3D 모델들의 복셀 표현이 이를 컴퓨팅하는 데 사용될 수 있다. 2개의 객체 제안들 사이의 합집합-위-교집합이 이 임계치를 초과하는 경우, P(O) = 0이 취해질 수 있는데, 예컨대 2개의 제안들은 양립 불가능할 수 있다. 하나의 예시적인 예에서, 0.3의 임계치가 사용될 수 있다. 다른 예들에서, 다른 임계치들이 사용될 수 있다.
[0095] 일부 경우들에서, 이를테면, 의자-테이블 및 소파-테이블 교차부들에서 이는 사실이 아닐 수 있다. 이러한 경우들에서, 교차가 발생하는 수평 표면(예컨대, 테이블의 표면, 소파의 좌석)이 먼저 식별될 수 있다. 교차의 양은 수평 표면의 가장 가까운 에지까지의 교차점의 거리를 계산함으로써 결정될 수 있다. 교차량은 수평 표면의 치수에 의해 정규화될 수 있고, 임계치(예컨대, 0.3)를 초과하는 비율은 양립 불가능한 것으로 간주될 수 있다. 도 6a 및 도 6b는 장면에 대해 생성된 객체 및 레이아웃 제안들의 일례를 예시하며, 아래에서 설명된다.
[0096] 2개의 레이아웃 제안들이 교차할 때 또는 레이아웃 제안과 객체 제안이 교차할 때, P(O) = 0이 또한 취해질 수 있다. 작은 교차들이 여전히 용인되는 객체 제안들과 대조적으로, 레이아웃 제안들에 대한 교차들은 이들의 위치들이 보다 정확하게 예측되는 경향이 있기 때문에 용인되지 않을 수 있다.
[0097] 구조화된 레이아웃들을 시행하기 위해, O 내의 레이아웃 컴포넌트들이 링을 구축한다면, 0.1과 같은 특정 값이 스코어에 추가될 수 있다.
[0098] 이전에 논의된 바와 같이, 식(2)을 최대화하는 세트 를 찾기 위해, 일례는 가능하게는 장면에 있는 제안들의 풀 O pool 로 시작할 수 있고, 는 식(2)을 최대화하는 O pool 의 서브세트로서 선택될 수 있다. 이어서, 식(2)은 다음과 같이 보다 명시적으로 작성될 수 있다:
식(7)
여기서 , 그리고 식(8)
식(9)
식(10)
[0099] O pool 을 생성하고 식(2)을 최대화하기 위한 예가 아래에서 추가로 설명된다.
[0100] 일부 예들에서, 제안들을 생성하기 위해, 객체 제안들을 생성하기 위한 기법 및 벽들 및 바닥들의 제안들을 생성하기 위한 상이한 기법들과 같이, 제안들의 세트 O pool 를 생성하기 위해 다양한 기법들이 사용될 수 있다. 도 6a 및 도 6b는 예시적인 장면에 대해 생성된 예시적인 제안들을 도시한다.
[0101] 각각의 객체 제안은, 가능하게는 장면에 존재하는 객체에 대응하는 3D 모델 및 그의 6D 포즈로 이루어질 수 있다. 3D 모델들은 Angel X. Chang, Thomas A. Funkhouser, Leonidas J. Guibas, Pat Hanrahan, Qi-Xing Huang, Zimo Li, Silvio Savarese, Manolis Savva, Shuran Song, Hao Su, Jianxiong Xiao, Li Yi 및 Fisher Yu의 "ShapeNet: An Information-Rich 3D Model Repository"(CoRR, abs/1512.03012, 2015)에서 설명되는 ShapeNet 데이터세트로부터의 CAD 모델들일 수 있으며, 이는 그 전체가 인용에 의해 그리고 모든 목적들을 위해 본 명세서에 포함된다. 일부 예들에서, 3D 객체들을 검출하기 위해 VoteNet이 사용될 수 있고, 이들의 포인트 클라우드들을 추출하기 위해 MinkowskiNet이 사용될 수 있다. VoteNet은 Charles R Qi, Or Litany, Kaiming He 및 Leonidas J Guibas의 "Deep hough voting for 3d object detection in point clouds"(In Int. Conf. Comput. Vis., 2019)에서 설명되며, 이는 그 전체가 인용에 의해 그리고 모든 목적들을 위해 본 명세서에 포함된다. MinkowskiNet은 Choy, Christopher, JunYoung Gwak 및 Silvio Savarese의 "4D Spatio-Temporal Convnets: Minkowski convolutional neural networks"에서 설명되며, 이는 그 전체가 인용에 의해 그리고 모든 목적들을 위해 본 명세서에 포함된다.
[0102] VoteNet은 각각의 3D 바운딩 박스 검출에 대한 객체의 카테고리를 제공하고, 시스템(120)은 MinkowskiNet에 따라 동일한 카테고리에 속하는 것으로 분류된 3D 포인트들을 바운딩 박스 내에 유지할 수 있다. 네트워크는 이 포인트 클라우드로부터의 6D 포즈+스케일 및 CAD 모델에 대한 임베딩을 예측하기 위해 PointNet++에 기초하여 트레이닝될 수 있다. PointNet++은 Charles R Qi, Li Yi, Hao Su 및 Leonidas J Guibas. Point-Net++: Deep Hierarchical Feature Learning on Point Sets in a Metric Space. arXiv preprint arXiv:1706.02413, 2017에서 설명되며, 이는 그 전체가 인용에 의해 그리고 모든 목적들을 위해 본 명세서에 포함된다. 입력 포인트 클라우드를 상이하게 샘플링하는 것은, ShapeNet에서의 상이한 CAD 모델들에 대응하는 약간 상이한 임베딩들을 야기하며, 이러한 CAD 모델들 각각으로 제안이 생성될 수 있다. 네트워크는 ShapeNet의 CAD 모델들로부터 생성된 합성 포인트 클라우드들을 사용하여 트레이닝될 수 있다. 포즈 및 스케일 추정치들은, CAD 모델과 포인트 클라우드 사이의 Chamfer 거리를 사용하여 예측된 값들 주위에서 작은 그리드 탐색을 수행함으로써 개선될 수 있다.
[0103] 각각의 레이아웃 제안은, 가능하게는 장면의 벽 또는 바닥에 대응하는 3D 다각형으로서 표현될 수 있다(천장들은 일반적으로 ScanNet에서 보이지 않음). 장면의 포인트 클라우드가 주어지면, MinkowskiNet은 포인트들의 나머지로부터 레이아웃(바닥, 벽)에 속하는 포인트들을 세그먼트화하는 데 사용될 수 있다. 그런 다음, 포인트 클라우드에 맞는 평면들의 파라미터들을 획득하기 위해 RANSAC 프로시저가 사용될 수 있다. 3D 다각형들을 생성하기 위해 이러한 평면들 간의 교차점들이 컴퓨팅될 수 있다. 포인트 클라우드의 3D 바운딩 박스 면들의 평면들은 간헐적인 불완전한 스캔들을 핸들링하기 위해 포함될 수 있는데, 예컨대 긴 복도들은 ScanNet 데이터세트에 대해 전체 길이가 완전히 스캔되지 않을 수 있다.
[0104] 아래는 MCTS가 식(3)의 문제의 효율적인 최적화를 수행하도록 어떻게 적응될 수 있는지의 예들이다. 이러한 변형은 또한, 본 명세서에서 "MCSS(monte Carlo SceneSearch)"로도 지칭된다.
[0105] MCTS의 경우, 탐색 트리는 게임의 규칙들로부터 직접적으로 따른다. MCSS에 의해 탐색되는 탐색 트리는 다음과 같이 장면 이해 문제에 적응하고 효율적인 탐구를 가능하게 하도록 정의될 수 있다.
[0106] 각각의 제안 P에는, 제안이 렌더링되는 각각의 뷰에서의 픽셀 위치들에 대해 식(3)의 스코어링 함수를 평가함으로써 획득된 적합도 값이 할당될 수 있다. 이러한 적합도는 노드가 아닌 제안에 연관됨을 주목한다. 적합도는 탐색 트리의 정의 및 탐색 모두를 안내할 것이다.
[0107] 루트 노드를 제외하고, 장면 트리의 노드 N은 풀 O pool 로부터의 제안 P(N)과 연관된다. 따라서 루트 노드로부터 리프 노드까지의 각각의 경로는 식(3)에 대한 잠재적인 솔루션인 한 세트의 제안들 O에 대응한다.
[0108] 트리는, 어떠한 경로도 불가능한 솔루션에, 예컨대 P(O)를 갖는 세트 O에 대응할 수 없도록 정의될 수 있다. 이는 가능한 솔루션들에 대응하지 않는 브랜치들을 탐구하는 것을 피한다. 현재 경로에서의 제안들에 공간상 근접한 첫 번째 제안들을 고려하는 것은 탐색을 상당히 가속할 수 있다. 트리는 공간상 이웃에 의해 조직화될 수 있다. 루트 노드의 자식 노드들은 모든 제안들 중에서 가장 높은 적합도를 갖는 제안 O를 포함하는 노드이고; 다른 노드들은 제안 O와 양립 불가능하고 서로 양립 불가능한 제안들을 포함한다.
[0109] 모든 각각의 노드 N의 자식들을 정의하기 위해, 시스템(120)은 N의 제안들 및 그의 모든 조상들에서의 제안들로 이루어진 세트 H, 및 그 세트 내에 내에 있지 않지만 그와 양립 가능한 제안들의 세트 O comp 를 고려할 수 있다. 그런 다음, N의 자식 노드들은: N 내의 제안에 (공간 거리의 관점에서) 가장 가까운 제안 O를 포함하는 노드이고; 다른 노드들은 H∪{O} 내의 제안들과 양립 불가능하고 서로 양립 불가능한 제안들을 포함한다.
[0110] 2개의 레이아웃 제안들은, 이들이 교차하거나 공간상 이웃들이 아니라면 양립 불가능한 것으로 간주된다. 이들이 에지를 공유하고 동일한 3D 평면 상에 있지 않다면, 이들은 공간상 이웃들이다. 누락된 제안들을 처리하기 위해, 다른 자식들 중 어느 것도 최종 솔루션의 일부가 아닌 경우를 처리하기 위해 제안을 포함하지 않는 특수한 노드가 추가될 수 있다.
[0111] "레이아웃 트리"와 "객체 트리들"을 연결함으로써 장면 트리가 구축된다. 레이아웃 트리의 모든 각각의 리프 노드는 객체 트리의 루트 노드이다.
[0112] 일부 경우들에서, 레이아웃 트리는 주어진 양의 반복들에 대해서만 먼저 탐색될 수 있다. 그 후, 레이아웃 트리가 고정되고, 트리에서 최상의 경로가 객체 트리의 루트 노드로서 사용된다.
[0113] 일부 경우들에서, 식(1)에서 주어지고 각각의 노드에 저장된 UCB 기준의 Q는 노드를 방문한 후 획득된 게임 최종 스코어들의 합으로서 취해질 수 있다. 노드 내의 제안이 보이는 뷰들에 Q가 더 초점을 맞춘다면, 탐색은 보다 효율적일 수 있다.
[0114] MCSS에서, 솔루션 O를 리턴하는 시뮬레이션 후에, 제안 O를 포함하는 노드의 Q에 부가되는 스코어 s가 다음과 같이 계산되며:
식(11)
[0115] 여기서 뷰 i에서 O가 보인다면 w i (O) = 1이고 그렇지 않으면 0이고,
식(12)
[0116] MCSS는 식(1)에 의해 주어진 UCB 기준을 다음과 같이 수정할 수 있으며:
식(13)
[0117] 여기서 처음 2개의 항들은 표준 UCB 선택 기준을 만든다. 세 번째 항은, 방문들의 횟수가 증가할 때 감소하는 가중치로, 더 유망한 후보들의 탐구를 장려한다. 적합도는 노드가 아니라 제안에 관련된다는 것을 상기한다. 따라서 어떤 제안을 포함하는 노드를 방문하는 것은 동일한 제안을 포함하는 노드들의 선택에 영향을 미칠 것이다.
[0118] 일부 실험들에서, λ1 = 1, λ2 = 0.3, λ3 = 0.99를 설정하는 것이 일반적으로 효율적인 것으로 경험적으로 발견될 수 있다. 그러므로 적합도 항은 초기에 시작 시의 역할을 하지만, 시뮬레이션들의 수가 많을수록 중요성을 잃는다.
[0119] 스코어링 함수가 결정적이기 때문에, 선택 단계에서는 불필요한 반복들을 방지하기 위해, 루트로부터 리프로의 각각의 경로는 탐색 동안 최대 한번 방문될 수 있다.
[0120] 후보 솔루션에 컴포넌트 O i 를 포함시키는 것이 O i 가 보이는 뷰들 중 임의의 뷰에 대한 새로운 최대 스코어에 도달할 때마다(일부 경우들에서는 매번), 그 적합도는 특정 양만큼, 이를테면, 예를 들어, 0.1만큼 증가될 수 있다. 이러한 뷰들에 대한 평균 스코어가 매우 낮다면, 적합도는 예를 들어, 0.01과 같은 양만큼 감소될 수 있다. 예를 들어, 이러한 뷰들에 대한 평균 스코어가 지금까지 이러한 뷰들에 대해 달성된 최상의 스코어들의 평균의 0.5보다 낮다면, 적합도는 예를 들어, 0.01과 같은 양만큼 감소될 수 있다. 그렇게 함으로써, 이 제안을 포함하는 모든 노드들로부터의 정보가 전파될 수 있다. 따라서 어떤 제안을 포함하는 노드를 방문하는 것은 동일한 제안을 포함하는 노드들의 선택에 영향을 미칠 것이다.
[0121] MCSS는 알고리즘 1에서 주어진 MCTS와 동일한 의사 코드를 실행할 수 있지만, 결과적으로, 식(7)에서 주어진 sc(.)에 따라 시뮬레이션들에 의해 발견된 제안들의 최상의 세트를 리턴할 수 있다.
[0122] 도 2b 내지 도 2d는 RGB-D 스캔들 및 3D 모델들에 대한 다양한 난제들을 예시한다. 도 2b에 도시된 바와 같이, 일부 경우들에서, RGB-D 스캔들은 예컨대, 불완전할 수 있다(장면의 일부 부분들이 누락됨). 일부 경우들에서, RGB-D 스캔들은 폐색들, 반사성들 등으로 인해 많은 홀들(예컨대, 벽들의 부분들, 바닥들, 객체들이 누락됨)을 가질 수 있다.
[0123] 도 2c에 도시된 바와 같이, 일부 경우들에서, 레이아웃은 복잡할 수 있다(예컨대, "비-직육면체들", 가능하게는 다수의 룸들 등). 많은 경우들에서, 장면은 상이한 객체들을 가질 수 있고, 객체들의 3D 모델들은 미리 알려지지 않을 수 있다. 더욱이, 지도 학습에 이용 가능한 주석이 달린 데이터세트가 종종 존재하지 않는다.
[0124] 도 3은 일부 예들에 따른, 3D 장면을 이해하기 위한 구조화된 트리 탐색 접근 방식에 대한 예시적인 프로세스를 예시하는 도면이다. 도시된 바와 같이, RGB-D 이미지(302)는 하나 이상의 후보 제안들을 생성(304)하는 데 사용될 수 있다. 후보 제안들은 객체, 벽들, 바닥들 및/또는 레이아웃 후보 제안들을 포함할 수 있다.
[0125] 하나 이상의 후보 제안들은 구조화된 트리로서 조직화(306)될 수 있다. 구조화된 트리를 효율적으로 탐색(308)하고 목적 함수에 기초하여 실제 장면에 가장 잘 대응하는 후보들의 최적의 세트를 발견(310)하기 위해, 적응된 MCTS(Monte-Carlo Tree Search)가 사용될 수 있다.
[0126] 일부 예들에서, 장면 이해 문제는 구조화된 트리 탐색으로서 캐스팅될 수 있으며, 이는 객체, 벽, 바닥 후보 제안들을 생성하는 것, 후보 선택을 구조화된 트리로 조직화하는 것, 이전에 설명된 바와 같이, 목적 함수에 기초하여 트리를 효율적으로 탐색하고 그리고 실제 장면에 가장 잘 대응하는 후보들의 최적의 세트를 찾도록 MCTS(Monte-Carlo Tree Search) 방법을 적응시키는 것을 포함할 수 있다.
[0127] MCTS는 3D 장면 이해를 위해 사용될 수 있다. 다른 시나리오들에서, MCTS는 컴퓨터들이 1인용 또는 멀티-플레이어 게임들(예컨대, 체스, 바둑, 소코반(Sokoban) 등)을 플레이하게 하는 데 사용될 수 있다. 본 명세서의 기술들은 구조화된 트리를 생성하고, 3D 장면 이해 문제를 해결하기 위해 MCTS를 적용하는 데 사용될 수 있다. 본 명세서의 기술들은 3D 장면 이해 문제에 대한 탐색을 가속화하도록 MCTS를 수정하는 데 사용될 수 있다.
[0128] 도 4는 룸 레이아웃 제안들을 생성하기 위한 예시적인 프로세스를 예시하는 도면이다. 어떤 예에서는, (예컨대, MinkowskiNet 등을 사용하여) 입력 포인트 클라우드에 대해 시맨틱 세그먼트화가 수행되어 세그먼트화된 포인트 클라우드(402)를 생성할 수 있다. 세그먼트화된 포인트 클라우드(402)는 벽, 바닥 등에 속하는 3D 포인트들을 찾는 데 사용될 수 있다. 이어서, 레이아웃 평면들(404)(예컨대, 3D 평면들)이 세그먼트화된 포인트 클라우드(402)에 기초하여 발견된 3D 포인트들에 맞춰질 수 있다. 레이아웃 평면들(404) 간의 교차점들로부터 생성된 다각형들로서 룸 레이아웃 제안들(406)이 획득될 수 있다.
[0129] 도 5는 객체 제안들의 생성에 대한 일례를 예시하는 도면이다. 일부 예들에서, 3D 객체 검출기가 장면의 입력 포인트 클라우드(502)의 객체들에 대한 3D 바운딩 박스 제안들(504)을 획득하는 데 사용될 수 있다. 일부 예들에서, 3D 객체 검출기는 Qi, Charles R 및 Litany, Or 및 He, Kaiming 및 Guibas, Leonidas J의 "Deep Hough Voting for 3D Object Detection in Point Clouds"에 의해 설명되는 바와 같은 Votenet을 포함할 있으며, 이는 그 전체가 인용에 의해 그리고 모든 목적들을 위해 본 명세서에 포함된다.
[0130] 각각의 바운딩 박스 제안에 대해, ShapeNet 데이터세트와 같은 데이터세트로부터 한 세트의 후보 객체 모델들(506)이 리트리브될 수 있다. 일부 예들에서, 객체 모델들을 리트리브하도록 심층 네트워크가 트레이닝될 수 있다. 심층 네트워크는 주석들을 포함하는 합성 포인트 클라우드들의 데이터세트로 트레이닝될 수 있다.
[0131] 도 6a 및 도 6b는 장면(602)에 대한 제안들을 선택하기 위한 예를 예시하는 도면들이다. 도 6a에 도시된 바와 같이, 제안들은 이전에 설명된 바와 같이 룸 레이아웃 제안들(604) 및 객체 제안들(606)을 포함할 수 있다. 도 6b는 룸 레이아웃 제안들(604)에 기초하여 장면(602) 위에 오버레이된 객체 제안들(604)을 도시한다.
[0132] 도 7은 일부 예들에 따라 생성된 장면 트리 구조를 도시한다. 장면 트리(702)는 양립 불가능한 객체들의 상이한 세트들로 정의될 수 있다. 양립 불가능한 객체들의 각각의 세트가 장면 트리(702)의 레벨에 할당된다. 일부 예들에서, 장면 트리(702)는 양립 불가능한 객체들의 제1 세트, 양립 불가능한 객체들의 제2 세트 및 양립 불가능한 객체들의 제3 세트에 기초하여 생성될 수 있다. 일부 예들에서, 양립 불가능한 객체들은 예를 들어, 이러한 객체들이 교차한다면, 함께 정확한 솔루션에 있을 수 없는 제안들을 포함할 수 있다.
[0133] 도 8은 구조화된 트리에서 후보 표현들(예컨대, 레이아웃들, 객체들 등)을 찾기 위한 예시적인 MCTS 동작들을 예시하는 도면이다. 이 예에서, MCTS 동작들은 선택 동작(802), 확장 동작(804), 시뮬레이션 동작(806) 및 업데이트 동작(808)을 포함한다. 선택 동작(802)은 예를 들어, 정책 또는 규칙과 같은 하나 이상의 팩터들에 기반하여 트리에서 하나 이상의 자식 노드들을 선택하는 것을 포함할 수 있다.
[0134] 확장 동작(804)은 하나 이상의 자식 노드들을 트리에 추가하여 트리를 확장하는 것을 포함할 수 있다. 시뮬레이션 동작(806)은 시뮬레이션들을 실행함으로써 트리에서 새로운 노드를 평가하는 것을 포함할 수 있다. 일부 예들에서, 시뮬레이션들은 정책 또는 규칙에 기반할 수 있다. 업데이트 동작(808)은 시뮬레이션 동작(806)과 연관된 시뮬레이션들의 결과들에 기초하여 트리의 값들 및/또는 통계를 업데이트하는 것을 포함할 수 있다.
[0135] 일부 예들에서, 본 명세서에서 추가로 설명되는 바와 같이, MCTS에 기반한 적응된 알고리즘(이전에 언급된 바와 같은 MCSS)이 장면 트리를 효율적으로 탐색하는 데 사용될 수 있다. 이전에 언급된 바와 같이, 일부 예들에서, MCSS는 식(1)으로부터의 UCB(upper confidence bound) 기준을 다음과 같이 수정할 수 있으며:
식(14)
[0136] 여기서 처음 2개의 항들이 표준 UCB 선택 기준을 만드는 경우, 세 번째 항은, 방문들의 횟수가 증가할 때 감소하는 가중치로, 더 유망한 후보들의 활용을 장려한다. 적합도는 노드가 아니라 제안에 관련된다는 것을 상기한다. Qs의 합일 수 있으며, 여기서 ss i 에 대해 식(9), 식(11) 및 s p 에 대해 식(12)에서 정의된다. 식(11)을 참조하여 이전에 설명된 바와 같이, 뷰 i에서 O가 보인다면 w i (O) = 1이고 그렇지 않으면 0이다.
[0137] 일부 경우들에서, 잠재적인 후보들의 주어진 세트에 대해, 뷰 i에 대한 뷰 스코어 v i 는 후보들이 뷰 i에서의 RGB 및 깊이 데이터에 얼마나 잘 동의하는지를 정의한다. 일부 예들에서, 장면의 주어진 뷰들 각각에 대해, 후보들의 주어진 세트는 장면으로 렌더링될 수 있다. 장면의 모든 각각의 뷰에 대해, 선택된 후보들의 품질은 여러 기준들에 기초하여 평가될 수 있다. 예시적인 기준들은 다음을 포함할 수 있다.
[0138] 2D: 시맨틱 세그먼트화에 대한 픽셀 에러가 (예컨대, MSEG를 사용하여) 신경망으로부터의 예측들과 후보들의 렌더링된 세트 사이의 불일치들을 측정한다. 일부 예들에서, MSEG(multi-domain semantic segmentation)가 사용될 수 있다. MSEG는 Lambert, John 등의 "MSeg: A Composite Dataset for Multi-domain Semantic Segmentation"에서 추가로 설명되며, 이는 그 전체가 인용에 의해 그리고 모든 목적들을 위해 본 명세서에 포함된다.
[0139] 3D: 깊이 에러가 깊이 센서로부터 획득된 데이터와 후보들의 렌더링된 세트와 사이의 불일치들을 측정한다.
[0140] 실현 가능성: 제안된 솔루션의 객체들 사이의 교차점들에 대해 패널티를 주고 그리고/또는 렌더링된 뷰들 모두에 보이지 않는 제안된 솔루션의 후보들에 대해 패널티를 준다.
[0141] "적합도"로 지칭되는 추가 항이 부가될 수 있으며, 이는 장면에 존재하고 있는 (예컨대, P(N)으로 표현되는) 현재 노드와 연관된 객체의 확률을 표현한다. 객체의 적합도는 트리 탐색 동안 계속해서 업데이트될 수 있다.
[0142] 일부 경우들에서, 확장, 시뮬레이션 및 업데이트 스테이지들은 표준 MCTS와 유사할 수 있다.
[0143] 제안 적합도는 후보가 장면에 얼마나 잘 맞는지를 설명할 수 있다. 제안은 초기화 및 업데이트될 수 있다. 일부 예들에서, 제안은 자신의 적합도를 평가하기 위해 장면에 개별적으로 렌더링될 수 있다. 제안의 적합도는 트리 탐색에서 이러한 제안을 사용하여 이전에 발견된 솔루션들의 품질에 기초하여 지속적으로 업데이트될 수 있다.
[0144] 도 9a 내지 도 9e는 장면 트리를 효율적으로 탐색하기 위해 사용되는 MCTS에 기초한 적응된 알고리즘으로부터의 예시적인 결과들을 예시한다. 도 9a의 예에서, 결과들은 복원된 객체들을 포함한다. 도 9b의 예에서, 결과들은 복원된 레이아웃들을 포함한다. 도 9c의 예에서, 결과들은 복원된 룸 레이아웃들 및 객체들을 포함한다. 도 9d 및 도 9e의 예들에서, 결과들은 복원된 객체들 및 룸 레이아웃들을 포함한다.
[0145] 도 10a는 본 명세서에서 설명되는 바와 같이 자동으로 생성된 레이아웃 주석들(1002)로부터의 결과들과 SceneCAD로부터의 수동 레이아웃 주석들(1004)로부터의 결과들의 비교를 예시한다. SceneCAD는 Avetisyan 등의 "SceneCAD: Predicting Object Alignments and Layouts in RGB-D Scans"(ECCV 2020)에서 추가로 설명되며, 이는 그 전체가 인용에 의해 그리고 모든 목적들을 위해 본 명세서에 포함된다. 도 10a에 도시된 바와 같이, 자동으로 생성된 레이아웃 주석들(1002)에서, SceneCAD로부터의 수동 레이아웃 주석들(1004)에서보다 더 상세한 레이아웃들이 복원될 수 있다.
[0146] 도 10b는 본 명세서에서 설명되는 바와 같이 자동으로 생성된 객체 주석들(1020)로부터의 결과들과 SceneCAD로부터의 수동 주석들(1022)로부터의 결과들의 비교를 예시한다. 도 10b에 도시된 바와 같이, 자동으로 생성된 객체 주석들(1020)에서, SceneCAD로부터의 수동 객체 주석들(1022)에서보다 더 상세한 레이아웃들이 복원될 수 있다.
[0147] 도 11은 하나 이상의 환경 레이아웃들 및 객체들을 결정하기 위한 예시적인 프로세스(1100)를 예시하는 흐름도이다. 블록(1102)에서, 프로세스(1100)는 환경의 하나 이상의 이미지들 및 하나 이상의 이미지들과 연관된 깊이 정보에 기초하여, 환경에 대응하는 한 세트의 후보 레이아웃들 및 한 세트의 후보 객체들을 검출하는 것을 포함할 수 있다. 일부 경우들에서, 프로세스(1100)는 환경의 하나 이상의 이미지들 및 하나 이상의 이미지들과 연관된 깊이 정보를 획득하는 것을 포함할 수 있다. 일부 예들에서, 하나 이상의 이미지들은 하나 이상의 RGB(red-green-blue) 이미지들을 포함할 수 있고, 깊이 정보는 환경의 하나 이상의 깊이 맵들을 포함할 수 있다. 일부 경우들에서, 하나 이상의 이미지들 및 깊이 정보는 하나 이상의 RGB-D(RGB-Depth) 이미지들을 포함할 수 있다. 일부 양상들에서, 환경은 3D 장면을 포함한다.
[0148] 일부 예들에서, 한 세트의 후보 레이아웃들은 한 세트의 3D 레이아웃 모델들 및 연관된 포즈들을 포함할 수 있다. 일부 예들에서, 한 세트의 후보 객체들은 한 세트의 3D 객체 모델들 및 연관된 포즈들을 포함할 수 있다. 일부 경우들에서, 한 세트의 후보 레이아웃들 및 한 세트의 후보 객체들의 각각의 후보는 교차하는 평면들에 대응하는 다각형을 포함한다. 일부 경우들에서, 교차하는 평면들은 하나 이상의 2차원 평면들을 포함한다. 일부 예들에서, 다각형은 3차원 다각형을 포함한다. 일부 예들에서, 하나 이상의 다각형들은 하나 이상의 3차원 다각형들을 포함한다. 일부 양상들에서, 프로세스(1100)는 기계 학습 모델을 사용하여 하나 이상의 평면들을 검출하는 것을 포함할 수 있다. 일부 예들에서, 프로세스(1100)는 기계 학습 모델 및 시맨틱 세그먼트화를 사용하여 하나 이상의 평면들을 검출하는 것을 더 포함할 수 있다.
[0149] 일부 경우들에서, 한 세트의 후보 레이아웃들을 검출하기 위해, 프로세스(1100)는, 하나 이상의 이미지들과 연관된 포인트 클라우드의 시맨틱 세그먼트화에 기초하여, 환경의 벽 및 환경의 바닥 중 적어도 하나에 대응하는 3D 포인트들을 식별하는 것을 포함할 수 있다. 프로세스(1100)는 3D 포인트들에 기초하여 3D 평면들을 생성하는 것을 포함할 수 있다. 프로세스(1100)는 3D 평면들 중 적어도 일부 3D 평면들 간의 교차점들에 기초하여 다각형들을 생성하는 것을 더 포함할 수 있다. 프로세스(1100)는 본 명세서에서 설명되는 바와 같이 다각형들에 기초하여 레이아웃 후보들을 결정하는 것을 포함할 수 있다.
[0150] 일부 예들에서, 한 세트의 후보 객체들을 검출하기 위해, 프로세스(1100)는 환경에 대해 생성된 포인트 클라우드의 객체들에 대한 3D 바운딩 박스 제안들을 검출하는 것을 포함할 수 있다. 각각의 바운딩 박스 제안에 대해, 프로세스(1100)는 후보 객체 모델들을 리트리브하는 것을 포함할 수 있다.
[0151] 블록(1104)에서, 프로세스(1100)는 한 세트의 후보 레이아웃들 및 한 세트의 후보 객체들에 대응하는 노드들을 포함하는 구조화된 트리를 생성하는 것을 포함할 수 있다. 일부 예들에서, 구조화된 트리를 생성하는 것은 한 세트의 후보 레이아웃들 및 한 세트의 후보 객체들을 구조화된 트리로서 조직화하는 것 포함할 수 있다.
[0152] 일부 경우들에서, 구조화된 트리(또는 트리 구조)는 다수의 레벨들을 포함한다. 예컨대, 각각의 레벨은 환경과 연관된 상이한 세트의 양립 불가능한 후보들을 포함할 수 있다. 일부 예들에서, 상이한 세트의 양립 불가능한 후보들은 양립 불가능한 객체들 및/또는 양립 불가능한 레이아웃들을 포함한다. 일부 경우들에서, 상이한 세트의 양립 불가능한 후보들 중 2개 이상의 후보들은, 2개 이상의 후보들이 교차하거나 공간상 이웃들이 아닐 때는 양립 불가능하다.
[0153] 블록(1106)에서, 프로세스(1100)는 구조화된 트리에서 객체들과 레이아웃들의 조합을 선택하는 것을 포함할 수 있다. 일부 예들에서, 구조화된 트리에서 상기 객체들과 레이아웃들의 조합을 선택하는 것은 구조화된 트리의 탐색에 기반한다. 예컨대, 탐색은 MCTS(Monte-Carlo Tree Search) 알고리즘에 기반할 수 있다. 예를 들어, 구조화된 트리에서 객체들과 레이아웃들의 조합을 선택하기 위해, 프로세스(1100)는 MCTS(Monte-Carlo Tree Search) 알고리즘을 사용하여 상기 구조화된 트리의 탐색을 수행하는 것을 포함할 수 있다. 일부 양상들에서, MCTS 알고리즘은 적응된 MCTS 알고리즘을 포함한다. 예를 들어, 본 명세서에서 설명되는 바와 같이, 적응된 MCTS 알고리즘은 구조화된 트리에서 탐색된 각각의 노드에 적합도 값을 할당할 수 있다. 일부 경우들에서, 적합도 값은 노드와 연관된 객체 및 레이아웃 중 적어도 하나가 환경에 존재할 가능성을 나타낸다.
[0154] 일부 예들에서, 적응된 MCTS 알고리즘은 구조화된 트리의 각각의 노드에 대한 스코어를 생성할 수 있다. 예를 들어, 스코어는 적응된 MCTS 알고리즘에 기반할 수 있다. 일부 예들에서, 스코어는 구조화된 트리의 각각의 노드에서 하나 이상의 뷰들에 대해 할당된 가중치, MCTS에 대해 도출된 탐구 항, 및 적합도 값을 포함할 수 있다. 일부 예들에서, 가중치는 하나 이상의 뷰들에 대한 뷰 스코어에 적어도 부분적으로 기초하며, 뷰에 대한 뷰 스코어는 뷰와 연관된 노드와 연관된 후보와 뷰와 연관된 하나 이상의 이미지들 및 깊이 정보로부터의 데이터 사이의 일관성 측정을 정의한다.
[0155] 블록(1108)에서, 프로세스(1100)는 구조화된 트리에서 객체들과 레이아웃들의 조합에 기초하여 환경의 3D(three-dimensional) 레이아웃을 결정하는 것을 포함할 수 있다. 일부 예들에서, 프로세스(1100)는 환경의 결정된 3D 레이아웃에 기초하여 가상 콘텐츠를 생성하는 것을 포함할 수 있다. 예컨대, 프로세스(1100)는 환경의 장면 또는 뷰를 증강시키기 위해 가상 콘텐츠를 사용할 수 있다. 일부 양상들에서, 프로세스(1100)는 환경의 결정된 3D 레이아웃을 컴퓨팅 디바이스와 공유하는 것을 포함할 수 있다. 예컨대, 프로세스(1100)는 (예컨대, 멀티-플레이어 게임 또는 다른 애플리케이션에서) 3D 레이아웃을 컴퓨팅 디바이스에 송신하거나, 컴퓨팅 디바이스에 의해 액세스 가능한 서버 기반 시스템에 3D 레이아웃을 업로드하거나, 아니면 3D 레이아웃을 공유할 수 있다.
[0156] 일부 예들에서, 프로세스(1100)는 장면 추정 시스템(120)을 구현하는 컴퓨팅 디바이스와 같은 컴퓨팅 디바이스 또는 장치에 의해 수행될 수 있다. 일례로, 컴퓨팅 디바이스는, 장면 추정 시스템(120)을 또한 포함할 수 있는, 도 12에 도시된 컴퓨팅 디바이스 아키텍처(1200)를 가질 수 있다. 일부 경우들에서, 컴퓨팅 디바이스 또는 장치는 하나 이상의 입력 디바이스들, 하나 이상의 출력 디바이스들, 하나 이상의 프로세서들, 하나 이상의 마이크로프로세서들, 하나 이상의 마이크로컴퓨터들, 및/또는 프로세스(1100)의 단계들을 실행하도록 구성되는 다른 컴포넌트(들)를 포함할 수 있다. 일부 예들에서, 컴퓨팅 디바이스 또는 장치는 이미지들을 캡처하도록 구성된 카메라를 포함할 수 있다. 예를 들어, 컴퓨팅 디바이스는 카메라 디바이스를 포함할 수 있다. 다른 예로서, 컴퓨팅 디바이스는 카메라를 갖는 모바일 디바이스(예컨대, 카메라를 포함하는 휴대 전화 또는 태블릿, 또는 카메라를 갖는 다른 타입의 디바이스)를 포함할 수 있다. 일부 경우들에서, 컴퓨팅 디바이스는 하나 이상의 통신 트랜시버들 및/또는 하나 이상의 비디오 코덱들을 포함할 수 있다. 일부 경우들에서, 컴퓨팅 디바이스는 이미지들을 디스플레이 하기 위한 디스플레이를 포함할 수 있다. 일부 예들에서, 비디오 데이터를 캡처하는 카메라 또는 다른 캡처 디바이스는 컴퓨팅 디바이스와는 별개이며, 이 경우 컴퓨팅 디바이스는 캡처된 비디오 데이터를 수신한다. 컴퓨팅 디바이스는 비디오 데이터를 통신하도록 구성된 네트워크 인터페이스를 더 포함할 수 있다. 네트워크 인터페이스는 IP(Internet Protocol) 기반 데이터 또는 임의의 다른 적절한 데이터를 통신하도록 구성될 수 있다.
[0157] 컴퓨팅 디바이스의 컴포넌트들(예컨대, 하나 이상의 프로세서들, 하나 이상의 마이크로프로세서들, 하나 이상의 마이크로컴퓨터들 및/또는 다른 컴포넌트)은 회로로 구현될 수 있다. 예를 들어, 컴포넌트들은 하나 이상의 프로그래밍 가능 전자 회로들(예컨대, 마이크로프로세서들, GPU(graphics processing unit)들, DSP(digital signal processor)들, CPU(central processing unit)들 및/또는 다른 적절한 전자 회로들)을 포함할 수 있는 전자 회로들 또는 다른 전자 하드웨어를 포함할 수 있고 그리고/또는 이들을 사용하여 구현될 수 있으며, 그리고/또는 본 명세서에서 설명되는 다양한 동작들을 수행하기 위해 컴퓨터 소프트웨어, 펌웨어, 또는 이들의 임의의 조합을 포함할 수 있고 그리고/또는 이들을 사용하여 구현될 수 있다.
[0158] 프로세스(1100)는 논리 흐름도로서 예시되며, 논리 흐름도의 동작은 하드웨어, 컴퓨터 명령들, 또는 이들의 조합으로 구현될 수 있는 동작들의 시퀀스를 표현한다. 컴퓨터 명령들과 관련하여, 동작들은 하나 이상의 컴퓨터 판독 가능 저장 매체들 상에 저장된 컴퓨터 실행 가능 명령들을 표현하며, 이러한 명령들은 하나 이상의 프로세서들에 의해 실행될 때, 열거된 동작들을 수행한다. 일반적으로, 컴퓨터 실행 가능 명령들은 특정 기능들을 수행하거나 특정 데이터 타입들을 구현하는 루틴들, 프로그램들, 객체들, 컴포넌트들, 데이터 구조들 등을 포함한다. 동작들이 설명되는 순서는 제한으로서 해석되는 것으로 의도되지 않으며, 임의의 수의 설명되는 동작들이 임의의 순서로 그리고/또는 병렬로 조합되어 프로세스들을 구현할 수 있다.
[0159] 추가로, 프로세스(1100)는 실행 가능 명령들로 구성된 하나 이상의 컴퓨터 시스템들의 제어 하에서 수행될 수 있고, 하나 이상의 프로세서들 상에서, 하드웨어에 의해, 또는 이들의 조합들로 집합적으로 실행되는 코드(예컨대, 실행 가능 명령들, 하나 이상의 컴퓨터 프로그램들, 또는 하나 이상의 애플리케이션들)로서 구현될 수 있다. 위에서 언급된 바와 같이, 코드는 예를 들어, 하나 이상의 프로세서들에 의해 실행 가능한 복수의 명령들을 포함하는 컴퓨터 프로그램의 형태로, 컴퓨터 판독 가능 또는 기계 판독 가능 저장 매체 상에 저장될 수 있다. 컴퓨터 판독 가능 또는 기계 판독 가능 저장 매체는 비-일시적일 수 있다.
[0160] 도 12는 본 명세서에서 설명되는 기법들 중 하나 이상을 수행하는 데 사용될 수 있는 컴퓨팅 디바이스의 부분들을 포함하는 예시적인 컴퓨팅 디바이스(1200)를 예시한다. 도 12에 예시된 컴퓨팅 디바이스는 장면 추정 시스템(120)과 같은 임의의 컴퓨터화된 시스템의 일부로서 통합될 수 있다. 일부 예들에서, 컴퓨팅 디바이스(1200)는 본 명세서에서 설명되는 장면 추정 시스템(120) 또는 관련 툴을 실행하는 컴퓨팅 디바이스, 또는 모바일 디바이스의 컴포넌트들 중 일부를 나타낼 수 있다. 컴퓨팅 디바이스(1200)의 예들은 데스크톱들, 워크스테이션들, 개인용 컴퓨터들, 수퍼컴퓨터들, 비디오 게임 콘솔들, 태블릿들, 스마트폰들, 랩톱들, 넷북들 또는 다른 휴대용 디바이스들을 포함한다(그러나 이에 제한되지 않음). 도 12는 본 명세서에서 설명되는 바와 같은 다양한 다른 실시예들에 의해 제공되는 방법들을 수행할 수 있고 그리고/또는 호스트 컴퓨팅 디바이스, 원격 키오스크/단말기, 판매 시점 디바이스, 모바일 다기능 디바이스, 셋톱 박스 및/또는 컴퓨팅 디바이스로서 기능할 수 있는 컴퓨팅 디바이스(1200)의 일 실시예의 개략적인 예시를 제공한다. 도 12는 단지 다양한 컴포넌트들의 일반화된 예시를 제공할 뿐이라고 여겨지며, 이러한 컴포넌트들 중 임의의 또는 모든 컴포넌트가 적절히 이용될 수 있다. 따라서 도 12는 개개의 시스템 엘리먼트들이 상대적으로 분리된 또는 상대적으로 더 집적된 방식으로 어떻게 구현될 수 있는지를 광범위하게 예시한다.
[0161] 컴퓨팅 디바이스(1200)는 버스(1205)를 통해 전기적으로 결합될 수 있는(또는 다른 식으로 적절히 통신할 수 있는) 하드웨어 엘리먼트들을 포함하는 것으로 도시된다. 하드웨어 엘리먼트들은, 하나 이상의 범용 프로세서들 및/또는 하나 이상의 특수 목적 프로세서들(이를테면, 디지털 신호 프로세싱 칩들, 그래픽 가속 프로세서들 등)을 제한 없이 포함하는 하나 이상의 프로세서들(1210); 카메라, 센서들(1250), 마우스, 키보드 등을 제한 없이 포함할 수 있는 하나 이상의 입력 디바이스들(1215); 및 디스플레이 유닛, 프린터 등을 제한 없이 포함할 수 있는 하나 이상의 출력 디바이스들(1220)을 포함할 수 있다.
[0162] 컴퓨팅 디바이스(1200)는 하나 이상의 비-일시적 저장 디바이스들(1225)을 추가로 포함(그리고/또는 이들과 통신)할 수 있는데, 이들은 로컬 및/또는 네트워크 액세스 가능 저장소를 제한 없이 포함할 수 있고, 그리고/또는 디스크 드라이브, 드라이브 어레이, 광 저장 디바이스, 고체 형태 저장 디바이스, 이를테면 랜덤 액세스 메모리("RAM"), 및/또는 판독 전용 메모리("ROM")(이들은 프로그래밍 가능할 수 있거나, 플래시 업데이트 가능할 수 있는 등이 가능함)를 제한 없이 포함할 수 있다. 이러한 저장 디바이스들은 다양한 파일 시스템들, 데이터베이스 구조들 등을 제한 없이 포함하는 임의의 적절한 데이터 저장소를 구현하도록 구성될 수 있다.
[0163] 컴퓨팅 디바이스(1200)는 또한 통신 서브시스템(1230)을 포함할 수도 있다. 통신 서브시스템(1230)은 데이터를 수신 및 송신하기 위한 트랜시버 또는 유선 및/또는 무선 매체를 포함할 수 있다. 통신 서브시스템(1230)은 또한, 모뎀, 네트워크 카드(무선 또는 유선), 적외선 통신 디바이스, 무선 통신 디바이스 및/또는 칩셋(이를테면, Bluetooth™ 디바이스, 802.11 디바이스, WiFi 디바이스, WiMax 디바이스, 셀룰러 통신 설비들 등) 등을 제한 없이 포함할 수 있다. 통신 서브시스템(1230)은 (한 가지 예를 들자면, 아래에서 설명되는 네트워크와 같은) 네트워크, 다른 컴퓨팅 디바이스들, 및/또는 본 명세서에서 설명되는 임의의 다른 디바이스들과 데이터가 교환될 수 있게 할 수 있다. 많은 실시예들에서, 컴퓨팅 디바이스(1200)는 위에서 설명된 바와 같이, RAM 또는 ROM 디바이스를 포함할 수 있는 비-일시적 작동 메모리(1235)를 더 포함할 것이다.
[0164] 컴퓨팅 디바이스(1200)는 운영 시스템(1240), 디바이스 드라이버들, 실행 가능 라이브러리들, 및/또는 다른 코드, 이를테면 하나 이상의 애플리케이션 프로그램들(1245)을 포함하는, 현재 작업 메모리(1235) 내에 위치되어 있는 것으로 도시된 소프트웨어 엘리먼트들을 포함할 수 있는데, 이들은 다양한 실시예들에 의해 제공되는 컴퓨터 프로그램들을 포함할 수 있고, 그리고/또는 본 명세서에서 설명한 바와 같이, 다른 실시예들에 의해 제공되는 시스템들을 구성하고 그리고/또는 방법들을 구현하도록 설계될 수 있다. 단지 예로서, 앞서 논의된 방법(들)에 대해 설명된 하나 이상의 프로시저들은, 컴퓨터(및/또는 컴퓨터 내의 프로세서)에 의해 실행 가능한 코드 및/또는 명령들로서 구현될 수 있으며, 그 다음, 일 양상에서, 이러한 코드 및/또는 명령들은 설명된 방법들에 따라 하나 이상의 동작들을 수행하도록 범용 컴퓨터(또는 다른 디바이스)를 구성 및/또는 적응시키기 위해 사용될 수 있다.
[0165] 이러한 명령들 및/또는 코드의 세트는 앞서 설명한 저장 디바이스(들)(1225)와 같은 컴퓨터 판독 가능 저장 매체 상에 저장될 수도 있다. 일부 경우들에서, 저장 매체는 컴퓨팅 디바이스(1200)와 같은 컴퓨팅 디바이스 내에 통합될 수도 있다. 다른 실시예들에서, 저장 매체는 컴퓨팅 디바이스와 별개일 수도 있고(예컨대, 콤팩트 디스크와 같은 착탈식 매체), 그리고/또는 설치 패키지로 제공될 수도 있어, 저장 매체가 그에 저장된 명령들/코드로 범용 컴퓨터를 프로그래밍하고, 구성하고 그리고/또는 적응시키는 데 사용될 수 있다. 이러한 명령들은 컴퓨팅 디바이스(1200)에 의해 실행될 수 있는 실행 가능 코드의 형태를 취할 수도 있고, 그리고/또는 소스 및/또는 설치 가능 코드의 형태를 취할 수도 있는데, 이러한 코드는 (예컨대, 다양한 일반적으로 이용 가능한 컴파일러들, 설치 프로그램들, 압축/압축 해제 유틸리티들 등 중 임의의 것을 이용한) 컴퓨팅 디바이스(1200) 상에서의 컴필레이션 및/또는 설치시, 이후에 실행 가능 코드의 형태를 취한다.
[0166] 특정 요건들에 따라 실질적인 변형들이 이루어질 수 있다. 예를 들어, 커스터마이징된 하드웨어가 또한 사용될 수도 있고, 그리고/또는 특정 엘리먼트들이 하드웨어, (애플릿들 등과 같은 휴대용 소프트웨어를 포함하는) 소프트웨어, 또는 이 둘 모두로 구현될 수도 있다. 또한, 네트워크 입력/출력 디바이스들과 같은 다른 컴퓨팅 디바이스들(1200)에 대한 접속이 이용될 수 있다.
[0167] 일부 실시예들은 본 개시내용에 따른 방법들을 수행하기 위해 컴퓨팅 디바이스(이를테면, 컴퓨팅 디바이스(1200))를 이용할 수 있다. 예를 들어, 설명되는 방법들의 프로시저들 중 일부 또는 전부는 프로세서(1210)가 작업 메모리(1235)에 포함된 (운영 시스템(1240) 및/또는 다른 코드, 이를테면 애플리케이션 프로그램(1245)에 통합될 수도 있는) 하나 이상의 명령들의 하나 이상의 시퀀스들을 실행하는 것에 대한 응답으로 컴퓨팅 디바이스(1200)에 의해 수행될 수 있다. 이러한 명령들은 저장 디바이스(들)(1225) 중 하나 이상과 같은 다른 컴퓨터 판독 가능 매체로부터 작업 메모리(1235)로 판독될 수 있다. 단지 예로서, 작업 메모리(1235)에 포함된 명령들의 시퀀스들의 실행은 프로세서(들)(1210)로 하여금, 본 명세서에서 설명되는 방법들의 하나 이상의 프로시저들을 수행하게 할 수도 있다.
[0168] "컴퓨터 판독 가능 매체"라는 용어는 휴대용 또는 비-휴대용 저장 디바이스들, 광 저장 디바이스들, 및 명령(들) 및/또는 데이터를 저장하거나 포함하거나 전달할 수 있는 다양한 다른 매체들을 다양한 다른 매체들을 포함한다(그러나 이에 제한되지 않음). 컴퓨터 판독 가능 매체는 데이터가 저장될 수 있고 무선으로 또는 유선 연결들을 통해 전파되는 반송파들 및/또는 일시적 전자 신호들을 포함하지 않는 비-일시적 매체를 포함할 수 있다. 비-일시적 매체의 예들은 자기 디스크 또는 테이프, CD(compact disk) 또는 DVD(digital versatile disk)와 같은 광학 저장 매체, 플래시 메모리, 메모리 또는 메모리 디바이스들을 포함할 수 있다(그러나 이에 제한되지 않음). 컴퓨터 판독 가능 매체 상에는 프로시저, 함수, 서브프로그램, 프로그램, 루틴, 서브루틴, 모듈, 소프트웨어 패키지, 클래스, 또는 명령들, 데이터 구조들 또는 프로그램 명령문들의 임의의 조합을 나타낼 수 있는 코드 및/또는 기계 실행 가능 명령들이 저장될 수 있다. 코드 세그먼트는 정보, 데이터, 인수들, 파라미터들 또는 메모리 콘텐츠를 전달 및/또는 수신하여 다른 코드 세그먼트 또는 하드웨어 회로에 결합될 수 있다. 정보, 인수들, 파라미터들, 데이터 등은 메모리 공유, 메시지 전달, 토큰 전달, 네트워크 송신 등을 포함하는 임의의 적당한 수단을 통해 전달, 포워딩 또는 송신될 수 있다.
[0169] 일부 실시예들에서, 컴퓨터 판독 가능 저장 디바이스들, 매체들 및 메모리들은 비트 스트림 등을 포함하는 케이블 또는 무선 신호를 포함할 수 있다 .그러나 언급될 때, 비-일시적인 컴퓨터 판독 가능 저장 매체들은 에너지, 반송파 신호들, 전자파들, 및 신호들 그 자체와 같은 매체들을 명시적으로 배제한다.
[0170] 본 명세서에서 제공되는 실시예들 및 예들의 철저한 이해를 제공하기 위해, 특정 세부사항들이 위의 설명에서 제공된다. 그러나 실시예들은 이러한 특정 세부사항들 없이 실시될 수 있다고 당해 기술분야에서 통상의 지식을 가진 자에 의해 이해될 것이다. 설명의 명확성을 위해, 일부 경우들에서, 본 기술은 디바이스들, 디바이스 컴포넌트들, 소프트웨어로 구현되는 방법의 단계들 또는 루틴들, 또는 하드웨어와 소프트웨어의 조합들을 포함하는 기능 블록들을 포함하는 개별 기능 블록들을 포함하는 것으로 제시될 수 있다. 도면들에 도시된 그리고/또는 본 명세서에서 설명되는 것들 이외의 추가 컴포넌트들이 사용될 수 있다. 예를 들어, 불필요한 세부사항으로 실시예들을 모호하게 하지 않도록 회로들, 시스템들, 네트워크들, 프로세스들 및 다른 컴포넌트들은 블록도 형태로 컴포넌트들로서 도시될 수 있다. 다른 경우들에는, 실시예들을 모호하게 하는 것을 피하기 위해, 잘 알려진 회로들, 프로세스들, 알고리즘들, 구조들 및 기법들은 불필요한 세부사항 없이 도시될 수 있다.
[0171] 개별 실시예들은 위에서 흐름도, 순서도, 데이터 순서도, 구조도, 또는 블록도로서 도시된 프로세스 또는 방법으로서 설명될 수 있다. 흐름도는 순차적인 프로세스로서 동작들을 설명할 수 있지만, 동작들 중 다수는 병렬로 또는 동시에 수행될 수 있다. 또한, 동작들의 순서는 재배열될 수 있다. 프로세스는 프로세서의 동작들이 완료될 때 종료되지만 도면에 포함되지 않은 추가 단계들을 가질 수 있다. 프로세스는 방법, 함수, 프로시저, 서브루틴, 서브프로그램 등에 대응할 수 있다. 프로세스가 함수에 대응할 때, 그 종료는 호출 함수 또는 메인 함수로의 함수의 복귀에 대응할 수 있다.
[0172] 위에서 설명된 예들에 따른 프로세스들 및 방법들은 컴퓨터 판독 가능 매체들로부터 저장되거나 아니면 컴퓨터 판독 가능 매체들로부터 이용 가능한 컴퓨터 실행 가능 명령들을 사용하여 구현될 수 있다. 이러한 명령들은 예를 들어, 범용 컴퓨터, 특수 목적 컴퓨터 또는 프로세싱 디바이스로 하여금 특정 기능 또는 기능들의 그룹을 수행하게 하거나 아니면 구성하는 명령들 및 데이터를 포함할 수 있다. 사용되는 컴퓨터 자원들의 부분들은 네트워크를 통해 액세스 가능할 수 있다. 컴퓨터 실행 가능 명령들은 예를 들어, 바이너리들, 중간 포맷 명령들, 이를테면 어셈블리 언어, 펌웨어, 소스 코드 등일 수 있다. 설명되는 예들에 따른 방법들 동안 생성된 정보, 명령들, 및/또는 사용되는 정보를 저장하는 데 사용될 수 있는 컴퓨터 판독 가능 매체들의 예들은 자기 또는 광 디스크들, 플래시 메모리, 비휘발성 메모리가 제공된 USB 디바이스들, 네트워크킹된 저장 디바이스들 등을 포함한다.
[0173] 이러한 개시내용들에 따른 프로세스들 및 방법들을 구현하는 디바이스들은 하드웨어, 소프트웨어, 펌웨어, 미들웨어, 마이크로코드, 하드웨어 기술 언어들, 또는 이들의 임의의 조합을 포함할 수 있고, 다양한 폼 팩터들 중 임의의 폼 팩터를 취할 수 있다. 소프트웨어, 펌웨어, 미들웨어 또는 마이크로코드로 구현될 때, 필요한 작업들을 수행하기 위한 프로그램 코드 또는 코드 세그먼트들(예를 들어, 컴퓨터 프로그램 제품)은 컴퓨터 판독 가능 또는 기계 판독 가능 매체에 저장될 수 있다. 프로세서(들)는 필요한 작업들을 수행할 수 있다. 폼 팩터들의 통상적인 예들은 랩톱들, 스마트폰들, 휴대 전화들, 태블릿 디바이스들 또는 다른 소형 폼 팩터 개인용 컴퓨터들, 개인용 디지털 보조 기기들, 랙마운트 디바이스들, 독립형 디바이스들 등을 포함한다. 본 명세서에서 설명되는 기능은 또한 주변 기기들 또는 애드인(add-in) 카드들로 구현될 수 있다. 그러한 기능은 또한 추가 예로서, 단일 디바이스에서 실행되는 상이한 프로세스들 또는 상이한 칩들 사이의 회로 기판 상에서 구현될 수 있다.
[0174] 명령들, 그러한 명령들을 전달하기 위한 매체들, 명령들을 실행하기 위한 컴퓨팅 자원들, 및 그러한 컴퓨팅 자원들을 지원하기 위한 다른 구조들은 본 개시내용에서 설명되는 기능들을 제공하기 위한 예시적인 수단들이다.
[0175] 위의 설명에서, 본 출원의 양상들은 본 출원의 특정 실시예들을 참조하여 설명되지만, 당해 기술분야에서 통상의 지식을 가진 자들은 본 출원이 이에 제한되지 않음을 인식할 것이다. 따라서 본 출원의 예시적인 실시예들이 본 명세서에서 상세히 설명되었지만, 본 발명의 개념들은 다른 식으로 다양하게 구현 및 이용될 수 있고, 첨부된 청구항들은 종래 기술에 의해 제한된 것을 제외하면, 그러한 변형들을 포함하는 것으로 해석되어야 한다고 이해되어야 한다. 위에서 설명된 애플리케이션의 다양한 특징들 및 양상들은 개별적으로 또는 공동으로 사용될 수 있다. 추가로, 실시예들은, 본 명세서의 더 넓은 사상 및 범위를 벗어나지 않으면서, 본 명세서에서 설명되는 것들 이외의 임의의 수의 환경들 및 애플리케이션들에서 이용될 수 있다. 이에 따라, 본 명세서 및 도면들은 제한적인 것이 아니라 예시적인 것으로 간주되어야 한다. 예시의 목적들로, 방법들은 특정 순서로 설명되었다. 대안적인 실시예들에서, 방법들은 설명된 것과 상이한 순서로 수행될 수 있다고 인식되어야 한다.
[0176] 당해 기술분야에서 통상의 지식을 가진 자는 본 명세서에서 사용되는 미만("<") 및 초과(">")의 심벌들 또는 용어가 본 설명의 범위를 벗어나지 않으면서, 이하("≤") 또는 이상("≤") 심벌들로 각각 대체될 수 있음을 인식할 것이다.
[0177] 컴포넌트들이 특정 동작들을 수행하도록 "구성되는" 것으로 설명되는 경우, 이러한 구성은 예를 들어, 동작을 수행하도록 전자 회로들 또는 다른 하드웨어를 설계함으로써, 동작을 수행하도록 프로그래밍 가능 전자 회로들(예컨대, 마이크로프로세서들 또는 다른 적합한 전자 회로들을 프로그래밍함으로써, 또는 이들의 임의의 조합으로 달성될 수 있다.
[0178] "~에 결합된"이라는 문구는 다른 컴포넌트에 물리적으로 직접적으로 또는 간접적으로 연결되는 임의의 컴포넌트, 및/또는 다른 컴포넌트와 직접적으로 또는 간접적으로 통신하는(예컨대, 유선 또는 무선 연결, 및/또는 다른 적절한 통신 인터페이스를 통해 다른 컴포넌트에 연결되는) 임의의 컴포넌트를 의미한다.
[0179] 세트"의 적어도 하나" 및/또는 세트의 "하나 이상"을 언급하는 청구항 언어 또는 다른 언어는, 세트의 하나의 멤버 또는 세트의 다수의 멤버들이 (임의의 조합으로) 청구항을 충족한다는 것을 표시한다. 예를 들어, "A 및 B 중 적어도 하나" 또는 "A 또는 B 중 적어도 하나"를 언급하는 청구항 언어는 A, B, 또는 A와 B를 의미한다. 다른 예에서, "A, B 및 C 중 적어도 하나" 또는 "A, B 또는 C 중 적어도 하나"를 언급하는 청구항 언어는 A, B, C, 또는 A와 B, 또는 A와 C, 또는 B와 C, 또는 A와 B와 C를 의미한다. 세트"의 적어도 하나" 및/또는 세트의 "하나 이상"이라는 언어는 세트를 그 세트에 나열된 항목들로 제한하지 않는다. 예를 들어, "A 및 B 중 적어도 하나" 또는 "A 또는 B 중 적어도 하나"를 언급하는 청구항 언어는 A, B, 또는 A와 B를 의미할 수 있고, A 및 B의 세트에 나열되지 않은 항목들을 추가로 포함할 수 있다.
[0180] 본 명세서에 개시된 실시예들과 관련하여 설명된 다양한 예시적인 로직 블록들, 모듈들, 회로들 및 알고리즘 단계들은 전자 하드웨어, 컴퓨터 소프트웨어, 펌웨어, 또는 이들의 조합들로 구현될 수 있다. 하드웨어와 소프트웨어의 이러한 상호 호환성을 명확히 설명하기 위해, 각종 예시적인 컴포넌트들, 블록들, 모듈들, 회로들 및 단계들은 일반적으로 이들의 기능과 관련하여 위에서 설명되었다. 이러한 기능이 하드웨어로 구현되는지 아니면 소프트웨어로 구현되는지는 전체 시스템에 부과된 설계 제약들 및 특정 애플리케이션에 좌우된다. 당해 기술분야에서 통상의 지식을 가진 자들은 설명된 기능을 특정 출원마다 다양한 방식들로 구현할 수 있지만, 이러한 구현 결정들이 본 출원의 범위를 벗어나게 하는 것으로 해석되지는 않아야 한다.
[0181] 본 명세서에서 설명되는 기법들은 또한 전자 하드웨어, 컴퓨터 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수 있다. 이러한 기법들은 무선 통신 디바이스 핸드셋들 및 다른 디바이스들에서의 적용을 포함하여 다수의 용도들을 갖는 범용 컴퓨터들, 무선 통신 디바이스 핸드셋들 또는 집적 회로 디바이스들과 같은 다양한 디바이스들 중 임의의 디바이스에서 구현될 수 있다. 모듈들 또는 컴포넌트들로서 설명되는 임의의 특징들은 통합된 로직 디바이스로 함께 또는 개별적이지만 상호 운용 가능한 로직 디바이스들로서 별개로 구현될 수 있다. 소프트웨어로 구현된다면, 이 기법들은 적어도 부분적으로는, 실행될 때 위에서 설명된 방법들 중 하나 이상을 수행하는 명령들을 포함하는 프로그램 코드를 포함하는 컴퓨터 판독 가능 데이터 저장 매체에 의해 실현될 수 있다. 컴퓨터 판독 가능 데이터 저장 매체는 패키징 재료들을 포함할 수 있는 컴퓨터 프로그램 제품의 일부를 형성할 수 있다. 컴퓨터 판독 가능 매체는 메모리 또는 데이터 저장 매체들, 이를테면 RAM(random access memory), 이를테면 SDRAM(synchronous dynamic random access memory), ROM(read-only memory), NVRAM(non-volatile random access memory), EEPROM(electrically erasable programmable read-only memory), FLASH 메모리, 자기 또는 광 데이터 저장 매체들 등을 포함할 수 있다. 추가로 또는 대안으로, 이 기법들은 적어도 부분적으로는, 명령들 또는 데이터 구조들의 형태로 프로그램 코드를 운반 또는 전달하고 컴퓨터, 이를테면 전파 신호들 또는 파들 의해 액세스, 판독 및/또는 실행될 수 있는 컴퓨터 판독 가능 통신 매체에 의해 실현될 수 있다.
[0182] 프로그램 코드는 하나 이상의 프로세서들, 이를테면 하나 이상의 DSP(digital signal processor)들, 범용 마이크로프로세서들, ASIC(application specific integrated circuit)들, FPGA(field programmable logic array)들 또는 다른 대등한 집적 또는 이산 로직 회로을 포함할 수 있는 프로세서에 의해 실행될 수 있다. 그러한 프로세서는 본 개시내용에서 설명되는 기법들 중 임의의 기법을 수행하도록 구성될 수 있다. 범용 프로세서는 마이크로프로세서일 수 있고; 대안으로, 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로컨트롤러 또는 상태 머신일 수 있다. 프로세서는 또한 컴퓨팅 디바이스들의 조합, 예컨대 DSP와 마이크로프로세서의 조합, 복수의 마이크로프로세서들, DSP 코어와 결합된 하나 이상의 마이크로프로세서들, 또는 임의의 다른 이러한 구성으로서 구현될 수 있다. 이에 따라, 본 명세서에서 사용되는 "프로세서"라는 용어는 앞서 말한 구조, 앞서 말한 구조의 임의의 조합, 또는 본 명세서에서 설명되는 기법들의 구현에 적합한 임의의 다른 구조 또는 장치 중 임의의 것을 의미할 수 있다.
[0183] 본 개시내용의 예시적인 예들은 다음을 포함한다:
[0184] 양상 1: 하나 이상의 환경 레이아웃들을 결정하기 위한 장치는: 적어도 하나의 메모리; 및 적어도 하나의 메모리에 결합된 적어도 하나의 프로세서를 포함하며, 적어도 하나의 프로세서는: 환경의 하나 이상의 이미지들 및 하나 이상의 이미지들과 연관된 깊이 정보를 획득하고; 환경의 하나 이상의 이미지들 및 하나 이상의 이미지들과 연관된 깊이 정보에 기초하여, 환경에 대응하는 한 세트의 후보 레이아웃들 및 한 세트의 후보 객체들을 검출하고; 한 세트의 후보 레이아웃들 및 한 세트의 후보 객체들에 대응하는 노드들을 포함하는 구조화된 트리를 생성하고; 구조화된 트리에서 객체들과 레이아웃들의 조합을 선택하고; 그리고 구조화된 트리에서 객체들과 레이아웃들의 조합에 기초하여 환경의 3D(three-dimensional) 레이아웃을 결정하도록 구성된다.
[0185] 양상 2: 양상 1의 장치에서, 구조화된 트리에서 객체들과 레이아웃들의 조합을 선택하기 위해, 적어도 하나의 프로세서는 MCTS(Monte-Carlo Tree Search) 알고리즘을 사용하여 구조화된 트리의 탐색을 수행하도록 구성된다.
[0186] 양상 3: 양상 2의 장치에서, MCTS 알고리즘은 적응된 MCTS 알고리즘을 포함하며, 적응된 MCTS 알고리즘은 구조화된 트리에서 탐색된 각각의 노드에 적합도 값을 할당하고, 적합도 값은 노드와 연관된 객체 및 레이아웃 중 적어도 하나가 환경에 존재할 가능성을 나타낸다.
[0187] 양상 4: 양상 3의 장치에서, 적어도 하나의 프로세서는 구조화된 트리의 각각의 노드에 대한 스코어를 생성하도록 추가로 구성되며, 스코어는 적응된 MCTS 알고리즘에 기반하고, 스코어는 구조화된 트리의 각각의 노드에서 하나 이상의 뷰들에 대해 할당된 가중치, MCTS에 대해 도출된 탐색 항, 및 적합도 값을 포함한다.
[0188] 양상 5: 양상 4의 장치에서, 가중치는 하나 이상의 뷰들에 대한 뷰 스코어에 적어도 부분적으로 기초하며, 뷰에 대한 뷰 스코어는 뷰와 연관된 노드와 연관된 후보와 뷰와 연관된 하나 이상의 이미지들 및 깊이 정보로부터의 데이터 사이의 일관성 측정을 정의한다.
[0190] 양상 6: 양상 1 내지 양상 5 중 어느 한 양상의 장치에서, 한 세트의 후보 레이아웃들은 한 세트의 3D 레이아웃 모델들 및 연관된 포즈들을 포함하고, 한 세트의 후보 객체들은 한 세트의 3D 객체 모델들 및 연관된 포즈들을 포함한다.
[0191] 양상 7: 양상 1 내지 양상 6 중 어느 한 양상의 장치에서, 하나 이상의 이미지들은 하나 이상의 RGB(red-green-blue) 이미지들을 포함하고, 깊이 정보는 환경의 하나 이상의 깊이 맵들을 포함한다.
[0192] 양상 8: 양상 1 내지 양상 7 중 어느 한 양상의 장치에서, 하나 이상의 이미지들 및 깊이 정보는 하나 이상의 RGB-D(RGB-Depth) 이미지들을 포함한다.
[0193] 양상 9: 양상 1 내지 양상 8 중 어느 한 양상의 장치에서, 한 세트의 후보 레이아웃들을 여기서 검출하는 것은: 하나 이상의 이미지들과 연관된 포인트 클라우드의 시맨틱 세그먼트화에 기초하여, 환경의 벽 및 환경의 바닥 중 적어도 하나에 대응하는 3D 포인트들을 식별하는 것; 3D 포인트들에 기초하여 3D 평면들을 생성하는 것; 3D 평면들 중 적어도 일부 3D 평면들 간의 교차점들에 기초하여 다각형들을 생성하는 것; 그리고 다각형들에 기초하여 레이아웃 후보들을 결정하는 것을 포함한다.
[0194] 양상 10: 양상 1 내지 양상 9 중 어느 한 양상의 장치에서, 한 세트의 후보 객체들을 검출하는 것은: 환경에 대해 생성된 포인트 클라우드의 객체들에 대한 3D 바운딩 박스 제안들을 검출하는 것; 그리고 각각의 바운딩 박스 제안에 대해, 데이터세트로부터 한 세트의 후보 객체 모델들을 리트리브하는 것을 포함한다.
[0195] 양상 11: 양상 1 내지 양상 10 중 어느 한 양상의 장치에서, 구조화된 트리는 다수의 레벨들을 포함하며, 각각의 레벨은 환경과 연관된 상이한 세트의 양립 불가능한 후보들을 포함하고, 상이한 세트의 양립 불가능한 후보들은 양립 불가능한 객체들 및 양립 불가능한 레이아웃들 중 적어도 하나를 포함한다.
[0196] 양상 12: 양상 11의 장치에서, 상이한 세트의 양립 불가능한 후보들 중 2개 이상의 후보들은, 2개 이상의 후보들이 교차하거나 공간상 이웃들이 아닐 때는 양립 불가능하다.
[0197] 양상 13: 양상 1 내지 양상 12 중 어느 한 양상의 장치에서, 환경은 3D 장면을 포함한다.
[0198] 양상 14: 양상 1 내지 양상 13 중 어느 한 양상의 장치에서, 한 세트의 후보 레이아웃들 및 한 세트의 후보 객체들의 각각의 후보는 교차하는 평면들에 대응하는 다각형을 포함한다.
[0199] 양상 15: 양상 14의 장치에서, 교차하는 평면들은 하나 이상의 2차원 평면들을 포함한다.
[0200] 양상 16: 양상 14 또는 양상 15의 장치에서, 다각형은 3차원 다각형을 포함한다.
[0201] 양상 17: 양상 1 내지 양상 16 중 어느 한 양상의 장치에서, 장치는 하나 이상의 이미지들을 캡처하기 위한 카메라를 포함하는 모바일 디바이스이다.
[0202] 양상 18: 양상 1 내지 양상 17 중 어느 한 양상의 장치에서, 적어도 하나의 프로세서는: 환경의 결정된 3D 레이아웃에 기초하여 가상 콘텐츠를 생성하도록 구성된다.
[0203] 양상 19: 양상 1 내지 양상 18 중 어느 한 양상의 장치에서, 적어도 하나의 프로세서는: 환경의 결정된 3D 레이아웃을 컴퓨팅 디바이스와 공유하도록 구성된다.
[0204] 양상 20: 하나 이상의 환경 레이아웃들을 결정하기 위한 방법은: 환경의 하나 이상의 이미지들 및 하나 이상의 이미지들과 연관된 깊이 정보를 획득하는 단계; 환경의 하나 이상의 이미지들 및 하나 이상의 이미지들과 연관된 깊이 정보에 기초하여, 환경에 대응하는 한 세트의 후보 레이아웃들 및 한 세트의 후보 객체들을 검출하는 단계; 한 세트의 후보 레이아웃들 및 한 세트의 후보 객체들에 대응하는 노드들을 포함하는 구조화된 트리를 생성하는 단계; 구조화된 트리에서 객체들과 레이아웃들의 조합을 선택하는 단계; 및 구조화된 트리에서 객체들과 레이아웃들의 조합에 기초하여 환경의 3D(three-dimensional) 레이아웃을 결정하는 단계를 포함한다.
[0205] 양상 21: 양상 20의 방법에서, 구조화된 트리에서 객체들과 레이아웃들의 조합을 선택하는 단계는 MCTS(Monte-Carlo Tree Search) 알고리즘을 사용한 구조화된 트리의 탐색에 기반한다.
[0206] 양상 22: 양상 21의 방법에서, MCTS 알고리즘은 적응된 MCTS 알고리즘을 포함하며, 적응된 MCTS 알고리즘은 구조화된 트리에서 탐색된 각각의 노드에 적합도 값을 할당하고, 적합도 값은 노드와 연관된 객체 및 레이아웃 중 적어도 하나가 환경에 존재할 가능성을 나타낸다.
[0207] 양상 23: 양상 22의 방법은, 구조화된 트리의 각각의 노드에 대한 스코어를 생성하는 단계를 더 포함하며, 스코어는 적응된 MCTS 알고리즘에 기반하고, 스코어는 구조화된 트리의 각각의 노드에서 하나 이상의 뷰들에 대해 할당된 가중치, MCTS에 대해 도출된 탐색 항, 및 적합도 값을 포함한다.
[0208] 양상 24: 양상 23의 방법에서, 가중치는 하나 이상의 뷰들에 대한 뷰 스코어에 적어도 부분적으로 기초하며, 뷰에 대한 뷰 스코어는 뷰와 연관된 노드와 연관된 후보와 뷰와 연관된 하나 이상의 이미지들 및 깊이 정보로부터의 데이터 사이의 일관성 측정을 정의한다.
[0209] 양상 25: 양상 20의 방법에서, 한 세트의 후보 레이아웃들은 한 세트의 3D 레이아웃 모델들 및 연관된 포즈들을 포함하고, 한 세트의 후보 객체들은 한 세트의 3D 객체 모델들 및 연관된 포즈들을 포함한다.
[0210] 양상 26: 양상 20 또는 양상 25의 방법에서, 하나 이상의 이미지들은 하나 이상의 RGB(red-green-blue) 이미지들을 포함하고, 깊이 정보는 환경의 하나 이상의 깊이 맵들을 포함한다.
[0211] 양상 27: 양상 20 내지 양상 26 중 어느 한 양상의 방법에서, 하나 이상의 이미지들 및 깊이 정보는 하나 이상의 RGB-D(RGB-Depth) 이미지들을 포함한다.
[0212] 양상 28: 양상 20 내지 양상 27 중 어느 한 양상의 방법에서, 한 세트의 후보 레이아웃들을 검출하는 단계는: 하나 이상의 이미지들과 연관된 포인트 클라우드의 시맨틱 세그먼트화에 기초하여, 환경의 벽 및 환경의 바닥 중 적어도 하나에 대응하는 3D 포인트들을 식별하는 것; 3D 포인트들에 기초하여 3D 평면들을 생성하는 단계; 3D 평면들 중 적어도 일부 3D 평면들 간의 교차점들에 기초하여 다각형들을 생성하는 단계; 및 다각형들에 기초하여 레이아웃 후보들을 결정하는 단계를 포함한다.
[0213] 양상 29: 양상 20 내지 양상 28 중 어느 한 양상의 방법에서, 한 세트의 후보 객체들을 검출하는 단계는: 환경에 대해 생성된 포인트 클라우드의 객체들에 대한 3D 바운딩 박스 제안들을 검출하는 단계; 및 각각의 바운딩 박스 제안에 대해, 데이터세트로부터 한 세트의 후보 객체 모델들을 리트리브하는 단계를 포함한다.
[0214] 양상 30: 양상 20 내지 양상 29 중 어느 한 양상의 방법에서, 구조화된 트리는 다수의 레벨들을 포함하며, 각각의 레벨은 환경과 연관된 상이한 세트의 양립 불가능한 후보들을 포함하고, 상이한 세트의 양립 불가능한 후보들은 양립 불가능한 객체들 및 양립 불가능한 레이아웃들 중 적어도 하나를 포함한다.
[0215] 양상 31: 양상 30의 방법에서, 상이한 세트의 양립 불가능한 후보들 중 2개 이상의 후보들은, 2개 이상의 후보들이 교차하거나 공간상 이웃들이 아닐 때는 양립 불가능하다.
[0216] 양상 32: 양상 20 내지 양상 31 중 어느 한 양상의 방법에서, 환경은 3D 장면을 포함한다.
[0217] 양상 33: 양상 20 내지 양상 32 중 어느 한 양상의 방법에서, 한 세트의 레이아웃 후보들 및 한 세트의 객체 후보들의 각각의 후보는 교차하는 평면들에 대응하는 다각형을 포함한다.
[0218] 양상 34: 양상 33의 방법에서, 교차하는 평면들은 하나 이상의 2차원 평면들을 포함한다.
[0219] 양상 35: 양상 33 또는 양상 34의 방법에서, 다각형은 3차원 다각형을 포함한다.
[0220] 양상 36: 양상 20 내지 양상 35 중 어느 한 양상의 방법은, 환경의 결정된 3D 레이아웃에 기초하여 가상 콘텐츠를 생성하는 단계를 더 포함한다.
[0221] 양상 37: 양상 20 내지 양상 36 중 어느 한 양상의 방법은, 환경의 결정된 3D 레이아웃을 컴퓨팅 디바이스와 공유하는 단계를 더 포함한다.
[0222] 양상 38: 비-일시적 컴퓨터 판독 가능 저장 매체 상에서 명령들이 저장되며, 명령들은 하나 이상의 프로세서들에 의해 실행될 때, 하나 이상의 프로세서들로 하여금, 양상 1 내지 양상 37 중 어느 한 양상에 따른 방법을 수행하게 한다.
[0223] 양상 39: 장치는 양상 1 내지 양상 37 중 어느 한 양상에 따른 방법을 수행하기 위한 수단을 포함한다.

Claims (30)

  1. 하나 이상의 환경 레이아웃들을 결정하기 위한 장치로서,
    적어도 하나의 메모리; 및
    상기 적어도 하나의 메모리에 결합된 적어도 하나의 프로세서를 포함하며,
    상기 적어도 하나의 프로세서는:
    환경의 하나 이상의 이미지들 및 상기 하나 이상의 이미지들과 연관된 깊이 정보에 기초하여, 상기 환경에 대응하는 한 세트의 후보 레이아웃들 및 한 세트의 후보 객체들을 검출하고;
    상기 한 세트의 후보 레이아웃들 및 상기 한 세트의 후보 객체들에 대응하는 노드들을 포함하는 구조화된 트리를 생성하고;
    상기 구조화된 트리에서 객체들과 레이아웃들의 조합을 선택하고; 그리고
    상기 구조화된 트리에서 상기 객체들과 레이아웃들의 조합에 기초하여 상기 환경의 3D(three-dimensional) 레이아웃을 결정하도록 구성되는,
    하나 이상의 환경 레이아웃들을 결정하기 위한 장치.
  2. 제1 항에 있어서,
    상기 구조화된 트리에서 상기 객체들과 레이아웃들의 조합을 선택하기 위해, 상기 적어도 하나의 프로세서는 MCTS(Monte-Carlo Tree Search) 알고리즘을 사용하여 상기 구조화된 트리의 탐색을 수행하도록 구성되는,
    하나 이상의 환경 레이아웃들을 결정하기 위한 장치.
  3. 제2 항에 있어서,
    상기 MCTS 알고리즘은 적응된 MCTS 알고리즘을 포함하며,
    상기 적응된 MCTS 알고리즘은 상기 구조화된 트리에서 탐색된 각각의 노드에 적합도(fitness) 값을 할당하고,
    상기 적합도 값은 상기 노드와 연관된 객체 및 레이아웃 중 적어도 하나가 상기 환경에 존재할 가능성을 나타내는,
    하나 이상의 환경 레이아웃들을 결정하기 위한 장치.
  4. 제3 항에 있어서,
    상기 적어도 하나의 프로세서는 상기 구조화된 트리의 각각의 노드에 대한 스코어(score)를 생성하도록 추가로 구성되며,
    상기 스코어는 상기 적응된 MCTS 알고리즘에 기반하고,
    상기 스코어는 상기 구조화된 트리의 각각의 노드에서 하나 이상의 뷰(view)들에 대해 할당된 가중치, MCTS에 대해 도출된 탐구 항, 및 상기 적합도 값을 포함하는,
    하나 이상의 환경 레이아웃들을 결정하기 위한 장치.
  5. 제4 항에 있어서,
    상기 가중치는 상기 하나 이상의 뷰들에 대한 뷰 스코어에 적어도 부분적으로 기초하며, 뷰에 대한 상기 뷰 스코어는 상기 뷰와 연관된 노드와 연관된 후보와 상기 뷰와 연관된 하나 이상의 이미지들 및 깊이 정보로부터의 데이터 사이의 일관성 측정을 정의하는,
    하나 이상의 환경 레이아웃들을 결정하기 위한 장치.
  6. 제1 항에 있어서,
    상기 한 세트의 후보 레이아웃들은 한 세트의 3D 레이아웃 모델들 및 연관된 포즈들을 포함하고,
    상기 한 세트의 후보 객체들은 한 세트의 3D 객체 모델들 및 연관된 포즈들을 포함하는,
    하나 이상의 환경 레이아웃들을 결정하기 위한 장치.
  7. 제1 항에 있어서,
    상기 하나 이상의 이미지들은 하나 이상의 RGB(red-green-blue) 이미지들을 포함하고,
    상기 깊이 정보는 상기 환경의 하나 이상의 깊이 맵들을 포함하는,
    하나 이상의 환경 레이아웃들을 결정하기 위한 장치.
  8. 제1 항에 있어서,
    상기 하나 이상의 이미지들 및 상기 깊이 정보는 하나 이상의 RGB-D(RGB-Depth) 이미지들을 포함하는,
    하나 이상의 환경 레이아웃들을 결정하기 위한 장치.
  9. 제1 항에 있어서,
    상기 한 세트의 후보 레이아웃들을 검출하는 것은:
    상기 하나 이상의 이미지들과 연관된 포인트 클라우드의 시맨틱 세그먼트화에 기초하여, 상기 환경의 벽 및 상기 환경의 바닥 중 적어도 하나에 대응하는 3D 포인트들을 식별하는 것;
    상기 3D 포인트들에 기초하여 3D 평면들을 생성하는 것;
    상기 3D 평면들 중 적어도 일부 3D 평면들 간의 교차점들에 기초하여 다각형들을 생성하는 것; 그리고
    상기 다각형들에 기초하여 레이아웃 후보들을 결정하는 것을 포함하는,
    하나 이상의 환경 레이아웃들을 결정하기 위한 장치.
  10. 제1 항에 있어서,
    상기 한 세트의 후보 객체들을 검출하는 것은:
    상기 환경에 대해 생성된 포인트 클라우드의 객체들에 대한 3D 바운딩 박스 제안들을 검출하는 것; 그리고
    각각의 바운딩 박스 제안에 대해, 데이터세트로부터 한 세트의 후보 객체 모델들을 리트리브하는 것을 포함하는,
    하나 이상의 환경 레이아웃들을 결정하기 위한 장치.
  11. 제1 항에 있어서,
    상기 구조화된 트리는 다수의 레벨들을 포함하며,
    각각의 레벨은 상기 환경과 연관된 상이한 세트의 양립 불가능한 후보들을 포함하고,
    상기 상이한 세트의 양립 불가능한 후보들은 양립 불가능한 객체들 및 양립 불가능한 레이아웃들 중 적어도 하나를 포함하는,
    하나 이상의 환경 레이아웃들을 결정하기 위한 장치.
  12. 제11 항에 있어서,
    상기 상이한 세트의 양립 불가능한 후보들 중 2개 이상의 후보들은, 상기 2개 이상의 후보들이 교차하거나 공간상 이웃들이 아닐 때는 양립 불가능한,
    하나 이상의 환경 레이아웃들을 결정하기 위한 장치.
  13. 제1 항에 있어서,
    상기 환경은 3D 장면을 포함하는,
    하나 이상의 환경 레이아웃들을 결정하기 위한 장치.
  14. 제1 항에 있어서,
    상기 한 세트의 후보 레이아웃들 및 상기 한 세트의 후보 객체들의 각각의 후보는 교차하는 평면들에 대응하는 다각형을 포함하는,
    하나 이상의 환경 레이아웃들을 결정하기 위한 장치.
  15. 제14 항에 있어서,
    상기 교차하는 평면들은 하나 이상의 2차원 평면들을 포함하는,
    하나 이상의 환경 레이아웃들을 결정하기 위한 장치.
  16. 제14 항에 있어서,
    상기 다각형은 3차원 다각형을 포함하는,
    하나 이상의 환경 레이아웃들을 결정하기 위한 장치.
  17. 제1 항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 환경의 결정된 3D 레이아웃에 기초하여 가상 콘텐츠를 생성하도록 구성되는,
    하나 이상의 환경 레이아웃들을 결정하기 위한 장치.
  18. 제1 항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 환경의 결정된 3D 레이아웃을 컴퓨팅 디바이스와 공유하도록 구성되는,
    하나 이상의 환경 레이아웃들을 결정하기 위한 장치.
  19. 제1 항에 있어서,
    상기 장치는 상기 하나 이상의 이미지들을 캡처하기 위한 카메라를 포함하는 모바일 디바이스인,
    하나 이상의 환경 레이아웃들을 결정하기 위한 장치.
  20. 하나 이상의 환경 레이아웃들을 결정하기 위한 방법으로서,
    환경의 하나 이상의 이미지들 및 상기 하나 이상의 이미지들과 연관된 깊이 정보에 기초하여, 상기 환경에 대응하는 한 세트의 후보 레이아웃들 및 한 세트의 후보 객체들을 검출하는 단계;
    상기 한 세트의 후보 레이아웃들 및 상기 한 세트의 후보 객체들에 대응하는 노드들을 포함하는 구조화된 트리를 생성하는 단계;
    상기 구조화된 트리에서 객체들과 레이아웃들의 조합을 선택하는 단계; 및
    상기 구조화된 트리에서 객체들과 레이아웃들의 조합에 기초하여 환경의 3D(three-dimensional) 레이아웃을 결정하는 단계를 포함하는,
    하나 이상의 환경 레이아웃들을 결정하기 위한 방법.
  21. 제20 항에 있어서,
    상기 구조화된 트리에서 상기 객체들과 레이아웃들의 조합을 선택하는 단계는 MCTS(Monte-Carlo Tree Search) 알고리즘을 사용한 상기 구조화된 트리의 탐색에 기반하는,
    하나 이상의 환경 레이아웃들을 결정하기 위한 방법.
  22. 제21 항에 있어서,
    상기 MCTS 알고리즘은 적응된 MCTS 알고리즘을 포함하며,
    상기 적응된 MCTS 알고리즘은 상기 구조화된 트리에서 탐색된 각각의 노드에 적합도 값을 할당하고,
    상기 적합도 값은 상기 노드와 연관된 객체 및 레이아웃 중 적어도 하나가 상기 환경에 존재할 가능성을 나타내는,
    하나 이상의 환경 레이아웃들을 결정하기 위한 방법.
  23. 제20 항에 있어서,
    상기 한 세트의 후보 레이아웃들은 한 세트의 3D 레이아웃 모델들 및 연관된 포즈들을 포함하고,
    상기 한 세트의 후보 객체들은 한 세트의 3D 객체 모델들 및 연관된 포즈들을 포함하는,
    하나 이상의 환경 레이아웃들을 결정하기 위한 방법.
  24. 제20 항에 있어서,
    상기 하나 이상의 이미지들은 하나 이상의 RGB(red-green-blue) 이미지들을 포함하고,
    상기 깊이 정보는 상기 환경의 하나 이상의 깊이 맵들을 포함하는,
    하나 이상의 환경 레이아웃들을 결정하기 위한 방법.
  25. 제20 항에 있어서,
    상기 하나 이상의 이미지들 및 상기 깊이 정보는 하나 이상의 RGB-D(RGB-Depth) 이미지들을 포함하는,
    하나 이상의 환경 레이아웃들을 결정하기 위한 방법.
  26. 제20 항에 있어서,
    상기 한 세트의 후보 레이아웃들을 검출하는 단계는:
    상기 하나 이상의 이미지들과 연관된 포인트 클라우드의 시맨틱 세그먼트화에 기초하여, 상기 환경의 벽 및 상기 환경의 바닥 중 적어도 하나에 대응하는 3D 포인트들을 식별하는 단계;
    상기 3D 포인트들에 기초하여 3D 평면들을 생성하는 단계;
    상기 3D 평면들 중 적어도 일부 3D 평면들 간의 교차점들에 기초하여 다각형들을 생성하는 단계; 및
    상기 다각형들에 기초하여 레이아웃 후보들을 결정하는 단계를 포함하는,
    하나 이상의 환경 레이아웃들을 결정하기 위한 방법.
  27. 제20 항에 있어서,
    상기 한 세트의 후보 객체들을 검출하는 단계는:
    상기 환경에 대해 생성된 포인트 클라우드의 객체들에 대한 3D 바운딩 박스 제안들을 검출하는 단계; 및
    각각의 바운딩 박스 제안에 대해, 데이터세트로부터 한 세트의 후보 객체 모델들을 리트리브하는 단계를 포함하는,
    하나 이상의 환경 레이아웃들을 결정하기 위한 방법.
  28. 제20 항에 있어서,
    상기 구조화된 트리는 다수의 레벨들을 포함하며,
    각각의 레벨은 상기 환경과 연관된 상이한 세트의 양립 불가능한 후보들을 포함하고,
    상기 상이한 세트의 양립 불가능한 후보들은 양립 불가능한 객체들 및 양립 불가능한 레이아웃들 중 적어도 하나를 포함하는,
    하나 이상의 환경 레이아웃들을 결정하기 위한 방법.
  29. 제20 항에 있어서,
    상기 환경의 결정된 3D 레이아웃에 기초하여 가상 콘텐츠를 생성하는 단계를 더 포함하는,
    하나 이상의 환경 레이아웃들을 결정하기 위한 방법.
  30. 제20 항에 있어서,
    상기 환경의 결정된 3D 레이아웃을 컴퓨팅 디바이스와 공유하는 단계를 더 포함하는,
    하나 이상의 환경 레이아웃들을 결정하기 위한 방법.
KR1020237015440A 2020-11-13 2021-11-09 장면 레이아웃 추정 KR20230111188A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202063113722P 2020-11-13 2020-11-13
US63/113,722 2020-11-13
US17/454,020 US11797724B2 (en) 2020-11-13 2021-11-08 Scene layout estimation
US17/454,020 2021-11-08
PCT/US2021/072304 WO2022104325A1 (en) 2020-11-13 2021-11-09 Scene layout estimation

Publications (1)

Publication Number Publication Date
KR20230111188A true KR20230111188A (ko) 2023-07-25

Family

ID=81586739

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237015440A KR20230111188A (ko) 2020-11-13 2021-11-09 장면 레이아웃 추정

Country Status (5)

Country Link
US (1) US11797724B2 (ko)
EP (1) EP4244824A1 (ko)
KR (1) KR20230111188A (ko)
CN (1) CN116438573A (ko)
WO (1) WO2022104325A1 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11734477B2 (en) * 2018-03-08 2023-08-22 Concurrent Technologies Corporation Location-based VR topological extrusion apparatus
CN117744196A (zh) * 2020-10-13 2024-03-22 弗莱瑞尔公司 通过自动分析传感器数据生成物理结构和环境的测量结果
US12003806B2 (en) * 2021-03-11 2024-06-04 Quintar, Inc. Augmented reality system for viewing an event with multiple coordinate systems and automatically generated model
US12028507B2 (en) 2021-03-11 2024-07-02 Quintar, Inc. Augmented reality system with remote presentation including 3D graphics extending beyond frame
US11527047B2 (en) 2021-03-11 2022-12-13 Quintar, Inc. Augmented reality system for viewing an event with distributed computing
US11657578B2 (en) 2021-03-11 2023-05-23 Quintar, Inc. Registration for augmented reality system for viewing an event
US11645819B2 (en) 2021-03-11 2023-05-09 Quintar, Inc. Augmented reality system for viewing an event with mode based on crowd sourced images
CN113240789B (zh) * 2021-04-13 2023-05-23 青岛小鸟看看科技有限公司 虚拟对象构建方法及装置
US11928783B2 (en) * 2021-12-30 2024-03-12 Snap Inc. AR position and orientation along a plane
US11887260B2 (en) 2021-12-30 2024-01-30 Snap Inc. AR position indicator
US11954762B2 (en) 2022-01-19 2024-04-09 Snap Inc. Object replacement system

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109325998B (zh) * 2018-10-08 2023-06-30 香港理工大学 一种基于点云数据的室内3d建模方法、系统及相关装置
US10956626B2 (en) * 2019-07-15 2021-03-23 Ke.Com (Beijing) Technology Co., Ltd. Artificial intelligence systems and methods for interior design

Also Published As

Publication number Publication date
US20220156426A1 (en) 2022-05-19
CN116438573A (zh) 2023-07-14
WO2022104325A1 (en) 2022-05-19
EP4244824A1 (en) 2023-09-20
US11797724B2 (en) 2023-10-24

Similar Documents

Publication Publication Date Title
US11797724B2 (en) Scene layout estimation
US11557085B2 (en) Neural network processing for multi-object 3D modeling
KR102610030B1 (ko) 큐보이드 검출을 위한 딥 러닝 시스템
EP2880633B1 (en) Animating objects using the human body
JP2021111380A (ja) 入力映像に含まれた客体の3次元ポーズの推定のためのデータを生成する方法、コンピュータシステムおよび推論モデルを構築する方法
US10726599B2 (en) Realistic augmentation of images and videos with graphics
EP3408848A1 (en) Systems and methods for extracting information about objects from scene information
US11328476B2 (en) Layout estimation using planes
KR102433857B1 (ko) 혼합 현실에서 동적 가상 콘텐츠들을 생성하기 위한 디바이스 및 방법
US11043027B2 (en) Three-dimensional graphics image processing
US11748905B2 (en) Efficient localization based on multiple feature types
CN115362478A (zh) 用于标记图像之间的空间关系的强化学习模型
Stekovic et al. General 3d room layout from a single view by render-and-compare
US11410363B2 (en) Modeling method and apparatus and apparatus using fluid animation graph
CN111739134B (zh) 虚拟角色的模型处理方法、装置及可读存储介质
Ng et al. Syntable: A synthetic data generation pipeline for unseen object amodal instance segmentation of cluttered tabletop scenes
He et al. Manhattan‐world urban building reconstruction by fitting cubes
US20230290057A1 (en) Action-conditional implicit dynamics of deformable objects
Gardias et al. Semantic Segmentation for Real-Time 3D Scene Graph Construction
CN118196277A (zh) 复制物理环境并生成3d资产用于合成场景生成
CN116524106A (zh) 一种图像标注方法、装置、设备及存储介质、程序产品
Khattak A variational approach to mapping: an exploration of map representation for SLAM

Legal Events

Date Code Title Description
N231 Notification of change of applicant