KR102655987B1 - Apparatus and method for generating 3d avatar - Google Patents

Apparatus and method for generating 3d avatar Download PDF

Info

Publication number
KR102655987B1
KR102655987B1 KR1020190031994A KR20190031994A KR102655987B1 KR 102655987 B1 KR102655987 B1 KR 102655987B1 KR 1020190031994 A KR1020190031994 A KR 1020190031994A KR 20190031994 A KR20190031994 A KR 20190031994A KR 102655987 B1 KR102655987 B1 KR 102655987B1
Authority
KR
South Korea
Prior art keywords
model
avatar
scanning
template
user
Prior art date
Application number
KR1020190031994A
Other languages
Korean (ko)
Other versions
KR20200060196A (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 한국전자통신연구원
Priority to US16/563,517 priority Critical patent/US10984609B2/en
Publication of KR20200060196A publication Critical patent/KR20200060196A/en
Application granted granted Critical
Publication of KR102655987B1 publication Critical patent/KR102655987B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/30Determination of transform parameters for the alignment of images, i.e. image registration
    • 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/20036Morphological image processing
    • G06T2207/20044Skeletonization; Medial axis transform
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/12Bounding box

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Processing Or Creating Images (AREA)

Abstract

3차원 아바타 생성 장치 및 방법이 개시된다. 본 발명의 일실시예에 따른 3차원 아바타 생성 방법은 3차원 아바타 생성 장치의 3차원 아바타 생성 방법에 있어서, 이미지 센서를 이용하여 사용자의 인체를 3차원 스캐닝하고, 상기 사용자의 인체를 3차원 스캐닝한 결과를 이용하여 3차원 스캐닝 모델을 생성하는 단계; 상기 3차원 스캐닝 모델과 기저장된 탬플릿 아바타 모델을 정합하는 단계 및 상기 3차원 스캐닝 모델과 상기 탬플릿 아바타 모델을 정합한 결과에 기반하여 3차원 아바타를 생성하는 단계를 포함 한다.An apparatus and method for creating a 3D avatar are disclosed. A 3D avatar creation method according to an embodiment of the present invention includes 3D scanning a user's human body using an image sensor, and 3D scanning the user's human body. Creating a 3D scanning model using the results; It includes matching the 3D scanning model with a pre-stored template avatar model and generating a 3D avatar based on a result of matching the 3D scanning model with the template avatar model.

Description

3차원 아바타 생성 장치 및 방법 {APPARATUS AND METHOD FOR GENERATING 3D AVATAR}Apparatus and method for generating 3D avatar {APPARATUS AND METHOD FOR GENERATING 3D AVATAR}

본 발명은 컴퓨터 그래픽스, 컴퓨터 비전 기술에 관한 것으로, 보다 상세하게는 컴퓨터 3차원 스캔 기술 및 컴퓨터 3차원 정보 모델링 기술에 관한 것이다.The present invention relates to computer graphics and computer vision technology, and more specifically, to computer 3D scanning technology and computer 3D information modeling technology.

최근 마이크로소프트 키넥트(Kinect)와 같은 값 싼 깊이 센서(Consumer-level Depth Sensor) 또는 모바일 폰의 영상 센서(RGB Camera) 등을 이용한 3차원 스캔 (3D Scan) 기술이 보급되고 있다. 특히, 3차원 인체 스캔 기술은 2차원 영상(2D image)이 갖고 있지 않은 거리 정보를 기반으로 인체의 체형(Body Shape) 정보를 재현할 수 있고, 실제 측정 정보를 얻을 수 있어서, 현실 세계(Real Space)에서 가상 인체를 재현하는 증강 현실(Augmented Reality) 기술 구현의 핵심 기술이다. 3차원으로 재구성 된 정보를 기반으로 사용자 체형 정보를 반영하는 의류 추천 및 가상 피팅(Virtual Try-on) 기술, 획득된 3차원 체형 정보 기반의 체형 별 운동 추천 기술 등에 적용할 수 있으며, 그 활용성은 점차 증대될 것으로 예상된다. Recently, 3D scanning technology using inexpensive depth sensors (Consumer-level Depth Sensor) such as Microsoft Kinect or image sensors (RGB Camera) of mobile phones has become popular. In particular, 3D human body scanning technology can reproduce body shape information of the human body based on distance information that 2D images do not have, and obtain actual measurement information, providing real world It is a core technology for implementing Augmented Reality technology that reproduces a virtual human body in space. Based on 3D reconstructed information, it can be applied to clothing recommendation and virtual try-on technology that reflects the user's body type information, and exercise recommendation technology for each body type based on the acquired 3D body type information, and its utility is It is expected to gradually increase.

하지만, 사용자가 3차원 체형 정보를 획득하기 위한 작업은 영상 정보 획득과 달리 간단하지 않다. 사용자의 3차원 스캔 정보를 정확하고 완전하게 얻으려면, 중간 스캔 결과를 사용자가 계속 확인하면서 구멍 또는 빈틈이 없도록 복원 대상을 360도 스캔해야만 한다. 즉, 360도 스캔을 수행하기 위해 턴테이블(Turn Table)을 이용하거나, 스캔 수행자가 스캔 대상을 360도 돌면서 중간 스캔 결과를 확인하며 스캔을 구석구석 수행해야만 하는 데, 이는 일반 사용자의 3차원 체형 정보의 획득에 큰 걸림돌이 되고 있다. 또한 저가 센서의 한계로 인한 3차원 스캔 결과의 구멍 또는 빈틈으로 인해 결과 3차원 서피스 메쉬가 완전하지 않아서, 스캔 후 수작업을 통해 이를 별도로 수정해야 하는 어려움이 생긴다. However, unlike obtaining image information, the task for a user to acquire 3D body shape information is not simple. In order to obtain the user's 3D scan information accurately and completely, the user must continuously check the intermediate scan results and scan the restoration object 360 degrees to ensure that there are no holes or gaps. In other words, in order to perform a 360-degree scan, a turntable must be used, or the scan performer must rotate the scan object 360 degrees and perform the scan from every corner while checking the intermediate scan results, which is necessary to obtain 3D body shape information of the general user. It is a major obstacle to obtaining. In addition, the resulting 3D surface mesh is not complete due to holes or gaps in the 3D scan result due to limitations of low-cost sensors, resulting in the difficulty of having to manually correct it separately after scanning.

한편, 한국공개특허 제 10-2011-0070056 호"사용자 맞춤형 고품질 3D 아바타 생성 방법 및 그 장치"는 다양한 사람의 고품질 데이터를 얻어 DB를 구축하고, 아바타 제작 프로세스를 빠르게 진행되도록 정립하고, 3D 아바타를 만들기 위해 사용자의 최소한의 데이터를 얻어, 이 DB 데이터를 변형하여 사용함으로써 고품질을 유지하면서도 사용자를 닮은 아바타를 빠르게 생성하는 사용자 맞춤형 고품질 3D 아바타 생성 방법 및 장치에 관하여 개시하고 있다.Meanwhile, Korean Patent Publication No. 10-2011-0070056 “Method and device for creating user-customized high-quality 3D avatars” establishes a database by obtaining high-quality data from various people, establishes the avatar creation process to proceed quickly, and creates 3D avatars. A method and device for creating a user-customized, high-quality 3D avatar that quickly creates an avatar that resembles the user while maintaining high quality is disclosed by obtaining the minimum data of the user and using this DB data to transform.

본 발명은 사용자의 3차원 체형(Body Shape)의 완전성 및 정확성을 확보하여 사용자의 체형이 반영된 3차원 아바타를 생성하는 것을 목적으로 한다.The purpose of the present invention is to secure the completeness and accuracy of the user's 3D body shape and create a 3D avatar that reflects the user's body shape.

또한, 본 발명은 불완전한 3차원 스캐닝 모델에 대해서도 사용자 체형이 반영된 애니메이션이 가능한 3차원 아바타를 생성하는 것을 목적으로 한다.Additionally, the purpose of the present invention is to create a 3D avatar capable of animation that reflects the user's body shape even for an incomplete 3D scanning model.

또한, 본 발명은 사용자의 체형 변화에도 일관성 있는 체형 정보를 측정하는 것을 목적으로 한다.Additionally, the purpose of the present invention is to measure body shape information consistently even when the user's body shape changes.

상기한 목적을 달성하기 위한 본 발명의 일실시예에 따른 3차원 아바타 생성 방법은 3차원 아바타 생성 장치의 3차원 아바타 생성 방법에 있어서, 이미지 센서를 이용하여 사용자의 인체를 3차원 스캐닝하고, 상기 사용자의 인체를 3차원 스캐닝한 결과를 이용하여 3차원 스캐닝 모델을 생성하는 단계; 상기 3차원 스캐닝 모델과 기저장된 탬플릿 아바타 모델을 정합하는 단계 및 상기 3차원 스캐닝 모델과 상기 탬플릿 아바타 모델을 정합한 결과에 기반하여 3차원 아바타를 생성하는 단계를 포함한다.A method of generating a 3D avatar according to an embodiment of the present invention to achieve the above object includes 3D scanning the user's human body using an image sensor, and Creating a 3D scanning model using the results of 3D scanning the user's body; It includes matching the 3D scanning model with a pre-stored template avatar model and generating a 3D avatar based on a result of matching the 3D scanning model with the template avatar model.

이 때, 상기 정합하는 단계는 상기 3차원 스캐닝 모델과 상기 탬플릿 아바타 모델 간의 대응점 정보를 이용하여 상기 3차원 스캐닝 모델과 상기 탬플릿 아바타 모델을 정합할 수 있다.At this time, in the matching step, the 3D scanning model and the template avatar model may be matched using information on corresponding points between the 3D scanning model and the template avatar model.

이 때, 상기 정합하는 단계는 3차원 스캐닝 모델과 상기 템플릿 아바타 모델의 대략적인 이동(Translation), 방향(Orientation)과 스케일(Scale)을 보정하는 6 자유도(Degree of Freedom) 강체 변환(Rigid Transformation)을 적용할 수 있다.At this time, the matching step is a 6-degree-of-freedom rigid transformation that corrects the approximate translation, orientation, and scale of the 3D scanning model and the template avatar model. ) can be applied.

이 때, 상기 대응점 정보는 상기 3차원 스캐닝 모델과 탬플릿 아바타 모델의 인체 부위에서 기정의된 적어도 하나 이상의 위치를 대응점으로 정의한 정보를 포함할 수 있다.At this time, the corresponding point information may include information defining at least one predefined position in the human body part of the 3D scanning model and the template avatar model as a corresponding point.

이 때, 상기 인체 부위에서 기정의된 적어도 하나 이상의 위치는 인체의 얼굴 부위, 손 부위 및 발 부위 중 적어도 하나 이상의 위치를 포함할 수 있다.At this time, at least one predefined position in the human body part may include at least one position among the face part, hand part, and foot part of the human body.

이 때, 상기 정합하는 단계는 상기 인체 부위에서 기정의된 적어도 하나 이상의 위치에 기반하여 상기 3차원 스캐닝 모델의 대응점과 상기 탬플릿 아바타 모델의 대응점을 대응쌍으로 정의할 수 있다.At this time, the matching step may define corresponding points of the 3D scanning model and corresponding points of the template avatar model as a corresponding pair based on at least one predefined position in the human body part.

이 때, 상기 정합하는 단계는 상기 대응점 정보를 이용하여 상기 탬플릿 아바타 모델의 대응점의 위치와 상기 3차원 스캐닝 모델의 대응점의 위치에 기반하여 상기 3차원 스캐닝 모델의 위치를 이동시키고, 상기 3차원 스캐닝 모델의 방향을 회전시켜 상기 탬플릿 아바타 모델에 강체 변환을 적용할 수 있다.At this time, the matching step uses the corresponding point information to move the position of the 3D scanning model based on the position of the corresponding point of the template avatar model and the position of the corresponding point of the 3D scanning model, and the 3D scanning Rigid body transformation can be applied to the template avatar model by rotating the direction of the model.

이 때, 상기 정합하는 단계는 상기 대응점 정보와 상기 탬플릿 아바타 모델의 스켈레톤 정보를 이용하여 상기 3차원 아바타 모델의 자세에 상응하도록 상기 탬플릿 아바타 모델의 자세를 변형시킬 수 있다.At this time, the matching step may transform the posture of the template avatar model to correspond to the posture of the 3D avatar model using the corresponding point information and skeleton information of the template avatar model.

이 때, 상기 정합하는 단계는 상기 탬플릿 아바타 모델과 상기 3차원 스캐닝 모델의 대응점 위치 간의 오차를 최소화 시키기 위한 상기 스켈레톤 정보를 이용하여 상기 탬플릿 아바타 모델의 자세를 변형시킨 대응점과 상기 3차원 스캐닝 모델의 대응점까지의 최소거리를 연산하고, 상기 대응점 간의 최소거리와 상기 탬플릿 아바타 모델의 개별 절점 간의 최소거리에 기반하여 상기 탬플릿 아바타 모델의 자세를 변형시켜 상기 3차원 스캐닝 모델에 정합시킬 수 있다.At this time, the matching step involves transforming the posture of the template avatar model using the skeleton information to minimize the error between the position of the corresponding point of the template avatar model and the 3D scanning model. The minimum distance to corresponding points may be calculated, and the posture of the template avatar model may be modified to match the 3D scanning model based on the minimum distance between the corresponding points and the minimum distance between individual nodes of the template avatar model.

이 때, 상기 정합하는 단계는 상기 탬플릿 아바타 모델의 개별 절점의 위치를 어파인 변형 행렬을 통해 조절하여 상기 탬플릿 아바타 모델의 표면과 상기 3차원 스캐닝 모델의 표면 사이의 최소거리를 연산할 수 있다.At this time, the matching step may calculate the minimum distance between the surface of the template avatar model and the surface of the 3D scanning model by adjusting the positions of individual nodes of the template avatar model through an affine transformation matrix.

또한, 상기의 목적을 달성하기 위한 본 발명의 일실시예에 따른 3차원 아바타 생성 장치는 하나 이상의 프로세서; 메모리 및 하나 이상의 프로그램을 포함하고, 상기 하나 이상의 프로그램은 상기 메모리에 저장되고, 상기 하나 이상의 프로세서에 의해 실행되고, 상기 하나 이상의 프로세서는 상기 하나 이상의 프로그램을 실행하여, 이미지 센서를 이용하여 사용자의 인체를 3차원 스캐닝하고, 상기 사용자의 인체를 3차원 스캐닝한 결과를 이용하여 3차원 스캐닝 모델을 생성하고, 상기 3차원 스캐닝 모델과 기저장된 탬플릿 아바타 모델을 정합하고, 상기 3차원 스캐닝 모델과 상기 탬플릿 아바타 모델을 정합한 결과에 기반하여 3차원 아바타를 생성할 수 있다.In addition, a three-dimensional avatar generating device according to an embodiment of the present invention for achieving the above object includes one or more processors; comprising a memory and one or more programs, wherein the one or more programs are stored in the memory and are executed by the one or more processors, wherein the one or more processors execute the one or more programs to detect the user's body using an image sensor. 3D scanning, generating a 3D scanning model using the results of 3D scanning the user's human body, matching the 3D scanning model with a pre-stored template avatar model, and matching the 3D scanning model with the template avatar model. A 3D avatar can be created based on the results of matching the avatar model.

이 때, 상기 하나 이상의 프로세서는 상기 3차원 스캐닝 모델과 상기 탬플릿 아바타 모델 간의 대응점 정보를 이용하여 상기 3차원 스캐닝 모델과 상기 탬플릿 아바타 모델을 정합할 수 있다.At this time, the one or more processors may match the 3D scanning model and the template avatar model using correspondence point information between the 3D scanning model and the template avatar model.

이 때, 상기 하나 이상의 프로세서는 3차원 스캐닝 모델과 상기 템플릿 아바타 모델의 대략적인 이동(Translation), 방향(Orientation)과 스케일(Scale)을 보정하는 6 자유도(Degree of Freedom) 강체 변환(Rigid Transformation)을 적용할 수 있다.At this time, the one or more processors perform a 6-degree-of-freedom rigid transformation that corrects the approximate translation, orientation, and scale of the 3D scanning model and the template avatar model. ) can be applied.

이 때, 상기 대응점 정보는 상기 3차원 스캐닝 모델과 탬플릿 아바타 모델의 인체 부위에서 기정의된 적어도 하나 이상의 위치를 대응점으로 정의한 정보를 포함할 수 있다.At this time, the corresponding point information may include information defining at least one predefined position in the human body part of the 3D scanning model and the template avatar model as a corresponding point.

이 때, 상기 인체 부위에서 기정의된 적어도 하나 이상의 위치는 인체의 얼굴 부위, 손 부위 및 발 부위 중 적어도 하나 이상의 위치를 포함할 수 있다.At this time, at least one predefined position in the human body part may include at least one position among the face part, hand part, and foot part of the human body.

이 때, 상기 하나 이상의 프로세서는 상기 인체 부위에서 기정의된 적어도 하나 이상의 위치에 기반하여 상기 3차원 스캐닝 모델의 대응점과 상기 탬플릿 아바타 모델의 대응점을 대응쌍으로 정의할 수 있다.At this time, the one or more processors may define the corresponding points of the 3D scanning model and the corresponding points of the template avatar model as a corresponding pair based on at least one predefined position in the human body part.

이 때, 상기 하나 이상의 프로세서는 상기 대응점 정보를 이용하여 상기 탬플릿 아바타 모델의 대응점의 위치와 상기 3차원 스캐닝 모델의 대응점의 위치에 기반하여 상기 3차원 스캐닝 모델의 위치를 이동시키고, 상기 3차원 스캐닝 모델의 방향을 회전시켜 상기 탬플릿 아바타 모델에 강체 변환을 적용할 수 있다.At this time, the one or more processors use the corresponding point information to move the position of the 3D scanning model based on the position of the corresponding point of the template avatar model and the position of the corresponding point of the 3D scanning model, and the 3D scanning Rigid body transformation can be applied to the template avatar model by rotating the direction of the model.

이 때, 상기 하나 이상의 프로세서는 상기 대응점 정보와 상기 탬플릿 아바타 모델의 스켈레톤 정보를 이용하여 상기 3차원 아바타 모델의 자세에 상응하도록 상기 탬플릿 아바타 모델의 자세를 변형시킬 수 있다.At this time, the one or more processors may transform the posture of the template avatar model to correspond to the posture of the 3D avatar model using the corresponding point information and skeleton information of the template avatar model.

이 때, 상기 하나 이상의 프로세서는 상기 탬플릿 아바타 모델과 상기 3차원 스캐닝 모델의 대응점 위치 간의 오차를 최소화 시키기 위한 상기 스켈레톤 정보를 이용하여 상기 탬플릿 아바타 모델의 자세를 변형시킨 대응점과 상기 3차원 스캐닝 모델의 대응점까지의 최소거리를 연산하고, 상기 대응점 간의 최소거리와 상기 탬플릿 아바타 모델의 개별 절점 간의 최소거리에 기반하여 상기 탬플릿 아바타 모델의 자세를 변형시켜 상기 3차원 스캐닝 모델에 정합시킬 수 있다.At this time, the one or more processors use the skeleton information to minimize the error between the position of the corresponding point of the template avatar model and the 3D scanning model to transform the posture of the template avatar model and change the corresponding point of the 3D scanning model. The minimum distance to corresponding points may be calculated, and the posture of the template avatar model may be modified to match the 3D scanning model based on the minimum distance between the corresponding points and the minimum distance between individual nodes of the template avatar model.

이 때, 상기 하나 이상의 프로세서는 상기 탬플릿 아바타 모델의 개별 절점의 위치를 어파인 변형 행렬을 통해 조절하여 상기 탬플릿 아바타 모델의 표면과 상기 3차원 스캐닝 모델의 표면 사이의 최소거리를 연산할 수 있다.At this time, the one or more processors may adjust the positions of individual nodes of the template avatar model through an affine transformation matrix to calculate the minimum distance between the surface of the template avatar model and the surface of the 3D scanning model.

본 발명은 사용자의 3차원 체형(Body Shape)의 완전성 및 정확성을 확보하여 사용자의 체형이 반영된 3차원 아바타를 생성할 수 있다.The present invention can create a 3D avatar that reflects the user's body shape by ensuring the completeness and accuracy of the user's 3D body shape.

또한, 본 발명은 불완전한 3차원 스캐닝 모델에 대해서도 사용자 체형이 반영된 애니메이션이 가능한 3차원 아바타를 생성할 수 있다.Additionally, the present invention can generate a 3D avatar capable of animation that reflects the user's body shape even from an incomplete 3D scanning model.

