KR102160955B1 - 딥 러닝 기반 3d 데이터 생성 방법 및 장치 - Google Patents

딥 러닝 기반 3d 데이터 생성 방법 및 장치 Download PDF

Info

Publication number
KR102160955B1
KR102160955B1 KR1020200009896A KR20200009896A KR102160955B1 KR 102160955 B1 KR102160955 B1 KR 102160955B1 KR 1020200009896 A KR1020200009896 A KR 1020200009896A KR 20200009896 A KR20200009896 A KR 20200009896A KR 102160955 B1 KR102160955 B1 KR 102160955B1
Authority
KR
South Korea
Prior art keywords
face
data
constants
group
neural network
Prior art date
Application number
KR1020200009896A
Other languages
English (en)
Other versions
KR20200097201A (ko
Inventor
신승식
Original Assignee
주식회사 블루프린트랩
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 블루프린트랩 filed Critical 주식회사 블루프린트랩
Publication of KR20200097201A publication Critical patent/KR20200097201A/ko
Application granted granted Critical
Publication of KR102160955B1 publication Critical patent/KR102160955B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/32User authentication using biometric data, e.g. fingerprints, iris scans or voiceprints
    • 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
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/25Determination of region of interest [ROI] or a volume of interest [VOI]
    • 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/30Subject of image; Context of image processing
    • G06T2207/30196Human being; Person
    • G06T2207/30201Face

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Hardware Design (AREA)
  • Image Analysis (AREA)

Abstract

딥 러닝 기반 3D 데이터 생성 방법 및 장치가 개시된다. 일실시예에 따른 딥 러닝 기반 3D 데이터 생성 장치는 얼굴을 포함하는 이미지를 획득하고, 이미지에서 얼굴의 적어도 일부를 포함하는 관심 영역(region of interest)을 추출하고, 관심 영역에 기초하여, 컨볼루션 신경망(convolutional neural network)의 인풋 레이어(input layer)에 대응하는 입력을 생성하고, 입력을 컨볼루션 신경망에 적용하여, 컨볼루션 신경망에 의해 생성된 출력을 획득하고, 출력에 기초하여, 얼굴 내 미리 정의된 부위들에 각각 대응하는 위치들을 포함하는 얼굴의 3D 데이터를 생성하고, 얼굴 내 미리 정의된 부위들을 각각 서로 다른 상수(constant)들로 표현하고, 상수들 중 일부 또는 전부를 미리 설정된 그룹들 중 어느 하나 이상에 포함시키고, 그룹들 중 하나 이상의 그룹의 상수들에 기초하여, 얼굴의 3D 데이터로부터 얼굴의 특정 영역의 3D 데이터를 획득할 수 있다.

Description

딥 러닝 기반 3D 데이터 생성 방법 및 장치{METHOD AND APPARATUS OF GENERATING 3D DATA BASED ON DEEP LEARNING}
아래 실시예들은 딥 러닝을 기반으로 3D 데이터를 생성하는 기술에 관한 것이다.
신경망(neural network) 기반의 딥 러닝(deep learning) 기술은 다양한 분야에서 활용되고 있다. 예를 들어, 얼굴, 홍채, 지문 등을 인식하는 딥 러닝 기반 생체 인식/인증 어플리케이션은 단말 및 장치 등에 채용된다. 특히, 컨볼루션 신경망(convolutional neural network; CNN)은 컨볼루션(convolution) 연산을 활용하는 다 계층 신경망으로서, 딥 러닝 기반 영상 및 이미지의 인식, 분류 및 추론 분야에서 좋은 성능을 보여준다.
한편, 이와 별도로, 최근 스마트 폰 등에 도입된 트루 뎁스 카메라(true depth camera) 기술은 카메라를 통한 얼굴 인식 기능인 페이스 ID(Face ID) 같은 보안적인 기능은 물론, 사용자의 얼굴 표정, 근육, 골격 등을 분석해 동물 이모티콘을 만들어주는 애니모지(Animoji) 기능까지 수행하는 등, 얼굴의 3D 데이터를 다양한 방향으로 활용할 수 있도록 돕고 있다.
그러나 현재 트루뎁스 카메라는 아이폰 XS, 아이폰 XR 등 소수의 고급 기종 스마트 폰에만 적용된 기술이며, 다수의 일반 사용자가 이용하는 스마프폰, 테블릿 컴퓨터 등은 트루뎁스 카메라 기술이 적용되지 않은 카메라를 포함하고 있다. 따라서 소수의 고급 기종을 제외한 일반적으로 사용되는 스마트 폰 등에 포함된 카메라는 해상도의 발전은 있었을지언정, 여전히 2D로 이루어진 이미지만 촬영할 수 있을 뿐이며, 스마트 폰의 카메라로부터 3D 데이터를 얻을 수는 없다. 요컨대, 최고급 핸드폰을 사용하지 않고 있는 대다수의 일반 사용자는 아직 사람의 얼굴의 3D 데이터를 활용한 향상된 기능을 누리지 못하고 있는 실정이다.
이에 따라, 딥 러닝 기술 중에서도 영상 및 이미지 인식 분야에서 좋은 성능을 보여주는 컨볼루션 신경망을 기반으로, 일반적인 카메라로 촬영한 사진만으로도 사람의 얼굴의 3D 데이터를 생성함으로써, 다수의 사용자들이 얼굴의 3D 데이터를 사용할 수 있도록 돕는 방법 및 장치가 요청되고 있다.
상기 과제를 해결하기 위한 일실시예에 따른 딥 러닝 기반 3D 데이터 생성 방법은, 얼굴을 포함하는 이미지를 획득하는 단계; 상기 이미지에서 상기 얼굴의 적어도 일부를 포함하는 관심 영역(region of interest)을 추출하는 단계; 상기 관심 영역에 기초하여, 컨볼루션 신경망(convolutional neural network)의 인풋 레이어(input layer)에 대응하는 입력을 생성하는 단계; 상기 입력을 상기 컨볼루션 신경망에 적용하여, 상기 컨볼루션 신경망에 의해 생성된 출력을 획득하는 단계; 및 상기 출력에 기초하여, 상기 얼굴 내 미리 정의된 부위들에 각각 대응하는 위치들을 포함하는 얼굴의 3D 데이터를 생성하는 단계를 포함할 수 있다.
일실시예에 따르면, 상기 얼굴의 3D 데이터를 생성하는 단계는 상기 컨볼루션 신경망에서, 상기 얼굴 내 제1 부위에 대응하는 제1 출력 노드들로부터 각각 획득된 제1 출력 값들을 조합하여, 상기 제1 부위에 대응하는 제1 값들을 생성하는 단계; 상기 상수들로부터 상기 제1 부위에 대응하는 제1 상수를 획득하는 단계; 상기 미리 설정된 그룹들-상기 그룹들에서, 상기 상수들의 적어도 일부는 중복이 허용되어 서로 다른 그룹들에 포함됨-마다 상기 제1 상수가 포함되어 있는지 여부를 판단하여, 상기 부위들을 서로 중첩시켜 상기 미리 설정된 그룹들 중 상기 제1 상수가 포함되는 제1 그룹 및 제2 그룹을 식별하는 단계; 상기 제1 그룹 내 상수들의 시퀀스 내에서, 상기 제1 상수의 순서를 식별하여 상기 제1 값들을 상기 제1 그룹 내 상기 식별된 순서에 포함시키는 단계; 상기 제2 그룹 내 상수들의 시퀀스 내에서, 상기 제1 상수의 순서를 식별하여 상기 제1 값들을 상기 제2 그룹 내 상기 식별된 순서에 포함시키는 단계; 및 상기 제1 그룹의 상수들 및 상기 제2 그룹의 상수들의 합집합의 시퀀스에서, 상기 제1 그룹의 상수들과 상기 제2 그룹의 상수들의 교집합에 포함되는 상기 제1 상수와 대응하는 순서를 참조하여, 상기 제1 그룹의 상수들과 대응하는 얼굴 내 미리 정의된 부위들 및 상기 제2 그룹의 상수들과 대응하는 얼굴 내 미리 정의된 부위들의 교집합에 포함되는 상기 제1 부위에 대응하는 3D 데이터를 생성하는 단계를 포함할 수 있다.
일실시예에 따르면, 상기 얼굴 내 미리 정의된 부위들은 각각 서로 다른 상수(constant)들로 표현할 수 있다.
일실시예에 따른 딥 러닝 기반 3D 데이터 생성 방법은, 상기 상수들 중 일부 또는 전부를 미리 설정된 그룹들 중 어느 하나 이상에 포함시키는 단계; 및 상기 그룹들 중 하나 이상의 그룹의 상수들에 기초하여, 상기 얼굴의 3D 데이터로부터 얼굴의 특정 영역의 3D 데이터를 획득하는 단계를 포함할 수 있다.
일실시예에 따르면, 상기 출력을 획득하는 단계는, 컨볼루션 레이어(convolution layer)를 통해 상기 입력에 컨볼루션 연산을 수행하여 특징맵(feature map)을 생성하는 단계; 상기 특징맵에 활성화함수(activation function)를 적용하는 단계; 상기 활성화함수가 적용된 특징맵을 풀링(pooling)하여 풀링된 특징맵(pooled feature map)을 생성하는 단계; 및 풀리 커넥티드 레이어(fully connected layer)를 통해 상기 풀링된 특징맵으로부터 상기 출력을 획득하는 단계를 포함할 수 있다.
일실시예에 따르면, 상기 활성화함수는 ReLU(rectified linear unit)일 수 있다.
일실시예에 따르면, 입력을 생성하는 단계는 상기 관심 영역의 가로 길이와 세로 길이가 동일하도록 처리하는 것을 포함할 수 있다.
일실시예에 따르면, 입력을 생성하는 단계는 상기 관심 영역을 흑백 이미지로 처리하는 것을 포함할 수 있다.
일실시예에 따른 딥 러닝 기반 3D 데이터 생성 방법은, 상기 얼굴의 특정 영역의 3D 데이터에 기초하여, 상기 얼굴의 특정 영역의 모션 트래킹(motion tracking) 데이터를 생성하는 단계를 포함할 수 있다.
일실시예에 따른 딥 러닝 기반 3D 데이터 생성 방법은, 상기 얼굴의 3D 데이터 및 상기 얼굴의 특정 영역의 3D 데이터에 기초하여, 상기 얼굴의 특정 영역의 3D 데이터에 대응하는 상기 그룹의 상수들 중 일부 또는 전부에 대응하는 상기 위치들을 변화시켜 상기 얼굴의 3D 데이터로부터 수정된 3D 데이터를 생성하는 단계; 및 상기 수정된 3D 데이터에 기초하여, STL 파일 (stereo lithography file)을 생성하는 단계를 포함할 수 있다.
일실시예에 따른 딥 러닝 기반 3D 데이터 생성 방법은, 상기 얼굴의 3D 데이터 또는 상기 얼굴의 특정 영역의 3D 데이터에 기초하여, 사용자의 얼굴 전부 또는 일부의 3D 인증 데이터를 생성하는 단계를 포함할 수 있다.
일실시예에 따르면, 상기 컨볼루션 신경망의 학습은, 얼굴을 포함하는 이미지를 트레이닝 데이터(training data)로 획득하는 단계; 상기 트레이닝 데이터에서 상기 얼굴의 적어도 일부를 포함하는 트레이닝 데이터의 관심 영역을 추출하는 단계; 상기 트레이닝 데이터의 관심 영역에 기초하여, 컨볼루션 신경망의 인풋 레이어에 대응하는 트레이닝 데이터의 입력을 생성하는 단계; 상기 트레이닝 데이터의 입력을 상기 컨볼루션 신경망에 적용하여, 상기 컨볼루션 신경망에 의해 생성된 트레이닝 데이터의 출력을 획득하는 단계; 및 상기 트레이닝 데이터의 출력을 레이블드 데이터(labeled data)와 비교하여 상기 컨볼루션 신경망을 최적화하는 단계를 포함하여 이루어질 수 있다.
일실시예에 따르면, 상기 레이블드 데이터는 상기 트레이닝 데이터에 포함된 얼굴의 3D 데이터를 컨볼루션 신경망의 출력 형식으로 가공한 데이터일 수 있다.
일실시예에 따른 딥 러닝 기반 3D 데이터 생성 방법은, 매체에 저장된 컴퓨터 프로그램으로 실행할 수 있다.
일실시예에 따른 딥 러닝 기반 3D 데이터 생성 장치는, 얼굴을 포함하는 이미지를 획득하고, 상기 이미지에서 상기 얼굴의 적어도 일부를 포함하는 관심 영역(region of interest)을 추출하고, 상기 관심 영역에 기초하여, 컨볼루션 신경망(convolutional neural network)의 인풋 레이어(input layer)에 대응하는 입력을 생성하고, 상기 입력을 상기 컨볼루션 신경망에 적용하여, 상기 컨볼루션 신경망에 의해 생성된 출력을 획득하고, 상기 출력에 기초하여, 상기 얼굴 내 미리 정의된 부위들에 각각 대응하는 위치들을 포함하는 얼굴의 3D 데이터를 생성하고, 상기 얼굴 내 미리 정의된 부위들을 각각 서로 다른 상수(constant)들로 표현하고, 상기 상수들 중 일부 또는 전부를 미리 설정된 그룹들 중 어느 하나 이상에 포함시키고, 상기 그룹들 중 하나 이상의 그룹의 상수들에 기초하여, 상기 얼굴의 3D 데이터로부터 얼굴의 특정 영역의 3D 데이터를 획득하는 프로세서를 포함할 수 있다.
일실시예에 따른 딥 러닝 기반 3D 데이터 생성 방법에 의하면, 딥 러닝 기반 3D 데이터 생성 장치가 생성한 얼굴의 3D 데이터는 얼굴 내 미리 정의된 부위들에 각각 대응하는 위치들을 포함하며, 얼굴 내 미리 정의된 부위들은 각각 서로 다른 상수들로 표현되고, 상수들 중 일부 또는 전부는 미리 설정된 그룹들 중 어느 하나 이상에 포함될 수 있고, 미리 설정된 그룹들 중 하나 이상의 그룹의 상수들에 기초하여, 얼굴의 3D 데이터로부터 얼굴의 특정 영역의 3D 데이터를 획득할 수 있다. 이런 특징 때문에, 얼굴의 3D 데이터는 다양한 분야에서 사용될 수 있다.
예를 들어, 딥 러닝 기반 3D 데이터 생성 장치는 얼굴의 특정 영역에 대응하는 그룹의 상수들을 참조하여 얼굴의 3D 데이터로부터 얼굴의 특정 영역의 3D 데이터를 구성하는 위치들을 용이하게 획득할 수 있기 때문에, 얼굴의 특정 부분의 모션 트래킹(motion tracking) 데이터를 용이하게 생성할 수 있다.
또한, 딥 러닝 기반 3D 데이터 생성 장치는 얼굴의 특정 영역에 대응하는 그룹의 상수들을 참조하여 얼굴의 3D 데이터로부터 얼굴의 특정 영역의 3D 데이터를 구성하는 위치들을 용이하게 획득하여 해당 위치들을 쉽게 변화시킬 수 있기 때문에, 얼굴의 특정 영역에 변화를 준 STL(stereo lithography file) 파일을 용이하게 생성할 수 있다.
나아가, 딥 러닝 기반 3D 데이터 생성 장치는 얼굴의 특정 영역에 대응하는 그룹의 상수들을 참조하여 얼굴의 3D 데이터로부터 얼굴의 특정 영역의 3D 데이터를 구성하는 위치들을 용이하게 획득할 수 있기 때문에, 얼굴의 일부분으로 구성된 3D 인증 데이터를 용이하게 생성할 수 있다.
한편, 실시예들에 따른 효과는 이상에서 언급한 것으로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 해당 기술 분야의 통상의 지식을 가진 자에게 명확히 이해될 수 있을 것이다.
도 1은 일실시예에 따른 딥 러닝 기반 3D 데이터 생성 방법을 설명하기 위한 순서도이다.
도 2는 일실시예에 따른 획득한 이미지로부터 관심 영역을 추출하는 단계 및 추출한 관심 영역에 기초하여 컨볼루션 신경망의 인풋레이어에 대응하는 입력을 생성하는 단계를 설명하기 위한 도면이다.
도 3은 일실시예에 따른 컨볼루션 신경망을 설명하기 위한 도면이다.
도 4는 일실시예에 따른 얼굴의 3D 데이터를 설명하기 위한 도면이다.
도 5는 일실시예에 따른 얼굴의 3D 데이터의 응용예를 설명하기 위한 도면이다.
도 6는 일실시예에 따른 컨볼루션 신경망이 학습되는 과정을 설명하기 위한 순서도이다.
도 7은 일실시예에 따른 컨볼루션 신경망이 학습되는 과정을 설명하기 위한 블럭도이다.
도 8은 일실시예에 따른 딥 러닝 기반 3D 데이터 생성 장치의 구성의 예시도이다.
실시예들의 특정한 구조적 또는 기능적 설명들은 단지 예시를 위한 목적으로 개시된 것으로서, 다양한 형태로 변경되어 실시될 수 있다. 따라서, 실시예들은 특정한 개시형태로 한정되는 것이 아니며, 본 명세서의 범위는 기술적 사상에 포함되는 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 해석되어야 한다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설명된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 일실시예에 따른 딥 러닝 기반 3D 데이터 생성 방법을 설명하기 위한 순서도이다. 도 1을 참조하면, 딥 러닝 기반 3D 데이터 생성 장치는 사람의 얼굴을 포함하는 이미지를 획득할 수 있다(110). 딥 러닝 기반 3D 데이터 생성 장치는 일반적인 연산기능, 저장기능, 통신기능, 입출력기능 등의 수행에 더하여, 컨볼루션 신경망 등의 인공신경망을 처리하여 사람의 얼굴 등의 3D 데이터를 생성하는 장치로서, 소프트웨어 모듈, 하드웨어 모듈 또는 이들의 조합으로 구현될 수 있다. 예를 들어, 딥 러닝 기반 3D 데이터 생성 장치는 컨볼루션 신경망과 관련된 동작, 연산 및 명령 등을 전달 또는 처리하여, 목적하는 3D 데이터를 생성할 수 있다. 딥 러닝 기반 3D 데이터 생성 장치는 스마트 폰, 테블릿 컴퓨터, 랩톱 컴퓨터, 데스크톱 컴퓨터, 텔레비전, 스마트워치, 웨어러블 장치, 보안 시스템, 스마트 홈 시스템, 전용서버, 범용서버 등 다양한 컴퓨팅 장치 및/또는 시스템에 탑재될 수 있다.
한편, 사람의 얼굴을 포함하는 이미지는 딥 러닝 기반 3D 데이터 생성 장치에 의해 획득될 수만 있다면, 그 구체적인 획득 방법에는 제약이 없다. 가령, 스마트 폰이나 테플릿 컴퓨터처럼 하드웨어 장치가 카메라를 포함하는 구성이라면, 딥 러닝 기반 3D 데이터 생성 장치는 카메라 또는 사진첩과 연동된 애플리케이션과 연결되어, 촬영 및 저장된 이미지를 획득할 수 있다. 또는, 딥 러닝 기반 3D 데이터 생성 장치는 하드웨어 및 소프트웨어적 구성을 통해, USB, SSD, 하드드라이브, DVD 등의 비휘발성 메모리 또는 DRAM, SRAM 등의 휘발성 메모리에 저장된 이미지 파일을 읽어드림으로써 사람의 얼굴을 포함하는 이미지를 획득할 수 있다. 또는, 딥 러닝 기반 3D 데이터 생성 장치는 유무선 인터넷, 전용회선, 인트라넷 등으로부터 서버나 다른 기기로부터 이미지 파일을 수신함으로써 사람의 얼굴을 포함하는 이미지를 획득할 수 있다.
이어서, 딥 러닝 기반 3D 데이터 생성 장치는 획득한 이미지로부터 얼굴의 적어도 일부를 포함하는 관심 영역(region of interest; RoI)을 추출할 수 있다(120). 딥 러닝 기반 3D 데이터 생성 장치가 획득한 이미지로부터 얼굴의 적어도 일부를 포함하는 관심 영역을 추출하는 모습은 도2와 같을 수 있다. 도 2는 일실시예에 따른 획득한 이미지로부터 관심 영역을 추출하는 단계 및 추출한 관심 영역에 기초하여 컨볼루션 신경망의 인풋레이어에 대응하는 입력을 생성하는 단계를 설명하기 위한 도면이다.
도 2를 참조하면, 딥 러닝 기반 3D 데이터 생성 장치는 획득한 이미지(200)에서 눈, 코, 입, 이마, 광대, 볼, 턱 등이 일부 또는 전부 포함되도록 관심 영역(210)을 추출할 수 있다. 획득한 이미지(200)로부터 관심 영역(210)을 추출하는 방법으로는, 범용 얼굴인식 API를 그대로 이용하거나, 범용 얼굴인식 API와 더불어 추가의 연산을 통해 얼굴을 포함하는 이미지로부터 관심 영역을 추출할 수 있다.
예를 들어, 범용 얼굴인식 API로는 Microsoft Azure에서 제공되는 Face API나, Google Cloud에서 제공되는 Cloud Vision API의 face detection 기능 등이 있을 수 있다. 한편, 범용 얼굴인식 API의 구현을 통해 목표하는 관심 영역을 추출할 수 없을 경우, 범용 얼굴인식 API와 더불어 추가의 연산을 통해 얼굴을 포함하는 이미지로부터 관심 영역을 추출할 수 있다.
가령, 범용 얼굴인식 API를 구현했을 때 획득한 이미지(200)로부터 얼굴 주변의 배경을 많이 추출한다면, 딥 러닝 기반 3D 데이터 생성 장치에서 추가의 연산과 제어를 통해 배경 부분을 제외한 관심 영역(210)을 추출할 수 있다. 또는, 범용 얼굴인식 API를 구현했을 때 획득한 이미지(200)로부터 턱, 볼, 광대 등의 얼굴 주변부가 충분히 추출되지 않는다면, 딥 러닝 기반 3D 데이터 생성 장치에서 추가의 연산과 제어를 통해 얼굴 주변부를 포함한 관심 영역(210)을 추출할 수 있다.
이어서, 도 1을 다시 살펴보면, 딥 러닝 기반 3D 데이터 생성 장치는 관심 영역에 기초하여, 컨볼루션 신경망의 인풋레이어에 대응하는 입력을 생성할 수 있다(130). 딥 러닝 기반 3D 데이터 생성 장치가 관심 영역(210)에 기초하여 입력(220)을 생성하는 모습은 도2와 같을 수 있다.
관심 영역(210)으로부터 입력(220)을 생성함에 있어, 관심 영역(210)의 가로 길이와 세로 길이가 동일하도록 처리하는 과정이 있을 수 있다. 길이 단위는 cm, mm, inch 등 물리적인 길이 단위일 수 있으며, dpi, ppi 등의 화상 단위일 수도 있다. 이를 통해 관심 영역(210)으로부터 생성된 입력(220)은 정사각형의 이미지 파일이 될 수 있다. 일반적으로 컨볼루션 연산이 정사각형 단위의 커널(kernel)을 통해 이루어지며, 풀링(pooling)의 기본 단위도 정사각형 단위로 이루어지므로, 입력(220)을 정사각형의 이미지 파일로 만들어줌으로써 컨볼루션 연산이 관심 영역(210)으로 추출된 이미지의 모든 부분에 대해 적절하게 수행되도록 할 수 있다.
또한, 관심 영역(210)으로부터 입력(220)을 생성함에 있어, 관심 영역(210)을 흑백 이미지로 처리하는 과정이 있을 수 있다. 이를 통해 관심 영역(210)으로부터 생성된 입력(220)은 색상 정보가 없는 단일 채널(channel)의 이미지 파일이 될 수 있다. 단일 채널의 이미지 파일이 컨볼루션 신경망으로 입력될 경우, 컨볼루션 신경망은 높이(height)와 너비(width)만 가지며 깊이(depth)는 가지지 않는 특징맵(feature map)을 연산하면 되므로, 보다 적은 컴퓨팅 파워를 가지고도 보다 빠른 속도로 목표하는 출력을 얻을 수 있다. 이를 통해, 딥 러닝 기반 3D 데이터 생성 장치가 전용서버나 최고급 스마트 폰이나 등이 아닌 아닌 일반적인 스마트 폰에 탑재되더라도 컨볼루션 신경망의 연산이 용이하게 수행되도록 할 수 있다.
이어서, 다시 도 1을 살펴보면, 딥 러닝 기반 3D 데이터 생성 장치는 입력을 컨볼루션 신경망에 적용하여, 컨볼루션 신경망에 의해 생성된 출력을 획득할 수 있다(140). 딥 러닝 기반 3D 데이터 생성 장치에 포함된 컨볼루션 신경망의 구성 및 작동 원리는 도 3과 같을 수 있다. 도 3은 일실시예에 따른 컨볼루션 신경망을 설명하기 위한 도면이다.
컨볼루션 신경망(300)은 미리 구축된 데이터베이스로부터 커널 또는 입력(220)을 로딩할 수 있고, 데이터베이스는 딥 러닝 기반 3D 데이터 생성 장치에 포함된 메모리로 구현되거나 딥 러닝 기반 3D 데이터 생성 장치와 유선, 무선, 또는 네트워크 등으로 연결 가능한 서버 등의 외부 장치로 구현될 수 있다.
기계 학습(machine learning)에 있어서, 신경망(neural network)의 일종인 컨볼루션 신경망(300)은 컨볼루션 연산을 수행하도록 설계된 컨볼루션 레이어(convolution layer, 310, 320)들을 포함한다. 컨볼루션 신경망(300)을 구성하는 컨볼루션 레이어(310, 320)는 적어도 하나의 커널을 이용하여 입력과 연관된 컨볼루션 연산을 수행할 수 있다. 도 3과 같이, 컨볼루션 신경망(300)이 복수의 컨볼루션 레이어(310, 320)들을 포함하면, 딥 러닝 기반 3D 데이터 생성 장치는 각 컨볼루션 레이어(310, 320)에 대응하는 각 컨볼루션 연산을 수행할 수 있으므로, 복수의 컨볼루션 연산들을 수행할 수 있다. 각 컨볼루션 레이어(310, 320)의 입력, 커널 및 출력의 크기는 해당 컨볼루션 레이어가 설계된 양상에 따라 정의될 수 있다.
구체적으로, 제 1 컨볼루션 레이어(310)는 입력(220)을 받아들이는 인풋 레이어(input layer)로서의 역할을 수행하며, 입력(220)은 커널과 컨볼루션 되어 특징맵(feature map, 311)을 생성할 수 있다. 커널은 입력(220)의 명도 특징을 감지하거나 에지 특징을 감지하는 커널 등으로 구성될 수 있으며, 기 알려진 AlexNet 모델, ConvNet 모델, LeNet-5모델, Inception Network, GoogLeNet 모델 등에서의 커널들이 이용될 수 있다. 그러나, 이에 제한되는 것은 아니며, 다양한 컨볼루션 신경망 모델들에서 이용되는 커널들이 이용될 수 있다.
다음으로, 획득된 특징맵(311)에 대해 활성화함수(activation function, 312)를 적용할 수 있다. 이를 통해, 비선형적인 딥 러닝이 이루어지도록 할 수 있다. 활성화함수는 기 알려진 시그모이드 함수(sigmoid function), 하이퍼볼릭 탄젠트 함수(hyperbolic tangent function), ReLU(rectified linear unit) 등이 이용될 수 있다. 그러나, 이에 제한되는 것은 아니며, 다양한 컨볼루션 신경망 모델들에서 이용되는 활성화함수들이 이용될 수 있다.
구체적으로, 활성화함수(312)는 ReLU일 수 있다. 활성화함수(312)로 ReLU를 사용할 경우, 여러 개의 레이어로 구성된 딥 러닝 신경망에서 발생하는 그래디언트 소멸(gradient vanishing) 문제를 회피할 수 있다. 또한, ReLU는 시그모이드 함수 등과 비교하여 함수 자체가 간단하여, 보다 적은 컴퓨팅 파워를 가지고도 보다 빠른 속도로 목표하는 출력을 얻을 수 있다. 이를 통해, 딥 러닝 기반 3D 데이터 생성 장치가 전용서버나 최고급 스마트 폰이나 등이 아닌 아닌 일반적인 스마트 폰에 탑재되더라도 컨볼루션 신경망의 연산이 용이하게 수행될 수 있다.
다음으로, 활성화함수가 정용된 특징맵들을 풀링(pooling, 313)하여 제 1 풀링된 특징맵(pooled feature map, 314)을 생성할 수 있다. 풀링은 기 알려진 최대값 풀링(max pooling), 평균값 풀링(mean pooling) 등이 이용될 수 있다. 그러나, 이에 제한되는 것은 아니며, 다양한 컨볼루션 신경망 모델들에서 이용되는 풀링들이 이용될 수 있다. 풀링(313)을 통해 유의미한 정보는 남겨둔 채 컨볼루션 신경망의 전체 노드의 개수 및 연산량을 줄일 수 있으므로, 보다 적은 컴퓨팅 파워를 가지고도 보다 빠른 속도로 목표하는 출력을 얻을 수 있다. 이를 통해, 딥 러닝 기반 3D 데이터 생성 장치가 전용서버나 최고급 스마트 폰이나 등이 아닌 아닌 일반적인 스마트 폰에 탑재되더라도 컨볼루션 신경망의 연산이 용이하게 수행되도록 할 수 있다.
한편, 컨볼루션 신경망(300)에서, 컨볼루션 레이어를 통해 생성된 특징맵에 활성화함수를 적용하여 풀링하는 과정은 복수 회 이루어질 수 있다. 구체적으로, 컨볼루션 신경망(300)은 제 2 컨볼루션 레이어(320)는 제 1 풀링된 특징맵(314)을 입력으로서 획득하여, 컨볼루션 연산을 통해 제 2 특징맵(321)을 생성할 수 있다. 이어서, 제 2 특징맵(321)에 활성화함수(322)가 적용될 수 있으며, 활성화함수가 적용된 제 2 특징맵을 풀링(323)하여 제 2 풀링된 특징맵(324)을 생성할 수 있다.
또한, 도시되지 않았지만, 제 n 컨볼루션 레이어가 있을 수 있다. 제 n 컨볼루션 레이어는 제 n-1 풀링된 특징맵을 입력으로서 획득하여, 컨볼루션 연산을 통해 제 n 특징맵을 생성할 수 있다. 이어서, 제 n 특징맵에 활성화함수가 적용될 수 있으며, 활성화함수가 적용된 제 n 특징맵을 풀링하여 제 n 풀링된 특징맵을 생성할 수 있다. 이처럼 풀링된 특징맵을 복수 회 생성하는 과정을 통해, 유의미한 정보는 남겨둔 채 컨볼루션 신경망의 전체 노드의 개수 및 연산량을 줄일 수 있으므로, 보다 적은 컴퓨팅 파워를 가지고도 보다 빠른 속도로 목표하는 출력을 얻을 수 있다.
이어서, 풀리 커넥티드 레이어(fully connected layer, 390)를 통해 마지막으로 풀링된 특징맵(324)을 모두 연결하여, 결과값으로써 출력(391)을 생성할 수 있다.
다시 도 1을 살펴보면, 딥 러닝 기반 3D 데이터 생성 장치는 출력에 기초하여, 얼굴 내 미리 정의된 부위들에 각각 대응하는 위치들을 포함하는 얼굴의 3D 데이터를 생성할 수 있다(150). 얼굴 내 미리 정의된 부위들에 각각 대응하는 위치들을 포함하는 얼굴의 3D 데이터는 도 4와 같을 수 있다. 도 4는 일실시예에 따른 얼굴의 3D 데이터를 설명하기 위한 도면이다.
도 4를 참조하면, 딥 러닝 기반 3D 데이터 생성 장치는 얼굴 내 미리 정의된 부위들에 각각 대응하는 위치들을 3D 데이터로 생성할 수 있다. 가령, “코로부터 가장 멀리 위치한 오른쪽 눈 부위”라는 미리 정의된 제 1 부위(1)가 있을 수 있다. “코로부터 가장 멀리 위치한 오른쪽 눈 부위”는 모든 사람의 얼굴에 공통으로 존재하는 부위이지만, 일반적으로 사람의 얼굴마다 “코로부터 가장 멀리 위치한 오른쪽 눈 부위”가 자리하는 구체적인 위치는 상이할 것이다. 딥 러닝 기반 3D 데이터 생성 장치는 컨볼루션 신경망(300)의 출력(391)에 기초하여, 미리 정의된 “코로부터 가장 멀리 위치한 오른쪽 눈 부위”, 즉 획득한 이미지(200)의 얼굴에서 제 1 부위(1)의 구체적인 위치 데이터를 생성할 수 있다.
제 1 부위(1)의 위치는 미리 설정된 좌표(O)를 기준으로 세 개의 실수(x1, y1, z1)로 표현될 수 있다. 한편, 미리 정의된 다른 부위들에 각각 대응하는 위치들도 미리 설정된 좌표(O)를 변경하지 않은 상태에서 세 개의 실수(xn, yn, zn)로 표현될 수 있다.
한편, 딥 러닝 기반 3D 데이터 생성 장치는 제 1 부위(1) 외에도, 미리 정의된 다른 부위들의 위치 데이터를 생성할 수 있다. 가령, “코로부터 가장 가까이 위치한 오른쪽 눈 부위”라는 미리 정의된 제 7 부위(7)가 있을 수 있다. “코로부터 가장 가까이 위치한 오른쪽 눈 부위”는 모든 사람의 얼굴에 공통으로 존재하는 부위이지만, 일반적으로 사람의 얼굴마다 “코로부터 가장 가까이 위치한 오른쪽 눈 부위”가 자리하는 구체적인 위치는 상이할 것이다. 딥 러닝 기반 3D 데이터 생성 장치는 컨볼루션 신경망(300)의 출력(391)에 기초하여, 미리 정의된 “코로부터 가장 가까이 위치한 오른쪽 눈 부위”, 즉 획득한 이미지(200)의 얼굴에서 제 7 부위(7)의 구체적인 위치 데이터를 생성할 수 있다.
이와 같은 과정을 반복하여, 딥 러닝 기반 3D 데이터 생성 장치는 얼굴 내 미리 정의된 부위들의 위치 데이터들을 생성할 수 있으며, 위치 데이터들을 종합하여 얼굴 내 미리 정의된 부위들에 각각 대응하는 위치들을 포함하는 얼굴의 3D 데이터를 생성할 수 있다.
한편, 딥 러닝 기반 3D 데이터 생성 장치는 얼굴 내 미리 정의된 부위들을 각각 서로 다른 상수(constant)들로 표현할 수 있다. 예를 들어, 도 4를 참조하면, “코로부터 가장 멀리 위치한 오른쪽 눈 부위”인 제 1 부위(1)는 상수 1로, “오른쪽 눈에서 가장 높이 올라간 부위“인 제 2 부위(2)는 상수 2로, “코로부터 가장 가까이 위치한 오른쪽 눈 부위”인 제 7 부위(1)는 상수 7로 표현할 수 있다. 구체적으로, 얼굴의 3D 데이터가 리스트(list)나 배열(array) 형태의 자료형일 경우, 리스트나 배열의 인덱스(index)가 얼굴 내 미리 정의된 부위들과 각각 대응되는 상수들로 쓰일 수 있다. 그러나 상수들은 반드시 숫자로 표시될 필요는 없으며, 얼굴 내 미리 정의된 부위들을 구별해 줄 수만 있으면, 문자, 특수문자, 숫자, 또는 이들의 조합으로 이루어져 있을 수도 있다.
또한, 딥 러닝 기반 3D 데이터 생성 장치는 상수들의 일부 또는 전부를 미리 설정된 그룹들(400) 중 어느 하나 이상에 포함시킬 수 있다. 가령, 제 1 부위(1), 제 2 부위(2), 및 제 7 부위(7)에 대응하는 상수 1, 2, 및 7은 미리 설정된 “오른쪽 눈” 그룹(410)에 포함될 수 있다. 하나의 상수는 반드시 하나의 그룹에만 포함될 필요는 없으며, 복수의 그룹에 포함될 수 있다. 예를 들어 상수 7은 “미간” 그룹(430)에도 포함될 수 있다. 또한, 필요와 목적에 따라, 어떤 상수들은 미리 설정된 그룹 중 어느 그룹에도 설정되지 않을 수도 있다.
이어서, 딥 러닝 기반 3D 데이터 생성 장치는 미리 설정된 그룹들(400) 중 하나 이상의 그룹의 상수들에 기초하여, 얼굴의 3D 데이터로부터 얼굴의 특정 영역의 3D 데이터를 획득할 수 있다. 예를 들어, “오른쪽 눈” 그룹(410)에 포함되는 상수 1, 2, 7 등을 참조하여, 해당하는 상수들에 각각 대응하는 위치들을 얼굴의 3D 데이터로부터 추출함으로써, “오른쪽 눈” 영역의 3D 데이터를 획득할 수 있다. 또한, “양쪽 눈 및 미간” 영역의 3D 데이터를 획득하고자 하는 경우, “오른쪽 눈”, “왼쪽 눈” 및 “미간” 그룹(410, 420, 430)에 포함되는 상수들을 참조하여, 해당하는 상수들에 각각 대응하는 위치들을 얼굴의 3D 데이터로부터 추출함으로써, “양쪽 눈 및 미간” 영역의 3D 데이터를 획득할 수 있다.
일실시예에 따르면, 딥 러닝 기반 3D 데이터 생성 장치는 얼굴 내 특정 부위에 대응하는 출력 노드들로부터 각각 획득된 출력 값들을 조합하여, 특정 부위에 대응하는 값들을 생성할 수 있다. 예를 들어, 딥 러닝 기반 3D 데이터 생성 장치는 컨볼루션 신경망의 출력 레이어의 출력 노드들의 출력 값들(391) 중에서 얼굴 내 부위(미리 정의된 "코로부터 가장 가까이 위치한 오른쪽 눈 부위")에 대응하는 출력 노드들의 출력 값들을 조합하여 얼굴 내 부위(미리 정의된 "코로부터 가장 가까이 위치한 오른쪽 눈 부위")에 대응하는 값들(미리 설정된 좌표(O)를 기준으로 얼굴 내 미리 정의된 부위들에 각각 대응하는 위치들의 x축 값, y축 값, 또는 z축 값 중 어느 하나의 값을 스칼라(scalar))을 생성할 수 있다.
일실시예에 따르면, 딥 러닝 기반 3D 데이터 생성 장치는 상수들로부터 특정 부위에 대응하는 특정 상수를 획득할 수 있다. 예를 들어, 딥 러닝 기반 3D 데이터 생성 장치는 상수들(1, 2, ...)로부터 얼굴 내 부위(미리 정의된 "코로부터 가장 가까이 위치한 오른쪽 눈 부위")에 대응하는 상수 7을 획득할 수 있다.
일실시예에 따르면, 딥 러닝 기반 3D 데이터 생성 장치는 미리 설정된 그룹들-그룹들에서, 상수들의 적어도 일부는 중복이 허용되어 서로 다른 그룹들에 포함됨-마다 특정 상수가 포함되어 있는지 여부를 판단하여, 부위들을 서로 중첩시켜 미리 설정된 그룹들 중 특정 상수가 포함되는 제1 그룹 및 제2 그룹을 식별할 수 있다. 예를 들어, 딥 러닝 기반 3D 데이터 생성 장치는 미리 설정된 그룹들(410, 420, 430,, ...)에서 상수들(1,2, ...)의 적어도 일부(7)는 중복이 허용되어 서로 다른 그룹(410. 430)에 포함되고, 상수(7)가 그룹(410, 430)에 포함되어 있는지 여부를 판단할 수 있다. 딥러닝 기반 3D 데이터 생성 장치는 부위들("오른쪽 눈", "미간")을 중첩시켜 미리 설정된 그룹들(410, 420, 430, ...) 중 상수(7)가 포함되는 그룹(410,430)을 식별할 수 있다.
일실시예에 따르면, 딥 러닝 기반 3D 데이터 생성 장치는 제1 그룹 내 상수들의 시퀀스 내에서, 특정 상수의 순서를 식별하여 특정 값들을 특정 그룹 내 식별된 순서에 포함시킬 수 있다. 예를 들어, 딥 러닝 기반 3D 데이터 생성 장치는 오른쪽 눈 그룹(410) 내 상수들의 시퀀스(1,2,7, ...) 내에서, 상수(7)을 식별하여 얼굴 내 부위(미리 정의된 "코로부터 가장 가까이 위치한 오른쪽 눈 부위")에 대응하는 출력 노드들의 출력 값들을 조합하여 얼굴 내 부위(미리 정의된 "코로부터 가장 가까이 위치한 오른쪽 눈 부위")에 대응하는 값들(미리 설정된 좌표(O)를 기준으로 얼굴 내 미리 정의된 부위들에 각각 대응하는 위치들의 x축 값, y축 값, 또는 z축 값 중 어느 하나의 값을 스칼라(scalar))을 오른쪽 눈 그룹(410) 내 식별된 순서에 포함시킬 수 있다.
일실시예에 따르면, 딥 러닝 기반 3D 데이터 생성 장치는 제2 그룹 내 상수들의 시퀀스 내에서, 특정 상수의 순서를 식별하여 특정 값들을 제2 그룹 내 식별된 순서에 포함시킬 수 있다. 예를 들어, 딥 러닝 기반 3D 데이터 생성 장치는 미간 그룹(430) 내 상수들의 시퀀스(5,6,7,b,c,d, ...) 내에서, 상수(7)를 식별하여 얼굴 내 부위(미리 정의된 "코로부터 가장 가까이 위치한 오른쪽 눈 부위")에 대응하는 출력 노드들의 출력 값들을 조합하여 얼굴 내 부위(미리 정의된 "코로부터 가장 가까이 위치한 오른쪽 눈 부위")에 대응하는 값들(미리 설정된 좌표(O)를 기준으로 얼굴 내 미리 정의된 부위들에 각각 대응하는 위치들의 x축 값, y축 값, 또는 z축 값 중 어느 하나의 값을 스칼라(scalar))을 미간 그룹(430) 내 식별된 순서에 포함시킬 수 있다.
일실시예에 따르면, 딥 러닝 기반 3D 데이터 생성 장치는 제1 그룹의 상수들 및 제2 그룹의 상수들의 합집합의 시퀀스에서, 제1 그룹의 상수들과 제2 그룹의 상수들의 교집합에 포함되는 제1 상수와 대응하는 순서를 참조하여, 제1 그룹의 상수들과 대응하는 얼굴 내 미리 정의된 부위들 및 제2 그룹의 상수들과 대응하는 얼굴 내 미리 정의된 부위들의 교집합에 포함되는 제1 부위에 대응하는 3D 데이터를 생성할 수 있다. 예를 들어, 딥 러닝 기반 3D 데이터 생성 장치는 오른쪽 눈 그룹(410)의 상수들(1,2,7,...) 및 미간 그룹(430)의 상수들(5,6,7,b,c,d,...)의 합집합의 시퀀스(1,2,7, ... , 5,6,7,b,c,d,...)에서, 오른쪽 눈 그룹(410)의 상수들(1,2,7,...)과 미간 그룹(430)의 상수들(5,6,7,b,c,d,...)의 교집합(7)에 포함되는 상수(7)와 대응하는 순서를 참조하여, 오른쪽 눈 그룹(410)의 상수들(1,2,7,...)과 대응하는 부위들 및 미간 미간 그룹(430)의 상수들(5,6,7,b,c,d,...)과 대응하는 부위들의 교집합(7)에 포함되는 "코로부터 가장 가까이 위치한 오른쪽 눈 부위"에 대응하는 3D 데이터를 생성할 수 있다.
이처럼 딥 러닝 기반 3D 데이터 생성 장치가 생성한 얼굴의 3D 데이터는 얼굴 내 미리 정의된 부위들에 각각 대응하는 위치들을 포함하며, 얼굴 내 미리 정의된 부위들은 각각 서로 다른 상수들로 표현되고, 상수들 중 일부 또는 전부는 미리 설정된 그룹들(400) 중 어느 하나 이상에 포함될 수 있고, 미리 설정된 그룹들(400) 중 하나 이상의 그룹의 상수들에 기초하여, 얼굴의 3D 데이터로부터 얼굴의 특정 영역의 3D 데이터를 획득할 수 있다. 이런 특징 때문에, 얼굴의 3D 데이터는 다양한 분야에서 사용될 수 있으며, 이러한 점은 도 5를 통해 확인할 수 있다. 도 5는 일실시예에 따른 얼굴의 3D 데이터의 응용예를 설명하기 위한 도면이다.
도 5를 참조하면, 딥 러닝 기반 3D 데이터 생성 장치는 모션 트래킹(motion tracking) 데이터를 생성할 수 있다(510). 특히, 딥 러닝 기반 3D 데이터 생성 장치는 얼굴의 특정 영역의 모션 트래킹 데이터를 생성할 수 있다. 이때, 딥 러닝 기반 3D 데이터 생성 장치는 얼굴의 특정 영역에 대응하는 그룹의 상수들을 참조하여 얼굴의 3D 데이터로부터 얼굴의 특정 영역의 3D 데이터를 구성하는 위치들을 용이하게 획득할 수 있기 때문에, 얼굴의 특정 부분의 모션 트래킹 데이터를 용이하게 생성할 수 있다.
예를 들어, 딥 러닝 기반 3D 데이터 생성 장치는 “오른쪽 눈” 그룹(410), “왼쪽 눈” 그룹(420), 및 “미간” 그룹(430)에 속하는 상수들을 참조하여, 스마트 폰의 전면카메라 등으로 자신의 모습을 바라보고 있는 사용자의 “양쪽 눈 및 미간” 영역의 3D 데이터를 용이하게 획득하여 모션 트래킹을 할 수 있다. 이를 바탕으로, 가령, 사용자의 화면에 표시되는 사용자 얼굴에 안경 이미지를 실시간으로 디스플레이 할 수 있다. 딥 러닝 기반 3D 데이터 생성 장치는 사용자의 “양쪽 눈 및 미간” 영역의 3D 데이터를 획득하여 제어하고 있기 때문에, 사용자가 고개를 돌리더라도, 지연 없는 실시간 처리로 마치 안경을 쓴 채로 고개를 돌리는 듯한 자연스러운 모션 트래킹이 이루어질 수 있다.
또한, 딥 러닝 기반 3D 데이터 생성 장치는 얼굴의 3D 데이터로부터 3D 프린팅이 가능한 STL 파일(stereo lithography file)을 생성할 수 있다(520). 나아가, 딥 러닝 기반 3D 데이터 생성 장치는 얼굴의 3D 데이터 및 얼굴의 특정 영역의 3D 데이터에 기초하여, 얼굴의 특정 영역의 3D 데이터에 대응하는 그룹의 상수들 중 일부 또는 전부에 대응하는 위치들을 변화시켜 수정된 얼굴의 3D 데이터를 생성할 수 있고, 수정된 3D 데이터에 기초하여 STL 파일을 생성할 수 있다. 이때, 딥 러닝 기반 3D 데이터 생성 장치는 얼굴의 특정 영역에 대응하는 그룹의 상수들을 참조하여 얼굴의 3D 데이터로부터 얼굴의 특정 영역의 3D 데이터를 구성하는 위치들을 용이하게 획득하여 해당 위치들을 쉽게 변화시킬 수 있기 때문에, 얼굴의 특정 영역에 변화를 준 STL 파일을 용이하게 생성할 수 있다.
가령, 코 부분을 성형한 결과를 시뮬레이팅 하고 싶다면, 딥 러닝 기반 3D 데이터 생성 장치는 “코” 그룹의 상수들을 참조하여, 해당하는 상수들에 각각 대응하는 위치들을 얼굴의 3D 데이터로부터 추출하여 구체적인 위치들을 변화시킴으로써 “성형된 코”의 3D 데이터를 획득할 수 있고, 이를 코 영역을 제외한 얼굴의 3D 데이터와 재결합한 후 STL 파일을 생성하면, 성형된 코를 시뮬레이팅 할 수 있다.
또한, 딥 러닝 기반 3D 데이터 생성 장치는 사용자의 얼굴 일부 또는 전부의 3D 인증 데이터를 생성할 수 있다(530). 가령, 보안시스템 등에서 사용자의 식별 및 인증을 위한 용도로 사용자의 얼굴 전부 또는 일부의 3D 데이터를 보유하고 있을 수 있다. 그런데 사용자의 스마트 폰 등이 최고급 기종이 아니기 때문에 사용자의 스마트 폰 등의 하드웨어적 구성만으로 보안시스템 등에서 보유하고 있는 3D 데이터와 비교할 용도의 사용자의 얼굴의 3D 데이터를 생성할 수 없을 수 있다. 이 경우, 딥 러닝 기반 3D 데이터 생성 장치는 사용자의 얼굴을 포함하는 2D 이미지만으로 얼굴의 3D 데이터를 생성할 수 있으며, 나아가 딥 러닝 기반 3D 데이터 생성 장치는 얼굴의 특정 영역에 대응하는 그룹의 상수들을 참조하여 얼굴의 3D 데이터로부터 얼굴의 특정 영역의 3D 데이터를 구성하는 위치들을 용이하게 획득할 수 있기 때문에, 얼굴의 일부분으로 구성된 3D 인증 데이터를 용이하게 생성할 수 있다.
이처럼 딥 러닝 기반 3D 데이터 생성 장치는 얼굴의 3D 데이터를 통해 다양한 응용 데이터를 생성할 수 있다. 나아가, 응용 데이터들은 상술한 응용예들에 한정되지 않는다. 가령, 딥 러닝 기반 3D 데이터 생성 장치는 얼굴 내 미리 정의된 부위들의 3D 위치 데이터와 얼굴의 특정 영역들의 3D 위치 데이터에 기초하여, 얼굴 내 미리 정의된 부위와 부위 사이의 거리, 얼굴의 특정 영역의 길이, 얼굴의 특정 영역의 높이, 얼굴의 특정 영역의 넓이 등의 정확한 사이즈를 측정하여, 사용자의 얼굴 사이즈 데이터를 생성할 수도 있다.
이를 통해, 딥 러닝 기반 3D 데이터 생성 장치는 사용자의 얼굴 형상에 최적화된 맞춤형 마스크팩 등을 주문 제작하는데 활용될 수도 있다. 즉, 딥 러닝 기반 3D 데이터 생성 장치가 사용자의 얼굴 내 미리 정의된 부위들의 3D 위치 데이터 및 얼굴의 특정 영역들의 3D 데이터에 기초하여, 사용자의 오른쪽 및 왼쪽 눈의 길이, 양 눈 사이의 거리, 코의 길이 및 높이, 이마의 넓이, 광대들 사이의 폭 등을 측정하여 사용자의 얼굴 사이즈 데이터를 생성하면, 이를 바탕으로 사용자를 위한 맞춤형 마스크팩이 생산될 수 있을 것이다.
한편, 딥 러닝 기반 3D 데이터 생성 장치에 포함되는 컨볼루션 신경망(300)은 얼굴을 포함하는 이미지에서 추출한 관심 영역으로부터 생성한 입력에 대해, 얼굴의 3D 데이터의 기초가 되는 출력을 생성하도록 학습될 수 있다. 이러한 과정은 도 6과 같을 수 있다. 도 6은 일실시예에 따른 컨볼루션 신경망이 학습되는 과정을 설명하기 위한 도면이다.
일실시예에 따르면, 딥 러닝 기반 3D 데이터 생성을 위한 학습은 학습 장치에 의해 수행될 수 있다. 학습 장치는 3D 데이터를 생성하는 컨볼루션 신경망을 학습시키는 장치로서, 예를 들어 소프트웨어 모듈, 하드웨어 모듈 또는 이들의 조합으로 구현될 수 있다.
학습 장치는 얼굴을 포함하는 이미지인 트레이닝 데이터로부터, 딥 러닝 기반 3D 데이터 생성 장치가 얼굴을 포함하는 이미지를 획득하고(610), 획득한 이미지에서 얼굴의 적어도 일부를 포함하는 관심 영역을 추출하고(620), 관심 영역에 기초하여 컨볼루션 신경망(300)의 인풋레이어에 대응하는 입력을 생성할 수 있다(630).
학습 장치는 딥 러닝 기반 3D 데이터 생성 장치는 트레이닝 데이터의 입력을 컨볼루션 신경망(300)에 적용하여, 컨볼루션 신경망에 의해 생성된 트레이닝 데이터의 출력을 획득할 수 있고(640), 이어서, 트레이닝 데이터의 출력을 레이블드 데이터(labeled data)와 비교하여 컨볼루션 신경망(300)을 최적화할 수 있다(650). 이러한 과정은 도 7과 같을 수 있다. 도 7은 일실시예에 따른 컨볼루션 신경망이 학습되는 과정을 설명하기 위한 블럭도이다.
도 7을 참조하면, 학습 장치는 사람의 얼굴을 포함하는 이미지인 트레이닝 데이터(700)로부터 생성한 트레이닝 데이터의 입력(710)을 컨볼루션 신경망(300)에 적용하여, 트레이닝 데이터의 출력(720)을 획득할 수 있다. 여기서 컨볼루션 신경망(300)은 컨볼루션 레이어를 통해 입력된 데이터와 커널을 컨볼루션 연산하여 특징맵을 생성하는 단계, 특징맵에 활성화함수를 적용하는 단계, 및 활성화함수가 적용된 특징맵을 풀링하여 풀링된 특징맵을 생성하는 단계를 1회 또는 복수 회 수행할 수 있다. 이후, 컨볼루션 신경망(300)은 풀리 커넥티드 레이어를 통해 마지막으로 풀링된 특징맵으로부터 트레이닝 데이터의 출력(720)을 생성할 수 있다.
이어서, 학습 장치는 트레이닝 데이터의 출력(720)과 레이블드 데이터(730)를 비교하여 컨볼루션 신경망(300)을 최적화할 수 있다(740).
여기서, 레이블드 데이터(730)는 트레이닝 데이터(700)에 포함된 얼굴의 3D 데이터를 컨볼루션 신경망(300)의 출력 형식으로 가공한 데이터일 수 있다. 가령, 컨볼루션 신경망(300)의 출력 노드(node)들은 각각 미리 설정된 좌표(O)를 기준으로 얼굴 내 미리 정의된 부위들에 각각 대응하는 위치들의 x축 값, y축 값, 또는 z축 값 중 어느 하나의 값을 스칼라(scalar)로 가질 수 있으며, 레이블드 데이터(730)는 트레이닝 데이터(700)에 포함된 얼굴의 3D 데이터가 이러한 출력 노드들의 형식에 부합하도록 가공된 데이터일 수 있다.
구체적으로, 트레이닝 데이터(700)는 아이폰 XR, 아이폰 XS 등의 스마트 폰의 전면 카메라로 촬영한 사람의 얼굴을 포함하는 이미지일 수 있으며, 레이블드 데이터(730)는 아이폰 XR, 아이폰 XS 등의 스마트 폰의 트루 뎁스 카메라 (true depth camera) 기술을 이용하여 생성한 동일한 사람의 얼굴의 3D 포인트 클라우드(3D point cloud)를 컨볼루션 신경망(300)의 출력 형식으로 가공한 데이터일 수 있다.
또는, 트레이닝 데이터(700)는 일반 카메라로 촬영한 사람의 얼굴을 포함하는 이미지일 수 있으며, 레이블드 데이터(730)는 3D 프린팅 스튜디오에서 3D 스캐너를 이용하여 생성한 이미지에 포함된 얼굴과 동일한 얼굴의 STL 파일을 컨볼루션 신경망(300)의 출력 형식으로 가공한 데이터일 수 있다.
그러나, 레이블드 데이터(730)는 상기 예들에 제한되는 것은 아니며, 트레이닝 데이터(700)에 포함된 사람의 얼굴과 동일한 얼굴의 3D 데이터를 생성하는 기초가 될 수 있는 출력이라면 레이블드 데이터(730)로 이용될 수 있다.
다시 도 7을 참조하면, 학습 장치는 트레이닝 데이터의 출력(720)과 레이블드 데이터(730)를 비교하여 컨볼루션 신경망(300)을 최적화할 수 있다(740). 트레이닝 데이터의 출력(720)과 레이블드 데이터(730)의 비교는 손실함수(loss function)를 통해 이루어질 수 있다. 손실함수는 기 알려진 평균 제곱 오차(mean squared error, MSE), 교차 엔트로피 오차(cross entropy error, CEE) 등이 이용될 수 있다. 그러나, 이에 제한되는 것은 아니며, 트레이닝 데이터의 출력(720)과 레이블드 데이터(730)의 편차 내지는 오차를 측정할 수 있다면, 다양한 컨볼루션 신경망 모델들에서 이용되는 손실함수들이 이용될 수 있다.
한편, 손실함수의 최소값을 추정하여, 손실함수가 최소값 추정치가 되도록 컨볼루션 신경망의 웨이트(weight)를 재설정하는 과정을 반복함으로써 컨볼루션 신경망(300)을 최적화할 수 있다. 컨볼루션 신경망(300)의 최적화를 위해 기 알려진 역전파(backpropagation) 알고리즘, 확률론적 경사하강법(stochastic gradient descent) 등이 이용될 수 있다. 그러나, 이에 제한되는 것은 아니며, 다양한 컨볼루션 신경망 모델들에서 이용되는 웨이트의 최적화 알고리즘이 이용될 수 있다.
다음으로, 도 8은 일실시예에 따른 장치의 구성의 예시도이다.
도 8을 참조하면, 장치(800)는 프로세서(810) 및 메모리(820)를 포함한다. 프로세서(810)는 도 1 내지 도 7을 통하여 전술한 적어도 하나의 장치들을 포함하거나, 도 1 내지 도 7을 통하여 전술한 적어도 하나의 방법을 수행할 수 있다. 메모리(820)는 컨볼루션 레이어들의 입력과 관련된 정보, 커널과 관련된 정보들, 및 딥 러닝 기반 3D 데이터 생성 방법이 구현된 프로그램을 저장할 수 있다. 메모리(820)는 휘발성 메모리 또는 비휘발성 메모리일 수 있다.
프로세서(810)는 프로그램을 실행하고, 장치(800)를 제어할 수 있다. 프로세서(810)에 의하여 실행되는 프로그램의 코드는 메모리(820)에 저장될 수 있다. 장치(800)는 입출력 장치(도면 미 표시)를 통하여 외부 장치(예를 들어, 퍼스널 컴퓨터 또는 네트워크)에 연결되고, 데이터를 교환할 수 있다.
일실시예에 따르면 장치(800)는 컨볼루션 신경망과 관련된 연산을 고속으로 처리하는 CNN 가속기, NPU(Neural Processing Unit) 또는 VPU(Vision Processing Unit)에 채용되어 해당 전용 프로세서를 제어할 수 있다. 장치(800)는 설계 의도에 따라 다양한 하드웨어를 채용하거나 다양한 하드웨어에 채용될 수 있으며 도시된 구성요소들의 실시예에 한정되지 않는다. 컨볼루션 신경망 처리 시 상술한 실시예들을 적용하는 경우, 컨볼루션 신경망의 처리에서 요구되는 데이터 로드 횟수, 연산 횟수(예를 들어, MAC의 연산 횟수)를 줄여 메모리를 절감하고 처리 속도를 높일 수 있으므로, 상술한 실시예들은 제한된 리소스를 사용하는 환경이나 임베디드 단말에 적합할 수 있다.
이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술 분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (9)

  1. 얼굴을 포함하는 2D 이미지를 획득하는 단계;
    상기 2D 이미지에서 상기 얼굴의 적어도 일부를 포함하는 관심 영역(region of interest)을 추출하는 단계;
    상기 관심 영역에 기초하여, 얼굴들의 2D 트레이닝 이미지들 및 얼굴들의 트레이닝 3D 데이터들에 기초하여 2D 이미지로부터 3D 데이터를 생성하도록 학습된, 컨볼루션 신경망(convolutional neural network)의 인풋 레이어(input layer)에 대응하는 입력을 생성하는 단계;
    상기 입력을 상기 컨볼루션 신경망에 적용하여, 상기 컨볼루션 신경망에 의해 생성된 출력을 획득하는 단계; 및
    상기 출력에 기초하여, 상기 얼굴 내 미리 정의된 부위들에 각각 대응하는 위치들을 포함하는 얼굴의 3D 데이터를 생성하는 단계
    를 포함하고,
    상기 얼굴 내 미리 정의된 부위들은 각각 서로 다른 상수(constant)들로 표현되고,
    상기 컨볼루션 신경망의 출력 노드의 출력 값은 미리 설정된 좌표를 기준으로 상기 얼굴 내 미리 정의된 부위에 대응하는 위치의 좌표 값들 중 어느 하나의 스칼라로 표현되며,
    상기 얼굴의 3D 데이터를 생성하는 단계는
    상기 상수들의 일부 또는 전부를 미리 설정된 그룹들 중 어느 하나 이상에 중복을 허용하여 포함시키는 단계;
    상기 컨볼루션 신경망에서, 상기 얼굴 내 제1 부위에 대응하는 제1 출력 노드들로부터 각각 획득된 제1 출력 값들을 조합하여, 상기 제1 부위에 대응하는 제1 값들을 생성하는 단계;
    상기 상수들로부터 상기 제1 부위에 대응하는 제1 상수를 획득하는 단계;
    상기 미리 설정된 그룹들-상기 그룹들에서, 상기 상수들의 적어도 일부는 중복이 허용되어 서로 다른 그룹들에 포함됨-마다 상기 제1 상수가 포함되어 있는지 여부를 판단하여, 상기 부위들을 서로 중첩시켜 상기 미리 설정된 그룹들 중 상기 제1 상수가 포함되는 제1 그룹 및 제2 그룹을 식별하는 단계;
    상기 제1 그룹 내 상수들의 시퀀스 내에서, 상기 제1 상수의 순서를 식별하여 상기 제1 값들을 상기 제1 그룹 내 상기 식별된 순서에 포함시키는 단계;
    상기 제2 그룹 내 상수들의 시퀀스 내에서, 상기 제1 상수의 순서를 식별하여 상기 제1 값들을 상기 제2 그룹 내 상기 식별된 순서에 포함시키는 단계; 및
    상기 제1 그룹의 상수들 및 상기 제2 그룹의 상수들의 합집합의 시퀀스에서, 상기 제1 그룹의 상수들과 상기 제2 그룹의 상수들의 교집합에 포함되는 상기 제1 상수와 대응하는 순서를 참조하여, 상기 제1 그룹의 상수들과 대응하는 얼굴 내 미리 정의된 부위들 및 상기 제2 그룹의 상수들과 대응하는 얼굴 내 미리 정의된 부위들의 교집합에 포함되는 상기 제1 부위에 대응하는 3D 데이터를 생성하는 단계
    를 포함하는,
    딥 러닝 기반 3D 데이터 생성 방법.
  2. 제 1항에 있어서, 상기 얼굴의 특정 영역의 3D 데이터에 기초하여,
    상기 얼굴의 특정 영역의 모션 트래킹(motion tracking) 데이터를 생성하는 단계를 더 포함하는
    딥 러닝 기반 3D 데이터 생성 방법.
  3. 제 2항에 있어서, 상기 얼굴의 3D 데이터 또는 상기 얼굴의 특정 영역의 3D 데이터에 기초하여,
    사용자의 얼굴 전부 또는 일부의 3D 인증 데이터를 생성하는 단계
    를 포함하는
    딥 러닝 기반 3D 데이터 생성 방법.
  4. 제1항 내지 제3항 중 어느 하나의 항의 방법을 실행시키기 위하여 매체에 저장된 컴퓨터 프로그램.
  5. 얼굴을 포함하는 2D 이미지를 획득하고,
    상기 2D 이미지에서 상기 얼굴의 적어도 일부를 포함하는 관심 영역(region of interest)을 추출하고,
    상기 관심 영역에 기초하여, 얼굴들의 2D 트레이닝 이미지들 및 얼굴들의 트레이닝 3D 데이터들에 기초하여 2D 이미지로부터 3D 데이터를 생성하도록 학습된, 컨볼루션 신경망(convolutional neural network)의 인풋 레이어(input layer)에 대응하는 입력을 생성하고,
    상기 입력을 상기 컨볼루션 신경망에 적용하여, 상기 컨볼루션 신경망에 의해 생성된 출력을 획득하고,
    상기 출력에 기초하여, 상기 얼굴 내 미리 정의된 부위들에 각각 대응하는 위치들을 포함하는 얼굴의 3D 데이터를 생성하는 프로세서
    를 포함하고,
    상기 얼굴 내 미리 정의된 부위들은 각각 서로 다른 상수(constant)들로 표현되고,
    상기 컨볼루션 신경망의 출력 노드의 출력 값은 미리 설정된 좌표를 기준으로 상기 얼굴 내 미리 정의된 부위에 대응하는 위치의 좌표 값들 중 어느 하나의 스칼라로 표현되며,
    상기 프로세서는
    상기 상수들의 일부 또는 전부를 미리 설정된 그룹들 중 어느 하나 이상에 중복을 허용하여 포함시키고,
    상기 컨볼루션 신경망에서, 상기 얼굴 내 제1 부위에 대응하는 제1 출력 노드들로부터 각각 획득된 제1 출력 값들을 조합하여, 상기 제1 부위에 대응하는 제1 값들을 생성하고,
    상기 상수들로부터 상기 제1 부위에 대응하는 제1 상수를 획득하고,
    상기 미리 설정된 그룹들-상기 그룹들에서, 상기 상수들의 적어도 일부는 중복이 허용되어 서로 다른 그룹들에 포함됨-마다 상기 제1 상수가 포함되어 있는지 여부를 판단하여, 상기 부위들을 서로 중첩시켜 상기 미리 설정된 그룹들 중 상기 제1 상수가 포함되는 제1 그룹 및 제2 그룹을 식별하고,
    상기 제1 그룹 내 상수들의 시퀀스 내에서, 상기 제1 상수의 순서를 식별하여 상기 제1 값들을 상기 제1 그룹 내 상기 식별된 순서에 포함시키고,
    상기 제2 그룹 내 상수들의 시퀀스 내에서, 상기 제1 상수의 순서를 식별하여 상기 제1 값들을 상기 제2 그룹 내 상기 식별된 순서에 포함시키고,
    상기 제1 그룹의 상수들 및 상기 제2 그룹의 상수들의 합집합의 시퀀스에서, 상기 제1 그룹의 상수들과 상기 제2 그룹의 상수들의 교집합에 포함되는 상기 제1 상수와 대응하는 순서를 참조하여, 상기 제1 그룹의 상수들과 대응하는 얼굴 내 미리 정의된 부위들 및 상기 제2 그룹의 상수들과 대응하는 얼굴 내 미리 정의된 부위들의 교집합에 포함되는 상기 제1 부위에 대응하는 3D 데이터를 생성하는,
    딥 러닝 기반 3D 데이터 생성 장치.

  6. 삭제
  7. 삭제
  8. 삭제
  9. 삭제
KR1020200009896A 2019-02-07 2020-01-28 딥 러닝 기반 3d 데이터 생성 방법 및 장치 KR102160955B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20190014468 2019-02-07
KR1020190014468 2019-02-07

Publications (2)

Publication Number Publication Date
KR20200097201A KR20200097201A (ko) 2020-08-18
KR102160955B1 true KR102160955B1 (ko) 2020-09-29

Family

ID=72291922

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200009896A KR102160955B1 (ko) 2019-02-07 2020-01-28 딥 러닝 기반 3d 데이터 생성 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102160955B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102653596B1 (ko) * 2023-11-22 2024-04-02 주식회사 브로즈 3d 이미지를 제공하는 방법 및 이를 이용한 장치

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102287020B1 (ko) * 2020-10-27 2021-08-06 주식회사 핏미 딥러닝 기반 3d 가상 시뮬레이션 시스템 및 이를 위한 동작 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012243285A (ja) * 2011-05-24 2012-12-10 Canon Inc 特徴点位置決定装置、特徴点位置決定方法及びプログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040009460A (ko) * 2002-07-23 2004-01-31 주식회사 페이스쓰리디 3차원얼굴 몽타주 획득 시스템 및 방법
KR100930994B1 (ko) * 2007-12-18 2009-12-10 주식회사 케이티 3차원 영상 모델 생성 방법 및 장치, 이를 이용한 영상인식 방법 및 장치 그리고 상기 방법들을 수행하는프로그램이 기록된 기록 매체
US10095917B2 (en) * 2013-11-04 2018-10-09 Facebook, Inc. Systems and methods for facial representation
KR20180083608A (ko) * 2017-01-13 2018-07-23 제주한라대학교산학협력단 3d 프린팅을 위한 단일 영상 기반 3d 모델링 장치 및 그 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012243285A (ja) * 2011-05-24 2012-12-10 Canon Inc 特徴点位置決定装置、特徴点位置決定方法及びプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
이문희, and 김경석. "3 차원 얼굴 표정 추적을 위한 스테레오 시각 모듈 설계 및 구현." 방송공학회논문지 11.4 (2006)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102653596B1 (ko) * 2023-11-22 2024-04-02 주식회사 브로즈 3d 이미지를 제공하는 방법 및 이를 이용한 장치

Also Published As

Publication number Publication date
KR20200097201A (ko) 2020-08-18

Similar Documents

Publication Publication Date Title
JP6754619B2 (ja) 顔認識方法及び装置
KR102450441B1 (ko) 홍채 식별을 위한 딥 뉴럴 네트워크
KR102486699B1 (ko) 영상 인식 방법, 영상 검증 방법, 장치, 및 영상 인식 및 검증에 대한 학습 방법 및 장치
CN108205655B (zh) 一种关键点预测方法、装置、电子设备及存储介质
US9928410B2 (en) Method and apparatus for recognizing object, and method and apparatus for training recognizer
KR20210047920A (ko) 얼굴 모델의 생성
WO2020103700A1 (zh) 一种基于微表情的图像识别方法、装置以及相关设备
WO2022156640A1 (zh) 一种图像的视线矫正方法、装置、电子设备、计算机可读存储介质及计算机程序产品
US11816880B2 (en) Face recognition method and apparatus, computer device, and storage medium
WO2022078041A1 (zh) 遮挡检测模型的训练方法及人脸图像的美化处理方法
JP2019510325A (ja) マルチモーダルデジタル画像を生成する方法及びシステム
CN109829396B (zh) 人脸识别运动模糊处理方法、装置、设备及存储介质
KR20170000748A (ko) 얼굴 인식 방법 및 장치
CN113261013A (zh) 用于移动装置上逼真的头部转动和面部动画合成的系统和方法
CN113850168A (zh) 人脸图片的融合方法、装置、设备及存储介质
KR102160955B1 (ko) 딥 러닝 기반 3d 데이터 생성 방법 및 장치
EP3906498A1 (en) Determining regions of interest for photographic functions
CN114519877A (zh) 人脸识别方法、人脸识别装置、计算机设备及存储介质
KR102160128B1 (ko) 인공지능 기반 스마트 앨범 생성 방법 및 장치
WO2023279799A1 (zh) 对象识别方法、装置和电子系统
CN113658324A (zh) 图像处理方法及相关设备、迁移网络训练方法及相关设备
CN111160251A (zh) 一种活体识别方法及装置
Kurdthongmee et al. A yolo detector providing fast and accurate pupil center estimation using regions surrounding a pupil
Pu et al. Aerial face recognition and absolute distance estimation using drone and deep learning
Mohammad et al. Comparison of squeezed convolutional neural network models for eyeglasses detection in mobile environment

Legal Events

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