KR20220017900A - 단일 이미지-기반 실시간 신체 애니메이션 - Google Patents
단일 이미지-기반 실시간 신체 애니메이션 Download PDFInfo
- Publication number
- KR20220017900A KR20220017900A KR1020217038028A KR20217038028A KR20220017900A KR 20220017900 A KR20220017900 A KR 20220017900A KR 1020217038028 A KR1020217038028 A KR 1020217038028A KR 20217038028 A KR20217038028 A KR 20217038028A KR 20220017900 A KR20220017900 A KR 20220017900A
- Authority
- KR
- South Korea
- Prior art keywords
- mesh
- model
- points
- image
- input image
- Prior art date
Links
- 238000000034 method Methods 0.000 claims abstract description 65
- 230000033001 locomotion Effects 0.000 claims description 34
- 238000013528 artificial neural network Methods 0.000 claims description 24
- 230000001131 transforming effect Effects 0.000 claims description 6
- 230000011218 segmentation Effects 0.000 description 26
- 238000010586 diagram Methods 0.000 description 9
- 230000005484 gravity Effects 0.000 description 9
- 239000011159 matrix material Substances 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 230000009466 transformation Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 230000037237 body shape Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 239000003086 colorant Substances 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 210000003128 head Anatomy 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 238000012800 visualization Methods 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 210000000887 face Anatomy 0.000 description 2
- 210000004209 hair Anatomy 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 210000004709 eyebrow Anatomy 0.000 description 1
- 230000001815 facial effect Effects 0.000 description 1
- 230000008921 facial expression Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
- G06T13/40—3D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
-
- G06T3/0037—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/06—Topological mapping of higher dimensional structures onto lower dimensional surfaces
- G06T3/067—Reshaping or unfolding 3D tree structures onto 2D planes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/194—Segmentation; Edge detection involving foreground-background segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/16—Cloth
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Geometry (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Processing Or Creating Images (AREA)
Abstract
단일 이미지-기반 신체 애니메이션을 위한 시스템 및 방법을 제공한다. 예시적인 방법은 컴퓨팅 장치에 의해, 사람의 신체를 포함하는 입력 이미지를 수신하는 단계, 입력 이미지를 신체 부분 및 배경 부분으로 세그먼트하는 단계 -신체 부분은 사람의 신체에 대응하는 픽셀들을 포함함-, 신체 부분에 모델을 피팅하는 단계-모델은, 신체의 포즈를 나타내는 포즈 파라미터들의 세트를 수신하고, 포즈를 취하는 신체의 이미지를 포함하는 출력 이미지를 생성하도록 구성됨-, 일련의 포즈 파라미터들을 수신하는 단계 - 포즈 파라미터들의 추가 세트들의 각각은, 신체의 추가 포즈들 중 하나를 나타냄-; 추가 포즈들을 취하는 일련의 신체의 출력 이미지들을 생성하기 위해, 일련의 포즈 파라미터들의 추가 세트들의 각각을 모델에 제공하는 단계, 및 일련의 출력 이미지들에 기초하여, 출력 비디오를 생성하는 단계를 포함한다.
Description
본 개시는 일반적으로 디지털 이미지 처리에 관한 것이다. 보다 구체적으로, 본 개시는 단일 이미지-기반 실시간 신체 애니메이션을 위한 방법 및 시스템에 관한 것이다.
신체 애니메이션은 광고들(advertisements), 엔터테인먼트 쇼들(entertainment shows), 소셜 미디어 네트워크들(social media networks), 컴퓨터 게임들(computer games), 비디오들(videos), 비디오 대화들(video conversations), 가상 현실(virtual reality), 증강 현실(augmented reality) 등과 같은 많은 응용 프로그램들(applications)에서 사용될 수 있다. 단일 사진에 기초한 사람의 신체 애니메이션은 특히 다양한 응용 프로그램들에서 유용할 수 있다. 예를 들어, 사진 속 사람은 춤, 곡예(performing acrobatics), 싸움(fighting) 등과 같은 실제 비디오(real video)와 유사한 동작을 수행하여 "살아날 수(come alive)" 있다. 단일 사진에 기초한 사람의 신체를 애니메이션으로 만드는 것은 특정한 사람의 신체를 사실적으로 모델링하고 장면들(scenes) 내에서 모델이 행동들이나 상호작용들을 하도록 하는 것이다.
이 섹션은 아래의 자세한 설명 섹션에서 추가로 설명되는 단순화된 형식으로 개념들의 선택을 소개하기 위해 제공된다. 이 요약은 청구된 주제의 주요 특징들 또는 필수 특징들을 식별하기 위한 것이 아니고, 청구된 주제의 범위를 결정하는 데 도움이 되도록 사용되지도 않는다.
본 발명의 일 실시예에 따르면, 단일 이미지-기반의 실시간 신체 애니메이션(single image-based real-time body animation)을 위한 방법이 제공된다. 방법은 컴퓨팅 장치(computing device)에 의해 입력 이미지(input image)를 수신하는 단계를 포함할 수 있다. 입력 이미지는 사람의 신체를 포함할 수 있다. 방법은 컴퓨팅 장치에 의해 입력 이미지를 신체 부분(body portion) 및 배경 부분(background portion)으로 세그먼트(segment)하는 단계를 더 포함할 수 있다. 신체 부분은 입력 이미지의 픽셀들(pixels)을 포함할 수 있다. 방법은 또한 컴퓨팅 장치에 의해, 신체 부분에 모델을 피팅(fitting)하는 단계를 포함할 수 있다. 모델은, 신체의 포즈(pose)를 나타내는 포즈 파라미터들(pose parameters)의 세트를 수신하고, 포즈 파라미터들의 세트에 기초하여 출력 이미지를 생성하도록 구성될 수 있다. 출력 이미지는 포즈를 취(adopting)하는 신체의 이미지를 포함할 수 있다. 방법은 또한 컴퓨팅 장치에 의해, 일련의 포즈 파라미터들의 추가 세트들(a series of further sets of pose parameters)을 수신하는 단계를 포함할 수 있다. 포즈 파라미터들의 추가 세트들의 각각은, 신체의 추가 포즈들 중 적어도 하나를 나타낼 수 있다. 방법은 컴퓨팅 장치에 의해, 추가 포즈들을 취하는 일련의 신체의 출력 이미지들을 생성하기 위해, 일련의 포즈 파라미터들의 추가 세트들의 각각을 모델에 제공하는 단계를 포함할 수 있다. 방법은 또한 컴퓨팅 장치에 의해 및 일련의 출력 이미지들에 기초하여, 출력 비디오(output video)를 생성하는 단계를 포함할 수 있고, 여기서 출력 비디오의 각 프레임은 출력 이미지들 중 적어도 하나를 포함한다.
입력 이미지를 세그먼트하는 단계는, 신경망(neural network)에 의해 수행될 수 있다. 일련의 포즈 파라미터들의 추가 세트들은, 모션 비디오(motion video)에 기초하여 생성될 수 있다. 모션 비디오는 추가 포즈들을 취하는 추가 사람(further person)을 포함(feature)할 수 있다.
모델은 3차원(3D) 공간(three-dimensional space)에서의 관절 점들(joint points)의 세트를 포함할 수 있다. 관절 점들은 신체에서 관절들의 위치를 나타낼 수 있다. 모델은 3D 공간에서의 메쉬 점들(mesh points)을 포함하는 메쉬(mesh)를 포함할 수 있다. 메쉬 점들의 각각은 스키닝 가중치들의 세트(set of skinning weights)가 할당(assign)될 수 있다. 스키닝 가중치들의 각각은 관절 점들 중 적어도 하나와 연관될 수 있다. 모델은 메쉬에 텍스처(texture)를 생성하기 위한 텍스처 맵(texture map)을 포함할 수 있다.
포즈 파라미터들의 세트는 기준 점(reference point)에 대한 관절 점들의 회전 각도들(rotational angles)을 포함할 수 있다. 출력 이미지를 생성하는 것은 메쉬 점들을 변환(transforming)함으로써 메쉬를 변환하는 것을 포함할 수 있다. 메쉬 점들의 각각은 각도들만큼 회전될 수 있다. 각도들은 관절 점들의 회전 각도들과 스키닝 가중치들에 기초하여 결정될 수 있다. 출력 이미지를 생성하는 것은 변환된 메쉬의 텍스처를 생성하기 위해, 변환된 메쉬에 텍스처 맵을 적용하는 것을 포함할 수 있다.
모델의 피팅은 신체 부분에 기초하여, 일반 모델(generic model)을 결정하는 단계를 포함할 수 있다. 일반 모델은 신체의 관절들을 나타내는 주요 점들(key points)의 세트 및 신체의 형상(shape)을 나타내는 형상 파라미터들(shape parameters)의 세트를 포함할 수 있다. 피팅하는 단계는, 신체 부분에 기초하여 신체 이미지의 제1 실루엣(silhouette)을 결정하고, 일반 모델에 기초하여 신체 이미지의 제2 실루엣을 결정하는 단계를 더 포함할 수 있다. 피팅하는 단계는 점들의 쌍들(pairs of points)의 세트를 결정하는 단계를 더 포함할 수 있다. 점 쌍들 각각은 제1 실루엣 상에 위치한 제1 점(first point) 및 제2 실루엣 상에 위치한 제2 점(second point)을 포함할 수 있다. 피팅하는 단계는 워핑된 모델(warped model)을 획득하기 위해, 점들의 쌍들의 세트에 기초하여 일반 모델을 워핑(warping)하는 단계를 더 포함할 수 있다. 피팅하는 단계는 워핑된 모델에 기초하여, 메쉬 및 관절 점들의 세트 결정하는 단계를 더 포함할 수 있다.
관절 점들의 세트는 메쉬에 기초하여 생성될 수 있다. 관절 점들의 세트는 주요 점들의 세트를 포함할 수 있다. 텍스처 맵은 메쉬의 2차원(2D) 표현을 생성하기 위해 메쉬를 언래핑(unwrapping)하는 것에 의해 생성될 수 있다. 텍스처 맵의 생성은 메쉬의 2D 표현의 각 면(face)에 대해 면이 입력 이미지에서 보이는(visible) 신체의 일부(part)에 대응하는지 여부를 결정하는 단계를 더 포함할 수 있다. 면이 입력 이미지에서 보이는 신체의 일부에 대응하면, 신체 부분의 세그먼트는 메쉬의 2D 표현의 면에 할당될 수 있다. 면이 입력 이미지에서 보이는 신체의 일부에 대응하지 않으면, 신체 부분에 기초하여 예측된 면(predicted face)을 생성할 수 있고, 메쉬의 2D 표현의 면에 예측된 면을 할당할 수 있다.
주요 점들의 세트는 제1 신경망에 의해 결정될 수 있고, 일반 모델은 제2 신경망에 의해 결정될 수 있다.
다른 실시예에 따르면, 단일 이미지-기반 실시간 신체 애니메이션을 위한 시스템이 제공된다. 시스템은 적어도 하나의 프로세서 및 프로세서-실행 가능한 코드들을 저장하는 메모리를 포함할 수 있고, 적어도 하나의 프로세서는, 프로세서-실행 가능 코드들을 실행할 때 이미지-기반 신체 실시간 애니메이션을 위한 전술한 방법의 동작들을 구현하도록 구성될 수 있다.
본 개시물의 또 다른 양태에 따르면, 프로세서-판독가능 명령어들을 저장하는 비일시적 프로세서-판독가능 매체가 제공된다. 프로세서-판독가능 명령어들이 프로세서에 의해 실행될 때, 프로세서가 단일 이미지-기반 실시간 신체 애니메이션을 위한 전술된 방법을 구현하도록 한다.
예시들의 추가 목적들, 이점들 및 새로운 특징들은 다음 설명에서 부분적으로 설명되고, 부분적으로는 하기 설명 및 첨부 도면들을 검토함으로써 당업자에게 명백해질 것이며, 또는 실시예들의 생성 또는 동작에 의해 학습될 수 있다. 개념들의 목적들 및 이점들은 첨부된 청구범위에서 특히 지적된 방법론들(methodologies), 수단들(instrumentalities) 및 조합들(combinations)을 통해 실현되고 달성될 수 있다.
실시예들은 유사한 참조들이 유사한 요소들을 나타내는 첨부 도면들의 도면들에서 제한이 아니라 예시의 방식으로 예시된다.
도 1은 예시적인 환경을 나타내는 블록도이고, 단일 이미지-기반-실시간 신체 애니메이션을 위한 방법이 실시될 수 있다.
도 2는 예시적인 실시예에 따른, 단일 이미지-기반 신체 애니메이션을 위한 시스템을 도시하는 블록도이다.
도 3은 예시적인 입력 이미지 및 사람의 실루엣을 보여주는 세그멘테이션 마스크를 도시하는 도면이다.
도 4는 주요 점들의 예시적인 그래프를 도시한다.
도 5는 세그멘테이션 마스크에 기초하여 결정된 예시적인 제1 실루엣 및 입력 이미지에 대한 일반 모델의 투영으로서 결정된 예시적인 제2 실루엣을 도시한다.
도 6은 예시적인 무게중심 맵, 예시적인 깊이 맵, 예시적인 노멀 맵, 대응하는 변형된 무게중심 맵, 변형된 깊이 맵 및 변형된 노멀 맵의 정면들을 도시한다.
도 7은 무게중심 좌표들의 시각화를 도시한다.
도 8은 예시적인 점 클라우드 및 점 클라우드에 기초하여 생성된 메쉬를 도시한다.
도 9는 예시적인 워프 깊이 맵, 예시적인 워프 노멀 맵, 워핑된 깊이 맵 및 워핑된 노멀 맵에 기초하여 생성된 예시적인 점 클라우드, 및 점 클라우드에 기초하여 생성된 예시적인 메쉬를 도시한다.
도 10은 예시적인 입력 이미지, 입력 이미지에 피팅된 일반 모델의 메쉬, 및 재구성된 메쉬를 도시한다.
도 11은 예시적인 3D 표면을 2D 표면으로 UV 언래핑하는 프로세스를 도시한다.
도 12는 큐브의 예시적인 3D 표면을 2D 표면으로 UV 언래핑하는 프로세스를 도시한다.
도 13은 예시적인 3D 모델의 애니메이션을 도시한다.
도 14는 애니메이션 프로세스 동안 단일 이미지의 예시적인 변환을 도시하는 흐름도이다.
도 15는 예시적인 일 실시예에 따른 단일 이미지-기반 실시간 신체 애니메이션을 위한 방법을 도시하는 흐름도이다.
도 16은 단일 이미지-기반 실시간 신체 애니메이션을 위한 방법을 구현하기 위해 사용될 수 있는 예시적인 컴퓨터 시스템을 도시한다.
도 1은 예시적인 환경을 나타내는 블록도이고, 단일 이미지-기반-실시간 신체 애니메이션을 위한 방법이 실시될 수 있다.
도 2는 예시적인 실시예에 따른, 단일 이미지-기반 신체 애니메이션을 위한 시스템을 도시하는 블록도이다.
도 3은 예시적인 입력 이미지 및 사람의 실루엣을 보여주는 세그멘테이션 마스크를 도시하는 도면이다.
도 4는 주요 점들의 예시적인 그래프를 도시한다.
도 5는 세그멘테이션 마스크에 기초하여 결정된 예시적인 제1 실루엣 및 입력 이미지에 대한 일반 모델의 투영으로서 결정된 예시적인 제2 실루엣을 도시한다.
도 6은 예시적인 무게중심 맵, 예시적인 깊이 맵, 예시적인 노멀 맵, 대응하는 변형된 무게중심 맵, 변형된 깊이 맵 및 변형된 노멀 맵의 정면들을 도시한다.
도 7은 무게중심 좌표들의 시각화를 도시한다.
도 8은 예시적인 점 클라우드 및 점 클라우드에 기초하여 생성된 메쉬를 도시한다.
도 9는 예시적인 워프 깊이 맵, 예시적인 워프 노멀 맵, 워핑된 깊이 맵 및 워핑된 노멀 맵에 기초하여 생성된 예시적인 점 클라우드, 및 점 클라우드에 기초하여 생성된 예시적인 메쉬를 도시한다.
도 10은 예시적인 입력 이미지, 입력 이미지에 피팅된 일반 모델의 메쉬, 및 재구성된 메쉬를 도시한다.
도 11은 예시적인 3D 표면을 2D 표면으로 UV 언래핑하는 프로세스를 도시한다.
도 12는 큐브의 예시적인 3D 표면을 2D 표면으로 UV 언래핑하는 프로세스를 도시한다.
도 13은 예시적인 3D 모델의 애니메이션을 도시한다.
도 14는 애니메이션 프로세스 동안 단일 이미지의 예시적인 변환을 도시하는 흐름도이다.
도 15는 예시적인 일 실시예에 따른 단일 이미지-기반 실시간 신체 애니메이션을 위한 방법을 도시하는 흐름도이다.
도 16은 단일 이미지-기반 실시간 신체 애니메이션을 위한 방법을 구현하기 위해 사용될 수 있는 예시적인 컴퓨터 시스템을 도시한다.
실시예들의 다음의 상세한 설명은 상세한 설명의 일부를 형성하는 첨부 도면들에 대한 참조들을 포함한다. 이 섹션에 설명된 접근 방식들은 청구범위에 대한 선행 기술이 아니며 이 섹션에 포함함으로써 선행 기술로 인정되지 않는다. 도면들은 예시적인 실시예들에 따른 예시들을 도시한다. 본 명세서에서 "예시들"이라고도 하는 이러한 예시적인 실시예들은 당업자가 본 주제를 실시할 수 있도록 충분히 상세하게 설명되어 있다. 실시예들은 결합될 수 있고, 다른 실시예들이 활용될 수 있거나, 청구된 범위를 벗어나지 않고 구조적, 논리적 및 동작적인 변경들이 이루어질 수 있다. 따라서 다음의 상세한 설명은 제한적인 의미로 받아들여서는 안 되며, 그 범위는 첨부된 청구범위 및 그 등가물들에 의해 정의된다.
본 개시는 다양한 기술들을 이용하여 구현될 수 있다. 예를 들어, 본 명세서에 설명된 방법들은 컴퓨터 시스템에서 실행되는 소프트웨어 및/또는 마이크로프로세서의 조합 또는 기타 특별히 설계된 주문형 집적 회로(application-specific integrated circuits)(ASIC)들, 프로그램 가능 논리 장치(programmable logic devices)들, 또는 이들의 임의의 조합을 활용하는 하드웨어에 의해 구현될 수 있다. 특히, 본 명세서에 설명된 방법들은 디스크 드라이브 또는 컴퓨터 판독가능 매체와 같은 비일시적 저장 매체에 상주하는 일련의 컴퓨터 실행가능 명령어들에 의해 구현될 수 있다. 본 명세서에 개시된 방법들은 모바일 장치, 개인용 컴퓨터, 서버, 네트워크 노드 등과 같은 컴퓨팅 장치에 의해 구현될 수 있다는 점에 유의해야 한다.
이 특허 문서의 목적을 위해, "또는" 및 "및"이라는 용어들은 사용 맥락에서 달리 명시되지 않거나 명확하게 다르게 의도되지 않는 한 "및/또는"을 의미한다. "a"라는 용어는 달리 명시되지 않거나 "하나 이상"의 사용이 명백히 부적절하지 않는 한 "하나 이상"을 의미한다. 포함하는", "포함하는", "포함하는" 및 "포함하는"이라는 용어는 상호 교환 가능하며 제한하려는 의도가 아니다. 예를 들어, "포함하는"이라는 용어는 "포함하지만 이에 국한되지 않는"을 의미하는 것으로 해석되어야 한다.
본 개시는 단일 이미지-기반 실시간 신체 애니메이션을 위한 방법 및 시스템에 관한 것이다. 본 발명의 방법들 및 시스템들은 스마트폰들, 태블릿 컴퓨터들 또는 휴대폰들과 같은 모바일 장치들에서 실시간으로 인터넷에 연결하거나 서버 측 계산 리소스를 사용할 필요 없이 작동하도록 설계될 수 있지만 실시예들은 웹 서비스 또는 클라우드 기반 리소스들을 포함하는 접근 방식들로 확장될 수 있다.
본 개시의 일부 실시예들은 단일 입력 이미지에 기초하여 사람의 신체의 실시간 애니메이션을 허용할 수 있다. 신체에 대한 세그멘테이션 마스크(segmentation mask)를 획득하기 위해 입력 이미지는 세그먼트될 수 있다. 신체의 관절들을 나타내는 주요 점들의 그래프를 획득하고, 신체의 포즈를 복구하기 위하여 입력 이미지는 분석될 수 있다. 신체의 입력 이미지와 주요 점들과 그래프에 일반 모델을 피팅할 수 있다. 일반 모델은 다른 신체 형상들과 포즈들을 가진 다른 사람들의 이미지들의 데이터세트들에서 훈련될(trained) 수 있다. 일반 모델과 세그멘테이션 마스크는 애니메이션에 사용될 신체의 3D 모델을 생성하기 위해 더 사용될 수 있다. 3D 모델은 신체의 실루엣에 거의 피팅될 수 있다. 3D 모델은 신체 내 관절들의 위치들을 나타내는 관절 점들의 세트, 3D 점들의 재구성된 메쉬, 재구성된 메쉬에서 3D 점들에 대한 스키닝 가중치들, 미리 약속된(precontracted) 메쉬를 텍스처링(texturing)하기 위한 텍스처 맵을 포함할 수 있다. 3D 모델은 포즈를 나타내는 포즈 파라미터들의 세트를 수신할 수 있다. 포즈를 취하는 신체의 이미지는 3D 모델과 포즈 파라미터들의 세트에 기초하여 렌더링될(rendered) 수 있다.
3D 모델은 입력 이미지에서 신체를 애니메이션화하기 위해 더 사용될 수 있다. 예를 들어, 일련의 프레임들을 생성하기 위해 추가 포즈들을 나타내는 일련의 추가 포즈 파라미터들의 세트들이 3D 모델에 제공될 수 있다. 생성된 프레임들 각각은 추가 포즈들 중 하나를 취하는 신체의 이미지를 포함할 수 있다. 생성된 프레임들은 모션을 수행하는 신체를 특징으로 하는 비디오를 생성하기 위해 더 사용될 수 있고, 모션을 수행하는 동안 신체는 추가 포즈들을 취한다. 일련의 추가 포즈 파라미터들의 세트들은 모션들 데이터베이스(motions database)에서 선택될 수 있다. 모션들 데이터베이스의 각 모션들은 포즈 파라미터들의 세트의 형태로 모션을 나타낼 수 있다. 모션들 데이터베이스의 모션들은 모션들을 수행하는 실제 행위자(actor)들의 모션 캡처 움직임들(motion capture movements)을 사용하여 미리 생성될 수 있다. 모션들 데이터베이스의 모션들은 일반 모델의 시각화를 위한 일반 모델 및 편집기(editor)를 사용하여 미리 생성될 수도 있다.
이제 도면들을 참조하여 예시적인 실시예들이 설명된다. 도면들은 이상적인 예시적인 실시예들의 개략도이다. 따라서, 여기에 논의된 예시적인 실시예들은 본 명세서에 개시된 특정한 예들로 제한되는 것으로 이해되어서는 안 되고, 오히려 이들 예시적인 실시예들은 편차들을 포함할 수 있고 당업자에게 자명한 바와 같이 여기에 제시된 예시와 상이할 수 있다.
도 1은 예시적인 환경(100)을 도시하는 블록도로서, 단일 이미지-기반 실시간 신체 애니메이션을 위한 방법이 실행될 수 있다. 환경(100)은 컴퓨팅 장치(105)를 포함할 수 있다. 컴퓨팅 장치(105)는 휴대폰, 스마트폰 또는 태블릿 컴퓨터와 같은 모바일 장치를 의미할 수 있다. 그러나 다른 실시예들에서, 컴퓨팅 장치(105)는 개인용 컴퓨터, 랩톱 컴퓨터, 넷북, 셋톱 박스, 텔레비전 장치, 멀티미디어 장치, 개인 휴대 정보 단말기, 게임 콘솔, 엔터테인먼트 시스템, 인포테인먼트 시스템(infotainment system), 차량 컴퓨터, 또는 임의의 다른 컴퓨팅 장치를 지칭할 수 있다.
특정 실시예에서, 컴퓨팅 장치(105)는 단일 이미지-기반 신체 애니메이션(single image-based body animation)을 위한 시스템(200)을 포함할 수 있다. 시스템(200)은 컴퓨팅 장치(110)의 메모리에 저장되고 컴퓨팅 장치(110)의 하나 이상의 프로세서들에 의해 실행가능한 명령어들로서 구현될 수 있다. 시스템(200)은 입력 이미지(110) 및 포즈 파라미터들의 세트(130)를 수신할 수 있다. 입력 이미지는 적어도 사람의 신체(115) 및 배경(120)을 포함할 수 있다. 일부 다른 실시예들에서, 입력 이미지는 컴퓨팅 장치(110) 또는 컴퓨팅 장치(110)가 통신 가능하게 연결된 클라우드-기반 컴퓨팅 리소스에 저장될 수 있다.
포즈 파라미터들(130)의 세트는 신체(115)가 취할 수 있는 하나 이상의 포즈를 나타낼 수 있다. 일부 실시예들에서, 포즈 파라미터들은 3차원(3D) 공간의 기준점 및/또는 3D 공간의 축들에 대한 신체(115)와 관련된 주요 점들의 회전 각도들을 나타낼 수 있다. 예를 들어, 주요 점들은 신체(115)와 연관된 골격(skeleton)의 관절들(관절 점들이라고도 함)를 나타낼 수 있다. 회전 각도들에 따라 주요 점들이 회전되는 경우, 신체(115)는 회전 각도들과 연관된 포즈를 취할 수 있다.
일부 실시예들에서, 시스템(200)은 입력 이미지를 분석하고 프레임(150)을 생성할 수 있다. 프레임(150)은 포즈 파라미터들과 연관된 포즈를 취하는 신체(115)의 이미지를 포함할 수 있다. 선택적으로, 프레임(150)은 다른 객체들의 이미지들, 예를 들어, 입력 이미지(110)의 배경(120) 이미지를 또한 포함할 수 있다. 포즈 파라미터들(130)의 세트는 춤 동작, 곡예 점프, 싸움 동작 등과 같은 특정 동작 동안 신체(115)가 취할 수 있는 연속적인 포즈들의 세트를 나타낼 수 있다. 시스템(200)은 연속 프레임들의 세트를 생성할 수 있고, 연속 프레임들의 각각은 연속 포즈 파라미터들 중 하나에 대응한다. 시스템(200)은 연속 프레임들의 세트에 기초하여 출력 비디오(140)를 추가로 생성할 수 있다. 출력 비디오는 연속적인 포즈 파라미터의 세트에 의해 정의된 특정 모션을 수행하는 신체(115)의 이미지들을 포함할 수 있다.
도 2는 예시적인 실시예에 따른, 단일 이미지-기반 신체 애니메이션을 위한 시스템(200)을 도시하는 블록도이다. 시스템(200)은 세그멘테이션 및 포즈 추정 모듈(segmentation and pose estimation module)(205), 일반 모델 피팅 모듈(210), 재구성 모듈(reconstruction module)(215), 리깅 및 스키닝 모듈(rigging and skinning module)(220), 텍스처 모듈(texture module)(225), 모션들 데이터베이스(230), 및 애니메이션 모듈(235)을 포함할 수 있다.
분할 및 포즈 추정 모듈(205)은 입력 이미지(110)를 수신하도록 구성될 수 있다. 입력 이미지(110)는 사람의 신체(115) 이미지를 나타내는 픽셀들을 포함할 수 있다. 모듈(205)은 세그멘테이션 마스크를 생성하도록 구성될 수 있다. 세그멘테이션 마스크는 입력 이미지(110)에 사람의 실루엣을 나타내는 이미지일 수 있다.
도 3은 사람의 실루엣을 보여주는 이미지(110) 및 세그멘테이션 마스크(310)의 예를 도시한다. 세그멘테이션 마스크는 사람의 신체(115)(신체 부분)의 픽셀들에 대응하는 "백색(white)" 픽셀들(320) 및 입력 이미지(110)의 나머지 픽셀들(rest pixels)(배경 부분)에 대응하는 "검정(black)" 픽셀들(330)을 포함할 수 있다.
신체 부분(320) 및 배경 부분(330)에서 입력 이미지의 세그멘테이션은 입력 이미지(110) 상의 각 픽셀에 대해 픽셀이 사람의 신체에 대응하는지 여부를 결정하도록 구성된 신경망에 의해 수행될 수 있다. 세그멘테이션을 수행하는 신경망의 아키텍처(architecture)는 순차 컨볼루션(sequential convolution)들에 이어 전치된 컨볼루션(transposed convolution)들 및 업 샘플링(up sampling)들을 포함할 수 있다. 아키텍처는, 데이터가 이전 계층(earlier layer)들에서부터 마지막 계층(last layer)들로 전달되는 경우 대칭 계층(symmetric layer)들과 대칭 계층들 사이의 "브리지(bridge)들"을 포함할 수도 있다. 일부 실시예들에서, 더 빠른 추론(inference)을 위해 입력 이미지의 형상이 감소될 수 있다. 특정 실시예들에서 신경망이 임의의 형상의 이미지들에서 실행되도록 하기 위하여, 패딩(padding)이 입력 이미지에 적용될 수 있다. 세그멘테이션 마스크(310)는 메쉬 재구성 모듈(215) 및 텍스처 모듈(225)에 더 제공될 수 있다.
다시 도 2를 참조하면, 모듈(205)은 또한 입력 이미지에 기초하여 입력 이미지에서 신체의 포즈를 결정할 수 있다. 포즈는 그래프 형태로 결정될 수 있다. 그래프는 주요 점들의 세트와 일부 주요 점들을 연결하는 모서리(edge)들을 포함할 수 있다.
도 4는 예시적인 그래프(410) 및 예시적인 그래프(420)를 도시한다. 그래프(410) 및 그래프(420) 모두 눈, 코, 목, 어깨, 다리, 팔꿈치 등과 같은 사람의 관절들 또는 사람의 주요 부분(key part)에 묶인 주요 점들을 포함한다. 그래프(420)는 그래프(410)보다 사람의 얼굴 영역(region of a face of the person)에서 더 많은 주요 점들을 포함한다.
추가 신경망은 입력 이미지에 기초하여 주요 점들의 미리-정의된 그래프(예를 들어, 그래프(410) 또는 그래프(420))를 결정하도록 구성될 수 있다. 각 주요 점은 입력 이미지의 평면의 XY 좌표들(coordinates)과 3D 공간의 XYZ 좌표들로 표현될 수 있다. 주요 점들의 결정을 위한 신경망은 특별한 아키텍처를 가진 경량 컨볼루션(lightweight convolution)들을 가질 수 있다. 예를 들어, XY 좌표들을 결정하고 XYZ 좌표들을 결정하기 위해 별도의 컨볼루션들이 사용될 수 있다. 신경망은 준비된 상당한 양의 입증 가능한 정보(significant amount of prepared provable information)("실제(ground truth)" 데이터)에 기초하여 지도 방식(supervised manner)으로 훈련될 수 있다. 주요 점들의 그래프는 일반 모델 피팅 모듈(210)에 더 제공될 수 있다.
다시 도 2를 참조하면, 일반 모델 피팅 모듈(210)은 입력 이미지 및 주요 점들의 그래프에 기초하여 일반 모델을 생성하도록 구성될 수 있다. 일반 모델은 일반적인 사람의 외모(appearance)와 사람의 포즈를 나타낼 수 있다. 일반 모델에는 형상 파라미터들이 포함될 수 있다. 형상 파라미터들은 사람의 신체 형상을 나타내는 3D 점들의 벡터를 포함할 수 있다. 일반 모델은 포즈 파라미터들의 벡터를 더 포함할 수 있고, 포즈 파라미터들 각각은 신체의 적어도 관절의 축-각도 회전(axis-angle rotation)들을 결정한다. 신체의 관절들은 그래프의 주요 점들에 대응할 수 있다. 일부 실시예들에서, 일반 모델은 사람의 신체를 나타내는 메쉬를 생성하기 위해 사용될 수 있다.
일반 모델은 다양한 형상들의 사람들과 포즈들을 포괄(encompass)할 수 있을 만큼 충분히 정교(sophisticated)하도록 설계될 수 있다. 반면 일반 모델은 계산(computation) 측면에서 복잡하지 않을 수 있다. 일반 모델은 고정 0 모델(fixed zero model), 형상 파라미터들 및 포즈 파라미터들의 파라미터화된 함수(parametrized function)일 수 있다. 일반 모드는 실제 사람이 수행할 수 있는 다양한 형상들과 포즈들의 다양한 신체들을 나타낼 수 있다. 일반 모델을 파라미터화된 함수로 표현하면 컴퓨팅 장치의 메모리를 절약할 수 있고 최적화된 행렬 계산들을 사용하여 모션들을 계산하여 계산들의 속도를 높일 수 있다.
일반 모델은 두 개의 데이터 세트들에서 신경망에 의해 훈련될 수 있다. 제1 데이터 세트는 다양한 포즈들의 사람들에 대한 3D 스캔들을 포함할 수 있다. 제2 데이터 세트는 다양한 형상들의 사람들의 신체들의 스캔들을 포함할 수 있다. 일반 모델로 재구성된 스캔들과 이미지들 간의 차이를 최소화하기 위해 일반 모델의 훈련가능한 파라미터들을 최적화하는 훈련의 목표이다. 두 데이터세트들이 다를 수 있기 때문에, 포즈와 관련된 일반 모델의 파라미터들은 제1 데이터 세트에 기초하여 훈련될 수 있고 형상과 관련된 파라미터들은 제2 데이터 세트에 기초하여 훈련될 수 있다.
일반 모델에는 사람의 머리와 관련된 포즈 파라미터들도 포함될 수 있다. 머리와 관련된 포즈 파라미터들은 눈썹, 턱 등을 나타내기 위해 사용할 수 있다. 얼굴 형상들과 표정(facial expression)들을 포함하는 제3 데이터 세트는 사람의 머리와 관련된 포즈 파라미터들을 학습하기 위해 사용할 수 있다. 제1 데이터 세트, 제2 데이터 세트 및 제3 데이터 세트에서 훈련된 파라미터들은 파라미터들이 다른 데이터 세트들에서 훈련된 경우에도 동일한 방식으로 일반 모델에 영향을 미치도록 정렬될 수 있다.
일부 실시예에서, 일반 모델에 의해 학습된 파라미터들은 스키닝 가중치들, 형상 계수(shape coefficient)들, 포즈 파라미터들, 및 관절 회귀자(joint regressor)들을 포함할 수 있다. 스키닝 가중치들은 각 관절이 일반 모델과 연관된 메쉬의 각 꼭짓점(vertex)에 미치는 영향을 결정하기 위해 사용되는 값들을 나타낼 수 있다. 메쉬는 사람의 신체 형상을 나타낼 수 있다. 스키닝 가중치들은 메쉬를 애니메이션하기 위해 사용될 수 있다. 스키닝 가중치들은 NjointsxNvertices 행렬로 표현될 수 있고, Njomts는 관절들의 수이고 Nvertices는 메쉬의 꼭짓점들의 수이다. 형상 계수들은 키, 체중, 허리 둘레, 낮은 엉덩이 둘레 등의 측면에서 일반 모델을 적절하게 형성하기 위해 형상 파라미터들을 사용하여 초기 일반 모델(initial generic model)을 변경하기 위해 사용될 수 있다. 관절 회귀자들은 사람의 형상에 대한 사람의 관절들의 초기 위치들을 결정하기 위해 사용되는 값들을 포함할 수 있다. 관절 파라미터들은 스키닝 가중치들에 대한 행렬과 유사한 행렬로 나타낼 수 있다. 훈련 후, 일반 모델은 형상 파라미터들의 세트 및 포즈 파라미터들의 세트에 기초하여 신체의 형상 및 포즈를 생성할 수 있다.
일반 모델은 신경망을 이용하여 입력 이미지(110)에 피팅될 수 있다. 신경망은 컨볼루션 인코더(convolutional encoder)를 통해 입력 이미지를 전달하도록 구성될 수 있다. 컨볼루션 인코더의 출력은 일반 모델의 형상 파라미터들과 포즈 파라미터들을 출력하는 반복 회귀자(iterative regressor)로 추가로 전달될 수 있다. 반복 회귀자는 재투영 오류(reprojection error)를 최소화할 수 있다. 재투영 오류는 입력 이미지에서 사람의 실제 관절들과 예측된 관절들의 차이로 계산될 수 있다.
여기서 K는 관절들의 수이고, xreal(i)는 실제 관절들의 좌표들이며, xpred(i)는 예측된 관절들의 좌표들이다. 현재 보이는 관절들만 재투영 오류에서 고려할 수 있다.
반복 회귀자는 생산적 적대 신경망(Generative Adversarial Network)(GAN)을 포함할 수 있다. GAN은, 생성된 일반 모델이 실제 인간 메쉬처럼 보이도록 사용될 수 있다. 다음 공식으로 제공되는 기존의 GAN 대물렌즈가 사용될 수 있다.
모바일 장치에서 신경망을 구현하기 위해 MobileNet에서 사용되는 방법들과 유사한 방법들로 컨볼루션이 수행될 수 있다. GAN은 TensorFlow와 같은 프레임워크들의 기능들을 사용하여 구현될 수 있다. 일반 모델은 재구성 모듈(215)에 제공될 수 있다.
재구성 모듈(215)은 일반 모델 및 세그멘테이션 마스크에 기초하여 애니메이션에 사용될 3D 모델을 생성하도록 구성될 수 있다. 일반 모델은 인간 형상들의 제한된 공간을 설명할 수 있다. 일반 모델은 옷, 머리카락, 손의 손가락 위치 및 기타 특정한 사람의 세부 사항들을 나타내지 않을 수 있다. 일반 모델은 3D 모델을 생성하기 위해 사용될 수 있다. 3D 모델은 특정한 사람 형상의 가능한 한 많은 세부 사항들을 묘사할 수 있다. 특히, 3D 모델은 입력 이미지에서 사람의 실루엣을 실질적으로 정확하게 피팅하도록 구성될 수 있다. 즉, 세그멘테이션 마스크의 실루엣을 커버(cover)하도록 3D 모델이 구성될 수 있다. 추가 실시예들에서, 3D 모델은 3D 모델의 애니메이션이 사실적으로 보이도록 하기 위해 입력 이미지 상의 사람의 머리카락, 옷 및 손가락을 커버하도록 구성될 수 있다.
3D 모델은 3차원(3D) 공간에서 재구성된 메쉬 및 관절 점들의 세트를 포함할 수 있다. 관절 점들은 신체의 관절들의 위치들을 나타낼 수 있다. 재구성된 메쉬는 일반 모델의 메쉬의 3차원 점들과 다른 3차원 점들을 포함할 수 있다. 재구성된 메쉬의 각 점들에는 스키닝 가중치들의 세트가 할당될 수 있다. 각 스키닝 가중치들은 관절 점들 중 적어도 하나와 연관될 수 있다. 3D 모델은 메쉬 상에 텍스처를 생성하기 위한 텍스처 맵을 더 포함할 수 있다.
모듈(215)은 모듈(210)에 의해 생성된 일반 모델의 깊이 맵, 노멀 맵 및 무게중심 맵(barycentric map)을 생성할 수 있다. 일부 실시예들에서, 깊이 맵, 노멀 맵 및 무게중심 맵은 일반 모델의 전면 및 후면 모두의 PNG(Portable Network Graphic) 이미지를 통해 제시될 수 있다. 모듈(215)은 입력 이미지에서 사람의 신체의 제1 실루엣 및 제2 실루엣을 결정할 수 있다. 제1 실루엣은 세그멘테이션 마스크에 기초하여 결정될 수 있다. 제2 실루엣은 입력 이미지에 대한 일반 모델의 투영으로 결정될 수 있다.
도 5는 세그멘테이션 마스크에 기초하여 결정된 예시적인 제1 실루엣 및 입력 이미지에 대한 일반 모델의 투영으로서 결정된 예시적인 제2 실루엣을 도시한다. 모듈(215)은 제1 실루엣의 윤곽 상에 위치한 경계 점(boundary point)들(540)을 제2 실루엣의 윤곽(contour) 상에 위치한 경계 점들(550)에 매칭시킬 수 있다. 경계 점들(540)은 입력 이미지에서 신체의 주요 점들(530)의 좌표들을 이용하여 결정될 수 있다. 주요 점들(530)은 모듈(205)의 신경망에 의해 결정될 수 있다. 경계 점들(550)은 일반 모델에 기초하여 결정된 관절 위치들에 기초하여 결정될 수 있다. 각각의 경계 점들(540)은 주요 점들(530) 중 하나에 가장 가까운 제1 실루엣의 윤곽 상의 점으로 발견될 수 있다. 각각의 경계 점들(550)은 제2 실루엣의 윤곽 상의 점으로 일반 모델에 기초하여 결정된 관절 위치들 중 하나에 가장 가까운 점으로 발견될 수 있다.
경계 점들(540)과 경계 점들(550)이 매칭된 후, 모듈(215)은 경계 점들 사이의 점들을 획득하기 위해 경계 점들(540)과 경계 점들(550) 사이를 선형으로(linearly) 보간(interpolate)할 수 있다. 주요 점들(530)과 관절 위치들을 이용한 경계 점들의 매칭은 기존의 방법들과 같이 동적 프로그래밍(dynamic programming)으로 거리들을 최소화하여 경계 점들을 매칭하는 것보다 빠르고 정확할 수 있다.
노멀 맵, 깊이 맵, 무게중심 맵은 경계 점들 사이의 점들에 대한 정보를 사용하여 평균-값-좌표들 알고리즘(Mean-Value-Coordinates algorithm)에 의해 추가로 워핑될 수 있다. 결과적으로 워핑된 노멀 맵, 워핑된 무게중심 맵 및 워핑된 깊이 맵이 세그멘테이션 마스크의 원래 사람 실루엣에 피팅되고 애니메이션을 위한 3D 모델을 결정하기 위해 추가로 사용될 수 있다.
도 6은 예시적인 무게중심 맵(610), 예시적인 깊이 맵(620z) 및 예시적인 노멀 맵(630) 및 대응하는 워핑된 무게중심 맵(640), 워핑된 깊이 맵(650), 및 워핑된 노멀 맵(660)의 정면들을 도시한다. 모듈(215)은 점(예를 들어, 입력 이미지의 픽셀)별로 좌표(x, y) 및 z 값을 저장하여 깊이 맵을 저장할 수 있다. 노멀 맵은 각 (x, y) 좌표들에 대해 축 좌표 x, y, z의 3D 벡터(Nx, Ny, Nz)인 이 점의 노멀 벡터를 저장함으로써 저장할 수 있다. 무게중심 맵은 각 (x, y) 좌표들에 대해 저장함으로써 저장할 수 있다, 1) 일반 모델과 관련된 메쉬의 면 인덱스 -여기서 면은 투영된 점(x, y)을 포함함- ; 및 2) 처음 두 개의 무게중심 좌표들(알파 및 베타). 제3 무게중심 좌표는 알파와 베타에서 계산될 수 있다.
도 7은 무게중심 좌표들의 시각화를 도시한다.
다시 도 2를 참조하면, 모듈(215)은 재구성된 메쉬를 더 구축할 수 있다. 먼저, 워핑된 깊이 맵과 워핑된 노멀 맵에 기초하여 점 클라우드를 생성할 수 있다. 워핑된 깊이 맵과 워핑된 노멀 맵에서 각 점은 좌표들(x, y, z)와 노멀 벡터(Nx, Ny, Nz)의 6가지 값들로 표시된다. 점 클라우드의 생성은 (x, y, z) 점의 밀집 점 클라우드(dense point cloud)의 생성을 포함할 수 있다. 신체의 전면 크기 표면에 대한 제1 메쉬와 신체 후면에 대한 제2 메쉬는 점 클라우드를 통해 이동하여 별도로 추가로 생성될 수 있다. 제1 메쉬와 제2 메쉬는 신체의 3D 표면을 나타내는 하나의 재구성된 메쉬로 더 병합될 수 있다. 재구성된 메쉬는 세그멘테이션 마스크의 실루엣 윤곽에 피팅될 수 있다. 재구성된 메쉬의 생성 동안, 모듈(215)은 메쉬의 각 꼭짓점에 대해 워핑 전의 일반 모델의 깊이 맵 및 노멀 맵의 (x, y) 좌표들을 저장할 수 있다.
도 8은 예시적인 점 클라우드(810) 및 점 클라우드(810)에 기초하여 생성된 메쉬(820)를 도시한다.
도 9는 워핑된 깊이 맵(910)의 예시, 워핑된 노멀 맵(920)의 예시, 워핑된 깊이 맵(910) 및 워핑된 노멀 맵(920)에 기초하여 생성된 예시적인 점 클라우드(930), 및 점 클라우드(930)에 기초하여 생성된 예시적인 메쉬(940)를 도시한다.
도 10은 예시적인 입력 이미지(1010), 입력 이미지(1010)에 피팅된 일반 모델의 메쉬(1020), 및 3D 모델의 재구성된 메쉬(1030)를 도시한다. 재구성 메쉬(1030)는 입력 이미지(1010)에서 사람의 실루엣과 매칭될 수 있다.
다시 도 2를 참조하면, 리깅 및 스키닝 모듈(220)은 모듈(215)에 의해 생성된 재구성된 메쉬의 꼭짓점들에 대한 스키닝 가중치들을 결정할 수 있다. 스키닝 가중치들과 관절 점들의 위치들은 메쉬를 애니메이션하기 위해 추가로 사용될 수 있다.
일부 실시예들에서 관절 점들의 위치들은 모듈(210)에서 결정된 일반 모델과 동일한 것으로 간주될 수 있다. 다른 실시예들에서, 관절 점들의 위치들은 일반 모델의 스키닝 가중치들 및 관절 회귀자들에 워핑을 적용함으로써 도출될 수 있다. 특정 실시예들에서, 관절 점들의 위치는 관절 점들의 위치들을 시작 포즈(start pose)로 워핑함으로써 결정될 수 있다. 워핑은 시작 포즈에서 관절 점들의 위치들의 2D 투영들에 기초하여 결정할 수 있다.
재구성된 메쉬의 꼭짓점에 대한 스키닝 가중치들은 다음 절차를 사용하여 결정될 수 있다. 재구성된 메쉬의 각 꼭짓점에 대해, 모듈(220)은 워핑된 깊이 맵, 워핑된 노멀 맵 및 워핑된 무게중심 맵들 상의 (x, y) 좌표들을 결정할 수 있다. 모듈(220)은 워핑된 무게중심 맵에 기초하여 (x, y) 좌표들에 대응하는 일반 모델의 점을 더 결정할 수 있다. 모듈(220)은 점에 기초하여 일반 모듈의 메쉬의 면의 인덱스 및 면의 무게중심 좌표들을 더 결정할 수 있다. 점에 대한 스키닝 가중치는 면의 세 꼭짓점들의 스키닝 가중치들(일반 모델에 따라)의 가중된 평균으로 결정될 수 있고, 가중치들은 얼굴의 무게중심 좌표들에 의해 결정된다. 스키닝 가중치들을 결정하는 이 방법은 재구성된 메쉬의 모든 꼭짓점들에 대한 모든 스키닝 가중치들을 처리 및 저장하지 않고 즉석에서(on fly) 꼭짓점에 대한 스키닝 가중치들을 결정할 수 있기 때문에 스키닝 가중치들 행렬(skinning weights matrix)을 워핑하는 것보다 빠를 수 있다. 그러나, 특정 실시예들에서, 스키닝 가중치 행렬은 재구성된 메쉬의 모든 꼭짓점들에 대해 결정되고 컴퓨팅 장치의 메모리에 저장될 수 있다.
텍스처 모듈(225)은 재구성된 메쉬에 대한 텍스처 맵을 생성할 수 있다. 텍스처 맵은 입력 이미지와 세그멘테이션 마스크를 사용하여 생성될 수 있다. 텍스처 맵의 생성은 UV 텍스처 맵을 획득하기 위해 재구성된 메쉬의 UV 언래핑을 포함할 수 있다. 텍스처 맵은 다른 재구성된 메쉬들이 실루엣, 꼭짓점들의 수 및 면들에 따라 다를 수 있더라도 재구성된 다른 모든 메쉬들이 동일한 UV 텍스처 맵을 가지도록 설계될 수 있다. 이것은 입력 이미지 및 세그멘테이션 마스크에 대해 생성된 하나의 재구성된 메쉬로부터 동일한 입력 이미지 및 동일한 세그멘테이션 마스크에 대해 생성된 다른 재구성된 메쉬로 텍스처를 전송하는 것을 허용할 수 있다. 이것은 또한 변경하기 위해 텍스처 맵을 수정하는 것을 허용할 수 있다(예: 입력 이미지의 색상 및 옷).
UV 언래핑은 3D 객체의 표면을 2D 표면으로 평평하게 하는 프로세스(process of flattening)로 정의될 수 있다. UV는 표면 점들의 꼭짓점들의 좌표들(텍스처 좌표들이라고도 함)이다.
도 11은 예시적인 3D 표면(1110)을 2D 표면(1120)으로 UV 언래핑하는 프로세스를 도시한다.
도 12는 2D 표면(1220)에 대한 큐브(1210)의 예시적인 3D 표면의 UV 언래핑 프로세스를 도시한다. 2D 표면(1220)은 큐브(1210)의 3D 표면에 대한 텍스처 맵으로 사용될 수 있다. 큐브(1210)의 모서리(1230) 근처의 두 개의 다른 면들에 있는 두 개의 이웃한 점들은 텍스처 맵의 두 개의 다른 부분들에서 떨어져 있는 2D 표면의 두 점들에 대응할 수 있다.
재구성된 메쉬를 생성하는 동안, 모듈(215)은 재구성된 메쉬에서 얼굴의 3개의 꼭짓점들과 일반 모델의 메쉬에서 3개의 점들 A, Bz 및 C(꼭 꼭짓점들일 필요는 없음) 간의 대응을 추적할 수 있다.
일반 모델에는 텍스처 맵도 포함될 수 있다. 모듈(225)은 재구성된 메쉬에서 면의 꼭짓점들에 대응하는 일반 모델의 텍스처 맵 상의 좌표들을 결정할 수 있다. 재구성된 메쉬의 텍스처 맵 상의 면은 세 점들 A, B, C에 의해 결정된 일반 모델의 텍스처 맵 상의 삼각형(triangle)을 사용하여 추가로 생성될 수 있다. 세 점들 A, B, C가 일반 모델의 텍스처 맵의 다른 부분들에 있는 경우, 삼각형 A, B, C는 삼각형들로 분할될 수 있고, 각 삼각형들은 일반 모델의 텍스처 맵의 동일한 부분에 있다.
설명된 접근 방식을 사용하면 경계들과 시맨틱들(semantics)이 동일한 재구성된 메쉬들에 대해 UV 언래핑을 생성할 수 있다. 예를 들어, 사람의 얼굴(face)에 대한 텍스처는 3D 모델의 재구성된 모든 메쉬들에 대해 생성된 텍스처 맵들에서 동일한 위치에 위치할 수 있다.
재구성된 메쉬의 투영은 사람의 실루엣과 매칭된다. 따라서, 사람의 신체를 포함하는 입력 이미지의 해당 부분을 텍스처의 가시적인 부분으로 취함으로써 재구성된 메쉬의 앞면(텍스처의 가시적인 부분)을 있는 그대로 텍스처링할 수 있다. 재구성된 메쉬의 텍스처에서 보이지 않는 부분들을 인페인팅하는 것(inpainting)은 다른 방식으로 수행될 수 있다. 예를 들어, 재구성된 메쉬의 반대쪽은 앞면의 텍스처를 미러링하거나 앞면을 기반으로 텍스처를 합성하여 텍스처링될 수 있다. 텍스처의 보이지 않는 모든 부분은 알고리즘 또는 신경망 기반 인페인팅 방법을 사용하여 채울 수도 있다. 인페인팅은 좌표 기반 방법을 사용하여 수행할 수 있고, 텍스처는 컬러 그림이 아닌 원본 입력 이미지의 점들의 좌표들로 표현되고, 여기서 색상들을 가져온다. 이러한 방식으로 텍스처는 흐림 없이 선명하고 사실적인 색상들을 가질 수 있다.
보이지 않는 부분들을 인페인팅하는 신경망은 다양한 관점에서 사람의 이미지들에 기초하여 훈련될 수 있다. 신경망은 보이지 않는 텍스처가 예측될 수 있다. 신경망을 훈련하는 동안 3D 모델은 특정 시점(certain viewpoint)에서 보이지 않는 텍스처를 가지는 이미지를 생성할 수 있다. 렌더링된 이미지들은 "실제"와 비교될 수 있다. 그런 다음 역전파(Backpropagation)를 사용하여 신경망의 가중치들을 결정할 수 있다.
일부 실시예들에서, 일관되고 그럴듯해 보이는 텍스처가 있는(textured) 메쉬를 획득하기 위해, 보이지 않는 부분들은 3D 모델로 생성된 이미지에서 먼저 페인팅된 다음 텍스처 맵으로 전송될 수 있다. 3D 모델은 보이지 않는 부분이 강조 표시된 다양한 시야각(view angle)들에서 이미지를 생성할 수 있다. 그런 다음 생성 신경망 또는 더 간단한 알고리즘을 사용하여 이미지의 "구멍들"을 채울 수 있다. 텍스처가 있는 메쉬는 3D 모델의 텍스처 맵에 다시 투영하여 이전에 없었던 부분들을 복원된 부분들로 교체할 수 있다.
다시 도 2를 참조하면, 애니메이션 모듈(235)은 일련의 포즈 파라미터들의 세트들에 기초하여 입력 이미지에서 사람의 모션을 특징으로 하는 출력 비디오의 프레임들을 생성할 수 있다. 포즈 파라미터들의 세트들의 시퀀스는 모션 데이터베이스(230)에 저장될 수 있다. 포즈 파라미터들의 세트들의 시퀀스는 적어도 하나의 모션을 나타낼 수 있다. 포즈 파라미터들의 세트들의 시퀀스의 각 세트는 출력 비디오의 한 프레임을 생성하기 위해 사용될 수 있다. 포즈 파라미터들의 세트들의 시퀀스들은 실제 행위자들이 수행한 움직임들의 모션 캡처와 움직임들을 디지털화하여 획득될 수 있다. 일부 실시예들에서, 포즈 파라미터들의 세트들의 시퀀스들은 편집기들에서 일반 모델로 동작하는 3D 모션 설계자에 의해 인위적으로 생성될 수 있다. 모션들 데이터베이스는 춤, 곡예 및 등을 하는 것과 같은 다양한 모션들을 나타내는 포즈 파라미터들의 세트들의 다양한 시퀀스들을 포함할 수 있다.
각 프레임은 포즈에 해당하는 포즈 파라미터들의 세트를 사용하여 3D 모델을 다시 계산하는 것(recomputing)에 의해 생셩될 수 있다. 그 결과, 3D 공간에서 재구성된 메쉬의 꼭짓점들의 새로운 위치들이 생성되고 텍스처 맵을 사용하여 텍스처링되어 포즈를 취한 사람의 신체 이미지를 생성할 수 있다. 이미지는 프레임에 삽입될 수 있다. 다음과 같이 각 관절 점에 대한 회전 행렬들의 계산을 포함하는 리깅된 모델(rigged model)들을 애니메이션하기 위한 표준 애니메이션 절차가 사용될 수 있다:
여기서 rot(...)은 4x4 강성 행렬(rigid matrix)의 회전 부분(rotation part)이고 j는 4x4 강성 행렬의 변환 부분(translation part)이다.
회전 행렬들은 이중 쿼터니언(quaternion)들로 변환되고, 스키닝 가중치와 혼합되고(blended), 정규화된 다음, 다시 강성 변환 행렬로 변환될 수 있다. 혼합 변환(blended transformation)의 강성(rigidity)을 보장하고 스키닝 아티팩트(skinning artefact)들을 방지하기 위해 강성 변환 행렬이 필요하다. 이중 쿼터니언(dual quaternion)을 사용한 회전-병진 모션(Rotation-translation motion)(강성 변환)은 다음과 같이 정의될 수 있다:
이중 쿼터니언들은 다음과 같이 혼합될 수 있다:
여기서 w -는 스키닝 가중치들 계수들이고, q -는 변환 이중 쿼터니언들의 벡터이다. 다른 실시예들에서, 회전 행렬들은 선형 혼합 스키닝을 사용하여 혼합될 수 있다. 이들 실시예들에서, 회전 행렬들은 회전 행렬들의 선형 조합(linear combination)을 합산하여 혼합될 수 있고, 선형 조합의 계수들은 정규화된다.
도 13은 예시적인 3D 모델(1300)의 애니메이션을 도시한다. 이미지(1310)는 포즈 파라미터들의 세트들의 시퀀스로부터 포즈 파라미터들의 제1 세트에 기초하여 3D 모델에 의해 생성된 신체의 이미지를 포함한다. 이미지(1320)는 포즈 파라미터들의 세트들의 시퀀스로부터 포즈 파라미터들의 제2 세트에 기초하여 3D 모델에 의해 생성된 신체의 이미지를 포함한다.
도 14는 애니메이션 프로세스 동안 단일 이미지의 예시적인 변환을 도시하는 흐름도이다. 프로세스(1400)는 도 2에 도시된 시스템(200)에 의해 수행될 수 있다. 입력 이미지(110)은 사람의 신체를 포함할 수 있다. 입력 이미지(110)는 사람의 실루엣에 대한 세그멘테이션 마스크(310)를 생성하기 위해 세그멘테이션 및 포즈 추정 모듈(205)에 제공될 수 있다. 모듈(205)은 또한 사람 신체의 관절들의 위치들을 나타내는 주요 점들(410)의 세트를 생성할 수 있다. 주요 점들(410)의 세트 및 입력 이미지는 일반 모델 피팅 모듈(210)에 의해 추가로 사용되어 일반 모델(1020)을 생성할 수 있다. 일반 모델(1020) 및 세그멘테이션 마스크(310)는 애니메이션에 사용될 3D 모델(1030)을 생성하기 위해 재구성 모듈(215)에 제공될 수 있다. 3D 모델(1030)은 스키닝 가중치들을 추정하기 위해 리깅 및 스키닝 모듈(220)에 의해 더 처리될 수 있다. 3D 모델(1030)의 재구성된 메쉬 및 세그멘테이션 마스크는 재구성 메쉬를 텍스처링하기 위한 텍스처 맵을 생성하기 위해 더 사용될 수 있다. 이미지(1410)는 3D 모델에 의해 생성된 이미지를 나타내며, 여기서 재구성된 메쉬는 텍스처 맵으로 텍스처링된다. 이미지(1420)는 포즈 파라미터들의 세트에 기초하여 애니메이션 모듈(235)에 의해 생성된 이미지를 포함하는 프레임을 나타낸다.
도 15는 예시적인 일 실시예에 따른, 단일 이미지-기반 실시간 신체 애니메이션을 방법(1500)을 도시하는 흐름도이다. 방법(1500)은 컴퓨팅 장치(105) 및 시스템(200)에 의해 수행될 수 있다.
방법(1500)은 블록(1505)에서 입력 이미지를 수신하는 것으로 시작할 수 있다. 입력 이미지는 사람의 신체를 포함한다.
블록(1510)에서, 방법(1500)은 입력 이미지를 신체 부분 및 배경 부분으로 세그먼트하는 단계를 포함할 수 있다. 신체 부분은 사람의 신체에 대응하는 입력 이미지의 픽셀들을 포함할 수 있다.
블록(1515)에서, 방법(1500)은 신체 부분에 모델을 피팅하는 단계를 포함할 수 있다. 모델은, 신체의 포즈를 나타내는 포즈 파라미터들의 세트를 수신하고, 포즈 파라미터들의 세트에 기초하여 출력 이미지를 생성하도록 구성될 수 있다.
출력 이미지는 포즈를 취하는 신체의 이미지를 포함할 수 있다.
블록(1520)에서, 방법(1500)은 일련의 포즈 파라미터들의 추가 세트들을 수신하는 단계를 포함할 수 있다. 추가 세트들의 각각은, 신체의 추가 포즈들 중 적어도 하나를 나타낼 수 있다.
블록(1525)에서, 방법(1500)은 추가 포즈들을 취하는 일련의 신체의 출력 이미지들을 생성하기 위해, 일련의 포즈 파라미터들의 추가 세트들의 각각을 모델에 제공하는 단계를 포함할 수 있다.
블록(1530)에서, 방법(1500)은 일련의 출력 이미지들에 기초하여, 출력 비디오를 생성하는 단계를 포함할 수 있다. 출력 비디오의 각 프레임은 출력 이미지들 중 적어도 하나를 포함할 수 있다.
도 16은 본 명세서에 설명된 방법을 구현하기 위해 사용될 수 있는 예시적인 컴퓨팅 시스템(1600)을 도시한다. 컴퓨팅 시스템(1600)은 컴퓨팅 장치(105) 및 시스템(200)과 같은 맥락에서 구현될 수 있다.
도 16에 도시된 바와 같이, 컴퓨팅 시스템(1600)의 하드웨어 구성요소들은 하나 이상의 프로세서들(1610) 및 메모리(1620)를 포함할 수 있다. 메모리(1620)는 프로세서(1610)에 의한 실행을 위한 명령어들 및 데이터를 부분적으로 저장한다. 메모리(1620)는 시스템(1600)이 동작 중일 때 실행가능한 코드를 저장할 수 있다. 시스템(1600)은 선택적인 대용량 저장 장치(mass storage)(1630), 선택적인 휴대용 저장 매체 드라이브(들)(1640), 하나 이상의 선택적인 출력 장치(1650), 하나 이상의 선택적인 입력 장치(1660), 선택적인 네트워크 인터페이스(1670), 및 하나 이상의 선택적인 주변 장치(1680)를 더 포함할 수 있다. 컴퓨팅 시스템(1600)은 또한 하나 이상의 소프트웨어 구성요소들(1695)(예를 들어, 본 명세서에 설명된 초상화 애니메이션(portrait animation)을 위한 방법을 구현할 수 있는 것들)을 포함할 수 있다.
도 16에 도시된 구성요소들은 단일 버스(1690)를 통해 연결된 것으로 도시되어 있다. 구성요소들은 하나 이상의 데이터 전송 수단 또는 데이터 네트워크를 통해 연결될 수 있다. 프로세서(1610)와 메모리(1620)는 로컬 마이크로프로세서 버스를 통해 연결될 수 있고, 대용량 저장 장치(1630), 주변 장치(들)(1680), 휴대용 저장 장치(1640), 및 네트워크 인터페이스(1670)는 하나 이상의 입/출력(I/O) 버스를 통해 연결될 수 있다.
자기 디스크 드라이브, 솔리드 스테이트 디스크 드라이브 또는 광 디스크 드라이브로 구현될 수 있는, 대용량 저장 장치(1630)는 프로세서(1610)에서 사용하기 위한 데이터 및 명령어들을 저장하기 위한 비휘발성 저장 장치이다. 대용량 저장 장치(1630)는 본 명세서에 설명된 실시예들을 구현하기 위한 시스템 소프트웨어(예를 들어, 소프트웨어 구성요소들(1695))를 저장할 수 있다.
휴대용 저장 매체 드라이브(들)(1640)은 컴퓨팅 시스템(1600)에 데이터 및 코드를 입력 및 출력하기 위해 컴팩트 디스크(compact disk)(CD) 또는 디지털 비디오 디스크(DVD)와 같은 휴대용 비휘발성 저장 매체와 함께 동작한다. 본 명세서에 설명된 실시예들을 구현하기 위한 시스템 소프트웨어(예: 소프트웨어 구성요소들(1695))는 이러한 휴대용 매체에 저장되고 휴대용 저장 매체 드라이브(들)(1640)를 통해 컴퓨팅 시스템(600)에 입력될 수 있다.
선택적인 입력 장치들(1660)은 사용자 인터페이스의 일부를 제공한다. 입력 장치(1660)는 영숫자 및 기타 정보를 입력하기 위한 키보드와 같은 영숫자 키패드(alphanumeric keypad), 또는 마우스, 트랙볼(trackball), 스타일러스(stylus) 또는 커서 방향 키들(cursor direction keys)과 같은 포인팅 장치를 포함할 수 있다. 입력 장치(1660)는 또한 카메라 또는 스캐너를 포함할 수 있다. 추가적으로, 도 16에 도시된 시스템(1600)은 선택적인 출력 장치들(1650)을 포함한다. 적합한 출력 장치들은 스피커들, 프린터들, 네트워크 인터페이스들 및 모니터들을 포함한다.
네트워크 인터페이스(1670)는 예를 들어 인터넷, 인트라넷, LAN, WAN, 휴대폰 네트워크, Bluetooth 라디오 및 IEEE 802.11 기반 무선 주파수 네트워크 등을 포함하는 하나 이상의 유선, 무선 또는 광 네트워크와 같은 하나 이상의 통신 네트워크를 통해 외부 장치, 외부 컴퓨팅 장치, 서버 및 네트워크 시스템과 통신하기 위해 사용될 수 있다. 네트워크 인터페이스(1670)는 이더넷 카드, 광 트랜시버, 무선 주파수 트랜시버, 또는 정보를 송수신할 수 있는 임의의 다른 유형의 장치와 같은 네트워크 인터페이스 카드일 수 있다. 선택적인 주변 장치(1680)는 컴퓨터 시스템에 추가 기능을 추가하기 위해 임의의 유형의 컴퓨터 지원 장치를 포함할 수 있다.
컴퓨팅 시스템(1600)에 포함된 구성요소들은 광범위한 범주의 컴퓨터 구성요소들을 나타내도록 의도된다. 따라서, 컴퓨팅 시스템(1600)은 서버, 개인용 컴퓨터, 휴대용 컴퓨팅 장치, 전화, 모바일 컴퓨팅 장치, 워크스테이션, 미니컴퓨터, 메인프레임 컴퓨터, 네트워크 노드, 또는 임의의 다른 컴퓨팅 장치일 수 있다. 컴퓨팅 시스템(1600)은 또한 다양한 버스 구성들, 네트워크화된 플랫폼들, 다중 프로세서 플랫폼들 등을 포함할 수 있다. UNIX, Linux, Windows, Macintosh OS, Palm OS 및 기타 적합한 운영 체제를 비롯한 다양한 운영 체제(operating system)(OS)들이 사용될 수 있다.
전술한 기능들 중 일부는 저장 매체(예: 컴퓨터 판독가능 매체 또는 프로세서 판독가능 매체)에 저장된 명령어들로 구성될 수 있다. 명령어들은 프로세서에 의해 검색되고 실행될 수 있다. 저장 매체의 일부 예들은 메모리 장치, 테이프, 디스크 등이다. 명령어들은 프로세서가 본 발명에 따라 동작하도록 지시하기 위해 프로세서에 의해 실행될 때 동작한다. 당업자들은 명령어들, 프로세서(들) 및 저장 매체에 익숙하다.
본 명세서에 설명된 처리를 수행하기에 적합한 임의의 하드웨어 플랫폼이 본 발명과 함께 사용하기에 적합하다는 점은 주목할 만하다. 본 명세서에서 사용되는 용어 "컴퓨터 판독가능 저장 매체" 및 "컴퓨터 판독가능 저장 매체"는 실행을 위해 프로세서에 명령어들을 제공하는 데 참여하는 임의의 매체를 지칭한다. 이러한 매체는 비휘발성 매체, 휘발성 매체 및 전송 매체를 포함하지만 이에 제한되지 않는 다양한 형태를 취할 수 있다. 비휘발성 매체는 예를 들어 고정 디스크와 같은 광 디스크 또는 자기 디스크를 포함한다. 휘발성 매체는 시스템 RAM(Random Access Memory)과 같은 동적 메모리를 포함한다. 전송 매체는 버스의 일 실시예를 포함하는 와이어를 포함하여 무엇보다도 동축 케이블들, 구리 와이어 및 광섬유들을 포함한다. 전송 매체는 또한 무선 주파수(radio frequency)(RF) 및 적외선(infrared)(IR) 데이터 통신들 중에 생성되는 것과 같은 음향(acoustic) 또는 광파(light wave)들의 형태를 취할 수 있다. 컴퓨터 판독가능 매체의 일반적인 형태들은 예를 들어, 플로피 디스크, 플렉서블 디스크, 하드 디스크, 자기 테이프, 기타 자기 매체, CD 읽기 전용 메모리(CD-read-only memory)(ROM) 디스크, DVD, 기타 광학 매체, 마크 패턴이 있는 기타 물리적 매체 또는 구멍, RAM, PROM, EPROM, EEPROM, 기타 메모리 칩 또는 카트리지, 반송파 또는 컴퓨터가 읽을 수 있는 기타 매체를 포함한다.
다양한 형태들의 컴퓨터 판독가능 매체는 실행을 위해 프로세서에 하나 이상의 명령어들의 하나 이상의 시퀀스들을 전달하는 것과 관련될 수 있다. 버스는 프로세서가 명령어들을 검색하고 실행하는 시스템 RAM으로 데이터를 전달한다. 시스템 프로세서에 의해 수신된 명령어들은 프로세서에 의해 실행되기 전이나 후에 고정 디스크에 선택적으로 저장될 수 있다.
따라서, 단일 이미지-기반 실시간 신체 애니메이션을 위한 방법 및 시스템이 설명되었다. 실시예들이 특정 예시적인 실시예들을 참조하여 설명되었지만, 본 출원의 더 넓은 정신 및 범위를 벗어나지 않고 이러한 예시적인 실시예들에 다양한 수정들 및 변경들이 이루어질 수 있음이 명백할 것이다. 따라서, 본 명세서 및 도면들은 제한적인 의미가 아니라 예시적인 것으로 간주되어야 한다.
Claims (20)
- 단일 이미지-기반 신체 애니메이션을 위한 방법에 있어서,
컴퓨팅 장치에 의해, 사람의 신체를 포함하는 입력 이미지를 수신하는 단계;
상기 컴퓨팅 장치에 의해, 상기 입력 이미지를 신체 부분 및 배경 부분으로 세그먼트하는 단계 -상기 신체 부분은 상기 입력 이미지의 픽셀들을 포함하고, 상기 픽셀들은 상기 사람의 상기 신체에 대응함 -;
상기 컴퓨팅 장치에 의해, 상기 신체 부분에 모델을 피팅하는 단계 -상기 모델은, 상기 신체의 포즈를 나타내는 포즈 파라미터들의 세트를 수신하고, 상기 포즈 파라미터들의 세트에 기초하여 출력 이미지를 생성하도록 구성되고, 상기 출력 이미지는 상기 포즈를 취하는 상기 신체의 이미지를 포함함 -;
상기 컴퓨팅 장치에 의해, 일련의 포즈 파라미터들의 추가 세트들을 수신하는 단계 - 상기 포즈 파라미터들의 추가 세트들의 각각은, 상기 신체의 추가 포즈들 중 적어도 하나를 나타냄 -;
상기 컴퓨팅 장치에 의해, 상기 추가 포즈들을 취하는 일련의 상기 신체의 출력 이미지들을 생성하기 위해, 상기 일련의 포즈 파라미터들의 추가 세트들의 각각을 상기 모델에 제공하는 단계; 및
상기 컴퓨팅 장치에 의해 및 상기 일련의 출력 이미지들에 기초하여, 출력 비디오를 생성하는 단계 -상기 출력 비디오의 각 프레임은 상기 출력 이미지들 중 적어도 하나를 포함함-
를 포함하는,
방법. - 제1항에 있어서,
상기 입력 이미지를 세그먼트하는 단계는,
신경망에 의해 수행되는,
방법. - 제1항에 있어서,
상기 일련의 포즈 파라미터들의 추가 세트들은,
모션 비디오에 기초하여 생성되고,
상기 모션 비디오의 프레임들은,
상기 추가 포즈들을 취하는 추가 사람을 포함하는,
방법. - 제1항에 있어서,
상기 모델은,
3차원(3D) 공간에서의 관절 점들의 세트 -상기 관절 점들은 상기 신체에서 관절들의 위치를 나타냄 -;
3D 공간에서의 메쉬 점들을 포함하는 메쉬-상기 메쉬 점들의 각각은 스키닝 가중치들의 세트가 할당되고, 상기 스키닝 가중치들의 각각은 상기 관절 점들 중 적어도 하나와 연관됨 -; 및
상기 메쉬에 텍스처를 생성하기 위한 텍스처 맵
을 포함하는,
방법. - 제4항에 있어서,
상기 포즈 파라미터들의 세트는,
기준 점에 대한 상기 관절 점들의 회전 각도들
을 포함하고,
상기 출력 이미지를 생성하는 것은,
상기 메쉬 점들을 변환함으로써 상기 메쉬를 변환하는 것 - 상기 메쉬 점들의 각각은 각도들만큼 회전되고, 상기 각도들은 상기 관절 점들의 회전 각도들과 상기 스키닝 가중치들에 기초하여 결정됨 -, 및
상기 변환된 메쉬의 텍스처를 생성하기 위해, 상기 변환된 메쉬에 상기 텍스처 맵을 적용하는 것
을 포함하는,
방법. - 제4항에 있어서,
상기 모델을 피팅하는 단계는,
상기 신체 부분에 기초하여, 일반 모델을 결정하는 단계 - 상기 일반 모델은, 상기 신체의 관절들을 나타내는 주요 점들의 세트 및 상기 신체의 형상을 나타내는 형상 파라미터들의 세트를 포함함 -;
상기 신체 부분에 기초하여 상기 신체 이미지의 제1 실루엣을 결정하는 단계;
상기 일반 모델에 기초하여 상기 신체 이미지의 제2 실루엣을 결정하는 단계;
점들의 쌍들의 세트를 결정하는 단계 - 상기 점들의 쌍들의 각각은, 상기 제1 실루엣 상에 위치된 제1 점 및 상기 제2 실루엣 상에 위치된 제2 점을 포함함 -;
워핑된 모델을 획득하기 위해, 상기 점들의 쌍들의 세트에 기초하여 상기 일반 모델을 워핑하는 단계; 및
상기 워핑된 모델에 기초하여, 상기 메쉬 및 상기 관절 점들의 세트 결정하는 단계
를 포함하는,
방법. - 제6항에 있어서,
상기 관절 점들의 세트는,
상기 메쉬에 기초하여 생성되는,
방법. - 제6항에 있어서,
상기 관절 점들의 세트는,
상기 주요 점들의 세트인,
방법. - 제6항에 있어서,
상기 텍스처 맵은,
상기 메쉬의 2차원(2D) 표현을 생성하기 위해 상기 메쉬를 언래핑하는 단계; 및
상기 메쉬의 상기 2D 표현의 각 면에 대해:
상기 면이 상기 입력 이미지에서 보이는 상기 신체의 일부에 대응하는지 여부를 결정하는 단계;
상기 면이 상기 입력 이미지에서 보이는 상기 신체의 상기 일부에 대응한다는 결정에 기초하여, 상기 메쉬의 상기 2D 표현의 상기 면에 상기 신체 부분의 세그먼트를 할당하는 단계; 및
상기 면이 상기 입력 이미지에서 보이는 상기 신체의 일부에 대응하지 않는다는 결정에 기초하여, 상기 신체 부분에 기초하여 예측된 면을 생성하고, 상기 메쉬의 상기 2D 표현의 상기 면에 상기 예측된 면을 할당하는 단계
에 의해 생성되는,
방법. - 제6항에 있어서,
상기 주요 점들의 세트는,
제1 신경망에 의해 결정되고,
상기 일반 모델은,
제2 신경망에 의해 결정되는,
방법. - 단일 이미지-기반 신체 애니메이션을 위한 시스템에 있어서,
상기 시스템은,
적어도 하나의 프로세서, 및
프로세서-실행 가능한 코드들을 저장하는 메모리
를 포함하고,
상기 적어도 하나의 프로세서는, 상기 프로세서-실행 가능 코드들을 실행할 때, 동작들을 구현하도록 구성되고,
상기 동작들은,
사람의 신체를 포함하는 입력 이미지를 수신하는 동작;
상기 입력 이미지를 신체 부분 및 배경 부분으로 세그먼트하는 동작 - 상기 신체 부분은 상기 입력 이미지의 픽셀들을 포함하고, 상기 픽셀들은 상기 사람의 상기 신체에 대응함 -;
상기 신체 부분에 모델을 피팅하는 동작 - 상기 모델은, 상기 신체의 포즈를 나타내는 포즈 파라미터들의 세트를 수신하고, 상기 포즈 파라미터들의 세트에 기초하여 출력 이미지를 생성하도록 구성되고, 상기 출력 이미지는 상기 포즈를 취하는 상기 신체의 이미지를 포함함 -;
일련의 포즈 파라미터들의 추가 세트들을 수신하는 동작 - 상기 포즈 파라미터들의 추가 세트들의 각각은, 상기 신체의 추가 포즈들 중 적어도 하나를 나타냄 -;
상기 추가 포즈들을 취하는 일련의 상기 신체의 출력 이미지들을 생성하기 위해, 상기 일련의 포즈 파라미터들의 추가 세트들의 각각을 상기 모델에 제공하는 동작; 및
상기 일련의 출력 이미지들에 기초하여, 출력 비디오를 생성하는 동작 - 상기 출력 비디오의 각 프레임은 상기 출력 이미지들 중 적어도 하나를 포함함 -
을 포함하는,
시스템. - 제11항에 있어서,
상기 입력 이미지를 세그먼트하는 동작은,
신경망에 의해 수행되는,
시스템. - 제11항에 있어서,
상기 일련의 포즈 파라미터들의 추가 세트들은,
모션 비디오에 기초하여 생성되고,
상기 모션 비디오의 프레임들은
상기 추가 포즈들을 취하는 추가 사람을 포함하는,
시스템. - 제11항에 있어서,
상기 모델은,
3차원(3D) 공간에서의 관절 점의 세트 - 상기 관절 점들은 상기 신체에서 관절들의 위치를 나타냄 -;
3D 공간에서의 메쉬 점들을 포함하는 메쉬 - 상기 메쉬 점들의 각각은 스키닝 가중치들의 세트가 할당되고, 상기 스키닝 가중치들의 각각은 상기 관절 점들 중 적어도 하나와 연관됨 -; 및
상기 메쉬에 텍스처를 생성하기 위한 텍스처 맵
을 포함하는,
시스템. - 제14항에 있어서,
상기 포즈 파라미터들은,
기준 점에 대한 상기 관절 점들의 회전 각도들
을 포함하고,
상기 출력 이미지를 생성하는 것은,
상기 메쉬 점들을 변환함으로써 상기 메쉬를 변환하는 것 - 상기 메쉬 점들의 각각은 각도들만큼 회전되고, 상기 각도들은 상기 관절 점들의 회전 각도들과 상기 스키닝 가중치들에 기초하여 결정됨 -, 및
상기 변환된 메쉬의 텍스처를 생성하기 위해 상기 변환된 메쉬에 상기 텍스처 맵을 적용하는 것
을 포함하는,
시스템. - 제14항에 있어서,
상기 모델을 피팅하는 동작은,
상기 신체 부분에 기초하여, 일반 모델을 결정하는 동작 - 상기 일반 모델은, 상기 신체의 관절을 나타내는 주요 점들의 세트 및 상기 신체의 형상을 나타내는 형상 파라미터들의 세트를 포함함 -;
상기 신체 부분에 기초하여 상기 신체 이미지의 제1 실루엣을 결정하는 동작;
상기 일반 모델에 기초하여 상기 신체 이미지의 제2 실루엣을 결정하는 동작;
점들의 쌍들의 세트를 결정하는 동작 - 상기 점들의 쌍들의 각각은, 상기 제1 실루엣 상에 위치된 제1 점 및 상기 제2 실루엣 상에 위치된 제2 점을 포함함 -;
워핑된 모델을 획득하기 위해, 상기 점들의 쌍들의 세트에 기초하여 상기 일반 모델을 워핑하는 동작; 및
상기 워핑된 모델에 기초하여, 상기 메쉬 및 상기 관절 점들의 세트 결정하는 동작
를 포함하는,
시스템. - 제16항에 있어서,
상기 관절 점들의 세트는,
상기 메쉬에 기초하여 생성되는,
시스템. - 제16항에 있어서,
상기 관절 점들의 세트는,
상기 주요 점들의 세트인,
시스템. - 제16항에 있어서,
상기 텍스처 맵은,
상기 메쉬의 2차원(2D) 표현을 생성하기 위해 상기 메쉬를 언래핑하는 동작; 및
상기 메쉬의 상기 2D 표현의 각 면에 대해:
상기 면이 상기 입력 이미지에서 보이는 상기 신체의 일부에 대응하는지 여부를 결정하는 동작;
상기 면이 상기 입력 이미지에서 보이는 상기 신체의 상기 일부에 대응한다는 결정에 기초하여, 상기 메쉬의 상기 2D 표현의 상기 면에 상기 신체 부분의 세그먼트를 할당하는 동작; 및
상기 면이 상기 입력 이미지에서 보이는 상기 신체의 일부에 대응하지 않는다는 결정에 기초하여, 상기 신체 부분에 기초하여 예측된 면을 생성하고, 상기 메쉬의 상기 2D 표현의 상기 면에 상기 예측된 면을 할당하는 동작
에 의해 생성되는,
시스템. - 비일시적 프로세서-판독가능 매체에 있어서,
명령어들을 저장하고,
상기 명령어들은,
하나 이상의 프로세서에 의하여 실행될 때, 상기 하나 이상의 프로세서가 단일 이미지-기반 신체 애니메이션을 위한 방법을 구현하도록 하고,
상기 방법은,
사람의 신체를 포함하는 입력 이미지를 수신하는 단계;
상기 입력 이미지를 신체 부분 및 배경 부분으로 세그먼트하는 단계 - 상기 신체 부분은 상기 입력 이미지의 픽셀들을 포함하고, 상기 픽셀들은 상기 사람의 상기 신체에 대응함 -;
상기 신체 부분에 모델을 피팅하는 단계 - 상기 모델은, 상기 신체의 포즈를 나타내는 포즈 파라미터들의 세트를 수신하고, 상기 포즈 파라미터들의 세트에 기초하여 출력 이미지를 생성하도록 구성되고, 상기 출력 이미지는 상기 포즈를 취하는 상기 신체의 이미지를 포함함 -;
일련의 포즈 파라미터들의 추가 세트들을 수신하는 단계 - 상기 포즈 파라미터들의 추가 세트들의 각각은, 상기 신체의 추가 포즈들 중 적어도 하나를 나타냄 -;
상기 추가 포즈들을 취하는 일련의 상기 신체의 출력 이미지들을 생성하기 위해, 상기 일련의 포즈 파라미터들의 추가 세트들의 각각을 상기 모델에 제공하는 단계; 및
상기 일련의 출력 이미지들에 기초하여, 출력 비디오를 생성하는 단계 - 상기 출력 비디오의 각 프레임은 상기 출력 이미지들 중 적어도 하나를 포함함 -
를 포함하는,
비일시적 프로세서-판독가능 매체.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/434,185 US10839586B1 (en) | 2019-06-07 | 2019-06-07 | Single image-based real-time body animation |
US16/434,185 | 2019-06-07 | ||
PCT/US2020/033742 WO2020247174A1 (en) | 2019-06-07 | 2020-05-20 | Single image-based real-time body animation |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20220017900A true KR20220017900A (ko) | 2022-02-14 |
Family
ID=71070017
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020217038028A KR20220017900A (ko) | 2019-06-07 | 2020-05-20 | 단일 이미지-기반 실시간 신체 애니메이션 |
Country Status (5)
Country | Link |
---|---|
US (4) | US10839586B1 (ko) |
EP (1) | EP3980974A1 (ko) |
KR (1) | KR20220017900A (ko) |
CN (1) | CN113924600A (ko) |
WO (1) | WO2020247174A1 (ko) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112889092B (zh) * | 2018-11-09 | 2024-09-06 | 三星电子株式会社 | 有纹理的神经化身 |
TWI715903B (zh) * | 2018-12-24 | 2021-01-11 | 財團法人工業技術研究院 | 動作追蹤系統及方法 |
US11295410B2 (en) * | 2019-04-12 | 2022-04-05 | Rocket Innovations, Inc. | Writing surface boundary markers for computer vision |
US11430168B2 (en) * | 2019-08-16 | 2022-08-30 | Samsung Electronics Co., Ltd. | Method and apparatus for rigging 3D scanned human models |
CN114450719A (zh) * | 2019-09-30 | 2022-05-06 | Oppo广东移动通信有限公司 | 人体模型重建方法、重建系统及存储介质 |
WO2021092015A1 (en) * | 2019-11-07 | 2021-05-14 | Google Llc | Monitoring animal pose dynamics from monocular images |
CN112419419A (zh) | 2019-11-27 | 2021-02-26 | 上海联影智能医疗科技有限公司 | 用于人体姿势和形状估计的系统和方法 |
US11430564B2 (en) * | 2019-11-27 | 2022-08-30 | Shanghai United Imaging Intelligence Co., Ltd. | Personalized patient positioning, verification and treatment |
CN112785524B (zh) * | 2021-01-22 | 2024-05-24 | 北京百度网讯科技有限公司 | 一种人物图像的修复方法、装置及电子设备 |
CN115278041B (zh) * | 2021-04-29 | 2024-02-27 | 北京字跳网络技术有限公司 | 图像处理方法、装置、电子设备以及可读存储介质 |
CN113724363A (zh) * | 2021-09-10 | 2021-11-30 | 北京爱奇艺科技有限公司 | 数据的迁移方法及装置、电子设备、可读存储介质 |
CN114882149A (zh) * | 2022-03-31 | 2022-08-09 | 北京智明星通科技股份有限公司 | 动画渲染方法、装置、电子设备和存储介质 |
US12020386B2 (en) | 2022-06-23 | 2024-06-25 | Snap Inc. | Applying pregenerated virtual experiences in new location |
WO2024095077A1 (en) * | 2022-11-02 | 2024-05-10 | Samsung Electronics Co., Ltd. | Method of generating fullbody animatable person avatar from single image of person, computing device and computer-readable medium implementing the same |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2327061A4 (en) * | 2008-08-15 | 2016-11-16 | Univ Brown | METHOD AND DEVICE FOR ESTIMATING BODY SHAPES |
US9240067B2 (en) | 2009-10-15 | 2016-01-19 | Yeda Research & Development Co. Ltd. | Animation of photo-images via fitting of combined models |
US9191579B2 (en) * | 2010-11-29 | 2015-11-17 | Max-Planck-Gesellschaft Zur Forderung Der Wissenschaften | Computer-implemented method and apparatus for tracking and reshaping a human shaped figure in a digital world video |
US20140267425A1 (en) | 2013-03-15 | 2014-09-18 | Crayola Llc | Personalized Digital Animation Kit |
JP6381313B2 (ja) * | 2014-06-20 | 2018-08-29 | キヤノン株式会社 | 制御装置、制御方法、およびプログラム |
WO2016207311A1 (en) | 2015-06-24 | 2016-12-29 | MAX-PLANCK-Gesellschaft zur Förderung der Wissenschaften e.V. | Skinned multi-person linear model |
US10796480B2 (en) | 2015-08-14 | 2020-10-06 | Metail Limited | Methods of generating personalized 3D head models or 3D body models |
US11736756B2 (en) | 2016-02-10 | 2023-08-22 | Nitin Vats | Producing realistic body movement using body images |
US10356341B2 (en) | 2017-10-13 | 2019-07-16 | Fyusion, Inc. | Skeleton-based effects and background replacement |
-
2019
- 2019-06-07 US US16/434,185 patent/US10839586B1/en active Active
-
2020
- 2020-05-20 KR KR1020217038028A patent/KR20220017900A/ko unknown
- 2020-05-20 EP EP20731712.4A patent/EP3980974A1/en active Pending
- 2020-05-20 WO PCT/US2020/033742 patent/WO2020247174A1/en active Application Filing
- 2020-05-20 CN CN202080041830.2A patent/CN113924600A/zh active Pending
- 2020-10-02 US US17/062,309 patent/US11308676B2/en active Active
-
2022
- 2022-03-16 US US17/695,902 patent/US11727617B2/en active Active
-
2023
- 2023-06-27 US US18/214,538 patent/US20230343012A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US11727617B2 (en) | 2023-08-15 |
US10839586B1 (en) | 2020-11-17 |
US11308676B2 (en) | 2022-04-19 |
CN113924600A (zh) | 2022-01-11 |
WO2020247174A1 (en) | 2020-12-10 |
US20200388064A1 (en) | 2020-12-10 |
US20230343012A1 (en) | 2023-10-26 |
US20210019929A1 (en) | 2021-01-21 |
US20220207810A1 (en) | 2022-06-30 |
EP3980974A1 (en) | 2022-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11308676B2 (en) | Single image-based real-time body animation | |
KR102616010B1 (ko) | 포토리얼리스틱 실시간 인물 애니메이션을 위한 시스템 및 방법 | |
WO2020192568A1 (zh) | 人脸图像生成方法、装置、设备及存储介质 | |
CN111465965B (zh) | 用于实时复杂角色动画和交互性的系统和方法 | |
CN112150638A (zh) | 虚拟对象形象合成方法、装置、电子设备和存储介质 | |
Sharma et al. | 3d face reconstruction in deep learning era: A survey | |
KR20180100476A (ko) | 이미지 및 뎁스 데이터를 사용하여 3차원(3d) 인간 얼굴 모델을 발생시키는 가상 현실 기반 장치 및 방법 | |
WO2022205760A1 (zh) | 三维人体重建方法、装置、设备及存储介质 | |
KR20220017903A (ko) | 인간 신체의 단일 이미지를 애니메이션화하고 효과들을 적용하는 엔터테이닝 모바일 응용 프로그램 | |
US9881417B2 (en) | Multi-view drawing apparatus of three-dimensional objects, and method | |
JP2023526566A (ja) | 高速で深い顔面変形 | |
US11704853B2 (en) | Techniques for feature-based neural rendering | |
US12033261B2 (en) | Contact-aware retargeting of motion | |
AU2021227740A1 (en) | Face mesh deformation with detailed wrinkles | |
US20240233230A9 (en) | Automated system for generation of facial animation rigs | |
Wang | A Framework for Realistic Clothed Avatar Reconstruction and Animation | |
EP4285333A1 (en) | Direct clothing modeling for a drivable full-body animatable human avatar |