KR20230042061A - 인공 현실 환경에서의 3d 대화 - Google Patents

인공 현실 환경에서의 3d 대화 Download PDF

Info

Publication number
KR20230042061A
KR20230042061A KR1020237005715A KR20237005715A KR20230042061A KR 20230042061 A KR20230042061 A KR 20230042061A KR 1020237005715 A KR1020237005715 A KR 1020237005715A KR 20237005715 A KR20237005715 A KR 20237005715A KR 20230042061 A KR20230042061 A KR 20230042061A
Authority
KR
South Korea
Prior art keywords
data
capture
captured
representation
receiving
Prior art date
Application number
KR1020237005715A
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 KR20230042061A publication Critical patent/KR20230042061A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/013Eye tracking input arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/165Management of the audio stream, e.g. setting of volume, audio stream path
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/30Image reproducers
    • H04N13/366Image reproducers using viewer tracking
    • H04N13/383Image reproducers using viewer tracking for tracking with gaze detection, i.e. detecting the lines of sight of the viewer's eyes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • H04N7/141Systems for two-way working between two video terminals, e.g. videophone
    • H04N7/147Communication arrangements, e.g. identifying the communication as a video-communication, intermediate storage of the signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • H04N7/15Conference systems
    • H04N7/157Conference systems defining a virtual conference space and using avatars or agents
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • H04N7/141Systems for two-way working between two video terminals, e.g. videophone
    • H04N7/142Constructional details of the terminal equipment, e.g. arrangements of the camera and the display
    • H04N2007/145Handheld terminals

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • Computing Systems (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Processing Or Creating Images (AREA)
  • User Interface Of Digital Computer (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)

Abstract

3D 대화 시스템은 증강 현실 환경에서 3D 대화를 용이하게 하여, 대화 참가자가 마치 대면하는 것처럼 보이는 것을 허용할 수 있다. 3D 대화 시스템은 데이터 프로세싱 스테이지의 파이프라인을 사용하여 이것을 달성할 수 있는데, 데이터 프로세싱 스테이지의 파이프라인은 캘리브레이팅, 캡쳐, 태그 및 필터, 압축, 압축 해제, 재구성, 렌더, 및 디스플레이를 포함할 수 있다. 일반적으로, 파이프라인은 전송 유저의 이미지를 캡쳐할 수 있고, 중간 표현을 생성할 수 있고, 이미지가 촬상되었던 방위로부터 수신 유저의 뷰포인트로 변환하기 위해 표현을 변환할 수 있고, 그리고 수신 유저의 뷰포인트로부터, 전송 유저의 이미지를, 전송 유저로부터 캡쳐되는 오디오와 동기화하여, 출력할 수 있다. 그러한 3D 대화는 두 개 이상의 전송기/수신 시스템 사이에서 발생할 수 있으며, 몇몇 구현예에서는, 하나 이상의 서버 시스템에 의해 중재될 수 있다. 다양한 구성에서, 파이프라인의 스테이지는 대화 컨텍스트에 기초하여 커스터마이징될 수 있다.

Description

인공 현실 환경에서의 3D 대화
본 개시는 삼차원(three-dimensional; "3D") 대화를 구현하기 위한 다수의 디바이스 사이의 통신 파이프라인의 양태를 대상으로 한다.
화상 회의(video conferencing)는 사람들이 연결하는 주요 방식이 되었다. 직장 통화로부터 가상 해피 아워(virtual happy hour), 웨비나(webinar), 온라인 극장에 이르기까지, 사람들은 그들이 다른 참가자를 볼 수 있을 때 더 많이 연결된 것처럼 느끼고, 그들을 대면 경험에 더 가깝게 데려간다. 그러나, 그러한 비디오 통화는 대면 상호 작용의 창백한 모방으로 남아 있다. 전송기(sender)의 이차원(two-dimensional; "2D") 표현만을 가지고 바디 랭기지(body language) 및 컨텍스트를 이해하는 것은 어려울 수 있다. 게다가, 통신은 사람과 사람 사이의 상호 작용, 예컨대 참가자 사이의 공간적 이동에 종종 의존한다. 그러나, 비디오 통화를 통한 통신은 참가자가 서로를 기준으로 이동하는 능력을 제공하지 않는데, 시점(point of view)이 전송기의 카메라에 고정되기 때문이다. 또한, 플랫 패널 디스플레이 상에서의 비디오 통화의 제약은, 의사 소통을 방해할 수 있는 기술의 방해 계층(intrusive layer)을 도입하고 대면 통신(in-person communication)의 인식을 감소시킨다.
본 발명의 한 양태에서, 3D 대화를 제공하기 위한 방법이 제공되는데, 그 방법은: 인공 현실 시스템(artificial reality system)의 하나 이상의 캡쳐 디바이스로부터, 컬러 이미지, 깊이 이미지, 및 오디오를 포함하는 캡쳐 데이터를 획득하는 것; 캘리브레이션 데이터 - 캘리브레이션 데이터는 하나 이상의 캡쳐 디바이스 중 적어도 하나의 캡쳐 디바이스에 대한 적어도 포지션 정보를 명시함 - 를 캡쳐 데이터의 적어도 일부와 연관시키는 것; 캡쳐 데이터를 캡쳐 데이터의 제1 버전으로 압축하는 것; 및 캡쳐 데이터의 제1 버전을 수신 인공 현실 시스템(receiving artificial reality system)으로 송신하는 것을 포함하고, 캡쳐 데이터의 압축된 제1 버전을 전송하는 것은 수신 인공 현실 시스템으로 하여금: 캡쳐 데이터의 수신된 제1 버전을 컬러 데이터, 깊이 데이터, 및 오디오 데이터를 포함하는 캡쳐 데이터의 제2 버전으로 압축 해제하게 하고; 깊이 데이터에 적어도 기초하여 3D 표현을 생성하기 위해 캡쳐 데이터의 제2 버전을 사용하게 하고; 수신 인공 현실 시스템의 수신 유저에 대해 결정되는 하나 이상의 뷰포인트(viewpoint)에서 3D 표현으로부터의 하나 이상의 2D 이미지 - 하나 이상의 2D 이미지는 컬러 데이터에 기초한 컬러를 더 포함함 - 를 렌더링하게 하고; 그리고 하나 이상의 2D 이미지의 디스플레이와 동기화되는 오디오 데이터의 출력을 야기하게 한다.
하나 이상의 2D 이미지의 출력은, 하나 이상의 2D 이미지에 기초하여, 수신 인공 현실 시스템의 유저의 적어도 한쪽 눈에 광을 투영하는 웨어러블 투영 시스템을 포함할 수도 있다.
하나 이상의 캡쳐 디바이스는 다수의 캡쳐 디바이스 중에서부터 선택될 수도 있는데 이것은 다음의 것 중 하나 이상에 기초할 수도 있다: 선택된 하나 이상의 캡쳐 디바이스의 뷰포인트와 수신 인공 현실 시스템의 수신 유저에 대해 결정되는 하나 이상의 뷰포인트 사이의 결정된 관계; 인공 현실 시스템의 및/또는 수신 인공 현실 시스템의 결정된 컴퓨트 성능; 결정된 배터리 레벨; 수신 인공 현실 시스템의 결정된 디스플레이 성능; 또는 이들의 임의의 조합.
방법은 캡쳐 데이터의 일부를 캡쳐한 디바이스에 따라 캡쳐 데이터의 그 일부에 캡쳐 디바이스 식별자를 할당하는 것을 더 포함할 수도 있고; 캘리브레이션 데이터는 캘리브레이션 데이터가 생성되었던 카메라 식별자와 연관될 수도 있고; 그리고 캘리브레이션 데이터와 캡쳐 데이터의 적어도 일부 사이의 연관성은 캡쳐 데이터의 적어도 일부에 할당되는 캡쳐 디바이스 식별자와 카메라 식별자 사이의 매치에 기초할 수도 있다.
캡쳐 데이터의 적어도 일부의 압축은 캡쳐 데이터의 적어도 일부의 타입을 결정하는 것 및 캡쳐 데이터의 적어도 일부의 결정된 타입에 고유한 압축 알고리즘을 선택하는 것을 포함할 수도 있다.
방법은 다음의 것에 의해 캡쳐 데이터의 일부를 필터링하는 것을 더 포함할 수도 있다: 캡쳐 데이터의 일부의 배경 영역과 전송 유저(sending user)의 묘사 사이를 구별하는 것; 및 구별에 기초하여, 캡쳐 데이터로부터 배경 영역의 하나 이상의 묘사를 제거하는 것.
캡쳐 데이터는 캡쳐 데이터의 제2 버전과 동일할 수도 있다.
본 발명의 한 양태에서, 컴퓨팅 시스템에 의해 실행될 때, 컴퓨팅 시스템으로 하여금, 3D 대화를 제공하기 위한 동작을 수행하게 하는 명령어들을 저장하는 컴퓨터 판독 가능 저장 매체가 제공되는데, 동작은 다음의 것을 포함한다: 수신 3D 시스템에서, 캡쳐 데이터의 제1 압축된 버전 - 캡쳐 데이터의 제1 압축된 버전은 적어도 A) 캘리브레이션 데이터 및 제1 타이밍 정보와 연관되는 깊이 정보 및 B) 제2 타이밍 정보와 연관되는 오디오 정보를 포함하고, 캘리브레이션 데이터는 적어도 깊이 정보에 대한 포지션 정보를 명시함 - 을 수신하는 것; 캡쳐 데이터의 수신된 제1 압축된 버전을 깊이 데이터 및 오디오 데이터를 포함하는 캡쳐 데이터의 제2 버전으로 압축 해제하는 것; 깊이 데이터 및 캘리브레이션 데이터에 기초하여 3D 표현 - 하나 이상의 2D 이미지는 하나 이상의 결정된 뷰포인트에서 3D 표현으로부터 렌더링됨 - 을 생성하는 것; 및 수신 3D 시스템에 의해, 제1 타이밍 정보 및 제2 타이밍 정보에 기초하여 동기화되는, 오디오 데이터의 그리고 하나 이상의 2D 이미지의 출력을 야기하는 것.
캡쳐 데이터의 제1 압축된 버전은 이동 전화 디바이스에 의해 송신될 수도 있고 수신 3D 시스템은 2D 이미지의 출력을 수행할 수도 있고 다음의 것 중 하나 이상을 갖는 인공 현실 디바이스일 수도 있다: 적어도 하나의 양안 디스플레이(binocular display); 적어도 하나의 라이트필드 디스플레이(lightfield display); 적어도 하나의 홀로그래픽 디스플레이; 적어도 하나의 파면 디스플레이(wave front display); 적어도 하나의 3D 스테레오 디스플레이; 또는 이들의 임의의 조합.
동작은: 다음의 것 중 하나 이상을 포함할 수도 있는 대화 컨텍스트 인자(conversation context factor)를 식별하는 것: 수신 3D 시스템의 결정된 컴퓨트 성능; 결정된 배터리 레벨; 수신 3D 시스템의 결정된 디스플레이 성능; 또는 이들의 임의의 조합; 및 대화 컨텍스트의 하나 이상의 인자를 3D 표현 타입의 계층 구조의 3D 표현 타입에 매칭시키는 것을 더 포함할 수도 있되; 3D 표현을 생성하는 것은 매치된 3D 표현 타입의 3D 표현을 생성하는 것을 포함한다.
캡쳐 데이터의 제1 압축된 버전은 캡쳐 데이터를 캡쳐한 하나 이상의 캡쳐 디바이스의 고유 파라미터(intrinsic parameter) 및 외부 파라미터(extrinsic parameter)를 명시하는 캘리브레이션 데이터와 연관될 수도 있고; 그리고 3D 표현을 생성하는 것은, 포인트 클라우드, 부호가 있는 거리 함수, 채워진 복셀, 메쉬, 라이트 필드; 또는 이들의 임의의 조합 중 하나 이상을 생성하기 위해, 고유 파라미터 및 외부 파라미터에 기초하여 깊이 데이터에 하나 이상의 변환을 적용하는 것을 포함할 수도 있다.
하나 이상의 결정된 뷰포인트는, 수신 3D 시스템의 머리 추적 시스템 및/또는 눈 추적 시스템에 기초하여 결정되는, 수신 3D 시스템의 유저의 각각의 눈의 뷰포인트일 수도 있다.
본 발명의 한 양태에서, 3D 대화를 제공하기 위한 전송 컴퓨팅 시스템이 제공되는데, 전송 컴퓨팅 시스템은: 하나 이상의 캡쳐 디바이스; 하나 이상의 프로세서; 및 하나 이상의 프로세서에 의해 실행될 때, 동작을 수행하는 명령어들을 저장하는 하나 이상의 메모리를 포함하고, 동작은: 하나 이상의 캡쳐 디바이스로부터, 컬러 정보, 깊이 정보, 및 오디오 정보를 포함하는 캡쳐 데이터를 획득하는 것; 캡쳐 데이터를 캡쳐 데이터의 제1 버전으로 압축하는 것; 및 캡쳐 데이터의 제1 버전을 수신하는; 캡쳐 데이터의 수신된 제1 버전을, 깊이 데이터, 컬러 데이터, 및 오디오 데이터를 포함하는 캡쳐 데이터의 제2 버전으로 압축 해제하는; 그리고 깊이 데이터에 기초하여 3D 표현을 생성하는: 재구성 시스템으로, 캡쳐 데이터의 제1 버전을 제공하는 것을 포함하고; 하나 이상의 2D 이미지는 하나 이상의 결정된 수신 유저 뷰포인트에서 3D 표현으로부터 렌더링되고, 하나 이상의 2D 이미지는 컬러 데이터에 또한 기초하고; 그리고 오디오 데이터의 출력 및 렌더링된 하나 이상의 2D 이미지의 디스플레이는 동기화된다.
하나 이상의 캡쳐 디바이스는 적어도 컬러 카메라, 깊이 카메라, 및 마이크를 포함할 수도 있다.
깊이 정보는 하나 이상의 포인트 클라우드를 포함할 수도 있고; 캡쳐 데이터를 캡쳐 데이터의 제1 버전으로 압축하는 것은 비디오 코덱을 적어도 컬러 정보에 적용하는 것 및 포인트 클라우드 압축 알고리즘을 하나 이상의 포인트 클라우드에 적용하는 것을 포함할 수도 있다.
동작은: 하나 이상의 캡쳐 디바이스 중 특정한 캡쳐 디바이스와 연관되는 캘리브레이션 데이터 - 특정한 캡쳐 디바이스와 연관되는 캘리브레이션 데이터는 그 캡쳐 디바이스의 고유 파라미터 및 외부 파라미터를 명시할 수도 있음 - 를 수신하는 것; 및 캡쳐 데이터의 연관된 부분을 캡쳐한 캡쳐 디바이스에 대해 생성된 캘리브레이션 데이터의 일부의 대응성에 기초하여 캘리브레이션 데이터의 일부를 캡쳐 데이터의 일부와 연관시키는 것을 더 포함할 수도 있되; 3D 표현을 생성하는 것은 고유 파라미터 및/또는 외부 파라미터에 기초하여 깊이 데이터에 하나 이상의 변환을 적용하는 것을 포함할 수도 있다.
재구성 시스템은 오디오 데이터의 렌더링 및 동기화된 출력 및 하나 이상의 2D 이미지의 디스플레이를 수행하는 수신 인공 현실 시스템의 일부일 수도 있다.
재구성 시스템은 렌더링을 수행하며 오디오 데이터의 동기화된 출력 및 하나 이상의 2D 이미지의 디스플레이를 야기하는 수신 인공 현실 시스템에 3D 표현의 한 버전을 송신할 수도 있다.
렌더링은 재구성 시스템에 의해 수행될 수도 있고 재구성 시스템은 또한 하나 이상의 2D 이미지를, 오디오 데이터의 동기화된 출력 및 하나 이상의 2D 이미지의 디스플레이를 야기하는 수신 인공 현실 시스템으로 송신할 수도 있다.
시스템은 3D 표현의 생성을 수행할 수도 있고 및/또는 3D 표현으로부터 하나 이상의 2D 이미지의 렌더링은 다음의 것 중 하나 이상을 포함하는 대화 컨텍스트에 기초할 수도 있다: 캡쳐 데이터에서의, 하나 이상의 캡쳐 디바이스 중 상이한 캡쳐 디바이스로부터의 데이터 스트림의 수; 전송 컴퓨팅 시스템, 재구성 시스템, 및/또는 수신 컴퓨팅 시스템의 결정된 컴퓨트 성능; 대역폭의 결정된 이용 가능한 양; 수신 컴퓨팅 시스템의 결정된 디스플레이 성능; 또는 이들의 임의의 조합.
도 1은 본 기술의 몇몇 구현예가 동작할 수 있는 디바이스의 개요를 예시하는 블록 다이어그램이다.
도 2a는 본 기술의 몇몇 구현예에서 사용될 수 있는 가상 현실 헤드셋을 예시하는 와이어 다이어그램(wire diagram)이다.
도 2b는 본 기술의 몇몇 구현예에서 사용될 수 있는 혼합 현실 헤드셋을 예시하는 와이어 다이어그램이다.
도 3은 본 기술의 몇몇 구현예가 동작할 수 있는 환경의 개요를 예시하는 블록 다이어그램이다.
도 4는, 몇몇 구현예에서, 개시된 기술을 활용하는 시스템에서 사용될 수 있는 컴포넌트를 예시하는 블록 다이어그램이다.
도 5는 두 개 이상의 디바이스 사이의 3D 대화를 위해 본 기술의 몇몇 구현예에서 사용되는 프로세스를 예시하는 흐름도이다.
도 6은 다양한 시스템에서 스테이지가 수행되는 본 기술의 몇몇 구현예에서 사용되는 도 5로부터의 흐름도에 대한 변형예를 예시한다.
도 7은 3D 대화 파이프라인의 캘리브레이션 스테이지에 대한 본 기술의 몇몇 구현예에서 사용되는 프로세스를 예시하는 흐름도이다.
도 8은 3D 대화 파이프라인의 캡쳐 스테이지에 대한 본 기술의 몇몇 구현예에서 사용되는 프로세스를 예시하는 흐름도이다.
도 9는 3D 대화 파이프라인의 필터 및 태그 스테이지에 대한 본 기술의 몇몇 구현예에서 사용되는 프로세스를 예시하는 흐름도이다.
도 10은 3D 대화 파이프라인의 압축 스테이지에 대한 본 기술의 몇몇 구현예에서 사용되는 프로세스를 예시하는 흐름도이다.
도 11은 3D 대화 파이프라인의 압축 해제 스테이지에 대한 본 기술의 몇몇 구현예에서 사용되는 프로세스를 예시하는 흐름도이다.
도 12는 3D 대화 파이프라인의 재구성 스테이지에 대한 본 기술의 몇몇 구현예에서 사용되는 프로세스를 예시하는 흐름도이다.
도 13은 3D 대화 파이프라인의 렌더 스테이지(render stage)에 대한 본 기술의 몇몇 구현예에서 사용되는 프로세스를 예시하는 흐름도이다.
도 14는 3D 대화 파이프라인의 디스플레이 스테이지에 대한 본 기술의 몇몇 구현예에서 사용되는 프로세스를 예시하는 흐름도이다.
도 15a는 인공 현실 환경에서 제1 시스템 관점으로부터의 예시적인 3D 대화를 예시하는 개념도이다.
도 15b는 인공 현실 환경에서 제2 시스템 관점으로부터의, 도 15a의 예시적인 3D 대화를 예시하는 개념도이다.
여기에서 소개되는 기술은 첨부의 도면과 연계하여 다음의 발명을 실시하기 위한 구체적인 내용(Detailed Description)을 참조하는 것에 의해 더 잘 이해될 수도 있는데, 첨부의 도면에서, 일한 참조 번호는 동일한 또는 기능적으로 유사한 엘리먼트를 나타낸다.
본 개시의 양태는, 유저가 마치 3D 공간에서 그들이 대면하고 있는 것처럼 보이면서 대화하는 것을 허용하는, 증강 현실 환경에서의 3D 대화에 관한 것이다. 3D 대화 시스템은 데이터 프로세싱 스테이지의 파이프라인을 구현하는 것에 의해 이것을 달성할 수 있는데, 데이터 프로세싱 스테이지의 파이프라인은 다음의 것 중 하나 이상을 포함할 수 있다: 캘리브레이팅, 캡쳐, 태그 및 필터, 압축, 압축 해제, 재구성, 렌더, 및 디스플레이. 일반적으로, 파이프라인은 제1 디바이스의 유저("전송 유저")의 이미지를 캡쳐할 수 있고, 중간 표현을 생성할 수 있고, 이미지가 촬상되었던 방위로부터 제2 디바이스의 유저("수신 유저")의 뷰포인트로 변환하기 위해 표현을 변환할 수 있고, 그리고 수신 유저의 뷰포인트로부터 전송 유저의 이미지를 출력할 수 있다. 몇몇 구현예에서, 이 파이프라인은, 예를 들면, 100 ms 이하의 레이턴시를 가지고 수행될 수 있다.
3D 대화는 두 개 이상의 전송기/수신 시스템 사이에서 발생할 수 있으며, 몇몇 구현예에서는, 하나 이상의 서버 시스템에 의해 중재될 수 있다. 다양한 구성에서, 파이프라인의 스테이지는 이들 시스템 중 상이한 시스템 상에서 수행될 수 있고 및/또는 스테이지는 "대화 컨텍스트"에 기초하여 상이한 시스템 상에서 동적으로 수행될 수 있다. 대화 컨텍스트는 이용 가능한 리소스(전송기 및/또는 수신기 프로세싱 용량, 대역폭, 잔여 배터리 레벨, 등등), 전송기 및/또는 수신기의 캡쳐 및/또는 디스플레이 성능, 유저 설정, 수신기 뷰포인트, 전송기 카메라 포지션, 등등과 같은 대화의 임의의 이용 가능한 컨텍스트 정보를 포함할 수 있다.
캡쳐 스테이지는 전송기 3D 대화 시스템의 하나 이상의 캡쳐 디바이스에 의한 오디오, 전통적인 이미지, 및/또는 깊이 데이터의 캡쳐를 포함할 수 있다. 다양한 구현예에서, 캡쳐된 깊이 데이터는 거리 데이터(즉, 각각의 픽셀에 대해, 그 픽셀에서, 예를 들면, 깊이 이미지에서, 묘사되는 오브젝트와 렌즈 사이의 거리), 포인트 클라우드(즉, 3D 공간에서 정의되는 포인트의 세트), 라이트 필드(즉, 공간의 다양한 포인트에 대해 다양한 방향으로 흐르는 광의 양을 설명하는 하나 이상의 벡터), 또는 3D 공간의 다른 묘사를 포함할 수 있다. 다양한 구현예에서, 다수의 캡쳐 디바이스는 전송기 3D 대화 시스템에 이용 가능할 수 있으며, 데이터를 캡쳐하기 위해 어떤 디바이스가 사용되는지는 대화 컨텍스트, 예컨대 이용 가능한 대역폭, 수신 3D 대화 시스템의 구성, 수신 유저의 뷰포인트, 등등에 기초할 수 있다. 캡쳐된 데이터는, 처음으로, 캡쳐의 시간과 같은 메타데이터로 그리고 그것을 캡쳐한 디바이스의 식별자로 태그 지정될(tagged) 수 있다. 추가적인 캡쳐 스테이지 세부 사항은 도 4의 블록(436), 도 5의 블록(504), 및 도 8과 관련하여 하기에서 논의된다.
태그 및 필터 스테이지는, 캡쳐된 데이터를 추가적인 메타데이터로 태그를 지정하고, 캡쳐된 데이터의 품질을 개선하고, 및/또는 캡쳐된 데이터의 불필요한 부분을 제거하기 위한 다양한 프로세스를 포함할 수 있다. 캡쳐된 데이터는 고유 파라미터 및 외부 파라미터(예를 들면, 카메라 포지션 및 방위, 카메라 기하학적 형상(geometry), 등등), 이미지의 시퀀스에서 식별되는 오브젝트 또는 사람들, 식별된 오브젝트 또는 사람들을 보여주는 이미지의 영역, 분석의 결과(예를 들면, 유저 골격 뷰(user skeleton view)의 추가), 비디오 모션 특성, 등등을 명시하는 캘리브레이션 스테이지(하기에서 논의됨)에서 생성되는 캘리브레이션 데이터로 태그 지정될 수 있다. 다양한 캡쳐된 데이터 스트림은 서로를 향상시키기 위해 다수의 관련된 비디오 스트림을 사용하는 것에 의해 또한 교차 증강될 수 있다. 예를 들면, 컬러 이미지 및 깊이 이미지가 유사한 포지션으로부터 취해지는 경우, 컬러 이미지 데이터 및 깊이 이미지 데이터는 서로를 향상시키기 위해 데이터 스트림 사이에서 교차 적용될 수 있다. 마지막으로, 이미지의 일부, 예컨대 유저의 배경이 제거될 수 있다. 추가적인 태그 및 필터 스테이지 세부 사항은 도 4의 블록(438), 도 5의 블록(506), 및 도 9와 관련하여 하기에서 논의된다.
압축 스테이지는 (예를 들면, 비디오 코덱 또는 다른 압축 알고리즘을 적용하는 것에 의해) 캡쳐된 데이터를 네트워크에 걸친 송신을 위한 포맷으로 변환할 수 있고, 압축 해제 스테이지는 압축된 데이터를 (예를 들면, 손실성 또는 무손실성 압축을 통해) 다시 원래의 데이터의 한 버전으로(예를 들면, 다시 개개의 이미지 또는 비디오, 포인트 클라우드, 라이트 필드, 등등으로) 변환할 수 있다. 다양한 구현예에서, 다양한 데이터 스트림으로 태그 지정되는 메타데이터는 압축된 비디오 스트림으로 인코딩될 수 있거나 또는 별개의 연관된 데이터로서 제공될 수 있다. 추가적인 압축 스테이지 및 압축 해제 스테이지 세부 사항은 도 4의 블록(440 및 442), 도 5의 블록(508 및 510), 및 도 10 및 도 11과 관련하여 하기에서 논의된다.
재구성 스테이지는 전송 유저의 3D 표현을 생성할 수 있다. 재구성 스테이지는, 다수의 소스로부터의 데이터를 결합하기 위해 및/또는 캡쳐된 데이터를 3D 공간에서의 포지션 및 윤곽 정보(contour information)로 변환하기 위해 캘리브레이션 데이터를 사용하여, 포인트 클라우드, 부호가 있는 거리 함수, 채워진 복셀, 메쉬, 라이트 필드, 등등과 같은 3D 표현으로의 캡쳐된 깊이 데이터의 이 변환을 수행할 수 있다. 예를 들면, 유저를 묘사하는 깊이 이미지의 각각의 픽셀은 카메라의 고유 속성 및 외부 속성에 기초하여 변환을 적용하는 것에 의해 유저의 적어도 일부의 3D 표현으로 변환될 수 있다. 변환은 카메라 위치에서 취해지는 각각의 픽셀을 취하여 유저의 표면 상의 한 포인트를 나타내는 3D 공간에서의 대응하는 포인트를 결정할 수 있다. 몇몇 구현예에서, 재구성 스테이지는 캘리브레이션 데이터에 기초하여 3D 표현에 음영 또는 컬러 데이터를 또한 적용할 수 있다. 몇몇 경우에, 재구성 프로세스는 수신 3D 대화 시스템의 계산 및 디스플레이 특성에 기초하여 커스터마이징될 수 있다. 몇몇 구현예에서, 3D 표현은, 예를 들면, 캡쳐된 데이터에서 묘사되지 않은 유저의 부분에 대한, 캡쳐된 데이터의 직접적인 변환(translation)이 아닌 부분을 포함할 수 있다. 이들 부분은, 예를 들면, 아바타 표현, 누락된 부분의 머신 러닝 추정, 또는 누락된 부분의 이전에 캡쳐된 버전일 수 있다. 추가적인 재구성 스테이지 세부 사항은 도 4의 블록(444), 도 5의 블록(512), 및 도 12와 관련하여 하기에서 논의된다.
렌더 스테이지는 재구성 스테이지에 의해 생성되는 3D 표현에 기초하여 수신 유저의 뷰포인트로부터 하나 이상의 2D 이미지를 생성할 수 있다. 수신 유저에게 2D 이미지로서 디스플레이되는 동안(수신 유저가 실제3D 디스플레이를 사용하지 않는 한), 이들은 수신 유저에게는 전송 유저의 3D 표현인 것으로 나타날 수 있다. 이들 이미지는 수신 시스템의 디스플레이 속성을 충족시키도록, 예를 들면, 수신 시스템의 해상도, 디스플레이 사이즈, 또는 디스플레이 타입에 매치하도록 생성될 수 있다. 예를 들면, 수신 시스템이 각각의 눈에 대한 디스플레이를 갖는 인공 현실 시스템인 경우, 렌더 스테이지는 이들 디스플레이의 해상도에서 각각의 눈의 뷰포인트로부터 이미지를 생성할 수 있다. 다양한 구현예에서, 렌더 스테이지는 단일의 이미지, 두 개의 "스테레오" 이미지, 라이트 필드, 등등을 생성할 수 있다. 몇몇 구현예에서, 렌더 스테이지는 캡쳐된 컬러 데이터를 변환하고 그것을 렌더링된 이미지에 적용할 수 있다. 추가적인 렌더 스테이지 세부 사항은 도 4의 블록(446), 도 5의 블록(514), 및 도 13과 관련하여 하기에서 논의된다.
디스플레이 스테이지는 렌더링된 하나 이상의 2D 이미지를 수신할 수 있고 그들을 수신 시스템의 디스플레이 하드웨어를 통해 출력할 수 있다. 예를 들면, 디스플레이 스테이지는 스크린 상에 이미지(들)를 디스플레이할 수 있고, 그들을 "가상 동굴" 벽 상으로 투영할 수 있고, 그들을 유저의 눈에 투영할 수 있고, 등등을 할 수 있다. 디스플레이 스테이지는 또한 2D 이미지의 디스플레이를 대응하는 오디오의 출력과 동기화할 수 있다. 추가적인 디스플레이 스테이지 세부 사항은 도 4의 블록(448), 도 5의 블록(516), 및 도 14와 관련하여 하기에서 논의된다.
다양한 구현예에서, 3D 대화에 대한 사전 스테이지(예를 들면, 시스템 관리자, 제조사, 또는 유저에 의해 부분적으로 또는 완전히 수행되는 수동 또는 자동 프로세스)로서 수행될 수 있는 및/또는 3D 대화가 발생할 때 "온라인에서" 수행될 수 있는 추가적인 캘리브레이션 스테이지가 파이프라인에 또한 포함될 수 있다. 캘리브레이션 스테이지는 전송 시스템의 일부인 카메라의 고유 속성 및 외부 속성을 수집할 수 있다. 고유 파라미터는 특정한 카메라에 대해 내부에 있는(종종 일반적으로 고정되는) 카메라의 피쳐를 명시할 수 있다. 고유 파라미터의 예는 초점 거리, 픽셀 좌표 사이의 관계, 렌즈 기하학적 왜곡, 등등을 포함한다. 이들 파라미터는 카메라의 광학적, 기하학적(geometric), 및 디지털 특성을 특성 묘사할 수 있어서, 카메라 좌표와 이미지의 픽셀 좌표 사이의 매핑을 허용할 수 있다. 외부 파라미터는 카메라 외부의 조건 또는 컨텍스트를 명시할 수 있다. 외부 파라미터의 예는 카메라의 위치 및 방위, 주변 조건(예를 들면, 열, 습기, 등등), 조명 특성(예를 들면, 조명 소스 위치, 타입, 방위), 등등을 포함한다. 이들 파라미터는 각각의 카메라 픽셀에서 수신되는 광을 특성 묘사하기 위해 사용할 수 있어서, 그 광이 3D 환경의 관점에서 해석되는 것을 허용할 수 있다. 3D 대화 시스템에 의해 사용되는 각각의 카메라는 개별적으로 캘리브레이팅될 수 있고 결과적으로 나타나는 캘리브레이션 메타데이터와 연관될 수 있다. 추가적인 캘리브레이션 스테이지 세부 사항은 도 4의 블록(434), 도 5의 블록(502), 및 도 7과 관련하여 하기에서 논의된다.
3D 대화 파이프라인은 2D 디스플레이 디바이스, 3D 디스플레이 디바이스, 및/또는 중간 디바이스의 다양한 조합을 사용하여 구현될 수 있다. 2D 디스플레이 디바이스의 예는 PC, 모바일 디바이스(예를 들면, 전화기, 태블릿, 워치, 등등), 텔레비전, 또는 다른 전통적인 디스플레이 스크린 기술을 포함한다. 3D 디스플레이 디바이스의 예는, 무선 또는 유선 외부 컴퓨트 소스를 포함할 수도 있는 혼합 현실 글래스(mixed reality glasses), 가상 현실 헤드셋, 레이저 플라즈마 디스플레이, 프로젝션 케이브(projection cave), 등등을 포함한다. 다양한 구현예에서, 디스플레이 디바이스는, 적어도 하나의 양안 디스플레이, 적어도 하나의 라이트필드 디스플레이, 적어도 하나의 홀로그래픽 디스플레이, 적어도 하나의 파면 디스플레이, 적어도 하나의 3D 스테레오 디스플레이, 또는 이들의 임의의 조합과 같은 하나 이상의 디스플레이를 포함할 수 있다. 몇몇 구현예에서, 상이한 타입의 디바이스(2D 및/또는 3D)는 3D 대화 파이프라인을 사용하여 서로 통신할 수 있다. 다양한 구현예에서, 3D 대화 파이프라인을 사용하는 3D 대화는, 각각이 그 디바이스의 유저의 이미지를 캡쳐하기 위한 전송기 디바이스 및 대화의 다른 하나 이상의 참가자 각각의 표현을 수신하기 위한 수신기 디바이스(receiver device)로서 역할을 하는 두 개 이상의 디바이스 사이에 있을 수 있다.
몇몇 구현예에서 3D 대화 파이프라인은 전통적인 통신 이외의 어떤 것에 대한 서버도 활용하지 않고 (예를 들면, 인터넷을 통해) 수행되고, 한편, 다른 구현예에서, 서버 또는 다른 클라우드 컴퓨팅 시스템이 재구성, 렌더, 또는 캘리브레이션의 일부와 같은 소정의 스테이지를 수행할 수 있다. 예를 들면, 세 명의 참가자를 수반하는 3D 대화에 대한 재구성 스테이지는 참가자로부터의 캡쳐된 이미지 데이터를 참가자 각각의 단일의 3D 표현으로 컴파일하는 서버에 있을 수 있다. 다른 예로서, 중간 서버는 필터링 스테이지의 일부를 수행할 수도 있고, 그에 의해, 다양한 참가자의 뷰포인트가 3D 환경에서 추적되고 수신측 디바이스(recipient device)가 그 뷰포인트에 대한 재구성 및 렌더링을 수행하기 위해 각각의 다른 참가자로부터의 캡쳐된 데이터 중 어떤 부분이 필요로 되는지를 결정하기 위해 사용된다. 상이한 스테이지에 대해 상이한 디바이스를 사용하는 다양한 파이프라인 구성에 대한 추가적인 세부 사항은 도 6과 관련하여 하기에서 논의된다.
다양한 구현예에서, 3D 파이프라인은, 다양한 스테이지의 구성으로서 또는 전체로서, (예를 들면, 다양한 디바이스에서 이용 가능한 프로세싱 또는 다른 컴퓨팅 리소스, 다양한 디바이스의 디스플레이 성능, 이용 가능한 대역폭, 유저 선호도, 등등에 기초하여) 대화 컨텍스트에 따라 피쳐를 업그레이드 또는 다운그레이드하도록 원활하게 조정될 수 있다. 예를 들면, 프레임 레이트 또는 해상도이 조정될 수 있고, 3D 윤곽(예를 들면, 사용되는 삼각형의 수)이 조정될 수 있고, 이미지의 일부가 머신 러닝을 사용하여 또는 현재 캡쳐된 데이터를 완전히 표현하는 것보다는 이전에 캡쳐된 데이터에 기초하여 예측될 수 있고, 이미지의 일부는 아바타 표현으로 대체될 수 있거나, 또는 대화는 2D 또는 오디오 전용 버전으로 변환될 수 있다.
개시된 기술의 실시형태는 인공 현실 시스템을 포함할 수도 있거나 또는 인공 현실 시스템과 연계하여 구현될 수도 있다. 인공 현실 또는 추가 현실(extra reality; XR)은 유저에 대한 제시 이전에 어떤 방식으로 조정된 현실의 한 형태인데, 이것은, 예를 들면, 가상 현실(VR), 증강 현실(AR), 혼합 현실(MR), 하이브리드 현실, 또는 이들의 어떤 조합 및/또는 파생물을 포함할 수도 있다. 인공 현실 콘텐츠는, 캡쳐된 콘텐츠(예를 들면, 현실 세계 사진)와 결합되는 생성된 콘텐츠 또는 완전히 생성된 콘텐츠를 포함할 수도 있다. 인공 현실 콘텐츠는 비디오, 오디오, 햅틱 피드백, 또는 이들의 어떤 조합을 포함할 수도 있는데, 이들 중 임의의 것은 단일의 채널에서 또는 다수의 채널(예컨대, 뷰어에 대한 삼차원 효과를 생성하는 스테레오 비디오)에서 제시될 수도 있다. 추가적으로, 몇몇 실시형태에서, 인공 현실은, 예를 들면, 인공 현실에서 콘텐츠를 생성하기 위해 사용되는 및/또는 인공 현실에서 사용되는(예를 들면, 인공 현실에서 활동을 수행함), 애플리케이션, 제품, 액세서리, 서비스, 또는 이들의 어떤 조합과 연관될 수도 있다. 인공 현실 콘텐츠를 제공하는 인공 현실 시스템은, 호스트 컴퓨터 시스템에 연결되는 헤드 마운트형 디스플레이(head-mounted display; HMD), 독립형 HMD, 모바일 디바이스 또는 컴퓨팅 시스템, "케이브" 환경 또는 다른 투영 시스템, 또는 한 명 이상의 뷰어에게 인공 현실 콘텐츠를 제공할 수 있는 임의의 다른 하드웨어 플랫폼을 비롯한, 다양한 플랫폼 상에서 구현될 수도 있다.
본원에서 사용되는 바와 같은 "가상 현실" 또는 "VR"은 유저의 시각적 입력이 컴퓨팅 시스템에 의해 제어되는 몰입형 경험을 지칭한다. "증강 현실" 또는 "AR"은 이미지가 컴퓨팅 시스템을 통과한 이후 유저가 현실 세계의 이미지를 보게 되는 시스템을 지칭한다. 예를 들면, 후면 상에 카메라를 갖는 태블릿은 현실 세계의 이미지를 캡쳐할 수 있고, 그 다음, 태블릿의 반대 측 상의 스크린 상에서 카메라로부터의 이미지를 디스플레이할 수 있다. 태블릿은, 예컨대 가상 오브젝트를 추가하는 것에 의해, 이미지가 시스템을 통과할 때, 이미지를 프로세싱할 수 있고 조정할 수 있거나 또는 "증강"할 수 있다. "혼합 현실" 또는 "MR"은, 유저의 눈에 진입하는 광이 부분적으로는 컴퓨팅 시스템에 의해 생성되고 부분적으로는 현실 세계의 오브젝트에서 반사되는 광을 합성하는 시스템을 지칭한다. 예를 들면, MR 헤드셋은 패스쓰루 디스플레이(pass-through display)를 구비하는 안경(pair of glasses)으로서 형상이 정해질 수 있는데, 패스쓰루 디스플레이는 현실 세계로부터의 광이, MR 헤드셋의 프로젝터로부터 광을 동시에 방출하는 도파관을 통과하는 것을 허용하여, MR 헤드셋이, 유저가 볼 수 있는 실제 오브젝트와 혼합되는 가상 오브젝트를 제시하는 것을 허용한다. "인공 현실", "추가 현실", 또는 "XR"은, 본원에서 사용되는 바와 같이, VR, AR, MR, 또는 이들의 임의의 조합 또는 하이브리드 중 임의의 것을 지칭한다.
현존하는 시각적 통신 시스템이 있지만, 대면 상호 작용에 필적하는 통신을 가능하게 하지 못한다. 예를 들면, 현존하는 비디오 통화 시스템은 얼마나 많은 바디 랭기지가 인식될 수 있는지를 제한하고, 유저가 서로에 대해 움직이는 능력을 제공하지 못하며, 의사 소통을 방해할 수 있고 대면 통신의 인식을 감소시킬 수 있는 기술의 방해 층을 도입할 수 있다. 또한, 3D 환경에서, 예컨대 가상 현실 채팅 방(chat room)에서, 상호 작용을 제공하기 위한 현존하는 시스템은 계산 비용이 매우 많이 들고 통신 참가자를 정확하게 묘사하지 못한다. 본원에서 설명되는 3D 대화 시스템 및 프로세스에서 데이터 캡쳐 및 조작 스테이지의 파이프라인은 종래의 비디오 및 3D 상호 작용 기술과 연관되는 이들 문제를 극복할 것으로 예상되며, 더욱 현실적인 상호 작용을 제공하면서, 3D 통신의 계산 요건을 감소시킬 것으로 예상된다. 더구나, 다수의 정적 커스텀화 및/또는 파이프라인 스테이지 및 스테이지 구성의 동적 컨텍스트 기반의 선택을 포함하는 것에 의해, 3D 대화 시스템은 현존하는 시스템보다 아주 더 많은 프로세싱 및 디스플레이 성능의 디바이스와 함께 그리고 아주 더 많은 대역폭 이용 가능성을 가지고 동작할 수 있다. 또한, 개시된 3D 대화 시스템이 대면 경험에 필적하는 결과를 제공하지만, 이 결과를 달성하기 위한 프로세스 및 시스템은 현존하는 통신 기술의 유사물이 아니며, 대신, 데이터 캡쳐 및 프로세싱 단계를 편제하는 완전히 새로운 방식을 도입한다. 예를 들면, 현존하는 비디오 통화 기술은 캡쳐 및 압축을 사용하지만, 그러나 3D 재구성을 통합하지는 않는다. 게다가, 현존하는 3D 상호 작용 시스템은 개시된 3D 대화 시스템에 의해 제공되는 충실도 및 리소스 보존을 제공하지 못한다.
여러 가지 구현예가 도면을 참조하여 하기에서 더욱 상세하게 논의된다. 도 1은 개시된 기술의 몇몇 구현예가 동작할 수 있는 디바이스의 개요를 예시하는 블록 다이어그램이다. 디바이스는 캡쳐, 태그 및 필터, 압축, 압축 해제, 재구성, 렌더, 및 디스플레이 스테이지를 포함하는 3D 대화 파이프라인을 구현하는 컴퓨팅 시스템(100)의 하드웨어 컴포넌트를 포함할 수 있다. 이 파이프라인은, 상대적으로 낮은 프로세싱 성능을 가지고 그리고 낮은 대역폭 환경에서 동작하지만, 대면 상호 작용과 닮은 네트워크에 걸친 통신을 가능하게 한다. 다양한 구현예에서, 컴퓨팅 시스템(100)은 프로세싱을 분배하고 입력 데이터를 공유하기 위해 유선 또는 무선 채널을 통해 통신하는 다수의 컴퓨팅 디바이스(예를 들면, 컴퓨팅 디바이스(101), 컴퓨팅 디바이스(102), 및 컴퓨팅 디바이스(103)) 또는 단일의 컴퓨팅 디바이스(103)를 포함할 수 있다. 몇몇 구현예에서, 컴퓨팅 시스템(100)은 외부 프로세싱 또는 센서에 대한 필요 없이, 유저에게 컴퓨터 생성 경험 또는 증강 경험을 제공할 수 있는 독립형 헤드셋을 포함할 수 있다. 다른 구현예에서, 컴퓨팅 시스템(100)은 헤드셋 및 코어 프로세싱 컴포넌트(예컨대 콘솔, 모바일 디바이스, 또는 서버 시스템)과 같은 다수의 컴퓨팅 디바이스를 포함할 수 있는데, 이 경우, 일부 프로세싱 동작은 헤드셋 상에서 수행되고 다른 동작은 코어 프로세싱 컴포넌트로 오프로딩된다. 예시적인 헤드셋은 도 2a 및 도 2b와 관련하여 하기에서 설명된다. 몇몇 구현예에서, 포지션 및 환경 데이터는 헤드셋 디바이스에 통합되는 센서에 의해서만 수집될 수 있고, 한편, 다른 구현예에서, 헤드셋이 아닌 컴퓨팅 디바이스 중 하나 이상이 환경 또는 포지션 데이터를 추적할 수 있는 센서 컴포넌트를 포함할 수 있다.
컴퓨팅 시스템(100)은 하나 이상의 프로세서(들)(110)(예를 들면, 중앙 프로세싱 유닛(central processing unit; CPU), 그래픽 프로세싱 유닛(graphical processing unit; GPU), 홀로그래픽 프로세싱 유닛(holographic processing unit; HPU), 등등)를 포함할 수 있다. 프로세서(110)는 디바이스에서 단일의 프로세싱 유닛 또는 다수의 프로세싱 유닛일 수 있거나 또는 다수의 디바이스에 걸쳐 분산될 수 있다(예를 들면, 컴퓨팅 디바이스(101 - 103) 중 두 개 이상에 걸쳐 분산될 수 있음).
컴퓨팅 시스템(100)은 프로세서(110)에게 액션을 통지하는 입력을 프로세서(110)로 제공하는 하나 이상의 입력 디바이스(120)를 포함할 수 있다. 액션은 입력 디바이스로부터 수신되는 신호를 해석하고 통신 프로토콜을 사용하여 정보를 프로세서(110)로 전달하는 하드웨어 컨트롤러에 의해 중재될 수 있다. 각각의 입력 디바이스(120)는, 예를 들면, 마우스, 키보드, 터치스크린, 터치패드, 웨어러블 입력 디바이스(예를 들면, 햅틱 장갑, 팔찌, 반지, 귀걸이, 목걸이, 워치, 등등), 카메라(또는 다른 광 기반의 입력 디바이스, 예를 들면, 적외선 센서), 마이크, 또는 다른 유저 입력 디바이스를 포함할 수 있다.
프로세서(110)는, 예를 들면, 내부 또는 외부 버스, 예컨대 PCI 버스, SCSI 버스, 또는 무선 연결의 사용을 통해, 다른 하드웨어 디바이스에 커플링될 수 있다. 프로세서(110)는 디바이스에 대한, 예컨대 디스플레이(130)에 대한 하드웨어 컨트롤러와 통신할 수 있다. 디스플레이(130)는 텍스트 및 그래픽을 디스플레이하기 위해 사용될 수 있다. 몇몇 구현예에서, 디스플레이(130)는, 예컨대 입력 디바이스가 터치스크린이거나 또는 눈 방향 모니터링 시스템을 갖춘 경우, 디스플레이의 일부로서 입력 디바이스를 포함한다. 몇몇 구현예에서, 디스플레이는 입력 디바이스와는 분리되어 있다. 디스플레이 디바이스의 예는 다음의 것이다: LCD 디스플레이 스크린, LED 디스플레이 스크린, 투사형, 홀로그래픽, 또는 증강 현실 디스플레이(예컨대, 헤드업 디스플레이 디바이스 또는 헤드 마운트형 디바이스), 및 등등. 다른 I/O 디바이스(140), 예컨대 네트워크 칩 또는 카드, 비디오 칩 또는 카드, 오디오 칩 또는 카드, USB, 파이어와이어 또는 다른 외부 디바이스, 카메라, 프린터, 스피커, CD-ROM 드라이브, DVD 드라이브, 디스크 드라이브, 등등이 프로세서에 또한 커플링될 수 있다.
컴퓨팅 시스템(100)은 다른 로컬 컴퓨팅 디바이스 또는 네트워크 노드와 무선으로 또는 유선 기반으로 통신할 수 있는 통신 디바이스를 포함할 수 있다. 통신 디바이스는, 예를 들면, TCP/IP 프로토콜을 사용하여 네트워크를 통해 다른 디바이스 또는 서버와 통신할 수 있다. 컴퓨팅 시스템(100)은 다수의 네트워크 디바이스에 걸쳐 동작을 분배하기 위해 통신 디바이스를 활용할 수 있다.
프로세서(110)는 메모리(150)에 액세스할 수 있는데, 메모리(150)는 컴퓨팅 시스템(100)의 컴퓨팅 디바이스 중 하나 상에 포함될 수 있거나 또는 컴퓨팅 시스템(100)의 다수의 컴퓨팅 디바이스 또는 다른 외부 디바이스에 걸쳐 분산될 수 있다. 메모리는 휘발성 또는 불휘발성 저장을 위한 하나 이상의 하드웨어 디바이스를 포함하며, 읽기 전용 및 쓰기 가능 메모리 둘 모두를 포함할 수 있다. 예를 들면, 메모리는 랜덤 액세스 메모리(random access memory; RAM), 다양한 캐시, CPU 레지스터, 리드 온리 메모리(read-only memory; ROM), 및 기록 가능 불휘발성 메모리, 예컨대 플래시 메모리, 하드 드라이브, 플로피 디스크, CD, DVD, 자기 스토리지 디바이스, 테이프 드라이브, 및 등등 중 하나 이상을 포함할 수 있다. 메모리는 기저의 하드웨어로부터 분리되는 전파 신호가 아니다; 따라서 메모리는 비일시적이다. 메모리(150)는 프로그램 및 소프트웨어, 예컨대 오퍼레이팅 시스템(162), 3D 대화 시스템(164), 및 다른 애플리케이션 프로그램(166)을 저장하는 프로그램 메모리(160)를 포함할 수 있다. 메모리(150)는, 프로그램 메모리(160) 또는 컴퓨팅 시스템(100)의 임의의 엘리먼트에 제공될 수 있는 데이터 메모리(170)를 또한 포함할 수 있다.
몇몇 구현예는 다수의 다른 컴퓨팅 시스템 환경 또는 구성과 동작할 수 있다. 기술과 함께 사용하기에 적합할 수도 있는 컴퓨팅 시스템, 환경, 및/또는 구성의 예는, XR 헤드셋, 퍼스널 컴퓨터, 서버 컴퓨터, 핸드헬드 또는 랩탑 디바이스, 셀룰러 전화, 웨어러블 전자기기, 게임 콘솔, 태블릿 디바이스, 멀티프로세서 시스템, 마이크로프로세서 기반의 시스템, 셋탑 박스, 프로그래머블 소비자 전자기기, 네트워크 PC, 미니 컴퓨터, 메인프레임 컴퓨터, 상기의 시스템 또는 디바이스 중 임의의 것을 포함하는 분산형 컴퓨팅 환경, 또는 등등을 포함하지만, 그러나 이들로 제한되지는 않는다.
도 2a는, 몇몇 실시형태에 따른, 가상 현실 헤드 마운트형 디스플레이(HMD)(200)의 와이어 다이어그램이다. HMD(200)는 전면 강체(front rigid body; 205) 및 밴드(210)를 포함한다. 전면 강체(205)는 전자 디스플레이(245)의 하나 이상의 전자 디스플레이 엘리먼트, 관성 운동 유닛(inertial motion unit; IMU)(215), 하나 이상의 포지션 센서(220), 로케이터(locator; 225), 및 하나 이상의 컴퓨트 유닛(230)을 포함한다. 포지션 센서(220), IMU(215), 및 컴퓨트 유닛(230)은 HMD(200) 내부에 있을 수도 있고 유저에게 보이지 않을 수도 있다. 다양한 구현예에서, IMU(215), 포지션 센서(220), 및 로케이터(225)는 현실 세계에서 그리고 가상 환경에서, HMD(200)의 움직임 및 위치를, 3 자유도(three degrees of freedom; 3DoF) 또는 6 자유도(six degrees of freedom; 6DoF)로 추적할 수 있다. 예를 들면, 로케이터(225)는 HMD(200) 주변의 실제 오브젝트 상에서 광 포인트를 생성하는 적외선 광 빔을 방출할 수 있다. HMD(200)와 통합되는 하나 이상의 카메라(도시되지 않음)는 광 포인트를 검출할 수 있다. HMD(200)의 컴퓨트 유닛(230)은, HMD(200)의 포지션 및 움직임을 외삽하기(extrapolate) 위해, 뿐만 아니라, HMD(200)를 둘러싸는 실제 오브젝트의 형상 및 포지션을 식별하기 위해, 검출된 광 포인트를 사용할 수 있다.
전자 디스플레이(245)는 전면 강체(205)와 통합될 수 있고 컴퓨트 유닛(230)에 의해 나타내어지는 대로 유저에게 이미지 광을 제공할 수 있다. 다양한 실시형태에서, 전자 디스플레이(245)는 단일의 전자 디스플레이 또는 다수의 전자 디스플레이(예를 들면, 각각의 유저 눈에 대한 디스플레이)일 수 있다. 전자 디스플레이(245)의 예는 다음의 것을 포함한다: 액정 디스플레이(liquid crystal display; LCD), 유기 발광 다이오드(organic light-emitting diode; OLED) 디스플레이, 활성 매트릭스 유기 발광 다이오드 디스플레이(active-matrix organic light-emitting diode display; AMOLED), 하나 이상의 퀀텀 닷 발광 다이오드(quantum dot light-emitting diode; QOLED) 서브픽셀을 포함하는 디스플레이, 프로젝터 유닛(예를 들면, microLED, LASER, 등등), 몇몇 다른 디스플레이, 또는 이들의 어떤 조합.
몇몇 구현예에서, HMD(200)는 퍼스널 컴퓨터(personal computer; PC)(도시되지 않음) 및/또는 하나 이상의 외부 센서(도시되지 않음)와 같은 코어 프로세싱 컴포넌트에 커플링될 수 있다. 외부 센서는, IMU(215) 및 포지션 센서(220)로부터의 출력과 조합하여, HMD(200)의 위치 및 움직임을 결정하기 위해 PC가 사용할 수 있는 HMD(200)를 (예를 들면, HMD(200)로부터 방출되는 광을 통해) 모니터링할 수 있다.
몇몇 구현예에서, HMD(200)는 하나 이상의 다른 외부 디바이스, 예컨대 유저가 한 손 또는 양 손에 잡을 수 있는 컨트롤러(도시되지 않음)와 통신할 수 있다. 컨트롤러는 그들 자신의 IMU 유닛, 포지션 센서를 가질 수 있고, 및/또는 또 다른 광 포인트를 방출할 수 있다. HMD(200) 또는 외부 센서는 이들 컨트롤러 광 포인트를 추적할 수 있다. HMD(200)의 컴퓨트 유닛(230) 또는 코어 프로세싱 컴포넌트는, IMU 및 포지션 출력과 조합하여, 이 추적을 사용하여, 유저의 손 포지션 및 움직임을 모니터링할 수 있다. 컨트롤러는 입력을 제공하고 가상 오브젝트와 상호 작용하기 위해 유저가 작동할 수 있는 다양한 버튼을 또한 포함할 수 있다. 다양한 구현예에서, HMD(200)는 추가적인 서브시스템, 예컨대 눈 추적 유닛, 오디오 시스템, 다양한 네트워크 컴포넌트, 등등을 또한 포함할 수 있다. 몇몇 구현예에서, 컨트롤러 대신에 또는 그에 더하여, HMD(200)에 포함되는 또는 HMD 외부에 있는 하나 이상의 카메라가 유저의 손의 포지션 및 포즈를 모니터링하여, 제스쳐 및 다른 손 및 신체 모션을 결정할 수 있다.
도 2b는, 혼합 현실 HMD(252) 및 코어 프로세싱 컴포넌트(254)를 포함하는 혼합 현실 HMD 시스템(250)의 와이어 다이어그램이다. 혼합 현실 HMD(252) 및 코어 프로세싱 컴포넌트(254)는 링크(256)에 의해 나타내어지는 바와 같이 무선 연결(예를 들면, 60 GHz 링크)을 통해 통신할 수 있다. 다른 구현예에서, 혼합 현실 시스템(250)은, 외부 컴퓨팅 디바이스 없이, 헤드셋만을 포함하거나 또는 혼합 현실 HMD(252)와 코어 프로세싱 컴포넌트(254) 사이의 다른 유선 또는 무선 연결을 포함한다. 혼합 현실 HMD(252)는 패스쓰루 디스플레이(258) 및 프레임(260)을 포함한다. 프레임(260)은 광 프로젝터(예를 들면, LASER, LED, 등등), 카메라, 눈 추적 센서, MEMS 컴포넌트, 네트워킹 컴포넌트, 등등과 같은 다양한 전자 컴포넌트(도시되지 않음)를 수용할 수 있다.
프로젝터는 미디어를 유저에게 디스플레이하기 위해, 예를 들면, 광학 엘리먼트를 통해, 패스쓰루 디스플레이(258)에 커플링될 수 있다. 광학 엘리먼트는 프로젝터로부터 유저의 눈으로 광을 지향시키기 위한 하나 이상의 도파관 어셈블리, 반사기, 렌즈, 미러, 콜리메이터, 격자, 등등을 포함할 수 있다. 이미지 데이터는 링크(256)를 통해 코어 프로세싱 컴포넌트(254)로부터 HMD(252)로 송신될 수 있다. HMD(252)의 컨트롤러는 이미지 데이터를 프로젝터로부터의 광 펄스로 변환할 수 있는데, 이것은 유저의 눈에 대한 출력 광으로서 광학 엘리먼트를 통해 송신될 수 있다. 출력 광은 디스플레이(258)를 통과하는 광과 혼합될 수 있어서, 마치 가상 오브젝트가 실제 세계에서 존재하는 것처럼 보이는 가상 오브젝트를 출력 광이 제시하는 것을 허용할 수 있다.
HMD(200)와 유사하게, HMD 시스템(250)은 모션 및 포지션 추적 유닛, 카메라, 광원, 등을 또한 포함할 수 있는데, 이들은, HMD 시스템(250)이, 예를 들면, 3DoF 또는 6DoF에서 그 자신을 추적하는 것, 유저의 일부(예를 들면, 손, 발, 머리, 또는 다른 신체 부위)를 추적하는 것, HMD(252)가 이동함에 따라 고정된 것처럼 보이도록 가상 오브젝트를 매핑하는 것, 및 가상 오브젝트가 제스쳐 및 다른 현실 세계 오브젝트에 반응하게 하는 것을 허용한다.
도 3은 개시된 기술의 몇몇 구현예가 동작할 수 있는 환경(300)의 개요를 예시하는 블록 다이어그램이다. 환경(300)은 하나 이상의 클라이언트 컴퓨팅 디바이스(305A-D)를 포함할 수 있는데, 그 예는 컴퓨팅 시스템(100)을 포함할 수 있다. 몇몇 구현예에서, 클라이언트 컴퓨팅 디바이스(예를 들면, 클라이언트 컴퓨팅 디바이스(305B)) 중 일부는 HMD(200) 또는 HMD 시스템(250)일 수 있다. 클라이언트 컴퓨팅 디바이스(305)는 하나 이상의 원격 컴퓨터, 예컨대 서버 컴퓨팅 디바이스에 대한 네트워크(330)를 통한 논리적 연결을 사용하여 네트워크화된 환경에서 동작할 수 있다.
몇몇 구현예에서, 서버(310)는, 클라이언트 요청을 수신하고 다른 서버, 예컨대 서버(320A-C)를 통해 그들 요청의 이행을 조정하는 에지 서버(edge server)일 수 있다. 서버 컴퓨팅 디바이스(310 및 320)는 컴퓨팅 시스템, 예컨대 컴퓨팅 시스템(100)을 포함할 수 있다. 각각의 서버 컴퓨팅 디바이스(310 및 320)가 단일의 서버로서 논리적으로 디스플레이되지만, 서버 컴퓨팅 디바이스 각각은 동일한 위치 또는 지리적으로 전혀 다른 종류의 물리적 위치에 위치되는 다수의 컴퓨팅 디바이스를 포괄하는 분산형 컴퓨팅 환경일 수 있다.
클라이언트 컴퓨팅 디바이스(305) 및 서버 컴퓨팅 디바이스(310 및 320) 각각은 다른 서버/클라이언트 디바이스(들)에 대한 서버 또는 클라이언트로서 작용할 수 있다. 서버(310)는 데이터베이스(315)에 연결될 수 있다. 서버(320A-C) 각각은 대응하는 데이터베이스(325A-C)에 연결될 수 있다. 상기에서 논의되는 바와 같이, 각각의 서버(310 또는 320)는 서버의 그룹에 대응할 수 있고, 이들 서버 각각은 데이터베이스를 공유할 수 있거나 또는 그들 자신의 데이터베이스를 가질 수 있다. 데이터베이스(315 및 325)가 논리적으로 단일의 유닛으로 디스플레이되지만, 데이터베이스(315 및 325) 각각은 다수의 컴퓨팅 디바이스를 포괄하는 분산형 컴퓨팅 환경일 수 있거나, 그들의 대응하는 서버 내에 위치될 수 있거나, 또는 동일한 위치 또는 지리적으로 전혀 다른 종류의 물리적 위치에 위치될 수 있다.
네트워크(330)는 근거리 통신망(local area network; LAN), 광역 통신망(wide area network; WAN), 메쉬 네트워크, 하이브리드 네트워크, 또는 다른 유선 또는 무선 네트워크일 수 있다. 네트워크(330)는 인터넷일 수도 있거나 또는 어떤 다른 공용 또는 사설 네트워크일 수도 있다. 클라이언트 컴퓨팅 디바이스(305)는, 예컨대 유선 또는 무선 통신에 의해, 네트워크 인터페이스를 통해 네트워크(330)에 연결될 수 있다. 서버(310)와 서버(320) 사이의 연결이 별개의 연결로서 도시되지만, 이들 연결은, 네트워크(330) 또는 별개의 공용 또는 사설 네트워크를 비롯한, 임의의 종류의 로컬, 광역, 유선, 또는 무선 네트워크일 수 있다.
도 4는, 몇몇 구현예에서, 개시된 기술을 전개함에 있어서 사용될 수 있는 시스템(400)을 예시하는 블록 다이어그램이다. 컴포넌트(410, 420, 및/또는 430)로부터의 다양한 컴포넌트는 컴퓨팅 시스템(100)의 하나의 디바이스에 포함될 수 있거나, 또는 컴퓨팅 시스템(100)의 디바이스 중 다수의 것에 걸쳐 (예를 들면, 별개의 시스템(402-406)으로서) 분산될 수 있다. 예를 들면, 시스템(402, 404, 및 406) 사이에서 3D 대화 파이프라인이 형성되고 각각의 시스템이 대화의 참가자(전송기 및 수신기)인 경우, 컴포넌트(434-448) 각각의 한 버전이 각각의 시스템(402, 404, 및 406)에 포함될 수 있다. 서버(예를 들면, 시스템(404))가 하나 이상의 대화 참가자 사이에서 중개자로서 역할을 하는 다른 구현예에서, 컴포넌트(438-446)들 중 하나 이상은 그 서버 시스템 상에서 구현될 수 있다. 몇몇 구현예에서, 컴포넌트(434-448) 중 하나 이상의 버전은 대화 참가 시스템 및/또는 서버 시스템의 다수의 것 상에 있을 수 있고, 한편, 다른 구현예에서, 컴포넌트(434-448) 중 하나 이상은 대화 참가 시스템 및/또는 서버 시스템의 다수의 것 중 하나 상에서만 존재할 수 있다. 다양한 구현예에서, 컴포넌트(410-430)는 클라이언트 컴퓨팅 디바이스(305) 중 하나와 같은 클라이언트 컴퓨팅 디바이스에서 또는 서버 컴퓨팅 디바이스, 예컨대 서버 컴퓨팅 디바이스(310 또는 320)(도 3) 중 하나 상에서 구현될 수 있다.
시스템(402)은 하드웨어(410), 중재기(mediator; 420), 및 특수 컴포넌트(430)를 포함한다. 상기에서 논의되는 바와 같이, 개시된 기술을 구현하는 시스템은 프로세싱 유닛(412), 작업 메모리(414), 입력 및 출력 디바이스(416)(예를 들면, 전통적인 카메라, 깊이 카메라, 디스플레이 시스템, IMU 유닛, 네트워크 연결, 센서, 등등), 및 저장 메모리(418)를 포함하는 다양한 하드웨어를 사용할 수 있다. 다양한 구현예에서, 저장 메모리(418)는 다음의 것 중 하나 이상일 수 있다: 로컬 디바이스, 원격 스토리지 디바이스에 대한 인터페이스, 또는 이들의 조합. 예를 들면, 저장 메모리(418)는 시스템 버스를 통해 액세스 가능한 하나 이상의 하드 드라이브 또는 플래시 드라이브일 수 있거나 또는 하나 이상의 통신 네트워크를 통해 액세스 가능한 다른 네트워크 스토리지 또는 (예컨대, 스토리지(315 또는 325) 내의) 클라우드 스토리지 제공자에 대한 인터페이스일 수 있다.
중재기(420)는 하드웨어(410)와 특수 컴포넌트(430) 사이의 리소스를 중재하는 컴포넌트를 포함할 수 있다. 예를 들면, 중재기(420)는 오퍼레이팅 시스템, 서비스, 드라이버, 기본 입력 출력 시스템(basic input output system; BIOS), 컨트롤러 회로, 또는 다른 하드웨어 또는 소프트웨어 시스템을 포함할 수 있다.
특수 컴포넌트(430)는 3D 대화 파이프라인의 일부를 구현하기 위한 동작을 수행하도록 구성되는 소프트웨어 또는 하드웨어를 포함할 수 있다. 특수 컴포넌트(430)는 다음의 것 중 하나 이상을 포함할 수 있다: 캘리브레이터(434), 캡쳐 모듈(436), 필터 및 태그 모듈(438), 압축기(compressor; 440), 압축 해제기(decompressor; 442), 재구성 모듈(444), 렌더러(renderer; 446), 디스플레이 인터페이스(448), 및 유저 인터페이스를 제공하기 위해, 데이터를 전송하기 위해, 그리고 특수 컴포넌트, 예컨대 인터페이스(432)를 제어하기 위해 사용될 수 있는 컴포넌트 및 API. 별개의 컴포넌트로서 묘사되지만, 특수 컴포넌트(430)는 기능의 논리적 또는 다른 비물리적 차별화일 수도 있고 및/또는 하나 이상의 애플리케이션의 하위 모듈 또는 코드 블록일 수도 있다.
캘리브레이터(434)는 캡쳐 디바이스에 대한 캘리브레이션 데이터를 생성할 수 있다. 캘리브레이션 데이터는, 예를 들면, 고유 파라미터, 외부 파라미터, 및 노이즈 특성을 포함할 수 있다. 고유 파라미터는 특정한 카메라에 대해 내부에 있는(종종 일반적으로 고정되는) 카메라의 피쳐를 명시할 수 있다. 고유 파라미터는 카메라의 광학적, 기하학적, 및 디지털 특성을 특성 묘사할 수 있어서, 카메라 좌표와 이미지의 픽셀 좌표 사이의 매핑을 허용할 수 있다. 외부 파라미터는 카메라 외부의 조건 또는 컨텍스트를 명시할 수 있다. 외부 파라미터는 각각의 카메라 픽셀에서 수신되는 광을 특성 묘사하기 위해 사용할 수 있어서, 그 광이 3D 환경의 관점에서 해석되는 것을 허용할 수 있다. 캘리브레이션 데이터의 다양한 부분은, 예를 들면, 제조사에 의해, 초기 시스템 구성 동안, 또는 카메라의 사용 동안, 상이한 포인트에서 생성될 수 있다. 캘리브레이션 데이터는 캘리브레이션 데이터가 생성되었던 특정한 캡쳐 디바이스와 연관하여, 예를 들면, 저장 메모리(418)에, 또는 I/O 디바이스(416)의 그 캡쳐 디바이스의 메모리에 저장될 수 있다. 캘리브레이션 데이터를 생성하는 것에 대한 추가적인 세부 사항은 도 5의 블록(502) 및 도 7과 관련하여 하기에서 논의된다.
캡쳐 모듈(436)은 캡쳐된 데이터 스트림, 예를 들면, 전통적인 이미지, 깊이 이미지 또는 다른 깊이 데이터, 및/또는 오디오 데이터를 획득하기 위해 (I/O 디바이스(416)의) 캡쳐 디바이스와 인터페이싱할 수 있다. 캡쳐 모듈(436)은 이 수신된 데이터를, 데이터의 각각의 부분을 캡쳐했던 디바이스의 지시자(indicator) 및 데이터가 캡쳐되었던 시간으로 태그 지정할 수 있다. 데이터를 캡쳐하는 것에 대한 추가적인 세부 사항은 도 5의 블록(504) 및 도 8과 관련하여 하기에서 논의된다.
필터 및 태그 모듈(438)은 캡쳐 모듈(436)로부터 캡쳐된 데이터를 수신할 수 있고 필터, 향상, 및/또는 태그를 캡쳐된 데이터에 적용할 수 있다. 적용될 수 있는 필터의 예는, 전송 유저를 묘사하지 않는 이미지의 배경 또는 다른 부분의 제거 및 전송 유저가 착용할 수도 있는 인공 현실 디바이스의 제거를 포함한다. 적용될 수 있는 향상의 예는 안정화, 회전, 컬러, 및 음영 정정, 선명화, 초점 조정(focusing), 증폭, 볼륨 레벨링, 이퀄라이제이션, 등등과 같은 전통적인 비디오 및/또는 오디오 정정을 포함한다. 적용될 수 있는 태그의 예는 디바이스에 대한 캘리브레이션 데이터(그 데이터를 캡쳐한 디바이스의 개개의 피드에 적용됨), 오브젝트 인식 결과, 및 사람 인식 결과를 포함한다. 캡쳐된 데이터의 필터링, 향상, 및 태그 지정에 대한 추가적인 세부 사항은 도 5의 블록(506) 및 도 9와 관련하여 하기에서 논의된다.
압축기(440)는 태그 지정된, 필터링된, 및/또는 향상된 데이터를 수신할 수 있고 네트워크를 통한 송신을 위해 그것을 압축할 수 있다. 몇몇 구현예에서, 이것은 데이터의 타입에 고유한 압축 알고리즘을 적용하는 것, 예컨대 포인트 클라우드 데이터에 포인트 클라우드 라이브러리(point cloud library; PCL)를 적용하는 것 또는 비디오 데이터에 MPEG을 적용하는 것을 포함할 수 있다. 압축된 데이터는 I/O(416)의 네트워크 인터페이스를 통해, 예를 들면, 시스템(402-406) 중 다른 것으로 송신될 수 있다. 데이터 압축에 대한 추가적인 세부 사항은 도 5의 블록(508) 및 도 10과 관련하여 하기에서 논의된다.
압축 해제기(442)는, 시스템(402-406) 중 다른 것에 의해 압축되고 전송된, I/O(416)의 네트워크 인터페이스를 통해 수신되는 데이터를 압축 해제할 수 있다. 몇몇 구현예에서 이것은 데이터를 압축하기 위해 사용되는 알고리즘의 역(reverse)인 압축 해제 알고리즘을 적용하는 것을 포함할 수 있다. 데이터를 압축 해제하는 것에 대한 추가적인 세부 사항은 도 5의 블록(510) 및 도 11과 관련하여 하기에서 논의된다.
재구성 모듈(444)은 전송 유저의 3D 표현을 생성하기 위해 압축 해제기(442)에 의해 압축 해제되는 데이터로부터의 깊이 데이터를 사용할 수 있다. 재구성 모듈(444)은, 다수의 소스로부터의 데이터를 결합하고 및/또는 깊이 데이터를 3D 공간에서의 포지션 및 윤곽 정보로 변환하기 위해 깊이 데이터로 태그 지정되는 캘리브레이션 데이터를 사용하는 것에 의해 (예를 들면, 포인트 클라우드, 부호가 있는 거리 함수, 채워진 복셀, 메쉬, 라이트 필드, 등등으로서의) 3D 표현으로의 깊이 데이터의 이 변환을 달성할 수 있다. 몇몇 구현예에서, 재구성 모듈(444)은, 압축 해제된 데이터로부터의 컬러 데이터를 3D 표현에 또한 적용할 수 있다. 깊이 데이터로부터 3D 표현을 생성하는 것에 대한 추가적인 세부 사항은 도 5의 블록(512) 및 도 12와 관련하여 하기에서 논의된다.
렌더러(446)는 재구성 모듈(444)로부터의 3D 표현 및 수신 유저의 하나 이상의 뷰포인트(또는 수신 유저의 하나 이상의 뷰포인트가 이용 가능하지 않은 경우 디폴트 뷰포인트)의 지시(indication)를 수신하여, 수신 유저의 뷰포인트로부터 전송 유저의 하나 이상의 2D 이미지를 렌더링할 수 있다. 이것은 하나 이상의 수신 유저 뷰포인트에 기초하여 3D 표현과 관련하여 가상 카메라를 배치하는 것을 포함할 수 있다. 몇몇 구현예에서, 이것은 2D 이미지에 컬러 데이터를 추가하는 것을 또한 포함할 수 있다. 수신 유저의 시점에서 3D 표현으로부터 하나 이상의 2D 이미지를 렌더링하는 것에 대한 추가적인 세부 사항은 도 5의 블록(514) 및 도 13과 관련하여 하기에서 논의된다.
디스플레이 인터페이스(448)는 렌더러(446)로부터의 2D 이미지를 오디오 데이터와 동기화할 수 있고 이들 동기화된 데이터 스트림을 I/O(416)의 디스플레이 하드웨어 및 오디오 하드웨어로 출력할 수 있다. 출력 하드웨어를 통해 렌더링된 이미지 및 오디오를 디스플레이하는 것에 대한 추가적인 세부 사항은 도 5의 블록(516) 및 도 14와 관련하여 하기에서 논의된다.
기술 분야의 숙련된 자는 상기에서 설명되는 도 1 내지 도 4에서, 그리고 하기에서 논의되는 흐름도 각각에서 예시되는 컴포넌트가 다양한 방식으로 변경될 수도 있다는 것을 인식할 것이다. 예를 들면, 로직의 순서는 재배열될 수도 있고, 하위 단계가 병렬로 수행될 수도 있고, 예시된 로직이 생략될 수도 있고, 다른 로직을 포함될 수도 있고, 등등일 수도 있다. 몇몇 구현예에서, 상기에서 설명되는 컴포넌트 중 하나 이상은 하기에서 설명되는 프로세스 중 하나 이상을 실행할 수 있다.
도 5는 두 개 이상의 디바이스 사이의 3D 대화를 위해 본 기술의 몇몇 구현예에서 사용되는 프로세스(500)를 예시하는 흐름도이다. 다양한 구현예에서, 프로세스(500)의 일부는 전송 시스템, 수신 시스템, 또는 중간 서버 시스템 중 상이한 시스템 상에서 수행될 수 있다. 프로세스(500)의 이들 분할의 예는 도 6과 관련하여 하기에서 설명된다.
캘리브레이션 블록(502)은 캡쳐 블록(504)에 의해 사용되는 카메라에 대한 고유 파라미터 및 외부 파라미터(함께 "캘리브레이션 데이터" 또는 "캘리브레이션 파라미터")를 결정할 수 있다. 점선에 의해 지시되는 바와 같이, 다양한 구현예에서, 캘리브레이션 블록(502)은 대화 시작 이전에 및/또는 대화 동안 수행될 수 있다. 고유 파라미터는 특정한 카메라에 대해 내부에 있는(종종 일반적으로 고정되는) 카메라의 피쳐를 명시할 수 있다. 고유 파라미터는 카메라의 광학적, 기하학적, 및 디지털 특성을 특성 묘사할 수 있어서, 카메라 좌표와 이미지의 픽셀 좌표 사이의 매핑을 허용할 수 있다. 외부 파라미터는 카메라 외부의 조건 또는 컨텍스트를 명시할 수 있다. 외부 파라미터는 각각의 카메라 픽셀에서 수신되는 광을 특성 묘사하기 위해 사용할 수 있어서, 그 광이 3D 환경의 관점에서 해석되는 것을 허용할 수 있다.
다양한 구현예에서, 캘리브레이션 스테이지의 일부는 상이한 엔티티에 의해 및/또는 상이한 시간에 수행될 수 있다. 예를 들면, 고유 파라미터를 결정하기 위해 초기 캘리브레이션이 카메라 제조사에서 수행될 수 있거나, 고유 및/또는 외부 파라미터를 결정하기 위해 초기 유저 셋업 캘리브레이션이 수행될 수 있거나, 또는 고유 및/또는 외부 파라미터를 업데이트하기 위해 대화 동안 온라인 캘리브레이션이 수행될 수 있다. 또한 다양한 구현예에서, 캘리브레이션 프로세스의 일부는 자동적일 수 있거나(예를 들면, 식별된 조건에 의해 트리거되고 자동적으로 수집된 데이터를 사용하여 수행됨) 또는 적어도 부분적으로 수동일 수 있다(예를 들면, 타겟 이미지를 디스플레이하는 것과 같은 카메라에 대한 지원 또는 유저 입력을 활용함). 캘리브레이션 블록(502)은, 카메라 컴포넌트의 측정치, 공지된 오브젝트(예를 들면, 사전 정의된 캘리브레이션 체커보드 또는 다른 타겟, 공지된 치수의 오브젝트, 등등)의 캡쳐된 이미지, 환경 데이터(예를 들면, 열 또는 수분 레벨, 등등), 매핑 데이터(예를 들면, 동시적 위치 파악 및 매핑(simultaneous localization and mapping; "SLAM" 데이터), 센서로부터의 측정치(예를 들면, 비행 시간 측정치, 조명 조건), 등등과 같은 다양한 캘리브레이션 데이터를 수신할 수 있고, 개개의 캘리브레이션 파라미터에 대한 값을 생성할 수 있다. 캘리브레이션은, 개개의 캘리브레이션 파라미터를 식별하기 위해, 수신된 데이터(예를 들면, 카메라 컴포넌트 측정치, 공지된 타겟 이미지의 캡쳐, 포지션 센서 데이터, 공지된 거리에 있는 다른 카메라로부터의 정보, SLAM 데이터, 등등)에 변환을 적용하는 것을 포함할 수 있다. 다양한 구현예에서, 캡쳐 블록(504)에 의해 사용 가능한 각각의 카메라에 대해 캘리브레이션 블록(502)이 수행될 수 있고 결과적으로 나타나는 캘리브레이션 파라미터는 대응하는 카메라에 대한 연관성과 함께 저장될 수 있다. 캘리브레이션 파라미터를 결정에 대한 추가적인 세부 사항은 도 7과 관련하여 하기에서 설명된다.
캡쳐 블록(504)은 전송기 3D 대화 시스템의 하나 이상의 캡쳐 디바이스를 사용하여 오디오, 전통적인 이미지, 및/또는 깊이 이미지/데이터를 캡쳐할 수 있다. 캡쳐 블록(504)은 캡쳐된 데이터의 수집을 시작하기 위한 명령어 및 하나보다 더 많은 카메라 구성이 이용 가능한 경우, 어떤 카메라를 사용할지의 지시를 수신할 수 있다. 캡쳐 블록(504)은 어떤 태그 지정된 메타데이터를 갖는 캡쳐된 데이터(예를 들면, 전통적인 이미지, 깊이 이미지, 픽셀 클라우드, 등등)를 생성할 수 있다. 캡쳐 블록(504)에서 수행되는 프로세스는, 캡쳐 데이터를 수집하고 캡쳐 데이터를, 캡쳐 데이터의 각각의 부분이 캡쳐되었던 시간 및 캡쳐 데이터의 그 부분을 어떤 디바이스가 캡쳐하였는지와 같은 메타데이터와 연관시키기 위해, 캡쳐 하드웨어와 인터페이싱하는 것을 포함할 수 있다. 다양한 구현예에서, 캡쳐 데이터는 다음의 것 중 하나 이상으로부터 유래할 수 있다: 흑백 카메라, 컬러 카메라, 깊이 카메라, 거리 센서, 마이크, 등등. 카메라는, 예를 들면, 대화 컨텍스트에 기초하여, 정적으로 또는 동적으로 상이한 해상도 및 프레임 레이트에서 이미지를 캡쳐하도록 구성될 수 있다. 예를 들면, 시스템은 카메라를 인에이블 또는 디스에이블할 수 있고, 다음의 것 중 하나 이상에 기초하여 캡쳐 해상도, 프레임 레이트, 오디오 품질, 등등을 변경할 수 있다: 이용 가능한 대역폭이 대응하는 임계치를 초과하거나 또는 그 미만인 것, 소정의 타입의 이미지를 디스플레이하는(예를 들면, 3D 이미지를 디스플레이하는, 상이한 해상도에서 이미지를 디스플레이하는, 다양한 프레임 레이트에서 디스플레이하는, 등등) 수신 디바이스의 능력에 따라, 유저 설정에 따라, 수신 유저의 뷰포인트에 따라, 어떤 카메라가 전송 유저의 적어도 일부를 볼 수 있는지에 기초하여, 등등. 전송 시스템에서 캡쳐된 데이터를 수집하는 것에 대한 추가적인 세부 사항은 도 8과 관련하여 하기에서 설명된다.
필터 및 태그 블록(506)은 캡쳐 블록(504)으로부터의 캡쳐된 데이터를 추가적인 메타데이터로 태그 지정하고, 캡쳐된 데이터의 품질을 향상시키고, 및/또는 캡쳐된 데이터의 불필요한 부분을 제거하기 위해 다양한 프로세스를 수행할 수 있다. 필터 및 태그 블록(506)의 프로세스는 캡쳐 블록(504)으로부터 캡쳐된 데이터(캡쳐된 데이터의 각각의 부분을 캡쳐했던 디바이스를 사용하여 태그 지정되는) 를 그리고 캘리브레이션 블록(502)으로부터 캘리브레이션 파라미터(캘리브레이션 파라미터의 각각의 세트가 파라미터의 그 세트가 생성되었던 디바이스와 연관됨)를 수신할 수 있고, 필터링되고, 향상되고, 캘리브레이션 및/또는 다른 식별자로 태그 지정된 엄선된 데이터(curated data)를 생성할 수 있다. 다양한 구현예에서, 필터링은 수신 시스템에서 이미지(예를 들면, 수신기의 관점으로부터 3D 표현을 구성하기 위해 사용 가능한 이미지)를 구성하기 위해 사용될 디바이스로부터 캡쳐된 데이터를 선택하는 것 및/또는 3D 표현을 구성하는 데 불필요한 이미지의 부분(예를 들면, 전송 유저를 묘사하지 않는 이미지의 배경 또는 다른 부분)을 제거하는 것을 포함할 수 있다. 몇몇 경우에, 캡쳐된 데이터를 향상시키는 것은 이미지 품질을 향상시키기 위해 다수의 캡쳐 디바이스로부터의 캡쳐된 데이터를 교차 참조하는 것을 포함할 수 있다. 예를 들면, 전통적 카메라 및 깊이 카메라로부터의 캡쳐된 데이터 스트림이 사용되어 서로를 향상시킬 수 있다. 캡쳐된 데이터가 하나의 전통적인 카메라로부터의 이미지 및 하나의 깊이 센서로부터의 데이터를 포함하는 몇몇 경우에, 깊이 센서 데이터는 이미지의 각각의 포인트에 깊이를 할당하기 위해 사용될 수 있다. 캡쳐된 데이터가 다수의 전통적인 카메라로부터의 이미지를 포함하는 경우, 이미지는 가중된 조합으로 결합될 수 있는데, 여기서 가중치는 뷰포인트에 대한 카메라에 기초하여 할당되고, 더 나은 뷰의 포인트를 갖는 카메라는 더 큰 가중치를 제공받는다. 이것은 3D 공간에서 포인트에 대한 컬러 및/또는 음영 추정치를 향상시킬 수 있다. 게다가, 전통적인 카메라의 위치에 따라, 시스템은 스테레오 텍스쳐링(stereo texturing)을 수행하여 3D 효과를 제공할 수 있다. 또한, 다수의 깊이 센서로부터의 데이터가 캡쳐된 데이터에 포함되는 경우, 시스템은 이 데이터를 결합하여 3D 공간의 더 많은 공간을 커버하는 깊이 샘플을 제공할 수 있다. 이것은 3D 공간에서 오브젝트의 더 나은 볼륨 재구성을 제공할 수 있고, 폐색 이슈(occlusion issue)를 해결할 수 있으며, 공간적으로 그리고 시간적으로 깊이를 평활화할 수 있다. 몇몇 경우에, 교차 참조된 데이터 스트림은 서로의 임계 거리 내에 있는 디바이스로부터 유래할 수 있고 및/또는 데이터 스트림은 캡쳐 디바이스 사이의 거리를 보상하기 위해 캘리브레이션 파라미터에 따라 먼저 변환될 수 있다. 여전히 추가적인 경우에, 향상은, 예를 들면, 전통적인 이미지에 기초하여 깊이를 추정하도록 트레이닝되는 머신 러닝 모델을 사용하여, 전통적인 이미지에 기초하여 깊이 이미지를 생성하는 것을 포함할 수 있다. 필터 및 태그 블록(506)은, 디바이스와 연관되는 캘리브레이션 파라미터를 그 동일한 디바이스로부터 취해지는 캡쳐된 데이터 스트림에 매칭시키는 것에 의해, 캡쳐된 데이터를 캘리브레이션 파라미터로 태그 지정할 수 있다. 필터 및 태그 블록(506)은 식별된 오브젝트, 식별된 사람들, 및 식별된 태그에 대한 이미지 내의 대응하는 위치와 같은 추가적인 정보를 사용하여 데이터 스트림을 태그 지정할 수 있다. 필터링 및 태그 지정에 대한 추가적인 세부 사항은 도 9와 관련하여 하기에서 설명된다.
압축 블록(508)은 블록(506)으로부터 엄선된 데이터를 네트워크를 통한 송신을 위한 포맷으로 변환할 수 있다. 몇몇 구현예에서, 이 압축은 비디오 코덱, 예컨대 MPEG 표준을 적용하는 것, 엔트로피 인코딩을 수행하는 것, 또는 다른 공지된 손실성 또는 무손실성 압축 알고리즘을 적용하는 것에 의해 달성될 수 있다. 몇몇 구현예에서, 사용되는 압축 알고리즘은 수신된 데이터의 포맷에 의존할 수 있다. 예를 들면, 포인트 클라우드 데이터 스트림은 포인트 클라우드 라이브러리(PCL), MPEG 포인트 클라우드 압축 표준, 또는 다른 포인트 클라우드 압축 알고리즘을 사용하여 압축될 수 있다. 유사하게, 다른 데이터 포맷은 그들 데이터 포맷에 대한 공지된 대응하는 라이브러리를 사용하여 압축될 수 있거나 또는 일반적인 압축 알고리즘이 적용될 수 있다. 다양한 구현예에서, 압축은 다수의 디바이스로부터의 엄선된 데이터를 단일의 패키지로 결합할 수 있거나 또는 각각의 데이터 스트림을 개별적으로 압축할 수 있다. 몇몇 경우에, 압축 데이터는 블록(506)에서 적용되는 메타데이터를 포함할 수 있고, 한편, 다른 경우에, 이들 태그는 별개이지만 그러나 연관되는 압축된 또는 압축되지 않은 데이터로서 제공될 수 있다. 몇몇 구현예에서, 캡쳐된 전통적인 이미지 데이터 및 대응하는 시간 간격에 대한 깊이 데이터는 서로를 압축하기 위해 사용될 수 있다. 예를 들면, 모션 벡터가 하나의 스트림으로부터 결정될 수 있고 다른 스트림을 압축하는 것을 돕기 위해 사용될 수 있다. 몇몇 경우에, 사용되는 압축 알고리즘, 또는 압축을 위해 설정되는 파라미터는 대화 컨텍스트(예를 들면, 이용 가능한 대역폭, 수신기의 디스플레이 성능, 전송기 또는 수신기의 컴퓨트 성능, 등등)에 기초하여 동적으로 결정될 수 있다. 압축에 대한 추가적인 세부 사항은 도 10과 관련하여 하기에서 설명된다.
압축 해제 블록(510)은 압축된 데이터를 원래의 데이터의 버전으로 다시 변환할 수 있다. 압축 해제 블록(510)은 압축 블록(508)으로부터 압축된 데이터(네트워크를 통해 송신됨)를 수신할 수 있고 압축된 데이터를 생성하기 위해 사용되는 압축 알고리즘의 역을 적용할 수 있다. 압축 프로세스와 유사하게, 사용되는 압축 해제 알고리즘은 압축된 데이터의 타입 및/또는 사용되는 압축 알고리즘에 의존할 수 있다. 몇몇 구현예에서, 압축 해제 프로세스의 인자는 수신 시스템의 대화 컨텍스트, 예컨대 프로세싱 파워 또는 디스플레이 성능에 기초하여 설정될 수 있다. 압축 해제에 대한 추가적인 세부 사항은 도 11과 관련하여 하기에서 설명된다.
도 5에서 도시되지 않지만, 압축 해제 및 재압축이 3D 대화 파이프라인에서 다수 회 수행될 수 있다는 것이 이해될 것이다. 예를 들면, 전송 시스템은 초기 압축을 수행할 수 있고, 서버 시스템은 압축 해제를 수행할 수 있고, 데이터를 프로세싱할 수 있고, 결과를 다시 압축할 수 있으며, 그들 결과는 수신기로 전송될 수 있는데, 그곳에서 그들은 압축이 해제된다.
재구성 블록(512)은 압축 해제된 데이터의 깊이 데이터 부분(들)으로부터 전송 유저의(또는 다수의 전송 시스템의 경우 다수의 유저의) 3D 표현을 생성할 수 있다. 3D 표현은 포인트 클라우드, 부호가 있는 거리 함수, 채워진 복셀, 메쉬, 라이트 필드, 등등과 같은 다양한 포맷일 수 있다. 재구성 블록(512)은, 다수의 소스로부터의 데이터를 결합하고 및/또는 캡쳐된 데이터를 3D 공간에서의 포지션 및 윤곽 정보로 변환하기 위해, 캘리브레이션 데이터를 사용하는 것에 의해 깊이 데이터의 3D 표현으로의 이 변환을 달성할 수 있다. 예를 들면, 유저를 묘사하는 깊이 이미지의 각각의 픽셀은 카메라의 고유 속성 및 외부 캘리브레이션 파라미터에 기초하여 변환을 적용하는 것에 의해 유저의 적어도 일부의 3D 표현으로 변환될 수 있다. 변환은 카메라 위치에서 취해지는 각각의 픽셀을 취하여 유저의 표면 상의 한 포인트를 나타내는 3D 공간에서의 대응하는 포인트를 결정할 수 있다. 몇몇 구현예에서, 재구성 스테이지는, 음영 또는 컬러 데이터의 일부를 3D 표현에 매핑하기 위해 캘리브레이션 데이터를 사용하여, 음영 및/또는 컬러 데이터를 3D 표현에 적용할 수 있다.
몇몇 구현예에서, 재구성 프로세스는 수신 시스템의 계산 및 디스플레이 특성에 기초하여 커스터마이징될 수 있다. 예를 들면, 수신 유저의 뷰포인트로부터 볼 수 있는 3D 표현의 일부만이 생성될 수도 있다. 다른 예로서, 상이한 프로세싱 및/또는 디스플레이 요건을 가질 수 있는 다양한 상이한 타입의 3D 표현이 있을 수 있으며 생성되는 3D 표현의 타입은 수신 시스템 프로세싱 및 디스플레이 성능을 3D 표현의 대응하는 디스플레이 및 프로세싱 요건에 매칭시키는 것에 의해 선택될 수 있다. 재구성 블록이 수신 시스템 이외의 시스템 상에서 수행되는 몇몇 구현예에서, 상이한 3D 표현은 상이한 데이터 사이즈를 가질 수 있고 3D 표현 타입은 이용 가능한 대역폭에 기초하여 또한 선택될 수 있다. 몇몇 경우에, 3D 표현의 일부 또는 모두는, 예컨대, 전송 유저의 캡쳐된 이미지 중 어느 것도 3D 표현의 일부를 묘사하지 않는 경우 또는 전송 유저를 묘사하는 이미지의 일부를 제공할 충분한 시간을 대역폭 또는 프로세싱 제한이 허용하지 않은 경우, 캡쳐된 데이터의 직접적인 변환이 아닐 수도 있다. 그러한 경우에, 3D 표현의 일부 또는 모두는 전송 유저의 아바타 표현, 누락된 부분(들)의 머신 러닝 추정, 또는 전송 유저의 누락된 부분(들)의 이전에 캡쳐된 버전을 사용하여 근사될 수 있다. 재구성에 대한 추가적인 세부 사항은 도 12와 관련하여 하기에서 설명된다.
렌더 블록(514)은 수신 유저의 뷰포인트로부터 전송 유저의 하나 이상의 2D 이미지를 생성할 수 있다. 렌더 블록(514)은 2D 이미지를 생성하기 위해 3D 표현 및 수신 유저 뷰포인트의 지시를 수신할 수 있다. 이것은, 3D 표현과 관련하여, 수신 유저의 뷰포인트에(또는 수신 유저의 각각의 눈의 뷰포인트에), 그 뷰포인트로부터 3D 표현의 하나 이상의 2D 이미지를 생성할 수 있는 가상 카메라를 배치하는 것을 포함할 수 있다. 이들 이미지는 수신 시스템의 디스플레이 속성을 충족시키도록, 예를 들면, 수신 시스템의 해상도, 디스플레이 사이즈, 또는 디스플레이 타입에 매치하도록 생성될 수 있다. 예를 들면, 수신 시스템이 각각의 눈에 대한 디스플레이를 갖는 인공 현실 시스템인 경우, 렌더 스테이지는 이들 디스플레이의 해상도에서 각각의 눈의 뷰포인트로부터 이미지를 생성할 수 있다. 다양한 구현예에서, 렌더 스테이지는 단일의 이미지, 두 개의 "스테레오" 이미지, 라이트 필드, 등등을 생성할 수 있다. 몇몇 구현예에서, 렌더 스테이지는 렌더링된 이미지에 컬러 또는 음영 데이터를 또한 적용할 수 있다. 컬러 데이터를 적용하는 것은, 수신 유저의 뷰포인트로부터 유래할 캘리브레이션 파라미터에 따라, 그것을 변환하는 것 및 컬러 데이터를 이미지에 적용하는 것을 포함할 수 있다. 몇몇 구현예에서, 수신 시스템은 "진정한 3D" 디스플레이(예를 들면, 3D 공간에서의 홀로그램, 레이저 플라즈마 디스플레이, 크리스탈 큐브, 미스트 스크린, 등등)에 대응할 수 있을 수도 있는데, 이 경우 렌더 스테이지는 스킵될 수도 있거나 또는 3D 디스플레이에 직접적으로 출력될 수 있는 3D 표현에 컬러 데이터를 단순히 제공할 수도 있다. 3D 표현으로부터 이미지를 렌더링하는 것에 대한 추가적인 세부 사항은 도 13과 관련하여 하기에서 설명된다.
디스플레이 블록(516)은 렌더링된 하나 이상의 2D 이미지를 수신할 수 있고 그들을 수신 시스템의 디스플레이 하드웨어를 통해 출력할 수 있다. 이것은, 예를 들면, 스크린 상에 이미지(들)를 디스플레이하는 것, "가상 동굴" 벽 상으로 그들을 투영하는 것, 유저의 눈에 그들을 투영하는 것, 등등을 포함할 수 있다. 디스플레이 블록(516)은 시각적 출력을 오디오 출력, 햅틱 출력, 프리젠테이션 데이터(예를 들면, 가상 화이트보드, 슬라이드 덱(slide deck), 연관된 이미지, 등등), 또는 대화의 일부로서 전송 시스템으로부터 수신되는 다른 데이터와 또한 동기화할 수 있다. 수신 디바이스에서 출력을 제공하는 것에 대한 추가적인 세부 사항은 도 14와 관련하여 하기에서 설명된다.
도 6은, 본 기술의 몇몇 구현예에서 사용되는, 도 5로부터의 흐름도에 대한 변형예를 예시하는데, 여기서 변형예는 상이한 시스템에서 수행되는 3D 대화 파이프라인의 스테이지를 나타낸다. 파이프라인 변형예(602-612)는 단방향 통신 - 전송기(652)로부터 수신기(656)로 - 만을 도시하지만, 일부 3D 대화 동안, 시스템은 전송기(652) 및 수신기(656) 둘 모두의 역할을 할 수 있다는 것이 이해될 것이다.
변형예(602-612) 각각에서, 전송기(652)가 데이터를 송신하기 이전에 압축 스테이지가 수행될 수 있고, 수신기(656)가 압축된 데이터를 수신할 때 압축 해제 스테이지가 수행될 수 있다. 하나 이상의 스테이지가 서버 시스템(654)에 의해 수행되는 변형예(604, 608, 및 610)에서, 유사한 압축 해제 및 압축 스테이지가 서버 시스템(654)에 의해 수행될 수 있다.
변형예(602-612)는 3D 대화 동안 수행되는 파이프라인 구성의 스테이지를 예시한다. 상기에서 논의되는 바와 같이, 추가적인 캘리브레이션 스테이지(502)(도 5)가 이 파이프라인에 포함될 수 있는데, 이것은 3D 대화 이전에 및/또는 그 동안 수행될 수도 있고, 자동적으로 또는 다양한 엔티티에서의 유저 입력을 사용하여, 예컨대 디바이스 제조사에 의해 또는 전송 유저에 의해 수행될 수도 있다.
다양한 구현예에서, 3D 대화를 위해 사용되는 (변형예(602-612) 중) 엄선된 변형예는 정적일 수 있거나 또는 동적일 수 있다. 정적 구성에서, 파이프라인 스테이지가 수행될 곳에 관한 사전 결정이 이루어질 수 있다. 그러한 정적인 경우에, 각각의 스테이지에 대한 프로그래밍은 그들 스테이지가 수행될 디바이스에만 있을 수도 있다.
다양한 구현예에서, 동일한 파이프라인 변형예가 3D 대화의 참가자 사이의 양방향의 정보 흐름을 위해 사용될 수 있다. 그러나, 다른 구현예에서, 전송기 대 수신기로서 역할을 할 때 동일한 엔드포인트 디바이스에 의해 상이한 파이프라인 변형예가 있을 수 있다. 예를 들면, 참가 디바이스 중 하나가 낮은 프로세싱 파워를 갖는 경우, 그것은 (변형예(602 및 604)에서와 같이) 정보를 수신할 때 디스플레이 스테이지만을 수행할 수도 있고 (변형예(608-612)에서와 같이) 정보를 전송할 때 그것은 캡쳐 및 필터 및 태그 스테이지만을 수행한다. 스테이지가 수행되는 곳을 선택하기 위한 인자의 예는, 이용 가능한 전송 시스템 및 수신 시스템 프로세싱 성능, 특정한 스테이지를 더욱 효율적으로 수행하기 위해 전송 또는 수신 시스템이 특수 하드웨어를 갖추고 있는지의 여부, 이용 가능한 대역폭, 및 참가 시스템의 캡쳐 또는 디스플레이 성능을 포함한다. 이들 인자는 변형예의 정적 또는 동적 선택을 위해 사용될 수 있다.
변형예가 동적인 구현예의 경우, 변형예(602-612)는 이들 인자 중 하나 이상에 대한 다양한 조건(예를 들면, 임계 값)으로 매핑될 수 있다. 이것은 매치된 조건이 발생할 때 대응하는 변형예가 사용되게 할 것이다. 예를 들면, 임계 개수를 초과하는 캡쳐 카메라를 갖는 변형예는 재구성으로 하여금 전송 컴퓨팅 시스템(전송기(652))에 있게 할 수도 있거나; 전송기(652) 또는 수신기(654)의 컴퓨팅 파워가 주어진 임계치 미만인 것은 재구성 및/또는 렌더 스테이지로 하여금 서버(654) 상에서 또는 수신 또는 전송 시스템(각각 수신기(656) 또는 전송기(652)) 중 다른 것 상에서 수행되게 할 수도 있거나; 이용 가능한 대역폭이 임계치 미만인 것은 재구성 및/또는 렌더로 하여금 전송 시스템(전송기(652))에서 수행되게 할 수도 있거나; 또는 수신기(656) 상에서의 디스플레이 타입은 디스플레이를 제외한 모든 스테이지로 하여금 전송 시스템(전송기(652))에서 발생하게 할 수 있다.
변형예(602)에서, 캡쳐, 필터 및 태그, 재구성, 및 렌더 스테이지 모두는 전송기(652)에 의해 수행되고, 한편 디스플레이 스테이지는 수신기(656)에 의해 수행된다. 변형예(604)에서, 캡쳐, 필터 및 태그, 재구성 스테이지는 전송기(652)에 의해 수행되고, 렌더 스테이지는 서버 시스템(654)에 의해 수행되며, 디스플레이 스테이지는 수신기(656)에 의해 수행된다. 변형예(606)에서, 캡쳐, 필터 및 태그, 및 재구성 스테이지는 전송기(652)에 의해 수행되고 렌더 및 디스플레이 스테이지는 수신기(656)에 의해 수행된다. 변형예(608)에서, 캡쳐 및 필터 및 태그 스테이지는 전송기(652)에 의해 수행되고, 재구성 및 렌더 스테이지는 서버 시스템(654)에 의해 수행되며, 디스플레이 스테이지는 수신기(656)에 의해 수행된다. 변형예(610)에서, 캡쳐 및 필터 및 태그 스테이지는 전송기(652)에 의해 수행되고, 재구성 스테이지는 서버 시스템(654)에 의해 수행되며, 렌더 및 디스플레이 스테이지는 수신기(656)에 의해 수행된다. 변형예(612)에서, 캡쳐 및 필터 및 태그 스테이지는 전송기(652)에 의해 수행되고 재구성, 렌더, 및 디스플레이 스테이지는 수신기(656)에 의해 수행된다.
변형예(602-612) 각각이 특정한 파이프라인에 대한 단일의 전송기/수신기만을 도시하지만, 3D 대화는 두 명보다 더 많은 참가자를 수반할 수 있다. 두 명보다 더 많은 참가자가 있고 재구성 및/또는 렌더 스테이지가 수신 시스템 이외의 다른 시스템 상에서 수행되는 몇몇 경우에, 재구성 및/또는 렌더 스테이지는, 각각의 수신 시스템에 대해 한 번씩, 다수 회 수행될 수 있다. 다수의 전송 시스템이 있는 몇몇 경우에, 재구성 스테이지는 전송기 각각을 포함하는 3D 표현을 생성하기 위해 수행될 수 있고 각각의 수신기에 대한 렌더 스테이지는 이 결합된 3D 표현으로부터 2D 이미지를 생성할 수 있다. 다른 경우에, 재구성 스테이지는, 각각의 전송기에 대해 한 번씩, 다수 회 수행될 수 있고, 대응하는 렌더 스테이지는 각각의 전송기의 결과적으로 나타나는 별개의 3D 표현과 관련하여 수행될 수 있다.
도 7은 3D 대화 파이프라인의 캘리브레이션 스테이지에 대한 본 기술의 몇몇 구현예에서 사용되는 프로세스(701)(예를 들면, 도 5의 블록(502)에 의해 수행되는 프로세스)를 예시하는 흐름도이다. 블록(702)에서, 프로세스(701)는 전송 시스템의 하나 이상의 카메라에 대한 고유 파라미터를 획득할 수 있다. 고유 파라미터는 특정한 카메라에 대해 내부에 있는(종종 일반적으로 고정되는) 카메라의 피쳐를 명시할 수 있다. 고유 파라미터의 예는 초점 거리, 픽셀 좌표 사이의 관계, 렌즈 기하학적 왜곡, 등등을 포함한다. 이들 파라미터는 카메라의 광학적, 기하학적, 및 디지털 특성을 특성 묘사할 수 있어서, 카메라 좌표와 이미지의 픽셀 좌표 사이의 매핑을 허용할 수 있다. 다양한 구현예에서, 블록(702)은, 3D 대화 파이프라인을 위한 데이터를 캡쳐하기 위해 전송 시스템이 사용할 수도 있는 각각의 카메라에 대해 수행될 수 있다.
다양한 구현예에서, 고유 파라미터를 식별하는 것은 상이한 시간에 행해질 수도 있다. 하나의 예로서, 고유 파라미터는 카메라를 배송하기 이전에 제조사에 의해 식별될 수 있다(여기서 파라미터는 카메라의 메모리에 저장될 수 있거나 또는 일반적으로 카메라 타입에 대해 결정되어 드라이버 또는 다른 데이터 구조와 같은 연관된 소프트웨어에 저장될 수 있음). 다른 예로서, 고유 파라미터는 (예를 들면, 다양한 측정 기기를 사용하는 것 및/또는 공지된 타겟의 촬상되는 이미지, 예컨대 특정한 치수를 갖는 체커 패턴(checker pattern)을 분석하는 것에 의해 고유 파라미터를 추론하는 프로세스를 개시하는 것에 의해) 유저가 초기 구성을 개시할 때 식별될 수 있다. 제3 예로서, 고유 파라미터는 (예를 들면, 프레임 내에 있는 오브젝트의 공지된 치수, 예컨대 초기 캘리브레이션 프로세스 동안 또한 프레임 내에 있었던 오브젝트에 대해 결정되는 치수에 기초하여) 카메라가 사용되고 있을 때 온라인 프로세스에서 식별될 수 있다.
블록(704)에서, 프로세스(701)는 전송 시스템의 하나 이상의 카메라에 대한 외부 파라미터를 획득할 수 있다. 외부 파라미터는 카메라 외부의 조건 또는 컨텍스트를 명시할 수 있다. 외부 파라미터의 예는 카메라의 위치 및 방위, 조명 특성(예를 들면, 조명 소스 위치, 타입, 방위), 주변 조건(예를 들면, 열, 습기, 등등), 등등을 포함한다. 이들 파라미터는 각각의 카메라 픽셀에서 수신되는 광을 특성 묘사하기 위해 사용할 수 있어서, 그 광이 3D 환경의 관점에서 해석되는 것을 허용할 수 있다. 다양한 구현예에서, 블록(704)은, 3D 대화 파이프라인을 위한 데이터를 캡쳐하기 위해 전송 시스템이 사용할 수도 있는 각각의 카메라에 대해 수행될 수 있다. 외부 파라미터를 식별하는 것은, 예를 들면, 3D 대화 이전의 초기 구성의 일부로서 상이한 시간에 및/또는 외부 파라미터를 결정하거나 또는 업데이트하기 위해 대화가 진행됨에 따라 온라인으로 행해질 수도 있다. 외부 파라미터는, 예컨대 특정한 치수를 갖는 공지된 타겟의 촬상되는 이미지를 분석하는 것에 의해; (예를 들면, 비행 시간 센서, 인코딩되는 추론된 도트 매트릭스, 또는 다른 알려진 기술을 사용하여) 카메라를 둘러싸는 영역을 매핑하고 그 영역에 카메라를 배치하는 것에 의해; 두 개 이상의 카메라 사이의 거리를 결정하고 이들 기하학적 형상을 사용하여 이미지 사이의 비교를 행하여 오브젝트까지의 거리를 결정하는 것에 의해; 현존하는 SLAM 데이터를 사용하는 것에 의해; IMU 데이터 및/또는 캡쳐된 이미지로부터의 모션 벡터에 기초하여 이전 위치 결정을 업데이트하는 것에 의해; 등등에 의해, 다양한 프로세스 중 하나 이상을 사용하여 결정될 수 있다.
블록(706)에서, 프로세스(701)는 전송 시스템의 하나 이상의 카메라에 대한 노이즈 특성을 획득할 수 있다. 노이즈 특성은 단일의 카메라에 의해 캡쳐되는 이미지에 걸친 변동의 통계적 분석일 수 있다. 노이즈 특성의 예는 광자 샷 노이즈(photon shot noise), 광 응답 불균일성(photo response non-uniformity; PRNU), 열 노이즈, 및 암전류(dark current)를 포함한다. 몇몇 구현예에서, 노이즈 특성은 캘리브레이션 파라미터의 일부로서 포함될 수 있고, 예를 들면, 카메라 정확도를 고려하기 위해 재구성 동안 사용될 수 있다. 몇몇 경우에, 깊이 카메라 데이터를 특성 묘사하기 위해, 샷 노이즈 및/또는 암전류 노이즈가 적용될 수 있다. 노이즈를 특성 묘사하는 것은 노이즈 감소를 촉진할 수 있어서, 공간 및 시간 도메인 둘 모두에서, 더 높은 품질 이미지 및 깊이 샘플을 생성할 수 있게 한다.
블록(708)에서, 프로세스(701)는 블록(702-706)에서 획득되는 캘리브레이션 파라미터를, 그들 파라미터가 결정되었던 각각의 카메라와 연관되는 캘리브레이션 데이터로서 저장할 수 있다. 예를 들면, 다양한 캘리브레이션 파라미터는, 키로서, 대응하는 카메라의 식별자를 가지고 데이터 구조에 저장될 수 있다.
블록(710)에서, 프로세스(701)는 캘리브레이션 데이터를 업데이트하기 위한 트리거가 발생하였는지의 여부를 결정할 수 있다. 상기에서 논의되는 바와 같이, 다양한 구현예에서, 플로우차트 중 임의의 것으로부터 임의의 블록이 제거될 수 있거나 또는 재배열될 수 있지만, 블록(710)은, 블록(710)이 수행될 수도 있는 또는 수행되지 않을 수도 있는 특정한 구현예를 불러내기 위해 파선으로 예시되어 있다. 예를 들면, 몇몇 구현예에서, 캘리브레이션은 트리거되지 않으며, 따라서, 프로세스(701)는 블록(708) 이후에 종료된다. 다른 구현예에서, 하나 이상의 트리거는, 예컨대 (예를 들면, IMU 데이터, SLAM 데이터, 캡쳐된 이미지에서의 모션 벡터, 일련의 캡쳐 이미지 사이의 임계치를 초과하는 변화, 등등에 기초한) 임계 양을 초과하는 카메라의 검출된 움직임이 있는 경우, 마지막 캘리브레이션 이후의 설정 시간이 만료되는 경우, 유저가 캘리브레이션 업데이트를 개시하는 경우, 온도 또는 습도에서 임계 변화가 있는 경우, 조명 조건에서 임계 변화가 있는 경우, 등등의 경우, 캘리브레이션 데이터에 대한 업데이트를 야기할 수 있다. 프로세스(701)는 트리거가 식별될 때까지 블록(710)에 남아 있을 수 있는데, 트리거가 식별되는 경우, 프로세스(701)는 블록(702)부터 반복될 수 있다. 몇몇 구현예에서, 모든 블록(702-706)을 반복하는 대신, 이들 블록 중 일부만이 반복된다. 예를 들면, 블록(704)만이 반복될 수도 있다. 몇몇 구현예에서, 반복되는 블록은 트리거 조건에 의존할 수도 있는데, 여기서 소정의 트리거 조건은 대응하는 캘리브레이션 액션으로 매핑된다. 예를 들면, 포지션에서의 검출된 변화는 블록(704)으로 하여금 수행되게 할 수 있고, 반면, 온도에서의 검출된 변화는 블록(702 및 704) 둘 모두로 하여금 수행되게 할 수 있다. 몇몇 구현예에서, 주기적인 캘리브레이션 트리거는, 예를 들면, 각각의 3D 대화마다 한 번씩 또는 하루마다, 분마다, 초마다, 등등마다 한 번씩 발생할 수 있다.
도 8은 3D 대화 파이프라인의 캡쳐 스테이지에 대한 본 기술의 몇몇 구현예에서 사용되는 프로세스(801)(예를 들면, 도 5의 블록(504)에 의해 수행되는 프로세스)를 예시하는 흐름도이다. 블록(802)에서, 프로세스(801)는 임의의 동적 캡쳐 인자가 나타내어지는지의 여부를 결정할 수 있다. 동적 캡쳐 인자는 캡쳐 구성(예를 들면, 인에이블된 또는 디스에이블된 캡쳐 디바이스, 3D 대화를 위해 사용할 캡쳐 디바이스의 세트, 또는 캡쳐 디바이스 중 하나 이상 상에서 사용할 설정)으로 매핑되는 대화 컨텍스트의 일부일 수 있다. 다양한 구현예에서, 동적 캡쳐 인자는, 이용 가능한 대역폭이 대응하는 임계치를 초과하는 것 또는 미만인 것, 수신 시스템의 디스플레이 능력, 전송 또는 수신 시스템 배터리 레벨이 대응하는 임계치를 초과하는 것 또는 미만인 것, 유저 설정, 전송 시스템 카메라의 포지션과 비교한 수신 유저의 뷰포인트, 또는 이들의 임의의 조합 중 하나 이상을 포함할 수 있다.
블록(804)에서, 프로세스(801)는 캡쳐 디바이스 및/또는 캡쳐 디바이스 파라미터의 세트를 선택하기 위해 동적 캡쳐 인자 대 캡쳐 구성의 매핑을 사용할 수 있다. 다양한 구현예에서, 매핑은 동적 캡쳐 인자를 다음의 것 중 하나 이상으로 매핑할 수 있다: 인에이블 또는 디스에이블될 카메라 또는 마이크, 카메라 프레임레이트 또는 해상도에서의 변화, 오디오 캡쳐 품질에서의 변화, 또는 어떤 캡쳐된 데이터 피드를 사용할지의 선택. 예를 들면, 수신측의 프로세싱 파워가 임계치 미만인 것, 이용 가능한 대역폭이 임계치 미만인 것, 전송 시스템의 배터리 레벨이 임계치 미만인 것, 또는 수신측 시스템이 3D 또는 고해상도 이미지를 디스플레이할 수 없음과 같은 대화 컨텍스트는, 전송 시스템에 의해 사용되는 카메라의 수에서의 대응하는 감소 및/또는 전송 시스템에 의해 사용되는 카메라에 대한 프레임 레이트 또는 해상도에서의 감소로 매핑될 수 있다. 몇몇 구현예에서, 그러한 감소는, 예컨대 상이한 데이터 구조를 사용하는 것, 더 낮은 해상도를 제공하는 것, 또는 전통적인 2D 비디오 통화 또는 오디오 전용 통화로 저하하는 것에 의해, 3D 대화 파이프라인으로 하여금, 하나 이상의 스테이지에서 상이한 흐름으로 전이하게 할 수 있다. 다른 예로서, 수신측 시스템은 수신 유저의 현재의 뷰포인트를 제공할 수 있고 이것은 (캘리브레이션 데이터를 사용하여) 변환되어 그 뷰포인트로부터 볼 수 있을 유저의 일부를 캡쳐하기 위해 어떤 카메라(들)가 배치되는지를 결정할 수 있고, 다른 카메라는 디스에이블될 수 있거나 또는 다른 카메라로부터의 이미지는 캡쳐된 데이터로부터 배제될 수 있다. 여전히 또 다른 예로서, 유저는 2D 호출로 전환하기 위한 제어를 활성화할 수 있는데, 이것은 전송 유저의 얼굴에 초점이 맞추어진 단일의 카메라로부터 이미지를 캡쳐하는 것으로만 매핑될 수 있다(또한 다른 스테이지로 하여금 수정되게 하거나 또는 스킵되게 할 수 있음, 예를 들면, 압축을 위해 PCL 대신 MPEG 비디오 압축을 사용하고 재구성 스테이지를 스킵함).
상기에서 논의되는 바와 같이, 다양한 구현예에서, 플로우차트 중 임의의 것으로부터 임의의 블록이 제거될 수 있거나 또는 재배열될 수 있지만, 블록(802 및 804)은, 블록(802 및 804)이 수행될 수도 있는 또는 수행되지 않을 수도 있는 특정한 구현예를 불러내기 위해 파선으로 예시되어 있다. 몇몇 구현예에서, 캡쳐 디바이스의 동적 선택이 없고, 따라서, 프로세스(801)는 블록(806)에서 시작한다.
블록(806)에서, 프로세스(801)는 하나 이상의 캡쳐 디바이스로부터 데이터를 수신할 수 있다. 이것은 전송 시스템에 연결되는 캡쳐 디바이스의 단일의 세트(디폴트 설정, 예를 들면, 해상도, 프레임 레이트, 등등을 사용함), 캡쳐 디바이스의 디폴트 세트(디폴트 설정을 사용함), 또는 블록(802 및 804)의 프로세스가 수행된 경우, 블록(804)에서 선택되는 캡쳐 디바이스 및/또는 캡쳐 디바이스 설정일 수 있다. 다양한 구현예에서, 캡쳐 디바이스는 흑백 이미지, 컬러 이미지, 깊이 이미지, 포인트 클라우드 데이터, 세미 글로벌 매칭(Semi-Global Matching; SGM) 데이터, 오디오, 등등, 또는 이들의 임의의 조합 중 하나 이상을 캡쳐할 수 있다.
블록(808)에서, 프로세스(801)는 캡쳐 메타데이터를 캡쳐된 데이터에 연관시킬 수 있다. 캡쳐 메타데이터의 예는, 캡쳐된 데이터의 일부가 캡쳐되었던 시간 및 그 데이터를 어떤 디바이스가 캡쳐하였는지의 지시자를 포함한다.
도 9는 3D 대화 파이프라인의 필터 및 태그 스테이지에 대한 본 기술의 몇몇 구현예에서 사용되는 프로세스(901)(예를 들면, 도 5의 블록(506)에 의해 수행되는 프로세스)를 예시하는 흐름도이다. 블록(902)에서, 프로세스(901)는 캡쳐된 데이터를 수신할 수 있다. 이것은 프로세스(801)에 의해 캡쳐되는 데이터일 수 있다.
블록(904)에서, 프로세스(901)는 캡쳐된 데이터에 필터 및/또는 향상 알고리즘을 적용할 수 있다. 필터 알고리즘은 전송 유저(또는 전송 유저가 상호 작용하고 있는 오브젝트 또는 수신 시스템으로 전송될 화이트보드 또는 프리젠테이션 자료와 같은 다른 지정된 영역)를 묘사하지 않는 캡쳐된 이미지 데이터의 부분을 제거할 수 있고, 배경 오디오를 제거할 수 있고, 효과(예를 들면, 전송 유저에 대한 치수 또는 채색을 변경하는 것, 캡쳐된 이미지에 가상 오브젝트를 추가하는 것, 또는 음향 효과를 추가하는 것과 같은 증강 현실 효과)를 추가할 수 있고, 등등일 수 있다. 향상은 안정화, 회전, 컬러, 및 음영 정정, 선명화, 초점 조정, 증폭, 볼륨 레벨링, 이퀄라이제이션, 등등과 같은 전통적인 비디오 및/또는 오디오 정정을 포함할 수 있다. 몇몇 구현예에서, 향상은 교차 스트림 향상을 또한 포함할 수 있는데, 이 경우, 하나의 캡쳐 디바이스로부터 결정되는 모션 벡터와 같은 데이터는 다른 캡쳐 디바이스로부터의 데이터를 향상시키기 위해 사용될 수 있다. 예를 들면, 깊이 및 컬러 카메라가 나란히 배치되는 경우, 캡쳐된 컬러 데이터 스트림으로부터 결정되는 모션 벡터는 깊이 데이터 스트림을 향상시키기 위해 사용될 수 있다(또는 그 반대도 가능함). 몇몇 구현예에서, 향상은 하나 이상의 전통적인 이미지를 3D 데이터로 변환하는 것을 포함할 수 있다. 다양한 구현예에서, 이것은 전통적인 이미지에 대한 깊이 데이터를 결정하도록 트레이닝되는 머신 러닝 모델을 적용하는 것을 포함할 수 있다. 몇몇 구현예에서, 이것은, 카메라 고유 속성 및 외부 속성 및/또는 중첩 영역을 캡쳐한 이미지 사이의 관계에 기초하여 깊이 데이터를 결정하기 위해, 캘리브레이션 데이터 및/또는 다수의 카메라로부터의 데이터를 사용하는 것을 또한 포함할 수 있다. 여전히 추가적인 실시형태에서, 향상은, 예컨대 묘사된 유저의 대안적인 뷰를 결정하고 추가하기 위해, 캡쳐된 데이터의 추가적인 분석을 포함할 수 있다. 예를 들면, 프로세스(901)는 추가적인 또는 대안적인 데이터 스트림으로서 포함할 전통적인 및/또는 깊이 데이터에 기초하여 유저의 "골격 뷰(skeleton view)"를 식별할 수 있다. 골격 뷰는 유저를 주요 부분(예를 들면, 손, 전완, 상완, 어깨, 몸통, 등등)으로 분할하고 유저의 이들 부분을 연결된 라인으로서 묘사한다 - 신체 윤곽이 없는 유저의 신체 포즈를 제공함.
블록(906)에서, 프로세스(901)는 캡쳐된 데이터에 태그를 적용할 수 있다. 몇몇 구현예에서, 이들 태그는 프로세스(701)에 의해 생성되는 캘리브레이션 데이터일 수 있는데, 여기서 각각의 데이터 스트림은 그 데이터 스트림을 캡쳐한 캡쳐 디바이스에 대해 생성되는 캘리브레이션 데이터를 사용하여 태그 지정된다. 몇몇 구현예에서, 캡쳐된 데이터의 다양한 부분 내에서 오브젝트 또는 사람들을 식별하는 것 및 그들 부분을 식별 정보(identification)를 사용하여 (예를 들면, 프레임 단위로 또는 프레임 내의 위치 단위로) 태그 지정하는 것, 캡쳐된 데이터의 조건(예를 들면, 임계치를 초과하는 움직임이 식별되는 장소, 프레임 내의 사람들에서의 변화, 등등)을 태그 지정하는 것, 오디오에서의 목소리를 식별하는 것 및 식별된 목소리를 사용하여 시간 세그먼트를 태그 지정하는 것, 등등과 같은 다른 또는 추가적인 태그 지정이 수행될 수 있다.
도 10은 3D 대화 파이프라인의 압축 스테이지에 대한 본 기술의 몇몇 구현예에서 사용되는 프로세스(1001)(예를 들면, 도 5의 블록(508)에 의해 수행되는 프로세스)를 예시하는 흐름도이다. 블록(1002)에서, 프로세스(1001)는 프로세스(901)에 의해 필터링, 향상, 및/또는 태그 지정되는 바와 같은 캡쳐된 데이터를 수신할 수 있다.
블록(1004)에서, 프로세스(1001)는, 캡쳐된 데이터에 다운샘플링을 적용할지의 여부를 대화 컨텍스트 인자가 나타내는지의 여부를 결정할 수 있다. 예를 들면, 캡쳐된 데이터는 수신 시스템의 디스플레이 성능과 매치하기 위해 또는 데이터 복잡도를 감소시키기 위해 다운샘플링될 수 있고, 그에 의해, 압축되는 데이터를 송신하는 데 필요한 대역폭을 감소시킬 수 이고 수신 디바이스가 데이터를 압축 해제하고 재구성하기 위한 컴퓨트 파워를 감소시킬 수 있다. 다양한 예에서, 이용 가능한 대역폭의 임계치, 전송기 또는 수신기 프로세싱 성능, 또는 수신기 디스플레이 성능 각각은 특정한 비트레이트, 프레임 레이트, 등등으로 매핑될 수 있다. 블록(1004)에서, 현재의 대화 컨텍스트 인자가 식별될 수 있고 매핑은 최대 데이터 특성을 선택하기 위해 사용될 수 있다. 블록(1002)에서 수신되는 데이터가 선택된 최대 데이터 특성보다 더 높은 특성을 갖는 경우, 그러면, 블록(1006)에서, 프로세스(1001)는 수신된 데이터를 최대 데이터 특성으로 다운샘플링할 수 있다. 몇몇 구현예에서, 캡쳐 디바이스가 수신 시스템과 매칭하는 특성을 갖는 데이터를 캡쳐하도록 동적으로 설정되었기 때문에, 수신된 데이터의 특성은 수신 시스템의 성능과 이미 매치할 것이다.
상기에서 논의되는 바와 같이, 다양한 구현예에서, 플로우차트 중 임의의 것으로부터 임의의 블록이 제거될 수 있거나 또는 재배열될 수 있지만, 블록(1004 및 1006)은, 블록(1004 및 1006)이 수행될 수도 있는 또는 수행되지 않을 수도 있는 특정한 구현예를 호출하기 위해 파선으로 예시되어 있다. 몇몇 구현예에서, 동적 다운샘플링이 없고, 따라서, 프로세스(1001)는 블록(1002)으로부터 블록(1008)으로 진행할 수 있다.
블록(1008)에서, 프로세스(1001)는 (존재하는 경우, 블록(1006)에서 다운샘플링되는 바와 같은) 수신된 데이터에 하나 이상의 압축 프로시져를 적용할 수 있다. 몇몇 구현예에서, 블록(1006)의 다운샘플링은 블록(1008)에서 수행되는 압축의 일부로서 수행될 수 있다. 다양한 구현예에서, 압축 프로시져는 손실성 또는 무손실성일 수 있다. 압축 프로시져는 수신된 데이터의 타입과 매치하도록 선택될 수 있다. 예를 들면, 수신된 데이터의 일부가 포인트 클라우드인 경우, 그러면, 포인트 클라우드에 대한 압축 프로시져(예를 들면, 포인트 클라우드에 대한 MPEG 코덱 또는 PCL)가 선택되어 수신된 데이터의 이 부분을 압축할 수 있다. 다양한 구현예에서, 각각의 캡쳐 디바이스로부터의 수신된 데이터는 개별적으로 압축될 수 있고 및/또는 모든 캡쳐된 데이터의 본문은 단일의 패키지로 압축될 수 있다. 몇몇 구현예에서, 수신된 데이터의 하나의 부분으로부터의 데이터는 다른 부분을 더욱 효과적으로 압축하기 위해 사용될 수 있다. 예를 들면, 깊이 카메라의 데이터 스트림으로부터의 모션 벡터는 깊이 카메라의 임계 위치 내에 있는 카메라로부터 촬상되는 컬러 비디오 데이터 스트림을 압축하기 위해 사용될 수 있다. 그 다음, 압축된 데이터는 수신 시스템 또는 중간 서버로 송신될 수 있다.
도 11은 3D 대화 파이프라인의 압축 해제 스테이지에 대한 본 기술의 몇몇 구현예에서 사용되는 프로세스(1101)(예를 들면, 도 5의 블록(510)에 의해 수행되는 프로세스)를 예시하는 흐름도이다. 블록(1102)에서, 프로세스(1101)는 네트워크를 통해 송신된, 프로세스(1001)에 의해 압축되는 데이터를 수신할 수 있다.
블록(1104)에서, 프로세스(1101)는, 수신된 데이터에 다운샘플링을 적용할지의 여부를 대화 컨텍스트 인자가 나타내는지의 여부를 결정할 수 있다. 예를 들면, 수신된 데이터는 디스플레이 성능 또는 수신 디바이스의 이용 가능한 컴퓨트 파워와 매치하도록 다운샘플링될 수 있다. 다양한 예에서, 수신기 프로세싱 성능 또는 디스플레이 성능의 임계치 각각은 특정한 비트레이트, 프레임 레이트, 등등으로 매핑될 수 있다. 블록(1104)에서, 현재의 대화 컨텍스트 인자가 식별될 수 있고 매핑은 이들 최대 데이터 특성을 선택하기 위해 사용될 수 있다. 블록(1102)에서 수신되는 데이터가 선택된 최대 데이터 특성보다 더 높은 특성을 갖는 경우, 그러면, 블록(1106)에서, 프로세스(1101)는 최대 데이터 특성과 매치하도록 수신된 데이터를 다운샘플링할 수 있다. 몇몇 구현예에서, 캡쳐 디바이스가 수신 시스템과 매칭하는 특성을 갖는 데이터를 캡쳐하도록 동적으로 설정되었거나 또는 압축 프로세스(1001)가 수신 시스템과 매치하도록 데이터를 이미 다운샘플링하였기 때문에, 수신된 데이터의 특성은 수신 시스템의 성능과 이미 매치할 것이다.
상기에서 논의되는 바와 같이, 다양한 구현예에서, 플로우차트 중 임의의 것으로부터 임의의 블록이 제거될 수 있거나 또는 재배열될 수 있지만, 블록(1104 및 1106)은, 블록(1104 및 1106)이 수행될 수도 있는 또는 수행되지 않을 수도 있는 특정한 구현예를 호출하기 위해 파선으로 예시되어 있다. 몇몇 구현예에서, 동적 다운샘플링이 없고, 따라서, 프로세스(1101)는 블록(1102)으로부터 블록(1108)으로 진행할 수 있다.
블록(1108)에서, 프로세스(1101)는 (존재하는 경우, 블록(1106)에서 다운샘플링되는 바와 같은) 수신된 데이터에 하나 이상의 압축 해제 프로시져를 적용할 수 있다. 몇몇 구현예에서, 블록(1106)의 다운샘플링은 블록(1108)에서 수행되는 압축 해제의 일부로서 수행될 수 있다. 다양한 구현예에서, 압축 해제 프로시져는 손실성 또는 무손실성일 수 있다. 압축 해제 프로시져는 수신된 데이터를 압축하기 위해 사용되는 압축의 타입과 매치하도록 선택될 수 있다.
도 12는 3D 대화 파이프라인의 재구성 스테이지에 대한 본 기술의 몇몇 구현예에서 사용되는 프로세스(1201)(예를 들면, 도 5의 블록(512)에 의해 수행되는 프로세스)를 예시하는 흐름도이다. 블록(1202)에서, 프로세스(1201)는 프로세스(1101)에 의해 압축 해제되는 데이터를 수신할 수 있다. 블록(1204)에서, 프로세스(1201)는, 이용 가능한 리소스에 기초하여 3D 재구성을 생성하기 위한 프로세스를 조정할지의 여부를 대화 컨텍스트 인자가 나타내는지의 여부를 결정할 수 있다. 몇몇 구현예에서, 재구성된 표현의 타입(예를 들면, 포인트 클라우드, 절두형 부호 거리 함수(truncated sign distance function; TSDF), 채워진 복셀, 메쉬, 라이트 필드, 등등)은 데이터 프로세싱 레벨 또는 요건 및/또는 디스플레이 특성과 연관될 수 있다. 예를 들면, TSDF 표현은 포인트 클라우드 레벨보다 더 높은 프로세싱 레벨을 할당받을 수 있다. 블록(1206)에서, 수신 시스템의 현재의 데이터 프로세싱 및/또는 디스플레이 성능은, 사용할 표현 타입을 선택하기 위해, 표현의 프로세싱 레벨 또는 요건 및/또는 디스플레이 특성에 매치될 수 있다. 프로세스(1201) 재구성이 수신 시스템 이외의 시스템 상에서 수행되는 몇몇 구현예에서(예를 들면, 도 6의 버전(602-610)에서), 표현은 재구성의 그 타입의 표현의 평균 사이즈에 따라 또한 특성 묘사될 수 있고 선택되는 재구성의 타입은 이용 가능한 대역폭에 기초하여 추가로 선택될 수 있다.
상기에서 논의되는 바와 같이, 다양한 구현예에서, 플로우차트 중 임의의 것으로부터 임의의 블록이 제거될 수 있거나 또는 재배열될 수 있지만, 블록(1204 및 1206)은, 블록(1204 및 1206)이 수행될 수도 있는 또는 수행되지 않을 수도 있는 특정한 구현예를 호출하기 위해 파선으로 예시되어 있다. 몇몇 구현예에서, 동적 재구성 타입 선택이 없고, 따라서, 프로세스(1201)는 블록(1202)으로부터 블록(1208)으로 진행할 수 있다.
블록(1208)에서, 프로세스(1201)는 압축 해제된 데이터로부터 3D 표현을, 디폴트 표현 포맷 또는 블록(1206)에서 선택되는 포맷 중 어느 하나로, 생성할 수 있다. 재구성 블록(1201)은, 다수의 소스로부터의 데이터를 결합하고 및/또는 캡쳐된 데이터를 3D 공간에서의 포지션 및 윤곽 정보로 변환하기 위해, 캘리브레이션 데이터를 사용하는 것에 의해 깊이 데이터의 3D 표현으로의 이 변환을 달성할 수 있다. 예를 들면, 유저를 묘사하는 깊이 이미지의 각각의 픽셀은 카메라의 고유 속성 및 외부 캘리브레이션 파라미터에 기초하여 변환을 적용하는 것에 의해 유저의 적어도 일부의 3D 표현으로 변환될 수 있다. 변환은 카메라 위치에서 취해지는 각각의 픽셀을 취하여 유저의 표면 상의 한 포인트를 나타내는 3D 공간에서의 대응하는 포인트를 결정할 수 있다. 몇몇 구현예에서, 재구성 스테이지는, 음영 또는 컬러 데이터의 일부를 3D 표현에 매핑하기 위해 캘리브레이션 데이터를 사용하여, 음영 또는 컬러 데이터를 3D 표현에 적용할 수 있다. 다양한 구현예에서, 3D 표현을 생성하는 것은, 예를 들면, Integrated 6DoF Video Camera and System Design(통합 6DoF 비디오 카메라 및 시스템 설계)(예를 들면, https://research.fb.com/publications/an-integrated-6dof-video-camera-and-system-design/ 및 https://research.fb.com/wp-content/uploads/2019/09/An-Integrated-6DoF-Video-Camera-and-System-Design.pdf에서 설명되는 시스템 참조); Immersive Light Field Video with a Layered Mesh Representation system(적층식 메쉬 표현 시스템을 사용한 몰입형 광 필드 비디오)(예를 들면, https://augmentedperception.github.io/deepviewvideo/ 및 https://storage.***apis.com/immersive-lf-video-siggraph2020/ImmersiveLightFieldVideoWithALayeredMeshRepresentation.pdf에서 설명되는 시스템 참조); Dynamic Fusion system(동적 융합 시스템)(예를 들면, https://grail.cs.washington.edu/projects/dynamicfusion/ 및 https://grail.cs.washington.edu/projects/dynamicfusion/papers/DynamicFusion.pdf에서 설명되는 시스템 참조); 또는 Fusion4D: 시스템(예를 들면, https://www.microsoft.com/en-us/research/wp-content/uploads/2016/11/a114-dou.pdf에서 설명되는 시스템 참조)을 사용하여 수행될 수 있다.
몇몇 경우에, 3D 표현의 일부 또는 모두는, 예컨대, 전송 유저의 캡쳐된 이미지 중 어느 것도 3D 표현의 일부를 묘사하지 않는 경우 또는 전송 유저를 묘사하는 이미지의 일부를 제공할 충분한 시간을 대역폭 또는 프로세싱 제한이 허용하지 않은 경우, 캡쳐된 데이터의 직접적인 변환이 아닐 수도 있다. 몇몇 그러한 경우에, 3D 표현의 일부 또는 모두는 전송 유저의 아바타 표현, 누락된 부분(들)의 머신 러닝 추정, 또는 전송 유저의 누락된 부분(들)의 이전에 캡쳐된 버전을 사용하여 근사될 수 있다. 다른 그러한 경우에, 재구성 스테이지는 스킵될 수 있어서, 전통적인 2D 비디오 통화 또는 음성 통화로 대신 되돌아갈 수 있다.
도 13은 3D 대화 파이프라인의 렌더 스테이지에 대한 본 기술의 몇몇 구현예에서 사용되는 프로세스(1301)(예를 들면, 도 5의 블록(514)에 의해 수행되는 프로세스)를 예시하는 흐름도이다. 블록(1302)에서, 프로세스(1301)는 프로세스(1201)로부터의 3D 표현 및 수신 유저의 현재의 뷰포인트의 지시를 수신할 수 있다. 블록(1304)에서, 프로세스(1301)는 수신 시스템에 특정한 렌더링 설정을 동적으로 선택하기 위해 프로세스(1301)가 수행되고 있는지의 여부를 결정할 수 있다. 예를 들면, 렌더 스테이지가 수신 시스템 이외의 다른 시스템 상에서 수행되는 경우(예를 들면, 도 6의 버전(602, 604, 및 608)), 렌더 스테이지는 블록(1306)에서 각각의 수신 시스템의 디스플레이 성능(예를 들면, 해상도, 프레임 레이트, 단일의 디스플레이 또는 스테레오 디스플레이, 등등)을 수신할 수 있고, 블록(1308)에서, 하나 이상의 이미지를 그들 성능으로 렌더링하기 위해 그들 명세를 사용할 수 있다. 예를 들면, 이미지는 수신 시스템과 동일한 해상도로 렌더링될 수 있거나 또는 이미지는 수신 유저의 각각의 눈 뷰포인트(eye viewpoint)에 대해 렌더링될 수 있다. 상기에서 논의되는 바와 같이, 다양한 구현예에서, 플로우차트 중 임의의 것으로부터 임의의 블록이 제거될 수 있거나 또는 재배열될 수 있지만, 블록(1304 및 1306)은, 블록(1304 및 1306)이 수행될 수도 있는 또는 수행되지 않을 수도 있는 특정한 구현예를 호출하기 위해 파선으로 예시되어 있다. 몇몇 구현예에서, 동적인 수신기 고유의 렌더링이 없고, 따라서, 프로세스(1301)는 블록(1302)으로부터 블록(1308)으로 진행할 수 있다.
블록(1308)에서, 프로세스(1301)는 디폴트 렌더 파라미터(일반 파라미터 또는 특정한 수신 시스템에 대해 이전에 구성됨) 또는 블록(1306)에서 획득되는 수신기 명세에 대해 선택되는 파라미터를 사용하여 수신 시스템에 의해 디스플레이를 위한 하나 이상의 이미지를 렌더링할 수 있다. 이들 이미지를 생성하는 것은, 가상 카메라(들)의 뷰포인트로부터 3D 표현으로부터 하나의 또는 두 개의 2D 이미지를 생성하기 위해, 수신 유저의 뷰포인트에서, 3D 표현과 관련하여, 가상 카메라를(또는 수신 유저의 각각의 눈의 뷰포인트에서 두 개의 가상 카메라를) 배치하는 것을 포함할 수 있다. 재구성 스테이지가 3D 표현에 컬러 데이터를 추가하는 것을 포함하지 않은 경우, 렌더 스테이지는, 전통적인 카메라에 의해 캡쳐되고 캘리브레이션 데이터에 따라 변환되는 컬러 데이터를 렌더링된 이미지에 추가하는 것을 더 포함할 수 있다. 몇몇 구현예에서, 이것은 수신 유저의 뷰포인트에 가장 가까운 카메라로부터의 컬러 데이터를 사용하는 것을 포함할 수 있다. 몇몇 구현예에서, 렌더링은 추가적인 수정, 예컨대 전송 유저의 디스플레이로부터 인공 현실 디바이스를 제거하는 것(예를 들면, 도 15 참조), 추가적인 피드(예를 들면, 이미지에 대한 프리젠테이션 또는 슬라이드 덱)를 추가하는 것, 스티커, 효과 또는 필터를 추가하는 것, 등등을 수행하는 것을 포함할 수 있다.
도 14는 3D 대화 파이프라인의 디스플레이 스테이지에 대한 본 기술의 몇몇 구현예에서 사용되는 프로세스(1401)(예를 들면, 도 5의 블록(516)에 의해 수행되는 프로세스)를 예시하는 흐름도이다. 블록(1402)에서, 프로세스(1401)는 프로세스(1401)에 의해 렌더링되는 2D 이미지(또는 수신 시스템이 진정한 3D 디스플레이를 갖는 경우 3D 표현)를 수신할 수 있다. 블록(1404)에서, 프로세스(1401)는 이미지를 디스플레이하기 위해 디스플레이 시스템(예를 들면, 스크린, 다양한 타입의 프로젝터, 예컨대 LED, 마이크로LED, LASER, 등등)과 인터페이싱할 수 있다. 이미지를 출력하는 것은 캡쳐 스테이지 동안 추가되는 시간 태그에 따라 오디오를 출력하는 것과 동기화될 수 있다.
도 15a 및 도 15b는 인공 현실 환경에서의 3D 대화의 예(1500 및 1550)를 예시하는 개념도이다. 예(1500)는 3D 대화의 제1 측을 예시하는데, 여기서 전송/수신 디바이스(1504)는 캡쳐 디바이스(1506)(컬러 카메라, 깊이 카메라, 및 마이크)를 포함한다. 캡쳐 디바이스(1506)의 카메라 각각은, 카메라의 제조 동안 결정되는 카메라의 고유 파라미터(카메라의 광학적, 기하학적, 및 디지털 특성) 및 외부 파라미터(3D 환경에서의 위치 및 방위)를 정의하는 캘리브레이션 데이터와 연관된다. 캡쳐 디바이스(1506)는 컬러 이미지, 깊이 이미지, 및 유저(1502)의 오디오 피드를 캡쳐하는데, 이들은 캡쳐 시간 및 캡쳐된 데이터의 각각의 부분을 어떤 디바이스가 캡쳐하였는지를 사용하여 태그 지정된다. 그 다음, 디바이스(1504)는, 이미지로부터 유저를 묘사하지 않는 부분을 제거하기 위해, 오디오 스트림으로부터 배경 노이즈를 제거하기 위해, 필터링 및 태그 지정을 수행하고, 디바이스 태그 및 캘리브레이션 데이터와 디바이스 식별자 사이의 연관성에 기초하여, 데이터의 각각의 부분을 캡쳐한 디바이스에 대한 캘리브레이션 데이터를 대응하는 캡쳐된 데이터에 태그 지정한다. 그 다음, 디바이스(1504)는 필터링되고 태그 지정된 데이터 스트림 각각을 압축하여 디바이스(1554)로 전송한다(도 15b).
한편, 디바이스(1504)는 디바이스(1554)로부터 압축된 데이터 스트림을 또한 수신하고 있다(도 15b). 디바이스(1504)는 이들 데이터 스트림을 컬러 이미지, 깊이 데이터, 및 오디오 데이터로 (연관된 캘리브레이션 데이터와 함께) 압축 해제한다. 다음으로, 디바이스(1504)는 깊이 데이터 및 캘리브레이션 데이터를 3D 표현(이 경우에서는 포인트 클라우드)으로 재구성한다. 디바이스(1504)는, 인공 현실 디바이스(1508)에 의해 검출되는 바와 같은, 유저(1502)의 각각의 눈의 뷰포인트의 지시를 취하여, 유저(1502)의 뷰포인트로부터 유저(1552)(도 15b)의 두 개의 2D 이미지를 생성하도록 포인트 클라우드와 관련하여 가상 카메라를 배치한다. 디바이스(1504)는 캘리브레이션 데이터에 기초하여 이들 이미지에 컬러 데이터를 또한 추가하고 데이터 피드와 연관되는 시간 태그에 기초하여 그들을 오디오 데이터와 동기화한다. 예(1500 및 1550)에서, 렌더링은, 유저(1502 및 1552)의 표현으로부터, 인공 현실 디바이스(1508 및 1558)를 제거하기 위해 머신 러닝 오브젝트 인식을 사용하는 것 및 유저의 표현의 누락된 부분을 채우기 위해 예측 머신 러닝을 추가로 사용하여, 유저가 마치 인공 현실 디바이스를 착용하고 있지 않은 것처럼 보이는 것을 허용하는 것을 더 포함한다. 디바이스(1504)는 최종적으로 이들 이미지 및 동기화된 오디오를 인공 현실 디바이스(1508)에 제공하고, 따라서, 인공 현실 디바이스(1508)는 유저(1552)의 표현(1510)을 투영할 수 있다(도 15b). 예(1550)(도 15b)에서, 유저(1552)가 캡쳐 디바이스(1556)를 자신의 몸 가까이에서 유지하고 있어서, 유저(1552)의 머리 및 상부 몸통의 캡쳐만을 허용한다. 따라서, 생성된 3D 표현, 후속하는 2D 이미지, 및 궁극적으로 투영(1510)은 유저(1552)의 상반신만을 나타낸다.
예(1550)는 예(1500)와 유사한 프로세스를 수행하는 3D 대화의 제2 측을 예시한다. 특히, 전송/수신 디바이스(1554)는 핸드헬드 캡쳐 디바이스(1556)(컬러 카메라, 깊이 카메라, 및 마이크)를 포함한다. 캡쳐 디바이스(1556)의 카메라 각각은, 카메라의 제조 동안 결정되는 카메라의 고유 파라미터(카메라의 광학적, 기하학적, 및 디지털 특성) 및 외부 파라미터(3D 환경에서의 위치 및 방위)를 정의하는 캘리브레이션 데이터와 연관된다. 캡쳐 디바이스(1556)는 컬러 이미지, 깊이 이미지, 및 유저(1552)의 오디오 피드를 캡쳐하는데, 이들은 캡쳐 시간 및 캡쳐된 데이터의 각각의 부분을 어떤 디바이스가 캡쳐하였는지를 사용하여 태그 지정된다. 그 다음, 디바이스(1554)는, 이미지로부터 유저(1552)를 묘사하지 않는 부분을 제거하기 위해, 오디오 스트림으로부터 배경 노이즈를 제거하기 위해, 필터링 및 태그 지정을 수행하고, 디바이스 태그 및 캘리브레이션 데이터와 디바이스 식별자 사이의 연관성에 기초하여, 데이터의 각각의 부분을 캡쳐한 디바이스에 대한 캘리브레이션 데이터를 대응하는 캡쳐된 데이터에 태그 지정한다. 그 다음, 디바이스(1554)는 필터링되고 태그 지정된 데이터 스트림 각각을 압축하여 디바이스(1504)로 전송한다(도 15a).
한편, 디바이스(1554)는 디바이스(1504)로부터 압축된 데이터 스트림을 또한 수신하고 있다(도 15a). 디바이스(1554)는 이들 데이터 스트림을 컬러 이미지, 깊이 데이터, 및 오디오 데이터로 (연관된 캘리브레이션 데이터와 함께) 압축 해제한다. 다음으로, 디바이스(1554)는 깊이 데이터 및 캘리브레이션 데이터를 3D 표현(이 경우에서는 3D 메쉬)으로 재구성한다. 디바이스(1554)는, 인공 현실 디바이스(1558)에 의해 검출되는 바와 같은, 유저(1552)의 뷰포인트의 지시를 취하여, 유저(1552)의 뷰포인트로부터 유저(1502)(도 15a)의 2D 이미지를 생성하도록 3D 메쉬와 관련하여 가상 카메라를 배치한다. 디바이스(1554)는 캘리브레이션 데이터에 기초하여 이 이미지에 컬러 데이터를 또한 추가하고 데이터 피드와 연관되는 시간 태그에 기초하여 이미지를 오디오 데이터와 동기화한다. 디바이스(1554)는, 유저(1502)의 표현으로부터, 인공 현실 디바이스(1508)를 제거하여, 유저(1502)가 마치 인공 현실 디바이스(1508)를 착용하지 않은 것처럼 보이는 것을 허용한다. 디바이스(1552)는 최종적으로 이들 이미지 및 동기화된 오디오를 인공 현실 디바이스(1558)에 제공하고, 따라서, 인공 현실 디바이스(1558)는 유저(1502)의 표현(1560)을 투영할 수 있다. 예(1500)(도 15a)에서, 유저(1502)는 그녀의 전체 몸의 이미지를 캡쳐하기 위해 그녀의 몸으로부터 충분히 멀리 떨어진 표면 상에 캡쳐 디바이스(1506)를 배치하였다. 따라서, 생성된 3D 표현, 후속하는 2D 이미지, 및 궁극적으로 투영(1560)은 유저(1502)의 완전한 표현을 나타낸다. 게다가, 예(1550)에서, 유저(1552)는 3D 대화 동안 유저(1560)의 투영 주위를 움직였다. 따라서, 유저(1552)의 뷰포인트는 투영(1560)의 측면을 향하고 있다. 따라서, 렌더링 동안, 가상 카메라는 3D 표현의 측면에 배치되어, 유저(1502)의 측면으로부터 유래하는 투영(1560)을 나타내는 이미지를 생성한다.
본 명세서에서 "구현예"(예를 들면, "몇몇 구현예", "다양한 구현예", "하나의 구현예", "한 구현예", 등등)에 대한 참조는, 구현예와 관련하여 설명되는 특정한 피쳐, 구조, 또는 특성이 본 개시의 적어도 하나의 구현예에 포함된다는 것을 의미한다. 본 명세서의 다양한 곳에서의 이들 어구의 출현은 반드시 모두 동일한 구현예를 참조하는 것도 아니며, 또한, 별개의 또는 대안적인 구현예가 다른 구현예를 상호 배제하는 것도 아니다. 또한, 몇몇 구현예에 의해 나타내어질 수도 있고 다른 구현예에 의해서는 나타내어지지 않을 수도 있는 다양한 피쳐가 설명된다. 마찬가지로, 몇몇 구현예에 대한 요건일 수도 있지만 그러나 다른 구현예에 대한 요건이 아닐 수도 있는 다양한 요건이 설명된다.
본원에서 사용될 때, 임계치를 초과한다는 것은, 비교 하에 있는 아이템에 대한 값이 명시된 다른 값을 초과한다는 것, 비교 하에 있는 아이템이 가장 큰 값을 갖는 소정의 명시된 수의 아이템 사이에 있다는 것, 또는 비교 하에 있는 아이템이 명시된 최상위 백분율 값 내의 값을 갖는다는 것을 의미한다. 본원에서 사용될 때, 임계치 미만이다는 것은, 비교 하에 있는 아이템에 대한 값이 명시된 다른 값 미만이다는 것, 비교 하에 있는 아이템이 가장 작은 값을 갖는 소정의 명시된 수의 아이템 사이에 있다는 것, 또는 비교 하에 있는 아이템이 명시된 최하위 백분율 값 내의 값을 갖는다는 것을 의미한다. 본원에서 사용될 때, 임계치 내에 있다는 것은, 비교 하에 있는 아이템에 대한 값이 두 개의 명시된 다른 값 사이에 있다는 것, 비교 하에 있는 아이템이 중간의 명시된 수의 아이템 사이에 있다는 것, 또는 비교 하에 있는 아이템이 중간의 명시된 백분율 범위 내의 값을 갖는다는 것을 의미한다. 상대적 용어, 예컨대 높은 또는 중요하지 않은, 달리 정의되지 않는 경우, 한 값을 할당하고 그 값이 확립된 임계치에 비교되는 방법을 결정하는 것으로 이해될 수 있다. 예를 들면, 어구 "빠른 연결을 선택하는 것"은, 임계치를 초과하는 자신의 연결 속도에 대응하여 할당되는 값을 갖는 연결을 선택하는 것을 의미하도록 이해될 수 있다.
본원에서 사용될 때, 단어 "또는"은 아이템 세트의 임의의 가능한 순열(permutation)을 가리킨다. 예를 들면, 어구 "A, B, 또는 C"는 A, B, C 중 적어도 하나, 또는 이들의 임의의 조합, 예컨대 다음의 것 중 임의의 것을 가리킨다: A; B; C; A 및 B; A 및 C; B 및 C; A, B, 및 C; 또는 A 및 A; B, B, 및 C; A, A, B, C, 및 C; 등등과 같은 임의의 아이템의 다수의 것.
주제가 구조적 피쳐 및/또는 방법론적 액트에 고유한 언어로 설명되었지만, 첨부된 청구범위에서 정의되는 주제는 반드시 상기에서 설명되는 특정한 피쳐 또는 액트로 제한되는 것은 아니다는 것이 이해되어야 한다. 예시의 목적을 위해 특정한 실시형태 및 구현예가 본원에서 설명되었지만, 그러나, 실시형태 및 구현예의 범위로부터 벗어나지 않으면서 다양한 수정이 이루어질 수 있다. 상기에서 설명되는 특정한 피쳐 및 액트는 후속하는 청구범위를 구현하는 예시적인 형태로서 개시된다. 따라서, 실시형태 및 구현예는 첨부된 청구범위에 의한 바를 제외하면 제한되지는 않는다.
상기에서 언급되는 임의의 특허, 특허 출원, 및 다른 참고 문헌은 참조에 의해 본원에 통합된다. 상기에서 설명되는 다양한 참고 문헌의 시스템, 기능, 및 개념을 활용하여 여전히 또 다른 구현예를 제공하기 위해, 필요로 되는 경우, 양태는 수정될 수 있다. 참조에 의해 통합되는 문서의 진술 또는 주제가 본 출원의 진술 또는 주제와 충돌하는 경우, 그러면, 본 출원이 제어해야 한다.

Claims (15)

  1. 3D 대화를 제공하기 위한 방법으로서,
    인공 현실 시스템(artificial reality system)의 하나 이상의 캡쳐 디바이스로부터, 컬러 이미지, 깊이 이미지, 및 오디오를 포함하는 캡쳐 데이터를 획득하는 단계;
    캘리브레이션 데이터 - 상기 캘리브레이션 데이터는 상기 하나 이상의 캡쳐 디바이스 중 적어도 하나의 캡쳐 디바이스에 대한 적어도 포지션 정보를 명시함 - 를 상기 캡쳐 데이터의 적어도 일부와 연관시키는 단계;
    상기 캡쳐 데이터를 상기 캡쳐 데이터의 제1 버전으로 압축하는 단계; 및
    상기 캡쳐 데이터의 상기 제1 버전을 수신 인공 현실 시스템(receiving artificial reality system)으로 송신하는 단계를 포함하되, 상기 캡쳐 데이터의 상기 압축된 제1 버전을 전송하는 것은 상기 수신 인공 현실 시스템으로 하여금:
    캡쳐 데이터의 수신된 제1 버전을 컬러 데이터, 깊이 데이터, 및 오디오 데이터를 포함하는 상기 캡쳐 데이터의 제2 버전으로 압축 해제하게 하고;
    상기 깊이 데이터에 적어도 기초하여 3D 표현을 생성하기 위해 상기 캡쳐 데이터의 상기 제2 버전을 사용하게 하고;
    상기 수신 인공 현실 시스템의 수신 유저에 대해 결정되는 하나 이상의 뷰포인트(viewpoint)에서 상기 3D 표현으로부터의 하나 이상의 2D 이미지 - 상기 하나 이상의 2D 이미지는 상기 컬러 데이터에 기초한 컬러를 더 포함함 - 를 렌더링하게 하고; 그리고
    상기 하나 이상의 2D 이미지의 디스플레이와 동기화되는 상기 오디오 데이터의 출력을 야기하게 하는, 3D 대화를 제공하기 위한 방법.
  2. 제1항에 있어서,
    상기 하나 이상의 2D 이미지의 상기 출력은, 상기 하나 이상의 2D 이미지에 기초하여, 상기 수신 인공 현실 시스템의 유저의 적어도 한쪽 눈에 광을 투영하는 웨어러블 투영 시스템을 포함하는, 3D 대화를 제공하기 위한 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 하나 이상의 캡쳐 디바이스는:
    상기 선택된 하나 이상의 캡쳐 디바이스의 뷰포인트와 상기 수신 인공 현실 시스템의 상기 수신 유저에 대해 결정되는 상기 하나 이상의 뷰포인트 사이의 결정된 관계;
    상기 인공 현실 시스템의 및/또는 상기 수신 인공 현실 시스템의 결정된 컴퓨트 성능(compute capability);
    대역폭의 결정된 이용 가능한 양;
    결정된 배터리 레벨;
    상기 수신 인공 현실 시스템의 결정된 디스플레이 성능; 또는
    이들의 임의의 조합
    중 하나 이상에 기초하여 다수의 캡쳐 디바이스 중에서부터 선택되는, 3D 대화를 제공하기 위한 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 캡쳐 데이터의 일부를 캡쳐한 상기 디바이스에 따라 상기 캡쳐 데이터의 그 일부에 캡쳐 디바이스 식별자를 할당하는 단계를 더 포함하되;
    상기 캘리브레이션 데이터는 상기 캘리브레이션 데이터가 생성되었던 카메라 식별자와 연관되고;
    상기 캘리브레이션 데이터와 상기 캡쳐 데이터의 상기 적어도 일부 사이의 연관성은 상기 캡쳐 데이터의 상기 적어도 일부에 할당되는 상기 캡쳐 디바이스 식별자와 상기 카메라 식별자 사이의 매치에 기초하는, 3D 대화를 제공하기 위한 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 캡쳐 데이터의 적어도 일부의 상기 압축은 상기 캡쳐 데이터의 상기 적어도 일부의 타입을 결정하는 것 및 상기 캡쳐 데이터의 상기 적어도 일부의 상기 결정된 타입에 고유한 압축 알고리즘을 선택하는 것을 포함하고; 그리고/또는
    상기 캡쳐 데이터는 상기 캡쳐 데이터의 상기 제2 버전과 동일한, 3D 대화를 제공하기 위한 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 캡쳐 데이터의 일부를:
    상기 캡쳐 데이터의 상기 일부의 배경 영역과 전송 유저(sending user)의 묘사 사이를 구별하는 것; 및
    상기 구별에 기초하여, 상기 캡쳐 데이터로부터 상기 배경 영역의 하나 이상의 묘사를 제거하는 것
    에 의해 필터링하는 단계를 더 포함하는, 3D 대화를 제공하기 위한 방법.
  7. 컴퓨팅 시스템에 의해 실행될 때, 상기 컴퓨팅 시스템으로 하여금, 3D 대화를 제공하기 위한 동작을 수행하게 하는 명령어들을 저장하는 컴퓨터 판독 가능 저장 매체로서,
    상기 동작은:
    수신 3D 시스템에서, 캡쳐 데이터의 제1 압축된 버전 - 상기 캡쳐 데이터의 상기 제1 압축된 버전은 적어도 A) 캘리브레이션 데이터 및 제1 타이밍 정보와 연관되는 깊이 정보 및 B) 제2 타이밍 정보와 연관되는 오디오 정보를 포함하고, 상기 캘리브레이션 데이터는 적어도 상기 깊이 정보에 대한 포지션 정보를 명시함 - 을 수신하는 것;
    상기 캡쳐 데이터의 상기 수신된 제1 압축된 버전을 깊이 데이터 및 오디오 데이터를 포함하는 상기 캡쳐 데이터의 제2 버전으로 압축 해제하는 것;
    상기 깊이 데이터 및 상기 캘리브레이션 데이터에 기초하여 3D 표현 - 하나 이상의 2D 이미지는 하나 이상의 결정된 뷰포인트에서 상기 3D 표현으로부터 렌더링됨 - 을 생성하는 것; 및
    상기 수신 3D 시스템에 의해, 상기 제1 타이밍 정보 및 상기 제2 타이밍 정보에 기초하여 동기화되는, 상기 오디오 데이터의 출력 및 상기 하나 이상의 2D 이미지의 출력을 야기하는 것을 포함하는, 컴퓨터 판독 가능 저장 매체.
  8. 제7항에 있어서,
    상기 캡쳐 데이터의 상기 제1 압축된 버전은 이동 전화 디바이스에 의해 송신되었고 상기 수신 3D 시스템은 상기 2D 이미지의 상기 출력을 수행하고, 상기 수신 3D 시스템은,
    적어도 하나의 양안 디스플레이(binocular display);
    적어도 하나의 라이트필드 디스플레이(lightfield display);
    적어도 하나의 홀로그래픽 디스플레이;
    적어도 하나의 파면 디스플레이(wave front display);
    적어도 하나의 3D 스테레오 디스플레이; 또는
    이들의 임의의 조합
    중 하나 이상을 갖는 인공 현실 디바이스인, 명령어들을 저장하는 컴퓨터 판독 가능 저장 매체.
  9. 제7항 또는 제8항에 있어서,
    상기 동작은:
    대화 컨텍스트 인자 - 상기 대화 컨텍스트 인자는,
    상기 수신 3D 시스템의 결정된 컴퓨트 성능;
    결정된 배터리 레벨;
    상기 수신 3D 시스템의 결정된 디스플레이 성능; 또는
    이들의 임의의 조합:
    중 하나 이상을 포함함 - 를 식별하는 것; 및
    상기 대화 컨텍스트의 하나 이상의 인자를 3D 표현 타입의 계층 구조의 3D 표현 타입에 매칭시키는 것을 더 포함하되;
    상기 3D 표현을 생성하는 것은 상기 매치된 3D 표현 타입의 3D 표현을 생성하는 것을 포함하는, 명령어들을 저장하는 컴퓨터 판독 가능 저장 매체.
  10. 제7항 내지 제9항 중 어느 한 항에 있어서,
    캡쳐 데이터의 상기 제1 압축된 버전은 상기 캡쳐 데이터를 캡쳐한 하나 이상의 캡쳐 디바이스의 고유 파라미터(intrinsic parameter) 및 외부 파라미터(extrinsic parameter)를 명시하는 캘리브레이션 데이터와 연관되고;
    상기 3D 표현을 생성하는 것은 포인트 클라우드, 부호가 있는 거리 함수, 채워진 복셀(populated voxel), 메쉬, 라이트 필드, 또는 이들의 임의의 조합 중 하나 이상을 생성하기 위해 상기 고유 파라미터 및 외부 파라미터에 기초하여 상기 깊이 데이터에 하나 이상의 변환을 적용하는 것을 포함하고; 그리고/또는
    상기 하나 이상의 결정된 뷰포인트는, 상기 수신 3D 시스템의 머리 추적 시스템 및/또는 눈 추적 시스템에 기초하여 결정되는, 상기 수신 3D 시스템의 유저의 각각의 눈의 뷰포인트인, 명령어들을 저장하는 컴퓨터 판독 가능 저장 매체.
  11. 3D 대화를 제공하기 위한 전송 컴퓨팅 시스템으로서,
    하나 이상의 캡쳐 디바이스;
    하나 이상의 프로세서; 및
    상기 하나 이상의 프로세서에 의해 실행될 때, 동작을 수행하는 명령어들을 저장하는 하나 이상의 메모리를 포함하되,
    상기 동작은:
    상기 하나 이상의 캡쳐 디바이스로부터, 컬러 정보, 깊이 정보, 및 오디오 정보를 포함하는 캡쳐 데이터를 획득하는 것;
    상기 캡쳐 데이터를 상기 캡쳐 데이터의 제1 버전으로 압축하는 것; 및
    재구성 시스템에 상기 캡쳐 데이터의 상기 제1 버전을 제공하는 것을 포함하고,
    상기 재구성 시스템은:
    상기 캡쳐 데이터의 상기 제1 버전을 수신하고;
    상기 캡쳐 데이터의 상기 수신된 제1 버전을 깊이 데이터, 컬러 데이터, 및 오디오 데이터를 포함하는 상기 캡쳐 데이터의 제2 버전으로 압축 해제하고;
    상기 깊이 데이터에 기초하여 3D 표현을 생성하며;
    하나 이상의 2D 이미지는 하나 이상의 결정된 수신 유저 뷰포인트에서 상기 3D 표현으로부터 렌더링되되, 상기 하나 이상의 2D 이미지는 상기 컬러 데이터에 또한 기초하고;
    상기 오디오 데이터의 출력 및 상기 렌더링된 하나 이상의 2D 이미지의 디스플레이는 동기화되는, 3D 대화를 제공하기 위한 전송 컴퓨팅 시스템.
  12. 제11항에 있어서,
    상기 하나 이상의 캡쳐 디바이스는 적어도 컬러 카메라, 깊이 카메라, 및 마이크를 포함하고;
    상기 깊이 정보는 하나 이상의 포인트 클라우드를 포함하고; 그리고/또는
    상기 캡쳐 데이터를 상기 캡쳐 데이터의 상기 제1 버전으로 압축하는 것은 비디오 코덱을 적어도 상기 컬러 정보에 적용하는 것 및 포인트 클라우드 압축 알고리즘을 상기 하나 이상의 포인트 클라우드에 적용하는 것을 포함하는, 3D 대화를 제공하기 위한 전송 컴퓨팅 시스템.
  13. 제11항 또는 제12항에 있어서,
    상기 동작은:
    상기 하나 이상의 캡쳐 디바이스 중 특정한 캡쳐 디바이스와 연관되는 캘리브레이션 데이터 - 특정한 캡쳐 디바이스와 연관되는 상기 캘리브레이션 데이터는 그 캡쳐 디바이스의 고유 파라미터 및 외부 파라미터를 명시함 - 를 수신하는 것; 및
    상기 캡쳐 데이터의 연관된 부분을 캡쳐한 상기 캡쳐 디바이스에 대해 생성된 상기 캘리브레이션 데이터의 일부의 대응성에 기초하여 상기 캘리브레이션 데이터의 일부를 상기 캡쳐 데이터의 일부와 연관시키는 것을 더 포함하되;
    상기 3D 표현을 생성하는 것은 상기 고유 파라미터 및/또는 외부 파라미터에 기초하여 상기 깊이 데이터에 하나 이상의 변환을 적용하는 것을 포함하는, 3D 대화를 제공하기 위한 전송 컴퓨팅 시스템.
  14. 제11항 내지 제13항 중 어느 한 항에 있어서,
    상기 재구성 시스템은 상기 오디오 데이터의 상기 렌더링 및 상기 동기화된 출력 및 상기 하나 이상의 2D 이미지의 디스플레이를 수행하는 수신 인공 현실 시스템의 일부이고;
    상기 재구성 시스템은 상기 오디오 데이터의 상기 렌더링을 수행하며 상기 오디오 데이터의 상기 동기화된 출력 및 상기 하나 이상의 2D 이미지의 디스플레이를 야기하는 수신 인공 현실 시스템에 상기 3D 표현의 한 버전을 송신하고; 그리고/또는
    상기 렌더링은 상기 재구성 시스템에 의해 수행되고 상기 재구성 시스템은 또한 상기 하나 이상의 2D 이미지를, 상기 오디오 데이터의 상기 동기화된 출력 및 상기 하나 이상의 2D 이미지의 디스플레이를 야기하는 수신 인공 현실 시스템으로 송신하는, 3D 대화를 제공하기 위한 전송 컴퓨팅 시스템.
  15. 제11항 내지 제14항 중 어느 한 항에 있어서,
    상기 시스템은 상기 3D 표현의 상기 생성을 수행하고 그리고/또는 상기 3D 표현으로부터 상기 하나 이상의 2D 이미지의 상기 렌더링은:
    상기 캡쳐 데이터에서의, 상기 하나 이상의 캡쳐 디바이스 중 상이한 캡쳐 디바이스로부터의 데이터 스트림의 수;
    상기 전송 컴퓨팅 시스템, 상기 재구성 시스템, 및/또는 수신 컴퓨팅 시스템의 결정된 컴퓨트 성능;
    대역폭의 결정된 이용 가능한 양;
    수신 컴퓨팅 시스템의 결정된 디스플레이 성능; 또는
    이들의 임의의 조합
    중 하나 이상을 포함하는 대화 컨텍스트에 기초하는, 3D 대화를 제공하기 위한 전송 컴퓨팅 시스템.
