KR20230085931A - 얼굴 이미지에서 색상을 추출하기 위한 방법 및 시스템 - Google Patents

얼굴 이미지에서 색상을 추출하기 위한 방법 및 시스템 Download PDF

Info

Publication number
KR20230085931A
KR20230085931A KR1020237016250A KR20237016250A KR20230085931A KR 20230085931 A KR20230085931 A KR 20230085931A KR 1020237016250 A KR1020237016250 A KR 1020237016250A KR 20237016250 A KR20237016250 A KR 20237016250A KR 20230085931 A KR20230085931 A KR 20230085931A
Authority
KR
South Korea
Prior art keywords
color
keypoints
face
face image
extracting
Prior art date
Application number
KR1020237016250A
Other languages
English (en)
Inventor
보 양
쑹룬 류
보 왕
Original Assignee
텐센트 아메리카 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 텐센트 아메리카 엘엘씨 filed Critical 텐센트 아메리카 엘엘씨
Publication of KR20230085931A publication Critical patent/KR20230085931A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/09Supervised learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/096Transfer learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/40Analysis of texture
    • 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/56Extraction of image or video features relating to colour
    • 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
    • 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/162Detection; Localisation; Normalisation using pixel segmentation or colour matching
    • 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/168Feature extraction; Face representation
    • G06V40/171Local features and components; Facial parts ; Occluding parts, e.g. glasses; Geometrical 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/18Eye characteristics, e.g. of the iris
    • G06V40/193Preprocessing; Feature extraction
    • 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/20212Image combination
    • G06T2207/20216Image averaging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30196Human being; Person

Landscapes

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

Abstract

전자 장치는 피사체(예: 실제 인물)의 이차원(2D) 얼굴 이미지에서 색상을 추출하는 방법을 수행하며, 상기 방법은, 키포인트 예측 모델에 기초하여 상기 2D 얼굴 이미지에서 복수의 키포인트를 식별하는 단계; 식별된 복수의 키포인트로부터의 복수의 타깃 키포인트가 표준 얼굴의 대응하는 타깃 키포인트와 정렬될 때까지 상기 2D 얼굴 이미지를 회전시키는 단계; 회전된 2D 얼굴 이미지에서 복수의 부분을 찾아내는 단계 - 각각의 부분은 상기 식별된 복수의 키포인트의 서브세트 각각에 의해 정의됨 -; 상기 2D 얼굴 이미지의 픽셀 값에서 상기 복수의 부분 각각에 대한 색상을 추출하는 단계; 및 추출된 색상을 사용하여 상기 2D 얼굴 이미지의 각각의 얼굴 특징 색상에 매칭되는 실제 인물의 삼차원(3D) 모델을 생성하는 단계를 포함한다.

Description