또한, 본 발명은 사용자의 체형 변화에도 일관성 있는 체형 정보를 측정할 수 있다.Additionally, the present invention can measure consistent body shape information even when the user's body shape changes.

도 1은 본 발명의 일실시예에 따른 3차원 아바타 생성 장치를 나타낸 블록도이다.
도 2는 도 1에 도시된 모델 정합부의 일 예를 세부적으로 나타낸 블록도이다.
도 3 본 발명의 일실시예에 따른 3차원 아바타 생성 방법을 나타낸 동작흐름도이다.
도 4는 도 3에 도시된 모델 정합 단계의 일 예를 세부적으로 나타낸 동작흐름도이다.
도 5는 본 발명의 일실시예에 따른 3차원 아바타 생성 과정을 나타낸 도면이다.
도 6은 본 발명의 일실시예에 따른 모델 정합 과정을 나타낸 도면이다.
도 7 내지 도 10은 본 발명의 일실시예에 따른 3차원 모델의 모델 정합 과정을 나타낸 도면이다.
도 11은 본 발명의 일실시예에 따른 컴퓨터 시스템을 나타낸 도면이다.
Figure 1 is a block diagram showing a 3D avatar creation device according to an embodiment of the present invention.
FIG. 2 is a block diagram showing in detail an example of the model matching unit shown in FIG. 1.
Figure 3 is an operation flowchart showing a method for creating a 3D avatar according to an embodiment of the present invention.
FIG. 4 is a detailed operational flowchart illustrating an example of the model matching step shown in FIG. 3.
Figure 5 is a diagram showing a 3D avatar creation process according to an embodiment of the present invention.
Figure 6 is a diagram showing the model matching process according to an embodiment of the present invention.
Figures 7 to 10 are diagrams showing the model matching process of a 3D model according to an embodiment of the present invention.
Figure 11 is a diagram showing a computer system according to an embodiment of the present invention.

본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.The present invention will be described in detail with reference to the attached drawings as follows. Here, repeated descriptions, known functions that may unnecessarily obscure the gist of the present invention, and detailed descriptions of configurations are omitted. Embodiments of the present invention are provided to more completely explain the present invention to those skilled in the art. Accordingly, the shapes and sizes of elements in the drawings may be exaggerated for clearer explanation.

명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.Throughout the specification, when a part “includes” a certain element, this means that it may further include other elements rather than excluding other elements, unless specifically stated to the contrary.

이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, preferred embodiments according to the present invention will be described in detail with reference to the attached drawings.

도 1은 본 발명의 일실시예에 따른 3차원 아바타 생성 장치를 나타낸 블록도이다. 도 2는 도 1에 도시된 모델 정합부의 일 예를 세부적으로 나타낸 블록도이다.Figure 1 is a block diagram showing a 3D avatar creation device according to an embodiment of the present invention. FIG. 2 is a block diagram showing in detail an example of the model matching unit shown in FIG. 1.

도 1을 참조하면, 본 발명의 일실시예에 따른 3차원 아바타 생성 장치는 3차원 스캔부(110), 모델 정합부(120) 및 아바타 생성부(130)를 포함할 수 있다.Referring to FIG. 1, the 3D avatar generating device according to an embodiment of the present invention may include a 3D scanning unit 110, a model matching unit 120, and an avatar generating unit 130.

3차원 스캔부(110)는 이미지 센서를 이용하여 사용자의 인체를 3차원 스캐닝하고, 상기 사용자의 인체를 3차원 스캐닝한 결과를 이용하여 3차원 스캐닝 모델을 생성할 수 있다.The 3D scanning unit 110 may 3D scan the user's body using an image sensor and create a 3D scanning model using the result of 3D scanning the user's body.

이 때, 이미지 센서는 깊이 센서 또는 RGB 이미지 센서에 상응할 수 있다.At this time, the image sensor may correspond to a depth sensor or an RGB image sensor.

이 때, 3차원 스캔부(110)는 깊이 영상 또는 컬러 영상을 이용하여 사용자의 인체에 대한 3차원 스캔닝을 수행 할 수 있다.At this time, the 3D scanning unit 110 may perform 3D scanning of the user's human body using a depth image or a color image.

이 때, 3차원 스캔부(110)는 깊이 영상만을 이용하거나, 컬러 영상만을 이용하거나, 또는 두 가지를 혼용하여 3차원 스캐닝을 수행할 수 있다.At this time, the 3D scanning unit 110 may perform 3D scanning using only depth images, only color images, or a combination of the two.

이렇게 생성된 사용자의 3차원 스캐닝 모델은 인체의 부분만을 스캔한 결과일 수도 있고, 360도 구석구석을 스캔한 완전한 결과일 수도 있다. 또한, 3차원 스캐닝 모델의 경우 센서 또는 알고리즘의 한계에 의한 구멍 또는 빈틈이 있을 수 있다.The user's 3D scanning model created in this way may be the result of scanning only a part of the human body, or it may be the complete result of scanning every corner of 360 degrees. Additionally, in the case of a 3D scanning model, there may be holes or gaps due to limitations of the sensor or algorithm.

모델 정합부(120)는 상기 3차원 스캐닝 모델과 기저장된 탬플릿 아바타 모델을 정합할 수 있다.The model matching unit 120 can match the 3D scanning model with a pre-stored template avatar model.

이 때, 템플릿 아바타 모델은 인체를 표현한 표준 아바타 모델에 상응할 수 있다. 이 때, 탬플릿 아바타 모델은 스켈레톤 정보와 버텍스 웨이트 정보를 포함할 수 있다.At this time, the template avatar model may correspond to a standard avatar model representing the human body. At this time, the template avatar model may include skeleton information and vertex weight information.

이 때, 모델 정합부(120)는 탬플릿 아바타 모델이 스켈레톤 정보와 버텍스 웨이트 정보를 포함하지 않는 경우, 자동 리깅 알고리즘을 통해 스켈레톤 정보와 버텍스 웨이트 정보를 업데이트 할 수 있다.At this time, if the template avatar model does not include skeleton information and vertex weight information, the model matching unit 120 may update the skeleton information and vertex weight information through an automatic rigging algorithm.

이 때, 모델 정합부(120)는 상기 3차원 스캐닝 모델과 상기 탬플릿 아바타 모델 간의 대응점 정보를 이용하여 상기 3차원 스캐닝 모델과 상기 탬플릿 아바타 모델을 정합할 수 있다.At this time, the model matching unit 120 may match the 3D scanning model and the template avatar model using information on corresponding points between the 3D scanning model and the template avatar model.

이 때, 모델 정합부(120)는 3차원 스캐닝 모델과 상기 템플릿 아바타 모델의 대략적인 이동(Translation), 방향(Orientation)과 스케일(Scale)을 맞춰주는 6 자유도(Degree of Freedom) 강체 변환(Rigid Transformation)을 적용할 수 있다.At this time, the model matching unit 120 performs a 6-degree-of-freedom rigid body transformation (Translation, Orientation, and Scale) that matches the approximate translation, orientation, and scale of the 3D scanning model and the template avatar model. Rigid Transformation) can be applied.

이 때, 상기 대응점 정보는 상기 3차원 스캐닝 모델과 탬플릿 아바타 모델의 인체 부위에서 기정의된 적어도 하나 이상의 위치를 대응점으로 정의한 정보를 포함할 수 있다.At this time, the corresponding point information may include information defining at least one predefined position in the human body part of the 3D scanning model and the template avatar model as a corresponding point.

이 때, 상기 인체 부위에서 기정의된 적어도 하나 이상의 위치는 인체의 얼굴 부위, 손 부위 및 발 부위 중 적어도 하나 이상의 위치를 포함할 수 있다.At this time, at least one predefined position in the human body part may include at least one position among the face part, hand part, and foot part of the human body.

이 때, 모델 정합부(120)는 상기 인체 부위에서 기정의된 적어도 하나 이상의 위치에 기반하여 상기 3차원 스캐닝 모델의 대응점과 상기 탬플릿 아바타 모델의 대응점을 대응쌍으로 정의할 수 있다.At this time, the model registration unit 120 may define the corresponding points of the 3D scanning model and the corresponding points of the template avatar model as a corresponding pair based on at least one predefined position in the human body part.

이 때, 모델 정합부(120)는 3차원 스캐닝 모델의 포즈를 인식하여 알고리즘을 통해 3차원 스캐닝 모델의 대응점을 자동적으로 검색할 수 있다.At this time, the model matching unit 120 can recognize the pose of the 3D scanning model and automatically search for corresponding points of the 3D scanning model through an algorithm.

이 때, 모델 정합부(120)는 크게 전역 강체 정합(Global Rigid Registration), 스켈레톤 기반의 포즈 정합(Skeleton based Human Pose Registration), 그리고 지역 비강체 정합(Local Non-rigid Registration)의 세 과정 중 적어도 하나 이상을 수행할 수 있다.At this time, the model registration unit 120 largely performs at least one of three processes: global rigid registration, skeleton-based human pose registration, and local non-rigid registration. You can do more than one.

도 2를 참조하면, 모델 정합부(120)는 전역 강체 정합부(121), 스켈레톤 정합부(122) 및 지역 비강체 정합부(123)를 포함할 수 있다.Referring to FIG. 2, the model matching unit 120 may include a global rigid body matching unit 121, a skeleton matching unit 122, and a local non-rigid body matching unit 123.

모델 정합부(120)는 사용자의 3차원 스캐닝 모델이 불완전하거나, 센서 또는 알고리즘의 한계에 의해 모델의 일부가 누락 되었어도, 부분적인 정합을 통해 탬플릿 아바타 모델을 변형시킬 수 있으므로, 사용자의 체형을 반영한 3차원 아바타를 생성할 수 있다.The model matching unit 120 can transform the template avatar model through partial matching even if the user's 3D scanning model is incomplete or part of the model is missing due to limitations of the sensor or algorithm, so that it reflects the user's body type. You can create a 3D avatar.

이 때, 모델 정합부(120)는 부분(Partial) 적으로 결핍된 3차원 스캐닝 모델에 대해서, 부분적인 정합을 통해 인체의 전면부를 먼저 정합하고, 전면부가 정합되어 변형된(후면부는 정보 누락으로 변형되지 않은) 템플릿 아바타 모델과 정합시킬 수 있고, 추가적으로 탬플릿 아바타 모델의 후면부를 변형시킬 수 있다.At this time, the model registration unit 120 first matches the front part of the human body through partial registration with respect to the partially deficient 3D scanning model, and then the front part is registered and deformed (the back part is deformed due to missing information). It can be matched with the (untransformed) template avatar model, and additionally, the rear portion of the template avatar model can be transformed.

이 때, 모델 정합부(120)는 부분적인 정합을 통해 점진적으로 탬플릿 아바타 모델을 변형시켜 사용자의 인체를 반영한 3차원 아바타 생성의 정확도 및 완결성을 높일 수 있다.At this time, the model matching unit 120 can gradually transform the template avatar model through partial matching to increase the accuracy and completeness of creating a three-dimensional avatar that reflects the user's human body.

전역 강체 정합부(121)는 상기 대응점 정보를 이용하여 상기 탬플릿 아바타 모델의 대응점의 위치와 상기 3차원 스캐닝 모델의 대응점의 위치에 기반하여 상기 3차원 스캐닝 모델의 위치를 이동시키고, 상기 3차원 스캐닝 모델의 방향을 회전시켜 상기 탬플릿 아바타 모델에 정합시킬 수 있다.The global rigid body registration unit 121 uses the corresponding point information to move the position of the 3D scanning model based on the position of the corresponding point of the template avatar model and the position of the corresponding point of the 3D scanning model, and performs the 3D scanning The direction of the model can be rotated to match the template avatar model.

이 때, 전역 강체 정합부(121)는 대응점 정보를 이용하여 3차원 스캔닝 모델을 기준으로 템플릿 아바타 모델의 전체적인 6자유도 Translation과 Rotation 정보 그리고 Scale 정보를 구하여 대략적으로 정합할 수 있다.At this time, the global rigid body matching unit 121 can obtain the overall 6 degrees of freedom translation and rotation information and scale information of the template avatar model based on the 3D scanning model using the corresponding point information and roughly match them.

스켈레톤 정합부(122)는 상기 대응점 정보와 상기 탬플릿 아바타 모델의 스켈레톤 정보를 이용하여 상기 3차원 아바타 모델의 자세에 상응하도록 상기 탬플릿 아바타 모델의 자세를 변형시킬 수 있다.The skeleton matching unit 122 may transform the posture of the template avatar model to correspond to the posture of the 3D avatar model using the corresponding point information and the skeleton information of the template avatar model.

3차원 아바타의 미세한 골격 구조 변화를 표현하려면, 스켈레톤의 각 세그먼트의 미세한 Translation, Rotation 변화를 반영해야 한다. 또한, 동일한 사람을 부분적으로 여러 번 스캔할 경우, 한 사람의 포즈의 형태가 시간에 따라 달라질 수 있으므로 인체의 포즈 변화에 적응할 수 있는 정합 방법이 필요하다.To express minute changes in the skeletal structure of a 3D avatar, minute translation and rotation changes in each segment of the skeleton must be reflected. Additionally, when the same person is partially scanned multiple times, the shape of a person's pose may change over time, so a registration method that can adapt to changes in the human body's pose is needed.

예를 들면, 스켈레톤 정합부(122)는 사용자의 전면부 스캔을 통해 생성된 제1 3차원 스캐닝 모델을 기준으로 변형된 탬플릿 아바타 모델에, 측면부 스캔을 통해 생성된 제2 3차원 스캐닝 모델을 추가적으로 이용하여 아바타를 다시 변형할 때, 서로 포즈가 다른 경우, 스켈레톤 정보를 이용하여 탬플릿 아바타 모델의 자세를 변형시켜 3차원 스캐닝 모델과 정합시킬 수 있다.For example, the skeleton matching unit 122 adds a second 3D scanning model generated through side scanning to the template avatar model modified based on the first 3D scanning model generated through scanning of the user's front side. When transforming the avatar again, if the poses are different, the pose of the template avatar model can be transformed using the skeleton information to match the 3D scanning model.

템플릿 아바타 모델을 기정의된 각 뼈대와 각 절점 사이의 상관관계를 포함할 수 있다.The template avatar model may include the correlation between each predefined skeleton and each node.

즉, 탬플릿 아바타 모델은 리깅이 되어 있어서 뼈대의 자세 변화는 곧 템플릿 아바타의 자세 변화로 반영될 수 있다.In other words, since the template avatar model is rigged, changes in the posture of the skeleton can be reflected as changes in the posture of the template avatar.

이 때, 템플릿 아바타 모델에 사용되는 리깅 기법은 가장 많이 사용하는 Linear Blend Skinning 기법이 사용될 수 있다. 상기 리깅 기법은 각 절점 마다 각 뼈대의 영향도를 의미하는 가중치 값을 정의하고, 각 절점은 각 뼈대의 움직임을 따라 이 가중치 값만큼의 이동 성분을 가지도록 하는 것으로 수학식 1과 같이 수식화 될 수 있다.At this time, the most commonly used rigging technique for the template avatar model is Linear Blend Skinning. The rigging technique defines a weight value that represents the influence of each skeleton at each node, and each node has a movement component equal to this weight value along the movement of each skeleton, which can be expressed as Equation 1. there is.

[수학식 1][Equation 1]

수학식 1에서, Vi는 템플릿 아바타 모델의 한 절점의 위치이며, Nb는 전체 뼈대 모델의 뼈의 개수, wj 는 뼈대의 가중치 값, T-j는 j번째 뼈대의 강체 변형 행렬을 의미하며, Vj 0는 기준자세에서의 해당 절점의 j번째 뼈대에 대한 지역 좌표를 의미할 수 있다.In Equation 1, V i is the position of one node of the template avatar model, N b is the number of bones in the entire skeleton model, w j is the weight value of the skeleton, and T -j is the rigid body deformation matrix of the jth skeleton. And V j 0 may mean the local coordinates of the jth skeleton of the corresponding node in the reference posture.

이 때, 스켈레톤 정합부(122)는 템플릿 아바타 모델의 자세를 사용자의 3차원 스캐닝 모델과 유사하게 맞추기 위해 뼈대의 관절 각과 관절 좌표의 최적화를 수행할 수 있다.At this time, the skeleton matching unit 122 may optimize the joint angles and joint coordinates of the skeleton in order to match the posture of the template avatar model to be similar to the user's 3D scanning model.

이 때, 스켈레톤 정합부(122)는 수학식 2와 같은 3개의 오차함수의 값의 합을 최소화 시키는 관절의 강체 행렬을 찾아주는 연산을 수행할 수 있다.At this time, the skeleton matching unit 122 can perform an operation to find the rigid body matrix of the joint that minimizes the sum of the values of the three error functions as shown in Equation 2.

[수학식 2][Equation 2]

수학식 2에서, Ef는 대응점 간의 거리 오차함수를 나타내며, α는 해당 함수의 가중치를 나타내며, Ed는 템플릿 아바타와 사용자 3차원 스캔 정보와의 거리를 최소화시키기 위한 오차함수이고, β는 그 가중치를 나타내고, 마지막으로 Es는 관절각의 회전 각의 합을 최소화하는 함수이며,γ는 그 가중치를 나타낸 것을 알 수 있다.In Equation 2, E f represents the distance error function between corresponding points, α represents the weight of the function, E d is the error function to minimize the distance between the template avatar and the user's 3D scan information, and β is the It represents the weight, and finally, E s is a function that minimizes the sum of the rotation angles of the joint angles, and γ represents the weight.

템플릿 아바타 모델과 사용자의 3차원 스캐닝 모델 사이의 스켈레톤 거리를 최소화시키기 위한 오차함수 Ed는 수학식 3과 같이 정의할 수 있다.The error function E d to minimize the skeleton distance between the template avatar model and the user's 3D scanning model can be defined as Equation 3.

[수학식 3][Equation 3]

수학식 3에서, dist() 함수는 현재의 관절의 강체행렬에 의해 변형된 점 skin(Vi)와 사용자의 3차원 스캐닝 모델의 표면 D와의 최소 거리를 계산해주는 함수를 나타내고, Nm 템플릿 아바타 절점의 개수를 나타낸 것을 알 수 있다.In Equation 3, the dist() function represents a function that calculates the minimum distance between the point skin (V i ) deformed by the rigid body matrix of the current joint and the surface D of the user's 3D scanning model, and N m template avatar You can see that the number of nodes is indicated.

이 때, 사용자로부터 입력 받은 3차원 스캐닝 모델의 대응점은 로컬 최소점(local minima)으로 수렴할 수 있기 때문에, 이것을 방지하기 위해, 템플릿 아바타 모델과 사용자의 3차원 스캐닝 모델의 대응점 사이의 오차함수 Ef를 수학식 4와 같이 정의할 수 있다.At this time, since the corresponding points of the 3D scanning model input from the user may converge to the local minima, to prevent this, the error function E between the corresponding points of the template avatar model and the user's 3D scanning model f can be defined as in Equation 4.

[수학식 4][Equation 4]

수학식 4에서, FM과 FD는 각 템플릿 아바타 M과 사용자 3차원 스캔정보 D에 사용자가 정의해준 대응점이며, FM이 관절의 강체행렬에 의해 변형된 점 skin(FM)이 FD와의 거리가 최소가 되도록 연산될 수 있다. 여기서 Nf는 사용자 정의 대응점 개수를 나타내는 것을 알 수 있다.In Equation 4, F M and F D are the corresponding points defined by the user for each template avatar M and the user's 3D scan information D, and the point skin(F M ) transformed by the rigid body matrix of the joint where F M is F D It can be calculated so that the distance from is minimal. Here, N f represents the number of user-defined corresponding points.

그리고 템플릿 아바타 모델 M의 형태를 유지하기 위한 오차함수로 관절각의 회전을 의미하는 사원수수(quaternion)를 이용하여 수학식 5를 정의할 수 있다.And Equation 5 can be defined using quaternion, which means rotation of the joint angle, as an error function to maintain the shape of the template avatar model M.

[수학식 5][Equation 5]

수힉식 5에서 Nb는 뼈대의 개수, qi는 관절 i의 회전을 의미하며, 관절각의 회전각의 합을 최소화하는 목적함수를 나타낸 것을 알 수 있다.In Equation 5, Nb is the number of bones, qi is the rotation of joint i, and it can be seen that it represents the objective function of minimizing the sum of the rotation angles of the joint angles.

