KR20210117304A - 모바일 디바이스에서 사실적인 머리 회전들 및 얼굴 애니메이션 합성을 위한 방법들 및 시스템들 - Google Patents

모바일 디바이스에서 사실적인 머리 회전들 및 얼굴 애니메이션 합성을 위한 방법들 및 시스템들 Download PDF

Info

Publication number
KR20210117304A
KR20210117304A KR1020217026037A KR20217026037A KR20210117304A KR 20210117304 A KR20210117304 A KR 20210117304A KR 1020217026037 A KR1020217026037 A KR 1020217026037A KR 20217026037 A KR20217026037 A KR 20217026037A KR 20210117304 A KR20210117304 A KR 20210117304A
Authority
KR
South Korea
Prior art keywords
source
target
video
actor
output video
Prior art date
Application number
KR1020217026037A
Other languages
English (en)
Other versions
KR102605077B1 (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
Priority claimed from US16/251,472 external-priority patent/US11049310B2/en
Priority claimed from US16/251,436 external-priority patent/US10789453B2/en
Priority claimed from US16/509,370 external-priority patent/US11114086B2/en
Priority claimed from US16/662,743 external-priority patent/US11410364B2/en
Application filed by 스냅 아이엔씨 filed Critical 스냅 아이엔씨
Priority to KR1020237039557A priority Critical patent/KR102686099B1/ko
Publication of KR20210117304A publication Critical patent/KR20210117304A/ko
Application granted granted Critical
Publication of KR102605077B1 publication Critical patent/KR102605077B1/ko

Links

Images

Classifications

    • G06K9/6271
    • 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
    • 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/174Facial expression recognition
    • G06V40/176Dynamic expression
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2413Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
    • G06F18/24133Distances to prototypes
    • G06K9/00315
    • G06K9/4623
    • 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
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/06Topological mapping of higher dimensional structures onto lower dimensional surfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • G06V10/443Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
    • G06V10/449Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
    • G06V10/451Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters with interaction between the filter responses, e.g. cortical complex cells
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • 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/165Detection; Localisation; Normalisation using facial parts and geometric relationships
    • 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/174Facial expression recognition
    • 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/20081Training; Learning
    • 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
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20112Image segmentation details
    • G06T2207/20132Image cropping

Landscapes

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

Abstract

사실적인 머리 회전들 및 얼굴 애니메이션 합성을 위한 방법들 및 시스템들이 제공된다. 예시 방법은, 소스 액터의 얼굴 및 머리를 갖는 소스 비디오의 프레임들을 수신하는 단계를 포함할 수 있다. 상기 방법은 그 이후에, 소스 액터의 얼굴 표정들 및 머리의 위치들을 표현하는 소스 포즈 파라미터들의 세트들을 생성하는 단계로 진행할 수 있다. 상기 방법은, 타겟 인물의 타겟 얼굴 및 타겟 머리를 포함하는 적어도 하나의 타겟 이미지를 수신하는 단계, 타겟 얼굴에 연관된 타겟 아이덴티티 정보를 결정하는 단계, 및 소스 포즈 파라미터들의 세트들 및 타겟 아이덴티티 정보에 기반하여 출력 비디오를 생성하는 단계를 더 포함할 수 있다. 출력 비디오의 각 프레임은, 소스 액터의 얼굴 표정들 중 적어도 하나 및 소스 액터의 머리의 위치들 중 적어도 하나를 모방하기 위하여 수정된 타겟 얼굴의 이미지를 포함할 수 있다.

Description

모바일 디바이스에서 사실적인 머리 회전들 및 얼굴 애니메이션 합성을 위한 방법들 및 시스템들
본 개시는 일반적으로 디지털 이미지 처리에 관련한다. 보다 더 구체적으로, 본 개시는 모바일 디바이스들에서 사실적인 머리 회전들 및 얼굴 애니메이션 합성에 관련한다.
얼굴 애니메이션 합성은, 소스 비디오에서 소스 개인의 얼굴 표정을 타겟 이미지 또는 타겟 비디오에서 타겟 개인(individual)으로 전송하는 단계를 포함할 수 있다. 얼굴 애니메이션 합성은, 엔터테인먼트 쇼들, 컴퓨터 게임들, 비디오 대화들(video conversations), 가상 현실(virtual reality), 증강 현실(augmented reality) 등과 같은 많은 어플리케이션들에서 얼굴들의 애니메이션 및 조작들을 위하여 사용될 수 있다.
얼굴 애니메이션 합성을 위한 일부 현재 기법들은, 다른 얼굴 표정을 갖는 타겟 얼굴을 다시-렌더링(re-render)하기 위하여 모핑가능한(morphable) 얼굴 모델들을 활용한다. 모핑가능한 얼굴 모델을 갖는 얼굴의 생성이 빠를 수 있는 반면에, 생성된 얼굴은 포토리얼리스틱(photorealistic)하지 않을 수 있다. 얼굴 애니메이션 합성을 위한 일부 다른 현재 기법들은 시간-소모적이고, 보통 모바일 디바이스들에서 실-시간(real-time) 얼굴 애니메이션 합성을 수행하기에 적합하지 않을 수 있다.
이 섹션은, 발명을 실시하기 위한 구체적인 내용 섹션에서 아래에서 더 설명되는 단순화된 형식으로 개념들의 선택을 소개하기 위하여 제공된다. 본 과제의 해결 수단은, 청구된 주제의 필수적인 특징들 또는 주요 특징들을 식별하도록 의도되지 않고, 청구된 주제의 범위를 결정하는 수단으로서 사용되도록 의도되지 않는다.
본 개시의 일 실시 예에 따르면, 사실적인 머리(head) 회전들(turns) 및 얼굴(face) 애니메이션 합성(synthesis)을 위한 예시 방법은, 컴퓨팅 디바이스에서, 소스(source) 비디오의 프레임들을 수신하는 단계를 포함할 수 있다. 소스 비디오의 프레임들은, 소스 액터(actor)의 얼굴 및 머리를 포함할 수 있다. 상기 방법은, 컴퓨팅 디바이스에서, 소스 비디오의 프레임들에 기반하여 소스 포즈 파라미터들의 세트들을 생성하는 단계를 더 포함할 수 있다. 소스 포즈 파라미터들은, 파라메트릭 얼굴 표정 모델의 파라미터들 및 소스 액터의 얼굴 랜드마크들의 좌표들에 대응하는 소스 키 포인트들 중 적어도 하나를 포함할 수 있다. 소스 포즈 파라미터들의 세트들은, 소스 비디오의 프레임들에서 소스 액터의 얼굴 표정들 및 소스 액터의 머리의 위치들을 표현할 수 있다. 상기 방법은, 컴퓨팅 디바이스에서, 적어도 하나의 타겟 이미지를 수신하는 단계를 더 포함할 수 있다. 적어도 하나의 타겟 이미지는, 타겟 인물의 타겟 얼굴 및 타겟 머리를 포함할 수 있다. 타겟 인물은 소스 액터와 다를 수 있다. 상기 방법은, 적어도 하나의 타겟 이미지에 기반하여 타겟 인물의 타겟 얼굴과 연관된 타겟 아이덴티티 정보를 결정하는 단계를 더 포함할 수 있다. 타겟 아이덴티티 정보의 결정은, 타겟 아이덴티티 정보를 표현하는 실수 값 벡터를 출력하도록 구성된 뉴럴 네트워크에게 적어도 하나의 타겟 이미지를 제공하는 단계를 포함할 수 있다. 상기 방법은, 컴퓨팅 디바이스에서, 소스 포즈 파라미터들의 세트들 및 타겟 아이덴티티 정보에 기반하여 출력 비디오를 생성하는 단계를 더 포함할 수 있다. 출력 비디오의 각 프레임은, 타겟 얼굴의 이미지를 포함할 수 있다. 타겟 얼굴의 이미지는, 소스 액터의 얼굴 표정들 중 적어도 하나 및 소스 액터의 머리의 위치들 중 적어도 하나를 모방하기 위하여 소스 포즈 파라미터들의 세트들 중 적어도 하나에 기반하여 수정될 수 있다. 출력 비디오의 각 프레임은, 출력 비디오의 프레임들의 나머지로부터 독립적으로 생성될 수 있다. 출력 비디오의 적어도 하나의 프레임은, 출력 비디오의 적어도 하나의 이전에(previously) 생성된 프레임으로부터 추출된 정보에 기반하여 생성될 수 있다. 출력 비디오의 생성은, 출력 비디오의 프레임들을 생성하도록 구성된 뉴럴 네트워크에게 소스 포즈 파라미터들의 세트들 및 타겟 아이덴티티 정보를 제공하는 단계를 포함할 수 있다.
예시 실시 예에서, 출력 비디오의 생성 이전에, 소스 포즈 파라미터들은, 타겟 아이덴티티 정보에 기반하여 조정될 수 있다. 추가 예시 실시 예에서, 출력 비디오의 생성 이전에, 소스 비디오의 미리 결정된 수의 이웃하는 프레임들에서 얼굴 표정들을 표현하는 소스 포즈 파라미터들은, 평균될 수 있다. 또 다른 예시 실시 예에서, 출력 비디오의 생성 이전에, 소스 비디오의 적어도 하나의 프레임은, 추가 프레임을 획득하기 위하여 소스 포즈 파라미터들에 기반하여 크롭될 수 있다. 적어도 하나의 프레임을 추가 프레임으로 변환하기 위한 아핀(affine) 변환이 결정될 수 있다. 출력 비디오의 생성 이후에, 추가 아핀 변환은, 소스 비디오의 적어도 하나의 프레임에 대응하는 출력 비디오의 프레임에 적용될 수 있다. 추가 아핀 변환은, 아핀 변환의 역(inverse)일 수 있다.
또 다른 실시 예에 따르면, 사실적인 머리 회전들 및 얼굴 애니메이션 합성을 위한 시스템이 제공된다. 시스템은, 프로세서-실행가능한 코드들을 저장하는 메모리 및 적어도 하나의 프로세서를 포함할 수 있고, 적어도 하나의 프로세서는 프로세서-실행가능한 코드들의 실행에서 사실적인 머리 회전들 및 얼굴 애니메이션 합성들을 위한 위에서-언급된 방법의 동작들을 구현하도록 구성될 수 있다.
본 개시의 또 다른 측면에 따르면, 비일시적인 프로세서-판독가능한 매체가 제공되고, 이는 프로세서-판독가능한 명령어들을 저장한다. 프로세서-판독가능한 명령어들이 프로세서에 의하여 실행될 때, 명령어들은, 프로세서로 하여금 사실적인 머리 회전들 및 얼굴 애니메이션 합성을 위한 위에서-언급된 방법을 구현하도록 한다.
예시들의 새로운 특징들, 이점들, 및 추가적인 목표들은 다음의 설명에서 부분적으로 제시될 것이고 부분적으로 다음의 설명 및 수반하는 도면들의 설명에 대하여 통상의 기술자에게 명백하게 될 것이거나 예시들의 동작 또는 생산에 의하여 학습될 수 있다. 개념들의 이점들 및 목표들은, 부가된 청구항들에서 구체적으로 지적된 방법론들, 수단들, 및 조합들에 의하여 실현되고 달성될 수 있다.
실시 예들은 예시의 방법으로 도시되고, 수반되는 도면들의 그림들에 제한이지 않으며, 비슷한 참조들은 유사한 요소들을 지시한다.
도 1은, 예시 환경을 나타내는 블록 다이어그램이고, 사실적인 머리 회전들 및 얼굴 애니메이션 합성을 위한 방법은 예시 실시 예에 따라 구현될 수 있다.
도 2는, 예시 실시 예에 따라, 사실적인 머리 회전들 및 얼굴 애니메이션 합성을 위한 방법들을 구현하기 위한 컴퓨팅 디바이스의 예시 실시 예를 나타내는 블록 다이어그램이다.
도 3는, 예시 실시 예에 따라, 추론 스테이지(inference stage) 동안, 사실적인 머리 회전들 및 얼굴 애니메이션 합성을 위한 시스템에 의하여 수행된 단계들을 나타내는 블록 다이어그램이다.
도 4는, 예시 실시 예에 따라, 얼굴의 키 포인트들 및 소스 액터의 얼굴의 이미지를 나타낸다.
도 5는, 예시 실시 예에 따라, 타겟 액터의 이미지를 나타낸다.
도 6는, 예시 실시예에 따라, 타겟 액터의 얼굴의 이미지를 나타낸다.
도 7는, 예시 실시 예에 따라, 트레이닝 스테이지 동안, 사실적인 머리 회전들 및 얼굴 애니메이션 합성을 위한 시스템에 의하여 수행된 단계들을 나타내는 블록 다이어그램이다.
도 8는, 일 예시 실시 예에 따라, 사실적인 머리 회전들 및 얼굴 애니메이션 합성을 위한 시스템의 블록 다이어그램이다.
도 9는, 이미지들의 생성을 위한 뉴럴 네트워크를 트레이닝하는 동안 손실을 생성하기 위한 프로세스를 나타내는 흐름도이다.
도 10는, 예시 실시 예에 따라, 얼굴 키 포인트들의 세트의 이미지이다.
도 11는, 예시 실시 예에 따라, 얼굴 키 포인트들의 마스크를 나타낸다.
도 12는, 예시 실시 예에 따라, 사실적인 머리 회전들 및 얼굴 애니메이션 합성을 위한 방법을 나타내는 흐름도이다.
도 13는, 예시 실시 예에 따라, 사실적인 머리 회전들 및 얼굴 애니메이션 합성을 위한 방법을 나타내는 흐름도이다.
도 14는, 사실적인 머리 회전들 및 얼굴 애니메이션 합성을 위한 방법들을 구현하는 데 사용될 수 있는 예시 컴퓨터 시스템을 나타낸다.
실시 예들의 다음 상세한 설명은, 상세한 설명의 부분을 형성하는 수반하는 도면들에 대한 참조들을 포함한다. 이 섹션에서 설명된 접근법들은, 청구항들에 대한 선행 기술이 아니고, 이 섹션에서 포함에 의하여 선행 기술로 인정되지 않는다. 도면들은, 예시 실시예들에 따라 도시들을 나타낸다. "예시들"로 또한 여기서 참조되는 이 예시 실시 예들은, 본 주제를 실시하도록 통상의 기술자를 가능하게 하기에 충분히 상세히 설명된다. 실시 예들은, 결합될 수 있고, 다른 실시 예들은 활용될 수 있고, 또는 구조적인, 논리적인 및 동작적인 변화들은, 청구된 범위에서 벗어나지 않고 이루어질 수 있다. 다음 상세한 설명은, 그러므로, 한정하는 의미로 받아들여지지 않고, 범위는 첨부된 청구범위들 및 그 균등물들에 의하여 정의된다.
본 개시는, 사실적인 머리 회전들 및 얼굴 애니메이션 합성을 위한 시스템들 및 방법들에 관련한다. 본 개시에서 제공된 실시 예들은, 알려진 기술의 적어도 일부 이슈들을 해결한다. 본 개시는, 실시 예들이 클라우드-기반 리소스 또는 웹 서비스를 포함하는 접근법들로 확장될 수 있음에도 불구하고, 서버-측 컴퓨터를 이용한(server-side computational) 리소스들을 사용할 필요 또는 인터넷으로 연결 없이 및 실-시간으로, 스마트폰들, 태블릿 컴퓨터들, 또는 모바일 폰들과 같은 모바일 디바이스들에서 수행하도록 설계될 수 있다.
본 개시의 일부 실시 예들은, 제1 인물(이하 "소스 액터")의 소스 비디오를 취하는(take) 것, 및 입력으로 제2 인물(이하 "타겟 액터")의 타겟 포토들(또는 비디오)을 설정하는 것, 및 소스 액터의 머리 움직임들 및 얼굴 모방들로 타겟 액터의 애니메이션을 합성하는 것을 허용할 수 있다. 일반적으로, 본 개시의 시스템들 및 방법들은, 타겟 액터가 살아있는 것처럼 보이게 하고 소스 액터의 얼굴 표정들 및 움직임들을 모방하도록 한다. 방법들 및 시스템들은, 모바일 어플리케이션의 엔터테인먼트 유형에서 사용될 수 있고, 사용자는 셀피(selfie)를 촬영(take)하고 시각적 이펙트들을 적용하는 것 및 인물을 애니메이션하는 것의 시나리오를 선택한다. 시나리오들은, 다른 설정들 및 소스 액터 움직임들을 가지고, 이는 사용자 셀피로 전송된다. 결과 비디오는, 상이한 상황들 및 로케이션들(locations)에서 사용자를 특징으로 할 수 있다. 사용자는 그의 친구들과 결과 비디오를 공유할 수 있다. 결과 비디오는, 소셜 네트워크 서비스들(social networking services) 또는 메시징 어플리케이션들(messaging applications)에서 비디오 스티커들로 사용될 수 있다.
타겟 얼굴은, 소스 액터의 얼굴 표정들 및 소스 액터의 머리의 위치들의 실-시간 모방하는 것을 수행함으로써 실 시간으로 소스 얼굴의 얼굴 표정들에 의하여 조종(manipulate)될 수 있다. 일부 실시 예들은, 타겟 인물의 얼굴이 소스 액터의 얼굴 표정들 및 소스 액터의 머리의 위치들을 모방하는 타겟 비디오의 생성을 위한 산출 시간(computation time)을 실질적으로 감소하고, 모바일 디바이스에서 타겟 비디오의 이 생성을 수행하는 것을 허용할 수 있다.
본 개시는 다양한 기술들을 사용하여 구현될 수 있다. 예를 들어, 여기에서 설명된 방법들은, 마이크로프로세서들의 조합 또는 다른 구체적으로 설계된 ASICs(application-specific integrated circuits), 프로그래밍 가능 논리 소자들(programmable logic devices), 또는 이들의 임의의 조합들을 활용하는 하드웨어에 의하여 및/또는 컴퓨터 시스템에 실행하는 소프트웨어에 의하여 구현될 수 있다. 특히, 여기에서 설명된 방법들은, 컴퓨터-판독가능 매체 또는 디스크 드라이브와 같은 비-일시적인 저장 매체에 상주하는(residing) 일련의 컴퓨터-실행가능한 명령어들에 의하여 구현될 수 있다. 여기에서 개시된 방법들은, 모바일 디바이스, 개인 컴퓨터, 서버, 네트워크 노드 등과 같은 컴퓨팅 디바이스에 의하여 구현될 수 있는 것이 주목되어야 한다.
이 특허 문헌의 목적의 경우, 용어들 "또는" 및 "및"은, 그것들이 사용된 문맥에 의하여 명백하게 달리 의도되거나 달리 언급되지 않은 한, "및/또는"을 의미할 수 있다. "일(a)"은 달리 언급되거나 "하나 이상"의 사용이 명백하게 부적절하지 않은 한, "하나 이상"을 의미할 수 있다. The terms "comprise, comprising," "include," and "including" are interchangeable and not intended to be limiting. "포함하다(comprise)", "포함하는(comprising)", "포함시키다(include)", 및 "포함시키는(including)"의 용어들은 교환가능하며, 한정하도록 의도되지 않는다. 예를 들어, 용어 "포함하는"은, "포함하는, 그러나 이에 제한되지는 않는"을 의미하는 것으로 해석될 수 있다.
본 개시의 일 실시 예에 따르면, 사실적인 머리 회전들 및 얼굴 애니메이션 합성을 위한 예시 방법은, 컴퓨팅 디바이스에서, 소스 비디오의 프레임들을 수신하는 단계를 포함할 수 있다. 소스 비디오의 프레임들은, 소스 액터의 얼굴 및 머리를 포함할 수 있다. 상기 방법은, 컴퓨팅 디바이스에서, 소스 비디오의 프레임들에 기반하여 소스 포즈 파라미터들의 세트들을 생성하는 단계를 더 포함할 수 있다. 소스 포즈 파라미터들의 세트들은, 소스 비디오의 프레임들에서 소스 액터의 얼굴 표정들 및 소스 액터의 머리의 위치들을 표현할 수 있다. 상기 방법은, 컴퓨팅 디바이스에서, 적어도 하나의 타겟 이미지를 수신하는 단계를 더 포함할 수 있다. 적어도 하나의 타겟 이미지는, 타겟 인물의 타겟 얼굴 및 타겟 머리를 포함할 수 있다. 타겟 인물은 소스 액터와 다를 수 있다.
상기 방법은, 적어도 하나의 타겟 이미지에 기반하여 타겟 인물의 타겟 얼굴과 연관된 타겟 아이덴티티 정보를 결정하는 단계를 더 포함할 수 있다. 상기 방법은, 컴퓨팅 디바이스에서, 소스 포즈 파라미터들의 세트들 및 타겟 아이덴티티 정보에 기반하여 출력 비디오를 생성하는 단계를 더 포함할 수 있다. 출력 비디오의 각 프레임은, 출력 비디오의 적어도 하나의 프레임에서 타겟 얼굴의 이미지를 포함할 수 있다. 타겟 얼굴의 이미지는, 소스 액터의 얼굴 표정들 중 적어도 하나 및 소스 액터의 머리의 위치들 중 적어도 하나를 모방하기 위하여 소스 포즈 파라미터들의 세트들 중 적어도 하나에 기반하여 수정될 수 있다.
본 개시의 또 다른 실시 예에 따르면, 사실적인 머리 회전들 및 얼굴 애니메이션 합성을 위한 예시 방법은, 컴퓨팅 디바이스에서, 소스 비디오의 프레임들 및 소스 비디오를 수신하는 단계를 포함할 수 있다. 소스 비디오의 프레임들은, 소스 액터의 얼굴 및 머리를 포함할 수 있다. 상기 방법은, 컴퓨팅 디바이스에서, 소스 비디오의 프레임들에 기반하여 소스 키 포인트들의 세트들을 생성하는 단계를 더 포함할 수 있다. 소스 키 포인트들의 세트들은, 소스 비디오의 프레임들에서 소스 액터의 얼굴 표정들 및 소스 액터의 머리의 위치들을 표현할 수 있다. 상기 방법은, 컴퓨팅 디바이스에서, 타겟 비디오를 수신하는 단계를 더 포함할 수 있다. 타겟 비디오는, 타겟 인물의 타겟 얼굴 및 타겟 머리를 포함할 수 있다. 타겟 인물은 소스 액터와 다를 수 있다. 상기 방법은, 컴퓨팅 디바이스에서, 소스 키 포인트들의 세트들 및 타겟 비디오에 기반하여 출력 비디오를 생성하는 단계를 더 포함할 수 있다. 출력 비디오의 각 프레임은, 타겟 얼굴의 이미지를 포함할 수 있다. 타겟 얼굴의 이미지는, 소스 액터의 얼굴 표정들 중 적어도 하나 및 소스 액터의 머리의 위치들 중 적어도 하나를 모방하기 위하여 소스 키 포인트들의 세트들 중 적어도 하나에 기반하여 수정될 수 있다.
이제 도면들에 대하여 참조하면, 예시적인 실시 예들은 설명된다. 도면들은, 이상화(idealize)된 예시 실시 예들의 개략적인 도시들이다. 그러므로, 여기에서 논의된 예시 실시 예들은, 여기에서 제시된 특정한 도시들에 제한되는 것으로 이해되지 않아야 하며, 오히려 이 예시 실시 예들은 변경들을 포함할 수 있고 기술분야의 통상의 기술자들에게 명백할 것이기 때문에 여기에서 제시된 도시들과 다를 수 있다.
도 1은 예시 환경(100)을 나타내고, 사실적인 머리 회전들 및 얼굴 애니메이션 합성을 위한 방법이 실시될 수 있다. 환경(100)은, 컴퓨팅 디바이스(11O), 사용자(130), 및 클라우드-기반 컴퓨팅 리소스(170)(컴퓨팅 클라우드(170)으로도 참조됨)을 포함할 수 있다. 컴퓨팅 디바이스(110)는, 카메라(115) 및 그래픽 디스플레이 시스템(120)을 포함할 수 있다. 컴퓨팅 디바이스(110)는, 모바일 폰, 스마트폰, 또는 태블릿 컴퓨터와 같은 모바일 디바이스에 대하여 참조할 수 있다. 추가 실시 예들에서, 그러나, 컴퓨팅 디바이스(110)는, 개인 컴퓨터, 랩톱 컴퓨터, 넷북, 셋톱 박스, 텔레비전 디바이스, 멀티미디어 디바이스, 개인 휴대용 정보 단말기(personal digital assistant), 게임 콘솔, 엔터테인먼트 시스템, 인포테인먼트 시스템(infotainment system), 차량 컴퓨터(vehicle computer), 또는 임의의 다른 컴퓨팅 디바이스에 대하여 참조할 수 있다. 컴퓨팅 디바이스(110)는, 데이터 네트워크를 통하여 컴퓨팅 클라우드(170)로 통신적으로(communicatively) 연결될 수 있다. 클라우드-기반 컴퓨팅 리소스(170)는, 네트워크(예를 들어, 인터넷)에 걸쳐 접근 가능하고 및 원격지(remote location)에서 사용 가능한 컴퓨팅 리소스들(하드웨어 및 소프트웨어)를 포함할 수 있다. 클라우드-기반 컴퓨팅 리소스들은, 다수의 사용자들에 의하여 공유될 수 있고, 필요에 따라 동적으로 재-할당될 수 있다. 클라우드-기반 컴퓨팅 리소스들은, 컴퓨터 서버들의 컬렉션(collection)을 포함하는 하나 이상의 서버 팜들(farms)/클러스터들(clusters)을 포함할 수 있고, 컴퓨터 서버들은, 네트워크 스위치들 및/또는 라우터들과 함께-위치(co-locate)될 수 있다. 본 개시의 일부 실시 예들에서, 컴퓨팅 디바이스(110)는, 타겟 비디오(125)를 디스플레이하도록 구성될 수 있다. 타겟 비디오(125)는, 타겟 얼굴(140)를 포함하는 적어도 하나의 프레임을 포함할 수 있다. 일부 실시 예들에서, 타겟 비디오(125)는 단일 이미지를 포함할 수 있다. 일부 실시 예들에서, 타겟 비디오(125)는, 컴퓨팅 디바이스(125)가 통신적으로 연결된 클라우드-기반 컴퓨팅 리소스에 또는 컴퓨팅 디바이스(125)의 메모리 저장소에 미리 기록되고 저장될 수 있다.
특정 실시 예들에서, 컴퓨팅 디바이스(110)는, 예를 들어, 카메라(115)를 통하여, 소스 비디오를 캡처하도록 구성될 수 있다. 소스 비디오는, 사용자(130)의 적어도 얼굴(소스 얼굴로도 참조됨)을 포함할 수 있다. 일부 다른 실시 예들에서, 소스 비디오는, 컴퓨팅 클라우드(170)에 또는 컴퓨팅 디바이스(110)의 메모리 저장소에 저장될 수 있다.
일부 다른 실시 예들에서, 여러 타겟 비디오들 또는 이미지들은, 컴퓨팅 클라우드(170)에서 또는 컴퓨팅 디바이스(110)의 메모리에 미리 기록되고 저장될 수 있다. 사용자는, 타겟 비디오 또는 이미지를 조정하는 데 사용되기 위하여 소스 비디오들 중 하나 및 조정되기 위하여 타겟 비디오 또는 이미지를 선택할 수 있다. 본 개시의 다양한 실시 예들에 따르면, 컴퓨팅 디바이스(110)는, 사용자(130)의 얼굴 표정들의 파라미터들을 추출하기 위하여 소스 비디오를 분석하도록 구성될 수 있다. 컴퓨팅 디바이스(110)는, 소스 얼굴의 얼굴 표정의 파라미터들에 기반하여, 실시간으로 타겟 얼굴(140)을 소스 얼굴의 얼굴 표정을 반복하도록 하기 위하여 타겟 비디오(125)를 수정하도록 더 구성될 수 있다. 추가 실시 예들에서, 컴퓨팅 디바이스(110)는, 타겟 얼굴(140)을 사용자(130)의 스피치(speech)를 반복하도록 하기 위하여 타겟 비디오(125)를 수정하도록 더 구성될 수 있다.
본 개시의 일부 실시 예들에서, 컴퓨팅 디바이스는 사용자 입력을 수신하도록 구성될 수 있다. 사용자 입력은, 타겟 얼굴의 얼굴 파라미터들을 어떻게 제어하는지를 지시하는 하나 이상의 시나리오들을 포함할 수 있다. 시나리오는, 사용자(130)가 수정된 타겟 비디오(125)에서 보기를 원하는 타겟 얼굴(140)의 움직임들의 유형들 및 얼굴 표정들의 유형들의 시퀀스를 포함할 수 있다. 사용자 입력은 또한, 수정된 비디오를 생성하기 위한 컴퓨팅 디바이스들의 유형들(예를 들어, 모바일 디바이스 또는 데스크톱)을 지시하는 환경 변수들을 포함할 수 있다.
본 개시의 일부 추가 실시 예들에서, 컴퓨팅 디바이스(110) 또는 클라우드-기반 컴퓨팅 리소스(170)는, 사용자(130)의 하나 이상의 이미지들을 저장할 수 있다. 이미지들은, 사용자(130)의 얼굴을 포함할 수 있다. 이미지들은 또한, 다른 컨디션들 하에서 촬영(take)된 비디오들의 세트 또는 사진들의 세트를 포함할 수 있다. 예를 들어, 사진들 및 비디오들은, 다른 조명 컨디션들에서 및 사용자(130)의 얼굴에 대한 다른 각도들로부터 촬영(take)될 수 있다. 일부 실시 예들에서, 컴퓨팅 디바이스(110) 또는 컴퓨팅 클라우드(170)는, 또 다른 개인(예를 들어, 사용자(130)의 친구 또는 사용자(130)의 가장 좋아하는 유명인)의 하나 이상의 이미지들을 저장할 수 있다.
본 개시의 일부 실시 예들에 따르면, 컴퓨팅 디바이스(110) 또는 클라우드-기반 컴퓨팅 리소스(170)는, 사용자(130)의 얼굴 파라미터들을 추출하기 위하여 사용자(130)의 저장된 이미지들을 분석하도록 구성될 수 있다. 컴퓨팅 디바이스(110) 또는 클라우드-기반 컴퓨팅 리소스(170)는, 사용자(130)의 얼굴 파라미터들에 기반하여, 타겟 비디오(125)에서 타겟 얼굴(140)을 사용자(130)의 얼굴로 대체함으로써 타겟 비디오(125)를 수정하도록 더 구성될 수 있다.
유사하게, 컴퓨팅 디바이스(110) 또는 클라우드-기반 컴퓨팅 리소스(170)는, 또 다른 개인(예를 들어, 사용자(130)의 친구 또는 사용자(130)의 가장 좋아하는 유명인)의 얼굴 파라미터들을 추출하기 위하여 사용자(130)의 저장된 이미지들을 분석하도록 구성될 수 있다. 컴퓨팅 디바이스(110)는, 개인의 얼굴 파라미터들에 기반하여, 타겟 비디오(125)에서 타겟 얼굴(140)을 개인의 얼굴로 대체함으로써 타겟 비디오(125)를 수정하도록 더 구성될 수 있다. 일부 실시 예들에서, 컴퓨팅 디바이스(110) 또는 클라우드-기반 컴퓨팅 리소스(170)는, 타겟 얼굴을 또 다른 개인 또는 사용자(130)의 얼굴로 대체하는 동안, 타겟 얼굴(140)의 얼굴 표정을 변화되지 않게 유지하도록 구성될 수 있다. 도 2에서 나타난 예시에서, 컴퓨팅 디바이스(110)는, 하드웨어 구성 요소들 및 소프트웨어 구성 요소들 모두를 포함한다. 특히, 컴퓨팅 디바이스(110)는, 디지털 이미지들을 획득하기 위하여 스캐너 또는 카메라(115) 또는 임의의 다른 이미지-캡처링 디바이스를 포함한다. 컴퓨팅 디바이스(110)는, 프로세서 모듈(210)에 의하여 수행될 때, 여기에서 설명된 바에 따라 컴퓨팅 디바이스(200)로 하여금 사실적인 머리 회전들 및 얼굴 애니메이션 합성을 위한 방법들 중 적어도 일부 단계들을 수행하도록 하는, 프로세서-판독 가능한(기계-판독 가능한(machine-readable)) 명령어들 또는 코드들 및 소프트웨어 구성 요소들을 저장하기 위한 저장 모듈(215) 및 프로세서 모듈(210)을 더 포함할 수 있다.
컴퓨팅 디바이스(110)는, 사실적인 머리 회전들 및 얼굴 애니메이션 합성을 위한 시스템(220)을 더 포함할 수 있고, 시스템(220)은 차례로(in turn), 하드웨어 구성 요소들(예를 들어, 분리된 프로세싱 모듈 및 메모리), 소프트웨어 구성 요소들, 또는 이들의 조합을 포함할 수 있다. 사실적인 머리 회전들 및 얼굴 애니메이션 합성을 위한 시스템(220)은, 여기에서 설명된 바에 따라 사실적인 머리 회전들 및 얼굴 애니메이션 합성을 수행하도록 구성될 수 있다. 사실적인 머리 회전들 및 얼굴 애니메이션 합성을 위한 시스템(220)은, 도 4에 대한 참조와 함께 아래에서 보다 더 상세히 설명된다.
사실적인 머리 회전들 및 얼굴 애니메이션 합성을 위한 시스템(220)은, 머신 러닝 모델들을 포함하고, 트레이닝 스테이지를 도시하는 도 7 및 추론 스테이지를 도시하는 도 3에 대한 참조와 함께 더 설명된다.
도 3은, 추론 스테이지 동안 사실적인 머리 회전들 및 얼굴 애니메이션 합성을 위한 시스템(220)에 의하여 수행된 단계들을 나타내는 블록 다이어그램이다. 타겟 액터의 '애니메이션된(animated) 머리' 생성의 프로세스는, 여러 스테이지들로 분리될 수 있다:
1 - 타겟 액터들 및 소스의 입력 비디오들 및 사진들을 전처리함. 전처리는, 리사이징(resizing) 및 크롭핑(cropping)과 같은 이미지 처리 기초요소들(primitives)뿐만 아니라, 시맨틱 분할(semantic segmentation) 및 이미지 워핑(image warping)과 같은 보다 더 정교한 기법들도 포함할 수 있다.
2 - 소스 액터의 머리 포즈 및 얼굴 표정들을 인코딩함. 인코딩은, 일부 파라매트릭 얼굴 표정 모델의 파라미터들의 시퀀스 또는 각 프레임에서 얼굴 키 포인트들의 시퀀스를 포함할 수 있다. 이 인코딩은, "포즈 인코딩"으로 여기 이후에 불린다.
3 - (선택적) 일부 경우들(예를 들어, 얼굴 랜드마크들)에서, 이전 단계에서 계산된 인코딩은, 소스 액터에 관한 일부 아이덴티티 정보를 포함할 수 있고, 이는 바람직하지 않고 제거되는 것이 필요하다. 그러므로, 시스템을 위한 선택적 단계는, 포즈 인코딩 적응(adaptation)이다. 이는 소스 액터로부터 포즈 인코딩에서 아이덴티티 정보는 타겟 액터의 것으로 대체되는 것을 의미한다. 분명하게, 이 동작을 행하는 동안, 인코딩(얼굴 표정 및 머리 포즈)에서 포함(contain)된 다른 정보는 보존(preserve)된다. 또한, "프레임별(frame-by-frame)" 생성 전략의 경우에서, 시스템은 인코딩들의 템포럴 코히런스(temporal coherence)을 강요하고, 그래서 시스템은 포즈 인코딩 안정화에 의하여 수행된다.
포즈 인코딩에서 아이덴티티 정보를 대체하기 위하여, 다시 말해(namely) 소스 액터의 얼굴 랜드마크들을 타겟 액터의 것으로, 2D 이미지들에 대하여 동작되는 컨볼루션 뉴럴 네트워크(Neural Network; NN)가 트레이닝된다. 컨볼루션 NN은, 3D 모핑가능한 모델(3DMM)로 생성된 합성한 데이터(synthetic data)에 대하여 트레이닝된다.
4 - "임베더(Embedder)"라고 불리는 모델을 사용함으로써 타겟 액터 아이덴티티를 인코딩함. 임베더는, 타겟 액터의 머리를 갖는 사진들의 세트(또는 비디오)에 기반하여 임베딩(embedding)을 출력한다. 임베딩은, 실수 값(real valued) 일-차원 벡터, 타겟 액터의 얼굴 텍스처를 갖는 이미지, 또는 액터의 아이덴티티에 관한 정보를 포함(contain)하는 임의의 다른 구조(structure)에 의하여 표현될 수 있다. 각 프레임은, 두 전략들 중 하나로 임베더에게 피딩될 수 있다: (a) 최종 임베딩이 각 출력의 일부 집합 함수로 계산되도록 독립적으로; (b) 그것이 임베더가 가변 사이즈들의 입력을 취하는 것이 가능한 것이 요구하도록 함께.
5 - "생성기(Generator)"라고 불리는 모델을 사용하여 타겟 액터의 '애니메이션된 머리'를 생성함. 생성기는, 아이덴티티 임베딩 및 포즈 인코딩을 취하고(take), 타겟 얼굴 움직임들을 생성한다. 생성은, (다음 프레임이 모든 이전으로부터 독립적으로 생성될 때) "프레임별" 전략으로 행해질 수 있을 뿐만 아니라, 이것은 다음 프레임을 생성하는 동안 모든 이전에 생성된 프레임들을 고려할 수도 있다.
더욱이, 생성기는, 3DMM으로 렌더링될 수 있는 결과 이미지의 제1 근사치(approximation)를 입력으로서 취할(take) 수 있다.
일부 실시 예들에서, 아이덴티티 임베딩은, 한 번만 미리 계산되고 모든 프레임들의 생성을 위해 사용될 수 있다. 이는, "생성기"가 프레임을 생성할 때마다 "임베더"의 사용을 피하는 것을 허용할 수 있다.
예시: (도 4, 왼쪽 이미지(400)에서 나타난) 소스 액터의 얼굴의 이미지는, (도 4, 오른쪽 이미지(450)에서 나타난) 키 포인트들을 추출하도록 처리된다. 도 5는, 임베딩을 수신하기 위하여 임베더 네트워크에게 피딩되는 타겟 액터의 이미지(500)를 도시한다. 추출된 키 포인트들 및 임베딩은, 소스 액터(도 4, 왼쪽)와 같은 감정들(emotions)을 표현하는 (도 6에서 나타난) 타겟 액터의 얼굴(600)의 이미지를 출력하는 생성기에 입력들로 사용된다. 도 7은, 트레이닝 스테이지 동안 시스템(220)에 의하여 수행된 단계들을 나타내는 블록 다이어그램이다. 모델을 트레이닝하기 위하여, 데이터셋은, 말하는 사람들의 비디오들 또는 사진들을 필요로 하는데, 여기에서 각 화자(speaker)에 대해 적어도 두 개의 사진들(또는 비디오 프레임들)이 존재한다.
트레이닝 스테이지의 단계별 설명은, 1과 동일한 배치(batch) 사이즈를 가정한다. 이는 보다 더 큰 배치들로 분명하게 일반화될 수 있다. 단계 1에서, 우리는 입력 액터의 N(N>=2)개의 랜덤 사진들을 취하고(take), 추론 스테이지에서와 같은 방식으로 사진들을 전처리한다. 단계 2는, 제1 사진을 사용하는 포즈 인코딩(pose encoding)의 계산을 포함한다. 단계 3은, 모든 다른 사진들을 사용하는 아이덴티티 임베딩의 계산을 포함한다. 단계 4에서, 단계 2 및 단계 3의 출력들은 생성기로 패스되고, 생성기는 제1 사진과 가능한 한 유사한 이미지를 생성한다. 단계 5에서, 제1 사진은 트레이닝 과정(procedure)에서 기본 참(ground truth)으로 고려된다. 생성된 이미지와 함께, 제1 사진은, 현재 단계에서 손실 값을 추정하는 손실 계산 블록으로 패스된다. 단계 6에서, 이전 단계에서 계산된 손실은, 트레이닝 단계 동안 최소화된다. 선택적 단계 7에서, 트레이닝 데이터셋이 분리된 사진들만으로 구성되고 비디오들로는 구성되지 않으면, 트레이닝의 추가 단계는, 네트워크로 하여금 비디오를 생성하는 과정에서 일관된(coherent) 프레임들을 생성하도록 하는 것을 목표로 하여 수행된다.
엄격히 말하면, 전체 시스템은 트레이닝되지 않는다. 트레이닝 가능한 가중치들은, 임베더, 생성기에, 및 아마(possibly) 손실 계산 블록에 위치된다.
도 8은, 일 예시 실시 예에 따라, 사실적인 머리 회전들 및 얼굴 애니메이션 합성을 위한 시스템(220)의 블록 다이어그램이다. 사실적인 머리 회전들 및 얼굴 애니메이션 합성을 위한 시스템(220)은, 이미지 전처리 모듈(805), 얼굴 및 머리 포즈 인코더(810), 포즈 인코딩 적응 및 안정화 모듈(815), 인물 아이덴티티 임베더(820), 및 애니메이션된 머리 생성기(825)를 포함할 수 있다. 모듈들(805 내지 825)은, 컴퓨팅 디바이스(110), 서버 등과 같은 하드웨어 디바이스들과 함께 사용을 위한 소프트웨어 구성 요소들로 구현될 수 있다.
이미지 전처리 모듈(805)은, 입력 이미지들을 취할(take) 수 있고, 입력 이미지들의 시맨틱들을 변화시키지 않는 리스케일링(rescaling), 크롭핑(cropping), 분할(segmentation) 및 임의의 다른 동작을 입력 이미지들에 적용할 수 있다. 예시 실시 예에서, 이미지는 인물의 머리가 이미지의 중심(center)에 위치되는 방식으로 크롭될 수 있고, 그 이후에 배경 픽셀들은 미리 결정된 상수 값으로 교체될 수 있다. 그렇게 함으로써(Thereby), 모델은, 입력 이미지로부터 인물에 초점을 맞추고 불필요한 세부사항들을 무시할 수 있다. 분리된 시맨틱 분할 NN 모델은, 두 클래스들로 픽셀들을 분류하는 데 사용될 수 있다: 배경 및 인물.
얼굴 및 머리 포즈 인코더(810)는, 액터의 사진을 취하고(take), 예를 들어 일부 파라매트릭 얼굴 표정 모델의 파라미터들의 시퀀스 또는 각 프레임에서 얼굴 키 포인트들의 시퀀스로, 일부 포즈 인코딩을 출력한다. 예시 실시 예에서, 78개 얼굴 키 포인트들의 세트는 사용되지만(도 10 참조), 얼굴 키 포인트들의 임의의 세트는 사용될 수 있다. 키 포인트들은, (눈썹의 코너와 같은) 특정한 얼굴 포인트들을 설명하는 2D 포인트들이다. 얼굴 키 포인트들의 3-채널(three-channel) 마스크(도 11 참조)는, 각 프레임에 대하여 사용된다. 보다 더 구체적으로, 키 포인트들은 소스 비디오의 각 프레임에서 추출되고, 그 이후에 소스 액터의 머리의 일부 바운딩 박스(bounding box)(픽셀들에서 고정된 너비 및 높이)는 고정되고 이 치수들은, 키 포인트들 마스크를 내부에 그리는 데 사용된다. (RGB 이미지로 표현된) 2D 얼굴 랜드마크들에 추가로, 포즈는, 얼굴 부분들(머리카락, 얼굴, 상체), 깊이 지도, 및 3D 얼굴 랜드마크들을 표현하는 분할 마스크들에 의하여, 다차원 이미지의 분리된 채널에서 윤곽들로 표현되고, 히트맵(2D 가우시안에 의하여 표현된 각 포인트)으로 표현되며, RGB 투영된 정규화된 좌표 코드(projected normalized coordinate code; PNCC), 3DMM을 통하여 코얼스 근사(coarse approximation)로 RGB 이미지로서 렌더링된, 얼굴 랜드마크들과 함께 인코딩될 수 있다. 머리 보기(view) 및 얼굴 표정은, 머리 보기에 대한 각도들(요, 피치, 로) 및 얼굴 표정에 대한 액션 유닛들(action units; AU)을 사용함으로써 분리적으로 인코딩될 수 있다.
포즈 인코딩 적응 및 안정화 모듈(815)는, 포즈 인코딩 및 안정화를 수행한다. 포즈 인코딩은, 감정(emotion)들 및 머리 오리엔테이션뿐만 아니라, 시스템이 전송(transfer)을 원하지 않을 수 있는 (눈들 사이의 거리, 입의 너비 등과 같은) 일부 아이덴티티 정보도 포함(contain)할 수 있다. 이를 고정하기 위하여, 포즈 인코딩 적응이 수행되고, 이는 소스 액터로부터 타겟 액터로 인코딩에서 아이덴티티 정보를 대체한다. 예시 실시 예에서, 이는 소스 액터의 얼굴 랜드마크들에 3DMM을 맞추고(fit) 소스 액터의 아이덴티티 파라미터들을 타겟 액터의 아이덴티티 파라미터들로 대체함으로써 수행된다. 이후에, 소스 액터의 키 포인트들은 2D로 다시 투영된다. 2D에서 직접 아이덴티티 정보를 대체하도록 NN을 트레이닝하는 것도 가능하다. NN은, 3DMM과 함께 생성된 합성한 데이터에 대하여 트레이닝될 수 있다. 이 작업에 적합한 NN들의 유형들 중 하나는, 입력으로 취해진(taken) (히트맵으로 표현되는) 2D 랜드마크들을 갖고 출력으로 (히트맵으로 표현되는) 2D 랜드마크들을 생산하는 아키텍처와 같은 U-넷(U-net)일 수 있고, 출력은 기존 2D 랜드마크들 표현으로 디코딩될 수 있다.
포즈 인코딩 적응은, 여러 방식들로 수행될 수 있다. 가능한 접근법들 중 하나는, 소위 디포메이션 트랜스퍼(deformation transfer)이다. 이 접근법을 사용하여, 타겟 비디오 및 소스 비디오를 위한 중립적인(neutral) 프레임이 제공될 수 있다. 모든 프레임들에 대하여, 메시(mesh)는, 키 포인트들에 기반하여 빌드(build)될 수 있다. 디포메이션 트랜스퍼는, 중립적인 삼각형 메시(triangle mesh)에 현재 프레임에서 소스 삼각형 메시에 의하여 전시(exhibit)되는 변형을 적용할 수 있다. 소스 비디오의 변환은, 메시에서 삼각형들의 수가 K일 때, 소스 메시 S1, ?? SK에서 각 삼각형에 대하여 아핀 변환의 세트로 정의될 수 있다. 각 프레임에 대하여, 타겟 메시 T1, ?? TK에서 삼각형들의 아핀 변환이 산출(compute)될 수 있다. Si - Ti의 프로베니우스 놈들(Frobenius norms)의 합을 최소화하는 변환은, 또한 수행될 수 있다. 추가적으로, 두 삼각형들이 공통의 꼭지점을 가지면, 아핀 변환은 같은 위치에서 변환을 수행한다.
분리된 이미지들뿐만 아니라 전체 비디오도 생성되도록 의도되기 때문에, 분리된 프레임들 간에 포즈 인코딩의 템포럴 코히런스(temporal coherency)는 지켜져야 한다. 예시 실시 예에서, 이는 슬라이드 윈도우를 사용하여 각 랜드마크 좌표를 평균함으로써 수행된다.
인물 아이덴티티 임베더(820)는, 타겟 액터의 머리를 갖는 사진들의 세트(오직 하나의 사진, 또는 말하는 타겟 액터를 갖는 비디오로부터의 모든 프레임들)를 취하고(take), 생성기로 패스하기 위하여 실수 값 임베딩(real valued embedding)을 생산(produce)한다.
종래의 NN은, 타겟 액터의 머리의 하나의 3-채널 사진을 취하고(take) 일-차원적인 실수 값 임베딩을 생산하는 데 사용된다. 임베딩은, 타겟 액터의 각 사용 가능한 사진에 적용될 수 있다. 최종 임베딩은, 각 프레임에 대한 모든 임베딩들을 평균함으로써 산출된다.
애니메이션된 머리 생성기(825)("생성기")는, 입력으로 포즈 인코딩 및 아이덴티티 임베딩을 수신할 수 있다. 애니메이션된 머리 생성기는, 타겟 액터의 사실적이고 그럴듯하게-보이는(plausible-looking) 머리의 프레임 시퀀스를 생성할 수 있고, 이는 움직이고 소스 액터로부터 추출된 감정들을 표현(express)할 수 있다. 예시 실시 예에서, 각 프레임은 독립적으로 생성된다. 종래의 NN은, 하나의 3-채널 사진을 출력하는 데 사용된다. 이 접근법은, 다음의 프레임이 이전에 생성된 것을 고려하도록 프레임들을 생성하기 위하여 수정될 수 있다. 이는, 예를 들어, 애니메이션된 머리 생성기(825)에게 각 단계에서 이전에 생성된 프레임들을 패스함으로써, 행해질 수 있다. 대안적으로, ConvLSTM/ConvGRU는, RNN 패션(fashion)에서 비디오를 생성하는 데 활용될 수 있다. 추가로, 애니메이션된 머리 생성기(825)는, 이것이 보다 더 사실적인 고해상도 이미지들을 생성하도록 코얼스-투-파인(coarse-to-fine) 아키텍처를 가질 수 있고, 이는 애니메이션된 머리 생성기(825)는 낮은 해상도이지만 필요한 이미지들을 생성하도록 각각의 중간 출력들이 트레이닝되는, 다수의 중간 출력들을 가질 수 있는 것을 의미한다.
키 포인트들을 갖는 임의의 물체는, 본 개시의 시스템을 사용하여 애니메이션될 수 있다. 일반적으로, 얼굴의 일부 부분들은, 생성하기에 보다 더 어려울 수 있고, 그것들이, 예를 들어, 눈들 및 입이, 보다 더 상세하기(detailed) 때문이다. 전반적인 이미지 품질은, 눈들 및 입이 얼굴의 나머지로부터 독립적으로 생성되면 개선될 수 있다. 얼굴 랜드마크들 정보를 사용하여, 얼굴의 이 부분들은, 소스 비디오의 프레임들로부터 추출될 수 있다. 얼굴의 일부를 제외하고(apart from) 눈들 및 입의 생성들은, 네트워크 아키텍처에서 임의의 변화들을 필요하게 만들지 않고, 같은 모델이 사용될 수 있다. 눈들 및 입이 고해상도로 독립적으로 생성된 후에, 눈들 및 입은 얼굴 랜드마크들을 사용하여 얼굴로 되돌아가 혼합(blend)될 수 있다.
모델을 트레이닝하기 위하여, 세 개의 손실 함수들까지 공동으로(jointly) 사용된다.
a) 제1 함수는 소위 "지각적인(perceptual)" 손실 함수이다. 이는, 이미지들에 기반하여 일부 예측들을 하기 위하여 미리 트레이닝된 다수의 네트워크들을 요구한다. 이러한 네트워크들은, 입력 이미지들로부터 실수-값(real-valued) 하이-레벨(high-level) 특징들을 추출하는 것을 이미 가능한 것이 예상된다. 특징들은 생성된 및 기본 참 샘플들(generated and ground truth samples)에 대하여 계산되고, 그 이후에 그것들 간에 일부 회귀 손실이 계산된다.
b) 제2 손실은 적대적(adversarial)이다. 이는 하나의 추가 네트워크도 요구하지만, 지각적인 손실 함수에서 네트워크들과 대조적으로, 추가 네트워크는 미리 트레이닝되는 것이 필요하지 않다. "식별기(Discriminator)"로 불리는 NN는, 위에서 설명된 파이프라인에서 메인 네트워크들과 공동으로 트레이닝된다. 식별기는 생성된 및 기본 참 샘플들을 구별하도록 트레이닝한다. 적대적인 손실은 그 자체가 "식별기"를 속이는 것을 시도하도록 "생성기" 네트워크를 강요한다.
"식별기" 및 "생성기"는, 생성된 샘플들이 실제 샘플들과 구별할 수 없게 되도록 초래하는 2-플레이어 게임(two-player game)을 한다.
c) 제3 손실도 적대적이다. 이전 손실은 각 생성된 프레임의 그럴듯함(plausibility)을 분리적으로 강요하는 것을 목표한다. 그러나, 최종 목표는 프레임들의 시퀀스인 비디오를 생성하는 것이다. 이러한 생성된 프레임들은, 서로와 일관적(coherent)이도록 강요된다. 이러기 위하여, 소위 "조건부 비디오 식별기(conditional video discriminator)"가 사용된다. 이는, 입력으로 실제 및 생성된 비디오들로부터 다수의 결과적인(consequential) 비디오 프레임들을 취하고(take), 가짜 비디오들과 실제 비디오들을 구별하도록 트레이닝한다.
시스템의 최종 손실 함수는, "지각적인" 및 적대적인 손실들 모두의 가중합(weighted sum)으로 계산된다.
기본(basic) 손실 함수는, 보다 더 고급(advanced) 손실 함수로 대체될 수 있다. 손실 함수는 공식들에 의하여 설명될 수 있다:
Figure pct00001
이 때, Gloss는 생성기 손실 및 Dloss는 식별기 손실, x는 생성된 이미지, 및 c는 생성된 이미지가 조절된(conditioned) 이미지의 얼굴 랜드마크들, 및 e는 타겟 액터의 임베딩이다.
트레이닝 데이터에서 비디오들이 없으면, "조건부 비디오 식별기 손실"이 사용될 수 없지만, 프레임들 생성에서 일관성은 여전히 필요로 된다. 그래서, 이러한 컨디션에서, 하나 이상의 손실이 이전 단락으로부터 손실들에 추가될 때, 트레이닝의 다음 단계가 수행된다. 포즈 인코딩 및 대응하는 생성된 프레임들은 취해지고(take) 포즈 인코딩은 일부 랜덤 노이즈로 경미하게(slightly) 변화되고, 그 이후에 이 포즈 인코딩에 대한 프레임이 생성된다. 그 이후에, 생성된 프레임들 간에 차이가 생성되고 손실로서 더 처리된다(further treated).
도9는, 이미지들의 생성을 위한 뉴럴 네트워크를 트레이닝하는 동안 손실을 생성하기 위한 프로세스(900)을 나타내는 흐름도다. 트레이닝의 일부 단계들에서, 마스킹된(masked) 손실이, 예를 들어, 미리 트레이닝된 분할 모델에 의하여 획득된 마스크에 의하여 표현된 관심 영역에서만 산출되는 생성된 및 기본 참 이미지들 간에 절대차(absolute difference)가, 사용될 수 있다.
y가 기본 참 이미지로부터 (예를 들어, 도 9에서 나타난 미리 트레이닝된 컨볼루션 뉴럴 네트워크(VGG-16)와 같은) 미리 트레이닝된 네트워크에 의하여 추출된 특징들의 컬렉션(collection)이고
Figure pct00002
가 생성된 이미지로부터 미리 트레이닝된 네트워크에 의하여 추출된 특징들의 컬렉션일 때 지각적인 손실은, 다음의 공식에 의하여 결정될 수 있다:
Figure pct00003
x가 생성된 이미지이고 c가 예를 들어, 얼굴 키 포인트들 등과 같은 컨디셔닝을 위해 사용된 데이터일 때 적대적인 손실은, 다음의 공식들에 의하여 결정될 수 있다:
Figure pct00004
결과 손실은, 프레임들의 시퀀스에 대한 지각적인 손실, 적대적인 손실, 및 적대적인 손실의 가중합이다:
Figure pct00005
도 8에 대하여 다시 참조하면, 이미지 후처리 모듈(830)은, 소스 비디오에서 조절된(conditioned) 사실적인 머리 회전들을 생성하는 데 사용될 수 있다. 소스 비디오의 각 프레임은, 얼굴 랜드마크 위치들에 기반하여 크롭될 수 있다. 크롭핑은, 얼굴이 이미지의 정확히 중심에 나타나는 방식으로 수행될 수 있다. 이미지는, 그 이후에 뉴럴 네트워크로 패스될 수 있다. 이 단계는, 프레임으로 전체 얼굴을 맞추는 것을 허용한다. 뉴럴 네트워크를 위한 입력으로 소스 비디오의 프레임들의 이 변환은, 아핀 변환으로 여기서 또한 참조된다. 역(reverse) 아핀 변환은, 뉴럴 네트워크에 의하여 제공된 출력에 적용될 수 있다. 역 변환의 단계는, 다른 프레임들에서 다른 스케일을 가지는 머리의 문제를 해결할 수 있다. 다른 스케일을 갖는 문제는, 크롭핑이 각 프레임에 대하여 독립적으로 산출되기 때문에 발생할 수 있다.
도 12는, 예시 실시 예에 따라, 사실적인 머리 회전들 및 얼굴 애니메이션 합성을 위한 방법(1200)을 나타내는 흐름도이다. 상기 방법(1200)은, 컴퓨팅 디바이스(110)에 의하여 수행될 수 있다. 상기 방법(1200)은, 컴퓨팅 디바이스에서, 동작(1205)에서 소스 비디오 및 소스 비디오의 프레임들을 수신하는 단계를 포함한다. 소스 비디오의 프레임들은, 소스 액터의 얼굴 및 머리를 포함할 수 있다. 상기 방법(1200)은, 동작(1210)에서, 소스 포즈 파라미터들의 세트들을 생성하는 단계를 더 포함할 수 있다. 소스 키 포인트들의 세트들은, 컴퓨팅 디바이스에서, 소스 비디오의 프레임들에 기반하여 생성될 수 있다. 소스 포즈 파라미터들의 세트들은, 소스 비디오의 프레임들에서 소스 액터의 얼굴 표정들 및 소스 액터의 머리의 위치들을 표현할 수 있다. 상기 방법(1200)은, 동작(1215)에서, 컴퓨팅 디바이스에서, 타겟 이미지를 수신하는 단계를 더 포함할 수 있다. 타겟 이미지는, 타겟 인물의 타겟 얼굴 및 타겟 머리를 포함할 수 있다. 타겟 인물은 소스 액터와 다를 수 있다. 상기 방법(1200)은, 동작(1220)에서 출력 비디오를 생성하는 단계를 더 포함할 수 있다. 타겟 비디오는, 컴퓨팅 디바이스에서, 소스 포즈 파라미터들의 세트들 및 타겟 이미지에 기반하여 생성될 수 있다. 출력 비디오의 적어도 하나의 프레임은, 소스 액터의 얼굴 표정들 중 적어도 하나 및 소스 액터의 머리의 위치들 중 적어도 하나를 모방하기 위하여 소스 포즈 파라미터들의 세트들 중 적어도 하나에 기반하여 수정된 타겟 얼굴의 이미지를 포함할 수 있다.
도 13는, 예시 실시 예에 따라, 사실적인 머리 회전들 및 얼굴 애니메이션 합성을 위한 방법(1300)을 나타내는 흐름도이다. 상기 방법(1300)은, 컴퓨팅 디바이스(110)에서 수행될 수 있다. 상기 방법(1300)은, 컴퓨팅 디바이스에서, 동작(1305)에서 소스 비디오 및 소스 비디오의 프레임들를 수신하는 단계를 포함할 수 있다. 소스 비디오의 프레임들은, 소스 액터의 얼굴 및 머리를 포함할 수 있다. 상기 방법(1300)은, 동작(1310)에서 소스 키 포인트들의 세트들을 생성하는 단계를 더 포함할 수 있다. 소스 키 포인트들의 세트들은, 컴퓨팅 디바이스에서, 소스 비디오의 프레임들에 기반하여 생성될 수 있다. 소스 키 포인트들의 세트들은, 소스 비디오의 프레임들에서 소스 액터의 얼굴 표정들 및 소스 액터의 머리의 위치들을 표현할 수 있다. 상기 방법(1300)은, 동작(1315)에서, 컴퓨팅 디바이스에서, 타겟 비디오를 수신하는 단계를 더 포함할 수 있다. 타겟 비디오는, 타겟 인물의 타겟 얼굴 및 타겟 머리를 포함할 수 있다. 타겟 인물은 소스 액터와 다를 수 있다. 상기 방법(1300)은, 동작(1320)에서, 컴퓨팅 디바이스에서, 소스 키 포인트들의 세트들 및 타겟 비디오에 기반하여 출력 비디오를 생성하는 단계를 더 포함할 수 있다. 출력 비디오의 각 프레임은, 타겟 얼굴의 이미지를 포함할 수 있다. 타겟 얼굴의 이미지는, 소스 액터의 얼굴 표정들 중 적어도 하나 및 소스 액터의 머리의 위치들 중 적어도 하나를 모방하기 위하여 소스 키 포인트들의 세트들 중 적어도 하나에 기반하여 수정될 수 있다.
도 14는, 여기에서 설명된 방법들을 구현하는 데 사용될 수 있는 예시 컴퓨팅 시스템(1400)을 도시한다. 컴퓨팅 시스템(1400)은, 컴퓨팅 디바이스(110), 시스템(220), 이미지 전처리 모듈(805), 얼굴 및 머리 포즈 인코더(810), 포즈 인코딩 적응 및 안정화 모듈(815), 인물 아이덴티티 임베더(820), 애니메이션된 머리 생성기(825), 및 이미지 후처리 모듈(830)의 비슷한 것들(likes)의 맥락에서 구현될 수 있다.
도 14에서 나타난 바와 같이, 컴퓨팅 시스템(1400)의 하드웨어 구성 요소들은, 하나 이상의 프로세서들(1410) 및 메모리(1420)를 포함할 수 있다. 메모리(1420)는, 부분적으로(in part), 프로세서(1410)에 의한 실행을 위한 데이터 및 명령어들을 저장한다. 메모리(1420)는, 시스템(1400)이 동작 중일(in operation) 때 실행 가능한 코드를 저장할 수 있다. 시스템(1400)은, 선택적 대용량 저장소 디바이스(1430)(mass storage device), 선택적 휴대용 저장소 매체 드라이브(들)(1440)(portable storage medium drive(s)), 하나 이상의 선택적 출력 디바이스들(1450), 하나 이상의 선택적 입력 디바이스들(1460), 네트워크 인터페이스(1470), 및 하나 이상의 선택적 주변 디바이스들(1480)을 더 포함할 수 있다. 컴퓨팅 시스템(1400)은, 하나 이상의 소프트웨어 구성 요소들(1495)(예를 들어, 여기에서 설명된 바에 따라 사실적인 머리 회전들 및 얼굴 애니메이션 합성을 위한 방법을 구현할 수 있는 것들)을 또한 포함할 수 있다.
도 14에서 나타난 구성 요소들은, 단일 버스(1490)를 통해 연결되는 것으로 도시된다. 구성 요소들은, 하나 이상의 데이터 수송(transport) 수단들 또는 데이터 네트워크들을 통해 연결될 수 있다. 프로세서(1410) 및 메모리(1420)는 로컬 마이크로프로세서 버스를 통해 연결될 수 있고, 대용량 저장소 디바이스(1430), 주변 디바이스(들)(1480), 휴대용 저장소 디바이스(1440), 및 네트워크 인터페이스(1470)는 하나 이상의 입력/출력(input/output; I/O) 버스들을 통해 연결될 수 있다.
자기 디스크 드라이브, 솔리드-스테이트 디스크 드라이브, 또는 광 디스크 드라이브로 구현될 수 있는 대용량 저장소 디바이스(1430)는, 프로세서(1410)에 의한 사용에 대한 명령어들 및 데이터를 저장하기 위한 비-휘발성 저장소 디바이스다. 대용량 저장소 디바이스(1430)는, 여기에서 설명된 실시 예들을 구현하기 위한 시스템 소프트웨어(예를 들어, 소프트웨어 구성 요소들(1495))를 저장할 수 있다.
휴대용 저장소 매체 드라이브(들)(1440)는, 컴퓨팅 시스템(1400)으로 및 컴퓨팅 시스템(1400)으로부터 코드 및 데이터를 입력하고 출력하기 위하여, CD(compact disk) 또는 DVD(digital video disc)와 같은 휴대용 비-휘발성 저장소 매체와 연계하여 동작한다. 여기에서 설명된 실시 예들을 구현하기 위한 시스템 소프트웨어(예를 들어, 소프트웨어 구성 요소들(1495))는, 이러한 휴대용 매체에 저장되고, 휴대용 저장소 매체 드라이브(들)(1440)를 통해 컴퓨팅 시스템(1400)으로 입력할 수 있다.
선택적 입력 디바이스들(1460)은, 사용자 인터페이스의 일부를 제공한다. 입력 디바이스들(1460)은, 영숫자(alphanumeric) 및 기타 정보를 입력하기 위한, 키보드과 같은, 영숫자 키패드(alphanumeric keypad), 또는 마우스, 트랙볼(trackball), 스타일러스(stylus) 또는 커서 방향 키들과 같은 포인팅 디바이스를 포함할 수 있다. 입력 디바이스들(1460)은 또한, 카메라 또는 스캐너를 포함할 수 있다. 추가적으로, 도 14에 나타난 바와 같이 시스템(1400)은 선택적 출력 디바이스들(1450)를 포함한다. 적합한 출력 디바이스들은, 스피커들, 프린터들, 네트워크 인터페이스들, 및 모니터들을 포함한다.
네트워크 인터페이스(1470)는, 예를 들어, 인터넷, 인트라넷, LAN, WAN, 휴대폰 네트워크들, 블루투스 라디오, 및 IEEE 802.11-기반 무선 주파수 네트워크 등을 포함하는 하나 이상의 유선, 무선, 또는 광 네트워크들과 같은 하나 이상의 통신 네트워크들을 통해 외부 디바이스들, 외부 컴퓨팅 디바이스들, 서버들, 및 네트워크 시스템들과 통신하는 데 활용될 수 있다. 네트워크 인터페이스(1470)는 이더넷 카드, 광 트랜시버, 무선 주파수 트랜시버, 또는 정보를 송수신할 수 있는 임의의 다른 유형의 장치와 같은 네트워크 인터페이스 카드일 수 있다. 선택적 주변 장치들(1480)은 컴퓨터 시스템에 추가 기능을 추가하기 위하여 임의의 유형의 컴퓨터 지원 디바이스를 포함할 수 있다.
컴퓨팅 시스템(1400)에 포함된 구성 요소들은 넓은 범주의 컴퓨터 구성 요소들을 표현하도록 의도된다. 따라서, 컴퓨팅 시스템(1400)은 서버, 개인용 컴퓨터, 핸드-헬드(hand-held) 컴퓨팅 디바이스, 전화, 모바일 컴퓨팅 디바이스, 워크스테이션, 미니컴퓨터, 메인프레임 컴퓨터, 네트워크 노드, 또는 임의의 다른 컴퓨팅 디바이스일 수 있다. 컴퓨팅 시스템(1400)은 또한 다른 버스 구성들, 네트워크화된 플랫폼들, 멀티-프로세서 플랫폼들, 및 기타 등등을 포함할 수 있다. UNIX, Linux, Windows, Macintosh OS, Palm OS, 및 기타 적합한 운영 체제를 포함하여 다양한 운영 체제(OS)가 사용될 수 있다.
전술한 기능들 중 일부는 저장소 매체들(예를 들어, 컴퓨터-판독 가능한 매체 또는 프로세서-판독 가능한 매체)에 저장된 명령어들로 구성될 수 있다. 명령어들은 프로세서에 의하여 검색되고 실행될 수 있다. 스토리지 매체들의 일부 예시들로는 메모리 디바이스들, 테이프들, 디스크들, 및 기타 등이다. 프로세서가 본 발명에 따라 동작하도록 지시하기 위하여 프로세서에 의해 실행될 때 명령어들은 동작한다. 통상의 기술자들은 명령어들, 프로세서(들), 및 저장소 매체들에 익숙하다.
여기서 설명된 처리를 수행하는 것에 적합한 임의의 하드웨어 플랫폼이 본 발명에 사용하는 것에 적합한 것은 주목할 점이다. 여기서 사용된 용어들 "컴퓨터-판독 가능한 저장소 매체(computer-readable storage medium)" 및 "컴퓨터-판독 가능한 저장소 매체들(computer-readable storage media)"은, 실행을 위해 프로세서에게 명령어들을 제공하는 데 참여하는 임의의 매체(medium) 또는 매체들(media)를 참조한다. 이러한 매체들은 비-휘발성 매체들, 휘발성 매체들, 및 전송 매체들을 포함하지만 이에 제한되지 않는 다양한 형태들을 취할(take) 수 있다. 비 휘발성 매체들은, 예를 들어, 고정 디스크와 같은 광학 또는 자기 디스크들을 포함한다. 휘발성 매체들은 시스템 RAM(Random Access Memory)과 같은 동적 메모리를 포함한다. 전송 매체들은 동축 케이블들, 구리 와이어, 및 광섬유들을 포함하며, 무엇보다도, 버스의 일 실시 예를 포함하는 와이어들을 포함한다. 전송 매체들은 또한 무선 주파수(RF) 및 적외선(IR) 데이터 통신들 동안 생성되는 것과 같은, 음향 또는 광파들의 형태를 취할(take) 수 있다. 컴퓨터-판독 가능한 매체들의 일반적인 형태들은, 예를 들어, 플로피 디스크, 플렉서블 디스크, 하드 디스크, 자기 테이프, 기타 자기 매체들, CD-ROM 디스크, DVD, 기타 광학 매체, 마크들 또는 구멍들의 패턴들을 갖는 기타 물리적 매체, RAM, PROM, EPROM, EEPROM, 기타 메모리 칩 또는 카트리지, 반송파, 또는 컴퓨터가 판독할 수 있는 기타 매체를 포함한다.
다양한 형태들의 컴퓨터-판독 가능한 매체들은 실행을 위해 하나 이상의 명령어들의 하나 이상의 시퀀스들을 프로세서에 전달(carry)하는 데 관련(involve)될 수 있다. 버스는, 프로세서가 명령어들을 검색하고 실행하는 시스템 RAM으로 데이터를 전달한다. 시스템 프로세서에 의하여 수신된 명령어들은, 프로세서에 의하여 실행되기 전 또는 후에 고정 디스크에 선택적으로 저장될 수 있다.
그러므로, 사실적인 머리 회전들 및 얼굴 애니메이션 합성을 위한 시스템들 및 방법들이 설명되었다. 실시 예들이 특정 예시 실시 예들을 참조하여 설명되었지만, 본 출원의 더 넓은 사상 및 범위를 벗어나지 않고 이러한 예시 실시 예들에 대해 다양한 수정들 및 변경들이 이루어질 수 있는 것은 자명할 것이다. 따라서, 명세서 및 도면들은 제한적인 의미가 아닌 예시적인 의미로 간주되어야 한다.

