KR102390797B1 - 3d 의미론적 메시로부터의 객체 관계 추정 - Google Patents

3d 의미론적 메시로부터의 객체 관계 추정 Download PDF

Info

Publication number
KR102390797B1
KR102390797B1 KR1020200112149A KR20200112149A KR102390797B1 KR 102390797 B1 KR102390797 B1 KR 102390797B1 KR 1020200112149 A KR1020200112149 A KR 1020200112149A KR 20200112149 A KR20200112149 A KR 20200112149A KR 102390797 B1 KR102390797 B1 KR 102390797B1
Authority
KR
South Korea
Prior art keywords
semantic
objects
nodes
mesh
node
Prior art date
Application number
KR1020200112149A
Other languages
English (en)
Other versions
KR20210030869A (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 KR20210030869A publication Critical patent/KR20210030869A/ko
Application granted granted Critical
Publication of KR102390797B1 publication Critical patent/KR102390797B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2415Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on parametric or probabilistic models, e.g. based on likelihood ratio or false acceptance rate versus a false rejection rate
    • 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
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/08Volume rendering
    • 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
    • G06T5/00Image enhancement or restoration
    • G06T5/40Image enhancement or restoration by the use of histogram techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • 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/768Arrangements for image or video recognition or understanding using pattern recognition or machine learning using context analysis, e.g. recognition aided by known co-occurring patterns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/27Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks

Abstract

본 명세서에 개시된 구현예들은 물리적 환경의 3D 기하학적 구조를 표현하는 정점들 및 면들의 원래의 의미론적 메시에 기초하여 객체들 사이의 관계들을 결정하는 시스템들 및 방법들을 제공한다. 그러한 원래의 의미론적 메시는 물리적 환경 내의 객체들 사이의 관계들을 추정하는 기계 학습 모델에에 대한 입력을 제공하기 위해 생성되고 사용될 수 있다. 예를 들어, 기계 학습 모델은, 꽃병이 테이블의 상부에 있다는 것, 또는 꽃병의 특정 인스턴스 V1이 테이블의 특정 인스턴스 T1의 상부에 있다는 것을 나타내는 노드들 및 모서리들의 그래프를 출력할 수 있다.

Description

3D 의미론적 메시로부터의 객체 관계 추정{OBJECT RELATIONSHIP ESTIMATION FROM A 3D SEMANTIC MESH}
관련 출원에 대한 상호 참조
본 출원은 2019년 9월 10일자로 출원된 미국 가출원 제62/898,049호의 이익을 주장하며, 이는 그 전체가 본 명세서에 포함된다.
기술분야
본 개시내용은 일반적으로 물리적 환경들에서 객체들 및 객체들 사이의 관계들을 결정하는 것에 관한 것이며, 특히 물리적 환경들에서 관계들을 추정하고 객체들을 분류하기 위해 기계 학습을 사용하는 시스템들, 방법들, 및 디바이스들에 관한 것이다.
다양한 컴퓨터 시각 기술들이 물리적 환경들에서 물리적 객체들을 식별하는 데 사용된다. 예를 들어, 카메라에 의해 캡처된 이미지들은 자동으로 평가되어, 물리적 환경이 테이블, 의자, 및 꽃병을 포함한다고 결정할 수 있다. 그러나, 그러한 기술들은 객체들 사이의 관계들에 관한 정보를 거의 또는 전혀 제공하지 않을 수 있다. 예를 들어, 기술들은 꽃병이 테이블의 상부에 있거나 의자가 테이블 옆에 있거나 테이블을 향하고 있다고 결정하지 못할 수 있다.
본 명세서에 개시된 구현예들은 물리적 환경의 3D 기하학적 구조를 표현하는 정점들 및 면들의 원래의 의미론적 메시(semantic mesh)에 기초하여 객체들 사이의 관계들을 결정하는 시스템들 및 방법들을 제공한다. 그러한 원래의 의미론적 메시는 물리적 환경 내의 객체들 사이의 관계들을 추정하는 기계 학습 모델에에 대한 입력을 제공하기 위해 생성되고 사용될 수 있다. 예를 들어, 기계 학습 모델은, 꽃병이 테이블의 상부에 있다는 것, 또는 꽃병의 특정 인스턴스 V1이 테이블의 특정 인스턴스 T1의 상부에 있다는 것을 나타내는 노드들 및 모서리들의 그래프를 출력할 수 있다.
일부 구현예들은 물리적 환경 내의 객체들 사이의 관계들을 추정하거나 달리 결정하는 방법을 제공한다. 예시적인 방법은 프로세서를 사용하여 명령어들을 실행하는 컴퓨팅 디바이스에 의해 구현될 수 있다. 본 방법은 정점들 및 면들의 의미론적 메시를 생성한다. 의미론적 메시의 3D 형상은 물리적 환경의 객체들의 표면들의 3D 기하학적 형상을 표현한다. 또한, 정점들 중 적어도 일부는 객체 유형(예컨대, 테이블, 의자, 꽃병 등)을 식별하는 의미론적 라벨들을 갖는다. 그러한 의미론적 메시에서, 예를 들어, 바닥 표면 상의 정점들은 "바닥"으로 라벨링될 수 있고, 의자의 표면들 상의 정점들은 "의자"로 라벨링될 수 있다. 의미론적 메시 내의 인접한 정점들은 면들을 형성하며, 예를 들어, 3개의 "바닥" 정점들은 바닥의 표면의 일부분을 표현하는 면을 정의할 수 있다. 각각의 정점은 위치, 예컨대 x, y, z 위치 정보를 저장하거나 달리 그와 연관될 수 있다.
하나 이상의 기계 학습 알고리즘들이 의미론적 메시를 생성하는 데 사용될 수 있다. 일부 구현예들에서, 의미론적 메시는, 예를 들어, 물리적 환경의 표면들을 표현하는 3D 삼각형 메시를 제공하는 3차원(3D) 재구성 기술들(예컨대, 알고리즘들 또는 기계 학습 모델들) 및/또는 물리적 환경의 객체들에 주석을 달거나 이를 분류하기 위한 의미론적 이미지 분할 기술들(예컨대, 알고리즘들 또는 기계 학습 모델들)을 사용하여, 물리적 환경의 하나 이상의 이미지의 세트에 기초하여 생성될 수 있다.
방법은 원래의 의미론적 메시를, 의미론적 메시의 정점들 및 면들에 기초하여 결정되는 노드들 및 모서리들을 갖는 그래프로 변환할 수 있다. 그래프는 전체 또는 축소된 형태로 표현될 수 있다. 예를 들어, 방법은 노드들의 수를 감소시킴으로써 그래프의 복잡성을 감소시키기 위해 축소 기술을 수행할 수 있다.
방법은 하나 이상의 기계 학습 모델들을 사용하여 객체들 사이의 관계들을 추정한다. 일부 구현예들에서, 방법은 그래프의 표현(예컨대, 전체 그래프 또는 그래프의 축소된 버전)을 하나 이상의 기계 학습 모델들(예컨대, 신경망들)에 입력한다. 방법은 그래프의 표현 및/또는 추정된 관계들에 기초하여 하나 이상의 기계 학습 모델들을 사용하여 객체들을 분류하거나 이전에-결정된 객체 분류 라벨들을 업데이트할 수 있다. 일부 구현예들에서, 방법은 객체들을 분류하거나 분류 라벨들을 업데이트한다. 기계 학습 모델(들)에 대한 입력으로서 원래의 의미론적 메시의 축소된 표현(예컨대, 축소된 그래프)을 사용하는 것은 기계 학습 모델(들)의 정확도 및 효율을 향상시킬 수 있다. 입력으로서 축소된 버전을 사용하는 것은 랜덤 또는 모든 노드들이 연결된 초기화를 사용하기보다는 의미론적 메시의 표현(예컨대, 그래프 또는 축소된 그래프)을 사용하여 정확한 결과들이 획득되게 할 수 있다. 일부 구현예들에서, 기계 학습 모델(들)은 객체들 및 그들의 관계들을 표현하는 그래프를 출력한다. 일부 구현예들에서, 기계 학습 모델(들)은 객체들 사이의 쌍 관계들을 출력한다.
일부 구현예들에서, 기계 학습 모델에 의해 생성되는 객체들 사이의 관계들은, 예컨대, 테이블 T1이 바닥 F1의 상부에 있을 99%의 가능성, 컨테이너 C1이 테이블 T1의 상부에 있을 90%의 가능성, 의자 C1이 테이블 T1 옆에 있을 75%의 가능성, 의자 C2가 텔레비전 TV1을 향하고 있을 75%의 가능성, 손잡이 H1이 문 D1에 부착되어 있을 75%의 가능성 등을 제공하는 확률들을 사용하여 추정된다.
본 명세서에 개시된 일부 구현예들은 실제 물리적 환경들의 스캔된 메시들과 유사하고 알려진/라벨링된 관계들을 갖는 객체들을 가지는 의미론적 메시들과 같은 합성 데이터를 생성하는 시스템들 및 방법들을 제공한다. 그러한 합성 데이터는 본 명세서에 개시된 기술을 사용하여 그리고 다양한 다른 목적을 위해 객체들을 분류하고 의미론적 메시들로부터의 관계들을 결정하기 위해 기계 학습 모델을 훈련시키는 데 사용될 수 있다. 하나의 예시적인 방법이 프로세서를 사용하여 명령어들을 실행하는 컴퓨팅 디바이스에 의해 구현될 수 있다. 방법은 합성 환경의 별개의 객체들에 대한 다수의 메시들(예컨대, 의자, 테이블, 바닥 등 각각에 대한 개별 메시들)을 모델링한다. 별개의 객체들 각각은 객체 유형과 연관되고, 의미론적 라벨들을 포함하는 별개의 메시를 갖는다(예컨대, 의자 메시는 모두 "의자"로 라벨링된 노드들을 포함한다). 일부 구현예들에서, 사용자는 바닥, 의자, 테이블, 벽 등을 별도로 생성하거나 삽입함으로써 합성 방을 생성한다.
방법은 복수의 메시들에 기초하여, 예를 들어, 사용자가 합성 방에 대해 생성한 메시들 모두에 기초하여, 볼륨 표현을 결정한다. 예를 들어, 이는 별개의 객체들의 개별 메시들을 변환하여, 모든 메시들을 표현하는 포인트들의 단일 밀도 클라우드 또는 세트를 형성하는 것을 수반할 수 있다. 이어서 방법은 볼륨 표현에 기초하여 조합된 메시를 결정한다. 예를 들어, 다수의 개별 메시들로부터 생성된 밀도 클라우드는 모든 객체들을 표현하는 단일 메시로 다시 변환될 수 있다.
방법은 또한 단일 메시의 별개의 객체들 사이의 관계들을 결정한다. 예를 들어, 관계들은 합성 장면 생성기로부터의 수동으로 입력된 정보에 기초하여 또는 별개의 메시들 또는 단일 메시를 평가하는 것에 기초하여 자동으로 결정될 수 있다. 단일 메시, 메시에 의해 표현될 것으로 알려진 합성 객체들의 식별, 및/또는 그러한 객체 사이의 관계들은 이어서, 본 명세서에 기술된 기술들을 사용하여 그리고 다양한 다른 목적을 위해 객체들을 분류하고 의미론적 메시들로부터의 관계들을 추정하기 위해 기계 학습 모델을 훈련시키기 위해 제공될 수 있다. 일부 구현예들에서, 기계 학습 모델은 의미론적 메시(또는 의미론적 메시의 축소된 버전)를 수신하고, 의미론적 메시(또는 의미론적 메시의 축소된 버전)에서 표현된 객체들 사이의 관계들을 식별하는 출력을 생성하도록 훈련된다.
일부 구현예들에 따르면, 비일시적 컴퓨터 판독가능 저장 매체는 본 명세서에 기술된 방법들 중 임의의 방법을 수행하거나 또는 그의 수행을 야기하도록 컴퓨터-실행가능한 명령어들을 그 안에 저장하고 있다. 일부 구현예들에 따르면, 디바이스는 하나 이상의 프로세서들, 비일시적 메모리, 및 하나 이상의 프로그램들을 포함하고; 하나 이상의 프로그램들은 비일시적 메모리에 저장되며 하나 이상의 프로세서들에 의해 실행되도록 구성되고, 하나 이상의 프로그램들은 본 명세서에 기술된 방법들 중 임의의 방법을 수행하거나 또는 그의 수행을 야기하기 위한 명령어들을 포함한다.
본 개시내용이 당업자들에 의해 이해될 수 있도록, 더 상세한 설명이 일부 예시적인 구현예들의 양태들에 대한 참조에 의해 이루어질 수 있으며, 이들 중 일부는 첨부 도면들에 도시된다.
도 1은 일부 구현예들에 따른 예시적인 동작 환경의 블록도이다.
도 2는 일부 구현예들에 따른 예시적인 제어기의 블록도이다.
도 3은 일부 구현예들에 따른 예시적인 전자 디바이스의 블록도이다.
도 4는 일부 구현예들에 따른, 의미론적 메시를 사용하여 물리적 환경 내의 객체들 사이의 관계들을 결정하기 위한 예시적인 방법을 예시하는 흐름도이다.
도 5는 의미론적 메시의 축소된 버전을 생성하기 위한 예시적인 방법을 예시하는 블록도이다.
도 6은 예시적인 의미론적 메시를 예시하는 블록도이다.
도 7은 일부 구현예들에 따른 도 6의 의미론적 메시의 축소된 버전을 예시하는 블록도이다.
도 8은 일부 구현예들에 따른 도 7의 의미론적 메시의 축소된 버전을 예시하는 블록도이다.
도 9는 일부 구현예들에 따른 도 8의 의미론적 메시의 축소된 버전을 예시하는 블록도이다.
도 10은 일부 구현예들에 따른, 의미론적 메시의 축소된 버전을 사용하여 물리적 환경 내의 객체들 사이의 관계들을 결정하기 위한 예시적인 방법을 예시하는 블록도이다.
도 11은 일부 구현예들에 따른, 도 10의 객체 관계 그래프에 의해 표현되는 CGR 환경에 대한 가상 객체의 추가를 표현하는 그래프의 블록도이다.
도 12는 합성 데이터를 생성하고 합성 데이터를 사용하여 기계 학습 모델을 훈련시키는 것을 예시하는 블록도이다.
일반적인 실시에 따라, 도면에 도시된 다양한 특징부들은 축척대로 그려지지 않을 수 있다. 따라서, 다양한 특징부들의 치수는 명료함을 위해 임의대로 확대 또는 축소될 수 있다. 부가적으로, 도면들 중 일부는 주어진 시스템, 방법 또는 디바이스의 컴포넌트들 모두를 도시하지는 않을 수 있다. 마지막으로, 동일한 도면 번호들은 명세서 및 도면들 전반에 걸쳐 동일한 특징부들을 나타내기 위해 사용될 수 있다.
도면들에 도시된 예시적인 구현예들의 완전한 이해를 제공하기 위해 다수의 세부사항들이 설명된다. 그러나, 도면들은 단지 본 개시내용의 일부 예시적인 양태들만을 도시할 뿐이며, 따라서 제한적인 것으로 고려되지 않는다. 통상의 기술자는 다른 효과적인 양태들 또는 변형들이 본 명세서에 설명되는 특정 세부사항들 모두를 포함하지는 않음을 인식할 것이다. 또한, 잘 알려진 시스템들, 방법들, 컴포넌트들, 디바이스들 및 회로들은 본 명세서에 설명되는 예시적인 구현예들의 더 적절한 양태들을 불명확하게 하지 않기 위해 철저히 상세하게 설명되지 않았다. 도 1 내지 도 3은 핸드헬드 전자 디바이스를 수반하는 예시적인 구현예들을 도시하지만, 다른 구현예들은 반드시 핸드헬드 디바이스를 수반하지는 않으며, 텔레비전, 셋톱 디바이스, 랩톱, 데스크톱, 게임 디바이스, 홈 자동화 디바이스, 시계, 헤드 마운트 디바이스(HMD), 및 다른 웨어러블 전자 디바이스, 및 콘텐츠를 처리하거나 디스플레이하는 다른 디바이스들을 포함하지만 이에 제한되지 않는 다른 유형들의 디바이스들을 수반할 수 있다.
도 1은 일부 구현예들에 따른 예시적인 동작 환경(100)의 블록도이다. 관련 특징부들이 도시되어 있지만, 당업자는 본 개시내용으로부터, 다양한 다른 특징부들이 간결함을 위해 그리고 본 명세서에 개시되는 예시적인 구현예들의 더 많은 관련 양태들을 불명료하게 하지 않도록 하기 위해 예시되지 않았음을 인식할 것이다. 이를 위해, 비-제한적인 예로서, 동작 환경(100)은 제어기(110) 및 전자 디바이스(120)를 포함하지만, 이들 중 하나 또는 둘 모두는 물리적 환경에 있을 수 있다.
전자 디바이스(120)는 콘텐츠를 처리하거나 디스플레이하도록 구성된다. 일부 구현예들에서, 전자 디바이스(120)는 소프트웨어, 펌웨어, 또는 하드웨어의 적합한 조합을 포함한다. 콘텐츠는 녹화된 소스 또는 라이브 소스로부터 전자 디바이스(120) 상의 디스플레이를 위해 제공될 수 있다. 예를 들어, 콘텐츠는 전자 디바이스(120), 제어기(110), 또는 다른 곳의 메모리에 저장될 수 있다. 다른 예에서, 콘텐츠는 전자 디바이스(120), 제어기(110), 또는 다른 곳의 카메라에 의해 실시간으로 캡처 또는 처리되는 프레임들의 스트림일 수 있다. 전자 디바이스(120)는 도 3과 관련하여 아래에서 더욱 상세히 기술된다. 일부 구현예들에서, 제어기(110)의 기능들은, 예를 들어 독립형 유닛으로서 기능하는 전자 디바이스의 경우에, 전자 디바이스(120)에 의해 제공되거나 그와 조합된다.
일부 구현예들에서, 제어기(110)는 물리적 환경(105)에 대해 로컬 또는 원격인 컴퓨팅 디바이스이다. 일 예에서, 제어기(110)는 물리적 환경(105) 내에 위치된 로컬 서버이다. 다른 예에서, 제어기(110)는 물리적 환경(105)의 외부에 위치된 원격 서버(예컨대, 클라우드 서버, 중앙 서버 등)이다. 일부 구현예들에서, 제어기(110)는 하나 이상의 유선 또는 무선 통신 채널들(144)(예컨대, 블루투스, IEEE 802.11x, IEEE 802.16x, IEEE 802.3x 등)을 통해 전자 디바이스(120)와 통신가능하게 결합된다.
도 2는 일부 구현예들에 따른 제어기(110)의 일 예의 블록도이다. 소정의 특정 특징부들이 예시되어 있지만, 당업자들은 본 개시내용으로부터, 다양한 다른 특징부들이 간결함을 위해 그리고 본 명세서에 개시된 구현예들의 더 적절한 양태들을 불명확하게 하지 않도록 하기 위해 예시되지 않았음을 이해할 것이다. 이를 위해, 비-제한적인 예로서, 일부 구현예들에서, 제어기(110)는 하나 이상의 프로세싱 유닛들(202)(예를 들어, 마이크로프로세서들, 주문형 집적 회로(ASIC)들, 필드-프로그래밍가능 게이트 어레이(FPGA)들, 그래픽 프로세싱 유닛(GPU)들, 중앙 프로세싱 유닛(CPU)들, 프로세싱 코어들 등), 하나 이상의 입력/출력(I/O) 디바이스들(206), 하나 이상의 통신 인터페이스들(208)(예를 들어, 범용 직렬 버스(USB), FIREWIRE, THUNDERBOLT, IEEE 802.3x, IEEE 802.11x, IEEE 802.16x, 모바일 통신들을 위한 글로벌 시스템(GSM), 코드 분할 다중 액세스(CDMA), 시분할 다중 액세스(TDMA), 글로벌 포지셔닝 시스템(GPS), 적외선(IR), 블루투스, 지그비, 또는 유사한 유형의 인터페이스), 하나 이상의 프로그래밍(예를 들어, I/O) 인터페이스들(210), 메모리(220), 및 이들 및 다양한 다른 컴포넌트들을 상호연결시키기 위한 하나 이상의 통신 버스들(204)을 포함한다.
일부 구현예들에서, 하나 이상의 통신 버스들(204)은 시스템 컴포넌트들 사이의 통신을 상호연결시키고 제어하는 회로부를 포함한다. 일부 구현예들에서, 하나 이상의 I/O 디바이스들(206)은 키보드, 마우스, 터치패드, 조이스틱, 하나 이상의 마이크로폰들, 하나 이상의 스피커들, 하나 이상의 이미지 캡처 디바이스들 또는 다른 센서들, 하나 이상의 디스플레이들 등 중 적어도 하나를 포함한다.
메모리(220)는 동적-랜덤 액세스 메모리(DRAM), 정적 랜덤-액세스 메모리(SRAM), 더블-데이터-레이트 랜덤-액세스 메모리(DDR RAM), 또는 다른 랜덤-액세스 솔리드-스테이트 메모리 디바이스들과 같은 고속 랜덤-액세스 메모리를 포함한다. 일부 구현예들에서, 메모리(220)는 하나 이상의 자기 디스크 저장 디바이스들, 광 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 또는 다른 비휘발성 솔리드-스테이트 저장 디바이스들과 같은 비휘발성 메모리를 포함한다. 메모리(220)는 선택적으로, 하나 이상의 프로세싱 유닛들(202)로부터 원격으로 위치된 하나 이상의 저장 디바이스들을 포함한다. 메모리(220)는 비일시적 컴퓨터 판독가능 저장 매체를 포함한다. 일부 구현예들에서, 메모리(220) 또는 메모리(220)의 비일시적 컴퓨터 판독가능 저장 매체는 다음의 프로그램들, 모듈들 및 데이터 구조들, 또는 선택적인 운영 체제(230) 및 컴퓨터 시각(CV) 및 컴퓨터 생성 현실(CGR) 모듈(240)을 포함하는 그들의 서브세트를 저장한다.
운영 체제(230)는 다양한 기본 시스템 서비스들을 처리하고 하드웨어 의존 태스크들을 수행하기 위한 절차들을 포함한다.
일부 구현예들에서, CV 및 CGR 모듈(240)은 의미론적 메시 유닛(242), 관계 분류 유닛(244), CGR 유닛(246), 및 훈련 유닛(248)을 포함한다. 의미론적 메시 유닛(242)은 예를 들어, 물리적 환경의 표면들을 표현하는 3D 삼각형 메시를 제공하는 3D 재구성 기술들(예컨대, 알고리즘들 또는 기계 학습 모델들) 및/또는 물리적 환경의 객체들에 주석을 달거나 이를 분류하기 위한 의미론적 이미지 분할 기술들(예컨대, 알고리즘들 또는 기계 학습 모델들)을 사용하여, 의미론적 메시를 생성하도록 구성될 수 있다. 의미론적 메시 유닛(242)은, 예를 들어, 본 명세서에 개시된 기술들을 통해 의미론적 메시 내의 정점들/노드들의 개수를 감소시킴으로써 의미론적 메시를 축소시키도록 구성될 수 있다.
관계 분류 유닛(244)은 예를 들어, 의미론적 메시 유닛(242)에 의해 제공되는 원래의 의미론적 메시의 표현을 사용하는 기계 학습 모델(예컨대, 신경망)을 사용하여, 객체들을 분류하고 객체들 사이의 관계들을 추정하도록 구성될 수 있다.
CGR 유닛(246)은 물리적 환경, 가상 콘텐츠, 또는 둘 모두의 묘사물들을 포함하는 CGR 환경들을 렌더링하도록 구성될 수 있다. CGR 유닛(246)은 관계 분류 유닛(244)에 의해 분류되거나 추정된 객체들 및/또는 관계들을 이용하도록 구성될 수 있다. 예를 들어, CGR 유닛(246)은 테이블 T3이 창문 W2 옆에 있음을 정의하는 관계에 기초하여 "창문 옆의 테이블" 상에 가상 꽃병을 놓으라는 사용자의 음성 커맨드에 응답할 수 있는데, 예를 들어, 그것은 창문 옆에 있지 않은 다른 테이블이 아닌 테이블 T3 상에 가상 꽃병을 놓기 위한 것으로 알고 있다.
훈련 유닛(248)은 실제 물리적 환경들의 스캔된 메시들과 유사하고 알려진/라벨링된 관계들을 갖는 객체들을 가지는 의미론적 메시들과 같은 합성 데이터를 생성하도록 구성될 수 있다. 그러한 합성 데이터는 의미론적 메시 유닛(242)에 의해 물리적 환경의 이미지들에 기초하여 생성된 의미론적 메시들로부터 객체들을 분류하고 관계들을 추정하기 위해 관계 분류 유닛(244)의 기계 학습 모델을 훈련시키는 데 사용될 수 있다.
이러한 모듈들 및 유닛들이 단일 디바이스(예컨대, 제어기(110)) 상에 존재하는 것으로 도시되어 있지만, 다른 구현예들에서, 이러한 모듈들 및 유닛들의 임의의 조합이 별개의 컴퓨팅 디바이스들 내에 위치될 수 있다는 것을 이해하여야 한다. 게다가, 도 2는 본 명세서에 기술된 구현예들의 구조적 개략도와는 대조적으로 특정 구현예들에 존재하는 다양한 특징부들의 기능 설명으로서 더 의도된다. 당업자들에 의해 인식되는 바와 같이, 별개로 도시된 아이템들은 조합될 수 있고 일부 아이템들은 분리될 수 있다. 예를 들어, 다양한 구현예들에서, 도 2에서 별개로 도시된 일부 기능 모듈들은 단일 모듈로 구현될 수 있고, 단일 기능 블록들의 다양한 기능들은 하나 이상의 기능 블록들에 의해 구현될 수 있다. 모듈들의 실제 수량 및 특정 기능들의 분할 그리고 특징부들이 그들 사이에서 어떻게 할당되는지는 구현예들마다 다를 것이고, 일부 구현예들에서, 특정 구현예들에 대해 선택된 하드웨어, 소프트웨어, 또는 펌웨어의 특정 조합에 부분적으로 의존한다.
도 3은 일부 구현예들에 따른 전자 디바이스(120)의 일 예의 블록도이다. 소정의 특정 특징부들이 예시되어 있지만, 당업자들은 본 개시내용으로부터, 다양한 다른 특징부들이 간결함을 위해 그리고 본 명세서에 개시된 구현예들의 더 적절한 양태들을 불명확하게 하지 않도록 하기 위해 예시되지 않았음을 이해할 것이다. 그를 위해, 비-제한적인 예로서, 일부 구현예들에서, 전자 디바이스(120)는 하나 이상의 프로세싱 유닛들(302)(예를 들어, 마이크로프로세서들, ASIC들, FPGA들, GPU들, CPU들, 프로세싱 코어들 등), 하나 이상의 입력/출력(I/O) 디바이스들 및 센서들(306), 하나 이상의 통신 인터페이스들(308)(예를 들어, USB, FIREWIRE, THUNDERBOLT, IEEE 802.3x, IEEE 802.11x, IEEE 802.16x, GSM, CDMA, TDMA, GPS, IR, 블루투스, ZIGBEE, SPI, I2C, 또는 유사한 유형의 인터페이스), 하나 이상의 프로그래밍(예를 들어, I/O) 인터페이스들(310), 하나 이상의 디스플레이들(312), 하나 이상의 내부 또는 외부 대면 이미지 센서 시스템들(314), 메모리(320), 및 이들 및 다양한 다른 컴포넌트들을 상호연결시키기 위한 하나 이상의 통신 버스들(304)을 포함한다.
일부 구현예들에서, 하나 이상의 통신 버스들(304)은 시스템 컴포넌트들 사이의 통신을 상호연결시키고 제어하는 회로부를 포함한다. 일부 구현예들에서, 하나 이상의 I/O 디바이스들 및 센서들(306)은 관성 측정 유닛(inertial measurement unit, IMU), 가속도계, 자력계, 자이로스코프, 온도계, 하나 이상의 생리학적 센서들(예를 들어, 혈압 모니터, 심박수 모니터, 혈중 산소 센서, 혈당 센서 등), 하나 이상의 마이크로폰들, 하나 이상의 스피커들, 햅틱 엔진, 하나 이상의 심도 센서들(예를 들어, 구조화된 광, 비행시간(time-of-flight) 등) 등 중 적어도 하나를 포함한다.
일부 구현예들에서, 하나 이상의 디스플레이들(312)은 CGR 경험을 사용자에게 제시하도록 구성된다. 일부 구현예들에서, 하나 이상의 디스플레이들(312)은 홀로그래픽, 디지털 광 프로세싱(DLP), 액정 디스플레이(LCD), 실리콘 액정 표시장치(LCoS), 유기 발광 전계 효과 트랜지스터(OLET), 유기 발광 다이오드(OLED), 표면-전도 전자-방출기 디스플레이(SED), 전계-방출 디스플레이(FED), 양자점 발광 다이오드(QD-LED), 마이크로-전자-기계 시스템(MEMS), 또는 유사 디스플레이 유형들에 대응한다. 일부 구현예들에서, 하나 이상의 디스플레이들(312)은 회절, 반사, 편광, 홀로그래픽 등의 도파관 디스플레이들에 대응한다. 예를 들어, 전자 디바이스(120)는 단일 디스플레이를 포함한다. 다른 예에서, 전자 디바이스(120)는 사용자의 각각의 눈을 위한 디스플레이를 포함한다.
메모리(320)는 DRAM, SRAM, DDR RAM, 또는 다른 랜덤-액세스 솔리드-스테이트 메모리 디바이스들과 같은 고속 랜덤-액세스 메모리를 포함한다. 일부 구현예들에서, 메모리(320)는 하나 이상의 자기 디스크 저장 디바이스들, 광 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 또는 다른 비휘발성 솔리드-스테이트 저장 디바이스들과 같은 비휘발성 메모리를 포함한다. 메모리(320)는 선택적으로, 하나 이상의 프로세싱 유닛들(302)로부터 원격으로 위치된 하나 이상의 저장 디바이스들을 포함한다. 메모리(320)는 비일시적 컴퓨터 판독가능 저장 매체를 포함한다. 일부 구현예들에서, 메모리(320) 또는 메모리(320)의 비일시적 컴퓨터 판독가능 저장 매체는 다음의 프로그램들, 모듈들 및 데이터 구조들, 또는 선택적인 운영 체제(330) 및 컴퓨터 시각(CV) 및 컴퓨터 생성 현실(CGR) 모듈(340)을 포함하는 그들의 서브세트를 저장한다.
운영 체제(330)는 다양한 기본 시스템 서비스들을 처리하고 하드웨어 의존 태스크들을 수행하기 위한 절차들을 포함한다.
일부 구현예들에서, CV 및 CGR 모듈(340)은 의미론적 메시 유닛(342), 관계 분류 유닛(344), CGR 유닛(346), 및 훈련 유닛(348)을 포함한다. 의미론적 메시 유닛(342)은 예를 들어, 물리적 환경의 표면들을 표현하는 3D 삼각형 메시를 제공하는 3D 재구성 기술들(예컨대, 알고리즘들 또는 기계 학습 모델들) 및/또는 물리적 환경의 객체들에 주석을 달거나 이를 분류하기 위한 의미론적 이미지 분할 기술들(예컨대, 알고리즘들 또는 기계 학습 모델들)을 사용하여, 의미론적 메시를 생성하도록 구성될 수 있다. 의미론적 메시 유닛(342)은, 예를 들어, 본 명세서에 개시된 기술들을 통해 의미론적 메시 내의 정점들/노드들의 개수를 감소시킴으로써 의미론적 메시를 축소시키도록 구성될 수 있다.
관계 분류 유닛(344)은 예를 들어, 의미론적 메시 유닛(342)에 의해 제공되는 원래의 의미론적 메시의 표현을 사용하는 기계 학습 모델(예컨대, 신경망)을 사용하여, 객체들을 분류하고 객체들 사이의 관계들을 추정하도록 구성될 수 있다.
CGR 유닛(346)은 물리적 환경 및/또는 가상 콘텐츠의 묘사물들을 포함하는 CGR 환경들을 렌더링하도록 구성될 수 있다. CGR 유닛(346)은 관계 분류 유닛(344)에 의해 결정된 객체들 및/또는 관계들을 이용하도록 구성될 수 있다. 예를 들어, CGR 유닛(346)은 테이블(T3)이 창문(W2) 옆에 있음을 정의하는 관계에 기초하여 "창문 옆의 테이블" 상에 가상 꽃병을 놓으라는 사용자의 음성 커맨드에 응답할 수 있다.
훈련 유닛(348)은 실제 물리적 환경들의 스캔된 메시들과 유사하고 알려진/라벨링된 관계들을 갖는 객체들을 가지는 의미론적 메시들과 같은 합성 데이터를 생성하도록 구성될 수 있다. 그러한 합성 데이터는 의미론적 메시 유닛(342)에 의해 물리적 환경의 이미지들에 기초하여 생성된 의미론적 메시들로부터 객체들을 분류하고 관계들을 추정하기 위해 관계 분류 유닛(344)의 기계 학습 모델을 훈련시키는 데 사용될 수 있다.
게다가, 도 3은 본 명세서에 기술된 구현예들의 구조적 개략도와는 대조적으로 특정 구현예들에 존재하는 다양한 특징부들의 기능 설명으로서 더 의도된다. 당업자들에 의해 인식되는 바와 같이, 별개로 도시된 아이템들은 조합될 수 있고 일부 아이템들은 분리될 수 있다. 예를 들어, 다양한 구현예들에서, 도 3에서 별개로 도시된 일부 기능 모듈들은 단일 모듈로 구현될 수 있고, 단일 기능 블록들의 다양한 기능들은 하나 이상의 기능 블록들에 의해 구현될 수 있다. 모듈들의 실제 수량 및 특정 기능들의 분할 그리고 특징부들이 그들 사이에서 어떻게 할당되는지는 구현예들마다 다를 것이고, 일부 구현예들에서, 특정 구현예들에 대해 선택된 하드웨어, 소프트웨어, 또는 펌웨어의 특정 조합에 부분적으로 의존한다.
도 4는 일부 구현예들에 따른, 의미론적 메시를 사용하여 물리적 환경 내의 객체들 사이의 관계들을 결정하기 위한 예시적인 방법을 예시하는 흐름도이다. 일부 구현예들에서, 방법(400)은 디바이스(예를 들어, 도 1 내지 도 3의 제어기(100) 또는 전자 디바이스(120))에 의해 수행된다. 방법(400)은 텔레비전, 셋톱 박스, 모바일 디바이스, HMD, 데스크톱, 랩톱, 서버 디바이스에서, 또는 서로 통신하는 다수의 디바이스들에 의해 수행될 수 있다. 일부 구현예들에서, 방법(400)은 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 조합을 포함하는 프로세싱 로직에 의해 수행된다. 일부 구현예들에서, 방법(400)은 비일시적 컴퓨터 판독가능 매체(예를 들어, 메모리)에 저장된 코드를 실행하는 프로세서에 의해 수행된다.
블록(402)에서, 방법(400)은 의미론적 메시를 생성한다. 의미론적 메시의 3D 형상은 물리적 환경의 객체들의 표면들을 표현하고, 원래의 의미론적 메시의 정점들 중 적어도 일부는 객체 유형(예컨대, 테이블, 의자, 꽃병 등)을 식별하는 의미론적 라벨들을 갖는다. 그러한 메시에서, 예를 들어, 바닥 표면 상의 정점들은 "바닥"으로 라벨링될 수 있고, 의자의 표면들 상의 정점들은 "의자"로 라벨링될 수 있다.
일부 구현예들에서, 의미론적 메시를 생성하는 것은 물리적 환경의 다수의 이미지들의 상이한 부분들(예컨대, 픽셀들)의 심도들을 추정하는 것, 이미지들을 캡처하는 데 사용되는 카메라의 포즈들 사이의 관계들(예컨대, 변환들)을 상관시키는 것, 물리적 환경 내의 표면들의 3D 맵핑 또는 다른 재구성을 생성하는 것을 수반한다. 그러한 맵핑/재구성은 상이한 표면 포인트들에 대한 3D 좌표계에서의 위치들을 포함할 수 있다. 일부 구현예들에서, 3D 삼각형-기반 메시가 생성되고, 메시의 각각의 정점은 위치, 예컨대 x,y,z 위치 정보를 저장하거나 달리 그와 연관된다. 하나 이상의 기계 학습 알고리즘들이 3D 재구성을 생성하는 데 사용될 수 있다.
일부 구현예들에서, 의미론적 메시를 생성하는 것은 기계 학습 모델을 이용하지 않는 기술들을 수반한다. 예를 들어, 하나의 예시적인 방법은 알고리즘을 사용하여 3D 재구성 메시의 정점들을 상이한 시점(viewpoint)들로부터의 의미론적 세그먼트화 이미지들 상에 투영하고, 이어서 다수결 기술을 사용하여 최종 정점 라벨들을 결정한다.
일부 구현예들에서, 의미론적 정보는 물리적 환경의 3D 재구성에 포함되거나 그에 추가된다. 하나 이상의 기계 학습 모델들이 객체를 분류하거나, 의미론적 정보를 3D 재구성에 포함시키거나 추가하기 위해 사용될 수 있다. 일부 구현예들에서, 기계 학습 모델은 물리적 환경의 하나 이상의 이미지들의 픽셀들에 대한 의미론적 라벨들을 생성하는 데 사용된다. 그러한 의미론적 라벨들은 이미지들과 3D 재구성 사이의 연관성들을 결정하는 것에 기초하여 3D 재구성의 대응하는 부분들과 연관될 수 있다. 일부 구현예들에서, 기계 학습 모델은 의미론적으로-라벨링된 메시, 예컨대, 의미론적 라벨들과 연관되는 적어도 일부 정점들을 갖는 의미론적 메시를 생성하기 위한 입력으로서 3D 재구성 및 의미론적으로 라벨링된 이미지들(예컨대, 자동으로 라벨링된 이미지들)을 사용한다.
블록(404)에서, 방법(400)은 의미론적 메시를 그래프로 변환한다. 이는 의미론적 메시의 정점들을 노드들로 변환하는 것 및 인근 노드들을 서로 연결하는 모서리들을 결정하는 것을 수반할 수 있다. 그래프의 모서리들은 의미론적 메시의 면들의 변들을 표현할 수 있다. 노드들은 좌표들에 관한 정보(예컨대, x, y, z 좌표), 의미론적 라벨들, 및 의미론적 메시로부터 추출된 다른 정보를 저장할 수 있다.
블록(406)에서, 방법(400)은 그래프 축소 및 인스턴스 검출을 수행한다. 그래프 축소는 원래의 의미론적 메시 또는 원래의 의미론적 메시를 표현하는 그래프의 복잡성을 감소시킬 수 있는데, 예를 들어 그러한 그래프 내의 노드들의 개수를 감소시킬 수 있다. 도 5는 예시적인 그래프 축소 기술을 제공한다. 인스턴스 검출은 의미론적 메시 또는 의미론적 메시를 표현하는 그래프 내의 객체들의 별개의 인스턴스들을 식별하거나 추정하는 것을 수반한다. 일부 구현예들에서, 인스턴스 검출은 인스턴스들을 식별하기 위해 그래프의 노드들의 의미론적 위치들 및 3D 위치들을 이용하는 기계 학습 모델을 사용하여 수행된다.
블록(408)에서, 방법(400)은 기계 학습 모델을 사용하여 의미론적 메시 또는 의미론적 메시를 표현하는 그래프의 객체들 사이의 관계들을 추정한다. 관계들의 예들은 제1 객체가 제2 객체의 상부에 있고, 제1 객체가 제2 객체의 아래에 있고, 제1 객체가 제2 객체 옆에 있고, 제1 객체가 제2 객체와 접촉하고 있고, 제1 객체가 제2 객체에 부착되고, 제1 객체가 제2 객체에 기대어 있고, 제1 객체(예컨대, 사람)가 제2 객체를 잡고 있고, 제1 객체가 제2 객체 내에 있고, 제1 객체가 제2 객체에 매달려 있고, 제1 객체가 제2 객체에 근접해 있고, 제1 객체가 제2 객체를 향하고 있고, 제1 객체가 제2 객체로부터 멀어지게 향하고 있고, 제1 객체가 제2 객체의 전방에 있고, 제1 객체가 제2 객체 뒤에 있고, 제1 객체 및 제2 객체가 서로 정렬된다는 추정들을 포함하지만 이로 한정되지 않는다.
일부 구현예들에서, 기계 학습 모델에 의해 생성되는 객체들 사이의 관계들은, 예컨대, 테이블 T1이 바닥 F1의 상부에 있을 99%의 가능성, 컨테이너 C1이 테이블 T1의 상부에 있을 90%의 가능성, 의자 C1이 테이블 T1 옆에 있을 75%의 가능성, 의자 C2가 텔레비전 TV1을 향하고 있을 75%의 가능성, 손잡이 H1이 문 D1에 부착되어 있을 75%의 가능성 등을 제공하는 확률들로서 추정된다.
물리적 환경의 이미지 및/또는 이미지를 캡처하는 카메라의 위치 및 배향에 관한 포즈 정보는 정확도 또는 효율을 추가로 개선하기 위해 기계 학습 모델에 추가적으로 입력될 수 있다. 카메라 포즈 정보는 시점 특정 관계들을 생성하는 데 사용될 수 있다. 예를 들어, 컴퓨터-생성 현실(computer-generated reality, CGR) 환경이 라이브 이미지들을 사용하여 생성되는 경우, 사용자의 현재 디바이스의 포즈(예컨대, 위치 및 배향)는 시점 특정 관계 결정을 용이하게 하는 데 사용될 수 있으며, 예컨대, 사용자의 현재 시점으로부터 의자가 테이블의 전방에 있다는 것을 식별할 수 있다.
일부 구현예들에서, 기계 학습 모델은 객체들 및 그들의 관계들을 표현하는 그래프를 출력한다. 도 9는 방법(400)에 의해 출력될 수 있는 객체 관계 그래프(920)를 예시한다. 일부 구현예들에서, 기계 학습 모델은 객체들 사이의 쌍 관계들을 출력한다. 둘 이상의 객체들 사이의 관계는 출력 및 사용을 위한 임의의 적합한 포맷으로 표현될 수 있다.
블록(408)에서, 방법(400)은 기계 학습 모델을 사용하여 의미론적 메시의 정점들 또는 의미론적 메시를 표현하는 그래프의 노드들의 객체 분류 라벨들을 업데이트한다. 일부 구현예들에서, 객체들 사이의 관계들은 의미론적 메시의 정점들 또는 의미론적 메시를 표현하는 그래프의 노드들의 라벨들을 업데이트하기 위한 입력으로서 사용된다. 일부 구현예들에서, 분류 라벨들을 업데이트하는 데 사용되는 기계 학습 모델은 신경망을 사용하여 구현되는 분류기이다.
일부 구현예들에서, 방법(400) 동안 추정되는 객체들 및/또는 관계들 및 본 명세서에 개시된 다른 기술들은 컴퓨터-생성 현실(CGR) 환경의 제공을 용이하게 하는 데 사용된다. CGR 환경은 사람들이 전자 시스템을 통해 감지하고/하거나 상호작용하는 전체적으로 또는 부분적으로 시뮬레이션된 환경을 지칭한다. CGR에서, 사람의 물리적 움직임들, 또는 이들의 표현들의 서브세트가 추적되고, 이에 응답하여, CGR 환경에서 시뮬레이션된 하나 이상의 가상 객체들의 하나 이상의 특성들이 적어도 하나의 물리 법칙에 따르는 방식으로 조정된다. 예를 들어, CGR 시스템은 사람이 고개를 돌리는 것을 검출할 수 있고, 이에 응답하여, 그 사람에게 제시되는 그래픽 콘텐츠 및 음장(acoustic field)을 물리적 환경에서 그러한 뷰들 및 소리들이 변화하는 방식과 유사한 방식으로 조정할 수 있다. 일부 상황들에서(예를 들어, 접근성 이유들 때문에), CGR 환경 내의 가상 객체(들)의 특성(들)에 대한 조정들은 물리적 움직임들의 표현들(예를 들어, 음성 커맨드들)에 응답하여 이루어질 수 있다.
사람은, 시각, 청각, 촉각, 미각, 및 후각을 포함하는 그들의 감각들 중 임의의 하나를 사용하여 CGR 객체를 감지하고/하거나 그와 상호작용할 수 있다. 예를 들어, 사람은 3D 공간에서의 포인트 오디오 소스들의 지각을 제공하는 3D 또는 공간적 오디오 환경을 생성하는 오디오 객체들을 감지하고/하거나 그와 상호작용할 수 있다. 다른 예에서, 오디오 객체들은 오디오 투명성을 가능하게 할 수 있으며, 이는 선택적으로, 물리적 환경으로부터의 주변 소리들을 컴퓨터-생성 오디오와 함께 또는 그것 없이 통합한다. 일부 CGR 환경들에서, 사람은 오디오 객체들만을 감지하고/하거나 그와 상호작용할 수 있다.
CGR의 예들은 가상 현실 및 혼합 현실을 포함한다. 가상 현실(VR) 환경은 하나 이상의 감각들에 대한 컴퓨터-생성 감각 입력들에 전적으로 기초하도록 설계된 시뮬레이션된 환경을 지칭한다. VR 환경은 사람이 감지하고/하거나 상호작용할 수 있는 가상 객체들을 포함한다. 예를 들어, 나무들, 빌딩들, 및 사람들을 표현하는 아바타들의 컴퓨터-생성 형상화가 가상 객체들의 예들이다. 사람은, 컴퓨터-생성 환경 내의 사람의 존재의 시뮬레이션을 통해 그리고/또는 컴퓨터-생성 환경 내의 사람의 신체적 움직임들의 서브세트의 시뮬레이션을 통해 VR 환경에서 가상 객체들을 감지하고/하거나 그와 상호작용할 수 있다.
컴퓨터-생성 감각 입력들에 전적으로 기초하도록 설계되는 VR 환경과는 대조적으로, 혼합 현실(MR) 환경은 컴퓨터-생성 감각 입력들(예를 들어, 가상 객체들)을 포함하는 것에 부가하여, 물리적 환경으로부터의 감각 입력들, 또는 그들의 표현을 통합하도록 설계된 시뮬레이션된 환경을 지칭한다. 가상 연속체(virtuality continuum)에서, 혼합 현실 환경은 한쪽의 완전히 물리적인 환경과 다른 쪽의 가상 현실 환경 사이의 임의의 곳에 있지만, 포함하지는 않는다.
일부 MR 환경들에서, 컴퓨터-생성 감각 입력들은 물리적 환경으로부터의 감각 입력들의 변화들에 응답할 수 있다. 또한, MR 환경을 제시하기 위한 일부 전자 시스템들은 물리적 환경에 대한 위치 및/또는 배향을 추적하여 가상 객체들이 실제 객체들(즉, 물리적 환경으로부터의 물리적 물품들 또는 물리적 물품들의 표현들)과 상호작용하게 할 수 있다. 예를 들어, 시스템은 움직임들을 고려하여 가상 나무가 물리적 땅에 대하여 고정되어 있는 것처럼 보이도록 할 수 있다.
혼합 현실들의 예들은 증강 현실 및 증강 가상을 포함한다. 증강 현실(AR) 환경은 하나 이상의 가상 객체들이 물리적 환경, 또는 물리적 환경의 표현 위에 중첩되어 있는 시뮬레이션된 환경을 지칭한다. 예를 들어, AR 환경을 제시하기 위한 전자 시스템은 사람이 직접 물리적 환경을 볼 수 있는 투명 또는 반투명 디스플레이를 가질 수 있다. 시스템은 투명 또는 반투명 디스플레이 상에 가상 객체들을 제시하도록 구성되어, 사람이, 시스템을 사용하여, 물리적 환경 위에 중첩된 가상 객체들을 인지하도록 할 수 있다. 대안적으로, 시스템은 불투명 디스플레이 및 물리적 환경의 표현들인, 물리적 환경의 이미지들 또는 비디오를 캡처하는 하나 이상의 이미징 센서들을 가질 수 있다. 시스템은 이미지들 또는 비디오를 가상 객체들과 합성하고, 합성물을 불투명 디스플레이 상에 제시한다. 사람은, 시스템을 사용하여, 물리적 환경의 이미지들 또는 비디오에 의해 물리적 환경을 간접적으로 보고, 물리적 환경 위에 중첩된 가상 객체들을 인지한다. 본 명세서에 사용되는 바와 같이, 불투명 디스플레이 상에 보여지는 물리적 환경의 비디오는 "패스-스루(pass-through) 비디오"로 불리는데, 이는 시스템이 하나 이상의 이미지 센서(들)를 사용하여 물리적 환경의 이미지들을 캡처하고, AR 환경을 불투명 디스플레이 상에 제시할 시에 이들 이미지들을 사용하는 것을 의미한다. 추가로 대안적으로, 시스템은 가상 객체들을 물리적 환경에, 예를 들어, 홀로그램으로서 또는 물리적 표면 상에 투영하는 투영 시스템을 가질 수 있어서, 사람이 시스템을 사용하여 물리적 환경 위에 중첩된 가상 객체들을 인지하게 한다.
증강 현실 환경은 또한 물리적 환경의 표현이 컴퓨터-생성 감각 정보에 의해 변환되는 시뮬레이션된 환경을 지칭한다. 예를 들어, 패스-스루 비디오를 제공할 시에, 시스템은 하나 이상의 센서 이미지들을 변환하여 이미징 센서들에 의해 캡처된 시점과 상이한 선택 관점(예를 들어, 시점)을 부과할 수 있다. 다른 예를 들어, 물리적 환경의 표현은 그것의 일부들을 그래픽적으로 수정(예컨대, 확대)함으로써 변환될 수 있고, 수정된 부분은 원래 캡처된 이미지들의 대표적인 버전일 수 있지만, 실사 버전은 아닐 수 있다. 추가적인 예로서, 물리적 환경의 표현은 그의 일부들을 그래픽적으로 제거하거나 또는 흐리게 함으로써 변환될 수 있다.
증강 가상(AV) 환경은 가상 또는 컴퓨터 생성 환경이 물리적 환경으로부터의 하나 이상의 감각 입력들을 통합하는 시뮬레이션된 환경을 지칭한다. 감각 입력들은 물리적 환경의 하나 이상의 특성들의 표현들일 수 있다. 예를 들어, AV 공원은 가상 나무들 및 가상 빌딩들을 가질 수 있지만, 사람들의 얼굴들은 물리적 사람들을 촬영한 이미지들로부터 실사처럼 재현될 수 있다. 다른 예로서, 가상 객체는 하나 이상의 이미징 센서들에 의해 이미징되는 물리적 물품의 형상 또는 색상을 채용할 수 있다. 추가적인 예로서, 가상 객체는 물리적 환경에서 태양의 위치에 부합하는 그림자들을 채용할 수 있다.
사람이 다양한 CGR 환경들을 감지하고/하거나 그와 상호작용할 수 있게 하는 많은 상이한 유형들의 전자 시스템들이 존재한다. 예들은 헤드 마운트 시스템들, 투영-기반 시스템들, 헤드-업(head-up) 디스플레이(HUD)들, 디스플레이 기능이 통합된 차량 앞유리들, 디스플레이 기능이 통합된 창문들, 사람의 눈들에 배치되도록 설계된 렌즈들로서 형성된 디스플레이(예를 들어, 콘택트 렌즈들과 유사함), 헤드폰들/이어폰들, 스피커 어레이들, 입력 시스템들(예를 들어, 햅틱 피드백이 있거나 또는 없는 웨어러블 또는 핸드헬드 제어기들), 스마트폰들, 태블릿들, 및 데스크톱/랩톱 컴퓨터들을 포함한다. 헤드 마운트 시스템은 하나 이상의 스피커(들) 및 통합 불투명 디스플레이를 가질 수 있다. 대안적으로, 헤드 마운트 시스템은 외부 불투명 디스플레이(예를 들어, 스마트폰)를 수용하도록 구성될 수 있다. 헤드 마운트 시스템은 물리적 환경의 이미지들 또는 비디오를 캡처하기 위한 하나 이상의 이미징 센서들, 및/또는 물리적 환경의 오디오를 캡처하기 위한 하나 이상의 마이크로폰들을 통합할 수 있다. 불투명 디스플레이보다는, 헤드 마운트 시스템은 투명 또는 반투명 디스플레이를 가질 수 있다. 투명 또는 반투명 디스플레이는 이미지들을 표현하는 광이 사람의 눈들로 지향되는 매체를 가질 수 있다. 디스플레이는 디지털 광 프로젝션, OLED들, LED들, uLED들, 실리콘 액정 표시장치, 레이저 스캐닝 광원, 또는 이들 기술들의 임의의 조합을 이용할 수 있다. 매체는 광학 도파관, 홀로그램 매체, 광학 조합기, 광학 반사기, 또는 이들의 임의의 조합일 수 있다. 일 실시예에서, 투명 또는 반투명 디스플레이는 선택적으로 불투명하게 되도록 구성될 수 있다. 투영-기반 시스템들은 그래픽 이미지들을 사람의 망막 상에 투영하는 망막 투영 기술을 이용할 수 있다. 투영 시스템들은 또한 가상 객체들을 물리적 환경에, 예를 들어, 홀로그램으로서 또는 물리적 표면 상에 투영하도록 구성될 수 있다.
일부 구현예들에서, 방법(400) 동안 생성되는 객체 분류들 및/또는 관계 추정들 및 본 명세서에 개시된 다른 기술들은 컴퓨터-생성 현실(CGR) 환경의 제공을 용이하게 하는 데 사용된다. 예를 들어, CGR 환경의 제시 동안, 방법(400) 및 본 명세서에 개시된 다른 기술들에 의해 분류되는 객체들 및 추정되는 관계들을 포함하는 CGR 환경에서 가상 객체들을 위치시키기 위한 입력이 수신될 수 있다. 예를 들어, 사용자는 "벽 옆의 테이블 상에 가상 자이로스코프를 놓으시오"라는 음성 커맨드를 제공할 수 있다. CGR 환경을 제공하는 CGR 유닛(예컨대, 도 2의 CGR 유닛(246) 또는 도 3의 CGR 유닛(346))은 방법(400) 또는 본 명세서에 개시된 다른 기술에 의해 제공된 객체들 사이의 관계들 및 입력에 기초하여 CGR 환경 내의 가상 객체에 대한 위치를 결정할 수 있다. 예를 들어, 그것은, 입력 "벽 옆의 테이블"과 가장 일치하는 "테이블 T1이 벽 W1 옆에 있다'는 관계가 있다고 결정하는 것에 기초하여 테이블 T2보다는 오히려 테이블 T1 상에 가상 자이로스코프를 자동으로 배치할 것으로 식별할 수 있다. 이어서 가상 객체, 예컨대, 가상 자이로스코프는 사용자가 경험할 CGR 환경 내의 적절한 위치에 자동으로 위치될 수 있다.
일부 구현예들에서, 의미론적 메시 또는 의미론적 메시를 표현하는 그래프는 더 적은 정점들/노드들을 갖도록 축소된다. 도 5는 그래프의 축소된 버전을 생성하기 위한 예시적인 방법을 예시하는 블록도이다. 일부 구현예들에서, 방법(500)은 디바이스(예를 들어, 도 1 내지 도 3의 제어기(100) 또는 전자 디바이스(120))에 의해 수행된다. 방법(500)은 모바일 디바이스, HMD, 데스크톱, 랩톱, 서버 디바이스에서, 또는 서로 통신하는 다수의 디바이스들에 의해 수행될 수 있다. 일부 구현예들에서, 방법(500)은 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 조합을 포함하는 프로세싱 로직에 의해 수행된다. 일부 구현예들에서, 방법(500)은 비일시적 컴퓨터 판독가능 매체(예를 들어, 메모리)에 저장된 프로세서 실행 코드에 의해 수행된다.
블록(502)에서, 방법(500)은 2개의 노드들이 모서리에 의해 연결된다고 결정하는 단계를 수반한다. 이는 일부 구현예들에서, 의미론적 메시에 대한 검사 또는 순회에 의해 달성될 수 있다. 블록(504)에서, 방법(500)은 2개의 노드들이 동일한 의미론적 라벨을 갖는다고, 예컨대, 둘 모두가 "의자" 등으로 라벨링된다고, 결정한다. 블록(506)에서, 방법(500)은 2개의 노드들을 조합함으로써 조합된 노드를 생성한다. 2개의 소스 노드들 중 어느 하나에 이전에 연결되었던 임의의 다른 노드들이 대신에 조합된 노드에 연결된다. 또한, 조합된 노드는 제1 노드 및 제2 노드의 평균 위치 및/또는 개별 소스 노드 위치들, 예컨대, 제1 노드의 제1 위치 및 제2 노드의 제2 위치를 저장하거나 그렇지 않으면 그와 연관될 수 있다. 블록(508)에서, 방법(500)은 노드들을 조합한 결과로서 중복 모서리들을 병합한다.
도 6 내지 도 9는 예시적인 의미론적 메시를 축소시키는 것을 예시한다. 도 6은 예시적인 의미론적 메시(600)를 예시하는 블록도이다. 의미론적 메시(600)는 노드들(610a 내지 610h, 620a 내지 620r, 630a 내지 630i) 사이의 파선들에 의해 표현되는 모서리들에 의해 서로 연결된 노드들(610a 내지 610h, 620a 내지 620r, 630a 내지 630i)을 포함한다. 이러한 예에서, 노드들(610a 내지 610h)은 "컵"으로 의미론적으로 라벨링되고, 노드들(620a 내지 620r)은 "테이블"로 의미론적으로 라벨링되며, 노드들(630a 내지 630i)은 "바닥"으로 의미론적으로 라벨링된다. 실제 물리적 세팅에서의 전형적인 사용 사례에서, 추가의 객체들 및 노드들이 일반적으로 수반될 것이고, 의미론적 메시는 3D 좌표 공간을 점유할 것이다. 도 6의 예에서, 의미론적 메시(600)는 설명의 편의를 위해 2차원으로 도시된 제한된 수의 노드들 및 모서리들만을 포함한다.
도 7은 도 6의 의미론적 메시(600)의 축소된 버전을 예시하는 블록도이다. 이 예에서, 도 6에서 "컵"으로 의미론적으로 라벨링되었던 노드들(610a 내지 610h)은 단일의 조합된 노드(710a)로 조합된다. 이들 노드들(610a 내지 610h)은 노드들(610a 내지 610h)이 서로 연결되고 동일한 라벨을 갖는다고 결정하는 것에 기초하여 조합된다. 따라서, 노드들(610a 내지 610h) 사이의 모서리들은 제거된다. 조합된 노드(710a)에는 소스 노드들의 라벨들에 기초한 의미론적 라벨 "컵"이 주어지고, 소스 노드 위치들에 기초한 위치, 예컨대, 평균 위치가 주어진다.
도 8은 도 7의 의미론적 메시를 추가로 축소시키는 것을 예시하는 블록도이다. 이 예에서, 도 6 및 도 7에서 "바닥"으로 의미론적으로 라벨링되었던 노드들(630a 내지 630i)은 단일의 조합된 노드(730a)로 조합된다. 이들 노드들(630a 내지 630i)은 노드들(630a 내지 630i)이 서로 연결되고 동일한 라벨을 갖는다고 결정하는 것에 기초하여 조합된다. 따라서, 노드들(630a 내지 630i) 사이의 모서리들은 제거된다. 조합된 노드(730a)에는 소스 노드들의 라벨들에 기초한 의미론적 라벨 "바닥"이 주어지고, 소스 노드 위치들에 기초한 위치, 예컨대, 평균 위치가 주어진다.
도 9는 도 8의 의미론적 메시를 추가로 축소시키는 것을 예시하는 블록도이다. 이 예에서, 도 6 내지 도 8에서 "테이블"로 의미론적으로 라벨링되었던 노드들(620a 내지 620r)은 단일의 조합된 노드(720a)로 조합된다. 이들 노드들(620a 내지 620r)은 노드들(620a 내지 620r)이 서로 연결되고 동일한 라벨을 갖는다고 결정하는 것에 기초하여 조합된다. 따라서, 노드들(620a 내지 620r) 사이의 모서리들은 제거된다. 조합된 노드(720a)에는 소스 노드들의 라벨들에 기초한 의미론적 라벨 "테이블"이 주어지고, 소스 노드 위치들에 기초한 위치, 예컨대, 평균 위치가 주어진다.
도 10은 의미론적 메시의 축소된 버전(905)을 사용하여 물리적 환경 내의 객체들 사이의 관계들을 결정하기 위한 예시적인 방법(900)을 예시하는 블록도이다. 이러한 예에서, 의미론적 메시는 도 9의 의미론적 메시의 조합된 노드(710a, 720a, 730a) 및 예시적인 목적을 위해 포함된 추가의 조합된 노드(740a)를 포함하는 의미론적 메시의 축소된 버전에 의해 표현된다. 이 예에서, 의미론적 메시의 축소된 버전(905)은 객체 관계 그래프(920)를 생성하는 기계 학습 모델(910)에 입력된다. 기계 학습 모델(910)은, 일부 구현예들에서, 축소된 의미론적 메시 입력들이 주어지면 객체 관계 그래프들을 생성하도록 훈련된 신경망이다. 일부 구현예들에서, 기계 학습 모델(910)은 콘볼루션 신경망(convolutional neural network, CNN)이다. 일부 구현예들에서, 기계 학습 모델(910)은 예를 들어, 순환 신경망(recurrent neural network, RNN)을 포함하는, 피드백 룩을 통한 재귀적 학습을 수반한다.
이 예에서, 객체 관계 그래프(920)는 제1 객체(930), 제2 객체(940), 제3 객체(950), 및 제4 객체(960)를 포함한다. 제1 객체(930)는 유형 라벨 "컵" 및 인스턴스 라벨 "C1"을 갖는다. 제2 객체(940)는 유형 라벨 "테이블" 및 인스턴스 라벨 "T1"을 갖는다. 제3 객체(950)는 유형 라벨 "의자" 및 인스턴스 라벨 "CH1"을 갖는다. 제4 객체(960)는 유형 라벨 "바닥" 및 인스턴스 라벨 "F1"을 갖는다. 또한, 객체 관계 그래프(920)는 객체들(930, 940, 950, 960) 사이의 관계들(935, 945, 955, 965)을 식별한다. 제1 관계(935)는 제1 객체(930)가 제2 객체(940)의 "상부에" 있음을 식별한다. 제2 관계(945)는 제2 객체(940)가 제3 객체(950)의 "옆에" 있음을 식별한다. 제3 관계(955)는 제2 객체(940)가 제4 객체(960)의 "상부에" 있음을 식별한다. 제4 관계(965)는 제3 객체(950)가 제4 객체(960)의 "상부에" 있음을 식별한다. 객체 관계 그래프(920)에 예시된 모서리들 및 노드들은 하나의 라벨만을 보유하는 것으로 제한될 필요가 없음을 - 노드 및 모서리당 2개, 3개, 또는 그 초과의 라벨들이 생성될 수 있음 - 유의하여야 한다.
도 11은 도 10의 객체 관계 그래프에 의해 표현되는 CGR 환경에 대한 가상 객체의 추가를 표현하는 그래프의 블록도이다. 이 예에서, 사용자는 "테이블 옆에 가상 의자를 추가하라"는 텍스트 또는 구두 커맨드를 제공한다. 이러한 커맨드에 기초하여, 제2 객체(940)(테이블 T1)는 커맨드에서 참조되는 테이블로서 식별된다. 커맨드에 기초하여 CGR 환경 내에 가상 의자가 자동으로 추가되고, 객체 관계 그래프(1100)는 커맨드에 기초하여 결정된 관계를 포함하여 추가를 반영하도록 업데이트된다. 구체적으로, 커맨드는 가상 의자가 테이블 "옆에" 위치되어야 함을 식별하였다. 이에 기초하여, CGR 환경 내의 자동 위치는 (예컨대, 예를 들어 "~의 옆에"가 객체들을 6인치 떨어져 배치하는 것을 트리거하는 것 등을 정의하는 규칙들을 사용하여) 선택된다. 또한, 객체 관계 그래프(1100)는 새로운 객체(1130)(예컨대, 유형 라벨 "의자" 및 인스턴스 라벨 "VCH1"을 갖는 가상 의자)를 포함하도록 확장된다. 새로운 관계들이 또한 식별되고 객체 관계 그래프(1100)에 포함된다. 구체적으로, 제5 관계(1135)는 새로운 객체(1130)가 제2 객체(940) 옆에 있음을 식별하고, 제6 관계는 새로운 객체(1130)가 제4 객체(960)의 "상부에" 있음을 식별한다. 그러한 관계들은 커맨드에 기초하여 결정될 수 있다(예컨대, 제5 관계(1135)는 커맨드 내의 "~의 옆에"에 기초하여 결정된다). 그러한 관계들은 알고리즘들, 규칙들, 또는 기계 학습에 기초하여 결정될 수 있다. 이 예에서, 제6 관계(1145)는, 가상 객체가 바닥의 "상부"에 있는 객체 옆에 추가되는 경우, 가상 객체는 또한 디폴트로 바닥의 "상부"에 있는 것으로 간주될 것임을 특정하는 규칙에 기초하여 결정된다.
도 12는 합성 데이터를 생성하고 합성 데이터를 사용하여 기계 학습 모델을 훈련시키는 방법(1200)을 예시하는 블록도이다. 일부 구현예들에서, 방법(1200)은 디바이스(예를 들어, 도 1 내지 도 3의 제어기(100) 또는 전자 디바이스(120))에 의해 수행된다. 방법(1200)은 텔레비전, 셋톱 박스, 모바일 디바이스, HMD, 데스크톱, 랩톱, 서버 디바이스에서, 또는 서로 통신하는 다수의 디바이스들에 의해 수행될 수 있다. 일부 구현예들에서, 방법(1200)은 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 조합을 포함하는 프로세싱 로직에 의해 수행된다. 일부 구현예들에서, 방법(1200)은 비일시적 컴퓨터 판독가능 매체(예를 들어, 메모리)에 저장된 프로세서 실행 코드에 의해 수행된다.
블록(1202)에서, 방법(1200)은 합성 환경의 별개의 객체들에 대한 메시들을 모델링한다. 별개의 객체들은 객체 유형들과 연관되고, 메시들은 의미론적 라벨들과 연관된다. 일부 구현예들에서, 사용자들은 각각의 그러한 방에 대해 바닥, 의자들, 테이블들, 벽들 등을 별도로 생성함으로써 예시적인 방들을 수동으로 생성한다.
블록(1204)에서, 방법(1200)은 복수의 메시들에 기초하여 볼륨 표현을 결정한다. 예를 들어, 이는 별개의 객체들의 개별 메시들을 변환하여, 포인트들의 단일 밀도 클라우드 또는 세트를 형성하는 것을 수반할 수 있다.
블록(1206)에서, 방법(1200)은 볼륨 표현에 기초하여 조합된 메시를 결정한다. 예를 들어, 이는 밀도 클라우드를 단일 메시로 다시 변환하는 것을 수반할 수 있다.
블록(1208)에서, 방법(1200)은 별개의 객체들에 대한 메시들의 라벨들에 기초하여 조합된 메시의 노드들에 의미론적 라벨들을 추가한다. 예를 들어, 의자 C1의 노드들로부터의 라벨들은 조합된 메시 내의 (예컨대, 3D 공간 내의 위치들에 기초하여) 유사하게 위치된 노드들을 라벨링하는 데 사용될 수 있다.
블록(1210)에서, 방법은 별개의 객체들 사이의 관계들을 결정한다. 일부 구현예들에서, 이것은 별개의 객체들 중 제1 객체가 별개의 객체들 중 제2 객체와 접촉하는지 여부를 결정하는 것(예컨대, 객체들이 터치하고 있는지, 접촉하고 있는지 여부 등을 결정하기 위함)을 포함한다. 일부 구현예들에서, 이것은 별개의 객체들 중 제1 객체의 제1 위치가 별개의 객체들 중 제2 객체의 제2 위치에 대한 거리-기반 임계 조건을 충족하는지 여부를 결정하는 것(예컨대, 객체들이 부착되어 있는지, 근처에 있는지, 옆에 있는지 등을 결정하기 위함)을 수반한다. 일부 구현예들에서, 이것은 별개의 객체들 중 제1 객체의 제1 위치가 별개의 객체들 중 제2 객체의 제2 위치에 대한 배향-기반 임계 조건을 충족하는지 여부를 결정하는 것(예컨대, 객체들이 향하고 있는지, 그 상부에 있는지, 그 아래에 있는지 여부 등을 결정하기 위함)을 수반한다.
일부 구현예들에서, 관계들은 별개의 객체들 중 제1 객체와 연관된 제1 경계 박스를 결정하고, 별개의 객체들 중 제2 객체와 연관된 제2 경계 박스를 결정하고, 제1 경계 박스와 제2 경계 박스를 비교함으로써 관계를 결정하는 것에 의해(예를 들어, 객체가 다른 객체를 둘러싸는지 또는 다른 객체 내에 있는지 여부를 결정하기 위함) 결정된다.
일부 구현예들에서, 관계들을 결정하는 것은 제1 객체들의 위치에 기초하여 광선들을 생성하고, 별개의 객체들 중 제2 객체와 광선들의 교차점들을 결정하고, 교차점들에 기초하여 관계를 결정하는 것을 수반한다.
블록(1212)에서, 방법(1200)은 라벨링된 조합된 메시 및 관계들을 사용하여 기계 학습 알고리즘을 훈련시킨다. 예를 들어, 조합된 메시 및 관계들은 본 명세서에 개시된 기술들을 사용하여 객체들을 분류하고 의미론적 메시들로부터의 관계들을 추정하기 위해 기계 학습 모델을 훈련시키는 데 사용될 수 있는 합성 데이터를 제공할 수 있다. 일부 구현예들에서, 조합된 메시 및 객체 관계 그래프는 기계 학습 모델을 훈련시키기 위한 입력 및 실측 자료로서 각각 사용된다. 조합된 메시 및 추정된 관계들은 대안적인 또는 추가의 목적을 위해 사용될 수 있다.
다수의 특정 세부사항들은 청구되는 주제 내용의 철저한 이해를 제공하기 위해 본 명세서에 기재된다. 그러나, 당업자들은 청구되는 주제 내용이 이들 특정 세부사항들 없이 실시될 수 있음을 이해할 것이다. 다른 경우에 있어서, 통상의 기술자에 의해 알려진 방법들, 장치들 또는 시스템들은 청구되는 주제 내용이 가려지지 않도록 상세히 설명되지 않았다.
구체적으로 달리 언급되지 않는다면, 본 명세서 전반에 걸쳐 "프로세싱", "컴퓨팅", "계산", "결정", 및 "식별" 등과 같은 용어들을 이용하는 논의들은, 메모리들, 레지스터들, 또는 컴퓨팅 플랫폼의 다른 정보 저장 디바이스들, 송신 디바이스들, 또는 디스플레이 디바이스들 내에서 물리적 전자 또는 자기 양들로서 표현되는 데이터를 조작 또는 변환하는, 하나 이상의 컴퓨터들 또는 유사한 전자 컴퓨팅 디바이스 또는 디바이스들과 같은 컴퓨팅 디바이스의 작동들 또는 프로세스들을 지칭함이 이해될 것이다.
본 명세서에 논의된 시스템 또는 시스템들은 임의의 특정 하드웨어 아키텍처 또는 구성에 제한되지 않는다. 컴퓨팅 디바이스는 하나 이상의 입력들에 반응하는 결과를 제공하는 컴포넌트들의 임의의 적합한 배열을 포함할 수 있다. 적합한 컴퓨팅 디바이스들은 범용 컴퓨팅 장치로부터 본 주제 내용의 하나 이상의 구현예들을 구현하는 특수 컴퓨팅 장치까지 컴퓨팅 시스템을 프로그래밍 또는 구성하는, 저장된 소프트웨어에 액세스하는 다목적 마이크로프로세서-기반 컴퓨터 시스템들을 포함한다. 임의의 적합한 프로그래밍, 스크립팅, 또는 다른 유형의 언어 또는 언어들의 조합들은 본 명세서에 포함된 교시들을, 컴퓨팅 디바이스를 프로그래밍 또는 구성하는 데 사용될 소프트웨어로 구현하는 데 사용될 수 있다.
본 명세서에 개시된 방법들의 구현예들은 이러한 컴퓨팅 디바이스들의 동작에서 수행될 수 있다. 위 예들에 제시된 블록들의 순서는 달라질 수 있는데, 예를 들어, 블록들이 재정렬되거나, 조합되거나, 또는 하위-블록들로 나뉠 수 있다. 소정의 블록들 또는 프로세스들은 병렬로 수행될 수 있다.
본 명세서에서 "~ 하도록 적응되는(adapted to)" 또는 "~ 하도록 구성되는(configured to)"의 사용은 부가적인 태스크들 또는 단계들을 수행하도록 적응되거나 또는 구성되는 디바이스들을 배제하지 않는 개방적이고 포괄적인 언어로서 의도된다. 부가적으로, "~에 기초하여"의 사용은, 하나 이상의 인용 조건들 또는 값들"에 기초한" 프로세스, 단계, 계산, 또는 다른 작동이, 실제로, 인용된 것들 이상으로 부가적인 조건들 또는 값에 기초할 수 있다는 점에서 개방적이고 포괄적인 것으로 의도된다. 본 명세서에 포함된 표제들, 목록들, 및 번호는 단지 설명의 용이함을 위한 것이며 제한적인 것으로 의도되지 않는다.
용어들 "제1", "제2" 등이 다양한 객체들을 설명하기 위해 본 명세서에서 사용될 수 있지만, 이들 객체들은 이들 용어들에 의해 제한되어서는 안 된다는 것이 또한 이해될 것이다. 이러한 용어들은 하나의 객체를 다른 객체와 구별하는 데에만 사용된다. 예를 들어, 모든 "제1 노드"의 발생이 일관되게 재명명되고 모든 "제2 노드"의 발생이 일관되게 재명명되기만 한다면, 제1 노드는 제2 노드로 지칭될 수 있고, 유사하게, 제2 노드는 제1 노드로 지칭될 수 있으며, 이는 설명의 의미를 변경한다. 제1 노드 및 제2 노드는 둘 모두 노드들이지만, 그것들은 동일한 노드가 아니다.
본 명세서에서 사용되는 용어는 단지 특정 구현예들만을 설명하는 목적을 위한 것이고, 청구범위를 제한하도록 의도되지 않는다. 본 구현예들의 설명 및 첨부된 청구범위에 사용되는 바와 같이, 단수형들("a", "an" 및 "the")은 문맥상 명확하게 달리 나타나지 않으면 복수형들도 또한 포함하도록 의도된다. 또한, 본 명세서에서 사용되는 바와 같은 용어 "또는"은 열거되는 연관된 아이템들 중 하나 이상의 아이템의 임의의 그리고 모든 가능한 조합들을 나타내고 그들을 포괄하는 것임이 이해될 것이다. 본 명세서에서 사용될 때 용어들 "포함한다(comprise)" 또는 "포함하는(comprising)"은 언급된 특징들, 정수들, 단계들, 동작들, 객체들, 또는 컴포넌트들의 존재를 특정하지만, 하나 이상의 다른 특징들, 정수들, 단계들, 동작들, 객체들, 컴포넌트들 또는 이들의 그룹들의 존재 또는 부가를 배제하지 않는다는 것이 추가로 이해될 것이다.
본 명세서에서 사용되는 바와 같이, 상황에 따라 언급된 선행 조건이 사실"인 경우(if)"라는 용어는 그가 사실"일 때(when)", 그가 사실"일 시(upon)" 또는 그가 사실"이라는 결정하는 것에 응답하여(in response to determining)" 또는 그가 사실"이라는 결정에 따라(in accordance with a determination)" 또는 그가 사실"임을 검출하는 것에 응답하여(in response to detecting)"를 의미하는 것으로 해석될 수 있다. 유사하게, 어구 "[언급된 선행 조건이 사실이라고] 결정하면" 또는 "[언급된 선행 조건이 사실]이면" 또는 "[언급된 선행 조건이 사실]일 때"는 맥락에 의존하여, 언급된 선행 조건이 사실"이라고 결정할 시에" 또는 그 조건이 사실"이라고 결정하는 것에 응답하여" 또는 그 조건이 사실"이라는 결정에 따라" 또는 그 조건이 사실"이라는 것을 검출할 시에" 또는 그 조건이 사실"이라는 것을 검출하는 것에 응답하여"를 의미하는 것으로 해석될 수 있다.
본 발명의 상세한 설명 및 발명의 내용은 모든 면에서 도시적이고 예시적이지만, 제한적이지 않은 것으로 이해될 것이며, 본 명세서에 개시된 발명의 범주는 예시적인 구현예들의 상세한 설명에만 의존하여 결정되지 않고, 특허법에서 허용되는 전체 범위에 따라 결정될 것이다. 본 명세서에 도시되고 기재된 구현예들은 단지 본 발명의 원리에 대한 예시일뿐이고, 다양한 변형예가 본 발명의 범주 및 사상을 벗어나지 않고 당업자들에 의해 구현될 수 있음이 이해될 것이다.

Claims (20)

  1. 방법으로서,
    프로세서를 갖는 전자 디바이스에서,
    정점들 및 면들의 의미론적 메시(semantic mesh)를 생성하는 단계 - 상기 면들은 물리적 환경의 객체들의 표면들을 표현하고 상기 정점들 중 적어도 일부는 객체 유형을 식별하는 의미론적 라벨들을 가짐 -;
    상기 의미론적 메시를 상기 의미론적 메시를 표현하는 그래프로 변환하는 단계 - 상기 의미론적 메시의 정점들은 상기 그래프의 노드들에 의해 표현됨 -; 및
    상기 의미론적 메시의 상기 그래프의 표현을 입력하는 기계 학습 모델을 사용하여 상기 객체들 사이의 관계들을 식별하는 단계를 포함하는, 방법.
  2. 제1항에 있어서, 상기 그래프 내의 노드들을 제거함으로써 상기 의미론적 메시의 상기 그래프의 상기 표현을 결정하는 단계를 추가로 포함하는, 방법.
  3. 제2항에 있어서, 노드들은 동일한 의미론적 라벨을 갖는 노드들 사이의 모서리(edge)들을 제거하는 것에 기초하여 제거되는, 방법.
  4. 제2항에 있어서, 노드들은,
    제1 노드 및 제2 노드가 모서리에 의해 연결된다고 결정하고;
    상기 제1 노드 및 제2 노드가 동일한 의미론적 라벨을 갖는다고 결정하고;
    상기 제1 노드와 상기 제2 노드를 조합함으로써 조합된 노드를 생성하고;
    노드들을 조합한 결과로서 중복 모서리들을 병합함
    으로써 제거되는, 방법.
  5. 제4항에 있어서, 상기 조합된 노드는 상기 제1 노드 및 상기 제2 노드의 평균 위치를 식별하는, 방법.
  6. 제4항에 있어서, 상기 조합된 노드는 상기 제1 노드의 제1 위치 및 상기 제2 노드의 제2 위치를 식별하는, 방법.
  7. 제1항에 있어서, 상기 노드들 중 적어도 일부는 의미론적으로 라벨링된 바닥, 테이블, 의자, 또는, 벽인, 방법.
  8. 제1항에 있어서, 상기 그래프는 동일한 의미론적 라벨과 연관된 노드들을 연결하는 모서리들 및 상이한 의미론적 라벨들과 연관된 노드들을 연결하는 모서리들을 포함하는, 방법.
  9. 제1항에 있어서, 관계들을 식별하는 단계는 상기 객체들이 상기 관계들에 의해 연관될 확률들을 식별하는 단계를 포함하는, 방법.
  10. 제1항에 있어서, 상기 관계들의 관계는,
    제2 객체의 상부에 있는 제1 객체;
    상기 제2 객체 옆에 있는 상기 제1 객체;
    상기 제2 객체를 향하는 상기 제1 객체; 또는
    상기 제2 객체에 부착된 상기 제1 객체
    를 식별하는, 방법.
  11. 제1항에 있어서, 상기 기계 학습 모델은 또한 입력으로서,
    상기 물리적 환경의 이미지; 또는
    상기 물리적 환경에서의 시점(viewpoint)과 연관된 포즈(pose)
    를 사용하는, 방법.
  12. 제1항에 있어서, 상기 객체들 및 상기 관계들을 표현하는 그래프를 제공하는 단계를 추가로 포함하는, 방법.
  13. 제1항에 있어서,
    상기 객체들을 포함하는 컴퓨터-생성 현실(computer-generated reality, CGR) 환경에서 가상 객체를 위치시키기 위한 입력을 수신하는 단계;
    상기 입력 및 상기 객체들 사이의 상기 관계들에 기초하여 상기 CGR 환경 내의 상기 가상 객체에 대한 위치를 결정하는 단계; 및
    상기 CGR 환경을 제공하는 단계를 추가로 포함하는, 방법.
  14. 제1항에 있어서, 기계 학습 모델을 사용하여 상기 그래프의 상기 표현의 노드들의 객체 분류 라벨들을 업데이트하는 단계를 추가로 포함하는, 방법.
  15. 제1항에 있어서, 상기 기계 학습 모델은 훈련 데이터를 사용하여 훈련되고, 상기 훈련 데이터는,
    합성 환경의 별개의 객체들에 대한 복수의 메시들을 모델링하고 - 상기 별개의 객체들은 객체 유형들과 연관되고, 상기 메시들은 의미론적 라벨들과 연관됨 -;
    상기 복수의 메시들에 기초하여 볼륨 표현을 결정하고;
    상기 볼륨 표현에 기초하여 조합된 메시를 결정하고;
    상기 별개의 객체들 사이의 관계들을 결정함
    으로써 생성되는, 방법.
  16. 시스템으로서,
    비일시적 컴퓨터 판독가능 저장 매체; 및
    상기 비일시적 컴퓨터 판독가능 저장 매체에 결합된 하나 이상의 프로세서들을 포함하며, 상기 비일시적 컴퓨터 판독가능 저장 매체는, 상기 하나 이상의 프로세서들 상에서 실행될 때, 상기 시스템으로 하여금 동작들을 수행하게 하는 프로그램 명령어들을 포함하고, 상기 동작들은,
    정점들 및 면들의 의미론적 메시를 생성하는 것 - 상기 면들은 물리적 환경의 객체들의 표면들을 표현하고 상기 정점들 중 적어도 일부는 객체 유형을 식별하는 의미론적 라벨들을 가짐 -;
    상기 의미론적 메시를 상기 의미론적 메시를 표현하는 그래프로 변환하는 것 - 상기 의미론적 메시의 정점들은 상기 그래프의 노드들에 의해 표현됨 -; 및
    상기 의미론적 메시의 상기 그래프의 표현을 입력하는 기계 학습 모델을 사용하여 상기 객체들 사이의 관계들을 식별하는 것을 포함하는, 시스템.
  17. 제16항에 있어서, 상기 동작들은 상기 그래프 내의 노드들을 제거함으로써 상기 의미론적 메시의 상기 그래프의 상기 표현을 결정하는 것을 추가로 포함하는, 시스템.
  18. 제17항에 있어서, 노드들은 동일한 의미론적 라벨을 갖는 노드들 사이의 모서리들을 제거하는 것에 기초하여 제거되는, 시스템.
  19. 제17항에 있어서, 노드들은,
    제1 노드 및 제2 노드가 모서리에 의해 연결된다고 결정하고;
    상기 제1 노드 및 제2 노드가 동일한 의미론적 라벨을 갖는다고 결정하고;
    상기 제1 노드와 상기 제2 노드를 조합함으로써 조합된 노드를 생성하고;
    노드들을 조합한 결과로서 중복 모서리들을 병합함
    으로써 제거되는, 시스템.
  20. 동작들을 수행하도록 컴퓨터 상에서 컴퓨터-실행가능한 프로그램 명령어들을 저장하는 비일시적 컴퓨터 판독가능 저장 매체로서, 상기 동작들은,
    정점들 및 면들의 의미론적 메시를 생성하는 것 - 상기 면들은 물리적 환경의 객체들의 표면들을 표현하고 상기 정점들 중 적어도 일부는 객체 유형을 식별하는 의미론적 라벨들을 가짐 -;
    상기 의미론적 메시를 상기 의미론적 메시를 표현하는 그래프로 변환하는 것 - 상기 의미론적 메시의 정점들은 상기 그래프의 노드들에 의해 표현됨 -; 및
    상기 의미론적 메시의 상기 그래프의 표현을 입력하는 기계 학습 모델을 사용하여 상기 객체들 사이의 관계들을 식별하는 것을 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
KR1020200112149A 2019-09-10 2020-09-03 3d 의미론적 메시로부터의 객체 관계 추정 KR102390797B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201962898049P 2019-09-10 2019-09-10
US62/898,049 2019-09-10
US16/984,406 2020-08-04
US16/984,406 US20210073429A1 (en) 2019-09-10 2020-08-04 Object Relationship Estimation From A 3D Semantic Mesh

Publications (2)

Publication Number Publication Date
KR20210030869A KR20210030869A (ko) 2021-03-18
KR102390797B1 true KR102390797B1 (ko) 2022-04-26

Family

ID=74851193

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200112149A KR102390797B1 (ko) 2019-09-10 2020-09-03 3d 의미론적 메시로부터의 객체 관계 추정

Country Status (3)

Country Link
US (1) US20210073429A1 (ko)
KR (1) KR102390797B1 (ko)
CN (1) CN112561071A (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11494996B2 (en) * 2020-11-30 2022-11-08 International Business Machines Corporation Dynamic interaction deployment within tangible mixed reality
US20220366642A1 (en) * 2021-05-11 2022-11-17 Baker Hughes Holdings Llc Generation of object annotations on 2d images

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019067476A2 (en) * 2017-09-29 2019-04-04 Apple Inc. PLATFORM OF REALITY GENERATED BY COMPUTER

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6919891B2 (en) * 2001-10-18 2005-07-19 Microsoft Corporation Generic parameterization for a scene graph
US8832020B2 (en) * 2010-11-15 2014-09-09 Medco Health Solutions, Inc. Method and system for safely transporting legacy data to an object semantic form data grid
US9658607B2 (en) * 2011-10-03 2017-05-23 Siemens Schweiz Ag System, method and apparatus for grouping building automation objects for group communication within a building automation system
US9219922B2 (en) * 2013-06-06 2015-12-22 Activevideo Networks, Inc. System and method for exploiting scene graph information in construction of an encoded video sequence
JP6174975B2 (ja) * 2013-11-14 2017-08-02 クラリオン株式会社 周囲環境認識装置
US9740963B2 (en) * 2014-08-05 2017-08-22 Sri International Multi-dimensional realization of visual content of an image collection
US9558467B1 (en) * 2016-03-02 2017-01-31 Software Ag Systems and/or methods for grid-based multi-level digitization of enterprise models
US10362429B2 (en) * 2016-04-28 2019-07-23 California Institute Of Technology Systems and methods for generating spatial sound information relevant to real-world environments
US10356491B2 (en) * 2016-12-23 2019-07-16 Active Video Networks, Inc. Systems and methods for virtual set-top support of an HTML client
CN106650915B (zh) * 2016-12-27 2019-05-28 天津师范大学 基于网格智能体的人群行为模拟方法
CN106709481A (zh) * 2017-03-03 2017-05-24 深圳市唯特视科技有限公司 一种基于二维‑三维语义数据集的室内场景理解方法
US10977818B2 (en) * 2017-05-19 2021-04-13 Manor Financial, Inc. Machine learning based model localization system
WO2018217828A1 (en) * 2017-05-23 2018-11-29 Intel Corporation Methods and apparatus for discriminative semantic transfer and physics-inspired optimization of features in deep learning
US10642867B2 (en) * 2017-09-15 2020-05-05 Adobe Inc. Clustering based on a directed graph
US10685446B2 (en) * 2018-01-12 2020-06-16 Intel Corporation Method and system of recurrent semantic segmentation for image processing
CN109376581B (zh) * 2018-09-03 2022-02-22 腾讯科技(武汉)有限公司 对象关系识别方法和装置、存储介质及电子装置
CA3134440A1 (en) * 2019-03-18 2020-09-24 Geomagical Labs, Inc. System and method for virtual modeling of indoor scenes from imagery
US11244504B2 (en) * 2019-05-03 2022-02-08 Facebook Technologies, Llc Semantic fusion
US11624626B2 (en) * 2019-07-26 2023-04-11 Here Global B.V. Method, apparatus and computer program product for using a location graph to enable natural guidance

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019067476A2 (en) * 2017-09-29 2019-04-04 Apple Inc. PLATFORM OF REALITY GENERATED BY COMPUTER

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Julien P. C. Valentin et al., "Mesh Based Semantic Modelling for Indoor and Outdoor Scenes", 2013.06. 1부.*

Also Published As

Publication number Publication date
US20210073429A1 (en) 2021-03-11
CN112561071A (zh) 2021-03-26
KR20210030869A (ko) 2021-03-18

Similar Documents

Publication Publication Date Title
US11127161B2 (en) Multiple user simultaneous localization and mapping (SLAM)
US11132546B2 (en) Plane detection using semantic segmentation
US11328481B2 (en) Multi-resolution voxel meshing
US11348305B2 (en) Techniques for locating virtual objects relative to real physical objects
US11610397B2 (en) Plane detection using semantic segmentation
US11727675B2 (en) Object detection with instance detection and general scene understanding
KR102590957B1 (ko) 컴퓨터 생성 렌더링 환경을 위한 시각적 검색 세분화
KR102390797B1 (ko) 3d 의미론적 메시로부터의 객체 관계 추정
CN114514493A (zh) 增强设备
US11030474B1 (en) Planar region boundaries based on intersection
US11640708B1 (en) Scene graph-based scene re-identification
US11182978B1 (en) Rendering virtual content with coherent visual properties
CN113678173A (zh) 用于虚拟对象的基于图绘的放置的方法和设备
US11972607B2 (en) Plane detection using semantic segmentation
US20240005652A1 (en) Object detection with instance detection and general scene understanding
US11783558B1 (en) Object correction using scene graphs
US11640692B1 (en) Excluding objects during 3D model generation
US11442549B1 (en) Placement of 3D effects based on 2D paintings
US11468627B1 (en) View dependent content updated rates
US10964056B1 (en) Dense-based object tracking using multiple reference images

Legal Events

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