즉, 스켈레톤 정합부(122)는 상기 탬플릿 아바타 모델과 상기 3차원 스캐닝 모델의 대응점 위치 간의 오차를 최소화 시키기 위한 상기 스켈레톤 정보를 이용하여 상기 탬플릿 아바타 모델의 자세를 변형시킨 대응점과 상기 3차원 스캐닝 모델의 대응점까지의 최소거리를 연산하고, 상기 대응점 간의 최소거리와 상기 탬플릿 아바타 모델의 개별 절점 간의 최소거리에 기반하여 상기 탬플릿 아바타 모델의 자세를 변형시켜 상기 3차원 스캐닝 모델에 정합시킬 수 있다.That is, the skeleton matching unit 122 uses the skeleton information to minimize the error between the position of the corresponding point of the template avatar model and the 3D scanning model, and changes the posture of the template avatar model to the corresponding point and the 3D scanning model. The minimum distance to the corresponding point is calculated, and the posture of the template avatar model can be modified to match the 3D scanning model based on the minimum distance between the corresponding points and the minimum distance between individual nodes of the template avatar model.

지역 비강체 정합부(123)는 상기 탬플릿 아바타 모델의 개별 절점의 위치를 어파인 변형 행렬을 통해 조절하여 상기 탬플릿 아바타 모델의 표면과 상기 3차원 스캐닝 모델의 표면 사이의 최소거리를 연산할 수 있다.The local non-rigid body matching unit 123 can calculate the minimum distance between the surface of the template avatar model and the surface of the 3D scanning model by adjusting the positions of individual nodes of the template avatar model through an affine transformation matrix. .

이 때, 지역 비강체 정합부(123)는 템플릿 아바타 모델 M의 개별 절점의 위치를 어파인 변형(Affine Transformation) 행렬을 통해 조절하여 사용자 3차원 스캔 정보 D와의 거리를 최소화할 수 있다.At this time, the local non-rigid body matching unit 123 may adjust the positions of individual nodes of the template avatar model M through an Affine Transformation matrix to minimize the distance from the user's 3D scan information D.

이 때, 지역 비강체 정합부(123)는 오차함수를 수학식 6과 같이 정의할 수 있다.At this time, the local non-rigid matching unit 123 can define the error function as shown in Equation 6.

[수학식 6][Equation 6]

수학식 6에서 Ef는 대응점 간의 거리 오차함수를 나타내며, α는 해당 함수의 가중치를 나타내고, Ed는 템플릿 아바타와 사용자 3차원 스캔 정보와의 거리를 최소화시키기 위한 오차함수이고, β는 그 가중치를 나타내고, 마지막으로 Es는 템플릿 아바타의 기본적인 외형을 유지하기 위한 제약 사항을 나타내는 것을 알 수 있다.In Equation 6, E f represents the distance error function between corresponding points, α represents the weight of the function, E d is the error function to minimize the distance between the template avatar and the user's 3D scan information, and β is the weight. , and finally, it can be seen that E s represents constraints to maintain the basic appearance of the template avatar.

이 때, 지역 비강체 정합부(123)는 먼저 템플릿 아바타 모델 M과 사용자의 3차원 스캔닝 모델의 표면 D와의 거리를 최소화시키는 오차함수 Ed를 수학식 7과 같이 정의할 수 있다.At this time, the local non-rigid matching unit 123 may first define an error function E d that minimizes the distance between the template avatar model M and the surface D of the user's 3D scanning model as shown in Equation 7.

[수학식 7][Equation 7]

수학식 7에서, dist() 함수는 템플릿 아바타의 절점 Vi를 어파인 변형 행렬 Ti에 의해 변형된 점과 사용자 3차원 스캔 정보 표면 D와의 최소 거리를 계산해주는 함수를 나타낸 것을 알 수 있고, Nm 템플릿 아바타 절점의 개수를 나타낸 것을 알 수 있다. 여기서 거리는 삼각형 메쉬와의 가장 가까운 거리를 측점함으로써 이루어질 수 있다.In Equation 7, it can be seen that the dist() function represents a function that calculates the minimum distance between the node V i of the template avatar transformed by the affine transformation matrix T i and the user's 3D scan information surface D, It can be seen that N m represents the number of template avatar nodes. Here, the distance can be determined by measuring the closest distance to the triangle mesh.

이 때, 지역 비강체 정합부(123)는 사용자 입력을 받은 대응점의 오차함수는 수학식 8과 같이 정의할 수 있다.At this time, the local non-rigid matching unit 123 can define the error function of the corresponding point receiving the user input as shown in Equation 8.

[수학식 8][Equation 8]

수학식 8에서 FM과 FD는 각 템플릿 아바타 M과 사용자 3차원 스캔정보 D에 사용자가 정의해준 대응점이며, FM이 Ti 어파인 행렬에 의해 변형된 점과 FD와의 거리가 최소가 되도록 한다. 여기서 Nf는 사용자 정의 대응점 개수를 나타낸 것을 알 수 있다. In Equation 8, F M and F D are corresponding points defined by the user between each template avatar M and the user's 3D scan information D, and the distance between the point where F M is transformed by the T i affine matrix and F D is the minimum. Make it possible. Here, N f indicates the number of user-defined corresponding points.

마지막으로, 지역 비강체 정합부(123)는 템플릿 아바타 모델 M의 형태를 유지하기 위한 제약사항으로 모든 간선(Edge)이 갖고 있는 변환 행렬의 차이가 최소화 되도록 하는 오차함수를 정의할 수 있다.Lastly, the local non-rigid matching unit 123 can define an error function that minimizes the difference in the transformation matrices of all edges as a constraint to maintain the shape of the template avatar model M.

만약, 임의의 간선 ei의 두 절점이 비슷한 변형을 이루게 된다면, 두 절점의 변환 행렬의 차는 0 행렬에 수렴할 것이다. 이를 이용해 수학식 9가 정의될 수 있다.If two nodes of an arbitrary edge e i undergo similar transformations, the difference between the transformation matrices of the two nodes will converge to the 0 matrix. Using this, Equation 9 can be defined.

[수학식 9][Equation 9]

임의의 간선이 가지는 두 절점의 행렬을 Ti, Tj로 나타낸 것을 알 수 있고, 여기서 Ns는 템플릿 아바타 M의 간선 개수를 나타낸 것을 알 수 있다.It can be seen that the matrix of two nodes of an arbitrary edge is expressed as T i and T j , where N s represents the number of edges of the template avatar M.

모델 정합부(120)는 전역 강체 정합, 스켈레톤 기반의 포즈 정합, 그리고 지역 비강체 정합 모듈의 경우 사용 예에 따라 하나의 모듈 독립적으로, 또는 두 가지 이상의 모듈을 혼합하여 사용할 수 있다.The model matching unit 120 may be used as a global rigid body matching module, a skeleton-based pose matching module, and as a local non-rigid body matching module, depending on the usage, one module may be used independently, or two or more modules may be mixed together.

예를 들면, 모델 정합부(120)는 전체적인 템플릿 아바타의 Translation/Rotation/Scale을 미리 3차원 스캔 정보와 맞춰 놓은 경우라면 전역 강체 정합을 실시하지 않고, 스켈레톤 기반의 포즈 정합과 지역 비강체 정합으로도 탬플릿 아바타 모델과 3차원 스캐닝 모델을 정합시킬 수 있다.For example, if the translation/rotation/scale of the overall template avatar is set in advance to the 3D scan information, the model matching unit 120 does not perform global rigid body matching, but uses skeleton-based pose matching and local non-rigid body matching. The template avatar model and the 3D scanning model can also be matched.

또한, 3차원 스캔닝 모델과 템플릿 아바타 모델의 자세가 같은 경우에는 모델 정합부(120)는 스켈레톤 기반의 포즈 정합을 실시하지 않고, 지역 비강체 정합만 실시할 수도 있다.Additionally, when the poses of the 3D scanning model and the template avatar model are the same, the model matching unit 120 may not perform skeleton-based pose matching but may only perform local non-rigid body matching.

또한, 모델 정합부(120)는 사용자에 의해 적절히 사용 예에 맞춰서 정합 기능을 선택 받은 정합 기능만을 수행할 수 도 있다.Additionally, the model matching unit 120 may only perform matching functions selected by the user in accordance with the usage example.

아바타 생성부(130)는 상기 3차원 스캐닝 모델과 상기 탬플릿 아바타 모델을 정합한 결과에 기반하여 3차원 아바타를 생성할 수 있다.The avatar creation unit 130 may generate a 3D avatar based on a result of matching the 3D scanning model and the template avatar model.

이 때, 3차원 아바타는 사용자의 체형을 반영하여 리깅 정보와 버텍스 웨이트 정보가 반영되어 있는 정제되고 애니메이션이 가능한 아바타에 상응할 수 있다.At this time, the 3D avatar may correspond to a refined, animation-capable avatar in which rigging information and vertex weight information are reflected by reflecting the user's body shape.

이 때, 아바타 생성부(130)는 생성된 3차원 아바타를 이용하여 운동 처방 애니메이션을 사용자에게 보여줄 수 있고, 게임 등에서 사용자의 캐릭터로 사용할 수도 있다.At this time, the avatar creation unit 130 can display an exercise prescription animation to the user using the generated 3D avatar, and can also be used as the user's character in a game, etc.

이 때, 3차원 아바타는 3차원 서피스 정보와 스켈레톤 정보를 이용하여 사용자의 체형 정보를 제공할 수 있다. 예를 들면, 머리둘레, 가슴둘레 등의 둘레 정보를 3차원 아바타의 스켈레톤 정보에 정의된 위치와 스켈레톤 방향을 법선으로 하는 평면 정보를 통해 구하거나, 스켈레톤의 비율을 이용하여 팔-다리 비율, 허리-엉덩이 비율 등을 구할 수 있고, 버텍스 정보를 이용해 사용자 아바타의 부피 정보 등을 제공할 수 있다. 이 때, 3차원 아바타의 체형 정보는 3차원 아바타의 스켈레톤 정보를 기반으로 자동적으로 구해질 수 있으므로, 사용자 별 체형 정보의 일관성을 유지할 수 있고, 사용자의 히스토리에 따른 비교에도 용이하게 활용할 수 있다.At this time, the 3D avatar can provide the user's body shape information using 3D surface information and skeleton information. For example, circumference information such as head circumference and chest circumference can be obtained through the position defined in the skeleton information of the 3D avatar and plane information with the skeleton direction as the normal, or the arm-leg ratio and waist can be obtained using the ratio of the skeleton. -You can obtain the hip ratio, etc., and use vertex information to provide volume information of the user's avatar. At this time, the body shape information of the 3D avatar can be automatically obtained based on the skeleton information of the 3D avatar, so body shape information for each user can be consistent and can be easily used for comparison according to the user's history.

이 때, 아바타 생성부(130)는 정합되지 않은 인체의 부분 3차원 스캐닝 모델에도 점진적으로 사용자 체형 반영이 가능한 3차원 아바타 생성할 수 있다.At this time, the avatar creation unit 130 can create a 3D avatar that can gradually reflect the user's body shape even in the 3D scanning model of the mismatched human body part.

이 때, 아바타 생성부(130)는 전체적으로(Entirely) 3차원 스캔이 불가능한 상황에서도, 인체의 부분 스캔 결과를 기반으로 사용자의 일부 체형이 반영된 아바타를 생성할 수 있다.At this time, the avatar creation unit 130 can generate an avatar that reflects a part of the user's body shape based on the partial scan results of the human body even in a situation where 3D scanning as a whole is not possible.

이 때, 아바타 생성부(130)는 추가적인 인체 부분 스캔 결과를 기반으로 아바타 변형이 가능하여 점진적으로 사용자의 체형 반영을 개선시킬 수 있다.At this time, the avatar creation unit 130 can modify the avatar based on the scan results of additional human body parts, thereby gradually improving the reflection of the user's body shape.

이 때, 아바타 생성부(130)는 정제된 메쉬 기반의 애니메이션 가능한 아바타를 생성할 수 있다.At this time, the avatar creation unit 130 may generate a refined mesh-based avatar that can be animated.

이 때, 아바타 생성부(130)는 불완전한 인체 3차원 스캔 결과에도 불구하고 애니메이션 가능한 사용자 체형 반영 3차원 아바타를 생성할 수 있다.At this time, the avatar creation unit 130 may generate a 3D avatar reflecting the user's body type that can be animated despite the incomplete 3D scan result of the human body.

이 때, 아바타 생성부(130)는 저가 (Consumer-level) 깊이 센서 또는 영상 센서의 노이즈(Noise), 구멍(Hole), 또는 3차원 스캔 알고리즘의 한계로 인한 3차원 스캔 결과의 불완전성(Incompleteness) 극복하고 3차원 아바타를 생성할 수 있다.At this time, the avatar creation unit 130 detects incompleteness of the 3D scan result due to noise, holes, or limitations of the 3D scan algorithm of a low-cost (consumer-level) depth sensor or image sensor. ) You can overcome this and create a 3D avatar.

이 때, 아바타 생성부(130)는 불완전한 3차원 스캔 결과에도 애니메이션을 통해 동작이 가능하고 정제된 메쉬 기반의 사용자 체형 반영 3차원 아바타를 생성할 수 있다.At this time, the avatar creation unit 130 can operate through animation even with incomplete 3D scan results and can generate a refined mesh-based 3D avatar that reflects the user's body shape.

이 때, 아바타 생성부(130)는 결과물인 사용자의 3차원 체형이 반영된 아바타를 이용하여, 스켈레톤 기반의 사용자 별 일관성 있는(consistent) 체형의 부피, 비율, 둘레 정보의 자동 측정할 수 있다.At this time, the avatar creation unit 130 can automatically measure the volume, ratio, and circumference information of a consistent skeleton-based body shape for each user using the resulting avatar that reflects the user's three-dimensional body shape.

이 때, 아바타 생성부(130)는 생성된 3차원 아바타의 서피스 메쉬 정보를 이용하여 사용자 체형의 부피를 측정할 수 있다.At this time, the avatar creation unit 130 may measure the volume of the user's body shape using surface mesh information of the generated 3D avatar.

이 때, 아바타 생성부(130)는 생성된 3차원 아바타의 스켈레톤 정보와 서피스의 바운딩 박스를 이용하여 인체 비율을 측정할 수 있다.At this time, the avatar creation unit 130 can measure the human body ratio using the skeleton information of the generated 3D avatar and the bounding box of the surface.

이 때, 아바타 생성부(130)는 생성된 3차원 아바타의 스켈레톤 위치 정보와 서피스 정보를 이용하여 둘레를 자동 측정할 수 있다.At this time, the avatar creation unit 130 can automatically measure the perimeter using the skeleton position information and surface information of the created 3D avatar.

또한, 본 발명의 일실시예에 따른 3차원 아바타 생성 장치는 하나 이상의 프로세서; 메모리 및 하나 이상의 프로그램을 포함하고, 상기 하나 이상의 프로그램은 상기 메모리에 저장되고, 상기 하나 이상의 프로세서에 의해 실행되고, 상기 하나 이상의 프로세서는 상기 하나 이상의 프로그램을 실행시킬 수 있다.Additionally, a 3D avatar creation device according to an embodiment of the present invention includes one or more processors; It includes a memory and one or more programs, wherein the one or more programs are stored in the memory and are executed by the one or more processors, and the one or more processors can execute the one or more programs.

이 때, 하나 이상의 프로세서는 3차원 스캔부(110), 모델 정합부(120) 및 아바타 생성부(130)를 포함할 수 있고, 하나 이상의 프로세서는 3차원 스캔부(110), 모델 정합부(120) 및 아바타 생성부(130)의 기능을 하나 이상의 프로그램을 통해 실행 시킬 수 있다.At this time, one or more processors may include a 3D scanning unit 110, a model matching unit 120, and an avatar generating unit 130, and one or more processors may include a 3D scanning unit 110 and a model matching unit ( The functions of 120) and the avatar creation unit 130 can be executed through one or more programs.

도 3 본 발명의 일실시예에 따른 3차원 아바타 생성 방법을 나타낸 동작흐름도이다. 도 4는 도 3에 도시된 모델 정합 단계의 일 예를 세부적으로 나타낸 동작흐름도이다.Figure 3 is an operation flowchart showing a method for creating a 3D avatar according to an embodiment of the present invention. FIG. 4 is a detailed operational flowchart illustrating an example of the model matching step shown in FIG. 3.

도 3을 참조하면, 본 발명의 일실시예에 따른 3차원 아바타 생성 방법은 먼저 3차원 스캔을 수행할 수 있다(S210).Referring to FIG. 3, the method for creating a 3D avatar according to an embodiment of the present invention may first perform a 3D scan (S210).

즉, 단계(S310)는 이미지 센서를 이용하여 사용자의 인체를 3차원 스캐닝하고, 상기 사용자의 인체를 3차원 스캐닝한 결과를 이용하여 3차원 스캐닝 모델을 생성할 수 있다.That is, in step S310, the user's body can be 3D scanned using an image sensor, and a 3D scanning model can be created using the result of the 3D scanning of the user's body.

이 때, 이미지 센서는 깊이 센서 또는 RGB 이미지 센서에 상응할 수 있다.At this time, the image sensor may correspond to a depth sensor or an RGB image sensor.

이 때, 단계(S310)는 깊이 영상 또는 컬러 영상을 이용하여 사용자의 인체에 대한 3차원 스캔닝을 수행 할 수 있다.At this time, step S310 may perform 3D scanning of the user's human body using a depth image or a color image.

이 때, 단계(S310)는 깊이 영상만을 이용하거나, 컬러 영상만을 이용하거나, 또는 두 가지를 혼용하여 3차원 스캐닝을 수행할 수 있다.At this time, in step S310, 3D scanning may be performed using only the depth image, only the color image, or a combination of the two.

이렇게 생성된 사용자의 3차원 스캐닝 모델은 인체의 부분만을 스캔한 결과일 수도 있고, 360도 구석구석을 스캔한 완전한 결과일 수도 있다. 또한, 3차원 스캐닝 모델의 경우 센서 또는 알고리즘의 한계에 의한 구멍 또는 빈틈이 있을 수 있다.The user's 3D scanning model created in this way may be the result of scanning only a part of the human body, or it may be the complete result of scanning every corner of 360 degrees. Additionally, in the case of a 3D scanning model, there may be holes or gaps due to limitations of the sensor or algorithm.

또한, 본 발명의 일실시예에 따른 3차원 아바타 생성 방법은 모델 정합을 수행할 수 있다(S220).Additionally, the 3D avatar generation method according to an embodiment of the present invention can perform model matching (S220).

즉, 단계(S220)는 상기 3차원 스캐닝 모델과 기저장된 탬플릿 아바타 모델을 정합할 수 있다.That is, step S220 can match the 3D scanning model with a pre-stored template avatar model.

이 때, 템플릿 아바타 모델은 인체를 표현한 표준 아바타 모델에 상응할 수 있다. 이 때, 탬플릿 아바타 모델은 스켈레톤 정보와 버텍스 웨이트 정보를 포함할 수 있다.At this time, the template avatar model may correspond to a standard avatar model representing the human body. At this time, the template avatar model may include skeleton information and vertex weight information.

이 때, 단계(S220)는 탬플릿 아바타 모델이 스켈레톤 정보와 버텍스 웨이트 정보를 포함하지 않는 경우, 자동 리깅 알고리즘을 통해 스켈레톤 정보와 버텍스 웨이트 정보를 업데이트 할 수 있다.At this time, in step S220, if the template avatar model does not include skeleton information and vertex weight information, the skeleton information and vertex weight information can be updated through an automatic rigging algorithm.

이 때, 단계(S220)는 상기 3차원 스캐닝 모델과 상기 탬플릿 아바타 모델 간의 대응점 정보를 이용하여 상기 3차원 스캐닝 모델과 상기 탬플릿 아바타 모델을 정합할 수 있다.At this time, step S220 may match the 3D scanning model and the template avatar model using information on corresponding points between the 3D scanning model and the template avatar model.

이 때, 단계(S220)는 3차원 스캐닝 모델과 상기 템플릿 아바타 모델의 대략적인 이동(Translation), 방향(Orientation)과 스케일(Scale)을 보정하는 6 자유도(Degree of Freedom) 강체 변환(Rigid Transformation)을 적용할 수 있다.At this time, step S220 is a 6-degree-of-freedom rigid transformation that corrects the approximate translation, orientation, and scale of the 3D scanning model and the template avatar model. ) can be applied.