얼굴 이미지에서 색상을 추출하기 위한 방법 및 시스템
관련 출원에 대한 상호 참조
본 출원은 "METHODS AND SYSTEMS FOR EXTRACTING COLOR FROM FACIAL IMAGE(얼굴 이미지에서 색상을 추출하기 위한 방법 및 시스템)"라는 명칭으로, 2021년 3월 15일에 출원된 미국 특허출원 번호 제17/202,116호에 대해 우선권을 주장하는 계속 출원으로, 상기 출원의 내용 전체가 참조에 의해 본 출원에 통합된다.
본 개시는 일반적으로 이미지 기술에 관한 것으로, 특히 이미지 처리 및 머리/얼굴 모델 형성 방법 및 시스템에 관한 것이다.
다수의 센서(예: 다중뷰(multi-view) 카메라, 깊이 센서 등)를 구비한 상업용 얼굴 캡처 시스템(facial capturing system)은 명시적인 마커가 있거나 없는 사람에 대한 정확한 삼차원(3D) 얼굴 모델을 획득하기 위해 사용된다. 이러한 도구는 다수의 센서로부터 사람 얼굴의 지오메트리(geometry, 기하학적 형상) 및 텍스처 정보를 캡처하고 다중 모드 정보(multi-modal information)를 일반 3D 얼굴 모델에 융합한다. 다양한 센서로부터의 다중 모드 정보를 활용하여, 획득된 3D 얼굴 모델이 정확하다. 그러나 이러한 상용 시스템은 비용이 많이 들고 원시 데이터를 처리하려면 추가 소프트웨어 구매가 필요하다. 또한, 이러한 시스템은 일반적으로 얼굴 캡처 스튜디오에 배포되며, 데이터를 수집하려면 배우 또는 자원 봉사자가 필요하므로 데이터 수집 프로세스에 시간과 비용도 많이 든다. 요컨대, 얼굴 캡처 시스템은 3D 얼굴 데이터를 획득하는 데 비용이 많이 들고 시간이 많이 걸린다. 반면, 요즘은 스마트폰이나 카메라가 널리 보급되어 잠재적으로 대량의 RGB(적색, 녹색, 청색) 이미지가 입수 가능하다. 3D 얼굴 모델을 생성하기 위해 RGB 이미지를 입력으로 사용하면 대량의 이미지 데이터를 활용할 수 있다.
이차원(2D) RGB 이미지는 3D 세계를 2D 평면에 투영한 것이다. 2D 이미지로부터 3D 지오메트리를 복구하는 것은 재구축 프로세스를 정규화하기 위해 최적화 또는 학습 알고리즘을 필요로 한다는 불량 조건 문제(ill-posed problem)이다. 3D 얼굴 재구축을 위해, 파라미터터화된 얼굴 모델 3DMM(3D Morphable Model) 기반 방법이 개발되어 사용되었다. 특히, BFM(Basel Face Model), SFM(Surrey Face Model)과 같은 얼굴 모델은 일반적으로 사용되는 얼굴 모델이며, 상용 라이선스가 필요하다. 얼굴 모델 기반 방법은 스캔한 3D 인간 얼굴 모델 세트(다양한 얼굴 특징 및 표정을 나타냄)를 토대로 한 다음, 3D 얼굴 모델에 기초한 얼굴 특징 및 표정의 파라미터화된 표현을 생성한다. 새로운 3D 얼굴은 파라미터화에 기초한 기본 3D 얼굴 모델의 선형 조합으로 표현될 수 있다. 이러한 방법의 특성상, 토대를 형성하는 데 사용되는 3D 얼굴 모델과 파라미터 공간은 얼굴 모델 기반 방법의 표현력을 제한한다. 또한 입력 얼굴 이미지 또는 2D 랜드마크로부터 3DMM 파라미터를 맞추는 최적화 프로세스는 얼굴 이미지에서 세부적인 얼굴 특징을 더 희생시킨다. 따라서 얼굴 모델 기반 방법으로는 3D 얼굴 특징을 정확하게 복원할 수 없으며 BFM 및 SFM과 같은 얼굴 모델을 사용하려면 상업적 라이선스가 필요하다.
심층 학습(deep learning, 딥 러닝이라고도 함) 알고리즘이 대중화되면서 시맨틱 세그먼테이션(semantic segmentation) 알고리즘이 많은 주목을 받고 있다. 이러한 알고리즘들은 얼굴 이미지의 픽셀 각각을 배경, 피부, 모발, 눈, 코 및 입과 같은 서로 다른 범주로 나눌 수 있다.
시맨틱 세그먼테이션 방법은 비교적 정확한 결과를 얻을 수 있지만, 모든 픽셀의 시맨틱 세그먼테이션은 매우 복잡한 문제로 종종 복잡한 네트워크 구조를 필요로 하여, 결과적으로 계산 복잡도가 높아진다. 또한 시맨틱 세그먼테이션 신경망을 훈련시키기 위해서는 대량의 훈련 데이터에 레이블을 지정하고, 시맨틱 세그먼테이션은 전체 이미지의 픽셀을 분할해야 하므로 매우 지루하고 시간과 비용이 많이 든다. 따라서, 높은 평균 색상 정확도가 필요하지 않고 높은 효율성이 필요한 장면에는 적합하지 않다.
라플라시안(Laplacian) 및 기타 파생 연산자를 최적화하는 키포인트 주도(keypoint-driven) 변형 방법은 학계에서 잘 연구되어왔다. 이중 조화(Biharmonic) 변형의 수학식은
Figure pct00001
으로 표기할 수 있다. 제약된 키포인트, 즉 경계 조건은
Figure pct00002
로 표현할 수 있다. 위의 방정식에서,
Figure pct00003
는 라플라시안 연산자이고,
Figure pct00004
는 미지의 변형된 메시 정점(mesh vertice)의 위치이며
Figure pct00005
는 변형 후 주어진 키포인트의 위치이다. 이중 라플라스(bi-Laplace) 방정식의 해는 각각의 차원에서 필요하다. 이중 조화 함수는 이중 라플라스 방정식의 해이지만, 소위 "라플라시안 에너지"를 최소화하는 최소화기(minimizer)이기도 하다.
에너지 최소화의 본질은 메시의 평활화(smoothing)이다. 앞서 언급한 최소화기를 직접 적용하면, 모든 세부 특징이 평활화될 것이다(smoothed out). 게다가 키포인트의 위치가 변경되지 않는 경우, 변형된 메시는 원래의 메시와 정확히 동일할 것으로 예상된다. 이러한 고려사항 중에서, 이중 조화 변형의 선호되는 사용은 정점의 위치 이외의 정점의 변위를 해결하는 것이다. 이러한 방식으로, 변형된 위치는
Figure pct00006
로 쓸 수 있으며, 여기서
Figure pct00007
는 각 차원에서 미지의 정점의 변위이다. 당연히, 이중 조화 변형 방정식은
Figure pct00008
을 조건으로
Figure pct00009
이 되며, 여기서
Figure pct00010
는 변형 후 키포인트의 변위이다.
게임 산업의 급속한 발전과 함께, 맞춤형 얼굴 아바타 생성(customized face avatar generation)이 점점 대중화되고 있다. 예술적인 스킬이 없는 일반 플레이어의 경우, 미묘한 변화를 설명할 수 있는 얼굴을 생성하기 위해 제어 파라미터를 조정하는 것은 매우 어렵다.
Justice Face Generation System과 같은, 일부 기존의 얼굴 생성 시스템 및 방법에서, 얼굴 모델의 예측은 사진에서 눈썹, 입, 코 및 기타 픽셀의 세그먼테이션과 같은, 이미지의 2D 정보를 예측하는 것이다. 이러한 2D 세그먼테이션은 분할은 면외 회전(out-of-plane rotation) 및 부분 폐색(partial occlusion)의 영향을 받기 쉽고, 기본적으로 정면 얼굴(frontal face)이 필요하다. 또한 최종 게임 얼굴 아바타와 입력의 유사성은 얼굴 인식 시스템에 의해 결정되기 때문에, 이 방법은 리얼 스타일 게임(real style game)으로만 제한된다. 게임의 스타일이 실제 얼굴과 상당히 다른 만화 스타일(cartoon style)인 경우, 이 방법을 사용할 수 없다.
Moonlight Blade Face Generation System과 같은, 일부 다른 기존 얼굴 생성 시스템 및 방법에서, 실제 얼굴은 입력 이미지로부터 재구축된다. 이 방법은 리얼 스타일 게임으로 제한되고 만화 스타일 게임에 적용될 수 없다. 둘째, 이 방법의 출력 파라미터는 재구축된 게임 스타일 얼굴 메시이며, 그러면 메시의 각 부분에 대해 템플릿 매칭이 수행된다. 이 접근법은 서로 다른 얼굴 부분의 조합을 제한한다. 게임 얼굴의 전체적인 다양성은 미리 생성된 템플릿의 수와 밀접한 관련이 있다. 입 모양과 같은 특정 부분의 템플릿 수가 적으면, 다양한 변형이 거의 생성되지 않아, 생성된 얼굴의 다양성이 부족할 수 있다.
학습 기반 얼굴 재구축 및 키포인트 검출 방법은 3D 실측 데이터(ground-truth data)를 최적 표준(gold standard)으로 사용하여 가능한 한 실측치(ground-truth)에 근접하는 모델을 훈련한다. 따라서 3D 실측치는 학습 기반 접근법의 상한을 결정한다. 얼굴 재구축의 정확성 및 바람직한 키포인트 검출을 보장하기 위해, 일부 실시예에서, 고가의 얼굴 캡처링 시스템을 사용하지 않고 3D 얼굴 모델의 실측치를 생성하기 위해 2D 얼굴 키포인트 주석(facial keypoints annotation)이 사용된다. 본 명세서에 개시된 접근법은 입력 이미지의 세부적인 얼굴 특징을 보존하고, 얼굴 특징을 상실하는 3DMM 기반 방법과 같은 기존 얼굴 모델의 단점을 극복하고, 또한 일부 기존의 기존 얼굴 모델 기반 방법이 필요로 하는 BFM 및 SFM(둘 다 상용 라이센스 필요)과 같은 파라미터화된 얼굴 모델의 사용을 회피한다.
얼굴 키포인트 검출과는 별개로, 일부 실시예에서, 얼굴 특징 분류 태스크를 위해 다중 태스크 학습(multi-task learning) 및 전이 학습 솔루션(transfer learning solution)이 구현되어, 입력 얼굴 이미지로부터 더 많은 정보를 추출할 수 있는데, 이는 키포인트 정보에 보완적이다. 예측된 얼굴 특징과 함께 검출된 얼굴 키포인트는 플레이어의 얼굴 아바타를 생성하기 위한 컴퓨터 또는 모바일 게임에 유용하다.
일부 실시예에서, 피부, 눈썹, 눈동자, 입술, 모발 및 아이섀도우의 평균 색상을 포함하는 단일 사진으로부터 인간 얼굴의 각 부분의 평균 색상을 추출하기 위한 경량의 방법(lightweight method)이 여기에 개시된다. 동시에 알고리즘을 사용하여 평균 색상을 기초하여 텍스처 맵을 자동으로 변환하므로, 변환된 텍스처는 여전히 원래 밝기와 색상 차이는 있지만 주요 색상이 타깃 색상이 된다.
컴퓨터 비전 및 인공 지능(artificial intelligence, AI) 기술의 급속한 발전으로 3D 인간 얼굴 키포인트의 캡처 및 재구축은 높은 수준의 정밀도를 달성했다. 점점 더 많은 게임이 AI 검출을 활용하여 게임 캐릭터를 더욱 생생하게 만들고 있다. 본 명세서에 개시된 방법 및 시스템은 재구축된 3D 키포인트에 기초하여 3D 머리 아바타를 맞춤화한다(customizing). 일반적인 키포인트 주도 변형은 임의의 메시에 적용할 수 있다. 본 명세서에서 제안하는 머리 아바타 맞춤화 프로세스와 변형 방법은 자동 아바타 생성 및 표정 재현(expression reoccurrence)과 같은 시나리오에서 적용될 수 있다.
단일 사진에 기초하여 게임에서 얼굴 아바타를 자동으로 생성하는 방법 및 시스템이 여기에 개시된다. 얼굴 키포인트의 예측, 키포인트의 자동 처리 및 모델 파라미터를 예측하기 위한 심층 학습 방법의 사용을 통해, 본 명세서에 개시된 시스템은 게임에서 얼굴 아바타를 자동으로 생성하여, 1) 사진에서의 실제 얼굴 특징을 갖게 하고; 2) 타깃 게임 스타일을 따르게 할 수 있다. 이 시스템은 리얼 스타일 게임(real-style game)과 만화 스타일 게임(real-style game)의 얼굴 생성에 동시에 적용될 수 있으며, 여러 다른 게임 모델이나 골격 정의(bone definition)에 따라 자동으로 쉽게 조정될 수 있다.
본 출원의 제1 측면에 따르면, 실제 인물의 이차원(2D) 얼굴 이미지로부터 얼굴 위치 맵을 구축하는 방법은, 2D 얼굴 이미지로부터 대략적인 얼굴 위치 맵을 생성하는 단계; 상기 대략적인 얼굴 위치 맵에 기초하여 상기 2D 얼굴 이미지에서 제1 키포인트 세트를 예측하는 단계; 사용자 제공 키포인트 주석(user-provided keypoint annotations)에 기초하여 상기 2D 얼굴 이미지에서 제2 키포인트 세트를 식별하는 단계; 및 상기 대략적인 얼굴 위치 맵을 업데이트하여 상기 2D 얼굴 이미지에서 상기 제1 키포인트 세트와 상기 제2 키 포인트 세트 사이의 차이를 줄이는 단계를 포함한다.
일부 실시예에서, 실제 인물의 2D 얼굴 이미지로부터 얼굴 위치 맵을 구축하는 방법은 업데이트된 얼굴 위치 맵에 기초하여 제3 키포인트 세트를 최종 키포인트 세트로서 추출하는 단계를 더 포함하고, 상기 제3 키포인트 세트는 상기 얼굴 위치 맵에서 상기 제1 키포인트 세트와 동일한 위치를 갖는다.
일부 실시예에서, 실제 사람의 2D 얼굴 이미지로부터 얼굴 위치 맵을 구축하는 방법은 업데이트된 얼굴 위치 맵에 기초하여 상기 실제 인물의 삼차원(3D) 얼굴 모델을 재구축하는 단계를 더 포함한다.
본 출원의 제2 측면에 따르면, 피사체(subject)의 이차원(2D) 얼굴 이미지에서 색상을 추출하는 방법은, 키포인트 예측 모델(keypoint prediction model)에 기초하여 상기 2D 얼굴 이미지에서 복수의 키포인트를 식별하는 단계; 식별된 복수의 키포인트로부터의 복수의 타깃 키포인트가 표준 얼굴의 대응하는 타깃 키포인트와 정렬될 때까지 상기 2D 얼굴 이미지를 회전시키는 단계; 회전된 2D 얼굴 이미지에서 복수의 부분을 찾아내는 단계 - 각각의 부분은 상기 식별된 복수의 키포인트의 서브세트 각각에 의해 정의됨 -; 상기 2D 얼굴 이미지의 픽셀 값에서, 키포인트의 대응하는 서브세트에 의해 정의되는 복수의 부분 각각에 대한 색상을 추출하는 단계; 및 상기 2D 얼굴 이미지에서 상기 복수의 부분으로부터 추출된 색상을 사용하여 상기 2D 얼굴 이미지의 각각의 얼굴 특징 색상에 매칭되는 피사체의 삼차원(3D) 모델을 생성하는 단계를 포함한다.
본 출원의 제3 측면에 따르면, 삼차원(3D) 머리 변형 모델을 생성하는 방법은, 이차원(2D) 얼굴 이미지를 수신하는 단계; 인공 지능(AI) 모델에 기초하여 상기 2D 얼굴 이미지에서 제1 키포인트 세트를 식별하는 단계; 3D 머리 템플릿 모델의 메시의 복수의 정점에 위치한 사용자 제공 키포인트 주석 세트에 기초하여 제1 키포인트 세트를 제2 키포인트 세트에 매핑하는 단계; 상기 3D 머리 템플릿 모델의 메시에 변형을 수행하여 상기 제1 키포인트 세트와 상기 제2 키포인트 세트 사이의 차이를 줄임으로써 변형된 3D 머리 메시 모델을 획득하는 단계; 및 상기 변형된 3D 머리 메시 모델에 혼합 형상 방법(blendshape method)을 적용하여 상기 2D 얼굴 이미지에 따라 개인화된 머리 모델을 획득 단계를 포함한다.
본 출원의 제4 측면에 따르면, 실제 인물의 이차원(2D) 얼굴 이미지를 사용하여 게임에서 아바타의 표준 얼굴을 맞춤화하는 방법은, 2D 얼굴 이미지의 실제 키포인트(real-life keypoint) 세트를 게임에서 아바타와 연관된 게임 스타일 키포인트 세트로 변환하는 단계; 상기 게임 스타일 키포인트 세트를 K2P(Keypoint to Parameter) 신경망 모델에 적용하여 게임에서 내 아바타의 표준 얼굴의 제어 파라미터 세트를 생성하는 단계; 및 상기 제어 파라미터 세트에 기초하여 상기 게임 내의 아바타의 표준 얼굴을 변형하는 단계 - 변형된 아바타의 얼굴은 2D 얼굴 이미지의 얼굴 특징을 가짐 - 를 포함한다.
본 출원의 제5 측면에 따르면, 전자 장치는 하나 이상의 처리 유닛, 메모리 및 상기 메모리에 저장된 복수의 프로그램을 포함한다. 상기 복수의 프로그램은 하나 이상의 처리 유닛에 의해 실행될 때, 상기 전자 장치로 하여금 전술한 바와 같은 하나 이상의 방법을 수행하게 한다.
본 출원의 제6 측면에 따르면, 컴퓨터로 판독 가능한 비일시적 저장 매체는 하나 이상의 처리 유닛을 구비하는 전자 장치에 의한 실행을 위해 복수의 프로그램을 저장한다. 상기 복수의 프로그램은 상기 하나 이상의 처리 유닛에 의해 실행될 때, 상기 전자 장치로 하여금, 전술한 바와 같은 하나 이상의 방법을 수행하게 한다.
위에서 기재된 다양한 실시예는 본 명세서에서 설명되는 임의의 다른 실시예와 결합될 수 있음에 유의한다. 본 명세서에 기재된 특징 및 이점은 모든 것을 포함하는 것은 아니며, 특히 많은 부가적인 특징 및 이점은 도면, 명세서 및 청구범위에 비추어 본 기술 분야의 통상의 지식을 가진 자에게 명백할 것이다. 또한, 본 명세서에 사용된 언어는 주로 가독성 및 교육 목적으로 선택되었으며, 발명 주제를 기술하거나 제한하기 위해 선택된 것이 아닐 수 있음에 유의해야 한다.
본 개시를 보다 상세하게 이해할 수 있도록, 다양한 실시예의 특징을 참조하여 보다 구체적인 설명이 이루어질 수 있으며, 그 중 일부는 첨부된 도면에 예시되어 있다. 그러나, 첨부된 도면은 단지 본 개시의 관련 특징을 예시한 것일 뿐이며, 따라서 설명이 다른 유효한 특징을 허용할 수 있기 때문에 한정하는 것으로 간주되어서는 안 된다.
도 1은 본 개시의 일부 구현에 따른 예시적인 키포인트 정의를 나타낸 도면이다.
도 2는 본 개시의 일부 구현에 따른 예시적인 키포인트 생성 프로세스를 나타낸 블록도이다.
도 3은 본 개시의 일부 구현에 따라 개략적인 초기 위치 맵을 변환하는 예시적인 프로세스를 나타낸 도면이다.
도 4는 본 개시의 일부 구현에 따라 전체 얼굴 영역을 커버하지 않는 예시적인 변환된 위치 맵을 나타낸 도면이다.
도 5는 본 개시의 일부 구현에 따라 전체 얼굴 영역을 커버하도록 변환된 위치 맵을 정제하는 예시적인 프로세스를 나타낸 도면이다.
도 6은 본 개시의 일부 구현에 따른 위치 맵 정제 알고리즘의 일부 예시적인 결과를 나타낸 도면이다.
도 7a 및 도 7b는 본 개시의 일부 구현에 따른 최종 위치 맵과 개략적인 초기 위치 맵의 일부 예시적인 비교를 나타낸다.
도 8a는 본 개시의 일부 구현에 따른 예시적인 안경 분류 네트워크 구조를 나타낸 도면이다.
도 8b는 본 개시의 일부 구현에 따른 예시적인 여성 두발 예측 네트워크 구조를 나타낸 도면이다.
도 8c는 본 개시의 일부 구현에 따른 예시적인 남성 두발 예측 네트워크 구조를 나타낸 도면이다.
도 9a는 본 개시의 일부 구현에 따른 일부 예시적인 안경 분류 예측 결과를 나타낸다.
도 9b는 본 개시의 일부 구현에 따른 일부 예시적인 여성 두발 예측 결과를 도시한다.
도 9c는 본 개시의 일부 구현에 따른 일부 예시적인 남성 두발 예측 결과를 도시한다.
도 10은 본 개시의 일부 구현에 따른 실제 인물(real-life person)의 2D 얼굴 이미지로부터 얼굴 위치 맵을 구축하는 예시적인 프로세스를 나타낸 흐름도이다.
도 11은 본 개시의 일부 구현에 따른 예시적인 색상 추출 및 조정 프로세스를 나타낸 흐름 도면이다.
도 12는 본 개시의 일부 구현에 따른 예시적인 피부 색(skin color) 추출 방법을 나타낸다.
도 13은 본 개시의 일부 구현에 따른 예시적인 눈썹 색(eyebrow color) 추출 방법을 나타낸다.
도 14는 본 개시의 일부 구현에 따른 예시적인 눈동자 색(pupil color) 추출 방법을 나타낸다.
도 15는 본 개시의 일부 구현에 따른 모발 색(hair color) 추출 방법에 사용되는 예시적인 모발 색 추출 부분을 나타낸다.
도 16은 본 개시의 일부 구현에 따른 모발 색 추출 부분 내의 모발 픽셀과 피부 픽셀 사이의 예시적인 분리를 나타낸다.
도 17은 본 개시의 일부 구현에 따른 예시적인 아이섀도우 색(eyeshadow color) 추출 방법을 나타낸다.
도 18은 본 개시의 일부 구현에 따른 일부 예시적인 색 조정 결과를 나타낸다.
도 19는 본 개시의 일부 구현에 따른 실제 인물의 2D 얼굴 이미지로부터 색상을 추출하는 예시적인 프로세스를 나타낸 흐름도이다.
도 20은 본 개시의 일부 구현에 따른 예시적인 머리 아바타 변형 및 생성 프로세스를 나타낸 흐름 도면이다.
도 21은 본 개시의 일부 구현에 따른 예시적인 머리 템플릿 모델 구성을 나타낸 도면이다.
도 22는 본 개시의 일부 구현에 따른 사실적인 스타일(realistic style)의 3D 모델 및 만화 스타일의 3D 모델에 대한 일부 예시적인 키포인트 마킹을 나타낸 도면이다.
도 23은 본 개시의 일부 구현에 따른 템플릿 모델 렌더링, 수동으로 마킹된 키포인트와 AI가 검출한 키포인트 사이의 예시적인 비교를 나타낸 도면이다.
도 24는 본 개시의 일부 구현에 따른 예시적인 삼각형의 아핀 변환(affine transformation)을 나타낸 도면이다.
도 25는 본 개시의 일부 구현에 따른 혼합 형상(blendshape) 프로세스가 있거나 없는 일부 머리 모델 변형 결과의 예시적인 비교를 나타낸 도면이다.
도 26은 본 개시의 일부 구현에 따른 상이한 가중치를 갖는 아핀 변형 및 이중 조화 변형의 예시적인 비교를 나타낸 도면이다.
도 27은 본 개시의 일부 구현에 따른 사실적인 템플릿 모델을 사용하여, 무작위로 선택된 일부 여성 사진으로부터 자동으로 생성되는 일부 예시적인 결과를 나타낸다.
도 28은 본 개시의 일부 구현에 따라 실제 인물의 2D 얼굴 이미지로부터 3D 머리 변형 모델을 생성하는 예시적인 프로세스를 나타낸 흐름도이다.
도 29는 본 개시의 일부 구현에 따른 예시적인 키포인트 처리 흐름 단계를 나타낸 도면이다.
도 30은 본 개시의 일부 구현에 따른 예시적인 키포인트 평활화 프로세스를 나타낸 도면이다.
도 31은 본 개시의 일부 구현에 따른 K2P(keypoints to control parameters) 변환 프로세스에 대한 예시적인 키포인트를 나타낸 블록도이다.
도 32는 본 개시의 일부 구현에 따른 모바일 게임의 자동 얼굴 생성의 일부 예시적인 결과를 나타낸다.
도 33은 본 개시의 일부 구현에 따라 실제 인물의 2D 얼굴 이미지를 사용하여 게임에서 아바타의 표준 얼굴을 맞춤화하는 예시적인 프로세스를 나타낸 흐름도이다.
도 34는 본 개시의 일부 구현에 따라 이미지 처리 장치의 예시적인 하드웨어 구조의 개략도이다.
통상적인 관행에 따라, 도면에 예시된 다양한 특징은 축척에 맞게 그려지지 않을 수 있다. 따라서, 다양한 특징의 치수는 명확성을 위해 임의로 확대 또는 축소된 것일 수 있다. 또한 일부 도면은 주어진 시스템, 방법 또는 디바이스의 모든 구성 요소를 나타내지 않을 수 있다. 마지막으로, 명세서와 도면 전반에 걸쳐 유사한 참조 번호가 유사한 특징부를 나타내기 위해 사용될 수 있다.
이제 첨부 도면에 예를 나타낸 특정 구현에 대해 상세히 참조할 것이다. 다음의 상세한 설명에서, 본 명세서에 제시된 주제의 이해를 돕기 위해 많은 비제한적 세부사항이 제시된다. 그러나 청구범위의 범위를 벗어나지 않고 다양한 대안이 사용될 수 있고 주제가 이러한 구체적인 세부사항 없이 실시될 수 있다는 것이 당업자에게 명백할 것이다. 예를 들어, 본 명세서에 제시된 주제가 많은 유형의 전자 디바이스에서 구현될 수 있다는 것이 당업자에게 명백할 것이다.
본 출원의 실시예들을 더 상세히 설명하기 전에, 본 출원의 실시예에 관련된 명칭 및 용어에 대해 설명한다.
얼굴 키포인트: 예컨대, 눈꼬리(corners of eyes), 턱, 코끝 및 입꼬리(corners of mouth)와 같은 특정 얼굴 부분의 모양을 결정하는 미리 정의된 랜드마크(landmark).
얼굴 부분: 얼굴 경계(face border), 눈, 눈썹, 코, 입 및 기타 부분.
얼굴 재구축: 사람 얼굴의 3D 지오메트리 구조, 및 메시 모델, 포인트 클라우드 또는 깊이 맵을 포함하는 일반적으로 사용되는 표현을 재구축한다.
RGB 이미지: 적색, 녹색, 청색의 세 채널 이미지 포맷.
위치 맵: 3D 사람 얼굴의 표현인 얼굴 영역의 x, y, z 좌표를 저장하기 위해 일반 이미지 포맷의 빨강, 녹색, 파랑 채널을 사용한다.
얼굴 특징 분류: 안경 분류가 있거나 없는 헤어스타일 분류를 포함한다.
합성곱 신경망(convolutional neural network, CNN): 시각적 이미지를 분석하는 데 가장 일반적으로 적용되는 심층 신경망 클래스.
기본 네트워크: 특징 추출기(feature extractor) 역할을 하기 위해 하나 이상의 다운스트림 태스크에 의해 사용되는 CNN과 같은 네트워크.
라플라시안 연산자(Laplacian operator): 유클리드 공간(Euclidean space)에서 함수 기울기의 발산에 의해 주어지는 미분 연산자.
미분 가능한 다양체(differentiable manifold): 미적분을 수행할 수 있도록 선형 공간과 국부적으로 유사한 위상 공간(topological space)의 일종.
이중 조화 함수(biharmonic function): 제곱 라플라시안 연산자가 0인 4차 미분 가능 함수로, 미분 가능한 다양체에서 정의된다.
키포인트 주도 변형(keypoint-driven deformation): 특정 정점의 위치를 변경하여 메시를 변형하는 방법의 클래스.
이중 조화 변형(biharmonic deformation): 일부 경계 조건을 갖는 이중 조화 함수의 최적화를 채용하는 변형 방법.
아핀 변형(Affine deformation): 메시 변형의 목적을 달성하기 위해 삼각형의 아핀 변환을 최적화하는, 본 명세서에서 제안된 키포인트 주도 변형 방법.
얼굴 모델: 미리 정의된 타깃 게임에서 표준 얼굴의 메시.
골격/슬라이더(Bones/Sliders): 얼굴 모델을 변형하기 위한 제어 파라미터.
전술한 바와 같이, 입력 2D 이미지 및 2D 키포인트 모두를 3DMM 파라미터에 맞추기 위해 최적화 프로세스에 공급하더라도, 최적화는 기초(즉, 3D 얼굴 모델 세트) 기초한 3D 얼굴 모델의 맞춤과 2D 키포인트의 충실도 사이에서 균형을 이루어야 한다. 이러한 최적화는 2D 입력 키포인트를 무시하는 획득된 3D 얼굴 모델로 이어져 입력 2D 키포인트에 의해 가져온 세부적인 얼굴 정보가 희생된다. 기존의 3D 얼굴 재구축 방법 중에서, 얼굴 캡처 솔루션은 정확한 재구축을 생성할 수 있지만, 비용과 시간이 많이 소요되며, 획득한 데이터도 얼굴 특징에 있어 제한된 변형을 나타낸다(배우 수가 제한됨). 반면, 얼굴 모델 기반 방법은 2D 이미지 또는 2D 랜드마크 주석을 입력으로 사용할 수 있지만, 획득한 3D 모델은 정확하지 않다. 컴퓨터/모바일 게임의 빠른 개발 요구사항을 충족하려면, 바람직한 3D 모델 정확도를 생성하는 것과 필요한 비용 및 시간을 줄이는 것이 모두 필요하다. 이러한 요구사항을 충족시키기 위해 본 명세서에 개시된 새로운 3D 실측 얼굴 모델 생성 알고리즘은 2D 이미지, 2D 키포인트 주석 및 대략적인 3D 얼굴 모델(위치 맵 포맷)을 입력으로 받아, 대략적인 3D 모델을 2D 키포인트에 기초하여 변환하고, 마지막으로 세부적인 얼굴 특징이 잘 보존된 3D 얼굴 모델을 생성한다.
얼굴 재구축 및 키포인트 예측의 주요 문제를 해결하는 것 외에, 얼굴 특징 분류를 위한 다중 태스크 학습 및 전이 학습 기반 접근법도 여기에서 공개되며, 부분적으로는 얼굴 재구축 및 키포인트 예측 프레임워크 위에 구축된다. 특히, 얼굴 재구축 및 키포인트 예측의 기본 네트워크를 재사용하여, 안경 분류(안경 유무)가 다중 태스크 학습을 통해 수행된다. 기존 얼굴 재구축 및 키포인트 예측 프레임워크 위에서 선형 분류기(linear classifier)가 훈련되는데, 이는 기존 모델을 크게 재사용하고 이미지 특징 추출을 위해 다른 더 큰 네트워크를 도입하는 것을 피한다. 또한 남성과 여성 헤어스타일 분류를 위해 다른 공유 기반 네트워크가 사용된다. 헤어스타일은 얼굴 키포인트 또는 3D 얼굴 모델을 보완하는 중요한 얼굴 특징의 한 유형이다. 사용자를 위한 3D 아바타를 만드는 과정에서 헤어스타일과 안경 예측을 추가하면 사용자의 얼굴 특징을 더 잘 반영하고 더 나은 개인화 경험을 제공할 수 있다.
얼굴 키포인트 예측은 수십 년 동안 컴퓨터 비전 분야의 연구 주제였다. 최근 몇 년간 인공 지능과 심층 학습의 발전으로, 합성곱 신경망(CNN)이 얼굴 키포인트 예측의 진행을 촉진한다. 3D 얼굴 재구축과 얼굴 키포인트 검출은 서로 얽힌 두 가지 문제로, 하나를 해결하면 다른 하나를 단순화할 수 있다. 전통적인 방법은 먼저 2D 얼굴 키포인트 검출을 해결한 다음, 추정된 2D 얼굴 키포인트에 기초하여 3D 얼굴 모델을 추가로 추론하는 것이다. 그러나, 이미지에서 얼굴이 기울어져 있는 경우(끄덕거리거나 고개를 흔드는 경우), 특정 얼굴 키포인트가 가려져 잘못된 2D 얼굴 키포인트 추정으로 이어져, 잘못된 2D 얼굴 키포인트 위에 구축되는 3D 얼굴 모델은 부정확해진다.
실측 데이터가 심층 학습 기반 방법의 상한을 결정하기 때문에, 기존의 3D 얼굴 모델 데이터 세트는 그 수에 제한이 있을 뿐만 아니라 학술 연구에만 사용할 수 있다. 반면에 얼굴 모델 기반 방법은 상용 라이선스가 필요한 BFM(Basel Face Model) 또는 SFM(Surrey Face Model)을 사용해야 한다. 높은 정확도와 대량의 3D 실측은 얼굴 재구축 또는 키포인트 추정 모델을 훈련하는 데 가장 중요한 문제가 된다.
얼굴 키포인트 예측 외에, 얼굴 특징 분류는 사용자 3D 아바타 생성의 중요한 측면이다. 예측된 얼굴 키포인트로, 사용자의 얼굴 부분(즉, 눈, 눈썹, 코, 입, 얼굴 윤곽)의 스타일 변환만 수행될 수 있다. 그러나 사용자의 얼굴 특징을 더 잘 반영하기 위해서는 사용자의 헤어스타일을 매칭하고, 사용자가 안경을 착용한 경우 안경을 입력 이미지에 추가하는 것이 매우 도움이 된다. 이러한 요구사항에 기초하여, 남성/여성 헤어스타일 예측 및 안경 예측(유/무)을 달성하기 위해 다중 태스크 학습 및 전이 학습 기반 얼굴 특징 분류 접근법이 개발되어, 생성된 얼굴 아바타를 더욱 개인화하여 사용자 경험을 향상시킨다.
일부 실시예에서, 얼굴의 주요 부분의 3차원 형상을 나타내기 위해, 키포인트 표현이 도 1에 도시된 바와 같이 사용된다. 도 1은 본 개시의 일부 구현에 따른 예시적인 키포인트 정의를 나타낸 도면이다. 키포인트는 얼굴의 특정 특징을 정의하는 시퀀스로 번호가 지정된다. 다시 말해, 키포인트의 시퀀스 번호와 얼굴의 특정 위치 사이에는 매핑 관계가 있다. 예를 들어, 시퀀스 번호 9는 턱 아래에 대응하고 시퀀스 번호 21은 코끝에 대응하는 등이다. 키포인트는 얼굴의 윤곽, 눈의 윤곽, 그리고 눈썹의 윤곽과 같이, 얼굴의 주요 부분의 경계에 집중된다. 키포인트가 많을수록 예측이 더 어려워지지만, 모양 표현이 더 정확해진다. 일부 실시예에서, 96개의 키 포인트의 정의는 도 1에서 채택된다. 일부 실시예에서, 사용자는 자신의 필요에 따라 특정 정의 및 키포인트의 수를 수정할 수 있다.
많은 알고리즘이 사람 얼굴의 키포인트의 3차원 좌표를 예측할 수 있다. 성능이 더 좋은 방법은 대량의 오프라인 3D 학습 데이터를 기초로 하는 심층 학습 알고리즘을 사용한다. 그러나, 일부 실시예에서, 임의의 3차원 키포인트 예측 알고리즘이 사용될 수 있다. 일부 실시예에서, 키포인트의 정의는 고정되어 있지 않으며 사용자는 필요에 따라 정의를 맞춤화할 수 있다.
3D 실측 얼굴 모델 생성 문제를 해결하기 위해, 2D RGB 이미지, 2D 키포인트 주석 및 대략적인 위치 맵을 입력으로 사용하는 다음과 같은 자동 알고리즘이 개발되었다. 도 2는 본 개시의 일부 구현에 따른 예시적인 키포인트 생성 프로세스를 나타낸 블록도이다. 예를 들어, 얼굴의 2D RGB 이미지가 입력 이미지(202)로 사용되고 2D RGB 이미지는 대응하는 대략적인 초기 위치 맵(204)을 가지며, 대략적인 초기 맵의 픽셀 각각은 2D RGB 이미지에서 대응하는 얼굴 포인트의 공간 좌표를 나타낸다. 2D 키포인트 주석(208)은 사용자 제공 키포인트 세트를 나타내며, 대략적인 초기 맵(204)에서 검출된 키포인트 세트(206)를 수정하는 데 사용된다.
도 3은 본 개시의 일부 구현에 따라 개략적인 초기 위치 맵을 변환하는 예시적인 프로세스를 나타낸 도면이다.
일부 실시예에서, 입력 얼굴 이미지를 얼굴 특징에 대한 3D 깊이 정보를 포함하는 위치 맵으로 변환하기 위해 3D 재구축 방법이 사용된다. 예를 들어, 위치 맵은 256 x 256 매트릭스 배열이 있는 2D 3색(RGB) 채널 맵일 수 있으며, 각각의 배열 요소는 얼굴 모델상의 3D 위치를 나타내는 좌표(x, y, z)를 갖는다. 3D 위치 좌표(x, y, z)는 각각의 배열 요소에 대한 위치 맵의 RGB 픽셀 값으로 표현된다. 특정 얼굴 특징은 2D 위치 맵 내의 고정된 2D 위치에 있다. 예를 들어, 코끝은 위치 맵 내에서 X=128 및 Y=128의 2차원 배열 요소 위치로 식별될 수 있다. 마찬가지로, 얼굴의 특정 얼굴 특징에 대해 식별된 특정 키포인트는 2D 위치 맵에서 동일한 배열 요소 위치에 위치할 수 있다. 그러나 특정 키포인트는 위치 맵에 대한 다른 입력 얼굴 이미지에 따라 다른 3D 위치 좌표(x, y, z)를 가질 수 있다.
일부 실시예에서, 도 2 및 도 3에 도시된 바와 같이, 입력 이미지(202, 302)로부터 대략적인 초기 위치 맵(204, 304)을 획득하기 위해 3D 재구축 방법이 이용된다. 그런 다음, 입력된 2D 키포인트 주석(208, 308)을 초기 위치 맵의 해당 키포인트(206, 306)의 (x, y) 좌표를 조정하는 데 사용하여, 조정된 위치 맵 매의 키포인트의 조정된 (x, y) 좌표가 주석이 달린 2D 키포인트와 동일하도록 보장한다. 특히, 먼저, 초기 위치 맵 P로부터 96개의 키포인트 세트가 획득된다. 키포인트 인덱스에 기초하여, 96개의 키포인트 세트는 K = k_i라고 하며, 여기서 각 k_i는 키포인트의 2D 좌표(x, y)이고, i = 0, ..., 95이다. 2D 키포인트 주석(208, 308)으로부터, 2D (x, y) 좌표인 96개의 키포인트 A = a_i의 제2 세트가 획득되며, i = 0, ..., 95이다. 두 번째로, 공간 변환 매핑(210. 310)이 K에서 A까지 추정되며, T: Ω -> Ω으로 정의되고, 여기서 Ω ⊂ R^2이다. 그 다음, 획득된 변환 T를 초기 위치 맵 P에 적용하여 변환된 위치 맵 P'(212, 312)를 획득한다. 이러한 방식으로, 변환된 위치 맵 P'(212, 312)는 입력 이미지(202, 302)에서 사람의 세부적인 얼굴 특징을 보존함과 동시에 변환된 위치 맵 P'(212, 312)는 합리적인 3D 깊이 정보이다. 따라서, 여기에 개시된 솔루션은 비싸고 시간 소모적인 얼굴 캡처 시스템을 사용하지 않도록 3D 실측 정보를 생성하기 위한 정확하고 실용적인 대안 솔루션을 제공한다.
일부 실시예에서, 96개의 얼굴 키포인트는 전체 얼굴 영역(즉, 눈썹 아래, 얼굴 윤곽의 내부)의 일부만을 커버하기 때문에, 예를 들어 도 3에서, 귀에서 턱까지의 키포인트는 아래턱을 따라 있지만, 눈에 보이는 얼굴 윤곽에는 없다. 입력 이미지에서 얼굴이 기울어진 경우, 전체 얼굴 영역이 함께 연결된 키포인트의 윤곽선에 의해 커버되지 않는다. 또한 수동 키포인트 주석을 수행하는 경우, 이미지의 얼굴이 기울어져 있는지 여부에 관계없이, 키포인트는 눈에 보이는 얼굴 윤곽선을 따라서만 레이블이 지정될 수 있다(즉, 가려진 키포인트에 정확하게 주석을 달 수 있는 방법 없음). 그 결과, 변환된 위치 맵 P'(212, 312)에서, 얼굴 영역의 일부는 변환 매핑 T(210, 310)가 그 부분(region)에서 추정치(estimation)를 가지지 않아, 유효한 값을 갖지 못한다. 또한 이마 영역는 눈썹보다 위에 있기 때문에, T도 그 영역에 대한 추정치가 없다. 이러한 모든 문제는 변환된 위치 맵 P'(212, 312)가 특정 영역에서 유효한 값을 가지지 못하게 한다. 도 4는 본 개시의 일부 구현에 따라 전체 얼굴 영역을 커버하지 않는 예시적인 변환된 위치 맵을 나타낸 도면이다.
도 4에서, 상단 원(402, 406)은 이마 영역을 강조하고 오른쪽 원(404, 408)은 키포인트 윤곽이 눈에 보이는 얼굴 윤곽보다 작은 부분을 나타낸다.
일부 실시예에서, 위의 문제를 해결하고 얼굴 이미지에 일반적으로 존재하는 기울어진 얼굴에 강건한 알고리즘을 만들기 위해, 도 2에 도시된 바와 같은 정제 프로세스(refinement process)(214)가 사용된다. 변환된 위치 맵으로부터의 키포인트는 머리 포즈와 대략적인 3D 얼굴 모델에 기초하여, 보이는 얼굴 윤곽과 매칭되도록 얼굴 윤곽을 따라 이동된다(shifted). 그후, 얼굴 윤곽 영역의 누락된 값을 획득한 위치 맵에 채울 수 있다. 그러나 이마 부분은 여전히 누락되어 있다. 이마 부분을 커버하기 위해, 두 키포인트 세트 K와 A에 이미지의 네 모서리에 있는 8개의 랜드마크를 추가함으로써 제어 포인트가 확장된다.
도 5는 본 개시의 일부 구현에 따라 전체 얼굴 영역을 커버하기 위해 변환된 위치 맵을 정제하는 예시적인 프로세스를 나타낸 도면이다. 위치 맵 정체 처리는 도 5에 도시되어 있다.
일부 실시예에서, 머리가 왼쪽 또는 오른쪽으로 기울어져 있는지를 결정하기 위해 대략적인 위치 맵 P에 기초하여 머리 자세가 먼저 결정되고, 왼쪽 또는 오른쪽은 3D 얼굴 모델 공간에서 정의된다(예: 도 5에 도시된 바와 같이, 얼굴이 왼쪽으로 기울어짐). 얼굴이 왼쪽 또는 오른쪽으로 기울어져 있다는 결정에 기초하여, 얼굴 윤곽의 해당하는 쪽의 키포인트를 조정한다. 얼굴 윤곽의 오른쪽 키포인트는 1∼8의 인덱스를 가지고, 얼굴 윤곽의 왼쪽 키포인트는 10∼17의 인덱스를 가진다. 왼쪽으로 기울어진 얼굴을 예로 사용하면, 초기 위치 맵 P의 2D 투영이 계산되어 도 5에 도시된 이미지(502)와 같은 깊이 맵을 얻는다. 왼쪽 얼굴 윤곽 키포인트 k_i, i = 10, ..., 17은 깊이 맵의 경계에 도달할 때까지 개별적으로 오른쪽으로 이동된다. 그런 다음 새로운 좌표를 사용하여 원래 키포인트 위치를 대체한다. 마찬가지로, 얼굴이 오른쪽으로 기울어졌을 때, 처리된 키포인트는 k_i, i=1, ..., 8로 인덱싱되고 검색 방향은 왼쪽이다. 얼굴 윤곽 키포인트를 조정한 후, 업데이트된 키포인트는 도 5의 이미지(504)로 시각화되고 위치 맵의 업데이트된 커버리지는 도 5의 이미지(506)로 도시된다. 업데이트된 위치 맵은 얼굴 윤곽에서 더 나은 얼굴 커버리지를 가지지만, 이마 영역에는 여전히 누락된 값이 있다.
일부 실시예에서, 이마 영역을 커버하기 위해, 2개의 앵커 포인트가 추가 키포인트 k_i, i = 96, ..., 103으로서 이미지 도메인 Ω의 각 코너에 추가되어 (도 5의 이미지(508)에 도시된 바와 같이) 업데이트된 키포인트 세트 K'를 얻는다. 업데이트된 A'를 얻기 위해 수동 주석 키포인트 세트, a_i, i = 96, ..., 103에 대해 동일한 작업이 수행된다. 업데이트된 키포인트 세트 K' 및 A'를 사용하여, 변환 매핑 T'를 다시 추정한 다음, 초기 위치 맵 P에 적용하여 최종 위치 맵 P''(도 2의 216)를 획득하여 (도 5의 이미지(510)에 도시된 바와 같이) 전체 얼굴 영역을 커버한다. 최종 키포인트(218)는 최종 위치 맵(216)으로부터 도출된다.
도 6은 본 개시의 일부 구현에 따른 위치 맵 정제 알고리즘의 일부 예시적인 결과를 나타낸 도면이다. 602는 초기 변환된 위치 맵의 예시이다. 604는 얼굴 윤곽을 고정한 후 업데이트된 위치 맵의 예시이다. 606은 최종 위치 맵의 예시이다.
도 7a 및 도 7b는 본 개시의 일부 구현에 따른 대략적인 초기 위치 맵에 대한 최종 위치 맵의 일부 예시적인 비교를 나타낸다. 도 7a의 한 예에서, 초기 위치 맵과 관련 3D 모델과 키포인트(702)의 코는 부정확하여 사람의 얼굴 특징(화살표로 강조 표시됨)을 완전히 반영할 수 없지만, 여기에 설명된 방법을 적용한 후 코는 최종 위치 맵의 이미지와 관련 3D 모델과 키포인트(704)(화살표로 강조 표시됨)에 맞춰 잘 조정된다. 도 7b의 두 번째 예에서, 초기 위치 맵과 관련 3D 모델과 키포인트(706)에는 얼굴 윤곽, 벌린 입, 및 코 모양 불일치(화살표로 표시됨)와 같은 다수의 부정확한 점이 있다. 최종 위치 맵과 관련 3D 모델과 키포인트(708)에서 이러한 모든 오류는 수정된다(화살표로 표시됨).
헤어스타일 및 안경 분류는 얼굴 아바타 생성 프로세스를 위한 모바일 게임 애플리케이션에 중요하다. 일부 실시예에서, 다중 태스크 학습 및 전이 학습 기반 솔루션이 이러한 문제를 해결하기 위해 여기에서 구현된다.
일부 실시예에서, 여성 두발 예측을 위해 네 가지 상이한 분류 태스크(머리)가 구현된다. 분류 범주 및 파라미터는 다음과 같다:
분류 머리 1: 곱슬모(curve)
직모(straight)(0); 곱슬모 (1)
분류 머리 2: 길이
짧은 머리(0); 긴 머리(1)
분류 모드 3: 뱅(bang, 앞 단발머리)
뱅 또는 스플릿(split, 가름) 없음(0); 왼쪽 스플릿(1); 오른쪽 스플릿(2); M자 모양(3); 스트레이트 뱅(straight bang)(4); 내추럴 뱅(natural bang)(5); 에어 뱅(air bang)(6)
분류 머리 4: 브레이드(braid, 땋은 머리)
단일 브레이드(0); 둘 이상의 브레이드(1); 단일 번(bun, 쪽진 머리) (2); 둘 이상의 번(3); 기타 (4).
일부 실시예에서, 남성 두발 예측을 위해 세 가지 상이한 분류 태스크(머리)가 구현된다. 분류 범주 및 파라미터는 다음과 같다:
분류 머리 1: 매우 짧음(0), 곱슬머리(curly)(1), 기타(2)
분류 머리 2: 뱅 없음(0), 스플릿뱅(split bang)(1), 내추럴 뱅(2)
분류 머리 3: 왼쪽 스플릿뱅(0) 및 오른쪽 스플릿뱅(1)
일부 실시예에서, 안경 분류는 이진 분류 태스크이다. 분류 파라미터는 다음과 같다:.
안경 안낌(0); 안경 낌(1).
상이한 심층 학습 이미지 분류 모델 중에서, ImageNet에서 최신의 정확도를 달성하는 모델은 EfficientNet, noisy student, 및 FixRes와 같은 일반적으로 큰 모델 크기와 복잡한 구조를 가지고 있다. 특징 추출기의 기본 네트워크로 사용할 아키텍처를 결정할 때, 예측 정확도와 모델 크기가 균형을 이루어야 한다. 실제로, 1%의 분류 정확도 향상은 최종 사용자에게 명백한 변화를 가져오지 않을 수 있지만 모델 크기는 기하급수적으로 증가할 수 있다. 훈련된 모델을 클라이언트 측에 배포해야 할 수 있다는 점을 감안할 때, 더 작은 기본 네트워크는 서버와 클라이언트 측 모두에 유연하게 배포될 수 있다. 따라서 MobileNetV2는 예를 들어 서로 다른 분류 머리에 대한 전이 학습을 수행하기 위한 기본 네트워크로 채택된다. MobileNetV2 아키텍처는 입력에서 확장된 표현을 사용하는 종래의 잔차 모델과 반대되는 잔차 블록의 입력 및 출력이 얇은 병목 현상 계층인 반전된 잔차 구조를 기반으로 한다. MobileNetV2는 중간 확장 계층의 특징을 필터링하기 위해 가벼운 깊이별 합성곱(lightweight depthwise convolution)을 사용한다.
안경 분류를 위해, 다중 태스크 학습 접근법이 사용된다. 키포인트 예측 네트워크를 기본 네트워크로 재사용하고 파라미터를 동결(freezing)하면, U자형 기반 네트워크의 병목 현상 계층에서, 교차 엔트로피 손실이 있는 특징 벡터가 이진 분류기를 훈련하는 데 사용된다. 도 8a는 본 개시의 일부 구현에 따른 예시적인 안경 분류 네트워크 구조를 나타낸 도면이다. 도 8b는 본 개시의 일부 구현에 따른 예시적인 여성 두발 예측 네트워크 구조를 나타낸 도면이다. 도 8c는 본 개시의 일부 구현에 따른 예시적인 남성 두발 예측 네트워크 구조를 나타낸는 도면이다.
도 9a는 본 개시의 일부 구현에 따른 일부 예시적인 안경 분류 예측 결과를 나타낸다. 도 9b는 본 개시의 일부 구현에 따른 일부 예시적인 여성 두발 예측 결과를 나타낸다. 도 9c는 본 개시의 일부 구현에 따른 일부 예시적인 남성 두발 예측 결과를 나타낸다.
도 10은 본 개시의 일부 구현에 따라 실제 인물의 2D 얼굴 이미지로부터 얼굴 위치 맵을 구축하는 예시적인 프로세스를 나타낸 흐름도(1000)이다. 실생활에서, 서로 다른 사람은 서로 다른 얼굴 특성을 가지므로 동일한 얼굴 특성(예: 사람 얼굴의 눈썹 위치)에 대응하는 동일한 키포인트가 매우 다른 공간 좌표를 가질 수 있다. 3D 얼굴 모델을 생성하는 데 사용되는 2D 얼굴 이미지들은 상이한 각도와 상이한 조명 조건에서 캡처되기 때문에, 얼굴 검출의 문제는 더욱 어려워지고 있으며 이 분야에 대한 연구는 컴퓨터 비전 기술 분야에서 매우 활발한 주제였다. 본 출원에서, 실제 인물에서 만화 캐릭터에 이르는 피사체의 2D 얼굴 이미지에서 얼굴 키포인트 검출의 효율과 정확도를 개선하기 위한 여러 가지 방법이 제안되었다. 일부 실시예에서, 동일한 얼굴 이미지의 사용자 제공 얼굴 키포인트 세트는 컴퓨터 구현 방법에 의해 초기에 검출된 얼굴 키포인트 세트를 수정하거나 개선하기 위한 참조로서 제공된다. 예를 들어, 사용자 제공 얼굴 키포인트와 컴퓨터 생성(computer-generated) 얼굴 키포인트 사이에는 그들 각자의 시퀀스 번호에 기초하여 일대일 매핑 관계가 있기 때문에, 컴퓨터 생성 얼굴 키포인트의 정제는 예컨대, 위치 맵에서 그것들의 대응하는 공간 좌표에 의해 측정되는, 두 세트의 얼굴 키포인트 사이의 차이를 줄이는 최적화 문제로 정의된다.
얼굴 위치 맵을 구축하는 프로세스는 2D 얼굴 이미지로부터 대략적인 얼굴 위치 맵을 생성하는 단계(1010)를 포함한다.
프로세스는 또한 대략적인 얼굴 위치 맵에 기초하여 2D 얼굴 이미지에서 제1 키포인트 세트를 예측하는 단계(1020)를 포함한다.
프로세스는 또한 사용자 제공 키포인트 주석에 기초하여 2D 얼굴 이미지에서 제2 키포인트 세트를 식별하는 단계(1030)를 추가로 포함한다.
이 프로세스는 2D 얼굴 이미지에서 제1 키포인트 세트와 제2 키포인트 세트 사이의 차이를 줄이기 위해 대략적인 얼굴 위치 맵을 업데이트하는 단계(1040)를 추가로 포함한다. 예를 들어, 2D 얼굴 이미지의 제1 키포인트 세트와 제2 키포인트 세트 사이의 대응하는 공간 좌표의 차이를 줄임으로써, 대략적인 얼굴 위치 맵에 기초한 2D 얼굴 이미지의 제1 키포인트 세트가 사용자 제공 키포인트 주석에 기초한 2D 얼굴 이미지의 제2 키포인트 세트와 더 유사하도록 수정되며, 이는 종종 더 정확한 것으로 간주되고 제1 얼굴 키포인트 세트의 수정은 제1 키포인트 세트가 생성되는 대략적인 초기인 얼굴 위치 맵의 업데이트를 자동으로 트리거한다. 그러면, 업데이트된 대략적인 얼굴 위치 맵이 2D 얼굴 이미지로부터 더 정확한 키포인트 세트를 예측하는 데 사용될 수 있다. 사용자 제공 키포인트 주석에 기초한 2D 얼굴 이미지의 제2 키포인트 세트가 수동으로 수행되었음을 의미하지 않음에 유의해야 한다. 대신에, 사용자는 주석을 수행하기 위해 다른 컴퓨터 구현 방법을 사용할 수 있다. 일부 실시예에서, 제2 키포인트 세트(예: 10-20)의 수는 제1 키포인트 세트의 수(예: 96 또는 그 이상)의 단지 일부이지만, 제2 키포인트 세트가 제1 키포인트 세트의 전반적인 개선에 훨씬 더 정확한 기여한다게 사실이다.
일 구현에서, 프로세스는 업데이트된 얼굴 위치 맵/최종 위치 맵에 기초하여 제3 키포인트 세트를 최종 키포인트 세트로서 추출하는 단계(1050)를 더 포함하고, 제3 키포인트 세트는 얼굴 위치 맵에서 제1 키포인트 세트와 동일한 위치를 갖는다. 일부 실시예에서, 얼굴 위치 맵에서 키포인트의 위치는 위치 맵에서 배열 요소의 2D 좌표로 표현된다. 위에서 언급한 바와 같이, 업데이트된 얼굴 위치 맵은 사용자 제공 키포인트 주석에 기초하여 2D 얼굴 이미지에서 제2 키포인트 세트의 이점을 얻었고, 따라서 제3 키포인트 세트는 더 정확하고 컴퓨터 비전과 같은 분야에서 보다 정확한 얼굴 검출 또는 보다 정확한 3D 얼굴 모델링을 위한 컴퓨터 그래픽에 사용될 수 있다.
하나의 구현예에서, 단계(1050)에 대한 대안 또는 추가로, 프로세스는 업데이트된 얼굴 위치 맵에 기초하여 실제 인물의 3D 얼굴 모델을 재구축하는 단계(1060)를 더 포함한다. 하나의 예에서, 3D 얼굴 모델은 3D 깊이 모델이다.
추가 구현은 다음 특징 중 하나 이상을 포함할 수 있다.
일부 실시예에서, 업데이트하는 단계(1040)는 대략적인 얼굴 위치 맵을 변환된 얼굴 위치 맵으로 변환하는 단계, 및 변환된 얼굴 위치 맵을 정제하는 단계를 포함할 수 있다. 위에서 언급한 바와 같이, 변환된 얼굴 위치 맵은 대략적인 초기 얼굴 위치 맵보다 입력 이미지에 있는 사람의 더 세부적인 얼굴 특징을 보존할 수 있으므로, 변환된 얼굴 위치 맵에 기초한 3D 얼굴 모델이 더 정확하다.
일부 실시예에서, 변환하는 것은 제1 키포인트 세트와 제2 키포인트 세트 사이의 차이를 학습하는 것으로부터, 대략적인 얼굴 위치 맵으로부터 변환된 얼굴 위치 맵으로의 변환 맵핑을 추정하는 것; 및 대략적인 얼굴 위치 맵에의 변환 매핑을 적용하는 단계를 포함한다.
일부 실시예에서, 정제하는 것은, 2D 얼굴 이미지가 기울어졌다는 결정에 따라, 전체 얼굴 영역을 커버하도록 얼굴 윤곽의 가려진 쪽에서 변환된 얼굴 위치 맵에 대응하는 키포인트를 조정하는 것을 포함한다. 위에서 언급한 바와 같이, 서로 다른 2D 얼굴 이미지는 서로 다른 각도에서 캡처될 수 있으며 이 정제하는 단계는 서로 다른 이미지 캡처 조건에 의해 도입된 편향 또는 오류를 수정하고 2D 얼굴 이미지의 보다 정확한 3D 얼굴 모델을 보존할 수 있다. 또한, 변환된 얼굴 위치 맵은 대략적인 초기 얼굴 위치 맵보다 입력 이미지에 있는 사람의 더 세부적인 얼굴 특징을 보존할 수 있으므로, 변환된 얼굴 위치 맵에 기초하여 3D 얼굴 모델이 더 정확합니다.
일부 실시예에서, 제1 키포인트 세트는 96개의 키포인트를 포함할 수 있다.
일부 실시예에서, 얼굴 위치 맵을 구축하는 프로세스는 얼굴 특징 분류를 포함할 수 있다.
일부 실시예에서, 얼굴 특징 분류는 심층 학습 방법을 통해 이루어진다.
일부 실시예에서, 얼굴 특징 분류는 다중 태스크 학습 또는 전이 학습 방법을 통해 이루어진다.
일부 실시예에서, 얼굴 특징 분류는 두발 예측 분류를 포함한다.
일부 실시예에서, 두발 예측 분류는 곱슬모 길이, 뱅 및 브레이드를 포함할 수 있는 복수의 분류 태스크를 갖는 여성 두발 예측을 포함한다.
일부 실시예에서, 두발 예측 분류는 곱슬모/길이, 뱅 및 모발 스플릿을 포함할 수 있는 복수의 분류 태스크를 갖는 남성 두발 예측을 포함한다.
일부 실시예에서, 얼굴 특징 분류는 안경 예측 분류를 포함한다. 안경 예측 분류는 안경이 있는 경우와 없는 경우를 포함할 수 있는 분류 태스크를 포함한다.
여기에서 개시된 방법 및 시스템은 3D 실측치 생성을 위한 2D 키포인트 주석에 기초하여 정확한 3D 얼굴 모델(즉, 위치 맵)을 생성할 수 있다. 이 접근법은 BFM 및 SFM 얼굴 모델을 사용하지 않을 뿐만 아니라 세부적인 얼굴 특징을 더 잘 보존하여 얼굴 모델 기반 방법으로 인해 이러한 중요한 특징의 손실을 방지한다.
키포인트를 제공하는 것 외에, 헤어스타일 및 안경과 같은 보완적인 얼굴 특징을 제공하기 위해 심층 학습 기반 솔루션이 사용되며, 이는 사용자 입력 얼굴 이미지에 기초하여 얼굴 아바타를 개인화하는 데 필수적이다.
얼굴 특징 분류를 위한 헤어스타일 및 안경 예측이 여기에서 예로서 개시되지만, 프레임워크는 이러한 예시 태시크에 한정되지 않는다. 프레임워크와 솔루션은 다중 작업 학습 및 전이 학습을 기반으로 하며, 이는 여성 메이크업 유형 분류, 남성 수염 유형 분류 및 마스크 유무 분류와 같은 다른 얼굴 특징을 포함하도록 프레임워크를 쉽게 확장할 수 있다. 프레임워크의 디자인은 다양한 컴퓨터 또는 모바일 게임의 요구사항에 기초하여 더 많은 태스크로 확장하기에 적합하다.
일부 실시예에서, 키포인트에 기초한 경량화된(light weighted) 색상 추출 방법이 여기에 도입된다. 경량화된 이미지 처리 알고리즘은 모든 픽셀을 세그먼테이션하지 않고 로컬 픽셀을 빠르게 추정하여 효율을 높이다.
훈련 프로세스 동안, 사용자는 픽셀 레벨 레이블을 가질 필요가 없고, 눈꼬리, 입가(mouth borders), 및 눈썹과 같은 몇 개의 키포인트에만 레이블을 붙이면된다.
여기에 개시된 경량화된 색상 추출 방법은 다양한 게임을 위한 개인화된 얼굴 생성 시스템에서 사용될 수 있다. 더 많은 무료의 개인화된 캐릭터 생성을 제공하기 위해, 많은 게임에서 무료 조정 방법을 채택하기 시작했다. 얼굴 모양을 조정하는 것 외에도 사용자는 다른 색상 조합을 선택할 수 있다. 미적 목적을 위해, 게임에서의 얼굴은 실제 얼굴 텍스처 대신 미리 정의된 텍스처를 사용하는 경우가 많니다. 여기에 개시된 이러한 방법 및 시스템은 사용자가 사진을 업로드하는 것만으로 얼굴의 각 부분의 평균 색상을 자동으로 추출할 수 있게 해준다. 동시에 시스템은 추출된 색상에 따라 텍스처를 자동으로 수정할 수 있으므로, 개인화된 얼굴의 각 부분이 사용자 사진의 실제 색상에 더 가깝게 생성되어, 사용자 경험을 향상시킨다. 예를 들어 사용자의 피부 톤이 대부분의 사람들의 평균 피부 톤보다 어두우면, 게임에서의 캐릭터의 피부 톤도 그에 따라 어두워진다. 도 11은 본 개시의 일부 구현에 따른 예시적인 색상 추출 및 조정 프로세스를 나타낸 흐름 도면이다.
얼굴의 다양한 부분을 찾아내기 위해, 위에서 설명한 도 1에 도시된 바와 같이, 얼굴의 주요 특징 부분에 대해 키포인트가 정의된다. 위에서 설명한 알고리즘이 키포인트 예측에 사용된다. 시맨틱 세그먼테이션 방법과 달리, 각 픽셀을 분류할 필요 없이 이미지에서 키포인트만 예측되므로, 예측 비용과 훈련 데이터의 레이블 지정 비용이 크게 줄어든다. 이러한 키포인트로, 얼굴의 다양한 부분을 대략적으로 찾을 수 있다.
도 12는 본 개시의 일부 구현에 따른 예시적인 피부 색 추출 방법을 나타낸다. 이미지의 특징을 추출하기 위해서는 원본 이미지(1202)의 얼굴 영역을 회전시켜, 회전 정렬 후 이미지(1204)에 도시된 바와 같이, 얼굴 좌측과 우측의 키포인트 1과 17이 표준 얼굴의 좌측과 우측의 대응하는 키포인트와 정렬되도록 한다.
다음에, 피부 톤 픽셀 검사를 위한 영역이 결정된다. 눈의 키포인트 하단 좌표가 검출 영역의 상한으로 선택되고, 코의 하단 키포인트가 검출 영역의 하한으로 선택되고, 좌우 경계는 얼굴 경계 키포인트에 의해 결정된다. 이러한 방식으로, 이미지(1206) 상의 영역(1208)에 도시된 바와 같이 피부 색 검출 영역이 획득된다.
이 영역(1208)의 모든 픽셀이 피부 픽셀은 아니며, 픽셀은 일부 속눈썹, 콧구멍, 팔자 주름, 모발 등을 포함할 수도 있다. 영역은 최종 예측 평균 피부색으로 선택된다. 따라서 이 영역의 모든 픽셀의 R, G, B 값의 중앙값이 최종 예측 평균 피부 색으로 선택한다.
도 13은 본 개시의 일부 구현에 따른 예시적인 눈썹 색 추출 방법을 나타낸다. 눈썹의 평균 색상의 경우, 렌즈에 가까운 쪽의 눈썹인 주요 눈썹이 타깃으로 먼저 선택된다, 일부 실시예에서, 양쪽 눈썹이 주요 눈썹인 경우, 양쪽의 눈썹 픽셀이 추출된다. 왼쪽 눈썹이 주요 눈썹이라고 가정하면, 도 13에 도시된 바와 같이, 키포인트 77, 78, 81, 82로 구성된 사각형 영역이 눈썹 픽셀 검색 영역으로 선택된다. 바깥쪽에 가까운 눈썹이 너무 가늘어서 작은 키포인트 오류의 영향이 커지기 때문이다. 안쪽에 가까운 눈썹은 종종 희박하여 피부 색과 섞일 수 있기 때문에, 중간 눈썹 영역(1302)을 선택하여 픽셀을 수집한다. 그리고 각각의 픽셀은 먼저 평균 피부 색과 비교되어야 하며, 특정 임계값 이상의 차이가 있는 픽셀만 수집된다. 마지막으로, 피부 색과 마찬가지로, 수집된 픽셀의 중앙 R, G, B 값을 최종 평균 눈썹 색으로 선택한다.
도 14는 본 개시의 일부 구현에 따른 예시적인 눈동자 색 추출 방법을 나타낸다. 눈썹 색 추출과 유사하게, 눈동자 색 추출 시, 렌즈에 가까운 주요 눈쪽을 먼저 선택한다. 일부 실시예에서, 양쪽 눈이 주요 눈인 경우, 양쪽의 픽셀이 함께 수집된다. 눈동자 자체 외에도, 눈의 키포인트 내부에 포함된 닫힌 영역에는 속눈썹, 눈의 흰자위 및 반사가 포함될 수 있다. 이것들은 대부분의 최종 픽셀이 동공 자체에서 나오도록 픽셀 수집 과정에서 가능한 한 많이 제거되어야 한다.'
속눈썹 픽셀을 제거하기 위해, 눈의 키포인트는 y축(도 14의 수직 방향)을 따라 일정 거리만큼 안쪽으로 수축되어 도 14에 도시된 영역(1402)을 형성한다. 눈의 흰자위 및 반사(도 14에서 원(1404)으로 도시됨)를 제거하기 위해, 이러한 픽셀은 이 영역(1402)에서 추가로 제외된다. 예를 들어, 픽셀의 R, G 및 B 값이 모두 미리 정의된 임계값보다 크면, 해당 픽셀이 제외된다. 이러한 방식으로 수집된 픽셀은 대부분이 눈동자 자체에서 나온 것임을 보장할 수 있다. 마찬가지로, 중간 색상이 평균 동공 색상으로 사용된다.
일부 실시예에서, 입술 색 추출을 위해, 아랫입술 영역의 검출 픽셀만이 검출된다. 윗입술은 종종 얇아 키포인트 오차에 비교적 민감한 경우가 많으며, 윗입술의 색상이 옅기 때문에 입술 색을 잘 표현하지 못하는 경우가 많다. 따라서 사진을 회전 및 보정한 후, 아랫입술의 키포인트로 둘러싸인 영역의 모든 픽셀이 수집되고, 평균 입술 색을 나타내는 중간 색상이 사용된다.
도 15는 본 개시의 일부 구현에 따른 모발 색 추출 방법에 사용되는 예시적인 모발 색 추출 부분을 나타낸다. 모발 색 추출은 이전의 부분들보다 더 어렵다. 가장 큰 이유는 사람마다 헤어스타일이 독특하고, 사진의 배경이 복잡하고 다양하기 때문이다. 따라서 모발의 픽셀을 찾아내기가 어렵습니다. 모발 픽셀을 정확하게 찾는 한 가지 방법은 신경망을 사용하여 이미지의 모발 픽셀을 세그먼트화하는 것이다. 이미지 세그먼테이션의 주석 비용이 매우 높고, 게임 애플리케이션에 매우 높은 정확도의 색상 추출이 필요하지 않기 때문에, 키포인트의 근사 예측에 기초한 방법이 사용된다.
모발 픽셀을 획득하기 위해, 검출 영역이 먼저 결정된다. 도 15에 도시된 바와 같이, 검출 영역(1502)은 직사각형이다. 아래쪽 경계는 양쪽 눈썹 모서리이고, 높이(세로선 1504)는 눈썹 위쪽 가장자리에서 눈 아래쪽 가장자리까지의 거리(1506)이다. 왼쪽과 오른쪽은 각각 고정 거리를 왼쪽과 오른쪽으로 확장하는 키 포인트 1, 17이다. 이렇게 획득된 모발 픽셀 검출 영역(1502)이 도 15에 도시되어 있다.
도 16은 본 개시의 일부 구현에 따른 모발 색 추출 영역 내의 모발 픽셀과 피부 픽셀 사이의 예시적인 분리를 나타낸다. 일반적으로, 검출 영역은 세 가지 유형의 픽셀, 즉 피부, 모발, 배경의 픽셀을 포함한다. 좀 더 복잡한 경우에는 모자(headwear)도 포함된다. 우리의 검출 영역의 좌우 범위는 비교적 보수적이기 때문에, 포함된 모발 픽셀은 대부분의 경우 배경 픽셀보다 훨씬 더 많은 것으로 가정한다. 따라서 검출 영역의 픽셀을 모발 또는 피부로 구분하는 것이 주요 프로세스이다.
검출 영역의 픽셀의 각 라인에 대해, 피부 색 변화는 종종 연속적이고(예: 밝은 색에서 어두운 색으로), 피부 색과 모발 연결부는 종종 명백한 변화를 갖는다. 따라서, 각 행의 중간 픽셀이 시작점(1608)으로 선택되고, 피부 픽셀은 좌측과 우측에 대해 검출된다. 먼저 비교적 보수적인 임계값을 사용하여 보다 신뢰할 수 있는 피부 색 픽셀을 찾은 다음, 좌우로 확장된다. 이웃 픽셀의 색상이 비교적 가까우면 피부색으로도 마킹된다. 이러한 방법은 피부 색의 그라데이션을 고려하여 비교적 정확한 결과를 얻을 수 있다. 도 16에 도시된 바와 같이, 모발 색 추출 영역(1602) 내에서, 1604와 같은 어두운 영역은 피부색 픽셀을 나타내고, 1606과 같은 밝은 영역은 모발 색 픽셀을 나타낸다. 모발 색 영역 내에서 수집된 모발 색 픽셀의 중앙값 R, G, B 값이 최종 평균 모발 색으로 선택된다.
도 17은 본 개시의 일부 구현에 따른 예시적인 아이섀도우 색 추출 방법을 나타낸다. 아이섀도우 색 추출은 이전 부분들과 조금 다르다. 아이섀도우는 존재할 수도 있고 존재하지 않을 수도 있는 메이크업이기 때문이다. 그래서, 아이섀도우 색을 추출할 때, 먼저 아이섀도우의 존재 여부를 판정하고, 존재하면, 평균 색상을 추출한다. 눈썹과 눈동자의 색 추출과 마찬가지로, 아이섀도우 색 추출은 렌즈에 가까운 주요 눈의 부분에만 수행된다.
먼저, 아이섀도우에 속하는 픽셀을 결정해야 한다. 아이섀도우 픽셀의 검출 영역의 경우, 도 17에 도시된 바와 같이 라인 1704와 1706 내의 영역(1702)이 사용된다. 영역의 좌측과 우측이 눈의 안쪽과 바깥쪽 꼬리로 정의되고, 영역의 상측과 하측은 눈썹의 아래쪽 가장자리와 눈의 위쪽 가장자리이다. 이 영역(1702)에서 가능한 아이섀도우 픽셀에 더하여, 아이섀도우를 추출할 때 제외되어야 하는 속눈썹, 눈썹 및 피부도 있을 수 있다.
일부 실시예에서, 눈썹의 영향을 제거하기 위해, 검출 영역의 위쪽 가장자리가 더 아래로 이동된다. 속눈썹의 영향을 줄이기 위해, 밝기가 특정 임계값 이하인 픽셀은 제외된다. 아이섀도우와 피부색을 구분하기 위해, 각 픽셀의 색조와 평균 피부 색조의 차이를 확인한다. 차이가 특정 임계값보다 큰 경우에만 해당 픽셀을 가능한 아이섀도우 픽셀로서 수집한다. RGB 값 대신 색조를 사용하는 이유는 평균적인 피부 색은 주로 눈 아래에 수집되고, 눈 위의 피부 색은 밝기의 변화가 클 수 있기 때문이다. 색상은 밝기에 민감하지 않기 때문에 색상이 비교적 안정적이다. 결과적으로, 색조는 픽셀이 피부인지 여부를 판단하는 데 더 적합하다.
상기 과정을 통해, 각 검출 영역에 있는 픽셀이 아이섀도우에 속하는지 여부를 판정할 수 있다. 일부 실시예에서, 아이섀도우가 없는 경우, 일부 픽셀이 여전히 아이섀도우로 인식될 수 있는 오류가 발생할 수 있다.
위와 같은 오류를 줄이기 위해, 검출 영역의 각 열을 검사한다. 현재 열의 아이섀도우 픽셀 수가 특정 임계값보다 크면, 현재 열이 아이섀도우 열로 마킹된다. 검출 영역의 너비에 대한 아이섀도우 열의 비율이 특정 임계값보다 크면, 현재 이미지에 아이섀도우가 있는 것으로 간주하고, 수집된 아이섀도우 픽셀의 중간 색상을 최종 색상으로 사용한다. 이러한 방식으로, 아이섀도우로 잘못 분류되는 소수의 픽셀이 전체 아이섀도우에 대한 잘못된 판단을 초래하지 않다.
아트 스타일(art style)을 고려할 때, 대부분의 게임은 종종 위의 모든 부분이 색상을 자유롭게 조정하는 것을 허용하지 않다. 색상 조정이 열려 있는 부분의 경우, 미리 정의된 색상 세트에만 매칭시키는 것만 종종 허용된다. 모발을 예로 들어, 헤어스타일에서 다섯 가지 머리 색상을 선택할 수 있는 경우, 자원 팩의 헤어스타일은 각각의 모발 색에 대응하는 텍스처 이미지를 포함할 것이다. 검출 시, 모발 색 예측 결과에 따라 가장 가까운 색상의 텍스처 이미지가 선택되기만 하면, 원하는 모발 렌더링 효과를 얻을 수 있다.
일부 실시예에서, 오직 하나의 색상 텍스처 이미지가 제공되는 경우, 텍스처 이미지의 컬러는 검출된 임의의 색상에 따라 합리적으로 변경될 수 있다. 색상 변환을 용이하게 하기 위해, 일반적으로 사용되는 RGB 색상 공간 표현을 HSV 색상 모델로 변환한다. HSV 색상 모델은 색조 H, 채도 S 및 명도 V의 3차원으로 구성된다. 색조 H는 360도의 색상 범위로 모델에서 표현되며, 적색은 0도, 녹색은 120도, 청색은 240도이다. 채도 S는 스펙트럼 색상과 흰색의 혼합을 나타낸다. 채도가 높을수록 색상이 더 밝다. 채도가 0에 가까워지면 색상은 흰색에 가까워진다. 명도 V는 색상의 밝기를 나타내며 값 범위는 검은색에서 흰색까지이다. 색상 조정 후에, 텍스처 이미지의 HSV 중앙값은 예측된 색상과 매칭할 것으로 예상된다. 따라서, 각 픽셀의 색조 값 계산은 다음과 같이 표현될 수 있다:
Figure pct00011
, 여기서 Hi'와 Hi는 조정 전과 후의 픽셀 i의 색상을 나타내고, H와 H'는 조정 전과 후의 텍스처 이미지 색조의 중앙값을 나타낸다.
끝과 끝이 연결된 연속적인 공간인 색조와 달리 채도와 명도는 0과 1과 같은 경계 특이점(boundary singularity)을 갖는다. 색조 조정과 유사한 선형 처리 방법이 사용되면, 초기 사진 또는 조정된 사진의 중앙값이 0 또는 1에 가까운 경우, 많은 픽셀 값이 채도 또는 명도에서 너무 높거나 너무 낮게 나타날 것이다. 이 현상은 부자연스러운 색상을 유발한다. 이 문제를 해결하기 위해, 다음과 같은 비선형 곡선을 사용하여 픽셀 조정 전후의 채도와 명도를 맞춘다.
Figure pct00012
위의 방정식에서, x 및 y는 각각 조정 전 및 후의 채도 또는 명도 값이다. 유일하게 불확실한 파라미터는
Figure pct00013
이며 다음과 같이 도출될 수 있다:
Figure pct00014
이 방정식은
Figure pct00015
가 0에서 1까지의 구간에 속한다는 것을 보장할 수 있다. 예를 들어 채도를 예로 들면, 초기 중간 채도
Figure pct00016
는 입력 사진에 기초하여 간단히 계산될 수 있다. 그리고 타깃 채도 값 St는 모발 색 추출 및 색 공간 변환을 통해 얻을 수 있다. 따라서
Figure pct00017
이다. 기본 텍스처 이미지의 각 픽셀 Si에 대해, 다음 방정식으로 조정된 값을 계산할 수 있다:
Figure pct00018
. 명도에도 동일한 계산이 적용된다.
조정된 텍스처 사진의 디스플레이 효과를 실제 사진에 더 가깝게 만들기 위해, 다른 부분들에 대해 특별한 처리가 행해진다. 예를 들어, 모발의 채도를 낮게 유지하기 위해,
Figure pct00019
으로 설정한다. 도 18은 본 개시의 일부 구현에 따른 일부 예시적인 색상 조정 결과를 나타낸다. 열(1802)는 특정 게임에 의해 제공되는 일부 디폴트 텍스처 사진을 나타내고, 열(1804)는 동일한 행의 대응하는 디폴트 텍스처 사진에서 열(1804)의 상단에 도시된 실제 사진에 따라 조정된 일부 텍스처 그림을 나타내고, 열(1806)은 동일한 행의 대응하는 디폴트 텍스처 픽처로부터 열(1806)의 상단에 도시된 실제 사진에 따라 조정된 일부 텍스처를 나타낸다.
도 19는 본 개시의 일부 구현에 따라 실제 인물의 2D 얼굴 이미지로부터 색상을 추출하는 예시적인 프로세스를 나타낸 흐름도(1900)이다.
실제 인물의 2D 얼굴 이미지로부터 색상을 추출하는 프로세스는 키포인트 예측 모델에 기초하여 2D 얼굴 이미지에서 복수의 키포인트를 식별하는 단계(1910)를 포함한다.
프로세스는 또한 식별된 복수의 키포인트로부터의 복수의 타깃 키포인트가 표준 얼굴의 대응하는 타깃 키포인트와 정렬될 때까지 2D 얼굴 이미지를 회전시키는 단계(1920)를 포함한다.
프로세스는 회전된 2D 얼굴 이미지에서 복수의 부분을 찾아내는 단계(1930)를 추가로 포함하고, 각각의 부분은 식별된 복수의 키포인트의 각각의 서브세트에 의해 정의된다.
프로세스는 2D 얼굴 이미지의 픽셀 값으로부터 대응하는 키포인트 서브세트에 의해 정의된 복수의 부분 각각에 대한 색상을 추출하는 단계(1940)를 추가로 포함한다.
프로세스는 추출된 색상을 사용하여 2D 얼굴 이미지의 각각의 얼굴 특징 색상을 매칭시키는 실제 인물의 3D 모델을 생성하는 단계(1950)를 추가로 포함한다.
추가 구현은 다음 특징 중 하나 이상을 포함할 수 있다.
일부 실시예에서, 식별하는 단계(1910)에서의 키포인트 예측 모델은 사용자가 수동으로 주석을 단 키포인트로부터 기계 학습에 기초하여 형성된다.
일부 실시예에서, 정렬을 위해 사용되는 회전시키는 단계(1920)에서 선택된 키포인트는 2D 얼굴 이미지의 대칭적인 왼쪽 및 오른쪽에 위치한다.
일부 실시예에서, 단계(1940)에서, 복수의 부분 각각에 대한 평균 색상을 추출하는 것은 대응하는 부분 내의 각각의 정의된 영역에 있는 모든 픽셀의 R, G, B 값의 중앙값을 예측된 평균 색상으로서 선택하는 것을 포함할 수 있다.
일부 실시예에서, 단계(1940)에서 복수의 부분 각각에 대한 평균 색상을 추출하는 것은 피부 부분 내에서 피부 색 추출을 위한 영역을 결정하고, R, G B 값 각각의 중앙값을 선택하는 것을 포함할 수 있다. 피부 색 추출 영역의 모든 픽셀의 B 값을 피부 부위의 예상 평균 색상으로 합니다. 일부 실시예에서, 피부 부분 내 피부 색 추출을 위한 영역은 얼굴상의 눈 아래이고 코 아래쪽 가장자리 위의 영역으로 결정된다.
일부 실시예에서, 단계(1940)에서, 복수의 부분 각각에 대한 평균 색상을 추출하는 것은 복수의 부분 각각에 대한 색상을 추출하는 것은 눈썹 부분 내에서의 눈썹 색 추출을 포함할 수 있고, 눈썹 색 추출은, 한 눈썹이 2D 얼굴 이미지의 뷰어(viwer)에 가까운 쪽에 있다는 결정에 따라, 그 눈썹을 타깃 눈썹으로 선택하는 것; 양 눈썹이 2D 얼굴 이미지의 뷰어에 동일하게 가까이 있다는 결정에 따라, 양 눈썹을 타깃 눈썹으로 선택하는 것; 타깃 눈썹(들) 내의 중간 눈썹 영역(들)을 추출하는 것; 중간 눈썹 영역(들) 내의 각각의 픽셀 값을 평균 피부 색과 비교하는 것; 평균 피부 색과의 픽셀 값 차이가 임계값을 초과하는 중간 눈썹 영역(들) 내의 픽셀을 수집하는 것; 및 눈썹 색 추출을 위해 수집된 픽셀의 R, G, B 값 각각의 중앙값을 눈썹 부분의 예측된 평균 색상으로 선택하는 것을 포함한다.
일부 실시예에서, 단계(1940)에서, 복수의 부분 각각에 대한 색상을 추출하는 것은 눈 부분 내에서의 눈동자 색 추출을 포함할 수 있고, 눈동자 색 추출은, 한 눈이 2D 얼굴 이미지의 뷰어에 가까운 쪽에 있다는 결정에 따라, 눈을 타깃 눈으로 선택하는 것; 양 눈이 2D 얼굴 이미지의 뷰어에 동일하게 가까이 있다는 결정에 따라, 양 눈을 타깃 눈으로 선택하는 것; 속눈썹이 없는 타깃 눈(들) 내의 영역(들)을 추출하는 것; 추출된 영역(들) 내의 각각의 픽셀 값을 미리 결정된 임계값과 비교하는 것; 픽셀 값이 미리 결정된 임계값을 초과하는 추출된 영역(들) 내의 픽셀을 수집하는 것; 및 눈동자 색 추출을 위해 수집된 픽셀의 R, G, B 값 각각의 중앙값을 눈동자의 예측된 평균 색상으로 선택하는 것을 포함한다.
일부 실시예에서, 단계(1940)에서, 복수의 부분 각각에 대한 색상을 추출하는 것은 입술 부분 내에서의 입술 색 추출을 포함할 수 있고, 입술 색 추출은, 아랫입술의 키포인트로 둘러싸인 영역에 있는 모든 픽셀을 수집하는 것, 및 입술 색 추출을 위해 수집된 픽셀의 R, G, B 값 각각의 중앙값을 입술 부분의 예측된 평균 색상으로 선택하는 것을 포함한다.
일부 실시예에서, 단계(1940)에서, 복수의 부분 각각에 대한 색상을 추출하는 것은 모발 부분 내에서의 모발 색 추출을 포함할 수 있고, 모발 색 추출은, 양쪽에서 모발 부분으로 확장되는 이마의 부분을 포함하는 영역을 식별하는 것; 영역의 중앙에서 좌측 경계 및 우측 경계로 미리 결정된 임계값을 초과하는 픽셀 색상 변화를 결정하는 것; 미리 결정된 임계값을 초과하는 픽셀 색상 변화에 기초하여 영역을 모발 영역과 피부 영역으로 구분하는 것; 및 영역 내의 모발 영역에 대한 픽셀의 R, G, B 값 각각의 중앙값을 모발 부분의 예측된 평균 색상으로 선택하는 것을 포함한다.
일부 실시예에서, 양측의 모발 부분으로 확장되는 이마의 부분을 포함하는 영역은 양쪽 눈썹꼬리(eyebrow corner)에 있는 위쪽 경계, 2D 얼굴 이미지의 대칭적인 좌측과 우측에 위치한 키포인트에서 바깥쪽으로 고정된 거리에 있는 왼쪽 경계와 오른쪽 경계, 그리고 눈썹의 위쪽 가장자리(upper edge)에서 눈의 아래쪽 가장자리까지의 거리의 높이를 갖는 직사각형 영역으로 식별된다.
일부 실시예에서, 단계(1940)에서, 복수의 부분 각각에 대한 평균 색상을 추출하는 것은 아이섀도우 부분 내에서의 아이섀도우 색 추출을 포함할 수 있으며, 아이섀도우 색 추출은,
한 눈이 상기 2D 얼굴 이미지의 뷰어에 가까운 쪽에 있다는 결정에 따라, 그 눈을 타깃 눈으로 선택하는 것; 양 눈이 상기 2D 얼굴 이미지의 뷰어에 동일하게 가까이 있다는 결정에 따라, 양 눈을 타깃 눈으로 선택하는 것; 타깃 눈(들)에 가까운 아이섀도우 부분 내의 중간 영역(들)을 추출하는 것; 추출된 중간 영역(들) 내에서 속눈썹을 제외하기 위해 밝기가 미리 결정된 밝기 임계값 이상이고 평균 피부 색조 값과의 픽셀 색조 값 차이가 미리 결정된 임계값을 초과하는 픽셀을 수집하는 것; 추출된 중간 영역(들) 내의 하나의 픽셀 열에서 수집된 픽셀의 수가 임계값보다 크다는 결정에 따라, 그 픽셀 열을 아이섀도우 열로서 레이블을 지정하는 것; 및 추출된 중간 영역의 너비에 대한 아이섀도우 열의 비율이 일정 임계값보다 크다는 결정에 따라, 아이섀도우 색 추출을 위해 수집된 픽셀의 R, G, B 값 각각의 중앙값을 아이섀도우 부분의 예측된 아이섀도우 색상으로 선택하는 것을 포함한다.
일부 실시예에서, 실제 인물의 2D 얼굴 이미지로부터 색상을 추출하는 프로세스는 텍스처 맵의 원래 밝기 및 색상 차이를 유지하면서 평균 색상에 기초하여 텍스처 맵을 변환하는 단계를 추가로 포함할 수 있고, 텍스처 맵을 변환하는 단계는, 평균 색상을 RGB 색공간 표현에서 HSV(색조, 채도, 명도) 색공간 표현으로 변환하는 단계; 및 텍스처 맵의 색상을 조정하여 평균 색상의 중간 HSV 값과 텍스처 맵의 중간 HSV 값 픽셀 사이의 차이를 줄이는 단계를 포함한다.
여기에 개시된 방법 및 시스템은 캐릭터 모델링 및 게임 캐릭터 생성과 같은 상이한 시나리오의 애플리케이션에서 사용될 수 있다. 경량화 방식은 모바일 기기를 비롯한 다른 기기들에 유연하게 적용될 수 있다.
일부 실시예에서, 현재 시스템 및 방법에서 얼굴의 키포인트의 정의는 현재 정의에 한정되지 않으며, 각 부분의 윤곽이 충분히 표현될 수 있는 한 다른 정의도 가능하다. 또한, 일부 실시예에서, 스킴(scheme)에서 직접 반환된 색상은 직접 사용되지 않을 수 있지만, 미리 정의된 색상 리스트와 매칭되어서 추가의 색상 스크리닝 및 제어를 달성할 수 있다.
라플라시안 연산자를 최적화하는 변형 방법은 메시가 미분 가능한 다양체일 것을 요구한다. 그러나 실제로 게임 아티스트가 만든 메시는 종종 중복된 정점, 다양체의 속성을 손상시킬 봉인되지 않은 가장자리(unsealed edge)와 같은 아티팩트를 포함한다. 따라서, 이중 조화 변형과 같은 방법은 메시를 주의 깊게 정리한 후에만 사용할 수 있다. 여기에서 제안하는 아핀 변형 방법은 라플라시안 연산자를 사용하지 않으므로 이러한 강한 제약이 없다.
이중 조화 변형으로 대표되는 변형 방법의 패밀리는 경우에 따라서는 변형 능력의 부적절하다. 라플라시안 연산자를 한 번 푸는 조화 함수는 평활도 요구사항이 낮기 때문에 종종 평활화된 결과를 얻을 수 없다. 고차(>= 3) 라플라시안 연산자를 푸는 다중 조화 함수(poly-harmonic function)는 최소 6차 미분 가능이라는 높은 요구사항으로 인해 많은 메시에서 실패한다. 대부분의 경우, 라플라시안 연산자를 두 번 푸는 이중 조화 변형만이 용인 가능한 결과를 제공할 수 있음이 관찰된다. 그렇더라도 튜닝 자유도가 부족하기 때문에 변형이 여전히 만족스럽지 않을 수 있다. 여기서 제안하는 아핀 변형은 평활도 파라미터를 변경함으로써 미묘한 변형 튜닝을 달성할 수 있으며, 변형 결과의 범위는 이중 조화 변형을 사용하는 것을 포함한다.
도 20은 본 개시의 일부 구현에 따른 예시적인 머리 아바타 변형 및 생성 프로세스를 나타낸 흐름도이다. 본 개시에서 제안된 기술을 사용하여, 머리 메시는 스켈레톤(skeleton)과의 바인딩 없이 적절하게 변형될 수 있다. 따라서, 아티스트에게 필요한 작업량이 크게 줄어든다. 이 기술은 더 나은 일반성을 얻기 위해 다양한 스타일의 메시를 수용한다. 게임 에셋 제작 시, 아티스트는 3DMax 또는 Maya와 같은 도구를 사용하여 머리 모델을 다양한 포맷으로 저장할 수 있지만, 이러한 포맷의 내부 표현은 모두 다각형 메시이다. 다각형 메시는 템플릿 모델이라고 하는 순수한 삼각형 메시로 쉽게 변환될 수 있다. 각각의 템플릿 모델에 대해, 템플릿 모델에 3D 키포인트를 한 번 수작업으로 마킹한다. 그 후, 임의의 사람 얼굴 사진에서 검출 및 재구축된 3D 키포인트에 따라 특징적인 머리 아바타로 변형하는 데 사용할 수 있다.
도 21은 본 개시의 일부 구현에 따른 예시적인 머리 템플릿 모델 구성을 나타낸 도면이다. 머리 템플릿 모델(2102)은 일반적으로 도 21에 도시된 바와 같이 얼굴(2110), 눈(2104), 속눈썹(2106), 치아(2108) 및 모발과 같은 부분으로 구성된다. 스켈레톤의 바인딩 없이, 메시 변형은 템플릿 메시의 연결된 구조에 의존한다. 따라서 템플릿 모델은 이러한 시맨틱 부분으로 분해되어야 하며 얼굴 메시가 먼저 변형되어야 한다. 다른 모든 부분은 얼굴 메시에 대한 특정 키포인트를 설정하고 따라가면 자동으로 조정될 수 있다. 일부 실시예에서, 토폴로지적으로 연결된 모든 부분을 검출하기 위해 상호작용 도구가 제공되며, 사용자는 이를 사용하여 추가 변형을 위해 그러한 시맨틱 부분을 편리하게 내보낼 수 있다.
일부 실시예에서, 인간 얼굴의 이미지 키포인트는 일부 검출 알고리즘 또는 AI 모델을 통해 얻을 수 있다. 메시 변형을 도출하기 위해, 이러한 키포인트는 템플릿 모델의 정점에 매핑되어야 한다. 메시 연결의 무작위성과 3D 인간 키포인트 마킹 데이터의 부족으로 인해, 임의의 머리 모델에 3D 키포인트를 정확하게 자동으로 마킹할 수 있는 도구가 없다. 따라서 수동으로 3D 모델에 키포인트를 신속하게 마킹할 수 있는 상호작용 도구가 개발되었다. 도 22는 본 개시의 일부 구현에 따라 2202, 2204와 같은 사실적인 스타일의 3D 모델 및 2206, 2208과 같은 만화 스타일의 3D 모델에 마킹하는 일부 예시적인 키포인트를 나타내는 도면이다.
마킹의 절차에서, 3D 모델에 마킹된 3D 키포인트의 위치는 사진의 키포인트와 최대한 일치해야 한다. 키포인트는 3D 모델 메시의 불연속 정점에 마킹되므로, 므로 편차의 이입(importing)은 불가피하다. 이러한 편차를 상쇄하기 위한 한 가지 방법은 포즈 처리(pose-processing)에서 적절한 규칙을 정의하는 것이다. 도 23은 본 개시의 일부 구현에 따라 템플릿 모델 렌더링, 수동으로 마킹된 키포인트 및 AI 검출 키포인트 사이의 예시적인 비교를 나타낸 도면이다. 일부 실시예에서, 비교적 사실적으로 만들어진 모델의 경우, 키포인트 검출 및 재구축된 알고리즘이 템플릿 모델(2302)의 렌더링에 적용될 수 있고, 예를 들어 인공 지능에 의한 3D 키포인트(2306)의 결과는 수동으로 마킹된 것(2304)과 추가로 비교되고, 키포인트의 두 그룹 사이의 편차가 계산된다. 사람 사진을 검출하는 경우, 실제 이미지에서 검출된 키포인트로부터 계산된 편차가 줄어들고 인공 마킹의 악영향이 제거된다.
여기에 개시된 아핀 변형 방법은 궁극적으로 선형 방정식의 시스템을 푸는 키포인트 주도 수학적 모델링이다. 여기에 개시된 방법은 검출된 키포인트를 경계조건으로 사용하여 템플릿 메시를 변형하는 한 단계를 취하고 최적화 프로세스에서 다른 제약 조건을 채용한다. 도 24는 본 개시의 일부 구현에 따른 예시적인 삼각형의 아핀 변환을 나타낸 도면이다.
일부 실시예에서, 템플릿 메시로부터 예측된 메시로의 변형은 각각의 삼각형의 아핀 변환의 조합으로 간주된다. 삼각형의 아핀 변환은 3×3 행렬 T와 변환 벡터 d로 정의할 수 있다. 도 24에 도시된 바와 같이, 아핀 변환 후 변형된 정점의 위치는
Figure pct00020
로 표시되며, 여기서
Figure pct00021
은 각각 삼각형의 각 정점을 나타내고
Figure pct00022
는 방정식
Figure pct00023
을 충족하는 삼각형의 법선 방향으로 도입된 점이다. 위의 방정식에서 외적의 결과는 삼각형의 모서리 길이에 비례하도록 정규화된다.
Figure pct00024
를 도입한 이유는 세 정점의 좌표가 유일한 아핀 변환을 결정하기에 충분하지 않기 때문이다.
Figure pct00025
를 도입한 후, 도출된 방정식을 얻는다:
Figure pct00026
이고 행렬 T의 비변환 부분(non-translation part)이 결정된다. 행렬
Figure pct00027
은 템플릿 메시에만 의존하고 다른 변형 계수에 불변하므로, 나중에 선형 시스템을 구축하기 위한 희소 계수 행렬로서 미리 계산될 수 있다.
지금까지 수학 공식에서 아핀 변환 T의 비변환 부분이 표시되었다. 최적화의 선형 시스템을 구축하기 위해, 메시 정점의 수가 N이고 삼각형의 수가 F라고 가정하면, 다음 네 가지 제약 조건이 고려된다:
키포인트 위치의 제약:
Figure pct00028
는 메시 변형 후 검출된 키포인트 위치를 나타낸다..
인접 평활도(adjacency smoothness)의 제약:
Figure pct00029
, 이는 인접한 삼각형 사이의 아핀 변환이 가능한 한 유사해야 함을 의미한다. 인접 관계를 미리 조회하고 저장하여 중복 계산을 피하고 시스템 구축을 위한 성능을 향상시킬 수 있다.
특성의 제약:
Figure pct00030
, 여기서 I는 항등 행렬을 나타낸다. 이 제약 조건은 아핀 변환이 가능한 한 변경되지 않은 상태에 가까워야 함을 의미하며, 이는 템플릿 메시의 특성을 유지하는 데 도움이 된다.
원래 위치의 제약:
Figure pct00031
, 여기서 ci는 변형 전 템플릿 메시 상의 각 정점의 위치를 나타낸다.
최종 제약은 상기 제약의 가중 합산이다:
Figure pct00032
, 여기서 가중치 wk, ws, wi, wl은 가장 강한 것에서 가장 약한 것으로 등급이 매겨진다. 위의 제약 조건을 이용하여, 최종적으로 선형 시스템을 구축할 수 있으며 그 크기는 (F+N)×(F+N)이고, 가중치는 시스템의 대응하는 계수와 곱해진다. 미지수는 각 삼각형에 대한 추가 점
Figure pct00033
외에, 변형 후의 각 정점의 좌표이다. 전자의 용어가 유용하므로,
Figure pct00034
의 결과는 버려진다. 연속 변형 과정에서, 키포인트 위치의 제약 조건을 제외한 모든 제약 조건 행렬이 재사용될 수 있습니다. Affine 변환은 수천 개의 정점이 있는 메시에 대해 일반 개인용 컴퓨터와 지능형 전화에서 30fps의 실시간 성능을 달성할 수 있다.
도 25는 본 개시의 일부 구현에 따른 혼합 형상 프로세스가 있거나 없는 일부 머리 모델 변형 결과의 예시적인 비교를 나타낸 도면이다.
본 개시의 일부 구현에 따른 PE 프로세스.
일부 실시예에서, 게임 아바타의 머리 모델을 변형할 때, 관심 영역은 대개 얼굴뿐이다. 머리와 목의 상단, 뒷면은 변경되지 않은 상태로 유지되어야 한다. 그렇지 않으면 머리와 모발 또는 몸통 사이에 메시 침투(mesh penetration)가 발생할 수 있다. 이 문제를 피하기 위해, 아핀 변형의 결과와 템플릿 메시는 혼합 형상 방식으로 선형 보간된다. 혼합을 위한 가중치는 3D 모델링 소프트웨어에서 칠하거나 사소한 변경으로 이중 조화 또는 아핀 변형으로 계산할 수 있다. 예를 들어, 키포인트에 대한 가중치는 1로 설정하고 머리 모델에는 더 많은 마커(도 25의 2504에서 어두운 점)를 추가하고 가중치를 0으로 설정한다. 일부 실시예에서, 부등식 제약(inequality constraint)은 모든 가중치가 0 내지 1의 범위에 속하도록 강제하기 위해 풀이 과정에서 추가되지만, 그렇게 하면 풀이의 복잡성이 크게 증가할 것이다. 실험을 통해 0보다 작거나 1보다 큰 가중치를 잘라내면 좋은 결과를 얻을 수 있다. 도 25의 2504에 나타낸 바와 같이, 가장 어두운 색상의 모델 부분의 가중치는 1이고, 무색인 모델 부분의 가중치는 0이다. 혼합 가중치 렌더링(2504)에서 밝은 키포인트와 어두운 마커 사이에 자연스러운 전환이 있다. 혼합 형상을 사용하면 변형 후 모델의 뒷면(도 25의 2506에 도시됨)이 원본과 동일하게 유지된다(도 25의 2502에 도시됨). 혼합 형상이 없으면, 변형 후 모델의 뒷면(도 25의 2508에 도시됨)이 원본과 동일하게 유지되지 않는다(도 25의 2502에 도시됨).
일부 실시예에서, 아핀 변형은 이중 조화 변형의 결과를 시뮬레이션하는 것을 비롯한, 제약 조건의 가중치를 조작함으로써 상이한 변형 효과를 달성할 수 있다. 도 26은 본 개시내용의 일부 구현에 따라 상이한 가중치를 갖는 아핀 변형과 이중 조화 변형의 예시적인 비교를 나타낸 도면이다. 도 26에 도시된 바와 같이 평활도는 인접 평활도 가중치 ws와 특성 가중치 wi의 비율이다. 어두운 점이 키포인트이며 색상의 어두움은 정점의 변형된 위치와 원래 위치 사이의 변위를 나타낸다. 모든 변형 결과에서, 한 키포인트는 변경되지 않고 유지되며, 다른 키포인트는 같은 위치로 이동한다. 특성 가중치에 대해 인접 평활도 가중치를 점진적으로 증가시키면, 그에 따라 변형된 구의 평활도도 증가함을 보여준다. 또한, 이중 조화 변형의 결과는 평활도가 10에서 100 사이 어띤가에 속하는 아핀 변형의 결과와 매핑될 수 있다. 이는 아핀 변형이 이중 조화 변형에 비해 변형에 대한 자유도가 더 크다는 것을 나타낸다.
여기에 설명된 작업 흐름을 사용하여, 게임은 머리 아바타의 지능형 생성 기능을 쉽게 통합할 수 있다. 예를 들어, 도 27은 본 개시의 일부 구현에 따라 사실적인 템플릿 모델을 사용하여, 임의로 선택된 일부 여성 사진(도 27에 도시되지 않음)으로부터 자동으로 생성되는 일부 예시적인 결과를 도시한다. 모든 개인화된 머리 아바타는 대응하는 사진의 일부 특성을 반영한다.
도 28은 본 개시의 일부 구현에 따라 실제 인물의 2D 얼굴 이미지로부터 3D 머리 변형 모델을 생성하는 예시적인 프로세스를 도시하는 흐름도(2800)이다.
2D 얼굴 이미지로부터 3D 머리 변형 모델을 생성하는 프로세스는 이차원(2D) 얼굴 이미지, 예를 들어 합성곱 신경망을 수신하는 단계(2810)를 포함한다.
프로세스는 또한 인공 지능(AI) 모델에 기초하여 2D 얼굴 이미지에서 제1 키포인트 세트를 식별하는 단계(2820)를 포함한다.
프로세스는 3D 머리 템플릿 모델에 위치한 사용자 제공 키포인트 주석의 세트에 기초하여 3D 머리 템플릿 모델의 메시의 복수의 정점에 위치한 제2 키포인트 세트에 제1 키포인트 세트를 매핑하는 단계(2830)를 추가로 포함한다.
프로세스는 3D 머리 템플릿 모델의 메시에 변형을 수행하여 제1 키포인트 세트와 제2 키포인트 세트 사이의 차이를 감소시킴으로써 변형된 3D 머리 메시 모델을 획득하는 단계(2840)를 추가로 포함한다. 일부 실시예에서, 제1 세트의 키포인트와 제2 세트의 키포인트 간에 대응관계가 있다. 제2 키포인트 세트를 제1 키포인트 세트와 동일한 공간에 투영한 후, 각각의 제1 키포인트 세트와 제2 키포인트 세트 사이의 위치 차이를 측정하는 함수가 생성된다. 각각의 제1 키포인트 세트와 제2 키포인트 세트 사이의 위치 차이(예: 위치, 인접 평활도, 특성 등)를 측정하는 함수가 최소화되는 경우 3D 머리 템플릿 모델의 메시에 변형을 수행하여, 공간 내의 제2 키포인트 세트를 최적화한다.
이 프로세스는 변형된 3D 머리 메시 모델에 혼합 향싱 방법을 적용하여 2D 얼굴 이미지에 따라 개인화된 머리 모델을 획득하는 단계(2850)를 추가로 포함합니다.
추가 구현은 다음 기능 중 하나 이상을 포함할 수 있다.
일부 실시예에서, 매핑하는 단계(2830)는 2D 얼굴 이미지의 제1 키포인트 세트를 3D 머리 템플릿 모델의 메시의 복수의 정점에 관련시키는 단계; 3D 머리 템플릿 모델의 메시 상의 복수의 정점에 대한 사용자 제공 키포인트 주석 세트에 기초하여 제2 키포인트 세트를 식별하는 단계; 및 얼굴의 각각의 키포인트에 의해 대응하는 식별된 특징에 기초하여 제1 키포인트 세트와 제2 키포인트 세트를 매핑하는 단계를 포함한다.
일부 실시예에서, 제2 키포인트 세트는 이전에 계산된 편차를 사용자 제공 키포인트 주석 세트에 적용함으로써 위치가 결정된다. 일부 실시예에서, 이전에 계산된 편차는 3D 머리 템플릿 모델의 AI 식별된 키포인트의 이전 세트와 3D 머리 템플릿 모델의 메시의 복수의 정점에 대한 사용자 제공 키포인트 주석의 이전 세트 사이에 있다.
일부 실시예에서, 변형을 수행하는 단계(2840)는, 제1 키포인트 세트를 제2 키포인트 세트로 매핑하는 것을 사용하고, 또 제1 키포인트 세트와 관련된 변형에 대한 경계 조건을 사용하여 3D 머리 템플릿 모델의 메시를 변형된 3D 머리 메시 모델로 변형하는 것을 포함할 수 있다.
일부 실시예에서, 변형을 수행하는 단계(2840)는 키포인트의 위치, 인접 평활도, 특징 및 원래 위치 중 하나 이상을 포함하는 변형 최적화 프로세스에서 상이한 제약 조건을 적용하는 것을 더 포함할 수 있다.
일부 실시예에서, 변형을 수행하는 단계(2840)는, 키포인트의 위치, 인접 평활도, 특성 및 원래 위치 중 하나 이상의 가중 합인 변형 프로세스에 제약 조건을 적용하는 것을 더 포함할 수 있다.
일부 실시예에서, 제1 키포인트 세트를 식별하는 단계(2820)는 합성곱 신경망(CNN)을 사용하는 것을 포함한다.
일부 실시예에서, 변형은 라플라시안 연산자가 없는 아핀 변형을 포함한다. 일부 실시예에서, 아핀 변형은 평활도 파라미터를 변경함으로써 변형 튜닝을 달성한다.
일부 실시예에서, 3D 머리 템플릿 모델의 메시는 스켈레톤과의 바인딩 없이 변형될 수 있다. 일부 실시예에서, 얼굴 변형 모델은 사실적인 스타일 모델 또는 만화 스타일 모델을 포함한다.
일부 실시예에서, 단계(2850)에서 혼합 형상 방법을 변형된 3D 머리 메시 모델에 적용하는 것은, 키포인트의 위치에 따라 변형된 3D 머리 메시 모델의 키포인트에 각각의 혼합 가중치를 지정하는 것; 및 다른 혼합 가중치로 키포인트에 다른 수준의 변형을 적용하는 것을 포함한다.
일부 실시예에서, 단계(2850)에서, 혼합 형상 방법을 변형된 3D 머리 메시 모델에 적용하는 것은, 변형된 3D 머리 메시 모델의 뒷면을 변형 전의 3D 머리 템플릿의 원래 뒷면 형상과 동일한 형상으로 유지하는 것을 포함한다.
일부 실시예에서, 템플릿 모델 상의 시맨틱 부분은 눈, 속눈썹 또는 치아로 제한되지 않다. 안경과 같은 장식물은 얼굴 메시에 새로운 키포인트를 추가하고 추적하여 잠재적으로 적응적으로 조정할 수 있다.
일부 실시예에서, 템플릿 모델의 키포인트는 수동으로 추가된다. 일부 다른 실시예에서, 상이한 템플릿 모델에 대한 키포인트를 자동으로 추가하기 위해 심층 학습 기술이 또한 이용될 수 있다.
일부 실시예에서, 아핀 변형의 푸는 절차는 컴퓨팅 성능을 추가로 개선하기 위해 일부 수치 트릭을 이용할 수 있다.
일부 실시예에서, 여기에 개시된 시스템과 방법은 하기에 열거된 것과 같은 많은 장점을 갖는 경량화된 키포인트 기반 얼굴 아바타 생성 시스템(Light-Weighted Keypoints based Face Avatar Generation System)을 형성한다:
입력 이미지에 대한 낮은 요구 사항. 이 시스템과 방법은 얼굴이 카메라를 직접 향할 필요가 없으며 어느 정도의 면내 회전(in-plane rotation), 면외 회전(out-of-plane rotation) 및 폐색(occlusion)은 성능에 명백히 영향을 미치지 않다.
실제 게임과 만화 게임 모두에 적용 가능하다. 현재 시스템은 게임 스타일을 실제 스타일로 한정하지 않으며, 만화 스타일에도 적용될 수 있다.
경량화 및 맞춤화. 본 시스템의 모듈 각각은 비교적 가볍고 모바일 디바이스에 적합하다. 이 시스템의 모듈은 분리되어 있으며 사용자는 다른 게임 스타일에 따라 다른 조합을 채택하여 최종 얼굴 생성 시스템을 구축할 수 있다.
일부 실시예에서, 주어진 단일 사진에 대해, 주요 얼굴이 먼저 검출되고 키포인트 검출이 수행된다. 실제 사진에서, 얼굴은 카메라를 향하지 않을 수 있으며 실제 얼굴은 항상 완벽하게 대칭은 아니다. 따라서 원본 사진의 키포인트는 통일되고 대칭적이며 평활한 키포인트 세트를 얻기 위해 전처리된다. 그런 다음, 큰 눈, 야윈 얼굴과 같은 게임의 특정 스타일에 따라 키포인트를 조정한다. 스타일화된 키포인트를 얻은 후, 스타일화된 키포인트는 게임에서 얼굴 모델의 제어 파라미터(일반적으로 골격 파라미터 또는 슬라이더 파라미터)로 변환된다.
일부 실시예에서, 실제 얼굴의 시야각은 카메라를 직접 향하지 않을 수 있고, 좌우 비대칭 및 키포인트 검출 오류와 같은 문제가 존재할 수 있다. 도 29는 본 개시의 일부 구현에 따른 예시적인 키포인트 처리 흐름 단계를 나타낸 도면이다. 원본 사진(2904)에서 검출된 키포인트는 직접 사용할 수 없으며, 일정한 처리가 필요하다. 여기서 프로세스는 도 29에 도시된 바와 같이 세 단계, 즉 정규화, 대칭 및 평활화로 나뉜다.
일부 실시예에서, 실제 얼굴의 키포인트의 예측에 기초한 게임의 표준 얼굴 모델은 조정될 필요가 있다. 이 프로세스는 게임의 표준 얼굴 모델의 키포인트와 실제 얼굴의 키포인트가 크기, 위치 및 방향 측면에서 정렬되도록 보장해야 한다. 따라서, 예측된 키포인트와 게임 페이스 모델의 키포인트의 정규화(2906)는 스케일 정규화 부분, 변환 정규화 부분, 및 각도 정규화 부분을 포함한다.
일부 실시예에서, 원래 검출의 모든 3차원 얼굴 키포인트는 p로 정의되며, 여기서 i번째 키포인트는 pi={xi, yi, zi}이다. 예를 들어, 정규화된 원점은 키포인트 1번과 17번의 중간점(도 1의 키포인트 정의 참조), 즉 c=(p1 + p17) / 2로 정의된다. 스케일의 경우, 원점에서 1번째와 17번째 키포인트 사이의 거리는 1로 조정되어, 스케일과 평행 이동(translation)으로 정규화된 3차원 키포인트는
Figure pct00035
가 된다.
일부 실시예에서, 스케일 및 평행 이동을 정규화한 후, 얼굴 방향이 추가로 정규화된다. 도 29의 이미지(2902)에 도시된 바와 같이, 실제 사진의 얼굴은 렌즈를 직접 향하지 않을 수 있고, 특정 편향이 있을 것이며, 이는 항상 3개의 좌표축에 존재할 수 있다. 얼굴의 방향이 카메라를 향하도록 x, y, z 좌표축을 따라 얼굴의 예측된 3차원 키포인트을 순차적으로 회전시킨다. x 방향으로 회전시킬 때, 키포인트 18과 24(도 1의 키포인트 정의 참조)의 z좌표가 정렬된다. 즉 콧등의 최상부의 깊이를 코의 하단과 동일한 깊이로 하여, 회전 행렬 RX를 얻는다. y축을 따라 회전시킬 때, 키포인트 1과 17의 z 좌표가 정렬되어 회전 행렬 RY를 얻는다. z축을 따라 회전시킬때, 키 포인트 1과 17의 y 좌표가 정렬되어 회전 행렬 RZ를 얻는다. 따라서, 키포인트의 방향이 정렬되고 정규화된 키포인트가 아래와 같이 표시된다:
Figure pct00036
일부 실시예에서, 정규화된 키포인트의 스케일, 위치 및 각도는 균일하도록 조정되었지만, 획득된 키포인트는 종종 완벽한 얼굴이 아니다. 예를 들어, 콧등은 중앙에서 일직선이 아니며, 얼굴 특징이 대칭적이지 않을 수 있다. 이는 사진 속 실제 얼굴은 표정이나 그 자체의 특성상 완벽한 대칭이 아니며, 키포인트 예측 시 추가적인 오차가 발생하기 때문이다. 실제 얼굴은 대칭이 아닐 수 있지만 게임의 얼굴 모델이 대칭이 아니면 보기 흉하게 보이고 사용자 경험이 크게 저하된다. 따라서 2908에 도시된 바와 같은 키포인트 대칭이 필요한 프로세스이다.
키포인트가 정규화되었기 때문에, 일부 실시예에서, 간단한 대칭 방법은 원래의 y 및 z 좌표를 대체하기 위해 모든 왼쪽 및 오른쪽 대칭 키포인트의 y 및 z 좌표를 평균화하는 것이다. 이 방법은 대부분의 경우 잘 통하지만, 얼굴이 y축 방향으로 큰 각도로 회전하면 성능이 희생된다.
일부 실시예에서, 예로서 도 29의 사람 얼굴을 사용하면, 얼굴이 왼쪽으로 큰 각도로 편향될 때, 눈썹의 일부가 보이지 않을 것이다. 동시에 원근법 때문에 왼쪽 눈이 오른쪽 눈보다 작아질 것이다. 3D 키포인트는 원근 관계로 인한 영향을 부분적으로 보상할 수 있지만 키포인트에 대응하는 3D 키포인트의 2D 투영은 여전히 사진에 유지되어야 한다. 따라서 과도하게 큰 각도의 편향은 3D 키포인트 검출 결과에서 눈과 눈썹의 크기가 확연히 차이가 나게 된다. 각도에 의한 영향에 대처하기 위해, y축 방향의 얼굴 편향 각도가 클 때, 렌즈에 가까운 눈과 눈썹을 주요 눈과 주요 눈썹으로 하고, 반대편에 복사하여 각도 편향으로 인한 오류를 줄인다.
일부 실시예에서, 키포인트의 예측 오류가 불가피하기 때문에, 일부 개별적인 경우에, 대칭된 키포인트는 여전히 실제 얼굴과 매칭되지 않을 수 있다. 실제 얼굴과 얼굴의 특징의 모양은 상당히 다르기 때문에 미리 정의된 파라미터화된 곡선을 사용하여 비교적 정확한 설명을 달성하기 어렵다. 따라서 2910과 같이 평활화를 하는 경우, 얼굴 윤곽, 눈, 눈썹, 아랫입술 등 일부 영역만 평활화하게 된다. 이러한 영역은 기본적으로 단조롭고 매끄럽게 유지된다. 즉 쭉날쭉한 상태가 없다. 이 경우, 타깃 곡선은 항상 볼록 곡선이거나 오목 곡선이어야 한다.
일부 실시예에서, 키포인트가 볼록 곡선(또는 오목 곡선)의 정의를 충족하는지 여부는 관련 경계에 대해 일일이 확인된다. 도 30은 본 개시의 일부 구현에 따른 예시적인 키포인트 평활화 프로세스(2910)를 나타낸 도면이다. 도 30에 도시된 바와 같이, 반성을 잃지 않고, 타깃 곡선은 볼록해야 한다. 각 키포인트(3002, 3004, 3006, 3008, 3010)에 대해, 인접한 좌우 키포인트 라인보다 위에 위치하는지 여부를 확인한다. 조건이 충족되면, 현재 키포인트가 볼록 곡선 요구 사항을 충족한다는 의미이다. 그렇지 않으면, 현재 키 포인트가 왼쪽과 오른쪽 키 포인트를 연결하는 선까지 위로 이동한다. 예를 들어, 도 30에서 키 포인트 3006은 볼록 곡선의 한계를 충족하지 못하고, 위치 3012로 이동될 것이다. 여러 키 포인트가 이동되면, 이동 후 곡선은 볼록 또는 오목한 것으로 보장되지 않을 수 있다. 따라서, 일부 실시예에서, 여러 번의 평활화가 비교적 평활한 키 포인트 곡선을 얻기 위해 사용된다.
서로 다른 게임은 서로 다른 얼굴 스타일을 가지고 있다. 일부 실시예에서, 실제 얼굴의 키포인트는 게임에서 요구하는 스타일로 변환될 필요가 있다. 실제 스타일의 게임 얼굴은 비슷하지만 만화 얼굴은 매우 다르다. 따라서, 키포인트의 양식화에 대한 통일된 표준을 갖기가 어렵다. 실제 사용 시 스타일화의 정의는 특정 게임 스타일에 따라 얼굴의 특성을 조정하는 게임 디자이너에서 비롯된다.
일부 실시예에서, 대부분의 게임에 필요할 수 있는 보다 일반적인 얼굴 조정 방식이 구현된다. 예를 들어, 얼굴 길이 조정, 너비 조정, 얼굴 특징 등. 다양한 게임 아트 스타일, 조정 레벨, 확대/축소 비율 등에 따라 맞춤 정의 보정을 할 수 있다. 동시에, 사용자는 예를 들어 눈 모양을 직사각형으로 변경하는 등의 임의의 특별한 스타일 조정 방법을 맞춤화(사용자 정의)할 수도 있다. 시스템은 모든 조정 방법을 지원할 수 있다.
일부 실시예에서, 양식화된 얼굴의 키포인트를 사용하여, 변형된 얼굴의 키포인트가 타깃 키포인트의 위치에 도달하도록 표준 게임 얼굴이 변형된다. 대부분의 게임은 골격이나 슬라이더와 같은 제어 파라미터를 사용하여 얼굴을 조정하므로 키포인트를 타깃 위치로 이동하려면 제어 파라미터 세트가 필요하다.
서로 다른 게임에서 골격 또는 슬라이더의 정의가 다를 수 있고 언제든지 수정할 가능성이 있기 때문에 키포인트에서 골격 파라미터까지 간단한 파라미터화된 함수를 직접 정의하는 것은 실현 불가능하다. 일부 실시예에서, 기계 학습 방법은 신경망을 통해 키포인트를 파라미터로 변환하는 데 사용되며, 이를 K2P(Keypoints to Parameters) 네트워크라고 한다. 일반적인 파라미터와 키포인트의 수가 크지 않기 때문에(일반적으로 100 미만) 일부 실시예에서는 K-계층의 완전 연결 네트워크가 사용된다.
도 31은 본 개시의 일부 구현에 따른 키포인트-제어파라미터(K2P) 변환 프로세스에 대한 예시적인 키포인트를 나타낸 블록도이다. 기계 학습 방법을 사용하기 위해, 일부 실시예에서, 먼저 골격 또는 슬라이더 파라미터가 무작위로 샘플링되고, 게임 클라이언트(3110)에 공급되며, 생성된 게임 얼굴에서 키포인트가 추출된다. 이러한 방식으로 많은 훈련 데이터를 획득할 수 있다(파라미터 3112 및 키포인트 3114 쌍). 그런 다음 자기 지도 기계 학습 방법(self-supervised machine learning method)이 구현되며 두 단계로 나뉜다: 첫 번째 단계는 P2K(parameters to keypoints) 네트워크(3116)를 훈련하여 키포인트에 대한 게임 파라미터를 생성하는 프로세스를 시뮬레이션하는 것이다. 두 번째 단계에서, 많은 수의 레이블이 지정되지 않은 실제 얼굴 이미지(3102)를 사용하여 실제 얼굴 키포인트(3104)를 생성한 다음 여기에 설명된 방법에 따라 많은 수의 양식화된 키포인트(3106)를 생성한다. 이러한 레이블이 지정되지 않은 양식화된 키포인트(3106)는 자기 지도 학습 훈련 데이터이다. 일부 실시예에서, 키포인트 K 세트는 출력 파라미터 P를 얻는 방법을 학습하기 위해 K2P 네트워크(3108)에 입력된다. 이러한 키포인트에 대응하는 이상적인 파라미터의 실측치를 사용할 수 없기 때문에, P는 첫 번째 단계에서 훈련된 P2K 네트워크(3116)에 추가로 입력되어, 키포인트 K'를 얻는다. 일부 실시예에서, K와 K' 사이의 MSE(Mean Square Error, 평균 제곱 오차) 손실을 계산함으로써, K2P 네트워크(3108)가 학습될 수 있다. 일부 실시예에서, 제2 단계 동안, P2K 네트워크(3116)는 고정되고 계속 조정되지 않을 것이다. P2K 네트워크(3116)의 도움으로, 포인트에 대한 게임 클라이언트(3110)의 파라미터를 제어하는 프로세스는 신경망을 사용하여 시뮬레이션되고, 따라서 두 번째 단계에서의 K2P 네트워크(3108)의 학습을 위한 기반을 마련한다. 이러한 방식으로, 파라미터에 의해 생성된 최종 얼굴은 생성된 타깃 양식화된 얼굴의 키포인트에 가깝게 유지된다.
일부 실시예에서, 동시에, K와 K' 사이의 MSE 손실을 계산할 때 대응하는 가중치를 조정함으로써, 눈의 키포인트와 같은 특정 키포인트에 대한 가중치가 추가된다. 키포인트의 정의가 미리 정의되어 있고 게임 클라이언트의 골격이나 슬라이더의 영향을 받지 않기 때문에, 가중치를 조정하기가 더 쉽다.
일부 실시예에서, 실제 애플리케이션에서, 모델의 정확도를 향상시키기 위해, 분리될 수 있는 부분에 대해 신경망이 개별적으로 훈련될 수 있다. 예를 들어 일부 골격 파라미터는 눈 영역의 키포인트에만 영향을 주고, 다른 파라미터는 이 영역에 영향을 미치지 않는 경우, 이러한 파라미터와 키포인트의 이 부분은 독립 영역의 세트를 형성한다. 개별 K2P 모델(3108)은 그러한 부분의 그룹 각각에 대해 훈련되며, 각 모델은 더 가벼운 네트워크 설계를 채택할 수 있다. 이는 모델의 정확도를 더욱 향상시킬 수 있을 뿐만 아니라 계산 복잡도도 줄일 수 있다.
도 32는 본 개시의 일부 구현에 따른 모바일 게임의 자동 얼굴 생성의 일부 예시적인 결과를 나타낸다. 도 32에 도시된 바와 같이, 원본 얼굴 이미지(3202 및 3206)로부터 게임 얼굴 아바타 이미지 생성(3204 및 3208)까지의 결과가 도시되어 있다. 일부 실시예에서, 양식화할 때, 열린 입은 닫히고, 코, 입, 얼굴 모양, 눈 및 눈썹에 다른 수준의 제한 및 만화화가 적용된다. 최종 생성된 결과는 여전히 특정 인간 얼굴 특성을 유지하고 게임 스타일의 미적 요구 사항을 충족한다.
도 33은 본 개시의 일부 구현에 따라 실제 인물의 2D 얼굴 이미지를 사용하여 게임에서 아바타의 표준 얼굴을 맞춤화하는 예시적인 프로세스를 나타낸 흐름도(3300)이다.
실제 인물의 2D 얼굴 이미지를 사용하여 게임에서 아바타의 표준 얼굴을 맞춤화하는 프로세스는 2D 얼굴 이미지에서 실제 키포인트 세트를 식별하는 단계 3310을 포함한다.
프로세스는 또한 실제 키포인트 세트를 게임의 아바타와 연관된 게임 스타일 키포인트 세트로 변환하는 단계(3320)를 포함한다.
프로세스는 키포인트-파라미터(K2P) 신경망 모델을 아바타 키포인트 세트에 적용함으로써 게임에서 아바타의 표준 얼굴에 대한 얼굴 제어 파라미터 세트를 생성하는 단계(3330)를 추가로 포함하며, 얼굴 제어 파라미터 세트는 각각 표준 얼굴의 복수의 얼굴 특징 중 하나에 관련된다. 도 31과 관련하여 위에서 언급한 바와 같이, 얼굴 제어 파라미터 세트가 아바타의 표준 얼굴에 적용될 때, 조정된 표준 얼굴의 키포인트가 입력 아바타 키포인트 세트와 유사한 키포인트 세트를 가질 수 있도록, 상이한 세트의 아바타 키포인트가 상이한 세트의 얼굴 제어 파라미터에 대응할 수 있기 때문에, K2P 네트워크(3108)는 입력 아바타 키포인트 세트에 기초하여 얼굴 제어 파라미터 세트를 예측하는 심층 학습 신경망 모델이다.
프로세스는 얼굴 제어 파라미터 세트를 표준 얼굴에 적용함으로써 표준 얼굴의 복수의 얼굴 특징을 조정하는 단계(3340)를 추가로 포함한다.
추가 구현은 다음 특징 중 하나 이상을 포함할 수 있다:
일부 실시예에서, 단계 3330에서, K2P 신경망 모델은 다음에 의해 훈련된다: 실제 인물의 복수의 훈련 2D 얼굴 이미지를 획득하는 것; 복수의 훈련 2D 얼굴 이미지 각각에 대한 훈련 게임 스타일 또는 아바타 키포인트 세트를 생성하는 것; 각각의 훈련 게임 스타일 키포인트 세트를 K2P 신경망 모델에 제출하여 제어 파라미터 세트를 획득하는 것; 제어 파라미터 세트를 미리 훈련된 키포인트-파라미터(P2K) 신경망 모델에 제출하여 훈련 게임 스타일 키포인트 세트에 대응하는 예측된 게임 스타일 키포인트 세트를 획득하는 것; 및 훈련 게임 스타일 키포인트 세트와 대응하는 예측 게임 스타일 키포인트 세트 사이의 차이를 줄임으로써 K2P 신경망 모델을 업데이트하는 것. 도 31과 관련하여 위에서 언급한 바와 같이, K2P 네트워크(3108)와 반대로, P2K 네트워크(3116)는, 상이한 얼굴 제어 파라미터 세트는 상이한 아바타 키포인트 세트를 발생시켜 두 개의 신경망 모델이 서로 역 프로세스를 수행하는 것으로 간주되는 경우 K2P 네트워크(3108)와 연관된 출력 아바타 키포인트 세트가 P2K 네트워크(3116)와 연관된 입력 아바타 키포인트 세트와 매칭되도록 할 수 있기 때문에, 입력 얼굴 제어 파라미터 세트에 기초하여 아비타 키포인트 세트를 예측하는 심층 학습 신경망 모델이다.
일부 실시예에서, 미리 훈련된 P2K 신경망 모델은 게임에서 아바타와 연관된 골격 또는 슬라이더 파라미터를 포함하는 제어 파라미터 세트를 수신하고; 제어 파라미터 세트에 따라 게임에서의 아바타에 대한 게임 스타일 키포인트 세트를 예측하도록 구성된다.
일부 실시예에서, 훈련 게임 스타일 키포인트 세트와 대응하는 예측된 게임 스타일 키포인트 세트 간의 차이는 훈련 게임 스타일 키포인트 세트와 대응하는 예측된 게임 스타일 키포인트 세트 간의 평균 제곱 오차의 합이다.
일부 실시예에서, 훈련된 K2P 및 미리 훈련된 P2K 신경망 모델은 게임에 특정적이다.
일부 실시예에서, 2D 얼굴 이미지의 실제 키포인트 세트는 2D 얼굴 이미지의 실제 이물의 얼굴 특징에 대응한다.
일부 실시예에서, 게임에서 아바타의 표준 얼굴은 다른 실제 인물의 얼굴 이미지에 따라 게임의 다른 캐릭터로 맞춤화될 수 있다.
일부 실시예에서, 아바타의 변형된 얼굴은 실제 인물의 만화 스타일의 얼굴이다. 일부 실시예에서, 아바타의 변형된 얼굴은 실제 인물의 실제 스타일 얼굴이다.
일부 실시예에서, 단계(3320)에서, 실제 키포인트 세트를 게임 스타일 키포인트 세트로 변환하는 것은 다음을 포함한다: 실제 키포인트 세트를 정식 공간(canonical space)으로 정규화하는 것; 정규화된 실제 키포인트 세트를 대칭화하는 것; 및 게임에서 아바타와 관련된 미리 정의된 스타일에 따라 실제 키포인트의 대칭된 세트를 조정하는 것.
일부 실시예에서, 실제 키포인트 세트를 정식 공간으로 정규화하는 것은 다음을 포함한다: 실제 키포인트 세트를 정식 공간으로 스케일링하는 것; 및 2D 얼굴 이미지에서 실제 키포인트 세트의 방향에 따라 스케일링된 실제 키포인트 세트를 회전시키는 것.
일부 실시예에서, 실제 키포인트 세트를 게임 스타일 키포인트 세트로 변환하는 것은 미리 정의된 볼록 또는 오목 곡선 요건을 충족시키기 위해 대칭 키포인트 세트를 평활화하는 것을 더 포함한다.
일부 실시예에서, 게임에서 아바타와 연관된 미리 정의된 스타일에 따라 실제 키포인트의 대칭 세트를 조정하는 것은 얼굴 길이 조정, 얼굴 너비 조정, 얼굴 특징 조정, 줌 조정, 및 눈 모양 조정을 포함한다.
여기에 개시된 시스템 및 방법은 실제 스타일 및 만화 스타일 게임 모두를 위한 다양한 게임을 위한 자동 얼굴 생성 시스템에 적용될 수 있다. 이 시스템은 통합하기 쉬운 인터페이스를 가지고 있어 사용자 경험을 향상시킨다.
일부 실시예에서, 여기에 개시된 시스템 및 방법은 다양한 게임을 위한 3D 얼굴 아바타 생성 시스템에서 사용될 수 있고, 복잡한 수동 튜닝 프로세스는 자동화되어 사용자 경험을 향상시킨다. 사용자는 셀카를 찍거나 기존 사진을 업로드할 수 있다. 시스템은 사진 속 얼굴에서 특징을 추출한 다음 AI 얼굴 생성 시스템을 통해 게임 얼굴의 제어 파라미터(예: 골격 또는 슬라이더)를 자동으로 생성할 수 있다. 게임단(game end)은 이러한 파라미터를 사용하여 얼굴 아바타를 생성하므로 생성된 얼굴은 사용자의 얼굴 특징을 포함한다.
일부 실시예에서, 이 시스템은 키포인트 정의, 스타일화 방법, 스켈레톤/슬라이더의 정의 등을 포함하여 다양한 게임에 따라 쉽게 맞춤화될 수 있다. 사용자는 특정 파라미터만 조정하거나, 모델을 자동으로 재훈련하거나, 맞춤 제어 알고리즘을 추가하도록 선택할 수 있다. 이러한 방식으로, 본 개시는 다른 게임에 쉽게 배포될 수 있다.
추가 실시예는 또한 다양한 다른 실시예에서 결합되거나 그렇지 않으면 재배열된 상기 실시예의 다양한 서브세트를 포함한다.
여기서, 본 출원의 실시예의 이미지 처리 장치는 첨부된 도면의 설명을 참조하여 구현된다. 이미지 처리 장치는 서버 또는 단말기(예: 데스크톱 컴퓨터, 노트북 컴퓨터, 스마트폰 등)과 같은 다양한 형태의 컴퓨터 디바이스로 구현될 수 있다. 본 출원의 실시예의 이미지 처리 장치의 하드웨어 구성은 아래에서 더 설명된다. 도 34는 이미지 처리 장치의 모든 구성가 아닌 예시적인 구성을 도시한 것으로 이해될 수 있으며, 도 34에 도시된 일부 또는 전체 구성은 필요에 따라 구현될 수 있다.
도 34를 참조하면, 도 34는 본 출원의 일 실시예에 따른 이미지 처리 장치의 선택적 하드웨어 구성의 개략도이며, 실제 적용 시에, 애플리케이션 프로그램을 실행하는 서버 또는 다양한 단말기에 적용될 수 있다. 도 34에 도시된 이미지 처리 장치(3400)는 적어도 하나의 프로세서(3401), 메모리(3402), 사용자 인터페이스(3403) 및 적어도 하나의 네트워크 인터페이스(3404)를 포함한다. 이미지 처리 장치(3400)의 구성요소는 버스 시스템(3405)에 의해 함께 결합된다. 버스(3405)는 구성요소 간의 연결 및 통신을 구현하도록 구성됨을 이해할 수 있다. 버스 시스템(3405)은 데이터 버스를 포함하는 외에, 전원 버스, 제어 버스 및 상태 신호 버스를 더 포함할 수 있다. 그러나 명확한 설명을 위해 모든 버스는 도 34에서 버스 시스템(3405)으로 표시된다.
사용자 인터페이스(3403)는 디스플레이, 키보드, 마우스, 트랙볼, 클릭 휠, 키, 버튼, 터치패드, 터치스크린 등을 포함할 수 있다.
메모리(3402)는 휘발성 메모리 또는 비휘발성 메모리일 수 있거나, 휘발성 메모리 및 비휘발성 메모리 모두를 포함할 수 있음을 이해할 수 있다.
본 출원의 실시예에서 메모리(3402)는 이미지 처리 장치(3400)의 동작을 지원하기 위해 상이한 유형의 데이터를 저장하도록 구성된다. 데이터의 예로는
이미지 처리 장치(3400)에서 동작을 수행하는 데 사용되는 실행 프로그램(34021) 및 운영 체제(34022)과 같은, 임의의 컴퓨터 프로그램, 그리고 본 출원의 실시예의 이미지 처리 방법을 수행하는 데 사용되는 프로그램이 실행 가능한 프로그램(34021)에 포함될 수 있다.
본 출원의 실시예에 개시된 이미지 처리 방법은 프로세서(3401)에 적용될 수 있거나, 프로세서(3401)에 의해 수행될 수 있다. 프로세서(3401)는 집적 회로 칩일 수 있고 신호 처리 능력을 갖는다. 구현 과정에서, 이미지 처리 방법의 각 단계는 프로세서(3401) 내의 하드웨어의 집적 논리 회로 또는 소프트웨어 형태의 명령어를 사용하여 완성될 수 있다. 전술한 프로세서(3401)는 범용 프로세서, 디지털 신호 프로세서(digital signal processor, DSP), 다른 프로그램 가능 논리 디바이스, 이산 게이트, 트랜지스터 논리 디바이스, 이산 하드웨어 부품 등일 수 있다. 프로세서(3401)는 본 출원의 실시예에 제공된 방법, 단계 및 논리 블록도를 구현하거나 실행할 수 있다. 범용 프로세서는 마이크로프로세서, 임의의 종래 프로세서 등일 수 있다. 본 출원의 실시예에서 제공되는 방법의 단계는 하드웨어 디코딩 프로세서에 의해 직접 수행될 수 있거나, 디코딩 프로세서에서 하드웨어와 소프트웨어 모듈을 결합하여 수행될 수 있다. 소프트웨어 모듈은 저장 매체에 위치할 수 있다. 저장 매체는 메모리(3402)에 위치한다. 프로세서(3401)는 메모리(3402)의 정보를 판독하고 정보를 하드웨어와 결합함으로써 본 출원의 실시예에서 제공되는 이미지 처리 방법의 단계를 수행한다.
일부 실시예에서, 이미지 처리 및 3D 얼굴 및 머리 형성은 네트워크상의 클라우드 또는 서버 그룹에서 달성될 수 있다.
하나 이상의 예에서, 설명된 기능은 하드웨어, 소프트웨어, 펌웨어 또는 이들의 임의의 조합으로 구현될 수 있다. 소프트웨어로 구현되는 경우, 기능은 하나 이상의 명령 또는 코드로서 컴퓨터로 판독 가능한 매체에 저장되거나 전송될 수 있으며 하드웨어 기반 처리 장치에 의해 실행될 수 있다. 컴퓨터로 판독 가능한 매체는 데이터 저장 매체와 같은 유형(tangible)의 매체에 대응하는 컴퓨터 판독 가능 저장 매체, 또는 예컨대 통신 프로토콜에 따라 한 장소에서 다른 장소로 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함하는 통신 매체를 포함할 수 있다. 이러한 방식으로, 컴퓨터로 판독 가능한 매체는 일반적으로 (1) 컴퓨터 판독 가능한 비일시적인 유형의 저장 매체 또는 (2) 신호 또는 캐리어 웨이브와 같은 통신 매체에 대응할 수 있다. 데이터 저장 매체는 본 출원에 설명된 구현의 구현을 위한 명령어, 코드 및/또는 데이터 구조를 검색하기 위해 하나 이상의 컴퓨터 또는 하나 이상의 프로세서에 의해 액세스될 수 있는 임의의 이용 가능한 매체일 수 있다. 컴퓨터 프로그램 제품은 컴퓨터로 판독 가능한 매체를 포함할 수 있다.
여기에서 구현의 설명에 사용된 용어는 특정 구현을 설명하기 위한 목적으로만 사용되며 청구범위를 한정하려는 의도가 아닙니다. 구현 및 첨부된 청구범위의 설명에 사용된 바와 같이, 단수 형태(영어: "a", "an" 및 "the")는 문맥상 명백하게 달리 나타내지 않는 한 복수형도 포함하는 것으로 의도된다. 또한, 본 명세서에서 사용되는 "및/또는"이라는 용어는 관련된 나열된 항목 중 하나 이상의 임의의 및 모든 가능한 조합을 지칭하고 포함하는 것으로 이해될 것이다. "포함하다" 및/또는 "포함하는"은 본 명세서에서 사용될 때 명시된 특징, 요소 및/또는 구성요소의 존재를 지정하지만 하나 이상의 다른 특징, 요소, 구성요소 및/또는 그룹의 존재 또는 추가를 배제하지 않다.
또한, 제1, 제2 등의 용어가 다양한 요소를 설명하기 위해 본 명세서에서 사용될 수 있지만, 이러한 요소는 이러한 용어에 의해 제한되지 않아야 한다는 것이 이해될 것이다. 이러한 용어는 한 요소를 다른 요소와 구별하는 데에만 사용된다. 예를 들어, 제1 전극은 제2 전극으로 명명될 수 있고, 유사하게 제2 전극도 제1 전극으로 명명될 수 있다. 제1 전극과 제2 전극은 모두 전극이지만 동일한 전극은 아니다.
본 출원의 설명은 예시 및 설명의 목적으로 제공되었으며, 개시된 형태의 본 바렴을 총망라하거나 제한하려는 의도가 아니다. 전술한 설명 및 관련 도면에 제시된 교시의 이점을 갖는 당업자에게는 많은 수정, 변형 및 대체 구현이 명백할 것이다. 실시예는 본 발명의 원리, 실제 적용을 가장 잘 설명하고, 당업자가 다양한 구현을 위해 본 발명을 이해하고 다양한 수정으로 기본 원리 및 다양한 구현을 가장 잘 활용할 수 있도록 하기 위해 선택되고 설명되었다. 따라서, 청구범위는 개시된 구현의 특정 예에 한정되지 않으며 수정 및 다른 구현이 첨부된 청구범위 내에 포함되도록 의도됨을 이해해야 한다.