Claims (20)

  1. 사실적인(realistic) 머리(head) 회전들 및 얼굴(face) 애니메이션 합성(synthesis)을 위한 방법에 있어서,
    컴퓨팅 디바이스(computing device)에서, 소스(source) 비디오의 프레임들을 수신하는 단계 - 상기 소스 비디오의 상기 프레임들은 소스 액터(actor)의 얼굴 및 머리를 포함함 -;
    상기 컴퓨팅 디바이스(computing device)에서, 상기 소스 비디오의 상기 프레임들에 기반하여 소스 포즈 파라미터들의 세트들을 생성하는 단계 - 상기 소스 포즈 파라미터들의 상기 세트들은 상기 소스 비디오의 상기 프레임들에서 상기 소스 액터의 얼굴 표정들(facial expressions) 및 상기 소스 액터의 상기 머리의 위치들을 표현함 -;
    상기 컴퓨팅 디바이스(computing device)에서, 적어도 하나의 타겟 이미지를 수신하는 단계 - 상기 적어도 하나의 타겟 이미지는 타겟 인물의 타겟 얼굴 및 타겟 머리를 포함함 -;
    상기 적어도 하나의 타겟 이미지에 기반하여 상기 타겟 인물의 상기 타겟 얼굴과 연관된 타겟 아이덴티티 정보를 결정하는 단계; 및
    상기 컴퓨팅 디바이스(computing device)에서, 소스 포즈 파라미터들의 상기 세트들 및 상기 타겟 아이덴티티 정보에 기반하여 출력 비디오를 생성하는 단계 - 상기 출력 비디오의 각 프레임은 상기 출력 비디오의 적어도 하나의 프레임에서 상기 타겟 얼굴의 이미지를 포함하며, 상기 타겟 얼굴의 상기 이미지는 상기 소스 액터의 상기 얼굴 표정들 중 적어도 하나 및 상기 소스 액터의 상기 머리의 상기 위치들 중 적어도 하나를 모방(mimic)하기 위하여 상기 소스 포즈(pose) 파라미터들의 상기 세트들 중 적어도 하나에 기반하여 수정됨 -
    를 포함하는,
    방법.
  2. 제1항에 있어서,
    상기 타겟 인물은 상기 소스 액터와 다른,
    방법.
  3. 제1항에 있어서,
    상기 소스 포즈 파라미터들은 파라메트릭(parametric) 얼굴 표정 모델의 파라미터들 및 상기 소스 액터의 얼굴 랜드마크들(landmarks)의 좌표들(coordinates)에 대응하는 소스 키 포인트들 중 적어도 하나를 포함하는,
    방법.
  4. 제1항에 있어서,
    상기 출력 비디오를 생성하는 단계 이전에, 상기 타겟 아이덴티티 정보에 기반하여 상기 소스 포즈 파라미터들을 조정하는 단계
    를 더 포함하는,
    방법.
  5. 제1항에 있어서,
    상기 출력 비디오를 생성하는 단계 이전에, 상기 소스 비디오의 미리 결정된 수의 이웃하는(neighboring) 프레임들에서 상기 얼굴 표정들을 표현하는 상기 소스 포즈 파라미터들을 평균하는(averaging) 단계
    를 더 포함하는
    방법.
  6. 제1항에 있어서,
    상기 출력 비디오를 생성하는 단계는,
    상기 출력 비디오의 프레임들을 생성하도록 구성된 뉴럴 네트워크로 소스 포즈 파라미터들의 상기 세트들 및 상기 타겟 아이덴티티 정보를 제공하는 단계를 포함하는,
    방법.
  7. 제1항에 있어서,
    상기 출력 비디오의 각 프레임은 상기 출력 비디오의 상기 프레임들의 상기 나머지로부터 독립적으로 생성되는,
    방법.
  8. 제1항에 있어서,
    상기 출력 비디오의 적어도 하나의 프레임은 상기 출력 비디오의 적어도 하나의 이전에 생성된 프레임으로부터 추출된 정보에 기반하여 생성되는,
    방법.
  9. 제1항에 있어서,
    상기 타겟 아이덴티티 정보를 결정하는 단계는,
    상기 타겟 아이덴티티 정보를 표현하는 실수 값 벡터를 출력하도록 구성된 뉴럴 네트워크로 상기 적어도 하나의 타겟 이미지를 제공하는 단계를 포함하는,
    방법.
  10. 제1항에 있어서,
    상기 출력 비디오를 생성하는 단계 이전에,
    상기 소스 포즈 파라미터들에 기반하여 추가 프레임을 획득하기 위하여 상기 소스 비디오의 적어도 하나의 프레임을 크롭(crop)하는 단계;
    상기 추가 프레임으로 상기 적어도 하나의 프레임을 변환(transform)하기 위한 아핀 변환(affine transformation)을 결정하는 단계; 및
    상기 출력 비디오를 생성하는 단계 이후에,
    상기 소스 비디오의 상기 적어도 하나의 프레임에 대응하는 상기 출력 비디오의 프레임에 추가 아핀 변환을 적용하는 단계 - 상기 추가 아핀 변환은 상기 아핀 변환의 역(inverse)임 -
    를 더 포함하는,
    방법.
  11. 사실적인 머리 회전들 및 얼굴 애니메이션 합성을 위한 시스템에 있어서,
    상기 시스템은,
    프로세서-실행가능한 코드들을 저장하는 메모리 및 적어도 하나의 프로세서를 포함하고,
    상기 적어도 하나의 프로세서는 상기 프로세서-실행가능한 코드들을 실행하여(upon executing),
    컴퓨팅 디바이스에서, 소스 비디오의 프레임들을 수신하는 단계 - 상기 소스 비디오의 상기 프레임들은 소스 액터의 얼굴 및 머리를 포함함 -;
    상기 컴퓨팅 디바이스에서, 상기 소스 비디오의 상기 프레임들에 기반하여 소스 포즈 파라미터들의 세트들을 생성하는 단계 - 상기 소스 포즈 파라미터들의 상기 세트들은, 상기 소스 비디오의 상기 프레임들에서 상기 소스 액터의 얼굴 표정들 및 상기 소스 액터의 상기 머리의 위치들을 표현함 -;
    상기 컴퓨팅 디바이스에서, 적어도 하나의 타겟 이미지를 수신하는 단계 - 상기 적어도 하나의 타겟 이미지는 타겟 인물의 타겟 얼굴 및 타겟 머리를 포함함 -;
    상기 적어도 하나의 타겟 이미지에 기반하여 상기 타겟 인물의 상기 타겟 얼굴과 연관된 타겟 아이덴티티 정보를 결정하는 단계; 및
    상기 컴퓨팅 디바이스에서, 소스 포즈 파라미터들의 상기 세트들 및 상기 타겟 아이덴티티 정보에 기반하여 출력 비디오를 생성하는 단계 - 상기 출력 비디오의 각 프레임은 상기 출력 비디오의 적어도 하나의 프레임에서 상기 타겟 얼굴의 이미지를 포함하고, 상기 타겟 얼굴의 상기 이미지는 상기 소스 액터의 상기 얼굴 표정들 중 적어도 하나 및 상기 소스 액터의 상기 머리의 상기 위치들 중 적어도 하나를 모방하기 위하여 상기 소스 포즈 파라미터들의 상기 세트들 중 적어도 하나에 기반하여 수정됨 -;
    를 구현하도록 구성되는,
    시스템.
  12. 제11항에 있어서,
    상기 타겟 인물은 상기 소스 액터와 다른,
    시스템.
  13. 제11항에 있어서,
    상기 소스 포즈 파라미터들은 파라메트릭 얼굴 표정 모델의 파라미터들 및 상기 소스 액터의 얼굴 랜드마크들의 좌표들에 대응하는 소스 키 포인트들 중 적어도 하나를 포함하는,
    시스템.
  14. 제11항에 있어서,
    상기 출력 비디오를 생성하는 단계 이전에, 상기 타겟 아이덴티티 정보에 기반하여 상기 소스 포즈 파라미터들을 조정하는 단계를
    더 포함하는 시스템.
  15. 제11항에 있어서,
    상기 출력 비디오를 생성하는 단계 이전에, 상기 소스 비디오의 미리 결정된 수의 이웃하는 프레임들에서 상기 얼굴 표정들을 표현하는 상기 소스 포즈 파라미터들을 평균하는 단계를
    더 포함하는 시스템.
  16. 제11항에 있어서,
    상기 출력 비디오를 생성하는 단계는,
    상기 출력 비디오의 프레임들을 생성하도록 구성된 뉴럴 네트워크로 소스 포즈 파라미터들의 상기 세트들 및 상기 타겟 아이덴티티 정보를 제공하는 단계를 포함하는,
    시스템.
  17. 제11항에 있어서,
    상기 출력 비디오의 각 프레임은 상기 출력 비디오의 상기 프레임들의 상기 나머지로부터 독립적으로 생성되는,
    시스템.
  18. 제11항에 있어서,
    상기 출력 비디오의 적어도 하나의 프레임은 상기 출력 비디오의 적어도 하나의 이전에 생성된 프레임으로부터 추출된 정보에 기반하여 생성되는,
    시스템.
  19. 제11항에 있어서,
    상기 타겟 아이덴티티 정보를 결정하는 단계는,
    상기 타겟 아이덴티티 정보를 표현하는 실수 값 벡터를 출력하도록 구성된 뉴럴 네트워크로 상기 적어도 하나의 타겟 이미지를 제공하는 단계를 포함하는,
    시스템.
  20. 하나 이상의 프로세서들에 의하여 실행될 때 상기 하나 이상의 프로세서들로 하여금 사실적인 머리 회전들 및 얼굴 애니메이션 합성을 위한 방법을 구현하도록 하는, 저장된(stored thereon) 명령어들을 가지는 비-일시적인(non-transitory) 프로세서-판독가능 매체에 있어서,
    상기 방법은,
    컴퓨팅 디바이스에서, 소스 비디오의 프레임들을 수신하는 단계 - 상기 소스 비디오의 상기 프레임들은 소스 액터의 얼굴 및 머리를 포함함 -;
    상기 컴퓨팅 디바이스에서, 상기 소스 비디오의 상기 프레임들에 기반하여 소스 포즈 파라미터들의 세트들을 생성하는 단계; - 상기 소스 포즈 파라미터들의 상기 세트들은 상기 소스 비디오의 상기 프레임들에서 상기 소스 액터의 얼굴 표정들 및 상기 소스 액터의 상기 머리의 위치들을 표현함 -
    상기 컴퓨팅 디바이스에서, 적어도 하나의 타겟 이미지를 수신하는 단계; - 상기 적어도 하나의 타겟 이미지는 타겟 인물의 타겟 얼굴 및 타겟 머리를 포함함 -
    상기 적어도 하나의 타겟 이미지에 기반하여, 상기 타겟 인물의 상기 타겟 얼굴과 연관된 타겟 아이덴티티 정보를 결정하는 단계; 및
    상기 컴퓨팅 디바이스에서, 소스 포즈 파라미터들의 상기 세트들 및 상기 타겟 아이덴티티 정보에 기반하여 출력 비디오를 생성하는 단계 - 상기 출력 비디오의 각 프레임은 상기 출력 비디오의 적어도 하나의 프레임에서 상기 타겟 얼굴의 이미지를 포함하고, 상기 타겟 얼굴의 상기 이미지는 상기 소스 액터의 상기 얼굴 표정들 중 적어도 하나 및 상기 소스 액터의 상기 머리의 상기 위치들 중 적어도 하나를 모방하기 위하여 상기 소스 포즈 파라미터들의 상기 세트들 중 적어도 하나에 기반하여 수정됨 -
    를 포함하는,
    비-일시적인(non-transitory) 프로세서-판독가능 매체.