이 때, 상기 대응점 정보는 상기 3차원 스캐닝 모델과 탬플릿 아바타 모델의 인체 부위에서 기정의된 적어도 하나 이상의 위치를 대응점으로 정의한 정보를 포함할 수 있다.At this time, the corresponding point information may include information defining at least one predefined position in the human body part of the 3D scanning model and the template avatar model as a corresponding point.

이 때, 상기 인체 부위에서 기정의된 적어도 하나 이상의 위치는 인체의 얼굴 부위, 손 부위 및 발 부위 중 적어도 하나 이상의 위치를 포함할 수 있다.At this time, at least one predefined position in the human body part may include at least one position among the face part, hand part, and foot part of the human body.

이 때, 단계(S220)는 상기 인체 부위에서 기정의된 적어도 하나 이상의 위치에 기반하여 상기 3차원 스캐닝 모델의 대응점과 상기 탬플릿 아바타 모델의 대응점을 대응쌍으로 정의할 수 있다.At this time, in step S220, the corresponding point of the 3D scanning model and the corresponding point of the template avatar model may be defined as a corresponding pair based on at least one predefined position in the body part.

이 때, 단계(S220)는 3차원 스캐닝 모델의 포즈를 인식하여 알고리즘을 통해 3차원 스캐닝 모델의 대응점을 자동적으로 검색할 수 있다.At this time, step S220 may recognize the pose of the 3D scanning model and automatically search for corresponding points of the 3D scanning model through an algorithm.

이 때, 단계(S220)는 크게 전역 강체 정합(Global Rigid Registration), 스켈레톤 기반의 포즈 정합(Skeleton based Human Pose Registration), 그리고 지역 비강체 정합(Local Non-rigid Registration)의 세 과정 중 적어도 하나 이상을 수행할 수 있다.At this time, step S220 largely involves at least one of three processes: global rigid registration, skeleton-based human pose registration, and local non-rigid registration. can be performed.

이 때, 단계(S220)는 사용자의 3차원 스캐닝 모델이 불완전하거나, 센서 또는 알고리즘의 한계에 의해 모델의 일부가 누락 되었어도, 부분적인 정합을 통해 탬플릿 아바타 모델을 변형시킬 수 있으므로, 사용자의 체형을 반영한 3차원 아바타를 생성할 수 있다.At this time, in step S220, even if the user's 3D scanning model is incomplete or part of the model is missing due to limitations of the sensor or algorithm, the template avatar model can be transformed through partial registration, thereby changing the user's body shape. You can create a reflected 3D avatar.

이 때, 단계(S220)는 부분(Partial) 적으로 결핍된 3차원 스캐닝 모델에 대해서, 부분적인 정합을 통해 인체의 전면부를 먼저 정합하고, 전면부가 정합되어 변형된(후면부는 정보 누락으로 변형되지 않은) 템플릿 아바타 모델과 정합시킬 수 있고, 추가적으로 탬플릿 아바타 모델의 후면부를 변형시킬 수 있다.At this time, in step S220, the front part of the human body is first registered through partial registration for the partially deficient 3D scanning model, and the front part is registered and deformed (the back part is not deformed due to missing information). (not shown) can be matched with the template avatar model, and additionally the rear portion of the template avatar model can be transformed.

이 때, 단계(S220)는 부분적인 정합을 통해 점진적으로 탬플릿 아바타 모델을 변형시켜 사용자의 인체를 반영한 3차원 아바타 생성의 정확도 및 완결성을 높일 수 있다. At this time, step S220 can gradually transform the template avatar model through partial matching to increase the accuracy and completeness of creating a 3D avatar that reflects the user's human body.

도 4를 참조하면, 단계(S220)는 전역 강체 정합(S221), 스켈레톤 정합(S222) 및 지역 비강체 정합(S223)을 수행할 수 있다.Referring to FIG. 4, step S220 may perform global rigid body registration (S221), skeleton registration (S222), and local non-rigid body registration (S223).

단계(S221)는 상기 대응점 정보를 이용하여 상기 탬플릿 아바타 모델의 대응점의 위치와 상기 3차원 스캐닝 모델의 대응점의 위치에 기반하여 상기 3차원 스캐닝 모델의 위치를 이동시키고, 상기 3차원 스캐닝 모델의 방향을 회전시켜 상기 탬플릿 아바타 모델에 정합시킬 수 있다.Step S221 uses the corresponding point information to move the position of the 3D scanning model based on the position of the corresponding point of the template avatar model and the position of the corresponding point of the 3D scanning model, and to change the direction of the 3D scanning model. can be rotated to match the template avatar model.

이 때, 단계(S221)는 대응점 정보를 이용하여 3차원 스캔닝 모델을 기준으로 템플릿 아바타 모델의 전체적인 6자유도 Translation과 Rotation 정보 그리고 Scale 정보를 구하여 대략적으로 정합할 수 있다.At this time, in step S221, the overall 6 degrees of freedom translation and rotation information and scale information of the template avatar model can be obtained and roughly matched based on the 3D scanning model using the corresponding point information.

단계(S222)는 상기 대응점 정보와 상기 탬플릿 아바타 모델의 스켈레톤 정보를 이용하여 상기 3차원 아바타 모델의 자세에 상응하도록 상기 탬플릿 아바타 모델의 자세를 변형시킬 수 있다.In step S222, the posture of the template avatar model may be transformed to correspond to the posture of the 3D avatar model using the corresponding point information and skeleton information of the template avatar model.

3차원 아바타의 미세한 골격 구조 변화를 표현하려면, 스켈레톤의 각 세그먼트의 미세한 Translation, Rotation 변화를 반영해야 한다. 또한, 동일한 사람을 부분적으로 여러 번 스캔할 경우, 한 사람의 포즈의 형태가 시간에 따라 달라질 수 있으므로 인체의 포즈 변화에 적응할 수 있는 정합 방법이 필요하다.To express minute changes in the skeletal structure of a 3D avatar, minute translation and rotation changes in each segment of the skeleton must be reflected. Additionally, when the same person is partially scanned multiple times, the shape of a person's pose may change over time, so a registration method that can adapt to changes in the human body's pose is needed.

예를 들면, 단계(S222)는 사용자의 전면부 스캔을 통해 생성된 제1 3차원 스캐닝 모델을 기준으로 변형된 탬플릿 아바타 모델에, 측면부 스캔을 통해 생성된 제2 3차원 스캐닝 모델을 추가적으로 이용하여 아바타를 다시 변형할 때, 서로 포즈가 다른 경우, 스켈레톤 정보를 이용하여 탬플릿 아바타 모델의 자세를 변형시켜 3차원 스캐닝 모델과 정합시킬 수 있다.For example, in step S222, a template avatar model modified based on the first 3D scanning model generated by scanning the user's front part is additionally used with a second 3D scanning model generated by scanning the side part. When transforming the avatar again, if the poses are different, the pose of the template avatar model can be transformed using the skeleton information to match the 3D scanning model.

템플릿 아바타 모델을 기정의된 각 뼈대와 각 절점 사이의 상관관계를 포함할 수 있다.The template avatar model may include the correlation between each predefined skeleton and each node.

즉, 탬플릿 아바타 모델은 리깅이 되어 있어서 뼈대의 자세 변화는 곧 템플릿 아바타의 자세 변화로 반영될 수 있다.In other words, since the template avatar model is rigged, changes in the posture of the skeleton can be reflected as changes in the posture of the template avatar.

이 때, 템플릿 아바타 모델에 사용되는 리깅 기법은 가장 많이 사용하는 Linear Blend Skinning 기법이 사용될 수 있다. 상기 리깅 기법은 각 절점 마다 각 뼈대의 영향도를 의미하는 가중치 값을 정의하고, 각 절점은 각 뼈대의 움직임을 따라 이 가중치 값만큼의 이동 성분을 가지도록 하는 것으로 수학식 1과 같이 수식화 될 수 있다.At this time, the most commonly used rigging technique for the template avatar model is Linear Blend Skinning. The rigging technique defines a weight value that represents the influence of each skeleton at each node, and each node has a movement component equal to this weight value along the movement of each skeleton, which can be expressed as Equation 1. there is.

수학식 1에서, Vi는 템플릿 아바타 모델의 한 절점의 위치이며, Nb는 전체 뼈대 모델의 뼈의 개수, wj 는 뼈대의 가중치 값, T-j는 j번째 뼈대의 강체 변형 행렬을 의미하며, Vj 0는 기준자세에서의 해당 절점의 j번째 뼈대에 대한 지역 좌표를 의미할 수 있다.In Equation 1, V i is the position of one node of the template avatar model, N b is the number of bones in the entire skeleton model, w j is the weight value of the skeleton, and T -j is the rigid body deformation matrix of the jth skeleton. And V j 0 may mean the local coordinates of the jth skeleton of the corresponding node in the reference posture.

이 때, 단계(S222)는 템플릿 아바타 모델의 자세를 사용자의 3차원 스캐닝 모델과 유사하게 맞추기 위해 뼈대의 관절 각과 관절 좌표의 최적화를 수행할 수 있다.At this time, in step S222, optimization of the joint angles and joint coordinates of the skeleton may be performed to match the posture of the template avatar model similarly to the user's 3D scanning model.

이 때, 단계(S222)는 수학식 2와 같은 3개의 오차함수의 값의 합을 최소화 시키는 관절의 강체 행렬을 찾아주는 연산을 수행할 수 있다.At this time, step S222 can perform an operation to find the rigid body matrix of the joint that minimizes the sum of the values of the three error functions as shown in Equation 2.

수학식 2에서, Ef는 대응점 간의 거리 오차함수를 나타내며, α는 해당 함수의 가중치를 나타내며, Ed는 템플릿 아바타와 사용자 3차원 스캔 정보와의 거리를 최소화시키기 위한 오차함수이고, β는 그 가중치를 나타내고, 마지막으로 Es는 관절각의 회전 각의 합을 최소화하는 함수이며,γ는 그 가중치를 나타낸 것을 알 수 있다.In Equation 2, E f represents the distance error function between corresponding points, α represents the weight of the function, E d is the error function to minimize the distance between the template avatar and the user's 3D scan information, and β is the It represents the weight, and finally, E s is a function that minimizes the sum of the rotation angles of the joint angles, and γ represents the weight.

템플릿 아바타 모델과 사용자의 3차원 스캐닝 모델 사이의 스켈레톤 거리를 최소화시키기 위한 오차함수 Ed는 수학식 3과 같이 정의할 수 있다.The error function E d to minimize the skeleton distance between the template avatar model and the user's 3D scanning model can be defined as Equation 3.

수학식 3에서, dist() 함수는 현재의 관절의 강체행렬에 의해 변형된 점 skin(Vi)와 사용자의 3차원 스캐닝 모델의 표면 D와의 최소 거리를 계산해주는 함수를 나타내고, Nm 템플릿 아바타 절점의 개수를 나타낸 것을 알 수 있다.In Equation 3, the dist() function represents a function that calculates the minimum distance between the point skin (V i ) deformed by the rigid body matrix of the current joint and the surface D of the user's 3D scanning model, and N m template avatar You can see that the number of nodes is indicated.

이 때, 사용자로부터 입력 받은 3차원 스캐닝 모델의 대응점은 로컬 최소점(local minima)으로 수렴할 수 있기 때문에, 이것을 방지하기 위해, 템플릿 아바타 모델과 사용자의 3차원 스캐닝 모델의 대응점 사이의 오차함수 Ef를 수학식 4와 같이 정의할 수 있다.At this time, since the corresponding points of the 3D scanning model input from the user may converge to the local minima, to prevent this, the error function E between the corresponding points of the template avatar model and the user's 3D scanning model f can be defined as in Equation 4.

수학식 4에서, FM과 FD는 각 템플릿 아바타 M과 사용자 3차원 스캔정보 D에 사용자가 정의해준 대응점이며, FM이 관절의 강체행렬에 의해 변형된 점 skin(FM)이 FD와의 거리가 최소가 되도록 연산될 수 있다. 여기서 Nf는 사용자 정의 대응점 개수를 나타내는 것을 알 수 있다.In Equation 4, F M and F D are the corresponding points defined by the user for each template avatar M and the user's 3D scan information D, and the point skin(F M ) transformed by the rigid body matrix of the joint where F M is F D It can be calculated so that the distance from is minimal. Here, N f represents the number of user-defined corresponding points.

그리고 템플릿 아바타 모델 M의 형태를 유지하기 위한 오차함수로 관절각의 회전을 의미하는 사원수수(quaternion)를 이용하여 수학식 5를 정의할 수 있다.And Equation 5 can be defined using quaternion, which means rotation of the joint angle, as an error function to maintain the shape of the template avatar model M.

수힉식 5에서 Nb는 뼈대의 개수, qi는 관절 i의 회전을 의미하며, 관절각의 회전각의 합을 최소화하는 목적함수를 나타낸 것을 알 수 있다.In Equation 5, Nb is the number of bones, qi is the rotation of joint i, and it can be seen that it represents the objective function of minimizing the sum of the rotation angles of the joint angles.

즉, 단계(S222)는 상기 탬플릿 아바타 모델과 상기 3차원 스캐닝 모델의 대응점 위치 간의 오차를 최소화 시키기 위한 상기 스켈레톤 정보를 이용하여 상기 탬플릿 아바타 모델의 자세를 변형시킨 대응점과 상기 3차원 스캐닝 모델의 대응점까지의 최소거리를 연산하고, 상기 대응점 간의 최소거리와 상기 탬플릿 아바타 모델의 개별 절점 간의 최소거리에 기반하여 상기 탬플릿 아바타 모델의 자세를 변형시켜 상기 3차원 스캐닝 모델에 정합시킬 수 있다.That is, in step S222, the posture of the template avatar model is transformed using the skeleton information to minimize the error between the position of the corresponding point of the template avatar model and the 3D scanning model, and the corresponding point of the 3D scanning model is changed. The minimum distance to can be calculated, and the posture of the template avatar model can be modified to match the 3D scanning model based on the minimum distance between the corresponding points and the minimum distance between individual nodes of the template avatar model.

단계(S223)는 상기 탬플릿 아바타 모델의 개별 절점의 위치를 어파인 변형 행렬을 통해 조절하여 상기 탬플릿 아바타 모델의 표면과 상기 3차원 스캐닝 모델의 표면 사이의 최소거리를 연산할 수 있다.In step S223, the positions of individual nodes of the template avatar model can be adjusted through an affine transformation matrix to calculate the minimum distance between the surface of the template avatar model and the surface of the 3D scanning model.

이 때, 단계(S223)는 템플릿 아바타 모델 M의 개별 절점의 위치를 어파인 변형(Affine Transformation) 행렬을 통해 조절하여 사용자 3차원 스캔 정보 D와의 거리를 최소화할 수 있다.At this time, in step S223, the distance from the user's 3D scan information D can be minimized by adjusting the positions of individual nodes of the template avatar model M through an Affine Transformation matrix.

이 때, 단계(S223)는 오차함수를 수학식 6과 같이 정의할 수 있다.At this time, step S223 can define the error function as shown in Equation 6.

수학식 6에서 Ef는 대응점 간의 거리 오차함수를 나타내며, α는 해당 함수의 가중치를 나타내고, Ed는 템플릿 아바타와 사용자 3차원 스캔 정보와의 거리를 최소화시키기 위한 오차함수이고, β는 그 가중치를 나타내고, 마지막으로 Es는 템플릿 아바타의 기본적인 외형을 유지하기 위한 제약 사항을 나타내는 것을 알 수 있다.In Equation 6, E f represents the distance error function between corresponding points, α represents the weight of the function, E d is the error function to minimize the distance between the template avatar and the user's 3D scan information, and β is the weight. , and finally, it can be seen that E s represents constraints to maintain the basic appearance of the template avatar.

이 때, 단계(S223)는 먼저 템플릿 아바타 모델 M과 사용자의 3차원 스캔닝 모델의 표면 D와의 거리를 최소화시키는 오차함수 Ed를 수학식 7과 같이 정의할 수 있다.At this time, in step S223, an error function E d that minimizes the distance between the template avatar model M and the surface D of the user's 3D scanning model can be defined as shown in Equation 7.

수학식 7에서, dist() 함수는 템플릿 아바타의 절점 Vi를 어파인 변형 행렬 Ti에 의해 변형된 점과 사용자 3차원 스캔 정보 표면 D와의 최소 거리를 계산해주는 함수를 나타낸 것을 알 수 있고, Nm 템플릿 아바타 절점의 개수를 나타낸 것을 알 수 있다. 여기서 거리는 삼각형 메쉬와의 가장 가까운 거리를 측점함으로써 이루어질 수 있다.In Equation 7, it can be seen that the dist() function represents a function that calculates the minimum distance between the node V i of the template avatar transformed by the affine transformation matrix T i and the user's 3D scan information surface D, It can be seen that N m represents the number of template avatar nodes. Here, the distance can be determined by measuring the closest distance to the triangle mesh.

이 때, 단계(S223)는 사용자 입력을 받은 대응점의 오차함수는 수학식 8과 같이 정의할 수 있다.At this time, in step S223, the error function of the corresponding point receiving the user input can be defined as shown in Equation 8.

수학식 8에서 FM과 FD는 각 템플릿 아바타 M과 사용자 3차원 스캔정보 D에 사용자가 정의해준 대응점이며, FM이 Ti 어파인 행렬에 의해 변형된 점과 FD와의 거리가 최소가 되도록 한다. 여기서 Nf는 사용자 정의 대응점 개수를 나타낸 것을 알 수 있다. In Equation 8, F M and F D are corresponding points defined by the user between each template avatar M and the user's 3D scan information D, and the distance between the point where F M is transformed by the T i affine matrix and F D is the minimum. Make it possible. Here, N f indicates the number of user-defined corresponding points.

마지막으로, 단계(S223)는 템플릿 아바타 모델 M의 형태를 유지하기 위한 제약사항으로 모든 간선(Edge)이 갖고 있는 변환 행렬의 차이가 최소화 되도록 하는 오차함수를 정의할 수 있다.Lastly, step S223 can define an error function that minimizes the difference in the transformation matrices of all edges as a constraint to maintain the shape of the template avatar model M.

만약, 임의의 간선 ei의 두 절점이 비슷한 변형을 이루게 된다면, 두 절점의 변환 행렬의 차는 0 행렬에 수렴할 것이다. 이를 이용해 수학식 9가 정의될 수 있다.If two nodes of an arbitrary edge e i undergo similar transformations, the difference between the transformation matrices of the two nodes will converge to the 0 matrix. Using this, Equation 9 can be defined.

임의의 간선이 가지는 두 절점의 행렬을 Ti, Tj로 나타낸 것을 알 수 있고, 여기서 Ns는 템플릿 아바타 M의 간선 개수를 나타낸 것을 알 수 있다.It can be seen that the matrix of two nodes of an arbitrary edge is expressed as T i and T j , where N s represents the number of edges of the template avatar M.

또한, 단계(S220)는 전역 강체 정합, 스켈레톤 기반의 포즈 정합, 그리고 지역 비강체 정합의 경우 사용 예에 따라 하나의 단계를 독립적으로, 또는 두 가지 이상의 단계를 혼합하여 사용할 수 있다.Additionally, in the case of global rigid body registration, skeleton-based pose matching, and local non-rigid body registration, step S220 may be used as a single step independently or as a mixture of two or more steps depending on the usage example.

예를 들면, 단계(S220)는 전체적인 템플릿 아바타의 Translation/Rotation/Scale을 미리 3차원 스캔 정보와 맞춰 놓은 경우라면 전역 강체 정합을 실시하지 않고, 스켈레톤 기반의 포즈 정합과 지역 비강체 정합으로도 탬플릿 아바타 모델과 3차원 스캐닝 모델을 정합시킬 수 있다.For example, in step S220, if the Translation/Rotation/Scale of the overall template avatar is matched with the 3D scan information in advance, global rigid body registration is not performed, and skeleton-based pose matching and local non-rigid body registration are also used to match the template. The avatar model and the 3D scanning model can be matched.

또한, 3차원 스캔닝 모델과 템플릿 아바타 모델의 자세가 같은 경우에는 단계(S220)는 스켈레톤 기반의 포즈 정합을 실시하지 않고, 지역 비강체 정합만 실시할 수도 있다.Additionally, when the poses of the 3D scanning model and the template avatar model are the same, step S220 may not perform skeleton-based pose matching but only local non-rigid body matching.

또한, 단계(S220)는 사용자에 의해 적절히 사용 예에 맞춰서 정합 기능을 선택 받은 정합 기능만을 수행할 수 도 있다.Additionally, step S220 may only perform the matching function selected by the user according to the usage example.