Claims (20)

  1. 피사체의 이차원(two-dimensional, 2D) 얼굴 이미지에서 색상을 추출하는 방법으로서,
    키포인트 예측 모델(keypoint prediction model)에 기초하여 상기 2D 얼굴 이미지에서 복수의 키포인트를 식별하는 단계;
    식별된 복수의 키포인트로부터의 복수의 타깃 키포인트가 표준 얼굴의 대응하는 타깃 키포인트와 정렬될 때까지 상기 2D 얼굴 이미지를 회전시키는 단계;
    회전된 2D 얼굴 이미지에서 복수의 부분을 찾아내는 단계 - 각각의 부분은 상기 식별된 복수의 키포인트의 서브세트 각각에 의해 정의됨 -;
    상기 2D 얼굴 이미지의 픽셀 값에서 상기 복수의 부분 각각에 대한 색상을 추출하는 단계; 및
    추출된 색상을 사용하여 상기 2D 얼굴 이미지의 각각의 얼굴 특징 색상에 매칭되는 피사체의 삼차원(three-dimensional, 3D) 모델을 생성하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 키포인트 예측 모델은 사용자가 수동으로 주석을 단(user manually annotated) 키포인트로부터 기계 학습에 기초하여 형성되는, 방법.
  3. 제1항에 있어서,
    정렬에 사용되는 상기 복수의 타깃 키포인트는 상기 2D 얼굴 이미지의 좌우 대칭에 위치하는, 방법.
  4. 제1항에 있어서,
    상기 복수의 부분 각각에 대한 색상을 추출하는 단계는 대응하는 부분 내의 각각의 정의된 영역에 있는 모든 픽셀의 R, G, B 값 각각의 중앙값을 예측된 평균 색상으로 선택하는 단계를 포함하는, 방법.
  5. 제1항에 있어서,
    상기 복수의 부분 각각에 대한 색상을 추출하는 단계는 피부 부분 내에서 피부 색 추출을 위한 영역을 결정하고, 상기 피부 색 추출을 위한 영역에 있는 모든 픽셀의 R, G, B 값 각각의 중앙값을 상기 피부 부분의 예측된 평균 색상으로 선택하는 단계를 포함하는, 방법.
  6. 제5항에 있어서,
    상기 피부 부분 내의 피부 색 추출을 위한 영역은 얼굴에서 눈 아래이고 코의 아래쪽 가장자리(lower edge) 위의 영역으로 결정되는, 방법.
  7. 제1항에 있어서,
    상기 복수의 부분 각각에 대한 색상을 추출하는 단계는 눈썹 부분 내에서의 눈썹 색 추출을 포함하고, 상기 눈썹 색 추출은,
    한 눈썹이 상기 2D 얼굴 이미지의 뷰어(viwer)에 가까운 쪽에 있다는 결정에 따라, 상기 한 눈썹을 타깃 눈썹으로 선택하는 단계;
    양 눈썹이 상기 2D 얼굴 이미지의 뷰어에 동일하게 가까이 있다는 결정에 따라, 상기 양 눈썹을 타깃 눈썹으로 선택하는 단계;
    상기 타깃 눈썹(들) 내의 중간 눈썹 영역(들)을 추출하는 단계;
    상기 중간 눈썹 영역(들) 내의 각각의 픽셀 값을 평균 피부 색과 비교하는 단계;
    평균 피부 색과의 픽셀 값 차이가 임계값을 초과하는 중간 눈썹 영역(들) 내의 픽셀을 수집하는 단계; 및
    눈썹 색 추출을 위해 수집된 픽셀의 R, G, B 값 각각의 중앙값을 상기 눈썹 부분의 예측된 평균 색상으로 선택하는 단계를 포함하는, 방법.
  8. 제1항에 있어서,
    상기 복수의 부분 각각에 대한 색상을 추출하는 단계는 눈 부분 내에서의 눈동자 색 추출을 포함하고, 상기 눈동자 색 추출은,
    한 눈이 상기 2D 얼굴 이미지의 뷰어에 가까운 쪽에 있다는 결정에 따라, 상기 한 눈을 타깃 눈으로 선택하는 단계;
    양 눈이 상기 2D 얼굴 이미지의 뷰어에 동일하게 가까이 있다는 결정에 따라, 상기 양 눈을 타깃 눈으로 선택하는 단계;
    속눈썹이 없는 상기 타깃 눈(들) 내의 영역(들)을 추출하는 단계;
    추출된 영역(들) 내의 각각의 픽셀 값을 미리 결정된 임계값과 비교하는 단계;
    픽셀 값이 미리 결정된 임계값을 초과하는 상기 추출된 영역(들) 내의 픽셀을 수집하는 단계; 및
    눈동자 색 추출을 위해 수집된 픽셀의 R, G, B 값 각각의 중앙값을 상기 눈동자의 예측된 평균 색상으로 선택하는 단계를 포함하는, 방법.
  9. 제1항에 있어서,
    상기 복수의 부분 각각에 대한 색상을 추출하는 단계는 입술 부분 내에서의 입술 색 추출을 포함하고, 상기 입술 색 추출은,
    아랫입술의 키포인트로 둘러싸인 영역에 있는 모든 픽셀을 수집하는 단계; 및
    입술 색 추출을 위해 수집된 픽셀의 R, G, B 값 각각의 중앙값을 상기 입술 부분의 예측된 평균 색상으로 선택하는 단계를 포함하는, 방법.
  10. 제1항에 있어서,
    상기 복수의 부분 각각에 대한 색상을 추출하는 단계는 모발 부분 내에서의 모발 색 추출을 포함하고, 상기 모발 색상 추출은,
    양쪽에서 모발 부분으로 확장되는 이마 부분을 포함하는 영역을 식별하는 단계;
    상기 영역의 중앙에서 좌측 경계 및 우측 경계로 미리 결정된 임계값을 초과하는 픽셀 색상 변화를 결정하는 단계;
    상기 미리 결정된 임계값을 초과하는 픽셀 색상 변화에 기초하여 상기 영역을 모발 영역과 피부 영역으로 구분하는 단계; 및
    상기 영역 내의 모발 영역에 대한 픽셀의 R, G, B 값 각각의 중앙값을 상기 모발 부분의 예측된 평균 색상으로 선택하는 단계를 포함하는, 방법.
  11. 제10항에 있어서,
    상기 모발 부분으로 확장되는 이마 부분을 포함하는 영역은 양쪽 눈썹꼬리(eyebrow corner)에 있는 아래쪽부 경계, 2D 얼굴 이미지의 대칭적인 좌측과 우측에 위치한 키포인트에서 바깥쪽으로 고정된 거리에 있는 왼쪽 경계와 오른쪽 경계, 그리고 상기 눈썹의 위쪽 가장자리(upper edge)에서 눈의 아래쪽 가장자까지의 거리의 높이를 갖는 직사각형 영역으로 식별되는, 방법.
  12. 제1항에 있어서,
    상기 복수의 부분 각각에 대한 색상을 추출하는 단계는 아이섀도우 부분 내에서의 아이섀도우 색 추출을 포함하고, 상기 아이섀도우 색 추출은,
    한 눈이 상기 2D 얼굴 이미지의 뷰어에 가까운 쪽에 있다는 결정에 따라, 상기 한 눈을 타깃 눈으로 선택하는 단계;
    양 눈이 상기 2D 얼굴 이미지의 뷰어에 동일하게 가까이 있다는 결정에 따라, 상기 양 눈을 타깃 눈으로 선택하는 단계;
    상기 타깃 눈(들)에 가까운 아이섀도우 부분 내의 중간 영역(들)을 추출하는 단계;
    추출된 중간 영역(들) 내에서 속눈썹을 제외하기 위해 밝기가 미리 결정된 밝기 임계값 이상이고 평균 피부 색조 값과의 픽셀 색조 값 차이가 미리 결정된 임계값을 초과하는 픽셀을 수집하는 단계;
    추출된 중간 영역(들) 내의 하나의 픽셀 열에서 수집된 픽셀의 수가 임계값보다 크다는 결정에 따라, 상기 픽셀 열을 아이섀도우 열로서 레이블을 지정하는 단계; 및
    추출된 중간 영역의 너비에 대한 상기 아이섀도우 열의 비율이 특정 임계값보다 크다는 결정에 따라, 아이섀도우 색상 추출을 위해 수집된 픽셀의 R, G, B 값 각각의 중앙값을 상기 아이섀도우 부분의 예측된 아이섀도우 색상으로 선택하는 단계를 포함하는, 방법.
  13. 제1항에 있어서,
    텍스처 맵의 원래 밝기 및 색상 차이를 유지하면서 상기 2D 얼굴 이미지의 픽셀 값으로부터 추출된 색상에 기초하여 상기 2D 얼굴 이미지의 텍스처 맵을 변환하는 단계를 더 포함하고,
    상기 텍스처 맵을 변환하는 단계는,
    상기 추출된 색상을 RGB 색공간 표현에서 HSV(색조, 채도, 명도) 색공간 표현으로 변환하는 단계; 및
    상기 텍스처 맵의 색상을 조정하여 상기 추출된 색상의 중간 HSV 값과 상기 텍스처 맵의 중간 HSV 값 픽셀 사이의 차이를 줄이는 단계를 포함하는 방법.
  14. 전자 장치로서,
    하나 이상의 처리 유닛,
    상기 하나 이상의 처리 유닛에 결합된 메모리, 및
    상기 메모리에 저장된 복수의 프로그램을 포함하고,
    상기 복수의 프로그램은 상기 하나 이상의 처리 유닛에 의해 실행될 때, 상기 전자 장치로 하여금, 피사체의 이차원(2D) 얼굴 이미지에서 색상을 추출하는 복수의 동작을 수행하게 하며,
    상기 복수의 동작은,
    키포인트 예측 모델에 기초하여 상기 2D 얼굴 이미지에서 복수의 키포인트를 식별하는 동작;
    식별된 복수의 키포인트로부터의 복수의 타깃 키포인트가 표준 얼굴의 대응하는 타깃 키포인트와 정렬될 때까지 상기 2D 얼굴 이미지를 회전시키는 동작;
    회전된 2D 얼굴 이미지에서 복수의 부분을 찾아내는 동작 - 각각의 부분은 상기 식별된 복수의 키포인트의 서브세트 각각에 의해 정의됨 -;
    상기 2D 얼굴 이미지의 픽셀 값에서 상기 복수의 부분 각각에 대한 색상을 추출하는 동작; 및
    추출된 색상을 사용하여 상기 2D 얼굴 이미지의 각각의 얼굴 특징 색상에 매칭되는 피사체의 삼차원(3D) 모델을 생성하는 동작을 포함하는,
    전자 장치.
  15. 제14항에 있어서,
    상기 키포인트 예측 모델은 사용자가 수동으로 주석을 단 키포인트로부터 기계 학습에 기초하여 형성되는, 전자 장치.
  16. 제14항에 있어서,
    상기 복수의 부분 각각에 대한 색상을 추출하는 동작은 대응하는 부분 내의 각각의 정의된 영역에 있는 모든 픽셀의 R, G, B 값 각각의 중앙값을 예측된 평균 색상으로 선택하는, 전자 장치.
  17. 제14항에 있어서,
    상기 복수의 부분 각각에 대한 색상을 추출하는 동작은 모발 부분 내에서의 모발 색 추출을 포함하고, 상기 모발 색상 추출은,
    양쪽에서 모발 부분으로 확장되는 이마 부분을 포함하는 영역을 식별하는 것;
    상기 영역의 중앙에서 좌측 경계 및 우측 경계로 미리 결정된 임계값을 초과하는 픽셀 색상 변화를 결정하는 것;
    상기 미리 결정된 임계값을 초과하는 픽셀 색상 변화에 기초하여 상기 영역을 모발 영역과 피부 영역으로 구분하는 것; 및
    상기 영역 내의 모발 영역에 대한 픽셀의 R, G, B 값 각각의 중앙값을 상기 모발 부분의 예측된 평균 색상으로 선택하는 것을 포함하는, 전자 장치.
  18. 제14항에 있어서,
    상기 복수의 부분 각각에 대한 평균 색상을 추출하는 것은 아이섀도우 부분 내에서의 아이섀도우 색 추출을 포함하고, 상기 아이섀도우 색 추출은,
    한 눈이 상기 2D 얼굴 이미지의 뷰어에 가까운 쪽에 있다는 결정에 따라, 상기 한 눈을 타깃 눈으로 선택하는 것;
    양 눈이 상기 2D 얼굴 이미지의 뷰어에 동일하게 가까이 있다는 결정에 따라, 상기 양 눈을 타깃 눈으로 선택하는 것;
    상기 타깃 눈(들)에 가까운 아이섀도우 부분 내의 중간 영역(들)을 추출하는 것;
    추출된 중간 영역(들) 내에서 속눈썹을 제외하기 위해 밝기가 미리 결정된 밝기 임계값 이상이고 평균 피부 색조 값과의 픽셀 색조 값 차이가 미리 결정된 임계값을 초과하는 픽셀을 수집하는 것;
    추출된 중간 영역(들) 내의 하나의 픽셀 열에서 수집된 픽셀의 수가 임계값보다 크다는 결정에 따라, 상기 픽셀 열을 아이섀도우 열로서 레이블을 지정하는 것; 및
    추출된 중간 영역의 너비에 대한 상기 아이섀도우 열의 비율이 특정 임계값보다 크다는 결정에 따라, 아이섀도우 색상 추출을 위해 수집된 픽셀의 R, G, B 값 각각의 중앙값을 상기 아이섀도우 부분의 예측된 아이섀도우 색상으로 선택하는 것을 포함하는, 전자 장치.
  19. 제14항에 있어서,
    상기 복수의 동작은
    텍스처 맵의 원래 밝기 및 색상 차이를 유지하면서 상기 2D 얼굴 이미지의 픽셀 값으로부터 추출된 색상에 기초하여 상기 2D 얼굴 이미지의 텍스처 맵을 변환하는 동작을 더 포함하고,
    상기 텍스처 맵을 변환하는 동작은,
    상기 추출된 색상을 RGB 색공간 표현에서 HSV(색조, 채도, 명도) 색공간 표현으로 변환하는 것; 및
    상기 텍스처 맵의 색상을 조정하여 상기 추출된 색상의 중간 HSV 값과 상기 텍스처 맵의 중간 HSV 값 픽셀 사이의 차이를 줄이는 것을 포함하는, 전자 장치.
  20. 하나 이상의 처리 유닛을 구비하는 전자 장치에 의한 실행을 위해 복수의 프로그램을 저장하는, 컴퓨터로 판독 가능한 비일시적 저장 매체로서,
    상기 복수의 프로그램은 상기 하나 이상의 처리 유닛에 의해 실행될 때, 상기 전자 장치로 하여금, 피사체의 이차원(2D) 얼굴 이미지에서 색상을 추출하는 복수의 동작을 수행하게 하며,
    상기 복수의 동작은,
    키포인트 예측 모델에 기초하여 상기 2D 얼굴 이미지에서 복수의 키포인트를 식별하는 동작;
    식별된 복수의 키포인트로부터의 복수의 타깃 키포인트가 표준 얼굴의 대응하는 타깃 키포인트와 정렬될 때까지 상기 2D 얼굴 이미지를 회전시키는 동작;
    회전된 2D 얼굴 이미지에서 복수의 부분을 찾아내는 동작 - 각각의 부분은 상기 식별된 복수의 키포인트의 서브세트 각각에 의해 정의됨 -;
    상기 2D 얼굴 이미지의 픽셀 값에서 상기 복수의 부분 각각에 대한 색상을 추출하는 동작; 및
    추출된 색상을 사용하여 상기 2D 얼굴 이미지의 각각의 얼굴 특징 색상에 매칭되는 피사체의 삼차원(3D) 모델을 생성하는 동작을 포함하는,
    컴퓨터로 판독 가능한 비일시적 저장 매체.