KR1020237005715A 2020-07-21 2021-06-24 인공 현실 환경에서의 3d 대화 KR20230042061A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/935,093 US11302063B2 (en) 2020-07-21 2020-07-21 3D conversations in an artificial reality environment
US16/935,093 2020-07-21
PCT/US2021/038992 WO2022020058A1 (en) 2020-07-21 2021-06-24 3d conversations in an artificial reality environment

Publications (1)

Publication Number Publication Date
KR20230042061A true KR20230042061A (ko) 2023-03-27

Family

ID=77022234

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237005715A KR20230042061A (ko) 2020-07-21 2021-06-24 인공 현실 환경에서의 3d 대화

Country Status (5)

Country Link
US (4) US11302063B2 (ko)
EP (1) EP4186228A1 (ko)
KR (1) KR20230042061A (ko)
CN (1) CN116325717A (ko)
WO (1) WO2022020058A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11429835B1 (en) * 2021-02-12 2022-08-30 Microsoft Technology Licensing, Llc Holodouble: systems and methods for low-bandwidth and high quality remote visual communication
CN115243053B (zh) * 2021-04-22 2024-04-16 腾讯科技(深圳)有限公司 点云编解码方法及相关设备
US11734801B2 (en) * 2021-05-28 2023-08-22 Microsoft Technology Licensing, Llc Distributed depth data processing
US11847793B2 (en) * 2021-06-18 2023-12-19 Qualcomm Incorporated Collaborative tracking