또한, 본 발명의 일실시예에 따른 3차원 아바타 생성 방법은 3차원 아바타를 생성할 수 있다(S230).Additionally, the 3D avatar creation method according to an embodiment of the present invention can generate a 3D avatar (S230).

즉, 단계(S230)는 상기 3차원 스캐닝 모델과 상기 탬플릿 아바타 모델을 정합한 결과에 기반하여 3차원 아바타를 생성할 수 있다.That is, step S230 may generate a 3D avatar based on a result of matching the 3D scanning model and the template avatar model.

이 때, 3차원 아바타는 사용자의 체형을 반영하여 리깅 정보와 버텍스 웨이트 정보가 반영되어 있는 정제되고 애니메이션이 가능한 아바타에 상응할 수 있다.At this time, the 3D avatar may correspond to a refined, animation-capable avatar in which rigging information and vertex weight information are reflected by reflecting the user's body shape.

이 때, 단계(S230)는 생성된 3차원 아바타를 이용하여 운동 처방 애니메이션을 사용자에게 보여줄 수 있고, 게임 등에서 사용자의 캐릭터로 사용할 수도 있다.At this time, in step S230, an exercise prescription animation can be shown to the user using the generated 3D avatar, and can also be used as the user's character in a game, etc.

이 때, 3차원 아바타는 3차원 서피스 정보와 스켈레톤 정보를 이용하여 사용자의 체형 정보를 제공할 수 있다. 예를 들면, 머리둘레, 가슴둘레 등의 둘레 정보를 3차원 아바타의 스켈레톤 정보에 정의된 위치와 스켈레톤 방향을 법선으로 하는 평면 정보를 통해 구하거나, 스켈레톤의 비율을 이용하여 팔-다리 비율, 허리-엉덩이 비율 등을 구할 수 있고, 버텍스 정보를 이용해 사용자 아바타의 부피 정보 등을 제공할 수 있다. 이 때, 3차원 아바타의 체형 정보는 3차원 아바타의 스켈레톤 정보를 기반으로 자동적으로 구해질 수 있으므로, 사용자 별 체형 정보의 일관성을 유지할 수 있고, 사용자의 히스토리에 따른 비교에도 용이하게 활용할 수 있다.At this time, the 3D avatar can provide the user's body shape information using 3D surface information and skeleton information. For example, circumference information such as head circumference and chest circumference can be obtained through the position defined in the 3D avatar's skeleton information and plane information with the skeleton direction as the normal, or the arm-leg ratio and waist can be obtained using the skeleton's ratio. -You can obtain the hip ratio, etc., and use vertex information to provide volume information of the user's avatar. At this time, the body shape information of the 3D avatar can be automatically obtained based on the skeleton information of the 3D avatar, so body shape information for each user can be consistent and can be easily used for comparison according to the user's history.

이 때, 단계(S230)는 정합되지 않은 인체의 부분 3차원 스캐닝 모델에도 점진적으로 사용자 체형 반영이 가능한 3차원 아바타 생성할 수 있다.At this time, in step S230, a 3D avatar that can gradually reflect the user's body shape can be created even in the 3D scanning model of the mismatched human body part.

이 때, 단계(S230)는 전체적으로(Entirely) 3차원 스캔이 불가능한 상황에서도, 인체의 부분 스캔 결과를 기반으로 사용자의 일부 체형이 반영된 아바타를 생성할 수 있다.At this time, step S230 can generate an avatar reflecting a part of the user's body shape based on the partial scan results of the human body even in a situation where 3D scanning is impossible.

이 때, 단계(S230)는 추가적인 인체 부분 스캔 결과를 기반으로 아바타 변형이 가능하여 점진적으로 사용자의 체형 반영을 개선시킬 수 있다.At this time, in step S230, the avatar can be modified based on the scan results of additional human body parts, thereby gradually improving the reflection of the user's body shape.

이 때, 단계(S230)는 정제된 메쉬 기반의 애니메이션 가능한 아바타를 생성할 수 있다.At this time, step S230 may generate a refined mesh-based animable avatar.

이 때, 단계(S230)는 불완전한 인체 3차원 스캔 결과에도 불구하고 애니메이션 가능한 사용자 체형 반영 3차원 아바타를 생성할 수 있다.At this time, step S230 may generate a 3D avatar reflecting the user's body type that can be animated despite the incomplete 3D human body scan result.

이 때, 단계(S230)는 저가 (Consumer-level) 깊이 센서 또는 영상 센서의 노이즈(Noise), 구멍(Hole), 또는 3차원 스캔 알고리즘의 한계로 인한 3차원 스캔 결과의 불완전성(Incompleteness) 극복하고 3차원 아바타를 생성할 수 있다.At this time, step S230 overcomes the incompleteness of the 3D scan result due to noise, holes, or limitations of the 3D scan algorithm of a low-cost (consumer-level) depth sensor or image sensor. And you can create a 3D avatar.

이 때, 단계(S230)는 불완전한 3차원 스캔 결과에도 애니메이션을 통해 동작이 가능하고 정제된 메쉬 기반의 사용자 체형 반영 3차원 아바타를 생성할 수 있다.At this time, in step S230, operation is possible through animation even with incomplete 3D scan results, and a refined mesh-based 3D avatar reflecting the user's body shape can be created.

이 때, 단계(S230)는 결과물인 사용자의 3차원 체형이 반영된 아바타를 이용하여, 스켈레톤 기반의 사용자 별 일관성 있는(consistent) 체형의 부피, 비율, 둘레 정보의 자동 측정할 수 있다.At this time, in step S230, the volume, ratio, and circumference information of the consistent body shape of each user based on the skeleton can be automatically measured using the resulting avatar that reflects the user's three-dimensional body shape.

이 때, 단계(S230)는 생성된 3차원 아바타의 서피스 메쉬 정보를 이용하여 사용자 체형의 부피를 측정할 수 있다.At this time, in step S230, the volume of the user's body shape can be measured using surface mesh information of the generated 3D avatar.

이 때, 단계(S230)는 생성된 3차원 아바타의 스켈레톤 정보와 서피스의 바운딩 박스를 이용하여 인체 비율을 측정할 수 있다.At this time, in step S230, the human body ratio can be measured using the skeleton information of the generated 3D avatar and the bounding box of the surface.

이 때, 단계(S230)는 생성된 3차원 아바타의 스켈레톤 위치 정보와 서피스 정보를 이용하여 둘레를 자동 측정할 수 있다.At this time, in step S230, the perimeter can be automatically measured using the skeleton position information and surface information of the generated 3D avatar.

도 5는 본 발명의 일실시예에 따른 3차원 아바타 생성 과정을 나타낸 도면이다.Figure 5 is a diagram showing a 3D avatar creation process according to an embodiment of the present invention.

도 5를 참조하면, 본 발명의 일실시예에 따른 3차원 아바타 생성 과정은 3차원 아바타 생성 장치가 먼저 3차원 스캔을 수행할 수 있다.Referring to FIG. 5, in the 3D avatar creation process according to an embodiment of the present invention, the 3D avatar creation device may first perform a 3D scan.

즉, 3차원 아바타 생성 장치는 이미지 센서를 이용하여 사용자의 인체를 3차원 스캐닝하고, 상기 사용자의 인체를 3차원 스캐닝한 결과를 이용하여 3차원 스캐닝 모델을 생성할 수 있다.That is, the 3D avatar creation device can 3D scan the user's human body using an image sensor and generate a 3D scanning model using the results of 3D scanning the user's human body.

이 때, 이미지 센서(3D Body Scanner)는 깊이 센서 또는 RGB 이미지 센서에 상응할 수 있다.At this time, the image sensor (3D Body Scanner) may correspond to a depth sensor or an RGB image sensor.

이 때, 3차원 아바타 생성 장치는 깊이 영상 또는 컬러 영상(Depth or RGB image)을 이용하여 사용자의 인체에 대한 3차원 스캔닝을 수행 할 수 있다.At this time, the 3D avatar creation device can perform 3D scanning of the user's human body using a depth image or color image (Depth or RGB image).

이 때, 3차원 아바타 생성 장치는 깊이 영상만을 이용하거나, 컬러 영상만을 이용하거나, 또는 두 가지를 혼용하여 3차원 스캐닝을 수행할 수 있다.At this time, the 3D avatar creation device may perform 3D scanning using only depth images, only color images, or a combination of the two.

이렇게 생성된 사용자의 3차원 스캐닝 모델(Source 3D Scan)은 인체의 부분만을 스캔한 결과일 수도 있고, 360도 구석구석을 스캔한 완전한 결과일 수도 있다. 또한, 3차원 스캐닝 모델의 경우 센서 또는 알고리즘의 한계에 의한 구멍 또는 빈틈이 있을 수 있다.The user's 3D scanning model (Source 3D Scan) created in this way may be the result of scanning only a part of the human body, or it may be the complete result of scanning every corner of 360 degrees. Additionally, in the case of a 3D scanning model, there may be holes or gaps due to limitations of the sensor or algorithm.

3차원 아바타 생성 장치는 모델 정합부(3D Correspondence Module, Registration Module)를 통해 상기 3차원 스캐닝 모델과 기저장된 탬플릿 아바타 모델(Template Avatar)을 정합할 수 있다(Correspondences, Registration).The 3D avatar creation device can match the 3D scanning model with a pre-stored template avatar model (Correspondences, Registration) through a model matching unit (3D Correspondence Module, Registration Module).

이 때, 템플릿 아바타 모델은 인체를 표현한 표준 아바타 모델에 상응할 수 있다. 이 때, 탬플릿 아바타 모델은 스켈레톤 정보와 버텍스 웨이트 정보를 포함할 수 있다.At this time, the template avatar model may correspond to a standard avatar model representing the human body. At this time, the template avatar model may include skeleton information and vertex weight information.

이 때, 3차원 아바타 생성 장치는 탬플릿 아바타 모델이 스켈레톤 정보와 버텍스 웨이트 정보를 포함하지 않는 경우, 자동 리깅 알고리즘을 통해 스켈레톤 정보와 버텍스 웨이트 정보를 업데이트 할 수 있다.At this time, if the template avatar model does not include skeleton information and vertex weight information, the 3D avatar creation device may update the skeleton information and vertex weight information through an automatic rigging algorithm.

이 때, 3차원 아바타 생성 장치는 상기 3차원 스캐닝 모델과 상기 탬플릿 아바타 모델 간의 대응점 정보를 이용하여 상기 3차원 스캐닝 모델과 상기 탬플릿 아바타 모델을 정합할 수 있다.At this time, the 3D avatar creation device may match the 3D scanning model and the template avatar model using information on corresponding points between the 3D scanning model and the template avatar model.

이 때, 3차원 아바타 생성 장치는 3차원 스캐닝 모델과 상기 템플릿 아바타 모델의 대략적인 이동(Translation), 방향(Orientation)과 스케일(Scale)을 보정하는 6 자유도(Degree of Freedom) 강체 변환(Rigid Transformation)을 적용할 수 있다.At this time, the 3D avatar creation device uses a 6-degree-of-freedom rigid body transformation that corrects the approximate translation, orientation, and scale of the 3D scanning model and the template avatar model. Transformation) can be applied.

이 때, 상기 대응점 정보는 상기 3차원 스캐닝 모델과 탬플릿 아바타 모델의 인체 부위에서 기정의된 적어도 하나 이상의 위치를 대응점으로 정의한 정보를 포함할 수 있다.At this time, the corresponding point information may include information defining at least one predefined position in the human body part of the 3D scanning model and the template avatar model as a corresponding point.

이 때, 상기 인체 부위에서 기정의된 적어도 하나 이상의 위치는 인체의 얼굴 부위, 손 부위 및 발 부위 중 적어도 하나 이상의 위치를 포함할 수 있다.At this time, at least one predefined position in the human body part may include at least one position among the face part, hand part, and foot part of the human body.

이 때, 3차원 아바타 생성 장치는 상기 인체 부위에서 기정의된 적어도 하나 이상의 위치에 기반하여 상기 3차원 스캐닝 모델의 대응점과 상기 탬플릿 아바타 모델의 대응점을 대응쌍으로 정의할 수 있다.At this time, the 3D avatar creation device may define the corresponding points of the 3D scanning model and the corresponding points of the template avatar model as a corresponding pair based on at least one predefined position in the body part.

이 때, 3차원 아바타 생성 장치는 3차원 스캐닝 모델의 포즈를 인식하여 알고리즘을 통해 3차원 스캐닝 모델의 대응점을 자동적으로 검색할 수 있다.At this time, the 3D avatar creation device can recognize the pose of the 3D scanning model and automatically search for corresponding points of the 3D scanning model through an algorithm.

이 때, 3차원 아바타 생성 장치는 크게 전역 강체 정합(Global Rigid Registration), 스켈레톤 기반의 포즈 정합(Skeleton based Human Pose Registration), 그리고 지역 비강체 정합(Local Non-rigid Registration)의 세 과정 중 적어도 하나 이상을 수행할 수 있다.At this time, the 3D avatar creation device largely uses at least one of three processes: global rigid registration, skeleton-based human pose registration, and local non-rigid registration. You can do more than this.

3차원 아바타 생성 장치는 상기 대응점 정보를 이용하여 상기 탬플릿 아바타 모델의 대응점의 위치와 상기 3차원 스캐닝 모델의 대응점의 위치에 기반하여 상기 3차원 스캐닝 모델의 위치를 이동시키고, 상기 3차원 스캐닝 모델의 방향을 회전시켜 상기 탬플릿 아바타 모델에 정합시킬 수 있다(Global translation, Rotation, Scale).The 3D avatar creation device uses the corresponding point information to move the position of the 3D scanning model based on the position of the corresponding point of the template avatar model and the position of the corresponding point of the 3D scanning model, and The direction can be rotated to match the template avatar model (Global translation, rotation, scale).

이 때, 3차원 아바타 생성 장치는 대응점 정보를 이용하여 3차원 스캔닝 모델을 기준으로 템플릿 아바타 모델의 전체적인 6자유도 Translation과 Rotation 정보 그리고 Scale 정보를 구하여 대략적으로 정합할 수 있다.At this time, the 3D avatar creation device can use the corresponding point information to obtain the overall 6 degrees of freedom translation and rotation information and scale information of the template avatar model based on the 3D scanning model and roughly match them.

3차원 아바타 생성 장치는 상기 대응점 정보와 상기 탬플릿 아바타 모델의 스켈레톤 정보를 이용하여 상기 3차원 아바타 모델의 자세에 상응하도록 상기 탬플릿 아바타 모델의 자세를 변형시킬 수 있다(Skeleton based Human Pose Registration).The 3D avatar creation device can transform the posture of the template avatar model to correspond to the posture of the 3D avatar model using the corresponding point information and the skeleton information of the template avatar model (Skeleton based Human Pose Registration).

3차원 아바타의 미세한 골격 구조 변화를 표현하려면, 스켈레톤의 각 세그먼트의 미세한 Translation, Rotation 변화를 반영해야 한다(Skeleton Translation, Rotation). 또한, 동일한 사람을 부분적으로 여러 번 스캔할 경우, 한 사람의 포즈의 형태가 시간에 따라 달라질 수 있으므로 인체의 포즈 변화에 적응할 수 있는 정합 방법이 필요하다.To express subtle changes in the skeletal structure of a 3D avatar, the subtle translation and rotation changes of each segment of the skeleton must be reflected (Skeleton Translation, Rotation). Additionally, when the same person is partially scanned multiple times, the shape of a person's pose may change over time, so a registration method that can adapt to changes in the human body's pose is needed.

예를 들면, 3차원 아바타 생성 장치는 사용자의 전면부 스캔을 통해 생성된 제1 3차원 스캐닝 모델을 기준으로 변형된 탬플릿 아바타 모델에, 측면부 스캔을 통해 생성된 제2 3차원 스캐닝 모델을 추가적으로 이용하여 아바타를 다시 변형할 때, 서로 포즈가 다른 경우, 스켈레톤 정보를 이용하여 탬플릿 아바타 모델의 자세를 변형시켜 3차원 스캐닝 모델과 정합시킬 수 있다.For example, the 3D avatar creation device additionally uses a template avatar model modified based on the first 3D scanning model generated by scanning the user's front part, and a second 3D scanning model generated by scanning the side part. When transforming the avatar again, if the poses are different, the pose of the template avatar model can be transformed using the skeleton information to match the 3D scanning model.

템플릿 아바타 모델을 기정의된 각 뼈대와 각 절점 사이의 상관관계를 포함할 수 있다.The template avatar model may include the correlation between each predefined skeleton and each node.

즉, 탬플릿 아바타 모델은 리깅이 되어 있어서 뼈대의 자세 변화는 곧 템플릿 아바타의 자세 변화로 반영될 수 있다.In other words, since the template avatar model is rigged, changes in the posture of the skeleton can be reflected as changes in the posture of the template avatar.

이 때, 템플릿 아바타 모델에 사용되는 리깅 기법은 가장 많이 사용하는 Linear Blend Skinning 기법이 사용될 수 있다. 상기 리깅 기법은 각 절점 마다 각 뼈대의 영향도를 의미하는 가중치 값을 정의하고, 각 절점은 각 뼈대의 움직임을 따라 이 가중치 값만큼의 이동 성분을 가지도록 하는 것으로 수학식 1과 같이 수식화 될 수 있다.At this time, the most commonly used rigging technique for the template avatar model is Linear Blend Skinning. The rigging technique defines a weight value that represents the influence of each skeleton at each node, and each node has a movement component equal to this weight value along the movement of each skeleton, which can be expressed as Equation 1. there is.

수학식 1에서, Vi는 템플릿 아바타 모델의 한 절점의 위치이며, Nb는 전체 뼈대 모델의 뼈의 개수, wj 는 뼈대의 가중치 값, T-j는 j번째 뼈대의 강체 변형 행렬을 의미하며, Vj 0는 기준자세에서의 해당 절점의 j번째 뼈대에 대한 지역 좌표를 의미할 수 있다.In Equation 1, V i is the position of one node of the template avatar model, N b is the number of bones in the entire skeleton model, w j is the weight value of the skeleton, and T -j is the rigid body deformation matrix of the jth skeleton. And V j 0 may mean the local coordinates of the jth skeleton of the corresponding node in the reference posture.

이 때, 3차원 아바타 생성 장치는 템플릿 아바타 모델의 자세를 사용자의 3차원 스캐닝 모델과 유사하게 맞추기 위해 뼈대의 관절 각과 관절 좌표의 최적화를 수행할 수 있다.At this time, the 3D avatar creation device may optimize the joint angles and joint coordinates of the skeleton to match the posture of the template avatar model similar to the user's 3D scanning model.

이 때, 3차원 아바타 생성 장치는 수학식 2와 같은 3개의 오차함수의 값의 합을 최소화 시키는 관절의 강체 행렬을 찾아주는 연산을 수행할 수 있다.At this time, the 3D avatar creation device can perform an operation to find the rigid body matrix of the joints that minimizes the sum of the values of the three error functions as shown in Equation 2.

수학식 2에서, Ef는 대응점 간의 거리 오차함수를 나타내며, α는 해당 함수의 가중치를 나타내며, Ed는 템플릿 아바타와 사용자 3차원 스캔 정보와의 거리를 최소화시키기 위한 오차함수이고, β는 그 가중치를 나타내고, 마지막으로 Es는 관절각의 회전 각의 합을 최소화하는 함수이며,γ는 그 가중치를 나타낸 것을 알 수 있다.In Equation 2, E f represents the distance error function between corresponding points, α represents the weight of the function, E d is the error function to minimize the distance between the template avatar and the user's 3D scan information, and β is the It represents the weight, and finally, E s is a function that minimizes the sum of the rotation angles of the joint angles, and γ represents the weight.

템플릿 아바타 모델과 사용자의 3차원 스캐닝 모델 사이의 스켈레톤 거리를 최소화시키기 위한 오차함수 Ed는 수학식 3과 같이 정의할 수 있다.The error function E d to minimize the skeleton distance between the template avatar model and the user's 3D scanning model can be defined as Equation 3.

수학식 3에서, dist() 함수는 현재의 관절의 강체행렬에 의해 변형된 점 skin(Vi)와 사용자의 3차원 스캐닝 모델의 표면 D와의 최소 거리를 계산해주는 함수를 나타내고, Nm 템플릿 아바타 절점의 개수를 나타낸 것을 알 수 있다.In Equation 3, the dist() function represents a function that calculates the minimum distance between the point skin (V i ) deformed by the rigid body matrix of the current joint and the surface D of the user's 3D scanning model, and N m template avatar You can see that the number of nodes is indicated.

