KR102616010B1 - 포토리얼리스틱 실시간 인물 애니메이션을 위한 시스템 및 방법 - Google Patents

포토리얼리스틱 실시간 인물 애니메이션을 위한 시스템 및 방법 Download PDF

Info

Publication number
KR102616010B1
KR102616010B1 KR1020217026005A KR20217026005A KR102616010B1 KR 102616010 B1 KR102616010 B1 KR 102616010B1 KR 1020217026005 A KR1020217026005 A KR 1020217026005A KR 20217026005 A KR20217026005 A KR 20217026005A KR 102616010 B1 KR102616010 B1 KR 102616010B1
Authority
KR
South Korea
Prior art keywords
face
computing device
target image
transformation
determining
Prior art date
Application number
KR1020217026005A
Other languages
English (en)
Other versions
KR20210120014A (ko
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 스냅 아이엔씨
Priority to KR1020237042816A priority Critical patent/KR20230173218A/ko
Priority to KR1020237042815A priority patent/KR20230173217A/ko
Priority to KR1020237042817A priority patent/KR20230173219A/ko
Publication of KR20210120014A publication Critical patent/KR20210120014A/ko
Application granted granted Critical
Publication of KR102616010B1 publication Critical patent/KR102616010B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/802D [Two Dimensional] animation, e.g. using sprites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/02Affine transformations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/174Segmentation; Edge detection involving the use of two or more images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/161Detection; Localisation; Normalisation
    • G06V40/167Detection; Localisation; Normalisation using comparisons between temporally consecutive images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/44Morphing

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Oral & Maxillofacial Surgery (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Processing Or Creating Images (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)

Abstract

포토리얼리스틱 실시간 인물 애니메이션(photorealistic real-time portrait animation)을 위한 시스템 및 방법이 제공된다. 예시적인 방법은 적어도 하나의 입력 프레임이 있는 시나리오 비디오를 수신하는 단계를 포함한다. 상기 입력 프레임은 제1 얼굴을 포함한다. 상기 방법은 제2 얼굴이 있는 타겟 이미지를 수신하는 단계를 더 포함한다. 상기 방법은 상기 적어도 하나의 입력 프레임 및 타겟 이미지에 기초하여, 2D 변형 (two-dimensional (2D) deformations)을 결정하는 단계를 더 포함하며, 상기 2D 변형은, 상기 제2 얼굴에 적용(apply)된 경우, 적어도 상기 제1 얼굴의 머리 방향(head orientation) 및 얼굴 표정(facial expression)을 모방(imitate)하도록 상기 제2 얼굴을 수정(modify)한다. 상기 방법은 출력 비디오(output vide)의 적어도 하나의 출력 프레임(output frame)을 획득(obtain)하기 위해 상기 2D 변형을 상기 타겟 이미지에 적용하는 단계를 더 포함한다.

Description

포토리얼리스틱 실시간 인물 애니메이션을 위한 시스템 및 방법
본 개시는 일반적으로 디지털 이미지 처리(digital image processing)에 관한 것이다. 더 구체적으로, 본 개시는, 포토리얼리스틱 실시간 인물 애니메이션(photorealistic real-time portrait animation)을 위한 시스템 및 방법에 관한 것이다.
인물 애니메이션(portrait animation)은, 엔터테인먼트 쇼(entertainment shows), 컴퓨터 게임, 비디오 대화(video conversations), 가상 현실(virtual reality), 증강 현실(augmented reality) 등과 같은 여러 응용(applications)에 사용될 수 있다.
인물 애니메이션을 위한 일부 현재 기술은 변형 가능한 얼굴 모델을 사용하여 다른 얼굴 표정으로 얼굴을 다시 렌더링(re-render) 한다. 변형 가능한 얼굴 모델로 얼굴을 생성하는 것은 빠를 수 있지만, 결과 얼굴은 일반적으로 포토리얼리스틱(photoerealistic) 하지 않다. 인물 애니메이션을 위한 다른 현재 기술은 딥 러닝 방법(deep learning method)을 사용하여 다른 얼굴 표정으로 얼굴을 다시 렌더링 하는 것을 기반으로 할 수 있다.
딥 러닝 방법은 포토리얼리스틱한 결과를 얻을 수 있다. 그러나, 상기 딥러닝 방법은 시간이 많이 소요되고 표준 모바일 장치에서 실시간 인물 애니메이션을 수행하는 데 적합하지 않다.
본 장은 뒤의 "발명을 실시하기 위한 구체적인 내용"의 절에서 더 자세히 설명되는 것들을 간략하게 개념적으로 설명한다. 본 장은 청구되는 발명의 주요 특징들이나 핵심 특징들을 식별하는 것으로 의도되지 않으며, 청구된 발명의 범위를 결정하는데 도움을 주는 것으로 사용되는 것을 의도한 것이 아니다.
본 개시의 일 실시예에 따르면, 포토리얼리스틱 실시간 인물 애니메이션(photorealistic real-time portrait animation)을 위한 방법이 제공된다. 상기 방법은, 컴퓨팅 장치(computing device)에 의하여, 시나리오 비디오(scenario video)를 수신하는 단계를 포함할 수 있다. 상기 시나리오 비디오는, 적어도 하나의 입력 프레임(input frame)을 포함할 수 있다. 상기 적어도 하나의 입력 프레임은 제1 얼굴(first face)을 포함할 수 있다. 상기 방법은, 컴퓨팅 장치에 의하여, 타겟 이미지(target image)를 수신하는 단계를 더 포함할 수 있다. 상기 타겟 이미지는 제2 얼굴(second face)을 포함할 수 있다. 상기 방법은, 상기 컴퓨팅 장치에 의하여, 상기 적어도 하나의 입력 프레임 및 상기 타겟 이미지에 기초하여, 2D 변형(two-dimensional (2D) deformations)을 결정하는 단계를 더 포함할 수 있으며, 여기서 상기 2D 변형은, 상기 제2 얼굴에 적용(apply)된 경우, 적어도 상기 제1 얼굴의 머리 방향(head orientation) 및 얼굴 표정(facial expression)을 모방(imitate)하도록 상기 제2 얼굴을 수정한다. 상기 방법은, 상기 컴퓨팅 장치에 의하여, 출력 비디오(output video)의 적어도 하나의 출력 프레임(output frame)을 획득(obtain)하기 위하여 상기 2D 변형을 상기 타겟 이미지에 적용하는 단계를 더 포함할 수 있다.
어떤 실시예 들에서는, 2D 변형을 적용하기 전에, 상기 컴퓨팅 장치(computing device)에 의하여, DNN(deep neural network)을 사용하여, 상기 제2 얼굴의 이미지 및 배경(background)을 획득하기 위하여, 상기 타겟 이미지의 세그먼테이션(segmentation)을 수행하는 단계를 더 포함한다. 상기 2D 변형은 상기 배경을 변경하지 않으면서 상기 변형된 얼굴(deformed face)을 획득하기 위하여 적용되어질 수 있다.
어떤 실시예 들에서는, 상기 방법은, 2D 변형을 적용하는 경우, 상기 컴퓨팅 장치(computing device)에 의하여, 상기 변형된 얼굴(deformed face)을 상기 배경(background)에 삽입(insert)하는 단계를 더 포함할 수 있다. 상기 방법은 상기 컴퓨팅 장치(computing device)에 의하여, 상기 DNN을 사용하여, 상기 변형된 얼굴과 상기 배경 사이의 간격(gap)에 있는 상기 배경의 부분(portion)을 예측(predict)하는 단계를 더 포함할 수 있다. 상기 방법은, 상기 컴퓨팅 장치(computing device)에 의하여, 상기 간격(gap)과 상기 예측된 부분(portion)을 채울(fill) 수 있다.
어떤 실시예 들에서는, 2D 변형(2D deformations)을 결정하는 단계는, 상기 컴퓨팅 장치(computing device)에 의하여, 상기 제1 얼굴(first face)상의 제1 제어 포인트(first control points) 및 상기 제2 얼굴(second face)상의 제2 제어 포인트(second control point)를 결정하는 단계를 포함할 수 있다. 상기 방법은, 상기 컴퓨팅 장치에 의하여, 상기 제1 제어 포인트를 상기 제2 제어 포인트에 정렬하기 위하여 2D 변형(2D deformations) 또는 어파인 변환(affine transformation)을 정의하는 단계를 더 포함할 수 있다.
어떤 실시예 들에서는, 2D 변환을 결정하는 단계는, 컴퓨팅 장치에 의하여, 상기 제2 제어 포인트의 삼각측량(triangulation)을 구축(build)하는 단계를 포함할 수 있다. 상기 2D 변환을 결정하는 단계는, 상기 컴퓨팅 장치에 의하여, 상기 적어도 하나의 입력 프레임에서 상기 제1 제어 포인트(first control points)의 변위(displacements)를 결정하는 단계를 더 포함할 수 있다. 상기 2D 변환을 결정하는 단계는, 상기 컴퓨팅 장치에 의하여, 상기 어파인 변환(affine transformation)을 사용하여, 상기 제2 제어 포인트의 예상 변위(expected displacements)를 획득하기 위하여, 상기 타겟 이미지 상에 상기 변위를 투영(project)하는 단계를 더 포함할 수 있다. 상기 2D 변환을 결정하는 단계는, 상기 컴퓨팅 장치에 의하여, 상기 예상 변위에 기초하여 상기 2D 변형으로 사용되는 워프 필드(warp field)를 결정하는 단계를 더 포함할 수 있다.
어떤 실시예 들에서는, 상기 워프 필드는 상기 제2 제어 포인트의 상기 삼각측량에서 삼각형의 변화(changes of triangles)에 의해 정의되는 구간 선형 변환(piecewise linear transformations)의 세트를 더 포함할 수 있다.
어떤 실시예 들에서는, 상기 방법은, 상기 컴퓨팅 장치에 의하여, 입 영역(mouth region) 및 눈 영역(eyes region) 중 하나를 생성하는 단계를 더 포함한다. 상기 방법은, 상기 컴퓨팅 장치에 의하여 상기 입 영역 및 상기 눈 영역 중 상기 적어도 하나의 출력 프레임(output frame)에 삽입(insert)하는 단계를 더 포함할 수 있다.
어떤 실시예 들에서는, 상기 컴퓨팅 장치에 의하여, 상기 입 영역 및 상기 눈 영역 중 상기 하나를 생성하는 단계는, 상기 제1 얼굴로부터 전달(transfer)하는 단계를 포함한다.
어떤 실시예 들에서는, 상기 컴퓨팅 장치에 의하여, 상기 입 영역 및 상기 눈 영역 중 상기 하나를 생성하는 단계는, 제1 세트의 파라미터(first set of parameters)를 획득하기 위하여, 3D 얼굴 모델(three-dimensional(3D) face model)을 상기 제1 제어 포인트(first control points)에 피팅(fit)하는 단계를 포함할 수 있다. 상기 제1 세트의 파라미터는 적어도 제1 얼굴 표정(first facial expression)을 포함할 수 있다. 상기 컴퓨팅 장치에 의하여, 상기 입 영역 및 눈 영역 중 상기 하나를 생성하는 단계는, 제2 세트의 파라미터(second set of parameters)를 획득하기 위하여, 상기 3D 얼굴 모델을 상기 제2 제어 포인트(second control points)에 피팅(fit)하는 단계를 더 포함할 수 있다. 상기 제2 세트의 파라미터는 적어도 제2 얼굴 표정(second facial expression)을 포함할 수 있다. 상기 제1 얼굴 표정은 상기 제1 세트의 파라미터로부터 상기 파라미터의 제2 세트로 전달될 수 있다. 상기 입 영역 및 상기 눈 영역 중 상기 하나의 생성은, 상기 컴퓨팅 장치에 의하여, 상기 3D 얼굴 모델을 사용하여, 상기 입 영역 및 상기 눈 영역 중 상기 하나를 합성(synthesize)하는 단계를 더 포함할 수 있다.
다른 예시에 따르면, 포토리얼리스틱 실시간 인물 애니메이션(photorealistic real-time portrait animation)을 위한 시스템이 제공된다. 상기 시스템은 적어도 하나의 프로세서 및 프로세서가 실행가능한 코드(processor-executable codes)를 저장하는 메모리를 포함할 수 있으며, 상기 적어도 하나의 프로세서는 상기 프로세서가 실행가능한 코드의 실행(execution)시 포토리얼리스틱 실시간 인물 애니메이션을 위한 상기 전술한 방법을 구현(implement)되도록 구성될 수 있다.
본 개시의 또 다른 측면에 따르면, 프로세서-판독가능한 명령어(processor-readable instructions)들을 저장한 비일시적 프로세서-판독가능 매체(non-transitory processor-readable medium)가 제공된다. 상기 프로세서-판독가능한 명령어가 실행될 때, 그것들은 상기 프로세서가 포토리얼리스틱 실시간 인물 애니메이션을 위한 상기 전술한 방법을 구현되도록 한다.
예시들의 추가적인 목적(objects), 장점(advantages) 및 새로운 특징(novel features)은 다음 설명(description)에서 부분적으로 설명될 것이고, 부분적으로는 다음 설명 및 첨부(accompany)된 도면을 검토(examine)할 때 당업자에게 명백해질 것이며, 예시의 생성(production) 또는 동작(operation)에 의해서 학습될 수 있다. 이러한 개념들의 상기 목적 및 장점은 첨부된 청구항에 특히 기재된 방법론, 수단 및 조합에 의해 실현되고 달성될 수 있다.
실시예들은 예(examples)로서 설명되고, 첨부된 도면에서 한정으로서 설명되는 것은 아니다. 도면들에서 유사한 참조들은 유사한 구성요소들(elements)을 가리킨다.
도 1은 인물 애니메이션을 위한 방법들이 구현될 수 있는 예시적인 환경을 도시하는 블록도이다.
도 2는 인물 애니메이션을 위한 방법들을 구현하는 컴퓨팅 장치의 예시적인 실시예를 도시하는 블록도이다.
도 3은 예시적인 실시예에 따른 인물 애니메이션의 예시적인 프로세스를 도시하는 도식이다.
도 4는 예시적인 실시예에 따른 인물 애니메이션을 위한 시스템의 블록도를 도시한다.
도 5는 어떤 예시적인 실시예에 따른 인물 애니메이션을 위한 방법의 프로세스 순서도를 도시한다.
도 6 은 어떤 예시적인 실시예에 따른 인물 애니메이션을 위한 방법의 프로세스 순서도를 도시한다.
도 7 은 인물 애니메이션을 위한 방법을 구현하는데 사용되어질 수 있는 예시적인 컴퓨터 시스템을 도시한다.
도 8 은 배경 예측을 위한 예시적인 DNN(deep neural network)의 블록도이다.
도 9는 DNN에서 예시적인 압축 컨볼루션 블록(compression convolution block)의 블록도이다.
도 10은 예시적인 압축 해제 컨볼루션 블록(decompression convolution block)의 블록도이다.
도 11 은 DNN에서 예시적인 어텐션(attention) 블록의 블록도이다.
도 12 은 DNN의 학습 기법(learning scheme)의 블록도이다.
도 13 은 예시적인 식별기 네트워크(discriminator network)의 블록도이다.
이하 실시예의 상세한 설명은 상세한 설명의 일부를 구성하는 첨부도면에 대한 참조를 포함한다. 이 섹션에 설명된 접근방식은 청구항에 대한 선행기술이 아니며 이 섹션에 포함됨으로써 선행 기술로 인정되지 않는다. 도면은 예시적인 실시예에 따른 그림을 보여준다. 본 명세서에서 "예시(examples)" 라고도 지칭되는 이러한 예시적인 실시예는 당업자가 본 주제를 실시할 수 있도록 충분히 상세하게 설명된다. 실시예들은 결합되어질 수 있고, 다른 실시예가 이용될 수 있거나, 청구된 범위를 벗어나지 않고 구조적, 논리적 및 동작적 변경이 이루어질 수 있다. 따라서 이하의 상세한 설명은 제한적 의미로 받아들여서는 안 되고, 범위는 첨부된 청구항 및 그 균등물에 의해 정의된다.
본 개시는 다양한 기술을 사용하여 구현될 수 있다. 예를 들어, 본 명세서에 설명된 방법은 컴퓨터 시스템에서 구동(run)되는 소프트웨어 및/또는 마이크로프로세서들(micropocessors)의 결합이나 기타 특별히 설계된 특정용도용 집적회로(application-specific integrated circuits(ASICs)), 설계가능 논리 소자(programmable logic devices), 또는 임의의 조합을 사용하는 하드웨어에 의해 구현(implement)될 수 있다. 특히, 본 명세서에서 설명되는 방법은 디스크 드라이브(disk drive) 또는 컴퓨터-판독가능 매체(computer-readable medium)과 같은 비-일시적 저장 매체(non-transitory storage medium)에 상주하는(residing) 컴퓨터-실행가능한 명령어들에 의해서 구현될 수 있다. 본 명세서에 설명되는 방법은 모바일 장치(mobile device), 개인용 컴퓨터(personal computer), 서버(server), 네트워크 노드(network node) 등과 같은 컴퓨팅 장치(computing device)에 의해 구현될 수 있다는 점에 유의해야한다.
본 특허 문서의 목적을 위해, "또는(or)" 및 "및(and)" 은 달리 언급되거나 사용의 맥락에 의해 달리 명확하게 의도되지 않는 한 "및/또는(and/or)"을 의미한다. 용어 "a"는 달리 언급되거나 "하나 이상"의 사용이 명백히 부적절하지 않는 한 "하나 이상(one or more)을 의미한다. 용어 "포함하다(comprise)", "포함하는(comprise)", "포함하다(include)" 및 "포함하는(including)"은 상호 교환 가능하며 제한하려는 의도가 아니다. 예를 들어, 용어 "포함하는" 은 "포함하지만 이에 제한되지 않는(including, but not limited to)"을 의미하는 것으로 해석되어야 한다.
본 개시는 인물 애니메이션(portrait animation)을 위한 방법 및 시스템에 관한 것이다. 비록 본 개시가 웹 서비스(web service) 또는 클라우드-기반 리소스(cloud-based resources)를 포함하는 접근방식으로 확장될 수 있더라도, 본 개시는 스마트폰(smartphones), 태블릿 컴퓨터(tablet computers), 또는 모바일 폰(mobile phone)과 같은 모바일 장치(mobile devices)에서 실시간(in real-time)으로 인터넷에 연결하지 않고 또는 서버-측(server-side) 연산 리소스(computational resources)를 사용할 필요 없이 작동(work)할 수 있도록 설계될 수 있다.
본 개시의 일부 실시예는 타겟 얼굴(target face)을 갖는 타겟 이미지(target image)의 애니메이션을 허용(allow)할 수 있다. 상기 타겟 얼굴은 실시간 원본(source) 얼굴의 얼굴 표정(facial expressions)에 의하여 조작(manipulate)될 수 있다. 일부 실시예는 포토리얼리스틱 인물 애니메이션(photorealistic portrait animation)을 위한 연산 시간(computational time)을 크게 감소시키는데 사용될 수 있다. 본 개시의 실시예는 사실적인(realistic) 결과를 달성(achieve)하기 위하여 단일의 타겟 이미지를 요구하는 반면에 기존의 얼굴 애니메이션 기술들은 타겟 얼굴의 비디오 또는 이미지의 연속을 사용한다.
본 개시의 일부 실시예는 원본 비디오의 3D 모델을 사용하여 3D 얼굴의 변화에 의하여 유발(induce)된 2D 변형 필드(2D deformations field)를 생성하고, 상기 2D 변형을 바로 상기 타겟 이미지에 적용(apply)하는 것을 허용(allow)할 수 있다. 본 개시의 일부 실시예는 모바일 장치에서 포토리얼리스틱 실시간 인물 애니메이션(photorealistic real-time portrait animation)을 위한 방법을 구현하고, 실시간으로 애니메이션을 수행(perform)하게할 수 있다. 대조적으로, 3D 얼굴 속성들을 편집하는 다른 방법들은 정확한 세그먼테이션(segmentation) 및 텍스쳐 매핑(texture mapping)을 요구하여 많은 시간이 걸린다.
본 개시의 일부 실시예는 사용자가 시나리오를 생성할 수 있도록 하여, 상기 사용자가 타겟 얼굴에서 보고자 하는 표정(expressions), 움직임(movements) 등을 나타내기만 하면 된다. 상기 표정 및 움직임은 다음의 리스트: 찡그림(frown), 미소(smile), 등에서 선택될 수 있다.
본 개시의 한 예시에 의하면, 인물 애니메이션(portrait animation)을 위한 방법의 예시는, 컴퓨팅 장치(computing device)에 의하여, 시나리오 비디오(scenario video)를 수신하는 단계를 포함할 수 있다. 상기 시나리오 비디오는 적어도 하나의 입력 프레임(input frame)을 포함할 수 있다. 상기 적어도 하나의 입력 프레임은 제1 얼굴(first face)을 포함할 수 있다. 상기 방법은 상기 컴퓨팅 장치에 의하여 타겟 이미지(target image)를 수신하는 단계를 더 포함할 수 있다. 상기 타겟 이미지는 제2 얼굴(second face)을 포함할 수 있다. 상기 방법은 상기 컴퓨팅 장치에 의하여, 상기 적어도 하나의 입력 프레임 및 상기 타겟 이미지에 기초하여 2D 변형 (two-dimensional (2D) deformations)을 결정하는 단계를 더 포함하며, 상기 2D 변형은, 상기 제2 얼굴에 적용(apply)된 경우, 적어도 상기 제1 얼굴의 머리 방향(head orientation) 및 얼굴 표정(facial expression)을 모방(imitate)하도록 상기 제2 얼굴을 수정(modify)한다. 상기 방법은 상기 컴퓨팅 장치에 의하여, 출력 비디오(output vide)의 적어도 하나의 출력 프레임(output frame)을 획득(obtain)하기 위해 상기 2D 변형을 상기 타겟 이미지에 적용하는 단계를 포함할 수 있다.
이제 도면을 참조하여, 예시적인 실시예가 설명된다. 상기 도면은 이상적인 실시예의 개략적인 도면이다. 따라서, 본 명세서에서 논의된 예시적인 실시예는 본 명세서에 제시된 특정 설명으로 제한되는 것으로 이해되어서는 안 된다. 오히려 이러한 예시적인 실시예는 변형(deviations)를 포함할 수 있고, 여기에 제시된 설명과 다를 수 있으며, 이는 당업자에게 명백하다.
도1은 인물 애니메이션을 위한 방법이 예상될 수 있는 예시적인 환경(100)을 나타낸다. 환경(100)은 컴퓨팅 장치(110) 및 사용자(130)를 포함할 수 있다. 컴퓨팅 장치(110)은 카메라(115) 및 그래픽 디스플레이 시스템(graphical display system)(120)을 포함할 수 있다. 컴퓨팅 장치(110)은 모바일 폰, 스마트폰, 또는 태블릿 컴퓨터와 같은 모바일 장치를 지칭(refer)할 수 있다. 추가 실시예에서, 컴퓨팅 장치(110)는 개인용 컴퓨터, 랩톱 컴퓨터, 넷북, 셋톱 박스, 텔레비전 장치, 멀티미디어 장치, 개인용 디지털 어시스턴트, 게임 콘솔, 엔터테인먼트 시스템, 인포테인먼트 시스템, 차량 컴퓨터, 또는 임의의 다른 컴퓨팅 장치를 지칭할 수 있다.
특정 실시예에서, 컴퓨팅 장치(110)는 예를 들어 카메라(115)를 통해 시나리오 비디오를 캡처(capture)하도록 구성될 수 있다. 상기 시나리오 비디오는 적어도 사용자(130)의 얼굴을 포함할 수 있다(또한 원본 얼굴이라고도 지칭(refer)함). 일부 다른 실시예에서, 상기 시나리오 비디오는 컴퓨팅 장치(110)의 메모리 저장소 또는 컴퓨팅 장치(110)가 통신 가능하게 연결되는 클라우드-기반 컴퓨팅 리소스(cloud-based computing resource)에 저장될 수 있다. 상기 시나리오 비디오는 말하고 머리를 움직이고 다양한 감정을 표현할 수 있는, 예를 들어 사용자(130) 또는 다른 사람의 영상을 포함할 수 있다.
본 개시의 일부 실시예에서, 컴퓨팅 장치(110)는 타겟 이미지(125)를 전시(display)하도록 구성될 수 있다. 타겟 이미지(125)는 적어도 타겟 얼굴(140) 및 배경(145)을 포함할 수 있다. 타겟 얼굴(140)은 사용자(130) 이외의 사람 또는 시나리오 비디오에 묘사(depict)된 다른 사람의 것일 수 있다. 일부 실시예에서, 타겟 이미지(125)는 컴퓨팅 장치(110)의 메모리 저장소 또는 컴퓨팅 장치(110)가 통신 가능하게 연결되는 클라우드-기반 컴퓨팅 리소스(cloud-based computing resource)에 저장될 수 있다.
또 다른 실시예에서, 상이한 시나리오 비디오 및 타겟 이미지는 컴퓨팅 장치(110) 또는 클라우드-기반 컴퓨팅 리소스에 미리 녹화(pre-record)되고 저장될 수 있다. 사용자(130)은 애니메이션화 할 상기 타겟 이미지 및 상기 타겟 이미지를 애니메이션화 하는데 사용할 상기 시나리오 비디오 중 하나를 선택할 수 있다.
본 개시의 다양한 실시예들에 따르면, 컴퓨팅 장치(110)은 상기 시나리오 비디오에 묘사된 사람의 행동 및 얼굴 표정을 추출하기 위해 상기 시나리오 비디오를 분석하도록 구성될 수 있다. 컴퓨팅 장치(110)은 상기 시나리오 비디오에서 타겟 얼굴(140)이 상기 사람의 얼굴 표정 및 움직임을 실시간 및 포토리얼리스틱한 방법(photorealistic manner)으로 반복하도록 하기 위해 타겟 이미지(125)에서 사람의 상기 얼굴 표정 및 움직임을 상기 타겟 얼굴로 전달하도록 추가로 구성될 수 있다. 추가 실시예에서, 상기 컴퓨팅 장치는 상기 시나리오 비디오에 묘사된 사람의 말투(speech)를 반복하도록 타겟 얼굴(140)을 만들기 위해서 타겟 이미지(125)를 수정(modify)할 수 있도록 추가로 구성될 수 있다.
도 2에서 도시된 예시에서, 컴퓨팅 장치(110)은 하드웨어 구성요소 및 소프트웨어 구성요소 모두를 포함할 수 있다. 특히 컴퓨팅 장치(110)는 디지털 이미지를 획득하기 위해 카메라(115) 또는 임의의 다른 이미지-캡쳐 장치(image-capturing device) 또는 스캐너를 포함할 수 있다. 컴퓨팅 장치(110)에는 소프트웨어 구성요소 및 프로세서-판독가능한(processor-readable)(기계-판독가능한) 명령어들 또는 코드들을 저장하기 위해 모듈(210) 및 저장 모듈(215)을 더 포함할 수 있고, 이 경우 프로세서 모듈(210)에 의해 수행될 때, 컴퓨팅 장치(110)가 본 명세서에 설명된 바와 같이 인물 애니메이션을 위한 방법의 적어도 일부 단계를 수행하게 한다.
컴퓨팅 장치(110)에는 하드웨어 구성요소(예: 별도의 프로세싱 모듈(processing module)과 메모리), 소프트웨어 구성요소 또는 이들의 조합을 포함하는 인물 애니메이션 시스템(220)을 더 포함할 수 있다.
도 3에 도시된 바와 같이 인물 애니메이션 시스템(220)은 타겟 이미지(125) 및 시나리오 비디오(310)를 입력으로 수신하도록 구성될 수 있다. 타겟 이미지(125)는 타겟 얼굴(140) 및 배경(145)을 포함할 수 있다. 시나리오 비디오(310)는 말하고, 머리를 움직이고, 감정을 표현할 수 있는 사람(320)의 적어도 얼굴 및 머리를 묘사(depict)할 수 있다. 인물 애니메이션 시스템(220)은 얼굴 표정(감정) 및 사람(320)의 머리움직임을 결정하기 위해서 시나리오 비디오(310)의 프레임을 분석(analyze)하도록 구성될 수 있다. 상기 인물 애니메이션 시스템은 사람(320)의 얼굴 표정 및 머리 움직임을 타겟 얼굴(140)에 전달하여 타겟 이미지(125)를 변경하도록 추가로 구성될 수 있으며, 이에 의해 출력 비디오(330)의 프레임을 획득(obtain)할 수 있다. 사람(320)의 얼굴 표정 및 머리 움직임의 결정, 및 타겟 얼굴(125)로의 얼굴 표정 및 머리 움직임의 전달은 시나리오 비디오(310)의 각 프레임마다 반복되어질 수 있다. 출력 비디오(330)은 시나리오 비디오(310)와 동일한 수의 프레임을 포함할 수 있다. 결과적으로, 출력 비디오(330)는 타겟 이미지(125)의 애니메이션을 나타낼 수 있다. 일부 실시예에서, 상기 애니메이션은 타겟 이미지(125)의 2D 변형을 수행함으로써 실행될 수 있다, 상기 2D 변형은 얼굴 표정 및 머리 움직임을 모방(imitate)한다. 일부 실시예에서, 상기 2D 변형은 포토리얼리스틱(photorealistic)한 결과를 달성하기 위해서 숨겨진 영역 및 세부 사항(fine-scale details)의 생성이 뒤 따를 수 있다. 상기 숨겨진 영역은 타겟 얼굴(140)의 입 영역(mouth region)을 포함할 수 있다.
도 4는 일 실시예에 따른 인물 애니메이션 시스템(220)의 블록도이다. 인물 애니메이션 시스템(220)은 3D 얼굴 모델(405), 스파스 대응 모듈(sparse correspondence module)(410), 시나리오 비디오 전처리 모듈(415), 타겟 이미지 전처리 모듈(420), 이미지 세그먼테이션(segmentation) 및 배경 예측 모듈(425), 이미지 애니메이션 및 개선 모듈(430)을 포함할 수 있다. 상기 모듈 (405-430)은 컴퓨팅 장치(110), 서버 등과 같은 하드웨어 장치와 함께 사용하기 위한 소프트웨어 구성요소로 구현될 수 있다.
본 개시의 일부 실시예에서, 3D 얼굴 모델(405)은 연령, 성별, 그리고 민족적 배경이 다른 미리 정의된 수의 개인 이미지를 기초로 사전 생성될 수 있다. 각 개인에 대해, 상기 이미지는 감정이 나타나지 않는(neutral) 얼굴 표정을 갖는 개인의 이미지 및 다른 얼굴 표정을 갖는 하나 이상의 이미지가 포함될 수 있다. 상기 얼굴 표정은 입을 벌리고, 웃고, 화내고, 놀라는 등의 것을 포함할 수 있다.
3D 얼굴 모델(405)은 미리 정해진 수의 꼭짓점들(vertices)을 가진 템플릿 메시(template mesh)를 가질 수 있다. 상기 템플릿 메시는 머리의 모양을 정의하는 3D 삼각측량(triangulation)으로 표현될 수 있다. 각 개인들은 개별 특정 블랜드 쉐입(individual-specific blend shape)과 조절될 수 있다. 상기 개별 특정 블랜드 쉐입은 템플릿 메시에 있는 꼭짓점의 특정 좌표에 대응(correspond)할 수 있다. 따라서, 개인의 다른 이미지는 동일한 구조의 템플릿 메시에 대응할 수 있지만 템플릿 메시의 꼭짓점의 특정 좌표는 이미지마다 다르다.
본 개시의 일부 실시예에서, 3D 얼굴 모델(405)은 두 파라미터(parameters): 얼굴의 식별표지(facial identity) 및 얼굴 표정에 의존(depend on)하는 바이리니어 얼굴 모델(bilinear face model)을 포함할 수 있다. 상기 바이리니어 얼굴 모델은 개인의 이미지에 대응하는 블랜드 쉐입(blend shape)에 기초하여 구축될 수 있다. 따라서, 상기 3D 모델 얼굴은 미리 정해진 구조의 템플릿 메시를 포함하며, 꼭짓점의 좌표는 얼굴의 식별표지 및 얼굴 표정에 의존한다. 상기 얼굴의 식별표지는 머리의 기하학적인 모양을 나타낼 수 있다.
일부 실시예에서, 스파스 대응 모듈(410)은 시나리오 비디오(310) 프레임과 타겟 이미지(125) 사이의 스파스 대응을 결정하도록 구성될 수 있다. 스파스 대응 모듈(410)은 상기 시나리오 비디오를 통해 강하게 추적될 수 있는 제어 포인트(control points)의 세트(얼굴 특징점(facial landmarks))를 획득하도록 구성될 수 있다. 얼굴 특징점과 추가 제어 포인트는 옵티컬 플로우(optical flow)와 같은 최신의 추적 방법을 사용하여 추적될 수 있다. 스파스 대응 모듈(410)은 시나리오 비디오(310)의 첫번째 프레임과 타겟 이미지(125)에서 얼굴 특징점을 대략적으로 정렬(align)하는 어파인 변환(affine transformation)을 결정하도록 구성되어질 수 있다. 상기 어파인 변환은 타겟 이미지(125)에서 추가 제어 포인트의 위치를 예측하는 데에 사용될 수 있다. 스파스 대응 모듈(410)은 상기 제어 포인트의 삼각측량을 구축(build)하도록 추가로 구성될 수 있다.
일부 실시예에서 시나리오 비디오 전처리 모듈(415)은 시나리오 비디오(310)의 각 프레임에서 2D 얼굴 특징점을 발견(detect)하도록 구성될 수 있다. 시나리오 비디오 전처리 모듈(415)은 시나리오 비디오(310)에 묘사된 사람에 대한 3D 얼굴 모델(405)의 파라미터를 찾기 위해 3D 얼굴 모델(405)을 얼굴 특징점에 맞추도록(fit) 구성될 수 있다. 시나리오 비디오 전처리 모듈(415)은 상기 3D 얼굴 모델의 상기 템플릿 메시상에 상기 2D 얼굴 특징점의 위치를 결정하도록 구성될 수 있다. 상기 얼굴의 식별표지(facial identity)은 시나리오 비디오(310)의 모든 프레임에 대하여 동일하다고 추정할 수 있다. 모듈(415)은 시나리오 비디오(310)의 각 프레임에 대한 3D 얼굴 파라미터의 결과적인 변화를 근사화(approximate) 하도록 추가로 구성될 수 있다. 시나리오 비디오 전처리 모듈(415)은 수동 주석(annotation)을 수신(receive)하고 상기 주석을 프레임의 파라미터에 추가하도록 구성될 수 있다. 일부 실시예에서, 상기 주석은 MayaTM 과 같은 제3자의(third-party) 애니메이션 및 모델링 응용(modeling application)을 사용하여 만들 수 있다. 모듈(415)은 시나리오 비디오(310)의 각 프레임에서 제어 포인트를 선택하고 제어 포인트의 위치를 추적(track)하도록 추가로 구성될 수 있다. 특정 실시예에서, 모듈(415)는 시나리오 비디오(310)의 각 프레임에서 입 내부의 세그먼테이션(segmentation)을 수행하도록 구성될 수 있다.
어떤 실시예에서, 타겟 이미지 전처리 모듈(420)은 타겟 이미지(125)에서 2D 얼굴 특징점 및 머리의 보이는 부분(visible parts of the head)을 발견(detect)하고 3D 얼굴 모델을 타겟 이미지(125)에서 2D 얼굴 특징점 및 머리의 보이는 부분에 맞추도록(fit) 구성할 수 있다. 상기 타겟 이미지는 타겟 얼굴을 포함할 수 있다. 상기 타겟 얼굴은 눈을 감거나 입을 여는 것 같은 감정이 나타나지 않는 표정을 갖지 않을 수 있으며, 타겟 이미지에 묘사된 사람은 시나리오 비디오(310)에 묘사된 사람과 다른 연령일수 있다. 모듈(430)은 상기 타겟 얼굴을 정규화(normalize) 하도록 구성될 수 있으며, 예를 들어 타겟 얼굴의 중립의 상태로 머리를 회전하거나, 입을 닫거나 눈을 뜨도록 구성할 수 있다. 얼굴 특징점 발견 및 3D 얼굴 모델 피팅은 반복 프로세스를 사용하여 수행될 수 있다. 일부 실시예에서, 타겟 이미지(125) 및 시나리오 비디오(310)의 전처리를 위해 필요한 시간을 상당히 감소시킬 수 있는 모바일 장치의 중앙 처리 장치(CPU) 및 그래픽 처리 장치(GPU)를 위해 반복 프로세스를 최적화(optimize)할 수 있다.
어떤 실시예에서, 타겟 이미지 전처리 모듈(420)은 뷰티 효과를 적용 및/또는 타겟 이미지(125)에 묘사된 사람의 외모(appearance)를 변경하도록 추가로 구성될 수 있다. 예를 들어, 사람의 머리 색깔 또는 헤어 스타일을 변경하거나 사람을 늙거나 젊게 보이도록 만들 수 있다.
일부 실시예에서, 상기 이미지 세그먼테이션 및 배경 예측 모듈은 사람의 이미지로부터 사람의 머리를 세그먼테이션(segmentation)하도록 구성될 수 있다. 상기 머리 및/또는 타겟 얼굴(140)의 이미지를 획득하기 위해 타겟 이미지에 대해 상기 머리 세그먼테이션이 수행될 수 있다. 애니메이션은 상기 머리 또는 타겟 얼굴(140)의 이미지에 대해 추가로 수행될 수 있다. 상기 애니메이션된(animated) 머리 및/또는 타겟 얼굴(140)은 배경(145)에 다시 삽입(insert)할 수 있다. 2D 변형을 적용하여 상기 머리 및/또는 얼굴 타겟(140)의 이미지만 애니메이션하면(animating) 2D 변형에 의해 발생할 수 있는 배경(145)의 불필요한 변경을 방지(avoid)하는데 도움이 될 수 있다. 상기 애니메이션은 머리 포즈(head pose)의 변경을 포함할 수 있기 때문에, 이전에는 보이지 않았던 상기 배경의 일부가 표시되어 결과 이미지에 간격(gap)이 생길 수 있다. 상기 간격을 채우기(fill) 위해, 머리에 의해서 덮혀진(covered) 상기 배경의 부분을 예측할 수 있다. 어떤 실시예에서, 딥 러닝 모델(deep learning model)이 이미지에서 사람의 머리를 세그먼테이션하도록 훈련될 수 있다. 비슷하게, 딥 러닝 기술은 배경의 예측에 사용될 수 있다. 이미지 세그먼테이션 및 배경 예측을 위한 딥 러닝 기술의 자세한 내용은 아래 도 8-13을 참조한다.
어떤 실시예에서, 이미지 애니메이션 및 개선 모듈(430)은 프레임 별로 타겟 이미지를 애니메이션하도록 구성될 수 있다. 시나리오 비디오(310)의 각 프레임에 대해, 상기 제어 포인트의 위치 변경을 결정(determine)할 수 있다. 상기 제어 포인트의 위치 변경은 타겟 이미지(125)에 투영(project)될 수 있다. 모듈(430)은 워프 필드(warp field)를 구축하도록 추가로 구성될 수 있다. 상기 워프 필드에는 상기 제어 포인트의 삼각측량에서 각 삼각형의 변화에 의해 유도된(induced) 구간 선형 변환(piecewise linear transformations)의 세트가 포함될 수 있다. 모듈(430)은 상기 워프 필드를 타겟 이미지(125)에 적용하고 이에 의하여 출력 비디오(330)의 프레임을 생성하도록 추가로 구성될 수 있다. 이미지에 상기 워프 필드를 적용하는 것은 비교적 빠르게 수행될 수 있다. 이는 애니메이션을 실시간으로 수행할 수 있도록 한다.
어떤 실시예에서, 상기 이미지 애니메이션 및 개선 모듈은 숨겨진 영역(hidden regions), 예를 들어 입 내부 입 영역을 생성하도록 추가로 구성될 수 있다. 상기 숨겨진 영역을 생성하기위해 여러 접근법(approaches)이 사용될 수 있다. 한 가지 접근법은 시나리오 비디오(310)의 사람으로부터 타겟 이미지의 사람 입 내부로 입 내부를 전송하는 것을 포함할 수 있다. 또 다른 접근법은 3D 입 모델(3D mouth model)을 사용하여 숨겨진 영역을 생성하는 것을 포함할 수 있다. 상기 3D 입 모델은 3D 얼굴 모델의 형상(geometry)과 일치할 수 있다.
어떤 실시예에서, 시나리오 비디오(310)의 상기 사람이 눈을 감거나 윙크를 하는 경우, 모듈(430)은 외삽법(extrapolation)에 의해서 타겟 이미지에 사실적인 눈꺼풀을 합성(synthesize)하도록 구성될 수 있다. 타겟 이미지의 색과 일치하도록 눈꺼풀의 피부색을 형성할 수 있다. 피부색을 맞추기 위해서 모듈(430)은 시나리오 비디오(310)의 상기 프레임을 위해 구축된 상기 3D 얼굴 모델로부터 타겟 이미지(125)를 위해 구축된 상기 3D 얼굴 모델로 눈 표현(eyes expression)을 전송하고, 생성된 눈영역을 타겟 이미지에 삽입하도록 구성될 수 있다.
어떤 실시예에서, 모듈(430)은 부분적으로 가려진 영역(입, 홍채, 또는 눈꺼풀과 같은) 및 세부 사항을 생성하도록 구성될 수 있다. 생성적 적대 신경망(generative adversarial network)은 사실적인 눈 이미지 및 사실적인 텍스쳐(texture)를 합성하는데 사용될 수 있다. 모듈(430)은 상기 타겟 이미지의 상기 숨겨진 영역에 있는 눈을 상기 생성적 적대 신경망을 사용하여 생성된 상기 사실적인 눈 이미지로 대체하도록 추가로 구성될 수 있다. 모듈(430)은 상기 타겟 이미지와 3D 얼굴 모델의 원본 및 현재 파라미터, 타겟이미지의 포토리얼리스틱 텍스쳐 및 세부 사항을 기초로 생성되도록 구성될 수 있다. 모듈(430)은 숨겨진 영역을 생성된 포토리얼리스틱 텍스쳐로 교체(replace)하고 상기 전체 타겟 이미지에 상기 세부 사항 적용하여 상기 타겟 이미지를 개선(refine)할 수 있다. 상기 세부 사항의 적용에는 상기 타겟 이미지의 각 프레임에 섀도우 마스크(shadow mask)를 적용하는 것이 추가될 수 있다.
일부 실시예에서, 모듈(430)은 상기 애니메이션을 사실적으로 보이도록 만들기 위해 필요한 타겟 이미지에 다른 효과(예를 들어, 색 보정 및 광 보정)를 적용하도록 추가로 구성될 수 있다.
본 개시의 추가 실시예는 시나리오 비디오에서 피사체(subject)의 얼굴 표정 및 머리 움직임뿐만 아니라 신체 포즈(body pose) 및 방향, 제스쳐(gesture) 등을 전송(transfer)할 수 있도록 할 수 있다. 예를 들어, 특수한 헤어 모델(hair model)을 사용하여 상당한 머리 회전 중에 헤어 표현(representation)을 개선할 수 있다. 생성적 적대 신경망(generative adversarial network)은 사실적인 방식으로(realistic fashion) 원본 타겟 신체 포즈를 모방한 타겟 신체 포즈를 합성하는데 사용할 수 있다. 도 5는 일 예시적인 실시예에 따른 인물 애니메이션을 위한 방법(500)을 보여주는 흐름도이다. 방법(500)은 컴퓨팅 장치(110) 및 인물 애니메이션 시스템(220)에 의해 수행될 수 있다.
방법(500)은 블록(515-525)에서 시나리오 비디오를 전처리하는 것을 포함할 수 있다. 방법(500)은 컴퓨팅 장치(110)에 의해 시나리오 비디오의 프레임에서 제어 포인트(예를 들어, 2D 얼굴 특징점)를 발견(detect)하는 블록(505)에서 시작될 수 있다. 블록(520)에서, 방법(500)은 컴퓨팅 장치(110)에 의하여, 상기 시나리오 비디오의 프레임에서 상기 제어 포인트의 변위를 생성하는 단계를 포함할 수 있다. 블록(525)에서, 방법(500)은 컴퓨팅 장치(110)에 의하여, 상기 시나리오 비디오의 상기 프레임에 대한 상기 3D 얼굴 모델의 파라미터를 회득하기 위하여 상기 시나리오 비디오의 프레임 내의 상기 제어 포인트에 3D 얼굴 모델을 피팅(fit)하는 단계를 포함할 수 있다.
블록(530-540)에서 방법(500)은 타겟 이미지의 전처리를 포함할 수 있다. 상기 타겟 이미지는 타겟 얼굴을 포함할 수 있다. 블록(530)에서, 방법(500)은 컴퓨팅 장치(110)에 의하여, 상기 타겟 이미지에서 제어 포인트(예를 들어, 얼굴 특징점)을 발견하는 것을 포함할 수 있다. 블록(535)에서, 방법(500)은 컴퓨팅 장치(110)에 의하여, 상기3D 얼굴 모델의 파라미터를 획득하기 위하여 타겟 이미지내의 상기 제어 포인트에 3D 얼굴 모델을 피팅(fit)하는 단계를 포함할 수 있다. 블록(540)에서, 방법(500)은 타겟 이미지내에서 상기 제어 포인트의 삼각측량을 구축하는 것을 포함할 수 있다.
블록(545)에서, 방법(500)은 컴퓨팅 장치(110)에 의하여, 상기 이미지에 대한 3D 얼굴 모델의 파라미터 및 상기 시나리오 비디오의 프레임에 대한 3D 얼굴 모델의 파라미터에 기초하여, 입 및 눈 영역의 변형을 생성하는 단계를 포함할 수 있다.
블록(550)에서, 방법(500)은 컴퓨팅 장치(110)에 의하여, 상기 시나리오 비디오의 상기 프레임에서 상기 제어 포인트의 변위 및 상기 타겟 이미지에서 상기 제어 포인트의 삼각측량에 기초하여, 2D 얼굴 변형(워프 필드)를 생성하는 단계를 포함할 수 있다. 상기 2D 얼굴 변형은 상기 타겟 이미지에서 얼굴 및 배경의 2D 삼각측량 중 일부의 삼각형의 어파인 변환 세트를 포함할 수 있다. 상기 삼각측량 토폴로지(topology)는 상기 시나리오 비디오의 프레임과 타겟 이미지 간에 공유될 수 있다.
블록(555)에서, 방법(500)은 컴퓨팅 장치(110)에 의하여, 출력 비디오의 프레임을 획득하기 위해 상기 타겟 이미지를 상기 2D 얼굴 변형에 적용하는 것을 포함할 수 있다. 방법(500)은 컴퓨팅 장치(100)에 의하여, 입 및 눈 영역 변형에 기초하여, 상기 타겟 이미지에 입 및 눈 영역을 생성하는 것을 더 포함할 수 있다.
블록(560)에서, 방법(500)은 상기 출력 비디오의 상기 프레임에서 개선(refinement)을 수행하는 것을 포함할 수 있다. 상기 개선은 색 및 광 보정을 포함할 수 있다.
따라서, 타겟 이미지(125)는 상기 시나리오 비디오의 상기 프레임에서 얼굴 변형을 모방(imitate)하는 생성된 일련의 2D 변형을 통해 애니메이션화될 수 있다. 이 프로세스는 매우 빠를 수 있고 애니메이션이 실시간으로 수행되는 것처럼 보이게 한다. 일부 2D 변형은 원본 비디오의 상기 프레임으로부터 추출되어 미리 저장할 수 있다. 추가적으로, 배경 복원 방법은 타겟 이미지를 실시간 상태(live)로 만드는 포토리얼리스틱(photorealistic) 효과를 달성할 수 있다.
도 6은 일부 예시적인 실시예에 따른 인물 애니메이션을 위한 방법(600)을 도시하는 흐름도이다. 방법(600)은 컴퓨팅장치(110)에 의해 수행될 수 있다. 방법(600)은 상기 컴퓨팅 장치에 의해 시나리오 비디오를 수신하는 것으로 블록 (605)에서 시작될 수 있다. 상기 시나리오 비디오는 적어도 하나의 입력 프레임(input frame)을 포함할 수 있다. 상기 입력 프레임은 제1 얼굴(first face)을 포함할 수 있다. 블록(610)에서, 방법(600)은 상기 컴퓨팅 장치에 의하여, 타겟 이미지를 수신하는 단계를 포함할 수 있다. 상기 타겟 이미지는 제2 얼굴(second face)을 포함할 수 있다. 블록(615)에서, 방법(600)은 상기 컴퓨팅 장치에 의하여, 상기 적어도 하나의 입력 프레임 및 상기 타겟 이미지에 기초하여, 2D 변형을 결정하는 단계를 더 포함하며, 상기 2D 변형은 상기 제2얼굴에 적용된 경우, 적어도 상기 제1 얼굴의 머리 방향 및 얼굴 표정을 모방하도록 상기 제2얼굴을 수정한다. 블록(620)에서, 방법(600)은 상기 컴퓨팅 장치에 의하여, 출력 비디오의 적어도 하나의 출력 프레임을 획득하기 위해서 상기 2D 변형을 상기 타겟 이미지에 적용하는 단계를 포함할 수 있다.
도 7은 여기에 설명된 방법을 구현하는데 사용될 수 있는 컴퓨팅 시스템(700)의 예시를 설명한다. 컴퓨팅 시스템(700)은 컴퓨팅 장치(110), 인물 애니메이션 시스템(220), 3D 얼굴 모델(405), 스파스 대응 모듈(410), 시나리오 비디오 전처리 모듈(415), 타겟 이미지 전처리 모듈(420) 및 이미지 애니메이션 및 개선 모듈(430) 등의 컨텍스트(context)에서 구현될 수 있다.
도 7에서 도시된 바와 같이, 컴퓨팅 시스템(700)은 하나 이상의 프로세서(710) 및 메모리(720)을 포함할 수 있다. 메모리(720)은 부분적으로 프로세서(710)에 의한 실행을 위한 명령어 및 데이터를 저장한다. 메모리(720)은 시스템(700)이 동작 할 때 상기 실행가능한 코드를 저장할 수 있다. 시스템(700)은 선택적 대용량 저장 장치(730), 선택적 휴대용 저장 매체 드라이브(들)(740), 하나 이상의 선택적 출력 장치(750), 하나 이상의 선택적 입력 장치(760), 선택적 네트워크 인터페이스(770) 및 하나 이상의 선택적 주변 장치(780)를 더 포함할 수 있다. 컴퓨팅 시스템(700)은 또한 하나 이상의 소프트웨어 구성요소(795)(예: 여기에서 설명된 바와 같이 인물 애니메이션을 위한 방법을 구현할 수 있는 구성요소)를 포함할 수 있다
도 7에 도시된 상기 구성요소들은 단일 버스(single bus)(790)를 통해 연결된다. 상기 구성요소들은 하나 이상의 데이터 전송 수단 또는 데이터 네트워크를 통해 연결될 수 있다. 프로세서(710) 및 메모리(720) 로컬 마이크로프로세서 버스(local microprocessor bus)를 통해 연결될 수 있고, 대용량 저장 장치(730), 주변 장치(들)(780), 휴대용 저장 장치(740) 및 네트워크 인터페이스(770)은 하나 이상의 입력/출력(I/O) 버스를 통해 연결될 수 있다.
자기 디스크 드라이브(magnetic disk drive), 솔리드 스테이트 디스크 드라이브(solid-state disk drive) 또는 광학 디스크 드라이브(optical disk drive)로 구현될 수 있는 대용량 저장 장치(730)는 프로세서(710)에 사용하기 위한 데이터 및 명령어를 저장하기 위한 비-휘발성 저장 장치이다. 대용량 저장 장치(730)은 여기서 설명된 실시예를 구현하기 위한 시스템 소프트웨어(예: 소프트웨어 구성요소(795))를 저장할 수 있다.
휴대용 저장 매체 드라이브(들)(740)은 컴팩트 디스크(CD) 또는 디지털 비디오 디스크(DVD)와 같은 휴대용 비-휘발성의 저장 매체와 함께 작동하여 컴퓨팅 시스템(700)에 데이터 및 코드를 입력 및 출력한다. 여기서 설명된 실시예의 구현을 위한 상기 시스템 소프트웨어(예: 소프트웨어 구성요소(795))는 그러한 휴대용 매체에 저장될 수 있고 휴대용 저장 매체 드라이브(들)(740)를 통해 컴퓨팅 시스템(700)에 입력될 수 있다.
선택적 입력 장치(760)은 유저의 인터페이스의 일부를 제공한다. 입력 장치(760)는 영숫자 및 다른 정보를 입력하기 위한 키보드와 같은 영숫자 키패드 또는 마우스, 트랙볼(trackball), 스타일러스(stylus), 또는 커서 방향 키(cursor direction key)와 같은 포인팅 장치(pointing device)를 포함할 수 있다. 입력 장치(760)는 또한 카메라 또는 스캐너를 포함할 수 있다. 추가적으로, 도 7에서 도시된 시스템(700)은 선택적 출력 장치(750)을 포함한다. 적합한 출력 장치는 스피커, 프린터, 네트워크 인터페이스(network interfaces) 및 모니터를 포함한다.
네트워크 인터페이스(770)는, 예를 들어, 인터넷, 인트라넷, LAN, WAN, 휴대폰 네트워크, 블루투스 라디오, 및 IEEE 802.11-기반 무선 주파수 네트워크 등을 포함하는 하나 이상의 유선, 무선, 또는 광 네트워크와 같은 하나 이상의 통신 네트워크를 통해 외부 장치, 외부 컴퓨팅 장치, 서버, 및 네트워크 시스템과 통신하는 데 사용될 수 있다. 네트워크 인터페이스(770)는 이더넷 카드, 광 트랜시버, 무선 주파수 트랜시버, 또는 정보를 송수신할 수 있는 임의의 다른 유형의 장치와 같은 네트워크 인터페이스 카드일 수 있다. 선택적인 주변 장치(780)는 컴퓨터 시스템에 추가 기능을 추가하기 위해 임의의 유형의 컴퓨터 지원 장치를 포함할 수 있다.
컴퓨팅 시스템(700)에 포함된 구성 요소는 넓은 범주의 컴퓨터 구성 요소를 나타내도록 의도된다. 따라서, 컴퓨팅 시스템(700)은 서버, 개인용 컴퓨터, 핸드-헬드 컴퓨팅 장치, 전화, 모바일 컴퓨팅 장치, 워크 스테이션, 미니 컴퓨터, 메인 프레임 컴퓨터, 네트워크 노드, 또는 임의의 다른 컴퓨팅 장치일 수 있다. 컴퓨팅 시스템(700)은 또한 상이한 버스 구성, 네트워크화된 플랫폼, 멀티-프로세서 플랫폼, 및 기타 등등을 포함할 수 있다. UNIX, Linux, Windows, Macintosh OS, Palm OS, 및 기타 적합한 운영 체제를 포함하여 다양한 운영 체제(OS)가 사용될 수 있다.
전술한 기능 중 일부는 저장 매체(예: 컴퓨터-판독가능 매체 또는 프로세서-판독가능 매체)에 저장된 명령어로 구성될 수 있다. 명령어는 프로세서에 의해 검색되고 실행될 수 있다. 저장 매체의 예로는 메모리 장치, 테이프, 디스크, 및 기타 등이 있다. 프로세서가 본 발명에 따라 동작하도록 지시하기 위해 명령은 프로세서에 의해 실행될 때 동작한다. 당업자는 명령어, 프로세서(들), 및 스토리지 매체에 익숙하다.
여기서 설명된 처리를 수행하기에 적합한 임의의 하드웨어 플랫폼이 본 발명에 사용하기에 적합하다는 것은 주목할 점이다. 여기서 사용된 용어 "컴퓨터-판독가능 저장 매체(computer-readable storage medium)" 및 "컴퓨터-판독가능 저장 매체(computer-readable storage media)"는 실행을 위해 프로세서에 명령을 제공하는 데 참여하는 임의의 매체(medium) 또는 매체(media)를 지칭한다. 이러한 매체는 비-휘발성 매체, 휘발성 매체, 및 전송 매체를 포함하지만 이에 제한되지 않는 다양한 형태를 취할 수 있다. 비 휘발성 매체는, 예를 들어, 고정 디스크와 같은 광학 또는 자기 디스크를 포함한다. 휘발성 매체는 시스템 RAM(Random Access Memory)과 같은 동적 메모리를 포함한다. 전송 매체는 동축 케이블, 구리 와이어, 및 광섬유를 포함하며, 무엇보다도, 버스의 일 실시예를 포함하는 와이어를 포함한다. 전송 매체는 또한 무선 주파수(RF) 및 적외선(IR) 데이터 통신 도중에 생성되는 것과 같은, 음향 또는 광파의 형태를 취할 수 있다. 컴퓨터-판독가능 매체의 일반적인 형태는, 예를 들어, 플로피 디스크, 플렉서블 디스크, 하드 디스크, 자기 테이프, 기타 자기 매체, CD-읽기-전용 메모리(ROM) 디스크, DVD, 기타 광학 매체, 마크 또는 구멍 패턴이 있는 기타 물리적 매체, RAM, PROM, EPROM, EEPROM, 기타 메모리 칩 또는 카트리지, 반송파, 또는 컴퓨터가 읽을 수 있는 기타 매체를 포함한다.
다양한 형태의 컴퓨터-판독가능 매체는 실행을 위해 하나 이상의 명령의 하나 이상의 시퀀스를 프로세서에 전달하는 데 관련(involve)될 수 있다. 버스는 프로세서가 명령을 검색하고 실행하는 시스템 RAM으로 데이터를 전달한다. 시스템 프로세서에 의해 수신된 명령은 프로세서에 의해 실행되기 전후에 고정 디스크에 선택적으로 저장될 수 있다.
예시적인 실시예에 따르면, 도 8은 배경 예측을 위한 DNN(800)의 블록도이다. DNN(800)은 컨볼루션 레이어 (804), (828) 및 (830), 압축 컨볼루션 블록 (806), (808), (810), (812) 및 (814), 어텐션 블록 (816), (818), (820), (822), (824) 및 (826), 압축 해제 컨볼루션 블록 (832), (834), (836), (838) 및 (840)을 포함할 수 있다.
압축 컨볼루션 블록 (806), (808), (810), (812) 및 (814)은 이미지(802)로부터 의미론적 특징 벡터(semantic feature vector)를 추출할 수 있다. 상기 의미론적 특징 벡터는 어텐션 블록 (816), (818), (820), (822), (824) 및 (826)으로부터의 정보를 사용하여 압축 해제 컨볼루션 블록 (832), (834), (836), (838) 및 (840)에 의해 결과 이미지(842)로 다시 전치(transpose)된다. 이미지(802)는 타겟 이미지(125)를 포함할 수 있다. 결과 이미지(842)에는 타겟 얼굴(140)에 의해 덮혀진(covered) 타겟 이미지(125)의 일부에 대한 예상 배경이 포함될 수 있다.
도 9는 예시적인 압축 컨볼루션 블록(900)의 블록도이다. 압축 컨볼루션 블록(900)은 도 8의 DNN(800)에서 압축 컨볼루션 블록(806), (808), (810), (812) 또는 (814)에 사용될 수 있다. 압축 컨볼루션 블록(900)은 컨볼루션 레이어(convolution layer)(904), (906) 및 최대 풀링 레이어(max pooling layer)(908)를 포함할 수 있다. 압축 컨볼루션 블록(900)은 특징 맵(902)에 기초하여 출력(910) 및 출력(920)을 생성할 수 있다.
도 10은 예시적인 압축 해제 컨볼루션 블록(1000)의 블록도이다. 압축 해제 컨볼루션 블록(1000)은 도 8의 DNN(800)에서 압축 해제 컨볼루션 블록 (832), (834), (836), (838) 또는 (840)에 사용될 수 있다. 압축 해제 컨볼루션 블록(1000)는 컨볼루션 레이어(1004) 및 (1006), 컨캐터네이션 레이어(concatenation layer)(1008), 트랜스포즈드 컨볼루션 레이어(transposed convolution layer)(1010)를 포함할 수 있다. 압축 해제 컨볼루션 블록(1000)은 특징 맵(1002) 및 특징 맵(1012)에 기초하여 출력(1004)를 생성할 수 있다.
도 11은 예시적인 어텐션 블록(1100)의 블록도이다. 어텐션 블록(1100)은 도 8의 DNN(800)에서 어텐션 블록(816), (818), (820), (822), (824) 또는 (826)에 사용될 수 있다. 어텐션 블록(1100)은 컨볼루션 레이어(1104) 및 (1106), 정규화 레이어(normalization layer)(1108) 애그리게이션 레이어(aggregation layer)(1110) 및 컨캐터네이션 레이어(1112)를 포함할 수 있다. 어텐션 블록(1100)은 특징 맵(1102)에 기초하여 결과 맵(1114)를 생성할 수 있다.
도 12는 DNN(800)의 훈련(training)을 위한 학습 기법(learning scheme)(1200)의 블록도이다. 학습 기법(1200)은 손실 계산기(loss calculator)(1208), DNN(800), 식별기 네트워크(discriminator networks)(1212) 및 (1214), 차 블록(difference block)(1222)을 포함할 수 있다. 식별기 네트워크(1212) 및 (1214)는 DNN(800)으로 포토리얼리스틱 배경의 생성을 용이하게(facilitate) 할 수 있다.
DNN(800)은 생성된 합성 데이터 세트를 기초로 훈련될 수 있다. 상기 합성 데이터 세트는 배경 이미지 앞에 위치한 사람의 이미지를 포함할 수 있다. 상기 배경 이미지는 타겟 이미지(1206)로 사용될 수 있다. 상기 배경 이미지 앞에 위치한 사람의 상기 이미지는 입력 데이터(1202)로 사용될 수 있고 삽입 마스크는 입력 데이터(1204)로 사용될 수 있다.
식별기 네트워크(1212)는 DNN(800)의 출력(예측된 배경)에 기초하여 생성기 손실(generator loss)(g_loss)(1218)을 계산할 수 있다. 식별기 네트워크(1214)는 타겟 이미지(1206)에 기초하여 예측 값(prediction value)을 계산할 수 있다. 차 블록(1222)은 생성기 손실(1218) 및 상기 예측 값을 기초로 식별기 손실(discriminator loss)(d_loss)(1220)을 계산할 수 있다. 손실 제너레이터(loss generator)(1208)는 DNN(800) 및 타겟 이미지(1206)에 기초하여 훈련 손실(training loss)(im_loss)(1216)을 계산할 수 있다.
DNN(800)의 학습은 다음 단계의 조합을 포함할 수 있다.
1. "훈련 단계(training step)". "훈련 단계"에서, 식별기 네트워크(1212) 및 (1214)의 가중치(weight)는 변경되지 않은 상태로 유지되고 역전파(backward propagation)에는 im_loss 및 g_loss가 사용된다.
2. "순수한 훈련 단계(pure training step)". "순수한 훈련 단계"에서, 식별기 네트워크(1212) 및 (1214)의 가중치는 변경되지 않은 상태로 유지되고 역전파에는 im_loss만이 사용된다.
3. "식별기 훈련 단계(discriminator training step)". "식별기 훈련 단계"에서, DNN(800)의 가중치는 변경되지 않은 상태로 유지되고 역전파에서는 d_loss가 사용된다.
다음의 의사코드(pseudocode)는 DNN(800)에 대한 학습 알고리즘을 설명할 수 있다.
1. "순수한 훈련 단계"를 100회를 수행한다.
2. 필요한 품질에 도달할 때까지 다음의 단계를 반복한다.
a. "식별기 훈련 단계"를 5회 수행한다.
b. "훈련 단계"를 수행한다.
도 13은 예시적인 식별기 네트워크(1300)의 블록도이다. 식별기 네트워크(1300)는 도 12의 학습 기법(1200)에서 식별기 네트워크(1212) 및 (1214)로 사용될 수 있다. 식별기 네트워크(1300)은 컨볼루션 레이어(1304), 압축 컨볼루션 블록(1306), 글로벌 평균 풀링 레이어(global average pooling layer)(1308) 및 덴스 레이어(1310)를 포함할 수 있다. 식별기 네트워크(1300)은 이미지(1302)에 기초하여 예측 값(1312)을 생성할 수 있다.
배경 예측을 위한 DNN의 아키텍쳐(architecture)는 도 8-13에서 설명된 예시적인 DNN의 아키텍쳐와 다를 수 있음을 주의해야 한다. 예를 들어, 3x3 컨볼루션(804-814)는 3x1 컨볼루션 및 1x3 컨볼루션의 결합으로 대체될 수 있다. 배경 예측을 위한 DNN은 도 8에서 도시된 블록 중 일부를 포함하지 않을 수 있다. 예를 들어 감쇠 블록(attention blocks)(816-820)는 DNN의 아키텍쳐로부터 제외(exclude)될 수 있다. 배경 예측을 위한 DNN은 또한 도 8에서 도시된 DNN(800)과 다른 수의 숨겨진 레이어를 포함할 수 있다.
또한 도 8-13에서 설명된 DNN(800)과 유사한 DNN은 타겟 이미지(125)의 다른 부분을 예측하기 위해 사용되고 훈련될 수 있다는 점에 주의해야 한다. 예를 들어, DNN을 사용하여 타겟 이미지(125)의 숨겨진 영역을 예측하거나 생성하고 세부 사항을 미세 조정하여 포토리얼리스틱(photorealistic) 결과를 달성할 수 있다. 숨겨진 영역은 타겟 얼굴(140)의 입 영역(mouth region) 및 눈 영역(eyes region)를 포함할 수 있다.
따라서, 포토리얼리스틱 실시간 인물 애니메이션(photorealistic real-time animation)을 위한 시스템 및 방법이 설명되었다. 실시예가 특정 예시적인 실시예를 참조하여 설명되었지만, 본 출원의 더 넓은 사상 및 범위를 벗어나지 않고 이러한 예시적인 실시예에 대해 다양한 수정 및 변경이 이루어질 수 있음은 자명할 것이다. 따라서 명세서 및 도면은 제한적인 의미가 아닌 예시적인 의미로 간주되어야한다.

Claims (20)

  1. 인물 애니메이션을 위한 방법에 있어서,
    컴퓨팅 장치에 의하여, 시나리오 비디오를 수신하는 단계 - 상기 시나리오 비디오는 적어도 하나의 입력 프레임을 포함하고, 상기 적어도 하나의 입력 프레임은 제1 얼굴을 포함함 -;
    상기 컴퓨팅 장치에 의하여, 제2 얼굴을 포함하는 타겟 이미지를 수신하는 단계;
    상기 컴퓨팅 장치에 의하여, 상기 적어도 하나의 입력 프레임 및 상기 타겟 이미지에 기초하여, 상기 제2 얼굴의 2D 변형을 결정하는 단계 - 상기 2D 변형은, 상기 제2 얼굴에 적용된 경우, 적어도 상기 제1 얼굴의 머리 방향 및 얼굴 표정을 모방하도록 상기 제2 얼굴을 수정함 -; 및
    상기 컴퓨팅 장치에 의하여, 출력 비디오의 적어도 하나의 출력 프레임을 획득하기 위하여 상기 2D 변형을 상기 타겟 이미지에 적용하는 단계
    를 포함하고,
    상기 2D 변형을 적용하기 전에, 상기 컴퓨팅 장치에 의하여, DNN을 사용하여, 상기 제2 얼굴의 이미지 및 배경을 획득하기 위하여, 상기 타겟 이미지의 세그먼테이션을 수행하는 단계
    를 포함하며,
    상기 컴퓨팅 장치에 의하여 상기 2D 변형을 상기 타겟 이미지에 적용하는 단계는, 상기 배경을 변경하지 않으면서 상기 변형된 얼굴을 획득하고, 상기 변형된 얼굴과 상기 배경 사이의 간격을 채우도록, 상기 2D 변형을 상기 제2 얼굴의 이미지에 적용하는 단계
    를 포함하는 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 2D 변형을 적용하는 경우,
    상기 컴퓨팅 장치에 의하여, 상기 변형된 얼굴을 상기 배경에 삽입하는 단계;
    상기 컴퓨팅 장치에 의하여, 상기 DNN을 사용하여, 상기 변형된 얼굴과 상기 배경 사이의 상기 간격에 있는 상기 배경의 부분을 예측하는 단계; 및
    상기 컴퓨팅 장치에 의하여, 상기 예측된 부분으로 상기 간격을 채우는 단계
    를 더 포함하는 방법.
  4. 제1항에 있어서,
    상기 2D 변형을 결정하는 단계는,
    상기 컴퓨팅 장치에 의하여, 상기 제1 얼굴 상의 제1 제어 포인트를 결정하는 단계;
    상기 컴퓨팅 장치에 의하여, 상기 제2 얼굴상의 제2 제어 포인트를 결정하는 단계; 및
    상기 컴퓨팅 장치에 의하여, 상기 제1 제어 포인트를 상기 제2 제어 포인트에 정렬하기 위하여 2D 변형 또는 어파인 변환을 정의하는 단계
    를 포함하는 방법.
  5. 제4항에 있어서,
    상기 2D 변형을 결정하는 단계는,
    상기 컴퓨팅 장치에 의하여, 상기 제2 제어 포인트의 삼각측량을 구축하는 단계
    를 포함하는 방법.
  6. 제5항에 있어서,
    상기 2D 변형을 결정하는 단계는,
    상기 컴퓨팅 장치에 의하여, 상기 적어도 하나의 입력 프레임에서 상기 제1 제어 포인트의 변위를 결정하는 단계;
    상기 컴퓨팅 장치에 의하여, 상기 어파인 변환을 사용하여, 상기 제2 제어 포인트의 예상 변위를 획득하기 위하여, 상기 타겟 이미지 상에 상기 변위를 투영하는 단계; 및
    상기 컴퓨팅 장치에 의하여, 상기 예상 변위에 기초하여, 상기 2D 변형으로 사용되는 워프 필드를 결정하는 단계
    를 더 포함하는 방법.
  7. 제6항에 있어서,
    상기 워프 필드는,
    상기 제2 제어 포인트의 상기 삼각측량에서 삼각형의 변화에 의해 정의되는 구간 선형 변환의 세트
    를 포함하는 방법.
  8. 제1항에 있어서,
    상기 컴퓨팅 장치에 의하여, 입 영역 및 눈 영역 중 하나를 생성하는 단계; 및
    상기 컴퓨팅 장치에 의하여, 상기 입 영역 및 상기 눈 영역 중 상기 하나를 적어도 하나의 출력 프레임에 삽입하는 단계
    를 더 포함하는 방법.
  9. 제8항에 있어서,
    상기 입 영역 및 상기 눈 영역 중 상기 하나를 생성하는 단계는,
    상기 컴퓨팅 장치에 의하여 상기 입 영역 및 상기 눈 영역 중 상기 하나를 상기 제1 얼굴로부터 전달하는 단계
    를 포함하는 방법
  10. 제8항에 있어서,
    상기 입 영역 및 상기 눈 영역 중 상기 하나를 생성하는 단계는,
    상기 컴퓨팅 장치에 의하여, 제1 세트의 파라미터를 획득하기 위하여, 3D 얼굴 모델을 상기 제1 제어 포인트에 피팅하는 단계 - 상기 제1 세트의 파라미터는 적어도 제1 얼굴 표정을 포함함 -;
    상기 컴퓨팅 장치에 의하여, 제2 세트의 파라미터를 획득하기 위하여, 상기 3D 얼굴 모델을 상기 제2 제어 포인트에 피팅하는 단계, - 상기 제2 세트의 파라미터는 적어도 제2 얼굴 표정을 포함함 -;
    상기 컴퓨팅 장치에 의하여, 상기 제1 얼굴 표정을 상기 제1 세트의 파라미터로부터 상기 제2 세트의 파라미터로 전달하는 단계; 및
    상기 컴퓨팅 장치에 의하여, 상기 3D 얼굴 모델을 사용하여 상기 입 영역 및 눈 영역 중 상기 하나를 합성하는 단계
    를 포함하는 방법.
  11. 인물 애니메이션을 위한 시스템에 있어서,
    상기 시스템은,
    적어도 하나의 프로세서, 및
    프로세서가 실행가능한 코드를 저장하는 메모리
    를 포함하고,
    상기 적어도 하나의 프로세서는,
    상기 프로세서가 실행가능한 코드를 실행하는 경우, 동작들을 구현하도록 구성되고,
    상기 동작들은,
    시나리오 비디오를 수신하는 동작 - 상기 시나리오 비디오는 적어도 하나의 입력 프레임을 포함하고, 상기 적어도 하나의 입력 프레임은 제1 얼굴을 포함함 -;
    제2 얼굴을 포함하는 타겟 이미지를 수신하는 동작;
    상기 적어도 하나의 입력 프레임 및 상기 타겟 이미지에 기초하여, 상기 제2 얼굴의 2D 변형을 결정하는 동작 - 상기 2D 변형은, 상기 제2 얼굴에 적용된 경우, 적어도 상기 제1 얼굴의 머리 방향 및 얼굴 표정을 모방하도록 상기 제2 얼굴을 수정함 -; 및
    출력 비디오의 적어도 하나의 출력 프레임을 획득하기 위하여 상기 2D 변형을 상기 타겟 이미지에 적용하는 동작
    을 포함하고,
    상기 2D 변형을 적용하기 전에, 상기 프로세서에 의하여, DNN을 사용하여, 상기 제2 얼굴의 이미지 및 배경을 획득하기 위하여, 상기 타겟 이미지의 세그먼테이션을 수행하고,
    상기 프로세서에 의하여, 상기 2D 변형을 상기 타겟 이미지에 적용하는 동작은, 상기 배경을 변경하지 않으면서 상기 변형된 얼굴을 획득하고, 상기 변형된 얼굴과 상기 배경 사이의 간격을 채우도록, 상기 2D 변형을 상기 제2 얼굴의 이미지에 적용하는 동작을 포함하는,
    시스템.
  12. 삭제
  13. 제11항에 있어서,
    2D 변형을 적용하는 경우,
    상기 변형된 얼굴을 상기 배경에 삽입하는 동작;
    상기 DNN을 사용하여, 상기 변형된 얼굴과 상기 배경 사이의 간격에 있는 상기 배경의 부분을 예측하는 동작; 및
    상기 예측된 부분으로 상기 간격을 채우는 동작
    을 더 포함하는 시스템.
  14. 제11항에 있어서,
    상기 2D 변형을 결정하는 동작은,
    상기 제1 얼굴상의 제1 제어 포인트를 결정하는 동작;
    상기 제2 얼굴 상의 제2 제어 포인트를 결정하는 동작; 및
    상기 제1 제어 포인트를 상기 제2 제어 포인트에 정렬하기 위하여 2D 변형 또는 어파인 변환을 정의하는 동작
    을 포함하는 시스템.
  15. 제14항에 있어서,
    상기 2D 변형을 결정하는 동작은,
    상기 제2 제어 포인트의 삼각측량을 구축하는 동작
    을 포함하는 시스템.
  16. 제15항에 있어서,
    상기 2D 변형을 결정하는 동작은,
    상기 적어도 하나의 입력 프레임에서 상기 제1 제어 포인트의 변위를 결정하는 동작;
    상기 어파인 변환을 사용하여, 상기 제2 제어 포인트의 예상 변위를 획득하기 위하여, 상기 타겟 이미지 상에 상기 변위를 투영하는 동작; 및
    상기 예상 변위에 기초하여, 상기 2D 변형으로 사용되는 워프 필드를 결정하는 동작
    을 더 포함하는 시스템.
  17. 제16항에 있어서,
    상기 워프 필드는,
    상기 제2 제어 포인트의 상기 삼각 측량에서 삼각형의 변화에 의해 정의되는 구간 선형 변환의 세트
    를 포함하는 시스템.
  18. 제11항에 있어서,
    입 영역 및 눈 영역 중 하나를 생성하는 동작; 및
    상기 입 영역 및 상기 눈 영역 중 상기 하나를 상기 적어도 하나의 출력 프레임에 삽입하는 동작
    을 더 포함하는 시스템.
  19. 제18항에 있어서,
    상기 입 영역 및 상기 눈 영역 중 하나를 생성하는 동작은,
    제1세트의 파라미터를 획득하기 위하여, 3D 얼굴 모델을 상기 제1 제어 포인트에 피팅하는 동작, - 상기 제1 세트의 파라미터는 적어도 제1 얼굴 표정을 포함함 -;
    제2 세트의 파라미터를 획득하기 위하여, 상기 3D 얼굴 모델을 상기 제2 제어 포인트에 피팅하는 동작, - 상기 파라미터의 제2 세트는 적어도 제2 얼굴 표정을 포함함 -;
    상기 제1 얼굴 표정을 상기 제1 세트의 파라미터로부터 상기 제2 세트의 파라미터로 전달하는 동작; 및
    상기 3D 얼굴 모델을 사용하여 상기 입 영역 및 상기 눈 영역 중 상기 하나를 합성하는 동작
    을 포함하는 시스템.
  20. 명령어들을 저장한 비-일시적 프로세서-판독가능 매체에 있어서,
    상기 명령어들은, 하나 이상의 프로세서에 의해 수행되는 경우, 상기 하나 이상의 프로세서가 인물 애니메이션을 위한 방법을 구현하도록 하고,
    상기 방법은,
    시나리오 비디오를 수신하는 단계 - 상기 시나리오 비디오는 적어도 하나의 입력 프레임을 포함하고, 상기 적어도 하나의 입력 프레임은 제1 얼굴을 포함함 -;
    제2 얼굴을 포함하는 타겟 이미지를 수신하는 단계;
    상기 적어도 하나의 입력 프레임 및 상기 타겟 이미지에 기초하여, 상기 제2 얼굴의 2D 변형을 결정하는 단계 - 상기 2D 변형은 상기 제2 얼굴에 적용된 경우, 상기 제1 얼굴의 머리 방향 및 얼굴 표정을 모방하도록 상기 제2 얼굴을 수정함 -; 및
    출력 비디오의 적어도 하나의 출력 프레임을 획득하기 위하여 상기 2D 변형을 상기 타겟 이미지에 적용하는 단계
    를 포함하고,
    상기 2D 변형을 적용하기 전에, 상기 컴퓨팅 장치에 의하여, DNN을 사용하여, 상기 제2 얼굴의 이미지 및 배경을 획득하기 위하여, 상기 타겟 이미지의 세그먼테이션을 수행하는 단계
    를 포함하며,
    상기 컴퓨팅 장치에 의하여 상기 2D 변형을 상기 타겟 이미지에 적용하는 단계는, 상기 배경을 변경하지 않으면서 상기 변형된 얼굴을 획득하고, 상기 변형된 얼굴과 상기 배경 사이의 간격을 채우도록, 상기 2D 변형을 상기 제2 얼굴의 이미지에 적용하는 단계
    를 포함하는,
    비-일시적 프로세서-판독가능 매체.
KR1020217026005A 2019-01-18 2020-01-18 포토리얼리스틱 실시간 인물 애니메이션을 위한 시스템 및 방법 KR102616010B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020237042816A KR20230173218A (ko) 2019-01-18 2020-01-18 포토리얼리스틱 실시간 인물 애니메이션을 위한 시스템 및 방법
KR1020237042815A KR20230173217A (ko) 2019-01-18 2020-01-18 포토리얼리스틱 실시간 인물 애니메이션을 위한 시스템 및 방법
KR1020237042817A KR20230173219A (ko) 2019-01-18 2020-01-18 포토리얼리스틱 실시간 인물 애니메이션을 위한 시스템 및 방법

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/251,472 2019-01-18
US16/251,472 US11049310B2 (en) 2019-01-18 2019-01-18 Photorealistic real-time portrait animation
PCT/US2020/014220 WO2020150687A1 (en) 2019-01-18 2020-01-18 Systems and methods for photorealistic real-time portrait animation

Related Child Applications (3)

Application Number Title Priority Date Filing Date
KR1020237042815A Division KR20230173217A (ko) 2019-01-18 2020-01-18 포토리얼리스틱 실시간 인물 애니메이션을 위한 시스템 및 방법
KR1020237042816A Division KR20230173218A (ko) 2019-01-18 2020-01-18 포토리얼리스틱 실시간 인물 애니메이션을 위한 시스템 및 방법
KR1020237042817A Division KR20230173219A (ko) 2019-01-18 2020-01-18 포토리얼리스틱 실시간 인물 애니메이션을 위한 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20210120014A KR20210120014A (ko) 2021-10-06
KR102616010B1 true KR102616010B1 (ko) 2023-12-21

Family

ID=69726709

Family Applications (4)

Application Number Title Priority Date Filing Date
KR1020237042817A KR20230173219A (ko) 2019-01-18 2020-01-18 포토리얼리스틱 실시간 인물 애니메이션을 위한 시스템 및 방법
KR1020237042815A KR20230173217A (ko) 2019-01-18 2020-01-18 포토리얼리스틱 실시간 인물 애니메이션을 위한 시스템 및 방법
KR1020237042816A KR20230173218A (ko) 2019-01-18 2020-01-18 포토리얼리스틱 실시간 인물 애니메이션을 위한 시스템 및 방법
KR1020217026005A KR102616010B1 (ko) 2019-01-18 2020-01-18 포토리얼리스틱 실시간 인물 애니메이션을 위한 시스템 및 방법

Family Applications Before (3)

Application Number Title Priority Date Filing Date
KR1020237042817A KR20230173219A (ko) 2019-01-18 2020-01-18 포토리얼리스틱 실시간 인물 애니메이션을 위한 시스템 및 방법
KR1020237042815A KR20230173217A (ko) 2019-01-18 2020-01-18 포토리얼리스틱 실시간 인물 애니메이션을 위한 시스템 및 방법
KR1020237042816A KR20230173218A (ko) 2019-01-18 2020-01-18 포토리얼리스틱 실시간 인물 애니메이션을 위한 시스템 및 방법

Country Status (5)

Country Link
US (4) US11049310B2 (ko)
EP (1) EP3912138A1 (ko)
KR (4) KR20230173219A (ko)
CN (1) CN113272870A (ko)
WO (1) WO2020150687A1 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108256505A (zh) * 2018-02-12 2018-07-06 腾讯科技(深圳)有限公司 图像处理方法及装置
CN109087239B (zh) * 2018-07-25 2023-03-21 腾讯科技(深圳)有限公司 一种人脸图像处理方法、装置及存储介质
US11393144B2 (en) * 2019-04-11 2022-07-19 City University Of Hong Kong System and method for rendering an image
US11875603B2 (en) * 2019-04-30 2024-01-16 Hewlett-Packard Development Company, L.P. Facial action unit detection
US11151412B2 (en) * 2019-07-01 2021-10-19 Everseen Limited Systems and methods for determining actions performed by objects within images
US20240029345A1 (en) * 2019-11-18 2024-01-25 Wolfprint 3D Oü Methods and system for generating 3d virtual objects
CN111862278B (zh) * 2020-07-22 2024-02-27 成都数字天空科技有限公司 一种动画获得方法、装置、电子设备及存储介质
CN112102154B (zh) * 2020-08-20 2024-04-26 北京百度网讯科技有限公司 图像处理方法、装置、电子设备和存储介质
US11360733B2 (en) 2020-09-10 2022-06-14 Snap Inc. Colocated shared augmented reality without shared backend
US11682153B2 (en) 2020-09-12 2023-06-20 Jingdong Digits Technology Holding Co., Ltd. System and method for synthesizing photo-realistic video of a speech
US20220198617A1 (en) * 2020-12-18 2022-06-23 Meta Platforms, Inc. Altering a facial identity in a video stream
US11875601B2 (en) * 2020-12-24 2024-01-16 Beijing Baidu Netcom Science and Technology Co., Ltd Meme generation method, electronic device and storage medium
CN113269700B (zh) * 2021-04-29 2023-12-12 北京达佳互联信息技术有限公司 视频生成方法、装置、电子设备及存储介质
US20220405361A1 (en) * 2021-06-16 2022-12-22 Meta Platforms, Inc. Systems and methods for correcting data to match user identity
US20240029331A1 (en) * 2022-07-22 2024-01-25 Meta Platforms Technologies, Llc Expression transfer to stylized avatars

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6807290B2 (en) * 2000-03-09 2004-10-19 Microsoft Corporation Rapid computer modeling of faces for animation
US7827488B2 (en) * 2000-11-27 2010-11-02 Sitrick David H Image tracking and substitution system and methodology for audio-visual presentations
US7020347B2 (en) * 2002-04-18 2006-03-28 Microsoft Corp. System and method for image-based surface detail transfer
US7039222B2 (en) * 2003-02-28 2006-05-02 Eastman Kodak Company Method and system for enhancing portrait images that are processed in a batch mode
US7660482B2 (en) * 2004-06-23 2010-02-09 Seiko Epson Corporation Method and apparatus for converting a photo to a caricature image
US8488023B2 (en) * 2009-05-20 2013-07-16 DigitalOptics Corporation Europe Limited Identifying facial expressions in acquired digital images
US20070080967A1 (en) * 2005-10-11 2007-04-12 Animetrics Inc. Generation of normalized 2D imagery and ID systems via 2D to 3D lifting of multifeatured objects
CA2654960A1 (en) * 2006-04-10 2008-12-24 Avaworks Incorporated Do-it-yourself photo realistic talking head creation system and method
US7672482B2 (en) * 2006-05-16 2010-03-02 Eastman Kodak Company Shape detection using coherent appearance modeling
TWI332639B (en) * 2006-09-27 2010-11-01 Compal Electronics Inc Method for displaying expressional image
US20120321134A1 (en) * 2011-06-15 2012-12-20 Samsung Electornics Co., Ltd Face tracking method and device
CN102800129B (zh) * 2012-06-20 2015-09-30 浙江大学 一种基于单幅图像的头发建模和肖像编辑方法
US9314692B2 (en) * 2012-09-21 2016-04-19 Luxand, Inc. Method of creating avatar from user submitted image
US9552668B2 (en) * 2012-12-12 2017-01-24 Microsoft Technology Licensing, Llc Generation of a three-dimensional representation of a user
KR101479838B1 (ko) * 2013-04-10 2015-01-09 한국과학기술원 3d 얼굴 영상 생성 방법 및 장치
US11017311B2 (en) * 2014-06-30 2021-05-25 Hewlett Packard Enterprise Development Lp Dataset augmentation based on occlusion and inpainting
CN110127739B (zh) * 2014-09-12 2022-04-12 尤萨科有限责任公司 氯化铝衍生物的制造方法
CN106056562B (zh) * 2016-05-19 2019-05-28 京东方科技集团股份有限公司 一种人脸图像处理方法、装置及电子设备
WO2017223530A1 (en) * 2016-06-23 2017-12-28 LoomAi, Inc. Systems and methods for generating computer ready animation models of a human head from captured data images
US20180068178A1 (en) * 2016-09-05 2018-03-08 Max-Planck-Gesellschaft Zur Förderung D. Wissenschaften E.V. Real-time Expression Transfer for Facial Reenactment
US10748579B2 (en) * 2016-10-26 2020-08-18 Adobe Inc. Employing live camera feeds to edit facial expressions
US10535163B2 (en) * 2016-12-01 2020-01-14 Pinscreen, Inc. Avatar digitization from a single image for real-time rendering
US10572720B2 (en) * 2017-03-01 2020-02-25 Sony Corporation Virtual reality-based apparatus and method to generate a three dimensional (3D) human face model using image and depth data
KR102117050B1 (ko) * 2017-09-08 2020-05-29 삼성전자주식회사 이미지 내 휴먼 분리를 위한 전자 장치 및 방법
WO2019173108A1 (en) * 2018-03-06 2019-09-12 Didimo, Inc. Electronic messaging utilizing animatable 3d models
US10956714B2 (en) * 2018-05-18 2021-03-23 Beijing Sensetime Technology Development Co., Ltd Method and apparatus for detecting living body, electronic device, and storage medium
EP3579196A1 (en) * 2018-06-05 2019-12-11 Cristian Sminchisescu Human clothing transfer method, system and device
US10552986B1 (en) * 2018-07-20 2020-02-04 Banuba Limited Computer systems and computer-implemented methods configured to track multiple eye-gaze and heartrate related parameters during users' interaction with electronic computing devices
US11010896B2 (en) * 2018-12-17 2021-05-18 Bodygram, Inc. Methods and systems for generating 3D datasets to train deep learning networks for measurements estimation

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Averbuch-Elor, Hadar, et al. "Bringing portraits to life." ACM Transactions on Graphics (ToG) 36.6 (2017): 1-13. (2017.11.20.)*
Geng, Jiahao, et al. "Warp-guided gans for single-photo facial animation." ACM Transactions on Graphics (ToG) 37.6 (2018): 1-12. (2018.12.04.)*
Natsume, Ryota, Tatsuya Yatagawa, and Shigeo Morishima. "Rsgan: face swapping and editing using face and hair representation in latent spaces." arXiv preprint arXiv:1804.03447 (2018). (2018.04.18.)*

Also Published As

Publication number Publication date
US20230110916A1 (en) 2023-04-13
WO2020150687A1 (en) 2020-07-23
US11995758B2 (en) 2024-05-28
KR20230173219A (ko) 2023-12-26
KR20230173218A (ko) 2023-12-26
US20210327117A1 (en) 2021-10-21
EP3912138A1 (en) 2021-11-24
KR20230173217A (ko) 2023-12-26
US20200234482A1 (en) 2020-07-23
CN113272870A (zh) 2021-08-17
US11393152B2 (en) 2022-07-19
US11049310B2 (en) 2021-06-29
US11568589B2 (en) 2023-01-31
US20220284654A1 (en) 2022-09-08
KR20210120014A (ko) 2021-10-06

Similar Documents

Publication Publication Date Title
KR102616010B1 (ko) 포토리얼리스틱 실시간 인물 애니메이션을 위한 시스템 및 방법
US11861936B2 (en) Face reenactment
US11114086B2 (en) Text and audio-based real-time face reenactment
US11727617B2 (en) Single image-based real-time body animation
KR102605077B1 (ko) 모바일 디바이스에서 사실적인 머리 회전들 및 얼굴 애니메이션 합성을 위한 방법들 및 시스템들
KR102509666B1 (ko) 텍스트 및 오디오 기반 실시간 얼굴 재연

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
A107 Divisional application of patent