KR1020237016250A 2021-03-15 2022-02-28 얼굴 이미지에서 색상을 추출하기 위한 방법 및 시스템 KR20230085931A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/202,116 US11461970B1 (en) 2021-03-15 2021-03-15 Methods and systems for extracting color from facial image
US17/202,116 2021-03-15
PCT/US2022/018204 WO2022197429A1 (en) 2021-03-15 2022-02-28 Methods and systems for extracting color from facial image

Publications (1)

Publication Number Publication Date
KR20230085931A true KR20230085931A (ko) 2023-06-14

Family

ID=83194942

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237016250A KR20230085931A (ko) 2021-03-15 2022-02-28 얼굴 이미지에서 색상을 추출하기 위한 방법 및 시스템

Country Status (6)

Country Link
US (1) US11461970B1 (ko)
EP (1) EP4268198A4 (ko)
JP (1) JP7462120B2 (ko)
KR (1) KR20230085931A (ko)
CN (1) CN116648733A (ko)
WO (1) WO2022197429A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112819921B (zh) * 2020-11-30 2023-09-26 北京百度网讯科技有限公司 用于改变人物的发型的方法、装置、设备和存储介质
CN116489299A (zh) * 2022-01-13 2023-07-25 祖玛视频通讯公司 视频通信平台中的化身生成
CN117690178B (zh) * 2024-01-31 2024-04-05 江西科技学院 一种基于计算机视觉的人脸图像识别方法与系统

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5781650A (en) * 1994-02-18 1998-07-14 University Of Central Florida Automatic feature detection and age classification of human faces in digital images
AUPR541801A0 (en) * 2001-06-01 2001-06-28 Canon Kabushiki Kaisha Face detection in colour images with complex background
CN1313979C (zh) * 2002-05-03 2007-05-02 三星电子株式会社 产生三维漫画的装置和方法
US20110298799A1 (en) * 2008-06-03 2011-12-08 Xid Technologies Pte Ltd Method for replacing objects in images
TWI443601B (zh) * 2009-12-16 2014-07-01 Ind Tech Res Inst 擬真臉部動畫系統及其方法
EP2689396A4 (en) * 2011-03-21 2015-06-03 Intel Corp PROCESS FOR ADVANCED CHANGES WITH 3D FACE MODELING AND MARKING ALIGNMENT
US9378586B2 (en) * 2013-02-21 2016-06-28 Seoul National University Industry Foundation Method of smart grading based on parameterized draft
US20160070952A1 (en) * 2014-09-05 2016-03-10 Samsung Electronics Co., Ltd. Method and apparatus for facial recognition
KR101997500B1 (ko) * 2014-11-25 2019-07-08 삼성전자주식회사 개인화된 3d 얼굴 모델 생성 방법 및 장치
US10796480B2 (en) * 2015-08-14 2020-10-06 Metail Limited Methods of generating personalized 3D head models or 3D body models
WO2017149315A1 (en) * 2016-03-02 2017-09-08 Holition Limited Locating and augmenting object features in images
WO2017177259A1 (en) * 2016-04-12 2017-10-19 Phi Technologies Pty Ltd System and method for processing photographic images
US10559111B2 (en) * 2016-06-23 2020-02-11 LoomAi, Inc. Systems and methods for generating computer ready animation models of a human head from captured data images
CN117193617A (zh) 2016-09-23 2023-12-08 苹果公司 头像创建和编辑
CN108960020A (zh) * 2017-05-27 2018-12-07 富士通株式会社 信息处理方法和信息处理设备
US10650260B2 (en) * 2017-06-23 2020-05-12 Institute Of Automation, Chinese Academy Of Sciences Perspective distortion characteristic based facial image authentication method and storage and processing device thereof
US10636193B1 (en) * 2017-06-29 2020-04-28 Facebook Technologies, Llc Generating graphical representation of a user's face and body using a monitoring system included on a head mounted display
RU2697627C1 (ru) * 2018-08-01 2019-08-15 Самсунг Электроникс Ко., Лтд. Способ корректировки освещенности объекта на изображении в последовательности изображений и вычислительное устройство пользователя, реализующее упомянутый способ
CN114144813A (zh) * 2019-04-23 2022-03-04 巴黎欧莱雅 机器图像颜色提取和使用提取的颜色的机器图像构造
KR102180576B1 (ko) 2020-05-18 2020-11-18 주식회사 일루니 사용자의 플레잉에 기초하여 재프로그래밍되는 인터랙티브 콘텐츠 제공 방법 및 장치