이 때, 사용자로부터 입력 받은 3차원 스캐닝 모델의 대응점은 로컬 최소점(local minima)으로 수렴할 수 있기 때문에, 이것을 방지하기 위해, 템플릿 아바타 모델과 사용자의 3차원 스캐닝 모델의 대응점 사이의 오차함수 Ef를 수학식 4와 같이 정의할 수 있다.At this time, since the corresponding points of the 3D scanning model input from the user may converge to the local minima, to prevent this, the error function E between the corresponding points of the template avatar model and the user's 3D scanning model f can be defined as in Equation 4.

수학식 4에서, FM과 FD는 각 템플릿 아바타 M과 사용자 3차원 스캔정보 D에 사용자가 정의해준 대응점이며, FM이 관절의 강체행렬에 의해 변형된 점 skin(FM)이 FD와의 거리가 최소가 되도록 연산될 수 있다. 여기서 Nf는 사용자 정의 대응점 개수를 나타내는 것을 알 수 있다.In Equation 4, F M and F D are the corresponding points defined by the user for each template avatar M and the user's 3D scan information D, and the point skin(F M ) transformed by the rigid body matrix of the joint where F M is F D It can be calculated so that the distance from is minimal. Here, N f represents the number of user-defined corresponding points.

그리고 템플릿 아바타 모델 M의 형태를 유지하기 위한 오차함수로 관절각의 회전을 의미하는 사원수수(quaternion)를 이용하여 수학식 5를 정의할 수 있다.And Equation 5 can be defined using quaternion, which means rotation of the joint angle, as an error function to maintain the shape of the template avatar model M.

수힉식 5에서 Nb는 뼈대의 개수, qi는 관절 i의 회전을 의미하며, 관절각의 회전각의 합을 최소화하는 목적함수를 나타낸 것을 알 수 있다.In Equation 5, Nb is the number of bones, qi is the rotation of joint i, and it can be seen that it represents the objective function of minimizing the sum of the rotation angles of the joint angles.

즉, 3차원 아바타 생성 장치는 상기 탬플릿 아바타 모델과 상기 3차원 스캐닝 모델의 대응점 위치 간의 오차를 최소화 시키기 위한 상기 스켈레톤 정보를 이용하여 상기 탬플릿 아바타 모델의 자세를 변형시킨 대응점과 상기 3차원 스캐닝 모델의 대응점까지의 최소거리를 연산하고, 상기 대응점 간의 최소거리와 상기 탬플릿 아바타 모델의 개별 절점 간의 최소거리에 기반하여 상기 탬플릿 아바타 모델의 자세를 변형시켜 상기 3차원 스캐닝 모델에 정합시킬 수 있다.That is, the 3D avatar creation device uses the skeleton information to minimize the error between the position of the corresponding point of the template avatar model and the 3D scanning model to change the posture of the template avatar model to the corresponding point of the 3D scanning model. The minimum distance to corresponding points may be calculated, and the posture of the template avatar model may be modified to match the 3D scanning model based on the minimum distance between the corresponding points and the minimum distance between individual nodes of the template avatar model.

3차원 아바타 생성 장치는 상기 탬플릿 아바타 모델의 개별 절점의 위치를 어파인 변형 행렬을 통해 조절하여 상기 탬플릿 아바타 모델의 표면과 상기 3차원 스캐닝 모델의 표면 사이의 최소거리를 연산할 수 있다(Affine Transform per Vertex).The 3D avatar creation device can calculate the minimum distance between the surface of the template avatar model and the surface of the 3D scanning model by adjusting the positions of individual nodes of the template avatar model through an Affine transformation matrix (Affine Transform per Vertex).

이 때, 3차원 아바타 생성 장치는 템플릿 아바타 모델 M의 개별 절점의 위치를 어파인 변형(Affine Transformation) 행렬을 통해 조절하여 사용자 3차원 스캔 정보 D와의 거리를 최소화할 수 있다.At this time, the 3D avatar creation device can adjust the positions of individual nodes of the template avatar model M through an Affine Transformation matrix to minimize the distance from the user's 3D scan information D.

이 때, 3차원 아바타 생성 장치는 오차함수를 수학식 6과 같이 정의할 수 있다.At this time, the 3D avatar creation device can define the error function as shown in Equation 6.

수학식 6에서 Ef는 대응점 간의 거리 오차함수를 나타내며, α는 해당 함수의 가중치를 나타내고, Ed는 템플릿 아바타와 사용자 3차원 스캔 정보와의 거리를 최소화시키기 위한 오차함수이고, β는 그 가중치를 나타내고, 마지막으로 Es는 템플릿 아바타의 기본적인 외형을 유지하기 위한 제약 사항을 나타내는 것을 알 수 있다.In Equation 6, E f represents the distance error function between corresponding points, α represents the weight of the function, E d is the error function to minimize the distance between the template avatar and the user's 3D scan information, and β is the weight. , and finally, it can be seen that E s represents constraints to maintain the basic appearance of the template avatar.

이 때, 3차원 아바타 생성 장치는 먼저 템플릿 아바타 모델 M과 사용자의 3차원 스캔닝 모델의 표면 D와의 거리를 최소화시키는 오차함수 Ed를 수학식 7과 같이 정의할 수 있다.At this time, the 3D avatar creation device can first define an error function E d that minimizes the distance between the template avatar model M and the surface D of the user's 3D scanning model, as shown in Equation 7.

수학식 7에서, dist() 함수는 템플릿 아바타의 절점 Vi를 어파인 변형 행렬 Ti에 의해 변형된 점과 사용자 3차원 스캔 정보 표면 D와의 최소 거리를 계산해주는 함수를 나타낸 것을 알 수 있고, Nm 템플릿 아바타 절점의 개수를 나타낸 것을 알 수 있다. 여기서 거리는 삼각형 메쉬와의 가장 가까운 거리를 측점함으로써 이루어질 수 있다.In Equation 7, it can be seen that the dist() function represents a function that calculates the minimum distance between the node V i of the template avatar transformed by the affine transformation matrix T i and the user's 3D scan information surface D, It can be seen that N m represents the number of template avatar nodes. Here, the distance can be determined by measuring the closest distance to the triangle mesh.

이 때, 3차원 아바타 생성 장치는 사용자 입력을 받은 대응점의 오차함수는 수학식 8과 같이 정의할 수 있다.At this time, the 3D avatar creation device can define the error function of the corresponding point receiving the user input as shown in Equation 8.

수학식 8에서 FM과 FD는 각 템플릿 아바타 M과 사용자 3차원 스캔정보 D에 사용자가 정의해준 대응점이며, FM이 Ti 어파인 행렬에 의해 변형된 점과 FD와의 거리가 최소가 되도록 한다. 여기서 Nf는 사용자 정의 대응점 개수를 나타낸 것을 알 수 있다. In Equation 8, F M and F D are corresponding points defined by the user between each template avatar M and the user's 3D scan information D, and the distance between the point where F M is transformed by the T i affine matrix and F D is the minimum. Make it possible. Here, N f indicates the number of user-defined corresponding points.

마지막으로, 3차원 아바타 생성 장치는 템플릿 아바타 모델 M의 형태를 유지하기 위한 제약사항으로 모든 간선(Edge)이 갖고 있는 변환 행렬의 차이가 최소화 되도록 하는 오차함수를 정의할 수 있다.Lastly, the 3D avatar creation device can define an error function that minimizes the difference in the transformation matrices of all edges as a constraint to maintain the shape of the template avatar model M.

만약, 임의의 간선 ei의 두 절점이 비슷한 변형을 이루게 된다면, 두 절점의 변환 행렬의 차는 0 행렬에 수렴할 것이다. 이를 이용해 수학식 9가 정의될 수 있다.If two nodes of an arbitrary edge e i undergo similar transformations, the difference between the transformation matrices of the two nodes will converge to the 0 matrix. Using this, Equation 9 can be defined.

임의의 간선이 가지는 두 절점의 행렬을 Ti, Tj로 나타낸 것을 알 수 있고, 여기서 Ns는 템플릿 아바타 M의 간선 개수를 나타낸 것을 알 수 있다.It can be seen that the matrix of two nodes of an arbitrary edge is expressed as T i and T j , where N s represents the number of edges of the template avatar M.

또한, 3차원 아바타 생성 장치는 전역 강체 정합, 스켈레톤 기반의 포즈 정합, 그리고 지역 비강체 정합의 경우 사용 예에 따라 하나의 단계를 독립적으로, 또는 두 가지 이상의 단계를 혼합하여 사용할 수 있다.Additionally, the 3D avatar creation device may use one step independently or a combination of two or more steps depending on the use case in the case of global rigid body registration, skeleton-based pose matching, and local non-rigid body registration.

예를 들면, 3차원 아바타 생성 장치는 전체적인 템플릿 아바타의 Translation/Rotation/Scale을 미리 3차원 스캔 정보와 맞춰 놓은 경우라면 전역 강체 정합을 실시하지 않고, 스켈레톤 기반의 포즈 정합과 지역 비강체 정합으로도 탬플릿 아바타 모델과 3차원 스캐닝 모델을 정합시킬 수 있다.For example, if the 3D avatar creation device matches the translation/rotation/scale of the overall template avatar with the 3D scan information in advance, it does not perform global rigid body registration, but also uses skeleton-based pose matching and local non-rigid body registration. The template avatar model and the 3D scanning model can be matched.

또한, 3차원 스캔닝 모델과 템플릿 아바타 모델의 자세가 같은 경우에는 단계(S220)는 스켈레톤 기반의 포즈 정합을 실시하지 않고, 지역 비강체 정합만 실시할 수도 있다.Additionally, when the poses of the 3D scanning model and the template avatar model are the same, step S220 may not perform skeleton-based pose matching but only local non-rigid body matching.

또한, 3차원 아바타 생성 장치는 사용자에 의해 적절히 사용 예에 맞춰서 정합 기능을 선택 받은 정합 기능만을 수행할 수 도 있다.Additionally, the 3D avatar creation device may only perform the matching function for which the matching function has been appropriately selected by the user according to the usage example.

또한, 3차원 아바타 생성 장치는 상기 3차원 스캐닝 모델과 상기 탬플릿 아바타 모델을 정합한 결과에 기반하여 3차원 아바타(User Avatar)를 생성할 수 있다.Additionally, the 3D avatar creation device may generate a 3D avatar (User Avatar) based on a result of matching the 3D scanning model and the template avatar model.

이 때, 3차원 아바타는 사용자의 체형을 반영하여 리깅 정보와 버텍스 웨이트 정보가 반영되어 있는 정제되고 애니메이션이 가능한 아바타에 상응할 수 있다.At this time, the 3D avatar may correspond to a refined, animation-capable avatar in which rigging information and vertex weight information are reflected by reflecting the user's body shape.

이 때, 3차원 아바타 생성 장치는 생성된 3차원 아바타를 이용하여 운동 처방 애니메이션(Animation)을 사용자에게 보여줄 수 있고, 게임 등에서 사용자의 캐릭터(Motion Information)로 사용할 수도 있다(Animation Module).At this time, the 3D avatar creation device can display exercise prescription animations to the user using the generated 3D avatar, and can also be used as the user's character (motion information) in games, etc. (Animation Module).

이 때, 3차원 아바타는 3차원 서피스 정보와 스켈레톤 정보를 이용하여 사용자의 체형 정보를 제공할 수 있다(Body Measurement Module). 예를 들면, 머리둘레, 가슴둘레 등의 둘레 정보를 3차원 아바타의 스켈레톤 정보에 정의된 위치와 스켈레톤 방향을 법선으로 하는 평면 정보를 통해 구하거나, 스켈레톤의 비율을 이용하여 팔-다리 비율, 허리-엉덩이 비율 등을 구할 수 있고, 버텍스 정보를 이용해 사용자 아바타의 부피 정보 등을 제공할 수 있다. 이 때, 3차원 아바타의 체형 정보는 3차원 아바타의 스켈레톤 정보를 기반으로 자동적으로 구해질 수 있으므로, 사용자 별 체형 정보의 일관성을 유지할 수 있고, 사용자의 히스토리에 따른 비교에도 용이하게 활용할 수 있다(Body Shape Information).At this time, the 3D avatar can provide the user's body shape information using 3D surface information and skeleton information (Body Measurement Module). For example, circumference information such as head circumference and chest circumference can be obtained through the position defined in the 3D avatar's skeleton information and plane information with the skeleton direction as the normal, or the arm-leg ratio and waist can be obtained using the skeleton's ratio. -You can obtain the hip ratio, etc., and use vertex information to provide volume information of the user's avatar. At this time, the body shape information of the 3D avatar can be automatically obtained based on the skeleton information of the 3D avatar, so body shape information for each user can be consistent and can be easily used for comparison according to the user's history ( Body Shape Information).

이 때, 3차원 아바타 생성 장치는 정합되지 않은 인체의 부분 3차원 스캐닝 모델에도 점진적으로 사용자 체형 반영이 가능한 3차원 아바타 생성할 수 있다.At this time, the 3D avatar creation device can generate a 3D avatar that can gradually reflect the user's body shape even in a 3D scanning model of a mismatched human body part.

이 때, 3차원 아바타 생성 장치는 전체적으로(Entirely) 3차원 스캔이 불가능한 상황에서도, 인체의 부분 스캔 결과를 기반으로 사용자의 일부 체형이 반영된 아바타를 생성할 수 있다.At this time, the 3D avatar creation device can generate an avatar that reflects a part of the user's body shape based on the partial scan results of the human body even in situations where 3D scanning as a whole is not possible.

이 때, 3차원 아바타 생성 장치는 추가적인 인체 부분 스캔 결과를 기반으로 아바타 변형이 가능하여 점진적으로 사용자의 체형 반영을 개선시킬 수 있다.At this time, the 3D avatar creation device can transform the avatar based on the scan results of additional human body parts, thereby gradually improving the reflection of the user's body shape.

이 때, 3차원 아바타 생성 장치는 정제된 메쉬 기반의 애니메이션 가능한 아바타를 생성할 수 있다.At this time, the 3D avatar creation device can generate a refined mesh-based avatar that can be animated.

이 때, 3차원 아바타 생성 장치는 불완전한 인체 3차원 스캔 결과에도 불구하고 애니메이션 가능한 사용자 체형 반영 3차원 아바타를 생성할 수 있다.At this time, the 3D avatar creation device can generate a 3D avatar reflecting the user's body type that can be animated despite the incomplete 3D scan results of the human body.

이 때, 3차원 아바타 생성 장치는 저가 (Consumer-level) 깊이 센서 또는 영상 센서의 노이즈(Noise), 구멍(Hole), 또는 3차원 스캔 알고리즘의 한계로 인한 3차원 스캔 결과의 불완전성(Incompleteness) 극복하고 3차원 아바타를 생성할 수 있다.At this time, the 3D avatar creation device is a low-cost (consumer-level) depth sensor or image sensor that has noise, holes, or incompleteness of the 3D scan result due to limitations of the 3D scan algorithm. You can overcome this and create a 3D avatar.

이 때, 3차원 아바타 생성 장치는 불완전한 3차원 스캔 결과에도 애니메이션을 통해 동작이 가능하고 정제된 메쉬 기반의 사용자 체형 반영 3차원 아바타를 생성할 수 있다.At this time, the 3D avatar creation device can operate through animation even with incomplete 3D scan results and can generate a refined mesh-based 3D avatar that reflects the user's body type.

이 때, 3차원 아바타 생성 장치는 결과물인 사용자의 3차원 체형이 반영된 아바타를 이용하여, 스켈레톤 기반의 사용자 별 일관성 있는(consistent) 체형의 부피, 비율, 둘레 정보의 자동 측정할 수 있다.At this time, the 3D avatar creation device can automatically measure the volume, ratio, and circumference information of a consistent skeleton-based body shape for each user using the resulting avatar that reflects the user's 3D body shape.

이 때, 3차원 아바타 생성 장치는 생성된 3차원 아바타의 서피스 메쉬 정보를 이용하여 사용자 체형의 부피를 측정할 수 있다.At this time, the 3D avatar creation device may measure the volume of the user's body shape using surface mesh information of the generated 3D avatar.

이 때, 3차원 아바타 생성 장치는 생성된 3차원 아바타의 스켈레톤 정보와 서피스의 바운딩 박스를 이용하여 인체 비율을 측정할 수 있다.At this time, the 3D avatar creation device can measure the human body proportions using the skeleton information of the generated 3D avatar and the bounding box of the surface.

이 때, 3차원 아바타 생성 장치는 생성된 3차원 아바타의 스켈레톤 위치 정보와 서피스 정보를 이용하여 둘레를 자동 측정할 수 있다.At this time, the 3D avatar creation device can automatically measure the perimeter using the skeleton position information and surface information of the generated 3D avatar.

도 6은 본 발명의 일실시예에 따른 모델 정합 과정을 나타낸 도면이다.Figure 6 is a diagram showing the model matching process according to an embodiment of the present invention.

도 6을 참조하면, 3차원 아바타 생성 장치는 크게 전역 강체 정합(Global Rigid Registration), 스켈레톤 기반의 포즈 정합(Skeleton based Human Pose Registration), 그리고 지역 비강체 정합(Local Non-rigid Registration)의 세 과정 중 적어도 하나 이상을 수행할 수 있다.Referring to Figure 6, the 3D avatar creation device largely consists of three processes: Global Rigid Registration, Skeleton-based Human Pose Registration, and Local Non-rigid Registration. You can do at least one of the following.

3차원 아바타 생성 장치는 상기 대응점 정보를 이용하여 상기 탬플릿 아바타 모델의 대응점의 위치와 상기 3차원 스캐닝 모델의 대응점의 위치에 기반하여 상기 3차원 스캐닝 모델의 위치를 이동시키고, 상기 3차원 스캐닝 모델의 방향을 회전시켜 상기 탬플릿 아바타 모델에 정합시킬 수 있다(Global translation, Rotation, Scale).The 3D avatar creation device uses the corresponding point information to move the position of the 3D scanning model based on the position of the corresponding point of the template avatar model and the position of the corresponding point of the 3D scanning model, and The direction can be rotated to match the template avatar model (Global translation, rotation, scale).

이 때, 3차원 아바타 생성 장치는 대응점 정보를 이용하여 3차원 스캔닝 모델을 기준으로 템플릿 아바타 모델의 전체적인 6자유도 Translation과 Rotation 정보 그리고 Scale 정보를 구하여 대략적으로 정합할 수 있다.At this time, the 3D avatar creation device can use the corresponding point information to obtain the overall 6 degrees of freedom translation and rotation information and scale information of the template avatar model based on the 3D scanning model and roughly match them.

3차원 아바타 생성 장치는 상기 대응점 정보와 상기 탬플릿 아바타 모델의 스켈레톤 정보를 이용하여 상기 3차원 아바타 모델의 자세에 상응하도록 상기 탬플릿 아바타 모델의 자세를 변형시킬 수 있다(Skeleton based Human Pose Registration).The 3D avatar creation device can transform the posture of the template avatar model to correspond to the posture of the 3D avatar model using the corresponding point information and the skeleton information of the template avatar model (Skeleton based Human Pose Registration).

3차원 아바타의 미세한 골격 구조 변화를 표현하려면, 스켈레톤의 각 세그먼트의 미세한 Translation, Rotation 변화를 반영해야 한다(Skeleton Translation, Rotation). 또한, 동일한 사람을 부분적으로 여러 번 스캔할 경우, 한 사람의 포즈의 형태가 시간에 따라 달라질 수 있으므로 인체의 포즈 변화에 적응할 수 있는 정합 방법이 필요하다.To express subtle changes in the skeletal structure of a 3D avatar, the subtle translation and rotation changes of each segment of the skeleton must be reflected (Skeleton Translation, Rotation). Additionally, when the same person is partially scanned multiple times, the shape of a person's pose may change over time, so a registration method that can adapt to changes in the human body's pose is needed.

예를 들면, 3차원 아바타 생성 장치는 사용자의 전면부 스캔을 통해 생성된 제1 3차원 스캐닝 모델을 기준으로 변형된 탬플릿 아바타 모델에, 측면부 스캔을 통해 생성된 제2 3차원 스캐닝 모델을 추가적으로 이용하여 아바타를 다시 변형할 때, 서로 포즈가 다른 경우, 스켈레톤 정보를 이용하여 탬플릿 아바타 모델의 자세를 변형시켜 3차원 스캐닝 모델과 정합시킬 수 있다.For example, the 3D avatar creation device additionally uses a template avatar model modified based on the first 3D scanning model generated by scanning the user's front part, and a second 3D scanning model generated by scanning the side part. When transforming the avatar again, if the poses are different, the pose of the template avatar model can be transformed using the skeleton information to match the 3D scanning model.

