KR20230003059A - 2d 이미지로부터 3d 객체 메시의 템플릿 기반 생성 - Google Patents

2d 이미지로부터 3d 객체 메시의 템플릿 기반 생성 Download PDF

Info

Publication number
KR20230003059A
KR20230003059A KR1020227041319A KR20227041319A KR20230003059A KR 20230003059 A KR20230003059 A KR 20230003059A KR 1020227041319 A KR1020227041319 A KR 1020227041319A KR 20227041319 A KR20227041319 A KR 20227041319A KR 20230003059 A KR20230003059 A KR 20230003059A
Authority
KR
South Korea
Prior art keywords
mesh
template
image
shape space
encoder
Prior art date
Application number
KR1020227041319A
Other languages
English (en)
Inventor
램지 존스
자레드 레이퍼
레베카 캔타
Original Assignee
로브록스 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 로브록스 코포레이션 filed Critical 로브록스 코포레이션
Publication of KR20230003059A publication Critical patent/KR20230003059A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2021Shape modification

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Medical Informatics (AREA)
  • Geometry (AREA)
  • Mathematical Physics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Databases & Information Systems (AREA)
  • Multimedia (AREA)
  • Architecture (AREA)
  • Computer Hardware Design (AREA)
  • Processing Or Creating Images (AREA)

Abstract

일부 구현은 게임을 위한 텍스트 태그를 생성하기 위한 방법, 시스템 및 컴퓨터 판독 가능 매체와 관련된다. 일부 구현에서, 트레이닝된 머신 러닝 모델을 사용하여 객체에 대한 3D 메시를 생성하기 위한 컴퓨터 구현 방법은, 트레이닝된 머신 러닝 모델에 대한 입력으로서 객체의 2차원(2D) 이미지를 제공하는 단계, 템플릿 3차원(3D) 메시를 획득하는 단계, 및 트레이닝된 머신 러닝 모델을 사용하고 2D 이미지 및 템플릿 3D 메시에 기초하여, 객체에 대한 3D 메시를 생성하는 단계를 포함하고, 객체에 대한 3D 메시는 템플릿 3D 메시를 변형함으로써 획득되고, 텍스처를 매핑하거나 객체의 3D 애니메이션을 생성하는 데 사용 가능하다.

Description

