KR20200060196A - 3차원 아바타 생성 장치 및 방법 - Google Patents

3차원 아바타 생성 장치 및 방법 Download PDF

Info

Publication number
KR20200060196A
KR20200060196A KR1020190031994A KR20190031994A KR20200060196A KR 20200060196 A KR20200060196 A KR 20200060196A KR 1020190031994 A KR1020190031994 A KR 1020190031994A KR 20190031994 A KR20190031994 A KR 20190031994A KR 20200060196 A KR20200060196 A KR 20200060196A
Authority
KR
South Korea
Prior art keywords
avatar
model
template
scanning
corresponding point
Prior art date
Application number
KR1020190031994A
Other languages
English (en)
Other versions
KR102655987B1 (ko
Inventor
한병옥
김호원
김기남
김재환
이지형
정유구
박창준
이길행
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to US16/563,517 priority Critical patent/US10984609B2/en
Publication of KR20200060196A publication Critical patent/KR20200060196A/ko
Application granted granted Critical
Publication of KR102655987B1 publication Critical patent/KR102655987B1/ko

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 Vision & Pattern Recognition (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Processing Or Creating Images (AREA)

Abstract

3차원 아바타 생성 장치 및 방법이 개시된다. 본 발명의 일실시예에 따른 3차원 아바타 생성 방법은 3차원 아바타 생성 장치의 3차원 아바타 생성 방법에 있어서, 이미지 센서를 이용하여 사용자의 인체를 3차원 스캐닝하고, 상기 사용자의 인체를 3차원 스캐닝한 결과를 이용하여 3차원 스캐닝 모델을 생성하는 단계; 상기 3차원 스캐닝 모델과 기저장된 탬플릿 아바타 모델을 정합하는 단계 및 상기 3차원 스캐닝 모델과 상기 탬플릿 아바타 모델을 정합한 결과에 기반하여 3차원 아바타를 생성하는 단계를 포함 한다.

Description

3차원 아바타 생성 장치 및 방법 {APPARATUS AND METHOD FOR GENERATING 3D AVATAR}
본 발명은 컴퓨터 그래픽스, 컴퓨터 비전 기술에 관한 것으로, 보다 상세하게는 컴퓨터 3차원 스캔 기술 및 컴퓨터 3차원 정보 모델링 기술에 관한 것이다.
최근 마이크로소프트 키넥트(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차원 체형 정보 기반의 체형 별 운동 추천 기술 등에 적용할 수 있으며, 그 활용성은 점차 증대될 것으로 예상된다.
하지만, 사용자가 3차원 체형 정보를 획득하기 위한 작업은 영상 정보 획득과 달리 간단하지 않다. 사용자의 3차원 스캔 정보를 정확하고 완전하게 얻으려면, 중간 스캔 결과를 사용자가 계속 확인하면서 구멍 또는 빈틈이 없도록 복원 대상을 360도 스캔해야만 한다. 즉, 360도 스캔을 수행하기 위해 턴테이블(Turn Table)을 이용하거나, 스캔 수행자가 스캔 대상을 360도 돌면서 중간 스캔 결과를 확인하며 스캔을 구석구석 수행해야만 하는 데, 이는 일반 사용자의 3차원 체형 정보의 획득에 큰 걸림돌이 되고 있다. 또한 저가 센서의 한계로 인한 3차원 스캔 결과의 구멍 또는 빈틈으로 인해 결과 3차원 서피스 메쉬가 완전하지 않아서, 스캔 후 수작업을 통해 이를 별도로 수정해야 하는 어려움이 생긴다.
한편, 한국공개특허 제 10-2011-0070056 호"사용자 맞춤형 고품질 3D 아바타 생성 방법 및 그 장치"는 다양한 사람의 고품질 데이터를 얻어 DB를 구축하고, 아바타 제작 프로세스를 빠르게 진행되도록 정립하고, 3D 아바타를 만들기 위해 사용자의 최소한의 데이터를 얻어, 이 DB 데이터를 변형하여 사용함으로써 고품질을 유지하면서도 사용자를 닮은 아바타를 빠르게 생성하는 사용자 맞춤형 고품질 3D 아바타 생성 방법 및 장치에 관하여 개시하고 있다.
본 발명은 사용자의 3차원 체형(Body Shape)의 완전성 및 정확성을 확보하여 사용자의 체형이 반영된 3차원 아바타를 생성하는 것을 목적으로 한다.
또한, 본 발명은 불완전한 3차원 스캐닝 모델에 대해서도 사용자 체형이 반영된 애니메이션이 가능한 3차원 아바타를 생성하는 것을 목적으로 한다.
또한, 본 발명은 사용자의 체형 변화에도 일관성 있는 체형 정보를 측정하는 것을 목적으로 한다.
상기한 목적을 달성하기 위한 본 발명의 일실시예에 따른 3차원 아바타 생성 방법은 3차원 아바타 생성 장치의 3차원 아바타 생성 방법에 있어서, 이미지 센서를 이용하여 사용자의 인체를 3차원 스캐닝하고, 상기 사용자의 인체를 3차원 스캐닝한 결과를 이용하여 3차원 스캐닝 모델을 생성하는 단계; 상기 3차원 스캐닝 모델과 기저장된 탬플릿 아바타 모델을 정합하는 단계 및 상기 3차원 스캐닝 모델과 상기 탬플릿 아바타 모델을 정합한 결과에 기반하여 3차원 아바타를 생성하는 단계를 포함한다.
이 때, 상기 정합하는 단계는 상기 3차원 스캐닝 모델과 상기 탬플릿 아바타 모델 간의 대응점 정보를 이용하여 상기 3차원 스캐닝 모델과 상기 탬플릿 아바타 모델을 정합할 수 있다.
이 때, 상기 정합하는 단계는 3차원 스캐닝 모델과 상기 템플릿 아바타 모델의 대략적인 이동(Translation), 방향(Orientation)과 스케일(Scale)을 보정하는 6 자유도(Degree of Freedom) 강체 변환(Rigid Transformation)을 적용할 수 있다.
이 때, 상기 대응점 정보는 상기 3차원 스캐닝 모델과 탬플릿 아바타 모델의 인체 부위에서 기정의된 적어도 하나 이상의 위치를 대응점으로 정의한 정보를 포함할 수 있다.
이 때, 상기 인체 부위에서 기정의된 적어도 하나 이상의 위치는 인체의 얼굴 부위, 손 부위 및 발 부위 중 적어도 하나 이상의 위치를 포함할 수 있다.
이 때, 상기 정합하는 단계는 상기 인체 부위에서 기정의된 적어도 하나 이상의 위치에 기반하여 상기 3차원 스캐닝 모델의 대응점과 상기 탬플릿 아바타 모델의 대응점을 대응쌍으로 정의할 수 있다.
이 때, 상기 정합하는 단계는 상기 대응점 정보를 이용하여 상기 탬플릿 아바타 모델의 대응점의 위치와 상기 3차원 스캐닝 모델의 대응점의 위치에 기반하여 상기 3차원 스캐닝 모델의 위치를 이동시키고, 상기 3차원 스캐닝 모델의 방향을 회전시켜 상기 탬플릿 아바타 모델에 강체 변환을 적용할 수 있다.
이 때, 상기 정합하는 단계는 상기 대응점 정보와 상기 탬플릿 아바타 모델의 스켈레톤 정보를 이용하여 상기 3차원 아바타 모델의 자세에 상응하도록 상기 탬플릿 아바타 모델의 자세를 변형시킬 수 있다.
이 때, 상기 정합하는 단계는 상기 탬플릿 아바타 모델과 상기 3차원 스캐닝 모델의 대응점 위치 간의 오차를 최소화 시키기 위한 상기 스켈레톤 정보를 이용하여 상기 탬플릿 아바타 모델의 자세를 변형시킨 대응점과 상기 3차원 스캐닝 모델의 대응점까지의 최소거리를 연산하고, 상기 대응점 간의 최소거리와 상기 탬플릿 아바타 모델의 개별 절점 간의 최소거리에 기반하여 상기 탬플릿 아바타 모델의 자세를 변형시켜 상기 3차원 스캐닝 모델에 정합시킬 수 있다.
이 때, 상기 정합하는 단계는 상기 탬플릿 아바타 모델의 개별 절점의 위치를 어파인 변형 행렬을 통해 조절하여 상기 탬플릿 아바타 모델의 표면과 상기 3차원 스캐닝 모델의 표면 사이의 최소거리를 연산할 수 있다.
또한, 상기의 목적을 달성하기 위한 본 발명의 일실시예에 따른 3차원 아바타 생성 장치는 하나 이상의 프로세서; 메모리 및 하나 이상의 프로그램을 포함하고, 상기 하나 이상의 프로그램은 상기 메모리에 저장되고, 상기 하나 이상의 프로세서에 의해 실행되고, 상기 하나 이상의 프로세서는 상기 하나 이상의 프로그램을 실행하여, 이미지 센서를 이용하여 사용자의 인체를 3차원 스캐닝하고, 상기 사용자의 인체를 3차원 스캐닝한 결과를 이용하여 3차원 스캐닝 모델을 생성하고, 상기 3차원 스캐닝 모델과 기저장된 탬플릿 아바타 모델을 정합하고, 상기 3차원 스캐닝 모델과 상기 탬플릿 아바타 모델을 정합한 결과에 기반하여 3차원 아바타를 생성할 수 있다.
이 때, 상기 하나 이상의 프로세서는 상기 3차원 스캐닝 모델과 상기 탬플릿 아바타 모델 간의 대응점 정보를 이용하여 상기 3차원 스캐닝 모델과 상기 탬플릿 아바타 모델을 정합할 수 있다.
이 때, 상기 하나 이상의 프로세서는 3차원 스캐닝 모델과 상기 템플릿 아바타 모델의 대략적인 이동(Translation), 방향(Orientation)과 스케일(Scale)을 보정하는 6 자유도(Degree of Freedom) 강체 변환(Rigid Transformation)을 적용할 수 있다.
이 때, 상기 대응점 정보는 상기 3차원 스캐닝 모델과 탬플릿 아바타 모델의 인체 부위에서 기정의된 적어도 하나 이상의 위치를 대응점으로 정의한 정보를 포함할 수 있다.
이 때, 상기 인체 부위에서 기정의된 적어도 하나 이상의 위치는 인체의 얼굴 부위, 손 부위 및 발 부위 중 적어도 하나 이상의 위치를 포함할 수 있다.
이 때, 상기 하나 이상의 프로세서는 상기 인체 부위에서 기정의된 적어도 하나 이상의 위치에 기반하여 상기 3차원 스캐닝 모델의 대응점과 상기 탬플릿 아바타 모델의 대응점을 대응쌍으로 정의할 수 있다.
이 때, 상기 하나 이상의 프로세서는 상기 대응점 정보를 이용하여 상기 탬플릿 아바타 모델의 대응점의 위치와 상기 3차원 스캐닝 모델의 대응점의 위치에 기반하여 상기 3차원 스캐닝 모델의 위치를 이동시키고, 상기 3차원 스캐닝 모델의 방향을 회전시켜 상기 탬플릿 아바타 모델에 강체 변환을 적용할 수 있다.
이 때, 상기 하나 이상의 프로세서는 상기 대응점 정보와 상기 탬플릿 아바타 모델의 스켈레톤 정보를 이용하여 상기 3차원 아바타 모델의 자세에 상응하도록 상기 탬플릿 아바타 모델의 자세를 변형시킬 수 있다.
이 때, 상기 하나 이상의 프로세서는 상기 탬플릿 아바타 모델과 상기 3차원 스캐닝 모델의 대응점 위치 간의 오차를 최소화 시키기 위한 상기 스켈레톤 정보를 이용하여 상기 탬플릿 아바타 모델의 자세를 변형시킨 대응점과 상기 3차원 스캐닝 모델의 대응점까지의 최소거리를 연산하고, 상기 대응점 간의 최소거리와 상기 탬플릿 아바타 모델의 개별 절점 간의 최소거리에 기반하여 상기 탬플릿 아바타 모델의 자세를 변형시켜 상기 3차원 스캐닝 모델에 정합시킬 수 있다.
이 때, 상기 하나 이상의 프로세서는 상기 탬플릿 아바타 모델의 개별 절점의 위치를 어파인 변형 행렬을 통해 조절하여 상기 탬플릿 아바타 모델의 표면과 상기 3차원 스캐닝 모델의 표면 사이의 최소거리를 연산할 수 있다.
본 발명은 사용자의 3차원 체형(Body Shape)의 완전성 및 정확성을 확보하여 사용자의 체형이 반영된 3차원 아바타를 생성할 수 있다.
또한, 본 발명은 불완전한 3차원 스캐닝 모델에 대해서도 사용자 체형이 반영된 애니메이션이 가능한 3차원 아바타를 생성할 수 있다.
또한, 본 발명은 사용자의 체형 변화에도 일관성 있는 체형 정보를 측정할 수 있다.
도 1은 본 발명의 일실시예에 따른 3차원 아바타 생성 장치를 나타낸 블록도이다.
도 2는 도 1에 도시된 모델 정합부의 일 예를 세부적으로 나타낸 블록도이다.
도 3 본 발명의 일실시예에 따른 3차원 아바타 생성 방법을 나타낸 동작흐름도이다.
도 4는 도 3에 도시된 모델 정합 단계의 일 예를 세부적으로 나타낸 동작흐름도이다.
도 5는 본 발명의 일실시예에 따른 3차원 아바타 생성 과정을 나타낸 도면이다.
도 6은 본 발명의 일실시예에 따른 모델 정합 과정을 나타낸 도면이다.
도 7 내지 도 10은 본 발명의 일실시예에 따른 3차원 모델의 모델 정합 과정을 나타낸 도면이다.
도 11은 본 발명의 일실시예에 따른 컴퓨터 시스템을 나타낸 도면이다.
본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일실시예에 따른 3차원 아바타 생성 장치를 나타낸 블록도이다. 도 2는 도 1에 도시된 모델 정합부의 일 예를 세부적으로 나타낸 블록도이다.
도 1을 참조하면, 본 발명의 일실시예에 따른 3차원 아바타 생성 장치는 3차원 스캔부(110), 모델 정합부(120) 및 아바타 생성부(130)를 포함할 수 있다.
3차원 스캔부(110)는 이미지 센서를 이용하여 사용자의 인체를 3차원 스캐닝하고, 상기 사용자의 인체를 3차원 스캐닝한 결과를 이용하여 3차원 스캐닝 모델을 생성할 수 있다.
이 때, 이미지 센서는 깊이 센서 또는 RGB 이미지 센서에 상응할 수 있다.
이 때, 3차원 스캔부(110)는 깊이 영상 또는 컬러 영상을 이용하여 사용자의 인체에 대한 3차원 스캔닝을 수행 할 수 있다.
이 때, 3차원 스캔부(110)는 깊이 영상만을 이용하거나, 컬러 영상만을 이용하거나, 또는 두 가지를 혼용하여 3차원 스캐닝을 수행할 수 있다.
이렇게 생성된 사용자의 3차원 스캐닝 모델은 인체의 부분만을 스캔한 결과일 수도 있고, 360도 구석구석을 스캔한 완전한 결과일 수도 있다. 또한, 3차원 스캐닝 모델의 경우 센서 또는 알고리즘의 한계에 의한 구멍 또는 빈틈이 있을 수 있다.
모델 정합부(120)는 상기 3차원 스캐닝 모델과 기저장된 탬플릿 아바타 모델을 정합할 수 있다.
이 때, 템플릿 아바타 모델은 인체를 표현한 표준 아바타 모델에 상응할 수 있다. 이 때, 탬플릿 아바타 모델은 스켈레톤 정보와 버텍스 웨이트 정보를 포함할 수 있다.
이 때, 모델 정합부(120)는 탬플릿 아바타 모델이 스켈레톤 정보와 버텍스 웨이트 정보를 포함하지 않는 경우, 자동 리깅 알고리즘을 통해 스켈레톤 정보와 버텍스 웨이트 정보를 업데이트 할 수 있다.
이 때, 모델 정합부(120)는 상기 3차원 스캐닝 모델과 상기 탬플릿 아바타 모델 간의 대응점 정보를 이용하여 상기 3차원 스캐닝 모델과 상기 탬플릿 아바타 모델을 정합할 수 있다.
이 때, 모델 정합부(120)는 3차원 스캐닝 모델과 상기 템플릿 아바타 모델의 대략적인 이동(Translation), 방향(Orientation)과 스케일(Scale)을 맞춰주는 6 자유도(Degree of Freedom) 강체 변환(Rigid Transformation)을 적용할 수 있다.
이 때, 상기 대응점 정보는 상기 3차원 스캐닝 모델과 탬플릿 아바타 모델의 인체 부위에서 기정의된 적어도 하나 이상의 위치를 대응점으로 정의한 정보를 포함할 수 있다.
이 때, 상기 인체 부위에서 기정의된 적어도 하나 이상의 위치는 인체의 얼굴 부위, 손 부위 및 발 부위 중 적어도 하나 이상의 위치를 포함할 수 있다.
이 때, 모델 정합부(120)는 상기 인체 부위에서 기정의된 적어도 하나 이상의 위치에 기반하여 상기 3차원 스캐닝 모델의 대응점과 상기 탬플릿 아바타 모델의 대응점을 대응쌍으로 정의할 수 있다.
이 때, 모델 정합부(120)는 3차원 스캐닝 모델의 포즈를 인식하여 알고리즘을 통해 3차원 스캐닝 모델의 대응점을 자동적으로 검색할 수 있다.
이 때, 모델 정합부(120)는 크게 전역 강체 정합(Global Rigid Registration), 스켈레톤 기반의 포즈 정합(Skeleton based Human Pose Registration), 그리고 지역 비강체 정합(Local Non-rigid Registration)의 세 과정 중 적어도 하나 이상을 수행할 수 있다.
도 2를 참조하면, 모델 정합부(120)는 전역 강체 정합부(121), 스켈레톤 정합부(122) 및 지역 비강체 정합부(123)를 포함할 수 있다.
모델 정합부(120)는 사용자의 3차원 스캐닝 모델이 불완전하거나, 센서 또는 알고리즘의 한계에 의해 모델의 일부가 누락 되었어도, 부분적인 정합을 통해 탬플릿 아바타 모델을 변형시킬 수 있으므로, 사용자의 체형을 반영한 3차원 아바타를 생성할 수 있다.
이 때, 모델 정합부(120)는 부분(Partial) 적으로 결핍된 3차원 스캐닝 모델에 대해서, 부분적인 정합을 통해 인체의 전면부를 먼저 정합하고, 전면부가 정합되어 변형된(후면부는 정보 누락으로 변형되지 않은) 템플릿 아바타 모델과 정합시킬 수 있고, 추가적으로 탬플릿 아바타 모델의 후면부를 변형시킬 수 있다.
이 때, 모델 정합부(120)는 부분적인 정합을 통해 점진적으로 탬플릿 아바타 모델을 변형시켜 사용자의 인체를 반영한 3차원 아바타 생성의 정확도 및 완결성을 높일 수 있다.
전역 강체 정합부(121)는 상기 대응점 정보를 이용하여 상기 탬플릿 아바타 모델의 대응점의 위치와 상기 3차원 스캐닝 모델의 대응점의 위치에 기반하여 상기 3차원 스캐닝 모델의 위치를 이동시키고, 상기 3차원 스캐닝 모델의 방향을 회전시켜 상기 탬플릿 아바타 모델에 정합시킬 수 있다.
이 때, 전역 강체 정합부(121)는 대응점 정보를 이용하여 3차원 스캔닝 모델을 기준으로 템플릿 아바타 모델의 전체적인 6자유도 Translation과 Rotation 정보 그리고 Scale 정보를 구하여 대략적으로 정합할 수 있다.
스켈레톤 정합부(122)는 상기 대응점 정보와 상기 탬플릿 아바타 모델의 스켈레톤 정보를 이용하여 상기 3차원 아바타 모델의 자세에 상응하도록 상기 탬플릿 아바타 모델의 자세를 변형시킬 수 있다.
3차원 아바타의 미세한 골격 구조 변화를 표현하려면, 스켈레톤의 각 세그먼트의 미세한 Translation, Rotation 변화를 반영해야 한다. 또한, 동일한 사람을 부분적으로 여러 번 스캔할 경우, 한 사람의 포즈의 형태가 시간에 따라 달라질 수 있으므로 인체의 포즈 변화에 적응할 수 있는 정합 방법이 필요하다.
예를 들면, 스켈레톤 정합부(122)는 사용자의 전면부 스캔을 통해 생성된 제1 3차원 스캐닝 모델을 기준으로 변형된 탬플릿 아바타 모델에, 측면부 스캔을 통해 생성된 제2 3차원 스캐닝 모델을 추가적으로 이용하여 아바타를 다시 변형할 때, 서로 포즈가 다른 경우, 스켈레톤 정보를 이용하여 탬플릿 아바타 모델의 자세를 변형시켜 3차원 스캐닝 모델과 정합시킬 수 있다.
템플릿 아바타 모델을 기정의된 각 뼈대와 각 절점 사이의 상관관계를 포함할 수 있다.
즉, 탬플릿 아바타 모델은 리깅이 되어 있어서 뼈대의 자세 변화는 곧 템플릿 아바타의 자세 변화로 반영될 수 있다.
이 때, 템플릿 아바타 모델에 사용되는 리깅 기법은 가장 많이 사용하는 Linear Blend Skinning 기법이 사용될 수 있다. 상기 리깅 기법은 각 절점 마다 각 뼈대의 영향도를 의미하는 가중치 값을 정의하고, 각 절점은 각 뼈대의 움직임을 따라 이 가중치 값만큼의 이동 성분을 가지도록 하는 것으로 수학식 1과 같이 수식화 될 수 있다.
[수학식 1]
Figure pat00001
수학식 1에서, Vi는 템플릿 아바타 모델의 한 절점의 위치이며, Nb는 전체 뼈대 모델의 뼈의 개수, wj 는 뼈대의 가중치 값, T-j는 j번째 뼈대의 강체 변형 행렬을 의미하며, Vj 0는 기준자세에서의 해당 절점의 j번째 뼈대에 대한 지역 좌표를 의미할 수 있다.
이 때, 스켈레톤 정합부(122)는 템플릿 아바타 모델의 자세를 사용자의 3차원 스캐닝 모델과 유사하게 맞추기 위해 뼈대의 관절 각과 관절 좌표의 최적화를 수행할 수 있다.
이 때, 스켈레톤 정합부(122)는 수학식 2와 같은 3개의 오차함수의 값의 합을 최소화 시키는 관절의 강체 행렬을 찾아주는 연산을 수행할 수 있다.
[수학식 2]
Figure pat00002
수학식 2에서, Ef는 대응점 간의 거리 오차함수를 나타내며, α는 해당 함수의 가중치를 나타내며, Ed는 템플릿 아바타와 사용자 3차원 스캔 정보와의 거리를 최소화시키기 위한 오차함수이고, β는 그 가중치를 나타내고, 마지막으로 Es는 관절각의 회전 각의 합을 최소화하는 함수이며,γ는 그 가중치를 나타낸 것을 알 수 있다.
템플릿 아바타 모델과 사용자의 3차원 스캐닝 모델 사이의 스켈레톤 거리를 최소화시키기 위한 오차함수 Ed는 수학식 3과 같이 정의할 수 있다.
[수학식 3]
Figure pat00003
수학식 3에서, dist() 함수는 현재의 관절의 강체행렬에 의해 변형된 점 skin(Vi)와 사용자의 3차원 스캐닝 모델의 표면 D와의 최소 거리를 계산해주는 함수를 나타내고, Nm 템플릿 아바타 절점의 개수를 나타낸 것을 알 수 있다.
이 때, 사용자로부터 입력 받은 3차원 스캐닝 모델의 대응점은 로컬 최소점(local minima)으로 수렴할 수 있기 때문에, 이것을 방지하기 위해, 템플릿 아바타 모델과 사용자의 3차원 스캐닝 모델의 대응점 사이의 오차함수 Ef를 수학식 4와 같이 정의할 수 있다.
[수학식 4]
Figure pat00004
수학식 4에서, FM과 FD는 각 템플릿 아바타 M과 사용자 3차원 스캔정보 D에 사용자가 정의해준 대응점이며, FM이 관절의 강체행렬에 의해 변형된 점 skin(FM)이 FD와의 거리가 최소가 되도록 연산될 수 있다. 여기서 Nf는 사용자 정의 대응점 개수를 나타내는 것을 알 수 있다.
그리고 템플릿 아바타 모델 M의 형태를 유지하기 위한 오차함수로 관절각의 회전을 의미하는 사원수수(quaternion)를 이용하여 수학식 5를 정의할 수 있다.
[수학식 5]
Figure pat00005
수힉식 5에서 Nb는 뼈대의 개수, qi는 관절 i의 회전을 의미하며, 관절각의 회전각의 합을 최소화하는 목적함수를 나타낸 것을 알 수 있다.
즉, 스켈레톤 정합부(122)는 상기 탬플릿 아바타 모델과 상기 3차원 스캐닝 모델의 대응점 위치 간의 오차를 최소화 시키기 위한 상기 스켈레톤 정보를 이용하여 상기 탬플릿 아바타 모델의 자세를 변형시킨 대응점과 상기 3차원 스캐닝 모델의 대응점까지의 최소거리를 연산하고, 상기 대응점 간의 최소거리와 상기 탬플릿 아바타 모델의 개별 절점 간의 최소거리에 기반하여 상기 탬플릿 아바타 모델의 자세를 변형시켜 상기 3차원 스캐닝 모델에 정합시킬 수 있다.
지역 비강체 정합부(123)는 상기 탬플릿 아바타 모델의 개별 절점의 위치를 어파인 변형 행렬을 통해 조절하여 상기 탬플릿 아바타 모델의 표면과 상기 3차원 스캐닝 모델의 표면 사이의 최소거리를 연산할 수 있다.
이 때, 지역 비강체 정합부(123)는 템플릿 아바타 모델 M의 개별 절점의 위치를 어파인 변형(Affine Transformation) 행렬을 통해 조절하여 사용자 3차원 스캔 정보 D와의 거리를 최소화할 수 있다.
이 때, 지역 비강체 정합부(123)는 오차함수를 수학식 6과 같이 정의할 수 있다.
[수학식 6]
Figure pat00006
수학식 6에서 Ef는 대응점 간의 거리 오차함수를 나타내며, α는 해당 함수의 가중치를 나타내고, Ed는 템플릿 아바타와 사용자 3차원 스캔 정보와의 거리를 최소화시키기 위한 오차함수이고, β는 그 가중치를 나타내고, 마지막으로 Es는 템플릿 아바타의 기본적인 외형을 유지하기 위한 제약 사항을 나타내는 것을 알 수 있다.
이 때, 지역 비강체 정합부(123)는 먼저 템플릿 아바타 모델 M과 사용자의 3차원 스캔닝 모델의 표면 D와의 거리를 최소화시키는 오차함수 Ed를 수학식 7과 같이 정의할 수 있다.
[수학식 7]
Figure pat00007
수학식 7에서, dist() 함수는 템플릿 아바타의 절점 Vi를 어파인 변형 행렬 Ti에 의해 변형된 점과 사용자 3차원 스캔 정보 표면 D와의 최소 거리를 계산해주는 함수를 나타낸 것을 알 수 있고, Nm 템플릿 아바타 절점의 개수를 나타낸 것을 알 수 있다. 여기서 거리는 삼각형 메쉬와의 가장 가까운 거리를 측점함으로써 이루어질 수 있다.
이 때, 지역 비강체 정합부(123)는 사용자 입력을 받은 대응점의 오차함수는 수학식 8과 같이 정의할 수 있다.
[수학식 8]
Figure pat00008
수학식 8에서 FM과 FD는 각 템플릿 아바타 M과 사용자 3차원 스캔정보 D에 사용자가 정의해준 대응점이며, FM이 Ti 어파인 행렬에 의해 변형된 점과 FD와의 거리가 최소가 되도록 한다. 여기서 Nf는 사용자 정의 대응점 개수를 나타낸 것을 알 수 있다.
마지막으로, 지역 비강체 정합부(123)는 템플릿 아바타 모델 M의 형태를 유지하기 위한 제약사항으로 모든 간선(Edge)이 갖고 있는 변환 행렬의 차이가 최소화 되도록 하는 오차함수를 정의할 수 있다.
만약, 임의의 간선 ei의 두 절점이 비슷한 변형을 이루게 된다면, 두 절점의 변환 행렬의 차는 0 행렬에 수렴할 것이다. 이를 이용해 수학식 9가 정의될 수 있다.
[수학식 9]
Figure pat00009
임의의 간선이 가지는 두 절점의 행렬을 Ti, Tj로 나타낸 것을 알 수 있고, 여기서 Ns는 템플릿 아바타 M의 간선 개수를 나타낸 것을 알 수 있다.
모델 정합부(120)는 전역 강체 정합, 스켈레톤 기반의 포즈 정합, 그리고 지역 비강체 정합 모듈의 경우 사용 예에 따라 하나의 모듈 독립적으로, 또는 두 가지 이상의 모듈을 혼합하여 사용할 수 있다.
예를 들면, 모델 정합부(120)는 전체적인 템플릿 아바타의 Translation/Rotation/Scale을 미리 3차원 스캔 정보와 맞춰 놓은 경우라면 전역 강체 정합을 실시하지 않고, 스켈레톤 기반의 포즈 정합과 지역 비강체 정합으로도 탬플릿 아바타 모델과 3차원 스캐닝 모델을 정합시킬 수 있다.
또한, 3차원 스캔닝 모델과 템플릿 아바타 모델의 자세가 같은 경우에는 모델 정합부(120)는 스켈레톤 기반의 포즈 정합을 실시하지 않고, 지역 비강체 정합만 실시할 수도 있다.
또한, 모델 정합부(120)는 사용자에 의해 적절히 사용 예에 맞춰서 정합 기능을 선택 받은 정합 기능만을 수행할 수 도 있다.
아바타 생성부(130)는 상기 3차원 스캐닝 모델과 상기 탬플릿 아바타 모델을 정합한 결과에 기반하여 3차원 아바타를 생성할 수 있다.
이 때, 3차원 아바타는 사용자의 체형을 반영하여 리깅 정보와 버텍스 웨이트 정보가 반영되어 있는 정제되고 애니메이션이 가능한 아바타에 상응할 수 있다.
이 때, 아바타 생성부(130)는 생성된 3차원 아바타를 이용하여 운동 처방 애니메이션을 사용자에게 보여줄 수 있고, 게임 등에서 사용자의 캐릭터로 사용할 수도 있다.
이 때, 3차원 아바타는 3차원 서피스 정보와 스켈레톤 정보를 이용하여 사용자의 체형 정보를 제공할 수 있다. 예를 들면, 머리둘레, 가슴둘레 등의 둘레 정보를 3차원 아바타의 스켈레톤 정보에 정의된 위치와 스켈레톤 방향을 법선으로 하는 평면 정보를 통해 구하거나, 스켈레톤의 비율을 이용하여 팔-다리 비율, 허리-엉덩이 비율 등을 구할 수 있고, 버텍스 정보를 이용해 사용자 아바타의 부피 정보 등을 제공할 수 있다. 이 때, 3차원 아바타의 체형 정보는 3차원 아바타의 스켈레톤 정보를 기반으로 자동적으로 구해질 수 있으므로, 사용자 별 체형 정보의 일관성을 유지할 수 있고, 사용자의 히스토리에 따른 비교에도 용이하게 활용할 수 있다.
이 때, 아바타 생성부(130)는 정합되지 않은 인체의 부분 3차원 스캐닝 모델에도 점진적으로 사용자 체형 반영이 가능한 3차원 아바타 생성할 수 있다.
이 때, 아바타 생성부(130)는 전체적으로(Entirely) 3차원 스캔이 불가능한 상황에서도, 인체의 부분 스캔 결과를 기반으로 사용자의 일부 체형이 반영된 아바타를 생성할 수 있다.
이 때, 아바타 생성부(130)는 추가적인 인체 부분 스캔 결과를 기반으로 아바타 변형이 가능하여 점진적으로 사용자의 체형 반영을 개선시킬 수 있다.
이 때, 아바타 생성부(130)는 정제된 메쉬 기반의 애니메이션 가능한 아바타를 생성할 수 있다.
이 때, 아바타 생성부(130)는 불완전한 인체 3차원 스캔 결과에도 불구하고 애니메이션 가능한 사용자 체형 반영 3차원 아바타를 생성할 수 있다.
이 때, 아바타 생성부(130)는 저가 (Consumer-level) 깊이 센서 또는 영상 센서의 노이즈(Noise), 구멍(Hole), 또는 3차원 스캔 알고리즘의 한계로 인한 3차원 스캔 결과의 불완전성(Incompleteness) 극복하고 3차원 아바타를 생성할 수 있다.
이 때, 아바타 생성부(130)는 불완전한 3차원 스캔 결과에도 애니메이션을 통해 동작이 가능하고 정제된 메쉬 기반의 사용자 체형 반영 3차원 아바타를 생성할 수 있다.
이 때, 아바타 생성부(130)는 결과물인 사용자의 3차원 체형이 반영된 아바타를 이용하여, 스켈레톤 기반의 사용자 별 일관성 있는(consistent) 체형의 부피, 비율, 둘레 정보의 자동 측정할 수 있다.
이 때, 아바타 생성부(130)는 생성된 3차원 아바타의 서피스 메쉬 정보를 이용하여 사용자 체형의 부피를 측정할 수 있다.
이 때, 아바타 생성부(130)는 생성된 3차원 아바타의 스켈레톤 정보와 서피스의 바운딩 박스를 이용하여 인체 비율을 측정할 수 있다.
이 때, 아바타 생성부(130)는 생성된 3차원 아바타의 스켈레톤 위치 정보와 서피스 정보를 이용하여 둘레를 자동 측정할 수 있다.
또한, 본 발명의 일실시예에 따른 3차원 아바타 생성 장치는 하나 이상의 프로세서; 메모리 및 하나 이상의 프로그램을 포함하고, 상기 하나 이상의 프로그램은 상기 메모리에 저장되고, 상기 하나 이상의 프로세서에 의해 실행되고, 상기 하나 이상의 프로세서는 상기 하나 이상의 프로그램을 실행시킬 수 있다.
이 때, 하나 이상의 프로세서는 3차원 스캔부(110), 모델 정합부(120) 및 아바타 생성부(130)를 포함할 수 있고, 하나 이상의 프로세서는 3차원 스캔부(110), 모델 정합부(120) 및 아바타 생성부(130)의 기능을 하나 이상의 프로그램을 통해 실행 시킬 수 있다.
도 3 본 발명의 일실시예에 따른 3차원 아바타 생성 방법을 나타낸 동작흐름도이다. 도 4는 도 3에 도시된 모델 정합 단계의 일 예를 세부적으로 나타낸 동작흐름도이다.
도 3을 참조하면, 본 발명의 일실시예에 따른 3차원 아바타 생성 방법은 먼저 3차원 스캔을 수행할 수 있다(S210).
즉, 단계(S310)는 이미지 센서를 이용하여 사용자의 인체를 3차원 스캐닝하고, 상기 사용자의 인체를 3차원 스캐닝한 결과를 이용하여 3차원 스캐닝 모델을 생성할 수 있다.
이 때, 이미지 센서는 깊이 센서 또는 RGB 이미지 센서에 상응할 수 있다.
이 때, 단계(S310)는 깊이 영상 또는 컬러 영상을 이용하여 사용자의 인체에 대한 3차원 스캔닝을 수행 할 수 있다.
이 때, 단계(S310)는 깊이 영상만을 이용하거나, 컬러 영상만을 이용하거나, 또는 두 가지를 혼용하여 3차원 스캐닝을 수행할 수 있다.
이렇게 생성된 사용자의 3차원 스캐닝 모델은 인체의 부분만을 스캔한 결과일 수도 있고, 360도 구석구석을 스캔한 완전한 결과일 수도 있다. 또한, 3차원 스캐닝 모델의 경우 센서 또는 알고리즘의 한계에 의한 구멍 또는 빈틈이 있을 수 있다.
또한, 본 발명의 일실시예에 따른 3차원 아바타 생성 방법은 모델 정합을 수행할 수 있다(S220).
즉, 단계(S220)는 상기 3차원 스캐닝 모델과 기저장된 탬플릿 아바타 모델을 정합할 수 있다.
이 때, 템플릿 아바타 모델은 인체를 표현한 표준 아바타 모델에 상응할 수 있다. 이 때, 탬플릿 아바타 모델은 스켈레톤 정보와 버텍스 웨이트 정보를 포함할 수 있다.
이 때, 단계(S220)는 탬플릿 아바타 모델이 스켈레톤 정보와 버텍스 웨이트 정보를 포함하지 않는 경우, 자동 리깅 알고리즘을 통해 스켈레톤 정보와 버텍스 웨이트 정보를 업데이트 할 수 있다.
이 때, 단계(S220)는 상기 3차원 스캐닝 모델과 상기 탬플릿 아바타 모델 간의 대응점 정보를 이용하여 상기 3차원 스캐닝 모델과 상기 탬플릿 아바타 모델을 정합할 수 있다.
이 때, 단계(S220)는 3차원 스캐닝 모델과 상기 템플릿 아바타 모델의 대략적인 이동(Translation), 방향(Orientation)과 스케일(Scale)을 보정하는 6 자유도(Degree of Freedom) 강체 변환(Rigid Transformation)을 적용할 수 있다.
이 때, 상기 대응점 정보는 상기 3차원 스캐닝 모델과 탬플릿 아바타 모델의 인체 부위에서 기정의된 적어도 하나 이상의 위치를 대응점으로 정의한 정보를 포함할 수 있다.
이 때, 상기 인체 부위에서 기정의된 적어도 하나 이상의 위치는 인체의 얼굴 부위, 손 부위 및 발 부위 중 적어도 하나 이상의 위치를 포함할 수 있다.
이 때, 단계(S220)는 상기 인체 부위에서 기정의된 적어도 하나 이상의 위치에 기반하여 상기 3차원 스캐닝 모델의 대응점과 상기 탬플릿 아바타 모델의 대응점을 대응쌍으로 정의할 수 있다.
이 때, 단계(S220)는 3차원 스캐닝 모델의 포즈를 인식하여 알고리즘을 통해 3차원 스캐닝 모델의 대응점을 자동적으로 검색할 수 있다.
이 때, 단계(S220)는 크게 전역 강체 정합(Global Rigid Registration), 스켈레톤 기반의 포즈 정합(Skeleton based Human Pose Registration), 그리고 지역 비강체 정합(Local Non-rigid Registration)의 세 과정 중 적어도 하나 이상을 수행할 수 있다.
이 때, 단계(S220)는 사용자의 3차원 스캐닝 모델이 불완전하거나, 센서 또는 알고리즘의 한계에 의해 모델의 일부가 누락 되었어도, 부분적인 정합을 통해 탬플릿 아바타 모델을 변형시킬 수 있으므로, 사용자의 체형을 반영한 3차원 아바타를 생성할 수 있다.
이 때, 단계(S220)는 부분(Partial) 적으로 결핍된 3차원 스캐닝 모델에 대해서, 부분적인 정합을 통해 인체의 전면부를 먼저 정합하고, 전면부가 정합되어 변형된(후면부는 정보 누락으로 변형되지 않은) 템플릿 아바타 모델과 정합시킬 수 있고, 추가적으로 탬플릿 아바타 모델의 후면부를 변형시킬 수 있다.
이 때, 단계(S220)는 부분적인 정합을 통해 점진적으로 탬플릿 아바타 모델을 변형시켜 사용자의 인체를 반영한 3차원 아바타 생성의 정확도 및 완결성을 높일 수 있다.
도 4를 참조하면, 단계(S220)는 전역 강체 정합(S221), 스켈레톤 정합(S222) 및 지역 비강체 정합(S223)을 수행할 수 있다.
단계(S221)는 상기 대응점 정보를 이용하여 상기 탬플릿 아바타 모델의 대응점의 위치와 상기 3차원 스캐닝 모델의 대응점의 위치에 기반하여 상기 3차원 스캐닝 모델의 위치를 이동시키고, 상기 3차원 스캐닝 모델의 방향을 회전시켜 상기 탬플릿 아바타 모델에 정합시킬 수 있다.
이 때, 단계(S221)는 대응점 정보를 이용하여 3차원 스캔닝 모델을 기준으로 템플릿 아바타 모델의 전체적인 6자유도 Translation과 Rotation 정보 그리고 Scale 정보를 구하여 대략적으로 정합할 수 있다.
단계(S222)는 상기 대응점 정보와 상기 탬플릿 아바타 모델의 스켈레톤 정보를 이용하여 상기 3차원 아바타 모델의 자세에 상응하도록 상기 탬플릿 아바타 모델의 자세를 변형시킬 수 있다.
3차원 아바타의 미세한 골격 구조 변화를 표현하려면, 스켈레톤의 각 세그먼트의 미세한 Translation, Rotation 변화를 반영해야 한다. 또한, 동일한 사람을 부분적으로 여러 번 스캔할 경우, 한 사람의 포즈의 형태가 시간에 따라 달라질 수 있으므로 인체의 포즈 변화에 적응할 수 있는 정합 방법이 필요하다.
예를 들면, 단계(S222)는 사용자의 전면부 스캔을 통해 생성된 제1 3차원 스캐닝 모델을 기준으로 변형된 탬플릿 아바타 모델에, 측면부 스캔을 통해 생성된 제2 3차원 스캐닝 모델을 추가적으로 이용하여 아바타를 다시 변형할 때, 서로 포즈가 다른 경우, 스켈레톤 정보를 이용하여 탬플릿 아바타 모델의 자세를 변형시켜 3차원 스캐닝 모델과 정합시킬 수 있다.
템플릿 아바타 모델을 기정의된 각 뼈대와 각 절점 사이의 상관관계를 포함할 수 있다.
즉, 탬플릿 아바타 모델은 리깅이 되어 있어서 뼈대의 자세 변화는 곧 템플릿 아바타의 자세 변화로 반영될 수 있다.
이 때, 템플릿 아바타 모델에 사용되는 리깅 기법은 가장 많이 사용하는 Linear Blend Skinning 기법이 사용될 수 있다. 상기 리깅 기법은 각 절점 마다 각 뼈대의 영향도를 의미하는 가중치 값을 정의하고, 각 절점은 각 뼈대의 움직임을 따라 이 가중치 값만큼의 이동 성분을 가지도록 하는 것으로 수학식 1과 같이 수식화 될 수 있다.
수학식 1에서, Vi는 템플릿 아바타 모델의 한 절점의 위치이며, Nb는 전체 뼈대 모델의 뼈의 개수, wj 는 뼈대의 가중치 값, T-j는 j번째 뼈대의 강체 변형 행렬을 의미하며, Vj 0는 기준자세에서의 해당 절점의 j번째 뼈대에 대한 지역 좌표를 의미할 수 있다.
이 때, 단계(S222)는 템플릿 아바타 모델의 자세를 사용자의 3차원 스캐닝 모델과 유사하게 맞추기 위해 뼈대의 관절 각과 관절 좌표의 최적화를 수행할 수 있다.
이 때, 단계(S222)는 수학식 2와 같은 3개의 오차함수의 값의 합을 최소화 시키는 관절의 강체 행렬을 찾아주는 연산을 수행할 수 있다.
수학식 2에서, Ef는 대응점 간의 거리 오차함수를 나타내며, α는 해당 함수의 가중치를 나타내며, Ed는 템플릿 아바타와 사용자 3차원 스캔 정보와의 거리를 최소화시키기 위한 오차함수이고, β는 그 가중치를 나타내고, 마지막으로 Es는 관절각의 회전 각의 합을 최소화하는 함수이며,γ는 그 가중치를 나타낸 것을 알 수 있다.
템플릿 아바타 모델과 사용자의 3차원 스캐닝 모델 사이의 스켈레톤 거리를 최소화시키기 위한 오차함수 Ed는 수학식 3과 같이 정의할 수 있다.
수학식 3에서, dist() 함수는 현재의 관절의 강체행렬에 의해 변형된 점 skin(Vi)와 사용자의 3차원 스캐닝 모델의 표면 D와의 최소 거리를 계산해주는 함수를 나타내고, Nm 템플릿 아바타 절점의 개수를 나타낸 것을 알 수 있다.
이 때, 사용자로부터 입력 받은 3차원 스캐닝 모델의 대응점은 로컬 최소점(local minima)으로 수렴할 수 있기 때문에, 이것을 방지하기 위해, 템플릿 아바타 모델과 사용자의 3차원 스캐닝 모델의 대응점 사이의 오차함수 Ef를 수학식 4와 같이 정의할 수 있다.
수학식 4에서, FM과 FD는 각 템플릿 아바타 M과 사용자 3차원 스캔정보 D에 사용자가 정의해준 대응점이며, FM이 관절의 강체행렬에 의해 변형된 점 skin(FM)이 FD와의 거리가 최소가 되도록 연산될 수 있다. 여기서 Nf는 사용자 정의 대응점 개수를 나타내는 것을 알 수 있다.
그리고 템플릿 아바타 모델 M의 형태를 유지하기 위한 오차함수로 관절각의 회전을 의미하는 사원수수(quaternion)를 이용하여 수학식 5를 정의할 수 있다.
수힉식 5에서 Nb는 뼈대의 개수, qi는 관절 i의 회전을 의미하며, 관절각의 회전각의 합을 최소화하는 목적함수를 나타낸 것을 알 수 있다.
즉, 단계(S222)는 상기 탬플릿 아바타 모델과 상기 3차원 스캐닝 모델의 대응점 위치 간의 오차를 최소화 시키기 위한 상기 스켈레톤 정보를 이용하여 상기 탬플릿 아바타 모델의 자세를 변형시킨 대응점과 상기 3차원 스캐닝 모델의 대응점까지의 최소거리를 연산하고, 상기 대응점 간의 최소거리와 상기 탬플릿 아바타 모델의 개별 절점 간의 최소거리에 기반하여 상기 탬플릿 아바타 모델의 자세를 변형시켜 상기 3차원 스캐닝 모델에 정합시킬 수 있다.
단계(S223)는 상기 탬플릿 아바타 모델의 개별 절점의 위치를 어파인 변형 행렬을 통해 조절하여 상기 탬플릿 아바타 모델의 표면과 상기 3차원 스캐닝 모델의 표면 사이의 최소거리를 연산할 수 있다.
이 때, 단계(S223)는 템플릿 아바타 모델 M의 개별 절점의 위치를 어파인 변형(Affine Transformation) 행렬을 통해 조절하여 사용자 3차원 스캔 정보 D와의 거리를 최소화할 수 있다.
이 때, 단계(S223)는 오차함수를 수학식 6과 같이 정의할 수 있다.
수학식 6에서 Ef는 대응점 간의 거리 오차함수를 나타내며, α는 해당 함수의 가중치를 나타내고, Ed는 템플릿 아바타와 사용자 3차원 스캔 정보와의 거리를 최소화시키기 위한 오차함수이고, β는 그 가중치를 나타내고, 마지막으로 Es는 템플릿 아바타의 기본적인 외형을 유지하기 위한 제약 사항을 나타내는 것을 알 수 있다.
이 때, 단계(S223)는 먼저 템플릿 아바타 모델 M과 사용자의 3차원 스캔닝 모델의 표면 D와의 거리를 최소화시키는 오차함수 Ed를 수학식 7과 같이 정의할 수 있다.
수학식 7에서, dist() 함수는 템플릿 아바타의 절점 Vi를 어파인 변형 행렬 Ti에 의해 변형된 점과 사용자 3차원 스캔 정보 표면 D와의 최소 거리를 계산해주는 함수를 나타낸 것을 알 수 있고, Nm 템플릿 아바타 절점의 개수를 나타낸 것을 알 수 있다. 여기서 거리는 삼각형 메쉬와의 가장 가까운 거리를 측점함으로써 이루어질 수 있다.
이 때, 단계(S223)는 사용자 입력을 받은 대응점의 오차함수는 수학식 8과 같이 정의할 수 있다.
수학식 8에서 FM과 FD는 각 템플릿 아바타 M과 사용자 3차원 스캔정보 D에 사용자가 정의해준 대응점이며, FM이 Ti 어파인 행렬에 의해 변형된 점과 FD와의 거리가 최소가 되도록 한다. 여기서 Nf는 사용자 정의 대응점 개수를 나타낸 것을 알 수 있다.
마지막으로, 단계(S223)는 템플릿 아바타 모델 M의 형태를 유지하기 위한 제약사항으로 모든 간선(Edge)이 갖고 있는 변환 행렬의 차이가 최소화 되도록 하는 오차함수를 정의할 수 있다.
만약, 임의의 간선 ei의 두 절점이 비슷한 변형을 이루게 된다면, 두 절점의 변환 행렬의 차는 0 행렬에 수렴할 것이다. 이를 이용해 수학식 9가 정의될 수 있다.
임의의 간선이 가지는 두 절점의 행렬을 Ti, Tj로 나타낸 것을 알 수 있고, 여기서 Ns는 템플릿 아바타 M의 간선 개수를 나타낸 것을 알 수 있다.
또한, 단계(S220)는 전역 강체 정합, 스켈레톤 기반의 포즈 정합, 그리고 지역 비강체 정합의 경우 사용 예에 따라 하나의 단계를 독립적으로, 또는 두 가지 이상의 단계를 혼합하여 사용할 수 있다.
예를 들면, 단계(S220)는 전체적인 템플릿 아바타의 Translation/Rotation/Scale을 미리 3차원 스캔 정보와 맞춰 놓은 경우라면 전역 강체 정합을 실시하지 않고, 스켈레톤 기반의 포즈 정합과 지역 비강체 정합으로도 탬플릿 아바타 모델과 3차원 스캐닝 모델을 정합시킬 수 있다.
또한, 3차원 스캔닝 모델과 템플릿 아바타 모델의 자세가 같은 경우에는 단계(S220)는 스켈레톤 기반의 포즈 정합을 실시하지 않고, 지역 비강체 정합만 실시할 수도 있다.
또한, 단계(S220)는 사용자에 의해 적절히 사용 예에 맞춰서 정합 기능을 선택 받은 정합 기능만을 수행할 수 도 있다.
또한, 본 발명의 일실시예에 따른 3차원 아바타 생성 방법은 3차원 아바타를 생성할 수 있다(S230).
즉, 단계(S230)는 상기 3차원 스캐닝 모델과 상기 탬플릿 아바타 모델을 정합한 결과에 기반하여 3차원 아바타를 생성할 수 있다.
이 때, 3차원 아바타는 사용자의 체형을 반영하여 리깅 정보와 버텍스 웨이트 정보가 반영되어 있는 정제되고 애니메이션이 가능한 아바타에 상응할 수 있다.
이 때, 단계(S230)는 생성된 3차원 아바타를 이용하여 운동 처방 애니메이션을 사용자에게 보여줄 수 있고, 게임 등에서 사용자의 캐릭터로 사용할 수도 있다.
이 때, 3차원 아바타는 3차원 서피스 정보와 스켈레톤 정보를 이용하여 사용자의 체형 정보를 제공할 수 있다. 예를 들면, 머리둘레, 가슴둘레 등의 둘레 정보를 3차원 아바타의 스켈레톤 정보에 정의된 위치와 스켈레톤 방향을 법선으로 하는 평면 정보를 통해 구하거나, 스켈레톤의 비율을 이용하여 팔-다리 비율, 허리-엉덩이 비율 등을 구할 수 있고, 버텍스 정보를 이용해 사용자 아바타의 부피 정보 등을 제공할 수 있다. 이 때, 3차원 아바타의 체형 정보는 3차원 아바타의 스켈레톤 정보를 기반으로 자동적으로 구해질 수 있으므로, 사용자 별 체형 정보의 일관성을 유지할 수 있고, 사용자의 히스토리에 따른 비교에도 용이하게 활용할 수 있다.
이 때, 단계(S230)는 정합되지 않은 인체의 부분 3차원 스캐닝 모델에도 점진적으로 사용자 체형 반영이 가능한 3차원 아바타 생성할 수 있다.
이 때, 단계(S230)는 전체적으로(Entirely) 3차원 스캔이 불가능한 상황에서도, 인체의 부분 스캔 결과를 기반으로 사용자의 일부 체형이 반영된 아바타를 생성할 수 있다.
이 때, 단계(S230)는 추가적인 인체 부분 스캔 결과를 기반으로 아바타 변형이 가능하여 점진적으로 사용자의 체형 반영을 개선시킬 수 있다.
이 때, 단계(S230)는 정제된 메쉬 기반의 애니메이션 가능한 아바타를 생성할 수 있다.
이 때, 단계(S230)는 불완전한 인체 3차원 스캔 결과에도 불구하고 애니메이션 가능한 사용자 체형 반영 3차원 아바타를 생성할 수 있다.
이 때, 단계(S230)는 저가 (Consumer-level) 깊이 센서 또는 영상 센서의 노이즈(Noise), 구멍(Hole), 또는 3차원 스캔 알고리즘의 한계로 인한 3차원 스캔 결과의 불완전성(Incompleteness) 극복하고 3차원 아바타를 생성할 수 있다.
이 때, 단계(S230)는 불완전한 3차원 스캔 결과에도 애니메이션을 통해 동작이 가능하고 정제된 메쉬 기반의 사용자 체형 반영 3차원 아바타를 생성할 수 있다.
이 때, 단계(S230)는 결과물인 사용자의 3차원 체형이 반영된 아바타를 이용하여, 스켈레톤 기반의 사용자 별 일관성 있는(consistent) 체형의 부피, 비율, 둘레 정보의 자동 측정할 수 있다.
이 때, 단계(S230)는 생성된 3차원 아바타의 서피스 메쉬 정보를 이용하여 사용자 체형의 부피를 측정할 수 있다.
이 때, 단계(S230)는 생성된 3차원 아바타의 스켈레톤 정보와 서피스의 바운딩 박스를 이용하여 인체 비율을 측정할 수 있다.
이 때, 단계(S230)는 생성된 3차원 아바타의 스켈레톤 위치 정보와 서피스 정보를 이용하여 둘레를 자동 측정할 수 있다.
도 5는 본 발명의 일실시예에 따른 3차원 아바타 생성 과정을 나타낸 도면이다.
도 5를 참조하면, 본 발명의 일실시예에 따른 3차원 아바타 생성 과정은 3차원 아바타 생성 장치가 먼저 3차원 스캔을 수행할 수 있다.
즉, 3차원 아바타 생성 장치는 이미지 센서를 이용하여 사용자의 인체를 3차원 스캐닝하고, 상기 사용자의 인체를 3차원 스캐닝한 결과를 이용하여 3차원 스캐닝 모델을 생성할 수 있다.
이 때, 이미지 센서(3D Body Scanner)는 깊이 센서 또는 RGB 이미지 센서에 상응할 수 있다.
이 때, 3차원 아바타 생성 장치는 깊이 영상 또는 컬러 영상(Depth or RGB image)을 이용하여 사용자의 인체에 대한 3차원 스캔닝을 수행 할 수 있다.
이 때, 3차원 아바타 생성 장치는 깊이 영상만을 이용하거나, 컬러 영상만을 이용하거나, 또는 두 가지를 혼용하여 3차원 스캐닝을 수행할 수 있다.
이렇게 생성된 사용자의 3차원 스캐닝 모델(Source 3D Scan)은 인체의 부분만을 스캔한 결과일 수도 있고, 360도 구석구석을 스캔한 완전한 결과일 수도 있다. 또한, 3차원 스캐닝 모델의 경우 센서 또는 알고리즘의 한계에 의한 구멍 또는 빈틈이 있을 수 있다.
3차원 아바타 생성 장치는 모델 정합부(3D Correspondence Module, Registration Module)를 통해 상기 3차원 스캐닝 모델과 기저장된 탬플릿 아바타 모델(Template Avatar)을 정합할 수 있다(Correspondences, Registration).
이 때, 템플릿 아바타 모델은 인체를 표현한 표준 아바타 모델에 상응할 수 있다. 이 때, 탬플릿 아바타 모델은 스켈레톤 정보와 버텍스 웨이트 정보를 포함할 수 있다.
이 때, 3차원 아바타 생성 장치는 탬플릿 아바타 모델이 스켈레톤 정보와 버텍스 웨이트 정보를 포함하지 않는 경우, 자동 리깅 알고리즘을 통해 스켈레톤 정보와 버텍스 웨이트 정보를 업데이트 할 수 있다.
이 때, 3차원 아바타 생성 장치는 상기 3차원 스캐닝 모델과 상기 탬플릿 아바타 모델 간의 대응점 정보를 이용하여 상기 3차원 스캐닝 모델과 상기 탬플릿 아바타 모델을 정합할 수 있다.
이 때, 3차원 아바타 생성 장치는 3차원 스캐닝 모델과 상기 템플릿 아바타 모델의 대략적인 이동(Translation), 방향(Orientation)과 스케일(Scale)을 보정하는 6 자유도(Degree of Freedom) 강체 변환(Rigid Transformation)을 적용할 수 있다.
이 때, 상기 대응점 정보는 상기 3차원 스캐닝 모델과 탬플릿 아바타 모델의 인체 부위에서 기정의된 적어도 하나 이상의 위치를 대응점으로 정의한 정보를 포함할 수 있다.
이 때, 상기 인체 부위에서 기정의된 적어도 하나 이상의 위치는 인체의 얼굴 부위, 손 부위 및 발 부위 중 적어도 하나 이상의 위치를 포함할 수 있다.
이 때, 3차원 아바타 생성 장치는 상기 인체 부위에서 기정의된 적어도 하나 이상의 위치에 기반하여 상기 3차원 스캐닝 모델의 대응점과 상기 탬플릿 아바타 모델의 대응점을 대응쌍으로 정의할 수 있다.
이 때, 3차원 아바타 생성 장치는 3차원 스캐닝 모델의 포즈를 인식하여 알고리즘을 통해 3차원 스캐닝 모델의 대응점을 자동적으로 검색할 수 있다.
이 때, 3차원 아바타 생성 장치는 크게 전역 강체 정합(Global Rigid Registration), 스켈레톤 기반의 포즈 정합(Skeleton based Human Pose Registration), 그리고 지역 비강체 정합(Local Non-rigid Registration)의 세 과정 중 적어도 하나 이상을 수행할 수 있다.
3차원 아바타 생성 장치는 상기 대응점 정보를 이용하여 상기 탬플릿 아바타 모델의 대응점의 위치와 상기 3차원 스캐닝 모델의 대응점의 위치에 기반하여 상기 3차원 스캐닝 모델의 위치를 이동시키고, 상기 3차원 스캐닝 모델의 방향을 회전시켜 상기 탬플릿 아바타 모델에 정합시킬 수 있다(Global translation, Rotation, Scale).
이 때, 3차원 아바타 생성 장치는 대응점 정보를 이용하여 3차원 스캔닝 모델을 기준으로 템플릿 아바타 모델의 전체적인 6자유도 Translation과 Rotation 정보 그리고 Scale 정보를 구하여 대략적으로 정합할 수 있다.
3차원 아바타 생성 장치는 상기 대응점 정보와 상기 탬플릿 아바타 모델의 스켈레톤 정보를 이용하여 상기 3차원 아바타 모델의 자세에 상응하도록 상기 탬플릿 아바타 모델의 자세를 변형시킬 수 있다(Skeleton based Human Pose Registration).
3차원 아바타의 미세한 골격 구조 변화를 표현하려면, 스켈레톤의 각 세그먼트의 미세한 Translation, Rotation 변화를 반영해야 한다(Skeleton Translation, Rotation). 또한, 동일한 사람을 부분적으로 여러 번 스캔할 경우, 한 사람의 포즈의 형태가 시간에 따라 달라질 수 있으므로 인체의 포즈 변화에 적응할 수 있는 정합 방법이 필요하다.
예를 들면, 3차원 아바타 생성 장치는 사용자의 전면부 스캔을 통해 생성된 제1 3차원 스캐닝 모델을 기준으로 변형된 탬플릿 아바타 모델에, 측면부 스캔을 통해 생성된 제2 3차원 스캐닝 모델을 추가적으로 이용하여 아바타를 다시 변형할 때, 서로 포즈가 다른 경우, 스켈레톤 정보를 이용하여 탬플릿 아바타 모델의 자세를 변형시켜 3차원 스캐닝 모델과 정합시킬 수 있다.
템플릿 아바타 모델을 기정의된 각 뼈대와 각 절점 사이의 상관관계를 포함할 수 있다.
즉, 탬플릿 아바타 모델은 리깅이 되어 있어서 뼈대의 자세 변화는 곧 템플릿 아바타의 자세 변화로 반영될 수 있다.
이 때, 템플릿 아바타 모델에 사용되는 리깅 기법은 가장 많이 사용하는 Linear Blend Skinning 기법이 사용될 수 있다. 상기 리깅 기법은 각 절점 마다 각 뼈대의 영향도를 의미하는 가중치 값을 정의하고, 각 절점은 각 뼈대의 움직임을 따라 이 가중치 값만큼의 이동 성분을 가지도록 하는 것으로 수학식 1과 같이 수식화 될 수 있다.
수학식 1에서, Vi는 템플릿 아바타 모델의 한 절점의 위치이며, Nb는 전체 뼈대 모델의 뼈의 개수, wj 는 뼈대의 가중치 값, T-j는 j번째 뼈대의 강체 변형 행렬을 의미하며, Vj 0는 기준자세에서의 해당 절점의 j번째 뼈대에 대한 지역 좌표를 의미할 수 있다.
이 때, 3차원 아바타 생성 장치는 템플릿 아바타 모델의 자세를 사용자의 3차원 스캐닝 모델과 유사하게 맞추기 위해 뼈대의 관절 각과 관절 좌표의 최적화를 수행할 수 있다.
이 때, 3차원 아바타 생성 장치는 수학식 2와 같은 3개의 오차함수의 값의 합을 최소화 시키는 관절의 강체 행렬을 찾아주는 연산을 수행할 수 있다.
수학식 2에서, Ef는 대응점 간의 거리 오차함수를 나타내며, α는 해당 함수의 가중치를 나타내며, Ed는 템플릿 아바타와 사용자 3차원 스캔 정보와의 거리를 최소화시키기 위한 오차함수이고, β는 그 가중치를 나타내고, 마지막으로 Es는 관절각의 회전 각의 합을 최소화하는 함수이며,γ는 그 가중치를 나타낸 것을 알 수 있다.
템플릿 아바타 모델과 사용자의 3차원 스캐닝 모델 사이의 스켈레톤 거리를 최소화시키기 위한 오차함수 Ed는 수학식 3과 같이 정의할 수 있다.
수학식 3에서, dist() 함수는 현재의 관절의 강체행렬에 의해 변형된 점 skin(Vi)와 사용자의 3차원 스캐닝 모델의 표면 D와의 최소 거리를 계산해주는 함수를 나타내고, Nm 템플릿 아바타 절점의 개수를 나타낸 것을 알 수 있다.
이 때, 사용자로부터 입력 받은 3차원 스캐닝 모델의 대응점은 로컬 최소점(local minima)으로 수렴할 수 있기 때문에, 이것을 방지하기 위해, 템플릿 아바타 모델과 사용자의 3차원 스캐닝 모델의 대응점 사이의 오차함수 Ef를 수학식 4와 같이 정의할 수 있다.
수학식 4에서, FM과 FD는 각 템플릿 아바타 M과 사용자 3차원 스캔정보 D에 사용자가 정의해준 대응점이며, FM이 관절의 강체행렬에 의해 변형된 점 skin(FM)이 FD와의 거리가 최소가 되도록 연산될 수 있다. 여기서 Nf는 사용자 정의 대응점 개수를 나타내는 것을 알 수 있다.
그리고 템플릿 아바타 모델 M의 형태를 유지하기 위한 오차함수로 관절각의 회전을 의미하는 사원수수(quaternion)를 이용하여 수학식 5를 정의할 수 있다.
수힉식 5에서 Nb는 뼈대의 개수, qi는 관절 i의 회전을 의미하며, 관절각의 회전각의 합을 최소화하는 목적함수를 나타낸 것을 알 수 있다.
즉, 3차원 아바타 생성 장치는 상기 탬플릿 아바타 모델과 상기 3차원 스캐닝 모델의 대응점 위치 간의 오차를 최소화 시키기 위한 상기 스켈레톤 정보를 이용하여 상기 탬플릿 아바타 모델의 자세를 변형시킨 대응점과 상기 3차원 스캐닝 모델의 대응점까지의 최소거리를 연산하고, 상기 대응점 간의 최소거리와 상기 탬플릿 아바타 모델의 개별 절점 간의 최소거리에 기반하여 상기 탬플릿 아바타 모델의 자세를 변형시켜 상기 3차원 스캐닝 모델에 정합시킬 수 있다.
3차원 아바타 생성 장치는 상기 탬플릿 아바타 모델의 개별 절점의 위치를 어파인 변형 행렬을 통해 조절하여 상기 탬플릿 아바타 모델의 표면과 상기 3차원 스캐닝 모델의 표면 사이의 최소거리를 연산할 수 있다(Affine Transform per Vertex).
이 때, 3차원 아바타 생성 장치는 템플릿 아바타 모델 M의 개별 절점의 위치를 어파인 변형(Affine Transformation) 행렬을 통해 조절하여 사용자 3차원 스캔 정보 D와의 거리를 최소화할 수 있다.
이 때, 3차원 아바타 생성 장치는 오차함수를 수학식 6과 같이 정의할 수 있다.
수학식 6에서 Ef는 대응점 간의 거리 오차함수를 나타내며, α는 해당 함수의 가중치를 나타내고, Ed는 템플릿 아바타와 사용자 3차원 스캔 정보와의 거리를 최소화시키기 위한 오차함수이고, β는 그 가중치를 나타내고, 마지막으로 Es는 템플릿 아바타의 기본적인 외형을 유지하기 위한 제약 사항을 나타내는 것을 알 수 있다.
이 때, 3차원 아바타 생성 장치는 먼저 템플릿 아바타 모델 M과 사용자의 3차원 스캔닝 모델의 표면 D와의 거리를 최소화시키는 오차함수 Ed를 수학식 7과 같이 정의할 수 있다.
수학식 7에서, dist() 함수는 템플릿 아바타의 절점 Vi를 어파인 변형 행렬 Ti에 의해 변형된 점과 사용자 3차원 스캔 정보 표면 D와의 최소 거리를 계산해주는 함수를 나타낸 것을 알 수 있고, Nm 템플릿 아바타 절점의 개수를 나타낸 것을 알 수 있다. 여기서 거리는 삼각형 메쉬와의 가장 가까운 거리를 측점함으로써 이루어질 수 있다.
이 때, 3차원 아바타 생성 장치는 사용자 입력을 받은 대응점의 오차함수는 수학식 8과 같이 정의할 수 있다.
수학식 8에서 FM과 FD는 각 템플릿 아바타 M과 사용자 3차원 스캔정보 D에 사용자가 정의해준 대응점이며, FM이 Ti 어파인 행렬에 의해 변형된 점과 FD와의 거리가 최소가 되도록 한다. 여기서 Nf는 사용자 정의 대응점 개수를 나타낸 것을 알 수 있다.
마지막으로, 3차원 아바타 생성 장치는 템플릿 아바타 모델 M의 형태를 유지하기 위한 제약사항으로 모든 간선(Edge)이 갖고 있는 변환 행렬의 차이가 최소화 되도록 하는 오차함수를 정의할 수 있다.
만약, 임의의 간선 ei의 두 절점이 비슷한 변형을 이루게 된다면, 두 절점의 변환 행렬의 차는 0 행렬에 수렴할 것이다. 이를 이용해 수학식 9가 정의될 수 있다.
임의의 간선이 가지는 두 절점의 행렬을 Ti, Tj로 나타낸 것을 알 수 있고, 여기서 Ns는 템플릿 아바타 M의 간선 개수를 나타낸 것을 알 수 있다.
또한, 3차원 아바타 생성 장치는 전역 강체 정합, 스켈레톤 기반의 포즈 정합, 그리고 지역 비강체 정합의 경우 사용 예에 따라 하나의 단계를 독립적으로, 또는 두 가지 이상의 단계를 혼합하여 사용할 수 있다.
예를 들면, 3차원 아바타 생성 장치는 전체적인 템플릿 아바타의 Translation/Rotation/Scale을 미리 3차원 스캔 정보와 맞춰 놓은 경우라면 전역 강체 정합을 실시하지 않고, 스켈레톤 기반의 포즈 정합과 지역 비강체 정합으로도 탬플릿 아바타 모델과 3차원 스캐닝 모델을 정합시킬 수 있다.
또한, 3차원 스캔닝 모델과 템플릿 아바타 모델의 자세가 같은 경우에는 단계(S220)는 스켈레톤 기반의 포즈 정합을 실시하지 않고, 지역 비강체 정합만 실시할 수도 있다.
또한, 3차원 아바타 생성 장치는 사용자에 의해 적절히 사용 예에 맞춰서 정합 기능을 선택 받은 정합 기능만을 수행할 수 도 있다.
또한, 3차원 아바타 생성 장치는 상기 3차원 스캐닝 모델과 상기 탬플릿 아바타 모델을 정합한 결과에 기반하여 3차원 아바타(User Avatar)를 생성할 수 있다.
이 때, 3차원 아바타는 사용자의 체형을 반영하여 리깅 정보와 버텍스 웨이트 정보가 반영되어 있는 정제되고 애니메이션이 가능한 아바타에 상응할 수 있다.
이 때, 3차원 아바타 생성 장치는 생성된 3차원 아바타를 이용하여 운동 처방 애니메이션(Animation)을 사용자에게 보여줄 수 있고, 게임 등에서 사용자의 캐릭터(Motion Information)로 사용할 수도 있다(Animation Module).
이 때, 3차원 아바타는 3차원 서피스 정보와 스켈레톤 정보를 이용하여 사용자의 체형 정보를 제공할 수 있다(Body Measurement Module). 예를 들면, 머리둘레, 가슴둘레 등의 둘레 정보를 3차원 아바타의 스켈레톤 정보에 정의된 위치와 스켈레톤 방향을 법선으로 하는 평면 정보를 통해 구하거나, 스켈레톤의 비율을 이용하여 팔-다리 비율, 허리-엉덩이 비율 등을 구할 수 있고, 버텍스 정보를 이용해 사용자 아바타의 부피 정보 등을 제공할 수 있다. 이 때, 3차원 아바타의 체형 정보는 3차원 아바타의 스켈레톤 정보를 기반으로 자동적으로 구해질 수 있으므로, 사용자 별 체형 정보의 일관성을 유지할 수 있고, 사용자의 히스토리에 따른 비교에도 용이하게 활용할 수 있다(Body Shape Information).
이 때, 3차원 아바타 생성 장치는 정합되지 않은 인체의 부분 3차원 스캐닝 모델에도 점진적으로 사용자 체형 반영이 가능한 3차원 아바타 생성할 수 있다.
이 때, 3차원 아바타 생성 장치는 전체적으로(Entirely) 3차원 스캔이 불가능한 상황에서도, 인체의 부분 스캔 결과를 기반으로 사용자의 일부 체형이 반영된 아바타를 생성할 수 있다.
이 때, 3차원 아바타 생성 장치는 추가적인 인체 부분 스캔 결과를 기반으로 아바타 변형이 가능하여 점진적으로 사용자의 체형 반영을 개선시킬 수 있다.
이 때, 3차원 아바타 생성 장치는 정제된 메쉬 기반의 애니메이션 가능한 아바타를 생성할 수 있다.
이 때, 3차원 아바타 생성 장치는 불완전한 인체 3차원 스캔 결과에도 불구하고 애니메이션 가능한 사용자 체형 반영 3차원 아바타를 생성할 수 있다.
이 때, 3차원 아바타 생성 장치는 저가 (Consumer-level) 깊이 센서 또는 영상 센서의 노이즈(Noise), 구멍(Hole), 또는 3차원 스캔 알고리즘의 한계로 인한 3차원 스캔 결과의 불완전성(Incompleteness) 극복하고 3차원 아바타를 생성할 수 있다.
이 때, 3차원 아바타 생성 장치는 불완전한 3차원 스캔 결과에도 애니메이션을 통해 동작이 가능하고 정제된 메쉬 기반의 사용자 체형 반영 3차원 아바타를 생성할 수 있다.
이 때, 3차원 아바타 생성 장치는 결과물인 사용자의 3차원 체형이 반영된 아바타를 이용하여, 스켈레톤 기반의 사용자 별 일관성 있는(consistent) 체형의 부피, 비율, 둘레 정보의 자동 측정할 수 있다.
이 때, 3차원 아바타 생성 장치는 생성된 3차원 아바타의 서피스 메쉬 정보를 이용하여 사용자 체형의 부피를 측정할 수 있다.
이 때, 3차원 아바타 생성 장치는 생성된 3차원 아바타의 스켈레톤 정보와 서피스의 바운딩 박스를 이용하여 인체 비율을 측정할 수 있다.
이 때, 3차원 아바타 생성 장치는 생성된 3차원 아바타의 스켈레톤 위치 정보와 서피스 정보를 이용하여 둘레를 자동 측정할 수 있다.
도 6은 본 발명의 일실시예에 따른 모델 정합 과정을 나타낸 도면이다.
도 6을 참조하면, 3차원 아바타 생성 장치는 크게 전역 강체 정합(Global Rigid Registration), 스켈레톤 기반의 포즈 정합(Skeleton based Human Pose Registration), 그리고 지역 비강체 정합(Local Non-rigid Registration)의 세 과정 중 적어도 하나 이상을 수행할 수 있다.
3차원 아바타 생성 장치는 상기 대응점 정보를 이용하여 상기 탬플릿 아바타 모델의 대응점의 위치와 상기 3차원 스캐닝 모델의 대응점의 위치에 기반하여 상기 3차원 스캐닝 모델의 위치를 이동시키고, 상기 3차원 스캐닝 모델의 방향을 회전시켜 상기 탬플릿 아바타 모델에 정합시킬 수 있다(Global translation, Rotation, Scale).
이 때, 3차원 아바타 생성 장치는 대응점 정보를 이용하여 3차원 스캔닝 모델을 기준으로 템플릿 아바타 모델의 전체적인 6자유도 Translation과 Rotation 정보 그리고 Scale 정보를 구하여 대략적으로 정합할 수 있다.
3차원 아바타 생성 장치는 상기 대응점 정보와 상기 탬플릿 아바타 모델의 스켈레톤 정보를 이용하여 상기 3차원 아바타 모델의 자세에 상응하도록 상기 탬플릿 아바타 모델의 자세를 변형시킬 수 있다(Skeleton based Human Pose Registration).
3차원 아바타의 미세한 골격 구조 변화를 표현하려면, 스켈레톤의 각 세그먼트의 미세한 Translation, Rotation 변화를 반영해야 한다(Skeleton Translation, Rotation). 또한, 동일한 사람을 부분적으로 여러 번 스캔할 경우, 한 사람의 포즈의 형태가 시간에 따라 달라질 수 있으므로 인체의 포즈 변화에 적응할 수 있는 정합 방법이 필요하다.
예를 들면, 3차원 아바타 생성 장치는 사용자의 전면부 스캔을 통해 생성된 제1 3차원 스캐닝 모델을 기준으로 변형된 탬플릿 아바타 모델에, 측면부 스캔을 통해 생성된 제2 3차원 스캐닝 모델을 추가적으로 이용하여 아바타를 다시 변형할 때, 서로 포즈가 다른 경우, 스켈레톤 정보를 이용하여 탬플릿 아바타 모델의 자세를 변형시켜 3차원 스캐닝 모델과 정합시킬 수 있다.
템플릿 아바타 모델을 기정의된 각 뼈대와 각 절점 사이의 상관관계를 포함할 수 있다.
즉, 탬플릿 아바타 모델은 리깅이 되어 있어서 뼈대의 자세 변화는 곧 템플릿 아바타의 자세 변화로 반영될 수 있다.
이 때, 템플릿 아바타 모델에 사용되는 리깅 기법은 가장 많이 사용하는 Linear Blend Skinning 기법이 사용될 수 있다. 상기 리깅 기법은 각 절점 마다 각 뼈대의 영향도를 의미하는 가중치 값을 정의하고, 각 절점은 각 뼈대의 움직임을 따라 이 가중치 값만큼의 이동 성분을 가지도록 하는 것으로 수학식 1과 같이 수식화 될 수 있다.
수학식 1에서, Vi는 템플릿 아바타 모델의 한 절점의 위치이며, Nb는 전체 뼈대 모델의 뼈의 개수, wj 는 뼈대의 가중치 값, T-j는 j번째 뼈대의 강체 변형 행렬을 의미하며, Vj 0는 기준자세에서의 해당 절점의 j번째 뼈대에 대한 지역 좌표를 의미할 수 있다.
이 때, 3차원 아바타 생성 장치는 템플릿 아바타 모델의 자세를 사용자의 3차원 스캐닝 모델과 유사하게 맞추기 위해 뼈대의 관절 각과 관절 좌표의 최적화를 수행할 수 있다.
이 때, 3차원 아바타 생성 장치는 수학식 2와 같은 3개의 오차함수의 값의 합을 최소화 시키는 관절의 강체 행렬을 찾아주는 연산을 수행할 수 있다.
수학식 2에서, Ef는 대응점 간의 거리 오차함수를 나타내며, α는 해당 함수의 가중치를 나타내며, Ed는 템플릿 아바타와 사용자 3차원 스캔 정보와의 거리를 최소화시키기 위한 오차함수이고, β는 그 가중치를 나타내고, 마지막으로 Es는 관절각의 회전 각의 합을 최소화하는 함수이며,γ는 그 가중치를 나타낸 것을 알 수 있다.
템플릿 아바타 모델과 사용자의 3차원 스캐닝 모델 사이의 스켈레톤 거리를 최소화시키기 위한 오차함수 Ed는 수학식 3과 같이 정의할 수 있다.
수학식 3에서, dist() 함수는 현재의 관절의 강체행렬에 의해 변형된 점 skin(Vi)와 사용자의 3차원 스캐닝 모델의 표면 D와의 최소 거리를 계산해주는 함수를 나타내고, Nm 템플릿 아바타 절점의 개수를 나타낸 것을 알 수 있다.
이 때, 사용자로부터 입력 받은 3차원 스캐닝 모델의 대응점은 로컬 최소점(local minima)으로 수렴할 수 있기 때문에, 이것을 방지하기 위해, 템플릿 아바타 모델과 사용자의 3차원 스캐닝 모델의 대응점 사이의 오차함수 Ef를 수학식 4와 같이 정의할 수 있다.
수학식 4에서, FM과 FD는 각 템플릿 아바타 M과 사용자 3차원 스캔정보 D에 사용자가 정의해준 대응점이며, FM이 관절의 강체행렬에 의해 변형된 점 skin(FM)이 FD와의 거리가 최소가 되도록 연산될 수 있다. 여기서 Nf는 사용자 정의 대응점 개수를 나타내는 것을 알 수 있다.
그리고 템플릿 아바타 모델 M의 형태를 유지하기 위한 오차함수로 관절각의 회전을 의미하는 사원수수(quaternion)를 이용하여 수학식 5를 정의할 수 있다.
수힉식 5에서 Nb는 뼈대의 개수, qi는 관절 i의 회전을 의미하며, 관절각의 회전각의 합을 최소화하는 목적함수를 나타낸 것을 알 수 있다.
즉, 3차원 아바타 생성 장치는 상기 탬플릿 아바타 모델과 상기 3차원 스캐닝 모델의 대응점 위치 간의 오차를 최소화 시키기 위한 상기 스켈레톤 정보를 이용하여 상기 탬플릿 아바타 모델의 자세를 변형시킨 대응점과 상기 3차원 스캐닝 모델의 대응점까지의 최소거리를 연산하고, 상기 대응점 간의 최소거리와 상기 탬플릿 아바타 모델의 개별 절점 간의 최소거리에 기반하여 상기 탬플릿 아바타 모델의 자세를 변형시켜 상기 3차원 스캐닝 모델에 정합시킬 수 있다.
3차원 아바타 생성 장치는 상기 탬플릿 아바타 모델의 개별 절점의 위치를 어파인 변형 행렬을 통해 조절하여 상기 탬플릿 아바타 모델의 표면과 상기 3차원 스캐닝 모델의 표면 사이의 최소거리를 연산할 수 있다(Affine Transform per Vertex).
이 때, 3차원 아바타 생성 장치는 템플릿 아바타 모델 M의 개별 절점의 위치를 어파인 변형(Affine Transformation) 행렬을 통해 조절하여 사용자 3차원 스캔 정보 D와의 거리를 최소화할 수 있다.
이 때, 3차원 아바타 생성 장치는 오차함수를 수학식 6과 같이 정의할 수 있다.
수학식 6에서 Ef는 대응점 간의 거리 오차함수를 나타내며, α는 해당 함수의 가중치를 나타내고, Ed는 템플릿 아바타와 사용자 3차원 스캔 정보와의 거리를 최소화시키기 위한 오차함수이고, β는 그 가중치를 나타내고, 마지막으로 Es는 템플릿 아바타의 기본적인 외형을 유지하기 위한 제약 사항을 나타내는 것을 알 수 있다.
이 때, 3차원 아바타 생성 장치는 먼저 템플릿 아바타 모델 M과 사용자의 3차원 스캔닝 모델의 표면 D와의 거리를 최소화시키는 오차함수 Ed를 수학식 7과 같이 정의할 수 있다.
수학식 7에서, dist() 함수는 템플릿 아바타의 절점 Vi를 어파인 변형 행렬 Ti에 의해 변형된 점과 사용자 3차원 스캔 정보 표면 D와의 최소 거리를 계산해주는 함수를 나타낸 것을 알 수 있고, Nm 템플릿 아바타 절점의 개수를 나타낸 것을 알 수 있다. 여기서 거리는 삼각형 메쉬와의 가장 가까운 거리를 측점함으로써 이루어질 수 있다.
이 때, 3차원 아바타 생성 장치는 사용자 입력을 받은 대응점의 오차함수는 수학식 8과 같이 정의할 수 있다.
수학식 8에서 FM과 FD는 각 템플릿 아바타 M과 사용자 3차원 스캔정보 D에 사용자가 정의해준 대응점이며, FM이 Ti 어파인 행렬에 의해 변형된 점과 FD와의 거리가 최소가 되도록 한다. 여기서 Nf는 사용자 정의 대응점 개수를 나타낸 것을 알 수 있다.
마지막으로, 3차원 아바타 생성 장치는 템플릿 아바타 모델 M의 형태를 유지하기 위한 제약사항으로 모든 간선(Edge)이 갖고 있는 변환 행렬의 차이가 최소화 되도록 하는 오차함수를 정의할 수 있다.
만약, 임의의 간선 ei의 두 절점이 비슷한 변형을 이루게 된다면, 두 절점의 변환 행렬의 차는 0 행렬에 수렴할 것이다. 이를 이용해 수학식 9가 정의될 수 있다.
임의의 간선이 가지는 두 절점의 행렬을 Ti, Tj로 나타낸 것을 알 수 있고, 여기서 Ns는 템플릿 아바타 M의 간선 개수를 나타낸 것을 알 수 있다.
또한, 3차원 아바타 생성 장치는 전역 강체 정합, 스켈레톤 기반의 포즈 정합, 그리고 지역 비강체 정합의 경우 사용 예에 따라 하나의 단계를 독립적으로, 또는 두 가지 이상의 단계를 혼합하여 사용할 수 있다.
예를 들면, 3차원 아바타 생성 장치는 전체적인 템플릿 아바타의 Translation/Rotation/Scale을 미리 3차원 스캔 정보와 맞춰 놓은 경우라면 전역 강체 정합을 실시하지 않고, 스켈레톤 기반의 포즈 정합과 지역 비강체 정합으로도 탬플릿 아바타 모델과 3차원 스캐닝 모델을 정합시킬 수 있다.
또한, 3차원 스캔닝 모델과 템플릿 아바타 모델의 자세가 같은 경우에는 단계(S220)는 스켈레톤 기반의 포즈 정합을 실시하지 않고, 지역 비강체 정합만 실시할 수도 있다.
또한, 3차원 아바타 생성 장치는 사용자에 의해 적절히 사용 예에 맞춰서 정합 기능을 선택 받은 정합 기능만을 수행할 수 도 있다.
도 7 내지 도 10은 본 발명의 일실시예에 따른 3차원 스캐닝 모델과 탬플릿아바타 모델의 모델 정합 과정을 나타낸 도면이다.
도 7 및 도 8을 참조하면, 3차원 모델 생성 장치는 도 7과 같이 기저장된 탬플릿 아바타 모델(10)의 대응점과 입력받은 사용자의 3차원 스캐닝 모델(20)의 대응점 사이의 연결선을 기준으로 3차원 스캐닝 모델(20)의 위치를 이동시키고 방향을 회전시켜서 탬플릿 아바타 모델(10)과 정합시켜서 도 8과 같이 전역 강체 정합을 수행하는 것을 알 수 있다.
도 8 및 도 9를 참조하면, 3차원 아바타 생성 장치는 도 8과 같이 탬플릿 아바타 모델(10)의 자세와 사용자의 3차원 스캐닝 모델(20)의 자세 사이의 오차를 최소화시키기 위하여 스켈레톤 정보를 이용하여 탬플릿 아바타 모델(10)의 자세를 변형시켜서 도 9와 같이 스켈레톤 기반의 포즈 정합을 수행하는 것을 알 수 있다.
도 9 및 도 10을 참조하면, 3차원 아바타 생성 장치는 도 9와 같이 탬플릿 아바타 모델(10)의 부피와 사용자의 3차원 스캐닝 모델(20)의 부피 사이의 오차를 최소화 시키기 위하여 탬플릿 아바타 모델(10)의 버텍스 정보를 이용하여 탬플릿 아바타 모델(10)의 대응점과 사용자의 3차원 스캐닝 모델(20)의 대응점의 표면 사이의 거리를 최소화시켜 도 10과 같은 지역 비강체 정합을 수행하는 것을 알 수 있다.
즉, 도 7 내지 도 10에서 도시된 바와 같이, 3차원 아바타 생성 장치는 전역 강체 정합, 스켈레톤 기반 포즈 정합 및 지역 비강체 정합을 이용하여 탬플릿 아바타 모델(10)을 사용자의 3차원 스캐닝 모델(20)에 정합시키는 것을 알 수 있다.
도 11은 본 발명의 일실시예에 따른 컴퓨터 시스템을 나타낸 도면이다.
도 11을 참조하면, 본 발명의 일실시예에 따른 3차원 아바타 생성 장치는 컴퓨터로 읽을 수 있는 기록매체와 같은 컴퓨터 시스템(1100)에서 구현될 수 있다. 도 11에 도시된 바와 같이, 컴퓨터 시스템(1100)은 버스(1120)를 통하여 서로 통신하는 하나 이상의 프로세서(1110), 메모리(1130), 사용자 인터페이스 입력 장치(1140), 사용자 인터페이스 출력 장치(1150) 및 스토리지(1160)를 포함할 수 있다. 또한, 컴퓨터 시스템(1100)은 네트워크(1180)에 연결되는 네트워크 인터페이스(1170)를 더 포함할 수 있다. 프로세서(1110)는 중앙 처리 장치 또는 메모리(1130)나 스토리지(1160)에 저장된 프로세싱 인스트럭션들을 실행하는 반도체 장치일 수 있다. 메모리(1130) 및 스토리지(1160)는 다양한 형태의 휘발성 또는 비휘발성 저장 매체일 수 있다. 예를 들어, 메모리는 ROM(1131)이나 RAM(1132)을 포함할 수 있다.
또한, 하나 이상의 프로세서(1110)는 하나 이상의 프로그램을 실행시킬 수 있다.
이 때, 하나 이상의 프로세서(1110)는 3차원 스캔부(110), 모델 정합부(120) 및 아바타 생성부(130)를 포함할 수 있고, 하나 이상의 프로세서(1110)는 3차원 스캔부(110), 모델 정합부(120) 및 아바타 생성부(130)의 기능을 하나 이상의 프로그램을 통해 수행할 수 있다.
이상에서와 같이 본 발명의 일실시예에 따른 3차원 아바타 생성 장치 및 방법은 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
10: 탬플릿 아바타 모델 20: 3차원 스캐닝 모델
110: 3차원 스캔부 120: 모델 정합부
121: 전역 강체 정합부 122: 스켈레톤 정합부
123: 지역 비강체 정합부 130: 아바타 생성부
1100: 컴퓨터 시스템 1110: 프로세서
1120: 버스 1130: 메모리
1131: 롬 1132: 램
1140: 사용자 인터페이스 입력 장치
1150: 사용자 인터페이스 출력 장치
1160: 스토리지 1170: 네트워크 인터페이스
1180: 네트워크

Claims (20)

  1. 3차원 아바타 생성 장치의 3차원 아바타 생성 방법에 있어서,
    이미지 센서를 이용하여 사용자의 인체를 3차원 스캐닝하고, 상기 사용자의 인체를 3차원 스캐닝한 결과를 이용하여 3차원 스캐닝 모델을 생성하는 단계;
    상기 3차원 스캐닝 모델과 기저장된 탬플릿 아바타 모델을 정합하는 단계; 및
    상기 3차원 스캐닝 모델과 상기 탬플릿 아바타 모델을 정합한 결과에 기반하여 3차원 아바타를 생성하는 단계;
    를 포함하는 것을 특징으로 하는 3차원 아바타 생성 방법.
  2. 청구항 1에 있어서,
    상기 정합하는 단계는
    상기 3차원 스캐닝 모델과 상기 탬플릿 아바타 모델 간의 대응점 정보를 이용하여 상기 3차원 스캐닝 모델과 상기 탬플릿 아바타 모델을 정합하는 것을 특징으로 하는 3차원 아바타 생성 방법.
  3. 청구항 2에 있어서,
    상기 대응점 정보는
    상기 3차원 스캐닝 모델과 탬플릿 아바타 모델의 인체 부위에서 기정의된 적어도 하나 이상의 위치를 대응점으로 정의한 정보를 포함하는 것을 특징으로 하는 3차원 아바타 생성 방법.
  4. 청구항 3에 있어서,
    상기 인체 부위에서 기정의된 적어도 하나 이상의 위치는
    인체의 얼굴 부위, 손 부위 및 발 부위 중 적어도 하나 이상의 위치를 포함하는 것을 특징으로 하는 3차원 아바타 생성 방법.
  5. 청구항 4에 있어서,
    상기 정합하는 단계는
    상기 인체 부위에서 기정의된 적어도 하나 이상의 위치에 기반하여 상기 3차원 스캐닝 모델의 대응점과 상기 탬플릿 아바타 모델의 대응점을 대응쌍으로 정의하는 것을 특징으로 하는 3차원 아바타 생성 방법.
  6. 청구항 3에 있어서,
    상기 정합하는 단계는
    상기 대응점 정보를 이용하여 상기 탬플릿 아바타 모델의 대응점의 위치와 상기 3차원 스캐닝 모델의 대응점의 위치에 기반하여 상기 3차원 스캐닝 모델의 위치를 이동시키고, 상기 3차원 스캐닝 모델의 방향을 회전시켜 상기 탬플릿 아바타에 강체 변환을 적용하는 것을 특징으로 하는 3차원 아바타 생성 방법.
  7. 청구항 6에 있어서,
    상기 정합하는 단계는
    3차원 스캐닝 모델과 상기 템플릿 아바타 모델의 이동, 방향과 스케일을 보정하는 6 자유도(Degree of Freedom) 강체 변환을 적용하는 것을 특징으로 하는 3차원 아바타 생성 방법.
  8. 청구항 6에 있어서,
    상기 정합하는 단계는
    상기 대응점 정보와 상기 탬플릿 아바타 모델의 스켈레톤 정보를 이용하여 상기 3차원 아바타 모델의 자세에 상응하도록 상기 탬플릿 아바타 모델의 자세를 변형시키는 것을 특징으로 하는 3차원 아바타 생성 방법.
  9. 청구항 8에 있어서,
    상기 정합하는 단계는
    상기 탬플릿 아바타와 상기 3차원 스캐닝 모델의 대응점 위치 간의 오차를 최소화 시키기 위한 상기 스켈레톤 정보를 이용하여 상기 탬플릿 아바타의 자세를 변형시킨 대응점과 상기 3차원 스캐닝 모델의 대응점까지의 최소거리를 연산하고, 상기 대응점 간의 최소거리와 상기 탬플릿 아바타 모델의 개별 절점 간의 최소거리에 기반하여 상기 탬플릿 아바타의 자세를 변형시켜 상기 3차원 스캐닝 모델에 정합시키는 것을 특징으로 하는 3차원 아바타 생성 방법
  10. 청구항 9에 있어서,
    상기 정합하는 단계는
    상기 탬플릿 아바타 모델의 개별 절점의 위치를 어파인 변형 행렬을 통해 조절하여 상기 탬플릿 아바타 모델의 표면과 상기 3차원 스캐닝 모델의 표면 사이의 최소거리를 연산하는 것을 특징으로 하는 3차원 아바타 생성 방법.
  11. 하나 이상의 프로세서;
    메모리; 및
    하나 이상의 프로그램을 포함하고,
    상기 하나 이상의 프로그램은 상기 메모리에 저장되고, 상기 하나 이상의 프로세서에 의해 실행되고,
    상기 하나 이상의 프로세서는 상기 하나 이상의 프로그램을 실행하여,
    이미지 센서를 이용하여 사용자의 인체를 3차원 스캐닝하고, 상기 사용자의 인체를 3차원 스캐닝한 결과를 이용하여 3차원 스캐닝 모델을 생성하고, 상기 3차원 스캐닝 모델과 기저장된 탬플릿 아바타 모델을 정합하고, 상기 3차원 스캐닝 모델과 상기 탬플릿 아바타 모델을 정합한 결과에 기반하여 3차원 아바타를 생성하는 것을 특징으로 하는 3차원 아바타 생성 장치.
  12. 청구항 11에 있어서,
    상기 하나 이상의 프로세서는
    상기 3차원 스캐닝 모델과 상기 탬플릿 아바타 모델 간의 대응점 정보를 이용하여 상기 3차원 스캐닝 모델과 상기 탬플릿 아바타 모델을 정합하는 것을 특징으로 하는 3차원 아바타 생성 장치.
  13. 청구항 12에 있어서,
    상기 대응점 정보는
    상기 3차원 스캐닝 모델과 탬플릿 아바타 모델의 인체 부위에서 기정의된 적어도 하나 이상의 위치를 대응점으로 정의한 정보를 포함하는 것을 특징으로 하는 3차원 아바타 생성 장치.
  14. 청구항 13에 있어서,
    상기 인체 부위에서 기정의된 적어도 하나 이상의 위치는
    인체의 얼굴 부위, 손 부위 및 발 부위 중 적어도 하나 이상의 위치를 포함하는 것을 특징으로 하는 3차원 아바타 생성 장치.
  15. 청구항 14에 있어서,
    상기 하나 이상의 프로세서는
    상기 인체 부위에서 기정의된 적어도 하나 이상의 위치에 기반하여 상기 3차원 스캐닝 모델의 대응점과 상기 탬플릿 아바타 모델의 대응점을 대응쌍으로 정의하는 것을 특징으로 하는 3차원 아바타 생성 장치.
  16. 청구항 13에 있어서,
    상기 하나 이상의 프로세서는
    상기 대응점 정보를 이용하여 상기 탬플릿 아바타 모델의 대응점의 위치와 상기 3차원 스캐닝 모델의 대응점의 위치에 기반하여 상기 3차원 스캐닝 모델의 위치를 이동시키고, 상기 3차원 스캐닝 모델의 방향을 회전시켜 상기 탬플릿 아바타에 강체 변환을 적용하는 것을 특징으로 하는 3차원 아바타 생성 장치.
  17. 청구항 16에 있어서,
    상기 하나 이상의 프로세서는
    3차원 스캐닝 모델과 상기 템플릿 아바타 모델의 이동, 방향과 스케일을 보정하는 6 자유도(Degree of Freedom) 강체 변환을 적용하는 것을 특징으로 하는 3차원 아바타 생성 장치.
  18. 청구항 16에 있어서,
    상기 하나 이상의 프로세서는
    상기 대응점 정보와 상기 탬플릿 아바타 모델의 스켈레톤 정보를 이용하여 상기 3차원 아바타 모델의 자세에 상응하도록 상기 탬플릿 아바타 모델의 자세를 변형시키는 것을 특징으로 하는 3차원 아바타 생성 장치.
  19. 청구항 18에 있어서,
    상기 하나 이상의 프로세서는
    상기 탬플릿 아바타와 상기 3차원 스캐닝 모델의 대응점 위치 간의 오차를 최소화 시키기 위한 상기 스켈레톤 정보를 이용하여 상기 탬플릿 아바타의 자세를 변형시킨 대응점과 상기 3차원 스캐닝 모델의 대응점까지의 최소거리를 연산하고, 상기 대응점 간의 최소거리와 상기 탬플릿 아바타 모델의 개별 절점 간의 최소거리에 기반하여 상기 탬플릿 아바타의 자세를 변형시켜 상기 3차원 스캐닝 모델에 정합시키는 것을 특징으로 하는 3차원 아바타 생성 장치.
  20. 청구항 19에 있어서,
    상기 하나 이상의 프로세서는
    상기 탬플릿 아바타 모델의 개별 절점의 위치를 어파인 변형 행렬을 통해 조절하여 상기 탬플릿 아바타 모델의 표면과 상기 3차원 스캐닝 모델의 표면 사이의 최소거리를 연산하는 것을 특징으로 하는 3차원 아바타 생성 장치.
KR1020190031994A 2018-11-21 2019-03-20 3차원 아바타 생성 장치 및 방법 KR102655987B1 (ko)

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 true KR20200060196A (ko) 2020-05-29
KR102655987B1 KR102655987B1 (ko) 2024-04-11

Family

ID=70912096

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190031994A KR102655987B1 (ko) 2018-11-21 2019-03-20 3차원 아바타 생성 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102655987B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102438488B1 (ko) * 2022-03-02 2022-09-01 최성 3d 마커리스 모션 캡처 기반 3d 아바타 생성 장치 및 방법
KR20240018350A (ko) 2022-08-02 2024-02-13 가부시키가이샤 하모닉 드라이브 시스템즈 파동기어장치

Citations (4)

* 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
KR20160147466A (ko) * 2015-06-15 2016-12-23 한양대학교 산학협력단 맞춤형 인체 모델링 장치 및 방법
KR20170003994A (ko) * 2014-05-13 2017-01-10 엠포트 피티와이 엘티디 신체 스캔 정보를 이용한 의복 필터링 및 제공 방법
KR20180069786A (ko) * 2015-08-14 2018-06-25 미테일 리미티드 3d 신체 모델에 대한 3d 의복 모델의 이미지 파일을 생성하기 위한 방법 및 시스템

Patent Citations (4)

* 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
KR20170003994A (ko) * 2014-05-13 2017-01-10 엠포트 피티와이 엘티디 신체 스캔 정보를 이용한 의복 필터링 및 제공 방법
KR20160147466A (ko) * 2015-06-15 2016-12-23 한양대학교 산학협력단 맞춤형 인체 모델링 장치 및 방법
KR20180069786A (ko) * 2015-08-14 2018-06-25 미테일 리미티드 3d 신체 모델에 대한 3d 의복 모델의 이미지 파일을 생성하기 위한 방법 및 시스템

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102438488B1 (ko) * 2022-03-02 2022-09-01 최성 3d 마커리스 모션 캡처 기반 3d 아바타 생성 장치 및 방법
KR20240018350A (ko) 2022-08-02 2024-02-13 가부시키가이샤 하모닉 드라이브 시스템즈 파동기어장치

Also Published As

Publication number Publication date
KR102655987B1 (ko) 2024-04-11

Similar Documents

Publication Publication Date Title
JP4473754B2 (ja) 仮想試着装置
KR100722229B1 (ko) 사용자 중심형 인터페이스를 위한 가상현실 상호작용 인체모델 즉석 생성/제어 장치 및 방법
Hornung et al. Character animation from 2d pictures and 3d motion data
US10984609B2 (en) Apparatus and method for generating 3D avatar
US20190035149A1 (en) Methods of generating personalized 3d head models or 3d body models
JP4284664B2 (ja) 三次元形状推定システム及び画像生成システム
JP2011521357A (ja) ビデオ画像を利用したモーションキャプチャのシステム、方法、及び装置
JP2002133446A (ja) 顔画像処理方法およびシステム
Plankers et al. Automated body modeling from video sequences
CN113421328A (zh) 一种三维人体虚拟化重建方法及装置
Zuo et al. Sparsefusion: Dynamic human avatar modeling from sparse rgbd images
KR102655987B1 (ko) 3차원 아바타 생성 장치 및 방법
JP2018195996A (ja) 画像投影装置、画像投影方法、及び、画像投影プログラム
Kang et al. Appearance-based structure from motion using linear classes of 3-d models
Straka et al. Rapid skin: estimating the 3D human pose and shape in real-time
CN115471632A (zh) 基于3d扫描的真实人体模型重建方法、装置、设备及介质
Mattos et al. 3D linear facial animation based on real data
JP2739447B2 (ja) しわの表現可能な三次元像生成装置
JP4623320B2 (ja) 三次元形状推定システム及び画像生成システム
US20220309733A1 (en) Surface texturing from multiple cameras
Xie et al. Differentiable Subdivision Surface Fitting
Zhang et al. Synthesis of 3D faces using region‐based morphing under intuitive control
Taştan et al. Human body reconstruction from limited number of points
Jayaram et al. Literature survey on tracking template face mesh using stereo video
Straka Human Pose and Shape Estimation from Multi-View Images for Virtual Dressing Rooms

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