KR1020217026037A 2019-01-18 2020-01-18 모바일 디바이스에서 사실적인 머리 회전들 및 얼굴 애니메이션 합성을 위한 방법들 및 시스템들 KR102605077B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020237039557A KR102686099B1 (ko) 2019-01-18 2020-01-18 모바일 디바이스에서 사실적인 머리 회전들 및 얼굴 애니메이션 합성을 위한 방법들 및 시스템들

Applications Claiming Priority (11)

Application Number Priority Date Filing Date Title
US16/251,436 2019-01-18
US16/251,472 US11049310B2 (en) 2019-01-18 2019-01-18 Photorealistic real-time portrait animation
US16/251,472 2019-01-18
US16/251,436 US10789453B2 (en) 2019-01-18 2019-01-18 Face reenactment
US16/509,370 2019-07-11
US16/509,370 US11114086B2 (en) 2019-01-18 2019-07-11 Text and audio-based real-time face reenactment
US201962892562P 2019-08-28 2019-08-28
US62/892,562 2019-08-28
US16/662,743 2019-10-24
US16/662,743 US11410364B2 (en) 2019-01-18 2019-10-24 Systems and methods for realistic head turns and face animation synthesis on mobile device
PCT/US2020/014222 WO2020150689A1 (en) 2019-01-18 2020-01-18 Systems and methods for realistic head turns and face animation synthesis on mobile device

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020237039557A Division KR102686099B1 (ko) 2019-01-18 2020-01-18 모바일 디바이스에서 사실적인 머리 회전들 및 얼굴 애니메이션 합성을 위한 방법들 및 시스템들

