KR20220029471A - 공간 비디오 기반 존재 - Google Patents

공간 비디오 기반 존재 Download PDF

Info

Publication number
KR20220029471A
KR20220029471A KR1020210113905A KR20210113905A KR20220029471A KR 20220029471 A KR20220029471 A KR 20220029471A KR 1020210113905 A KR1020210113905 A KR 1020210113905A KR 20210113905 A KR20210113905 A KR 20210113905A KR 20220029471 A KR20220029471 A KR 20220029471A
Authority
KR
South Korea
Prior art keywords
user
virtual
virtual environment
client device
data
Prior art date
Application number
KR1020210113905A
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
Priority claimed from US17/006,327 external-priority patent/US20220070235A1/en
Application filed by 티엠알더블유 파운데이션 아이피 에스에이알엘 filed Critical 티엠알더블유 파운데이션 아이피 에스에이알엘
Publication of KR20220029471A publication Critical patent/KR20220029471A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/4302Content synchronisation processes, e.g. decoder synchronisation
    • H04N21/4307Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
    • H04N21/43076Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen of the same content streams on multiple devices, e.g. when family members are watching the same movie on different devices
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • H04L65/403Arrangements for multi-party communication, e.g. for conferences
    • H04L65/4053Arrangements for multi-party communication, e.g. for conferences without floor control
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/003Navigation within 3D models or images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/194Segmentation; Edge detection involving foreground-background segmentation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • H04L65/401Support for services or applications wherein the services involve a main real-time session and one or more additional parallel real-time or time sensitive sessions, e.g. white board sharing or spawning of a subconference
    • H04L65/4015Support for services or applications wherein the services involve a main real-time session and one or more additional parallel real-time or time sensitive sessions, e.g. white board sharing or spawning of a subconference where at least one of the additional parallel sessions is real time or time sensitive, e.g. white board sharing, collaboration or spawning of a subconference
    • 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/111Transformation of image signals corresponding to virtual viewpoints, e.g. spatial image interpolation
    • H04N13/117Transformation of image signals corresponding to virtual viewpoints, e.g. spatial image interpolation the virtual viewpoint locations being selected by the viewers or determined by viewer tracking
    • 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/122Improving the 3D impression of stereoscopic images by modifying image signal contents, e.g. by filtering or adding monoscopic depth cues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/30Image reproducers
    • H04N13/361Reproducing mixed stereoscopic images; Reproducing mixed monoscopic and stereoscopic images, e.g. a stereoscopic image overlay window on a monoscopic image background
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/21805Source of audio or video content, e.g. local disk arrays enabling multiple viewpoints, e.g. using a plurality of cameras
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/222Secondary servers, e.g. proxy server, cable television Head-end
    • H04N21/2223Secondary servers, e.g. proxy server, cable television Head-end being a public access point, e.g. for downloading to or uploading from clients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/441Acquiring end-user identification, e.g. using personal code sent by the remote control or by inserting a card
    • H04N21/4415Acquiring end-user identification, e.g. using personal code sent by the remote control or by inserting a card using biometric characteristics of the user, e.g. by voice recognition or fingerprint scanning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/47205End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for manipulating displayed content, e.g. interacting with MPEG-4 objects, editing locally
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/4781Games
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/4788Supplemental services, e.g. displaying phone caller identification, shopping application communicating with other users, e.g. chatting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6587Control parameters, e.g. trick play commands, viewpoint selection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/816Monomedia components thereof involving special video data, e.g 3D video
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/2224Studio circuitry; Studio devices; Studio equipment related to virtual studio applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • H04N7/15Conference systems
    • 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
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B5/00Electrically-operated educational appliances
    • G09B5/08Electrically-operated educational appliances providing for individual presentation of information to a plurality of student stations
    • G09B5/12Electrically-operated educational appliances providing for individual presentation of information to a plurality of student stations different stations being capable of presenting different information simultaneously

Abstract

가상 환경에서 상호작용을 가능하게 하는 시스템은 적어도 하나의 가상 환경을 포함하는 가상 환경 플랫폼을 구현하는 데이터 및 명령어를 저장하는 메모리 및 적어도 하나의 프로세서를 포함하는 하나 이상의 클라우드 서버 컴퓨터; 클라이언트 장치의 사용자로부터 라이브 데이터 피드를 획득하는 적어도 하나의 카메라; 및 하나 이상의 클라우드 서버 컴퓨터 및 적어도 하나의 카메라와 통신 가능하게 연결된 클라이언트 장치를 포함한다. 이 시스템은 선택된 가상 환경에 삽입되고 업데이트되는 라이브 데이터 피드로부터 사용자 그래픽 표현을 생성하여 가상 환경에서 실시간 다중 사용자 협업 및 상호작용을 가능하게 한다. 적합한 시스템 아키텍처 및 그 방법이 또한 여기에 개시되어 있다.

Description

공간 비디오 기반 존재{SPATIAL VIDEO-BASED PRESENCE}
(관련 출원에 대한 상호 참조)
본 출원은 본 명에서에 참조로서 통합된 "공간 인식 멀티미디어 라우터 시스템 및 방법"이라는 제목으로 동시에 출원된 동시 계류 중인 미국 특허 출원번호 제XX/YYY,ZZZ호에 관한 것이다.
2020년의 신종 코로나바이러스 펜데믹과 같은 상황으로 인해, 전세계적으로 이동 제한이 불가피해짐에 따라 미팅, 학습, 쇼핑 및 업무가 이루어지는 방식이 변화하여, 원격 협업 및 상호작용(특히 사회적 상호작용을 포함)이 점점 더 중요해졌다. 실시간 커뮤니케이션 및 협업을 가능하게 하는 다양한 솔루션이 이미 시장에서 이용 가능하며, 채팅 애플리케이션에서부터 스카이프(SkypeTM) 및 줌(ZoomTM)과 같은 화상 통화에 이르기까지, 또는 프래글리(PragliTM)에서 제공하는 것과 같은 2D 아바타로 표현되는 원격 팀을 위한 가상 사무실에 이르기까지 다양하다.
확장 현실(예컨대, 증강 현실 및/또는 가상 현실)과 같은 웨어러블 몰입형 기술의 현재 개발 상태와 상대적으로 낮은 기술 적용률을 고려할 때, 대부분의 솔루션이 대부분의 상호작용이 이루어지는 평평한, 2차원 사용자 인터페이스를 제공한다는 것은 이해할 수 있다. 그러나, 낮은 수준의 현실감, 사용자 존재의 부족, 공유 공간의 부족 및 상호작용의 품질로 인해 실제 경험을 이러한 솔루션과 비교하면, 많은 사용자에게 외로움이나 지루함을 느끼게 하여 때로는 직접 동일한 활동을 수행할 때보다 낮은 생산성을 초래한다.
기존 컴퓨팅 장치와 카메라를 사용하면서 값비싼 장비(예컨대, 헤드 마운트 디스플레이)를 구매하고 새롭거나 값비싼 인프라를 구현할 필요 없이, 원격으로 상호작용할 때 사용자에게 현실감, 자신과 참가자의 존재감, 마치 실제 생활과 같은 상호작용감을 제공하는 기술 솔루션이 필요하다.
본 설명은 선택된 개념을 단순화된 형태로 소개하기 위해 제공된 것이며, 아래의 발명을 실시하기 위한 구체적인 내용에서 더 설명된다. 본 설명은 청구된 주제의 주요 특징을 식별하기 위한 것이 아니며 청구된 주제의 범위를 결정하는데 도움을 주기 위한 것도 아니다.
본 개시는 일반적으로 컴퓨터 시스템에 관한 것이고, 보다 구체적으로 가상 환경에서 상호작용, 특히, 사회적 상호작용을 가능하게 하는 시스템 및 방법; 이미지 처리 기반 가상 프레전스(presence) 시스템 및 방법; 사용자 그래픽 표현 기반 사용자 인증 시스템 및 방법; 가상 환경 내에서 가상으로 방송하기 위한 시스템 및 방법; 가상 환경 내에서 애플리케이션을 전달하기 위한 시스템 및 방법; 가상 환경 클라우드 서버 컴퓨터에서 클라우드 컴퓨팅 기반 가상 컴퓨팅 리소스를 프로비저닝하는 시스템 및 방법; 및 접근하는 사용자 그래픽 표현 간의 애드혹(ad hoc) 가상 통신을 가능하게 하는 시스템 및 방법에 관한 것이다.
가상 환경에서 상호작용(특히, 사회적 상호작용을 포함)을 가능하게 하는 본 개시의 시스템은 적어도 하나의 가상 환경을 포함하는 가상 환경 플랫폼을 구현하는 데이터 및 명령어를 저장하는 메모리 및 적어도 하나의 프로세서를 포함하는 하나 이상의 클라우드 서버 컴퓨터를 포함한다. 하나 이상의 클라우드 서버 컴퓨터는 적어도 하나의 가상 환경의 3차원 좌표 위치에 있는 카메라에 의해 획득된 라이브 데이터 피드로부터 생성된 사용자 그래픽 표현을 삽입하고, 적어도 하나의 가상 환경에서 사용자 그래픽 표현을 업데이트하고, 그리고 가상 환경에서 실시간 다중 사용자 협업 및 상호작용을 가능하게 하도록 구성된다.
일 실시예에서, 이 시스템은 클라이언트 장치의 하나 이상의 사용자로부터 라이브 데이터 피드를 획득하는 적어도 하나의 카메라를 더 포함한다. 또한, 시스템은 하나 이상의 클라우드 서버 컴퓨터 및 적어도 하나의 카메라에 통신 가능하게 연결된 클라이언트 장치를 포함한다. 이 시스템은 가상 환경의 3차원 좌표에 삽입되고 그 안에서 라이브 데이터 피드를 사용하여 업데이트되는, 라이브 데이터 피드로부터 사용자 그래픽 표현을 생성한다. 설명된 실시예들에서, 사용자 그래픽 표현을 가상 환경에 삽입하는 것은 사용자 그래픽 표현이 가상 환경 내에(예를 들어, 지정된 3D 좌표 위치에) 나타나도록 가상 환경 내에 사용자 그래픽 표현을 그래픽적으로 결합하는 것을 포함한다. 가상 환경 플랫폼은 하나 이상의 클라이언트 장치에 가상 환경을 제공한다. 시스템은 클라이언트 장치를 통해 그래픽 사용자 인터페이스에 액세스하여 가상 환경에서 실시간 다중 사용자 협업 및 (사회적) 상호작용을 가능하게 한다. 본 개시의 클라이언트 또는 피어 장치는 예를 들어 컴퓨터, 헤드셋, 휴대 전화, 안경, 투명 스크린, 태블릿 및 일반적으로 카메라가 내장된 입력 장치 또는 카메라에 연결되고 상기 카메라로부터 데이터 피드를 수신할 수 있는 입력 장치를 포함할 수 있다.
일부 실시예에서, 가상 환경은 다운로드 가능한 클라이언트 애플리케이션 또는 웹 브라우저 애플리케이션을 통해 클라이언트 장치에 의해 액세스 가능하다.
일부 실시예에서, 사용자 그래픽 표현은 배경이 제거된 사용자 3D 가상 컷아웃(cutout), 배경이 제거된 사용자 실시간 3D 가상 컷아웃, 배경이 제거된 비디오, 또는 배경이 제거되지 않은 비디오를 포함한다. 일부 실시예에서, 사용자 그래픽 표현은 배경이 제거된 사용자 업로드 또는 제3자 소스 사진으로 구성된 사용자 3D 가상 컷아웃, 또는 카메라에서 얻은 실시간 2D, 스테레오, 깊이 데이터 또는 3D 라이브 비디오 스트림 데이터 피드를 기반으로 생성되어 사용자의 실시간 비디오 스트림을 포함하는 배경이 제거된 사용자 실시간 3D 가상 컷아웃, 또는 배경이 제거되지 않은 비디오, 또는 배경이 제거되고 다각형 구조를 사용하여 디스플레이된 비디오 등이다. 이러한 다각형 구조는 비디오를 지원하는 가상 프레임으로 사용되는 쿼드 구조 또는 더 복잡한 3D 구조일 수 있다. 또 다른 실시예에서, 이러한 사용자 그래픽 표현 중 하나 이상은 가상 환경 내의 3차원 좌표에 삽입되고 그 안에서 그래픽적으로 결합된다.
사용자 3D 가상 컷아웃은 사용자 업로드 또는 제3자 소스 2D 사진으로 구성된 사용자의 가상 복제본을 포함할 수 있다. 일 실시예에서, 사용자 3D 가상 컷아웃은 사용자 업로드 또는 제3자 소스 2D 사진을 입력 데이터로서 사용하여 머신 비전 기술을 통해 3D 가상 재구성 프로세스를 통해 생성되어, 배경이 제거된 사용자의 3D 메시 또는 3D 포인트 클라우드를 생성한다. 사용자 실시간 3D 가상 컷아웃은 카메라로부터 얻은 실시간 2D 또는 3D 라이브 비디오 스트림 데이터 피드에 기반하고 사용자 배경이 제거된 후의 사용자의 가상 복제본을 포함할 수 있다. 일 실시예에서, 사용자 실시간 3D 가상 컷아웃은 배경이 제거된 사용자의 3D 메쉬 또는 3D 포인트 클라우드를 생성함으로써 입력 데이터로서 사용자 라이브 데이터 피드를 사용하는 머신 비전 기술을 통한 3D 가상 재구성 프로세스를 통해 생성된다. 배경이 제거된 비디오는 클라이언트 장치로 스트리밍되는 비디오를 포함할 수 있으며, 배경 제거 프로세스는 비디오에서 수행되어 사용자만 볼 수 있고 수신 클라이언트 장치 상에 다각형 구조를 사용하여 디스플레이될 수 있다. 배경이 제거되지 않은 비디오는 클라이언트 장치로 스트리밍되는 비디오를 포함할 수 있으며, 이 비디오는 카메라 캡처를 충실하게 나타내므로 사용자와 그의 배경을 볼 수 있고 수신 클라이언트 장치 상에 다각형 구조를 사용하여 디스플레이된다.
일부 실시예에서, 라이브 데이터 피드 및/또는 사용자 업로드 또는 제3자 소스 2D 사진에 포함된 입력 데이터로 사용되는 데이터는 여러가지 중에서도 2D 또는 3D 이미지 데이터, 3D 기하학, 비디오 데이터, 미디어 데이터, 오디오 데이터, 텍스트 데이터, 햅틱 데이터, 시간 데이터, 3D 엔티티, 3D 동적 오브젝트, 텍스트 데이터, 시간 데이터, 메타데이터, 우선 순위 데이터, 보안 데이터, 위치 데이터, 조명 데이터, 깊이 데이터, 적외선 데이터 등을 포함한다.
일부 실시예에서, 사용자 그래픽 표현은 평면 시점, 3인칭 시점, 또는 1인칭 시점, 또는 자기 보기 시점과 연관된다. 일 실시예에서, 사용자 그래픽 표현을 통해 가상 환경에 액세스할 때 사용자의 보기 시점은 평면 시점, 3인칭 보기 시점, 또는 1인칭 보기 시점, 또는 자기 보기 시점 또는 방송 카메라 시점이다. 자기 보기 시점은 다른 사용자 그래픽 표현에 의해 보여지는 사용자 그래픽 표현, 및 선택사항으로서 사용자 그래픽 표현의 가상 배경을 포함할 수 있다.
또 다른 실시예에서, 보기 시점은 사용자가 그래픽 사용자 인터페이스를 통해 가상 환경을 수동으로 탐색함에 따라 업데이트된다.
또 다른 실시예에서, 보기 시점은 가상 카메라를 사용하여 자동으로 설정되고 업데이트되며, 라이브 데이터 피드의 보기 시점은 사용자 그래픽 표현 및 가상 카메라의 보기 시점과 연관되고, 가상 카메라는 사용자의 눈과 머리 기울이기 데이터 또는 머리 회전 데이터 또는 이들의 조합을 추적 및 분석하여 자동으로 업데이트된다. 일 실시예에서, 보기 관시은 가상으로 배치되고 사용자 그래픽 표현 앞에(예를 들어, 배경이 제거되지 않은 비디오 또는 배경이 제거된 비디오, 또는 사용자 3D 가상 컷아웃 또는 사용자 실시간 3D 가상 컷아웃 앞에) 정렬된 하나 이상의 가상 카메라를 사용하여 자동으로 설정되고 업데이트된다. 일 실시예에서, 하나 이상의 가상 카메라는 눈높이에서 바깥쪽을 가리킬 수 있다. 다른 실시예에서, 2개의 가상 카메라(눈당 하나씩)는 두 눈 높이에서 바깥쪽을 가리킨다. 또 다른 실시예에서, 하나 이상의 가상 카메라는 사용자 그래픽 표현의 머리 위치의 중심으로부터 바깥쪽을 가리킬 수 있다. 또 다른 실시예에서, 하나 이상의 가상 카메라는 사용자 그래픽 표현의 중심으로부터 바깥쪽을 가리킬 수 있다. 또 다른 실시예에서, 하나 이상의 가상 카메라는 예를 들어 사용자 그래픽 표현의 머리 높이에서 사용자 그래픽 표현 앞에 배치될 수 있고, 자기 보기 시점에 있을 때 사용자 그래픽 표현을 향할 수 있다. 카메라에 의해 캡처된 사용자의 보기 시점은 사용자 그래픽 표현 및 컴퓨터 비전을 사용하는 관련 가상 카메라(들)의 보기 시점과 연관되어 그에 따라 가상 카메라(들)를 스티어링한다. 또한, 가상 카메라는 사용자의 눈과 머리 기울이기 데이터 또는 머리 회전 데이터 또는 이들의 조합을 추적 및 분석하여 자동으로 설정되고 업데이트된다.
또 다른 실시예에서, 자기 보기 시점은 배경 제거된 (예를 들어, 전화 카메라의 "셀카 모드"에서와 같이) 다른 사용자 그래픽 표현에 의해 보여지는 그래픽 표현 컷아웃을 포함한다. 자기 보기 시점은 대안으로서 다른 참가자들이 보는 자신의 인식을 이해하기 위한 사용자 그래픽 표현 뒤에 가상 환경의 가상 배경을 포함한다. 사용자 그래픽 표현의 가상 배경을 포함할 때 자기 보기 시점은 가상 카메라에 의해 캡처될 수 있는 사용자 그래픽 표현 주변 영역으로 설정될 수 있으며, 결과적으로 원형, 정사각형, 직사각형 또는 다른 자기 보기 시점의 프레임에 적합한 모양일 수 있다.
일부 실시예에서, 가상 환경 내의 사용자 그래픽 표현의 업데이트는 사용자 상태를 업데이트하는 것을 포함한다. 일 실시예에서, 사용 가능한 사용자 상태는 자리 비움, 통화 중, 사용 가능, 오프라인, 회의 통화 중 또는 미팅 중을 포함한다. 사용자 상태는 그래픽 사용자 인터페이스를 통해 수동으로 업데이트될 수 있다. 다른 실시예에서, 사용자 상태는 사용자 상태 데이터를 포함하고 그것을 동기화하는 사용자 캘린더 정보에 연결함으로써 자동으로 업데이트된다. 또 다른 실시예에서, 사용자 상태는 프로그래밍 개발 환경, 3D 편집기 또는 사용자 상태에 대해 동기화될 수 있는 사용 중 상태를 지정하는 다른 생산성 소프트웨어와 같은 특정 프로그램의 사용의 탐지를 통해 자동으로 업데이트된다. 또 다른 실시예에서, 사용자 상태는 카메라 피드로부터 획득된 데이터에 기초하여 머신 비전 알고리즘을 통해 자동으로 업데이트될 수 있다.
일부 실시예에서, 대응하는 사용자 그래픽 표현을 통한 사용자 간의 상호작용(특히 사회적 상호작용을 포함)은 채팅; 화면 공유; 호스트 옵션; 원격 감지; 녹음; 투표; 문서 공유; 이모티콘 보내기; 의제 공유 및 편집; 가상 허그; 손 들기; 악수; 걷기; 대화형 애플리케이션 또는 정적 또는 대화형 3D 자산, 애니메이션 또는 2D 텍스처로 구성된 콘텐츠 추가; 회의 요약 준비; 움직이는 오브젝트; 콘텐츠 프로젝팅; 레이저 포인팅; 게임 플레이; 구매; 애드혹 가상 통신에 참여하는 것; 개인 또는 그룹 대화에 참여하는 것을 포함한다.
일부 실시예에서, 가상 환경은 하나 이상의 클라우드 서버 컴퓨터의 영구 메모리 저장소에 저장된 영구 가상 환경 또는 하나 이상의 클라우드 서버 컴퓨터의 임시 메모리 저장소에 저장된 임시 가상 환경이다. 일 실시예에서, 가상 환경은 영구 가상 환경에 지정된 적어도 하나의 클라우드 서버 컴퓨터의 영구 메모리 저장소에 저장되는, 커스터마이제이션을 포함하여 그 위에서 수행된 변경을 기록하는 영구 가상 환경이다. 다른 실시예에서, 가상 환경은 클라우드 서버의 임시 메모리 저장소에 저장된 임시 가상 환경이다.
일부 실시예에서, 가상 환경의 배열은 가상 환경 플랫폼으로부터 선택된 하나 이상의 가상 환경 버티컬과 관련된 가상 환경의 컨텍스트 테마와 연관된다. 일 실시예에서, 가능한 배열은 교육, 회의, 작업, 쇼핑, 서비스, 사교 또는 오락, 또는 이들의 조합에서 사용하기 위한 배열을 포함한다. 하나 이상의 버티컬 내 가상 환경의 복합물은 가상 환경 클러스터를 나타낼 수 있다.
다른 실시예에서, 가상 환경 클러스터는 적어도 복수의 교실을 포함하는 가상 학교; 또는 적어도 복수의 작업 영역과 회의실을 포함하는 가상 회사(여기서, 작업 영역 중 일부는 다른 조직의 구성원을 위한 공동 작업 또는 네트워킹 공간으로 공유됨); 또는 라이브 엔터테인먼트 공연자의 캡처를 포함하는 라이브 이벤트를 호스팅하는 적어도 하나의 실내 또는 실외 이벤트 영역을 포함하는 이벤트 시설; 또는 적어도 복수의 상점을 포함하는 가상 쇼핑몰; 또는 적어도 복수의 플레이 영역을 포함하는 가상 카지노; 또는 적어도 복수의 서비스 영역을 포함하는 가상 은행; 또는 라이브 디스크 자키(DJ) 연주자의 캡처를 포함하는 적어도 복수의 VIP 및/또는 파티 영역을 포함하는 가상 나이트클럽; 또는 복수의 개인 또는 공공 노래방을 포함하는 가상 노래방 엔터테인먼트 시설; 또는 사용자가 가상 유람선에서 내려 가상 영역을 방문할 수 있게 하는 풍경, 섬, 마을 및 도시를 포함하는 유람선 외부의 영역과 함께 유람선 내의 복수의 가상 영역을 포함하는 가상 유람선; 또는 e-스포츠 경기장 또는 체육관 중 하나 이상이다.
다른 실시예에서, 가상 환경은 가상 리소스를 포함하는 가상 컴퓨터를 더 포함한다. 일 실시예에서, 가상 리소스는 클라이언트 장치를 통해 액세스되고 상기 가상 컴퓨터 리소스에 관리 도구가 할당되는 하나 이상의 클라우드 컴퓨터 리소스로부터의 것이다.
일부 실시예에서, 가상 환경 플랫폼은 가상 환경의 복수의 인스턴스에 대한 원격 이벤트의 멀티캐스팅(multi-casting) 또는 방송(broadcasting)을 가능하게 하도록 구성된다. 예를 들어, 이는 멀티캐스트되는 동일한 라이브 이벤트를 경험하기 위해 세계 여러 지역으로부터의 많은 사용자를 수용하기 위해 수행될 수 있다.
일부 실시예에서, 가상 환경으로 리디렉팅하는 클릭 가능한 링크는 제3자 웹사이트, 애플리케이션 또는 비디오 게임을 포함하는 하나 이상의 제3자 소스에 내장된다.
본 개시의 다른 양태에서, 가상 환경에서 상호작용(사회적 상호작용을 포함)을 가능하게 하는 방법은 적어도 하나의 프로세서를 포함하는 하나 이상의 클라우드 서버 컴퓨터의 메모리에 적어도 하나의 가상 환경을 포함하는 가상 환경 플랫폼을 제공하는 단계; 적어도 하나의 대응하는 클라이언트 장치로부터 (예를 들어, 적어도 하나의 카메라에 의해 캡처된 사용자의) 라이브 데이터 피드를 수신하는 단계; 라이브 데이터 피드로부터 사용자 그래픽 표현을 생성하는 단계; 사용자 그래픽 표현을 가상 환경의 3차원 좌표 위치에 삽입하는 단계; 라이브 데이터 피드로부터 가상 환경 내의 사용자 그래픽 표현을 업데이트하는 단계; 가상 환경에서 상호작용에서 생성된 데이터를 처리하는 단계를 포함한다. 이러한 상호작용은 특히 가상 환경에서의 사회적 상호작용을 포함할 수 있다. 이러한 상호작용을 위해, 이 방법은 업데이트된 가상 환경을 클라이언트 장치에 직접 P2P 통신에 의해 또는 하나 이상의 클라우드 서버의 사용을 통해 간접적으로 제공하여 실시간 다중 사용자 협업, 가상 환경에서의 상호작용을 가능하게 하는 단계를 포함할 수 있다.
일부 실시예에서, 이 시스템은 (예를 들어, 가상 환경 플랫폼을 통해) 애드혹 가상 통신을 생성하는 것을 추가로 가능하게 할 수 있으며, 이는 가상 환경에서의 현재 보기 시점 또는 위치를 변경할 필요 없이 사용자 그래픽 표현 사이에 애드혹 음성 통신 채널을 생성하는 것을 포함할 수 있다. 예를 들어, 사용자 그래픽 표현은 다른 사용자 그래픽 표현에 접근하고 두 사용자 그래픽 표현 영역 모두가 위치한 가상 환경 내의 장소에서 애드혹 음성 대화에 참여할 수 있다. 그러한 통신은 예를 들어 사용자 그래픽 표현 간의 거리, 위치 및 방향, 및/또는 현재 가용성 상태(예컨대, 사용 가능 또는 사용 불가능) 또는 이러한 애드혹 통신에 대한 상태 구성 또는 이들의 조합을 고려하여 가능해질 수 있다. 접근하는 사용자 그래픽 표현은 애드혹 통신이 가능하다고 신호를 보내는, 다른 사용자 그래픽 표현 상의 시각적 피드백을 보고, 그러므로 두 사용자 그래픽 표현 사이의 대화 시작을 설정한다. 여기서, 접근하는 사용자는 말하고 다른 사용자는 듣고 대답할 수 있다. 다른 실시예에서, 가상 환경 플랫폼은 클라이언트 장치에 의해 수행되는 단계들에 응답하여 생성된 데이터의 프로세싱을 통해 가상 환경에서 애드혹 가상 통신에 참여하는 것을 가능하게 하며, 상기 단계들은: 사용자 그래픽 표현에 접근하는 단계; 사용자 그래픽 표현을 선택하고 클릭하는 단계; 애드혹 가상 통신 참여 초대를 다른 사용자 그래픽 표현으로 전송하거나 또는 다른 사용자 그래픽 표현으로부터 수신하는 단계; 및 수신된 초대를 수락하는 단계를 포함한다. 이러한 시나리오에서, 플랫폼은 사용자 클라이언트 장치 사이의 통신 채널을 열 수 있으며, 여기서 사용자 그래픽 표현은 가상 환경의 가상 공간에서 대화를 유지한다.
일부 실시예에서, 방법은 대화에 하나 이상의 사용자를 참여시키는 단계, 사용자 3D 가상 컷아웃으로부터 사용자 실시간 3D 가상 컷아웃, 또는 배경이 제거된 비디오, 또는 배경이 제거되지 않은 비디오로 사용자 그래픽 표현을 전환하는 단계; 및 사용자 클라이언트 장치 간의 피어 투 피어(P2P) 통신 채널을 개방하는 단계를 더 포함한다. 일 실시예에서, 대화에 2명 이상의 사용자를 참여시키는 단계는 사용자 그래픽 표현에 접근하는 단계; 사용자 그래픽 표현을 선택하고 클릭하는 단계; 대화 참여 초대를 다른 사용자 그래픽 표현으로 전송하거나 또는 다른 사용자 그래픽 표현으로부터 받는 단계; 및 수신된 초대를 수락하는 단계를 포함한다. 사용자 클라이언트 장치 간의 통신 채널을 여는 단계는 처리 및 렌더링이 클라이언트 장치에 의해 수행되는 경우 수행될 수 있고, 또는 적어도 하나의 클라우드 서버 컴퓨터에서 또는 적어도 하나의 클라우드 서버와 클라이언트 장치 사이에서 처리 및 렌더링이 수행될 때 하나 이상의 클라우드 서버 컴퓨터를 통해 간접 통신 채널을 여는 단계가 수행될 수도 있다. 다른 실시예에서, 대화는 참가자의 3D 가상 컷아웃 사용자로부터 실시간 오디오를 송수신하는 것을 포함한다. 다른 실시예에서, 대화는 참가자의 사용자 실시간 3D 비디오 컷아웃 또는 배경이 제거된 비디오, 또는 배경이 제거되지 않은 비디오로부터 디스플레이되는 실시간 오디오 및 비디오를 전송하고 수신하는 것을 포함한다.
일부 실시예에서, 가상 환경에서 상호작용을 가능하게 하는 방법은 가상 환경으로 리디렉팅하는 클릭 가능한 링크를 제3자 웹사이트, 애플리케이션 또는 비디오 게임을 포함하는 하나 이상의 제3자 소스에 임베딩하는 단계를 더 포함한다.
본 개시의 다른 양태에서, 데이터 처리 시스템은 적어도 하나의 클라우드 서버 컴퓨터를 포함하는 하나 이상의 컴퓨팅 장치를 포함하고, 상기 하나 이상의 컴퓨팅 장치는 이미지 처리 기능을 구현하는 데이터 및 명령어를 저장하는 적어도 하나의 프로세서 및 메모리를 포함하고, 여기서 데이터 처리 시스템의 하나 이상의 컴퓨팅 장치는 하이브리드 시스템 아키텍처에서 하나 이상의 클라우드 서버 컴퓨터와 2 이상의 클라이언트 장치의 하나 이상의 이미지 처리 조합에 의해 라이브 데이터 피드로부터 사용자 그래픽 표현을 생성하도록 구성된다. 일 실시예에서, 시스템은 이미지 및 미디어 처리 기능을 구현하는 명령 및 데이터를 저장하는 메모리 및 적어도 하나의 프로세서를 포함하는, 네트워크를 통해 서로 및 하나 이상의 클라우드 서버 컴퓨터에 통신 가능하게 연결된 2 이상의 클라이언트 장치; 및 적어도 하나의 클라이언트 장치의 적어도 한 명의 사용자로부터 라이브 데이터 피드를 획득하고 적어도 하나의 클라이언트 장치 및 하나 이상의 클라우드 서버 컴퓨터에 연결되는 적어도 하나의 카메라를 포함한다. 사용자 그래픽 표현은 하나 이상의 클라우드 서버 컴퓨터와 하나 이상의 클라이언트 장치의 하나 이상의 이미지 및 미디어 처리 조합에 의해 라이브 데이터 피드로부터 생성된다. 하나 이상의 클라우드 서버 컴퓨터와 하나 이상의 클라이언트 장치는 하이브리드 시스템 아키텍처를 통해 상호작용한다.
일부 실시예에서, 데이터 처리 시스템의 입력 데이터로 사용되는 데이터는 여러 가지 중에서도 2D 또는 3D 이미지 데이터, 3D 기하학, 비디오 데이터, 미디어 데이터, 오디오 데이터, 텍스트 데이터, 햅틱 데이터, 시간 데이터, 3D 엔티티, 3D 동적 오브젝트, 텍스트 데이터, 시간 데이터, 메타데이터, 우선 순위 데이터, 보안 데이터, 위치 데이터, 조명 데이터, 깊이 데이터, 적외선 데이터 등을 포함한다.
일부 실시예에서, 하이브리드 시스템 아키텍처는 클라이언트-서버 측 및 피어-투-피어(P2P) 측을 포함한다. 일 실시예에서 클라이언트-서버측은 웹 또는 애플리케이션 서버를 포함한다. 클라이언트-서버 측은 보안 통신 프로토콜; 마이크로 서비스; 데이터베이스 관리 시스템; 데이터베이스; 및/또는 분산 메시지 및 리소스 배포 플랫폼을 포함하도록 추가로 구성될 수 있다. 서버 측 구성 요소는 네트워크를 통해 서버와 통신하는 클라이언트 장치와 함께 제공될 수 있다. 클라이언트-서버 측은 클라이언트 측, 서버 측 또는 수신 클라이언트 측에 의해 수행되는 임의의 프로세싱을 포함하여, 네트워크를 통해 하나 이상의 클라이언트와 서버 간의 상호작용을 형성한다. 일 실시예에서, 대응하는 클라이언트 및 서버 중 하나 이상은 다양한 규칙 기반 작업 할당 조합에 따라 필요한 이미지 및 미디어 처리를 수행한다. 일 실시예에서, 웹 또는 애플리케이션 서버는 보안 통신 프로토콜을 사용하는 클라이언트 요청을 수신하고, 데이터베이스 관리 시스템을 사용하여 데이터베이스로부터의 요청에 대응하는 마이크로 서비스 또는 데이터를 요청함으로써 클라이언트 요청을 처리하도록 구성된다. 마이크로 서비스는 게시-구독 모델을 사용하는 분산 메시지 및 리소스 배포 플랫폼을 사용하여 배포된다.
P2P 측은 가상 환경에서 클라이언트 장치 간의 실시간 통신을 가능하게 하는 P2P 통신 프로토콜; 및 클라이언트 장치가 가상 환경에 포함된 라이브 세션 요소(예를 들어, 사용자 그래픽 표현)의 실시간 3D 렌더링을 수행할 수 있게 하도록 구성된 렌더링 엔진을 포함한다. 일 실시예에서, P2P 측은 클라이언트 장치가 가상 환경에서 실시간 컴퓨터 비전 태스크를 수행할 수 있게 하도록 구성된 컴퓨터 비전 라이브러리를 더 포함한다. 이러한 하이브리드 통신 모델을 사용하면, 각 세션에 웹 서비스 및 리소스를 제공하면서 지연 문제를 줄이는 사용자 간의 신속한 P2P 통신이 가능해져, 가상 환경에서 사용자 및 콘텐츠와의 복수의 상호작용이 가능해진다.
P2P 측은 클라이언트 장치 간의 상호작용 및 P2P 측으로부터의 하나 또는 다른 클라이언트 장치가 수행할 수 있는 임의의 프로세싱을 정의한다. 일부 실시예에서, P2P 측은 비디오 및 데이터 처리 작업 및 클라이언트 장치 간의 동기화, 스트리밍 및 렌더링에 사용된다. 다른 실시예에서, P2P 측은 비디오 스트리밍, 렌더링 및 클라이언트 장치 간의 동기화에 사용되는 반면, 클라이언트-서버 측은 데이터 처리 작업에 사용된다. 다른 실시예에서, 클라이언트-서버 측은 데이터 처리 작업과 함께 비디오 스트리밍에 사용되는 반면, P2P 측은 비디오 렌더링 및 클라이언트 장치 간의 동기화에 사용된다. 또 다른 실시예에서, 클라이언트-서버 측은 비디오 스트리밍, 렌더링 및 데이터 처리 작업 및 동기화에 사용된다.
일 실시예에서, 데이터 처리 작업은 사용자 그래픽 표현을 생성하고 사용자 그래픽 표현을 가상 환경에 삽입하는 것을 포함한다. 사용자 그래픽 표현을 생성하는 것은 배경 제거 또는 기타 처리 또는 개선을 수행하는 것을 포함할 수 있다.
일부 실시예에서, P2P 측의 데이터는 하나의 클라이언트 장치에서 피어 클라이언트 장치로 직접 전송되거나 그 반대로 전송되거나 클라이언트-서버 측을 통해 서버를 통해 중계된다.
일부 실시예에서, 적어도 하나의 클라우드 서버는 중개 서버일 수 있으며, 이는 서버가 클라이언트 장치 간의 데이터 교환을 용이하게 및/또는 최적화하는데 사용됨을 의미한다. 이러한 실시예에서, 적어도 하나의 클라우드 서버는 프로세스를 관리, 분석하고, 그리고 인커밍 이미지 및 멀티미디어 스트림을 최적화하고, 라우터 토폴로지(제한하지 않는 예로서, SFU(Selective Forwarding Units), SAMS(Spatially Analyzed Media Server)), 멀티미디어 서버 라우터 또는 이미지 및 미디어 처리(제한하지 않는 예로서, 디코딩, 결합, 개선, 혼합, 향상, 증강, 컴퓨팅, 조작, 인코딩) 및 포워딩 서버 토폴로지(예를 들어, MCU(Multipoint Control Units), 클라우드 미디어 믹서, 클라우드 3D 렌더러 등), 또는 다른 서버 토폴로지와 같은 아웃바운드 스트림의 포워딩을 관리, 평가, 최적화할 수 있다.
이러한 실시예에서, 중개 서버가 SAMS인 경우, 이러한 미디어 서버는 각각의 수신 클라이언트 장치의 인커밍 데이터(제한하지 않는 예로서, 메타 데이터, 우선 순위 데이터, 데이터 클래스, 공간 구조 데이터, 3차원 위치, 방향 또는 운동 정보, 이미지, 미디어, 확장 가능한 비디오 코덱 기반 비디오)를 관리, 분석 및 처리하고, 이러한 분석에서 특정 수신 클라이언트 장치 사용자의 공간, 3차원 방향, 거리 및 수신하는 하나 이상의 클라이언트 장치에 대한 최적의 대역폭 및 컴퓨팅 리소스 사용을 달성하는 이러한 인커밍 데이터에 대한 우선순위 데이터에 기초하여, 시간적(다양한 프레임 속도), 공간적(예컨대, 다른 이미지 크기), 품질(예컨대, 다른 압축 또는 인코딩 기반 품질) 및 색상(예컨대, 색상 해상도 및 범위)에 대해 미디어를 수정, 업스케일링 또는 다운스케일링 함으로써 각각의 수신 클라이언트 장치로의 아웃바운드 데이터 스트림의 포워딩을 최적화한다.
일부 실시예에서, 복수의 이미지 처리 작업은 그들이 클라이언트 장치, 클라우드 서버 및/또는 수신 클라이언트 장치에 의해 수행되는지 여부에 따라 분류되며, 따라서 클라이언트 장치 이미지 처리, 서버 이미지 처리 및 수신 클라이언트 장치 이미지 처리로 분류된다. 복수의 이미지 처리 작업은 클라이언트-서버 측, P2P 측, 또는 하이브리드 아키텍처의 이들의 조합에서 수행될 수 있다. 이미지 처리 작업은 배경 제거, 추가 처리 또는 개선, 가상 환경에 삽입 및 가상 환경과의 조합을 포함한다. 세 가지 이미지 처리 작업의 조합은 사용자 그래픽 표현을 가상 환경으로 생성, 개선 및 삽입/결합하는데 사용될 수 있다. 클라이언트 장치 처리, 서버 이미지 처리 및 수신 클라이언트 장치 처리의 이미지 처리 조합 및 해당 사용 수준은 처리할 데이터의 양, 원활한 사용자 경험을 유지하기 위해 허용되는 대기 시간, 원하는 서비스 품질(QOS), 필요한 서비스 등에 따라 달라진다. 다음은 클라이언트-서버 측에서 수행되는 8가지 이미지 처리 조합이다.
일부 실시예에서, 클라이언트 장치 중 적어도 하나는 클라이언트-서버 측의 이미지 처리 조합에서, 사용자 그래픽 표현을 생성하고, 배경 제거를 수행하고, 그리고 배경이 제거된 사용자 그래픽 표현을 추가 처리를 위해 적어도 하나의 클라우드 서버로 전송하도록 구성된다. 제 1 예시적인 이미지 처리 조합에서, 클라이언트 장치는 배경 제거를 포함하여, 사용자 그래픽 표현을 생성하고, 그리고 배경 제거된 사용자 그래픽 표현을 추가 처리 또는 개선을 위해 적어도 하나의 클라우드 서버에 전송하여, 배경 제거된 향상된 사용자 그래픽 표현을 생성한다. 적어도 하나의 클라우드 서버는 배경이 제거된 향상된 사용자 그래픽 표현을 수신 클라이언트 장치로 전송하고, 수신 클라이언트 장치는 배경 제거된 향상된 사용자 그래픽 표현을 가상 환경에 삽입하고 그것과 결합시킨다.
제 2 예시적인 이미지 처리 조합에서, 클라이언트 장치는 배경 제거를 포함하여 사용자 그래픽 표현을 생성하고, 그것에 추가 처리를 수행하여, 적어도 하나의 클라우드 서버에 전송하기 전에 배경이 제거된 향상된 사용자 그래픽 표현을 생성한다. 적어도 하나의 클라우드 서버는 배경이 제거된 향상된 사용자 그래픽 표현을 수신 클라이언트 장치로 전송하고, 수신 클라이언트 장치는 배경이 제거된 향상된 사용자 그래픽 표현을 가상 환경에 삽입하고 그것과 결합시킨다.
제 3 예시적인 이미지 프로세싱 조합에서, 클라이언트 장치는 배경 제거를 포함하여 사용자 그래픽 표현을 생성하고, 그것에 추가 프로세싱을 수행하고, 배경 제거된 향상된 사용자 그래픽 표현을 생성하고, 배경 제거된 향상된 사용자 그래픽 표현을 가상 환경에 삽입하고 그것과 결합시킨다. 그 다음, 클라이언트 장치는 수신 클라이언트 장치로 중계하기 위해 가상 환경에 삽입되고 그것과 결합된 배경이 제거된 향상된 사용자 그래픽 표현을 클라우드 서버로 전송한다.
제4 예시적인 이미지 처리 조합에서, 클라이언트 장치는 배경 제거를 포함하여 사용자 그래픽 표현을 생성하고, 배경이 제거된 사용자 그래픽 표현을 추가 처리를 수행하기 위해 적어도 하나의 클라우드 서버에 전송하고, 배경 제거된 강화된 사용자 그래픽 표현을 생성한다. 그 다음, 적어도 하나의 클라우드 서버는 수신 클라이언트 장치로 전송하기 전에 배경 제거된 향상된 사용자 그래픽 표현을 가상 환경으로 삽입하고 그것과 결합시킨다.
제 5 예시적인 이미지 처리 조합에서, 클라이언트 장치는 배경 제거를 포함하여 사용자 그래픽 표현을 생성하고, 배경 제거된 사용자 그래픽 표현을 수신 클라이언트 장치로 중계하기 위해 적어도 하나의 클라우드 서버로 전송한다. 수신 클라이언트 장치는 배경이 제거된 사용자 그래픽 표현에 대한 추가 처리를 수행하여, 수신 클라이언트 장치가 가상 환경에 삽입하고 그것과 결합시키는 배경이 제거된 향상된 사용자 그래픽 표현을 생성한다.
제6 예시적인 이미지 처리 조합에서, 클라이언트 장치는 적어도 하나의 카메라로부터 수신된 카메라 라이브 데이터 피드를 전송하고 처리되지 않은 데이터를 적어도 하나의 클라우드 서버로 전송하며, 적어도 하나의 클라우드 서버는 배경 제거를 포함하여, 사용자 그래픽 표현의 생성을 수행하고, 배경된 제거된 사용자 그래픽 표현에 추가 처리를 수행하여, 수신 클라이언트 장치로 전송되는 배경 제거된 향상된 사용자 그래픽 표현을 생성한다. 수신 클라이언트 장치는 배경 제거된 향상된 사용자 그래픽 표현을 가상 환경에 삽입하고 그것과 결합시킨다.
제7 예시적인 이미지 처리 조합에서, 클라이언트 장치는 적어도 하나의 카메라로부터 수신된 카메라 라이브 데이터 피드를 전송하고 처리되지 않은 데이터를 적어도 하나의 클라우드 서버에 전송한다. 적어도 하나의 클라우드 서버는 배경 제거를 포함하여 사용자 그래픽 표현을 생성하고, 배경이 제거된 사용자 그래픽 표현에 추가 처리를 수행하여, 배경 제거된 향상된 사용자 그래픽 표현을 수신 클라이언트 장치로 전송되는 가상 환경에 삽입하고 그것과 결합시키기 전에 배경 제거된 향상된 사용자 그래픽 표현을 생성한다.
제8 예시적인 이미지 처리 조합에서, 클라이언트 장치는 적어도 하나의 카메라로부터 수신된 카메라 라이브 데이터 피드를 보내고 수신 클라이언트 장치로 중계하기 위해 처리되지 않은 데이터를 적어도 하나의 클라우드 서버로 전송한다. 수신 클라이언트 장치는 배경 제거를 포함하여 사용자 그래픽 표현을 생성하기 위해 데이터를 사용하고, 배경 제거된 사용자 그래픽 표현에 추가 처리를 수행하여, 배경 제거된 향상된 사용자 그래픽 표현을 가상 환경에 삽입하고 그것과 결합시키기 전에 배경 제거된 향상된 사용자 그래픽 표현을 생성한다.
일부 실시예에서, 클라이언트-서버 측의 데이터가 적어도 하나의 클라우드 서버를 통해 중계될 때, 적어도 하나의 클라우드 서버는 TURN(Traversal Using Relay NAT) 서버로서 구성된다. TURN은 대칭 NAT(Network Address Translation)의 경우에 사용될 수 있으며, 처리된 및/또는 처리되지 않은 데이터가 클라이언트 장치 간에 중계되는 동안 연결이 설정된 후 미디어 경로 내에 유지될 수 있다.
다음은 제1 및 제2 피어 장치 중 하나 또는 둘 모두에 의해 수행되는 P2P 측에서 수행되는 3개의 예시적인 이미지 처리 조합에 대한 설명이다.
제1 이미지 처리 조합에서, 제1 피어 장치는 배경 제거를 포함하여 사용자 그래픽 표현을 생성하고, 그것에 추가 처리를 수행하여, 배경 제거된향상된 사용자 그래픽 표현을 생성하고, 배경 제거된 향상된 사용자 그래픽 표현을 가상 환경에 삽입하고 그것과 결합시킨다. 그 다음, 제1 피어 장치는 가상 환경에 삽입되고 가상 환경과 결합된 배경 제거된 향상된 사용자 그래픽 표현을 제2 피어 장치로 전송한다.
제2 이미지 처리 조합에서, 제1 피어 장치는 배경 제거를 포함하여 사용자 그래픽 표현을 생성하고, 배경 제거된 사용자 그래픽 표현을 제2 피어 장치에 전송한다. 제2 피어 장치는 배경이 제거된 사용자 그래픽 표현에 추가 처리를 수행하여, 제2 피어 장치가 가상 환경에 삽입하고 그것과 결합시키는 배경이 제거된 향상된 사용자 그래픽 표현을 생성한다.
제3 이미지 처리 조합에서, 제1 피어 장치는 적어도 하나의 카메라로부터 수신된 카메라 라이브 데이터 피드를 전송하고 처리되지 않은 데이터를 제2 피어 장치로 전송한다. 제2 피어 장치는 데이터를 사용하여 배경 제거를 포함하여 사용자 그래픽 표현을 생성하고, 배경 제거된 사용자 그래픽 표현에 추가 처리를 수행하여 향상된, 배경 제거된 향상된 사용자 그래픽 표현을 사용자 환경에 삽입하고 그것과 결합시키기 전에 배경 제거된 향상된 사용자 그래픽 표현을 생성한다.
일부 실시예에서, P2P 측의 3개의 이미지 처리 조합은 적어도 하나의 클라우드 서버를 통해 데이터를 중계하는 것을 더 포함할 수 있다. 이러한 실시예에서, 적어도 하나의 클라우드 서버는 STUN 서버로 구성될 수 있으며, 이는 피어 장치가 자신의 공개 IP 주소 및 그 뒤에 있는 NAT 유형, 데이터 연결을 설정하는데 사용될 수 있는 정보 및 피어 장치들 간의 데이터 교환을 발견할 수 있게 한다. 다른 실시예에서, 적어도 하나의 클라우드 서버 컴퓨터는 시그널링을 위해 구성될 수 있으며, 이는 피어 장치가 서로를 찾아 연결하고 적어도 하나의 클라우드 서버에 의해 수행되는 통신 조정을 통해 데이터를 교환하는데 사용될 수 있다.
일부 실시예에서, 미디어, 비디오 및/또는 데이터 처리 작업은 인코딩, 트랜스코딩, 하나 이상의 이미지 필터링을 포함하는 디코딩 공간 또는 3D 분석 및 프로세싱, 컴퓨터 비전 프로세싱, 이미지 샤프닝, 배경 개선, 배경 제거, 전경 블러링(blurring), 눈 커버링, 얼굴의 픽셀레이션, 음성 왜곡, 이미지 업레징(uprezzing), 이미지 정리(cleansing), 뼈 구조 분석, 얼굴 또는 머리 카운팅, 오브젝트 인식, 마커 또는 QR 코드 추적, 시선 추적, 특징 분석, 3D 메쉬 또는 볼륨 생성, 특징 추적, 얼굴 인식, SLAM 추적 및 얼굴 표정 인식 또는 이러한 미디어 라우터 또는 서버에서 실행되는 마이크로 서비스 형태의 기타 모듈식 플러그인 중 하나 이상을 포함한다.
일부 실시예에서, 배경 제거는 인스턴스 분할 또는 의미론적 분할 및 심층 신경망의 사용 중 하나 이상을 통한 이미지 세분화(segmentation)를 사용하는 것을 포함한다.
일부 실시예에서, 데이터 처리 시스템의 하나 이상의 컴퓨팅 장치는 가상 카메라를 생성함으로써 가상 환경에 사용자 그래픽 표현을 삽입하도록 더 구성되며, 여기서 가상 카메라를 생성하는 것은 캡처된 보기 시점 데이터를 가상 환경 내의 사용자 그래픽 표현의 보기 시점과 연관시키는 것을 포함한다. 일 실시예에서, 사용자 그래픽 표현을 가상 환경에 삽입하고 그것과 결합하는 것은 가상으로 배치되고 사용자 그래픽 표현 앞에(예를 들어, 배경이 제거된 비디오, 또는 배경이 제거되지 않은 비디오, 또는 사용자 3D 가상 컷아웃 또는 사용자 실시간 3D 가상 컷아웃 앞에) 정렬되는 하나 이상의 가상 카메라를 생성하는 것을 포함한다. 일 실시예에서, 하나 이상의 가상 카메라는 눈높이에서 바깥쪽을 가리킬 수 있다. 다른 실시예에서, 2개의 가상 카메라(눈당 하나씩)는 2개의 눈 레벨로부터 바깥쪽을 가리킬 수 있다. 또 다른 실시예에서, 하나 이상의 가상 카메라는 사용자 그래픽 표현의 머리 위치의 중심으로부터 바깥쪽을 가리킬 수 있다. 또 다른 실시예에서, 하나 이상의 가상 카메라는 사용자 그래픽 표현의 중심으로부터 바깥쪽을 가리킬 수 있다. 또 다른 실시예에서, 하나 이상의 가상 카메라는 예를 들어 사용자 그래픽 표현의 머리 높이에서 사용자 그래픽 표현 앞에 배치될 수 있으며, 자기 보기 시점에 있을 때 사용자 그래픽 표현을 향하게 한다.
일 실시예에서, 하나 이상의 가상 카메라는 적어도 컴퓨터 비전을 사용하여 가상 환경 내의 사용자 그래픽 표현의 보기 시점에 사용자의 캡처된 보기 시점 데이터를 연관시킴으로써 생성된다.
본 개시의 다른 양태에서, 이미지 처리 방법은 적어도 하나의 클라우드 서버 컴퓨터의 메모리에 이미지 처리 기능을 구현하는 데이터 및 명령을 제공하는 단계; 및 적어도 하나의 클라우드 서버 컴퓨터와 적어도 하나의 클라이언트 장치의 하나 이상의 이미지 처리 조합에 의해, 적어도 하나의 클라이언트 장치로부터의 라이브 데이터 피드에 기초하여 가상 환경에서 사용자 그래픽 표현을 생성하는 단계를 포함하며, 여기서 적어도 하나의 클라우드 서버 컴퓨터는 하이브리드 시스템 아키텍처를 통해 적어도 하나의 클라이언트 장치와 상호작용한다. 일 실시예에서, 이 방법은 적어도 하나의 카메라로부터 적어도 하나의 대응하는 클라이언트 장치의 적어도 한 명의 사용자로부터 라이브 데이터 피드를 획득하는 단계; 및 하나 이상의 클라우드 서버 컴퓨터와 하나 이상의 클라이언트 장치의 하나 이상의 이미지 처리 조합에 의해 사용자 그래픽 표현을 생성하는 단계를 포함한다. 하나 이상의 클라우드 서버 컴퓨터 및 적어도 하나의 클라이언트 장치는 P2P 측 및 클라이언트-서버 측을 포함하는 본 개시의 하이브리드 시스템 아키텍처를 통해 상호작용할 수 있다.
일부 실시예에서, 이 방법은 P2P 측에 의해 비디오 및 데이터 처리 및 클라이언트 장치 간의 동기화, 스트리밍 및 렌더링을 수행하는 단계를 포함한다. 다른 실시예에서, 이 방법은 클라이언트-서버 측이 데이터 처리를 위해 사용되는 동안 P2P 측에서 비디오 스트리밍, 렌더링 및 클라이언트 장치 간의 동기화를 수행하는 단계를 포함한다. 다른 실시예에서, 방법은 클라이언트-서버 측에 의해 데이터 처리와 함께 비디오 스트리밍을 수행하는 단계를 포함하는 반면, P2P 측은 클라이언트 장치 간의 비디오 렌더링 및 동기화에 사용된다. 또 다른 실시예에서, 이 방법은 클라이언트-서버 측에 의해 비디오 스트리밍, 렌더링 및 데이터 처리 및 동기화를 수행하는 단계를 포함한다.
일부 실시예에서, 데이터 처리 작업은 사용자 그래픽 표현을 생성하고 사용자 그래픽 표현을 가상 환경에 삽입하는 것을 포함한다. 일 실시예에서, 데이터 처리 작업은 먼저 배경 제거를 수행하는 것을 포함하여 사용자 그래픽 표현을 생성하는 단계, 그 다음 추가 처리를 수행하는 단계, 및 이어서 가상 환경에 삽입하고 가상 환경과 결합하는 단계를 포함한다. 또 다른 실시예에서, 이미지 처리 작업은 클라이언트-서버 측 또는 P2P 측에서 클라이언트 장치 및 클라우드 서버 컴퓨터의 복수의 이미지 처리 조합을 통해 수행된다.
일부 실시예에서, 사용자 그래픽 표현을 가상 환경에 삽입하는 것은 가상 카메라를 생성하는 것을 포함하고, 여기서 가상 카메라를 생성하는 것은 캡처된 보기 시점 데이터를 가상 환경 내의 사용자 그래픽 표현의 보기 시점과 연관시키는 것을 포함한다. 일 실시예에서, 사용자 그래픽 표현을 가상 환경에 삽입하고 그것과 결합하는 것은 가상으로 배치되고 사용자 그래픽 표현 앞에(예를 들어 배경이 제거된 비디오 또는 배경 제거되지 않은 비디오, 또는 사용자 3D 가상 컷아웃 또는 사용자 실시간 3D 가상 컷아웃 앞에) 정렬되는 하나 이상의 가상 카메라를 생성하는 것을 포함한다. 일 실시예에서, 하나 이상의 가상 카메라는 눈높이에서 바깥쪽을 가리킬 수 있다. 다른 실시예에서, 2개의 가상 카메라(눈당 하나씩)는 2개의 눈 레벨로부터 바깥쪽을 가리킬 수 있다. 또 다른 실시예에서, 하나 이상의 가상 카메라는 사용자 그래픽 표현의 머리 위치의 중심으로부터 바깥쪽을 가리킬 수 있다. 또 다른 실시예에서, 하나 이상의 가상 카메라는 사용자 그래픽 표현의 중심으로부터 바깥쪽을 가리킬 수 있다. 또 다른 실시예에서, 하나 이상의 가상 카메라는 예를 들어 사용자의 머리 높이에서 사용자 그래픽 표현 앞에 배치될 수 있으며, 자기 보기 시점에 있을 때 사용자 그래픽 표현을 향하게 한다. 가상 카메라는 적어도 컴퓨터 비전을 사용하여 가상 환경 내의 사용자 그래픽 표현의 보기 시점에 사용자의 캡처된 보기 시점 데이터를 연관시킴으로써 생성된다.
일부 실시예에서, 이 방법은 클릭에 응답하여, 대응하는 사용자에 대한 프로파일 정보를 포함하는 제3자 소스로 다이렉팅하는 클릭 가능한 링크를 사용자 그래픽 표현 상에 임베딩하는 단계를 더 포함한다.
본 개시의 다른 양태에서, 사용자 그래픽 표현 기반 사용자 인증 시스템은 사용자 계정 및 하나 이상의 대응하는 사용자 그래픽 표현과 연관된 사용자 데이터를 저장하는 사용자 데이터베이스를 포함하는, 데이터 및 명령을 저장하는 메모리 및 적어도 하나의 프로세서를 포함하는 하나 이상의 클라우드 서버 컴퓨터 및 데이터베이스에 연결된 얼굴 스캐닝 및 인증 모듈을 포함하며; 여기서 하나 이상의 클라우드 서버 컴퓨터는 얼굴 스캐닝 및 인증 모듈을 통해 사용자의 얼굴 스캐닝을 수행하여 사용자를 인증하는 단계로서, 얼굴 스캐닝은 클라이언트 장치로부터 수신된 카메라 데이터로부터 얼굴 특징 데이터를 추출하고 추출된 얼굴 특징 데이터를 사용자 데이터베이스의 사용자 계정과 연관된 사용자 그래픽 표현과 일치하는지 체크하는 것을 포함하는 것인, 사용자를 인증하는 단계, 체크 단계에서 일치하는 사용자 그래픽 표현이 발견된 경우 해당 사용자 계정에 대한 액세스를 사용자에게 제공하는 단계; 및 체크 단계에서 일치하는 사용자 그래픽 표현이 발견되지 않은 경우 카메라 데이터로부터 사용자 데이터베이스에 저장된 새로운 사용자 계정과 함께 새로운 사용자 그래픽 표현을 생성하고 사용자 계정에 액세스하는 단계를 포함하는 단계들을 수행하도록 구성된다.
일 실시예에서, 이 시스템은 사용자 계정에 대한 액세스를 요청하는 적어도 하나의 클라이언트 장치의 사용자로부터 데이터를 획득하도록 구성된 적어도 하나의 카메라를 포함하며, 여기서 적어도 하나의 카메라는 적어도 하나의 클라이언트 장치 및 하나 이상의 클라우드 서버 컴퓨터에 연결된다. 하나 이상의 클라우드 서버 컴퓨터는 얼굴 스캐닝 및 인증 모듈을 통해 사용자의 얼굴 스캐닝을 수행하고, 사용자 데이터베이스에서 사용자 그래픽 표현과 일치하는지 체크하고, 사용자 계정이 확인되고 사용 가능한 경우 사용자 계정에 대한 액세스와 함께 대응하는 사용자 그래픽 표현을 사용자에게 제공하고; 그리고 사용자 계정이 이용 가능하지 않은 경우, 사용자 계정에 대한 액세스와 함께 사용자 데이터베이스에 저장된 새로운 사용자 계정과 함께 데이터로부터 새로운 사용자 그래픽 표현을 생성함으로써, 사용자를 인증한다.
사용자 계정은 예를 들어 가상 환경 플랫폼 또는 임의의 대화형 애플리케이션, 게임, 이메일 계정, 대학 프로필 계정, 직장 계정 등과 같은 임의의 다른 애플리케이션(예컨대, 환경 플랫폼에 연결될 수 있는 애플리케이션)에 액세스하는데 사용될 수 있다. 본 발명의 사용자 그래픽 표현 기반 사용자 인증 시스템은 여러 가지 중에서도 특히 사용자 그래픽 표현을 생성하거나 사용자 데이터베이스로부터 기존 사용자 그래픽 표현을 검색하는 추가 인증 단계가 주어져 표준 카메라 기반 얼굴 인식 인증 시스템보다 높은 보안 수준을 제공한다.
일부 실시예에서, 사용자 그래픽 표현은 사용자 3D 가상 컷아웃, 또는 배경이 제거된 사용자 실시간 3D 가상 컷아웃, 또는 배경이 제거된 비디오, 또는 배경이 제거되지 않은 비디오이다. 일 실시예에서, 사용자 그래픽 표현은 사용자 업로드 또는 제3자 소스 사진으로 구성된 사용자 3D 가상 컷아웃, 또는 카메라에서 얻은 실시간 2D 또는 3D 라이브 비디오 스트림 데이터 피드를 기반으로 생성된 배경이 제거된 사용자 실시간 3D 가상 컷아웃, 또는 배경이 제거된 비디오 또는 배경이 제거되지 않은 비디오이다. 일부 실시예에서, 하나 이상의 클라우드 서버 컴퓨터는 일치하는 사용자 그래픽 표현 또는 새로운 사용자 그래픽 표현을 애니메이션화하도록 추가로 구성된다. 일치하는 사용자 그래픽 표현을 애니메이션화하는 것은 사용자의 얼굴 표정을 인식하고 사용자 그래픽 표현에서 얼굴 표정을 그래픽으로 시뮬레이션하기 위해 각각의 사용자 그래픽 표현에 클라이언트 장치 또는 적어도 하나의 클라우드 서버 컴퓨터에 의해 머신 비전 알고리즘을 적용하는 것을 포함한다. 다른 실시예에서, 사용자 업로드 또는 제3자 소스 사진으로부터 구성된 사용자 3D 가상 컷아웃의 업데이트는 사용자의 얼굴 표정을 인식하고 사용자 3D 가상 컷아웃에서 얼굴 표정을 그래픽으로 시뮬레이션하기 위해 생성된 사용자 3D 가상 컷아웃에 클라이언트 장치 또는 적어도 하나의 클라우드 서버 컴퓨터에 의해 머신 비전 알고리즘을 적용하는 단계를 포함한다.
일부 실시예에서, 하나 이상의 클라우드 서버 컴퓨터는 일치하는 사용자 그래픽 표현의 날짜를 확인하고 일치하는 사용자 그래픽 표현의 업데이트가 필요한지 여부를 판정하도록 추가로 구성된다. 일 실시예에서, 사용자 계정이 이용 가능한 경우, 그리고 이용 가능한 사용자 그래픽 표현의 날짜를 확인하는 하나 이상의 클라우드 서버 컴퓨터에 응답하여, 하나 이상의 클라우드 서버 컴퓨터는 해당 임계값 또는 보안 요구 사항과 비교하여 기존 사용자 그래픽 표현의 업데이트가 필요한지 여부를 판정한다. 예를 들어, 시스템 보안 업데이트가 있는 경우, 모든 사용자 그래픽 표현을 업데이트하거나 적어도 지정된 날짜 이전에 생성된 표현을 업데이트해야 할 수 있다. 사용자 그래픽 표현이 필요한 경우, 하나 이상의 클라우드 서버 컴퓨터는 해당 클라이언트 장치에 대한 사용자 그래픽 표현 업데이트 요청을 생성한다. 사용자가 요청을 승인하면, 하나 이상의 클라우드 서버 컴퓨터 또는 클라이언트 장치는 라이브 카메라 피드를 기반으로 사용자 그래픽 표현을 생성하도록 진행한다. 업데이트가 필요하지 않은 경우, 하나 이상의 클라우드 서버 컴퓨터는 계속해서 사용자 데이터베이스에서 기존 사용자 그래픽 표현을 검색한다.
일부 실시예에서, 사용자 그래픽 표현은 2차원 또는 3차원 가상 환경에, 또는 가상 환경에 링크된 제3자 소스에 삽입되고(예를 들어, 제3자 애플리케이션 또는 웹사이트의 화면에 오버레이됨으로써 본 개시의 시스템과 통합되거나 결합됨) 및 2차원 또는 3차원 가상 환경과 그래픽적으로 결합된다.
일부 실시예에서, 사용자 그래픽 표현의 생성 프로세스는 사용자 계정에 대한 사용자 액세스로부터 비동기적으로 발생한다. 예를 들어, 시스템이 사용자 그래픽 표현 기반 얼굴 스캐닝 및 검출을 수행한 후 사용자가 이미 인증되었다고 판정하는 경우, 시스템은 사용자가 일단 준비되면 사용자에게 제공하여 가상 환경에 삽입하고 결합하기 위한 새로운 사용자 그래픽 표현이 생성되는 동안 사용자 계정에 액세스하는 것을 가능하게 할 수 있다.
일부 실시예에서, 하나 이상의 클라우드 서버 컴퓨터는 개인 식별 번호(PIN), 사용자 이름 및 비밀번호, 또는 이들의 조합을 포함하는 로그인 인증 크리덴셜(credential)을 통해 사용자를 인증하도록 추가로 구성된다.
일부 실시예에서, 인증은 하나의 클라이언트 장치에서 다른 클라이언트 장치로 전송된 초대 링크 또는 딥 링크의 활성화에 응답하여 트리거된다. 일 실시예에서, 초대 링크 또는 딥 링크를 클릭하면 적어도 하나의 클라우드 서버 컴퓨터가 사용자에게 인증을 요청하도록 트리거한다. 예를 들어, 초대 링크 또는 딥 링크는 전화 통화, 회의 또는 비디오 게임 세션 초대를 위한 것일 수 있으며, 여기서 초대된 사용자는 본 개시의 사용자 그래픽 표현 기반 인증 시스템을 통해 인증될 수 있다.
다른 실시예에서, 얼굴 스캐닝은 머리 움직임 패턴을 수행하도록 사용자를 안내하고 머리 움직임 패턴에 기초하여 3D 얼굴 데이터를 추출하는 것을 포함하는 3D 인증을 사용한다. 이것은 적어도 하나의 서버 컴퓨터에 저장된 애플리케이션 명령을 사용하여 수행될 수 있으며, 이는 사용자가 머리 움직임 패턴을 수행하도록(예를 들어, 하나 이상의 머리 제스처를 수행하거나, 머리를 수평으로 기울이거나 또는 수직으로 원형 모션으로 회전하게 하거나, 사용자 생성 제스처 패턴, 특정 머리 움직임 패턴, 또는 이들의 조합을 수행하도록) 안내함으로써 3D 인증을 구현한다. 3D 인증은 하나의 뷰 또는 이미지를 비교하고 분석하는 것과는 달리, 카메라 라이브 비디오 데이터 피드에서 얻은 데이터에서 추가 특징을 인식한다. 이 3D 인증 실시예에서, 얼굴 스캐닝 프로세스는 머리 움직임 패턴, 얼굴 볼륨, 키, 얼굴 특징의 깊이, 얼굴 흉터, 문신, 눈 색깔, 얼굴 피부 파라미터(예를 들어, 피부색, 주름, 모공 구조 등), 반사율 파라미터, 뿐만 아니라 예를 들어 다른 유형의 안면 탐지 시스템의 경우와 같이 얼굴 토폴로지 상의 이러한 특징의 위치를 포함한 얼굴 데이터를 포함할 수 있는 데이터로부터 추가 특징을 인식할 수 있다. 따라서, 이러한 얼굴 데이터를 캡처하는 것은 사실적인 사용자 그래픽 표현의 생성에 도움이 될 수 있는 사실적인 얼굴의 캡처를 증가시킬 수 있다. 3D 인증을 이용한 얼굴 스캐닝은 고해상도 3D 카메라, 뎁스 카메라(예컨대, LIDAR), 라이트 필드 카메라 등을 이용하여 수행될 수 있다. 얼굴 스캐닝 프로세스 및 3D 인증은 심층 신경망, 컨볼루션 신경망 및 기타 심층 학습 기술을 사용하여 얼굴 데이터를 사용하여 사용자를 검색, 처리, 평가할 수 있다.
본 개시의 다른 양태에서, 사용자 그래픽 표현 기반 사용자 인증 방법은 하나 이상의 클라우드 서버 컴퓨터의 메모리에 사용자 계정 및 하나 이상의 대응하는 사용자 그래픽 표현과 연관된 사용자 데이터를 저장하는 사용자 데이터베이스 및 사용자 데이터베이스에 연결된 얼굴 스캐닝 및 인증 모듈을 제공하는 단계; 클라이언트 장치로부터 사용자 계정에 대한 액세스 요청을 수신하는 단계; 클라이언트 장치와 통신하는 적어도 하나의 카메라에 의해 캡처된 카메라 데이터로부터 얼굴 특징 데이터를 추출함으로써 얼굴 스캐닝 및 인증 모듈을 통해 클라이언트 장치의 사용자의 얼굴 스캐닝을 수행하는 단계; 추출된 얼굴 특징 데이터를 사용자 데이터베이스의 사용자 계정과 연관된 사용자 그래픽 표현과 일치하는지 체크하는 단계; 체크 단계에서 일치하는 사용자 그래픽 표현이 발견된 경우 사용자에게 사용자 계정에 대한 액세스를 제공하는 단계; 및 체크 단계에서 일치하는 사용자 그래픽 표현이 발견되지 않은 경우 카메라 데이터로부터 사용자 데이터베이스에 저장된 새로운 사용자 계정과 함께 새로운 사용자 그래픽 표현을 생성하고, 사용자 계정에 대한 액세스를 제공하는 단계를 포함한다.
일 실시예에서, 이 방법은 적어도 하나의 클라이언트 장치 및 하나 이상의 클라우드 서버 컴퓨터에 연결된 적어도 하나의 카메라로부터 수신된 이미지 및/또는 미디어 데이터를 사용하여 얼굴 스캐닝 및 인증 모듈을 통해 적어도 하나의 클라이언트 장치의 사용자의 얼굴 스캐닝을 수행하는 단계를 포함한다. 사용자 계정과 연관된 사용자 얼굴 데이터의 일치에 대해 사용자 데이터베이스를 확인하는 단계; 사용자 계정이 사용 가능한 경우 사용자 계정에 대한 액세스와 함께 해당 사용자 그래픽 표현을 사용자에게 제공하는 단계; 및 사용자 계정을 사용할 수 없는 경우 사용자 데이터베이스에 저장된 새로운 사용자 계정 및 사용자 계정에 대한 액세스와 함께 얼굴 데이터로부터 새로운 사용자 그래픽 표현을 생성하는 단계를 포함합한다.
일부 실시예에서, 사용자 그래픽 표현은 사용자 업로드 또는 제3자 소스 사진으로 구성된 사용자 3D 가상 컷아웃, 또는 카메라로부터 획득한 실시간 2D 또는 3D 라이브 비디오 스트림 데이터 피드에 기초하여 생성된 배경이 제거된 사용자의 실시간 비디오 스트림을 포함하는 사용자 실시간 3D 가상 컷아웃, 또는 배경이 제거된 비디오 또는 배경이 제거되지 않은 비디오이다. 다른 실시예에서, 이 방법은 일치하는 사용자 그래픽 표현 또는 새로운 사용자 그래픽 표현을 애니메이션화하는 단계를 포함하며, 이는 사용자의 얼굴 표정을 인식하기 위해 각각의 사용자 그래픽 표현에 클라이언트 장치 또는 적어도 하나의 클라우드 서버 컴퓨터에 의해 머신 비전 알고리즘을 적용하는 단계 및 사용자 그래픽 표현에 대한 얼굴 표정을 그래픽으로 시뮬레이션하는 단계를 포함할 수 있다. 일 실시예에서, 사용자 3D 가상 컷아웃의 업데이트는 사용자의 얼굴 표정을 인식하기 위해 생성된 사용자 3D 가상 컷아웃에 클라이언트 장치 또는 적어도 하나의 클라우드 서버 컴퓨터에 의해 머신 비전 알고리즘을 적용하는 단계 및 사용자 3D 가상 컷아웃에서 얼굴 표정을 그래픽으로 시뮬레이션하는 단계를 포함한다.
일부 실시예에서, 이 방법은, 체크 단계에서 일치하는 사용자 그래픽 표현이 발견되면 일치하는 사용자 그래픽 표현의 날짜를 확인하는 단계; 날짜에 적어도 부분적으로 기초하여, 일치하는 사용자 그래픽 표현의 업데이트가 필요한지 여부를 판정하는 단계; 및 일치하는 사용자 그래픽 표현의 업데이트가 필요한 긍정적인 경우에, 사용자 그래픽 표현 업데이트 요청을 생성하는 단계를 포함한다. 일 실시예에서, 이 방법은, 사용자 계정이 이용 가능한 경우, 이용 가능한 사용자 그래픽 표현의 날짜를 확인하는 단계; 해당 임계값 또는 보안 요구 사항과 비교하여 기존 사용자 그래픽 표현의 업데이트가 필요한지 여부를 판정하는 단계; 및 사용자 그래픽 표현이 필요한 긍정적인 경우, 사용자 그래픽 표현 업데이트 요청을 생성하여 해당 클라이언트 장치로 전송하는 단계를 포함한다. 사용자가 요청을 승인하면, 하나 이상의 클라우드 서버 컴퓨터 또는 클라이언트 장치는 라이브 카메라 피드를 기반으로 사용자 그래픽 표현을 생성함으로써 진행한다. 업데이트가 필요하지 않은 경우 하나 이상의 클라우드 서버 컴퓨터는 사용자 데이터베이스에서 기존 사용자 그래픽 표현을 검색함으로써 진행한다.
일부 실시예에서, 이 방법은 사용자 그래픽 표현을 (예를 들어, 본 개시의 시스템에 통합되거나 결합된 제3자 애플리케이션 또는 웹사이트의 화면에 오버레이됨으로써) 2차원 또는 3차원 가상 환경 또는 가상 환경에 링크된 제3자 소스에 삽입하는 단계, 및 사용자 그래픽 표현을 2차원 또는 3차원 가상 환경과 결합하는 단계를 포함한다.
일부 실시예에서, 새로운 사용자 그래픽 표현의 생성 프로세스는 사용자 계정에 대한 사용자 액세스로부터 비동기적으로 발생한다.
일부 실시예에서, 이 방법은 적어도 사용자 이름 및 패스워드를 포함하는 로그인 인증 크리덴셜을 통해 사용자를 인증하는 단계를 더 포함한다.
일부 실시예에서, 인증은 초대 링크의 활성화에 응답하여 트리거된다. 일 실시예에서, 이 방법은 하나의 클라이언트 장치에 의해 다른 클라이언트 장치에 초대 링크 또는 딥 링크를 제공하는 단계를 더 포함하고, 초대 링크를 클릭하는 것은 사용자에게 인증을 요청하도록 적어도 하나의 클라우드 서버를 트리거한다.
본 개시의 다른 양태에서, 가상 환경에서 가상으로 방송하기 위한 시스템이 제공된다. 이 시스템은 하나 이상의 서버 컴퓨터를 포함하는 서버 컴퓨터 시스템을 포함하고, 각각의 서버 컴퓨터는 적어도 하나의 프로세서 및 메모리를 포함하고, 서버 컴퓨터 시스템은 클라이언트 장치 간의 데이터 교환을 관리하도록 구성된 데이터 교환 관리 모듈을 구현하는 데이터 및 명령을 포함하고; 그리고 적어도 하나의 가상 환경 내에 위치되고 적어도 하나의 가상 환경 내로부터 멀티미디어 스트림을 캡처하도록 구성된 가상 방송 카메라를 포함하는 적어도 하나의 가상 환경을 포함한다. 서버 컴퓨터 시스템은 적어도 하나의 클라이언트 장치로부터 적어도 하나의 카메라에 의해 캡처된 라이브 피드 데이터를 수신하고 데이터 교환 관리에 기초하여 멀티미디어 스트림을 적어도 하나의 클라이언트 장치에 방송하도록 구성되며, 방송되는 멀티미디어 스트림은 적어도 하나의 클라이언트 장치로부터의 사용자 라이브 데이터 피드로부터 생성된 대응하는 사용자 그래픽 표현에 디스플레이되도록 구성된다. 데이터 교환 관리 모듈에 의한 클라이언트 장치들 간의 데이터 교환 관리는 인커밍 멀티미디어 스트림을 분석하고 인커밍 미디어 스트림의 분석에 기초하여 포워딩 아웃바운드 멀티미디어 스트림을 평가하는 것을 포함한다.
일 실시예에서, 멀티미디어 스트림은 적어도 하나의 클라이언트 장치에 방송하기 위해 적어도 하나의 미디어 서버 컴퓨터로 전송된다. 일 실시예에서, 이 시스템은 적어도 하나의 클라이언트 장치의 사용자로부터 라이브 피드 데이터를 획득하고 적어도 하나의 클라이언트 장치를 통해 사용자로부터 적어도 하나의 미디어 컴퓨터로 라이브 피드 데이터를 전송하는 적어도 하나의 카메라를 포함하고; 여기서 멀티미디어 스트림은 적어도 하나의 미디어 서버 컴퓨터로부터의 데이터 교환 관리에 기초하여 적어도 하나의 클라이언트 장치에 방송되고, 적어도 하나의 클라이언트 장치를 통해 사용자 라이브 데이터 피드로부터 생성된 대응하는 사용자 그래픽 표현에 디스플레이되고, 그리고 데이터 교환 관리 모듈에 의한 클라이언트 장치 간의 데이터 교환 관리는 인커밍 멀티미디어 스트림을 분석 및 최적화하는 것 및 아웃바운드 멀티미디어 스트림의 포워딩을 평가 및 최적화하는 것을 포함한다.
일부 실시예에서, 서버 컴퓨터 시스템은 아웃바운드 멀티미디어 스트림을 포워딩할 때 SFU(Selective Forwarding Unit), TURN(Traversal Using Relay NAT), SAMS, 또는 다른 적절한 멀티미디어 서버 라우팅 토폴로지를 포함하는 라우팅 토폴로지, 또는 미디어 프로세싱 및 포워딩 서버 토폴로지 또는 기타 적절한 서버 토폴로지를 이용한다.
일부 실시예에서, 서버 컴퓨터 시스템은 클라이언트 장치를 통해 적어도 하나의 가상 환경 내에서 사용자 그래픽 표현에 의해 보기 위해 아웃바운드 멀티미디어 스트림을 처리하기 위해 미디어 프로세싱 토폴로지를 사용한다. 일 실시예에서, 적어도 하나의 미디어 서버 컴퓨터는, 미디어 프로세싱 토폴로지를 이용할 때, 클라이언트 장치를 통해 적어도 하나의 가상 환경 내의 사용자 그래픽 표현에 의한 보기를 위해 관련 클라이언트 장치로의 멀티미디어 스트림을 디코딩, 결합, 개선, 혼합, 향상, 증대, 컴퓨팅, 조작 및 인코딩하도록 구성된다.
일부 실시예에서, 서버 컴퓨터 시스템은 포워딩 서버 토폴로지를 사용할 때 MCU, 클라우드 미디어 믹서 및 클라우드 3D 렌더러 중 하나 이상을 활용한다.
일부 실시예에서, 인커밍 멀티미디어 스트림은 사용자 우선순위 데이터 및 거리 관계 데이터를 포함하고, 사용자 우선순위 데이터는 인커밍 멀티미디어 스트림 소스에 더 가까운 사용자 그래픽 표현에 대한 더 높은 우선순위 점수 및 인커밍 멀티미디어 스트림 소스로부터 더 멀리 떨어진 사용자 그래픽 표현에 대한 더 낮은 우선순위 점수를 포함한다. 일 실시예에서, 멀티미디어 스트림은 메타-데이터, 또는 우선순위 데이터, 또는 데이터 클래스, 또는 공간 구조 데이터, 또는 3차원 위치, 또는 방향 또는 이동 정보, 또는 이미지 데이터, 또는 미디어 데이터, 및 스케일러블 비디오 코덱 기반 비디오 데이터, 또는 이들의 조합을 포함하여, 멀티미디어 스트림과 대응하는 사용자 그래픽 표현 사이의 거리 관계 및 사용자 우선순위와 관련된 데이터를 포함한다. 추가 실시예에서, 우선순위 데이터는 멀티미디어 스트림 소스에 더 가까운 사용자에 대한 더 높은 우선순위 점수 및 멀티미디어 스트림 소스로부터 더 먼 사용자에 대한 더 낮은 우선순위 점수를 포함한다. 또 다른 실시예에서, 아웃바운드 멀티미디어 스트림의 포워딩은 사용자 우선순위 데이터 및 거리 관계 데이터에 기초한다. 일 실시예에서, 사용자 우선순위 및 거리 관계 데이터에 기초한 미디어 서버에 의해 구현된 아웃바운드 멀티미디어 스트림의 포워딩은 대역폭을 최적화하는 것 및 하나 이상의 수신 클라이언트 장치에 대한 리소스 활용을 계산하는 것을 포함한다. 또 다른 실시예에서, 아웃바운드 멀티미디어 스트림의 포워딩은 시간, 공간, 품질 및/또는 컬러 특징에 대해 멀티미디어 스트림을 수정, 업스케일링 또는 다운스케일링하는 것을 더 포함한다.
일부 실시예에서, 가상 방송 카메라는 가상 환경에 액세스하는 클라이언트 장치를 통해 관리된다. 일 실시예에서, 가상 방송 카메라는 가상 환경에서 업데이트되는 카메라의 시점을 조종하고, 업데이트된 시점을 적어도 하나의 클라이언트 장치에 방송하도록 구성된다.
일부 실시예에서, 적어도 하나의 가상 환경은 복수의 가상 방송 카메라를 포함하고, 각각의 가상 방송 카메라는 적어도 하나의 가상 환경 내의 대응하는 시점으로부터 멀티미디어 스트림을 제공한다. 일 실시예에서, 각각의 가상 방송 카메라는 적어도 하나의 클라이언트 장치의 사용자에 의해 선택 및 서로 교체될 수 있는 가상 환경 내의 대응하는 시점으로부터 멀티미디어 스트림을 제공하여, 대응하는 시점을 대응하는 적어도 하나의 사용자 그래픽 표현에 제공한다.
일부 실시예에서, 적어도 하나의 가상 환경은 네트워크를 통해 적어도 하나의 미디어 서버 컴퓨터에 연결된 적어도 하나의 전용 서버 컴퓨터에 의해 호스팅되거나, 피어 투 피어 인프라에서 호스팅되고 적어도 하나의 미디어 서버 컴퓨터를 통해 중계된다.
본 개시의 다른 양태에서, 가상 환경 내로부터 가상으로 방송하기 위한 방법은, 적어도 하나의 미디어 서버의 메모리에, 클라이언트 장치들 간의 데이터 교환을 관리하는 클라이언트 장치 데이터 교환 관리 모듈을 구현하는 명령 및 데이터를 제공하는 단계; 적어도 하나의 미디어 서버에 연결된 적어도 하나의 가상 환경 내에 위치된 가상 방송 카메라에 의해 멀티미디어 스트림을 캡처하고, 적어도 하나의 클라이언트 장치로 방송하기 위해 적어도 하나의 미디어 서버에 멀티미디어 스트림을 전송하는 단계; 적어도 하나의 클라이언트 장치로부터(예를 들어, 적어도 하나의 클라이언트 장치를 통해 적어도 하나의 카메라로부터) 라이브 피드 데이터를 획득하는 단계; 적어도 하나의 가상 환경 내로부터의 인커밍 멀티미디어 스트림 및 라이브 피드 데이터를 분석하고 아웃바운드 멀티미디어 스트림의 포워딩을 평가하는 것을 포함하는 데이터 교환 관리를 수행하는 단계; 및 데이터 교환 관리에 기초하여 대응하는 멀티미디어 스트림을 클라이언트 장치에 방송하는 단계를 포함하고, 멀티미디어 스트림은 적어도 하나의 클라이언트 장치의 사용자의 사용자 그래픽 표현에 디스플레이 된다. 이 맥락에서, 이것은 사용자 그래픽 표현이 가상 환경에서 그들의 위치를 기반으로 "볼 수 있는" 것을 의미하며, 이는 사용자의 사용자 그래픽 표현의 시점으로부터 가상 환경을 볼 때 (클라이언트 장치를 통해) 사용자에게 디스플레이되는 것에 해당한다.
일부 실시예에서, 아웃바운드 멀티미디어 스트림을 포워딩할 때, 이 방법은 SFU, TURN, SAMS, 또는 다른 적절한 멀티미디어 서버 라우팅 토폴로지를 포함하는 라우팅 토폴로지, 또는 미디어 프로세싱 및 포워딩 서버 토폴로지, 또는 다른 적절한 서버 토폴로지를 활용한다.
일부 실시예에서, 이 방법은 미디어 프로세싱 토폴로지를 사용할 때 멀티미디어 스트림을 디코딩, 결합, 개선, 혼합, 향상, 증대, 계산, 조작 및 인코딩하는 단계를 더 포함한다.
일부 실시예에서, 이 방법은 포워딩 서버 토폴로지를 사용할 때 MCU(Multipoint Control Units), 클라우드 미디어 믹서, 및 클라우드 3D 렌더러 중 하나 이상을 활용하는 단계를 더 포함한다.
일부 실시예에서, 인커밍 멀티미디어 스트림은 사용자 우선순위 데이터 및 거리 관계 데이터를 포함하고, 사용자 우선순위 데이터는 인커밍 멀티미디어 스트림의 소스에 더 가까운 사용자 그래픽 표현에 대한 더 높은 우선순위 점수 및 인커밍 멀티미디어 스트림의 소스로부터 멀리 있는 사용자 그래픽 표현에 대한 더 낮은 우선순위 점수를 포함한다. 일 실시예에서, 이 방법은 사용자 우선순위 및 거리 관계 데이터에 기초하여 미디어 서버에 의해 구현된 아웃바운드 멀티미디어 스트림의 포워딩을 최적화하는 단계를 더 포함하고, 이는 대역폭을 최적화하는 것 및 하나 이상의 수신 클라이언트 장치에 대한 리소스 활용을 계산하는 것을 포함할 수 있다. 추가 실시예에서, 미디어 서버에 의해 구현된 아웃바운드 멀티미디어 스트림의 포워딩을 최적화하는 것은 시간, 공간, 품질 및/또는 컬러 특징에 대해 멀티미디어 스트림을 수정, 업스케일링 또는 다운스케일링하는 것을 더 포함한다.
일부 실시예에서, 적어도 하나의 가상 환경은 복수의 가상 방송 카메라를 포함하고, 각각의 가상 방송 카메라는 적어도 하나의 가상 환경 내의 대응하는 시점으로부터 멀티미디어 스트림을 제공한다. 일 실시예에서, 이 방법은 복수의 가상 방송 카메라를 제공하는 단계를 더 포함하고, 각각의 카메라는 적어도 하나의 클라이언트 장치의 사용자에 의해 선택 및 서로 대체될 수 있는 가상 환경 내의 대응하는 시점으로부터 멀티미디어 스트림을 제공하여, 대응하는 적어도 하나의 사용자 그래픽 표현에 대응하는 시점을 제공하는 단계를 포함한다.
본 개시의 다른 양태에서, 가상 환경 내에서 애플리케이션을 전달하기 위한 시스템이 제공되며, 이 시스템은 하나 이상의 설치된 애플리케이션 및 다중 사용자 상호작용을 위한 대응하는 애플리케이션 규칙을 포함하는 애플리케이션 모듈에 링크된 적어도 하나의 가상 환경을 구현하는 명령 및 데이터를 포함하는 메모리 및 적어도 하나의 프로세서를 포함하는 적어도 하나의 클라우드 서버 컴퓨터를 포함하고; 여기서 클라이언트 장치를 통한 가상 환경 호스트의 선택에 응답하여, 하나 이상의 설치된 애플리케이션은 가상 환경의 일 세션 동안 디스플레이되고 활성화되어 가상 환경 호스트의 사용자 그래픽 표현 및 가상 환경 내의 임의의 참가자 사용자 그래픽 표현이 대응하는 클라이언트 장치를 통해 하나 이상의 설치된 애플리케이션과 상호작용할 수 있게 되고, 그리고 적어도 하나의 클라우드 서버 컴퓨터는 애플리케이션 모듈에서 다중 사용자 상호작용을 위한 애플리케이션 규칙에 따라 하나 이상의 설치된 애플리케이션과의 수신된 사용자 상호작용을 관리 및 처리하고 그리고 그에 따라 처리된 상호작용을 (각각의 클라이언트 장치로) 포워딩하여 다중 사용자 상호작용 애플리케이션 규칙에 따른 공유 경험을 가능하게 하는 다중 사용자 세션을 설정한다.
일부 실시예에서, 다중 사용자 상호작용을 위한 애플리케이션 규칙은 하나 이상의 개별 애플리케이션 서버에 저장되고 관리된다.
일부 실시예에서, 하나 이상의 애플리케이션은 애플리케이션 라이브러리로부터 이용가능한 애플리케이션 설치 패키지로부터 설치되고, 대응하는 애플리케이션 프로그래밍 인터페이스를 통해 애플리케이션 서비스를 프로비저닝한다.
일부 실시예에서, 애플리케이션 라이브러리는 맥락적으로 필터링된다. 일 실시예에서, 맥락적 필터링은 특정 맥락에 대한 관련 애플리케이션을 제공하도록 설계된다.
일부 실시예에서, 하나 이상의 설치된 애플리케이션은 대응하는 클라이언트 장치에 설치된 가상 디스플레이 애플리케이션과 공유되고 그것을 통해 볼 수 있다. 일 실시예에서, 설치 및 활성화 시, 하나 이상의 설치된 애플리케이션은 대응하는 클라이언트 장치에 설치된 가상 디스플레이 애플리케이션과 공유되고 그것을 통해 보여지며, 가상 디스플레이 애플리케이션은 애플리케이션 라이브러리로부터 하나 이상의 설치된 애플리케이션을 수신하고, 그들의 대응하는 클라이언트 장치를 통해 가상 환경에서 회의 호스트 사용자 그래픽 표현 및 다른 참가자 사용자 그래픽 표현에 디스플레이할 하나 이상의 선택된 애플리케이션을 게시하도록 구성된다. 추가 실시예에서, 애플리케이션 모듈은 설치된 애플리케이션으로부터 가상 환경 내의 사용자 그래픽 표현으로 콘텐츠를 디스플레이하는 2D 스크린 또는 3D 볼륨 애플리케이션 모듈 그래픽 표현으로 표현되며, 가상 디스플레이 애플리케이션은 설치된 애플리케이션으로부터 가상 환경 내의 사용자 그래픽 표현으로 콘텐츠를 디스플레이하는 2D 스크린 또는 3D 볼륨으로 표현된다.
일부 실시예에서, 하나 이상의 애플리케이션은 다중 사용자 세션이 발생하기 이전에 또는 동시에 가상 환경 내부에 직접 설치된다.
일부 실시예에서, 하나 이상의 애플리케이션은 다중 사용자 세션을 시작하기 전에 가상 환경 설정 도구의 사용을 통해 설치된다.
일부 실시예에서, 다중 사용자 상호작용을 위한 하나 이상의 애플리케이션 규칙은 동기식 상호작용, 또는 비동기식 상호작용, 또는 이들의 조합을 정의한다. 일 실시예에서, 이러한 규칙은 그에 따라 사용자 상호작용 및 하나 이상의 애플리케이션의 각각의 업데이트된 뷰를 업데이트하는데 사용된다.
일부 실시예에서, 비동기식 상호작용은 적어도 하나의 서버 컴퓨터를 통해, 또는 적어도 하나의 설치된 애플리케이션과 개별 사용자 상호작용을 처리하는데 전용인 별도의 서버 컴퓨터를 통해 가능하다.
일부 실시예에서, 가상 환경은 교실, 사무실 공간, 회의실, 미팅룸, 강당 또는 극장이다.
본 개시의 다른 양태에서, 가상 환경에서 애플리케이션을 전달하는 방법이 제공되며, 이 방법은 적어도 하나의 클라우드 서버 컴퓨터의 메모리에 적어도 하나의 가상 환경, 및 하나 이상의 설치된 애플리케이션 및 다중 사용자 상호작용을 위한 대응하는 애플리케이션 규칙을 포함하는 애플리케이션 모듈을 제공하는 단계(애플리케이션 모듈은 가상 환경에 링크되고 가상 환경 내에서 볼 수 있다); 가상 환경 호스트로부터 선택 명령을 수신하는 단계; 가상 환경의 일 세션 동안 하나 이상의 설치된 애플리케이션을 디스플레이 및 활성화하여, 가상 환경 호스트의 사용자 그래픽 표현 및 가상 환경 내의 하나 이상의 참가자 사용자 그래픽 표현이 대응하는 클라이언트 장치를 통해 하나 이상의 설치된 애플리케이션과 상호작용할 수 있게 하는 단계; 하나 이상의 설치된 애플리케이션과의 사용자 상호작용을 수신하는 단계; 애플리케이션 모듈에서 다중 사용자 상호작용을 위한 애플리케이션 규칙에 따라 하나 이상의 설치된 애플리케이션과의 사용자 상호작용을 관리 및 처리하는 단계; 및 처리된 상호작용을 클라이언트 장치로 포워딩하여 애플리케이션 규칙에 따른 공유 경험을 가능하게 하는 다중 사용자 세션을 설정하는 단계를 포함한다.
일부 실시예에서, 이 방법은 하나 이상의 개별 애플리케이션 서버에서 다중 사용자 상호작용을 위한 애플리케이션 규칙을 저장하고 관리하는 단계를 더 포함한다.
일부 실시예에서, 이 방법은 애플리케이션 라이브러리로부터 이용가능한 애플리케이션 설치 패키지로부터 하나 이상의 애플리케이션을 설치하는 단계; 및 대응하는 애플리케이션 프로그래밍 인터페이스를 통해 애플리케이션 서비스를 프로비저닝하는 단계를 더 포함한다. 또 다른 실시예에서, 애플리케이션 라이브러리는 관련 애플리케이션을 제공하기 위해 맥락적으로 필터링된다. 또 다른 실시예에서, 하나 이상의 설치된 애플리케이션은 대응하는 클라이언트 장치에 설치된 가상 디스플레이 애플리케이션과 공유되고 그것을 통해 보여진다. 일 실시예에서, 이 방법은, 활성화시, 대응하는 클라이언트 장치에 설치된 가상 디스플레이 애플리케이션을 통해 하나 이상의 설치된 애플리케이션과 공유하고 보는 단계를 포함하고, 가상 디스플레이 애플리케이션은 애플리케이션 라이브러리로부터 하나 이상의 설치된 애플리케이션을 수신하고 그들의 대응하는 클라이언트 장치를 통해 가상 환경에서 미팅 호스트 사용자 그래픽 표현 및 다른 참가자 사용자 그래픽 표현에 디스플레이하도록 하나 이상의 선택된 애플리케이션을 게시하도록 구성된다.
일부 실시예에서, 이 방법은 다중 사용자 세션이 발생하기 이전에 또는 동시에 가상 환경 내부에 직접 하나 이상의 애플리케이션을 설치하는 단계를 더 포함한다. 다른 실시예에서, 이 방법은 다중 사용자 세션을 시작하기 전에 가상 환경 설정 도구를 사용하여 하나 이상의 애플리케이션을 설치하는 단계를 더 포함한다.
일부 실시예에서, 이 방법은 동기식 상호작용, 비동기식 상호작용, 또는 이들의 조합을 포함하도록 다중 사용자 상호작용을 위한 하나 이상의 애플리케이션 규칙을 정의하는 단계를 더 포함한다. 일 실시예에서, 이 방법은 그에 따라 사용자 상호작용 및 하나 이상의 애플리케이션의 각각의 업데이트된 뷰를 업데이트하는 단계를 더 포함한다.
본 개시의 또 다른 양태에서, 가상 환경에서 가상 컴퓨팅 리소스를 프로비저닝하기 위한 시스템이 제공되며, 이 시스템은 적어도 하나의 가상 환경과 연관된 적어도 하나의 가상 컴퓨터, 및 적어도 하나의 가상 환경을 구현하는 명령 및 데이터를 포함하는 메모리 및 적어도 하나의 프로세서를 포함하는 적어도 하나의 클라우드 서버 컴퓨터를 포함하는 하나 이상의 서버 컴퓨터를 포함하는 서버 컴퓨터 시스템을 포함하며, 여기서 적어도 하나의 가상 컴퓨터는 서버 컴퓨터 시스템으로부터 가상 컴퓨팅 리소스를 수신한다. 연결은 가상 컴퓨터를 가상 환경에 연결하는 것을 포함할 수 있다. 일 실시예에서, 적어도 하나의 가상 컴퓨터는 가상 환경 내에 대응하는 그래픽 표현을 갖는다. 이 그래픽 표현은 가상 컴퓨터와 사용자의 상호작용을 용이하게 하고 사용자 경험(예컨대, 재택근무 경험)의 현실감을 높이는 것과 같은 추가 이점을 제공할 수 있다. 따라서, 일 실시예에서, 적어도 하나의 가상 컴퓨터는 가상 환경 내에 위치된 적어도 하나의 대응하는 연관된 그래픽 표현을 포함하고, 가상 컴퓨터는 적어도 하나의 클라우드 서버 컴퓨터로부터 가상 컴퓨팅 리소스를 수신하고; 그리고 적어도 하나의 가상 컴퓨터는 네트워크를 통해 적어도 하나의 서버 컴퓨터에 연결하는 적어도 하나의 클라이언트 장치를 포함하고, (예를 들어, 대응하는 그래픽 표현과 상호작용함으로써) 하나 이상의 가상 컴퓨터에 액세스하는 적어도 하나의 클라이언트 장치에 응답하여, 적어도 하나의 클라우드 서버 컴퓨터는 적어도 하나의 클라이언트 장치에 이용 가능한 가상 컴퓨팅 리소스의 적어도 일부를 프로비저닝한다.
일부 실시예에서, 서버 컴퓨터 시스템은 적어도 하나의 가상 환경에서 적어도 하나의 가상 컴퓨터의 적어도 하나의 대응하는 그래픽 표현과 상호작용하는 사용자 그래픽 표현에 응답하여 가상 컴퓨팅 리소스의 적어도 일부를 적어도 하나의 클라이언트 장치에 프로비저닝하도록 구성된다. 추가 실시예에서, 하나 이상의 가상 컴퓨터 그래픽 표현은 사용자 그래픽 표현에 의한 액세스를 위해 가상 환경 내에 공간적으로 위치된다. 일 실시예에서, 가상 환경의 배열은 각각 교육, 회의, 작업, 쇼핑, 서비스, 사교 또는 오락를 위해 사용하기 위한 가상 아이템, 가구, 평면도 등의 배열과 같은, 가상 환경의 컨텍스트 테마와 연관된다. 추가 실시예에서, 하나 이상의 가상 컴퓨터 그래픽 표현은 하나 이상의 사용자 그래픽 표현에 의한 액세스를 위해 가상 환경의 배열 내에 위치된다. 예를 들어, 가상 컴퓨터는 가상 컴퓨터와 연관된 리소스를 사용하는 능력이 필요하거나 그로부터 혜택을 받을 수 있는 활동(예컨대, 가상 교실, 실험실 또는 사무실에서 프로젝트 작업)에 참여할 때 사용자 그래픽 표현이 액세스할 가상 룸에 배치될 수 있다.
일부 실시예에서, 서버 컴퓨터 시스템은 가상 환경에 액세스하지 않고 적어도 하나의 클라이언트 장치에 로그인함으로써 적어도 하나의 클라우드 서버 컴퓨터에 액세스하는 사용자에 응답하여 적어도 하나의 클라이언트 장치에 가상 컴퓨팅 리소스의 적어도 일부를 프로비저닝하도록 구성된다. 예시적인 시나리오에서, 가상 컴퓨팅 리소스는 네트워크를 통해 적어도 하나의 클라우드 서버 컴퓨터에 연결하는 클라이언트 장치에 물리적으로 로그인함으로써 적어도 하나의 클라우드 서버 컴퓨터에 액세스하는 사용자에 의해 액세스되고, 가상 환경에 액세스하지 않고 클라이언트 장치에 가상 컴퓨팅 리소스의 프로비저닝을 트리거한다.
일부 실시예에서, 가상 컴퓨팅 리소스의 적어도 일 부분은 관리 도구와 함께 클라이언트 장치에 할당된다. 추가 실시예에서, 가상 컴퓨팅 리소스의 적어도 일 부분의 프로비저닝은 저장된 사용자 프로파일에 기초하여 수행된다. 일 실시예에서, 리소스의 할당은 우선순위 데이터, 보안 데이터, QOS, 대역폭, 메모리 공간, 또는 컴퓨팅 파워 또는 이들의 조합을 포함하는, 사용자 프로파일과 연관되고 그것에 할당된 파라미터 중 하나 이상을 포함하는 저장된 사용자 프로파일에 기초하여 수행된다.
일부 실시예에서, 적어도 하나의 가상 컴퓨터는 애플리케이션 라이브러리로부터 이용가능한 다운로드 가능한 애플리케이션을 포함한다. 복수의 가상 컴퓨터를 포함하는 예시적인 시나리오에서, 각 가상 컴퓨터는 애플리케이션 라이브러리에서 다운로드할 수 있는 애플리케이션이다.
본 개시의 다른 양태에서, 가상 환경에서 가상 컴퓨팅 리소스를 프로비저닝하는 방법은 적어도 하나의 클라우드 서버 컴퓨터의 메모리에, 적어도 하나의 가상 컴퓨터 및 적어도 하나의 가상 컴퓨터와 연관된 가상 환경을 제공하는 단계; 가상 컴퓨팅 리소스를 적어도 하나의 가상 컴퓨터와 연관시키는 단계; 적어도 하나의 클라이언트 장치로부터, 하나 이상의 가상 컴퓨터에 액세스하기 위한 액세스 요청을 수신하는 단계; 및 적어도 하나의 클라이언트 장치로로부터 수신된 액세스 요청에 응답하여 적어도 하나의 가상 컴퓨터와 연관된 이용 가능한 가상 컴퓨팅 리소스의 일부로 적어도 하나의 클라이언트 장치를 프로비저닝하는 단계를 포함한다. 일 실시예에서, 가상 컴퓨팅 리소스를 적어도 하나의 가상 컴퓨터와 연관시키는 단계는 가상 컴퓨터에 의해 적어도 하나의 클라우드 서버 컴퓨터로부터 가상 컴퓨팅 리소스를 수신하는 단계를 포함할 수 있다.
일부 실시예에서, 액세스 요청은 사용자 그래픽 표현이 적어도 하나의 가상 컴퓨터를 나타내는 하나 이상의 그래픽 표현과 상호작용하는 것을 허용하는 요청을 포함한다. 일 실시예에서, 이 방법은 사용자 그래픽 표현으로부터 적어도 하나의 가상 환경 내의 가상 컴퓨터의 하나 이상의 그래픽 표현에 액세스하기 위한 액세스 요청을 수신하는 단계; 및 이용 가능한 가상 컴퓨팅 리소스의 적어도 일부를 대응하는 클라이언트 장치에 제공하는 단계를 포함한다. 추가 실시예에서, 가상 환경의 배열은 교육, 회의, 작업, 쇼핑, 서비스, 사교 또는 오락에 각각 사용하기 위한 배열을 포함하는 가상 환경의 컨텍스트 테마와 연관되고, 여기서 하나 이상의 가상 컴퓨터는 하나 이상의 사용자 그래픽 표현에 의한 액세스를 위해 가상 환경의 배열 내에 배치된다.
일부 실시예에서, 액세스 요청은 적어도 하나의 클라이언트 장치에 로그인하는 사용자에 의해 트리거된다. 일 실시예에서, 이 방법은 네트워크를 통해 적어도 하나의 클라우드 서버 컴퓨터에 연결하는 클라이언트 장치에 물리적으로 로그인하는 사용자로부터 액세스 요청을 수신하는 단계; 및 가상 환경에 액세스하지 않고 가상 컴퓨팅 리소스를 클라이언트 장치에 프로비저닝하는 단계를 포함한다.
일부 실시예에서, 이 방법은 관리 도구와 함께 가상 컴퓨팅 리소스의 적어도 일 부분을 클라이언트 장치에 할당하는 단계를 더 포함한다. 또 다른 실시예에서, 상기 할당은 우선순위 데이터, 보안 데이터, QOS, 대역폭, 메모리 공간, 컴퓨팅 파워, 또는 이들의 조합을 포함하는, 사용자 프로파일과 연관되고 그것에 할당된 파라미터 중 하나 이상을 포함하는 저장된 사용자 프로파일에 기초하여 수행된다.
본 개시의 다른 양태에서, 사용자 그래픽 표현들 간의 애드혹 가상 통신을 가능하게 하는 시스템은 가상 환경을 구현하는 데이터 및 명령을 저장하는 메모리 및 적어도 하나의 프로세서를 포함하는 하나 이상의 클라우드 서버 컴퓨터를 포함한다. 가상 환경은 가상 환경에서 적어도 하나의 접근하는 사용자 그래픽 표현 및 적어도 하나의 타겟 사용자 그래픽 표현이 애드혹 통신 채널을 열고, 가상 환경 내의 사용가 그래픽 표현들 간의 애드혹 통신 채널을 통한 애드혹 대화를 가능하게 하도록 구성된다.
일 실시예에서, 이 시스템은 대응하는 사용자 그래픽 표현을 통해 적어도 하나의 가상 환경에 액세스하고 네트워크를 통해 하나 이상의 클라우드 서버 컴퓨터에 연결되어 있는 2 이상의 클라이언트 장치를 더 포함하고; 여기서 가상 환경은 적어도 하나의 접근하는 사용자 그래픽 표현 및 적어도 하나의 타겟 사용자 그래픽 표현이 애드혹 통신 채널을 열 수 있게 하여, 가상 환경 내에서 사용자 그래픽 표현들 간의 애드혹 대화를 가능하게 한다.
일부 실시예에서, 애드혹 통신 채널을 여는 것은 사용자 그래픽 표현들 간의 거리, 위치 및 방향, 또는 애드혹 통신에 대한 현재 가용성 상태, 프라이버시 설정, 또는 상태 구성, 또는 이들의 조합에 기초하여 수행된다.
일부 실시예에서, 애드혹 대화는 두 사용자 그래픽 표현 영역이 모두 위치한 가상 환경 내의 장소에서 수행된다. 다른 실시예에서, 애드혹 대화는 가상 환경에서 현재 보기 시점을 사용하여 수행된다.
일부 실시예에서, 애드혹 대화는 애드혹 대화가 발생하는 동일하거나 다른 연결된 가상 환경 내에서 보기 시점, 위치, 또는 이들의 조합의 선택적 변경을 가능하게 한다.
일부 실시예에서, 하나 이상의 클라우드 서버 컴퓨터는 애드혹 통신이 가능하다는 신호를 보내는 가상 환경 내의 시각적 피드백을 생성하도록 추가로 구성된다. 일 실시예에서, 사용자 그래픽 표현은 애드혹 통신이 가능하다는 시각적 피드백 신호를 수신하여 애드혹 통신 채널의 개방을 트리거하고, 사용자 그래픽 표현들 간의 애드혹 대화의 시작을 시그널링한다.
일부 실시예에서, 애드혹 대화는 실시간 오디오 및 비디오를 송수신하는 것을 포함한다. 예시적인 시나리오에서, 이러한 비디오는 사용자 그래픽 표현으로부터 디스플레이될 수 있다.
일부 실시예에서, 접근하는 사용자 그래픽 표현에 대응하는 사용자는 애드혹 통신 채널을 열기 전에 타겟 사용자 그래픽 표현을 선택하고 클릭한다. 또 다른 실시예에서, 하나 이상의 클라우드 서버 컴퓨터는 수락된 초대에 응답하여 애드혹 통신 채널을 개방하도록 추가로 구성된다. 예를 들어, 접근하는 사용자 그래픽 표현에 대응하는 사용자는 애드혹 통신 참여 초대를 타겟 사용자 그래픽 표현에 보내고, 애드혹 통신 채널을 열기 전에 타겟 사용자 그래픽 표현으로부터 초대 승인을 받는다.
일부 실시예에서, 애드혹 통신 채널은 적어도 하나의 클라우드 서버 컴퓨터를 통해 또는 P2P 통신 채널로서 활성화된다.
본 개시의 다른 양태에서, 사용자 그래픽 표현들 간의 애드혹 가상 통신을 가능하게 하는 방법은 적어도 하나의 프로세서를 포함하는 하나 이상의 클라우드 서버 컴퓨터의 메모리에 가상 환경을 제공하는 단계; 대응하는 그래픽 표현을 통해 적어도 하나의 가상 환경에 액세스하는 2 이상의 클라이언트 장치를 탐지하는 단계로서, 이 클라이언트 장치는 네트워크를 통해 하나 이상의 클라우드 서버 컴퓨터에 연결된 것인, 상기 2 이상의 클라이언트 장치를 탐지하는 단계; 및 다른 사용자 그래픽 표현에 접근하는 적어도 하나의 사용자 그래픽 표현에 응답하여, 애드혹 통신 채널을 열어 가상 환경에서 사용자 그래픽 표현들 간의 애드혹 대화를 가능하게 하는 단계를 포함한다.
일부 실시예에서, 이 방법은 애드혹 통신 채널을 열기 전에 사용자 그래픽 표현 간의 거리, 위치 및 방향, 또는 애드혹 통신을 위한 현재 가용성 상태, 프라이버시 설정, 또는 상태 구성, 또는 이들의 조합을 중 하나 이상을 탐지하고 평가하는 단계를 더 포함한다.
일부 실시예에서, 이 방법은 애드혹 대화가 두 사용자 그래픽 표현 영역 모두가 위치한 가상 환경 내의 장소에서 수행될 수 있게 한다. 다른 실시예에서, 애드혹 대화는 가상 환경에서 현재 보기 시점을 사용하여 수행된다.
일부 실시예에서, 이 방법은 애드혹 대화가 일어날 수 있는 동일하거나 다른 연결된 가상 환경 내에서 보기 시점, 위치, 또는 이들의 조합의 선택적인 변경을 가능하게 하는 단계를 포함한다.
일부 실시예에서, 이 방법은 애드 혹 통신이 가능하다는 신호를 보내는, 가상 환경에서의 시각적 피드백을 생성하는 단계를 더 포함한다. 이 방법은 타겟 사용자 그래픽 표현에 시각적 피드백을 전송하고, 애드혹 통신이 가능함을 시그널링하고, 이에 의해 애드혹 통신 채널의 개방을 트리거하고, 사용자 그래픽 표현 사이의 대화의 시작을 시그널링하는 단계를 더 포함할 수 있다.
일부 실시예에서, 대화는 사용자 그래픽 표현으로부터 디스플레이되는 실시간 오디오 및 비디오를 송수신하는 것을 포함한다.
일부 실시예에서, 이 방법은 사용자 그래픽 표현으로부터 사용자 그래픽 표현에 접근함으로써 타겟 사용자 그래픽 표현을 선택하고 클릭하는 단계를 더 포함한다. 또 다른 실시예에서, 애드혹 통신 채널은 수락된 초대에 응답하여 개방된다. 일 실시예에서, 이 방법은 애드혹 통신 채널을 열기 전에 애드혹 가상 통신 참여 초대를 다른 사용자 그래픽 표현으로 전송하거나 또는 그로부터 수신하는 단계를 더 포함한다.
하나 이상의 컴퓨터로 하여금 본 명세서에 설명된 임의의 방법을 수행하게 하도록 구성된 명령을 저장한 컴퓨터 판독가능 매체가 또한 설명된다.
상기 설명은 본 개시의 모든 양태의 철저한 목록을 포함하지는 않는다. 본 명세서는 앞서 설명된 다양한 양태의 모든 적합한 조합으로부터 실시될 수 있는 모든 시스템 및 방법, 뿐만 아니라 아래의 발명을 실시하기 위한 구체적인 내용에 개시된 것들, 특히 본 출원과 함께 제출된 청구범위에서 지적된 것을 포함하는 것으로 고려된다. 이러한 조합은 앞선 설명에서 구체적으로 언급되지 않은 이점들을 갖는다. 다른 특징 및 이점은 첨부된 도면 및 아래의 발명을 실시하기 위한 구체적인 내용으로부터 명백해질 것이다.
본 개시의 특정 특징, 양태 및 이점은 아래의 설명 및 첨부 도면을 참조하여 더 잘 이해될 것이며, 여기서:
도 1은 일 실시예에 따른 가상 환경에서 사회적 상호작용을 포함하는 상호작용을 가능하게 하는 시스템의 개략도를 도시한다.
도 2a-2b는 가상 환경 플랫폼의 복수의 버티컬을 포함하는 가상 환경에서 사회적 상호작용을 포함하는 상호작용을 가능하게 하는 시스템 전개의 개략도를 도시한다.
도 3은 일 실시예에 따른 가상 환경에서 상호작용을 가능하게 하는 시스템에 사용되는 하이브리드 시스템 아키텍처의 개략도를 도시한다.
도 4는 일 실시예에 따른, 사용자가 가상 환경에서 상호작용할 수 있게 하는 그래픽 사용자 인터페이스의 개략도를 도시한다.
도 5는 일 실시예에 따른, 사용자 3D 가상 컷아웃으로부터 사용자 실시간 3D 가상 컷아웃, 또는 배경이 제거된 비디오, 또는 배경이 제거되지 않은 비디오로 전환하는 방법의 블록도를 도시한다.
도 6a 내지 도 6c는 대응하는 클라이언트 장치 및 클라우드 서버에 의해 클라이언트-서버 측에서 수행되는 복수의 이미지 처리 조합의 개략도를 도시한다.
도 7a 내지 도 7c는 대응하는 피어 클라이언트에 의해 P2P 측에서 수행되는 복수의 이미지 처리 조합의 개략적 표현을 도시한다.
도 8은 일 실시예에 따른, 사용자 그래픽 표현 기반 사용자 인증 시스템의 개략도를 도시한다.
도 9는 일 실시예에 따른 사무실 가상 환경의 3인칭 시점의 개략도를 도시한다.
도 10a-10b는 일 실시예에 따른 교실 가상 환경의 개략도를 도시한다.
도 11은 일 실시예에 따른, 복수의 가상 카메라 위치의 개략도를 도시한다.
도 12는 가상 환경에서 가상으로 방송하기 위한 시스템의 개략도를 도시한다.
도 13은 가상 환경에서 애플리케이션을 전달하기 위한 시스템의 개략도를 도시한다.
도 14는 일 실시예에 따른, 도 13에 도시된 가상 환경에서 애플리케이션을 전달하기 위한 시스템에 기초한 가상 환경의 개략도를 도시한다.
도 15는 일 실시예에 따른 가상 환경에서 가상 컴퓨팅 리소스를 프로비저닝하기 위한 시스템의 개략도를 도시한다.
도 16은 일 실시예에 따른, 사용자 그래픽 표현들 간의 애드혹 가상 통신을 가능하게 하는 시스템의 개략도를 도시한다.
도 17은 일 실시예에 따른 가상 환경에서 상호작용을 가능하게 하는 방법의 일 실시예를 도시한다.
도 18은 일 실시예에 따른 이미지 처리 방법의 일 실시예를 도시한다.
도 19는 일 실시예에 따른 사용자 그래픽 표현 기반 사용자 인증 방법(1900)을 도시한다.
도 20은 일 실시예에 따른 가상 환경에서 가상으로 방송하기 위한 방법의 블록도를 도시한다.
도 21은 일 실시예에 따른 가상 환경에서 애플리케이션을 전달하기 위한 방법의 블록도를 도시한다.
도 22는 일 실시예에 따른 가상 환경에서 가상 컴퓨팅 리소스를 프로비저닝하는 방법의 블록도를 도시한다.
도 23은 사용자 그래픽 표현들 간의 애드혹 가상 통신을 가능하게 하는 방법의 블록도를 도시한다.
아래 설명에서, 다양한 실시예를 예시로 보여주는 도면을 참조한다. 또한, 이하에서는 몇 가지 예를 들어 다양한 실시예를 설명한다. 이 실시예들은 청구된 주제의 범위를 벗어나지 않고 설계 및 구조의 변경을 포함할 수 있음을 이해해야 한다.
본 개시의 시스템 및 방법은 여러 가지 중에서도 회의, 작업, 교육, 쇼핑 및 서비스에 사용될 수 있는, 실생활에서 이용가능한 것과 유사한 실시간 다중 사용자 협업 및 상호작용을 가능하게 하는 하나 이상의 가상 환경을 포함하는 가상 환경 플랫폼을 제공함으로써 전술한 단점 중 적어도 일부를 해결한다. 가상 환경은 가상 환경 플랫폼에서 이용 가능한 상이한 버티컬(vertical)에서의 복수의 가상 환경 중에서 선택될 수 있다. 동일 및/또는 상이한 버티컬로부터의 가상 환경의 조합은 수백 또는 수천 개의 가상 환경을 포함할 수 있는 가상 환경 클러스터를 형성할 수 있다. 가상 환경은 가상 환경의 버티컬과 관련된 배열 및 시각적 외관을 포함하는 2D 또는 3D 가상 환경일 수 있으며, 이는 사용자의 선호도 또는 요구에 따라 사용자에 의해 커스터마이징될 수 있다. 사용자는 가상 환경에 삽입될 수 있고 2차원 또는 3차원 가상 환경과 그래픽적으로 결합될 수 있는 그래픽 표현을 통해 가상 환경에 액세스할 수 있다.
사용자 그래픽 표현은 배경이 제거된 사용자가 업로드한 또는 제3자 소스의 사진으로 구성된 사용자 3D 가상 컷아웃, 또는 사용자 실시간 3D 가상 컷아웃, 또는 배경이 제거된 비디오 또는 배경이 제거되지 않은 비디오일 수 있으며, 이들 중 임의의 것이 사용자가 희망할 때 임의의 시간에 서로 전환될 수 있다. 사용자 그래픽 표현은 현재 가용성 또는 다른 사용자와 관련된 다른 데이터에 대한 추가 세부사항을 제공하는 사용자 상태를 포함할 수 있다. 가상 환경 내의 객체와의 상호작용과 함께 가상 환경에서 사용자 간의 대화 및 협업과 같은 상호작용이 가능하다. 본 개시는 사용자 그래픽 표현의 생성에 사용될 수 있는 복수의 이미지 처리 조합을 포함하는 데이터 처리 시스템 및 방법을 더 제공한다. 본 개시는 또한 가상 환경 플랫폼 또는 가상 환경 플랫폼으로부터의 가상 환경에 링크된 다른 애플리케이션에 액세스하는데 사용될 수 있는 사용자 그래픽 표현 기반 사용자 인증 시스템 및 방법; 가상 환경 내에서 가상으로 방송하기 위한 시스템 및 방법; 가상 환경 내에서 애플리케이션을 전달하기 위한 시스템 및 방법; 가상 환경 클라우드 서버 컴퓨터 내에서 클라우드 컴퓨팅 기반 가상 컴퓨팅 리소스를 프로비저닝하는 시스템 및 방법; 및 접근하는 사용자 그래픽 표현 간의 애드혹 가상 통신을 가능하게 하는 시스템 및 방법을 제공한다.
상기 가상 환경에서 사용자 간의 가상 존재 및 현실적인 상호작용 및 협업을 가능하게 하는 것은, 예를 들어, 전염병 또는 다른 이동성을 제한하는 상황에서 요구되는 것과 같은, 원격 활동의 현실성을 증가시킬 수 있다. 본 개시의 시스템 및 방법은 또한 확장 현실 헤드-마운트 디스플레이 또는 값비싼 새로운 시스템 인프라구조와 같은 보다 값비싼 몰입형 장치를 필요로 하지 않고도, 모바일 장치 또는 컴퓨터와 같은 클라이언트 장치 상의 다양한 가상 환경의 액세스를 가능하게 한다. 본 개시의 클라이언트 또는 피어 장치는, 예를 들어, 컴퓨터, 헤드셋, 휴대 전화, 안경, 투명 스크린, 태블릿 및 일반적으로 카메라가 빌트인 된 또는 카메라에 연결될 수 있고 상기 카메라로부터 공급되는 데이터를 수신할 수 있는 입력 장치를 포함할 수 있다.
도 1은 일 실시예에 따른 가상 환경에서 사회적 상호작용을 가능하게 하는 시스템(100)의 개략도를 도시한다.
가상 환경에서 상호작용을 가능하게 하는 본 개시의 시스템(100)은 적어도 하나의 프로세서(104) 및 가상 환경 A-C과 같은 적어도 하나의 가상 환경(110)을 포함하는 가상 환경 플랫폼(108)을 구현하는 명령어 및 데이터를 저장하는 메모리(106)를 포함하는 하나 이상의 클라우드 서버 컴퓨터(102)를 포함한다. 하나 이상의 클라우드 서버 컴퓨터는 카메라에 의해 획득된 라이브 데이터 피드(live data feed)로부터 생성된 사용자 그래픽 표현을 하나 이상의 가상 환경의 3차원 좌표 위치에 삽입하고, 적어도 하나의 가상 환경에서 사용자 그래픽 표현을 업데이트하고, 가상 환경에서 실시간 다중-사용자 협업 및 상호작용을 가능하게 하도록 구성된다. 설명된 실시예에서, 사용자 그래픽 표현을 가상 환경에 삽입하는 것은 사용자 그래픽 표현이 가상 환경에(예를 들어, 지정된 3D 좌표 위치에) 나타나도록 가상 환경에 사용자 그래픽 표현을 그래픽적으로 결합하는 것을 포함한다. 도 1에 도시된 예에서, 시스템(100)은 클라이언트 장치(118)의 사용자(116)로부터 라이브 데이터 피드(114)를 획득하는 적어도 하나의 카메라(112)를 더 포함한다.하나 이상의 클라이언트 장치(118)는 네트워크를 통해 하나 이상의 클라우드 서버 컴퓨터(102) 및 적어도 하나의 카메라(112)에 통신 가능하게 연결한다. 라이브 데이터 피드(114)로부터 생성된 사용자 그래픽 표현(120)은 가상 환경(110)(예를 들어, 가상 환경 A)의 3차원 좌표 위치에 삽입되고, 가상 환경과 그래픽적으로 결합될 뿐만 아니라 라이브 데이터 피드(114)를 사용하여 업데이트된다. 업데이트된 가상 환경은 P2P 통신에 의해 직접적으로 또는 하나 이상의 클라우드 서버(102)의 사용을 통해 간접적으로 클라이언트 장치에 제공된다. 시스템(100)은 클라이언트 장치(118)를 통해 그래픽 사용자 인터페이스에 액세스함으로써 가상 환경(110)에서 실시간 다중-사용자 협업 및 상호작용을 가능하게 한다.
도 1에서는, 2명의 사용자(116)(예를 들어, 각각의 사용자 A 및 B)가 가상 환경 A에 액세스하고, 그 안의 요소들과 상호작용하고, 대응하는 클라이언트 장치(118)(각각 클라이언트 장치 A 및 B)를 통해 액세스되는 대응하는 사용자 그래픽 표현(120)(예를 들어, 각각의 사용자 그래픽 표현 A 및 B)을 통해 서로 상호작용하고 있다. 2명의 사용자(116), 클라이언트 장치(118) 및 사용자 그래픽 표현(120)만이 도 1에 도시되어 있지만, 당업자는 이 시스템이 대응하는 클라이언트 장치 (118)를 통해 대응하는 그래픽 표현(120)을 통해 서로 상호작용하는 복수의 사용자(116)를 가능하게 할 수 있음을 이해할 것이다.
일부 실시예에서, 가상 환경 플랫폼(108) 및 대응하는 가상 환경(110)은 라이브 공연, 콘서트, 웨비나, 기조 연설 등과 같은 복수의 경험을 복수(예를 들어, 수천 또는 심지어 수백만)의 사용자 그래픽 표현 (120)과 실시간의 공유할 수 있다. 이러한 가상 공연은 세계의 다양한 지역으로부터의 많은 수의 사용자(116)를 수용하기 위해 가상 환경(110)의 복수의 인스턴스에 의해 제시되거나 멀티캐스팅될 수 있다.
일부 실시예에서, 클라이언트 장치(118)는 여러 가지 중에서도 모바일 장치, 개인용 컴퓨터, 게임 콘솔, 미디어 센터, 및 머리 장착형 디스플레이 중 하나 이상일 수 있다. 카메라(110)는 여러가지 중에서도 2D 또는 3D 카메라, 360도 카메라, 웹 카메라, RGBD 카메라, CCTV 카메라, 전문 카메라, 휴대 전화 카메라, 깊이 카메라(예컨대, LIDAR) 또는 라이트 필드 카메라 중 하나 이상일 수 있다.
일부 실시예에서, 가상 환경(110)은 CAD(computer assisted drawing) 방법을 통한 임의의 적절한 3D 모델링 기술을 통해 설계된 가상 구성물(예를 들어, 가상 모델)을 지칭한다. 다른 실시예에서, 가상 환경(110)은 추가 실시예에서, 가상 환경(110)은 임의의 적절한 스캐닝 도구를 통해 실제 구성물(예컨대, 실제 방)에서 스캔되는 가상 구성물을 지칭하는데, 이는 가상 환경(110)을 생성하기 위한 다양한 사진, 비디오, 깊이 측정, 및/또는 SLAM(simultaneous location and mapping) 스캐닝을 통해 입력되는 이미지 스캐닝 파이프라인을 포함한다. 예를 들어 합성 조리개 레이더, 실제 조리개 레이더, LIDAR(Light Detection and Ranging), 역 조리개 레이더, 모노펄스 레이더 및 기타 유형의 이미징 기술과 같은 레이더 이미징이 실제 세계 구성물을 매핑하고 모델링하고 그들을 가상 환경 (110)으로 전환하기 위해 사용된다. 다른 실시예에서, 가상 환경(110)은 실제 구성물(예를 들어, 현실 세계의 방, 건물 또는 시설)을 따라 모델링된 가상 구성물이다.
일부 실시예에서, 클라이언트 장치(118) 및 적어도 하나의 클라우드 서버 컴퓨터(102)는 유선 또는 무선 네트워크를 통해 연결한다. 일부 실시예에서, 네트워크는 밀리미터파(mmW) 또는 mmW 및 5세대 무선 시스템 통신(5G)과 같은 6GHz 미만 통신 시스템의 조합을 포함할 수 있다. 다른 실시예에서, 이 시스템은 무선 근거리 통신망(Wi-Fi)을 통해 연결할 수 있다. 다른 실시예에서, 이 시스템은 4세대 무선 시스템 통신(4G)을 통해 통신적으로 연결할 수 있고, 4G 통신 시스템에 의해 지원될 수 있고 또는 다른 유선 또는 무선 통신 시스템을 포함할 수도 있다.
일부 실시예에서, 선택된 가상 환경(110)으로의 사용자 그래픽 표현(120)의 생성, 업데이트 및 삽입 및 이들의 조합에 포함되는 프로세싱 및 렌더링은 사용자(116)의 라이브 데이터 피드(114)를 수신한 때 클라이언트 장치(118)의 적어도 하나의 프로세서에 의해 수행된다. 하나 이상의 클라우드 서버 컴퓨터(102)는 클라이언트 렌더링 사용자 그래픽 표현(120)을 수신하고, 클라이언트 렌더링 사용자 그래픽 표현(120)을 가상 환경(110)의 3차원 좌표에 삽입하고, 삽입된 사용자 그래픽 표현(120)을 가상 환경(110)과 결합하고, 그 다음 클라이언트-렌더링 사용자 그래픽 표현(120)을 수신 클라이언트 장치로 전송하기 위해 진행한다. 예를 들어, 도 1에서 볼 수 있는 바와 같이, 클라이언트 장치 A는 각각의 카메라(112)로부터 라이브 데이터 피드(114)를 수신할 수 있고, 라이브 데이터 피드(114)로부터 데이터를 처리 및 렌더링하여 사용자 그래픽 표현 A를 생성한 다음, 클라이언트-렌더링 사용자 그래픽 표현 A를 적어도 하나의 클라우드 서버 컴퓨터(102)로 전송하는데, 이는 사용자 그래픽 표현 A를 클라이언트 장치 B로 전송하기 전에 가상 환경(118)의 3차원 좌표에 사용자 그래픽 표현 A를 위치시킬 수 있다. 유사한 프로세스가 클라이언트 장치 B와 사용자 B의 사용자 그래픽 표현 B에 적용된다. 따라서, 사용자 그래픽 표현 A 및 B 모두는 가상 환경 A에서 서로를 보고 상호작용할 수 있다. 그러나, 도 6a 내지 도 7c와 관련하여 예시되고 설명된 바와 같이, 본 개시의 시스템 및 방법을 통해 다양한 다른 이미지 프로세싱 조합이 가능할 수 있다.
일부 실시예에서, 사용자 그래픽 표현(120)의 생성, 업데이트 및 삽입 및 가상 환경과의 결합에 포함되는 프로세싱 및 렌더링은 클라이언트 장치(118)가 사용자(116)의 처리되지 않은 라이브 데이터 피드(114)를 전송할 때 하나 이상의 클라우드 서버 컴퓨터(102)의 적어도 하나의 프로세서(104)에 의해 수행된다. 따라서 하나 이상의 클라우드 서버 컴퓨터(102)는 클라이언트 장치(118)로부터 사용자(116)의 처리되지 않은 라이브 데이터 피드(114)를 수신한 다음, 가상 환경 내의 클라우드 렌더링 사용자 그래픽 표현을 다른 클라이언트 장치(118)로 전송하기 전에, 처리되지 않은 라이브 데이터 피드로부터, 가상 환경(110)의 3차원 좌표 내에 위치하는 사용자 그래픽 표현(120)을 생성, 처리 및 렌더링한다. 예를 들어, 도 1에서 볼 수 있는 바와 같이, 클라이언트 장치 A는 각각의 카메라(112)로부터 라이브 데이터 피드(114)를 수신할 수 있고, 그 다음 처리되지 않은 사용자 라이브 데이터 피드(114)를 적어도 하나의 클라우드 서버 컴퓨터(102)에 전송할 수 있다. 사용자 그래픽 표현 A를 클라이언트 장치 B에 전송하기 전에 사용자 그래픽 표현 A를 렌더링하고 가상 환경(118)의 3차원 좌표에 사용자 그래픽 표현 A를 위치시키도록 구성된다. 예를 들어, 도 1에서 볼 수 있듯이, 클라이언트 장치 A는 각각의 카메라(112)로부터 라이브 데이터 피드(114)를 수신할 수 있고, 그 다음 처리되지 않은 사용자 라이브 데이터 피드(114)를 적어도 하나의 클라우드 서버 컴퓨터(102)(사용자 그래픽 표현 A를 생성, 처리 및 렌더링할 수 있음)로 전송할 수 있고, 그리고 사용자 그래픽 표현 A를 클라이언트 장치 B로 전송하기 전에 가상 환경(118)의 3차원 좌표에 사용자 그래픽 표현 A를 위치시키도록 구성된다. 유사한 프로세스가 클라이언트 장치 B와 사용자 B의 사용자 그래픽 표현 B에 적용된다. 따라서 사용자 그래픽 표현 A 및 B 모두는 가상 환경 A에서 서로를 보고 상호작용할 수 있다.
일부 실시예에서, 가상 환경 플랫폼(108)은 가상 환경으로 리디렉팅 되는 클릭 가능한 링크를 제3자 웹사이트, 애플리케이션 또는 비디오 게임을 포함하는 하나 이상의 제3자 소스에 임베딩하는 것을 가능하게 하도록 구성된다. 링크는 예를 들어 HTML 링크일 수 있다. 링크된 가상 환경(110)은 링크가 임베딩되어 있는 웹사이트의 콘텐츠와 연관될 수 있다. 예를 들어, 링크는 자동차 딜러 또는 제조업체 웹사이트에 임베드될 수 있으며, 클릭 가능한 링크는 사용자가 사용자 그래픽 표현(120)을 통해 방문할 수 있는 자동차 딜러 쇼룸을 나타내는 가상 환경(110)으로 리디렉팅한다.
일부 실시예에서, 사용자 그래픽 표현(120)은 대응하는 사용자에 대한 프로파일 정보를 포함하는 제3자 소스로 디렉팅하는 링크와 같이, 그 위에 임베딩된 클릭 가능한 링크를 포함한다. 예를 들어, 클릭 가능한 링크는 소셜 미디어(예컨대, LinkedInTM과 같은 전문 소셜 미디어 웹사이트)에 대한 액세스를 허용할 수 있는 사용자 그래픽 표현(120)의 소스 코드 상에 임베딩된 HTML 링크일 수 있으며, 이는 대응하는 사용자에 대한 추가 정보를 제공한다. 일부 실시예에서, 사용자에 의해 허용된다면, 다른 사용자가 대응하는 사용자 그래픽 표현을 클릭하거나 커서를 호버링할 때 사용자의 기본 정보 중 적어도 일부가 표시될 수 있으며, 이는 데이터베이스 또는 제3자 소스로부터 사용자 데이터에 액세스하고 검색함으로써 수행될 수 있다.
일부 실시예에서, 사용자 그래픽 표현은 사용자 업로드된 또는 제3자 소스로부터(예를 들어, 소셜 미디어 웹사이트로부터)의 사진, 또는 배경이 제거된 사용자(116)의 실시간 비디오 스트림, 또는 배경이 제거된 비디오, 또는 배경이 제거되지 않은 비디오를 포함하는 사용자 실시간 3D 가상 컷아웃으로부터 구성된 사용자 실시간 3D 가상 컷아웃이다. 다른 실시예에서, 클라이언트 장치(118)는 사용자(116)의 라이브 카메라 피드(114)를 처리 및 분석하고, 도 3을 참조하여 추가로 설명되는 바와 같이 피어 투 피어(P2P) 시스템 아키텍처 또는 하이브리드 시스템 아키텍처를 통해 다른 피어 클라이언트 장치(118)로 전송되는 애니메이션 데이터를 생성함으로써 사용자 그래픽 표현(120)을 생성한다. 수신 피어 클라이언트 장치(118)는 애니메이션 데이터를 사용하여 사용자 그래픽 표현을 로컬로 구성하고 업데이트한다.
사용자 3D 가상 컷아웃은 사용자 업로드 또는 제3자 소스 2D 사진으로 구성된 사용자의 가상 복제본을 포함할 수 있다. 일 실시예에서, 사용자 3D 가상 컷아웃은 사용자 업로드 또는 제3자 소스 2D 사진을 입력 데이터로 사용하는 머신 비전 기술을 통해 3D 가상 재구성 프로세스를 통해 생성되어, 배경이 제거된 사용자의 3D 메시 또는 3D 포인트 클라우드를 생성한다. 일 실시예에서, 사용자 3D 가상 컷아웃은 정적 얼굴 표정을 가질 수 있다. 다른 실시예에서, 사용자 3D 가상 컷아웃은 카메라 피드를 통해 업데이트된 얼굴 표정을 포함할 수 있다. 또 다른 실시예에서, 사용자 3D 가상 컷아웃은 사용자 3D 가상 컷아웃이 웃거나, 찡그리거나, 진지해지는 것 등을 허용하는 버튼과 같은 사용자 그래픽 인터페이스 상의 버튼을 통해 변경될 수 있는 표현을 포함할 수 있다. 또 다른 실시예에서, 사용자 3D 가상 컷아웃은 얼굴 표정을 디스플레이하기 위해 전술한 기술의 조합을 사용한다. 사용자 3D 가상 컷아웃을 생성한 후, 사용자 3D 가상 컷아웃의 상태 및/또는 얼굴 표정은 예를 들어 사용자로부터의 카메라 피드를 처리함으로써 지속적으로 업데이트될 수 있다. 그러나, 카메라가 켜져 있지 않은 경우, 사용자 3D 가상 컷아웃은 사용할 수 없는 상태 및 정적인 얼굴 표정으로 다른 사용자에게 계속 표시될 수 있다. 예를 들어, 사용자는 현재 작업에 집중하고 있을 수 있고 방해받는 것을 원하지 않을 수 있고(예컨대, "방해 금지" 또는 "바쁨" 상태), 따라서 사용자의 카메라를 끌 수 있다. 이 때, 사용자 3D 가상 컷아웃은 단순히 자신의 책상에 앉아 있는 것일 수 있고, 정지 상태이거나 타이핑과 같은 미리 구성된 움직임을 수행할 수도 있다. 그러나, 사용자 카메라가 다시 켜지면, 사용자의 얼굴 표정 및/또는 움직임에 대해 사용자 3D 가상 컷아웃이 다시 실시간으로 업데이트될 수 있다. 사용자 3D 가상 컷아웃을 생성하기 위한 표준 3D 얼굴 모델 재구성(예컨대, 3D 얼굴 피팅 및 텍스처 융합) 기술이 결과적인 사용자 그래픽 표현이 사용자임을 명확하게 인식할 수 있도록 하기 위해 사용될 수 있다.
사용자 실시간 3D 가상 컷아웃은 카메라로부터 얻은 실시간 2D 또는 3D 라이브 비디오 스트림 데이터 피드에 기반하고 사용자 배경이 제거된 후 사용자의 가상 복제본을 포함할 수 있다. 일 실시예에서, 사용자 실시간 3D 가상 컷아웃은 배경이 제거된 사용자의 3D 메쉬 또는 3D 포인트 클라우드를 생성함으로써 입력 데이터로서 사용자 라이브 데이터 피드를 사용하는 머신 비전 기술을 통한 3D 가상 재구성 프로세스를 통해 생성된다. 예를 들어, 사용자 실시간 3D 가상 컷아웃은 홀로그램 3D 메시 또는 3D 포인트 클라우드를 생성하도록 처리될 수 있는 카메라(예컨대, 웹캠)의 2D 비디오로부터 생성될 수 있다. 다른 예에서, 사용자 실시간 3D 가상 컷아웃은 홀로그램 3D 메시 또는 3D 포인트 클라우드를 생성하도록 처리될 수 있는 깊이 카메라(예컨대, LIDAR 또는 임의의 깊이 카메라)로부터의 3D 비디오로부터 생성될 수 있다. 따라서, 사용자 실시간 3D 가상 컷아웃은 사용자를 3차원으로 실시간으로 그래픽으로 나타낸다.
배경이 제거된 비디오는 클라이언트 장치로 스트리밍된 비디오를 포함할 수 있으며, 여기서 배경 제거 프로세스가 사용자만 볼 수 있고 수신 클라이언트 장치의 다각형 구조를 사용하여 표시될 수 있도록 수행되었다. 배경이 제거되지 않은 비디오는 클라이언트 장치로 스트리밍된 비디오를 포함할 수 있으며, 여기서 비디오는 카메라 캡처를 충실하게 나타내므로 사용자와 그 배경이 표시되고 수신 클라이언트 장치의 다각형 구조를 사용하여 표시된다. 다각형 구조는 비디오를 지원하기 위해 가상 프레임으로 사용되는 쿼드 구조 또는 더 복잡한 3D 구조일 수 있다.
배경이 제거되지 않은 비디오는 클라이언트 장치로 스트리밍되는 비디오를 포함할 수 있으며, 여기서 비디오는 카메라 캡처를 충실하게 나타내므로 사용자와 그 배경이 표시되고 수신 클라이언트 장치의 다각형 구조를 사용하여 표시된다. 다각형 구조는 비디오를 지원하기 위한 가상 프레임으로 사용되는 쿼드 구조 또는 더 복잡한 3D 구조일 수 있다.
일부 실시예에서, 라이브 데이터 피드 및/또는 사용자 업로드 또는 제3자 소스 2D 사진에 포함된 입력 데이터로 사용되는 데이터는 여러 가지 중에서도 2D 또는 3D 이미지 데이터, 3D 기하학, 비디오 데이터, 미디어 데이터, 오디오 데이터, 텍스트 데이터, 햅틱 데이터, 시간 데이터, 3D 엔티티, 3D 동적 오브젝트, 텍스트 데이터, 시간 데이터, 메타데이터, 우선순위 데이터, 보안 데이터, 위치 데이터, 조명 데이터, 깊이 데이터, 적외선 데이터 등을 포함한다.
일부 실시예에서, 사용자 실시간 3D 가상 컷아웃을 가능하게 하는데 필요한 배경 제거 프로세스는 이미지 분할(image segmentation) 및 심층 신경망의 사용을 통해 수행되는데, 이는 클라이언트 장치(118) 또는 적어도 하나의 클라우드 서버 컴퓨터(102)의 하나 이상의 프로세서에 의한 명령의 구현을 통해 활성화될 수 있다. 이미지 분할은 사용자(116)의 라이브 데이터 피드(114)에서 얻은 전경(예컨대, 사용자 실시간 3D 가상 컷아웃)을 배경으로부터 분리할 수 있는 오브젝트 및 경계를 찾는데 도움이 될 수 있는 디지털 이미지를 복수의 오브젝트로 구획화(partitioning)하는 프로세스이다. 본 개시의 실시예에서 사용될 수 있는 샘플 이미지 분할은 예를 들어 'OpenCV'로부터 이용가능한 유역 변환 알고리즘(Watershed transformation algorithm)을 포함할 수 있다.
본 개시에서 배경 제거를 위해 사용될 수 있는 이미지 분할의 적절한 프로세스는 그러한 배경 제거를 가능하게 하기 위해 컴퓨터 비전과 같은 인공 지능(AI) 기술을 사용하고, 인스턴스 분할 및/또는 의미론적 분할을 포함할 수 있다. 인스턴스 분할은 하나 이상의 복수의 오브젝트 클래스의 각 개별 인스턴스에 고유한 라벨을 제공한다. 일부 예에서, 인스턴스 분할은 경계 박스 인식을 위해 기존 브랜치와 병렬로 오브젝트 마스크를 예측하는 분기를 추가하는 것과 더불어, 사용자 라이브 데이터 피드(114)와 같은, 이미지에서 오브젝트를 감지하는 'Mask R-CNN'을 통해 수행되는 동시에, 각 인스턴스에 대한 고품질 분할 마스크를 생성한다. 그 다음 사용자 및 배경에 대해 생성된 분할된 마스크가 추출되고 배경이 제거될 수 있다. 의미론적 분할은 딥 러닝 또는 심층 신경망(DNN) 기술을 사용하여 자동화된 배경 제거 프로세스를 가능하게 한다. 의미론적 분할은 미리 정의된 규칙에 따라 색상, 질감 및 부드러움과 같은 하나 이상의 카테고리로부터의 클래스 라벨을 각 픽셀에 부여하여 이미지를 의미론적으로 의미 있는 부분으로 구획화한다. 일부 예에서, 의미론적 분할은 에반 쉘하머, 조나단 롱의 문헌 "의미론적 분할을 위한 완전한 컨볼루션 네트워크"에 개시된 바와 같이 완전한 컨볼루션 네트워크(FCN) 훈련된 종단간, 픽셀 대 픽셀 의미론적 분할 및 트레버 다렐, "IEEE Transactions on Pattern Analysis and Machine Intelligence", Vol. 39, No. 4(2017년 4월)를 활용할 수 있으며, 이들은 본 명세서에 참조로서 통합된다. 전술한 배경 제거 프로세스 후에, 사용자의 얼굴 및 신체 경계 내에 포인트 클라우드가 남을 수 있으며, 클라이언트 장치(118) 또는 적어도 하나의 클라우드 서버 컴퓨터(102)의 하나 이상의 프로세서는 사용자의 실시간 3D 가상 컷아웃의 구성에 사용될 수 있는 사용자의 3D 메쉬 또는 사용자의 3D 포인트 클라우드를 생성하도록 처리할 수 있다. 그 다음, 사용자 실시간 3D 가상 컷아웃은 카메라(112)로부터의 라이브 데이터 피드(114)로부터 업데이트된다.
일부 실시예에서, 사용자 그래픽 표현(120)의 업데이트는 사용자(116)의 얼굴 표정을 인식하고 가상 환경(110) 내의 사용자 그래픽 표현(120) 상에 얼굴 표정을 그래픽으로 시뮬레이션하기 위해 생성된 사용자 그래픽 표현(120)에 클라이언트 장치(118) 또는 적어도 하나의 클라우드 서버 컴퓨터(102)에 의해 머신 비전 알고리즘을 적용하는 것을 포함한다. 일반적으로, 이러한 얼굴 표정 인식은 인간의 감정에 대한 인식, 해석, 처리 및 시뮬레이션을 다루는 감성 컴퓨팅(affective computing)의 원리를 통해 수행될 수 있다. 종래의 얼굴 표정 인식(FER: Facial Expression Recognition) 기술에 대한 검토는 본 명세서에 참조로서 통합된 "어플라이드 사이언시스(Applied Sciences)" Vol. 9, No. 21 (2019)에 다니엘 카네도 및 안토니오 제이.알. 네브스에 의해 "컴퓨터 비전을 이용한 얼굴 인식: 체계적 리뷰(Facial Expression Recognition Using Computer Vision: A Systematic Review)"으로 제공되어 있다.
종래의 FER 기술은 이미지 획득, 전처리, 특징 추출 및 분류 또는 회귀의 단계들을 포함한다. 본 개시의 일부 실시예에서, 이미지 획득은 하나 이상의 프로세서에 카메라 피드(114)로부터의 이미지 데이터를 공급함으로써 수행된다. 전처리 단계는 가장 관련성이 높은 데이터를 특징 분류기에 제공하는데 필요할 수 있으며, 일반적으로 원하는 ROI(관심 영역)인 표적 사용자 얼굴을 구분짓는 경계 박스를 생성할 수 있는 얼굴 감지 기술을 포함한다. ROI는 여러 가지 중에서도 조명 변화에 대한 강도 정규화, 이미지 평활화를 위한 노이즈 필터, 훈련 데이터를 증가시키기 위한 데이터 증강, 회전된 얼굴에 대한 회전 보정, 다양한 ROI 크기에 대한 이미지 크기 조정 및 더 나은 배경 필터링을 위한 이미지 크로핑(cropping)을 통해 전처리된다. 전처리 후, 알고리즘은 AU(Actions Unit), 특정 얼굴 랜드마크의 모션, 얼굴 랜드마크 사이의 거리, 얼굴 질감, 그래디언트션 특징 등을 포함하는 전처리된 ROI로부터 관련 특징을 검색한다. 그 다음, 이러한 특징들은 분류기에 공급될 수 있는데, 분류기는 예를 들어 SVM(Support Machine Vector) 또는 CNN(Convolutional Neural Network)일 수 있다. 분류기를 훈련시킨 후, 감정은 실시간으로 사용자에서 탐지될 수 있고, 예를 들어 모든 얼굴 특징 관계를 연결함으로써 사용자 그래픽 표현(120) 내에 구성될 수 있다.
일부 실시예에서, 사용자 그래픽 표현은 평면 시점, 3인칭 시점, 또는 1인칭 시점, 또는 자기 보기 시점과 연관된다. 일 실시예에서, 사용자 그래픽 표현을 통해 가상 환경에 액세스할 때 사용자(116)의 보기 시점은 평면 시점, 또는 3인칭 시점, 또는 1인칭 시점, 또는 자기 보기 시점, 또는 방송 카메라 시점이다. 가지 보기 시점은 다른 사용자 그래픽 표현에 의해 보여지는 사용자 그래픽 표현, 및 선택사항으로서 사용자 그래픽 표현의 가상 배경을 포함할 수 있다.
일부 실시예에서, 보기 시점은 사용자(116)가 그래픽 사용자 인터페이스를 통해 가상 환경(110)을 수동으로 내비게이팅함에 따라 업데이트된다.
또 다른 실시예에서, 보기 시점은 가상 카메라를 사용하여 자동으로 설정되고 업데이트되며, 여기서 라이브 데이터 피드의 보기 시점은 사용자 그래픽 표현 및 가상 카메라의 보기 시점과 연관되고, 가상 카메라는 사용자의 눈 및 머리 기울이기 데이터 또는 머리 회전 데이터 또는 이들의 조합을 추적 및 분석하여 자동으로 업데이트된다. 일 실시예에서, 보기 시점은 가상으로 배치되고 사용자 그래픽 표현(120) 앞에, 예를 들어, 배경이 제거된 비디오 또는 배경이 제거되지 않은 비디오, 또는 사용자 3D 가상 컷아웃, 또는 사용자 실시간 3D 가상 컷아웃 앞에 정렬된 하나 이상의 가상 카메라를 사용하여 자동으로 설정되고 업데이트된다. 일 실시예에서, 하나 이상의 가상 카메라는 눈높이에서 바깥쪽을 가리킬 수 있다. 다른 실시예에서, 두 개의 가상 카메라(눈당 하나씩)는 두 개의 눈 높이에서 바깥쪽을 가리킬 수 있다. 또 다른 실시예에서, 하나 이상의 가상 카메라는 사용자 그래픽 표현의 머리 위치의 중심으로부터 바깥쪽을 가리킬 수 있다. 카메라(112)에 의해 캡처된 사용자(116)의 보기 시점은 컴퓨터 비전을 사용하여 사용자 그래픽 표현(120) 및 관련된 가상 카메라(들)의 보기 시점 관점과 연관되어, 그에 따라 가상 카메라(들)를 스티어링한다.
가상 카메라는 사용자(116)의 보기 시점과 연관된 사용자 그래픽 표현(120)의 보기 시점의 가상 표현을 제공하여, 그래픽 표현(120)을 보고 있을 수 있는 가상 환경(110)의 영역을 많은 보기 시점 중 하나로 사용자(116)가 볼 수 있게 한다. 가상 카메라는 사용자의 눈 및 머리 기울이기 데이터 또는 머리 회전 데이터 또는 이들의 조합을 추적 및 분석하여 자동으로 업데이트된다. 가상 카메라 위치는 또한 사용자(116)에 의해 선택된 보기 시점에 따라 사용자(116)에 의해 수동으로 변경될 수 있다.
자기 보기 시점은 배경이 제거된 (예를 들어, 폰 카메라의 "셀카 모드"에서와 같이) 다른 사용자 그래픽 표현(120)에 의해 보여지는 사용자 그래픽 표현(120)의 보기 시점이다. 자기 보기 시점은 대안으로서 다른 참가자들에 의해 보여지는 사용자(116)의 인식을 이해하기 위해 사용자 그래픽 표현(120)의 가상 배경을 포함할 수 있다. 사용자 그래픽 표현의 가상 배경을 포함할 때 자기 보기 시점은 가상 카메라에 의해 캡처될 수 있는 사용자 그래픽 표현 주변의 영역으로 설정될 수 있으며, 결과적으로 원형, 정사각형, 직사각형 또는 자기 보기 시점의 프레임에 적합한 임의의 다른 적절한 형상일 수 있다. 예를 들어 사용자 그래픽 표현(120)이 사용자 뒤 나무를 볼 수 있는 창문이 존재할 수 있는 집에 가상으로 위치하는 시나리오에서, 자기 보기 시점은 사용자 그래픽 표현을 디스플레이하고, 대안으로서, 창및 나무를 구성하는 배경을 디스플레이한다.
또 다른 실시예에서, 사용자 눈 및 머리 기울이기 데이터, 또는 머리 회전 데이터, 또는 이들의 조합의 추적 및 분석은 컴퓨터 비전을 사용하여 적어도 하나의 카메라(112)에 의해 캡처된 보는 위치 및 방향을 캡처하고 분석하고, 그에 따라 가상 환경(110)에서 가상 카메라를 스티어링하는 것을 포함한다. 예를 들어, 이러한 스티어링은 컴퓨터 비전 방법을 통해 적어도 하나의 카메라에 의해 캡처된 눈 및 머리 기울이기 데이터를 수신 및 처리하는 단계; 눈 및 머리 기울이기 데이터로부터 보는 위치 및 방향을 추출하는 단계; 눈 기울기 데이터로부터 위치 및 방향 내에 포함된 가상 환경의 하나 이상의 좌표를 식별하는 단계; 및 식별된 좌표에 기초하여 가상 카메라를 스티어링하는 단계를 포함할 수 있다.
일부 실시예에서, 적어도 하나의 클라우드 서버 컴퓨터(102)의 메모리(106) 내의 명령어는 적어도 하나의 가상 환경(110) 내에서 사용자 활동의 데이터 분석을 수행하는 것을 더 가능하게 한다. 이러한 데이터 분석은 다른 사용자와의 대화에 참여하는 것, 가상 환경(110) 내 오브젝트와의 상호작용, 구매, 다운로드, 콘텐츠 참여 등을 포함하는 상호작용에 사용될 수 있다. 데이터 분석은 추천, 최적화, 예측 및 자동화를 수행하기 위해 상호작용으로부터 데이터를 수집 및 분석하기 위한 복수의 알려진 기계 학습 기술을 활용할 수 있다. 예를 들어, 데이터 분석은 마케팅 목적으로 사용될 수 있다.
일부 실시예에서, 하나 이상의 클라우드 서버 컴퓨터(102)의 적어도 하나의 프로세서(104)는 적어도 하나의 가상 환경(110)에 추가된 콘텐츠의 거래 및 수익화를 가능하게 하도록 더 구성된다. 적어도 하나의 클라우드 서버 컴퓨터(102)는 사용자가 적절한 애플리케이션 프로그래밍 인터페이스(API)를 통해 적어도 하나의 가상 환경에서 콘텐츠를 찾고, 선택하고, 삽입할 수 있는 애플리케이션 및 오브젝트 라이브러리에 통신적으로 연결할 수 있다. 하나 이상의 클라우드 서버 컴퓨터(102)는 대응하는 거래의 수행을 가능하게 하는 하나 이상의 지불 게이트웨이에 추가로 연결할 수 있다. 콘텐츠는 예를 들어 대화형 애플리케이션 또는 정적 또는 대화형 3D 자산, 애니메이션 또는 2D 텍스처 등을 포함할 수 있다.
도 2a-2b는 가상 환경 플랫폼의 복수의 버티컬들을 포함하는 가상 환경에서 상호작용을 가능하게 하는 시스템의 배치(200a, 200b)의 개략도를 도시한다.
도 2a는 일 실시예에 따른 가상 환경 플랫폼(108)의 복수의 버티컬(202)을 포함하는 가상 환경에서 상호작용을 가능하게 하는 시스템의 배치(200a)의 개략도를 도시한다. 도 2a의 일부 요소는 도 1의 동일하거나 유사한 요소를 참조할 수 있으므로 동일한 부재 번호를 사용할 수 있다.
버티컬(202)은 가상 환경의 컨텍스트 테마와 연관되는데, 이는 예를 들어 미팅(204)에서의 사용과 관련된 컨텍스트 테마, 예를 들어 가상 회의실, 작업(206)과 관련된 컨텍스트 테마, 예를 들어 가상 사무실 공간, 학습(208)과 관련된 컨텍스트 테마, 예를 들어, 가상 교실, 및 쇼핑(210)과 관련된 컨텍스트 테마, 예를 들어, 가상 상점을 포함한다. 도 2a에 나타내지 않은 다른 버티컬은 예를 들어 은행, 예약(예컨대, 호텔, 여행사 또는 레스토랑) 및 정부 기관 서비스(예컨대, 요금에 대한 새 회사 설립 문의) 및 엔터테인먼트(예컨대, 노래방, 이벤트 홀 또는 경기장, 극장, 나이트클럽, 스포츠 경기장, 박물관, 유람선 등)와 같은 서비스를 포함할 수 있다.
각각의 가상 환경 버티컬(202)은 복수의 이용 가능한 가상 환경(110)(예를 들어, 가상 환경 A-L)을 포함할 수 있고, 이들 각각은 대응하는 버티컬(202)의 맥락과 연관된 하나 이상의 이용 가능한 배열 및 시각적 외관을 갖는다. 예를 들어, 미팅 (204) 버티컬(202)의 가상 환경 A은 좌석이 있는 회의 데스크, 화이트보드 및 프로젝터를 포함할 수 있다. 각각의 가상 환경(110)은 적어도 하나의 클라우드 서버 컴퓨터에 의해 대응하는 리소스(예를 들어, 메모리, 네트워크 및 컴퓨팅 파워)가 제공될 수 있다. 버티컬(202)은 클라이언트 장치(118)를 통해 그래픽 사용자 인터페이스(212)를 통해 하나 이상의 사용자(116)에 의해 액세스될 수 있는 가상 환경 플랫폼(108)으로부터 이용가능할 수 있다. 그래픽 사용자 인터페이스(212)는 다운로드 가능한 클라이언트 애플리케이션 또는 웹 브라우저 애플리케이션에 포함될 수 있으며, 이는 선택된 가상 환경(110)을 실행하고 그 안에서 복수의 상호작용을 가능하게 하는데 필요한 명령 및 애플리케이션 데이터를 제공한다. 더욱이, 각각의 가상 환경(110)은 대응하는 사용자 그래픽 표현을 통해 필요한 데이터 및/또는 서비스를 제공함으로써 가상 환경 내에서 사용자를 도울 수 있는 하나 이상의 인간 또는 인공 지능(AI) 호스트 또는 어시스턴트를 포함할 수 있다. 예를 들어, 인간 또는 AI 은행 서비스 점원은 사용자의 요청에 따라 프레젠테이션, 양식, 목록 등의 형태로 필요한 정보를 제공함으로써 가상 은행 사용자를 도울 수 있다.
일부 실시예에서, 각각의 가상 환경(110)은 커스터마이제이션을 포함하는 그 위에서 수행된 변경을 기록하는 영구 가상 환경이며, 여기서 이러한 변경은 적어도 하나의 클라우드 서버 컴퓨터(102)의 영구 메모리 저장소에 저장된다. 예를 들어, 가상 환경 A의 예로 돌아가서, 책상 주변의 좌석 배치, 벽의 색상, 심지어 방의 크기와 수용인원까지 사용자의 요구나 기호에 맞게 수정될 수 있다. 수행된 변경은 영구 메모리에 저장될 수 있으며, 이후 동일한 가상 환경 A에서의 후속 세션 동안 사용 가능하다. 일부 예에서, 가상 환경(110)에서 수정의 영구 저장을 가능하게 하는 것은 (예를 들어, 지불 게이트웨이에 연결하는 가상 환경 플랫폼(108)을 통해) 방 호스트 또는 소유자에게 구독료(subscription fee)의 지불을 요구할 수 있다.
다른 실시예에서, 가상 환경(110)은 적어도 하나의 클라우드 서버 컴퓨터(102)의 임시 메모리 저장소에 저장된 임시 가상 환경이다. 이들 실시예에서, 가상 환경(110)에서 수행된 변경은 저장되지 않을 수 있고, 따라서 미래 세션에서 이용가능하지 않을 수 있다. 예를 들어, 임시 가상 환경은 상이한 버티컬(202)로부터의 미리 정의된 이용 가능한 가상 환경 중의 가상 환경 플랫폼(108)으로부터 선택될 수 있다. 장식이나 배치 수정과 같은 변경이 가능할 수도 있고 불가능할 수도 있지만, 변경이 가능한 경우 변경 사항은 세션 종료 후 손실될 수 있다.
일부 실시예에서, 하나 이상의 버티컬(202) 내의 가상 환경(110)의 복합물은 가상 환경 클러스터(214)를 나타낼 수 있다. 예를 들어, 일부 가상 환경 클러스터(214)는 수백 또는 수천 개의 가상 환경(110)을 포함할 수 있다. 사용자에 대해, 가상 환경 클러스터(214)는 사용자가 서로 상호작용할 수 있거나 동일한 가상 환경 클러스터(214) 내의 다른 가상 환경에 원활하게(seamlessly) 액세스할 수 있는 동일한 시스템의 일부로 보일 수 있다. 예를 들어, 작업 가상 환경 버티컬(206)로부터의 가상 환경 (D 및 E)와 미팅 가상 환경 버티컬(204)로부터의 가상 환경 B을 합하여 회사를 나타내는 가상 환경 클러스터(214)를 형성할 수 있다. 이 예에서 사용자는 2 개의 상이한 작업 영역을 가질 수 있는데, 예를 들면, 게임 개발실 및 비즈니스 개발실과 함께, 화상 회의용 회의실을 가질 수 있다. 게임 개발실 및 비즈니스 개발실 중 임의의 것으로부터의 사용자는 회의실에서 만나 비공개 가상 회의를 가질 수 있으며, 동시에 나머지 직원들은 그들의 원래 작업 영역에서 현재 활동을 계속할 수 있다.
다른 예에서, 가상 환경 클러스터(214)는 극장 또는 이벤트 시설을 나타낼 수 있는데, 여기서 각각의 가상 환경(110)은 라이브 공연이 하나 이상의 공연자에 의해 해당 사용자 그래픽 표현을 통해 개최되는 실내 또는 실외 이벤트 영역(예를 들어, 강당 또는 이벤트 경기장)을 나타낸다. 예를 들어, 오케스트라 및/또는 가수는 카메라를 통한 그들의 연주의 라이브 레코딩 및 그들의 사용자 그래픽 표현을 통해, 예를 들어, 그들의 사용자 라이브 3D 가상 컷아웃을 통해 음악 콘서트를 개최할 수 있다. 각 공연자의 사용자 그래픽 표현은 그들이 공연할 수 있는 스테이지의 대응하는 3차원 좌표에 삽입될 수 있다. 청중은 해당 사용자 그래픽 표현을 통해 강당에서 공연을 볼 수 있으며, 가상 박수, 노래 따라 부르기, 가상 댄싱, 가상 점프 또는 응원 등과 같은 복수의 상호작용을 구현할 수 있다.
다른 예에서, 가상 환경 클러스터(214)는 복수의 플레이 영역들(예를 들어, 블랙잭 영역, 포커 영역, 룰렛 영역, 및 슬롯 머신 영역), 토큰 구매 영역, 및 이벤트 룸을 포함하는 카지노를 나타낼 수 있다. 각 플레이 영역 내의 머신은 각 게임과 관련된 사용자 경험을 제공하도록 구성된 카지노 애플리케이션으로 구성될 수 있다. 카지노 운영자는 사용자 실시간 3D 가상 컷아웃과 같은 대응하는 사용자 그래픽 표현(120)을 포함할 수 있다. 's'로 표시되는 카지노 운영자는 실제 인간 운영자이거나 또는 가상 카지노 내의 사용자를 돕는 인공 지능 프로그램일 수 있다. 각각의 카지노 게임은 가상 카지노를 운영하는 카지노 회사의 결제 게이트웨이에 연결되어 사용자와의 지불이 가능하다.
다른 예에서, 가상 환경 클러스터(214)는 복수의 층을 포함하는 쇼핑몰을 나타낼 수 있고, 각 층은 상점, 쇼룸, 공용 영역, 푸드 코트 등과 같은 복수의 가상 환경을 포함한다. 각각의 가상 룸은 해당 가상 룸 관리자가 관리할 수 있다. 예를 들어, 각 매장은 해당 매장 관리자가 관리할 수 있다. 영업 사원은 3D 라이브 가상 아바타 또는 사용자 실시간 3D 가상 컷아웃으로서 각 영역에서 사용 가능할 수 있으며, 실제 사람일 수도 있고 또는 AI 어시스턴스일 수도 있다. 현재 예에서, 각 가상 상점 및 샘플 푸드 코트 내 레스토랑은 대응하는 지불 게이트웨이 및 배송 시스템을 통해 온라인 구매 및 상품의 사용자 주소로의 배송을 가능하게 하도록 구성될 수 있다.
다른 예에서, 가상 환경 클러스터(214)는 사용자들이 그들의 대응하는 사용자 그래픽 표현을 통해 만나고 사교할 수 있는 가상 나이트클럽의 복수의 가상 파티 영역을 포함한다. 예를 들어, 각각의 가상 파티 영역은 다양한 테마 및 연관된 음악 및/또는 장식을 포함할 수 있다. 말하기 및 문자 메시지 외에도, 가상 나이트클럽에서의 몇몇 다른 상호작용에는 예를 들어 가상으로 춤을 추거나 술을 마시거나 다양한 좌석 공간(예컨대, 라운지 또는 바)에 앉기 등이 포함될 수 있다. 또한 이 예에서 실내 음악 콘서트가 가상 나이트 클럽에서 개최될 수 있다. 예를 들어, 전자 음악 콘서트는 무대의 가상 테이블 뒤에서 공연하는 디스크 자키(DJ)에 의해 연주될 수 있으며, 여기서 DJ는 3D 라이브 가상 아바타 또는 사용자 실시간 3D 가상 컷아웃으로 표시될 수 있다. DJ가 사용자 실시간 3D 가상 컷아웃으로 표시되는 경우, 오디오 믹싱 콘솔을 플레이하는 DJ의 실시간 움직임은 DJ 위치(예컨대, DJ의 집이나 녹음 스튜디오에서)의 DJ로부터의 이미지를 캡쳐하는 카메라에 의해 획득된 라이브 데이터 피드로부터 실시간 3D 가상 컷아웃 상에 투영될 수 있다. 더욱이, 청중의 각 구성원은 또한 그들 자신의 사용자 그래픽 표현으로 표현될 수 있으며, 여기서 사용자 중 일부는 3D 라이브 가상 아바타로 표현될 수 있고, 다른 사용자는 사용자 선호도에 따라 사용자 실시간 3D 가상 컷아웃으로 표현될 수 있다.
다른 예에서, 가상 환경 클러스터(214)는 복수의 사적 또는 공공 노래방을 포함하는 가상 노래방 엔터테인먼트 시설을 나타낼 수 있다. 각각의 사적 노래방은 가상 노래방 기계, 가상 스크린, 무대, 마이크, 스피커, 장식, 소파, 테이블, 음료 및/또는 음식을 포함할 수 있다. 사용자는 노래 데이터베이스에 연결할 수 있는 가상 노래방 기계를 통해 노래를 선택하여, 시스템이 사용자를 위해 노래를 재생하고 사용자가 사용자 그래픽 표현을 통해 노래를 따라 부를 수 있도록 가상 화면에 가사를 투영하도록 트리거할 수 있다. 공공 노래방은 사용자를 위해 노래를 선택하고, 사용자를 무대로 불러들이고, 공연을 듣기 위해 필요에 따라 사용자를 음소거 또는 음소거 해제할 수 있는 인간 또는 AI DJ를 더 포함할 수 있다. 사용자는 마이크를 통해 클라이언트 장치에서 원격으로 노래할 수 있다.
다른 예에서, 가상 환경 클러스터(214)는 침실, 기관실, 이벤트 룸, 선수, 선미, 좌현, 우현, 교량, 및 복수의 갑판과 같은 복수의 영역을 포함하는 가상 유람선을 나타낼 수 있다. 일부 영역에는 추가 정보 또는 서비스를 제공하는 것과 같이 해당 사용자 그래픽 표현을 통해 사용자에게 참석하는 인간 또는 AI 어시스턴스가 있을 수 있다. 사용 가능한 경우, 특정 목적지에 도착할 때 방문할 수 있는 섬, 마을 또는 도시의 풍경을 묘사하는데 필요한 것과 같이, 유람선 외부의 가상 환경 또는 간단한 그래픽 표현이 사용 가능할 수 있다. 따라서, 사용자는 그래픽 표현을 통해 넓은 바다를 여행하고 새로운 장소를 발견하는 동시에 가상으로 서로 상호작용할 수 있다.
다른 예에서, 가상 환경 클러스터(214)는 사용자가 그들의 사용자 그래픽 표현을 통해 적절한 입력/출력 장치(예를 들어, 컴퓨터 키보드, 게임 컨트롤러, 등)를 통해 플레할 수 있는 경기장, 코트 또는 룸을 나타내는 복수의 가상 환경을 포함하는 e-스포츠 스타디움 또는 체육관을 나타낼 수 있다. 각각의 e-스포츠의 메커니즘은 경기할 스포츠에 따라 다를 수 있다. e-스포츠 경기장 또는 체육관은 사용자가 액세스할 스포츠 영역을 선택할 수 있는 공통 영역을 포함할 수 있다. 이용 가능한 스포츠 스케쥴 또한 사용 가능하며, 이는 사용자에게 어떤 스포츠 활동이 언제 이용 가능할 수 있는지 알려준다.
도 2b는 다양한 버티컬(202)로부터의 복수의 가상 환경을 결합하는 가상 학교(216)의 배치(200b)를 나타낸다. 가상 학교(216)는 4개의 교실(예컨대, 교실 A-D (218-224)), 강당(226), 스포츠 공간(228), 카페테리아(230), 교사 라운지(232), 도서관(234) 및 서점(236)을 포함한다. 각각의 가상 환경은 대응하는 환경과 연관된 대응하는 그래픽 표현으로 표현되는 가상 오브젝트를 포함할 수 있다.
예를 들어, 가상 교실(예를 들어, 가상 교실 A-D(218-224) 중 임의의 것)은 학생들이 강의에 참석하는 것을 가능하게 할 수 있고, 학생들이 다양한 상호작용(예를 들어, 손 들기, 컨텐츠-프로젝팅, 프리젠팅, 구두로 또는 텍스트를 통해 의문 또는 기여를 표시하기)을 통해 클래스에 참여할 수 있게 하고, 그리고 교사에게 특별한 관리 권한을 부여할 수 있다(예컨대, 누군가에게 발언권을 주는 것, 강의 중 한 명 이상의 학생을 음소거하는 것, 디지털 화이트보드를 통해 콘텐츠를 공유하는 것 등). 강당은 연사가 연설을 할 수 있게 하거나 복수의 이벤트를 주최할 수 있다. 스포츠 영역(228)은 학생들이 그들의 대응하는 사용자 그래픽 표현을 통해 복수의 e-스포츠를 플레이하는 것을 가능하게 하도록 구성될 수 있다. 카페테리아(230)는 학생들이 온라인으로 음식을 주문하고 사용자 그래픽 표현을 통해 사교할 수 있게 할 수 있다. 교사 라운지(232)는 교사들이 해당 교사 사용자 그래픽 표현을 통해 만나고, 의제, 학생의 진행 상황 등을 논의할 수 있도록 구성될 수 있다. 도서관(234)은 학생들이 그들의 교과서 또는 여가 독서를 위해 전자책을 빌릴 수 있게 할 수 있다. 마지막으로, 서점(236)은 학생들이 책(예를 들어, 전자책 또는 실제 책) 및/또는 기타 학교 자료를 구매할 수 있도록 구성될 수 있다.
도 3은 일 실시예에 따른 가상 환경에서 상호작용을 가능하게 하는 시스템에서 사용될 수 있는 샘플 하이브리드 시스템 아키텍처(300)의 개략도를 도시한다. 하이브리드 시스템 아키텍처(300)는 일부 실시예에서 클라이언트-서버 측(304) 및 P2P 측(306)을 포함하는 다른 피어 클라이언트(예를 들어, 가상 회의, 교실 등의 다른 참석자)와 상호작용하기 위한 통신의 하이브리드 모델이며 그 각각은 도 3에서 점선 영역으로 구분된다. 이러한 하이브리드 통신 모델을 사용하면 각 세션에 웹 서비스, 데이터 및 리소스를 제공하는 동안의 대기 시간 문제를 줄이는 신속한 사용간 P2P 통신을 가능하게 할 수 있으며, 이는 가상 환경에서 사용자 및 콘텐츠와의 복수의 상호작용이 가능하게 해준다. 도 3의 일부 요소는 도 1-2a의 동일하거나 유사한 요소를 참조할 수 있으므로 동일한 부재 번호를 사용할 수 있다.
다양한 실시예에서, P2P 측(306)에 대한 클라이언트-서버 측(304)의 사용 레벨 및 비율은 처리될 데이터의 양, 원활한 사용자 경험을 유지하기 위해 허용되는 대기 시간, 원하는 서비스 품질(QOS), 필요한 서비스 등에 따라 달라진다. 일 실시예에서, P2P 측(306)은 비디오 및 데이터 처리, 스트리밍 및 렌더링에 사용된다. 하이브리드 시스템 아키텍처(300)를 사용하는 이 모드는 예를 들어 낮은 대기 시간과 적은 양의 데이터를 처리해야 할 때, 그리고 "무거운" 클라이언트가 존재하는 경우에 적합할 수 있는데, 이는 클라이언트 장치가 그러한 오퍼레이션을 수행하기에 충분한 컴퓨팅 성능을 포함함을 의미한다. 다른 실시예에서, 클라이언트-서버 측(304)이 데이터 처리에 사용되는 동안 P2P 측(306)이 비디오 스트리밍 및 렌더링에 사용되는 것과 같이, 클라이언트-서버 측(304)과 P2P 측(306)의 조합이 사용된다. 하이브리드 시스템 아키텍처(300)를 사용하는 이 모드는 예를 들어 처리할 데이터의 양이 많을 때 또는 다른 마이크로 서비스가 필요할 때 적합할 수 있다. 또 다른 실시예에서, P2P 측(306)이 비디오 렌더링에 사용되는 동안 클라이언트-서버 측(304)은 데이터 처리와 함께 비디오 스트리밍에 사용될 수 있다. 하이브리드 시스템 아키텍처(300)를 사용하는 이 모드는, 예를 들어 처리되어야 하는 훨씬 더 많은 양의 데이터가 존재할 때 및/또는 씬 클라이언트(thin client)만 이용 가능한 경우에 적합할 수 있다. 또 다른 실시예에서, 클라이언트-서버 측(304)은 비디오 스트리밍, 렌더링 및 데이터 처리를 위해 사용될 수 있다. 하이브리드 시스템 아키텍처(300)를 사용하는 이 모드는 상당한 씬 클라이언트가 이용가능한 경우에 적합할 수 있다. 하이브리드 시스템 아키텍처(300)는 필요에 따라 동일한 세션 내에서 클라이언트-서버 측(304) 및 P2P 측(306) 둘 모두의 상이한 사용 방식 사이를 교대하는 것을 가능하게 하도록 구성될 수 있다.
일부 실시예에서, 클라이언트-서버 측(304)으로부터의 적어도 하나의 클라우드 서버는 중개 서버일 수 있으며, 이는 서버가 클라이언트 장치 간의 데이터 교환을 촉진 및/또는 최적화하기 위해 사용된다는 것을 의미한다. 이러한 실시예에서, 적어도 하나의 클라우드 서버는 인커밍 이미지 및 멀티미디어 스트림을 관리, 분석, 처리 및 최적화할 수 있고, 라우터 토폴로지(제한하지 않는 예로서, SFU(Selective Forwarding Units), SAMS(Spatially Analyzed Media Server), 멀티미디어 라우터 등)로서 아웃바운드 스트림의 포워딩을 관리, 평가 및/또는 최적화할 수 있고, 또는 (예컨대, 디코딩, 결합, 개선, 혼합, 향상, 증강, 컴퓨팅, 조작, 인코딩을 포함하지만 이에 제한되지는 않는 작업을 위한) 이미지 및 미디어 처리 서버 토폴로지 또는 포워딩 서버 토폴로지(MCU, 클라우드 미디어 믹서, 클라우드 3D 렌더러, 미디어 서버를 포함하지만 이에 제한되지 않음) 또는 기타 서버 토폴로지를 사용할 수 있다.
중개 서버가 SAMS인 이러한 실시예에서, 이러한 미디어 서버는 각 클라이언트 장치로 전송되는 인커밍 데이터(예컨대, 메타 데이터, 우선 순위 데이터, 데이터 클래스, 공간 구조 데이터, 3차원 위치, 방향 또는 이동 정보, 이미지, 미디어, 확장 가능한 비디오 코덱 기반 비디오, 또는 이들의 조합)를 관리, 분석 및 처리하며, 그리고 이러한 분석에서 아웃바운드 데이터 스트림의 각 수신 클라이언트 장치로의 포워딩을 관리 및/또는 최적화한다. 이것은 시간(예컨대, 프레임 속도 변경), 공간(예컨대, 다른 이미지 크기), 품질(예컨대, 다른 압축 또는 인코딩 기반 품질) 및 색상(예컨대, 색상 해상도 및 범위)에 대한 미디어의 수정, 업스케일링 또는 다운스케일링을 포함할 수 있고, 수신하는 하나 이상의 사용자 클라이언트 장치에 대한 최적의 대역폭 및 컴퓨팅 리소스 활용을 달성하는 이러한 인커밍 데이터에 대한 특정 수신 클라이언트 장치 사용자의 공간, 3차원 방향, 거리 및 우선순위 관계와 같은 요인에 기초할 수 있다.
일부 실시예에서, 미디어, 비디오 및/또는 데이터 처리 작업은 하나 이상의 인코딩, 트랜스코딩, 디코딩 공간 또는 3D 분석 및 프로세싱을 포함하며, 여기서 프로세싱은 하나 이상의 이미지 필터링, 컴퓨터 비전 처리, 이미지 샤프닝, 배경 개선, 배경 제거, 전경 흐림 처리(blurring), 눈 가리기, 얼굴의 픽셀화, 음성 왜곡, 이미지 업레징(uprezzing), 이미지 정리, 뼈 구조 분석, 얼굴 또는 머리 카운팅, 오브젝트 인식, 마커 또는 QR 코드 추적, 시선 추적, 특징 분석, 3D 메쉬 또는 볼륨 생성, 특징 추적, 얼굴 인식, SLAM 추적 및 얼굴 표정 인식 또는 이러한 미디어 라우터 또는 서버에서 실행되는 마이크로 서비스 형태의 기타 모듈식 플러그인을 포함한다.
클라이언트-서버 측(304)은 네트워크를 통해 클라이언트 장치(118)와 웹/애플리케이션 서버(310) 사이의 보안 종단간 통신을 가능하게 하기 위해 보안 통신 프로토콜(308)을 사용한다. 적절한 보안 통신 프로토콜(306)의 예는, 예컨대, 그 자체로 보안 사용자 데이터그램 프로토콜(UDP)인 DTLS(Datagram Transport Layer Security), SRTP(Secure Realtime Transport Protocol), HTTPS(Hypertext Transfer Protocol Secure)(https://) 및 WSS(WebSocket Secure)(wss://)를 포함할 수 있고, 이들은 서로 호환 가능하며 전이중 인증 애플리케이션 액세스, 개인 정보 보호 및 전송 중인 교환 데이터의 무결성을 제공할 수 있다. 적절한 웹/애플리케이션 서버(310)는, 예를 들어, 기계 간 통신 및 웹 애플리케이션 서비스의 적절한 배치를 가능하게 하는 자바(Java) HTTP 웹 서버 및 자바 서블릿 컨테이너인 제티(Jetty) 웹 애플리케이션 서버를 포함할 수 있다.
웹/애플리케이션 서버(310)가 도 3에서 단일 요소로 도시되어 있지만, 당업자는 웹 서버 및 애플리케이션 서버가 별개의 요소일 수 있음을 이해할 수 있다. 예를 들어, 웹 서버는 보안 통신 프로토콜(306)을 통해 클라이언트 요청을 수신하고 요청을 애플리케이션 서버로 라우팅하도록 구성될 수 있다. 따라서, 웹/애플리케이션 서버(310)는 보안 통신 프로토콜(306)을 사용하여 클라이언트 요청을 수신하고 요청을 처리할 수 있으며, 이는 하나 이상의 마이크로 서비스(312)(예컨대, 자바 기반 마이크로 서비스)를 요청하고 및/또는 대응하는 데이터베이스 관리 시스템(316)을 사용하여 데이터베이스(314)로부터 데이터를 조회하는 것을 포함할 수 있다. 애플리케이션/웹 서버(310)는 세션 관리 및 세션의 상태 지속성 뿐만 아니라 3D 콘텐츠 및 애플리케이션 로직과 같은 수많은 기타 서비스를 제공할 수 있다(예컨대, 공유 문서의 영구 저장, 가상 환경의 상호작용 및 변경 사항 동기화, 가상 환경의 시각적 상태 및 수정 유지을 위함). 적절한 데이터베이스 관리 시스템(316)은 예를 들어 객체 관계형 매핑(ORM) 데이터베이스 관리 시스템일 수 있으며, 이는 객체 지향 프로그래밍 언어를 사용하여 호환되지 않는 유형 시스템 간에 데이터를 변환하는 ORM의 기능이 주어지면 오픈 소스 및 상업용(예컨대, 독점) 서비스를 사용하는 데이터베이스 관리에 적합할 수 있다. 추가 실시예에서, 분산 공간 데이터 버스(318)는 발행-구독 모델을 사용함으로써 마이크로서비스와 클라이언트 장치 사이의 분산 메시지 및 자원 분배 플랫폼으로서 추가로 이용될 수 있다.
P2P 측(306)은 적절한 애플리케이션 프로그래밍 인터페이스(API)를 통해 가상 환경에서 피어 클라이언트 장치(118) 간 실시간 통신을 가능하게 하는 적절한 P2P 통신 프로토콜(320)을 사용할 수 있어, 실시간 상호작용 및 그것의 동기화를 가능하게 하여 다중 사용자 협업 환경을 허용한다. 예를 들어, P2P 측(306)을 통해, 하나 이상의 사용자의 기여가 다른 사용자에게 직접 전송될 수 있으며, 다른 사용자는 수행된 변경을 실시간으로 관찰할 수 있다. 적절한 P2P 통신 프로토콜(320)의 예는 표준의, 프로토콜 및 자바스크립트 (JavaScript) API의 집합인 WebRTC(Web Real-Time Communication) 통신 프로토콜일 수 있는데, 이들은 조합하여, 피어 클라이언트 장치 (118) 간에 P2P 오디오, 비디오, 및 데이터 공유를 가능하게 한다. P2P 측(306)의 클라이언트 장치(118)는 하나 이상의 렌더링 엔진(322)을 사용하여 라이브 세션의 실시간 3D 렌더링을 수행할 수 있다. 적절한 렌더링 엔진(322)의 예로는 플러그인을 사용하지 않고 임의의 호환 가능한 웹 브라우저 내에 2D 및 3D 그래픽을 렌더링하기 위한 자바스크립트 API인 WebGL 기반 3d 엔진일 수 있으며, 이는 클라이언트 장치(118)의 하나 이상의 프로세서(예를 들어, 하나 이상의 그래픽 처리 장치(GPU))에 의한 물리 및 이미지 처리 및 효과의 가속화된 사용을 허용한다. 또한, P2P 측(306)의 클라이언트 장치(118)는 하나 이상의 적절한 컴퓨터 비전 라이브러리(324)를 통해 이미지 및 비디오 처리 및 머신 러닝 컴퓨터 비전 기술을 수행할 수 있다. 일 실시예에서, P2P 측(306)에서 클라이언트 장치에 의해 수행되는 이미지 및 비디오 처리는 사용자 그래픽 표현을 가상 환경에 삽입하기 전에 사용자 그래픽 표현을 생성하는데 사용되는 배경 제거 프로세스를 포함하며, 이는 수신된 미디어 스트림에 대하여 실시간 또는 거의 실시간으로 수행되고 또는 예를 들어 사진에 대해서는 비실시간으로 수행된다. 적절한 컴퓨터 비전 라이브러리(324)의 예는 실시간 컴퓨터 비전 작업을 위해 주로 구성된 프로그래밍 기능의 라이브러리인 'OpenCV'일 수 있다.
도 4는 일 실시예에 따라 사용자가 가상 환경에서 상호작용할 수 있는 가상 환경 라이브 세션 모듈(402)의 그래픽 사용자 인터페이스(400)의 개략도를 도시한다.
사용자가 가상 환경 라이브 세션 모듈(402)의 그래픽 사용자 인터페이스(400)에 액세스하기 전에, 사용자는 먼저 피어 사용자와 대화에 참여하기 위해 피어 클라이언트 장치로부터 초대를 수신할 수 있고, 이는 및 렌더링이 클라이언트 장치에 의해 수행될 때 사용자 클라이언트 장치 사이의 P2P 통신 채널을 열 수 있고, 또는 대안으로서 적어도 하나의 클라우드 서버 컴퓨터에 의해 처리 및 렌더링이 수행될 때 클라우드 서버 컴퓨터를 통해 간접 통신 채널을 열 수 있다. 더욱이, 사용자 3D 가상 컷아웃에서 사용자 실시간 3D 가상 컷아웃, 또는 배경이 제거된 비디오, 또는 배경이 제거되지 않은 비디오로의 전환이 도 5를 참조하는 설명에서 나중에 설명되는 바와 같이 발생할 수 있다.
가상 환경 라이브 세션 모듈(402)은 선택된 가상 환경을 보여주는 그래픽 사용자 인터페이스를 포함하는 가상 환경 스크린(404)을 포함할 수 있으며, 이는 가상 환경 및 대응하는 가상 오브젝트, 애플리케이션, 및 다른 사용자 그래픽 표현 등의 선택된 버티컬의 컨텍스트와 연관된 가상 환경의 배열을 포함할 수 있다. 가상 환경 라이브 세션 모듈(402)의 그래픽 사용자 인터페이스(400)는 예를 들어 사용자의 실시간 3D 가상 컷아웃을 통해 사용자가 서로 참여하도록 구성된 복수의 상호작용(406)을 가능하게 하고 표시할 수 있다. 가상 환경 라이브 세션 모듈(402)은 각각의 상호작용(406)을 가능하게 하는 대응하는 작업과 연관된 하나 이상의 데이터 모델, 및 상기 작업을 구현하는 데 필요한 컴퓨터 명령을 포함할 수 있다. 각각의 상호작용(406)은 서로 다른 방식으로 표현될 수 있다. 도 4에 도시된 예에서, 개별 상호작용(406)은 각각 가상 환경 라이브 세션 모듈(402)의 그래픽 사용자 인터페이스(400) 상의 버튼으로 표시되며, 여기서 각 상호작용 버튼을 클릭하면 상호작용(406)과 연관된 작업을 수행하기 위해 대응하는 서비스를 요청할 수 있다. 가상 환경 라이브 세션 모듈(402)은 예를 들어 도 3을 참조하여 개시된 하이브리드 시스템 아키텍처(300)를 통해 활성화될 수 있다.
상호작용(406)은 예를 들어 채팅(408), 화면 공유(410), 호스트 옵션(412), 원격 감지(414), 레코딩(416), 투표(418), 문서 공유(420), 이모티콘 전송(422), 의제 공유 및 편집(424), 또는 기타 상호작용(426)을 포함할 수 있다. 다른 상호작용(426)은 예를 들어 가상 허그, 손 들기, 악수, 걷기, 콘텐츠 추가, 미팅 요약 프리젠테이션, 오브젝트 이동, 투영, 레이저 포인팅, 게임 플레이, 구매 및 교환, 경쟁, 협력, 사용자 간의 갈등 해결을 촉진하는 기타 사회적 상호작용을 포함할 수 있다. 다양한 상호작용(406)들은 아래에서 더 자세히 설명된다.
채팅(408)은 텍스트 코멘트 및 즉석 리소스를 보내고 받을 수 있는 채팅 창을 열 수 있다.
화면 공유(410)는 사용자의 화면을 임의의 다른 참가자와 실시간으로 공유하는 것을 가능하게 할 수 있다.
호스트 옵션(412)은 하나 이상의 사용자를 음소거하고, 하나 이상의 사용자를 초대 또는 제거하고, 대화를 종료하는 것 등과 같은 추가 옵션을 대화 호스트에 제공하도록 구성된다.
원격 감지(414)는 자리 비움, 통화 중, 사용 가능, 오프라인, 회의 통화 중 또는 미팅 중과 같은 사용자의 현재 상태를 볼 수 있게 해준다. 사용자 상태는 그래픽 사용자 인터페이스를 통해 수동으로 업데이트되거나 카메라 피드에서 얻은 데이터를 기반으로 하는 머신 비전 알고리즘을 통해 자동으로 업데이트될 수 있다.
레코딩(416)은 대화로부터 오디오 및/또는 비디오를 녹음하는 것을 가능하게 한다.
투표(418)는 임의의 다른 참가자가 포스팅한 하나 이상의 제안에 대한 투표를 제공할 수 있다. 투표(418)를 통해, 호스트 또는 그러한 권한을 가진 다른 참가자가 언제든지 투표 세션을 시작할 수 있다. 주제와 선택 사항은 각 참가자에게 표시될 수 있다. 투표 (418) 상호작용의 구성에 따라, 제한 시간이 끝날 때 또는 모든 사람의 응답이 끝날 때 모든 참석자에게 결과가 표시될 수 있다.
문서 공유(420)는 다른 참가자와 임의의 적절한 형식으로 문서를 공유할 수 있게 해준다. 이러한 문서는 또한 하나 이상의 클라우드 서버 컴퓨터의 영구 메모리에 저장하여 영구적으로 유지될 수 있으며 가상 통신이 발생하는 가상 환경과 연관될 수 있다.
이모티콘 전송(422)은 이모티콘을 다른 참가자에게 전송하는 것을 가능하게 한다.
의제 공유 및 편집(424)은 참가자 중 임의의 사람에 의해 준비되었을 수 있는 의제를 공유 및 편집하는 것을 가능하게 한다. 일부 실시예에서, 의제 항목의 체크 리스트는 미팅에 앞서 호스트에 의해 구성될 수 있다. 의제는 주최자 또는 그러한 권한이 있는 다른 참가자에 의해 언제든지 전면에 표시될 수 있다. 의제 편집 옵션을 통해 항목이 합의에 도달하여 체크 아웃될 수도 있고, 미루어질 수도 있다.
다른 상호작용(426)은 가상 환경 버티컬에 따라 가상 환경에서 제공될 수 있는 가능한 상호작용의 비포괄적인 목록을 제공한다. 손 들기는 가상 통신 또는 회의 중에 손을 들 수 있게 하여 호스트 또는 그러한 권한을 가진 다른 참가자가 사용자가 말하는 것을 허용할 수 있도록 한다. 걷기는 사용자의 실시간 3D 가상 컷아웃을 통해 가상 환경을 이동할 수 있다. 콘텐츠 추가는 사용자가 가상 환경에 대화형 애플리케이션 또는 정적 또는 대화형 3D 자산, 애니메이션 또는 2D 텍스처를 추가할 수 있게 한다. 미팅 요약 준비는 가상 미팅의 결과를 자동으로 준비하고 세션이 끝날 때 참가자에게 그 결과를 배포할 수 있다. 오브젝트 이동은 가상 환경 내에서 오브젝트를 이동하는 것을 가능하게 해준다. 투영은 참석자의 화면에서 가상 환경에서 사용할 수 있는 화면이나 벽에 콘텐츠를 투영하게 해준다. 레이저 포인팅은 프리젠테이션에서 원하는 콘텐츠를 강조하기 위해 레이저를 포인팅을 할 수 있게 해준다. 게임 플레이는 라이브 세션 동안 공유할 수 있는 하나 이상의 게임 또는 기타 유형의 애플리케이션을 플레이할 수 있게 해준다. 구매는 콘텐츠를 세션 내에서 구매할 수 있게 해준다. 여기에 언급되지 않은 다른 상호작용도 가상 환경 플랫폼의 특정 사용에 따라 구성될 수 있다.
일부 실시예에서, 시스템은 애드혹 가상 통신을 생성하는 것을 더 가능하게 할 수 있으며, 이는 가상 환경에서 현재 보기 시점 또는 위치를 변경할 필요 없이 사용자 그래픽 표현 사이에 애드혹 음성 통신 채널을 생성하는 것을 포함할 수 있다. 예를 들어, 사용자 그래픽 표현은 다른 사용자 그래픽 표현에 접근하고, 두 사용자 그래픽 표현 영역이 위치한 가상 환경 내의 장소에서 애드혹 음성 대화에 참여할 수 있다. 이러한 통신은 예를 들어 사용자 그래픽 표현 사이의 거리, 위치 및 방향, 및/또는 현재 가용성 상태(예컨대, 사용 가능 또는 사용 불가) 또는 이러한 애드혹 통신에 대한 상태 설정 또는 이들의 조합을 고려함으로써 가능해질 수 있다. 접근하는 사용자 그래픽 표현은 이 예에서 다른 사용자 그래픽 표현에 대한 시각적 피드백을 보고, 애드혹 통신이 가능하다는 신호를 보내어 두 사용자 그래픽 표현 사이의 대화 시작을 설정하며, 여기서 접근하는 사용자는 말하고 다른 사용자는 듣고 응답할 수 있다. 다른 예에서, 사용자 그래픽 표현은 다른 사용자 그래픽 표현에 접근하고, 그 사용자 그래픽 표현을 클릭하고, 대화 초대를 보내고, 초대받은 사람의 승인 후 두 사용자 그래픽 표현 영역이 위치하는 가상 환경 내의 장소에서 애드혹 음성 대화에 참가할 수 있다. 다른 사용자들은 사용자 그래픽 표현 간의 상호작용, 표현, 손 움직임 등을 볼 수 있고, 두 사용자 그래픽 표현 사이의 개인 정보 설정에 따라 대화를 들을 수도 있고, 들을 수 없을 수도 있다. 전술한 상호작용(406) 또는 다른 상호작용(426) 중 임의의 것이 또한 가상 환경 스크린(404) 내에서 직접 수행될 수 있다.
도 5는 일 실시예에 따른, 한 유형의 사용자 그래픽 표현의 다른 유형으로의 전환(예를 들어 사용자 3D 가상 컷아웃으로부터 사용자 실시간 3D 가상 컷아웃으로, 또는 배경이 제거된 비디오로 또는 배경이 제거되지 않은 비디오로의 전환)을 가능하게 하는 방법(500)을 도시한다.
이러한 전환은 사용자가 다른 사용자 그래픽 표현과의 대화에 참여할 때 활성화될 수 있다. 예를 들어, 사용자는 현재 사무실 의자에 앉아 가상 사무실 내의 컴퓨터로 작업하고 있을 수 있다. 사용자의 현재 그래픽 표현은 사용자 3D 가상 컷아웃의 표현일 수 있다. 이 때, 사용자로부터의 라이브 데이터 피드가 필요하지 않기 때문에 카메라가 켜지지 않을 수 있다. 그러나, 사용자가 카메라를 켜기로 결정하는 경우, 사용자 3D 가상 컷아웃은 본 명세서에서 더 자세히 설명되는 바와 같이 사용자의 라이브 데이터 피드로부터 캡처된 사용자의 얼굴 분석을 통해 제공되는 얼굴 표정을 포함할 수 있다.
사용자가 다른 사용자 그래픽 표현과 대화에 참여하고 라이브 세션을 시작한 때, 사용자 카메라가 활성화되지 않았다면 카메라가 활성화되고 사용자의 라이브 스트림을 제공할 수 있는 라이브 데이터 피드 캡처를 시작할 수 있고, 사용자 3D 가상 컷아웃을 사용자 실시간 3D 가상 컷아웃 또는 배경이 제거된 비디오 또는 배경이 제거되지 않은 비디오로 전환한다. 또한 도 1에 설명된 바와 같이, 사용자 실시간 3D 가상 컷아웃(504)의 라이브 스트림은 클라이언트 또는 서버에서 처리 및 렌더링될 수도 있고, 또는 P2P 시스템 아키텍처 또는 하이브리드 시스템 아키텍처에서 (예컨대, 도 3을 참조하여 설명된 하이브리드 시스템 아키텍처(300)을 통한) 실시간 자체 처리 및 렌더링을 위해 다른 피어 클라이언트 장치에 전송될 수 있다.
도 5의 방법(500)은 사용자 그래픽 표현에 접근함으로써 단계(502)에서 시작할 수 있다. 그 다음, 단계(504)에서, 방법(500)은 사용자 그래픽 표현을 선택하고 클릭함으로써 계속될 수 있다. 단계(506)에서, 방법(500)은 클라이언트 장치를 통해 대화 참여 초대를 다른 사용자 그래픽 표현으로 전송하거나 또는 그로부터 수신함으로써 계속될 수 있다. 단계(508)에서, 방법(500)은 대응하는 클라이언트 장치에 의해 수신된 초대를 수락함으로써 계속된다. 그 다음, 방법(500)은 사용자 3D 가상 컷아웃에서 사용자 실시간 3D 가상 컷아웃 또는 배경이 제거된 비디오, 또는 배경이 제거되지 않은 비디오로 전환함으로써 단계(510)에서 계속된다. 마지막으로, 단계(512)에서, 방법(500)은 처리 및 렌더링이 클라이언트 장치에 의해 수행될 때 사용자 클라이언트 장치 간의 P2P 통신 채널을 개방함으로써, 또는 처리 및 렌더링이 적어도 하나의 클라우드 서버 컴퓨터에 의해 수행될 때 클라우드 서버 컴퓨터를 통해 간접 통신 채널을 개방함으로써 종료된다. 일부 실시예에서, 대화는 참가자의 실시간 3D 가상 컷아웃 사용자로부터 디스플레이되는 실시간 오디오 및 비디오를 송수신하는 것을 포함한다.
도 6a 내지 도 6c는 대응하는 클라이언트 장치(118) 및 클라우드 서버(102)에 의해 클라이언트-서버 측(304)에서 수행되는 복수의 이미지 처리 조합의 개략도를 도시한다. 클라이언트-서버측은 예를 들어 도 3에 도시된 하이브리드 시스템 아키텍처(300)와 같은 하이브리드 시스템 아키텍처의 일부일 수 있다.
도 6a 내지 도 6c의 일 실시예에서, 적어도 하나의 클라우드 서버(102)는 TURN(Traversal Using Relay Network Address Translation(NAT)) 서버로 구성될 수 있는데, 이는 서버가 클라이언트 장치(118) 간의 연결을 수립할 수 없는 상황에 적합할 수 있다. TURN은 STUN(Session Traversal Utilities for NAT)의 확장이다.
NAT는 패킷이 트래픽 라우팅 장치를 통해 전송되는 동안 패킷의 IP 헤더에 있는 네트워크 주소 정보를 수정하여 인터넷 프로토콜(IP) 주소 공간을 다른 주소 공간으로 다시 매핑하는 방법이다. 따라서, NAT는 사설 IP 주소가 인터넷과 같은 네트워크에 액세스할 수 있도록 하고, 라우팅 장치와 같은 단일 장치가 인터넷과 사설 네트워크 사이에서 에이전트 역할을 할 수 있도록 한다. NAT는 대칭 또는 비대칭일 수 있다. 클라이언트 장치를 연결하는 최적의 경로를 찾도록 구성된 ICE(Interactive Connectivity Establishment)라는 프레임워크는 대칭 또는 비대칭 NAT가 필요한지 여부를 결정할 수 있다. 대칭 NAT는 IP 주소를 개인에서 공용으로 또는 그 반대로 전환하는 작업을 수행할 뿐만 아니라 포트도 전환한다. 반면에, 비대칭 NAT는 STUN 서버를 사용하여 클라이언트가 그들의 공공 IP 주소 및 그 뒤에 있는 NAT 유형을 검색할 수 있도록 하며, 이는 연결을 설정하는 데 사용될 수 있다. 많은 경우, STUN은 연결 설정 중에만 사용될 수 있으며 해당 세션이 설정되면 클라이언트 장치 간에 데이터가 흐르기 시작할 수 있다.
TURN은 대칭 NAT의 경우에 사용될 수 있으며, 처리된 및/또는 처리되지 않은 데이터가 클라이언트 장치 간에 중계되는 동안 연결이 설정된 후 미디어 경로에 남아 있을 수 있다.
도 6a는 클라이언트 장치 A, 클라우드 서버(102) 및 클라이언트 장치 B를 포함하는 클라이언트-서버 측(304)을 도시한다. 도 6a에서, 클라이언트 장치 A는 처리할 데이터의 발신자이고 클라이언트 장치 B는 데이터의 수신자이다. 복수의 이미지 처리 작업은 클라이언트 장치 A, 클라우드 서버(102) 및/또는 클라이언트 장치 B에 의해 수행되는지 여부에 따라 묘사되고 분류되며, 따라서 클라이언트 장치 A 처리(602), 서버 이미지 처리(604) 및 클라이언트 장치 B 처리 (606)로 분류된다.
이미지 처리 작업은 배경 제거(608), 추가 처리 또는 개선(610), 가상 환경으로의 삽입 및 가상 환경과의 조합(612)을 포함한다. 도 6b 및 6c 및 또한 도 7b로부터 명백해지는 바와 같이, 여기에 예시된 3개의 이미지 처리 작업의 조합은 가상 환경으로의 사용자 그래픽 표현의 생성, 개선 및 삽입/조합에 사용될 수 있다. 또한, 단순화를 위해, 도 6b-6c 및 도 7b-7c에서 배경 제거(608)는 "BG"(608)로, 추가 처리 또는 개선(610)은 "++"(610)로, 삽입 및 조합으로 가상 환경(612)이 있는 가상 환경(612)은 "3D"(612)로 표시된다.
일부 실시예에서, 사용자 그래픽 표현을 가상 환경에 삽입하고 가상 환경과 결합하는 것은 사용자 그래픽 표현 앞에, 예를 들어, 배경이 제거된 비디오 또는 배경이 제거되지 않은 비디오 또는 사용자 3D 가상 컷아웃, 또는 사용자 실시간 3D 가상 컷아웃의 앞에 가상으로 배치되고 정렬되는 하나 이상의 가상 카메라를 생성하는 것을 포함한다. 일 실시예에서, 하나 이상의 가상 카메라는 눈높이에서 바깥쪽을 가리킬 수 있다. 다른 실시예에서, 두 개의 가상 카메라(눈당 하나씩)는 두 개의 눈높이에서 바깥쪽을 가리킬 수 있다. 또 다른 실시예에서, 하나 이상의 가상 카메라는 사용자 그래픽 표현의 머리 위치의 중심으로부터 바깥쪽을 가리킬 수 있다. 또 다른 실시예에서, 하나 이상의 가상 카메라는 사용자 그래픽 표현의 중심으로부터 바깥쪽을 가리킬 수 있다. 또 다른 실시예에서, 하나 이상의 가상 카메라는 예를 들어 사용자 그래픽 표현의 머리 높이에서 사용자 그래픽 표현 앞에 배치될 수 있으며, 자기 보기 시점에 있을 때 사용자 그래픽 표현을 가리킬 수 있다. 하나 이상의 가상 카메라는 적어도, 컴퓨터 비전을 사용하여 가상 환경 내의 사용자 그래픽 표현의 보기 시점에 사용자의 캡처된 보기 시점 데이터를 연관시킴으로써 생성된다. 하나 이상의 가상 카메라는 사용자의 눈과 머리 기울이기 데이터 또는 머리 회전 데이터 또는 이들의 조합을 추적 및 분석하여 자동으로 업데이트되며, 사용자가 선택한 보기 시점에 따라 사용자에 의해 수동으로 변경될 수도 있다.
클라이언트 장치 A 처리(602), 서버 이미지 처리(604) 및 클라이언트 장치 B 처리(606)의 이미지 처리 조합 및 대응하는 사용 레벨은 처리할 데이터의 양, 원활한 사용자 경험을 유지하기 위해 허용된 대기 시간, 원하는 서비스 품질(QOS), 필요한 서비스 등에 따라 달라진다.
도 6b는 제 1 내지 제 4 이미지 처리 조합을 도시한다.
제 1 이미지 처리 조합에서, 클라이언트 장치 A는 배경 제거(608)를 포함하는 사용자 그래픽 표현을 생성하고, 배경이 제거된 사용자 그래픽 표현을 추가 처리 또는 개선(610)을 위해 적어도 하나의 클라우드 서버(102)로 전송하여 배경이 제거된 향상된 사용자 그래픽 표현을 생성한다. 적어도 하나의 클라우드 서버는 배경이 제거된 향상된 사용자 그래픽 표현을 클라이언트 장치 B로 전송하고, 클라이언트 장치 B는 배경이 제거된 향상된 사용자 그래픽 표현을 가상 환경에 삽입하고 그것과 결합한다.
제 2 이미지 처리 조합에서, 클라이언트 장치 A는 배경 제거(608)를 포함하는 사용자 그래픽 표현을 생성하고, 그것에 추가 처리 또는 개선(610)을 수행하여 적어도 하나의 클라우드 서버(102)로 보내기 전에 배경이 제거된 향상된 사용자 그래픽 표현을 생성한다. 적어도 하나의 클라우드 서버(102)는 배경 제거된 향상된 사용자 그래픽 표현을 가상 환경에 삽입하고 그것과 결합하는, 클라이언트 장치 B로 배경 제거된 향상된 사용자 그래픽 표현을 전송한다.
제 3 이미지 처리 조합에서, 클라이언트 장치 A는 배경 제거(608)를 포함하는 사용자 그래픽 표현을 생성하고, 그것에 추가 처리 또는 개선(610)을 수행하여 배경이 제거된 향상된 사용자 그래픽 표현을 생성하고, 향상된 사용자 그래픽 표현을 가상 환경에 삽입하고 그것과 결합한다. 그 다음, 클라이언트 장치 A는 가상 환경에 삽입되고 결합된 배경 제거된 향상된 사용자 그래픽 표현을 클라이언트 장치 B로 중계하기 위해 클라우드 서버로 전송한다.
제 4 이미지 처리 조합에서, 클라이언트 장치 A는 배경 제거(608)를 포함하는 사용자 그래픽 표현을 생성하고, 배경이 제거된 사용자 그래픽 표현을 추가 처리 또는 개선(610)을 수행하기 위해 적어도 하나의 클라우드 서버(102)로 전송하여, 배경 제거된 향상된 사용자 그래픽 표현을 생성한다. 그 다음, 적어도 하나의 클라우드 서버는 클라이언트 장치 B로 보내기 전에 배경 제거된 향상된 사용자 그래픽 표현을 가상 환경에 삽입하고 그것과 결합한다.
도 6c는 제 5 내지 제 8 이미지 처리 조합을 도시한다.
제 5 이미지 처리 조합에서, 클라이언트 장치 A는 배경 제거(608)를 포함하는 사용자 그래픽 표현을 생성하고, 배경 제거된 사용자 그래픽 표현을 클라이언트 장치 B로 중계하기 위해 적어도 하나의 클라우드 서버(102)로 전송한다. 클라이언트 장치 B는 배경 제거된 사용자 그래픽 표현에 대한 추가 처리 또는 개선(610)을 수행하여, 클라이언트 장치 B가 가상 환경에 삽입하고 가상 환경과 결합하는 배경 제거된 향상된 사용자 그래픽 표현을 생성한다.
제 6 이미지 처리 조합에서, 클라이언트 장치 A는 적어도 하나의 카메라로부터 수신된 카메라 라이브 데이터 피드를 전송하고, 처리되지 않은 데이터를 배경 제거(608)를 포함하여, 사용자 그래픽 표현의 생성을 수행하는 하나 이상의 클라우드 서버(102)로 전송하고, 그리고 배경 제거된 사용자 그래픽 표현에 대한 추가 처리 또는 개선(610)을 수행하여 클라이언트 장치 B로 전송되는 배경 제거된 향상된 사용자 그래픽 표현을 생성한다. 클라이언트 장치 B는 배경 제거된 향상된 사용자 그래픽 표현을 가상 환경에 삽입하고 그것과 결합한다.
제 7 이미지 처리 조합에서, 클라이언트 장치는 적어도 하나의 카메라로부터 수신된 카메라 라이브 데이터 피드를 전송하고, 처리되지 않은 데이터를 적어도 하나의 클라우드 서버(102)로 전송한다. 적어도 하나의 클라우드 서버(102)는 배경 제거(608)를 포함하여 사용자 그래픽 표현을 생성하고, 배경 제거된 사용자 그래픽 표현에 대한 추가 처리 또는 개선(610)을 수행하여, 배경 제거된 사용자 그래픽 표현을 클라이언트 장치 B로 전송되는 가상 환경에 삽입하고 그것과 결합시키기 전에 배경이 제거된 향상된 사용자 그래픽 표현을 생성한다.
제 8 이미지 처리 조합에서, 클라이언트 장치 A는 적어도 하나의 카메라로부터 수신된 카메라 라이브 데이터 피드를 보내고, 클라이언트 장치 B로 중계하기 위해 처리되지 않은 데이터를 적어도 하나의 클라우드 서버(102)로 보낸다. 클라이언트 장치 B는 이러한 데이터를 사용하여 배경 제거(608)를 포함하여 사용자 그래픽 표현을 생성하고, 배경이 제거된 사용자 그래픽 표현에 대한 추가 처리 또는 개선(610)을 수행하여 배경이 제거된 향상된 사용자 그래픽 표현을 가상 환경에 삽입하고 그것과 결합시키기 전에 배경이 제거된 향상된 사용자 그래픽 표현을 생성한다. 이해될 수 있는 바와 같이, 일부 실시예에서, 적어도 하나의 클라우드 서버(102)는 중개 서버일 수 있으며, 이는 서버가 클라이언트 장치 간의 데이터 교환을 용이하게 및/또는 최적화하기 위해 중개 서버 토폴로지를 사용함을 의미한다.
이러한 실시예에서, 적어도 하나의 클라우드 서버는 중개 서버일 수 있으며, 이는 서버가 클라이언트 장치 간의 데이터 교환을 촉진 및/또는 최적화하는데 사용됨을 의미한다. 이러한 실시예에서, 적어도 하나의 클라우드 서버는 인커밍 멀티미디어 스트림을 관리, 분석 및 최적화하고 그리고 라우터 토폴로지(예를 들어, SFU, SAMS, 멀티미디어 서버 라우터 등), 또는 미디어 처리(예컨대, 디코딩, 결합, 개선, 혼합, 향상, 증대, 컴퓨팅, 조작 또는 인코딩을 포함한 작업 수행) 및 포워딩 서버 토폴로지(예컨대, 다지점 제어 장치, 클라우드 미디어 믹서, 클라우드 3D 렌더러) 또는 기타 서버 토폴로지로서의 아웃바운드 스트림의 포워딩을 관리, 평가, 최적화할 수 있다.
중개 서버가 SAMS인 이러한 실시예에서, 이러한 미디어 서버는 전송 클라이언트 장치의 인커밍 데이터(예컨대, 메타 데이터, 우선 순위 데이터, 데이터 클래스, 공간 구조 데이터, 3차원 위치, 방향 또는 운동 정보, 이미지, 미디어 또는 확장 가능한 비디오 코덱 기반 비디오)를 관리, 분석 및 처리하고, 이러한 분석에서 아웃바운드 데이터 스트림의 수신 클라이언트 장치로의 포워딩을 관리하거나 최적화한다. 이것은 수신하는 하나 이상의 사용자 클라이언트 장치에 대한 최적의 대역폭 및 컴퓨팅 리소스 활용을 달성하는, 특정 수신 클라이언트 장치 사용자의 공간, 3차원 방향, 거리 및 이러한 인커밍 데이터에 대한 우선 순위 관계와 같은 하나 이상의 요인에 기초하여, 시간(예컨대, 프레임 속도 변경), 공간(예컨대, 다른 이미지 크기), 품질(예컨대, 다른 압축 또는 인코딩 기반 품질) 및 색상(예컨대, 색상 해상도 및 범위)에 대하여 미디어를 수정, 업스캐일링 또는 다운스캐일링하는 것을 포함할 수 있다.
중개 서버 토폴로지는 예를 들어 제 1 내지 제 8 이미지 처리 조합에 적합할 수 있으며, 여기서 적어도 하나의 클라우드 서버(102)는 도 6a-6c에서와 같이 클라이언트 장치 A와 B 사이에서 처리된다.
도 7a 내지 도 7c는 통신 및 프로세싱이 클라이언트 서버 측을 통해 발생하는 경우와 구별하기 위해 도 7a 내지 도 7b에 피어 장치 A-B로 도시된 대응하는 클라이언트 장치에 의해 P2P 측(306)에서 수행되는 복수의 이미지 처리 조합의 개략적 표현을 도시한다. P2P 측(306)은 예를 들어 도 3에 도시된 하이브리드 시스템 아키텍처(300)와 같은 하이브리드 시스템 아키텍처의 일부일 수 있다.
도 7a는 피어 장치 A 및 피어 장치 B를 포함하는 P2P 측(306)을 도시하며, 여기서 피어 장치 A는 처리될 데이터의 전송자이고 피어 장치 B는 데이터의 수신자이다. 복수의 이미지 및 미디어 처리 작업은 피어 장치 A 또는 피어 장치 B에 의해 수행되는지 여부에 따라 도시되고 분류되므로, 피어 장치 A 처리(702) 및 피어 장치 B 처리(704)로 분류된다. 이미지 및 미디어 처리 작업은 배경 제거(608), 추가 처리 또는 개선(610), 가상 환경(612)으로의 삽입 및 조합을 포함할 수 있지만 이에 제한되지는 않는다.
도 7b는 제 1 내 지 제 3 이미지 처리 조합을 도시한다.
제 1 이미지 처리 조합에서, 피어 장치 A는 배경 제거(608)를 포함하여 사용자 그래픽 표현을 생성하고, 그것에 추가 처리 또는 개선(610)을 수행하여 배경이 제거된 향상된 사용자 그래픽 표현을 생성하고, 배경 제거된 향상된 사용자 그래픽 표현을 3차원 좌표를 갖는 가상 환경에 삽입하고 그것과 결합시킨다. 그 다음, 피어 장치 A는 가상 환경에 삽입되고 결합된 배경 제거된 향상된 사용자 그래픽 표현을 피어 장치 B로 전송한다.
제 2 이미지 처리 조합에서, 피어 장치 A는 배경 제거(608)를 포함하여 사용자 그래픽 표현을 생성하고, 배경이 제거된 사용자 그래픽 표현을 피어 장치 B로 보낸다. 피어 장치 B는 배경 제거된 사용자 그래픽 표현에 대한 추가 처리 또는 개선(610)을 수행하여, 피어 장치 B가 가상 환경에 삽입하고 가상 환경과 결합시킬 배경 제거된 향상된 사용자 그래픽 표현을 생성한다.
제 3 이미지 처리 조합에서, 피어 장치 A는 적어도 하나의 카메라로부터 수신된 카메라 라이브 데이터 피드를 전송하고 인코딩된 데이터를 피어 장치 B로 전송한다. 피어 장치 B는 배경 제거(608)를 포함하여 사용자 그래픽 표현을 생성하기 위해 데이터를 디코딩하고 사용하고 배경이 제거된 사용자 그래픽 표현에 대한 추가 처리 또는 개선(610)을 수행하여, 배경 제거된 향상된 사용자 그래픽 표현을 가상 환경에 삽입하고 그것과 결합시키기 전에 배경 제거된 향상된 사용가 그래픽 표현을 생성한다.
도 7c는 제 4 내지 제 6 이미지 처리 조합을 도시한다.
도 7c의 일 실시예에서, 적어도 하나의 클라우드 서버(102)는 STUN 서버로 구성될 수 있으며, 이는 피어 장치가 자신의 공개 IP 주소 및 그 뒤에 있는 NAT의 유형, 피어 장치 간의 데이터 연결 및 데이터 교환을 수립하기 위해 사용될 수 있는 정보를 발견할 수 있게 한다. 도 7c의 다른 실시예에서, 적어도 하나의 클라우드 서버(102)는 시그널링을 위해 구성될 수 있으며, 시그널링은 피어 장치가 서로를 찾고 연결하는 것 뿐만 아니라 적어도 하나의 클라우드 서버에 의해 수행되는 통신 조정을 통해 데이터를 교환하는데 사용될 수 있다.
제 4 내지 제 6 이미지 및 처리 조합 모두에서, 적어도 하나의 클라우드 서버(102)가 피어 장치 A와 B 사이에서 서비스를 제공하기 때문에, 적어도 하나의 클라우드 서버(102)는 SAMS, SFU, MCU, 또는 다른 기능적 서버 토폴로지를 사용할 수 있다.
제 4 이미지 처리 조합에서, 피어 장치 A는 배경 제거(608)를 포함하여 사용자 그래픽 표현을 생성하고, 그것에 추가 처리 또는 개선(610)을 수행하여 배경 제거된 향상된 사용자 그래픽 표현을 생성하고, 배경 제거된 향상된 사용자 그래픽 표현을 가상 환경에 사입하고 그것과 결합시킨다. 그 다음, 피어 장치 A는 가상 환경에 삽입되고 결합된 배경 제거된 향상된 사용자 그래픽 표현을 STUN 또는 시그널링 서버로서 역할하는 적어도 하나의 클라우드 서버를 통해 피어 장치 B로 보낸다.
제 5 이미지 처리 조합에서, 피어 장치 A는 배경 제거(608)를 포함하여 사용자 그래픽 표현을 생성하고, 미디어 라우터 서버 역할을 하는 적어도 하나의 클라우드 서버를 통해 배경이 제거된 사용자 그래픽 표현을 피어 장치 B로 보낸다. 피어 장치 B는 배경이 제거된 사용자 그래픽 표현에 대한 추가 처리 또는 개선(610)을 수행하여 클라이언트 장치 B가 가상 환경에 삽입하고 가상 환경과 결합시킬 배경 제거된 향상된 사용자 그래픽 표현을 생성한다.
제 6 이미지 처리 조합에서, 피어 장치 A는 적어도 하나의 카메라로부터 수신된 카메라 라이브 데이터 피드를 보내고 처리되지 않은 데이터를 STUN 또는 시그널링 서버로 역할하는 적어도 하나의 클라우드 서버를 통해 피어 장치 B로 보낸다. 피어 장치 B는 배경 제거(608)를 포함하여 사용자 그래픽 표현을 생성하기 위해 데이터를 사용하고, 배경이 제거된 사용자 그래픽 표현에 대한 추가 처리 또는 개선(610)을 수행하고, 배경이 제거된 향상된 사용자 그래픽 표현을 가상 환경에 삽입하고 그것에 결합시키기 전에 배경 제거된 향상된 사용자 그래픽 표현을 생성한다.
도 8은 본 개시의 실시예에서 사용될 수 있는 사용자 그래픽 표현 기반 사용자 인증 시스템(800)을 도시한다. 예를 들어, 사용자 그래픽 표현 기반 사용자 인증 시스템(800)은 도 1 및 도 2a의 가상 환경 플랫폼(108)과 같은 가상 환경 플랫폼에 대한 액세스를 허가할 수 있는 사용자 계정에 액세스하는데 사용될 수 있다.
사용자 그래픽 표현 기반 사용자 인증 시스템(800)은 적어도 하나의 프로세서(804), 및 사용자 계정(810) 및 하나 이상의 대응하는 사용자 그래픽 표현(812)과 연관된 사용자 데이터를 저장하는 사용자 데이터베이스(808)를 포함하는 명령 및 데이터를 저장하는 메모리(806)를 포함하는 하나 이상의 클라우드 서버 컴퓨터(802)를 포함한다. 사용자 그래픽 표현 기반 사용자 인증 시스템(800)은 사용자 계정(810)과 연관된 데이터를 저장하는 데이터베이스(808)에 연결된 얼굴 스캐닝 및 인증 모듈(814)을 더 포함한다. 하나 이상의 클라우드 서버 컴퓨터(802)는 얼굴 스캐닝 및 인증 모듈(814)을 통해 사용자의 얼굴 스캐닝을 수행함으로써 사용자를 인증하도록 구성된다. 얼굴 스캐닝은 클라이언트 장치(822)로부터 수신된 카메라 데이터로부터 얼굴 특징 데이터를 추출하고, 추출된 얼굴 특징 데이터를 사용자 데이터베이스(808)의 사용자 그래픽 표현과 일치하는지 확인하는 것을 포함한다.
도 8에 도시된 예에서, 시스템(800)은 사용자 계정(810)에 대한 액세스를 요청하는 적어도 하나의 클라이언트 장치(822)의 사용자(820)로부터 이미지 데이터(818)를 획득하도록 구성된 적어도 하나의 카메라(816)를 더 포함한다. 적어도 하나의 카메라(816)는 추가 처리를 위해 카메라(816)에 의해 캡처된 데이터를 하나 이상의 클라우드 서버 컴퓨터(802)로 전송하도록 구성된 적어도 하나의 클라이언트 장치(822)에 연결된다. 대안으로서, 카메라(516)는 하나 이상의 클라우드 서버 컴퓨터(802)에 직접 연결될 수 있다. 하나 이상의 클라우드 서버 컴퓨터(802)는 얼굴 스캐닝 및 인증 모듈(814)을 통해 사용자의 얼굴 스캐닝을 수행하고, 사용자 데이터베이스(808)에서 기존 사용자 그래픽 표현과 일치하는지 확인하고, 사용자 계정(810)이 확인되고 사용 가능한 경우, 사용자 계정(810)에 대한 액세스와 함께 해당 사용자 그래픽 표현(812)을 사용자에게 제공함으로써, 사용자를 인증하도록 구성된다. 대안으로서, 사용자 계정(810)이 사용 불가능한 경우, 하나 이상의 클라우드 서버 컴퓨터(802)는 라이브 데이터 피드로부터 획득된 데이터(818)로부터, 사용자 데이터베이스(808)에 저장된 새로운 사용자 계정(810)과 함께 새로운 사용자 그래픽 표현(812)을 생성함으로써 사용자를 인증하도록 구성된다.
사용자 계정(810)은 예를 들어 가상 환경 플랫폼, 또는 임의의 대화형 애플리케이션, 게임, 이메일 계정, 대학 프로필 계정, 직장 계정 등과 같은 임의의 다른 애플리케이션(예컨대, 환경 플랫폼에 링크될 수 있는 애플리케이션)에 액세스하기 위해 사용될 수 있다. 예를 들어, 사용자 그래픽 표현(812)을 생성하거나 사용자 데이터베이스(808)로부터 기존 사용자 그래픽 표현(812)을 검색하는 단계가 주어지면, 본 개시의 그래픽 표현 기반 사용자 인증 시스템(800)은 표준 카메라 기반 얼굴 감지 인증 시스템 보다 높은 편의성 및 보안 레벨을 제공한다.
일부 실시예에서, 하나 이상의 클라우드 서버 컴퓨터는 일치하는 사용자 그래픽 표현의 날짜를 체크하고, 일치하는 사용자 그래픽 표현의 업데이트가 필요한지 여부를 판정하도록 더 구성된다. 일 실시예에서, 사용자 계정(810)이 이용 가능하고, 이용 가능한 사용자 그래픽 표현(812)의 날짜를 체크하는 하나 이상의 클라우드 서버 컴퓨터(802)에 응답하여, 하나 이상의 클라우드 서버 컴퓨터(802)는 대응하는 임계값 또는 보안 요구사항과 비교함으로써 기존 사용자 그래픽 표현(814)의 업데이트가 필요한지 여부를 판정한다. 예를 들어, 시스템 보안 업데이트가 있는 경우 모든 사용자 그래픽 표현을 업데이트하거나 적어도 지정된 날짜 이전에 생성된 표현을 업데이트해야 할 수 있다. 사용자 그래픽 표현(814)이 필요한 경우, 하나 이상의 클라우드 서버 컴퓨터(802)는 대응하는 클라이언트 장치(822)에 대한 사용자 그래픽 표현 업데이트 요청을 생성한다. 사용자(820)가 요청을 승인하면, 하나 이상의 클라우드 서버 컴퓨터(802) 또는 클라이언트 장치(822)는 라이브 카메라 피드로부터의 데이터(818)에 기초하여 사용자 그래픽 표현(814)을 생성하도록 진행한다. 업데이트가 필요하지 않은 경우, 하나 이상의 클라우드 서버 컴퓨터(802)는 인증 후에 사용자 데이터베이스(808)로부터 기존 사용자 그래픽 표현(812)을 검색하도록 진행한다.
일부 실시예에서, 사용자 그래픽 표현(812)은 2차원 또는 3차원 가상 환경에, 또는 가상 환경에 링크된 제3자 소스에 삽입되고, 2차원 또는 3차원 가상 환경과 결합된다. 예를 들어, 사용자 그래픽 표현(812)은 본 개시의 시스템에 통합되거나 결합된 제3자 애플리케이션 또는 웹사이트의 화면에 오버레이됨으로써 가상 환경에 링크된 제3자 소스에 삽입될 수 있다.
일 예에서, 제3자 소스의 스크린 상에 사용자 그래픽 표현(812)을 오버레이하는 것은 가상 환경에 링크된 2D 웹사이트 또는 애플리케이션의 상단에서 수행된다. 예를 들어, 쇼핑 웹사이트에 함께 가는 2 이상의 친구는 웹사이트의 콘텐츠를 탐색 및/또는 상호작용하기 위해 쇼핑 웹사이트에 오버레이된 그들의 사용자 그래픽 표현을 가질 수 있다. 다른 예에서, 제3자 소스의 스크린 상에 사용자 그래픽 표현(812)을 오버레이하는 것은 가상 환경에 링크된 3D 게임 세션의 상단에서 수행된다. 예를 들어, 사용자는 다른 팀 맴버의 사용자 그래픽 표현(812)과 함께 e-스포츠 게임 세션의 상단에 오버레이될 수 있는 자신의 사용자 그래픽 표현(812)을 통해 가상 환경에 연결된 e-스포츠 게임 세션에 액세스할 수 있다. 이러한 예에서, 사용자 그래픽 표현(812)의 이러한 오버레이는 2D 웹사이트의 방문 또는 3D 게임 세션의 경험 동안 모든 사용자의 표현 및 통신의 일관되고 멀티캐스트된 보기를 가능하게 할 수 있다.
일부 실시예에서, 사용자 그래픽 표현(812)의 생성 프로세스는 사용자 계정(810)에 대한 사용자(820) 액세스로부터 비동기적으로 발생한다. 예를 들어, 사용자 그래픽 표현 기반 인증 시스템(800)이 사용자(820)가 얼굴 스캐닝을 수행한 후 이미 인증받았다고 판정하면, 사용자 그래픽 표현 기반 인증 시스템(800)은 사용자(820)가 사용자 계정(810)에 액세스할 수 있게 하고, 동시에 준비 후 사용자(812)에게 제공한 다음 가상 환경에 삽입하고 그것과 결합하기 위한 새로운 사용자 그래픽 표현(812)이 생성된다.
일부 실시예에서, 하나 이상의 클라우드 서버 컴퓨터(802)는 개인 식별 번호(PIN), 또는 사용자 이름 및 비밀번호 또는 카메라 인증과 PIN, 또는 사용자 이름 및 비밀번호의 조합을 포함하는 로그인 인증 크리덴셜을 통해 사용자(802)를 추가로 인증한다.
일부 실시예에서, 사용자 그래픽 표현 기반 인증 시스템(800) 인증은 하나의 클라이언트 장치(822)에서 다른 클라이언트 장치로 전송된 초대 링크 또는 딥 링크(deep link)의 활성화에 응답하여 트리거된다. 초대 링크 또는 딥 링크를 클릭하면 적어도 하나의 클라우드 서버 컴퓨터(802)가 사용자에게 인증을 요청하도록 트리거된다. 예를 들어, 초대 링크 또는 딥 링크는 전화 통화, 회의 또는 비디오 게임 세션 초대를 위한 것일 수 있으며, 여기서 초대된 사용자는 사용자 그래픽 표현 기반 인증 시스템(800)을 통해 인증될 수 있다.
다른 실시예에서, 얼굴 스캐닝은 머리 움직임 패턴을 수행하도록 사용자를 안내하고 머리 움직임 패턴에 기초하여 3D 얼굴 데이터를 추출하는 것을 포함하는 3D 인증을 사용한다. 이것은 적어도 하나의 서버 컴퓨터에 저장된 애플리케이션 명령을 사용하여 수행될 수 있으며, 이는 사용자에게 머리 움직임 패턴을 수행하도록(예를 들어, 하나 이상의 머리 제스처를 수행하도록, 머리를 수평으로 또는 또는 수직으로 기울이거나 회전시키도록, 또는 원형 모션으로 사용자 생성 제스처 패턴, 특정 머리 움직임 패턴, 또는 이들의 조합을 수행하도록) 안내함으로써 3D 인증을 구현한다. 3D 인증은 단순히 하나의 뷰 또는 이미지를 비교하고 분석하는 것과는 달리, 카메라 라이브 비디오 데이터 피드로부터 얻은 데이터로부터 추가 특징을 인식한다. 이 3D 인증 실시예에서, 얼굴 스캐닝 프로세스는 머리 움직임 패턴, 얼굴 볼륨, 키, 얼굴 특징의 깊이, 얼굴 흉터, 문신, 눈 색깔, 얼굴 피부 파라미터(예를 들어, 피부색, 주름, 기공 구조 등), 반사율 파라미터, 뿐만 아니라 예를 들어 다른 유형의 안면 검출 시스템의 경우와 마찬가지로 안면 토폴로지 상의 이러한 특징의 위치를 포함한 얼굴 데이터를 포함할 수 있는 데이터로부터 추가 특징을 인식할 수 있다. 따라서, 이러한 얼굴 데이터를 캡처하는 것은 사실적인 사용자 그래픽 표현의 생성에 도움이 될 수 있는 사실적인 얼굴의 캡처를 증가시킬 수 있다. 3D 인증을 이용한 안면 스캐닝은 고해상도 3D 카메라, 뎁스 카메라(LIDAR), 라이트 필드 카메라 등을 이용하여 수행될 수 있다. 얼굴 스캐닝 프로세스 및 3D 인증은 심층 신경망, 컨볼루션 신경망 및 기타 심층 학습 기술을 이용하여 얼굴 데이터를 사용하여 사용자를 검색, 처리, 평가할 수 있다.
도 9는 가상 환경(110)이 가상 사무실인, 사용자 그래픽 표현(120)을 통한 가상 환경(110)의 제3자 보기 시점(900)의 개략적 표현을 도시한다.
가상 사무실은 하나 이상의 사무실 책상(902), 사무실 의자(904), 사무실 컴퓨터(906), 콘텐츠(910)를 투영하기 위한 프로젝팅 면(908), 및 클라이언트 장치를 통해 가상 환경(110)에 액세스하는 대응하는 사용자를 나타내는 복수의 사용자 그래픽 표현(120)을 포함한다.
사용자 그래픽 표현(120)은 초기에 사용자 3D 가상 컷아웃일 수 있고, 초대 승인 프로세스 후에는 카메라로부터 얻은 실시간 2D 또는 3D 라이브 비디오 스트림 데이터 피드, 또는 배경이 제거된 비디오 또는 배경이 제거되지 않은 비디오에 기초하여 생성된 배경이 제거된 사용자의 실시간 비디오 스트림을 포함하는 사용자 실시간 3D 가상 컷아웃으로 전환될 수 있다. 이 프로세스는 도 5를 참조하여 설명된 바와 같이, 도 4를 참조하여 설명된 라이브 세션 내에서 복수의 상호작용을 가능하게 하는 통신 채널을 여는 것을 포함할 수 있다. 예를 들어, 사용자는 처음에 사무실 의자(904)에 앉아 대응하는 사무실 컴퓨터(906)로 작업할 수 있으며, 이는 실제 생활에서 사용자에 의해 수행되는 실제 동작을 나타낼 수 있다. 다른 사용자는 사용자가 자리 비움, 바쁨, 사용 가능, 오프라인, 회의 통화 중 또는 회의 중인지 여부와 같은 현재 사용자 상태를 (예를 들어, 도 4의 원격 감지(414)를 통해) 볼 수 있다. 사용자가 사용 가능한 경우, 다른 사용자 그래픽 표현이 해당 사용자에게 접근하여 대화에 참여하도록 초대를 보낼 수 있다. 두 사용자는 예를 들어 가상 사무실의 사적 회의실로 이동하기로 결정하고 복수의 상호작용을 가능하게 하는 라이브 세션을 시작할 수 있다. 사용자는 또한 프로젝팅 면(908)에 원하는 콘텐츠를 (예를 들어, 화면 공유를 통해) 프로젝팅할 수 있다.
일부 실시예에서, 가상 사무실은 클라이언트 장치를 통해 액세스되고 가상 컴퓨터 리소스에 관리 도구가 할당된 하나 이상의 클라우드 컴퓨터 리소스로부터의 가상 리소스를 포함하는 가상 컴퓨터를 더 포함한다. 가상 컴퓨터는 사무실 컴퓨터(906)와 연관될 수 있다. 그러나, 가상 컴퓨터는 개인용 가정용 컴퓨터 또는 클라우드 컴퓨터 기반 가상 컴퓨팅 리소스에 액세스할 수 있는 다른 위치의 컴퓨터와도 연결될 수 있다. 리소스는 다양한 작업을 수행하는데 필요한 메모리, 네트워크 및 처리 능력을 포함할 수 있다. 또한 사무실 공간의 예에서, 가상 사무실 컴퓨터(906)와 연관된 가상 컴퓨터는 사용자의 실제 사무실 컴퓨터에 연결되어 예를 들어 가상 사무실 컴퓨터(906)에 저장된 데이터가 물리적 사무실의 실제 사무실 컴퓨터 또는 사용자가 그러한 가상 컴퓨터에 로그인할 때 물리적 컴퓨터가 있는 다른 공간에서 사용할 수 있다. 가상 사무실 컴퓨터(906)와 관련된 모든 가상 컴퓨터를 포함하는 가상 인프라는 독점적인 관리자 권한(예컨대, 가상 환경(110)을 사용하는 조직의 IT 팀에 제공됨)에 기반한 관리자 옵션을 사용하여 가상 환경 플랫폼을 통해 관리될 수 있다. 따라서, 본 개시의 가상 환경 플랫폼은 가상 사무실 관리를 가능하게 하고 전형적인 가상 회의 및 회의 애플리케이션의 가능성을 확장하여 협업 및 상호작용의 현실성을 높이고 협업이 발생하는 방식을 간소화하는 복수의 옵션을 제공한다.
도 10a-10b는 일 실시예에 따른, 가상 환경이 가상 교실(1000)인 대응하는 사용자 그래픽 표현을 통해 보여지는 가상 환경의 개략적 표현을 도시한다. 도 10a-10b에서 학생과 교사의 사용자 그래픽 표현은 사용자 업로드 또는 제 3 자 소스 사진, 또는 카메라에서 얻은 실시간 2D 또는 3D 라이브 비디오 스트림 데이터 피드를 기반으로 생성된 배경이 제거된 사용자 실시간 3D 가상 컷아웃, 또는 배경이 제거된 비디오, 또는 배경이 제거되지 않은 비디오로 구성된 사용자 3D 가상 컷아웃 중 임의의 것일 수 있다.
도 10a에서, 학생(1002)의 복수의 사용자 그래픽 표현은 교사(1004)의 사용자 그래픽 표현에 의해 원격으로 제공되는 수업 강의에 참석하고 있다. 교사(1004)는 가상 교실 화이트보드와 같은 하나 이상의 프로젝팅 면(1008) 상에 수업 콘텐츠(1006)를 프로젝팅할 수 있다. 가상 교실(1000)은 사용자가 학습을 위해 지원될 수 있는 복수의 가상 교실 책상(1010)을 더 포함할 수 있다. 학생(1002)은 손 들기, 화면 공유(예를 들어, 프로젝팅 면(1008) 상에), 특정 콘텐츠에서의 레이저 포인팅 등과 같은 도 4를 참조하여 개시된 바와 같이 복수의 상호작용 옵션을 상황에 따라 적절하게 제공받을 수 있다. 도 10a에서, 교사(1004)의 사용자 그래픽 표현은 프로젝팅 면에 그래픽으로 프로젝팅된다.
도 10b는 도 10a와 유사한 실시예를 도시하지만, 차이점은 교사(1004)의 사용자 그래픽 표현이 가상 책상(1012) 뒤에 앉아 있고 콘텐츠(1006)만이 가상 교실 화이트보드 프로젝팅 면(1008)에 공유되거나 프로젝팅된다는 점이다. 교사(1004)는 학생(1002)과 동일한 가상 공간을 공유하고 교실(1000)에서 이동할 수 있으므로 학생(1002) 및 교사(1004)를 위한 보다 현실적이고 상호작용적인 경험을 생성한다.
도 11은 일 실시예에 따른 복수의 가상 카메라 위치(1100)의 개략도를 도시한다.
도 11에서, 2개의 사용자 그래픽 표현(1102), 사용자 3D 가상 컷아웃(1104) 및 사용자 실시간 3D 가상 컷아웃(1106)은 하나 이상의 가상 카메라에 대한 하나 이상의 가상 카메라 위치(1100)를 가지며, 이들 각각은 및 사용자 그래픽 표현에 대한 보기 시점을 생성하는 보기 방향, 각도, 및 시야를 포함한다.
일 실시예에서, 하나 이상의 가상 카메라는 사용자 그래픽 표현(1102)의 눈 높이로부터 바깥쪽을 가리키는 눈 높이(1108)에 위치할 수 있다. 다른 실시예에서, 2개의 가상 카메라(눈당 하나씩)는 사용자 그래픽 표현(1102)의 2개의 눈 높이(1110)로부터 바깥쪽을 가리킬 수 있다. 또 다른 실시예에서, 하나 이상의 가상 카메라는 사용자 그래픽 표현(1102)의 머리 위치(1112)의 중심으로부터 바깥쪽을 가리킬 수 있다. 또 다른 실시예에서, 하나 이상의 가상 카메라는 사용자 그래픽 표현(1102)의 중심(1114)으로부터 바깥쪽을 가리킬 수 있다. 또 다른 실시예에서, 하나 이상의 가상 카메라는 예를 들어 사용자 그래픽 표현(1102)의 머리 높이에서 사용자 그래픽 표현(1102)의 전방에 배치될 수 있으며, 자기 보기 시점(1116)에 있을 때 사용자 그래픽 표현(1102)을 가리킬 수 있다. 하나 이상의 가상 카메라는 도 6a 내지 도 7c를 참조하여 설명된 바와 같이 사용자 그래픽 표현을 가상 환경에 삽입하고 가상 환경과 조합하는 동안 생성될 수 있다.
일 실시예에서, 카메라에 의해 캡처된 사용자의 보기 시점은 사용자 그래픽 표현의 보기 시점 및 컴퓨터 비전을 사용하는 관련 가상 카메라(들)와 연관되어, 그에 따라 가상 카메라(들)를 스티어링한다. 또한, 가상 카메라는 예를 들어 사용자의 눈 및 머리의 틸팅 데이터 또는 머리 회전 데이터, 또는 이들의 조합을 추적 및 분석함으로써 자동으로 업데이트될 수 있다.
도 12는 가상 환경 내에서 가상으로 방송하기 위한 시스템(1200)의 개략도를 도시한다.
시스템(1200)은 하나 이상의 서버 컴퓨터를 포함할 수 있다. 도 12에 도시된 예시적인 시스템(1200)은 클라이언트 장치(1210) 간의 데이터 교환을 관리하는 데이터 교환 관리 모듈(1208)을 구현하는 명령 및 데이터를 포함하는 메모리(1206) 및 적어도 하나의 프로세서(1204)를 포함하는 적어도 하나의 미디어 서버 컴퓨터(1202)를 포함한다. 시스템(1200)은 적어도 하나의 가상 환경(1212) 내에 위치되고 적어도 하나의 가상 환경(1212) 내에서 멀티미디어 스트림을 캡처하도록 구성된 가상 방송 카메라(1214)를 포함하는 적어도 하나의 미디어 서버 컴퓨터(1202)에 연결된 적어도 하나의 가상 환경(1212)을 더 포함한다. 적어도 하나의 가상 환경(1212)은 네트워크를 통해 적어도 하나의 미디어 서버 컴퓨터(1202)에 연결된 적어도 하나의 전용 서버 컴퓨터에 의해 호스팅될 수도 있고, 또는 피어-투-피어 인프라에서 호스팅되고 적어도 하나의 미디어 서버 컴퓨터(1202)를 통해 중계될 수 있다. 멀티미디어 스트림은 적어도 하나의 클라이언트 장치(1210)에 브로드캐스팅하기 위해 적어도 하나의 미디어 서버 컴퓨터(1202)로 전송된다. 시스템(1200)은 적어도 하나의 클라이언트 장치(1210)의 사용자(1218)로부터 라이브 피드 데이터를 획득하고, 적어도 하나의 클라이언트 장치(1210)를 통해 사용자로부터 적어도 하나의 미디어 컴퓨터(1202)로 라이브 피드 데이터를 전송하는 적어도 하나의 카메라(1216)를 더 포함한다. 적어도 하나의 미디어 컴퓨터(1202)에 의해 수신된 라이브 피드 데이터는 도 6a-7c를 참조하여 개시된 바와 같이 복수의 이미지 처리 조합을 통해 생성될 수 있다.
적어도 하나의 가상 방송 카메라(1214)는 적어도 하나의 미디어 서버 컴퓨터(1202)로부터의 데이터 교환 관리에 기초하여 대응하는 멀티미디어 스트림을 수신 클라이언트 장치(1210)로 방송하기 위해 멀티미디어 스트림을 적어도 하나의 미디어 서버 컴퓨터(1202)로 전송한다. 멀티미디어 스트림은 대응하는 디스플레이를 통해 적어도 하나의 클라이언트 장치(1210)의 사용자(1218)의 대응하는 사용자 그래픽 표현(1220)에 디스플레이된다. 데이터 교환 관리 모듈(1208)에 의한 클라이언트 장치(1210) 간의 데이터 교환 관리는 인커밍 멀티미디어 스트림을 분석하는 것 및 아웃바운드 멀티미디어 스트림을 평가 및 포워딩하는 것을 포함한다.
일부 실시예에서, 적어도 하나의 미디어 서버 컴퓨터(1202)는 아웃바운드 멀티미디어 스트림을 포워딩할 때, SFU(Selective Forwarding Unit), TURN(Traversal Using Relay NAT), SAMS(Spatially Analyzed Media Server) 또는 다른 적절한 멀티미디어 서버 라우팅 토폴로지, 또는 미디어 처리 및 포워딩 서버 토폴로지, 또는 다른 적절한 서버 토폴로지를 포함하는 라우팅 토폴로지를 활용한다. 또 다른 실시예에서, 적어도 하나의 미디어 서버 컴퓨터(1202)는 미디어 프로세싱 토폴로지를 사용할 때, 멀티미디어 스트림을 디코딩, 결합, 개선, 혼합, 향상, 증강, 컴퓨팅, 조작 및 인코딩하도록 구성된다. 또 다른 실시예에서, 적어도 하나의 미디어 서버 컴퓨터(1202)는 포워딩 서버 토폴로지를 이용할 때, MCU(Multipoint Control Units), 클라우드 미디어 믹서, 및 클라우드 3D 렌더러 중 하나 이상을 활용한다.
일부 실시예에서, 인커밍 멀티미디어 스트림은 사용자 우선순위 데이터 및 거리 관계 데이터를 포함하고, 사용자 우선순위 데이터는 인커밍 멀티미디어 스트림의 소스에 더 가까운 사용자 그래픽 표현에 대한 더 높은 우선순위 점수 및 인커밍 멀티미디어 스트림의 소스로부터 더 멀리 떨어진 사용자 그래픽 표현에 대한 더 낮은 우선순위 점수를 포함한다. 일 실시예에서, 적어도 하나의 클라이언트 장치(1210) 및/또는 방송 카메라(1214)에 의해 적어도 하나의 미디어 서버로 전송되는 멀티미디어 스트림은 대응하는 사용자 그래픽 표현(1202)과 멀티미디어 스트림 사이의 거리 관계 및 사용자 우선순위와 관련된 데이터를 포함하는데, 이는 메타 데이터, 또는 우선 순위 데이터, 또는 데이터 클래스, 또는 공간 구조 데이터, 또는 3차원 위치, 또는 방향 또는 이동 정보, 또는 이미지 데이터, 또는 미디어 데이터, 및 스케일러블 비디오 코덱 기반 비디오 데이터, 또는 이들의 조합을 포함한다. 또 다른 실시예에서, 우선순위 데이터는 가상 멀티미디어 스트림 소스(1224)에 더 가까운 사용자에 대한 더 높은 우선순위 점수 및 가상 멀티미디어 스트림 소스(1224)로부터 더 먼 사용자에 대한 더 낮은 우선순위 점수를 포함한다. 또 다른 실시예에서, 아웃바운드 멀티미디어 스트림의 포워딩은 사용자 우선순위 데이터 및 거리 관계 데이터에 기초한다. 일 실시예에서, 사용자 우선순위 및 거리 관계 데이터에 기초하여 미디어 서버에 의해 구현된 아웃바운드 멀티미디어 스트림의 포워딩은 대역폭을 최적화하는 것 및 하나 이상의 수신 클라이언트 장치에 대한 리소스 활용을 계산하는 것을 포함한다.
일부 실시예에서, 적어도 하나의 가상 방송 카메라(1214)는 적어도 하나의 가상 환경(1212) 내에서 멀티미디어 스트림을 방송하도록 구성된 가상 방송 카메라(1214)로서 적어도 하나의 가상 환경(1212)에서 가상으로 보여진다. 가상 방송 카메라(1214)는 가상 멀티미디어 스트림 소스(1224)에 가깝게 위치될 수 있고 또한 가상 환경(1212) 내에서 이동할 수 있다. 다른 실시예에서, 가상 방송 카메라(1214)는 가상 환경에 액세스하는 클라이언트 장치(1210)를 통해 관리될 수 있고, 가상 환경에서 업데이트되는 카메라의 시점을 조종하도록 구성될 수 있고, 업데이트된 시점을 가상 방송 카메라(1214)와 연관된 적어도 하나의 클라이언트 장치에 방송하도록 구성될 수 있다.
일부 실시예에서, 가상 멀티미디어 스트림 소스(1224)는 패널, 연설, 회의, 프레젠테이션, 웨비나, 엔터테인먼트 쇼, 스포츠 경기 및 공연 중 하나 이상을 포함하는 라이브 가상 이벤트를 포함하며, 여기서 (예를 들어, 그들의 대응하는 카메라(1216)에 기록되는 동안 그들의 집에서) 원격으로 말하는 실제 화자의 복수의 사용자 그래픽 표현은 가상 환경(1212) 내에 배치된다.
일부 실시예에서, 멀티미디어 스트림은 클라이언트 또는 클라우드 컴퓨터에서 렌더링되는 웹 브라우저에서 실시간 3D 뷰로서 보여지거나 또는 적절한 비디오 플랫폼(예컨대, 유튜브(YouTube™) 라이브, 트위터(Twitter™), 페이스북(Facebook™) 라이브, 줌(Zoom™ 등)으로 라이브로 시청되도록 스트리밍될 수 있다.
도 12에 도시된 예에서, 사용자 A-C는 그들의 대응하는 클라이언트 장치를 통해 가상 환경(1212)에 액세스하고, 여기서 각 사용자 A-C는 본 개시의 실시예와 관련하여 설명된 바와 같이, 사용자 그래픽 표현 A-C의 생성 및 가상 환경(1212)으로의 삽입 및 결합에 사용될 수 있는, 각 사용자 A-C에 대응하는 멀티미디어 스트림을 전송하는 카메라(1216)를 갖는다. 따라서, 가상 환경(1212)에서, 각 사용자 A-C는 대응하는 사용자 그래픽 표현 A-C를 갖는다. 적어도 하나의 카메라(1216)에 의해 적어도 하나의 클라이언트 장치(1210)를 통해 전송되는 멀티미디어 스트림, 및 적어도 하나의 방송 카메라(1214)에 의해 적어도 하나의 미디어 서버(1202)로 전송되는 멀티미디어 스트림은 사용자 우선 순위 및 해당 사용자 그래픽 표현과 멀티미디어 스트림 간의 거리 관계와 관련된 데이터를 포함한다. 이 데이터는 예를 들어 메타 데이터, 우선 순위 데이터, 데이터 클래스, 공간 구조 데이터, 3차원 위치, 방향 또는 이동 정보, 이미지 데이터, 미디어 데이터, 스케일러블 비디오 코덱 기반 비디오 데이터 등을 포함한다. 이 데이터는 데이터 교환 관리 모듈(1208)에 의해 클라이언트 장치(1210) 사이의 데이터 교환을 관리하는데 사용될 수 있으며, 이는 인커밍 멀티미디어 스트림을 분석 및 최적화하고 아웃바운드 멀티미디어 스트림의 포워딩을 평가 및 최적화하는 것을 포함한다.
따라서, 예를 들어, 사용자 그래픽 표현 A이 가상 환경(1212)에서 가상 멀티미디어 스트림 소스(1224)에 더 가까울 때, 아웃바운드 미디어 스트림의 포워딩은 예를 들어 사용자 그래픽 표현 B 및 C에 제공되는 것보다 사용자 그래픽 표현 A에 대하여 더 높은 해상도를 갖는 이미지를 포함하도록 최적화될 수 있다. 멀티미디어 스트림은 예를 들어 그들의 클라이언트 장치(1210)를 통해 그들의 사용자 그래픽 표현(1222)을 통해 사용자에 의해 가상 환경(1212) 내에서 1인칭으로 보여질 수 있다. 일부 예에서, 멀티미디어 스트림은 클라이언트 또는 클라우드 컴퓨터에서 렌더링되는 웹 브라우저에서 실시간 3D 뷰로서 보여진다. 사용자는 이벤트(예컨대, 웨비나, 회의, 패널, 연설 등)의 멀티미디어 스트림을 클라이언트 또는 클라우드 컴퓨터에서 렌더링되는 또는 적절한 비디오 플랫폼 및/또는 소셜 미디어에서 라이브로 시청되도록 스트리밍될 수 있는 웹 브라우저에서 실시간 3D 뷰로서 볼 수 있다.
도 13은 가상 환경 내에서 애플리케이션을 전달하기 위한 시스템(1300)의 개략도를 도시한다.
시스템(1300)은 애플리케이션 모듈(1310)에 연결된 적어도 하나의 가상 환경(1308)을 구현하는 명령어 및 데이터를 포함하는 메모리(1306) 및 적어도 하나의 프로세서(1304)를 포함하는 적어도 하나의 클라우드 서버 컴퓨터(1302)를 포함한다. 애플리케이션 모듈(1310)은 하나 이상의 설치된 애플리케이션(1312) 및 다중 사용자 상호작용을 위한 대응하는 애플리케이션 규칙(1314)을 포함한다. 클라이언트 장치(1318)를 통한 가상 환경 호스트(1316)에 의한 선택에 응답하여, 하나 이상의 설치된 애플리케이션(1312)은 가상 환경(1302)의 세션 동안 디스플레이되고 활성화되어, 가상 환경(1308) 내의 가상 환경 호스트 사용자 그래픽 표현(1320) 및 임의의 참가자 사용자 그래픽 표현(1322)이 대응하는 클라이언트 장치(1318)를 통해 하나 이상의 설치된 애플리케이션(1312)과 상호작용하는 것을 가능하게 한다. 적어도 하나의 클라우드 서버 컴퓨터(1302)는 애플리케이션 모듈(1310)의 다중 사용자 상호작용을 위한 애플리케이션 규칙(1314)에 따라 하나 이상의 설치된 애플리케이션(1312)과의 수신된 사용자 상호작용을 관리 및 처리한다. 또한, 적어도 하나의 클라우드 서버 컴퓨터(1302)는 가상 환경(1308)에서 다중 사용자 세션을 수립하기 위해 각 클라이언트 장치(1318)에 따라 처리된 상호작용을 포워딩하여, 다중 사용자 상호작용 애플리케이션 규칙(1314)에 따라 공유 경험을 가능하게 한다.
일부 실시예에서, 다중 사용자 상호작용 애플리케이션 규칙(1314)은 네트워크를 통해 적어도 하나의 클라우드 서버 컴퓨터(1302)에 연결할 수 있는 하나 이상의 개별 애플리케이션 서버에 저장 및 관리된다.
일부 실시예에서, 하나 이상의 애플리케이션은 애플리케이션 라이브러리로부터 이용가능한 애플리케이션 설치 패키지로부터 설치되어, 대응하는 애플리케이션 프로그래밍 인터페이스를 통해 애플리케이션 서비스를 프로비저닝한다. 또 다른 실시예에서, 애플리케이션 라이브러리는 맥락에 따라 필터링된다. 일 실시예에서, 컨텍스트 필터링은 특정 컨텍스트에 대한 관련 애플리케이션만을 제공하도록 설계된다. 예를 들어, 호스트(1316)는 특정 컨텍스트(예를 들어, 학습, 엔터테인먼트, 스포츠, 독서, 구매, 날씨, 작업 등)와 관련된 애플리케이션을 찾기 위해 애플리케이션 라이브러리(예를 들어, 애플리케이션 스토어)를 맥락적으로 필터링할 수 있고, 애플리케이션 모듈(1310)에 설치할 하나의 관심 애플리케이션을 선택할 수 있다. 또 다른 실시예에서, 애플리케이션 라이브러리는 하나 이상의 제3자 서버 컴퓨터에서 호스팅될 수 있고, 또는 적어도 하나의 클라우드 서버 컴퓨터(1302)에서 호스팅된다.
일부 실시예에서, 하나 이상의 설치된 애플리케이션은 해당 클라이언트 장치에 설치된 가상 디스플레이 애플리케이션과 공유되고 그것을 통해 볼 수 있다. 일 실시예에서, 설치 및 활성화 시, 하나 이상의 설치된 애플리케이션(1312)은 대응하는 클라이언트 장치(1318)에 설치된 가상 디스플레이 애플리케이션(1324)과 공유되고 그것을 통해 보여진다. 가상 디스플레이 애플리케이션(1324)은 애플리케이션 라이브러리로부터 하나 이상의 설치된 애플리케이션(1312)을 수신하고, 그들의 대응하는 클라이언트 장치(1318)를 통해 가상 환경(1308) 내의 미팅 호스트 사용자 그래픽 표현(1320) 및 다른 참가자 사용자 그래픽 표현(1322)에 디스플레이하기 위해 하나 이상의 선택된 설치된 애플리케이션(1312)을 발행하도록 구성될 수 있다. 가상 디스플레이 애플리케이션(1324)은 설치된 애플리케이션(1312)을 수신하고 디스플레이하도록 구성될 수 있는 일종의 온라인 또는 설치된 파일 뷰어 애플리케이션일 수 있다.
일부 실시예에서, 애플리케이션 모듈(1310)은 설치된 애플리케이션(1312)으로부터 가상 환경의 사용자 그래픽 표현(1322)으로 콘텐츠를 디스플레이하는 가상 환경 내의 2D 스크린 또는 3D 볼륨 애플리케이션 모듈 그래픽 표현(1326)으로서 표현된다. 추가 실시예에서, 가상 디스플레이 애플리케이션(1324)은 설치된 애플리케이션으로부터 가상 환경(1308)의 사용자 그래픽 표현으로 콘텐츠를 표시하는 2D 스크린 또는 3D 볼륨으로 표현된다.
일부 실시예에서, 하나 이상의 애플리케이션(1312)은 다중 사용자 세션이 발생하기 이전에 또는 동시에 가상 환경(1308) 내부에 직접 설치된다. 다른 실시예에서, 하나 이상의 애플리케이션(1312)은 다중 사용자 세션을 시작하기 전에 가상 환경 설정 도구의 사용을 통해 설치된다.
일부 실시예에서, 다중 사용자 상호작용을 위한 애플리케이션 규칙 중 일부는 동기식 상호작용, 또는 비동기식 상호작용, 또는 이들의 조합을 정의할 수 있으며, 이에 따라 사용자 상호작용 및 하나 이상의 애플리케이션의 각각의 업데이트된 뷰를 업데이트한다. 동기 및 비동기 상호작용 모두는 다중 사용자 상호작용 애플리케이션 규칙(1314)을 통해 구성될 수 있고, 적어도 하나의 서버 컴퓨터(1302)를 통한 병렬 처리를 통해 또는 적어도 설치된 애플리케이션 (1312)과의 각각의 사용자 상호작용을 처리하도록 전용된 개별 서버 컴퓨터를 통해 활성화될 수 있다.
예를 들어, 호스트(1316)가 교사인 경우, 교사는 사용자에게 책 내용을 디스플레이하는 워크북 애플리케이션을 선택할 수 있다. 교사는 워크북을 편집할 수 있고, 반면 학생들은 그들의 가상 디스플레이 애플리케이션(1324)을 통해 동기식 상호작용 및 각각의 업데이트된 뷰를 사용하도록 선택한 때 교사에 의해 편집된 동일한 워크북을 볼 수 있고, 또는 비동기식 상호작용을 선택한 때 교사가 편집한 내용이 없는 동일한 워크북을 볼 수 있다. 다른 예에서, 복수의 슬라이드를 갖는 프리젠테이션 파일을 포함하는 프리젠테이션 애플리케이션에서, 비동기식 상호작용은 각 사용자가 개별 슬라이드를 비동기식으로 보는 것을 가능하게 할 수 있다. 또 다른 예에서, 교육 애플리케이션의 경우, 학생이 테스트 받는 동안 심장 해부학이 제시되며, 여기서 학생의 상호작용은 학생이 수행하는 상호작용을 다른 학생들이 목격하고 관찰할 수 있도록 동기식이다. 다른 예에서, 교사는 화이트보드에 글을 쓸 수 있으며, 이는 학생들이 그들의 가상 디스플레이 애플리케이션을 통해 화이트보드에 쓰여진 텍스트를 동기적으로 볼 수 있게 해준다. 다른 예에서, 비디오 플레이어 애플리케이션은 모든 학생에게 동기식으로 비디오를 디스플레이할 수 있다.
일부 예시적인 실시예에서, 가상 환경(1308)은 교실, 또는 사무실 공간, 또는 회의실, 또는 회의실, 또는 강당, 또는 극장이다.
도 14는 일 실시예에 따른, 도 13에 도시된 가상 환경 내에서 애플리케이션을 전달하기 위한 시스템(1300)에 기초한 가상 환경(1308)의 개략도를 도시한다.
가상 환경(1308)은 가상 환경(1308)의 호스트(1316)에 의해 선택된 적어도 하나의 설치된 애플리케이션(1312)을 포함하는 애플리케이션 모듈 그래픽 표현(1326), 및 그들의 대응하는 가상 디스플레이 애플리케이션(1324)을 통해 설치된 애플리케이션(1312)을 보고 상호작용하는 2명의 사용자 A-B를 포함한다. 이해될 수 있는 바와 같이, 사용자 A는 가상 디스플레이 애플리케이션(1324)을 통해 책 애플리케이션의 특정 페이지(예를 들어, 페이지 1)를 볼 수 있으며, 이는 설치된 애플리케이션(1312)의 동기적 상호작용 및 관리를 나타내는 애플리케이션 모듈 그래픽 표현(1326)을 통해 호스트(1316)에 의해 선택된 것과 동일할 수 있다. 한편, 가상 디스플레이 애플리케이션(1324)을 통해 설치된 애플리케이션(1312)의 비동기적 상호작용 및 관리를 통해 사용자 B는 호스트(1316) 및 사용자 A와 다른 페이지를 볼 수 있다.
도 15는 일 실시예에 따른 가상 환경 내에서 가상 컴퓨팅 리소스를 프로비저닝하기 위한 시스템(1500)의 개략도를 도시한다.
시스템(1500)은 적어도 하나의 가상 환경(1508)과 연관된 적어도 하나의 가상 컴퓨터(1510), 및 적어도 하나의 가상 환경(1508)을 구현하는 데이터 및 명령어를 포함하는 메모리(1506) 및 적어도 하나의 프로세서(1504)를 포함하는 적어도 하나의 클라우드 서버 컴퓨터(1502)를 포함하는 적어도 하나의 서버 컴퓨터를 포함하는 서버 컴퓨터 시스템을 포함한다. 적어도 하나의 가상 컴퓨터(1510)는 서버 컴퓨터 시스템으로부터 가상 컴퓨팅 리소스를 수신한다. 일 실시예에서, 적어도 하나의 가상 컴퓨터는 가상 환경(1508)에서 대응하는 그래픽 표현(1512)을 갖는다. 그래픽 표현(1512)은 사용자와 가상 컴퓨터의 상호작용을 용이하게 하고 사용자 경험(예를 들어, 홈 오피스 경험)의 현실감을 증가시키는 것과 같은 추가 이점을 제공할 수 있다. 따라서, 일 실시예에서, 적어도 하나의 가상 컴퓨터는 가상 환경(1508) 내에 위치된 적어도 하나의 대응하는 연관된 그래픽 표현(1512)을 포함하고, 여기서 적어도 하나의 가상 컴퓨터(1510)는 적어도 하나의 클라우드 서버 컴퓨터(1502)로부터 가상 컴퓨팅 리소스를 수신한다. 시스템(1500)은 네트워크를 통해 적어도 하나의 서버 컴퓨터(1510)에 연결하는 적어도 하나의 클라이언트 장치(1514)를 더 포함한다. (예를 들어, 대응하는 그래픽 표현과 상호작용함으로써) 하나 이상의 가상 컴퓨터(1510)에 액세스하는 적어도 하나의 클라이언트 장치(1514)에 응답하여, 적어도 하나의 클라우드 서버 컴퓨터(1502)는 적어도 하나의 클라이언트 장치(1514)에 이용 가능한 가상 컴퓨팅 리소스의 적어도 일부를 프로비저닝한다.
일부 실시예에서, 가상 컴퓨팅 리소스는 대응하는 클라이언트 장치(1514)를 통해 적어도 하나의 가상 환경(1508) 내의 가상 컴퓨터(1512)의 하나 이상의 그래픽 표현에 액세스(예를 들어, 그래픽 표현과 상호작용)하는 사용자(1518)의 사용자 그래픽 표현(1516)에 의해 액세스되며, 그로 인해 대응하는 클라이언트 장치(1514)에 프로비저닝된다.
일부 실시예에서, 가상 컴퓨터 그래픽 표현(1512)은 사용자 그래픽 표현에 의한 액세스를 위해 가상 환경 내에 공간적으로 위치된다. 일 실시예에서, 가상 환경(1508)의 배열은 가상 환경(1508)의 컨텍스트 테마와 연관되며, 이는 교육, 회의, 작업, 쇼핑, 서비스, 사교 및 오락에 각각 사용하기 위한 가상 아이템, 가구, 평면도 등의 배열을 포함할 수 있다. 또 다른 실시예에서, 하나 이상의 가상 컴퓨터 그래픽 표현은 하나 이상의 사용자 그래픽 표현(1516)에 의한 액세스를 위해 가상 환경(1508)의 배열 내에 위치된다. 예를 들어, 가상 컴퓨터는 가상 컴퓨터와 연관된 리소스를 사용하는 기능을 필요하거나 그것으로부터 이점을 얻을 수 있는 활동(예컨대, 가상 교실, 실험실 또는 사무실에서의 프로젝트 작업)에 참여할 때, 사용자 그래픽 표현(1516)이 액세스할 수 있는 가상 룸에 위치할 수 있다.
일부 실시예에서, 서버 컴퓨터 시스템은 가상 환경에 액세스하지 않고도 적어도 하나의 클라이언트 장치에 로그인함으로써 적어도 하나의 클라우드 서버 컴퓨터에 액세스하는 사용자에 응답하여, 적어도 하나의 클라이언트 장치에 가상 컴퓨팅 리소스의 적어도 일부를 프로비저닝하도록 구성된다. 예시적인 시나리오에서, 가상 컴퓨팅 리소스는 네트워크를 통해 적어도 하나의 클라우드 서버 컴퓨터(1502)에 연결하는 클라이언트 장치(1514)에 물리적으로 로그인함으로써 적어도 하나의 클라우드 서버 컴퓨터(1502)에 액세스하는 사용자(1518)에 의해 액세스되고, 이는 가상 환경에 액세스하지 않고 클라이언트 장치(1514)에 대한 가상 컴퓨팅 자원의 프로비저닝을 트리거한다. 예를 들어, 사용자(1518)는 자신의 홈 컴퓨터로부터 클라우드 서버 컴퓨터(1502)에 로그인하고 가상 컴퓨터(1510)에 액세스하여 그에 따라 가상 컴퓨팅 리소스를 수신할 수 있다. 다른 예에서, 사용자(1518)는 가상 컴퓨터(1510)에 액세스하고 그에 따라 가상 컴퓨팅 리소스를 수신하기 위해 자신의 작업 컴퓨터로부터 클라우드 서버 컴퓨터(1502)에 로그인할 수 있다.
일부 실시예에서, 가상 컴퓨팅 리소스의 적어도 하나의 부분은 관리 도구와 함께 클라이언트 장치에 할당된다. 따라서, 연결된 모든 가상 컴퓨터를 포함하는 가상 인프라는 독점적인 관리자 권한(예컨대, 가상 환경을 사용하는 조직의 IT 팀에 제공됨)에 따라 관리자 옵션을 사용하여 관리할 수 있다.
일부 실시예에서, 가상 컴퓨팅 자원의 프로비저닝은 저장된 사용자 프로파일에 기초하여 수행된다. 일 실시예에서, 가상 컴퓨팅 리소스의 할당은 우선순위 데이터, 보안 데이터, QOS, 대역폭, 메모리 공간, 또는 컴퓨팅 파워, 또는 이들의 조합을 포함하는, 사용자 프로파일과 연관되고 그것에 할당된 파라미터 중 하나 이상을 포함하는 저장된 사용자 프로파일에 기초하여 수행된다. 예를 들어, 집에서 작업 가상 컴퓨터에 액세스하는 사용자는 프로필과 관련된 특정 가상 컴퓨팅 리소스를 사용자에게 제공하도록 구성된 개인 프로필을 가질 수 있다.
일부 실시예에서, 각각의 가상 컴퓨터는 애플리케이션 라이브러리로부터 이용가능한 다운로드 가능한 애플리케이션이다.
도 16은 일 실시예에 따른, 사용자 그래픽 표현 간의 애드혹 가상 통신을 가능하게 하는 시스템(1600)의 개략적인 도면을 도시한다.
시스템(1600)은 가상 환경(1608)을 구현하는 데이터 및 명령어를 저장하는 메모리(1606) 및 적어도 하나의 프로세서(1604)를 포함하는 하나 이상의 클라우드 서버 컴퓨터(1602)를 포함한다. 가상 환경(1608)은 가상 환경(1608)에서 접근하는 적어도 하나의 사용자 그래픽 표현 및 적어도 하나의 타겟 사용자 그래픽 표현이 애드혹 통신 채널을 열도록 하고, 가상 환경(1608) 내의 사용자 그래픽 표현 간의 애드혹 통신 채널한 통해 애드혹 대화를 가능하게 하도록 구성된다. 도 16에 도시된 예에서, 시스템은 대응하는 사용자 그래픽 표현을 통해 적어도 하나의 가상 환경에 액세스하고 네트워크(1612)를 통해 하나 이상의 클라우드 서버 컴퓨터(1602)에 연결되는 둘 이상의 클라이언트 장치(1610)를 더 포함한다. 가상 환경(1608)은 접근하는 적어도 하나의 사용자 그래픽 표현(1614) 및 적어도 하나의 타겟 사용자 그래픽 표현(1616)이 대응하는 사용자(1620)로부터 애드혹 통신 채널(1618)을 열 수 있게 하여, 가상 환경(1608) 내에서 사용자 그래픽 표현 사이의 애드혹 대화를 가능하게 한다.
일부 실시예에서, 애드혹 통신 채널(1618)을 여는 것은 사용자 그래픽 표현 사이의 거리, 위치 및 방향, 또는 애드혹 통신에 대한 현재 가용성 상태, 프라이버시 설정, 또는 상태 구성, 또는 이들의 조합에 기초하여 수행된다.
일부 실시예에서, 애드혹 대화는 두 사용자 그래픽 표현 영역이 위치한 가상 환경(1608) 내의 장소에서 수행된다. 예를 들어, 접근하는 사용자 그래픽 표현(1614)이 라운지 룸 또는 사무실 공간의 특정 영역에서 타겟 사용자 그래픽 표현(1614)을 만나는 경우, 애드혹 통신은 두 사용자가 위치를 변경할 필요 없이 라운지 룸 또는 사무실 공간의 특정 영역 내에서 대화를 유지할 수 있도록 개방될 수 있다. 또 다른 실시예에서, 애드혹 대화는 가상 환경에서 현재 보기 시점을 사용하여 수행된다. 위의 예에서, 애드혹 통신이 개방되어 두 사용자가 보기 시점을 변경하지 않고 대화를 유지할 수 있다. 다른 실시예에서, 애드혹 대화는 애드혹 대화가 발생하는 동일하거나 다른 연결된 가상 환경 내에서 보기 시점, 위치 또는 이들의 조합의 선택적 변경을 가능하게 한다.
일부 실시예에서, 하나 이상의 클라우드 서버 컴퓨터는 애드혹 통신이 가능하다는 것을 시그널링하는 가상 환경에서의 시각적 피드백을 생성하도록 추가로 구성된다. 일 실시예에서, 사용자 그래픽 표현은 애드혹 통신이 가능하다는 시각적 피드백 신호를 수신하여 애드혹 통신 채널의 개방을 트리거하고, 사용자 그래픽 표현 사이의 애드혹 대화의 시작을 시그널링한다.
일부 실시예에서, 애드혹 대화는 사용자 그래픽 표현으로부터 디스플레이되는 실시간 오디오 및 비디오를 송수신하는 것을 포함한다.
일부 실시예에서, 접근하는 사용자 그래픽 표현(1614)에 대응하는 사용자는 애드혹 통신 채널(1618)을 열기 전에 타겟 사용자 그래픽 표현(1616)을 선택하고 클릭한다.
일부 실시예에서, 하나 이상의 클라우드 서버 컴퓨터는 수락된 초대에 응답하여 애드혹 통신 채널을 개방하도록 추가로 구성된다. 예를 들어, 접근하는 사용자 그래픽 표현(1614)에 대응하는 사용자는 타겟 사용자 그래픽 표현(1616)에 애드혹 통신 참여 초대를 더 보내고, 애드혹 통신 채널(1618)을 열기 전에 타겟 사용자 그래픽 표현(1614)으로부터 초대 승인을 수신한다.
일부 실시예에서, 애드혹 통신 채널(1618)은 적어도 하나의 클라우드 서버 컴퓨터를 통해 또는 P2P 통신 채널로서 활성화된다.
도 17은 일 실시예에 따른 가상 환경에서 상호작용을 가능하게 하는 방법(1700)의 일 실시예를 도시한다.
본 개시에 따른 가상 환경에서 상호작용을 가능하게 하는 방법(1700)은 적어도 하나의 프로세서를 포함하는 하나 이상의 클라우드 서버 컴퓨터의 메모리에 적어도 하나의 가상 환경을 포함하는 가상 환경 플랫폼을 제공함으로써 단계(1702 및 1704)에서 시작한다.
이 방법은 적어도 하나의 카메라로부터 클라이언트 장치의 사용자로부터 라이브 데이터 피드를 수신한 다음 단계(1706 및 1708)에서 볼 수 있듯이 라이브 데이터 피드로부터 사용자 그래픽 표현을 생성한다. 그 다음, 방법(1700)은 사용자 그래픽 표현을 단계(1710)에서 볼 수 있듯이 가상 환경의 3차원 좌표에 삽입한다.
그 후, 단계(1712)에서, 방법은 라이브 데이터 피드로부터 가상 환경 내의 사용자 그래픽 표현을 업데이트한다. 마지막으로, 단계(1714)에서, 방법은 가상 환경 내에 위치한 대응하는 그래픽 표현을 통해 적어도 하나의 가상 환경에서의 상호작용으로부터 생성된 데이터를 처리하고, 단계(1716)에서 종료한다.
도 18은 일 실시예에 따른 이미지 처리 방법(1800)의 일 실시예를 도시한다.
방법(1800)은 적어도 하나의 클라우드 서버 컴퓨터 데이터 및 이미지 처리 기능을 구현하는 명령을 메모리에 제공함으로써 단계(1802 및 1804)에서 시작된다. 단계(1806)에서, 방법(1800)은 적어도 하나의 대응하는 클라이언트 장치의 적어도 한 사용자로부터 라이브 데이터 피드를 적어도 하나의 카메라로부터 획득함으로써 계속된다. 그 다음, 프로세스가 단계(1810)에서 종료되기 전, 단계(1808)에서, 방법(1800)은 하나 이상의 클라우드 서버 컴퓨터 및 적어도 하나의 클라이언트 장치의 하나 이상의 이미지 처리 조합(예를 들어, 도 6a 내지 도 7c의 이미지 처리 조합)에 의해 사용자 그래픽 표현을 생성함으로써 진행한다. 하나 이상의 클라우드 서버 컴퓨터 및 적어도 하나의 클라이언트 장치는 P2P 측 및 클라이언트-서버 측을 포함하는 본 개시로부터의 하이브리드 시스템 아키텍처(예를 들어, 도 3의 하이브리드 시스템 아키텍처(300))를 통해 상호작용할 수 있다.
도 19는 일 실시예에 따른 사용자 그래픽 표현 기반 사용자 인증 방법(1900)을 도시한다.
방법(1900)은 하나 이상의 클라우드 서버 컴퓨터의 메모리에 사용자 계정 및 대응하는 사용자 그래픽 표현과 연관된 사용자 데이터를 저장하는 사용자 데이터베이스 및 사용자 데이터베이스에 연결된 얼굴 스캐닝 및 인증 모듈을 제공함으로써 단계(1902 및 1904)에서 시작된다.
방법(1900)은 클라이언트 장치로부터 사용자 계정에 대한 액세스 요청을 수신함으로써 단계(1906)에서 계속되고, 그 다음 단계(1908)에서 적어도 하나의 클라이언트 장치 및/또는 하나 이상의 클라우드 서버 컴퓨터에 연결될 수 있는 적어도 하나의 카메라로부터 수신된 이미지를 사용한 얼굴 스캐닝 및 인증 모듈을 통해 적어도 하나의 클라이언트 장치의 사용자의 얼굴 스캐닝을 수행함으로써 계속된다. 검사(1910)에서, 방법(1900)은 사용자 계정과 연관된 사용자 데이터의 일치에 대해 사용자 데이터베이스를 검사함으로써 진행된다. 사용자 계정이 이용 가능한 경우, 방법(1900)은 사용자 계정에 대한 액세스와 함께 대응하는 사용자 그래픽 표현을 사용자에게 제공함으로써 단계(1912)에서 진행한다. 부정적인 경우에, 사용자 계정이 이용가능하지 않다면, 방법(1900)은 데이터로부터, 사용자 데이터베이스에 저장된 새로운 사용자 계정 및 사용자 계정에 대한 액세스와 함께 새로운 사용자 그래픽 표현을 생성함으로써 단계(1914)에서 진행할 수 있다. 프로세스는 단계(1916)에서 종료될 수 있다.
도 20은 일 실시예에 따른 가상 환경 내에서 가상으로 방송하기 위한 방법(2000)의 블록도를 도시한다.
방법(2000)은 적어도 하나의 미디어 서버의 메모리에, 클라이언트 장치들 사이의 데이터 교환을 관리하는 클라이언트 장치 데이터 교환 관리 모듈을 구현하는 명령 및 데이터를 제공함으로써 단계(2002)에서 시작한다. 방법(2000)은 적어도 하나의 미디어 서버에 연결된 적어도 하나의 가상 환경 내에 위치된 가상 방송 카메라에 의해 멀티미디어 스트림을 캡처함으로써 단계(2004)에서 계속된다.
단계(2006)에서, 방법(2000)은 멀티미디어 스트림을 적어도 하나의 클라이언트 장치에 방송하기 위해 적어도 하나의 미디어 서버에 전송함으로써 진행한다. 단계(2008)에서 방법(2000)은 적어도 하나의 클라이언트 장치를 통해 적어도 하나의 클라이언트 장치의 사용자로부터 적어도 하나의 카메라로부터 라이브 피드 데이터를 획득함으로써 계속된다.
단계(2010)에서, 방법은 적어도 하나의 가상 환경 내에서 들어오는 멀티미디어 스트림 및 사용자로부터의 라이브 피드 데이터를 분석 및 최적화하고 아웃바운드 멀티미디어 스트림의 전달을 평가 및 최적화하는 것을 포함하는 데이터 교환 관리를 수행함으로써 계속된다. 마지막으로, 단계(2012)에서, 방법(2000)은 데이터 교환 관리에 기초하여 대응하는 멀티미디어 스트림을 클라이언트 장치에 방송함으로써 종료되며, 여기서 멀티미디어 스트림은 적어도 하나의 클라이언트 장치의 사용자의 사용자 그래픽 표현에 디스플레이된다.
도 21은 일 실시예에 따른 가상 환경 내에서 애플리케이션을 전달하기 위한 방법(2100)의 블록도를 도시한다.
방법(2100)은 적어도 하나의 클라우드 서버 컴퓨터의 메모리에 적어도 하나의 가상 환경, 및 다중 사용자 상호작용을 위한 하나 이상의 설치된 애플리케이션 및 대응하는 애플리케이션 규칙을 포함하는 애플리케이션 모듈을 제공함으로써 단계(2102)에서 시작하며, 여기서 애플리케이션 모듈은 가상 환경 내에서 링크되고 볼 수 있다. 단계(2104)에서, 방법(2100)은 가상 환경 호스트로부터 선택 명령을 수신함으로써 진행한다. 그 다음, 단계(2106)에서, 방법(2100)은 가상 환경의 세션 동안 하나 이상의 설치된 애플리케이션을 디스플레이 및 활성화함으로써 계속되고, 이는 가상 환경 호스트의 사용자 그래픽 표현 및 가상 환경 내의 임의의 참가자 사용자 그래픽 표현이 대응하는 클라이언트 장치를 통해 상호작용할 수 있게 한다.
단계(2108)에서, 방법(2100)은 하나 이상의 설치된 애플리케이션과의 사용자 상호작용을 수신함으로써 진행한다. 이어서, 방법(2100)은 단계(2110)에서 볼 수 있듯이 애플리케이션 모듈의 다중 사용자 상호작용을 위한 애플리케이션 규칙에 따라 하나 이상의 설치된 애플리케이션과의 사용자 상호작용을 관리 및 처리함으로써 계속된다. 마지막으로, 방법(2100)은 애플리케이션 규칙에 따라 공유 경험을 가능하게 하는 다중 사용자 세션을 설정하기 위해 각 클라이언트 장치에 따라 처리된 상호작용을 전달함으로써 단계(2112)에서 종료된다.
도 22는 일 실시예에 따른 가상 환경 내에서 가상 컴퓨팅 리소스를 프로비저닝하는 방법(2200)의 블록도를 도시한다.
방법(2200)은 적어도 하나의 클라우드 서버 컴퓨터의 메모리에 적어도 하나의 가상 컴퓨터, 및 가상 컴퓨터를 나타내는 하나 이상의 그래픽 표현을 포함하는 가상 환경을 제공함으로써 단계(2202)에서 시작한다. 이 방법은 가상 컴퓨터에 의해 적어도 하나의 클라우드 서버 컴퓨터로부터 가상 컴퓨팅 리소스를 수신함으로써 단계(2204)에서 계속된다. 그 다음, 단계(2206)에서, 방법은 적어도 하나의 클라이언트 장치로부터 하나 이상의 가상 컴퓨터에 대한 액세스 요청을 수신함으로써 진행된다. 마지막으로, 단계(2208)에서, 방법은 클라이언트 장치의 요구에 기초하여 이용 가능한 가상 컴퓨팅 자원의 일부로 적어도 하나의 클라이언트 장치를 프로비저닝함으로써 종료된다.
도 23은 사용자 그래픽 표현 간의 애드혹 가상 통신을 가능하게 하는 방법(2300)의 블록도를 도시한다.
방법(2300)은 적어도 하나의 프로세서를 포함하는 하나 이상의 클라우드 서버 컴퓨터의 메모리에 가상 환경을 제공함으로써 단계(2302)에서 시작한다. 그 다음, 단계(2304)에서, 방법은 대응하는 그래픽 표현을 통해 적어도 하나의 가상 환경에 액세스하는 둘 이상의 클라이언트 장치를 검출함으로써 계속되고, 여기서 클라이언트 장치는 네트워크를 통해 하나 이상의 클라우드 서버 컴퓨터에 연결된다. 마지막으로, 단계(2306)에서, 다른 사용자 그래픽 표현에 접근하는 적어도 하나의 사용자 그래픽 표현에 응답하여 방법(2300)은 임시 통신 채널을 개방하여 가상 환경에서 사용자 그래픽 표현 간의 애드혹 대화를 가능하게 함으로써 종료된다.
하나 이상의 컴퓨터로 하여금 본 명세서에 설명된 임의의 방법을 수행하게 하도록 구성된 명령을 저장한 컴퓨터 판독가능 매체가 또한 설명된다. 본 명세서에 사용된 바와 같이, "컴퓨터 판독 가능 매체"라는 용어는 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보를 저장할 수 있는 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성 및 착탈식 및 비착탈식 매체를 포함한다. 일반적으로, 여기에 설명된 컴퓨팅 장치의 기능은 C, C++, 코볼(COBOL), 자바(JAVA™), PHP, 펄(Perl), 파이썬(Python), 루비(Ruby), HTML, CSS, 자바스크립트(JavaScript), VB스크립트(VBScript), ASPX, C# 등과 같은 마이크로소프트.넷(Microsoft.NET™) 언어 등과 같은, 프로그래밍 언어로 작성될 수 있는, 소프트웨어 명령 또는 하드웨어로 구현된 컴퓨팅 로직으로 구현될 수 있다. 컴퓨팅 로직은 실행 가능한 프로그램으로 컴파일되거나 해석된 프로그래밍 언어로 작성될 수 있다. 일반적으로, 여기에 설명된 기능은 더 큰 처리 능력을 제공하기 위해 복제되거나, 다른 모듈과 병합되거나, 하위 모듈로 분할될 수 있는 논리 모듈로 구현될 수 있다. 컴퓨팅 로직은 임의의 유형의 컴퓨터 판독 가능 매체(예컨대, 메모리 또는 저장 매체와 같은 비일시적 매체) 또는 컴퓨터 저장 장치에 저장될 수 있고 하나 이상의 범용 또는 특수 목적 프로세서에 저장되고 실행될 수 있으며, 따라서 여기에 설명된 기능을 제공하도록 구성된 특수 목적 컴퓨팅 장치를 생성한다.
특정 실시예가 첨부 도면에 설명되고 도시되었지만, 그러한 실시예는 단지 예시적인 것이며 광범위한 발명을 제한하지 않으며, 다양한 다른 변형이 당업자에게 일어날 수 있으므로 본 발명은 도시되고 설명된 특정 구성 및 배열로 제한되지 않는다는 것을 이해해야 한다. 따라서, 이 설명은 제한하는 것이 아니라 예시적인 것으로 간주되어야 한다.

Claims (19)

  1. 공간 비디오 기반 가상 존재(presence)를 가능하게 하는 시스템으로서,
    적어도 하나의 가상 환경을 포함하는 가상 환경 플랫폼을 구현하는 데이터 및 명령을 저장하는 메모리 및 적어도 하나의 프로세서를 포함하는 하나 이상의 서버 컴퓨터;
    적어도 하나의 프로세서, 및 상기 적어도 하나의 프로세서에 의해 실행될 때 적어도 하나의 전송 클라이언트 장치로 하여금:
    2D 또는 3D 라이브 비디오 데이터 피드를 획득하고 그것의 배경 제거를 수행함으로써 사용자 실시간 3D 가상 컷아웃을 생성하고; 그리고
    적어도 하나의 수신 클라이언트 장치에 의한 프리젠테이션을 위해 상기 사용자 실시간 3D 가상 컷아웃을 전송하게 하도록 구성된 명령 및 데이터를 저장하는 메모리를 포함하는 적어도 하나의 전송 클라이언트 장치; 및
    적어도 하나의 프로세서, 및 상기 적어도 하나의 프로세서에 의해 실행될 때 적어도 하나의 수신 클라이언트 장치로 하여금:
    상기 사용자 실시간 3D 가상 컷아웃을 수신하고; 그리고
    상기 사용자 실시간 3D 가상 컷아웃을 상기 가상 환경에 삽입하고 그것과 결합하게 하도록 구성된 명령 및 데이터를 저장하는 메모리를 포함하는 적어도 하나의 수신 클라이언트 장치를 포함하고,
    상기 가상 환경은 상기 적어도 하나의 전송 클라이언트 장치 및 상기 적어도 하나의 수신 클라이언트 장치 및 대응하는 사용자 실시간 3D 가상 컷아웃들에 의해 공유되어, 상기 가상 환경 내에서 공간 비디오 기반 가상 존재를 갖는 다중 사용자 공유 경험을 가능하게 하는 것을 특징으로 하는 공간 비디오 기반 가상 존재를 가능하게 하는 시스템.
  2. 제 1 항에 있어서, 상기 데이터 및 명령은 또한 상기 적어도 하나의 전송 클라이언트 장치로 하여금 가상으로 배치되고 상기 사용자 실시간 3D 가상 컷아웃과 정렬된 정렬된 하나 이상의 가상 카메라를 사용하여 상기 적어도 하나의 전송 클라이언트 장치에 제공된 상기 가상 환경의 보기 관점을 설정하고 자동으로 업데이트하도록 하는 것을 특징으로 하는 공간 비디오 기반 가상 존재를 가능하게 하는 시스템.
  3. 제 2 항에 있어서, 상기 하나 이상의 가상 카메라의 정렬은 상기 사용자 실시간 3D 가상 컷아웃 앞에 있고 상기 사용자 실시간 3D 가상 컷아웃의 움직임을 추적하는 것을 특징으로 하는 공간 비디오 기반 가상 존재를 가능하게 하는 시스템.
  4. 제 3 항에 있어서, 상기 사용자 실시간 3D 가상 컷아웃의 방향은 사용자 눈및 머리 기울이기 데이터 및 머리 회전 데이터 중 하나 이상을 추적 및 분석함으로써 자동으로 업데이트되는 것을 특징으로 하는 공간 비디오 기반 가상 존재를 가능하게 하는 시스템.
  5. 제 3 항에 있어서, 상기 하나 이상의 가상 카메라는 눈높이에서 바깥쪽으로 향하고, 또는 상기 하나 이상의 가상 카메라는 두 눈높이에서 바깥쪽을 가리키는 눈당 하나씩의 2개의 가상 카메라를 포함하고, 또는 상기 하나 이상의 가상 카메라는 상기 사용자 실시간 3D 가상 컷아웃의 머리 위치 중심으로부터 바깥쪽을 가리키고, 또는 상기 하나 이상의 가상 카메라는 상기 사용자 실시간 3D 가상 컷아웃의 중심으로부터 바깥쪽을 가리키는 것을 특징으로 하는 공간 비디오 기반 가상 존재를 가능하게 하는 시스템.
  6. 제 1 항에 있어서, 상기 하나 이상의 서버 컴퓨터는 복수의 전송 클라이언트 장치의 인커밍 데이터를 관리, 분석 및 처리하고, 이러한 분석에서 복수의 수신 클라이언트 장치로의 데이터 스트림의 전송을 관리 또는 최적화하도록 구성된 공간 분석 미디어 서버를 포함하는 것을 특징으로 하는 공간 비디오 기반 가상 존재를 가능하게 하는 시스템.
  7. 제 6 항에 있어서, 상기 공간 분석 미디어 서버는:
    2 이상의 사용자 실시간 3D 가상 컷아웃 간의 거리가 변경되었음을 탐지한 것에 응답하여:
    상기 2 이상의 사용자 실시간 3D 가상 컷아웃 간의 거리 차이를 계산하고;
    상기 가상 환경 내의 각각의 사용자 실시간 3D 가상 컷아웃의 위치 및 방향 중 적어도 하나를 업데이트하고;
    각각의 사용자 실시간 3D 가상 컷아웃에 대해 서로에 대해 대응하는 보기 시점을 업데이트하고; 그리고
    각 사용자 실시간 3D 가상 컷아웃의 업데이트된 위치, 방향 및 대응하는 보기 시점을 대응하는 클라이언트 장치로 전송하도록
    더 구성된 것을 특징으로 하는 공간 비디오 기반 가상 존재를 가능하게 하는 시스템.
  8. 제 1 항에 있어서, 상기 적어도 하나의 전송 클라이언트 장치는 상기 사용자 실시간 3D 가상 컷아웃에 대한 추가 처리 또는 개선을 수행하도록 더 구성된 것을 특징으로 하는 공간 비디오 기반 가상 존재를 가능하게 하는 시스템.
  9. 제 1 항에 있어서, 상기 배경 제거는 인스턴스 분할 또는 의미론적 분할 중 하나 이상을 통해 이미지 분할을 적용하고 상기 전송 클라이언트 장치 또는 하나 이상의 서버 컴퓨터에 의해 심층 신경망을 사용하여 수행되는 것을 특징으로 하는 공간 비디오 기반 가상 존재를 가능하게 하는 시스템.
  10. 공간 비디오 기반 존재를 가능하게 하는 방법으로서,
    적어도 하나의 전송 클라이언트 장치에 의해, 2D 또는 3D 라이브 비디오 데이터 피드를 획득하는 단계;
    상기 2D 또는 3D 라이브 비디오 데이터 피드를 처리하는 단계로서, 상기 처리하는 단계는 사용자 실시간 3D 가상 컷아웃을 생성하기 위해 배경 제거를 수행하는 단계를 포함하는 것인, 상기 처리하는 단계;
    상기 사용자 실시간 3D 가상 컷아웃을 적어도 하나의 서버 컴퓨터에 의해 구현된 가상 환경에 삽입하고 그것과 결합시키도록 구성된 적어도 하나의 수신 클라이언트 장치에 의한 프레젠테이션을 위해 상기 사용자 실시간 3D 가상 컷아웃을 전송하는 단계를 포함하고,
    상기 가상 환경은 상기 적어도 하나의 전송 클라이언트 장치 및 상기 적어도 하나의 수신 클라이언트 장치 및 대응하는 사용자 실시간 3D 가상 컷아웃들에 의해 공유되어, 상기 가상 환경 내에서 가상 존재감을 갖는 다중 사용자 공유 경험을 가능하게 하는 것을 특징으로 하는 공간 비디오 기반 존재를 가능하게 하는 방법.
  11. 제 10 항에 있어서, 가상으로 배치되고 상기 사용자 실시간 3D 가상 컷아웃에 대해 정렬된 하나 이상의 가상 카메라를 사용하여 상기 적어도 하나의 전송 클라이언트 장치에 제공되는 상기 가상 환경의 보기 시점을 설정하고 자동으로 업데이트하는 단계를 더 포함하는 것을 특징으로 하는 공간 비디오 기반 존재를 가능하게 하는 방법.
  12. 제 11 항에 있어서, 상기 하나 이상의 가상 카메라의 정렬은 상기 사용자 실시간 3D 가상 컷아웃 앞에 있고 상기 사용자 실시간 3D 가상 컷아웃의 움직임을 추적하는 것을 특징으로 하는 공간 비디오 기반 존재를 가능하게 하는 방법.
  13. 제 12 항에 있어서, 사용자 눈 및 머리 기울이기 데이터 및 머리 회전 데이터 중 하나 이상을 추적 및 분석하여 상기 사용자 실시간 3D 가상 컷아웃의 방향을 업데이트하는 단계를 더 포함하는 것을 특징으로 하는 공간 비디오 기반 존재를 가능하게 하는 방법.
  14. 제 13 항에 있어서, 상기 하나 이상의 가상 카메라는 눈높이에서 바깥쪽으로 향하고, 또는 상기 하나 이상의 가상 카메라는 두 눈높이에서 바깥쪽을 가리키는 눈당 하나씩의 2개의 가상 카메라를 포함하고, 또는 상기 하나 이상의 가상 카메라는 상기 사용자 실시간 3D 가상 컷아웃의 머리 위치 중심으로부터 바깥쪽을 가리키고, 또는 상기 하나 이상의 가상 카메라는 상기 사용자 실시간 3D 가상 컷아웃의 중심으로부터 바깥쪽을 가리키는 것을 특징으로 하는 공간 비디오 기반 존재를 가능하게 하는 방법.
  15. 제 10 항에 있어서, 상기 적어도 하나의 서버 컴퓨터는 복수의 전송 클라이언트 장치의 인커밍 데이터를 관리, 분석 및 처리하고 그러한 분석에서 복수의 수신 클라이언트 장치로의 데이터 스트림 전송을 관리 또는 최적화하도록 구성된 공간 분석 미디어 서버인 것을 특징으로 하는 공간 비디오 기반 존재를 가능하게 하는 방법.
  16. 제 15 항에 있어서,
    2 이상의 사용자 실시간 3D 가상 컷아웃 간의 거리가 변경되었음을 탐지한 것에 응답하여, 상기 공간 분석 미디어 서버에 의해, 상기 2 이상의 사용자 실시간 3D 가상 컷아웃 간의 거리 차이를 계산하는 단계;
    상기 가상 환경 내의 각각의 사용자 실시간 3D 가상 컷아웃의 위치 및 방향 중 적어도 하나를 업데이트하는 단계;
    각각의 사용자 실시간 3D 가상 컷아웃에 대해 서로에 대해 대응하는 보기 시점을 업데이트하는 단계; 및
    각 사용자 실시간 3D 가상 컷아웃의 업데이트된 위치, 방향 및 대응하는 보기 시점을 대응하는 클라이언트 장치로 전송하는 단계를 더 포함하는 것을 특징으로 하는 공간 비디오 기반 존재를 가능하게 하는 방법.
  17. 제 10 항에 있어서, 상기 적어도 하나의 전송 클라이언트 장치에 의해 상기 사용자 실시간 3D 가상 컷아웃에 대한 추가 처리 또는 개선을 수행하는 단계를 더 포함하는 것을 특징으로 하는 공간 비디오 기반 존재를 가능하게 하는 방법.
  18. 제 10 항에 있어서, 상기 배경 제거는 인스턴스 분할 또는 의미론적 분할 중 하나 이상을 통해 이미지 분할을 적용하고 상기 전송 클라이언트 장치 또는 하나 이상의 서버 컴퓨터에 의한 심층 신경망 사용에 의해 수행되는 것을 특징으로 하는 공간 비디오 기반 존재를 가능하게 하는 방법.
  19. 프로세서 및 메모리를 포함하는 적어도 하나의 전송 클라이언트 장치로 하여금 청구항 제 10 항의 단계들을 수행하게 하도록 구성된 명령을 저장한 비일시적 컴퓨터 판독 가능한 매체.
KR1020210113905A 2020-08-28 2021-08-27 공간 비디오 기반 존재 KR20220029471A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US17/006,327 US20220070235A1 (en) 2020-08-28 2020-08-28 System and method enabling interactions in virtual environments with virtual presence
US17/006,327 2020-08-28
US17/160,209 US20220070241A1 (en) 2020-08-28 2021-01-27 System and method enabling interactions in virtual environments with virtual presence
US17/160,209 2021-01-27

Publications (1)

Publication Number Publication Date
KR20220029471A true KR20220029471A (ko) 2022-03-08

Family

ID=77520584

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210113905A KR20220029471A (ko) 2020-08-28 2021-08-27 공간 비디오 기반 존재

Country Status (5)

Country Link
US (1) US20220070241A1 (ko)
EP (1) EP3962079A1 (ko)
JP (1) JP2022050319A (ko)
KR (1) KR20220029471A (ko)
CN (1) CN114125522A (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB201918314D0 (en) * 2019-12-12 2020-01-29 Issured Ltd MEA: connexus - a platform agnostic video interview platform that uses blockchain for retention of evidential integrity
US11924393B2 (en) * 2021-01-22 2024-03-05 Valeo Comfort And Driving Assistance Shared viewing of video among multiple users
WO2023213384A1 (en) * 2022-05-03 2023-11-09 Barco N.V. Content sharing system and method for sharing presenting data
WO2024059606A1 (en) * 2022-09-13 2024-03-21 Katmai Tech Inc. Avatar background alteration
US11895164B1 (en) * 2022-09-19 2024-02-06 Tmrw Foundation Ip S. À R.L. Digital automation of virtual events

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11289524A (ja) * 1998-04-01 1999-10-19 Nippon Telegr & Teleph Corp <Ntt> 仮想空間会議方法およびこの方法を記録した記録媒体
JP2000165831A (ja) * 1998-11-30 2000-06-16 Nec Corp 多地点テレビ会議システム
JP3660198B2 (ja) * 1999-04-16 2005-06-15 日本電信電話株式会社 3次元共有仮想空間表示方法、3次元共有仮想空間通信システム及び方法、仮想会議システム、並びにそのための利用者端末プログラムを記録した記録媒体
JP4352381B2 (ja) * 2003-09-19 2009-10-28 日本ビクター株式会社 テレビ電話装置
US8624962B2 (en) * 2009-02-02 2014-01-07 Ydreams—Informatica, S.A. Ydreams Systems and methods for simulating three-dimensional virtual interactions from two-dimensional camera images
CN103890815B (zh) * 2011-08-04 2017-09-12 游戏软件工作室亚洲私人有限公司 用于主管可被远程自动创建、主管和终止的瞬变虚拟世界的方法和系统
JP5798536B2 (ja) * 2012-09-11 2015-10-21 日本電信電話株式会社 映像コミュニケーションシステム、および映像コミュニケーション方法
JP2014233045A (ja) * 2013-05-30 2014-12-11 日本電信電話株式会社 映像表示システム及び映像表示方法
US11488363B2 (en) * 2019-03-15 2022-11-01 Touchcast, Inc. Augmented reality conferencing system and method
US10602121B2 (en) * 2013-09-17 2020-03-24 Société Des Arts Technologiques Method, system and apparatus for capture-based immersive telepresence in virtual environment
GB2543913B (en) * 2015-10-30 2019-05-08 Walmart Apollo Llc Virtual conference room
US10580140B2 (en) * 2016-05-23 2020-03-03 Intel Corporation Method and system of real-time image segmentation for image processing
US10657690B2 (en) * 2016-08-11 2020-05-19 Integem Inc. Intelligent augmented reality (IAR) platform-based communication system
JP6240353B1 (ja) * 2017-03-08 2017-11-29 株式会社コロプラ 仮想空間において情報を提供するための方法、そのためのプログラム、および、そのための装置
CN110999281B (zh) * 2017-06-09 2021-11-26 Pcms控股公司 一种用于允许在虚拟景观中探索的方法及装置
WO2019043597A1 (en) * 2017-09-04 2019-03-07 Aggarwal Abhinav SYSTEMS AND METHODS FOR MIXED REALITY INTERACTIONS WITH AVATAR
KR102601622B1 (ko) * 2017-12-14 2023-11-10 매직 립, 인코포레이티드 가상 아바타들의 콘텍스추얼 기반 렌더링
EP3564905A1 (en) * 2018-05-04 2019-11-06 Nokia Technologies Oy Conversion of a volumetric object in a 3d scene into a simpler representation model
US11450071B2 (en) * 2018-05-23 2022-09-20 Koninklijke Kpn N.V. Adapting acoustic rendering to image-based object
CN113129312B (zh) * 2018-10-15 2022-10-28 华为技术有限公司 一种图像处理方法、装置与设备

Also Published As

Publication number Publication date
JP2022050319A (ja) 2022-03-30
EP3962079A1 (en) 2022-03-02
CN114125522A (zh) 2022-03-01
US20220070241A1 (en) 2022-03-03

Similar Documents

Publication Publication Date Title
JP7384440B2 (ja) データ処理システム及び方法
JP7340281B2 (ja) 仮想環境内でのアプリケーションの配信システム及び方法
EP3962079A1 (en) System and method enabling interactions in virtual environments with virtual presence
EP3961496A1 (en) Graphical representation-based user authentication system and method
JP7391394B2 (ja) 仮想環境内から仮想ブロードキャストするためのシステム及び方法
EP3962078A1 (en) Ad hoc virtual communication between approaching user graphical representations
EP3961396A1 (en) System and method to provision cloud computing-based virtual computing resources within a virtual environment
KR20240040040A (ko) 가상 이벤트들의 디지털 자동화
KR20240019044A (ko) 특정 보안 딥 링크들을 통한 화상회의 미팅 슬롯들
KR20240019043A (ko) 특정 보안 딥 링크들을 통한 화상회의 미팅 슬롯들
KR20240019045A (ko) 특정 보안 딥 링크들을 통한 화상회의 미팅 슬롯들