2D 이미지로부터 3D 객체 메시의 템플릿 기반 생성
본 출원은 2020년 4월 24일에 출원된 "메시 재구성 및 텍스처링을 위한 프레임워크 통합 {UNIFYING FRAMEWORK FOR MESH RECONSTRUCTION AND TEXTURING}"이라는 제목의 미국 가출원 번호 63/015,391에 대한 우선권의 이익을 주장하며, 그 전체 내용은 여기에서 참조로 포함된다.
구현은 일반적으로 컴퓨터 기반 평가 및 컴퓨터 기반 게이밍에 관한 것으로, 보다 구체적으로는, 가상 환경 내의 대응하는 2차원(2D) 이미지로부터 3차원(3D) 객체 메시를 생성하기 위한 방법, 시스템 및 컴퓨터 판독 가능 매체에 관한 것이다.
종래의 표준화된 인지 평가는 주로 내용 숙달 또는 영역 지식, 처리 속도 및 기억력을 평가한다. 대학 입학 시험 위원회(College Entrance Examination Board)(지금의 칼리지 보드(College Board))는 SAT(Scholastic Aptitude Test)의 보급을 통해 일련의 대학 입학 기준을 정의하기 위해 1923년에 설립되었다. 1959년에, SAT의 대안으로 ACT(American College Test)가 출시되었다. ACT와 SAT 모두 수학, 작문, 과학 및 기타 주제 특정 영역의 표준화된 내용에 초점을 맞춰 객관적인 지표를 생성한다. 미국 전역에서 널리 채택되었지만, 이러한 평가는 개인의 특정 인지 능력 또는 예상 대학 성과에 대해 거의 드러내지 않는다.
종래의 표준화된 대학 입학 시험의 방법론과 내용 모두의 결점에 대응하여, 고용주는 지원자의 인지 프로파일에 대한 예측 통찰력을 더 얻기 위해 다른 종래의 인지 능력 또는 지능 검사를 채택했다. 이러한 평가는 내용 숙달 또는 영역 지식, 처리 속도, 기억력뿐만 아니라 21세기 노동력이 요구하는 능력에 초점을 맞춘다. 평가는 피평가자에 대한 기본 시나리오를 설정하는 생물학적 자산뿐만 아니라 차량, 비행기와 같은, 실제 세계 객체의 시각적 표현의 디스플레이를 포함할 수 있다.
일부 온라인 플랫폼(예컨대, 게이밍 플랫폼, 미디어 교환 플랫폼 등)은 사용자가 서로 연결하고, 서로 인터랙팅하고 (예컨대, 게임 내에서), 게임을 제작하고, 그리고 인터넷을 통해 서로 정보를 공유할 수 있도록 허용한다. 온라인 게이밍 플랫폼의 사용자는 멀티 플레이어 게이밍 환경 또는 가상 환경(예컨대, 3차원 환경)에 참여하고, 커스텀 게이밍 환경을 디자인하고, 캐릭터를 디자인하고, 메커니즘을 디자인하고, 다른 사용자와 가상 아이템/객체를 교환하고, 오디오 또는 텍스트 메시지를 사용하여 다른 사용자와 통신하는 것 등을 할 수 있다. 사용자는 가상 환경 내에서 객체와 인터랙팅할 수 있으며, 객체의 시뮬레이션은 가상 환경 내에서 수행될 수 있다. 가상 환경 내 객체의 시뮬레이션은 다양한 객체의 표현을 활용할 수 있으며, 이는 이후 하나 이상의 사용자 장치(들)에 디스플레이될 수 있다. 일부 구현은 상기를 고려하여 고안되었다.
하나 이상의 컴퓨터의 시스템은 동작 시 시스템으로 하여금 행위를 수행하도록 하는 시스템에 설치된 소프트웨어, 펌웨어, 하드웨어 또는 이들의 조합을 가짐으로써, 특정 동작 또는 행위를 수행하도록 구성될 수 있다. 하나 이상의 컴퓨터 프로그램은 데이터 처리 장치에 의해 실행될 때, 장치로 하여금 행위를 수행하게 하는 명령어를 포함함으로써, 특정 동작 또는 행위를 수행하도록 구성될 수 있다. 하나의 일반적인 양태는 트레이닝된 머신 러닝 모델을 사용하여, 객체에 대한 3D 메시를 생성하기 위한 컴퓨터 구현 방법을 포함한다. 컴퓨터 구현 방법은 또한 트레이닝된 머신 러닝 모델에 대한 입력으로서 객체의 2차원(2D) 이미지를 제공하는 단계; 템플릿 3차원(3D) 메시를 획득하는 단계; 및 트레이닝된 머신 러닝 모델을 사용하고 2D 이미지 및 템플릿 3D 메시에 기초하여, 객체에 대한 3D 메시를 생성하는 단계를 포함하며, 객체에 대한 3D 메시는 텍스처를 매핑하거나 객체의 3D 애니메이션을 생성하는 데 사용 가능하다. 이 양태의 다른 실시예는 대응하는 컴퓨터 시스템, 장치, 및 하나 이상의 컴퓨터 저장 장치에 기록된 컴퓨터 프로그램을 포함하고, 각각 방법의 행위를 수행하도록 구성된다.
구현은 다음 특징 중 하나 이상을 포함할 수 있다. 컴퓨터 구현 방법은 객체에 대한 3D 메시를 포함하는 사용자 인터페이스를 디스플레이하는 단계를 포함할 수 있다. 객체에 대한 3D 메시는 트레이닝된 머신 러닝 모델에 의해 템플릿 3D 메시를 변형함으로써 획득된다. 컴퓨터 구현 방법은 템플릿 3D 메시를 획득하기 전에, 이미지 매칭을 사용하여 2D 이미지에 기초하여 객체의 카테고리를 결정하는 단계를 포함할 수 있다. 컴퓨터 구현 방법은 텍스처를 3D 메시에 매핑하는 단계를 포함할 수 있다. 템플릿 3D 메시는 3D 메시의 복수의 정점을 포함할 수 있는 리그(rig)이며, 복수의 정점의 각 정점은 복수의 정점 중 적어도 하나의 다른 정점에 연결되며, 템플릿 3D 메시와 연관된 하나 이상의 템플릿 애니메이션을 획득하는 단계 - 각각의 템플릿 애니메이션은 복수의 정점 중 둘 이상의 움직임을 정의함 -; 및 3D 메시 및 템플릿 3D 메시와 연관된 하나 이상의 템플릿 애니메이션의 특정 템플릿 애니메이션에 기초하여 객체에 대한 적어도 하나의 객체 애니메이션을 생성하는 단계를 포함하고, 적어도 하나의 객체 애니메이션은 하나 이상의 템플릿 애니메이션의 특정 템플릿 애니메이션과 같이 동일한 둘 이상의 정점의 움직임을 포함한다. 머신 러닝 모델은 메시 인코더, 이미지 인코더 및 복수의 메시 디코더를 포함하고, 복수의 타겟 메시를 수신하는 단계; 및 복수의 메시 디코더를 트레이닝하는 단계를 포함할 수 있고, 각각의 메시 디코더는 특정 템플릿 메시에 대응하고, 트레이닝하는 단계는: 메시 인코더를 사용하여, 타겟 메시를 형상 공간 벡터로 인코딩하는 단계; 메시 디코더를 사용하고 특정 템플릿 메시에 기초하여, 형상 공간 벡터를 변형된 메시로 디코딩하는 단계; 타겟 메시와 변형된 메시의 비교에 기초하여, 제1 오차 함수에 대한 제1 값을 결정하는 단계; 및 제1 값에 기초하여 메시 디코더의 하나 이상의 파라미터를 업데이트하는 단계를 포함할 수 있다. 머신 러닝 모델은 메시 인코더, 이미지 인코더 및 복수의 메시 디코더를 포함하고, 이미지 인코더를 트레이닝하는 단계를 포함할 수 있으며, 트레이닝하는 단계는: 복수의 2차원(2D) 트레이닝 이미지 및 대응하는 타겟 메시를 수신하는 단계 - 각각의 이미지는 각 카테고리의 특정 객체를 표현하고, 카테고리는 대응하는 템플릿 메시와 연관됨 -; 이미지 인코더를 사용하여, 복수의 2D 트레이닝 이미지 각각에 대한 각 형상 공간 벡터를 생성하는 단계; 각각의 생성된 형상 공간 벡터를 대응하는 타겟 메시에 대한 대응하는 형상 공간 벡터와 비교하는 단계 - 타겟 메시와 연관된 대응하는 형상 공간 벡터는 메시 인코더를 사용하여 인코딩됨 -; 생성된 형상 공간 벡터와 대응하는 형상 공간 벡터의 비교에 기초하여 제2 오차 함수에 대한 제2 값을 결정하는 단계; 및 제2 값에 기초하여 이미지 인코더의 하나 이상의 파라미터를 업데이트하는 단계를 포함할 수 있다. 매핑은 객체의 3D 메시에 텍스처를 적용하는 데 사용된다. uv 회귀자(uv regressor)는 챔퍼 거리(chamfer distance)에 기초하는 디스크립터 손실(descriptor loss)을 포함하는 손실 함수를 사용하여 트레이닝된다. 템플릿 3D 메시는 위상 동형 템플릿 메시(homeomorphic template mesh)이다. 설명된 기법의 구현은 하드웨어, 방법 또는 프로세스, 또는 컴퓨터 접근 가능 매체 상의 컴퓨터 소프트웨어를 포함할 수 있다.
하나의 일반적인 양태는 시스템을 포함한다. 시스템은 또한 명령어가 저장된 메모리; 및 메모리에 결합된 처리 장치를 포함하고, 처리 장치는 메모리에 접근하도록 구성되며, 처리 장치에 의해 실행될 때, 명령어는 처리 장치로 하여금 동작을 수행하도록 하며, 동작은: 트레이닝된 머신 러닝 모델에 대한 입력으로서 객체의 2차원(2D) 이미지를 제공하는 것; 템플릿 3차원(3D) 메시를 획득하는 것; 및 트레이닝된 머신 러닝 모델을 사용하고 2D 이미지 및 템플릿 3D 메시에 기초하여, 객체에 대한 3D 메시를 생성하는 것을 포함하며, 객체에 대한 3D 메시는 텍스처를 매핑하거나 객체의 3D 애니메이션을 생성하는 데 사용 가능하다. 이 양태의 다른 실시예는 대응하는 컴퓨터 시스템, 장치, 및 하나 이상의 컴퓨터 저장 장치에 기록된 컴퓨터 프로그램을 포함하고, 각각 방법의 행위를 수행하도록 구성된다.
구현은 다음 특징 중 하나 이상을 포함할 수 있다. 객체에 대한 3D 메시는 트레이닝된 머신 러닝 모델에 의해 템플릿 3D 메시를 변형함으로써 획득되는 시스템이다. 템플릿 3D 메시는 3D 메시의 복수의 정점을 포함할 수 있는 리그이고, 복수의 정점의 각 정점은 복수의 정점 중 적어도 하나의 다른 정점에 연결되며, 동작은: 템플릿 3D 메시와 연관된 하나 이상의 템플릿 애니메이션을 획득하는 것 - 각각의 템플릿 애니메이션은 복수의 정점 중 둘 이상의 움직임을 정의함 -; 및 3D 메시 및 템플릿 3D 메시와 연관된 하나 이상의 템플릿 애니메이션의 특정 템플릿 애니메이션에 기초하여 객체에 대한 적어도 하나의 객체 애니메이션을 생성하는 것을 더 포함할 수 있고, 적어도 하나의 객체 애니메이션은 하나 이상의 템플릿 애니메이션의 특정 템플릿 애니메이션과 같이 동일한 둘 이상의 정점의 움직임을 포함한다. 템플릿 3D 메시는 위상 동형 템플릿 메시이다. 머신 러닝 모델은 메시 인코더, 이미지 인코더 및 복수의 메시 디코더를 포함하고, 동작은: 복수의 타겟 메시를 수신하는 것; 복수의 메시 디코더를 트레이닝하는 것 - 각각의 메시 디코더는 특정 템플릿 메시에 대응하고, 트레이닝하는 것은: 메시 인코더를 사용하여, 타겟 메시를 제1 형상 공간 벡터로 인코딩하는 것; 메시 디코더를 사용하고 특정 템플릿 메시에 기초하여, 제1 형상 공간 벡터를 변형된 메시로 디코딩하는 것; 타겟 메시와 변형된 메시의 비교에 기초하여, 제1 오차 함수에 대한 제1 값을 결정하는 것; 및 제1 값에 기초하여, 메시 디코더의 하나 이상의 파라미터를 업데이트하는 것을 포함할 수 있음 -; 및 이미지 인코더를 트레이닝하는 것을 포함할 수 있고, 트레이닝하는 것은: 복수의 2차원(2D) 트레이닝 이미지 및 대응하는 타겟 메시를 수신하는 것 - 각각의 이미지는 각각의 카테고리의 특정 객체를 표현하고, 카테고리는 대응하는 템플릿 메시와 연관됨 -; 이미지 인코더를 사용하여, 복수의 2D 트레이닝 이미지 각각에 대한 각 형상 공간 벡터를 생성하는 것; 각각의 생성된 형상 공간 벡터를 대응하는 타겟 메시에 대한 대응하는 형상 공간 벡터와 비교하는 것 - 타겟 메시와 연관된 대응하는 형상 공간 벡터는 메시 인코더를 사용하여 인코딩됨 -; 생성된 형상 공간 벡터와 대응하는 형상 공간 벡터의 비교에 기초하여, 제2 오차 함수에 대한 제2 값을 결정하는 것; 및 제2 값에 기초하여, 이미지 인코더의 하나 이상의 파라미터를 업데이트하는 것을 포함할 수 있다. 설명된 기법의 구현은 하드웨어, 방법 또는 프로세스, 또는 컴퓨터 접근 가능 매체 상의 컴퓨터 소프트웨어를 포함할 수 있다.
하나의 일반적인 양태는 비일시적 컴퓨터 판독 가능 매체를 포함하며, 이는 명령어를 포함할 수 있다. 비일시적 컴퓨터 판독 가능 매체는 또한 트레이닝된 머신 러닝 모델에 대한 입력으로서 객체의 2차원(2D) 이미지를 제공하는 것; 템플릿 3차원(3D) 메시를 획득하는 것; 및 트레이닝된 머신 러닝 모델을 사용하고 2D 이미지 및 템플릿 3D 메시에 기초하여, 객체에 대한 3D 메시를 생성하는 것을 포함하며, 객체에 대한 3D 메시는 텍스처를 매핑하거나 객체의 3D 애니메이션을 생성하는 데 사용 가능하다. 이 양태의 다른 실시예는 대응하는 컴퓨터 시스템, 장치, 및 하나 이상의 컴퓨터 저장 장치에 기록된 컴퓨터 프로그램을 포함하고, 각각 방법의 행위를 수행하도록 구성된다.
구현은 다음 특징 중 하나 이상을 포함할 수 있다. 비일시적 컴퓨터 판독 가능 매체는 템플릿 3D 메시가 위상 동형 템플릿 메시이다. 템플릿 3D 메시는 3D 메시의 복수의 정점을 포함할 수 있는 리그이고, 복수의 정점의 각 정점은 복수의 정점 중 적어도 하나의 다른 정점에 연결되며, 동작은: 템플릿 3D 메시와 연관된 하나 이상의 템플릿 애니메이션 획득하는 것 - 각각의 템플릿 애니메이션은 복수의 정점 중 둘 이상의 움직임을 정의함 -; 및 3D 메시 및 템플릿 3D 메시와 연관된 하나 이상의 템플릿 애니메이션의 특정 템플릿 애니메이션에 기초하여, 객체에 대한 적어도 하나의 객체 애니메이션을 생성하는 것을 더 포함할 수 있고, 적어도 하나의 객체 애니메이션은 하나 이상의 템플릿 애니메이션의 특정 템플릿 애니메이션과 같이 동일한 둘 이상의 정점의 움직임을 포함한다. 동작은 객체의 3D 메시의 정점으로부터 2D 이미지로의 매핑을 생성하기 위해 uv 회귀자를 사용하여 객체의 2D 이미지 및 3D 메시를 처리하는 것을 더 포함할 수 있으며, 매핑은 객체의 3D 메시에 텍스처를 적용하는 데 사용된다. 설명된 기법의 구현은 하드웨어, 방법 또는 프로세스, 또는 컴퓨터 접근 가능 매체 상의 컴퓨터 소프트웨어를 포함할 수 있다.
하나의 일반적인 양태는 메시 인코더를 포함하는 머신 러닝 모델을 트레이닝하기 위한 방법을 포함한다. 방법은 또한 복수의 타겟 메시를 수신하는 단계를 포함한다. 방법은 또한 복수의 메시 디코더를 트레이닝하는 단계를 포함하며, 각각의 메시 디코더는 특정 템플릿 메시에 대응하고, 트레이닝하는 단계는: 메시 인코더를 사용하여, 복수의 타겟 메시 중 타겟 메시를 형상 공간 벡터로 인코딩하는 단계; 메시 디코더를 사용하고 메시 디코더에 대응하는 특정 템플릿 메시에 기초하여, 형상 공간 벡터를 변형된 메시로 디코딩하는 단계; 타겟 메시와 변형된 메시의 비교에 기초하여, 제1 오차 함수에 대한 제1 값을 결정하는 단계; 및 제1 값에 기초하여 메시 디코더의 하나 이상의 파라미터를 업데이트하는 단계를 포함할 수 있다. 이 양태의 다른 실시예는 대응하는 컴퓨터 시스템, 장치, 및 하나 이상의 컴퓨터 저장 장치에 기록된 컴퓨터 프로그램을 포함하고, 각각 방법의 행위를 수행하도록 구성된다.
구현은 다음 특징 중 하나 이상을 포함할 수 있다. 방법은 복수의 메시 디코더 각각이 대응하는 템플릿 메시에 대한 항등 함수(identity function)를 근사화하도록 사전 트레이닝된다. 제1 오차 함수는 변형된 메시에서 타겟 메시까지의 거리를 나타내는 적합도 함수(fitness function)이다. 설명된 기법의 구현은 하드웨어, 방법 또는 프로세스, 또는 컴퓨터 접근 가능 매체 상의 컴퓨터 소프트웨어를 포함할 수 있다.
하나의 일반적인 양태는 객체의 2차원(2D) 이미지로부터 3차원(3D) 메시를 생성하기 위해 메시 인코더 및 이미지 인코더를 포함하는 머신 러닝 모델을 트레이닝하기 위한 방법을 포함한다. 방법은 또한 복수의 2차원(2D) 트레이닝 이미지 및 대응하는 타겟 메시를 수신하는 단계 - 각 이미지는 각 카테고리의 특정 객체를 표현하고, 카테고리는 대응하는 템플릿 메시와 연관됨 -; 이미지 인코더를 사용하여, 복수의 2D 트레이닝 이미지 각각에 대한 각각의 형상 공간 벡터를 생성하는 단계; 각각의 생성된 형상 공간 벡터를 대응하는 타겟 메시에 대한 대응하는 형상 공간 벡터와 비교하는 단계 - 타겟 메시와 연관된 대응하는 형상 공간 벡터는 메시 인코더를 사용하여 인코딩됨 -; 생성된 형상 공간 벡터와 대응하는 형상 공간 벡터의 비교에 기초하여 제2 오차 함수에 대한 제2 값을 결정하는 단계; 및 제2 값에 기초하여 이미지 인코더의 하나 이상의 파라미터를 업데이트하는 단계를 포함한다. 이 양태의 다른 실시예는 대응하는 컴퓨터 시스템, 장치, 및 하나 이상의 컴퓨터 저장 장치에 기록된 컴퓨터 프로그램을 포함하고, 각각 방법의 행위를 수행하도록 구성된다.
구현은 다음 특징 중 하나 이상을 포함할 수 있다. 방법은 제2 오차 함수가 생성된 형상 공간 벡터에서 대응하는 형상 공간 벡터까지의 거리를 나타내는 적합도 함수이다. 설명된 기법의 구현은 하드웨어, 방법 또는 프로세스, 또는 컴퓨터 접근 가능 매체 상의 컴퓨터 소프트웨어를 포함할 수 있다.
도 1은 일부 구현에 따른, 컴퓨터 기반 평가를 위한 예시적인 네트워크 환경의 도식이다.
도 2는 일부 구현에 따른, 2D 이미지로부터 객체의 3D 메시를 생성하기 위한 예시적인 시스템 아키텍처의 도식이다.
도 3은 일부 구현에 따른, 트레이닝된 머신 러닝(ML) 모델을 사용하여, 2D 이미지로부터 객체의 3D 메시를 생성하기 위한 예시적인 방법을 도시한다.
도 4는 일부 구현에 따른, 이미지 인코더를 트레이닝하기 위한 예시적인 방법을 예시하는 흐름도이다.
도 5a는 일부 구현에 따른, 변형된 메시를 생성하도록 메시 디코더를 트레이닝하기 위한 예시적인 프로세스를 예시하는 블록도이다.
도 5b는 일부 구현에 따른, 형상 공간 벡터를 생성하도록 이미지 인코더를 트레이닝하기 위한 예시적인 프로세스를 나타내는 블록도이다.
도 6은 일부 구현에 따른, 대응하는 2D 이미지로부터 생성된 3D 메시의 예시를 도시한다.
도 7은 일부 구현에 따른, 분류를 위한 2D 이미지의 세그먼테이션의 예시를 도시한다.
도 8은 일부 구현에 따른, 객체의 예시적인 리깅된 3D 메시를 도시한다.
도 9는 일부 구현에 따른, 예시적인 평가 프레임워크를 도시한다.
도 10은 일부 구현에 따른, 예시적인 컴퓨팅 장치를 예시하는 블록도이다.
도 11은 일부 구현에 따른, 예시적인 컴퓨팅 장치를 예시하는 블록도이다.
다음의 상세한 설명에서, 여기의 일부를 형성하는 첨부 도면에 대한 참조가 이루어진다. 도면에서, 유사한 기호는 문맥상 달리 지시하지 않는 한, 전형적으로 유사한 컴포넌트를 나타낸다. 상세한 설명, 도면 및 청구범위에 설명된 예시적인 구현은 제한되도록 의도되지 않는다. 여기에서 제시된 대상의 정신 또는 범위를 벗어나지 않고, 다른 구현이 활용될 수 있으며, 다른 변경이 이루어질 수 있다. 여기에서 일반적으로 설명되고 도면에 예시된 바와 같이, 본 개시의 양태는 매우 다양한 상이한 구성으로 배열, 대체, 조합, 분리 및 설계될 수 있으며, 이들 모두는 여기에서 고려된다.
본 명세서에서 "일부 구현", "구현", "예시 구현" 등에 대한 참조는 설명된 구현이 특정 특징, 구조 또는 특성을 포함할 수 있지만, 모든 구현이 반드시 특정 특징, 구조 또는 특성을 포함할 필요는 없음을 나타낸다. 더욱이, 그러한 구절이 반드시 동일한 구현을 언급하는 것은 아니다. 또한, 특정 특징, 구조 또는 특성이 구현과 관련하여 설명될 때, 그러한 특징, 구조 또는 특성은 명시적으로 설명되었는지 여부에 관계없이 다른 구현과 관련하여 영향을 받을 수 있다.
일부 양태에서, 개인이 아는 것 대신에 개인이 어떻게 생각하는지 평가하는 데 초점을 맞춘 시뮬레이션 기반 평가를 위한 시스템 및 방법이 제공된다. 사용자가 일에 필요한 문제 해결 능력을 보여줄 수 있는 기회를 유지하면서, 주어진 환경, 예컨대, 작업 환경의 컨텍스트를 추상화하는 시뮬레이션 기반 평가 내에 시나리오 또는 작업이 임베딩될 수 있다. 시뮬레이션 기반 평가에서 발생하는 시나리오를 통해, 그 또는 그녀의 최종 선택뿐만 아니라 사용자의 인지 프로세스의 세부사항이 관찰될 수 있다. 시뮬레이션 기반 평가는 따라서 SAT 및 ACT와 같은 종래의 인지 평가에서 메모리 및 처리 속도에 부여된 높은 가치를 감소시킬 수 있다.
일부 실시예에서, "비판적 사고"와 같은 기술은 상이한 모드 및 강도의 정도를 요구하는 많은 컨텍스트에서 발생할 수 있기 때문에, 시뮬레이션 기반 평가는 동적, 실시간 적응적 및/또는 매우 현실적인, 현실적인 시나리오를 반영하는 실물 컨텍스트를 가져올 수 있다. 이러한 시나리오는 응시자에게 풍부한 내러티브를 제공함으로써 복잡한 추론 체인과 강력한 정신 모델을 촉발할 수 있다. 현실적인 시나리오를 생성하는 것은 평가에서 미래 결과를 예측하기 위해 노력하는 실제 세계 조건을 구성하는 일상적인 작업 활동과 컨텍스트적 요소를 모두 추상화하는 것을 요구할 수 있다. 일상적인 활동을 작업을 구성하기 위한 컴포넌트로 나누기 위해, "본(bone)"이라고 하는 세분화된 디스크립터(granular descriptor)가 작업 디자인 이면의 원자 단위로 사용될 수 있다. 본은 동사, 목적어, 형용사 또는 형용사구를 포함할 수 있다.
일부 실시예에서, 시나리오를 디자인하는 것은 그 시퀀스가 관심 있는 구성에 대한 통찰력을 제공하는 것을 의미하는, 이론적으로 건전하고, 시나리오가 발생하는 "스킨"이라고 하는 추상화된 컨텍스트가 주어지면 합리적인 조합으로 본의 시퀀스를 함께 묶는 것을 요구할 수 있다. 시나리오의 스킨은 가능한 시나리오 구성뿐만 아니라 응시자의 실제 기술 수준을 모호하게 만들 수 있는 잠재적인 설정 유도 편향을 지시할 수 있다. 스킨을 선택할 때, 필요한 문제 해결 기술이 실제 세계 시나리오에서 필요한 것을 모방하는 광범위한 컨텍스트를 나타내기 위해 충분히 능숙하고 복잡한 것이 선택될 수 있다. 본과 기본 구조의 최고점을 일에 존재하는 전체 문제 해결 공간을 나타내도록 보장하기 위해, 실제 시나리오의 삽화를 예비 작업 디자인에 매핑할 수 있다. 컨텍스트적 특성- 상황적 제약, 목표, 시간 범위, 정보 가용성의 세부사항 -을 진단하여 응시자가 문제 해결 기술을 수행하는 조건이 실제 세계 상황과 구조적으로 정렬하는지 보장할 수 있다.
일부 실시예에서, 시뮬레이션 기반 평가는 추상화된 자연 세계 환경에 임베딩된 하나 이상의 시나리오를 포함한다. 자연 세계 설정은 편견을 제한하고 배경 및 사전 지식에 관계없이 전 세계 인구에게 접근 가능한 컨텍스트를 제공할 수 있다. 지리, 연구 분야, 성별 또는 민족에 관계없이, 모든 응시자는 식물, 동물, 날씨, 복잡한 시나리오를 디자인하는 데 유용한 컴포넌트 역할을 하는 개념에 대한 일부 기본적인 이해를 가지고 있다. 평가는 사용자가 자연 세계 환경 내에서 지형, 식물 및 야생 동물을 포함하는 일련의 과제와 인터랙팅하도록 요구할 수 있다. 예컨대, 한 시나리오에서 사용자는 특정 증거가 주어진 생태계에서 임박한 환경 위협을 식별하도록 요구될 수 있다.
일부 실시예에서, 시나리오에서 제시되는 내러티브의 어떠한 요소도 현실을 위반하지 않을 수 있는데, 이는 그렇게 하는 것이 세계가 어떻게 작동하는지에 대한 시험 응시자의 합리적인 정신 모델에 불이익을 주고, 결국 관심 있는 기술을 수행할 수 없는 우리의 자연 세계 내러티브 주변의 혼란을 오인할 것이기 때문이다. 일반적인 기대치에 대한 모든 심각한 위반을 피하기 위해 시뮬레이션 작업의 양태가 어떻게 구현될 수 있는지에 관한 하나 이상의 인공 규칙 및 논리가 구현될 수 있다. 예컨대, 기린은 산이 아닌 사바나에 살고, 펭귄은 사슴이 아닌 작은 물고기를 먹는다. 일부 실시예에서, 이해가 되는 시뮬레이션 환경 내 내러티브 및 세부사항을 갖는 것 이상으로, 평가 시나리오 및 실제 세계 시나리오에 대한 빌딩 블록 간의 개념적 패리티가 구현될 수 있다. 예시로서, "이익"의 개념은 본질적으로 유사하지만 자연 세계 시나리오에 대한 컴포넌트로서 논리적인 추상화로 번역될 수 있다. "이익"은 합성 추상화이므로, 예컨대, 확산되는 질병과 관련된 자연 세계 시뮬레이션 시나리오의 아날로그는 개념을 정의하는 기본 수학적 표현이 있는 합성 개념인 "전파"의 개념일 수 있다.
일부 실시예에서, 시나리오의 상이한 버전에 대한 고유한 뷰와 장면의 변화는 데이터 기반일 수 있다. 인간의 기대에 부합하는 방식으로, 잠재적인 동물, 식물 및 지형 기능과 연관된 논리를 사용하여 상이한 버전의 시나리오에 대한 고유한 뷰와 장면이 생성될 수 있다. 예컨대, 생성된 시나리오에서, 무리를 지어야 하는 동물은 무리를 짓고, 날아야 하는 동물은 나는 한편, 섞이고 거니는 동물은 실제 생활에서와 같이 지형을 탐색한다. 자연, 식물, 바위 또는 지형의 경사에 대한 일상적인 인식에서 덜 자명한 모든 것이 시나리오의 장면 배경이 평가의 배경에 유지되도록 실제 세계 규칙을 따를 수 있다.
온라인 게이밍 플랫폼("사용자 생성 콘텐츠 플랫폼" 또는 "사용자 생성 콘텐츠 시스템"이라고도 지칭됨)은 사용자가 서로 인터랙팅하는 다양한 방식을 제공한다. 예컨대, 온라인 게이밍 플랫폼의 사용자는 공통 목표를 위해 함께 작업하고, 다양한 가상 게이밍 아이템을 공유하고, 서로에게 전자 메시지를 전송하는 것 등을 할 수 있다. 온라인 게이밍 플랫폼의 사용자는 가상 캐릭터로 게임에 참가하여 게임 특정 역할을 플레이할 수 있다. 예컨대, 가상 캐릭터는 팀 또는 멀티 플레이어 환경의 일부일 수 있으며, 여기에서 각각의 캐릭터는 특정 역할이 할당되고, 역할에 대응하는 연관된 파라미터, 예컨대, 의복, 갑옷, 무기류, 스킬 등을 갖는다. 다른 예시에서, 가상 캐릭터는 예컨대, 단일 플레이어가 게임의 일부인 경우, 컴퓨터 생성 캐릭터에 의해 참가될 수 있다.
온라인 게이밍 플랫폼은 또한 가상 환경 내에서 물리적 객체(강체 객체)를 모방하는 가상 객체의 사용을 지원할 수 있다. 예컨대, 온라인 게이밍 플랫폼은 사용자가 다양한 카테고리의 가상 객체, 예컨대, 차량, 무기 및 무기 액세서리, 장난감, 구조물 등을 디자인하고 도입할 수 있도록 한다. 이러한 객체는 온라인 게이밍 플랫폼에 의해 지원되는 가상 환경 내에서 하나 이상의 사용자가 볼 수 있다. 예컨대, 가상 환경 내에서 그러한 객체의 움직임이 사용자 장치 상에 디스플레이될 수 있다.
온라인 게이밍 플랫폼은 또한 플랫폼의 사용자(개발자)가 새로운 객체 및/또는 메커니즘을 생성하도록 허용할 수 있다. 예컨대, 온라인 게이밍 플랫폼의 사용자는 차량, 도구, 장난감과 같은 새로운 객체를 생성, 디자인 및/또는 커스터마이징 가능하도록 하고, 다른 사용자가 사용 가능하도록 할 수 있다.
온라인 게이밍 플랫폼(게임 플랫폼이라고도 함)은 가상 환경 내에서 메커니즘 및 객체의 시뮬레이션을 지원하는 도구를 제공할 수 있다. 일부 구현에서, 렌더링 엔진, 물리 엔진 및/또는 물리 솔버가 객체의 시뮬레이션을 위해 활용될 수 있다.
가상 환경 내의 일부 객체 및/또는 파라미터는 객체 및 환경을 시뮬레이팅하는 복잡성이 객체의 실시간 시뮬레이션 및 렌더링을 위한 시간 요건을 충족하기 위해 시뮬레이션을 가능하게 하기 위해 계산적으로 비용이 많이 들 수 있도록 할 수 있다. 예컨대, 새로운 객체의 표현은 디스플레이 장치의 특정 프레임 재생률(frame refresh rate)에 대한 요건을 충족하는 기간 내에 수행되어야 할 수 있다. 시간 요건을 충족하지 못하면, 불안정한 업데이트가 발생하여 사용자의 시각적 경험이 저하될 수 있다.
게임 플랫폼 소유자 또는 관리자의 목표는 사용자에 대한 우수한 사용자 경험이다. 온라인 게이밍 플랫폼 운영자의 기술적 문제는 가상 환경 내에서 정확하고, 시기 적절하며, 계산적으로 효율적인 객체 표현의 생성이다.
템플릿 3D 메시의 변형에 기초하여, 3D 메시를 생성하기 위해 머신 러닝(ML) 모델 프레임워크 내의 단일 파라미터화로서 위상 동형 템플릿 메시를 사용하는 기법이 설명된다. 템플릿의 기하학은 학습 문제를 완화하고, 제한된 트레이닝 데이터를 사용할 수 있는 경우에도 머신 러닝 모델의 트레이닝을 가능하게 하는 사전 역할을 한다. 여기에서 설명된 기법에 따라, 트레이닝을 통해 ML 모델은 객체 부분의 기하학적 상관 관계를 암묵적으로 학습한다. 리깅된 템플릿의 경우, 변형된 템플릿이 해당 리그를 상속할 수 있으므로, 리그에 기초하는 애니메이션의 다양한 객체로의 효율적인 전송을 가능하게 한다.
상이한 버전의 시나리오에 대한 별개의 뷰 및 장면의 변형을 제공하고 현실적인 자산을 제공하는 것은 처음부터 생성하는 데 시간이 많이 소요되고, 그리고/또는 구입하는 데 엄청나게 비쌀 수 있다. 일부 실시예에서, 상이한 버전의 시나리오에 대한 별개의 뷰 및 장면을 생성하기 위한 확장 가능한 접근법을 제공하기 위하여, 시스템은 2D에서 3D로의 재구성을 사용하거나 단일 이미지를 입력으로 취하고, 관심 객체를 출력으로 3차원 공간에서 표현하는 자산을 생성한다.
예컨대, 학습 가능한 파라미터화의 조합으로 구성된 AtlasNet과 같은 3D 표면 생성을 위한 접근법이 사용될 수 있다. 이러한 학습 가능한 파라미터화는 2D 정사각형 세트를 표면으로 변환할 수 있다. 변환의 파라미터는 신경망의 학습된 가중치와 형상의 학습된 표현 모두에서 나올 수 있다. 예컨대, 학습된 파라미터의 변환은 표면의 모든 곳에서 로컬로 매핑되고, 기본 복잡성에 자연스럽게 적응하며, 임의의 원하는 해상도로 샘플링되고, 생성된 표면으로의 텍스처 맵의 전송을 감안할 수 있다.
객체, 예컨대, 어류, 포유동물 등에 대한 메시를 포함하는 3차원 재구성은 과제를 제시한다. 이러한 단점을 해결하기 위해, 위상 동형 템플릿 메시와 같은 템플릿 메시가 파라미터화 영역으로 제안된다. 이러한 동형 함수는 함수와 그 역(inverse)이 모두 연속적이고 토폴로지에서 탄성 변형에 의해 하나를 다른 것으로 변환할 수 있는 기하학적 도형에 대해 존재하도록 집합 간의 일대일 매핑이다. 템플릿 메시의 기하학은 특히 제한된 트레이닝 데이터를 사용할 수 있는 경우, 학습 프로세스를 상당히 쉽게 하는 사전 역할을 할 수 있다. 예컨대, 네트워크는 예컨대, 템플릿 메시의 물고기 지느러미가 입력 이미지의 물고기 지느러미와 정렬되도록 기하학적 상관 관계를 암묵적으로 학습할 수 있다. 템플릿 메시가 리깅에 의해 애니메이팅된 경우, 템플릿 메시는 변형된 후에도 해당 애니메이션을 상속할 수 있다. 리깅은 일련의 상호 연결된 디지털 본을 사용하여, 3D 모델을 표현하기 위해 애니메이션에서 사용되는 기법이다. 구체적으로, 리깅은 3D 모델의 본 구조를 생성하는 프로세스를 지칭한다. 예컨대, 사슴이 말로 변형된 3D 모델은 사슴의 애니메이션을 상속할 수 있다.
생물학적 자산과 같은 시뮬레이션 기반 평가를 위한 객체(자산)를 생성함으로써, 종래의 미술 및 애니메이션 팀과 연관된 비용을 줄일 수 있다. 또한, 자산을 생성하는 데 시간이 걸릴 수 있으므로, 사전 계산된 경우 대기 시간이 없다. 일부 실시예에서, 생성된 자산은 아티스트에 의해 오프라인에서 향상되어 그들이 현실적으로 보이도록 보장할 수 있다. 일부 실시예에서, 자산 생성 파이프라인은 스톡 이미지로부터 자산을 생성하는 데 사용될 수 있으며, 이에 대해 동일한 이미지의 다중 관점도 없고, 이미지 간의 관점 일관성도 없다. 일부 실시예에서, 다수의 입력 이미지는 완전한 관점 커버리지를 갖는 정보를 활용하기 위해 사용될 수 있다.
일부 양태에서, 설명된 시스템 및 방법은 객체의 2차원 이미지로부터 3차원 재구성을 생성하기 위한 하나 이상의 모델을 제공한다.
도 1은 본 개시의 일부 구현에 따른, 예시적인 네트워크 환경(100)을 예시한다. 네트워크 환경(100)(여기에서 "시스템"이라고도 지칭됨)은 온라인 평가 플랫폼(102), 클라이언트 장치(110), 및 네트워크(122)를 포함한다. 온라인 평가 플랫폼(102)은 그 중에서도, 평가 엔진(104), 하나 이상의 평가(105), 접근성 엔진(107), 및 데이터 저장소(108)를 포함할 수 있다. 클라이언트 장치(110)는 온라인 평가 플랫폼(102)과 인터랙팅하기 위해 가상 평가(112), 접근성 애플리케이션(113), 및 디스플레이 스크린(114)을 포함할 수 있다.
네트워크 환경(100)은 예시를 위해 제공된다. 일부 구현에서, 네트워크 환경(100)은 도 1에 도시된 것과 동일하거나 상이한 방식으로 구성된 동일하거나, 더 적거나, 더 많거나, 상이한 요소를 포함할 수 있다.
일부 구현에서, 네트워크(122)는 공중 네트워크(예컨대, 인터넷), 사설 네트워크(예컨대, LAN(local area network) 또는 WAN(wide area network)), 유선 네트워크(예컨대, 이더넷 네트워크), 무선 네트워크(예컨대, 802.11 네트워크, Wi-Fi ® 네트워크 또는 WLAN(wireless LAN)), 셀룰러 네트워크(예컨대, LTE(Long Term Evolution) 네트워크), 라우터, 허브, 스위치, 서버 컴퓨터 또는 이들의 조합을 포함할 수 있다.
일부 구현에서, 데이터 저장소(108)는 비일시적 컴퓨터 판독 가능 메모리(예컨대, 랜덤 액세스 메모리), 캐시, 드라이브(예컨대, 하드 드라이브), 플래시 드라이브, 데이터베이스 시스템, 또는 데이터를 저장할 수 있는 다른 유형의 컴포넌트 또는 장치일 수 있다. 데이터 저장소(108)는 또한 다중 컴퓨팅 장치(예컨대, 다중 서버 컴퓨터)에 걸쳐 있을 수도 있는 다중 저장 컴포넌트(예컨대, 다중 드라이브 또는 다중 데이터베이스)를 포함할 수 있다.
일부 구현에서, 온라인 평가 플랫폼(102)은 하나 이상의 컴퓨팅 장치(예컨대, 클라우드 컴퓨팅 시스템, 랙마운트 서버, 서버 컴퓨터, 물리적 서버의 클러스터, 가상 서버 등)를 갖는 서버를 포함할 수 있다. 일부 구현에서, 서버는 온라인 평가 플랫폼(102)에 포함될 수 있거나, 독립 시스템일 수 있거나, 다른 시스템 또는 플랫폼의 일부일 수 있다.
일부 구현에서, 온라인 평가 플랫폼(102)은 하나 이상의 컴퓨팅 장치(예컨대, 랙마운트 서버, 라우터 컴퓨터, 서버 컴퓨터, 개인용 컴퓨터, 메인프레임 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨터, 데스크톱 컴퓨터 등), 데이터 저장소(예컨대, 하드 디스크, 메모리, 데이터베이스), 네트워크, 소프트웨어 컴포넌트 및/또는 온라인 평가 플랫폼(102)에서 동작을 수행하고 사용자에게 온라인 평가 플랫폼(102)에 대한 접근을 제공하는 데 사용될 수 있는 하드웨어 컴포넌트를 포함할 수 있다. 온라인 평가 플랫폼(102)은 또한 온라인 평가 플랫폼(102)에 의해 제공되는 콘텐츠에 대한 접근을 사용자에게 제공하는 데 사용될 수 있는 웹사이트(예컨대, 하나 이상의 웹페이지) 또는 애플리케이션 백엔드 소프트웨어를 포함할 수 있다. 예컨대, 사용자(또는 감독자)는 각각 클라이언트 장치(110) 상의 접근성 애플리케이션(113)을 사용하여, 온라인 평가 플랫폼(102)에 접근할 수 있다.
일부 구현에서, 온라인 평가 플랫폼(102)은 감독관(예컨대, 평가를 관리하는 사람)이 온라인 평가 플랫폼(102)을 통해 다른 감독관과 통신할 수 있도록 허용하는 하나 이상의 평가 제공자 및/또는 고용주 간의 연결을 제공할 수 있고, 여기에서 통신은 음성 채팅(예컨대, 동기 및/또는 비동기 음성 통신), 비디오 채팅(예컨대, 동기 및/또는 비동기 비디오 통신), 또는 텍스트 채팅(예컨대, 동기 및/또는 비동기 텍스트 기반 통신)을 포함할 수 있다. 본 개시의 일부 구현에서, "사용자"는 단일 개인으로 표현될 수 있다. 그러나, 본 개시의 다른 구현은 "사용자"(예컨대, 검사 또는 평가 사용자)가 작업 기술 및 의사소통 기술에 대해 평가되는 그룹 또는 사용자의 세트에 의해 제어된 엔티티인 것을 포함한다. 예컨대, 평가되는 그룹으로 연합된 개별 사용자 집합은 일부 상황에서, "사용자"로 간주될 수 있다.
일부 구현에서, 온라인 평가 플랫폼(102)은 디지털 자산 및 디지털 평가 생성 조항을 포함할 수 있다. 예컨대, 플랫폼은 설계, 수정, 개인에 대한 고유한 조정 및 기타 수정 기능을 허용하는 관리자 인터페이스를 제공할 수 있다. 일부 구현에서, 평가는 예컨대, 2차원(2D) 게임, 3차원(3D) 게임, 가상 현실(VR) 게임, 또는 증강 현실(AR) 게임을 포함할 수 있다. 일부 구현에서, 평가 생성자 및/또는 감독관은 평가를 검색하고, 평가의 일부를 결합하고, 특정 활동(예컨대, 그룹 평가)에 대한 평가를 조정하고, 평가 플랫폼(102)을 통해 기타 기능을 제공할 수 있다.
일부 구현에서, 온라인 평가 플랫폼(102) 또는 클라이언트 장치(110)는 평가 엔진(104) 또는 가상 평가(112)를 포함할 수 있다. 일부 구현에서, 평가 엔진(104)은 평가(105)의 개발 또는 실행을 위해 사용될 수 있다. 예컨대, 평가 엔진(104)은 다른 특징 중에서, 2D, 3D, VR 또는 AR 그래픽을 위한 렌더링 엔진("렌더러"), 물리 엔진, 충돌 감지 엔진(및 충돌 응답), 사운드 엔진, 스크립팅 기능, 햅틱 엔진, 인공 지능 엔진, 네트워킹 기능, 스트리밍 기능, 메모리 관리 기능, 스레딩 기능, 장면 그래프 기능 또는 시네마틱에 대한 비디오 지원을 포함할 수 있다. 평가 엔진(104)의 컴포넌트는 평가를 컴퓨팅하고 렌더링하는 데 도움이 되는 명령(예컨대, 렌더링 명령, 충돌 명령, 물리 명령 등)을 생성할 수 있다.
평가 엔진(104)을 사용하는 온라인 평가 플랫폼(102)은 평가 엔진 기능의 일부 또는 전부를 수행하거나(예컨대, 물리 명령 생성, 명령 렌더링 등), 평가 엔진 기능의 일부 또는 전부를 클라이언트 장치(110)(도시되지 않음)의 평가 엔진(104)에 오프로드할 수 있다. 일부 구현에서, 각각의 평가(105)는 온라인 평가 플랫폼(102)에서 수행되는 평가 엔진 기능과 클라이언트 장치(110)에서 수행되는 평가 엔진 기능 사이에 상이한 비율을 가질 수 있다.
일부 구현에서, 평가 명령은 클라이언트 장치(110)가 게임플레이, 그래픽, 및 그 안에 표현된 논리적 문제를 갖는 자연 세계 렌더링과 같은 평가의 다른 특징을 렌더링하도록 허용하는 명령을 지칭할 수 있다. 명령은 사용자 입력(예컨대, 물리적 객체 포지셔닝), 캐릭터 위치 및 속도 정보, 또는 명령(예컨대, 물리적 명령, 렌더링 명령, 충돌 명령 등) 중 하나 이상을 포함할 수 있다. 명령은 평가 감독관에 의해 가청 가능하게 프롬프트될 수 있거나, 음성 합성기에 의해 가청 가능하게 제시되거나, 물리적으로 햅틱 피드백으로 표현될 수 있거나(예컨대, 경계에서의 진동, 오정렬(misalignment) 등) 또는 이들의 조합일 수 있다.
일부 구현에서, 클라이언트 장치(들)(110)는 각각 개인용 컴퓨터(PC), 모바일 장치(예컨대, 랩탑, 모바일 폰, 스마트 폰, 태블릿 컴퓨터 또는 넷북 컴퓨터), 네트워크-연결된 텔레비전, 게이밍 콘솔 등과 같은 컴퓨팅 장치를 포함할 수 있다. 일부 구현에서, 클라이언트 장치(110)는 또한 "사용자 장치"로 지칭될 수 있다. 일부 구현에서, 하나 이상의 클라이언트 장치(110)는 임의의 주어진 순간에 온라인 평가 플랫폼(102)에 연결할 수 있다. 클라이언트 장치(110)의 수는 제한이 아니라 예시로서 제공된다는 점에 유의할 수 있다. 일부 구현에서, 임의의 수의 클라이언트 장치(110)가 사용될 수 있다.
일부 구현에서, 각각의 클라이언트 장치(110)는 가상 평가(112)의 인스턴스를 포함할 수 있다. 가상 평가(112)는 교육 평가 시험, 직업 평가 시험, 또는 표준화되거나 특정 개인 또는 개인의 그룹에 고유하게 조정된 임의의 적절한 평가를 나타낼 수 있다.
도 2는 일부 구현에 따른, 온라인 게이밍 컨텍스트에서 2D 이미지로부터 3D 메시를 생성하기 위한 예시적인 시스템 아키텍처의 도식이다. 도 2 및 다른 도면은 유사한 요소를 식별하기 위해 유사한 참조 번호를 사용한다. "210"과 같이 참조 번호 뒤에 오는 문자는 텍스트가 해당 특정 참조 번호를 갖는 요소를 구체적으로 지칭함을 나타낸다. "210"과 같이 다음 문자가 없는 텍스트의 참조 번호는 해당 참조 번호를 포함하는 도면의 요소 일부 또는 전체를 지칭한다 (예컨대, 텍스트에서 "210"은 도면에서 참조 번호 "210a", "210b" 및/또는 "210n"을 지칭함).
시스템 아키텍처(200)(여기에서, "시스템"이라고도 지칭됨)는 온라인 게이밍 서버(202), 데이터 저장소(220), 클라이언트 장치(210a, 210b 및 210n)(여기에서 일반적으로 "클라이언트 장치(들)(210)"로 지칭됨) 및 개발자 장치(230a 및 230n)(여기에서 일반적으로 "개발자 장치(들)(230)"로 지칭됨)를 포함한다. 게이밍 서버(202), 데이터 저장소(220), 클라이언트 장치(210) 및 개발자 장치(230)는 네트워크(222)를 통해 결합된다. 일부 구현에서, 클라이언트 장치(들)(210) 및 개발자 장치(들)(230)는 동일하거나 동일한 유형의 장치를 지칭할 수 있다.
온라인 게이밍 서버(202)는 그 중에서도, 게임 엔진(204), 하나 이상의 게임(206) 및 그래픽 엔진(208)을 포함할 수 있다. 일부 구현에서, 그래픽 엔진(208)은 온라인 게이밍 서버(202)가 그래픽 및 애니메이션 기능을 제공하도록 허가하는 시스템, 애플리케이션 또는 모듈일 수 있다. 일부 구현에서, 그래픽 엔진(208)은 도 3 또는 4에 도시된 흐름도 또는 도 5a 또는 5b의 프로세스와 관련하여 아래에서 설명되는 동작 중 하나 이상을 수행할 수 있다. 클라이언트 장치(210)는 게임 애플리케이션(212) 및 입력/출력(I/O) 인터페이스(214)(예컨대, 입력/출력 장치)를 포함할 수 있다. 입력/출력 장치는 마이크, 스피커, 헤드폰, 디스플레이 장치, 마우스, 키보드, 게임 컨트롤러, 터치스크린, 가상 현실 콘솔 등 중 하나 이상을 포함할 수 있다.
개발자 장치(230)는 게임 애플리케이션(232) 및 입력/출력(I/O) 인터페이스(234)(예컨대, 입력/출력 장치)를 포함할 수 있다. 입력/출력 장치는 마이크, 스피커, 헤드폰, 디스플레이 장치, 마우스, 키보드, 게임 컨트롤러, 터치스크린, 가상 현실 콘솔 등 중 하나 이상을 포함할 수 있다.
시스템 아키텍처(200)는 예시를 위해 제공된다. 상이한 구현에서, 시스템 아키텍처(200)는 도 2에 도시된 것과 동일하거나 상이한 방식으로 구성된 동일하거나, 더 적거나, 더 많거나, 또는 상이한 요소들을 포함할 수 있다.
일부 구현에서, 네트워크(222)는 공중 네트워크(예컨대, 인터넷), 사설 네트워크(예컨대, LAN(local area network) 또는 WAN(wide area network)), 유선 네트워크(예컨대, 이더넷 네트워크), 무선 네트워크(예컨대, 802.11 네트워크, Wi-Fi ® 네트워크 또는 WLAN(wireless LAN)), 셀룰러 네트워크(예컨대, 5G 네트워크, LTE(long term evolution) 네트워크 등), 라우터, 허브, 스위치, 서버 컴퓨터 또는 이들의 조합을 포함할 수 있다.
일부 구현에서, 데이터 저장소(220)는 비일시적 컴퓨터 판독 가능 메모리(예컨대, 랜덤 액세스 메모리), 캐시, 드라이브(예컨대, 하드 드라이브), 플래시 드라이브, 데이터베이스 시스템, 또는 데이터를 저장할 수 있는 다른 유형의 컴포넌트 또는 장치일 수 있다. 데이터 저장소(220)는 또한 다중 컴퓨팅 장치(예컨대, 다중 서버 컴퓨터)에 걸쳐 있을 수도 있는, 다중 저장 컴포넌트(예컨대, 다중 드라이브 또는 다중 데이터베이스)를 포함할 수 있다. 일부 구현에서, 데이터 저장소(220)는 클라우드 기반 저장소를 포함할 수 있다.
일부 구현에서, 온라인 게이밍 서버(202)는 하나 이상의 컴퓨팅 장치(예컨대, 클라우드 컴퓨팅 시스템, 랙마운트 서버, 서버 컴퓨터, 물리적 서버의 클러스터 등)를 갖는 서버를 포함할 수 있다. 일부 구현에서, 온라인 게이밍 서버(202)는 독립적인 시스템일 수 있거나, 다중 서버를 포함할 수 있거나, 다른 시스템 또는 서버의 일부일 수 있다.
일부 구현에서, 온라인 게이밍 서버(202)는 온라인 게이밍 서버(202)에서 동작을 수행하고 사용자에게 온라인 게이밍 서버(202)에 대한 접근을 제공하는 데 사용될 수 있는 하나 이상의 컴퓨팅 장치(예컨대, 랙마운트 서버, 라우터 컴퓨터, 서버 컴퓨터, 개인용 컴퓨터, 메인프레임 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨터, 데스크톱 컴퓨터 등), 데이터 저장소(예컨대, 하드 디스크, 메모리, 데이터베이스), 네트워크, 소프트웨어 컴포넌트 및/또는 하드웨어 컴포넌트를 포함할 수 있다. 온라인 게이밍 서버(202)는 또한 온라인 게이밍 서버(202)에 의해 제공되는 콘텐츠에 대한 접근을 사용자에게 제공하는 데 사용될 수 있는 웹사이트(예컨대, 웹 페이지) 또는 애플리케이션 백엔드 소프트웨어를 포함할 수 있다. 예컨대, 사용자는 클라이언트 장치(210) 상의 게임 애플리케이션(212)을 사용하여, 온라인 게이밍 서버(202)에 접근할 수 있다.
일부 구현에서, 게임플레이 세션 데이터는 온라인 게이밍 서버(202), 게임 애플리케이션(212) 및/또는 게임 애플리케이션(232)을 통해 생성되고, 데이터 저장소(220)에 저장된다. 게임 플레이어의 허가로, 게임플레이 세션 데이터는 관련 메타데이터, 예컨대, 게임 식별자(들); 플레이어와 연관된 장치 데이터; 플레이어(들)의 인구통계학적 정보; 게임 플레이 세션 식별자(들); 채팅 기록; 각 플레이어의 세션 시작 시간, 세션 종료 시간 및 세션 기간; 가상 게임 환경 내에서 참가자 아바타(들)의 상대적 위치; 하나 이상의 플레이어(들)에 의한 게임 내 구매(들); 게임 플레이어에 의해 활용된 액세서리; 등을 포함할 수 있다.
일부 구현에서, 채팅 기록은 게임 애플리케이션(212) 및/또는 게임 애플리케이션(232)을 통해 생성되거나, 데이터 저장소(220)에 저장된다. 채팅 기록은 채팅 콘텐츠 및 연관 메타데이터, 예컨대, 대응하는 발송자 및 수신자(들)를 갖는 각각의 메시지가 있는 채팅의 텍스트 콘텐츠; 메시지 형식(예컨대, 볼드체, 이탤릭체, 크게 등); 메시지 타임스탬프; 가상 게임 환경 내의 참가자 아바타(들)의 상대적 위치, 게임 참가자에 의해 활용된 액세서리 등을 포함할 수 있다. 일부 구현에서, 채팅 기록은 다국어 콘텐츠를 포함할 수 있고, 게임의 상이한 게임 플레이 세션에서 상이한 언어로 된 메시지가 데이터 저장소(220)에 저장될 수 있다.
일부 구현에서, 채팅 기록은 타임스탬프에 기초하여 참가자 간의 대화 형태로 저장될 수 있다. 일부 구현에서, 채팅 기록은 메시지(들)의 발신자에 기초하여 저장될 수 있다. 일부 구현에서, "사용자"는 단일 개인으로 표현될 수 있다. 그러나, 본 개시의 다른 구현은 사용자의 세트 또는 자동화된 소스에 의해 제어되는 엔티티인 "사용자"(예컨대, 사용자 생성)를 포함한다. 예컨대, 사용자 생성 콘텐츠 시스템에서 커뮤니티 또는 그룹으로 연합된 개별 사용자의 세트는 "사용자"로 간주될 수 있다.
일부 구현에서, 온라인 게이밍 서버(202)는 가상 게이밍 서버일 수 있다. 예컨대, 게이밍 서버는 네트워크(222)를 통해 클라이언트 장치(210)를 사용하여 게임에 액세스하거나 인터랙팅할 수 있는 사용자의 커뮤니티에 싱글 플레이어 또는 멀티 플레이어 게임을 제공할 수 있다. 일부 구현에서, 게임(여기에서 “비디오 게임”, “온라인 게임" 또는 "가상 게임"이라고도 지칭됨)은 예컨대, 2차원(2D) 게임, 3차원(3D) 게임(예컨대, 3D 사용자 생성 게임), 가상 현실(VR) 게임 또는 증강 현실(AR) 게임일 수 있다. 일부 구현에서, 사용자는 다른 사용자와 게임플레이에 참여할 수 있다. 일부 구현에서, 게임은 게임의 다른 사용자와 실시간으로 플레이될 수 있다.
일부 구현에서, 게임플레이는 게임(예컨대, 206) 내에서 클라이언트 장치(예컨대, 210)를 사용하는 하나 이상의 플레이어의 인터랙션 또는 클라이언트 장치(210)의 디스플레이 또는 다른 출력 장치(예컨대, 214) 상의 인터랙션의 표시를 지칭할 수 있다.
일부 구현에서, 게임(206)은 게임 콘텐츠(예컨대, 디지털 미디어 아이템)를 엔티티에 제시하도록 구성된 소프트웨어, 펌웨어 또는 하드웨어를 사용하여 실행되거나 로드될 수 있는 전자 파일을 포함할 수 있다. 일부 구현에서, 게임 애플리케이션(212)은 실행될 수 있고, 게임(206)은 게임 엔진(204)과 관련하여 렌더링될 수 있다. 일부 구현에서, 게임(206)은 규칙의 공통 세트 또는 공통 목표를 가질 수 있고, 게임(206)의 환경은 규칙의 공통 세트 또는 공통 목표를 공유한다. 일부 구현에서, 상이한 게임은 서로 상이한 규칙 또는 목표를 가질 수 있다.
일부 구현에서, 게임은 다중 환경이 링크될 수 있는 하나 이상의 환경(여기에서, "게이밍 환경" 또는 "가상 환경"이라고도 지칭됨)을 가질 수 있다. 환경의 예시는 3차원(3D) 환경일 수 있다. 게임(206)의 하나 이상의 환경은 여기에서 "세계" 또는 "게이밍 세계" 또는 "가상 세계" 또는 "유니버스"로 집합적으로 지칭될 수 있다. 세계의 예시는 게임(206)의 3D 세계일 수 있다. 예컨대, 사용자는 다른 사용자에 의해 생성된 다른 가상 환경에 링크되는 가상 환경을 구축할 수 있다. 가상 게임의 캐릭터는 가상 경계를 넘어 인접한 가상 환경으로 들어갈 수 있다.
3D 환경 또는 3D 세계는 게임 콘텐츠를 나타내는 기하학적 데이터의 3차원 표현을 사용하는 그래픽을 사용한다는 점에 유의할 수 있다 (또는 기하학적 데이터의 3D 표현이 사용되는지 여부에 관계없이 적어도 현재 게임 콘텐츠가 3D 콘텐츠로 나타남). 2D 환경 또는 2D 세계는 게임 콘텐츠를 나타내는 기하학적 데이터의 2차원 표현을 사용하는 그래픽을 사용한다.
일부 구현에서, 온라인 게이밍 서버(202)는 하나 이상의 게임(206)을 호스팅할 수 있고, 사용자가 클라이언트 장치(210)의 게임 애플리케이션(212)을 사용하여 게임(206)과 인터랙팅하는 것을 허가할 수 있다. 온라인 게이밍 서버(202)의 사용자는 게임(206)을 플레이, 생성, 인터랙팅 또는 구축하고, 다른 사용자와 통신하고, 그리고/또는 게임(206)의 객체(예컨대, 여기에서 “아이템(들)” 또는 “게임 객체” 또는 “가상 게임 아이템(들)이라고도 지칭됨)를 생성 및 구축할 수 있다.
예컨대, 사용자 생성 가상 아이템을 생성하는 데 있어, 사용자는 그 중에서도 캐릭터, 캐릭터를 위한 장식, 인터랙티브 게임을 위한 하나 이상의 가상 환경을 생성하거나, 게임(206)에서 사용된 구조를 구축할 수 있다. 일부 구현에서, 사용자는 플랫폼 내 화폐(예컨대, 가상 화폐)와 같은, 게임 가상 게임 객체를 온라인 게이밍 서버(202)의 다른 사용자와 구매, 판매 또는 거래할 수 있다. 일부 구현에서, 온라인 게이밍 서버(202)는 게임 콘텐츠를 게임 애플리케이션(예컨대, 212)으로 전송할 수 있다. 일부 구현에서, 게임 콘텐츠(여기에서 "콘텐츠"라고도 지칭됨)는 온라인 게이밍 서버(202) 또는 게임 애플리케이션과 연관된 임의의 데이터 또는 소프트웨어 명령어(예컨대, 게임 객체, 게임, 사용자 정보, 비디오, 이미지, 명령, 미디어 아이템 등)를 지칭할 수 있다. 일부 구현에서, 게임 객체(예컨대, 여기에서 "아이템(들)" 또는 "객체" 또는 "가상 객체" 또는 "가상 게임 아이템(들)"이라고도 지칭됨)는 온라인 게이밍 서버(202)의 게임 애플리케이션(206) 또는 클라이언트 장치(210)의 게임 애플리케이션(212)에 사용되거나, 생성되거나, 공유되거나, 그 외 도시되는 객체를 지칭할 수 있다. 예컨대, 게임 객체는 부품, 모델, 캐릭터, 액세서리, 도구, 무기, 의복, 건물, 차량, 화폐, 식물군, 동물군, 전술한 것의 컴포넌트(예컨대, 건물의 창) 등을 포함할 수 있다.
일부 구현에서, 게임(206)은 특정 사용자 또는 사용자의 특정 그룹과 연관되거나 (예컨대, 비공개 게임), 온라인 게이밍 서버(202)에 대한 액세스를 갖는 사용자에게 널리 이용 가능하게 만들어질 수 있다 (예컨대, 공개 게임). 온라인 게이밍 서버(202)가 하나 이상의 게임(206)을 특정 사용자 또는 사용자 그룹과 연관시키는 일부 구현에서, 온라인 게이밍 서버(202)는 사용자 계정 정보(예컨대, 사용자 이름 및 비밀번호와 같은 사용자 계정 식별자)를 사용하여 특정 사용자(들)를 게임(206)과 연관시킬 수 있다.
일부 구현에서, 온라인 게이밍 서버(202) 또는 클라이언트 장치(210)는 게임 엔진(204) 또는 게임 애플리케이션(212)을 포함할 수 있다. 일부 구현에서, 게임 엔진(204)은 게임(206)의 개발 또는 실행을 위해 사용될 수 있다. 예컨대, 게임 엔진(204)은 다른 특징 중에서, 2D, 3D, VR 또는 AR 그래픽을 위한 렌더링 엔진("렌더러(renderer)"), 물리 엔진, 충돌 감지 엔진(및 충돌 응답), 사운드 엔진, 스크립팅 기능, 애니메이션 엔진, 인공 지능 엔진, 네트워킹 기능, 스트리밍 기능, 메모리 관리 기능, 스레딩 기능(threading functionality), 장면 그래프 기능 또는 시네마틱에 대한 비디오 지원을 포함할 수 있다. 게임 엔진(204)의 컴포넌트는 게임을 컴퓨팅하고 렌더링하는 것을 돕는 명령(예컨대, 렌더링 명령, 충돌 명령, 물리 명령 등)을 생성할 수 있다. 일부 구현에서, 클라이언트 장치(210)의 게임 애플리케이션(212)은 각각 독립적으로, 온라인 게이밍 서버(202)의 게임 엔진(204)과 협력하여, 또는 이 둘의 조합으로 작동할 수 있다.
일부 구현에서, 온라인 게이밍 서버(202) 및 클라이언트 장치(210) 모두는 게임 엔진(각각, 204 및 212)을 실행할 수 있다. 게임 엔진(204)을 사용하는 온라인 게이밍 서버(202)는 일부 또는 모든 게임 엔진 기능(예컨대, 물리 명령, 렌더링 명령 생성 등)을 수행하거나, 일부 또는 모든 게임 엔진 기능을 클라이언트 장치(210)의 게임 엔진(204)에 오프로드할 수 있다. 일부 구현에서, 각각의 게임(206)은 온라인 게이밍 서버(202)에서 수행되는 게임 엔진 기능과 클라이언트 장치(210)에서 수행되는 게임 엔진 기능 사이에 상이한 비율을 가질 수 있다. 예컨대, 온라인 게이밍 서버(202)의 게임 엔진(204)은 적어도 2개의 게임 객체 사이에 충돌이 있는 경우 물리 명령을 생성하는 데 사용될 수 있는 반면, 추가 게임 엔진 기능(예컨대, 렌더링 명령 생성)은 클라이언트 장치(210)로 오프로드될 수 있다. 일부 구현에서, 온라인 게이밍 서버(202) 및 클라이언트 장치(210) 상에서 수행되는 게임 엔진 기능의 비율은 게임플레이 조건에 기초하여 (예컨대, 동적으로) 변경될 수 있다. 예컨대, 특정 게임(206)의 게임플레이에 참여하는 사용자의 수가 임계 수를 초과하는 경우, 온라인 게이밍 서버(202)는 클라이언트 장치(210)에 의해 이전에 수행되었던 하나 이상의 게임 엔진 기능을 수행할 수 있다.
예컨대, 사용자는 클라이언트 장치(210)에서 게임(206)을 플레이할 수 있고, 제어 명령어(예컨대, 오른쪽, 왼쪽, 위, 아래, 사용자 선택, 또는 캐릭터 위치 및 속도 정보 등과 같은 사용자 입력)를 온라인 게이밍 서버(202)에 전송할 수 있다. 클라이언트 장치(210)로부터 제어 명령어를 수신한 후, 온라인 게이밍 서버(202)는 게임플레이 명령어(예컨대, 그룹 게임플레이에 참여하는 캐릭터의 위치 및 속도 정보 또는 렌더링 명령, 충돌 명령과 같은 명령 등)를 제어 명령어에 기초하여 클라이언트 장치(210)에 전송할 수 있다. 예컨대, 온라인 게이밍 서버(202)는 클라이언트 장치(210)에 대한 게임플레이 명령어(들)를 생성하기 위해 제어 명령어에 대한 (예컨대, 게임 엔진(204)을 사용하는) 하나 이상의 논리 연산을 수행할 수 있다. 다른 경우에서, 온라인 게이밍 서버(202)는 하나의 클라이언트 장치(210)로부터 게임(206)에 참여하는 다른 클라이언트 장치로(예컨대, 클라이언트 장치(210a)로부터 클라이언트 장치(210b)로) 제어 명령어 중 하나 이상을 전달할 수 있다. 클라이언트 장치(210)는 게임플레이 명령어를 사용하고, 클라이언트 장치(210)의 디스플레이 상에서의 표시를 위해 게임플레이를 렌더링할 수 있다.
일부 구현에서, 제어 명령어는 사용자의 캐릭터의 게임 내 활동을 나타내는 명령어를 지칭할 수 있다. 예컨대, 제어 명령어는 오른쪽, 왼쪽, 위, 아래, 사용자 선택, 자이로스코프 위치 및 방향 데이터, 힘 센서 데이터 등과 같은 게임 내 활동을 제어하기 위한 사용자 입력을 포함할 수 있다. 제어 명령어는 캐릭터 위치 및 속도 정보를 포함할 수 있다. 일부 구현에서, 제어 명령어는 온라인 게이밍 서버(202)로 직접 전송된다. 다른 구현에서, 제어 명령어는 클라이언트 장치(210)로부터 다른 클라이언트 장치로(예컨대, 클라이언트 장치(210b)로부터 클라이언트 장치(210n)로) 전송될 수 있으며, 여기에서 다른 클라이언트 장치는 로컬 게임 엔진(204)을 사용하여 게임플레이 명령어를 생성한다. 제어 명령어는 음성 통신 메시지 또는 오디오 장치(예컨대, 스피커, 헤드폰 등)에서 다른 사용자로부터의 다른 사운드, 예컨대, 음성 통신 또는 여기에서 설명된 오디오 공간화 기법을 사용하여 생성된 다른 사운드를 플레이하기 위한 명령어를 포함할 수 있다.
일부 구현에서, 게임플레이 명령어는 클라이언트 장치(210)가 멀티 플레이어 게임과 같은, 게임의 게임플레이를 렌더링할 수 있게 하는 명령어를 지칭할 수 있다. 게임플레이 명령어는 사용자 입력(예컨대, 제어 명령어), 캐릭터 위치 및 속도 정보, 또는 명령(예컨대, 물리 명령, 렌더링 명령, 충돌 명령 등) 중 하나 이상을 포함할 수 있다.
일부 구현에서, 캐릭터(또는 일반적으로 게임 객체)는 컴포넌트로부터 구성되고, 그 중 하나 이상이 사용자에 의해 선택될 수 있으며, 이는 편집에서 사용자를 돕기 위해 자동으로 함께 결합된다. 일부 구현에서 캐릭터는 3D 모델로 구현되며, 캐릭터를 그리는 데 사용되는 표면 표현(스킨 또는 메시라고도 알려짐)과 상호 연결된 본의 계층적 세트(스켈레톤 또는 리그라고도 알려짐)를 포함한다. 리그는 캐릭터를 애니메이팅하고 캐릭터에 의한 움직임과 행위를 시뮬레이팅하는 데 활용될 수 있다. 3D 모델은 데이터 구조로 표현될 수 있으며, 데이터 구조의 하나 이상의 파라미터는 문자의 다양한 속성, 예컨대, 치수(높이, 너비, 둘레 등); 체형; 움직임 스타일; 신체 부위의 수/유형; 비율(예컨대, 어깨와 엉덩이 비율); 머리 크기; 등을 변경하기 위해 수정될 수 있다. 하나 이상의 캐릭터(여기에서, "아바타" 또는 "모델"이라고도 지칭됨)는 게임(206)과의 사용자 인터랙션을 용이하게 하기 위해 사용자가 캐릭터를 제어할 수 있는 사용자와 연관될 수 있다.
일부 구현에서, 캐릭터는 신체 일부(예컨대, 머리카락, 팔, 다리 등) 및 액세서리(예컨대, 티셔츠, 안경, 장식 이미지, 도구 등)와 같은 컴포넌트를 포함할 수 있다. 일부 구현에서, 커스터마이징 가능한 캐릭터의 신체 부분은 그 중에서도, 머리 유형, 신체 부분 유형(팔, 다리, 몸통 및 손), 얼굴 유형, 머리카락 유형 및 피부 유형을 포함한다. 일부 구현에서, 커스터마이징 가능한 액세서리는 의복(예컨대, 셔츠, 바지, 모자, 신발, 안경 등), 무기 또는 기타 도구를 포함한다.
일부 구현에서, 신체 부분과 같은 컴포넌트는 블록, 실린더, 구 등과 같은 기본 기하학적 형상 또는 쐐기(wedge), 원환체(torus), 튜브, 채널 등 일부 다른 기본 형상일 수 있다. 일부 구현에서 컴포넌트는 포유류, 어류 또는 조류와 같은 생물학적 자산일 수 있다. 일부 구현에서, 생성자 모듈은 온라인 게이밍 서버(202)의 다른 사용자가 보거나 사용할 수 있도록 사용자의 캐릭터를 공개할 수 있다. 일부 구현에서, 캐릭터, 다른 게임 객체, 게임(206) 또는 게임 환경을 생성하고, 수정하고, 커스터마이징하는 것은 I/O 인터페이스(예컨대, 개발자 인터페이스)를 사용하고, 스크립팅이 있거나 없는, 또는 API(application programming interface)가 있거나 없는, 사용자에 의해 수행될 수 있다. 제한보다는 예시의 목적으로 캐릭터가 휴머노이드 형태를 갖는 것으로 설명된다는 점에 유의할 수 있다. 캐릭터는 차량, 동물, 무생물 객체 또는 기타 창의적인 형태와 같은 임의의 형태를 가질 수 있음을 더 유의할 수 있다.
일부 구현에서, 온라인 게이밍 서버(202)는 사용자에 의해 생성된 캐릭터를 데이터 저장소(220)에 저장할 수 있다. 일부 구현에서, 온라인 게이밍 서버(202)는 사용자에게 제시될 수 있는 캐릭터 카탈로그 및 게임 카탈로그를 유지한다. 일부 구현에서, 게임 카탈로그는 온라인 게이밍 서버(202)에 저장된 게임의 이미지를 포함한다. 또한, 사용자는 선택된 게임에 참여하기 위해 캐릭터 카탈로그로부터 캐릭터(예컨대, 사용자 또는 다른 사용자에 의해 생성된 캐릭터)를 선택할 수 있다. 캐릭터 카탈로그는 온라인 게이밍 서버(202)에 저장된 캐릭터의 이미지를 포함한다. 일부 구현에서, 캐릭터 카탈로그의 캐릭터 중 하나 이상은 사용자에 의해 생성되거나 커스터마이징될 수 있다. 일부 구현에서, 선택된 캐릭터는 캐릭터의 컴포넌트 중 하나 이상을 정의하는 캐릭터 설정을 가질 수 있다.
일부 구현에서, 클라이언트 장치(들)(210)는 각각 개인용 컴퓨터(PC), 모바일 장치(예컨대, 랩톱, 휴대폰, 스마트폰, 태블릿 컴퓨터 또는 넷북 컴퓨터), 네트워크 연결된 텔레비전, 게이밍 콘솔 등과 같은 컴퓨팅 장치를 포함할 수 있다. 일부 구현에서, 클라이언트 장치(210)는 또한 "사용자 장치"로 지칭될 수 있다. 일부 구현에서, 하나 이상의 클라이언트 장치(210)는 임의의 주어진 순간에 온라인 게이밍 서버(202)에 접속할 수 있다. 클라이언트 장치(210)의 수는 예시로서 제공된다는 점에 유의할 수 있다. 일부 구현에서, 임의의 수의 클라이언트 장치(210)가 사용될 수 있다.
일부 구현에서, 각각의 클라이언트 장치(210)는 게임 애플리케이션(212)의 인스턴스를 각각 포함할 수 있다. 일 구현에서, 게임 애플리케이션(212)은 사용자가 온라인 게이밍 서버(202)에 의해 호스팅되는 가상 게임에서 가상 캐릭터를 제어하거나, 게임(206), 이미지, 비디오 아이템, 웹 페이지, 문서 등과 같은 콘텐츠를 보거나 업로드하는 것과 같이, 온라인 게이밍 서버(202)를 사용하고 인터랙팅하는 것을 허가할 수 있다. 일 예시에서, 게임 애플리케이션은 웹 서버에 의해 제공된 콘텐츠(예컨대, 가상 환경의 가상 캐릭터 등)에 액세스, 검색, 제시 또는 탐색할 수 있는 웹 애플리케이션(예컨대, 웹 브라우저와 함께 동작하는 애플리케이션)일 수 있다. 다른 예시에서, 게임 애플리케이션은 클라이언트 장치(210)에 설치 및 로컬로 실행되고, 사용자가 온라인 게이밍 서버(202)와 인터랙팅할 수 있도록 허용하는 네이티브 애플리케이션(예컨대, 모바일 애플리케이션, 앱, 또는 게이밍 프로그램)일 수 있다. 게임 애플리케이션은 콘텐츠(예컨대, 웹 페이지, 미디어 뷰어)를 사용자에게 렌더링, 디스플레이 또는 제시할 수 있다. 구현에서, 게임 애플리케이션은 또한 웹 페이지에 임베디드된 임베디드 미디어 플레이어(예컨대, Flash ® 플레이어)를 포함할 수 있다.
본 개시의 양태에 따르면, 게임 애플리케이션은 사용자가 온라인 게이밍 서버(202)와 인터랙팅할 뿐만 아니라(예컨대, 온라인 게이밍 서버(202)에 의해 호스팅되는 게임(206)을 플레이함), 콘텐츠를 온라인 게이밍 서버(202)에 구축하고, 생성하고, 편집하고, 업로드하는 온라인 게이밍 서버 애플리케이션일 수 있다. 이와 같이, 게임 애플리케이션은 온라인 게이밍 서버(202)에 의해 클라이언트 장치(들)(210)에 제공될 수 있다. 다른 예시에서, 게임 애플리케이션은 서버로부터 다운로드되는 애플리케이션일 수 있다.
일부 구현에서, 각 개발자 장치(230)는 각각 게임 애플리케이션(232)의 인스턴스를 포함할 수 있다. 일 구현에서, 게임 애플리케이션(232)은 개발자 사용자(들)가 온라인 게이밍 서버(202)에 의해 호스팅되는 가상 게임에서 가상 캐릭터를 제어하거나, 게임(206), 이미지, 비디오 아이템, 웹 페이지, 문서 등과 같은 콘텐츠를 보거나 업로드하는 것과 같이 온라인 게이밍 서버(202)를 사용하고 인터랙팅하도록 허가할 수 있다. 일 예시에서, 게임 애플리케이션은 웹 서버에 의해 제공된 콘텐츠(예컨대, 가상 환경의 가상 캐릭터 등)에 접근, 검색, 제시 또는 탐색할 수 있는 웹 애플리케이션(예컨대, 웹 브라우저와 함께 동작하는 애플리케이션)일 수 있다. 다른 예시에서, 게임 애플리케이션은 클라이언트 장치(210)에 대해 로컬로 설치 및 실행되고, 사용자가 온라인 게이밍 서버(202)와 인터랙팅하도록 허용하는 네이티브 애플리케이션(예컨대, 모바일 애플리케이션, 앱 또는 게임 프로그램)일 수 있다. 게임 애플리케이션은 사용자에게 콘텐츠(예컨대, 웹 페이지, 미디어 뷰어)를 렌더링, 디스플레이 또는 제시할 수 있다. 구현에서, 게임 애플리케이션은 또한 웹 페이지에 임베딩된, 임베딩된 미디어 플레이어(예컨대, Flash ® 플레이어)를 포함할 수 있다.
본 개시의 양태에 따르면, 게임 애플리케이션(232)은 사용자가 온라인 게이밍 서버(202)와 인터랙팅(예컨대, 온라인 게이밍 서버(202)에 의해 호스팅된 게임(206)을 제공 및/또는 플레이함)할 뿐만 아니라 온라인 게이밍 서버(202)에 콘텐츠를 구축, 생성, 편집, 업로드하기 위한 온라인 게이밍 서버 애플리케이션일 수 있다. 이와 같이, 게임 애플리케이션은 온라인 게이밍 서버(202)에 의해 클라이언트 장치(들)(210)에 제공될 수 있다. 다른 예시에서, 게임 애플리케이션(232)은 서버로부터 다운로드되는 애플리케이션일 수 있다. 게임 애플리케이션(232)은 온라인 게이밍 서버(202)와 인터랙팅하고, 게임 개발자에 의해 개발, 호스팅 또는 제공되는 하나 이상의 게임(206)에 대한 사용자 자격 증명, 사용자 통화 등에 대한 접근을 얻도록 구성될 수 있다.
일반적으로, 온라인 게이밍 서버(202)에 의해 수행되는 것으로 일 구현에서 설명된 기능은 또한 적절한 경우 다른 구현에서 클라이언트 장치(들)(210) 또는 서버에 의해 수행될 수 있다. 또한, 특정 컴포넌트에 부여된 기능은 함께 동작하는 상이한 또는 다수의 컴포넌트에 의해 수행될 수 있다. 온라인 게이밍 서버(202)는 또한 적절한 API(application programming interface)를 통해 다른 시스템 또는 장치에 제공되는 서비스로서 접근될 수 있으며, 따라서 웹사이트에서의 사용에 제한되지 않는다.
도 3은 일부 구현에 따른, 트레이닝된 머신 러닝(ML) 모델을 사용하여 2D 이미지로부터 객체의 3D 메시를 생성하기 위한 예시적인 방법(300)을 도시한다. 일부 구현에서, 방법(300)은 예컨대, 도 1 및 도 2을 각각 참조하여 설명된 온라인 평가 플랫폼(102) 또는 게이밍 서버(202)에서 구현될 수 있다. 일부 구현에서, 방법(300)의 일부 또는 전부는 도 1 및 2에 도시된 바와 같이 하나 이상의 클라이언트 장치(110 및/또는 210), 하나 이상의 개발자 장치(230), 또는 하나 이상의 서버 장치(들)(202), 및/또는 개발자 장치(들), 서버 장치(들) 및 클라이언트 장치(들)의 조합에서 구현될 수 있다. 설명된 예시에서, 구현 시스템은 하나 이상의 디지털 프로세서 또는 처리 회로("프로세서"), 및 하나 이상의 저장 장치(예컨대, 데이터 저장소(220), 데이터 저장소(108) 또는 다른 스토리지)를 포함한다. 일부 구현에서, 하나 이상의 서버 및/또는 클라이언트의 상이한 컴포넌트는 방법(300)의 상이한 블록 또는 다른 부분을 수행할 수 있다. 일부 예시에서, 제1 장치는 방법(300)의 블록을 수행하는 것으로 설명된다. 일부 구현은 결과 또는 데이터를 제1 장치로 전송할 수 있는 하나 이상의 다른 장치(예컨대, 다른 클라이언트 장치 또는 서버 장치)에 의해 수행되는 방법(300)의 하나 이상의 블록을 가질 수 있다.
방법(300)은 블록(310)에서 시작할 수 있다. 블록(310)에서, 객체의 2차원(2D) 이미지가 트레이닝된 머신 러닝 모델에 대한 입력으로서 제공된다. 2D 이미지는 데이터 저장소에서 검색되거나, 사용자에 의한 사용자 입력으로 제공될 수 있다. 객체는 평가 또는 게이밍 환경에 포함되는, 가상 환경의 일부인 객체, 예컨대, 동물, 어류, 포유류, 조류 등과 같은 생물학적 객체 또는 자동차, 비행기 등과 같은 인공 객체의 표현일 수 있다. 2D 이미지는 이전에 ML 모델(들)에 대한 입력으로 제공되지 않은 객체의 이미지를 포함할 수 있거나, 이전에 ML 모델(들)에 대한 입력으로 제공된 객체의 이미지일 수 있다. 일부 구현에서, 2D 이미지는 실제 객체의 사진일 수 있다. 블록(310) 다음에 블록(320)이 올 수 있다.
블록(320)에서, 객체와 연관된 템플릿 3차원(3D) 메시가 획득된다. 일부 구현에서, 객체의 카테고리는 제공된 2D 이미지의 이미지 분석에 기초하여 결정될 수 있다. 전술한 것처럼, 가상 환경의 객체 및/또는 캐릭터는 3D 모델로 구현되고, 객체/캐릭터를 그리는 데 사용되는 표면 표현(스킨 또는 메시로도 알려짐) 및 상호 연결된 본의 계층적 세트(스켈레톤 또는 리그로도 알려짐)를 포함한다. 리그는 객체를 애니메이팅하고 캐릭터에 의한 모션 및 활동을 시뮬레이션하는 데 활용될 수 있다. 3D 모델은 데이터 구조로 표현될 수 있고, 데이터 구조의 하나 이상의 파라미터는 객체 및/또는 캐릭터의 다양한 특성 (속성), 예컨대, 치수(높이, 너비, 둘레 등); 신체 유형; 움직임 스타일; 신체 부분의 수/유형; 비율(예컨대, 어깨와 엉덩이 비율); 머리 크기; 등을 변경하도록 수정될 수 있다.
일부 구현에서, 템플릿 3D 메시는 위상 동형 템플릿 메시이다. 템플릿 3D 메시는 이전에 생성 및 저장된 템플릿 메시 세트에서 선택될 수 있으며, 사용자 생성 및 자동 생성 메시를 모두 포함할 수 있다. 일부 구현에서, 다수의 템플릿 메시가 사용자에게 제시될 수 있고, 템플릿 메시는 사용자로부터 수신된 입력에 기초하여 선택될 수 있다. 일부 구현에서, 방법(300)의 수행을 위해 복수의 템플릿 메시가 선택될 수 있다. 블록(320) 다음에 블록(330)이 올 수 있다.
블록(330)에서, 객체에 대한 3D 메시는 2D 이미지 및 템플릿 3D 메시에 기초하는 트레이닝된 머신 러닝 모델을 사용하여 생성된다. 일부 구현에서, 트레이닝된 머신 러닝 모델은 인공 신경망(ANN), 예컨대, 멀티레이어 퍼셉트론(MLP)과 같은 피드포워드 ANN을 포함할 수 있다. 일부 구현에서, 트레이닝된 머신 러닝 모델은 객체의 2D 이미지에 기초하여, 객체의 3D 메시를 생성하도록 트레이닝되는 메시 인코더, 이미지 인코더 및 복수의 메시 디코더를 포함할 수 있다.
머신 러닝 모델은 다양한 객체와 그에 대응하는 기하학, 메시 및 이미지를 사용하여 트레이닝된다. 머신 러닝 모델의 트레이닝에 대한 추가 세부사항은 도 4 및 도 5a-5b을 참조하여 더 상세히 설명된다.
일부 구현에서, 제공된 2D 이미지를 형상 공간 벡터로 인코딩하기 위해 이미지 인코더가 활용된다. 형상 공간 벡터는 제공된 2D 이미지의 축소된 차원 표현인 n차원 벡터일 수 있다. 객체의 카테고리와 연관된 메시 디코더는 템플릿 3D 메시를 변형함으로써 형상 공간 벡터를 객체의 3D 메시로 디코딩하는 데 활용되며, 이에 의해 템플릿 메시의 정점은 템플릿 3D 메시의 토폴로지 속성을 보존하는 동형 변환을 활용하여 형상 공간 벡터에 기초하여 조정(이동)된다. 일부 구현에서, 템플릿 3D 메시를 변형하여 생성된 객체에 대한 3D 메시는 사용자 인터페이스를 통해 디스플레이될 수 있다.
일부 구현에서, 템플릿 3D 메시를 획득하기 전에, 객체의 카테고리는 이미지 매칭을 사용하여 2D 이미지에 기초하여 결정될 수 있다. 일부 구현에서, 객체의 카테고리를 결정하기 위해 이미지 세그먼테이션이 수행될 수 있다. 일부 구현에서, 객체의 카테고리는 사용자 입력에 기초하여 지정될 수 있다.
일부 구현에서, 2D 이미지의 하나 이상의 텍스처는 2D 이미지의 텍스처 정보에 따라 객체의 3D 메시에 매핑될 수 있다. 일부 구현에서, 시맨틱 세그먼테이션이 수행될 수 있고, 2D 이미지의 상이한 부분으로부터의 텍스처 정보가 객체의 3D 메시의 대응하는 부분에 매핑될 수 있다.
일부 구현에서, 템플릿 3D 메시는 공간에 배열된 메시의 복수의 정점(조인트)을 포함하는 리그와 연관된다. 리그는 상호 연결된 부분의 계층적 세트(본이라고 하며, 스켈레톤 또는 리그를 집합적으로 형성함)를 포함할 수 있다. 그러한 구현에서, 복수의 정점의 각 정점은 복수의 조인트의 적어도 하나의 다른 정점에 연결된다.
템플릿 3D 메시와 연관된 하나 이상의 애니메이션은 각각의 템플릿 애니메이션이 기본 객체의 움직임을 시뮬레이팅하기 위해 복수의 정점 중 둘 이상의 움직임을 포함하도록 미리 정의될 수 있다. 동형 템플릿 3D 메시의 활용은 템플릿 3D 메시를 변형함으로써 획득되는 객체의 생성된 3D 메시에서 템플릿 애니메이션의 재사용을 가능하게 할 수 있다.
일부 구현에서, 객체에 대한 적어도 하나의 객체 애니메이션은 하나 이상의 (미리 정의된) 템플릿 애니메이션의 대응하는 템플릿 애니메이션에서와 같은 동일한 둘 이상의 정점의 움직임을 포함하는 템플릿 3D 메시와 연관된 하나 이상의 템플릿 애니메이션 및 객체에 대한 3D 메시에 기초하여 생성될 수 있다.
일부 구현에서, 객체에 대응하는 변형된 메시에 텍스처를 적용하기 위해 UV 회귀자가 활용될 수 있다. 일부 구현에서, UV 회귀자는 객체의 3D 메시의 정점으로부터 2D 이미지로의 매핑을 생성하는 데 활용될 수 있고, 여기에서 매핑은 텍스처를 객체의 3D 메시에 적용하는 데 사용된다.
UV 매핑은 텍스처 매핑을 위해 2D 이미지를 3D 모델의 표면에 투영하는 3D 모델링 프로세스이다. 문자 "U" 및 "V"는 2D 텍스처의 축을 나타낼 수 있으며, 여기에서 "X", "Y" 및 "Z"는 모델 공간에서 3D 객체의 축을 나타낸다. 정점은 3D 모델의 어떤 정점으로 투영되는 깊이 이미지의 픽셀을 추적함으로써, UV 좌표가 할당될 수 있다. 이러한 좌표는 정점이 대응하는 텍스처 이미지에서 픽셀 위치를 나타낼 수 있다. 예컨대, 텍스처 이미지의 크기가 (256, 512)이고 정점이 (112, 234)에서 픽셀로 투영되는 경우, 해당 정점의 UV 좌표는 (112/256, 234/512) = (0.4375, 0.457)이다.
일부 구현에서, 머신 러닝 모델은 객체의 2차원 이미지 및 대응하는 변형된 메시를 활용하여 변형된 메시의 정점으로부터 객체에 대한 제2 2차원 이미지로의 UV 매핑을 생성할 수 있다. ML 모델은 예컨대, 동물, 포유류 또는 어류를 포함하는 데이터 세트와 같은, 미리 정의된 디스크립터의 세트에 대해 세분화된 시맨틱 세그먼테이션을 수행하도록 미세 조정된 트레이닝된 통계 모델일 수 있다. 이러한 디스크립터는 UV 공간을 통해 회귀를 안내하는 데 사용할 수 있다. 예컨대, 트레이닝된 통계 모델은 트레이닝된 Deeplab 모델 또는 다른 적절한 모델일 수 있다. 일부 실시예에서, UV 회귀자는 UV 공간에서 주어진 이미지 위에 "망을 던지는(cast a net)" 시도를 할 수 있다. 메시에 맞게 이미지를 왜곡하는 대신, ML 모델은 어떻게 메시를 이미지에 투영하는지 학습할 수 있다. 입력 이미지는 3D 재구성에 사용되는 것과 동일한 이미지일 수 있으므로, 이 회귀자는 자동화된 3D 재구성 파이프라인의 일부로 실행될 수 있다. 일부 실시예에서, 동물의 충분히 큰 부분이 보이는 임의의 이미지가 사용 가능할 수 있으므로, 복수의 텍스처가 동일한 메시에 적용될 수 있다. 입력은 새로운 2D 이미지 A와 소스 메시 B일 수 있다. B는 Deeplab 모델이 이미지를 생성하기 위해 트레이닝된 것과 동일한 디스크립터로 세그먼트화될 수 있다. 출력은 B의 정점으로부터 A로의 UV 매핑일 수 있다. B에 미리 정의된 UV 맵이 요구되는 것은 아니지만, 그럴 경우 UV 회귀자가 생성하는 UV를 이전 UV 맵으로 상속할 수 있다.
일부 실시예에서, UV 회귀자의 트레이닝은 디스크립터 손실을 사용하여 메시 표면으로부터 이미지 도메인으로의 맵을 학습하기 위해 네트워크, 예컨대, AtlasNet을 트레이닝하는 것을 포함할 수 있다. 입력 이미지는 각 픽셀의 디스크립터를 획득하기 위해 디스크립션 네트에 의해 처리될 수 있다. 각 반복, 각 디스크립터 클래스에 대한 포인트는 메시 표면과 타겟 이미지에서 샘플링될 수 있다. 네트워크는 샘플링된 메시 포인트를 이미지의 UV 공간에 매핑하는 데 사용될 수 있다. 회귀는 디스크립터 손실을 최소화하기 위해 AdamOptimizer(예컨대, 학습률 0.0001로)를 사용할 수 있다. 네트워크는 메시의 측면 관점 투영(side-view perspective projection)에서 생성된 UV 좌표와 함께 평균 제곱 손실을 사용하여 사전 트레이닝될 수 있다. UV 회귀자는 챔퍼 거리에 기초하는 디스크립터 손실을 포함하는 손실 함수를 사용하여 트레이닝될 수 있다.
네트워크의 트레이닝은 다음과 같이 정의되는 디스크립터 손실을 사용하여 계속될 수 있다:
디스크립터 손실: Qj가 디스크립터 클래스 j에 대한 이미지로부터의 N 샘플링 포인트의 세트라고 하고, Rj가 디스크립터 클래스 j에 대한 메시로부터의 M 샘플링 포인트의 세트라고 하자. 손실은 J에서 j에 대한 Chamfer_distance(Qj, Rj)의 j에 대한 합이고, 여기에서 J는 모든 디스크립터 클래스의 세트이고, 챔퍼 거리는 메시의 각 포인트에 대한 가장 가까운 이웃까지의 거리에 대한 합이다.
템플릿 메시 표면에서 타겟 메시 표면으로의 맵이 생성될 수 있는 것과 마찬가지로, 텍스처링을 위한 목적으로 템플릿 메시 표면에서 2D 이미지로의 맵이 생성될 수 있다. 일부 구현/실시예에서, 텍스처링을 위한 디코더는 출력 크기가 각각 1024, 512, 256, 128 및 2인 5개의 완전히 연결된 레이어를 포함할 수 있다. 각 레이어는 활성화가 없을 수 있는 최종 레이어를 제외하고 ReLU(rectified linear unit) 활성화 함수를 사용할 수 있다.
일부 실시예에서, 텍스처링은 가능한 한 문제의 객체의 대부분을 포함하는 타겟 이미지로 정보가 가장 풍부하다 (예컨대, 동물의 정면 뷰는 측면 뷰보다 메시를 텍스처링할 더 적은 정보를 갖는다). 이미지가 다른 관점보다 대략적인 측면 관점에서 동물을 포함할 때, 더 나은 결과가 생성될 수 있다. 예컨대, 모델은 메시의 측면 관점 투영에서 생성된 UV 좌표로 평균 제곱 손실을 사용하여 사전 트레이닝함으로써 준비될 수 있다.
그러나, 완벽한 측면 타겟 이미지가 수신되는 것 같지 않을 수 있으며, 매 반복마다 맵이 메시의 전체 표면에서 타겟 이미지까지 학습되기 때문에, 한 쪽이 다른 쪽보다 이미지와 더 잘 일치하게 될 것이다. 따라서 메시 텍스처링을 시도할 때 대칭 평면의 양쪽에 있는 텍스처가 일관성이 없고 비현실적일 수 있다. 이를 해결하기 위해, 회귀의 결론에서 메시의 각 면에 대한 디스크립터 손실을 별도로 계산하고, 가장 작은 값을 가진 면을 반사에 의해 전체 메시에 대한 UV 맵의 기초로 활용한다. 일부 실시예에서, AdamOptimizer는 다음과 같은 학습 파라미터로 트레이닝 전반에 걸쳐 사용될 수 있다: 학습률 = 0.0001; 베타1 = 0.9; 베타2 = 0.999; 총 에포크(epoch) 수 = 1000.
도 4는 일부 구현에 따른, 이미지 인코더를 트레이닝하는 예시적인 방법을 예시하는 흐름도이다.
일부 구현에서, 방법(400)은 예컨대, 도 2를 참조하여 설명된 서버(202)에서 구현될 수 있다. 일부 구현에서, 방법(400)의 일부 또는 전부는 도 2에 도시된 바와 같이 하나 이상의 클라이언트 장치(210), 하나 이상의 개발자 장치(230) 또는 하나 이상의 서버 장치(들)(202) 및/또는 개발자 장치(들), 서버 장치(들) 및 클라이언트 장치(들)의 조합에서 구현될 수 있다. 설명된 예시에서, 구현 시스템은 하나 이상의 디지털 프로세서 또는 처리 회로("프로세서") 및 하나 이상의 저장 장치(예컨대, 데이터 저장소(220) 또는 다른 스토리지)를 포함한다. 일부 구현에서, 하나 이상의 서버 및/또는 클라이언트의 상이한 컴포넌트는 방법(400)의 상이한 블록 또는 다른 부분을 수행할 수 있다. 일부 예시에서, 제1 장치는 방법(400)의 블록을 수행하는 것으로 설명된다. 일부 구현은 결과 또는 데이터를 제1 장치로 전송할 수 있는 하나 이상의 다른 장치(예컨대, 다른 클라이언트 장치 또는 서버 장치)에 의해 수행되는 방법(400)의 하나 이상의 블록을 가질 수 있다.
일부 구현에서, 방법(400) 또는 방법의 일부는 시스템에 의해 자동으로 개시될 수 있다. 일부 구현에서, 구현 시스템은 제1 장치이다. 예컨대, 방법(또는 그 일부)은 주기적으로 수행되거나, 하나 이상의 특정 이벤트 또는 조건, 예컨대, 임계값 아래로 떨어지는 객체의 3D 메시 생성의 정확도, 평가 플랫폼 또는 게임 플랫폼에 추가된 객체(들)의 새로운 카테고리, 방법(400)의 마지막 수행 이후 만료된 미리 결정된 기간, 및/또는 방법에 의해 판독된 설정에서 지정될 수 있는 발생하는 하나 이상의 다른 조건에 기초하여 수행될 수 있다.
이 예시적인 예시에서, ML 모델은 객체의 2차원 이미지로부터 3차원 메시를 생성하기 위해 메시 인코더, 이미지 인코더 및 복수의 메시 디코더를 포함하는 인공 신경망이다.
방법(400)은 블록(410)에서 시작할 수 있다. 블록(410)에서, 복수의 타겟 메시가 수신된다. 블록(410) 다음에 블록(420)이 올 수 있다.
블록(420)에서, 메시 인코더 및 복수의 메시 디코더가 트레이닝된다. 일부 구현에서, 2단계 트레이닝이 수행될 수 있다. 복수의 타겟 메시의 각각의 메시 디코더는 특정 템플릿 메시에 대응한다. 일부 구현에서, 2단계 트레이닝이 수행되고, 이용 가능한 트레이닝 타겟 메시에 대해 반복될 수 있다. 일부 구현에서, 메시 인코더를 업데이트하는 것은 제1 오차 함수의 제1 값에 기초하여 메시 인코더를 재트레이닝하는 것을 포함하고, 이미지 인코더를 업데이트하는 것은 제2 오차 함수에 기초하여 이미지 인코더를 재트레이닝하는 것을 포함한다.
제1 단계에서, 메시 인코더는 특정 타겟 메시를 제1 형상 공간 벡터로 인코딩하는 데 활용된다. 특정 타겟 메시의 유형 및/또는 카테고리에 대응하는, 대응하는 메시 디코더는 제1 형상 공간 벡터를 변형된 메시로 디코딩하는 데 활용된다.
타겟 메시와 변형된 메시의 비교에 기초하여, 제1 오차 함수에 대한 제1 값이 결정되고 메시 디코더의 하나 이상의 파라미터가 제1 값에 기초하여 업데이트된다. 머신 러닝 모델은 타겟 메시에서 변형된 템플릿 메시의 거리 측정값인 제1 값에 기초하여 트레이닝된다. 이 프로세스는 머신 러닝 모델의 메시 디코더가 타겟 메시의 완전한 세트에 대해 트레이닝될 때까지 반복될 수 있다.
제2 단계에서, 이미지 인코더가 트레이닝된다. 객체의 복수의 2차원(2D) 이미지가 수신되며, 각 이미지는 각각의 카테고리의 객체에 대응하고, 카테고리는 대응하는 템플릿 메시와 연관된다. 일부 구현에서, 2D 이미지는 전술한 트레이닝의 단계 1에서 메시 디코더를 트레이닝하는 데 이전에 사용된 객체의 이미지 및/또는 단계 1 트레이닝을 위해 이전에 활용되지 않은 객체의 이미지를 포함할 수 있다.
이미지 인코더는 객체의 2D 이미지의 트레이닝 세트에 포함되는 복수의 2D 이미지 각각에 대한 형상 공간 벡터를 생성하는 데 활용된다. 단계 1에서 트레이닝된 메시 인코더는 트레이닝 세트인 각 타겟 메시에 대한 형상 공간 벡터를 생성하는 데 활용된다.
이미지 인코더를 사용하여 생성된 형상 공간 벡터는 대응하는 객체에 대한 타겟 메시와 연관된 대응하는 형상 공간 벡터와 비교되며, 여기에서 타겟 메시와 연관된 형상 공간 벡터는 메시 인코더를 사용하여 인코딩된다. 이미지 인코더의 하나 이상의 파라미터는 비교에 기초하여 업데이트된다.
제2 오차 함수에 대한 제2 값은 타겟 메시와 변형된 메시의 비교에 기초하여 결정되고, 이미지 인코더의 하나 이상의 파라미터는 제2 값에 기초하여 업데이트된다. 일부 구현에서, 제2 오차 함수는 메시 인코더에 의해 생성된 형상 공간 벡터로부터 이미지 인코더를 사용하여 생성된 형상 공간 벡터까지의 거리를 나타내는 적합도 함수다.
이 프로세스는 머신 러닝 모델의 이미지 인코더가 타겟 메시의 완전한 세트에 대해 트레이닝될 때까지 반복될 수 있다. 일부 구현에서, 복수의 메시 디코더 중 하나 이상은 대응하는 템플릿 메시에 대한 항등 함수를 근사화하도록 사전 트레이닝될 수 있다.
도 5a는 일부 구현에 따른, 변형된 메시를 생성하도록 메시 디코더를 트레이닝하기 위한 예시적인 프로세스를 예시하는 블록도이다. 도 5b는 일부 구현에 따른, 형상 공간 벡터를 생성하도록 이미지 인코더를 트레이닝하기 위한 예시적인 프로세스를 예시하는 블록도이다.
일부 실시예에서, 설명된 시스템 및 방법은 예컨대, AtlasNet 또는 다른 적절한 접근법에 기초하여, 인코더-디코더 아키텍처를 포함하는 3D 재구성 모델을 제공한다. 트레이닝은 2개의 순차적인 단계에서 발생할 수 있고, 여기에서 제1 단계(500)는 메시 인코더(504)가 타겟 메시(502)의 포인트 클라우드를 형상 공간 벡터(506)로 표현되는 잠재 공간(latent space)으로 매핑하도록 트레이닝되고, 제2 단계(550)는 이미지 인코더(554)가 트레이닝 이미지(552)를 동일한 잠재 공간(556)에 매핑하도록 트레이닝(550)된다.
일부 구현에서, 디코더는 템플릿 표면 상의 인코딩된 잠재 벡터 및 랜덤 포인트를 타겟 표면 상에 매핑하도록 최적화될 수 있다. 일부 구현에서, 디코더는 출력 크기가 각각 1024, 512, 256, 128 및 3인, 5개의 완전 연결 레이어를 포함할 수 있다. 각 레이어는 활성화가 없을 수 있는, 최종 레이어를 제외하고 ReLU(rectified linear unit) 활성화 함수를 포함할 수 있다. 챔퍼 거리는 두 단계에서 손실로 사용될 수 있으며, 예컨대, AdamOptimizer 또는 다른 적절한 접근법을 사용하여 최적화될 수 있다. 제1 단계에서 사전 트레이닝하는 동안, 템플릿 정점에 대한 평균 제곱 오차의 추가 손실 기간이 있을 수 있다.
트레이닝의 제1 단계에서, 목표는 트레이닝 데이터의 상이한 가능한 기하학을 나타내는 "형상 공간"을 학습하는 것일 수 있다. 예컨대, 이것은 n차원 형상 공간 벡터로서 기하학의 인코딩을 학습하는 것을 포함할 수 있다. 생물학적 자산에 대응하는 템플릿 메시가 수신될 수 있다. 생물학적 자산은 어류, 포유류 등과 같은 동물일 수 있다. 예컨대, 어류에 대응하는 템플릿 메시가 수신될 수 있다.
제1 통계 모델을 사용하여, 템플릿 메시는 제1 형상 공간 벡터로 인코딩될 수 있다. 예컨대, 제1 통계 모델은 타겟 메시를 입력으로 취하고, n차원 형상 공간 벡터를 출력으로 생성하는 메시 인코더일 수 있다.
제2 통계 모델을 사용하여, 제1 형상 공간 벡터는 생물학적 자산에 대응하는 변형된 메시로 디코딩될 수 있다. 예컨대, 제2 통계 모델은 대략 템플릿 메시 상의 항등 함수가 되도록 사전 트레이닝된 메시 디코더일 수 있다. 메시 디코더는 형상 공간 벡터를 입력으로 취하고, 형상 공간 벡터에 의해 표현된 기하학과 일치하는 변형된 메시를 출력으로 생성할 수 있다. 메시 인코더에 대한 입력으로 제공되는 각 템플릿 메시에 대해 하나씩 다수의 메시 디코더가 있을 수 있다.
템플릿 메시와 변형된 메시의 비교(512)에 기초하여, 제1 오차 함수에 대한 제1 값이 결정될 수 있다. 예컨대, 제1 오차 함수는 변형된 메시가 메시 인코더에 입력된 타겟 메시와 얼마나 가까운지(거리)를 측정하는 적합도 함수일 수 있다.
피드백(514)을 사용하여, 제1 통계 모델은 제1 임계값 위에 있는 제1 오차 함수의 제1 값에 기초하여 업데이트될 수 있다. 예컨대, 제1 임계값은 변형된 메시가 타겟 메시에 얼마나 가까운지에 대한 허용 가능한 오차 수준을 나타낼 수 있다. 메시 인코더는 제1 오차 함수의 값에 기초하여 재트레이닝될 수 있다.
일부 실시예에서, PointNet 또는 다른 적절한 접근법이 트레이닝의 제1 단계 동안 인코더에 대해 사용될 수 있다. 일부 실시예에서, 인코더는 포인트 클라우드를 잠재 공간으로 인코딩할 수 있다. 첫째, 모델은 디코더가 대략 템플릿의 항등 함수가 되도록, 데이터 세트에서 사전 트레이닝될 수 있다. 이는 다양한 목적(예컨대, 텍스처 매핑, 애니메이션 등)에 적합한 변형에 대해 파라미터 공간을 준비하는 효과가 있다. 그 후, 모델은 타겟 포인트 클라우드를 재구성하기 위해 2000 에포크 동안 트레이닝될 수 있다. 일부 구현에서, 다음 학습 파라미터가 사용될 수 있다: Pointnet 학습률 = 0.001; 베타1 = 0.9; 베타2 = 0.999; 총 에포크 수 = 2000; 배치 크기 = 8.
트레이닝의 제2 단계에서, 목표는 객체, 예컨대, 동물에 대응하는 형상 공간 벡터에 이미지를 매핑하는 방법을 학습하는 것일 수 있다. 입력으로서 메시 인코더에 제공된 템플릿 메시에 대응하는 이미지의 세트를 사용하여 트레이닝을 진행할 수 있다.
제1 통계 모델을 업데이트한 후, 객체에 대한 2차원 이미지가 수신될 수 있다. 예컨대, 메시 인코더가 트레이닝된 후, 입력으로서 메시 인코더에 제공된 타겟 메시에 대응하는 2차원 이미지가 수신될 수 있다.
업데이트된 제1 통계 모델은 객체에 대응하는 타겟 메시를 업데이트된 제1 형상 공간 벡터로 인코딩하는 데 활용될 수 있다. 예컨대, 메시 인코더가 트레이닝된 후, 트레이닝된 메시 인코더를 사용하여, 타겟 메시는 타겟 메시에 대응하는 n차원 형상 공간 벡터로 시스템에 의해 인코딩될 수 있다.
제3 통계 모델을 사용하여, 2차원 이미지는 제2 형상 공간 벡터로 인코딩될 수 있다. 예컨대, 제3 통계 모델은 객체의 이미지를 입력으로 취하고, n차원 형상 공간 벡터를 출력으로 생성하는 이미지 인코더일 수 있다.
업데이트된 제1 형상 공간 벡터와 제2 형상 공간 벡터의 비교(564)에 기초하여 제2 오차 함수에 대한 제2 값이 결정될 수 있다. 예컨대, 제2 오차 함수는 이미지 인코더에 의해 생성된 형상 공간 벡터가 메시 인코더에 의해 생성된 형상 공간 벡터에 얼마나 가까운지를 측정하는 적합도 함수일 수 있다.
피드백(566)을 사용하여, 제3 통계 모델은 제2 임계값 이상인 제2 오차 함수의 제2 값에 기초하여 업데이트될 수 있다. 예컨대, 제2 임계값은 이미지 인코더에 의해 생성된 형상 공간 벡터가 메시 인코더에 의해 생성된 형상 공간 벡터에 얼마나 가까운지에 대한 허용 가능한 오차 수준을 나타낼 수 있다. 영상 인코더는 제2 오차 함수의 값에 기초하여 재트레이닝될 수 있다.
일부 실시예에서, VGG와 같은 객체 인식 모델 또는 다른 적절한 접근법이 트레이닝의 제2 단계 동안 인코더에 사용될 수 있다.
일부 실시예에서, 인코더는 이미지를 잠재 공간으로 인코딩할 수 있다. 트레이닝 중에는, 인코더의 마지막 두 개의 완전히 연결된 레이어만 최적화 중에 업데이트될 수 있으며, 제1 단계에서 생성된 3D 디코더는 동결될 수 있다. 일부 구현에서, 다음 학습 파라미터가 사용될 수 있다: 디코더 학습률 = 0.001; Vgg 학습률 = 1e-5; 베타1 = 0.9; 베타2 = 0.999; 총 에포크 수 = 10,000; 배치 크기 = 16.
트레이닝이 완료된 후, 트레이닝된 모델은 객체의 수신된 2차원 이미지에 대한 3차원 재구성을 생성하는 데 사용될 수 있다. 제3 통계 모델, 예컨대, 이미지 인코더를 업데이트한 후, 객체에 대한 새로운 2차원 이미지가 수신될 수 있다.
업데이트된 제3 통계 모델을 사용하여, 제2 2차원 이미지는 제3 형상 공간 벡터로 인코딩될 수 있다. 예컨대, 시스템은 트레이닝된 이미지 인코더를 사용하여, 2차원 이미지를 어류의 새로운 보이지 않는 이미지에 대응하는 n차원 형상 공간 벡터로 인코딩하는 데 활용될 수 있다.
시스템은 제2 통계 모델을 사용하여, 제3 형상 공간 벡터를 생물학적 자산에 대응하는 제2 변형된 메시로 디코딩하는 데 활용될 수 있다. 예컨대, 시스템은 메시 디코더를 사용하여, 어류의 새로운 보이지 않는 이미지에 대응하는 n차원 형상 공간 벡터를 대응하는 변형된 메시로 디코딩함으로써, 어류의 3차원 재구성을 생성하는 데 활용될 수 있다.
일부 실시예에서, 시스템은 동시에 K 템플릿 메시(및 K 대응하는 파라미터화)를 사용하는 멀티 템플릿 모델을 생성하는 데 활용될 수 있다. 이는 네트워크가 잠재적으로 템플릿을 타겟 불일치에 매핑할 수 있도록 제공하고, 또한 사용자가 목적에 적합한 것을 선택할 수 있도록 몇 가지 가능한 3차원 재구성에 대한 접근을 제공하기 때문에, 학습에 도움이 될 수 있다.
도 6은 일부 구현에 따른, 대응하는 2D 이미지로부터 생성된 3D 메시의 예시를 도시한다.
이 예시적인 예시는 설명된 방법(들)을 사용하여 생성된 늑대와 곰의 2D 이미지 및 대응하는 3D 메시를 도시한다. 도 6에 도시된 바와 같이, 3D 메시는 카테고리에 대한 템플릿 메시에 기초하여 변형된, 변형된 메시다. 도 6에 도시된 바와 같이, 텍스처 속성도 전송되어 객체의 보다 정확한 표현을 제공한다.
도 7은 일부 구현에 따른, 분류를 위한 2D 이미지의 세그먼테이션의 예시를 도시한다.
객체의 특정 부분을 결정하고, 객체를 분류하고, 카테고리 유형을 결정하는 것 등을 위해 미리 정의된 디스크립터의 세트에 대해 세밀한 시맨틱 세그먼테이션이 수행될 수 있다. 일부 구현에서, 표준 Deeplab 모델은 시맨틱 세그먼테이션을 수행하는 데 활용될 수 있다. 객체 및/또는 생물학적 자산의 카테고리와 일치하도록 출력 클래스를 지정하기 위해 적절한 수정이 이루어질 수 있다. 예컨대, 표준 Deeplab 모델의 출력 클래스 수는 디스크립터 수(예컨대, 포유류의 경우 8개, 어류의 경우 3개)와 일치하도록 변경되고, 1E-4의 학습률로 트레이닝될 수 있다. 이 예시적인 예시에서, 도 7의 좌측은 입력 이미지를 도시하며, 우측은 트레이닝된 ML 모델의 결과를 보여준다.
일부 구현에서, 포유류의 객체 카테고리의 예시적인 세트에 대한 정의된 디스크립터 세트는 눈, 머리, 다리, 주둥이, 귀, 꼬리, 뿔 및 몸체를 포함할 수 있고, 어류의 객체 카테고리에 대한 정의된 디스크립터 세트는 눈, 몸체 및 지느러미를 포함할 수 있다.
도 8은 일부 구현에 따른, 객체의 예시적인 리깅된 3D 메시를 도시한다.
이 예시적인 예시에서, 객체는 생물학적 자산(곰)이다. 도 8은 2D 이미지에 중첩된 메시를 도시한다. 도 9에 도시된 바와 같이, 변형된 메시는 예컨대, 자동차 이동, 물고기 수영, 동물 달리기를 표현하는 등, 가상 환경에서 3D 객체를 애니메이팅하는 데 활용될 수 있는 복수의 연결된 조인트를 포함할 수 있다.
도 9는 일부 구현에 따른, 예시적인 평가 프레임워크를 도시한다.
일부 양태에서, 설명된 시스템 및 방법의 하나의 예시적인 구현이 도 9에 도시된다. 특히, 도 9는 여기에서 설명된 기술의 일부 실시예에 따라 평가 점수를 계산하기 위한 시스템의 예시적인 구현을 도시한다. 특히, 시스템(900)은 사용자(예컨대, 요소(940))에 대한 평가 점수를 생성하도록 동작 가능한 하나 이상의 프로세서(910)를 포함할 수 있다. 그러한 정보는 메모리 내에 저장되거나 저장 매체에 지속될 수 있다. 일부 실시예에서, 프로세서(910)는 마우스 이동, 클릭, 선택, 타임스탬프 및 다른 적절한 원격 측정 데이터를 포함하는, 사용자의 원격 측정 데이터(920)를 수신할 수 있다. 일부 실시예에서, 프로세서(910)는 설명된 시스템 및 방법 중 적어도 일부에 따라, 각 사용자의 원격 측정 데이터에 대해 평가 프레임워크(930)(예컨대, 관련 프로그램 또는 소프트웨어)를 사용하여 하나 이상의 평가 점수를 수신 및/또는 생성할 수 있다. 프로세서(910)는 원격 측정 데이터(920) 및/또는 평가 프레임워크(930)에 기초하여, 평가 점수(940)를 생성하기 위한 설명된 시스템 및 방법 중 적어도 일부를 실행하도록 구성될 수 있다.
도 10은 일부 구현에 따른, 예시적인 컴퓨팅 장치를 예시하는 블록도이다.
일부 양태에서, 여기에서 제공된 개시의 임의의 실시예와 관련하여 사용될 수 있는 컴퓨팅 장치(1000)의 예시적인 구현이 도 10에 도시된다. 특히, 도 10은 여기에서 설명된 기술의 일부 실시예에 따라 시뮬레이션 기반 평가를 실행하기 위한 예시적인 컴퓨터 시스템을 보여준다. 컴퓨팅 장치(1000)는 하나 이상의 프로세서(1010) 및 비일시적 컴퓨터 판독 가능 저장 매체(예컨대, 메모리(1020) 및 하나 이상의 비휘발성 저장 매체(1030))를 포함하는 하나 이상의 제조 물품을 포함할 수 있다. 프로세서(1010)는 임의의 적절한 방식으로 메모리(1020) 및 비휘발성 저장 장치(1030)로부터 데이터 기록 및 데이터 판독을 제어할 수 있다. 여기에서 설명된 임의의 기능을 수행하기 위해, 프로세서(1010)는 프로세서(1010)에 의한 실행을 위한 프로세서 실행 가능 명령어를 저장하는 비일시적 컴퓨터 판독 가능 저장 매체로 기능할 수 있는, 하나 이상의 비일시적 컴퓨터 판독 가능 저장 매체(예컨대, 메모리(1020))에 저장된 하나 이상의 프로세서 실행 가능 명령어를 실행할 수 있다.
일부 실시예에서, 설명된 시스템 및 방법 중 적어도 일부는 클라우드 기반 아키텍처로 구현된다. 클라우드 기반 아키텍처는 구성 가능한 컴퓨팅 리소스(예컨대, 프로세서, 그래픽 프로세서, 메모리, 디스크 스토리지, 네트워크 대역폭 및 기타 적절한 리소스)의 공유 풀에 대한 온-디맨드 접근을 제공할 수 있다. 클라우드 기반 아키텍처의 프로세서는 마우스 이동, 클릭, 선택, 타임스탬프 및 기타 적절한 원격 측정 데이터를 포함하여 사용자의 원격 측정 데이터를 수신하거나 획득하고, 사용자에 대한 평가 점수를 계산하도록 동작 가능할 수 있다. 클라우드 기반 아키텍처의 메모리는 평가 점수를 계산하기 위해 프로세서에 의해 동작될 수 있는 평가 프레임워크(예컨대, 관련 프로그램 또는 소프트웨어)뿐만 아니라 사용자의 원격 측정 데이터를 저장할 수 있다. 일부 실시예에서, 클라우드 기반 아키텍처는 종래의 프로세서에 비해 더 빠르고 더 효율적인 방식으로 평가 점수를 계산하기 위한 그래픽 프로세서를 제공할 수 있다.
도 11은 여기에 설명된 하나 이상의 특징을 구현하는 데 사용될 수 있는 예시적인 컴퓨팅 장치(1100)의 블록도이다. 일 예시에서, 장치(1100)는 컴퓨터 장치(예컨대, 도 2의 202 및/또는 210)를 구현하고 여기에 설명된 적절한 방법 구현을 수행하는 데 사용될 수 있다. 컴퓨팅 장치(1100)는 임의의 적절한 컴퓨터 시스템, 서버, 또는 기타 전자 또는 하드웨어 장치일 수 있다. 예컨대, 컴퓨팅 장치(1100)는 메인프레임 컴퓨터, 데스크탑 컴퓨터, 워크스테이션, 휴대용 컴퓨터, 또는 전자 장치(휴대용 장치, 모바일 장치, 휴대 전화, 스마트폰, 태블릿 컴퓨터, 텔레비전, TV 셋톱 박스, PDA(personal digital assistant), 미디어 플레이어, 게임 장치, 웨어러블 장치 등)일 수 있다. 일부 구현에서, 장치(1100)는 프로세서(1102), 메모리(1104), 입력/출력(I/O) 인터페이스(1106), 및 오디오/비디오 입력/출력 장치(1114)를 포함한다.
프로세서(1102)는 프로그램 코드를 실행하고 장치(1100)의 기본 동작을 제어하기 위한 하나 이상의 프로세서 및/또는 처리 회로일 수 있다. "프로세서"는 데이터, 신호 또는 기타 정보를 프로세싱하는 임의의 적절한 하드웨어 및/또는 소프트웨어 시스템, 메커니즘 또는 컴포넌트를 포함한다. 프로세서는 범용 CPU(general-purpose central processing unit), 다중 프로세싱 장치, 기능을 달성하기 위한 전용 회로 또는 기타 시스템을 갖는 시스템을 포함할 수 있다. 프로세싱은 특정 지리적 위치에 제한되거나, 시간적 제한이 있을 필요는 없다. 예컨대, 프로세서는 "실시간", "오프라인", "배치 모드" 등으로 기능을 수행할 수 있다. 프로세싱의 일부는 상이한(또는 동일한) 프로세싱 시스템에 의해 상이한 시간 및 상이한 위치에서 수행될 수 있다. 컴퓨터는 메모리와 통신하는 임의의 프로세서일 수 있다.
메모리(1104)는 전형적으로 프로세서(1102)에 의한 접근을 위해 장치(1100)에 제공되며, 프로세서에 의한 실행을 위한 명령어를 저장하기에 적합하고, 프로세서(1102)와 분리되어 위치하고, 그리고/또는 그와 통합된 임의의 적절한 프로세서 판독 가능 저장 매체, 예컨대, RAM(random access memory), ROM(read-only memory), 전기적 소거 가능 판독 전용 메모리(EEPROM), 플래시 메모리 등일 수 있다. 메모리(1104)는 운영 체제(1108), 하나 이상의 애플리케이션(1110), 예컨대, 오디오 공간화 애플리케이션 및 애플리케이션 데이터(1112)를 포함하는 프로세서(1102)에 의해 서버 장치(1100) 상에서 동작하는 소프트웨어를 저장할 수 있다. 일부 구현에서, 애플리케이션(1110)은 프로세서(1102)가 여기에서 설명된 기능, 예컨대, 도 3-4, 도 5a 및 5b와 관련하여 설명된 방법의 일부 또는 전부를 수행(또는 기능을 제어)할 수 있게 하는 명령어를 포함할 수 있다.
예컨대, 애플리케이션(1110)은 여기에서 설명된 바와 같이, 온라인 게이밍 서버(예컨대, 102) 내에서 오디오 공간화를 제공할 수 있는 오디오 공간화 모듈(1112)을 포함할 수 있다. 메모리(1104)의 임의의 소프트웨어 요소는 대안적으로 임의의 다른 적절한 저장 위치 또는 컴퓨터 판독 가능 매체에 저장될 수 있다. 또한, 메모리(1104)(및/또는 다른 연결된 저장 장치(들))는 여기에서 설명된 특징에서 사용되는 명령어 및 데이터를 저장할 수 있다. 메모리(1104) 및 임의의 다른 유형의 스토리지(자기 디스크, 광 디스크, 자기 테이프 또는 기타 유형의 매체(tangible media))는 "스토리지" 또는 "저장 장치"로 간주될 수 있다.
I/O 인터페이스(1106)는 서버 장치(1100)를 다른 시스템 및 장치와 인터페이싱할 수 있게 하는 기능을 제공할 수 있다. 예컨대, 네트워크 통신 장치, 저장 장치(예컨대, 메모리 및/또는 데이터 저장소(120)) 및 입력/출력 장치는 인터페이스(1106)를 통해 통신할 수 있다. 일부 구현에서, I/O 인터페이스는 입력 장치(키보드, 포인팅 장치, 터치스크린, 마이크, 카메라, 스캐너 등) 및/또는 출력 장치(디스플레이 장치, 스피커 장치, 프린터, 모터 등)를 포함하는 인터페이스 장치에 연결할 수 있다.
오디오/비디오 입력/출력 장치(1114)는 사용자 입력을 수신하는 데 사용될 수 있는 사용자 입력 장치(예컨대, 마우스 등), 디스플레이 장치(예컨대, 스크린, 모니터 등) 및/또는 그래픽 및/또는 시각적 출력을 제공하는 데 사용할 수 있는 결합된 입력 및 디스플레이 장치를 포함할 수 있다.
설명의 편의를 위해, 도 11은 프로세서(1102), 메모리(1104), I/O 인터페이스(1106), 및 운영 체제(1108)와 게이밍 애플리케이션(1110)의 소프트웨어 블록 각각에 대한 하나의 블록을 도시한다. 이들 블록은 하나 이상의 프로세서 또는 처리 회로, 운영 체제, 메모리, I/O 인터페이스, 애플리케이션 및/또는 소프트웨어 엔진을 나타낼 수 있다. 다른 구현에서, 장치(1100)는 도시된 컴포넌트들 모두를 갖지 않을 수 있고, 그리고/또는 여기에서 도시된 것들 대신에 또는 이에 추가하여 다른 유형의 요소를 포함하는 다른 요소들을 가질 수 있다. 게이밍 서버(202)가 여기에서 일부 구현에 설명된 바와 같이 동작을 수행하는 것으로 설명되지만, 게이밍 서버(202) 또는 유사한 시스템의 임의의 적절한 컴포넌트 또는 컴포넌트의 조합, 또는 이러한 시스템과 연관된 임의의 적절한 프로세서 또는 프로세서들이 설명된 동작을 수행할 수 있다.
사용자 장치는 또한 여기에서 설명된 특징을 구현 및/또는 사용할 수 있다. 예시적인 사용자 장치는 장치(1100)와 같은 일부 유사한 컴포넌트, 예컨대, 프로세서(들)(1102), 메모리(1104) 및 I/O 인터페이스(1106)를 포함하는 컴퓨터 장치일 수 있다. 클라이언트 장치에 적합한 운영 체제, 소프트웨어 및 애플리케이션은 메모리에 제공되고, 프로세서에 의해 사용될 수 있다. 클라이언트 장치를 위한 I/O 인터페이스는 네트워크 통신 장치뿐만 아니라, 입력 및 출력 장치, 예컨대, 사운드 캡처를 위한 마이크, 이미지 또는 비디오 캡처를 위한 카메라, 사용자 입력 캡처를 위한 마우스, 사용자 제스처를 인식하기 위한 제스처 장치, 사용자 입력을 감지하기 위한 터치스크린, 사운드 출력을 위한 오디오 스피커 장치, 이미지 또는 비디오를 출력하기 위한 디스플레이 장치 또는 기타 출력 장치에 연결될 수 있다. 예컨대, 오디오/비디오 입력/출력 장치(1114) 내의 디스플레이 장치는 장치(1100)에 연결되어(또는 포함되어), 여기에서 설명된 바와 같은 전처리 및 후처리 이미지를 디스플레이할 수 있으며, 여기에서 이러한 디스플레이 장치는 임의의 적절한 디스플레이 장치, 예컨대, LCD, LED 또는 플라즈마 디스플레이 스크린, CRT, 텔레비전, 모니터, 터치스크린, 3-D 디스플레이 스크린, 프로젝터 또는 기타 시각적 디스플레이 장치를 포함할 수 있다. 일부 구현은 오디오 출력 장치, 예컨대, 텍스트를 말하는 음성 출력 또는 합성을 제공할 수 있다.
여기에서 설명된 하나 이상의 방법(예컨대, 방법(300 및 400))은 컴퓨터에서 실행될 수 있는 컴퓨터 프로그램 명령어 또는 코드에 의해 구현될 수 있다. 예컨대, 코드는 하나 이상의 디지털 프로세서(예컨대, 마이크로프로세서 또는 다른 처리 회로)에 의해 구현될 수 있고, 비일시적 컴퓨터 판독 가능 매체(예컨대, 저장 매체), 예컨대, 반도체 또는 솔리드 스테이트 메모리를 포함하는, 자기, 광학, 전자기 또는 반도체 저장 매체, 자기 테이프, 이동식 컴퓨터 디스켓(removable computer diskette), RAM(random access memory), ROM(read-only memory), 플래시 메모리, 강자성 디스크(rigid magnetic disk), 광 디스크, 솔리드 스테이트 메모리 드라이브 등을 포함하는, 컴퓨터 프로그램 제품에 저장될 수 있다. 프로그램 명령어는 예컨대, 서버(예컨대, 분산 시스템 및/또는 클라우드 컴퓨팅 시스템)로부터 전달되는 SaaS(software as a service)의 형태에서, 전자 신호에 포함되고, 제공될 수도 있다. 대안적으로, 하나 이상의 방법은 하드웨어(논리 게이트 등), 또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있다. 예시적인 하드웨어는 프로그래밍 가능한 프로세서(예컨대, FPGA(field-programmable gate array), 복합 프로그래밍 가능 논리 소자(complex programmable logic device)), 범용 프로세서, 그래픽 프로세서, ASIC(application specific integrated circuit) 등일 수 있다. 하나 이상의 방법은 시스템에서 실행되는 애플리케이션의 일부 또는 컴포넌트, 또는 다른 애플리케이션 및 운영 체제와 함께 실행되는 애플리케이션 또는 소프트웨어로 수행될 수 있다.
여기에서 설명된 하나 이상의 방법은 임의의 유형의 컴퓨팅 장치에서 실행될 수 있는 자립형 프로그램(standalone program), 웹 브라우저에서 실행되는 프로그램, 모바일 컴퓨팅 장치(예컨대, 휴대폰, 스마트폰, 태블릿 컴퓨터, 웨어러블 장치(손목시계, 암 밴드, 보석, 모자, 고글, 안경 등), 랩톱 컴퓨터 등)에서 실행하는 모바일 애플리케이션("앱")에서 실행될 수 있다. 일 예시에서, 클라이언트/서버 아키텍처가 사용될 수 있으며, 예컨대, (클라이언트 장치로서) 모바일 컴퓨팅 장치는 사용자 입력 데이터를 서버 장치로 전송하고, 서버로부터 출력을 위한(예컨대, 디스플레이를 위한) 최종 출력 데이터를 수신한다. 다른 예시에서, 모든 계산은 모바일 컴퓨팅 장치의 모바일 앱(및/또는 다른 앱) 내에서 수행될 수 있다. 다른 예시에서, 계산은 모바일 컴퓨팅 장치와 하나 이상의 서버 장치 사이에서 분할될 수 있다.
설명이 그 특정 구현과 관련하여 설명되었지만, 이러한 특정 구현은 단지 예시적이며 제한적이지 않는다. 예시에 설명된 개념은 다른 예시 및 구현에 적용될 수 있다.
본 개시에 설명된 기능 블록, 동작, 특징, 방법, 장치 및 시스템은 당업자에게 알려진 바와 같이, 시스템, 장치 및 기능 블록의 상이한 조합으로 통합되거나 분할될 수 있다. 임의의 적합한 프로그래밍 언어 및 프로그래밍 기법이 특정 구현의 루틴을 구현하는 데 사용될 수 있다. 상이한 프로그래밍 기법, 예컨대, 절차적 또는 객체 지향(procedural or object-oriented)이 사용될 수 있다. 루틴은 단일 프로세싱 장치 또는 다중 프로세서에서 실행할 수 있다. 단계, 동작 또는 계산이 특정 순서로 제시될 수 있지만, 순서는 상이한 특정 구현에서 변경될 수 있다. 일부 구현에서, 본 명세서에서 순차적으로 도시된 다수의 단계 또는 동작은 동시에 수행될 수 있다.

Claims (25)

  1. 트레이닝된 머신 러닝 모델을 사용하여, 객체에 대한 3D 메시를 생성하기 위한 컴퓨터 구현 방법으로서,
    상기 트레이닝된 머신 러닝 모델에 대한 입력으로서 상기 객체의 2차원(2D) 이미지를 제공하는 단계;
    템플릿 3차원(3D) 메시를 획득하는 단계; 및
    상기 트레이닝된 머신 러닝 모델을 사용하고 상기 2D 이미지 및 상기 템플릿 3D 메시에 기초하여, 상기 객체에 대한 3D 메시를 생성하는 단계
    를 포함하고,
    상기 객체에 대한 상기 3D 메시는 텍스처를 매핑하거나 상기 객체의 3D 애니메이션을 생성하는 데 사용 가능한, 컴퓨터 구현 방법.
  2. 제1항에 있어서,
    상기 객체에 대한 상기 3D 메시를 포함하는 사용자 인터페이스를 디스플레이하는 단계를 더 포함하는 컴퓨터 구현 방법.
  3. 제1항에 있어서,
    상기 객체에 대한 상기 3D 메시는 상기 트레이닝된 머신 러닝 모델에 의해 상기 템플릿 3D 메시를 변형함으로써 획득되는 것인, 컴퓨터 구현 방법.
  4. 제1항에 있어서,
    상기 템플릿 3D 메시를 획득하기 전에, 이미지 매칭을 사용하여 상기 2D 이미지에 기초하여 객체의 카테고리를 결정하는 단계를 더 포함하는 컴퓨터 구현 방법.
  5. 제1항에 있어서,
    상기 텍스처를 상기 3D 메시에 매핑하는 단계를 더 포함하는 컴퓨터 구현 방법.
  6. 제1항에 있어서,
    상기 템플릿 3D 메시는 상기 3D 메시의 복수의 정점을 포함하는 리그(rig)이고, 상기 복수의 정점의 각각의 정점은 상기 복수의 정점 중 적어도 하나의 다른 정점에 연결되며, 상기 컴퓨터 구현 방법은:
    상기 템플릿 3D 메시와 연관된 하나 이상의 템플릿 애니메이션을 획득하는 단계 - 각각의 템플릿 애니메이션은 상기 복수의 정점 중 둘 이상의 움직임을 정의함 -; 및
    상기 3D 메시 및 상기 템플릿 3D 메시와 연관된 상기 하나 이상의 템플릿 애니메이션의 특정 템플릿 애니메이션에 기초하여, 상기 객체에 대한 적어도 하나의 객체 애니메이션을 생성하는 단계
    를 더 포함하고,
    상기 적어도 하나의 객체 애니메이션은 상기 하나 이상의 템플릿 애니메이션의 상기 특정 템플릿 애니메이션과 같이 동일한 둘 이상의 정점의 움직임을 포함하는 것인, 컴퓨터 구현 방법.
  7. 제1항에 있어서,
    상기 머신 러닝 모델은 메시 인코더, 이미지 인코더 및 복수의 메시 디코더를 포함하고, 상기 컴퓨터 구현 방법은:
    복수의 타겟 메시를 수신하는 단계; 및
    상기 복수의 메시 디코더를 트레이닝하는 단계
    를 더 포함하고,
    각각의 메시 디코더는 특정 템플릿 메시에 대응하고,
    상기 트레이닝하는 단계는:
    상기 메시 인코더를 사용하여, 타겟 메시를 형상 공간 벡터로 인코딩하는 단계;
    상기 메시 디코더를 사용하고 상기 특정 템플릿 메시에 기초하여, 상기 형상 공간 벡터를 변형된 메시로 디코딩하는 단계;
    상기 타겟 메시와 상기 변형된 메시의 비교에 기초하여, 제1 오차 함수에 대한 제1 값을 결정하는 단계; 및
    상기 제1 값에 기초하여, 상기 메시 디코더의 하나 이상의 파라미터를 업데이트하는 단계를 포함하는, 컴퓨터 구현 방법.
  8. 제1항에 있어서,
    상기 머신 러닝 모델은 메시 인코더, 이미지 인코더 및 복수의 메시 디코더를 포함하고,
    상기 컴퓨터 구현 방법은 상기 이미지 인코더를 트레이닝하는 단계를 더 포함하고,
    상기 트레이닝하는 단계는:
    복수의 2차원(2D) 트레이닝 이미지 및 대응하는 타겟 메시를 수신하는 단계 - 각각의 이미지는 각각의 카테고리의 특정 객체를 표현하고, 상기 카테고리는 대응하는 템플릿 메시와 연관됨 -;
    상기 이미지 인코더를 사용하여, 상기 복수의 2D 트레이닝 이미지 각각에 대한 각각의 형상 공간 벡터를 생성하는 단계;
    각각의 생성된 형상 공간 벡터를 상기 대응하는 타겟 메시에 대한 대응하는 형상 공간 벡터와 비교하는 단계 - 상기 타겟 메시와 연관된 상기 대응하는 형상 공간 벡터는 상기 메시 인코더를 사용하여 인코딩됨 -;
    상기 생성된 형상 공간 벡터와 상기 대응하는 형상 공간 벡터의 비교에 기초하여, 제2 오차 함수에 대한 제2 값을 결정하는 단계; 및
    상기 제2 값에 기초하여, 상기 이미지 인코더의 하나 이상의 파라미터를 업데이트하는 단계를 포함하는, 컴퓨터 구현 방법.
  9. 제1항에 있어서,
    상기 컴퓨터 구현 방법은 UV 회귀자(UV regressor)를 사용하여, 상기 객체의 상기 3D 메시의 정점으로부터 상기 2D 이미지로의 매핑을 생성하기 위해 상기 객체의 상기 2D 이미지 및 상기 3D 메시를 처리하는 단계를 더 포함하고,
    상기 매핑은 상기 텍스처를 상기 객체의 상기 3D 메시에 적용하는 데 사용되는 것인, 컴퓨터 구현 방법.
  10. 제9항에 있어서,
    상기 UV 회귀자는 챔퍼 거리(Chamfer distance)에 기초하는 디스크립터 손실(descriptor loss)을 포함하는 손실 함수를 사용하여 트레이닝되는 것인, 컴퓨터 구현 방법.
  11. 제1항에 있어서,
    상기 템플릿 3D 메시는 위상 동형 템플릿 메시(homeomorphic template mesh)인 것인, 컴퓨터 구현 방법.
  12. 시스템으로서,
    명령어가 저장된 메모리; 및
    상기 메모리에 결합된 처리 장치
    를 포함하고,
    상기 처리 장치는 상기 메모리에 접근하도록 구성되고, 상기 명령어는 상기 처리 장치에 의해 실행될 때, 상기 처리 장치로 하여금 동작을 수행하도록 하고,
    상기 동작은:
    트레이닝된 머신 러닝 모델에 대한 입력으로서 객체의 2차원(2D) 이미지를 제공하는 것;
    템플릿 3차원(3D) 메시를 획득하는 것; 및
    상기 트레이닝된 머신 러닝 모델을 사용하고 상기 2D 이미지 및 상기 템플릿 3D 메시에 기초하여, 상기 객체에 대한 3D 메시를 생성하는 것을 포함하고,
    상기 객체에 대한 상기 3D 메시는 텍스처를 매핑하거나 상기 객체의 3D 애니메이션을 생성하는 데 사용 가능한, 시스템.
  13. 제12항에 있어서,
    상기 객체에 대한 상기 3D 메시는 상기 트레이닝된 머신 러닝 모델에 의해 상기 템플릿 3D 메시를 변형함으로써 획득되는 것인, 시스템.
  14. 제12항에 있어서,
    상기 템플릿 3D 메시는 상기 3D 메시의 복수의 정점을 포함하는 리그이고, 상기 복수의 정점의 각각의 정점은 상기 복수의 정점 중 적어도 하나의 다른 정점에 연결되고, 상기 동작은:
    상기 템플릿 3D 메시와 연관된 하나 이상의 템플릿 애니메이션을 획득하는 것 - 각각의 템플릿 애니메이션은 상기 복수의 정점 중 둘 이상의 움직임을 정의함 -; 및
    상기 3D 메시 및 상기 템플릿 3D 메시와 연관된 상기 하나 이상의 템플릿 애니메이션의 특정 템플릿 애니메이션에 기초하여, 상기 객체에 대한 적어도 하나의 객체 애니메이션을 생성하는 것을 더 포함하고,
    상기 적어도 하나의 객체 애니메이션은 상기 하나 이상의 템플릿 애니메이션의 상기 특정 템플릿 애니메이션과 같이 동일한 둘 이상의 정점의 움직임을 포함하는 것인, 시스템.
  15. 제12항에 있어서,
    상기 템플릿 3D 메시는 위상 동형 템플릿 메시인 것인, 시스템.
  16. 제12항에 있어서,
    상기 머신 러닝 모델은 메시 인코더, 이미지 인코더 및 복수의 메시 디코더를 포함하고, 상기 동작은:
    복수의 타겟 메시를 수신하는 것;
    상기 복수의 메시 디코더를 트레이닝하는 것; 및
    상기 이미지 인코더를 트레이닝하는 것
    을 더 포함하고,
    각각의 메시 디코더는 특정 템플릿 메시에 대응하고,
    상기 복수의 메시 디코더를 트레이닝하는 것은:
    상기 메시 인코더를 사용하여, 타겟 메시를 제1 형상 공간 벡터로 인코딩하는 것;
    상기 메시 디코더를 사용하고 상기 특정 템플릿 메시에 기초하여, 상기 제1 형상 공간 벡터를 변형된 메시로 디코딩하는 것;
    상기 타겟 메시와 상기 변형된 메시의 비교에 기초하여, 제1 오차 함수에 대한 제1 값을 결정하는 것; 및
    상기 제1 값에 기초하여, 상기 메시 디코더의 하나 이상의 파라미터를 업데이트하는 것을 포함하고,
    상기 이미지 인코더를 트레이닝하는 것은:
    복수의 2차원(2D) 트레이닝 이미지 및 대응하는 타겟 메시를 수신하는 것 - 각각의 이미지는 각각의 카테고리의 특정 객체를 표현하고, 상기 카테고리는 대응하는 템플릿 메시와 연관됨 -;
    상기 이미지 인코더를 사용하여, 상기 복수의 2D 트레이닝 이미지 각각에 대한 각각의 형상 공간 벡터를 생성하는 것;
    각각의 생성된 형상 공간 벡터를 상기 대응하는 타겟 메시에 대한 대응하는 형상 공간 벡터와 비교하는 것 - 상기 타겟 메시와 연관된 상기 대응하는 형상 공간 벡터는 상기 메시 인코더를 사용하여 인코딩됨 -;
    상기 생성된 형상 공간 벡터와 상기 대응하는 형상 공간 벡터의 비교에 기초하여, 제2 오차 함수에 대한 제2 값을 결정하는 것; 및
    상기 제2 값에 기초하여, 상기 이미지 인코더의 하나 이상의 파라미터를 업데이트하는 것을 포함하는, 시스템.
  17. 처리 장치에 의한 실행에 응답하여, 상기 처리 장치로 하여금 동작을 수행하도록 하는 명령어를 포함하는 비일시적 컴퓨터 판독 가능 매체로서, 상기 동작은:
    트레이닝된 머신 러닝 모델에 대한 입력으로서 객체의 2차원(2D) 이미지를 제공하는 것;
    템플릿 3차원(3D) 메시를 획득하는 것; 및
    상기 트레이닝된 머신 러닝 모델을 사용하고 상기 2D 이미지 및 상기 템플릿 3D 메시에 기초하여, 상기 객체에 대한 3D 메시를 생성하는 것
    을 포함하고,
    상기 객체에 대한 상기 3D 메시는 텍스처를 매핑하거나 상기 객체의 3D 애니메이션을 생성하는 데 사용 가능한, 비일시적 컴퓨터 판독 가능 매체.
  18. 제17항에 있어서,
    상기 템플릿 3D 메시는 위상 동형 템플릿 메시인 것인, 비일시적 컴퓨터 판독 가능 매체.
  19. 제17항에 있어서,
    상기 템플릿 3D 메시는 상기 3D 메시의 복수의 정점을 포함하는 리그이고, 상기 복수의 정점의 각각의 정점은 상기 복수의 정점 중 적어도 하나의 다른 정점에 연결되고, 상기 동작은:
    상기 템플릿 3D 메시와 연관된 하나 이상의 템플릿 애니메이션을 획득하는 것 - 각각의 템플릿 애니메이션은 상기 복수의 정점 중 둘 이상의 움직임을 정의함 -; 및
    상기 3D 메시 및 상기 템플릿 3D 메시와 연관된 상기 하나 이상의 템플릿 애니메이션의 특정 템플릿 애니메이션에 기초하여, 상기 객체에 대한 적어도 하나의 객체 애니메이션을 생성하는 것
    을 더 포함하고,
    상기 적어도 하나의 객체 애니메이션은 상기 하나 이상의 템플릿 애니메이션의 상기 특정 템플릿 애니메이션과 같이 동일한 둘 이상의 정점의 움직임을 포함하는 것인, 비일시적 컴퓨터 판독 가능 매체.
  20. 제17항에 있어서,
    상기 동작은:
    UV 회귀자를 사용하여, 상기 객체의 상기 3D 메시의 정점으로부터 상기 2D 이미지로의 매핑을 생성하기 위해 상기 객체의 상기 2D 이미지 및 상기 3D 메시를 처리하는 것을 더 포함하고, 상기 매핑은 상기 텍스처를 상기 객체의 상기 3D 메시에 적용하는 데 사용되는 것인, 비일시적 컴퓨터 판독 가능 매체.
  21. 객체의 2차원(2D) 이미지로부터 3차원(3D) 메시를 생성하기 위해, 메시 인코더, 이미지 인코더 및 복수의 메시 디코더를 포함하는 머신 러닝 모델을 트레이닝하기 위한 방법으로서,
    복수의 타겟 메시를 수신하는 단계; 및
    상기 복수의 메시 디코더를 트레이닝하는 단계
    를 포함하고,
    각각의 메시 디코더는 특정 템플릿 메시에 대응하고,
    상기 트레이닝하는 단계는:
    상기 메시 인코더를 사용하여, 상기 복수의 타겟 메시의 타겟 메시를 형상 공간 벡터로 인코딩하는 단계;
    상기 메시 디코더를 사용하고 상기 메시 디코더에 대응하는 특정 템플릿 메시에 기초하여, 상기 형상 공간 벡터를 변형된 메시로 디코딩하는 단계;
    상기 타겟 메시와 상기 변형된 메시의 비교에 기초하여, 제1 오차 함수에 대한 제1 값을 결정하는 단계; 및
    상기 제1 값에 기초하여, 상기 메시 디코더의 하나 이상의 파라미터를 업데이트하는 단계
    를 포함하는, 방법.
  22. 제21항에 있어서,
    상기 복수의 메시 디코더 각각은 상기 대응하는 템플릿 메시에 대한 항등 함수(identity function)를 근사화하도록 사전 트레이닝되는 것인, 방법.
  23. 제21항에 있어서,
    상기 제1 오차 함수는 상기 변형된 메시에서 상기 타겟 메시까지의 거리를 나타내는 적합도 함수(fitness function)인 것인, 방법.
  24. 객체의 2차원(2D) 이미지로부터 3차원(3D) 메시를 생성하기 위해 메시 인코더 및 이미지 인코더를 포함하는 머신 러닝 모델을 트레이닝하기 위한 방법으로서,
    복수의 2차원(2D) 트레이닝 이미지 및 대응하는 타겟 메시를 수신하는 단계 - 각각의 이미지는 각각의 카테고리의 특정 객체를 표현하고, 상기 카테고리는 대응하는 템플릿 메시와 연관됨 -;
    상기 이미지 인코더를 사용하여, 상기 복수의 2D 트레이닝 이미지 각각에 대한 각각의 형상 공간 벡터를 생성하는 단계;
    각각의 생성된 형상 공간 벡터를 상기 대응하는 타겟 메시에 대한 대응하는 형상 공간 벡터와 비교하는 단계 - 상기 타겟 메시와 연관된 대응하는 형상 공간 벡터는 상기 메시 인코더를 사용하여 인코딩됨 -;
    상기 생성된 형상 공간 벡터와 상기 대응하는 형상 공간 벡터의 비교에 기초하여, 제2 오차 함수에 대한 제2 값을 결정하는 단계; 및
    상기 제2 값에 기초하여, 상기 이미지 인코더의 하나 이상의 파라미터를 업데이트하는 단계
    를 포함하는 방법.
  25. 제24항에 있어서,
    상기 제2 오차 함수는 상기 대응하는 형상 공간 벡터에 대한 상기 생성된 형상 공간 벡터의 거리를 나타내는 적합도 함수인 것인, 방법.
KR1020227041319A 2020-04-24 2021-04-23 2d 이미지로부터 3d 객체 메시의 템플릿 기반 생성 KR20230003059A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202063015391P 2020-04-24 2020-04-24
US63/015,391 2020-04-24
PCT/US2021/028973 WO2021217088A1 (en) 2020-04-24 2021-04-23 Template based generation of 3d object meshes from 2d images

Publications (1)

Publication Number Publication Date
KR20230003059A true KR20230003059A (ko) 2023-01-05

Family

ID=78222601

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227041319A KR20230003059A (ko) 2020-04-24 2021-04-23 2d 이미지로부터 3d 객체 메시의 템플릿 기반 생성

Country Status (5)

Country Link
US (1) US11741668B2 (ko)
EP (1) EP4139855A4 (ko)
KR (1) KR20230003059A (ko)
CN (1) CN115769234A (ko)
WO (1) WO2021217088A1 (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200084395A (ko) * 2018-12-20 2020-07-13 삼성전자주식회사 영상에서 오브젝트를 인식하는 전자 장치 및 그 동작 방법
US10902618B2 (en) 2019-06-14 2021-01-26 Electronic Arts Inc. Universal body movement translation and character rendering system
CN112237739A (zh) * 2019-07-17 2021-01-19 厦门雅基软件有限公司 游戏角色渲染方法、装置、电子设备及计算机可读介质
US11504625B2 (en) 2020-02-14 2022-11-22 Electronic Arts Inc. Color blindness diagnostic system
US11648480B2 (en) 2020-04-06 2023-05-16 Electronic Arts Inc. Enhanced pose generation based on generative modeling
US11232621B2 (en) 2020-04-06 2022-01-25 Electronic Arts Inc. Enhanced animation generation based on conditional modeling
US20210375023A1 (en) * 2020-06-01 2021-12-02 Nvidia Corporation Content animation using one or more neural networks
DE102020207887A1 (de) * 2020-06-25 2021-12-30 Robert Bosch Gesellschaft mit beschränkter Haftung Konvertierung von Messdaten zwischen Messmodalitäten
US20230050535A1 (en) * 2021-01-11 2023-02-16 Tetavi Ltd. Volumetric video from an image source
US11631214B2 (en) * 2021-05-04 2023-04-18 Sony Interactive Entertainment Inc. Voice driven modification of sub-parts of assets in computer simulations
US11887232B2 (en) * 2021-06-10 2024-01-30 Electronic Arts Inc. Enhanced system for generation of facial models and animation
KR20240013454A (ko) * 2022-07-22 2024-01-30 포항공과대학교 산학협력단 영상처리 장치 및 영상처리 장치를 위한 3차원 형상 잠재공간의 기계 학습 방법
CN116137629A (zh) * 2023-02-17 2023-05-19 软通动力信息技术(集团)股份有限公司 物联网感知数据与空间模型匹配方法、装置、设备及介质
CN117437365B (zh) * 2023-12-20 2024-04-12 中国科学院深圳先进技术研究院 医学三维模型的生成方法、装置、电子设备及存储介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005045358A2 (en) * 2003-11-05 2005-05-19 Francos Joseph M Parametric estimation of multi-dimensional homeomorphic transformations
US8111923B2 (en) * 2008-08-14 2012-02-07 Xerox Corporation System and method for object class localization and semantic class based image segmentation
WO2010019925A1 (en) * 2008-08-15 2010-02-18 Brown Technology Partnerships Method and apparatus for estimating body shape
US8873812B2 (en) * 2012-08-06 2014-10-28 Xerox Corporation Image segmentation using hierarchical unsupervised segmentation and hierarchical classifiers
US20150325044A1 (en) * 2014-05-09 2015-11-12 Adornably, Inc. Systems and methods for three-dimensional model texturing
US9911220B2 (en) * 2014-07-28 2018-03-06 Adobe Systes Incorporated Automatically determining correspondences between three-dimensional models
EP3335195A2 (en) * 2015-08-14 2018-06-20 Metail Limited Methods of generating personalized 3d head models or 3d body models
US10559111B2 (en) * 2016-06-23 2020-02-11 LoomAi, Inc. Systems and methods for generating computer ready animation models of a human head from captured data images
US10769411B2 (en) * 2017-11-15 2020-09-08 Qualcomm Technologies, Inc. Pose estimation and model retrieval for objects in images
US10909746B1 (en) * 2018-06-22 2021-02-02 Imbellus, Inc. Systems and methods for asset generation in immersive cognitive assessments
US20210383115A1 (en) * 2018-10-09 2021-12-09 Resonai Inc. Systems and methods for 3d scene augmentation and reconstruction

Also Published As

Publication number Publication date
EP4139855A1 (en) 2023-03-01
US11741668B2 (en) 2023-08-29
CN115769234A (zh) 2023-03-07
EP4139855A4 (en) 2024-05-15
US20210335039A1 (en) 2021-10-28
WO2021217088A1 (en) 2021-10-28

Similar Documents

Publication Publication Date Title
US11741668B2 (en) Template based generation of 3D object meshes from 2D images
US20220058849A1 (en) Image regularization and retargeting system
US11514638B2 (en) 3D asset generation from 2D images
WO2021143261A1 (zh) 一种动画实现方法、装置、电子设备和存储介质
AU2009330607A2 (en) System and methods for dynamically injecting expression information into an animated facial mesh
CN114630738B (zh) 用于模拟感测数据和创建感知的系统和方法
Margetis et al. Realistic natural interaction with virtual statues in x-reality environments
US20230177755A1 (en) Predicting facial expressions using character motion states
Roberts et al. Steps towards prompt-based creation of virtual worlds
TW202232284A (zh) 用於在虛擬實境環境中三維人類姿勢之模擬控制
Ford A further analysis of the ethics of representation in virtual reality: Multi-user environments
Kennedy Acting and its double: A practice-led investigation of the nature of acting within performance capture
US20230120883A1 (en) Inferred skeletal structure for practical 3d assets
JP2022539101A (ja) テクスチャ操作を使用するアニメーション化された顔
US11893671B2 (en) Image regularization and retargeting system
CN114373034A (zh) 图像处理方法、装置、设备、存储介质及计算机程序
Friedman et al. Image Co-Creation by Non-Programmers and Generative Adversarial Networks.
Zidianakis et al. A cross-platform, remotely-controlled mobile avatar simulation framework for AmI environments
Limano Realistic or iconic 3D animation (adaptation study with theory uncanny valley)
Christiansen et al. Space segmentation and multiple autonomous agents: a Minecraft settlement generator
US11769297B2 (en) Simulation of rigid bodies
Escobar et al. An Attention Economy Theme Park
WO2024066549A1 (zh) 一种数据处理方法及相关设备
TWI814318B (zh) 用於使用模擬角色訓練模型以用於將遊戲角色之臉部表情製成動畫之方法以及用於使用三維(3d)影像擷取來產生遊戲角色之臉部表情之標籤值之方法
Lan Simulation of Animation Character High Precision Design Model Based on 3D Image

Legal Events

Date Code Title Description
E902 Notification of reason for refusal