Publications (2)

Publication Number Publication Date
KR20210117304A true KR20210117304A (ko) 2021-09-28
KR102605077B1 KR102605077B1 (ko) 2023-11-23

Family

ID=69724072

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217026037A KR102605077B1 (ko) 2019-01-18 2020-01-18 모바일 디바이스에서 사실적인 머리 회전들 및 얼굴 애니메이션 합성을 위한 방법들 및 시스템들

Country Status (4)

Country Link
EP (1) EP3912092A1 (ko)
KR (1) KR102605077B1 (ko)
CN (1) CN113261013A (ko)
WO (1) WO2020150689A1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113763517B (zh) * 2020-06-05 2024-04-12 华为技术有限公司 人脸表情编辑方法及电子设备
CN111833413B (zh) * 2020-07-22 2022-08-26 平安科技(深圳)有限公司 图像处理方法、装置、电子设备及计算机可读存储介质
CN112037310A (zh) * 2020-08-27 2020-12-04 成都先知者科技有限公司 基于神经网络的游戏人物动作识别生成方法
US11360733B2 (en) 2020-09-10 2022-06-14 Snap Inc. Colocated shared augmented reality without shared backend
US11335069B1 (en) * 2020-11-30 2022-05-17 Snap Inc. Face animation synthesis
CN112541477B (zh) * 2020-12-24 2024-05-31 北京百度网讯科技有限公司 表情包生成方法、装置、电子设备和存储介质
JP7427786B2 (ja) * 2021-02-09 2024-02-05 北京字跳▲網▼絡技▲術▼有限公司 拡張現実に基づく表示方法、機器、記憶媒体及びプログラム製品
CN112884908A (zh) * 2021-02-09 2021-06-01 脸萌有限公司 基于增强现实的显示方法、设备、存储介质及程序产品
EP4315252A1 (en) * 2021-03-31 2024-02-07 Snap, Inc. Facial synthesis in overlaid augmented reality content
WO2022212209A1 (en) * 2021-03-31 2022-10-06 Snap Inc. Interactive augmented reality content including facial synthesis
CN113179449B (zh) * 2021-04-22 2022-04-12 清华珠三角研究院 语音及动作驱动图像的方法、***、装置及存储介质
CN115294622B (zh) * 2022-06-15 2023-04-18 北京邮电大学 语音驱动说话人头动视频合成增强方法、***和存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018102880A1 (en) * 2016-12-09 2018-06-14 Frangos Marcus George Systems and methods for replacing faces in videos

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103093490B (zh) * 2013-02-02 2015-08-26 浙江大学 基于单个视频摄像机的实时人脸动画方法
US20160042548A1 (en) * 2014-03-19 2016-02-11 Intel Corporation Facial expression and/or interaction driven avatar apparatus and method
CN106415665B (zh) * 2014-07-25 2020-05-19 英特尔公司 具有头部转动的头像面部表情动画
US9589178B2 (en) * 2014-09-12 2017-03-07 Htc Corporation Image processing with facial features

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018102880A1 (en) * 2016-12-09 2018-06-14 Frangos Marcus George Systems and methods for replacing faces in videos

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Justus Thies, et. al., Real-time Expression Transfer for Facial Reenactment, 2015.10.26, 1부* *