템플릿 아바타 모델을 기정의된 각 뼈대와 각 절점 사이의 상관관계를 포함할 수 있다.The template avatar model may include the correlation between each predefined skeleton and each node.

즉, 탬플릿 아바타 모델은 리깅이 되어 있어서 뼈대의 자세 변화는 곧 템플릿 아바타의 자세 변화로 반영될 수 있다.In other words, since the template avatar model is rigged, changes in the posture of the skeleton can be reflected as changes in the posture of the template avatar.

이 때, 템플릿 아바타 모델에 사용되는 리깅 기법은 가장 많이 사용하는 Linear Blend Skinning 기법이 사용될 수 있다. 상기 리깅 기법은 각 절점 마다 각 뼈대의 영향도를 의미하는 가중치 값을 정의하고, 각 절점은 각 뼈대의 움직임을 따라 이 가중치 값만큼의 이동 성분을 가지도록 하는 것으로 수학식 1과 같이 수식화 될 수 있다.At this time, the most commonly used rigging technique for the template avatar model is Linear Blend Skinning. The rigging technique defines a weight value that represents the influence of each skeleton at each node, and each node has a movement component equal to this weight value along the movement of each skeleton, which can be expressed as Equation 1. there is.

수학식 1에서, Vi는 템플릿 아바타 모델의 한 절점의 위치이며, Nb는 전체 뼈대 모델의 뼈의 개수, wj 는 뼈대의 가중치 값, T-j는 j번째 뼈대의 강체 변형 행렬을 의미하며, Vj 0는 기준자세에서의 해당 절점의 j번째 뼈대에 대한 지역 좌표를 의미할 수 있다.In Equation 1, V i is the position of one node of the template avatar model, N b is the number of bones in the entire skeleton model, w j is the weight value of the skeleton, and T -j is the rigid body deformation matrix of the jth skeleton. And V j 0 may mean the local coordinates of the jth skeleton of the corresponding node in the reference posture.

이 때, 3차원 아바타 생성 장치는 템플릿 아바타 모델의 자세를 사용자의 3차원 스캐닝 모델과 유사하게 맞추기 위해 뼈대의 관절 각과 관절 좌표의 최적화를 수행할 수 있다.At this time, the 3D avatar creation device may optimize the joint angles and joint coordinates of the skeleton to make the posture of the template avatar model similar to the user's 3D scanning model.

이 때, 3차원 아바타 생성 장치는 수학식 2와 같은 3개의 오차함수의 값의 합을 최소화 시키는 관절의 강체 행렬을 찾아주는 연산을 수행할 수 있다.At this time, the 3D avatar creation device can perform an operation to find the rigid body matrix of the joints that minimizes the sum of the values of the three error functions as shown in Equation 2.

수학식 2에서, Ef는 대응점 간의 거리 오차함수를 나타내며, α는 해당 함수의 가중치를 나타내며, Ed는 템플릿 아바타와 사용자 3차원 스캔 정보와의 거리를 최소화시키기 위한 오차함수이고, β는 그 가중치를 나타내고, 마지막으로 Es는 관절각의 회전 각의 합을 최소화하는 함수이며,γ는 그 가중치를 나타낸 것을 알 수 있다.In Equation 2, E f represents the distance error function between corresponding points, α represents the weight of the function, E d is the error function to minimize the distance between the template avatar and the user's 3D scan information, and β is the It represents the weight, and finally, E s is a function that minimizes the sum of the rotation angles of the joint angles, and γ represents the weight.

템플릿 아바타 모델과 사용자의 3차원 스캐닝 모델 사이의 스켈레톤 거리를 최소화시키기 위한 오차함수 Ed는 수학식 3과 같이 정의할 수 있다.The error function E d to minimize the skeleton distance between the template avatar model and the user's 3D scanning model can be defined as Equation 3.

수학식 3에서, dist() 함수는 현재의 관절의 강체행렬에 의해 변형된 점 skin(Vi)와 사용자의 3차원 스캐닝 모델의 표면 D와의 최소 거리를 계산해주는 함수를 나타내고, Nm 템플릿 아바타 절점의 개수를 나타낸 것을 알 수 있다.In Equation 3, the dist() function represents a function that calculates the minimum distance between the point skin (V i ) deformed by the rigid body matrix of the current joint and the surface D of the user's 3D scanning model, and N m template avatar You can see that the number of nodes is indicated.

이 때, 사용자로부터 입력 받은 3차원 스캐닝 모델의 대응점은 로컬 최소점(local minima)으로 수렴할 수 있기 때문에, 이것을 방지하기 위해, 템플릿 아바타 모델과 사용자의 3차원 스캐닝 모델의 대응점 사이의 오차함수 Ef를 수학식 4와 같이 정의할 수 있다.At this time, since the corresponding points of the 3D scanning model input from the user may converge to the local minima, to prevent this, the error function E between the corresponding points of the template avatar model and the user's 3D scanning model f can be defined as in Equation 4.

수학식 4에서, FM과 FD는 각 템플릿 아바타 M과 사용자 3차원 스캔정보 D에 사용자가 정의해준 대응점이며, FM이 관절의 강체행렬에 의해 변형된 점 skin(FM)이 FD와의 거리가 최소가 되도록 연산될 수 있다. 여기서 Nf는 사용자 정의 대응점 개수를 나타내는 것을 알 수 있다.In Equation 4, F M and F D are the corresponding points defined by the user for each template avatar M and the user's 3D scan information D, and the point skin(F M ) transformed by the rigid body matrix of the joint where F M is F D It can be calculated so that the distance from is minimal. Here, N f represents the number of user-defined corresponding points.

그리고 템플릿 아바타 모델 M의 형태를 유지하기 위한 오차함수로 관절각의 회전을 의미하는 사원수수(quaternion)를 이용하여 수학식 5를 정의할 수 있다.And Equation 5 can be defined using quaternion, which means rotation of the joint angle, as an error function to maintain the shape of the template avatar model M.

수힉식 5에서 Nb는 뼈대의 개수, qi는 관절 i의 회전을 의미하며, 관절각의 회전각의 합을 최소화하는 목적함수를 나타낸 것을 알 수 있다.In Equation 5, Nb is the number of bones, qi is the rotation of joint i, and it can be seen that it represents the objective function of minimizing the sum of the rotation angles of the joint angles.

즉, 3차원 아바타 생성 장치는 상기 탬플릿 아바타 모델과 상기 3차원 스캐닝 모델의 대응점 위치 간의 오차를 최소화 시키기 위한 상기 스켈레톤 정보를 이용하여 상기 탬플릿 아바타 모델의 자세를 변형시킨 대응점과 상기 3차원 스캐닝 모델의 대응점까지의 최소거리를 연산하고, 상기 대응점 간의 최소거리와 상기 탬플릿 아바타 모델의 개별 절점 간의 최소거리에 기반하여 상기 탬플릿 아바타 모델의 자세를 변형시켜 상기 3차원 스캐닝 모델에 정합시킬 수 있다.That is, the 3D avatar creation device uses the skeleton information to minimize the error between the position of the corresponding point of the template avatar model and the 3D scanning model to change the posture of the template avatar model to the corresponding point of the 3D scanning model. The minimum distance to corresponding points may be calculated, and the posture of the template avatar model may be modified to match the 3D scanning model based on the minimum distance between the corresponding points and the minimum distance between individual nodes of the template avatar model.

3차원 아바타 생성 장치는 상기 탬플릿 아바타 모델의 개별 절점의 위치를 어파인 변형 행렬을 통해 조절하여 상기 탬플릿 아바타 모델의 표면과 상기 3차원 스캐닝 모델의 표면 사이의 최소거리를 연산할 수 있다(Affine Transform per Vertex).The 3D avatar creation device can calculate the minimum distance between the surface of the template avatar model and the surface of the 3D scanning model by adjusting the positions of individual nodes of the template avatar model through an Affine transformation matrix (Affine Transform per Vertex).

이 때, 3차원 아바타 생성 장치는 템플릿 아바타 모델 M의 개별 절점의 위치를 어파인 변형(Affine Transformation) 행렬을 통해 조절하여 사용자 3차원 스캔 정보 D와의 거리를 최소화할 수 있다.At this time, the 3D avatar creation device can adjust the positions of individual nodes of the template avatar model M through an Affine Transformation matrix to minimize the distance from the user's 3D scan information D.

이 때, 3차원 아바타 생성 장치는 오차함수를 수학식 6과 같이 정의할 수 있다.At this time, the 3D avatar creation device can define the error function as shown in Equation 6.

수학식 6에서 Ef는 대응점 간의 거리 오차함수를 나타내며, α는 해당 함수의 가중치를 나타내고, Ed는 템플릿 아바타와 사용자 3차원 스캔 정보와의 거리를 최소화시키기 위한 오차함수이고, β는 그 가중치를 나타내고, 마지막으로 Es는 템플릿 아바타의 기본적인 외형을 유지하기 위한 제약 사항을 나타내는 것을 알 수 있다.In Equation 6, E f represents the distance error function between corresponding points, α represents the weight of the function, E d is the error function to minimize the distance between the template avatar and the user's 3D scan information, and β is the weight. , and finally, it can be seen that E s represents constraints to maintain the basic appearance of the template avatar.

이 때, 3차원 아바타 생성 장치는 먼저 템플릿 아바타 모델 M과 사용자의 3차원 스캔닝 모델의 표면 D와의 거리를 최소화시키는 오차함수 Ed를 수학식 7과 같이 정의할 수 있다.At this time, the 3D avatar creation device can first define an error function E d that minimizes the distance between the template avatar model M and the surface D of the user's 3D scanning model, as shown in Equation 7.

수학식 7에서, dist() 함수는 템플릿 아바타의 절점 Vi를 어파인 변형 행렬 Ti에 의해 변형된 점과 사용자 3차원 스캔 정보 표면 D와의 최소 거리를 계산해주는 함수를 나타낸 것을 알 수 있고, Nm 템플릿 아바타 절점의 개수를 나타낸 것을 알 수 있다. 여기서 거리는 삼각형 메쉬와의 가장 가까운 거리를 측점함으로써 이루어질 수 있다.In Equation 7, it can be seen that the dist() function represents a function that calculates the minimum distance between the node V i of the template avatar transformed by the affine transformation matrix T i and the user's 3D scan information surface D, It can be seen that N m represents the number of template avatar nodes. Here, the distance can be determined by measuring the closest distance to the triangle mesh.

이 때, 3차원 아바타 생성 장치는 사용자 입력을 받은 대응점의 오차함수는 수학식 8과 같이 정의할 수 있다.At this time, the 3D avatar creation device can define the error function of the corresponding point receiving the user input as shown in Equation 8.

수학식 8에서 FM과 FD는 각 템플릿 아바타 M과 사용자 3차원 스캔정보 D에 사용자가 정의해준 대응점이며, FM이 Ti 어파인 행렬에 의해 변형된 점과 FD와의 거리가 최소가 되도록 한다. 여기서 Nf는 사용자 정의 대응점 개수를 나타낸 것을 알 수 있다. In Equation 8, F M and F D are corresponding points defined by the user between each template avatar M and the user's 3D scan information D, and the distance between the point where F M is transformed by the T i affine matrix and F D is the minimum. Make it possible. Here, N f indicates the number of user-defined corresponding points.

마지막으로, 3차원 아바타 생성 장치는 템플릿 아바타 모델 M의 형태를 유지하기 위한 제약사항으로 모든 간선(Edge)이 갖고 있는 변환 행렬의 차이가 최소화 되도록 하는 오차함수를 정의할 수 있다.Lastly, the 3D avatar creation device can define an error function that minimizes the difference in the transformation matrices of all edges as a constraint to maintain the shape of the template avatar model M.

만약, 임의의 간선 ei의 두 절점이 비슷한 변형을 이루게 된다면, 두 절점의 변환 행렬의 차는 0 행렬에 수렴할 것이다. 이를 이용해 수학식 9가 정의될 수 있다.If two nodes of an arbitrary edge e i undergo similar transformations, the difference between the transformation matrices of the two nodes will converge to the 0 matrix. Using this, Equation 9 can be defined.

임의의 간선이 가지는 두 절점의 행렬을 Ti, Tj로 나타낸 것을 알 수 있고, 여기서 Ns는 템플릿 아바타 M의 간선 개수를 나타낸 것을 알 수 있다.It can be seen that the matrix of two nodes of an arbitrary edge is expressed as T i and T j , where N s represents the number of edges of the template avatar M.

또한, 3차원 아바타 생성 장치는 전역 강체 정합, 스켈레톤 기반의 포즈 정합, 그리고 지역 비강체 정합의 경우 사용 예에 따라 하나의 단계를 독립적으로, 또는 두 가지 이상의 단계를 혼합하여 사용할 수 있다.Additionally, the 3D avatar creation device may use one step independently or a combination of two or more steps depending on the use case in the case of global rigid body registration, skeleton-based pose matching, and local non-rigid body registration.

예를 들면, 3차원 아바타 생성 장치는 전체적인 템플릿 아바타의 Translation/Rotation/Scale을 미리 3차원 스캔 정보와 맞춰 놓은 경우라면 전역 강체 정합을 실시하지 않고, 스켈레톤 기반의 포즈 정합과 지역 비강체 정합으로도 탬플릿 아바타 모델과 3차원 스캐닝 모델을 정합시킬 수 있다.For example, if the 3D avatar creation device matches the translation/rotation/scale of the overall template avatar with the 3D scan information in advance, it does not perform global rigid body registration, but also uses skeleton-based pose matching and local non-rigid body registration. The template avatar model and the 3D scanning model can be matched.

또한, 3차원 스캔닝 모델과 템플릿 아바타 모델의 자세가 같은 경우에는 단계(S220)는 스켈레톤 기반의 포즈 정합을 실시하지 않고, 지역 비강체 정합만 실시할 수도 있다.Additionally, when the poses of the 3D scanning model and the template avatar model are the same, step S220 may not perform skeleton-based pose matching but only local non-rigid body matching.

또한, 3차원 아바타 생성 장치는 사용자에 의해 적절히 사용 예에 맞춰서 정합 기능을 선택 받은 정합 기능만을 수행할 수 도 있다.Additionally, the 3D avatar creation device may only perform the matching function for which the matching function has been appropriately selected by the user according to the usage example.

도 7 내지 도 10은 본 발명의 일실시예에 따른 3차원 스캐닝 모델과 탬플릿아바타 모델의 모델 정합 과정을 나타낸 도면이다.Figures 7 to 10 are diagrams showing a model matching process between a 3D scanning model and a template avatar model according to an embodiment of the present invention.

도 7 및 도 8을 참조하면, 3차원 모델 생성 장치는 도 7과 같이 기저장된 탬플릿 아바타 모델(10)의 대응점과 입력받은 사용자의 3차원 스캐닝 모델(20)의 대응점 사이의 연결선을 기준으로 3차원 스캐닝 모델(20)의 위치를 이동시키고 방향을 회전시켜서 탬플릿 아바타 모델(10)과 정합시켜서 도 8과 같이 전역 강체 정합을 수행하는 것을 알 수 있다.Referring to Figures 7 and 8, the 3D model generating device generates 3 based on the connection line between the corresponding point of the pre-stored template avatar model 10 and the corresponding point of the input user's 3D scanning model 20, as shown in Figure 7. It can be seen that global rigid body registration is performed as shown in FIG. 8 by moving the position and rotating the direction of the dimensional scanning model 20 and matching it with the template avatar model 10.

도 8 및 도 9를 참조하면, 3차원 아바타 생성 장치는 도 8과 같이 탬플릿 아바타 모델(10)의 자세와 사용자의 3차원 스캐닝 모델(20)의 자세 사이의 오차를 최소화시키기 위하여 스켈레톤 정보를 이용하여 탬플릿 아바타 모델(10)의 자세를 변형시켜서 도 9와 같이 스켈레톤 기반의 포즈 정합을 수행하는 것을 알 수 있다.Referring to FIGS. 8 and 9, the 3D avatar creation device uses skeleton information to minimize the error between the posture of the template avatar model 10 and the posture of the user's 3D scanning model 20, as shown in FIG. 8. Thus, it can be seen that the pose of the template avatar model 10 is transformed and skeleton-based pose matching is performed as shown in FIG. 9.

도 9 및 도 10을 참조하면, 3차원 아바타 생성 장치는 도 9와 같이 탬플릿 아바타 모델(10)의 부피와 사용자의 3차원 스캐닝 모델(20)의 부피 사이의 오차를 최소화 시키기 위하여 탬플릿 아바타 모델(10)의 버텍스 정보를 이용하여 탬플릿 아바타 모델(10)의 대응점과 사용자의 3차원 스캐닝 모델(20)의 대응점의 표면 사이의 거리를 최소화시켜 도 10과 같은 지역 비강체 정합을 수행하는 것을 알 수 있다.Referring to FIGS. 9 and 10 , the 3D avatar creation device creates a template avatar model ( It can be seen that local non-rigid registration as shown in Figure 10 is performed by minimizing the distance between the surface of the corresponding point of the template avatar model 10 and the corresponding point of the user's 3D scanning model 20 using the vertex information in 10). there is.

즉, 도 7 내지 도 10에서 도시된 바와 같이, 3차원 아바타 생성 장치는 전역 강체 정합, 스켈레톤 기반 포즈 정합 및 지역 비강체 정합을 이용하여 탬플릿 아바타 모델(10)을 사용자의 3차원 스캐닝 모델(20)에 정합시키는 것을 알 수 있다.That is, as shown in FIGS. 7 to 10, the 3D avatar creation device converts the template avatar model 10 into the user's 3D scanning model 20 using global rigid body registration, skeleton-based pose registration, and local non-rigid body registration. ) can be seen to match.

도 11은 본 발명의 일실시예에 따른 컴퓨터 시스템을 나타낸 도면이다.Figure 11 is a diagram showing a computer system according to an embodiment of the present invention.

도 11을 참조하면, 본 발명의 일실시예에 따른 3차원 아바타 생성 장치는 컴퓨터로 읽을 수 있는 기록매체와 같은 컴퓨터 시스템(1100)에서 구현될 수 있다. 도 11에 도시된 바와 같이, 컴퓨터 시스템(1100)은 버스(1120)를 통하여 서로 통신하는 하나 이상의 프로세서(1110), 메모리(1130), 사용자 인터페이스 입력 장치(1140), 사용자 인터페이스 출력 장치(1150) 및 스토리지(1160)를 포함할 수 있다. 또한, 컴퓨터 시스템(1100)은 네트워크(1180)에 연결되는 네트워크 인터페이스(1170)를 더 포함할 수 있다. 프로세서(1110)는 중앙 처리 장치 또는 메모리(1130)나 스토리지(1160)에 저장된 프로세싱 인스트럭션들을 실행하는 반도체 장치일 수 있다. 메모리(1130) 및 스토리지(1160)는 다양한 형태의 휘발성 또는 비휘발성 저장 매체일 수 있다. 예를 들어, 메모리는 ROM(1131)이나 RAM(1132)을 포함할 수 있다.Referring to FIG. 11, the 3D avatar creation device according to an embodiment of the present invention may be implemented in a computer system 1100 such as a computer-readable recording medium. As shown in FIG. 11, the computer system 1100 includes one or more processors 1110, a memory 1130, a user interface input device 1140, and a user interface output device 1150 that communicate with each other through a bus 1120. and storage 1160. Additionally, the computer system 1100 may further include a network interface 1170 connected to the network 1180. The processor 1110 may be a central processing unit or a semiconductor device that executes processing instructions stored in the memory 1130 or storage 1160. Memory 1130 and storage 1160 may be various types of volatile or non-volatile storage media. For example, memory may include ROM 1131 or RAM 1132.

또한, 하나 이상의 프로세서(1110)는 하나 이상의 프로그램을 실행시킬 수 있다.Additionally, one or more processors 1110 may execute one or more programs.

이 때, 하나 이상의 프로세서(1110)는 3차원 스캔부(110), 모델 정합부(120) 및 아바타 생성부(130)를 포함할 수 있고, 하나 이상의 프로세서(1110)는 3차원 스캔부(110), 모델 정합부(120) 및 아바타 생성부(130)의 기능을 하나 이상의 프로그램을 통해 수행할 수 있다.At this time, one or more processors 1110 may include a 3D scanning unit 110, a model matching unit 120, and an avatar generating unit 130, and one or more processors 1110 may include a 3D scanning unit 110. ), the functions of the model matching unit 120 and the avatar creating unit 130 can be performed through one or more programs.