Also Published As

Publication number Publication date
EP4268198A1 (en) 2023-11-01
EP4268198A4 (en) 2024-06-19
CN116648733A (zh) 2023-08-25
US11461970B1 (en) 2022-10-04
JP7462120B2 (ja) 2024-04-04
WO2022197429A1 (en) 2022-09-22
JP2024503794A (ja) 2024-01-29
US20220292774A1 (en) 2022-09-15

Similar Documents

Publication Publication Date Title
US10559111B2 (en) Systems and methods for generating computer ready animation models of a human head from captured data images
JP7200139B2 (ja) 仮想顔化粧の除去、高速顔検出およびランドマーク追跡
US10169905B2 (en) Systems and methods for animating models from audio data
US11587288B2 (en) Methods and systems for constructing facial position map
US11562536B2 (en) Methods and systems for personalized 3D head model deformation
CN108550176A (zh) 图像处理方法、设备及存储介质
JP7462120B2 (ja) 2次元(2d)顔画像から色を抽出するための方法、システム及びコンピュータプログラム
US11417053B1 (en) Methods and systems for forming personalized 3D head and facial models
CN113628327B (zh) 一种头部三维重建方法及设备
US11769309B2 (en) Method and system of rendering a 3D image for automated facial morphing with a learned generic head model
US10803677B2 (en) Method and system of automated facial morphing for eyebrow hair and face color detection
US20210074076A1 (en) Method and system of rendering a 3d image for automated facial morphing
CN115631516A (zh) 人脸图像处理方法、装置、设备及计算机可读存储介质
US20240005581A1 (en) Generating 3d facial models & animations using computer vision architectures
Zhao 3D Human Face Reconstruction and 2D Appearance Synthesis

Legal Events

Date Code Title Description
A201 Request for examination