Also Published As

Publication number Publication date
CN113261013A (zh) 2021-08-13
KR102605077B1 (ko) 2023-11-23
EP3912092A1 (en) 2021-11-24
WO2020150689A1 (en) 2020-07-23
KR20230165350A (ko) 2023-12-05

Similar Documents

Publication Publication Date Title
KR102605077B1 (ko) 모바일 디바이스에서 사실적인 머리 회전들 및 얼굴 애니메이션 합성을 위한 방법들 및 시스템들
US11410364B2 (en) Systems and methods for realistic head turns and face animation synthesis on mobile device
US11410457B2 (en) Face reenactment
US11393152B2 (en) Photorealistic real-time portrait animation
US11114086B2 (en) Text and audio-based real-time face reenactment
US11915355B2 (en) Realistic head turns and face animation synthesis on mobile device
US11727617B2 (en) Single image-based real-time body animation
WO2020150688A1 (en) Text and audio-based real-time face reenactment
US20160086365A1 (en) Systems and methods for the conversion of images into personalized animations
KR102686099B1 (ko) 모바일 디바이스에서 사실적인 머리 회전들 및 얼굴 애니메이션 합성을 위한 방법들 및 시스템들
KR20240112370A (ko) 모바일 디바이스에서 사실적인 머리 회전들 및 얼굴 애니메이션 합성을 위한 방법들 및 시스템들

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant