KR20230141598A - 가상 환경에서의 비디오 통신을 위한 헤드 트래킹 기반의 미디어 선택 - Google Patents

가상 환경에서의 비디오 통신을 위한 헤드 트래킹 기반의 미디어 선택 Download PDF

Info

Publication number
KR20230141598A
KR20230141598A KR1020230040949A KR20230040949A KR20230141598A KR 20230141598 A KR20230141598 A KR 20230141598A KR 1020230040949 A KR1020230040949 A KR 1020230040949A KR 20230040949 A KR20230040949 A KR 20230040949A KR 20230141598 A KR20230141598 A KR 20230141598A
Authority
KR
South Korea
Prior art keywords
user
virtual camera
virtual
client device
head
Prior art date
Application number
KR1020230040949A
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 KR20230141598A publication Critical patent/KR20230141598A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • 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
    • 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/012Head 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/161Detection; Localisation; Normalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/161Detection; Localisation; Normalisation
    • G06V40/162Detection; Localisation; Normalisation using pixel segmentation or colour matching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/161Detection; Localisation; Normalisation
    • G06V40/166Detection; Localisation; Normalisation using acquisition arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/168Feature extraction; Face representation
    • G06V40/171Local features and components; Facial parts ; Occluding parts, e.g. glasses; Geometrical relationships
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/172Processing image signals image signals comprising non-image signal components, e.g. headers or format information
    • H04N13/178Metadata, e.g. disparity information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/194Transmission of image signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/204Image signal generators using stereoscopic image cameras
    • H04N13/239Image signal generators using stereoscopic image cameras using two 2D image sensors having a relative position equal to or related to the interocular distance
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/024Multi-user, collaborative environment

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Oral & Maxillofacial Surgery (AREA)
  • Human Computer Interaction (AREA)
  • General Health & Medical Sciences (AREA)
  • Signal Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Library & Information Science (AREA)
  • Processing Or Creating Images (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

시스템에 의해 구현되는, 비디오 통신을 위한 헤드 트래킹 기반의 미디어 선택을 가능하게 하는 방법이 제공되며, 이 방법은, 복수의 클라이언트 디바이스에 의해 액세스되도록 구성되는 3D 가상 환경을 구현하는 단계― 각각의 클라이언트 디바이스는 3D 가상 환경 내에서 대응하는 사용자 그래픽 표현을 갖고, 각각의 사용자 그래픽 표현은 대응하는 가상 카메라를 가짐 ―; 주요 안면 랜드마크의 움직임의 추적에 응답하여 생성되는 6 자유도 헤드 트래킹 정보를 포함하는 제1 클라인트 디바이스의 헤드 트래킹 메타데이터를 수신하는 단계; 제2 클라이언트 디바이스의 가상 카메라의 시야 내에서 그래픽 엘리먼트를 식별하는 단계― 식별된 그래픽 엘리먼트는 제1 사용자의 사용자 그래픽 표현을 포함함 ―; 및 헤드 트래킹 메타데이터 및 식별된 그래픽 엘리먼트를 제2 클라이언트 디바이스에 전송하는 단계를 포함한다.

Description

가상 환경에서의 비디오 통신을 위한 헤드 트래킹 기반의 미디어 선택{HEAD-TRACKING-BASED MEDIA SELECTION FOR VIDEO COMMUNICATIONS IN VIRTUAL ENVIRONMENTS}
본 개시내용은 개괄적으로 컴퓨터 시스템에 관한 것이며, 보다 구체적으로는 가상 환경에서의 비디오 통신을 위한 헤드 트래킹 기반 미디어 선택에 관한 것이다.
지난 몇 년간 팬데믹과 같은 상황은 우리가 미팅하고 배우고 쇼핑하고 원격으로 협업하고 상호작용할 수 있게 하는 기술의 개발 가속화를 위한 발판을 마련하였다. 채팅 애플리케이션부터 Skype™, Zoom™과 같은 화상 전화, Pragli™에서 제공하는 2D 아바타로 표현되는 원격 팀을 위한 가상 사무실에 이르기까지 실시간 통신 및 협업을 지원하는 다양한 솔루션이 이미 이용 가능하다.
확장 현실(예컨대, 증강 현실 및/또는 가상 현실)과 같은 웨어러블 몰입형 기술의 개발 현황과 상대적으로 낮은 기술 채택률을 고려할 때, 대부분의 솔루션이 대부분의 상호작용이 이루어지는 평면적인 2차원 사용자 인터페이스를 제공하는 것은 이해할 수 있다. 덜 복잡한 옵션은 컴퓨터 또는 모바일 디바이스 디스플레이와 같은 평면 스크린에서 이러한 상호작용을 제공하는 것을 포함하는데, 여기서 사용자 아바타는 디스플레이에서 제시되는 가상 환경에 배치되는 것이다. 경우에 따라 아바타는 사용자에게 1인칭 시점을 제공하여 사용자가 장면 및 다른 사용자의 아바타를 볼 수 있도록 하여 상호작용의 현실감을 높일 수 있다. 각각의 사용자에게 제공될 미디어를 선택하는 것은, 일반적으로 마우스의 움직임이나 키보드 또는 컨트롤러를 통한 입력에 의해 조정되는 사용자의 시야에 종속된다. 그러나, 이러한 미디어 선택 옵션 및 그에 따른 사용자 경험은 만족스러운 수준의 현실감을 제공하지 못한다. 예를 들어, 실제 회의에서 사람들은 손으로 컴퓨터 작업을 하면서도 머리를 돌려 주변을 자유롭게 둘러볼 수 있지만, 이것이 일반적인 비디오 회의 플랫폼에서는 불가능하다.
따라서 고가의 장비(예컨대, 헤드 마운티드 디스플레이)를 구입하거나 새롭거나 비싼 인프라를 구축할 필요 없이 모두 기존의 컴퓨팅 디바이스와 카메라를 사용하면서 원격으로 상호작용할 때에 사용자에게 현실감 및 그 자신과 참가자들의 존재감을 제공하는 기술 솔루션이 필요하다. 이들 방법은 제공되는 현실적인 환경 및 사용자 경험에 일치하는 대체 미디어 선택 메커니즘을 가능하게 할 수 있어야 한다.
본 개요는 이하의 상세한 설명에서 자세하게 설명하는 일부 개념을 간소화된 형태로 소개하기 위해 제공된다. 본 개요는 청구 주제의 주요 특징을 식별하기 위한 것이 아니며, 청구 주제의 범위를 결정하기 위한 보조 자료로 사용하기 위한 것도 아니다.
본 개시내용의 일 양태에서, 컴퓨터 시스템에 의해 구현되는 비디오 통신을 위한 헤드 트래킹 기반 미디어 선택을 가능하게 하는 방법이 제공된다. 방법은, 각각 3D 가상 환경 내에 대응하는 사용자 그래픽 표현을 갖는 복수의 클라이언트 디바이스에 의해 액세스되도록 구성되는 3D 가상 환경을 구현하는 단계― 각각의 사용자 그래픽 표현은 디스플레이를 통해 클라이언트 디바이스의 대응하는 사용자에게 제시되는 3D 가상 환경의 뷰를 포함하는 대응하는 가상 카메라를 가지며, 시스템은 3D 가상 환경의 사용자들 사이에서 비디오 및 오디오 데이터의 교환을 가능하게 하여 3D 가상 환경에서 비디오 통신을 제공함 ―; 제1 클라이언트 디바이스의 제1 사용자의 얼굴의 비디오로부터 취득되는 주요 얼굴 랜드마크의 움직임 추적에 응답하여 생성되는 6 자유도의 헤드 트래킹 정보를 포함하는 제1 클라이언트 디바이스의 헤드 트래킹 메타데이터를 수신하는 단계― 제1 가상 카메라가 제1 사용자에게 제시되는 3D 가상 환경의 뷰를 포함함 ―; 제2 클라이언트 디바이스의 제2 사용자에게 제시되는 3D 가상 환경의 뷰를 포함하는 제2 가상 카메라의 시야 내에서 그래픽 엘리먼트를 식별하는 단계― 식별된 그래픽 엘리먼트는 제1 사용자의 사용자 그래픽 표현을 포함함 ―; 및 제1 클라이언트 디바이스의 헤드 트랙킹 메타데이터 및 식별된 그래픽 엘리먼트를 제2 클라이언트 디바이스에 전송하는 단계를 포함한다.
일 실시형태에서, 방법은, 제2 클라이언트 디바이스에 의해, 헤드 트래킹 메타데이터를 사용하여 제1 사용자의 식별된 사용자 그래픽 표현의 머리의 움직임을 조정하는 단계; 및 제1 사용자의 사용자 그래픽 표현 및 대응하는 그래픽 엘리먼트를 포함하는 제2 가상 카메라의 수정된 표현을 렌더링하고 제시하는 단계를 더 포함한다.
일 실시형태에서, 방법은 제1 가상 카메라의 뷰를 주요 얼굴 랜드마크의 좌표에 연관시키는 단계; 제1 사용자의 머리의 움직임에 기초하여 6 자유도에서 주요 얼굴 랜드마크의 움직임을 추적하는 단계; 및 추적된 주요 얼굴 랜드마크의 움직임에 기초하여 제1 가상 카메라의 위치 및 방위를 조정하는 단계를 더 포함한다. 방법은 가상 카메라의 조정된 위치에 기초하여 가상 환경의 엘리먼트를 동적으로 선택하는 단계; 및 가상 환경의 선택된 엘리먼트를 대응하는 클라이언트 디바이스에 제시하는 단계를 더 포함할 수 있다.
추가 실시형태에서, 추적된 주요 얼굴 랜드마크의 움직임에 기초하여 가상 카메라의 위치 및 방위를 조정하는 단계는 가상 카메라의 위치 및 방위의 조정을 제한하기 위해 자유도 중 하나 이상에 대해 임계값을 구현하는 단계를 포함한다. 또 다른 실시형태에서, 방법은 임계값에 도달한 후에만 자유도 각각에서의 머리의 움직임이 가상 카메라의 대응하는 변화를 초래하도록 임계값을 구현하는 단계를 포함한다. 다른 실시형태에서, 방법은 임계값에 도달한 후 자유도 각각에서의 머리의 움직임과 연관된 가상 카메라의 움직임이 정지되도록 임계값을 구현하는 단계를 포함한다. 다른 실시형태에서, 방법은 자유도 중 하나 이상에 승수값을 적용하여 머리의 각각의 움직임에 대한 가상 카메라의 움직임을 증가시키는 단계를 포함한다. 다른 실시형태에서, 방법은 추적된 주요 얼굴 랜드마크의 움직임에 대한 가상 카메라의 위치 및 방위의 조정 방향을 반전시키는 단계를 포함한다.
추가 실시형태에서, 3D 가상 환경은 기하학적으로 배열되는 사용자 그래픽 표현 및 그 대응하는 가상 카메라에 대한 위치를 포함하고, 가상 카메라의 위치 및 방위의 조정은 주요 얼굴 랜드마크의 수평 회전 또는 횡방향 움직임에 기초하여, 기하학적으로 배열되는 미리 결정된 경로 상에서 가상 카메라가 이동하도록 제어된다. 추가 실시형태에서, 방법은 가상 카메라의 움직임의 하나 이상의 축을 하나 이상의 머리 움직임에 연관시키는 단계를 포함한다.
일 실시형태에서, 방법은 컬러 카메라로부터 취득되는 컬러 이미지 프레임으로부터 사용자 그래픽 표현을 생성하는 단계; 및 생성된 사용자 그래픽 표현을 3D 가상 환경의 3차원 좌표에 삽입하는 단계를 포함한다.
본 개시내용의 다른 양태에서, 비디오 통신을 위한 헤드 트래킹 기반 미디어 선택을 가능하게 하는 시스템은, 메모리와 적어도 하나의 프로세서를 구비하고, 각각 3D 가상 환경 내에 대응하는 사용자 그래픽 표현을 갖는 복수의 클라이언트 디바이스에 의해 액세스되도록 구성되는 3D 가상 환경을 구현하는 컴퓨터 시스템의 적어도 하나의 컴퓨터― 각각의 사용자 그래픽 표현은 디스플레이를 통해 클라이언트 디바이스의 대응하는 사용자에게 제시되는 3D 가상 환경의 뷰를 포함하는 대응하는 가상 카메라를 갖는 가짐 ―; 메모리에서 구현되며, 제1 클라이언트 디바이스의 제1 사용자의 얼굴의 비디오로부터 취득되는 주요 얼굴 랜드마크의 움직임 추적에 응답하여 생성되는 6 자유도의 헤드 트래킹 정보를 포함하는 제1 클라이언트 디바이스의 헤드 트래킹 메타데이터를 수신하도록 구성되는 데이터 교환 관리 모듈― 제1 가상 카메라가 제1 사용자에게 제시되는 3D 가상 환경의 뷰를 포함함 ―; 및 메모리에서 구현되며, 적어도 하나의 제2 클라이언트 디바이스의 제2 사용자에게 제시되는 3D 가상 환경의 뷰를 포함하는 제2 가상 카메라의 시야 내에서 그래픽 엘리먼트를 식별하도록 구성되는 머신 비전 모듈을 포함하고, 식별된 그래픽 엘리먼트는 제1 사용자의 사용자 그래픽 표현을 포함하고, 머신 비전 모듈은 또한 데이터 교환 관리 모듈을 통해, 제1 클라이언트 디바이스의 헤드 트랙킹 메타데이터 및 식별된 그래픽 엘리먼트를 제2 클라이언트 디바이스에 전송하도록 구성되며, 시스템은 3D 가상 환경의 사용자들 사이에서 비디오 및 오디오 데이터의 교환을 가능하게 하여 3D 가상 환경에서 비디오 통신을 제공한다.
일부 실시형태에서, 제2 클라이언트 디바이스는, 제1 사용자의 사용자 그래픽 표현의 머리의 움직임을 조정하기 위해 헤드 트래킹 메타데이터를 수신하고; 제1 사용자의 사용자 그래픽 표현 및 대응하는 그래픽 엘리먼트를 포함하는 제2 가상 카메라의 뷰의 수정된 표현을 렌더링하고 제시하도록 구성된다.
일부 실시형태에서, 대응하는 컬러 카메라에 의해 전송되는 제1 사용자 또는 각각의 사용자의 컬러 이미지 프레임으로부터 주요 얼굴 랜드마크가 그것의 좌표와 함께 취득되고 식별된다.
일부 실시형태에서, 머신 비전 모듈은, 각각의 사용자 그래픽 표현에 대응하는 제1 가상 카메라의 뷰를 주요 얼굴 랜드마크의 좌표에 연관시키고; 제1 사용자의 머리의 움직임에 기초하여 6 자유도에서 주요 얼굴 랜드마크의 움직임을 추적하고; 추적된 주요 얼굴 랜드마크의 움직임에 기초하여 제1 가상 카메라의 위치 및 방위를 조정하도록 구성된다. 머신 비전 모듈은 또한, 가상 카메라의 조정된 위치에 기초하여 가상 환경의 엘리먼트를 동적으로 선택하고; 가상 환경의 선택된 엘리먼트를 대응하는 클라이언트 디바이스에 제시하도록 구성될 수 있다. 추가 실시형태에서, 머신 비전 모듈은 가상 카메라의 위치 및 방위의 조정을 제한하기 위해 자유도 중 하나 이상에 대해 임계값을 구현한다. 또 다른 실시형태에서, 머신 비전 모듈은 임계값에 도달한 후에만 자유도 각각에서의 머리의 움직임이 가상 카메라의 대응하는 변화를 초래하도록 임계값을 구현한다. 또 다른 실시형태에서, 머신 비전 모듈은 임계값에 도달한 후 자유도 각각에서의 머리의 움직임과 연관된 가상 카메라의 움직임이 정지되도록 임계값을 구현한다. 또 다른 실시형태에서, 머신 비전 모듈은, 자유도 중 하나 이상에 대해 승수값을 구현하여, 가상 카메라의 움직임에 적용될 때 머리의 각각의 움직임에 대한 가상 카메라의 움직임을 증가시킨다. 또 추가 실시형태에서, 3D 가상 환경은 기하학적으로 배열되는 사용자 그래픽 표현 및 그 대응하는 가상 카메라에 대한 위치를 포함하고, 가상 카메라의 위치 및 방위의 조정은 주요 얼굴 랜드마크의 수평 회전에 기초하여, 기하학적으로 배열되는 미리 결정된 경로 상에서 가상 카메라가 이동하도록 제어된다.
일 실시형태에서, 데이터 관리 시스템은 하이브리드 시스템 아키텍처를 통해 구현되고, 하이브리드 시스템 아키텍처는 웹 또는 애플리케이션 서버를 포함하는 클라이언트-서버측― 웹 또는 애플리케이션 서버는 보안 통신 프로토콜을 채택한 클라이언트 요청을 수신하고 데이터베이스로부터 요청에 대응하는 마이크로-서비스 또는 데이터를 요청함으로써 클라이언트 요청을 처리하도록 구성됨 ―; 및 클라이언트 디바이스들 간의 실시간 통신을 가능하게 하는 피어 투 피어(P2P) 통신 프로토콜과, 클라이언트 디바이스가 3D 가상 환경에서 라이브 세션의 실시간 3D 렌더링을 수행하는 것을 가능하게 하도록 구성된 렌더링 엔진을 포함하는 P2P측을 포함한다.
본 개시내용의 다른 양태에서, 프로세서와 메모리를 포함하는 적어도 하나의 서버 컴퓨터로 하여금 여기에서 설명하는 방법의 단계를 수행하게 하도록 구성된 명령어가 저장되어 있는 비일시적 컴퓨터 판독 가능 매체가 제공된다.
이상의 개요는 본 개시내용의 모든 측면에 대한 완전한 목록을 포함하지 않는다. 본 개시내용은 이상의 개요의 다양한 양태의 모든 적절한 조합으로부터 실행될 수 있는 모든 시스템 및 방법뿐만 아니라 아래의 상세한 설명에 개시된 것들, 특히 본원과 함께 제출된 청구범위에 기재하는 모든 시스템 및 방법을 포함하는 것으로 간주된다. 이러한 조합들은 이상의 개요에서 구체적으로 언급하지 않는 장점을 갖는다. 본 발명의 다른 특징 및 장점은 첨부하는 도면과 아래에 이어지는 상세한 설명으로부터 명백해질 것이다.
본 개시내용의 구체적인 특징, 양상 및 장점은 다음의 설명 및 첨부된 도면과 관련하여 더 잘 이해될 것이다.
도 1은 일 실시형태에 따른 가상 환경에서의 비디오 통신을 위한 헤드 트래킹 기반 미디어 선택을 가능하게 하는 시스템의 개략도를 도시한다.
도 2a 내지 도 2b는 가상 환경에서의 비디오 통신을 위한 헤드 트래킹 기반 미디어 선택을 가능하게 하는 방법의 프로세스 흐름의 개략도로서, 도 1의 시스템의 엘리먼트들 간의 상호작용을 예시한다.
도 3은 일 실시형태에 따른 가상 환경에서의 비디오 통신을 위한 헤드 트래킹 기반 미디어 선택을 가능하게 하는 시스템에 의해 사용되는 하이브리드 시스템 아키턱처의 개략도를 도시한다.
도 4a 내지 도 4e는 일 실시형태에 따른 본 개시내용의 헤드 트래킹 기반 미디어 선택을 사용하는 가상 환경의 개략도를 도시한다.
도 5a 내지 도 5c는 본 개시내용의 헤드 트래킹 기반 미디어 선택을 사용하는 가상 환경의 개략도로서, 줌인 및 줌아웃 기능을 가능하게 하는 z축에서의 머리 움직임 및 대응하는 가상 카메라 조정에 초점을 맞추고 있다.
도 6a 내지 도 6c는 일 실시형태에 따른 가상 환경에서의 비디오 통신을 위한 헤드 트래킹 기반 미디어 선택을 가능하게 하는 방법의 블록도를 도시한다.
이하의 설명에서, 예시로서 다양한 실시형태를 보여주는 도면을 참조한다. 또한, 여러 예를 참조하여 다양한 실시형태에 대해 후술할 것이다. 실시형태들은 청구된 주제의 범위를 벗어나지 않고 설계 및 구조의 변경을 포함할 수 있음을 이해해야 할 것이다.
본 개시내용의 시스템 및 방법은 비디오 통신을 가능하게 하는 가상 환경에서의 개선된 미디오 선택 및 그 프레젠테이션을 제공한다. 보다 구체적으로 본 개시내용의 시스템 및 방법은 비디오 통신을 위한 헤드 트래킹 기반 미디어 선택을 가능하게 한다. 본 개시내용의 가상 환경은 회의, 작업, 교육, 또는 다른 상황에서 사용될 수 있는 실제와 유사한 실시간 다중 사용자 협업 및 상호작용을 가능하게 한다. 가상 환경은 배치 및 시각적 외관을 포함하는 3D 가상 환경일 수 있으며, 이는 사용자의 선호도 또는 필요에 따라 사용자에 의해 커스텀화될 수 있다. 사용자는 가상 환경에 삽입되어 3D 가상 환경과 그래픽으로 결합될 수 있는 그래픽 표현을 통해 가상 환경에 액세스할 수 있다.
가상 환경에서의 미디어 선택 및 그 프레젠테이션은 사용자의 주요 얼굴 랜드마크를 추적하는 헤드 트래킹 기술을 구현하며, 이는 사용자 그래픽 표현의 관점에서의 뷰를 나타내는 가상 카메라의 뷰와 연관되어 있다. 따라서 가상 카메라는 사용자의 머리 움직임에 기초하여 조정되고 선택되어 사용자에게 제시될 미디어도 그에 따라 선택된다. 헤드 트래킹 알고리즘을 통해 추적된 사용자 머리의 움직임은 메타데이터를 생성하며, 이 메타데이터는 다른 사용자에 대한 사용자 그래픽 표현의 외관을 업데이트하기 위해 시스템에 의해 리트리빙되어, 사실적이고 향상된 사용자 경험을 제공한다.
사용자 그래픽 표현은, 예를 들어 사용자가 업로드한 또는 써드파티 소스의 배경이 제거된 포토로 구성된 사용자 3D 가상 컷아웃, 또는 사용자 실시간 3D 가상 컷아웃, 또는 배경이 제거된 비디오, 또는 배경이 제거되지 않은 비디오일 수 있다. 일부 실시형태에서, 사용자 그래픽 표현의 유형은 사용자가 원하는 대로 한 유형에서 다른 유형으로 전환될 수 있다. 사용자 그래픽 표현은 현재의 가용성 또는 다른 사용자와 관련된 다른 데이터에 대한 추가 상세를 제공하는 사용자 상태와 같은 추가 기능으로 보완될 수 있다. 일부 실시형태에서, 가상 환경 내의 객체와의 상호작용과 함께 가상 환경 내의 사용자들 간의 대화 및 협업과 같은 상호작용이 가능하다.
이러한 가상 환경에서의 사용자들 간의 가상 존재 및 현실적인 상호작용 및 협업을 가능하게 하면 원격 활동의 현실감을 높일 수 있다. 또한, 본 개시내용의 시스템 및 방법은 확장 현실 헤드 마운티드 디스플레이 또는 고가의 신규한 시스템 인프라구조와 같은 고가의 몰입형 디바이스 없이도 모바일 디바이스 또는 컴퓨터와 같은 클라이언트 디바이스에서 다양한 가상 환경에의 액세스를 가능하게 한다.
본 개시내용의 실시형태에서, 가상 카메라의 조정은 다양한 효과를 가능하게 할 수 있는 복수의 옵션을 제공하도록 커스텀화되어 가상 환경에서의 경험의 범위를 확장할 수 있다. 조정의 커스텀화는 가상 카메라 축을 사용자의 특정 머리 움직임에 연관시키는 것을 가능하게 할 수 있다. 일례로, 머리를 앞뒤로 움직이는 것은 가상 카메라의 z축과 연관되어 대응하는 줌인 및 줌아웃 효과를 달성할 수 있다. 또 다른 예로, 사용자의 머리의 횡방향 움직임(lateral movement)은 기하학적으로 설정되는 가상 카메라 경로에서 사용자 그래픽 표현 및 대응하는 가상 카메라의 움직임을 초래하여, 사용자는 해당 경로를 따라 자신의 머리의 움직임을 통해 가상 환경 내에서 이동할 수 있으면서 손으로는 타이핑 또는 작업을 수행할 수 있다. 또 다른 예로 가상 카메라의 조정은 머리의 움직임이 가상 카메라의 이동 방향과 반대 방향이 되도록 역값을 적용하는 것을 가능하게 한다. 또 다른 예로, 가상 카메라의 조정은 가상 카메라의 이동의 시작과 끝을 제어하는 임계값을 사용할 수 있다. 또 다른 예로, 가상 카메라의 조정은 각 축 또는 각 자유도에 상이한 승수들을 사용하여 다양한 유형의 효과를 가능하게 할 수 있다. 따라서 가상 카메라 조정의 커스텀화는 회의의 인간공학(ergonomics)에 적합하여 사용자가 다양한 가상 카메라 이동 및 효과를 가능하게 하면서 동시에 더 많은 신체 부위(머리와 손)를 사용할 수 있도록 할 수 있다.
본 개시내용의 클라이언트 또는 피어 디바이스(peer device)는, 예를 들어, 컴퓨터, 헤드셋, 모바일폰, 안경, 투명 스크린, 태블릿 및 일반적으로 카메라가 내장되어 있거나 카메라에 접속하여 상기 카메라로부터 데이터 피드를 수신할 수 있는 입력 디바이스를 포함할 수 있다.
본 개시내용의 시스템 및 방법은 피어 간에 직접 또는 서버를 사용하여 데이터 교환을 가능하게 하는 복수의 시스템 아키텍처를 채택할 수 있다. 이러한 하나의 아키텍처가 후술하는 하이브리드 시스템 아키텍처이다.
도 1은 일 실시형태에 따른 가상 환경에서의 비디오 통신을 위한 헤드 트래킹 기반 미디어 선택을 가능하게 하는 시스템(100)의 개략도를 도시한다. 일부 실시형태에서, 서버 컴퓨터는 사용자 디바이스 상에 제시하기 위해 사용자의 뷰에 기초해 사용자 디바이스에 전달될 미디어를 선택하여, 사용자의 머리의 움직임에 기초하여 사용자의 뷰를 효과적으로 업데이트한다.
도 1에 도시하는 예에서, 본 개시내용의 시스템(100)은 적어도 하나의 프로세서(104)와 적어도 하나의 가상 환경(108)에서 구현하는 데이터 및 명령어를 저장한 메모리(106)를 포함하는 하나 이상의 클라우드 서버 컴퓨터(102)를 포함한다. 하나 이상의 클라우드 서버 컴퓨터(102)는, 적어도 하나의 가상 환경(108)의 3차원 좌표 위치에서 컬러 카메라(116)에 의해 취득되는 클라이언트 디바이스(114)의 사용자(112)의 라이브 데이터 피드로부터 생성된 사용자 그래픽 표현(110)을 삽입하고, 적어도 하나의 가상 환경(108)에서 사용자 그래픽 표현(110)을 업데이트하고, 가상 환경(108)에서 실시간 다중 사용자 협업, 통신 및 상호작용을 가능하게 하도록 구성된다. 설명하는 실시형태에서, 가상 환경(108)에 사용자 그래픽 표현을 삽입하는 것은, 사용자 그래픽 표현(110)이 가상 환경(108)에서(예컨대, 지정된 3D 좌표 위치에) 보이도록 가상 환경에서 사용자 그래픽 표현(110)을 그래픽으로 결합하는 것을 포함한다. 각각의 사용자 그래픽 표현(110)은 사용자 그래픽 표현의 관점에서의 가상 환경(108)의 뷰를 포함하는 가상 카메라를 포함하고, 이는 대응하는 클라이언트 디바이스(114)를 통해 디스플레이될 수 있다. 하나 이상의 클라이언트 디바이스(114)는 네트워크(118)를 통해 하나 이상의 클라우드 서버 컴퓨터(102) 및 적어도 하나의 카메라(116)에 통신 가능하게 접속된다. 업데이트된 가상 환경은 다이렉트 P2P 통신에 의해 또는 하나 이상의 클라우드 서버(102)를 통해 간접으로 클라이언트 디바이스에 서빙된다.
도 1에서, 두 사용자(112)(예컨대, 각각 사용자 A 및 B)는 가상 환경(108)에 액세스하고 있고 가상 환경 내의 엘리먼트와 그리고 해당 클라이언트 디바이스(114)(각각 클라이언트 디바이스 A 및 B)에 의해 액세스되는 대응하는 사용자 그래픽 표현(110)(예컨대, 각각 사용자 그래픽 표현 A 및 B)를 통해 서로 상호작용하고 있다. 두 사용자(112), 클라이언트 디바이스(114) 및 사용자 그래픽 표현(110)만이 도 1에 도시되지만, 이하에서 더 자세하게 설명하는 바와 같이. 시스템(100)은 2인보다 더 많은 사용자(122)가 해당 클라이언트 디바이스(114)에 의해 대응하는 사용자 그래픽 표현(110)을 통해 서로 상호작용하는 것을 가능하게 할 수 있다.
도 1은 또한 데이터 교환 관리 모듈(120)과 머신 비전 모듈(122)을 포함한다. 본 개시내용에 있어서 모듈은 가상 환경에서의 비디오 통신을 위한 헤드 트래킹 기반 미디어 선택을 가능하게 하는 시스템(100)에 의해 제공되는 기능의 논리적 하위 집합을 의미하며, 이는 메모리(106)에 저장된 컴퓨터 프로그램의 형태로 구현될 수 있고, 적어도 하나의 프로세서(104)에 의해 실행될 수 있으며, 대안으로서 필요에 따라 그러한 기능을 가능하게 하는 대응하는 하드웨어 엘리먼트(예를 들어, 컴퓨터 회로, 센서 등)를 포함할 수도 있다. 시스템(100)은 제시된 모듈에 국한되지 않으며, 본 개시내용의 범위를 벗어나지 않으면서 더 많거나 더 적은 모듈이 포함될 수 있다.
복수의 멀티미디어 스트림이 가상 환경(108) 내에서 생성되는데, 복수의 멀티미디어 스트림은 카메라(116)가 하나 이상의 사용자(112)로부터 라이브 피드 데이터를 그리고 가상 환경(108) 내에서 그래픽 엘리먼트를 취득하는 것에 의해 취득되는 멀티미디어 스트림을 포함한다. 따라서, 데이터 교환 관리 모듈(120)은 3D 가상 환경(108)에서 비디오 통신을 가능하게 하기 위해 3D 가상 환경(108)의 사용자들 간의 비디오 및 오디오 데이터를 포함하는 미디어 스트림의 교환과, 사용자 각각의 헤드 트래킹 메타데이터를 관리하는데, 이에 대해서는 이하에서 보다 상세하게 설명할 것이다. 이러한 데이터 교환은 네트워크(118)를 통해 서버(102)에 접속되는 클라이언트 디바이스들(114) 사이에서 이루어진다. 일부 실시형태에서, 데이터 교환 관리 모듈은 3D 가상 환경(108) 내의 그래픽 엘리먼트를 포함하는 클라이언트 디바이스들(114)로부터의 멀티미디어 스트림을 포함한 유입 데이터를 분석 및 처리하는 것과, 아웃바운드 멀티미디어 스트림을 적응시키는 것을 포함한 복수의 동작을 수행하도록 구성된다. 일 실시형태에서, 이것은 복수의 클라이언트 디바이스(114)로부터 수신되는 유입 데이터에 기초하여 아웃바운드 멀티미디어 스트림의 포워딩을 평가하고 최적화하는 것을 포함한다. 아웃바운드 멀티미디어 스트림은 유입 데이터, 예컨대 사용자 우선순위 데이터와, 적어도 하나의 3D 가상 환경(108) 내에서, 예를 들어 대응하는 사용자 그래픽 표현(110)과 유입 멀티미디어 스트림의 소스 사이의 공간 관계를 설명하는 헤드 트래킹 메타데이터를 포함한 공간 방위 데이터에 기초하여, 개별 클라이언트 디바이스(114)에 맞게 적응된다. 일 실시형태에서, 유입 데이터는 하나 이상의 사용자 그래픽 표현과 적어도 하나의 3D 가상 환경(108)의 적어도 하나의 엘리먼트 사이의 공간적 관계와 연관된다.
머신 비전 모듈(122)은 데이터 교환 관리 모듈(120)로부터 수신된 데이터에 대해 머신 비전 연산을 수행하도록 구성된다. 도 1의 예에서, 머신 비전 모듈(122)은 데이터 교환 관리 모듈(120)을 통해 컬러 카메라(A)로부터 사용자(A)의 컬러 이미지 프레임을 취득하고; 컬러 이미지 프레임으로부터 주요 얼굴 랜드마크 및 그 좌표를 식별하고; 사용자 그래픽 표현(A)에 대응하는 가상 카메라의 뷰를 식별된 주요 얼굴 랜드마크의 좌표에 연관시키고; 사용자(A)의 머리의 움직임에 기초하여 주요 얼굴 랜드마크의 움직임을 추적하고; 추적된 주요 얼굴 랜드마크의 움직임에 기초하여 가상 카메라의 위치 및 방위를 조정하고; 조정된 가상 카메라의 위치 및 방위에 기초하여 가상 환경(108)의 엘리먼트(예컨대, 사용자 그래픽 표현(B) 및/또는 사용자 그래픽 표현(A)의 시야 내의 다른 그래픽 엘리먼트)를 동적으로 선택하고; 클라이언트 디바이스(A)를 통해 가상 환경(108)의 선택된 엘리먼트를 사용자(A)에게 제시한다. 따라서, 사용자(A)는 현실에서 자신의 머리를 움직일 수 있고 그러면 사용자(A)와 연관된 가상 카메라의 대응하는 이동 및 조정이 발생하여, 사실적인 사용자 경험을 제공할 수 있다. 사용자(A)의 머리의 움직임은 헤드 트래킹 메타데이터를 생성하고, 이것은 데이터 교환 모듈(120)를 통해, 가상 환경(108) 내의 대응하는 사용자 그래픽 표현(110)을 갖는 다른 사용자(112)의 다른 클라이언트 디바이스(114)에 전송된다.
일부 실시형태에서, 데이터 교환 관리 모듈(120)은 주요 얼굴 랜드마크의 움직임 추적에 응답하여 생성되는 헤드 트래킹 정보(예컨대, 6 자유도의 헤드 트래킹 정보(즉, 3 병진이동도 및 3 방위도)를 포함하는 클라이언트 디바이스(A)의 헤드 트래킹 메타데이터를 수신한다. 헤드 트래킹 메타데이터는 머신 비전 모듈(122)에 의해 식별되는 주요 얼굴 랜드마크의 좌표를 포함한다. 그런 다음 데이터 교환 관리 모듈(120)은 헤드 트래킹 메타데이터를 머신 비전 모듈(122)에 전송하고, 머신 비전 모듈은 클라이언트 디바이스(B)에 대응하는 사용자 그래픽 표현(B)의 시야에서 그래픽 엘리먼트를 식별하고― 식별된 그래픽 엘리먼트는 사용자 그래픽 표현(A)을 포함함 ―, 식별된 그래픽 엘리먼트를 데이터 교환 관리 모듈(120)에 전송한다. 시야에서 사용자 그래픽 표현을 식별하는 것은 헤드 트래킹 메타데이터에 기초하여 어떤 사용자 그래픽 표현이 업데이트될지 결정하는데 도움이 된다. 그런 다음 데이터 교환 관리 모듈(120)은 네트워크(118)를 통해(예컨대, 적절한 비디오 및 오디오 채널을 사용하여), 사용자 그래픽 표현(A)의 헤드 트래킹 메타데이터를 포함하는 데이터를 클라이언트 디바이스(B)에 전송한다. 그런 다음 클라이언트 디바이스(B)는 헤드 트래킹 메타데이터를 사용하여 사용자 그래픽 표현(A)의 머리의 움직임을 조정하고, 사용자 그래픽 표현(A) 및 대응하는 그래픽 엘리먼트의 수정된 프레젠테이션을 렌더링하고 디스플레이한다.
해당 메타데이터를 다른 클라이언트 디바이스에 전송하지 않고서 헤드 트래킹을 사용하여 머리가 추적되고 있는 사용자의 뷰를 조정하는 것이 가능하다. 예를 들어, 서버는 다른 클라이언트 디바이스에 기본 헤드 트래킹 메타데이터를 제공하지 않고도, 해당 뷰에서 사용자의 대응하는 사용자 그래픽 표현의 위치결정 또는 방위를 업데이트함으로써 사용자를 관찰하기 위한 3D 환경의 각 뷰를 업데이트하여 추적되는 사용자의 머리의 움직임을 반영할 수 있다. 그러나, 설명하는 실시형태에서, 메타데이터를 다른 클라이언트 디바이스에 전송하면 다른 사용자가 올바른 얼굴 또는 머리 방위를 볼 수 있으면서 그 다른 클라이언트 디바이스가 추적된 사용자 얼굴의 실제 3D 포인트가 어디에 있는지 알 수 있는데, 이 실제 3D 포인트는 단순히 해당 사용자가 그 가상 카메라를 가리키도록 선택한 위치를 반영하는 것이 아니라 추적된 사용자의 관심이 어디에 있는지를 나타낼 수 있다.
일부 실시형태에서, 메타데이터는 하나 이상의 다른 클라이언트 디바이스로 중계하기 위해 서버 또는 서버 시스템으로 전송된다. 서버 또는 서버 시스템은, 예컨대, 선택적 포워딩 유닛(SFU, selective forwarding unit) 또는 멀티포인트 제어 유닛(MCU, multi-point control unit)일 수 있다. 대안으로, 메타데이터는 P2P(피어 투 피어) 배치를 통해 다른 클라이언트 디바이스에 직접 전송된다. 일부 실시형태에서, 다른 클라이언트 디바이스에 메타데이터를 제공하기 위한 접근방식은 상황에 따라 선택되며, 이러한 결정은 예컨대 데이터 교환 관리 모듈에 의해 이루어질 수 있다. 이러한 결정은 관계된 사용자의 수에 따라 달라질 수 있는데, P2P는 사용자 수가 작은 경우(예를 들어, 10명 이하)에 사용되고, SFU는 더 많은 수의 사용자(예를 들어, 11~30명)에 사용되며, MCU는 훨씬 더 많은 수의 사용자(예를 들어, 30명 이상)에 대해 사용될 수 있다. 일부 실시형태에서, 결정의 기반이 되는 사용자 수는 시야 내에서 볼 수 있는 사용자 수에 해당하며, 임의의 폐색을 고려한 것이다. 다른 디바이스로 메타데이터를 전송하는 방법, 또는 메타데이터를 다른 디바이스로 전송할지 여부의 결정은 다른 사용자 그래픽 표현과의 거리와 같은 다른 요인에 기초할 수도 있다. 예를 들어, 다른 사용자 그래픽 표현이 머리 움직임이 추적되고 있는 사용자에 대응하는 사용자 그래픽 표현으로부터의 임계 거리를 벗어난 경우, 다른 사용자 그래픽 표현에 대응하는 클라이언트 디바이스는 메타데이터 업데이트를 수신하지 못할 수 있고, 메타데이터 업데이트를 다른 클라이언트 디바이스에 제공하는 방법을 결정할 때 고려되지 못할 수도 있다.
일부 상황에서는 P2P 채널을 사용하여 다른 클라이언트 디바이스에 메타데이터를 전송하면서 서버에도 메타데이터를 제공하는 식의 조합된 접근방식을 사용하는 것이 유용할 수도 있다. 예를 들어, 효율성이나 대기시간 단축이 중요한 경우에는 P2P를 사용할 수 있지만, 안정성이 더 중요하고 대역폭이 허용되는 경우에는 P2P 방식을 사용하면서 서버가 메타데이터를 수신하여 다른 클라이언트 디바이스로 전송하는 중복 방식을 사용할 수 있다.
도 1에는 두 사용자만이 도시되어 있지만, 본 개시내용의 3D 가상 환경(108)은 수백 명은 아니더라도 수십 명의 사용자 그래픽 표현(108)을 호스팅할 수 있다. 편의상 전술한 프로세스를 설명하기 위해 두 복수의 사용자, 예컨대 제1 복수의 사용자 및 제2 복수의 사용자를 사용할 것이다. 이러한 실시형태에서, 데이터 교환 관리 모듈(120)은 주요 얼굴 랜드마크의 움직임 추적에 응답하여 생성된 6 자유도의 헤드 추적 정보를 포함하는 제1 복수의 사용자 그래픽 표현(110)의 헤드 트래킹 메타데이터를 수신하고; 머신 비전 모듈(122)로 헤드 추적 메타데이터를 전송하며, 머신 비전 모듈(122)은 제2 복수의 사용자 그래픽 표현(110) 시야 내에서 그래픽 엘리먼트를 식별하고 식별된 그래픽 엘리먼트를 데이터 교환 관리 모듈(120)에 전송한다. 데이터 교환 관리 모듈(120)은 적절한 비디오 및 오디오 채널을 사용하여 네트워크(118)를 통해, 제1 복수의 사용자 그래픽 표현(110)의 헤드 트래킹 메타데이터를 포함함 데이터를 제2 복수의 클라이언트 디바이스(114)에 전송한다. 그런 다음, 제2 복수의 클라이언트 디바이스(114)는 헤드 추적 메타데이터를 사용하여 제1 복수의 사용자 그래픽 표현(110)의 식별된 사용자 그래픽 표현의 머리의 움직임을 조정하고, 식별된 제1 복수의 사용자 그래픽 표현 및 대응하는 그래픽 엘리먼트의 수정된 프레젠테이션을 렌더링 및 디스플레이한다.
전술한 예에서와 같이, 주요 얼굴 랜드마크의 움직임 추적은 3 병진이동도 및 3 방위도를 포함하는 6 자유도에서 수행되며, 가상 카메라의 6 위치/방위도에서 대응하는 조정을 가능하게 한다. 추가 실시형태에서, 머신 비전 모듈(122)은 가상 카메라의 위치 및 방위의 조정을 제한하기 위해 자유도 중 하나 이상에 대해 임계값을 구현한다.
일 실시형태에서, 임계값은, 임계값에 도달한 후에만 자유도 각각에서의 머리의 움직임이 가상 카메라의 대응하는 변화를 초래하도록 구현된다. 예를 들어, 임계값이 2도라고 가정할 때, 사용자(A)가 머리를 오른쪽으로 1도 움직이면, 대응하는 사용자 그래픽 표현(A)의 가상 카메라가 조정되지 않으므로, 사용자(A)는 약간의 움직임에 의한 3차원 가상 환경(108)의 시점 이동 없이 회의에 집중할 수 있다. 마찬가지로, 이 예에서, 사용자(B)의 관점에서의 사용자(A)의 머리 위치 및 방위도 수정되지 않을 것이다.
다른 실시형태에서, 임계값은, 임계값에 도달한 후에 자유도 각각에서의 머리의 움직임과 연관된 가상 카메라의 움직임이 정지되도록 구현된다. 예를 들어, 임계값이 30도라고 가정할 때, 사용자(A)가 자신의 머리를 오른쪽으로 31도 움직이면, 사용자(A)의 시야가 이미 3D 가상 환경을 디스플레이하는 스크린(108)을 초월할 수 있으므로, 대응하는 사용자 그래픽 표현(A)의 가상 카메라는 조정되지 않을 수 있다. 마찬가지로, 이 예에서, 사용자(B)의 관점에서의 사용자(A)의 머리 위치 및 방위도 오른쪽으로 30도를 초월할 후에는 수정되지 않을 것이다.
일 실시형태에서, 시스템(100)은 자유도 중 하나 이상에 대해 승수 값을 구현하여, 머리의 각각의 움직임에 대한 가상 카메라의 움직임을 증가시킨다. 예를 들어, 승수가 6이라고 가정할 때, 사용자(A)가 머리를 오른쪽으로 5도 움직이면, 대응하는 사용자 그래픽 표현(A)의 가상 카메라는 그 사용자의 머리를 오른쪽으로 30도 이동시킨다. 일부 실시형태에서, 승수는 자유도의 각 축에서 다르게 적용된다. 예를 들어, 승수는 x축에서는 과장된 입력을 제공하고 y축에서는 덜 과장된 입력을 제공하도록 적용되어, x축 상에서의 약간의 머리 움직임이 가상 카메라에서의 x축을 따라 더 길게 움직이게 하고, 가상 카메라에서의 y축을 따라 더 짧게 움직이게 할 수 있다.
일부 실시형태에서, 시스템(100)은 추적된 주요 얼굴 랜드마크의 움직임에 대한 가상 카메라의 위치 및 방위 조정의 방향을 반전시킬 수 있다. 예를 들어, 사용자(A)가 자신의 머리를 왼쪽으로 돌리면, 사용자 그래픽 표현(A)에 의해 구현되는 대응하는 가상 카메라는 오른쪽으로 대응하는 이동을 가질 것이다.
일부 실시형태에서, 3D 가상 환경(108)은 기하학적으로 배열되는 사용자 그래픽 표현 및 그 대응하는 가상 카메라에 대한 위치를 포함한다. 예를 들어, 그 기하형상은 원형 또는 타원형 기하형상일 수 있다. 이 실시형태에서, 각각의 사용자(112)의 가상 카메라의 위치 및 방위의 조정은 사용자(112)의 주요 얼굴 랜드마크의 수평 이동 또는 회전에 기초하여, 기하학적으로 배열되는 미리 결정된 경로 상에서 가상 카메라가 이동하도록 제어된다. 즉, 사용자(112)가 자신의 머리를 왼쪽 또는 오른쪽으로 움직이면, 머리의 수평 움직임은 가상 카메라의 미리 결정된 경로를 따른 수평 이동과 연관된다. 따라서, 사용자(112)가 자신의 머리를 왼쪽 또는 오른쪽으로 돌리는 동안, 가상 카메라의 이동은 사용자가 다시 자신의 머리를 중앙 위치로 움직일 때까지 기하학적 경로를 따라 연속으로 회전할 수 있다. 이에 따라, 사용자(112)는 가상 카메라가 수평면에서 원하는 위치로 이동하는 동안 자신의 손을 사용하여 콘텐츠를 입력하거나, 가상 세계 내의 엘리먼트 또는 사용자 그래픽 표현을 클릭하거나, 손을 필요로 할 수 있는 임의의 유형의 작업을 할 수 있을 것이다. 일부 실시형태에서, 클라이언트 디바이스(114)는 모바일 디바이스, 퍼스널 컴퓨터, 게임 콘솔, 미디어 센터, 및 헤드 마운티드 디스플레이 등 중 하나 이상일 수 있다. 카메라(116)는 2D 또는 3D 카메라, 360도 카메라, 웹 카메라, RGBD 카메라, CCTV 카메라, 전문가용 카메라, 모바일폰 카메라, 심도 카메라(예컨대, LIDAR), 또는 라이트 필드(light-field) 카메라 등 중 하나 이상일 수 있다.
일부 실시형태에서, 가상 환경(108)은 CAD(Computer Assisted Drawing) 방법에 의한 임의의 적합한 3D 모델링 기술을 통해 설계된 가상 구조물(예컨대, 가상 모델)을 의미한다. 추가 실시형태에서, 가상 환경(108)은 가상 환경(108)을 생성하기 위해 다양한 포토, 비디오, 깊이 측정, 및/또는 동시 위치 및 매핑(SLAM, simultaneous location and mapping) 스캐닝을 통해 입력되는 이미지 스캐닝 파이프라인을 포함하는, 임의의 적절한 스캐닝 툴을 통해 실제 구조물(예컨대, 물리적 방)으로부터 스캐닝되는 가상 구조물을 의미한다. 예를 들어, 합성 조리개 레이더, 실제 조리개 레이더, LIDAR(Light Detection and Ranging), 역 조리개 레이더, 모노펄스 레이더 및 기타 유형의 이미징 기술과 같은 레이더 이미징은, 실세계 구조물을 매핑 및 모델링하고 이를 가상 환경(108)으로 전환하는 데 사용될 수 있다. 다른 실시형태에서, 가상 환경(108)은 실제 구조물(예를 들어, 실세계의 방, 건물 또는 시설)을 따라 모델링된 가상 구조물이다.
일부 실시형태에서, 클라이언트 디바이스(114)와 적어도 하나의 클라우드 서버 컴퓨터(102)는 유선 또는 무선 네트워크를 통해 접속된다. 일부 실시형태에서, 네트워크는 밀리미터파(mmW) 또는 mmW와 5세대 무선 시스템 통신(5G)과 같은 서브 6 GHz 통신 시스템의 조합을 포함할 수 있다. 다른 실시형태에서, 시스템은 무선 근거리 네트워킹(Wi-Fi)을 통해 접속될 수 있다. 다른 실시형태에서, 시스템은 4세대 무선 시스템 통신(4G)을 통해 통신 가능하게 접속될 수 있거나, 4G 통신 시스템에 의해 지원될 수 있거나, 다른 유선 또는 무선 통신 시스템을 포함할 수 있다.
일부 실시형태에서, 사용자 그래픽 표현(110)의 생성, 업데이트 및 선택된 가상 환경(108)에의 삽입 그리고 결합에 포함되는 처리 및 렌더링은 사용자(112)의 라이브 데이터 피드를 수신할 때 클라이언트 디바이스(114)의 적어도 하나의 프로세서에 의해 수행된다. 하나 이상의 클라우드 서버 컴퓨터(102)는 클라이언트-렌더링된 사용자 그래픽 표현(110)을 수신하고, 클라이언트-렌더링된 사용자 그래픽 표현(110)을 가상 환경(108)의 3차원 좌표에 삽입하고, 삽입된 사용자 그래픽 표현(110)을 가상 환경(108)과 결합한 후, 수신측 클라이언트 디바이스(114)로의 클라이언트-렌더링된 사용자 그래픽 표현(110)의 전송을 진행할 수 있다. 예를 들어, 도 1에 도시하는 바와 같이, 클라이언트 디바이스(A)는 개개의 카메라(116)로부터 라이브 데이터 피드를 수신할 수 있고, 라이브 데이터 피드(114)로부터 데이터를 처리 및 렌더링할 수 있고, 사용자 그래픽 표현(A)을 생성한 다음, 클라이언트-렌더링된 사용자 그래픽 표현(A)을 적어도 하나의 클라우드 서버 컴퓨터(102)에 전송할 수 있고, 클라우드 서버 컴퓨터(102)는 사용자 그래픽 표현(A)을 가상 환경(108)의 3차원 좌표에 배치한 후 클라이언트 디바이스(B)에 전송할 수 있다. 유사한 프로세스가 클라이언트 디바이스(B)와 사용자(B)로부터의 사용자 그래픽 표현(B)에 적용된다. 따라서, 사용자 그래픽 표현(A)과 사용자 그래픽 표현(B) 둘 다는 모두 가상 환경(A)에서 서로를 볼 수 있고 상호작용할 수 있다.
일부 실시형태에서, 사용자 그래픽 표현(110)의 생성, 업데이트 및 삽입 그리고 가상 환경(108)과의 결합에 포함되는 처리 및 렌더링은, 클라이언트 디바이스(114)가 사용자(112)의 미처리 라이브 데이터 피드(114)를 전송할 때에 하나 이상의 클라우드 서버 컴퓨터(102)의 적어도 하나 프로세서(104)에 의해 수행된다. 따라서, 하나 이상의 클라우드 서버 컴퓨터(102)는 클라이언트 디바이스(114)로부터 사용자(112)의 미처리 라이브 데이터 피드(114)를 수신한 다음, 미처리 라이브 데이터 피드로부터 가상 환경(108)의 3차원 좌표 내에 위치하는 사용자 그래픽 표현(110)을 생성, 처리 및 렌더링하여 가상 환경 내에서의 클라우드-렌더링된 사용자 그래픽 표현을 다른 클라이언트 디바이스(114)에 전송한다. 예를 들어, 도 1에 도시하는 바와 같이, 클라이언트 디바이스(A)는 개개의 카메라(116)로부터 라이브 데이터 피드(114)를 수신할 수 있고 그런 다음 미처리 사용자 라이브 데이터 피드(114)를 적어도 하나의 클라우드 서버 컴퓨터(102)에 전송할 수 있으며, 클라우드 서버 컴퓨터(102)는 사용자 그래픽 표현(A)을 생성, 처리 및 렌더링하고 사용자 그래픽 표현(A)을 가상 환경(108)의 3차원 좌표 내에 배치하고 나서 사용자 그래픽 표현(A)을 클라이언트 디바이스(B)에 전송할 수 있다. 유사한 프로세스가 클라이언트 디바이스(B)와 사용자(B)로부터의 사용자 그래픽 표현(B)에 적용된다. 따라서, 사용자 그래픽 표현(A)과 사용자 그래픽 표현(B) 둘 다는 모두 가상 환경(A)에서 서로를 볼 수 있고 상호작용할 수 있다.
일부 실시형태에서, 사용자 그래픽 표현(110)은 사용자가 업로드한 또는 써드파티 소스의(예를 들어, 소셜 미디어 웹사이트로부터의) 포토로부터 구성된 사용자 3D 가상 컷아웃, 또는 배경이 제거된 사용자(112)의 실시간 비디오 스트림을 포함하는 사용자 실시간 3D 가상 컷아웃, 또는 배경이 제거된 비디오, 또는 배경이 제거되지 않은 비디오이다. 추가 실시형태에서, 클라이언트 디바이스(114)는, 사용자(112)의 라이브 카메라 피드(114)를 처리 및 분석하여, 피어 투 피어(P2P) 시스템 아키텍처 또는 하이브리드 시스템 아키텍처를 통해 다른 피어 클라이언트 디바이스(114)에 전송되는 애니메이션 데이터를 생성함으로써 사용자 그래픽 표현(110)을 생성한다. 수신측 피어 클라이언트 디바이스(114)는 애니메이션 데이터를 사용하여 사용자 그래픽 표현을 로컬로 구성하고 업데이트한다.
사용자 3D 가상 컷아웃은 사용자가 업로드한 또는 써드파티 소스(third-party-source)의 2D 포토로부터 구성된 사용자의 가상 복제본을 포함할 수 있다. 일 실시형태에서, 사용자 3D 가상 컷아웃은 사용자가 업로드한 또는 써드파티 소스의 2D 포토를 입력 데이터로서 사용해 머신 비전 기술에 의한 3D 가상 재구성 프로세스를 통해 작성되어, 배경을 제거한 사용자의 3D 메시 또는 3D 포인트 클라우드를 생성한다. 일 실시형태에서, 사용자 3D 가상 컷아웃은 정적인 얼굴 표정을 가질 수 있다. 또 다른 실시형태에서, 사용자 3D 가상 컷아웃은 카메라 피드를 통해 업데이트된 얼굴 표정을 포함할 수 있다. 또 다른 실시형태에서, 사용자 3D 가상 컷아웃은 사용자 3D 가상 컷아웃이 웃거나 찡그리거나 진지해지게 하는 버튼과 같은 사용자 그래픽 인터페이스 상의 버튼을 통해 변경될 수 있는 얼굴 표정을 포함할 수 있다. 또 다른 실시형태에서, 사용자 3D 가상 컷아웃은 얼굴 표정을 디스플레이하기 위해 전술한 기술들의 조합을 사용할 수 있다. 사용자 3D 가상 컷아웃을 생성한 후에, 사용자 3D 가상 컷아웃의 상태 및/또는 얼굴 표정은 예컨대 사용자로부터의 카메라 피드를 처리함으로써 연속으로 업데이트될 수 있다. 그러나 카메라가 켜져 있지 않은 경우, 사용자 3D 가상 컷아웃은 사용 불가능 상태 및 정적인 얼굴 표정으로 다른 사용자에게 계속 보여질 수 있다. 예를 들어, 사용자가 현재 작업에 집중하고 있고 방해받고 싶지 않아서(예컨대 "방해 금지(do not disturb)" 또는 "비지(busy)" 상태) 카메라를 끄고 있을 수 있다. 사용자 3D 가상 컷아웃을 작성하기 위한 3D 얼굴 모델 재구성(예컨대, 3D 얼굴 피팅 및 텍스처 융합) 기술을 사용하여, 결과물인 사용자 그래픽 표현이 사용자임을 명확하게 인식 가능하게 할 수 있다.
사용자 실시간 3D 가상 컷아웃은, 카메라로부터 취득되고 사용자 배경이 제거된 실시간 2D 또는 3D 라이브 비디오 스트림에 기반한 사용자의 가상 복제본을 포함할 수 있다. 일 실시형태에서, 사용자 실시간 3D 가상 컷아웃은 사용자 라이브 데이터 피드를 입력 데이터로서 사용해 배경을 제거한 사용자의 3D 메시 또는 3D 포인트 클라우드를 생성함으로써 머신 비전 기술에 의한 3D 가상 재구성 프로세스를 통해 작성된다. 예를 들어, 사용자 실시간 3D 가상 컷아웃은 홀로그래픽 3D 메시 또는 3D 포인트 클라우드를 작성하도록 처리될 수 있는 카메라(예컨대, 웹캠)로부터의 2D 비디오로부터 생성될 수 있다. 또 다른 예에서, 사용자 실시간 3D 가상 컷아웃은 홀로그래픽 3D 메시 또는 3D 포인트 클라우드를 작성하도록 처리될 수 있는 심도 카메라(예컨대, LIDAR 또는 임의의 심도 카메라)로부터의 3D 비디오로부터 생성될 수 있다. 이에, 사용자 실시간 3D 가상 컷아웃은 사용자를 3차원으로 그리고 실시간으로 그래픽으로 표현한다.
배경이 제거된 비디오는 클라이언트 디바이스에 스트리밍되는 비디오를 포함할 수 있는데, 배경 제거 프로세스가 수행되어 사용자만이 보일 수 있고 그런 다음 수신측 클라이언트 디바이스 상에서 다각형 구조를 사용하여 디스플레이될 수 있다. 배경 제거가 없는 비디오는 클라이언트 디바이스에 스트리밍되는 비디오를 포함할 수 있는데, 비디오는 카메라 캡처를 충실히 표현하여 사용자와 그 배경이 보일 수 있고 그런 다음 수신측 클라이언트 디바이스 상에서 다각형 구조를 사용하여 디스플레이될 수 있다. 다각형 구조는 비디오를 지원하기 위한 가상 프레임으로서 사용되는 쿼드 구조 또는 더 복잡한 3D 구조일 수 있다.
배경 제거가 없는 비디오는 클라이언트 디바이스에 스트리밍되는 비디오를 포함할 수 있는데, 비디오는 카메라 캡처를 충실히 표현하여 사용자와 그 배경이 보일 수 있고 그런 다음 수신측 클라이언트 디바이스 상에서 다각형 구조를 사용하여 디스플레이될 수 있다. 다각형 구조는 비디오를 지원하기 위한 가상 프레임으로서 사용되는 쿼드 구조 또는 더 복잡한 3D 구조일 수 있다.
일부 실시형태에서, 라이브 데이터 피드 및/또는 사용자가 업로드한 또는 써드파티 소스의 2D 포토에 포함된 입력 데이터로서 사용되는 데이터는, 2D 또는 3D 이미지 데이터, 3D 형상(geometries), 비디오 데이터, 미디어 데이터, 오디오 데이터, 텍스트 데이터, 햅틱 데이터, 시간 데이터, 3D 엔티티, 3D 동적 객체, 텍스트 데이터, 시간 데이터, 메타데이터, 우선순위 데이터, 보안 데이터, 위치 데이터, 조명 데이터, 깊이 데이터, 및 적외선 데이터 등을 포함한다.
일부 실시형태에서, 사용자 실시간 3D 가상 컷아웃을 가능하게 하는 데 필요한 배경 제거 프로세스는 이미지 분할 및 심층 신경망을 사용하여 수행되며, 이는 적어도 하나의 클라우드 서버 컴퓨터(102) 또는 클라이언트 디바이스(114)의 하나 이상의 프로세서에 의한 명령어의 구현을 통해 활성화될 수 있다. 이미지 분할은 디지털 이미지를 여러 객체로 분할하는 프로세스로서, 이는 사용자(112)의 라이브 데이터 피드(114)로부터 취득된 전경(예컨대, 사용자 실시간 3D 가상 컷아웃)을 배경으로부터 분리할 수 있는 객체 및 경계를 위치시키는 데 도움이 될 수 있다. 본 개시내용의 실시형태에서 사용될 수 있는 샘플 이미지 분할은, 예를 들어, OpenCV로부터 입수 가능한 Watershed 변환 알고리즘을 포함할 수 있다.
본 개시내용에서 배경 제거에 사용될 수 있는 적절한 이미지 분할 프로세스는 컴퓨터 비전과 같은 인공지능(AI) 기술을 사용하여 이러한 배경 제거를 가능하게 하며, 인스턴스 분할(instance segmentation) 및/또는 시맨틱 분할(semantic segmentation)을 포함할 수 있다. 인스턴스 분할은 하나 이상의 다중 객체 클래스의 각 개별 인스턴스에 고유한 레이블을 부여한다. 일부 예에서, 인스턴스 분할은, 바운딩 박스 인식을 위한 기존의 브랜치와 병행하여 객체 마스크 예측을 위한 브랜치를 추가하는 것과 함께 동시에 각 인스턴스마다 고품질 분할 마스크를 생성하면서 예컨대 사용자 라이브 데이터 피드(114)로부터의 이미지에서 객체를 검출하는 마스크 R-CNN을 통해 수행된다. 그런 다음 사용자와 배경에 대해 작성된 분할 마스크가 추출되고 배경이 제거될 수 있다. 시맨틱 분할은 딥러닝 또는 심층 신경망(DNN) 기술을 사용하여, 자동화된 배경 제거 프로세스를 활성화한다. 시맨틱 분할은 사전 정의된 규칙에 따라 각 픽셀에 컬러, 텍스처, 부드러움(smoothness)과 같은 하나 이상의 카테고리로부터 클래스 레이블을 부여하여 이미지를 의미론상 의미 있는 부분으로 분할한다. 일부 예에서, 시맨틱 분할은, 문헌 "Fully Convolutional Networks for Semantic Segmentation,"[저자: Evan Shelhamer, Jonathan Long, 및 Trevor Darrell, IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol. 39, No. 4 (April 2017)]에 개시된 바와 같이, 시맨틱 분할에 대해 종단 대 종단, 픽셀 대 픽셀로 훈련된 완전 컨볼루션 네트워크(FCN)를 활용할 수 있으며, 이 문헌은 인용에 의해 여기에 통합된다. 전술한 배경 제거 프로세스 후에, 사용자의 얼굴 및 신체 경계 내의 포인트 클라우드가 남을 수도 있고, 적어도 하나의 클라우드 서버 컴퓨터(102) 또는 클라이언트 디바이스(114)의 하나 이상의 프로세서는 사용자 실시간 3D 가상 컷아웃의 구성에 사용될 수 있는 사용자의 3D 메시 또는 3D 포인트 클라우드를 생성하는 것을 처리할 수 있다. 그런 다음, 사용자 실시간 3D 가상 컷아웃은 카메라(116)로부터의 라이브 데이터 피드(114)에서 업데이트된다.
도 2a는 가상 환경에서의 비디오 통신을 위한 헤드 트래킹 기반 미디어 선택을 가능하게 하는 방법의 프로세스 흐름(200a)의 개략도로서, 도 1의 시스템의 엘리먼트들 간의 상호작용을 예시한다. 도 1의 것과 공통된 엘리먼트를 나타내기 위해 동일한 도면부호를 사용할 것이다.
프로세스 흐름(200a)에서, 사용자(112)가 자신의 클라이언트 디바이스(114)를 통해 가상 환경(108)에 액세스한다. 또 카메라(116)가 사용자(112)의 컬러 이미지 프레임(202)를 취득하는데, 이것은 데이터 교환 관리 모듈(120)에 의해 수신되고 머신 비전 모듈(122)에 전송된다. 머신 비전 모듈(122)은 수신된 이미지 프레임 데이터에 대해 복수의 작업을 수행할 수 있는 머신 비전 알고리즘을 구현한다. 머신 비전 모듈(122)은 도 2에서 블록 204로 나타내는 바와 같이, AI 기술을 통해 컬러 이미지 프레임으로부터 주요 얼굴 랜드마크 및 그 좌표를 식별한다. 주요 얼굴 랜드마크 식별은 얼굴 검출 작업을 위해 구성된 적절한 컴퓨터 비전 방법, 예를 들어 OpenCV 얼굴 검출 방법, Seetaface 얼굴 검출 방법, YouTu 얼굴 검출 방법, Viola-Jones 방법, 영역 기반 컨볼루션 신경망(R-CNN), 싱글샷 검출기(SSD), 연속 적응 평균 시프트 알고리즘(캠시프트 알고리즘) 등을 사용할 수 있다. 일 실시형태에서, 머신 비전 모듈(122)은 학습된 BlazePose 알고리즘의 변형을 사용하여 컴퓨팅 오버헤드를 줄이면서 고효율로 주요 얼굴 랜드마크 식별을 수행한다. BlazePose 알고리즘은 사람 타겟으로부터 복수의 골격 키포인트의 3차원 좌표를 계산할 수 있는 포즈 검출 모델이다. 그것은 검출기와 추정기라는 두 머신 러닝 모델을 포함한다. 검출기는 이미지 프레임으로부터 타겟을 커팅하고, 추정기는 검출된 타겟의 256x256 해상도 이미지를 입력으로 취해 헤드 트래킹에 사용되는 얼굴 랜드마크를 출력한다.
주요 얼굴 랜드마크 식별은 눈, 눈썹, 입, 코, 및 콧구멍과 같은 피처와 그 좌표를 검출한다. 얼굴 검출 알고리즘은 수십만 개의 이미지를 수록한 대규모 데이터 세트에 대해 학습되어야 한다. 일부 샘플 얼굴 검출 방법 및 알고리즘이 제공되지만, 본 개시내용은 이들 중 어느 것에도 국한되지 않으며, 주요 얼굴 랜드마크 식별을 포함하는 임의의 적절한 얼굴 검출 메커니즘이 사용될 수 있다.
블록 206에서, 머신 비전 모듈(122)은 사용자 그래픽 표현에 대응하는 가상 카메라의 뷰를 식별된 주요 얼굴 랜드마크의 좌표에 연관시킨다. 그런 다음, 블록 208에서, 머신 비전 모듈(122)은 사용자(112)의 머리의 움직임에 기초하여 6 자유도(즉, 3 병진이동도 및 3 방위도)에서 주요 얼굴 랜드마크의 움직임을 추적한다. 주요 얼굴 랜드마크의 움직임을 추적하여 헤드 트래킹 메타데이터(210)를 생성한다. 블록 212에서, 머신 비전 모듈(122)은 추적된 주요 얼굴 랜드마크의 움직임에 기초하여 가상 카메라의 위치 및 방위를 조정한다. 이러한 움직임은 6 자유도 중 임의의 자유도에서의 사용자 머리의 움직임을 포함할 수 있다. 이러한 조정은 가상 환경(108)에서 사용자 그래픽 표현의 관점으로부터의 변화를 보여주기 위해 임의의 방향으로 가상 카메라를 회전하는 것을 필요로 할 수 있다.
블록 214에서, 가상 카메라의 조정된 위치 및 방향은 데이터 교환 관리 모듈(120)에 전송되고, 데이터 교환 관리 모듈(120)은 사용자 그래픽 표현의 가상 카메라의 위치 및 방위의 조정에 기초하여 가상 환경(108)의 엘리먼트를 동적으로 선택한다. 머신 비전 모듈(122)은 주요 얼굴 랜드마크의 움직임이 있는 한, 이러한 움직임을 계속 추적하여 가상 카메라의 위치 및 방위를 조정하고, 조정된 가상 카메라의 위치 및 방위를 블록 208, 212 및 214의 데이터 교환 관리 모듈에 전송한다. 그런 다음, 데이터 교환 관리 모듈(120)은 클라이언트 디바이스(114)의 디스플레이를 통한 프레젠테이션을 위해 데이터를 가상 환경에 전송하여, 사용자(112)는 가상 환경(108)에서 자신의 대응 사용자 그래픽 표현의 시야로부터 조정된 관점을 볼 수 있다. 헤드 트래킹 메타데이터(210)는 노드(A)에 의해 시그널링되어 프로세스의 제2 부분으로 이동한다.
도 2b는 가상 환경에서의 비디오 통신을 위한 헤드 트래킹 기반 미디어 선택을 가능하게 하는 방법의 프로세스 흐름(200b)의 개략도로서, 도 1의 시스템의 엘리먼트들 간의 상호작용을 예시한다. 도 2b는 클라이언트 디바이스(A)를 통해 가상 환경(208)에 액세스하는 사용자(A) 및 데이터 교환 관리 모듈(120)을 통해 컬러 이미지 프레임(202)을 머신 비전 모듈(122)에 전송하는 카메라(A)를 포함해, 도 2a와 유사한 엘리먼트를 포함한다. 또한, 도 2b는 클라이언트 디바이스(B)를 통해 또한 가상 환경(208)에 액세스하는 제2 사용자, 즉 사용자(B)를 포함한다.
도 2a의 설명에 이어서 노드(A)에서 시작하며, 블록 208의 주요 얼굴 랜드마크의 움직임을 추적할 때, 주요 얼굴 랜드마크의 좌표를 포함하는 6 자유도의 헤드 추적 정보를 포함하는 헤드 트래킹 메타데이터(210)가 생성된다. 또한, 사용자(B)의 클라이언트 디바이스(B)는 데이터 교환 관리 모듈(120)을 통해 대응하는 사용자 그래픽 표현(B)(도시 생략)의 가상 카메라 관점(216)을 머신 비전 모듈(122)에 전송한다. 블록 218에서, 머신 비전 모듈(122)은 사용자 그래픽 표현(B)의 가상 카메라 시야 내에서, 사용자(A)의 사용자 그래픽 표현(A)(도시 생략)을 포함한 그래픽 엘리먼트를 식별한다.
그런 다음, 헤드 트래킹 메타데이터(210) 및 사용자 그래픽 표현(A)을 포함한 식별된 그래픽 엘리먼트가 교환 관리 모듈(120)에 전송되고, 교환 관리 모듈(120)은 이들을 수신하고 이들을 클라이언트 디바이스(B)에 전송한다. 클라이언트 디바이스(B)는 블록 220에 나타내는 바와 같이, 적어도 하나의 제1 사용자의 식별된 사용자 그래픽 표현 및 대응하는 그래픽 엘리먼트를 포함하는 가상 카메라의 수정된 프레젠테이션을 렌더링하고 제시한다. 렌더링은 로컬 렌더링을 통해 수행될 수 있고, 클라우드 렌더링 기법을 사용할 수도 있고, 또는 예컨대 적절한 웹 기반 렌더링 엔진을 통해, 웹 기반 지원 렌더링을 사용할 수 있다. 적절한 웹 기반 렌더링 엔진의 일례는 WebGL 렌더링 엔진일 수 있다. 따라서, 수정된 프레젠테이션은 클라이언트 디바이스(B)를 통해 사용자(B)에게 가상 환경(208) 내에서 보이는 사용자(A)의 사용자 그래픽 표현(A)의 수정된 머리 위치 및 방향을 포함한다. 가상 환경 내의 해당 사용자 그래픽 표현을 통한 다른 참가자들의 머리의 움직임의 그러한 디스플레이로 향상된 사용자 경험을 제공하고, 사용자 그래픽 표현의 프레젠테이션 및 상호작용의 현실감을 높일 수 있다.
도 3은 일 실시형태에 따른, 본 개시내용의 시스템 및 방법이 가상 환경에서 다이내믹 로드 밸런싱(dynamic load balancing)을 제공할 수 있도록 하는 데 사용될 수 있는 하이브리드 시스템 아키텍처(300)의 개략도를 도시한다.
하이브리드 시스템 아키텍처(300)는 클라이언트-서버측(304)과 P2P측(306)을 포함하는, 다른 클라이언트 디바이스(302)와 상호작용하기 위한 하이브리드 통신 모델이다. 이러한 하이브리드 통신 모델을 사용하면 사용자들 간의 신속한 P2P 통신이 가능하여 대기시간 문제를 줄이고 웹 서비스를 제공하면서 각 세션에 웹 서비스, 데이터 및 리소스를 제공함으로써 사용자들 사이에서 그리고 가상 환경의 콘텐츠와의 복수의 상호작용을 가능하게 한다.
클라이언트-서버측은 보안 통신 프로토콜(308)을 사용하여 네트워크를 통해 클라이언트 디바이스(302)와 웹/애플리케이션 서버(310) 간의 종단간 보안 통신을 가능하게 한다. 적절한 보안 통신 프로토콜(308)은 예를 들어, 그 자체로 보안 사용자 데이터그램 프로토콜(UDP)인 데이터그램 전송 계층 보안(DTLS), 보안 실시간 전송 프로토콜(SRTP), 하이퍼텍스트 전송 프로토콜 보안(https://) 및 웹소켓 보안(wss://)을 포함할 수 있으며, 이들은 서로 호환되고 전송 중 교환된 데이터의 완전 이중 인증 애플리케이션 액세스, 개인 정보 보호 및 무결성을 제공할 수 있다. 적절한 웹/애플리케이션 서버(310)는, 예컨대 Java HTTP 웹 서버 및 Java Servlet 컨테이너인 Jetty 웹 애플리케이션 서버를 포함할 수 있고 그래서 머신간 통신 및 웹 애플리케이션 서비스의 적절한 배치를 가능하게 한다. 다른 적합한 웹/애플리케이션 서버(310)는 브라우저와의 미디어 통신을 셋업하기 위한 WebRTC 프로토콜을 구현하는 Janus 웹 서버를 포함하여, 브라우저와 서버측 애플리케이션 로직 사이에서 JSON 메시지를 교환하고 실시간 전송 프로토콜/실시간 전송 제어 프로토콜(RTP/RTCP) 및 메시지를 중계할 수 있다.
웹/애플리케이션 서버(310)가 도 3에서는 단일 엘리먼트로서 도시되지만, 당업자라면 웹 서버와 애플리케이션 서버가 별개의 엘리먼트일 수 있음을 이해할 것이다. 예를 들어, 웹 서버는 보안 통신 프로토콜(308)을 통해 클라이언트 요청을 수신하고 그 요청을 애플리케이션 서버에 라우팅하도록 구성될 수 있다. 따라서 웹/애플리케이션 서버(310)는 보안 통신 프로토콜(308)을 사용하여 클라이언트 요청을 수신하고, 하나 이상의 마이크로 서비스(312)(예컨대, 자바 기반 마이크로 서비스)를 요청하는 것 및/또는 대응하는 데이터베이스 관리 시스템(316)을 사용하여 데이터베이스(314)로부터 데이터를 조회하는 것을 포함하는 요청들을 처리할 수 있다. 웹/애플리케이션 서버(310)는 세션 관리 및 3D 콘텐츠 및 애플리케이션 로직과 같은 수많은 다른 서비스뿐만 아니라 세션의 상태 지속성(예를 들어, 공유 문서를 지속적으로 저장하고, 가상 환경에서의 상호작용 및 변경을 동기화하거나, 가상 환경의 시각적 상태 및 수정을 지속하기 위함)을 제공할 수 있다. 적절한 데이터베이스 관리 시스템(316)은, 예를 들어, 예를 들어, 객체-관계 매핑(ORM, object-relational mapping) 데이터베이스 관리 시스템일 수 있으며, 이는 객체 지향 프로그래밍 언어를 사용하는 비호환 유형 시스템들 사이에서 데이터를 변환할 수 있는 ORM의 기능이 주어진다면 오픈 소스 및 상업적(예를 들어, 독점적) 서비스를 사용하는 데이터베이스 관리에 적합할 수 있다. 추가 실시형태에서, 분산 공간 데이터 버스(318)는 게시-구독 모델을 사용하여 마이크로 서비스와 클라이언트 디바이스 사이에서 분산 메시지 및 리소스 분배 플랫폼으로서도 또한 활용될 수 있다.
P2P측(306)은 적절한 애플리케이션 프로그래밍 인터페이스(API)를 통해 가상 환경에서 피어 클라이언트 디바이스들(302) 간의 실시간 통신을 가능하게 하는 적절한 P2P 통신 프로토콜(320)을 사용하여, 실시간 상호작용 및 동기화를 가능하게 함으로써 다중 사용자 협업 환경을 가능하게 할 수 있다. 예를 들어, P2P측(306)을 통해, 1 이상의 사용자의 기여가 다른 사용자에게 직접 전송될 수 있어 다른 사용자들은 수행된 변경사항을 실시간으로 관찰할 수 있다. 적절한 P2P 통신 프로토콜(320)의 예는 표준, 프로토콜 및 자바스크립트 API의 모음인 웹 실시간 통신(WebRTC, Web Real-Time Communication) 통신 프로토콜일 수 있으며, 이들의 조합은 P2P 오디오, 비디오, 및 피어 디바이스 클라이언트(302) 간의 데이터 공유를 가능하게 한다. P2P측(306)의 클라이언트 디바이스(302)는 하나 이상의 렌더링 엔진(322)을 채택하여 라이브 세션의 실시간 3D 렌더링을 수행할 수 있다. 적절한 렌더링 엔진(322)의 예는 플러그인의 사용 없이 임의의 호환 가능한 웹 브라우저 내에서 2D 및 3D 그래픽을 렌더링하여, 클라이언트 디바이스(302)의 하나 이상의 프로세서(예컨대, 하나 이상의 그래픽 처리 장치(GPU))에서 물리 현상(physics) 및 이미징 처리와 효과를 빠르게 사용할 수 있게 하는 JavaScript API인 WebGL 기반 3D 엔진일 수 있다. 또한, P2P측(306)의 클라이언트 디바이스(302)는 하나 이상의 적절한 컴퓨터 비전 라이브러리(324)를 통해 이미지 및 비디오 프로세싱 및 머신 러닝 컴퓨터 비전 기술을 수행할 수 있다. 적절한 컴퓨터 비전 라이브러리(324)의 예는 실시간 컴퓨터 비전 작업을 위해 구성된 프로그래밍 기능의 라이브러리인 OpenCV일 수 있다.
클라이언트 디바이스는 다운로드 가능 또는 웹 애플리케이션(328)으로부터 이용 가능한 그래픽 사용자 인터페이스(326)를 통해 하이브리드 시스템 아키텍처(300)의 클라이언트-서버측(304)과 P2P측(306) 둘 다에 액세스할 수 있다.
도 4a 내지 도 4e는 일 실시형태에 따른 도 1 내지 도 2b의 파일 설명인 d17709093 E22-03 애플리케이션에 기초하여 본 개시내용의 헤드 트래킹 기반 미디어 선택을 사용하는 가상 환경(400)의 개략적인 표현을 도시한다.
도 4a는 연관된 직선 관찰(straight-looking) 가상 카메라(404)를 보여주기 위해 사용자(402)가 카메라를 똑바로 바라보는 것을 도시한다. 가상 카메라는 현실에서의 사용자의 머리 위치에 대응하는 가상 환경 내에서의 사용자의 실제 시야를 나타낸다.
도 4b는 연관된 왼쪽 관찰 가상 카메라(406)를 보여주기 위해 사용자(402)가 카메라 앞에서 머리를 왼쪽으로 돌리고 있는 것을 도시한다. 이 경우, 사용자의 가상 카메라가 왼쪽으로 이동함에 따라 왼쪽에 위치해 있었던 엘리먼트들이 사용자의 머리 움직임에 맞춰 이제는 오른쪽으로 이동해 있다. 예를 들어, 도 4a를 참조하면, 벽에 붙혀진 "ROOM"이라고 적힌 표지판(408)은 맨 왼쪽 구석에 위치하여 이미지에서 잘려나갔다. 사용자(402)가 머리를 왼쪽으로 돌린 후에는, 왼쪽 관찰 가상 카메라(406)가 이제 동일한 표지판 전체를 포함하기 때문에 그 표지판이 전체가 보일 수 있다.
도 4c는 연관된 오른쪽 관찰 가상 카메라(410)를 보여주기 위해 사용자(402)가 카메라 앞에서 머리를 오른쪽으로 돌리고 있는 것을 도시한다. 이 경우, 사용자(402)의 가상 카메라(410)가 오른쪽으로 이동함에 따라 왼쪽에 위치해 있었던 엘리먼트들이 사용자의 머리 움직임에 맞춰 이제는 왼쪽으로 이동해 있다. 예를 들어, 도 4a를 참조하면, 벽에 붙혀진 "ROOM"이라고 적힌 표지판(408)은 맨 왼쪽 구석에 위치하여 이미지에서 잘려나갔다. 사용자(402)가 머리를 오른쪽으로 이동한 후에는, 오른쪽 관찰 가상 카메라(406)의 시야에 표지판이 포함되지 않기 때문에 표지판(408)의 글자 중 어느 것도 볼 수 없다.
도 4d는 연관된 상방 관찰 가상 카메라(412)를 보여주기 위해 사용자(402)가 카메라 앞에서 머리를 위쪽으로 들고 있는 것을 도시한다. 이 경우, 사용자(402)의 가상 카메라(412)가 위쪽으로 이동함에 따라 가상 카메라 시야의 관점의 하단에 위치해 있었던 엘리먼트들이 사용자의 머리 움직임에 맞춰 이제는 아래로 이동해 있다. 예를 들어, 도 4a를 참조하면, 사용자(402)가 카메라를 직선으로 바라보고 있었을 때에는 완전히 보였던 테이블의 중앙(414)이 사용자(402)가 머리를 위쪽으로 돌린 후에는 도 4d에서 거의 전체가 잘려나갔다.
도 4e는 연관된 하방 관찰 가상 카메라(416)를 보여주기 위해 사용자(402)가 카메라 앞에서 머리를 아래쪽으로 숙이고 있는 것을 도시한다. 이 경우, 사용자(402)의 가상 카메라(416)가 아래쪽으로 이동함에 따라 가상 카메라 시야의 관점의 하단에 위치해 있었던 엘리먼트들이 사용자의 머리 움직임에 맞춰 이제는 위쪽으로 이동해 있다. 예를 들어, 도 4d에서 사용자(402)가 카메라를 올려다보고 있을 때 보이지 않았던 테이블의 중앙(414)이 이제는 이미지 하단에 보인다.
도 5a 내지 도 5c는 도 1 내지 도 2b의 설명에 기초하여 본 개시내용의 헤드 트래킹 기반 미디어 선택을 사용하는 가상 환경(500)의 개략도로서, 줌인 및 줌아웃 기능을 가능하게 하는 z축에서의 머리 움직임 및 대응하는 가상 카메라 조정에 초점을 맞추고 있다.
도 5a는 어떤 유형의 줌잉 기능 없이 사용자(502)가 카메라를 똑바로 바라보는 것을 도시하며, 연관된 가상 카메라(504)를 보여준다. 가상 카메라는 현실에서의 사용자의 머리 위치에 대응하는 가상 환경 내에서의 사용자의 실제 시야를 나타낸다.
도 5b는 연관된 줌인 가상 카메라(506)를 보여주기 위해 사용자(502)가 카메라에 더 가깝게 이동하는 것을 도시한다. 이 경우, 사용자(502)의 가상 카메라(506)는 도 5a의 가상 카메라(504)와 비교해서 가상 가메라(506)의 시야 내의 엘리먼트들이 사용자(502)에게 더 크게 보이도록 줌인되어 있다. 예를 들어, 도 5a와 도 5b를 참조하면, 의자(508)가 도 5a보다 도 5b에서 더 크게 보인다.
도 5c는 연관된 줌아웃 가상 카메라(510)를 보여주기 위해 사용자(502)가 카메라에서 더 멀어지게 이동하는 것을 도시한다. 이 경우, 사용자(502)의 가상 카메라(510)는 도 5a의 가상 카메라(504)와 비교해서 가상 가메라(506)의 시야 내의 엘리먼트들이 사용자(502)에게 더 작게 보이도록 줌아웃되어 있다. 예를 들어, 도 5a와 도 5c를 참조하면, 의자(508)가 도 5a보다 도 5c에서 더 작게 보인다.
앞의 도 5a 내지 도 5c의 실시형태에서, z축(전방 및 후방)의 머리 움직임은 도 1에 도시한 바와 같이 본 개시내용의 머신 비전 모듈(122)을 구현하는 카메라(116)의 줌 기능에 문자대로는 아니게 매핑되는데, 추적된 주요 얼굴 랜드마크는 원하는 효과를 달성하면서 가상 카메라가 얼마나 가까이 또는 멀리 이동하는지 제어한다. 본 실시형태에서 언급된 바와 같이, "문자대로는 아니게(non-literally)"는 입력 헤드 트래킹 데이터와 원하는 효과를 달성하기 위한 카메라의 실제 조정 사이에 해리가 존재함을 의미한다. 일 실시형태에서, 문자대로는 아닌 매핑은 가상 카메라를 줌잉하여 화각을 조정하는 동시에 가상 카메라가 가상 환경 내의 엘리먼트를 향해 또는 엘리먼트로부터 멀어지거나 이동함으로써 달성되는 인카메라 효과(in-camera effect)인 돌리 줌 효과(dolly zoom effect)를 적용하여 달성된다. 예를 들어, 도 5a 내지 도 5c의 도면에서, 가상 카메라는 테이블(512)의 가장자리를 일정한 초점면으로서 유지하도록 구성되고, 이것은 가상 카메라가 상대적으로 일정하게 유지되어야 하는 가상 회의의 인간공학에 적합할 수 있다.
도 4a 내지 도 5c를 참조하여 도시한 모든 실시형태들은, 도 1과 관련하여 상세히 설명한 바와 같이, 가상 환경에서의 사용자 경험 및 상호작용의 현실감을 증가시키기 위한 목적으로 원하는 효과를 달성하기 위해 각 자유도, 승수 및 역방향 이동(inverse movement)에 임계값을 적용할 수 있다.
도 6a 내지 도 6c는 본 개시내용의 가상 환경에서의 비디오 통신을 위한 헤드 트래킹 기반 미디어 선택의 다양한 실시형태를 가능하게 하는 방법(600a-600c)의 블록도를 도시한다. 방법(600a-600c)은 도 1을 참조하여 설명한 시스템(100)과 같은 시스템에 의해 구현될 수 있으며, 시스템은 3D 가상 환경의 사용자들 간의 비디오 및 오디오 데이터 교환을 가능하게 하여 3D 가상 환경에서 비디오 통신을 제공할 수 있다.
도 6a는 가상 환경에서의 비디오 통신을 위한 헤드 트래킹 기반 미디어 선택을 가능하게 하는 방법(600a)의 블록도를 도시한다. 방법(600a)은 단계 602에서, 각각 3D 가상 환경 내에 대응하는 사용자 그래픽 표현을 갖는 복수의 클라이언트 디바이스에 의해 액세스되도록 구성되는 3D 가상 환경을 구현하는 것에서 시작되며, 각각의 사용자 그래픽 표현은 디스플레이를 통해 클라이언트 디바이스의 대응하는 사용자에게 제시되는 3D 가상 환경의 뷰를 포함하는 대응하는 가상 카메라를 갖는다. 방법(600a)은 단계 604에서, 주요 얼굴 랜드마크의 움직임 추적에 응답하여 생성되는 6 자유도의 헤드 트래킹 정보를 포함하는 제1 클라이언트 디바이스의 헤드 트래킹 메타데이터를 수신함으로써 계속된다. 이어서, 단계 606에서, 방법(600a)은 적어도 제2 클라이언트 디바이스의 가상 카메라의 시야 내에서 그래픽 엘리먼트를 식별하는 것으로 진행되며, 식별된 그래픽 엘리먼트는 제1 사용자의 사용자 그래픽 표현을 포함한다. 그런 다음, 방법(600a)은 단계 608에서, 제1 사용자의 식별된 사용자 그래픽 표현에 대응하는 제1 클라이언트 디바이스의 헤드 트래킹 메타데이터 및 식별된 그래픽 엘리먼트를 적어도 제2 클라이언트 디바이스에 전송하는 것으로 종료된다.
도 6b는 일 실시형태에 따른 가상 환경에서의 비디오 통신을 위한 헤드 트래킹 기반 미디어 선택을 가능하게 하는 방법(600b)의 블록도를 도시한다. 방법(600b)는 단계 610에서, 적어도 제2 클라이언트 디바이스에 의해, 방법(600a)의 단계 608에서 수신된 제1 사용자의 식별된 사용자 그래픽 표현에 대응하는 제1 클라이언트 디바이스의 헤드 트래킹 메타데이터를 사용하여, 제1 사용자의 식별된 사용자 그래픽 표현의 머리의 움직임을 조정하는 것에서 시작된다. 방법(600b)은 블록 612에서, 제1 사용자의 식별된 사용자 그래픽 표현 및 대응하는 그래픽 엘리먼트를 포함하는 적어도 제2 클라이언트 디바이스의 가상 카메라의 수정된 표현을 렌더링하고 제시하는 것으로 종료된다.
도 6c는 일 실시형태에 따른 가상 환경에서의 비디오 통신을 위한 헤드 트래킹 기반 미디어 선택을 가능하게 하는 방법(600c)의 블록도를 도시한다. 방법(600c)은 단계 614에서, 각각의 사용자 그래픽 표현에 대응하는 가상 카메라의 뷰를 주요 얼굴 랜드마크의 좌표에 연관시키는 것에서 시작된다. 대응하는 컬러 카메라에 의해 전송되는 제1 사용자 또는 각각의 사용자의 컬러 이미지 프레임으로부터 주요 얼굴 랜드마크가 그것의 좌표와 함께 취득되고 식별된다. 그런 다음 단계 616에서, 방법(600c)은 사용자의 머리의 움직임에 기초하여 6 자유도에서 주요 얼굴 랜드마크의 움직임을 추적하는 것으로 진행한다. 단계 618에서, 방법(600c)은 추적된 주요 얼굴 랜드마크의 움직임에 기초하여 가상 카메라의 위치 및 방위를 조정한 다음, 단계 620에서 보는 바와 같이, 조정된 가상 카메라의 위치에 기초하여 가상 환경의 엘리먼트를 동적으로 선택하는 것에서 계속된다. 마지막으로, 방법(600c)은 가상 환경의 선택된 엘리먼트를 사용자에게 제시함으로써 단계 622에서 종료된다.
하나 이상의 컴퓨터로 하여금 본 명세서에 설명한 방법 중 어느 하나를 수행하도록 구성된 명령어가 저장되어 있는 컴퓨터 판독 가능 매체에 대해서도 설명한다. 본 명세서에서 사용되는 "컴퓨터 판독 가능 매체"라는 용어는 컴퓨터 판독 가능한 명령어, 데이터 구조, 프로그램 모듈, 또는 기타 데이터와 같은 정보를 저장할 수 있는 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 포함한다. 일반적으로 본 명세서에 설명한 컴퓨팅 디바이스의 기능은 하드웨어 또는 소프트웨어 명령어로 임베딩되는 컴퓨팅 로직으로 구현될 수 있으며, 이는 C, C++, COBOL, JAVA™, PHP, Perl, Python, Ruby, HTML, CSS, JavaScript, VBScript, ASPX, C#과 같은 Microsoft .NET™ 언어 등의 프로그래밍 언어로 작성될 수 있다. 컴퓨팅 로직은 실행 가능 프로그램으로 컴파일되거나 인터프리팅된 프로그래밍 언어로 작성될 수 있다. 일반적으로 본 명세서에 설명한 기능은 더 큰 처리 능력을 제공하기 위해 복제되거나 다른 모듈과 병합되거나 또는 하위 모듈로 분할될 수 있는 로직 모듈로서 구현될 수 있다. 컴퓨팅 로직은 임의의 유형의 컴퓨터 판독 가능 매체(예컨대, 메모리 또는 저장 매체와 같은 비일시적 매체) 또는 컴퓨터 저장 디바이스에 저장될 수 있으며, 하나 이상의 범용 또는 특수 목적 프로세서에서 저장 및 실행되어 본 명세서에 설명한 기능을 제공하도록 구성된 특수 목적 컴퓨팅 디바이스를 생성할 수 있다.
첨부하는 도면에서 특정 실시형태들을 설명하고 도시하고 있지만, 이러한 실시형태들은 단지 본 발명의 광의의 예시일 뿐이며 본 발명을 한정하는 것이 아니며, 당업자에게는 다양한 다른 변형이 발생할 수 있으므로 본 발명은 도시하고 설명한 특정 구성 및 배열에 한정되지 않는다는 것을 이해해야 할 것이다. 따라서 본 설명은 제한한다기보다는 예시적인 것으로 간주되어야 한다.

Claims (20)

  1. 컴퓨터 시스템에 의해 구현되는 비디오 통신을 위한 방법에 있어서,
    각각 3D 가상 환경 내에 대응하는 사용자 그래픽 표현을 갖는 복수의 클라이언트 디바이스에 의해 액세스되도록 구성되는 3D 가상 환경을 구현하는 단계― 각각의 사용자 그래픽 표현은 디스플레이를 통해 상기 클라이언트 디바이스의 대응하는 사용자에게 제시되는 상기 3D 가상 환경의 뷰를 포함하는 대응하는 가상 카메라를 갖고, 상기 컴퓨터 시스템은 상기 3D 가상 환경의 사용자들 사이에서 비디오 및 오디오 데이터의 교환을 가능하게 하여 상기 3D 가상 환경에서 비디오 통신을 제공함 ―;
    제1 클라이언트 디바이스의 제1 사용자의 얼굴의 비디오로부터 취득되는 주요 얼굴 랜드마크의 움직임 추적에 응답하여 생성되는 6 자유도의 헤드 트래킹 정보를 포함하는 상기 제1 클라이언트 디바이스의 헤드 트래킹 메타데이터를 수신하는 단계― 제1 가상 카메라가 상기 제1 사용자에게 제시되는 상기 3D 가상 환경의 뷰를 포함함 ―;
    제2 클라이언트 디바이스의 제2 사용자에게 제시되는 상기 3D 가상 환경의 뷰를 포함하는 제2 가상 카메라의 시야 내에서 그래픽 엘리먼트를 식별하는 단계― 상기 식별된 그래픽 엘리먼트는 상기 제1 사용자의 사용자 그래픽 표현을 포함함 ―; 및
    상기 제1 클라이언트 디바이스의 헤드 트랙킹 메타데이터 및 상기 식별된 그래픽 엘리먼트를 상기 제2 클라이언트 디바이스에 전송하는 단계
    를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 제2 클라이언트 디바이스에 의해, 상기 헤드 트래킹 메타데이터를 사용하여 상기 제1 사용자의 사용자 그래픽 표현의 머리의 움직임을 조정하는 단계; 및
    상기 제1 사용자의 사용자 그래픽 표현 및 대응하는 그래픽 엘리먼트를 포함하는 상기 제2 가상 카메라의 뷰의 수정된 표현을 렌더링하고 제시하는 단계를 포함하는, 방법.
  3. 제1항에 있어서,
    상기 제1 가상 카메라의 뷰를 상기 주요 얼굴 랜드마크의 좌표에 연관시키는 단계;
    상기 제1 사용자의 머리의 움직임에 기초하여 6 자유도에서 상기 주요 얼굴 랜드마크의 움직임을 추적하는 단계; 및
    상기 추적된 주요 얼굴 랜드마크의 움직임에 기초하여 상기 제1 가상 카메라의 위치 및 방위를 조정하는 단계를 포함하는, 방법.
  4. 제3항에 있어서, 상기 자유도 중 하나 이상에 대한 임계값이 상기 가상 카메라의 위치 및 방위의 조정을 제한하는, 방법.
  5. 제4항에 있어서, 상기 임계값에 도달한 후에만 상기 자유도 각각에서의 머리의 움직임이 상기 가상 카메라의 대응하는 변화를 초래하는, 방법.
  6. 제4항에 있어서, 상기 임계값에 도달한 후 상기 자유도 각각에서의 머리의 움직임과 연관된 상기 가상 카메라의 움직임이 정지되는, 방법.
  7. 제3항에 있어서, 상기 자유도 중 하나 이상에 승수값을 적용하여 상기 머리의 각각의 움직임에 대한 상기 가상 카메라의 움직임을 증가시키는 단계를 포함하는, 방법.
  8. 제3항에 있어서, 상기 추적된 주요 얼굴 랜드마크의 움직임에 대한 상기 가상 카메라의 위치 및 방위의 조정 방향을 반전시키는 단계를 포함하는, 방법.
  9. 제3항에 있어서, 상기 3D 가상 환경은 기하학적으로 배열되는 사용자 그래픽 표현 및 그 대응하는 가상 카메라에 대한 위치를 포함하고, 상기 가상 카메라의 위치 및 방위의 조정은 상기 주요 얼굴 랜드마크의 수평 회전 또는 횡방향 움직임에 기초하여, 상기 기하학적으로 배열되는 미리 결정된 경로 상에서 상기 가상 카메라가 이동하도록 제어되는, 방법.
  10. 제3항에 있어서, 상기 제1 가상 카메라의 움직임의 하나 이상의 축을 하나 이상의 머리 움직임에 연관시키는 단계를 포함하는, 방법.
  11. 비디오 통신을 위한 시스템에 있어서,
    메모리와 적어도 하나의 프로세서를 구비하고, 각각 3D 환경 내에 대응하는 사용자 그래픽 표현을 갖는 복수의 클라이언트 디바이스에 의해 액세스되도록 구성되는 3D 가상 환경을 구현하는 컴퓨터 시스템의 적어도 하나의 컴퓨터― 각각의 사용자 그래픽 표현은 디스플레이를 통해 상기 클라이언트 디바이스의 대응하는 사용자에게 제시되는 상기 3D 가상 환경의 뷰를 포함하는 대응하는 가상 카메라를 가짐 ―;
    메모리에서 구현되며, 제1 클라이언트 디바이스의 제1 사용자의 얼굴의 비디오로부터 취득되는 주요 얼굴 랜드마크의 움직임 추적에 응답하여 생성되는 6 자유도의 헤드 트래킹 정보를 포함하는 제1 클라이언트 디바이스의 헤드 트래킹 메타데이터를 수신하도록 구성되는 데이터 교환 관리 모듈― 제1 가상 카메라가 상기 제1 사용자에게 제시되는 상기 3D 가상 환경의 뷰를 포함함 ―; 및
    메모리에서 구현되며, 적어도 하나의 제2 클라이언트 디바이스의 제2 사용자에게 제시되는 상기 3D 가상 환경의 뷰를 포함하는 제2 가상 카메라의 시야 내에서 그래픽 엘리먼트를 식별하도록 구성되는 머신 비전 모듈
    을 포함하고, 상기 식별된 그래픽 엘리먼트는 상기 제1 사용자의 사용자 그래픽 표현을 포함하고, 상기 머신 비전 모듈은 또한 상기 데이터 교환 관리 모듈을 통해, 상기 제1 클라이언트 디바이스의 헤드 트랙킹 메타데이터 및 상기 식별된 그래픽 엘리먼트를 상기 제2 클라이언트 디바이스에 전송하도록 구성되며, 상기 시스템은 상기 3D 가상 환경의 사용자들 사이에서 비디오 및 오디오 데이터의 교환을 가능하게 하여 상기 3D 가상 환경에서 비디오 통신을 제공하는, 시스템.
  12. 제11항에 있어서, 상기 제2 클라이언트 디바이스는,
    상기 제1 사용자의 사용자 그래픽 표현의 머리의 움직임을 조정하기 위해 상기 헤드 트래킹 메타데이터를 수신하고;
    상기 제1 사용자의 사용자 그래픽 표현 및 대응하는 그래픽 엘리먼트를 포함하는 상기 제2 가상 카메라의 뷰의 수정된 표현을 렌더링하고 제시하도록
    구성되는, 시스템.
  13. 제11항에 있어서, 상기 제1 사용자의 컬러 이미지 프레임으로부터 상기 주요 얼굴 랜드마크가 그것의 좌표와 함께 취득되고 식별되는, 시스템.
  14. 제11항에 있어서, 상기 머신 비전 모듈은:
    상기 제1 가상 카메라의 뷰를 상기 주요 얼굴 랜드마크의 좌표에 연관시키고;
    상기 제1 사용자의 머리의 움직임에 기초하여 6 자유도에서 상기 주요 얼굴 랜드마크의 움직임을 추적하고;
    상기 추적된 주요 얼굴 랜드마크의 움직임에 기초하여 상기 제1 가상 카메라의 위치 및 방위를 조정하도록
    구성되는, 시스템.
  15. 제14항에 있어서, 상기 머신 비전 모듈은 상기 가상 카메라의 위치 및 방위의 조정을 제한하기 위해 상기 자유도 중 하나 이상에 대해 임계값을 구현하는, 시스템.
  16. 제15항에 있어서, 상기 머신 비전 모듈은 상기 임계값에 도달한 후에만 상기 자유도 각각에서의 머리의 움직임이 상기 가상 카메라의 대응하는 변화를 초래하도록 상기 임계값을 구현하는, 시스템.
  17. 제15항에 있어서, 상기 머신 비전 모듈은 상기 임계값에 도달한 후 상기 자유도 각각에서의 머리의 움직임과 연관된 상기 가상 카메라의 움직임이 정지되도록 상기 임계값을 구현하는, 시스템.
  18. 제14항에 있어서, 상기 머신 비전 모듈은 상기 자유도 중 하나 이상에 대해 승수값을 구현하여 상기 머리의 각 움직임에 대한 상기 가상 카메라의 움직임을 증가시키는, 시스템.
  19. 제14항에 있어서, 상기 3D 가상 환경은 기하학적으로 배열되는 사용자 그래픽 표현 및 그 대응하는 가상 카메라에 대한 위치를 포함하고, 상기 가상 카메라의 위치 및 방위의 조정은 상기 주요 얼굴 랜드마크의 수평 회전에 기초하여, 상기 기하학적으로 배열되는 미리 결정된 경로 상에서 상기 가상 카메라가 이동하도록 제어되는, 시스템.
  20. 명령어가 저장되어 있는 비일시적 컴퓨터 판독 가능 매체에 있어서, 상기 명령어는 프로세서와 메모리를 포함하는 적어도 하나의 서버 컴퓨터로 하여금:
    각각 3D 가상 환경 내에 대응하는 사용자 그래픽 표현을 갖는 복수의 클라이언트 디바이스에 의해 액세스되도록 구성되는 3D 가상 환경을 구현하는 단계― 각각의 사용자 그래픽 표현은, 각각 상기 3D 가상 환경 내에 대응하는 사용자 그래픽 표현을 갖는 복수의 클라이언트의 디바이스에 의해 액세스되도록 구성되는 3D 가상 환경을 구현하는 3D의 뷰를 포함하는 대응하는 가상 카메라를 갖고, 각각의 사용자 그래픽 표현은 디스플레이를 통해 상기 클라이언트 디바이스의 대응하는 사용자에게 제시되는 상기 3D 가상 환경의 뷰를 포함하는 대응하는 가상 카메라를 가지며, 상기 적어도 하나의 서버 컴퓨터는 상기 3D 가상 환경의 사용자들 사이에서 비디오 및 오디오 데이터의 교환을 가능하게 하여 상기 3D 가상 환경에서 비디오 통신을 제공함 ―;
    제1 클라이언트 디바이스의 제1 사용자의 얼굴의 비디오로부터 취득되는 주요 얼굴 랜드마크의 움직임 추적에 응답하여 생성되는 헤드 트래킹 정보를 포함하는 제1 클라이언트 디바이스의 헤드 트래킹 메타데이터를 수신하는 단계;
    제2 클라이언트 디바이스의 가상 카메라의 시야 내에서 그래픽 엘리먼트를 식별하는 단계― 상기 식별된 그래픽 엘리먼트는 상기 제1 사용자의 사용자 그래픽 표현을 포함함 ―; 및
    상기 제1 클라이언트 디바이스의 헤드 트랙킹 메타데이터 및 상기 식별된 그래픽 엘리먼트를 상기 제2 클라이언트 디바이스에 전송하는 단계를 포함하는 단계들을 수행하게 하는, 비일시적 컴퓨터 판독 가능 매체.
KR1020230040949A 2022-03-30 2023-03-29 가상 환경에서의 비디오 통신을 위한 헤드 트래킹 기반의 미디어 선택 KR20230141598A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/709,093 US20230316663A1 (en) 2022-03-30 2022-03-30 Head-tracking based media selection for video communications in virtual environments
US17/709,093 2022-03-30

Publications (1)

Publication Number Publication Date
KR20230141598A true KR20230141598A (ko) 2023-10-10

Family

ID=85778948

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230040949A KR20230141598A (ko) 2022-03-30 2023-03-29 가상 환경에서의 비디오 통신을 위한 헤드 트래킹 기반의 미디어 선택

Country Status (5)

Country Link
US (1) US20230316663A1 (ko)
EP (1) EP4254943A1 (ko)
JP (1) JP2023152955A (ko)
KR (1) KR20230141598A (ko)
CN (1) CN116893736A (ko)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2003201032A1 (en) * 2002-01-07 2003-07-24 Stephen James Crampton Method and apparatus for an avatar user interface system
EP3219098B1 (en) * 2014-11-14 2021-10-06 PCMS Holdings, Inc. System and method for 3d telepresence
WO2018153267A1 (zh) * 2017-02-24 2018-08-30 腾讯科技(深圳)有限公司 群组视频会话的方法及网络设备
US10841537B2 (en) * 2017-06-09 2020-11-17 Pcms Holdings, Inc. Spatially faithful telepresence supporting varying geometries and moving users
US10573061B2 (en) * 2017-07-07 2020-02-25 Nvidia Corporation Saccadic redirection for virtual reality locomotion
US20220070235A1 (en) * 2020-08-28 2022-03-03 Tmrw Foundation Ip S.Àr.L. System and method enabling interactions in virtual environments with virtual presence

Also Published As

Publication number Publication date
US20230316663A1 (en) 2023-10-05
JP2023152955A (ja) 2023-10-17
CN116893736A (zh) 2023-10-17
EP4254943A1 (en) 2023-10-04

Similar Documents

Publication Publication Date Title
US11792367B2 (en) Method and system for virtual 3D communications
US10602121B2 (en) Method, system and apparatus for capture-based immersive telepresence in virtual environment
US11461942B2 (en) Generating and signaling transition between panoramic images
Müller et al. PanoVC: Pervasive telepresence using mobile phones
KR20200013232A (ko) 가상 현실 데이터를 맞춤화하기 위한 방법들 및 시스템들
US11765332B2 (en) Virtual 3D communications with participant viewpoint adjustment
US20230146178A1 (en) Attention based audio adjustment in virtual environments
Zhu et al. 3D modeling and motion parallax for improved videoconferencing
US20230316663A1 (en) Head-tracking based media selection for video communications in virtual environments
EP4376385A1 (en) System and method enabling live broadcasting sessions in virtual environments
US20240022688A1 (en) Multiuser teleconferencing with spotlight feature
WO2023156984A1 (en) Movable virtual camera for improved meeting views in 3d virtual
US20230247180A1 (en) Updating a model of a participant of a three dimensional video conference call
EP4325342A1 (en) Level of detail management within virtual environments
Young Removing spatial boundaries in immersive mobile communications