Family Cites Families (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030037109A1 (en) * 2000-08-11 2003-02-20 Newman Harvey B. Virtual room videoconferencing system
US20020158873A1 (en) 2001-01-26 2002-10-31 Todd Williamson Real-time virtual viewpoint in simulated reality environment
US8208007B2 (en) 2004-04-21 2012-06-26 Telepresence Technologies, Llc 3-D displays and telepresence systems and methods therefore
US8819591B2 (en) 2009-10-30 2014-08-26 Accuray Incorporated Treatment planning in a virtual environment
US8949717B2 (en) * 2010-10-18 2015-02-03 Yehonatan Rafael Maor Method of controlling avatars
US9244588B2 (en) * 2013-03-15 2016-01-26 Disney Enterprises, Inc. Facilitating group activities in a virtual environment
US9303982B1 (en) 2013-05-08 2016-04-05 Amazon Technologies, Inc. Determining object depth information using image data
US9524588B2 (en) * 2014-01-24 2016-12-20 Avaya Inc. Enhanced communication between remote participants using augmented and virtual reality
KR20150113751A (ko) 2014-03-31 2015-10-08 (주)트라이큐빅스 휴대용 카메라를 이용한 3차원 얼굴 모델 획득 방법 및 장치
JP6244059B2 (ja) 2014-04-11 2017-12-06 ペキン センスタイム テクノロジー ディベロップメント カンパニー リミテッド 基準画像に基づく顔画像検証方法、及び顔画像検証システム
US9430038B2 (en) 2014-05-01 2016-08-30 Microsoft Technology Licensing, Llc World-locked display quality feedback
US20160210780A1 (en) 2015-01-20 2016-07-21 Jonathan Paulovich Applying real world scale to virtual content
EP3098752A1 (en) 2015-05-29 2016-11-30 Thomson Licensing Method and device for generating an image representative of a cluster of images
US10268491B2 (en) * 2015-09-04 2019-04-23 Vishal Vadodaria Intelli-voyage travel
US10848743B2 (en) 2016-06-10 2020-11-24 Lucid VR, Inc. 3D Camera calibration for adjustable camera settings
US10298587B2 (en) 2016-06-20 2019-05-21 International Business Machines Corporation Peer-to-peer augmented reality handlers
US11423627B2 (en) 2016-09-02 2022-08-23 Russell Holmes Systems and methods for providing real-time composite video from multiple source devices featuring augmented reality elements
US9729820B1 (en) 2016-09-02 2017-08-08 Russell Holmes Systems and methods for providing real-time composite video from multiple source devices
US20180101989A1 (en) 2016-10-06 2018-04-12 Google Inc. Headset removal in virtual, augmented, and mixed reality using an eye gaze database
US20180158246A1 (en) 2016-12-07 2018-06-07 Intel IP Corporation Method and system of providing user facial displays in virtual or augmented reality for face occluding head mounted displays
US9841814B1 (en) 2017-01-27 2017-12-12 Emergent AR Platforms Corp. Intentional user experience
US10165259B2 (en) 2017-02-15 2018-12-25 Adobe Systems Incorporated Generating novel views of a three-dimensional object based on a single two-dimensional image
US11004264B2 (en) 2017-08-07 2021-05-11 Verizon Patent And Licensing Inc. Systems and methods for capturing, transferring, and rendering viewpoint-adaptive three-dimensional (3D) personas
CN111373448B (zh) 2017-09-22 2023-12-08 尼维医疗公司 使用机器学习正则化器的图像重建
GB201716768D0 (en) 2017-10-13 2017-11-29 Nokia Technologies Oy An apparatus a method and a computer program for coding and rendering volumetric video
US11275481B2 (en) 2018-03-07 2022-03-15 California Institute Of Technology Collaborative augmented reality system
GB2573557B (en) 2018-05-10 2020-06-10 Siemens Healthcare Gmbh Method of reconstructing magnetic resonance image data
EP3803688A4 (en) 2018-06-05 2021-08-04 Magic Leap, Inc. MATCHING CONTENT WITH A 3D SPATIAL ENVIRONMENT
JP2019219904A (ja) 2018-06-20 2019-12-26 ソニー株式会社 プログラム、認識装置、及び、認識方法
US10271040B1 (en) 2018-08-09 2019-04-23 Alive 3D Dynamic angle viewing system
US11430140B2 (en) 2018-09-18 2022-08-30 Caide Systems, Inc. Medical image generation, localizaton, registration system
US10554931B1 (en) * 2018-10-01 2020-02-04 At&T Intellectual Property I, L.P. Method and apparatus for contextual inclusion of objects in a conference
US10678323B2 (en) 2018-10-10 2020-06-09 Plutovr Reference frames for virtual environments
US11087549B2 (en) 2018-10-15 2021-08-10 University Of Maryland, College Park Methods and apparatuses for dynamic navigable 360 degree environments
US11592896B2 (en) 2018-11-07 2023-02-28 Wild Technology, Inc. Technological infrastructure for enabling multi-user collaboration in a virtual reality environment
US20220014723A1 (en) 2018-12-03 2022-01-13 Google Llc Enhancing performance capture with real-time neural rendering
US11055514B1 (en) 2018-12-14 2021-07-06 Snap Inc. Image face manipulation
US10846898B2 (en) * 2019-03-28 2020-11-24 Nanning Fugui Precision Industrial Co., Ltd. Method and device for setting a multi-user virtual reality chat environment
US20210019541A1 (en) 2019-07-18 2021-01-21 Qualcomm Incorporated Technologies for transferring visual attributes to images
DE112020001415T5 (de) 2019-09-27 2021-12-09 Apple Inc. Umgebung für Fernkommunikation
US11354792B2 (en) 2020-02-07 2022-06-07 Adobe Inc. System and methods for modeling creation workflows
CN115443445A (zh) 2020-02-26 2022-12-06 奇跃公司 用于可穿戴***的手部手势输入
US11238650B2 (en) 2020-03-13 2022-02-01 Nvidia Corporation Self-supervised single-view 3D reconstruction via semantic consistency
US11443484B2 (en) 2020-05-15 2022-09-13 Microsoft Technology Licensing, Llc Reinforced differentiable attribute for 3D face reconstruction
US10952006B1 (en) * 2020-10-20 2021-03-16 Katmai Tech Holdings LLC Adjusting relative left-right sound to provide sense of an avatar's position in a virtual space, and applications thereof
US11140361B1 (en) * 2021-03-24 2021-10-05 Katmai Tech Holdings LLC Emotes for non-verbal communication in a videoconferencing system
US20220413434A1 (en) 2021-06-28 2022-12-29 Meta Platforms Technologies, Llc Holographic Calling for Artificial Reality

Also Published As

Publication number Publication date
WO2022020058A1 (en) 2022-01-27
CN116325717A (zh) 2023-06-23
US20240212262A1 (en) 2024-06-27
US11676330B2 (en) 2023-06-13
US20220028157A1 (en) 2022-01-27
EP4186228A1 (en) 2023-05-31
US20220189105A1 (en) 2022-06-16
US11967014B2 (en) 2024-04-23
US20230267675A1 (en) 2023-08-24
US11302063B2 (en) 2022-04-12

Similar Documents

Publication Publication Date Title
JP7189895B2 (ja) 異なるビデオ・データ・ストリームにおいて、異なる複数のヴァンテージ(Vantage)・ポイントから表現されるバーチャル・オブジェクト及び現実世界オブジェクトに基づいて融合現実シーンを生成するための方法及びシステム
US11967014B2 (en) 3D conversations in an artificial reality environment
US20220413434A1 (en) Holographic Calling for Artificial Reality
CN111052770B (zh) 空间音频下混频的方法及***
US20130321586A1 (en) Cloud based free viewpoint video streaming
US11461962B1 (en) Holographic calling for artificial reality
US20210165481A1 (en) Method and system of interactive storytelling with probability-based personalized views
WO2022108662A1 (en) Multiple device sensor input based avatar
CN112105983B (zh) 增强的视觉能力
US11461942B2 (en) Generating and signaling transition between panoramic images
US20220413433A1 (en) Holographic Calling for Artificial Reality
CN110622110A (zh) 提供沉浸式现实内容的方法和装置
CN112987914A (zh) 用于内容放置的方法和设备
US20180160133A1 (en) Realtime recording of gestures and/or voice to modify animations
EP3623908A1 (en) A system for controlling audio-capable connected devices in mixed reality environments
US20230412724A1 (en) Controlling an Augmented Call Based on User Gaze
US20240073376A1 (en) Authentic Eye Region Capture through Artificial Reality Headset
WO2017124871A1 (zh) 一种呈现多媒体信息的方法及装置
US20230067584A1 (en) Adaptive Quantization Matrix for Extended Reality Video Encoding
WO2022224964A1 (ja) 情報処理装置及び情報処理方法
CN111108760B (zh) 用于空间音频的文件格式
CN111615832B (zh) 用于生成平面视频内容的合成现实重构的方法和设备
US20230077410A1 (en) Multi-View Video Codec
Fairchild Video based reconstruction system for mixed reality environments supporting contextualised non-verbal communication and its study

Legal Events

Date Code Title Description
A201 Request for examination