이상에서와 같이 본 발명의 일실시예에 따른 3차원 아바타 생성 장치 및 방법은 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.As described above, the 3D avatar generating device and method according to an embodiment of the present invention is not limited to the configuration and method of the embodiments described above, and the embodiments may be modified in various ways. All or part of each embodiment may be configured by selectively combining them.

10: 탬플릿 아바타 모델 20: 3차원 스캐닝 모델
110: 3차원 스캔부 120: 모델 정합부
121: 전역 강체 정합부 122: 스켈레톤 정합부
123: 지역 비강체 정합부 130: 아바타 생성부
1100: 컴퓨터 시스템 1110: 프로세서
1120: 버스 1130: 메모리
1131: 롬 1132: 램
1140: 사용자 인터페이스 입력 장치
1150: 사용자 인터페이스 출력 장치
1160: 스토리지 1170: 네트워크 인터페이스
1180: 네트워크
10: Template avatar model 20: 3D scanning model
110: 3D scanning unit 120: model matching unit
121: Global rigid body matching unit 122: Skeleton matching unit
123: Local non-rigid body matching unit 130: Avatar creation unit
1100: computer system 1110: processor
1120: Bus 1130: Memory
1131: Romans 1132: Ram
1140: User interface input device
1150: User interface output device
1160: Storage 1170: Network Interface
1180: network

Claims (20)

3차원 아바타 생성 장치의 3차원 아바타 생성 방법에 있어서,
이미지 센서를 이용하여 사용자의 인체를 3차원 스캐닝하고, 상기 사용자의 인체를 3차원 스캐닝한 결과를 이용하여 3차원 스캐닝 모델을 생성하는 단계;
상기 3차원 스캐닝 모델과 기저장된 탬플릿 아바타 모델을 정합하는 단계; 및
상기 3차원 스캐닝 모델과 상기 탬플릿 아바타 모델을 정합한 결과에 기반하여 3차원 아바타를 생성하는 단계;
를 포함하고,
상기 3차원 아바타를 생성하는 단계는
상기 3차원 스캐닝 모델이 불완전한 경우, 상기 사용자의 불완전한 일부 체형에 대한 추가적인 인체의 부분 스캔 결과를 기반으로 상기 사용자의 불완전한 일부 체형이 반영된 3차원 아바타를 생성하고,
상기 정합하는 단계는
상기 3차원 스캐닝 모델과 상기 탬플릿 아바타 모델 간의 대응점 정보를 이용하여 상기 3차원 스캐닝 모델과 상기 탬플릿 아바타 모델을 정합하고,
상기 대응점 정보는
상기 3차원 스캐닝 모델과 탬플릿 아바타 모델의 인체 부위에서 기정의된 적어도 하나 이상의 위치를 대응점으로 정의한 정보를 포함하고,
상기 정합하는 단계는
상기 대응점 정보와 상기 탬플릿 아바타 모델의 스켈레톤 정보를 이용하여 상기 3차원 아바타 모델의 자세에 상응하도록 상기 탬플릿 아바타 모델의 자세를 변형시키고,
상기 사용자의 전면부 스캔을 통해 생성된 제1 3차원 스캐닝 모델을 기준으로 변형된 탬플릿 아바타 모델에, 측면부 스캔을 통해 생성된 제2 3차원 스캐닝 모델을 추가적으로 이용하여 상기 탬플릿 아바타 모델의 자세를 변형시킬 때, 서로 포즈가 다른 경우, 상기 스켈레톤 정보를 추가로 이용하여 상기 탬플릿 아바타 모델의 자세를 변형시켜 상기 3차원 스캐닝 모델과 정합시키는 것을 특징으로 하는 3차원 아바타 생성 방법.
In the 3D avatar creation method of the 3D avatar creation device,
3D scanning the user's human body using an image sensor and generating a 3D scanning model using the results of the 3D scanning of the user's body;
Matching the 3D scanning model with a pre-stored template avatar model; and
generating a 3D avatar based on a result of matching the 3D scanning model and the template avatar model;
Including,
The step of creating the 3D avatar is
If the 3D scanning model is incomplete, generating a 3D avatar reflecting the user's incomplete body shape based on an additional partial scan of the human body for the user's incomplete body shape,
The matching step is
Matching the 3D scanning model and the template avatar model using correspondence point information between the 3D scanning model and the template avatar model,
The above corresponding point information is
Contains information defining at least one predefined position in the human body part of the 3D scanning model and the template avatar model as a corresponding point,
The matching step is
Transforming the posture of the template avatar model to correspond to the posture of the 3D avatar model using the corresponding point information and the skeleton information of the template avatar model,
Modifying the posture of the template avatar model by additionally using a second 3D scanning model generated by scanning the side of the template avatar model modified based on the first 3D scanning model generated by scanning the front part of the user. A method of creating a 3D avatar, characterized in that, when the poses are different, the skeleton information is additionally used to modify the pose of the template avatar model and match it with the 3D scanning model.
삭제delete 삭제delete 청구항 1에 있어서,
상기 인체 부위에서 기정의된 적어도 하나 이상의 위치는
인체의 얼굴 부위, 손 부위 및 발 부위 중 적어도 하나 이상의 위치를 포함하는 것을 특징으로 하는 3차원 아바타 생성 방법.
In claim 1,
At least one predefined location in the body part is
A method for creating a three-dimensional avatar, comprising at least one location among the face, hand, and foot of the human body.
청구항 4에 있어서,
상기 정합하는 단계는
상기 인체 부위에서 기정의된 적어도 하나 이상의 위치에 기반하여 상기 3차원 스캐닝 모델의 대응점과 상기 탬플릿 아바타 모델의 대응점을 대응쌍으로 정의하는 것을 특징으로 하는 3차원 아바타 생성 방법.
In claim 4,
The matching step is
A method for creating a 3D avatar, characterized in that defining corresponding points of the 3D scanning model and corresponding points of the template avatar model as a corresponding pair based on at least one predefined position in the human body part.
청구항 1에 있어서,
상기 정합하는 단계는
상기 대응점 정보를 이용하여 상기 탬플릿 아바타 모델의 대응점의 위치와 상기 3차원 스캐닝 모델의 대응점의 위치에 기반하여 상기 3차원 스캐닝 모델의 위치를 이동시키고, 상기 3차원 스캐닝 모델의 방향을 회전시켜 상기 탬플릿 아바타에 강체 변환을 적용하는 것을 특징으로 하는 3차원 아바타 생성 방법.
In claim 1,
The matching step is
Using the corresponding point information, move the position of the 3D scanning model based on the position of the corresponding point of the template avatar model and the position of the corresponding point of the 3D scanning model, and rotate the direction of the 3D scanning model to display the template. A three-dimensional avatar creation method characterized by applying rigid body transformation to the avatar.
청구항 6에 있어서,
상기 정합하는 단계는
3차원 스캐닝 모델과 상기 탬플릿 아바타 모델의 이동, 방향과 스케일을 보정하는 6 자유도(Degree of Freedom) 강체 변환을 적용하는 것을 특징으로 하는 3차원 아바타 생성 방법.
In claim 6,
The matching step is
A 3D avatar creation method characterized by applying a 6-degree-of-freedom rigid body transformation that corrects the movement, direction, and scale of the 3D scanning model and the template avatar model.
삭제delete 청구항 6에 있어서,
상기 정합하는 단계는
상기 탬플릿 아바타와 상기 3차원 스캐닝 모델의 대응점 위치 간의 오차를 최소화 시키기 위한 상기 스켈레톤 정보를 이용하여 상기 탬플릿 아바타의 자세를 변형시킨 대응점과 상기 3차원 스캐닝 모델의 대응점까지의 최소거리를 연산하고, 상기 대응점 간의 최소거리와 상기 탬플릿 아바타 모델의 개별 절점 간의 최소거리에 기반하여 상기 탬플릿 아바타의 자세를 변형시켜 상기 3차원 스캐닝 모델에 정합시키는 것을 특징으로 하는 3차원 아바타 생성 방법
In claim 6,
The matching step is
Calculate the minimum distance between the corresponding point of the modified posture of the template avatar and the corresponding point of the 3D scanning model using the skeleton information to minimize the error between the position of the corresponding point of the template avatar and the 3D scanning model, and A 3D avatar creation method characterized by modifying the posture of the template avatar and matching it to the 3D scanning model based on the minimum distance between corresponding points and the minimum distance between individual nodes of the template avatar model.
청구항 9에 있어서,
상기 정합하는 단계는
상기 탬플릿 아바타 모델의 개별 절점의 위치를 어파인 변형 행렬을 통해 조절하여 상기 탬플릿 아바타 모델의 표면과 상기 3차원 스캐닝 모델의 표면 사이의 최소거리를 연산하는 것을 특징으로 하는 3차원 아바타 생성 방법.
In claim 9,
The matching step is
A method for creating a 3D avatar, characterized in that the minimum distance between the surface of the template avatar model and the surface of the 3D scanning model is calculated by adjusting the positions of individual nodes of the template avatar model through an affine transformation matrix.
하나 이상의 프로세서;
메모리; 및
하나 이상의 프로그램을 포함하고,
상기 하나 이상의 프로그램은 상기 메모리에 저장되고, 상기 하나 이상의 프로세서에 의해 실행되고,
상기 하나 이상의 프로세서는 상기 하나 이상의 프로그램을 실행하여,
이미지 센서를 이용하여 사용자의 인체를 3차원 스캐닝하고, 상기 사용자의 인체를 3차원 스캐닝한 결과를 이용하여 3차원 스캐닝 모델을 생성하고, 상기 3차원 스캐닝 모델과 기저장된 탬플릿 아바타 모델을 정합하고, 상기 3차원 스캐닝 모델과 상기 탬플릿 아바타 모델을 정합한 결과에 기반하여 3차원 아바타를 생성하고,
상기 하나 이상의 프로세서는
상기 3차원 스캐닝 모델이 불완전한 경우, 상기 사용자의 불완전한 일부 체형에 대한 추가적인 인체의 부분 스캔 결과를 기반으로 상기 사용자의 불완전한 일부 체형이 반영된 3차원 아바타를 생성하고,
상기 3차원 스캐닝 모델과 상기 탬플릿 아바타 모델 간의 대응점 정보를 이용하여 상기 3차원 스캐닝 모델과 상기 탬플릿 아바타 모델을 정합하고,
상기 대응점 정보는
상기 3차원 스캐닝 모델과 탬플릿 아바타 모델의 인체 부위에서 기정의된 적어도 하나 이상의 위치를 대응점으로 정의한 정보를 포함하고,
상기 하나 이상의 프로세서는
상기 대응점 정보와 상기 탬플릿 아바타 모델의 스켈레톤 정보를 이용하여 상기 3차원 아바타 모델의 자세에 상응하도록 상기 탬플릿 아바타 모델의 자세를 변형시키고,
상기 사용자의 전면부 스캔을 통해 생성된 제1 3차원 스캐닝 모델을 기준으로 변형된 탬플릿 아바타 모델에, 측면부 스캔을 통해 생성된 제2 3차원 스캐닝 모델을 추가적으로 이용하여 상기 탬플릿 아바타 모델의 자세를 변형시킬 때, 서로 포즈가 다른 경우, 상기 스켈레톤 정보를 추가로 이용하여 상기 탬플릿 아바타 모델의 자세를 변형시켜 상기 3차원 스캐닝 모델과 정합시키는 것을 특징으로 하는 3차원 아바타 생성 장치.
One or more processors;
Memory; and
contains one or more programs,
the one or more programs are stored in the memory and executed by the one or more processors,
The one or more processors execute the one or more programs,
3D scanning the user's body using an image sensor, creating a 3D scanning model using the results of 3D scanning the user's body, matching the 3D scanning model with a pre-stored template avatar model, Generating a 3D avatar based on a result of matching the 3D scanning model and the template avatar model,
The one or more processors
If the 3D scanning model is incomplete, generating a 3D avatar reflecting the user's incomplete body shape based on an additional partial scan of the human body for the user's incomplete body shape,
Matching the 3D scanning model and the template avatar model using correspondence point information between the 3D scanning model and the template avatar model,
The above corresponding point information is
Contains information defining at least one predefined position in the human body part of the 3D scanning model and the template avatar model as a corresponding point,
The one or more processors
Transforming the posture of the template avatar model to correspond to the posture of the 3D avatar model using the corresponding point information and the skeleton information of the template avatar model,
Modifying the posture of the template avatar model by additionally using a second 3D scanning model generated by scanning the side of the template avatar model modified based on the first 3D scanning model generated by scanning the front part of the user. 3D avatar creation device, characterized in that, when the poses are different, the skeleton information is additionally used to modify the posture of the template avatar model and match it with the 3D scanning model.
삭제delete 삭제delete 청구항 11에 있어서,
상기 인체 부위에서 기정의된 적어도 하나 이상의 위치는
인체의 얼굴 부위, 손 부위 및 발 부위 중 적어도 하나 이상의 위치를 포함하는 것을 특징으로 하는 3차원 아바타 생성 장치.
In claim 11,
At least one predefined location in the body part is
A three-dimensional avatar creation device comprising at least one of the face, hand, and foot of the human body.
청구항 14에 있어서,
상기 하나 이상의 프로세서는
상기 인체 부위에서 기정의된 적어도 하나 이상의 위치에 기반하여 상기 3차원 스캐닝 모델의 대응점과 상기 탬플릿 아바타 모델의 대응점을 대응쌍으로 정의하는 것을 특징으로 하는 3차원 아바타 생성 장치.
In claim 14,
The one or more processors
A 3D avatar creation device characterized in that the corresponding point of the 3D scanning model and the corresponding point of the template avatar model are defined as a corresponding pair based on at least one predefined position in the human body part.
청구항 11에 있어서,
상기 하나 이상의 프로세서는
상기 대응점 정보를 이용하여 상기 탬플릿 아바타 모델의 대응점의 위치와 상기 3차원 스캐닝 모델의 대응점의 위치에 기반하여 상기 3차원 스캐닝 모델의 위치를 이동시키고, 상기 3차원 스캐닝 모델의 방향을 회전시켜 상기 탬플릿 아바타에 강체 변환을 적용하는 것을 특징으로 하는 3차원 아바타 생성 장치.
In claim 11,
The one or more processors
Using the corresponding point information, move the position of the 3D scanning model based on the position of the corresponding point of the template avatar model and the position of the corresponding point of the 3D scanning model, and rotate the direction of the 3D scanning model to display the template. A three-dimensional avatar creation device characterized by applying rigid body transformation to the avatar.
청구항 16에 있어서,
상기 하나 이상의 프로세서는
3차원 스캐닝 모델과 상기 탬플릿 아바타 모델의 이동, 방향과 스케일을 보정하는 6 자유도(Degree of Freedom) 강체 변환을 적용하는 것을 특징으로 하는 3차원 아바타 생성 장치.
In claim 16,
The one or more processors
A 3D avatar creation device characterized by applying a 6-degree-of-freedom rigid body transformation that corrects the movement, direction, and scale of the 3D scanning model and the template avatar model.
삭제delete 청구항 16에 있어서,
상기 하나 이상의 프로세서는
상기 탬플릿 아바타와 상기 3차원 스캐닝 모델의 대응점 위치 간의 오차를 최소화 시키기 위한 상기 스켈레톤 정보를 이용하여 상기 탬플릿 아바타의 자세를 변형시킨 대응점과 상기 3차원 스캐닝 모델의 대응점까지의 최소거리를 연산하고, 상기 대응점 간의 최소거리와 상기 탬플릿 아바타 모델의 개별 절점 간의 최소거리에 기반하여 상기 탬플릿 아바타의 자세를 변형시켜 상기 3차원 스캐닝 모델에 정합시키는 것을 특징으로 하는 3차원 아바타 생성 장치.
In claim 16,
The one or more processors
Calculate the minimum distance between the corresponding point of the modified posture of the template avatar and the corresponding point of the 3D scanning model using the skeleton information to minimize the error between the position of the corresponding point of the template avatar and the 3D scanning model, and A 3D avatar creation device, characterized in that the posture of the template avatar is modified based on the minimum distance between corresponding points and the minimum distance between individual nodes of the template avatar model and matched to the 3D scanning model.
청구항 19에 있어서,
상기 하나 이상의 프로세서는
상기 탬플릿 아바타 모델의 개별 절점의 위치를 어파인 변형 행렬을 통해 조절하여 상기 탬플릿 아바타 모델의 표면과 상기 3차원 스캐닝 모델의 표면 사이의 최소거리를 연산하는 것을 특징으로 하는 3차원 아바타 생성 장치.
In claim 19,
The one or more processors
A 3D avatar creation device, characterized in that the minimum distance between the surface of the template avatar model and the surface of the 3D scanning model is calculated by adjusting the positions of individual nodes of the template avatar model through an affine transformation matrix.
KR1020190031994A 2018-11-21 2019-03-20 Apparatus and method for generating 3d avatar KR102655987B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/563,517 US10984609B2 (en) 2018-11-21 2019-09-06 Apparatus and method for generating 3D avatar

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20180144533 2018-11-21
KR1020180144533 2018-11-21

Publications (2)

Publication Number Publication Date
KR20200060196A KR20200060196A (en) 2020-05-29
KR102655987B1 true KR102655987B1 (en) 2024-04-11

Family

ID=70912096

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190031994A KR102655987B1 (en) 2018-11-21 2019-03-20 Apparatus and method for generating 3d avatar

Country Status (1)

Country Link
KR (1) KR102655987B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102438488B1 (en) * 2022-03-02 2022-09-01 최성 3d avatar creation apparatus and method based on 3d markerless motion capture
JP2024020996A (en) 2022-08-02 2024-02-15 株式会社ハーモニック・ドライブ・システムズ Wave gear device

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150213646A1 (en) * 2014-01-28 2015-07-30 Siemens Aktiengesellschaft Method and System for Constructing Personalized Avatars Using a Parameterized Deformable Mesh

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NZ631213A (en) * 2014-05-13 2016-03-31 Mport Pty Ltd Frameworks and methodologies for enabling provision of computer implement functionalities via centralized management of data derived from three dimensional body scans
KR101698133B1 (en) * 2015-06-15 2017-01-19 한양대학교 산학협력단 Customized human body modeling apparatus and method
KR20180069786A (en) * 2015-08-14 2018-06-25 미테일 리미티드 Method and system for generating an image file of a 3D garment model for a 3D body model

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150213646A1 (en) * 2014-01-28 2015-07-30 Siemens Aktiengesellschaft Method and System for Constructing Personalized Avatars Using a Parameterized Deformable Mesh

Also Published As

Publication number Publication date
KR20200060196A (en) 2020-05-29

Similar Documents

Publication Publication Date Title
US10102639B2 (en) Building a three-dimensional composite scene
JP4473754B2 (en) Virtual fitting device
KR101707707B1 (en) Method for fiiting virtual items using human body model and system for providing fitting service of virtual items
US10867453B2 (en) Method and system for generating an image file of a 3D garment model on a 3D body model
US10796480B2 (en) Methods of generating personalized 3D head models or 3D body models
US10984609B2 (en) Apparatus and method for generating 3D avatar
US10133171B2 (en) Augmenting physical appearance using illumination
US20180197331A1 (en) Method and system for generating an image file of a 3d garment model on a 3d body model
Starck et al. Model-based multiple view reconstruction of people
JP4284664B2 (en) Three-dimensional shape estimation system and image generation system
JP2002133446A (en) Face image processing method and system
JP2011521357A (en) System, method and apparatus for motion capture using video images
JP2013235537A (en) Image creation device, image creation program and recording medium
US20220067967A1 (en) Methods and Systems for Intra-Capture Camera Calibration
KR102655987B1 (en) Apparatus and method for generating 3d avatar
Plankers et al. Automated body modeling from video sequences
JP2018195996A (en) Image projection apparatus, image projection method, and image projection program
Straka et al. Rapid skin: estimating the 3D human pose and shape in real-time
Mattos et al. 3D linear facial animation based on real data
CN115471632A (en) Real human body model reconstruction method, device, equipment and medium based on 3D scanning
JP2739447B2 (en) 3D image generator capable of expressing wrinkles
JP4623320B2 (en) Three-dimensional shape estimation system and image generation system
JP2024512672A (en) Surface texturing from multiple cameras
Taştan et al. Human body reconstruction from limited number of points
CN115601502A (en) Human body model construction method, device, equipment and storage medium

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right