KR102627035B1 - 사용자 이미지에서 검출된 속성에 기반한 사용자 아바타를생성하고 상기 사용자 아바타의 자연스러운 모션을 제어하는 장치 및 방법 - Google Patents

사용자 이미지에서 검출된 속성에 기반한 사용자 아바타를생성하고 상기 사용자 아바타의 자연스러운 모션을 제어하는 장치 및 방법 Download PDF

Info

Publication number
KR102627035B1
KR102627035B1 KR1020230087195A KR20230087195A KR102627035B1 KR 102627035 B1 KR102627035 B1 KR 102627035B1 KR 1020230087195 A KR1020230087195 A KR 1020230087195A KR 20230087195 A KR20230087195 A KR 20230087195A KR 102627035 B1 KR102627035 B1 KR 102627035B1
Authority
KR
South Korea
Prior art keywords
model
data
avatar
item
user
Prior art date
Application number
KR1020230087195A
Other languages
English (en)
Inventor
박호열
임효상
채승호
양윤식
Original Assignee
주식회사 알마로꼬
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 알마로꼬 filed Critical 주식회사 알마로꼬
Priority to KR1020230087195A priority Critical patent/KR102627035B1/ko
Application granted granted Critical
Publication of KR102627035B1 publication Critical patent/KR102627035B1/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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/51Indexing; Data structures therefor; Storage structures
    • 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
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/103Static body considered as a whole, e.g. static pedestrian or occupant recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/161Detection; Localisation; Normalisation
    • G06V40/167Detection; Localisation; Normalisation using comparisons between temporally consecutive images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30196Human being; Person

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Geometry (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Architecture (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Oral & Maxillofacial Surgery (AREA)
  • Processing Or Creating Images (AREA)

Abstract

실시 예들은 사용자 및 상기 사용자의 아이템이 나타난 사용자 이미지 내 관심 영역을 분석하여 사용자 속성, 및 사용자와 관련된 아이템 속성을 인식하고 상기 아이템 속성을 제공하는 상기 사용자 이미지에 나타난 아이템의 위치를 인식하는 단계; 인식된 사용자 속성에 기초해 상기 사용자의 형상을 나타낸 3차원 아바타 모델 및 인식된 아이템 속성에 기초해 상기 아이템의 형상을 나타낸 3차원 아이템 모델을 나타낸 사용자 아바타 데이터를 생성하는 단계; 및 사용자의 목표 모션 데이터가 입력되면, 상기 사용자 아바타 데이터를 제어하여, 아이템과 3차원 아바타 모델이 충돌하지 않으면서 상기 3차원 아바타 모델이 상기 목표 모션을 취하는 것을 나타내는, 상기 사용자 아바타의 모션 데이터를 생성하는 단계를 포함하는 방법 및 이를 수행하는 아바타 생성 장치에 관련된다.

Description

사용자 이미지에서 검출된 속성에 기반한 사용자 아바타를 생성하고 상기 사용자 아바타의 자연스러운 모션을 제어하는 장치 및 방법{Device and method for generating user avatar based on attributes detected in user image and controlling natural motion of the user avatar}
실시 예들은 사용자 이미지에서 검출된 속성에 기반한 사용자 아바타를 생성하고 상기 사용자 아바타의 자연스러운 모션을 제어하는 장치 및 방법에 관련된다.
메타버스 기술에 대한 관심이 증가하면서 아바타 관련 기술 분야에서 다양한 연구가 진행되고 있다.
종래의 대부분의 아바타 연구들은 사용자의 얼굴을 이용하여 아바타를 생성하는 것과 관련된 것으로서, 크게 캐릭터형 아바타 또는 실사형 아바타를 생성한다. 캐릭터형 아바타를 생성하는 종래의 연구들은 사용자가 얼굴의 각 부위를 선택하거나, 또는 사용자의 얼굴 이미지를 적용해 사용자 얼굴과 유사한 캐릭터 아바타의 형상을 제안하는 방식을 가진다. 실사형 아바타를 생성하는 종래의 다른 연구들은 사용자의 얼굴 이미지를 이용해 사용자의 실제 모습과 비슷한 아바타를 생성하는 방식이다.
최근 사용자를 가리키는 전신 아바타를 생성하는 기술도 시도되고 있다. 그러나, 사용자의 정보 전체 중에서 사용자 전신과 관련된 정보만 반영될 뿐, 사용자의 정보 중에서 헤어, 의상, 액세서리 형상을 정확하게 구현하지 못하며, 특히 아바타 모션에 따라 헤어, 의상, 액세서리의 형상을 변형하거나 및/또는 위치를 이동시키지 않음으로써 아바타가 움직이는 동안 아바타의 형상과 아이템이 충돌하여 결국 아바타의 모션이 부자연스러워 보이는 한계가 있다.
특허공개공보 제10-2022-0004296호 (2022.01.11.공개)
상술한 문제를 해결하기 위해, 본 출원은 사용자 이미지에서 검출된 속성에 기반한 사용자 아바타를 생성하고 상기 사용자 아바타의 자연스러운 모션을 제어하는 장치 및 방법을 제공하고자 한다.
본 출원의 일 측면에 따른 아이템 속성을 갖는 사용자 아바타의 모션을 시각적으로 자연스럽게 구현하는 방법은 컴퓨팅 장치에 의해 수행될 수 있다. 상기 방법은: 사용자 및 상기 사용자의 아이템이 나타난 사용자 이미지 내 관심 영역을 분석하여 사용자 속성, 및 사용자와 관련된 아이템 속성을 인식하고 상기 아이템 속성을 제공하는 상기 사용자 이미지에 나타난 아이템의 위치를 인식하는 단계; 인식된 사용자 속성에 기초해 상기 사용자의 형상을 나타낸 3차원 아바타 모델 및 인식된 아이템 속성에 기초해 상기 아이템의 형상을 나타낸 3차원 아이템 모델을 나타낸 사용자 아바타 데이터를 생성하는 단계; 및 사용자의 목표 모션 데이터가 입력되면, 상기 사용자 아바타 데이터를 제어하여, 아이템과 3차원 아바타 모델이 충돌하지 않으면서 상기 3차원 아바타 모델이 상기 목표 모션을 취하는 것을 나타내는, 상기 사용자 아바타의 모션 데이터를 생성하는 단계를 포함할 수 있다.
일 실시 예에서, 사용자 및 상기 사용자의 아이템이 나타난 사용자 이미지 내 관심 영역을 분석하여 사용자 속성, 및 사용자와 관련된 아이템 속성을 인식하고 상기 아이템 속성을 제공하는 상기 사용자 이미지에 나타난 아이템의 위치를 인식하는 단계는, 상기 사용자 이미지에서 사용자 얼굴이 나타난 제1 관심 영역 및 사용자 신체가 나타난 제2 관심 영역을 각각 검출하는 단계; 상기 제1 관심 영역, 상기 제2 관심 영역에서 미리 학습된 속성 인식 모델을 이용하여 상기 사용자 이미지에 시각적으로 표출되어 있는 사용자 속성 및 아이템 속성을 인식하는 단계; 및 인식된 아이템 속성을 제공하는 사용자의 아이템의 위치를 사용자 이미지에서 인식하는 단계를 포함할 수 있다.
일 실시 예에서, 상기 미리 학습된 속성 인식 모델은, 얼굴 영역에서 특징을 추출하고 추출된 특징 및 상기 얼굴 영역에서의 랜드마크 검출 결과에 기초하여 사용자 속성 및 얼굴 주변의 아이템에 대한 아이템 속성을 산출하는 제1 속성 인식 모델, 및 신체 영역에서 특징을 추출하고 추출된 특징 및 상기 신체 영역에서의 랜드마크 검출 결과에 기초하여 사용자 속성 및 신체 주변의 아이템에 대한 아이템 속성을 산출하는 제2 속성 인식 모델이다. 상기 제1 관심 영역, 상기 제2 관심 영역에서 미리 학습된 속성 인식 모델을 이용하여 상기 사용자 이미지에 시각적으로 표출되어 있는 사용자 속성 및 아이템 속성을 인식하는 단계는, 사용자 속성을 산출하기 이전에, 얼굴 영역, 신체 영역의 랜드마크를 검출하는 단계; 상기 제1 관심 영역의 이미지를 상기 제1 속성 인식 모델에 입력하여 얼굴 영역에서 사용자 속성 및 얼굴 주변의 아이템에 대한 아이템 속성을 산출하는 단계; 및 상기 제2 관심 영역의 이미지를 상기 제2 속성 인식 모델에 입력하여 신체 영역에서 사용자 속성 및 신체 주변의 아이템에 대한 아이템 속성을 산출하는 단계;를 포함할 수 있다.
일 실시 예에서, 상기 사용자의 얼굴, 신체를 설명하는 정보인 상기 사용자 속성은 키, 신체 비율, 체형, 얼굴형, 얼굴 크기 중 하나 이상을 포함하고, 여기서, 키, 신체 비율, 체형은 신체 속성이고, 얼굴형, 얼굴 크기는 얼굴 속성이다. 상기 사용자의 얼굴, 신체에 삽입, 접촉 또는 착용된 아이템을 설명하는 정보인 상기 아이템 속성은 아이템 카테고리, 아이템 종류, 크기, 위치, 색상 중 하나 이상의 속성 항목을 포함할 수 있다.
일 실시 예에서, 상기 사용자 아바타 데이터에서 상기 3차원 아바타 모델은 형상 파라미터, 포즈 파라미터로 매개변수화된 함수로 정의되는 것으로서, 상기 형상 파라미터에는 사용자의 키, 체형, 신체 비율과 같은 사용자의 신체 속성이 반영되는 것이다. 상기 사용자 아바타 데이터에서 상기 3차원 아바타 모델이 미리 설정된 기준 포즈를 갖는 것을 나타낸 3차원 아바타 모델 데이터는 사용자의 신체 속성이 반영된 아바타 모델의 형상을 나타낸 형상 데이터 및 상기 기준 포즈를 나타낸 포즈 데이터를 포함하고, 상기 형상 데이터는 아바타 모델의 외형 실루엣을 표현하는 외형 연결정보로서 복수의 외형 연결점 정보 및 상기 외형 연결점을 연결하는 외형 연결선 정보를 포함하고, 상기 3차원 아바타 모델 데이터는 관절점 세트를 나타낸 관절점 데이터 세트를 더 포함하고, 상기 관절점 데이터 세트에서 개별 관절점 데이터는 개별 관절점 각각의 식별정보, 3차원 아바타 모델에서 상기 개별 관절점 각각의 위치정보를 포함할 수 있다.
일 실시 예에서, 상기 인식된 사용자 속성에 기초해 상기 사용자의 형상을 나타낸 3차원 아바타 모델 및 인식된 아이템 속성에 기초해 상기 아이템의 형상을 나타낸 3차원 아이템 모델을 나타낸 사용자 아바타 데이터를 생성하는 단계는, 실사형 아바타 기준 모델 데이터를 실사 DB에서 검색하는 단계; 상기 실사형 아바타 기준 모델 데이터에 인식된 사용자 속성을 적용하여 사용자 속성이 반영되어 상기 사용자의 실제 형상을 나타낸 실사형 3차원 아바타 모델을 생성하는 단계; 인식된 아이템 속성에 매칭한 실사형 에셋 데이터를 상기 실사 DB에서 검색하는 단계 - 상기 실사형 에셋 데이터는 실사형 에셋 데이터가 나타낸 아이템이 갖는 실제 속성 데이터, 및 실사형 에셋 데이터가 나타낸 아이템의 실제 형상 데이터를 포함함; 검색된 실사형 에셋 데이터에 기초하여 상기 아이템 속성이 반영되어 상기 아이템의 실제 형상을 나타낸 실사형 3차원 아이템 모델을 생성하는 단계; 및 인식된 아이템 위치에 기초하여 실사형 3차원 아이템 모델을 상기 실사형 3차원 아이템 모델 주변에 배치하는 단계;를 포함할 수 있다.
일 실시 예에서, 상기 인식된 사용자 속성에 기초해 상기 사용자의 형상을 나타낸 3차원 아바타 모델 및 인식된 아이템 속성에 기초해 상기 아이템의 형상을 나타낸 3차원 아이템 모델을 나타낸 사용자 아바타 데이터를 생성하는 단계는, 캐릭터 스타일의 사용자 아바타 데이터를 생성하기 위해, 사용자 속성이 반영된 캐릭터형 3차원 아바타 모델을 생성하는 단계; 인식된 아이템 속성에 매칭한 캐릭터형 에셋 데이터를 캐릭터 DB에서 검색하는 단계; 검색된 캐릭터형 에셋 데이터에 기초하여 상기 아이템 속성이 반영되어 상기 아이템의 실제 형상을 나타낸 캐릭터형 3차원 아이템 모델을 생성하는 단계; 및 인식된 아이템 위치에 기초하여 캐릭터형 3차원 아이템 모델을 상기 캐릭터형 3차원 아이템 모델 주변에 배치하는 단계;를 포함할 수 있다. 상기 사용자 속성이 반영된 캐릭터형 3차원 아바타 모델은, 캐릭터형 아바타 기준 모델 데이터를 캐릭터 DB에서 검색하고, 상기 캐릭터형 아바타 기준 모델 데이터에 인식된 사용자 속성을 적용하여 사용자 속성이 반영되어 상기 사용자의 캐릭터 스타일의 형상을 나타낸 캐릭터형 3차원 아바타 모델 데이터로 생성한 것이거나, 또는 상기 사용자 속성에 매칭한 캐릭터 에셋 데이터를 검색하고, 검색된 캐릭터 에셋 데이터에 포함된 캐릭터의 형상 데이터에 기초하여 상기 사용자 속성이 반영된 캐릭터를 3차원으로 나타낸 캐릭터 모델 데이터로 생성한 것일 수 있다.
일 실시 예에서, 상기 사용자 아바타의 모션 데이터를 생성하는 단계는, 상기 3차원 아바타 모델에 대한 목표 모션 데이터를 상기 사용자 아바타 데이터의 3차원 아바타 모델 데이터에 적용해 상기 3차원 아바타 모델 데이터를 변경하여, 상기 3차원 아바타 모델의 변형 데이터를 상기 3차원 아바타 모델의 모션 데이터로서 생성하는 단계; 및 상기 3차원 아바타 모델의 변형 데이터 및 상기 사용자 아바타에서 상기 3차원 아이템 모델의 형상 데이터에 기초하여, 상기 3차원 아바타 모델에 대한 목표 모션에 대응해 상기 3차원 아이템 모델이 움직이는 것을 나타낸, 상기 3차원 아이템 모델의 모션 데이터를 생성하는 단계를 포함할 수 있다.
일 실시 예에서, 상기 목표 모션는 적어도 하나의 입력 포즈를 나타낼 수 있다. 그러면, 상기 3차원 아이템 모델의 모션 데이터를 생성하는 단계는, 상기 사용자 이미지에 나타난 3차원 의류 모델의 모션 데이터를 생성하는 단계; 및 상기 사용자 이미지에 나타난, 의류 외 나머지 3차원 아이템 모델 각각에 대해, 상기 나머지 3차원 아이템 모델의 모션 데이터를 생성하는 단계;를 포함할 수 있다. 상기 3차원 의류 모델의 모션 데이터를 생성하는 단계는, 상기 3차원 아바타 모델의 모션 데이터에 대응한 상기 3차원 의류 모델의 변형 데이터(reshape data)를 생성하는 것일 수 있다. 상기 나머지 3차원 아이템 모델의 모션 데이터를 생성하는 단계는, 상기 3차원 아바타 모델의 모션 데이터에 대응한 상기 나머지 3차원 아이템 모델의 변위 데이터(reposition data)를 생성하는 것일 수 있다.
일 실시 예에서, 상기 목표 모션에 대응한 상기 3차원 의류 모델의 변형 데이터(reshape data)를 생성하는 단계는, 상기 3차원 아바타 모델이 기준 포즈일 때 3차원 아이템 모델의 형상 데이터, 상기 3차원 아바타 모델이 목표 모션을 취할 때 상기 3차원 의류 모델의 변형 가중치, 상기 3차원 아바타 모델이 상기 목표 모션을 취할 때 상기 3차원 아바타 모델의 형상 데이터에서 외형 연결점의 위치와 상기 3차원 아바타 모델이 기준 포즈일 때 상기 3차원 아바타 모델의 형상 데이터에서 외형 연결점의 위치 간의 차이에 기초하여, 상기 목표 모션 데이터에 대응한 상기 3차원 의류 모델의 변형 데이터를 생성하는 것일 수 있다.
일 실시 예에서, 상기 3차원 의류 모델은 3차원 메쉬 구조로 구현하기 위한 복수의 격자점을 포함할 수 있다. 그러면, 상기 목표 모션에 대응한 3차원 의류 모델의 변형 데이터에서 격자점(mp)의 위치는 다음의 수학식을 통해 산출될 수 있다.
[수학식]
여기서,는 목표 모션 입력 이전의 기준 포즈(예컨대, 도 5의 기준 포즈)를 취할 때 상기 3차원 의류 모델(기본 3차원 의류 모델, s)에서 외형 연결선에 대응하는 격자점(mp)의 위치 좌표를 나타내고, 는 목표 모션대로 포즈를 취할 때, 기본 3차원 의류 모델(ms)를 기준으로 형상이 변형된 3차원 의류 모델(t)에서 상기 외형 연결선에 대응한 격자점(mp)의 위치 좌표를 나타내며, α는 상기 기준 포즈를 취할 때 3차원 아이템 모델의 형상이 목표 모션에 대응해 변형될 정도를 나타내는, 변형 가중치를 나타내고, 상기 목표 모션을 취할 때의 3차원 아바타 모델의 외형 연결선에 대응한 격자점()은 메쉬 구조의 전체 격자점들 중에서 목표 모션을 취할 때의 3차원 아바타 모델의 외형 연결선에 상대적으로 가까운 격자점일 수 있다.
wfirst cp 는 기준 포즈에서 목표 모션의 입력 포즈로 변경됨에 따라 3차원 아바타 모델의 제1 외형 연결점(first cp(connection point))의 위치가 변화한 것을 나타내고, wcp 는 기준 포즈에서 목표 모션의 입력 포즈로 변경됨에 따라 3차원 아바타 모델의 제2 외형 연결점(second cp(connection point))의 위치가 변화한 것을 나타내며, 상기 제1 외형 연결점, 제2 외형 연결점은 상기 사용자 속성이 반영된 3차원 아바타 모델이 목표 모션을 취할 때 변형된 형상의 외형 연결선을 구성하는 외형 연결점들일 수 있다.
일 실시 예에서, 상기 의류 외 나머지 3차원 아이템 모델 각각에 대해, 상기 나머지 3차원 아이템 모델의 모션 데이터를 생성하는 단계는, 나머지 3차원 아이템 모델 각각에 대해, 기준 포즈를 갖고 있던 3차원 아바타 모델이 목표 모션을 취할 때 나머지 3차원 아이템 모델의 질량 중심이 이동한 새로운 위치를 추정하는 단계; 및 상기 나머지 3차원 아이템 모델의 새로운 질량 중심의 위치에 기초하여 상기 나머지 3차원 아이템 모델의 변위 데이터를 생성하는 단계를 포함할 수 있다.
본 출원의 다른 일 측면에 따른 컴퓨터 판독가능한 기록매체는 상술한 실시 예들에 따른 아이템 속성을 갖는 사용자 아바타의 모션을 시각적으로 자연스럽게 구현하는 방법을 수행하게 하는, 프로그램을 기록할 수 있다.
본 출원의 또 다른 일 측면에 따른, 프로세서 및 메모리를 포함한 아바타 모션 생성 장치는, 사용자 및 상기 사용자의 아이템이 나타난 사용자 이미지에서 사용자 속성, 사용자와 관련된 아이템 속성을 인식하고, 상기 사용자 이미지에 나타난 아이템의 위치를 인식하는 속성 분석부; 인식된 사용자 속성 및 아이템 속성에 기초하여 사용자 아바타 데이터를 생성하는 아바타 생성부 - 상기 사용자 아바타 데이터는 사용자에 대응한 아바타 형상을 나타낸 3차원 아바타 모델 데이터 및 상기 사용자 이미지에 나타난 상기 사용자의 아이템 형상을 나타낸 3차원 아이템 모델 데이터를 포함함; 및 사용자의 목표 모션 데이터가 입력되면, 상기 사용자 아바타 데이터를 제어하여, 아이템과 3차원 아바타 모델이 충돌하지 않으면서 상기 3차원 아바타 모델이 상기 목표 모션을 취하는 것을 나타내는, 상기 사용자 아바타의 모션 데이터를 생성하는 모션 생성부를 포함할 수 있다.
본 출원의 실시 예들에 따른 시스템은, 사용자의 아이템 속성이 표출되는 아이템이 착용되거나 연장된 사용자 아바타의 3차원 모델을 생성할 수 있다. 상기 사용자 아바타의 3차원 모델은 원하는 모션대로 자연스럽게 형상이 변형될 수 있다.
또한, 상기 시스템은 사용자 아바타가 목표 모션의 포즈를 취할 때 사용자의 아이템 속성이 표출되는 아이템 또한 움직이게 함으로써 목표 모션을 취할 때 아바타와 아이템의 형상이 서로 충돌하는 것을 방지할 수 있다.
더욱이, 상기 시스템은 사용자 아바타의 형상이 시간의 흐름에 따라 움직이는 동안, 사용자의 아이템 속성이 표출되는 상기 아이템을 아바타 형상의 모션에 대응해 움직이게 함으로써, 아이템과 움직이는 사용자 아바타의 형상 간의 충돌을 방지할 수 있다. 이 과정에서 사용자 아바타의 모션이 자연스럽고 어색하지 않도록 사용자에 착용되거나 연장된 아이템의 형상이 변형되는 것 및/또는 그 형상이 위치가 이동하는 것과 3차원 아바타 모델의 모션이 동기화된다. 특히, 사용자 아바타의 포즈 변화에 따라 의류 객체의 형상 또한 자연스럽게 변형된다.
결국 상기 시스템은 시각적으로 이질감 없이 조화롭게 사용자 아바타의 모션을 구현할 수 있다.
본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명 또는 종래 기술의 실시 예의 기술적 해결책을 보다 명확하게 설명하기 위해, 실시 예에 대한 설명에서 필요한 도면이 아래에서 간단히 소개된다. 아래의 도면들은 본 명세서의 실시 예를 설명하기 목적일 뿐 한정의 목적이 아니라는 것으로 이해되어야 한다. 또한, 설명의 명료성을 위해 아래의 도면들에서 과장, 생략 등 다양한 변형이 적용된 일부 요소들이 도시될 수 있다.
도 1은, 본 출원의 일 측면에 따른, 사용자 속성에 기반한 사용자 아바타를 생성하고 상기 사용자 아바타의 자연스러운 모션을 제어하는 장치 장치를 포함한 시스템의 개략도이다.
도 2는, 본 출원의 다양한 실시 예들에 따른, 사용자 속성의 개략도이다.
도 3은, 본 출원의 다른 일 측면에 따른, 사용자 속성에 기반한 사용자 아바타를 생성하고 상기 사용자 아바타의 자연스러운 모션을 제어하는 방법의 흐름도이다.
도 4는, 본 출원의 다양한 실시 예들에 따른, 사용자 속성, 아이템 속성의 인식 결과를 도시한다.
도 5는, 본 출원의 다양한 실시 예들에 따른, SMPL의 기준 모델과 사용자 속성이 반영된 아바타 기준 모델을 설명하는 도면이다.
도 6은, 본 출원의 다양한 실시 예들에 따른, 의류 아이템을 나타낸 3차원 아이템 모델의 개략도이다.
도 7은, 본 출원의 다양한 실시 예들에 따른, 상기 사용자 아바타 데이터를 제어하여 자연스러운 목표 모션을 구현하기 위한 상기 사용자 아바타의 모션 데이터를 생성하는 과정의 세부 흐름도이다.
도 8은, 본 출원의 다양한 실시 예들에 따른, 입력 포즈를 목표 모션으로 입력해 아바타 모델의 모션 데이터를 생성하는 과정을 예시적으로 설명하는 도면이다.
도 9는, 본 출원의 다양한 실시 예들에 따른, 특정 포즈의 시점에서 3차원 의류 모델의 변형 데이터를 예시적으로 설명한 도면이다.
도 10은, 본 출원의 다양한 실시 예들에 따른, 상기 사용자 아바타 데이터를 제어하여 자연스러운 시퀀스 모션을 구현하기 위한 상기 사용자 아바타의 모션 데이터를 생성하는 과정의 세부 흐름도이다.
이하에서, 도면을 참조하여 본 출원의 실시 예들에 대하여 상세히 살펴본다.
그러나, 이는 본 개시(disclosure)를 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 개시의 실시 예의 다양한 변경(modification), 균등물(equivalent), 및/또는 대체물(alternative)을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다.
본 명세서에서, "가진다," "가질 수 있다,""포함한다," 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 단계, 부품, 요소 및/또는 성분 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재나 부가를 제외시키는 것이 아니다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
다양한 실시 예에서 사용된 "제 1", "제 2", "첫째" 또는 "둘째" 등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 해당 구성요소들을 한정하지 않는다. 상기 표현들은 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 수 있다. 예를 들면, 제1 구성요소와 제2 구성요소는, 순서 또는 중요도와 무관하게, 서로 다른 구성요소를 나타낼 수 있다.
본 명세서에서 사용되는 단수 표현의 구성의 실시 예들은 상기 단수 표현과 관련된 문구들이 이와 명백히 반대의 의미를 나타내지 않는 한 복수 표현의 구성 들의 실시 예들도 포함한다.
본 명세서에서 사용된 표현 "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, "~에 적합한(suitable for)," "~하는 능력을 가지는(having the capacity to)," "~하도록 설계된(designed to)," "~하도록 변경된(adapted to)," "~하도록 만들어진(made to),"또는 "~를 할 수 있는(capable of)"과 바꾸어 사용될 수 있다. 용어 "~하도록 구성(또는 설정)된"은 하드웨어적으로 "특별히 설계된(specifically designed to)"것만을 반드시 의미하지 않을 수 있다. 대신, 어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성(또는 설정)된 프로세서"는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(generic-purpose processor)(예: CPU 또는 application processor)를 의미할 수 있다.
도 1은, 본 출원의 일 측면에 따른, 사용자 속성에 기반한 사용자 아바타를 생성하고 상기 사용자 아바타의 자연스러운 모션을 제어하는 장치장치를 포함한 시스템의 개략도이다.
도 1을 참조하면, 시스템(1)은 아이템 속성을 갖는 사용자 아바타의 모션을 시각적으로 자연스럽게 구현하는 방법을 수행하는 장치(100, 이하, 아바타 모션 생성 장치)를 포함한다.
실시 예들에 따른 시스템은 전적으로 하드웨어이거나, 또는 부분적으로 하드웨어이고 부분적으로 소프트웨어인 측면을 가질 수 있다. 예컨대, 시스템 또는 장치는 데이터 처리 능력이 구비된 하드웨어 및 이를 구동시키기 위한 운용 소프트웨어를 통칭할 수 있다. 본 명세서에서 "부(unit)", "시스템" 및 "장치" 등의 용어는 하드웨어 및 해당 하드웨어에 의해 구동되는 소프트웨어의 조합을 지칭하는 것으로 의도된다. 예를 들어, 하드웨어는 CPU(Central Processing Unit), GPU(Graphic Processing Unit) 또는 다른 프로세서(processor)를 포함하는 데이터 처리 기기일 수 있다. 또한, 소프트웨어는 실행중인 프로세스, 객체(object), 실행파일(executable), 실행 스레드(thread of execution), 프로그램(program) 등을 지칭할 수 있다.
상기 아바타 모션 생성 장치(100)는 하드웨어, 소프트웨어 또는 임베디드 로직 컴포넌트나 이들의 2 이상의 컴포넌트의 조합을 포함하고 컴포넌트(들)에 의해 구현되거나 지원되는 적절한 기능을 수행할 수 있는 컴퓨팅 시스템일 수도 있다. 상기 아바타 모션 생성 장치(100)는 예를 들어, 데스크톱 컴퓨터, 랩탑 컴퓨터, 넷북, 태블릿 컴퓨터, e-북 리더, GPS 장치, 카메라, 개인용 정보 단말기(PDA), 휴대용 전자 장치, 셀룰러 전화, 스마트폰, 기타 컴퓨팅 장치, 기타 모바일 장치, 기타 웨어러블 장치, 프로세서, 메모리 및 송수신부를 포함한 다른 적절한 전자 장치 또는 이들의 임의의 적절한 조합과 같은 컴퓨터 시스템일 수도 있다.
상기 아바타 모션 생성 장치(100)는 사용자 이미지를 획득하도록 구성된다.
본 출원의 다양한 실시 예들에서, 상기 아바타 모션 생성 장치(100)는 유/무선 전기 통신을 통해 연결된 촬영 장치(10)로부터 사용자 이미지를 획득할 수 있다.
촬영 장치(10)는 아바타에 대응한 사용자를 촬영하는 장치이다. 상기 촬영 장치(10)는 이미지 센서 또는 촬영 유닛을 포함한 다양한 형태로 구현될 수 있다. 예를 들어, 상기 촬영 장치(10)는 카메라, 스마트폰, 디지털 카메라, CCTV, 캠코더, 웹 캠, 기타 카메라일 수 있으나, 이에 제한되진 않는다.
상기 촬영 장치(10)는 아바타 모션 생성 장치(100)에 사용자가 나타난 사용자 이미지를 제공할 수 있다. 여기서, 사용자 이미지의 제공은 촬영 장치(10)에서 아바타 모션 생성 장치(100)로 유/무선 전기 통신을 통해 직접 전송되는 것에 제한되지 않는다. 상기 사용자 이미지의 제공은 촬영 장치(10)에서 외부 장치(예컨대, 컴퓨터)를 통해 아바타 모션 생성 장치(100)로 간접적으로 전송하는 것을 포함한다.
상기 사용자 이미지는 사용자의 얼굴 부분 및 신체 부분 중 적어도 일부를 포함할 수 있다. 예를 들어, 상기 사용자 이미지는 사용자의 얼굴 부분 및 신체 부분 전체를 포함한, 사용자의 전신을 포함할 수 있다.
상기 사용자 이미지는 이러한 부분들이 나타나도록 사용자를 촬영한 이미지(즉, 원본 이미지) 또는 사용자의 촬영 이미지를 상기 사용자의 정체성을 유지하면서 편집 또는 이미지 처리한 이미지일 수 있다.
상기 사용자 이미지는 사용자를 연속적으로 촬영한 비디오 형태 또는 사용자를 순간적으로 촬영한 캡처 이미지 형태일 수 있다. 촬영 이미지가 비디오 형태일 경우, 비디오 프레임의 집합이 촬영 이미지로서 아바타 모션 생성 장치(100)로 제공된다.
사용자 이미지는 사용자의 속성 및 사용자와 관련된 아이템의 속성을 시각적으로 표현한다.
본 출원의 다양한 실시 예들에서, 상기 아바타 모션 생성 장치(100)는 사용자가 나타난 사용자 이미지에서 사용자 속성, 사용자와 관련된 아이템 속성을 인식하는 속성 분석부(110), 인식된 사용자 속성 및 아이템 속성에 기초하여 사용자 아바타 데이터를 생성하는 아바타 생성부(130), 및 3차원 아바타 모델에 대한 목표 모션 데이터가 입력되면, 목표 모션대로 3차원 아바타 모델의 신체를 움직였을 때 상기 3차원 아이템 모델 또한 상기 3차원 아바타 모델에 대한 목표 모션에 대응해 자연스럽게 움직이는 것을 나타낸 사용자 아바타의 모션 데이터를 상기 사용자 아바타 데이터로부터 생성하는 모션 생성부(150)를 포함한다.
속성 분석부(110)는 사용자 이미지로부터 사용자의 객체 속성(이하, 사용자 속성), 상기 사용자와 관련된 아이템의 객체 속성(이하, 아이템 속성)을 분석할 수 있다. 사용자 속성은 사용자를 시각적으로 표현하는데 이용될 수 있고, 아이템 속성은 해당 아이템을 시각적으로 표현하는데 이용될 수 있다.
도 2는, 본 출원의 다양한 실시 예들에 따른, 사용자 속성의 개략도이다.
도 2를 참조하면, 사용자 속성은 사용자의 얼굴, 신체를 설명하는 정보일 수 있다. 사용자 속성은, 아래의 아이템 속성과 달리, 사용자 아바타가 모션을 취해 아바타 외형이 변하는 것에 응답하여 그 값이 변하지 않는다.
본 출원의 다양한 실시 예들에서, 상기 사용자 속성은 키, 신체 비율, 체형, 얼굴형, 얼굴 크기 중 하나 이상을 포함할 수 있다. 키, 신체 비율, 체형 중 적어도 하나가 신체 속성으로 검출되고, 얼굴형, 얼굴 크기 중 적어도 하나가 얼굴 속성으로 검출될 수 있다.
또한, 일부 실시 예들에서, 상기 얼굴 속성은 얼굴 세부 요소에 대한 세부 속성을 더 포함할 수 있다. 상기 얼굴 세부 요소는 코, 입, 눈썹 중 하나 이상일 수 있다. 상기 세부 속성은 해당 얼굴 세부 요소의 크기, 형상을 나타낼 수 있다. 그러면, 얼굴 속성은 얼굴형과 더불어서, 눈의 크기, 형상, 입의 크기, 형상 등을 포함할 수 있다.
또한, 일부 실시 예들에서, 상기 사용자 속성은 나이, 성별 중 하나 이상의 사용자 속성을 더 포함할 수 있다. 나이, 성별은 얼굴 속성 또는 신체 속성으로 산출될 수 있다. 나이는 수치로 직접 표현되거나, 또는 세대(generation) 등으로 간접적으로 표현되도록 설정될 수 있다.
아이템 속성은 사용자의 얼굴, 신체에 삽입, 접촉 또는 착용된 아이템을 설명하는 정보이다. 2차원 이미지에서 사용자의 얼굴을 포함한 전신 영역과 아이템의 영역이 부분적으로 중첩 가능한 객체이다.
사용자와 관련된 아이템은 사용자의 피부와 접촉하거나 신체 상에 착용되는 객체일 수 있다. 피부와 접촉하는 아이템은 피부 내부로 삽입되는 객체일 수 있다. 상기 사용자와 관련된 아이템은 사용자 아바타가 모션을 취해 아바타 외형이 변하는 것에 응답하여 그 값이 변할 수 있다. 예를 들어, 아이템의 위치, 또는 형상이 변하여, 그에 따른 아이템 속성 값이 변할 수 있다.
아이템 속성은, 아이템 각각에 대해, 하나 이상의 속성 항목 및 해당 항목의 속성 값으로 표현된다. 속성 분석부(110)는 미리 지정된 아이템 속성 항목에 대한 속성 값을 사용자 이미지로부터 분석할 수 있다.
본 출원의 다양한 실시 예들에서, 상기 아이템 속성은 아이템의 카테고리, 종류, 크기, 위치, 색상 중 하나 이상의 속성 항목을 포함할 수 있다.
상기 아이템은 패션 아이템을 포함할 수 있다. 즉, 아이템은 패션 아이템으로 카테고리화될 수 있다. 패션 아이템의 아이템 속성은 아이템의 카테고리 항목을 아이템 속성 항목으로 포함할 수 있다.
본 출원의 다양한 실시 예들에서, 상기 패션 아이템의 카테고리는 헤어, 얼굴 또는 신체에 연장 또는 착용 가능한 액세서리, 의류, 모자, 가방, 신발, 장갑 중 하나 이상일 수 있다.
헤어는 사용자의 얼굴 주변에 위치하는, 머리 피부에서 연장된 머리털을 나타낸다. 헤어는 신체에 연장 또는 착용 가능한 액세서리, 의류, 모자, 가방, 신발, 장갑과 같은 다른 패션 아이템과 달리 머리 피부로부터 탈/부착되지 않고 직접 연장된 형상을 가지지만, 사용자별로 상이한 헤어스타일을 가질 수 있고, 사용자 속성과 달리 신체가 움직이면 헤어의 형상이 변형될 수 있기 때문에 아이템으로 취급될 수 있다.
상기 헤어의 아이템 속성이 표현되는 헤어 객체의 부분은 머리 부분으로 지칭될 수 있다. 서로 다른 사용자 각각의 사용자 이미지에서 헤어의 아이템 속성은 각자의 헤어 스타일에 따른 형상을 가질 수 있다.
전술한 것처럼, 상기 헤어가 갖는 아이템 속성(헤어의 아이템 속성)은 헤어를 가리키는 카테고리를 아이템 속성으로 가진다.
또한, 상기 헤어의 아이템 속성은 헤어스타일 종류, 헤어 색상, 헤어 크기, 헤어 위치 중 하나 이상의 속성을 더 포함할 수 있다. 그러면, 상기 헤어의 아이템 속성은 카테고리와 더불어, 헤어스타일 종류, 색상, 크기, 위치 중 하나 이상의 속성으로 표현될 수 있다.
상기 헤어 크기는 머리털 가닥의 크기가 아닌, 머리 부분의 전체 크기를 의미한다. 상기 헤어 크기는 사용자 이미지에서 머리 부분의 영역 크기로부터 분석될 수 있다.
얼굴 또는 신체에 착용 가능한 액세서리, 의류, 모자, 가방, 신발, 장갑은 얼굴 또는 신체에 착용 가능한 패션 아이템을 나타낸다. 얼굴 또는 신체에 착용 가능한 패션 아이템에서 검출 가능한 아이템 속성은 착용 아이템의 아이템 속성으로 지칭될 수 있다.
전술한 것처럼, 상기 착용 아이템의 아이템 속성은 해당 착용 아이템을 가리키는 카테고리를 아이템 속성으로 가진다.
또한, 얼굴 또는 신체에 착용 가능한 패션 아이템은 카테고리 내 종류별로 서브 카테고리화될 수 있다. 그러면, 착용 아이템의 아이템 속성은 아이템의 종류 항목을 아이템 속성 항목으로 더 포함할 수 있다
본 출원의 다양한 실시 예들에서, 상기 액세서리의 종류는 안경, 선글라스, 반지, 목걸이, 팔찌, 귀걸이, 코걸이, 기타 피어싱 아이템, 기타 귀금속 아이템 중 하나 이상일 수 있다. 상기 사용자 이미지는 전술한 액세서리 중 하나 이상의 액세서리가 각각 나타난, 하나 이상의 액세서리 부분을 아이템 부분으로 포함할 수 있다.
상기 의류는 상의, 하의, 상하의가 통합된 의류(예컨대, 드레스)일 수 있다. 상기 사용자 이미지는 전술한 의류 중 하나 이상의 의류가 각각 나타난, 하나 이상의 의류 부분을 아이템 부분으로 포함할 수 있다.
상기 의류는 하나 이상의 의류 종류를 포함할 수 있다. 예를 들어, 도 2에 도시된 것처럼, 하의 아이템은 롱 또는 숏을 하위 종류로 가질 수 있다.
상기 신발의 종류는 부츠, 운동화, 구두, 및 기타 신발 종류 중 하나 이상일 수 있다.
또한, 상기 착용 아이템의 아이템 속성은 아이템 색상, 아이템 크기 중 하나 이상의 속성 정보를 더 포함할 수 있다.
상기 아이템 크기는 사용자 이미지에서 대상 아이템 부분의 영역 크기로부터 분석될 수 있다.
또한, 상기 속성 분석부(110)는 아이템 속성을 산출하여 아이템 속성이 시각적으로 표출된 아이템의 위치를 인식하도록 더 구성될 수 있다. 속성 분석부(110)는 아이템의 인식 위치와 검출된 아이템 속성을 서로 연관시킬 수 있다.
아이템의 인식 위치는 해당 아이템이 신체에 연장되거나 신체 상에 착용된 위치일 수 있다. 아이템 부분을 분석하면 아이템 속성이 검출된다.
헤어의 인식 위치는 사용자 이미지에서 헤어의 아이템 속성이 검출된 위치일 수 있다.
착용 아이템의 인식 위치는 사용자 이미지에서 대상 착용 아이템의 아이템 속성이 검출된 위치일 수 있다.
일부 실시 예들에서, 상기 아이템은 사용자가 탑승 가능한 탑승 아이템을 더 포함할 수 있다. 상기 탑승 아이템은 자전거, 퀵보드일 수 있으나, 이에 제한되진 않는다. 탑승 아이템의 아이템 속성은 탑승 아이템의 카테고리 항목, 크기, 색상을 포함할 수 있다.
이러한 아이템 속성을 산출하여 아이템의 위치를 인식하는 속성 분석부(110)의 동작에 대해서는 아래에서 보다 상세히 서술한다.
사용자 아바타는 사용자 속성이 반영된 아바타 외형과 사용자의 아이템 속성이 반영된 아이템 외형을 모두 지칭하는 개념이다. 즉, 사용자 아바타는 상기 사용자 속성이 반영된 아바타 외형에 제한되지 않는다.
아바타 모션 생성 장치(100)에서 생성된 사용자 아바타는 사용자 속성을 3차원 공간에 시각화한 3차원 아바타 모델 및 3차원 아이템 모델의 조합으로 구현될 수 있다. 3차원 아이템 모델은 3차원 아바타 모델에 연장되거나 또는 3차원 아바타 모델에 착용되는 객체를 3차원 모델링한 것이다. 3차원 아바타 모델에 연장되는 3차원 아이템 모델은 두피 부분에 연장된 헤어의 형상을 3차원으로 모델링한 것, 피부를 적어도 부분적으로 관통한 피어싱 아이템의 형상을 3차원으로 모델링한 것일 수 있다. 3차원 아바타 모델에 착용되는 3차원 아이템 모델은 팔 주변에 위치하는 팔찌 형상을 3차원으로 모델링한 것, 상체/하체 위에 위치하는 옷 형상을 3차원으로 모델링한 것일 수 있다.
사용자 아바타 데이터는 이러한 사용자 아바타를 구현하는 데이터로서, 사용자 속성을 3차원 공간에 시각화한 3차원 아바타 모델을 나타낸 3차원 아바타 모델 데이터 및 3차원 아이템 모델을 나타낸 3차원 아이템 모델 데이터를 포함한다. 또한, 상기 3차원 아이템 모델의 위치 데이터를 포함할 수 있다. 상기 3차원 아이템 모델의 위치 데이터는 상기 3차원 아바타 모델에 대한 상기 3차원 모델의 위치 관계를 서술한다. 3차원 아이템 모델의 위치 데이터로 인해 상기 3차원 아이템 모델이 상기 3차원 아바타 모델에 연장되거나 착용된 상태가 유지된다.
상기 3차원 아바타 모델 데이터는 아바타의 형상을 나타낸 3차원 아바타 모델의 형상 데이터, 기타 아바타 관련 정보를 나타낸 기타 데이터(예컨대, 속성 데이터)를 포함할 수 있다.
상기 3차원 아이템 모델 데이터는 아이템의 형상을 나타낸 3차원 아이템 모델의 형상 데이터, 기타 아이템 관련 정보를 나타낸 기타 데이터(예컨대, 속성 데이터)를 포함할 수 있다.
상기 아바타 생성부(130)는 실사형 아바타 또는 캐릭터형 아바타를 생성할 수 있다.
상기 아바타 모션 생성 장치(100)는 실사형 아바타를 생성하기 위한 실사형 데이터를 저장하는 실사 DB(131)를 포함한다. 상기 실사형 데이터는 실사형 기본 전신을 나타낸, 실사형 아바타 기준 모델 데이터, 아이템의 실제 형상을 나타낸 실사형 에셋 데이터를 포함한다. 상기 실사형 에셋 데이터는 실사형 에셋 데이터가 나타낸 아이템이 갖는 실제 속성 데이터, 및 실사형 에셋 데이터가 나타낸 아이템의 실제 형상 데이터를 포함한다. 실제 아이템의 속성과 실제 아이템의 형상은 서로 연관되어 있다. 상기 아이템의 실제 형상 데이터는 2차원 또는 3차원 형상을 나타낸 것일 수 있다.
상기 아바타 모션 생성 장치(100)는 실사형 아바타 기준 모델 데이터를 이용하여 사용자 속성이 적용 가능한, 실제 스타일의 3차원 아바타 기준 모델(S)을 생성할 수 있다.
아바타 기준 모델 데이터는 미리 설정된 기준 포즈를 취한 3차원 모델이다. 상기 기준 포즈는 차렷 포즈 또는 (흔히 대(大)자 포즈로 지칭되는) 양팔을 좌우로 펼친 포즈일 수 있으나, 이에 제한되진 않는다.
일부 실시 예들에서, 상기 실사형 아바타 기준 모델 데이터는 실사형 전신 모델을 구성하는 관절점 세트를 나타낸, 관절점 데이터 세트를 포함할 수 있다. 세트 내 개별 관절점 데이터는 개별 관절점의 식별정보(예컨대, 식별번호), 전신에서 관절점의 위치정보, 해당 관절점 자신과 연결된 다른 관절점(들)의 식별정보, 관절점 간의 관절 거리를 포함할 수 있으나, 이에 제한되진 않는다. 만약 아바타 기준 모델이 전체 24개의 관절점을 포함할 경우, 각각의 관절점은 1번 내지 24번의 번호가 식별번호로서 부여될 수 있다.
본 출원의 다양한 실시 예들에서, 각각의 관절점 데이터는, 관절점별 구동 각도 범위 정보, 구동 방향 범위 정보를 더 포함할 수 있다.
관절점은 관절점 위치별로 해당 관절점에서 구동 범위, 구동 방향이 설정될 수 있다. 구동 범위는 관절점을 기준으로 특정 뼈가 고정되었을 때 상기 특정 뼈와 함께 관절점을 형성하는 다른 뼈가 움직일 수 있는 각도의 범위이다. 구동 방향은 구동 범위 내에서 관절점을 기준으로 특정 뼈가 고정되었을 때 상기 특정 뼈와 함께 관절점을 형성하는 다른 뼈가 움직이는 방향이다. 구동 범위, 구동 방향은 3차원 공간 상에서 표현될 수 있다.
관절점의 구동 범위, 구동 방향은 모델의 외형 연결점들의 이동 가능 범위를 제공한다. 상기 모델의 외향 연결점들의 이동 가능 범위는 각각의 외형 연결점들이 포함된 신체 부위가 관절점의 구동 범위, 구동 방향에 따라 움직이는 것을 기준으로 3차원 공간 상에 표현될 수 있다.
일부 실시 예들에서, 상기 실사형 아바타 기준 모델 데이터는 SMPL 알고리즘에 따른 아바타 기준 모델 데이터일 수 있다. 상기 아바타 기준 모델(standard model)은 수천명의 샘플 대상의 형상을 렌더링하여 통계적으로 종합해 생성한 것이다.
상기 실사형 에셋 데이터는 인터넷 크롤링 등을 통해 사용자가 착용 가능하거나 연장 가능한 다양한 아이템의 실제 촬영 이미지 데이터 또는 렌더링 데이터일 수 있다. 상기 실제 촬영 이미지 데이터는 다양한 뷰포인트에서 바라본 해당 아이템의 2차원 형상을 나타낸다. 렌더링 데이터는 실제 3차원 형상을 나타낸다.
상기 실사형 에셋 데이터는 아이템으로 표출되는 아이템 속성, 아이템의 실제 형상을 나타낸다. 상기 아바타 모션 생성 장치(100)는 검출된 사용자의 아이템 속성에 매칭한 아이템 속성을 갖는 실사형 에셋 데이터를 검색하여 상기 사용자의 아이템 속성에 매칭한 아이템의 실제 형상 데이터를 획득할 수 있다. 상기 아바타 모션 생성 장치(100)는 사용자의 아이템 속성에 매칭한 아이템의 실제 형상 데이터를 이용하여 사용자의 아이템 속성에 매칭한 아이템의 3차원 실제 형상을 나타낸 3차원 아이템 모델을 생성할 수 있다.
또한, 상기 아바타 모션 생성 장치(100)는 캐릭터형 아바타를 생성하기 위한 캐릭터형 데이터를 저장하는 캐릭터 DB(132)를 포함한다.
캐릭터형 데이터는 복수의 그룹으로 분류될 수 있다. 동일한 캐릭터 그룹에 속하는 캐릭터들이 서로 유사한 스타일, 색상, 또는 기타 디자인 요소를 공유하는 것일 수 있다. 상기 캐릭터 그룹은 사용자에 의해 지정될 수 있다. 예를 들어, 상기 캐릭터 그룹은 동일한 컨텐츠(예컨대, 게임, 영화, 애니메이션, 기타 시리즈물)에 출연한 캐릭터들을 구성원으로 가질 수 있다.
상기 캐릭터형 데이터는 캐릭터형 기본 전신을 나타낸, 캐릭터형 전신 데이터, 캐릭터 스타일에 따른 아이템의 형상을 나타낸 캐릭터형 에셋 데이터를 포함한다. 캐릭터 스타일은 실제 사람 스타일과 달리, 색상, 신체 비율, 기타 신체 구성이 다른 스타일이다.
캐릭터형 전신 데이터, 캐릭터형 에셋 데이터는 실사형 아바타 기준 모델 데이터, 실사형 에셋 데이터와 유사하므로, 차이점을 위주로 서술한다.
상기 캐릭터 DB(132)에 저장된 상기 캐릭터형 전신 데이터는 얼굴 부분의 형상을 나타내는 캐릭터형 얼굴 에셋 데이터, 및 얼굴을 제외한 나머지 신체 부분의 형상을 나타내는 캐릭터형 신체 에셋 데이터를 포함한다.
상기 캐릭터형 얼굴 에셋 데이터는 해당 캐릭터 스타일로 얼굴 관련 속성을 모델링한 형상을 나타낸다. 상기 얼굴 에셋 데이터는 다양한 얼굴 에셋 데이터를 포함할 수 있다. 상기 얼굴 에셋 데이터는 얼굴형, 눈, 코, 입, 눈썹, 기타 얼굴 요소에 대한 형상 데이터일 수 있다.
상기 캐릭터형 신체 에셋 데이터는 해당 캐릭터 스타일로 신체를 모델링한 형상을 나타낸다. 캐릭터에 따라 키, 신체 비율, 체형이 보정되는 방식으로 캐릭터화될 수 있다. 예를 들어, 사용자의 아바타가 난쟁이 캐릭터형 아바타일 경우, 난쟁이 캐릭터에 미리 설정된 키, 신체 비율, 체형이 반영된 사용자의 아바타가 생성될 수 있다.
캐릭터형 에셋 데이터는 사람의 헤어, 아이템과 같은 아이템을 캐릭터화한 것을 나타낸다. 실사형 아이템의 에셋 데이터와 달리, 상기 캐릭터형 에셋 데이터는 아이템의 형상이 적어도 부분적으로 과장되거나 생략되거나, 또는 변경될 수 있다.
상기 캐릭터형 에셋 데이터는 전술한 것처럼 안경, 선글라스, 반지, 귀걸이, 코걸이, 팔찌, 피어싱 아이템과 같이 다양한 아이템의 에셋 데이터를 포함할 수 있다.
캐릭터형 에셋 데이터는, 동일한 캐릭터 그룹에 속하는 캐릭터형 전신 데이터를 생성하는데 이용된 캐릭터화 기법을 해당 아이템의 형상에 적용하여, 생성된 것일 수 있다. 상기 캐릭터형 에셋 데이터는 동일한 캐릭터 그룹에 속하는 캐릭터의 형상에 결합되거나(예컨대, 캐릭터화된 헤어), 착용되는 경우(예컨대, 캐릭터화된 아이템), 이질감 없이 자연스럽게 조화되는 형상으로 나타난다.
상기 아바타 모션 생성 장치(100)는 캐릭터형 전신 데이터를 이용하여 사용자 속성이 적용 가능한, 캐릭터 스타일의 3차원 아바타 기준 모델을 생성할 수 있다.
상기 캐릭터형 전신 데이터는 실사형 아바타 기준 모델 데이터와 유사하게, 캐릭터형 전신 모델을 구성하는 관절점 세트를 나타낸, 관절점 데이터 세트를 포함할 수 있다. 상기 캐릭터형 관절점의 수, 위치는 실사형 관절점의 수, 위치와 적어도 일부가 상이할 수 있다.
상기 캐릭터형 에셋 데이터는 아이템으로 표출되는 아이템 속성, 캐릭터 스타일에 따른 아이템의 형상(즉, 아이템의 캐릭터 형상)을 나타낸다. 즉, 캐릭터형 에셋 데이터는 실사형 에셋 데이터와 아이템 속성은 적어도 부분적으로 동일할 수 있다(예컨대, 카테고리, 아이템 종류 등).
상기 아바타 모션 생성 장치(100)는 사용자의 아이템 속성에 매칭한 아이템의 캐릭터 형상 데이터를 이용하여 사용자의 아이템 속성에 매칭한 아이템의 3차원 캐릭터 스타일의 형상을 나타낸 3차원 아이템 모델을 생성할 수 있다.
이러한 사용자 아바타를 생성하는 아바타 생성부(130)의 동작에 대해서는 아래에서 보다 상세히 서술한다.
상기 아바타 모션 생성 장치(100)는 사용자 아바타에서 아바타 형상과 아이템이 서로 조화된, 자연스러운 모션으로 사용자 아바타의 모션을 구동시킬 수 있다.
자연스러운 모션은 아바타 형상이 움직이는 동안 아바타 형상과 아이템이 서로 충돌하지 않는다. 사람이 한쪽 팔을 들어올릴 때, 사람의 팔 부분이 옷의 팔 부분 밖으로 적어도 부분적으로 빠져나오면 사람의 팔 외형과 옷 사이에 충돌이 발생한다. 옷의 팔 부분 또한 사람의 팔 부분의 들어올리는 움직임에 따라 형상이 변형되어야 사람의 팔 외형과 옷 사이에 충돌이 발생하지 않고, 결국 사람이 한쪽 팔을 들어올리는 모션이 자연스럽게 구현된다.
이를 위해, 아바타 모션 생성 장치(100)는 사용자가 원하는 목표 모션대로 3차원 아바타 모델의 형상이 변형되는 것을 나타낸 3차원 아바타 모델의 모션 데이터를 상기 3차원 아바타 모델 데이터로부터 생성하고, 3차원 아이템 모델의 형상을 상기 목표 모션에 대응하도록 변형하거나 또는 3차원 아이템 모델의 위치를 상기 목표 모션에 대응하도록 이동시키는 것을 나타낸 3차원 아이템 모델의 모션 데이터를 상기 가변 모델 데이터로부터 생성하도록 더 구성된다. 즉, 아바타 모션 생성 장치(100)는 사용자 아바타 데이터에서 상기 3차원 아바타 모델을 제어해 목표 모션을 취하는 상기 3차원 아바타 모델을 구현하고, 상기 3차원 아이템 모델을 제어해 상기 3차원 아바타 모델의 목표 모션에 대응해 상기 3차원 아이템 모델을 변형 또는 이동시킬 수 있다.
일부 실시 예들에서, 상기 아바타 모션 생성 장치(100)는 모션 DB(151)를 포함할 수 있다.
모션 DB(151)는 다양한 포즈를 나타낸 포즈 데이터를 저장한다. 상기 포즈 데이터는 모델 형상 내부에 위치한 관절점들과 관련된 정보를 가진다. 모션 DB(151)는 포즈 데이터 내 포즈별 관절점 데이터 세트를 저장할 수 있다. 포즈별 관절점 데이터 세트 내 개별 관절점 데이터는 해당 포즈를 구현하기 위한 관절점 세트의 개별 관절점 각각의 위치를 나타낸다. 개별 관절점들은 관절점 식별정보로 식별될 수 있다.
상기 모션 생성부(150)는 사용자의 포즈 프롬프트가 입력되면 상기 모션 DB(151)에 저장된 포즈 데이터를 이용하여 목표 모션 데이터를 생성할 수 있다.
이러한 모션 데이터의 생성에 대해서는 아래에서 보다 상세히 서술한다.
상기 아바타 모션 생성 장치(100)에 의해 생성된 모션 데이터는 사용자의 아이템의 형상, 위치를 아바타 형상이 취하는 모션에 따라 조화롭게 변하는 것을 나타낸다. 결국, 이러한 모션 데이터를 이용하면, 아바타 전체의 모션을 시간의 흐름에 따라 매우 자연스럽게 구현할 수 있다.
본 출원의 실시 예들에 따른 아바타 모션 생성 장치(100)는 전술한 사용자 속성만을 검출하도록 구성되는 것으로 제한되어 해석되지 않는다. 상기 아바타 모션 생성 장치(100)는 실시 예들에 따라서 전술한 사용자 속성(세부 속성) 이외에 사용자가 이미지를 통해 표출할 수 있는 다양한 신체적, 아이템적 속성을 검출하도록 변형될 수 있다.
상기 시스템(1)이 다른 구성요소를 포함할 수도 있다는 것이 통상의 기술자에게 명백할 것이다. 예를 들어, 시스템(1)은 데이터 엔트리를 위한 입력 장치, 및 인쇄 또는 다른 데이터 표시를 위한 출력 장치를 포함하는, 본 명세서에 서술된 동작에 필요한 다른 하드웨어 요소를 포함할 수도 있다.
본 출원의 다른 일 측면에 따른 아이템 속성을 갖는 사용자 아바타의 모션을 시각적으로 자연스럽게 구현하는 방법은 컴퓨팅 장치(예컨대, 아바타 모션 생성 장치(100))에 의해 수행될 수 있다.
도 3은, 본 출원의 다른 일 측면에 따른, 사용자 속성에 기반한 사용자 아바타를 생성하고 상기 사용자 아바타의 자연스러운 모션을 제어하는 방법의 흐름도이다.
도 3을 참조하면, 상기 방법은, 사용자가 나타난 사용자 이미지를 수신하는 단계(S301); 및 (예컨대, 속성 분석부(110)에 의해) 상기 사용자 이미지 내 관심 영역을 분석하여 사용자 속성(얼굴 속성, 신체 속성), 및 사용자와 관련된 아이템 속성을 인식하고 상기 아이템 속성을 제공하는 아이템의 위치를 인식하는 단계(S310)를 포함한다.
본 출원의 다양한 실시 예들에서, 상기 단계(S310)는, 사용자 이미지에서 사용자 얼굴이 나타난 제1 관심 영역 및 사용자 신체가 나타난 제2 관심 영역을 각각 검출하는 단계; 상기 제1 관심 영역, 상기 제2 관심 영역에서 미리 학습된 속성 인식 모델을 이용하여 상기 사용자 이미지에 시각적으로 표출되어 있는 사용자 속성 및 아이템 속성을 인식하는 단계; 및 인식된 아이템 속성을 제공하는 사용자의 아이템의 위치를 사용자 이미지에서 인식하는 단계를 포함할 수 있다.
속성 분석부(110)는 바운딩 박스 형태로 관심 영역을 검출하도록 구성될 수 있다. 상기 관심 영역은 아이템 속성 및 사용자 속성 중 적어도 하나의 속성이 표현되는, 상기 사용자 이미지 내 부분 영역이다.
제1 관심 영역은 사용자의 얼굴 부분이 나타난 얼굴 영역이고, 제2 관심 영역은 사용자의 신체 부분이 나타난 신체 영역이다.
제2 관심 영역과 제1 관심 영역은 적어도 부분적으로 중첩될 수 있다. 제2 관심 영역은 사용자의 얼굴 부분을 적어도 부분적으로 포함할 수 있다. 일부 실시 예들에서, 상기 제2 관심 영역은 얼굴과 신체를 포함한 전신 영역일 수 있다.
상기 속성 분석부(110)는 제1 관심 영역 또는 제2 관심 영역을 검출하기 위해 미리 설정된 영역 검출 알고리즘을 통해 상기 관심 영역을 검출할 수 있다(S310). 상기 영역 검출 알고리즘은, 예를 들어 SIFT(Scale Invariant Feature Transform), HOG(Histogram of Oriented Gradient), Haar, 딥러닝 모델 방식, 또는 관심 객체(즉, 얼굴, 전신)을 포함한 바운딩 박스 형태로 관심 영역을 검출 가능한 기타 얼굴 영역 검출 알고리즘일 수 있다. 상기 딥러닝 모델은 입력 이미지에서 특징을 추출해 해당 관심 객체를 검출하도록 구성된 인공신경망 구조를 가진다. 상기 인공신경망 구조는, 예를 들어 CNN일 수 있으나, 이에 제한되진 않는다.
일부 실시 예들에서, 상기 속성 분석부(110)는 입력 이미지에서 관심 영역을 검출하기 이전에, 밝기, 대비(contrast), 색 균형 등을 조정하는 것과 같은 이미지 품질을 개선 가능한 다양한 전처리를 수행할 수 있다.
일부 실시 예들에서, 상기 속성 분석부(110)는 얼굴 영역을 검출하기 위한 제1 영역 검출 알고리즘, 신체 영역을 검출하기 위한 제2 영역 검출 알고리즘을 포함할 수 있다. 상기 제1 영역 검출 알고리즘, 제2 영역 검출 알고리즘은 동일하거나 서로 상이할 수 있다.
본 출원의 다양한 실시 예들에서, 속성 분석부(110)는 랜드마크 검출 모델을 포함할 수 있다. 얼굴 영역에서 랜드마크는 눈, 코, 입과 같은 얼굴의 특정 지점이다. 신체 영역에서 랜드마크는 관절점과 같이 포즈를 정의할 수 있는 신체의 특정 지점이다.
상기 랜드마크 검출 모델은 딥러닝 모델 또는 이미지 처리 모델일 수 있다. 상기 속성 분석부(110)는 본 출원의 출원일 이전에 공개된 다양한 랜드마크 검출 모델을 이용하여 사용자 이미지에서 얼굴 영역, 신체 영역의 랜드마크를 각각 검출할 수 있다.
그러면, 상기 단계(S310)는, 사용자 속성을 산출하기 이전에, 얼굴 영역, 신체 영역의 랜드마크를 검출하는 단계;를 포함할 수 있다.
속성 분석부(110)는 얼굴 영역, 신체 영역의 랜드마크에 기초하여 상기 얼굴 영역, 신체 영역에서 사용자 속성을 산출할 수 있다.
본 출원의 다양한 실시 예들에서, 상기 속성 분석부(110)는 미리 학습된 속성 인식 모델을 이용하여 검출된 얼굴 영역, 신체 영역에서 사용자 속성을 산출할 수 있다(S310).
상기 속성 인식 모델은 입력 이미지에서 특징을 추출하고 추출된 특징에 기초해 입력 이미지 내 관심 객체에 시각적으로 표현된 속성을 인식하도록 기계학습된, 인공신경망 모델이다. 상기 속성 인식 모델은 입력 이미지에서 추출된 특징과 속성 간의 상관 관계를 추론해, 사용자 속성 또는 아이템 속성을 인식하고 인식 결과를 출력하도록 구성될 수 있다. 구체적으로, 상기 속성 인식 모델은 입력 이미지에서 사용자 부분(얼굴 부분, 신체 부분)을 인식하여 사용자 속성에서 적어도 하나의 속성 항목에 대한 속성 값을 산출하고, 그리고 상기 입력 이미지에서 아이템 부분을 인식하여 아이템 속성에서 적어도 하나의 속성 항목에 대한 속성 값을 산출할 수 있다.
사용자 속성이 특정 부분에서 산출되면, 산출된 특정 부분은 사용자의 얼굴 부분 또는 신체 부분으로 인식된다. 또한, 아이템 속성이 특정 부분에서 산출되면, 산출된 특정 부분은 아이템 부분으로 인식된다.
본 출원의 다양한 실시 예들에서, 상기 속성 분석부(110)는 얼굴 영역에서 사용자 속성 및 얼굴 주변의 아이템에 대한 아이템 속성을 산출하는 제1 속성 인식 모델, 및 신체 영역에서 사용자 속성 및 신체 주변의 아이템에 대한 아이템 속성을 산출하는 제2 속성 인식 모델을 포함할 수 있다.
그러면, 상기 단계(S310)는, 제1 관심 영역의 이미지를 상기 제1 속성 인식 모델에 입력하여 얼굴 영역에서 사용자 속성 및 얼굴 주변의 아이템에 대한 아이템 속성을 산출하는 단계; 및 제2 관심 영역의 이미지를 상기 제2 속성 인식 모델에 입력하여 신체 영역에서 사용자 속성 및 신체 주변의 아이템에 대한 아이템 속성을 산출하는 단계를 포함할 수 있다.
상기 속성 분석부(110)는 제1 속성 분석 모델에서 얼굴 속성이 검출된 부분을 얼굴 부분으로 결정하고, 제2 속성 분석 모델에서 신체 속성이 검출된 부분을 신체 부분으로 결정한다.
제1 속성 인식 모델, 제2 속성 인식 모델에서 관심 영역의 이미지가 입력 데이터로 설정된다. 여기서, 입력 데이터는 관심 영역의 원본 이미지 또는 상기 원본 이미지를 전처리한 이미지일 수 있다.
제1 속성 인식 모델은 얼굴 영역이 입력 이미지로 입력되면, 상기 얼굴 영역에서 추출된 얼굴 특징, 상기 얼굴 영역에서 사용자와 관련된 아이템 부분의 특징을 추출하도록 구성된다.
본 출원의 다양한 실시 예들에서, 제1 속성 인식 모델은 특징 추출부; 및 인식부를 포함한다.
상기 특징 추출부는 필터를 이용하여 특징을 추출하도록 구성된 것으로서, 예를 들어 컨볼루션 필터를 포함한 CNN(Convolution neural network), 또는 CNN과 다른 레이어를 포함한 구조를 가질 수 있다.
컨볼루션 필터는 로컬 공간 정보를 특징으로 캡처하는 기능을 가지는 필터이다. 필터의 특징 추출 성능은 모델의 목적에 적합하게 학습될 수 있다.
상기 컨볼루션 필터를 통해 검출될 수 있는 특징은, 예를 들어 입력 이미지 내 에지, 선, 질감(texture), 패턴, 얼룩, 기타 기하학적 성분일 수 있다.
에지, 선은 다른 객체, 영역 사이를 식별하는데 이용될 수 있다. 모서리는 에지로 식별될 수 있다.
질감, 패턴은 줄무늬, 점, 또는 그라데이션과 같은 특정 질감, 패턴일 수 있다.
얼룩은 특정 강도 분포가 있는 영역에서 추출될 수 있다. 필터는 특정 형상 또는 픽셀 배열이 있는 영역을 얼룩으로 추출할 수 있다.
제1 속성 인식 모델에서 특징 추출부는 얼굴 영역에서 얼굴 부분의 얼굴 특징(facial features), 및 상기 얼굴 영역에서 사용자와 관련된 아이템 부분의 특징을 추출할 수 있다.
상기 인식부는 상기 특징 추출부에서 추출된 특징에 기초해 사용자 속성, 아이템 속성을 산출하도록 구성된다.
상기 인식부는 시냅스의 결합으로 네트워크를 형성한 인공 뉴런(노드)들로 구성된 구조를 가진다. 상기 인식부는 완전 연결층, 또는 MLP(Multi-Layer Perceptron)의 적어도 일부분을 포함할 수 있다.
상기 인식부는 특징 추출부에서 추출된 특징 및 해당 관심 영역에서의 랜드마크 검출 결과를 입력 데이터로 가진다. 구체적으로, 상기 제1 속성 인식 모델에서 상기 인식부는 얼굴 영역에서 추출된 얼굴 특징, 상기 얼굴 영역에서 사용자와 관련된 아이템 부분의 특징, 및 얼굴 영역에서의 랜드마크 검출 결과를 입력 받아, 얼굴 부분이 갖는 얼굴 속성을 사용자 속성으로 산출하며 그리고 얼굴 부분 주변의 아이템에 대한 아이템 속성을 산출할 수 있다.
일부 실시 예들에서, 상기 특징 추출부에서 추출된 특징 및 해당 관심 영역에서 랜드마크 검출 결과는 결합(concanate)되어 인식부로 입력될 수 있다. 결합되는 추출된 특징은 얼굴 특징과 아이템 부분의 특징을 포함하거나 또는 신체 특징과 아이템 부분의 특징을 포함한다.
랜드마크 검출 결과는 결합되기 이전에 벡터 형태로 수치화될 수 있다. 일부 실시 예들에서, 상기 랜드마크 검출 결과는 검출 가능한 전체 랜드마크 각각에 대한 검출 값의 벡터일 수 있다. 일부 실시 예들에서, 상기 검출 값은 관심 영역에서 검출된 랜드마크의 위치 값일 수 있다.
인공신경망에서 각 뉴런은 시냅스를 통해 입력되는 입력 신호들, 가중치, 편향에 대한 활성 함수의 함수값을 출력할 수 있다.
모델 파라미터는 학습을 통해 결정되는 파라미터를 의미하며, 시냅스 연결의 가중치(weights)와 뉴런의 편향(bais) 등이 포함된다. 그리고, 하이퍼파라미터는 머신러닝 알고리즘에서 학습 전에 설정되어야 하는 파라미터를 의미하며, 학습률(Learning Rate), 반복 횟수, 미니 배치 크기, 초기화 함수 등이 포함된다.
인공신경망의 학습의 목적은 손실 함수를 최소화하는 모델 파라미터를 결정하는 것으로 볼 수 있다. 손실 함수는 인공신경망의 학습 과정에서 최적의 모델 파라미터를 결정하기 위한 지표로 이용될 수 있다.
상기 제1 속성 인식 모델의 학습 목적은 사용자의 얼굴 부분, 상기 얼굴 부분 주변의 아이템 부분이 나타난 입력 이미지에서 특징을 추출하고 추출된 특징에 기초해 얼굴 속성을 사용자 속성으로 인식하며 그리고 아이템 속성을 인식하는 것이다.
상기 제1 속성 인식 모델에서 모델 파라미터는 제1 트레이닝 데이터 세트를 이용하여 학습된다. 상기 제1 트레이닝 데이터 세트는 복수의 트레이닝 샘플로 이루어지며, 각각의 트레이닝 샘플은 트레이닝 데이터 및 레이블 데이터을 포함한다. 상기 제1 세트 내 트레이닝 데이터는 샘플 사용자의 얼굴 부분 이미지이고, 레이블 데이터는 해당 얼굴 부분 이미지에 나타난 얼굴 속성의 실제 값 및/또는 얼굴 주변의 아이템 속성의 실제 값을 포함한다.
상기 제1 속성 인식 모델은 제1 트레이닝 데이터 세트 내 트레이닝 데이터가 입력되면 상기 트레이닝 데이터에서 특징을 추출해 예측된 얼굴 속성, 및 얼굴 부분의 아이템 속성을 산출하도록 학습될 수 있다. 구체적으로, 모델의 학습 동안 예측된 얼굴 속성과 레이블 데이터의 실제 얼굴 속성이 비교되고 예측된 아이템 속성과 레이블 데이터의 실제 아이템 속성이 비교된다. 학습을 통해 제1 트레이닝 데이터 세트 내 복수의 트레이닝 샘플에 대해, 예측된 속성과 실제 속성 간의 차이가 최소화되도록 상기 제1 속성 인식 모델의 모델 파라미터가 학습된다.
제2 속성 인식 모델은 제1 속성 인식 모델과 속성 인식의 목적, 구조 측면에서 유사하므로, 차이점을 위주로 서술한다.
상기 제2 속성 인식 모델은 제1 속성 인식 모델과 마찬가지로 특징 추출부; 및 인식부를 포함할 수 있다.
상기 제2 속성 인식 모델에서 특징 추출부는 사용자의 신체 부분이 나타난 입력 이미지에서 특징을 추출한다. 상기 제2 속성 인식 모델의 특징 추출부는 신체 영역에서 신체 부분의 신체 특징(body features), 및 상기 신체 영역에서 사용자와 관련된 아이템 부분의 특징을 추출할 수 있다.
상기 제2 속성 인식 모델에서 인식부는 추출된 특징에 기초해 입력 이미지에서 신체 속성을 사용자 속성으로 산출하며, 추출된 특징에 입력 이미지에서 신체 부분 주변의 아이템 속성을 산출할 수 있다.
본 출원의 다양한 실시 예들에서, 상기 제2 속성 인식 모델에서 인식부는 신체 영역에서 추출된 신체 특징, 상기 신체 영역에서 사용자와 관련된 아이템 부분의 특징, 상기 신체 영역에서의 랜드마크 검출 결과를 입력 받아, 신체 부분이 갖는 신체 속성을 산출하며 그리고 신체 부분 주변의 아이템에 대한 아이템 속성을 산출할 수 있다.
일부 실시 예들에서, 제1 속성 인식 모델, 제2 속성 인식 모델에서 특징 추출부, 인식부의 세부 구조는, 각각의 속성을 보다 잘 인식하기 위해, 서로 상이할 수 있다.
상기 제2 속성 인식 모델의 학습 과정은 상기 제1 속성 인식 모델의 학습 과정과 유사하다.
상기 제2 속성 인식 모델에서 모델 파라미터는 제2 트레이닝 데이터 세트를 이용하여 학습된다. 상기 제2 트레이닝 데이터 세트는 복수의 트레이닝 샘플로 이루어지며, 각각의 트레이닝 샘플은 트레이닝 데이터 및 레이블 데이터을 포함한다. 상기 제2 세트 내 트레이닝 데이터는 샘플 사용자의 신체 부분 이미지이고, 레이블 데이터는 해당 신체 부분 이미지에 나타난 신체 속성의 실제 값 및/또는 신체 주변의 아이템 속성의 실제 값을 포함한다.
상기 제2 속성 인식 모델은 제2 트레이닝 데이터 세트 내 트레이닝 데이터가 입력되면 상기 트레이닝 데이터에서 특징을 추출해 예측된 신체 속성, 및 신체 부분의 아이템 속성을 산출하도록 학습될 수 있다. 구체적으로, 모델의 학습 동안 예측된 신체 속성과 레이블 데이터의 실제 신체 속성이 비교되고 예측된 아이템 속성과 레이블 데이터의 실제 아이템 속성이 비교된다. 학습을 통해 제2 트레이닝 데이터 세트 내 복수의 트레이닝 샘플에 대해, 예측된 속성과 실제 속성 간의 차이가 최소화되도록 상기 제2 속성 인식 모델의 모델 파라미터가 학습된다.
상기 제1, 제2 트레이닝 데이터 세트는 동일한 객체에 대해 해상도, 촬영 거리가 다양하게 조절된, 다양한 촬영 조건에서 촬영된 트레이닝 데이터들을 포함할 수 있다. 이러한 트레이닝 데이터 세트를 이용해 학습된 속성 인식 모델은 다양한 촬영 조건 하에서 촬영된 사용자 이미지가 시스템(1)에 입력되어도 사용자의 아이템 속성, 사용자 속성을 인식할 수 있다.
상기 속성 분석부(110)는 이와 같이 학습된 제1 속성 인식 모델을 이용하여 사용자의 얼굴 영역으로부터 사용자 속성 중 얼굴 속성(예컨대, 얼굴형, 눈, 코, 입, 눈썹), 그리고 사용자의 얼굴에 접촉한 아이템(예컨대, 헤어) 또는 사용자의 얼굴 부분에 착용 가능한 아이템(예컨대, 안경, 선글라스, 귀걸이, 기타 얼굴에 착용 가능한 아이템)의 아이템 속성을 검출할 수 있다(S310).
또한, 상기 속성 분석부(110)는 제1 속성 분석 모델에서 얼굴 속성이 검출된 부분을 얼굴 부분으로 결정할 수 있다. 또한, 상기 속성 분석부(110)는 제1 속성 분석 모델에서 아이템 속성이 검출된 부분을 아이템 부분으로 결정할 수 있다. 결정된 아이템 부분은 아이템 속성 중 아이템 카테고리 항목에 대한 속성 값으로 지정될 수 있다.
상기 속성 분석부(110)는 이와 같이 학습된 제2 속성 인식 모델을 이용하여 사용자의 신체 영역으로부터 사용자 속성 중 신체 속성(예컨대, 키, 체형 등), 그리고 사용자의 신체 부분에 착용 가능한 아이템(예컨대, 반지, 팔찌, 목걸이, 의류, 신발, 가방 등)의 아이템 속성을 검출할 수 있다(S310).
도 4는, 본 출원의 다양한 실시 예들에 따른, 사용자 속성, 아이템 속성의 인식 결과를 도시한다.
도 4를 참조하면, 사용자 이미지가 입력되면, 사용자 속성(female), 및 아이템 속성(long hair, black outwear, blue pants, dark boots, backpack)이 인식될 수 있다. 또한, 사용자 속성, 아이템 속성이 인식된 위치는 색상, 기타 마커로 사용자 이미지 상에 표기될 수 있다.
또한, 상기 속성 분석부(110)는 제2 속성 분석 모델에서 신체 속성이 검출된 부분을 신체 부분으로 결정할 수 있다. 또한, 상기 속성 분석부(110)는 제2 속성 분석 모델에서 아이템 속성이 검출된 부분을 아이템 부분으로 결정할 수 있다. 결정된 아이템 부분은 아이템 속성 중 아이템 카테고리 항목에 대한 속성 값으로 지정될 수 있다.
대안적인 실시 예들에서, 상기 속성 분석부 110는 단일 속성 인식 모델을 포함할 수 있다. 상기 단일 속성 인식 모델에서 사용자의 아이템 속성과 사용자 속성이 모두 인식될 수 있다.
상기 단일 속성 인식 모델 역시 특징 추출부; 및 인식부를 포함한다. 상기 단일 속성 인식 모델은 제1 트레이닝 데이터 세트 및 제2 트레이닝 데이터 세트의 조합으로 학습된 것일 수 있다.
상기 단일 속성 인식 모델의 구조, 성능, 학습 과정은 제1 속성 인식 모델, 제2 속성 인식 모델과 동일, 유사하므로, 자세한 설명은 생략한다.
또한, 상기 도 3의 방법은, (예컨대, 아바타 생성부(130)에 의해) 인식된 사용자 속성에 기초해 상기 사용자의 형상을 나타낸 3차원 아바타 모델 및 인식된 아이템 속성에 기초해 상기 아이템의 형상을 나타낸 3차원 아이템 모델을 나타낸 사용자 아바타 데이터를 생성하는 단계(S330)를 포함한다.
사용자 아바타 데이터는 3차원 아바타 모델에 3차원 아이템 모델이 위치한 것을 3차원으로 나타낸 데이터이다. 상기 사용자 아바타 데이터는 3차원 아바타 모델 데이터, 3차원 아이템 모델 데이터 및 3차원 아이템 모델의 위치 데이터를 포함할 수 있다. 3차원 아바타 모델 데이터는 사용자에 대응한 아바타 형상을 구현하기 위한 모델 데이터이다. 여기서, 사용자에 대응한 3차원 아바타 모델은 사용자 속성이 반영된 3차원 아바타 모델로서, 사용자의 정체성이 공유될 정도로 동일하거나(예컨대, 실사형 아바타), 또는 해부학적 특징을 공유할 수준의 유사한 아바타(예컨대, 캐릭터형 아바타)일 수 있다.
3차원 아이템 모델 데이터는 사용자 이미지에 나타난 상기 사용자의 아이템의 형상을 구현하기 위한 모델 데이터이다. 하나 이상의 아이템에 대해 아이템 속성이 각각 검출되면, 사용자 아바타 데이터는 하나 이상의 3차원 아이템 모델에 대한 3차원 아이템 모델 데이터를 포함할 수 있다.
상기 단계(S330)에서 3차원 아바타 모델 데이터는 얼굴에 헤어, 의류와 같은 아이템이 없는 전신 형상을 나타낸다. 3차원 아바타 모델은 대머리 및 털이 전혀 없는 사람에 대응한 형상을 가진다.
상기 단계(S330)에서 3차원 아바타 모델은 실사형 3차원 아바타 모델 또는 캐릭터형 3차원 아바타 모델일 수 있다. 3차원 아이템 모델의 스타일은 3차원 아바타 모델에 의존한다. 3차원 아바타 모델이 실사형 모델이면, 3차원 아이템 모델 또한 실사형 모델로 생성된다. 3차원 아바타 모델이 캐릭터형 모델이면, 3차원 아이템 모델 또한 캐릭터형 모델로 생성된다.
본 출원의 다양한 실시 예들에서, 상기 아바타 생성부(130)는 실사형 스타일 또는 캐릭터형 스타일의 사용자 아바타 데이터를 실사형/캐릭터형 아바타 기준 모델을 변형하는 방식으로 동일하게 생성할 수 있다.
실사형 스타일의 사용자 아바타 데이터를 생성하는 방식을 우선 설명한다. 구체적으로, 상기 단계(S330)는, 실사형 스타일의 사용자 아바타 데이터를 생성하기 위해, 실사형 아바타 기준 모델 데이터를 실사 DB(131)에서 검색하는 단계; 상기 실사형 아바타 기준 모델 데이터에 인식된 사용자 속성을 적용하여 사용자 속성이 반영되어 상기 사용자의 실제 형상을 나타낸 실사형 3차원 아바타 모델을 생성하는 단계; 인식된 아이템 속성에 매칭한 실사형 에셋 데이터를 실사 DB(131)에서 검색하는 단계; 검색된 실사형 에셋 데이터에 기초하여 상기 아이템 속성이 반영되어 상기 아이템의 실제 형상을 나타낸 실사형 3차원 아이템 모델을 생성하는 단계; 및 인식된 아이템 위치에 기초하여 실사형 3차원 아이템 모델을 상기 실사형 3차원 아이템 모델 주변에 배치하는 단계;를 포함할 수 있다.
3차원 아바타 모델 데이터는 사용자 아바타의 형상을 나타낸다. 아바타 생성부(130)는 본 출원의 출원일 이전에 공개된 다양한 아바타 생성 알고리즘을 이용하여, 실사형 아바타의 형상을 나타낸 3차원 아바타 모델 데이터를 생성할 수 있다.
상기 3차원 아바타 모델은 형상 파라미터, 포즈 파라미터로 매개변수화된 함수로 정의될 수 있다. 상기 형상 파라미터는 키, 체형, 신체 비율과 같은 신체 속성을 나타낸다. 사용자의 키, 체형, 신체 비율과 같은 사용자의 신체 속성은 형상 파라미터를 통해 3차원 아바타 모델에 반영된다. 사용자의 모션은 포즈 파라미터를 통해 3차원 아바타 모델에 반영된다. 일부 실시 예들에서, 상기 형상 파라미터는 저차원 형상 공간의 계수로 표현될 수 있다. 포즈 파라미터는 관절점 사이의 상대적 회전의 축(axis)-각 형태로 표현될 수 있다.
도 5는, 본 출원의 다양한 실시 예들에 따른, SMPL의 기준 모델과 사용자 속성이 반영된 아바타 기준 모델을 설명하는 도면이다.
도 5를 참조하면, 상기 실사형 아바타 기준 모델 데이터는 SMPL(Skinned Multi-Person Linear Model) 알고리즘의 아바타 기준 모델을 나타낼 수 있다. SMPL의 아바타 기준 모델은 선형 스키닝 기반 인체 생성 모델로서, 샘플 신체 데이터베이스에서 최적화 기법을 통해 인체의 형상을 통계적으로 분석해서 생성한 3차원 모델이다.
SMPL 알고리즘은 형상, 포즈를 모델 파라미터로 갖는 3차원 모델을 생성할 수 있다. SMPL의 아바타 기준 모델 데이터는 아바타의 본체(body)를 서술하는 데이터로서, 형상 데이터, 포즈 데이터로 구성된다. 상기 형상 데이터는 상기 형상 파라미터에 대응하고, 상기 포즈 데이터는 상기 포즈 파라미터에 대응한다.
상기 포즈 데이터는 골격을 나타낸 데이터이다. 골격은 복수의 관절점, 및 관절점 사이를 연결하는 관절 거리로 구성된다. 상기 포즈 데이터는 복수의 관절점 각각을 서술하는 관절점 데이터로 이루어진, 관절점 데이터의 세트를 포함할 수 있다. 개별 관절점 데이터는 개별 관절점을 서술한다.
관절점 데이터는 관절점의 식별정보(예컨대, 식별번호), 3차원 아바타 모델에서 관절점의 위치정보, 해당 관절점 자신과 관절 거리로 연결된 다른 관절점(들)의 식별정보를 포함할 수 있으나, 이에 제한되진 않는다. 만약 3차원 아바타 모델이 전체 24개의 관절점을 포함할 경우, 각각의 관절점은 1번 내지 24번의 번호가 식별번호로서 부여될 수 있다. 본 출원의 다양한 실시 예들에서, 각각의 관절점 데이터는, 관절점별 구동 각도 범위 정보, 구동 방향 범위 정보를 더 포함할 수 있다.
관절점은 관절점 위치별로 해당 관절점에서 구동 범위, 구동 방향이 설정될 수 있다. 구동 범위는 관절점을 기준으로 특정 뼈가 고정되었을 때 상기 특정 뼈와 함께 관절점을 형성하는 다른 뼈가 움직일 수 있는 각도의 범위이다. 구동 방향은 구동 범위 내에서 관절점을 기준으로 특정 뼈가 고정되었을 때 상기 특정 뼈와 함께 관절점을 형성하는 다른 뼈가 움직이는 방향이다. 구동 범위, 구동 방향은 3차원 공간 상에서 표현될 수 있다.
상기 형상 데이터는 아바타 모델의 외형 실루엣을 표현하는 외형 연결정보를 가진다. 상기 외형 연결정보는 외형 실루엣을 정의하는 연결 요소들(선, 또는 점)을 서술한다.
본 출원의 다양한 실시 예들에서, 상기 형상 데이터는 복수의 외형 연결점 정보를 가질 수 있다. 또한, 상기 형상 데이터는 복수의 외형 연결점을 연결하는 연결선 정보를 포함할 수 있다. 상기 연결선 정보 전체를 종합하면 아바타의 외형 실루엣 전체를 구현할 수 있다.
상기 외형 연결점은 외형 실루엣을 정의하는 연결선 상에 위치하는 점으로서, 신체 부위와 다른 신체 부위가 연결된 영역에 위치한다. 일부 실시 예들에서, 상기 외형 연결점 중 적어도 하나는 모델의 실루엣의 회전이 발생하는 관절점의 주변 부분에 위치할 수 있다. 예를 들어, 도 5에 도시된 것처럼, 상기 외형 연결점은 목 관절 주변, 팔꿈치 관절 주변, 허리 관절 주변, 무릎 관절 주변 등에 위치할 수 있다. 일부 실시 예들에서, 상기 외형 연결점은 제1 외형 실루엣, 상기 제1 측에 대향한 제2 외형 실루엣 상에 위치할 수 있다. 예를 들어, 상기 목 관절 주변의 외형 연결점은 목의 좌측/우측 연결선 상에 위치하는 두 개의 연결점일 수 있다. 또한, 상기 팔꿈치 주변의 외형 연결점은 팔의 내측(즉, 몸통을 향하는 측면)과 외측(즉, 바깥쪽을 향하는 측면) 연결선 상에 위치하는 두 개의 연결점일 수 있다.
상기 외형 연결점 정보는 각각의 외형 연결점의 식별정보(예컨대, 식별번호), 위치정보를 가진다. 일부 실시 예들에서, 상기 외형 연결점 정보는 외형 연결점의 주변의 관절점, 또는 외형 연결점이 위치한 신체 부분 정보를 더 포함할 수 있다.
상기 아바타 생성부(130)는 28개의 외형 연결점에 사용자가 임의로 입력한 식별번호(이하, 사용자 외형 식별번호)를 지정하여, 각 외형 연결점의 식별정보로 이용할 수 있다.
상기 형상 데이터, 포즈 데이터는 아래의 모션 생성부(150)에서 특정 외형을 갖는 아바타 모델이 특정 모션을 구현하는데 이용된다.
상기 SMPL의 아바타 기준 모델은 형상, 포즈에 대한 기본 값을 가진다. 형상에 대한 기본 값을 갖는 형상 데이터는 기본 형상 데이터, 포즈에 대한 기본 값을 갖는 포즈 데이터는 기준 포즈 데이터로 지칭된다.
상기 기본 형상 데이터는 상기 SMPL 알고리즘에 미리 설정된 값으로서, SMPL 프로그램에서 다수의 샘플 대상의 키, 체형 등의 통계 값일 수 있다. 예를 들어, 상기 기본 형상 데이터는 다수의 샘플 대상의 평균 키, 평균 체형에 기초한 평균 형상(average shape) 값을 가질 수 있다.
상기 기준 포즈 데이터는 미리 설정된 기준 포즈를 나타낸다. 상기 기준 포즈는 차렷 포즈 또는 (흔히 대(大)자 포즈로 지칭되는) 양팔을 좌우로 펼친 포즈일 수 있으나, 이에 제한되진 않는다. 상기 기준 포즈 데이터는 상기 기준 포즈에 대응한 관절점 데이터 세트일 수 있다. 상기 기준 포즈 데이터는 기준 포즈에 대응한 관절점 각각의 위치 정보를 가진다.
상기 아바타 생성부(130)는 사용자 속성 중 키 속성, 체형 속성을 SMPL의 아바타 기준 모델에 적용하여 3차원 아바타 모델 데이터를 생성할 수 있다. 구체적으로, 상기 아바타 생성부(130)는 SMPL의 아바타 기준 모델에서 체형의 기본 값, 키의 기본 값을 사용자의 키 속성 값, 체형 속성 값으로 변경함으로써, 사용자의 키, 체형이 반영된 실사형 3차원 아바타 모델(t)을 나타낸 실사형 3차원 아바타 모델 데이터를 생성할 수 있다. 생성된 실사형 3차원 아바타 모델 데이터는 아바타 기준 모델의 신체 부분의 형상을 사용자의 키, 체형 속성이 반영되도록 변형된 것을 나타낸다. 실사형 3차원 아바타 모델 데이터에서 형상 데이터에는 사용자의 키 속성, 체형 속성이 반영된다. 이처럼 3차원 아바타 모델(t)은 기준 모델(s)를 기준으로 형상이 변형된 것이므로, 외형 실루엣을 서술하는 외형 연결정보 또한 변형될 수 있다. 도 5에 도시된 것처럼, 사용자 속성이 반영됨으로써 기준 모델(s)의 외형 연결정보(, Pn은 식별번호 n을 갖는 외형 연결점)가 사용자 속성에 대응한 값()으로 변경된다. 즉, 3차원 아바타 모델(t)은 변경된 외형 연결정보()를 가진다.
한편, 아래에서 서술할 목표 모션 데이터와 같은 별도의 포즈 데이터가 입력되지 않으면, 기준 포즈 데이터가 유지된다. 따라서, SMPL의 기준 모델의 포즈와 사용자 속성이 반영된 3차원 아바타 모델의 포즈는 도 5에 도시된 것처럼 동일할 수 있다.
이하, 사용자 속성이 반영되고 기준 포즈를 갖는 3차원 아바타 모델을 기준 아바타 모델로 지칭하여 본 출원의 실시 예들을 상세히 서술한다.
일부 실시 예들에서, 상기 SMPL의 아바타 기준 모델은 얼굴 세부 요소를 나타낸 서브 모델을 가질 수 있다. 얼굴 세부 요소의 서브 모델은 얼굴 세부 요소에 대한 형상 파라미터로 매개변수화된 함수로 정의될 수 있다. 상기 아바타 생성부(130)는 사용자 속성 중 얼굴 속성을 SMPL의 아바타 기준 모델 중 얼굴 세부 요소에 적용하여 얼굴 세부 요소의 체형의 기본 값을 사용자의 얼굴 속성 값으로 변경함으로써, 사용자의 얼굴형, 눈, 코, 입 등의 형상이 반영된 실사형 3차원 아바타 모델을 나타낸 실사형 3차원 아바타 모델 데이터를 생성할 수 있다. 결국 아바타 생성부(130)는 실제 얼굴 형상, 실제 신체 형상이 반영된 사용자의 실사형 3차원 아바타 모델을 나타내는, 실사형 3차원 아바타 모델 데이터를 생성할 수 있다.
또한, 상기 단계(S330)에서 아바타 생성부(130)는 속성 인식 모델에서 인식된 사용자의 아이템 속성에 매칭한 실제 속성을 갖는 특정 아이템을 나타낸, 실사형 에셋 데이터를 실사 DB(131)에서 검색할 수 있다. 전술한 바와 같이 상기 아이템의 실사형 에셋 데이터는 아이템의 실제 형상을 나타낸 것으로서, 아이템의 실제 속성 데이터 및 실제 형상 데이터를 포함한다. 그러면, 검색된 실사형 에셋 데이터에 포함된 상기 아이템의 실제 형상 데이터를 이용하여, 상기 사용자 이미지에서 인식된 아이템 속성이 반영된 아이템을 3차원으로 나타낸, 3차원 아이템 모델 데이터를 생성할 수 있다.
상기 아바타 생성부(130)는 미리 저장된 렌더링 알고리즘을 이용하여 2차원 형상을 3차원으로 모델링함으로써, 3차원 아이템 모델을 생성할 수 있다.
일부 시시 예들에서, 상기 아이템의 실제 형상을 나타낸 실사형 3차원 아이템 모델을 생성하는 단계는, 사용자 이미지에서 아이템 속성이 인식된 아이템 부분을 분할하는 단계; 및 분할 결과로 상기 아이템의 실제 형상 데이터를 보정하는 단계;를 더 포함할 수 있다. 그러면, 아바타 생성부(130)는 상기 아이템의 보정된 형상 데이터에 기초하여 상기 실사형 3차원 아이템 모델을 생성할 수 있다(S330).
도 6은, 본 출원의 다양한 실시 예들에 따른, 의류 아이템을 나타낸 3차원 아이템 모델의 개략도이다.
도 6을 참조하면, 3차원 아이템 모델은 아이템의 형상을 3차원 메쉬 구조로 구현될 수 있다. 3차원 아이템 모델의 메쉬 구조는 복수의 격자점, 및 격자점과 다른 격자점을 연결하는 격자선으로 구성된다. 그러면, 3차원 아이템 모델 데이터는 메쉬 데이터로 표현될 수 있다.
3차원 아이템 모델 데이터는 격자점의 식별정보 및 위치정보, 상기 격자선을 정의하는 격자점의 쌍에 대한 식별정보, 및 격자선의 길이, 위치 정보, 격자선으로 이루어진 형상 정보를 포함할 수 있다. 예를 들어, 메쉬 데이터에서 복수의 격자점(mp) 각각은 식별번호(p)로 지정될 수 있다. 격자선은 해당 격자선으로 연결된 한 쌍의 격자점 식별정보로 정의될 수 있다.
3차원 아이템 모델의 형상이 변형되면, 복수의 격자점 중 적어도 일부 격자점의 위치가 변경된다. 적어도 일부 격자점은 변형된 부분에 위치한 격자점일 수 있다.
또한, 복수의 격자선 중 적어도 일부 격자선의 길이, 위치가 변경될 수 있다. 복수의 격자선 중 적어도 일부 격자선은 위치가 변경된 격자점과 연결된 격자선이다.
상기 아바타 생성부(130)는 아이템의 인식 위치에 기초해 3차원 아이템 모델의 형상과 3차원 아바타 모델의 형상을 캘리브레이션할 수 있다. 캘리브레이션 결과 3차원 아바타 모델과 3차원 아이템 모델의 위치 관계는 사용자 이미지에 나타난 위치 관계에 매칭한다.
이와 같이 생성된 실사형 사용자 아바타 데이터는 사용자의 실제 형상과 사용자의 헤어 및 기타 착용 아이템의 실제 형상을 3차원으로 나타낸다. 사용자 아바타 데이터가 나타낸 사용자 아바타는 사용자의 속성 정보와 매칭된다.
본 출원의 다양한 실시 예들에서, 상기 단계(S330)는, 캐릭터 스타일의 사용자 아바타 데이터를 생성하기 위해, 사용자 속성이 반영된 캐릭터형 3차원 아바타 모델을 생성하는 단계; 인식된 아이템 속성에 매칭한 캐릭터형 에셋 데이터를 캐릭터 DB(132)에서 검색하는 단계; 검색된 캐릭터형 에셋 데이터에 기초하여 상기 아이템 속성이 반영되어 상기 아이템의 실제 형상을 나타낸 캐릭터형 3차원 아이템 모델을 생성하는 단계; 및 인식된 아이템 위치에 기초하여 캐릭터형 3차원 아이템 모델을 상기 캐릭터형 3차원 아이템 모델 주변에 배치하는 단계;를 포함할 수 있다.
일부 실시 예들에서, 사용자 속성이 반영된 캐릭터형 3차원 아바타 모델을 생성하는 단계는, 실사형 3차원 아바타 모델을 생성하는 것과 유사할 수 있다. 구체적으로, 상기 캐릭터형 3차원 아바타 모델을 생성하는 단계는, 캐릭터형 아바타 기준 모델 데이터를 캐릭터 DB(132)에서 검색하는 단계; 상기 캐릭터형 아바타 기준 모델 데이터에 인식된 사용자 속성을 적용하여 사용자 속성이 반영되어 상기 사용자의 캐릭터 스타일의 형상을 나타낸 캐릭터형 3차원 아바타 모델 데이터를 생성하는 단계;를 포함할 수 있다.
다른 일부 실시 예들에서, 사용자 속성이 반영된 캐릭터형 3차원 아바타 모델을 생성하는 단계는, 상기 사용자 속성에 매칭한 캐릭터 에셋 데이터를 검색하는 단계; 및 검색된 캐릭터 에셋 데이터에 포함된 캐릭터의 형상 데이터에 기초하여 상기 사용자 속성이 반영된 캐릭터를 3차원으로 나타낸 캐릭터 모델 데이터를 생성하는 단계를 포함할 수 있다.
캐릭터 에셋 데이터는 캐릭터의 형상 데이터 및 캐릭터 설계자가 지정한 캐릭터의 속성 데이터를 포함할 수 있다. 캐릭터의 속성 데이터는 키, 체형, 신체 비율, 얼굴형, 얼굴 세부 요소의 속성과 같은 사용자 속성에 대응한 속성 값을 가진다. 아바타 생성부(130)는 인식된 사용자 속성과 매칭하는 속성 데이터를 갖는 캐릭터 에셋 데이터를 검색하여 캐릭터의 형상 데이터를 획득할 수 있다. 상기 캐릭터의 형상 데이터는 2차원 또는 3차원 형상을 나타낸다.
일부 실시 예들에서, 상기 아바타 생성부(130)는 사용자의 얼굴 속성 및 신체 속성이 반영된 캐릭터형 3차원 아바타 모델 데이터를 생성할 수 있다. 구체적으로, 상기 아바타 생성부(130)는, 상기 아바타가 캐릭터형일 경우, 상기 속성 인식 모델에서 인식한 사용자 속성 중 키 속성, 및 체형 속성에 매칭하는 캐릭터형 신체 에셋 데이터를 상기 캐릭터 DB(132)에서 검색하고, 상기 속성 인식 모델에서 인식한 사용자 속성 중 얼굴 관련 속성에 매칭하는 캐릭터형 얼굴 에셋 데이터를 상기 캐릭터 DB(132)에서 검색하며, 검색된 캐릭터형 신체 에셋 데이터 및 캐릭터형 얼굴 에셋 데이터에 기초해 상기 캐릭터형 얼굴 에셋 데이터가 나타낸 캐릭터 얼굴 형상이 얼굴 표면 상에 구현된 캐릭터형(type) 3차원 아바타 모델 데이터를 생성할 수 있다. 이렇게 생성된 캐릭터형 아바타의 형상은 사용자의 얼굴 관련 속성이 반영된 형상을 가진다.
이와 같이 생성된 캐릭터형 사용자 아바타 데이터는 사용자의 실제 형상에 대응한 캐릭터 형상과 사용자의 헤어 및 기타 착용 아이템의 캐릭터 스타일의 형상을 3차원으로 나타낸다.
상기 아바타 생성부(130)는 다양한 데이터 매칭 알고리즘을 통해 매칭 데이터를 검색할 수 있다. 상기 데이터 매칭 알고리즘은, 예를 들어 유클리드 유사 방식, 또는 코사인 유사 방식일 수 있으나, 이에 제한되진 않는다.
일부 실시 예들에서, 상기 단계(S330)는, 실사형 사용자 아바타 데이터 또는 캐릭터형 사용자 아바타 데이터를 생성한 이후에, 사용자 편집 정보를 수신하면 수신한 사용자 편집 정보에 따라 생성된 사용자 아바타 데이터를 변경하는 단계를 더 포함할 수 있다. 상기 아바타 생성부(130)는 사용자 편집 정보에 따라 사용자 아바타 데이터를 변경하도록 더 구성된다.
사용자 편집 정보는 적어도 하나의 사용자 속성에 대한 편집 값 및/또는 적어도 하나의 아이템에 대한 아이템 속성에 대한 편집 값을 포함할 수 있다. 편집 값은 사용자가 편집하고자 하는 속성 값이 변경될 목표 값일 수 있다.
이를 위해, 상기 아바타 생성부(130)는 편집 값을 입력하기 위한 인터페이스 화면을 제공할 수 있다. 상기 인터페이스 화면은 아바타 데이터의 3차원 모델을 포함한다. 아바타 데이터의 3차원 모델은 편집되기 이전의 아바타 데이터(예컨대, 초기 아바타 데이터)를 3차원으로 구현한 것일 수 있다.
또한, 상기 인터페이스 화면은 상기 3차원 모델로 구현되는 상기 아바타 데이터 중 적어도 하나의 속성 값을 변경할 수 있는 편집 입력 화면을 포함할 수 있다. 편집 입력 화면은 상기 편집 입력 화면 상에 사용자 명령이 입력되면, 입력된 사용자 명령에 따라 초기 아바타 데이터의 속성 값을 변경하도록 구성될 수 있다. 아바타 데이터에서 속성 값이 변경되는 것에 반응하여, 아바타의 3차원 모델은 변경된 속성 값이 시각적으로 반영되도록 변형될 수 있다.
상기 아바타 생성부(130)에서 생성된(또는 편집된) 사용자 아바타 데이터는 차렷 자세와 같은 기준 포즈를 취한 3차원 형상을 구현한 3차원 아바타 모델, 및 아이템의 형상이 변형되지 않는 기본 형상을 구현한 3차원 아이템 모델을 나타낸다.
상기 아바타 생성부(130)는 생성된 사용자 아바타 데이터를 모션 생성부(150)로 제공할 수 있다.
다시 도 3을 참조하면, 상기 도 3의 방법은, 사용자의 목표 모션 데이터가 입력되면, 상기 사용자 아바타 데이터를 제어해, 아이템과 3차원 아바타 모델이 충돌하지 않으면서 상기 3차원 아바타 모델이 상기 목표 모션을 취하는 것을 나타내는, 상기 사용자 아바타의 모션 데이터를 생성하는 단계(S350)를 포함한다.
시스템(1)에 3차원 아바타 모델에 대한 목표 모션 데이터가 입력되면 모션 생성부(150)는 아이템을 갖는 사용자 아바타가 시간의 흐름에 따라서 목표 모션대로 움직이는 것을 나타낸 사용자 아바타의 모션 데이터를 생성하도록 구성된다.
3차원 아바타 모델에 대한 목표 모션 데이터는 3차원 아바타 모델이 취해야 하는 모션을 서술한 정보이다. 상기 목표 모션은 기준 포즈를 취하는 3차원 아바타 모델이 취해야 하는 포즈를 가리킨다.
상기 단계(S350)에서 입력되는 상기 목표 모션 데이터는 적어도 하나의 입력 포즈를 나타낼 수 있다. 본 출원의 다양한 실시 예들에서, 상기 목표 모션 데이터는 적어도 하나의 입력 포즈 데이터일 수 있다. 입력 포즈 데이터는 입력된 포즈를 나타낸 포즈 데이터이다. 3차원 아바타 모델에 대한 목표 모션 데이터는 일련의 입력 포즈를 상기 아바타 모델이 취하는 것을 나타내는 데이터일 수 있다.
시스템1에 입력되는 목표 모션 데이터는 자신이 원하는 모션을 실제로 취하고 있는 사용자에 부착된 모션 센서들에서 감지한 모션 캡처 데이터이거나, 자신이 원하는 목표 모션에 대응한 적어도 하나의 포즈 데이터일 수 있다. 본 출원의 다양한 실시 예들에서, 상기 적어도 하나의 포즈 데이터는 모션 DB(151)에 저장된 적어도 하나의 포즈 데이터일 수 있다.
구체적으로, 모션 생성부(150)는 모션 캡처 데이터를 곧바로 목표 모션 데이터로 입력할 수 있다.
또한, 모션 생성부(150)는 모션 DB(151)에 저장된 포즈 데이터를 이용하여 목표 모션 데이터를 생성할 수 있다. 시스템1은 모션 DB(151)에 저장된 포즈 데이터 중 사용자의 선택 명령을 통해 지정된 포즈 데이터를 목표 모션 데이터로 이용할 수 있다.
일부 실시 예들에서, 상기 목표 생성부(150)는 포즈 프롬프트 및 모션 DB(151)를 이용해 목표 모션 데이터를 생성할 수 있다.
상기 포즈 프롬프트는 하나 이상의 입력 포즈를 서술하는 것으로서, 모션 DB(151)에 저장된 포즈 데이터 중 사용자가 원하는 입력 포즈를 검색하기 위한 입력 프롬프트일 수 있다.
상기 포즈 프롬프트는 포즈 명칭(즉, 텍스트), 또는 포즈 형태를 개략적으로 도시한 포즈 이미지일 수 있다. 그러면, 상기 포즈 프롬프트는 순서별 입력 포즈를 서술한 일련의 포즈 명칭 또는 일련의 포즈 이미지일 수 있다.
일부 실시 예들에서, 상기 포즈 이미지는 사용자가 원하는 목표 모션을 피사체가 취하고 있는 상태가 촬영된 모션 캡처 이미지일 수 있다. 상기 피사체는 사용자 자신 또는 다른 사람일 수 있다.
시스템(1)은 사용자의 포즈 프롬프트를 수신하면, 모션 DB(151)에서 입력된 포즈 프롬프트에 대응한 입력 포즈 데이터를 검색하고, 검색된 입력 포즈 데이터로 목표 모션 데이터를 생성할 수 있다.
사용자의 포즈 프롬프트가 명칭 텍스트일 경우, 모션 생성부(150)는 모션 DB(151)에서 포즈 프롬프트와 매칭하는 명칭 텍스트를 갖는 포즈 데이터를 검색할 수 있다.
사용자의 포즈 포름프트가 포즈 이미지일 경우, 모션 생성부(150)는 모션 캡처 이미지, 즉 포즈 이미지에서 입력 포즈를 제공하는 피사체의 외형 실루엣 영역을 분할하고, 분할된 외형 실루엣 영역의 포즈에 대응한 포즈 데이터를 검색할 수 있다. 일부 실시 예들에서, 상기 모션 생성부(150)는 사용자의 외형 실루엣 영역을 분할하고 관절점 데이터 세트를 적어도 부분적으로 예측하고, 예측된 관절점 데이터 세트에 매칭한 관절점 데이터 세트를 갖는 포즈 데이터를 검색할 수 있다.
이를 위해, 상기 모션 생성부(150)는 목표 모션 데이터를 생성하기 위해, 목표 모션을 구성하는 포즈를 서술하는 프롬프트를 입력하는 모션 입력 화면을 제공하고, 상기 모션 입력 화면을 통해 사용자의 프롬프트 정보가 입력되면, 입력된 프롬프트 정보에 대응한 포즈 데이터를 상기 모션 DB(151)에서 검색하여 목표 모션 데이터를 획득할 수 있다.
본 출원의 다양한 실시 예들에서, 상기 목표 모션 데이터는 관절점 데이터 세트 형태로 입력될 수 있다. 모션 생성부(150)는 해당 포즈의 관절점 데이터 세트로 상기 3차원 아바타 모델에 대한 목표 모션 데이터를 생성할 수 있다.
전술한 바와 같이 포즈 데이터는 해당 포즈의 관절점 데이터 세트를 갖기 때문에, 상기 입력 포즈 데이터는 해당 포즈를 위한 관절점 데이터 세트를 포함한다. 즉, 상기 목표 모션 데이터는 목표 모션을 취하는 사람의 관절점을 나타낼 수 있다. 일부 실시 예들에서, 상기 목표 모션 데이터는 목표 모션을 취하는 포즈에 대한 관절점 세트의 위치를 나타낼 수 있다. 상기 목표 모션의 포즈에 대한 관절점 세트의 위치는, 검색된 입력 포즈 데이터에 포함된 관절점 데이터 세트로부터 획득될 수 있다.
일부 실시 예들에서, 상기 모션 캡처 데이터는 모션 캡처 이미지에서 예측된 관절점 데이터 세트일 수 있다. 사용자의 외형 실루엣 영역을 분할하고 관절점 데이터 세트를 예측하고, 예측된 관절점 데이터 세트를 모션 데이터로 곧바로 입력할 수 있다. 즉, 상기 모션 캡처 데이터는 센서 기반한 가장 일반적인 모션 캡처 데이터이거나 또는 모션 캡처 이미지 기반 모션 캡처 데이터일 수 있다. 일부 실시 예들에서, 상기 모션 캡처 데이터는 사용자의 실시간 모션을 나타낼 수 있다. 이런 실시간 모션 캡처 데이터가 목표 모션 데이터로 입력되면, 상기 모션 생성부(150)는 상기 사용자 속성이 반영된 3차원 아바타 모델이 실시간 모션을 취하는 것을 구현할 수 있다.
상기 모션 생성부(150)는 (예컨대, 이러한 프롬프트 정보에 따른) 목표 모션 데이터를 사용자 아바타 데이터에 적용해 사용자 아바타가 목표 모션으로 동작하는 것을 구현할 수 있다. 목표 모션 데이터를 시스템1에 입력하면 도 5에 도시된 사용자 아바타의 기준 포즈가 목표 모션으로 변형된다.
상기 모션 생성부(150)는 상기 사용자 아바타의 모션 데이터를 생성하기 위해, 사용자 아바타의 모션을 나타내는 3차원 아바타 모델의 모션 데이터, 및 사용자 아바타가 갖는 아이템의 움직임을 나타낸 3차원 아이템 모델의 모션 데이터를 생성한다. 상기 단계(S350)에서 생성되는 상기 사용자 아바타의 모션 데이터는 상기 3차원 아바타 모델의 모션 데이터, 상기 3차원 아이템 모델의 모션 데이터로 구성된다.
도 7은, 본 출원의 다양한 실시 예들에 따른, 상기 사용자 아바타 데이터를 제어하여 자연스러운 목표 모션을 구현하기 위한 상기 사용자 아바타의 모션 데이터를 생성하는 과정의 세부 흐름도이고, 도 8은, 본 출원의 다양한 실시 예들에 따른, 입력 포즈를 목표 모션으로 입력해 아바타 모델의 모션 데이터를 생성하는 과정을 예시적으로 설명하는 도면이다.
상기 목표 모션 데이터가 단일 모션을 가리키면, 상기 단계(S350)에서 3차원 아바타 모델은 기준 포즈 상태에서 상기 단일 포즈(예컨대, 도 8의 P1 내지 P6 중 어느 하나)를 목표 모션으로 취하도록 제어된다.
도 7을 참조하면, 상기 단계(S350)는, 상기 3차원 아바타 모델에 대한 목표 모션 데이터를 상기 사용자 아바타 데이터의 3차원 아바타 모델 데이터에 적용해 상기 3차원 아바타 모델 데이터를 변경하여, 상기 3차원 아바타 모델의 변형 데이터를 상기 3차원 아바타 모델의 모션 데이터로서 생성하는 단계(S351); 및 상기 3차원 아바타 모델의 변형 데이터 및 상기 사용자 아바타에서 상기 3차원 아이템 모델의 형상 데이터에 기초하여, 상기 3차원 아바타 모델에 대한 목표 모션에 대응해 상기 3차원 아이템 모델이 움직이는 것을 나타낸, 상기 3차원 아이템 모델의 모션 데이터를 생성하는 단계를 포함할 수 있다.
상기 3차원 아바타 모델의 변형 데이터, 즉 모션 데이터는 아바타 모델의 외형이 기준 포즈에서 목표 모션으로 변화된 것을 나타낸다. 구체적으로, 상기 3차원 아바타 모델의 모션 데이터는 상기 3차원 아바타 모델의 형상이 목표 모션에 대응한 입력 포즈를 취하도록 변형된 것을 나타낸다. 상기 3차원 아바타 모델 데이터에 포함된 관절점의 위치가 상기 입력 포즈 데이터의 관절점 위치로 변경되고, 변경된 관절점 위치에 기초하여 상기 3차원 아바타 모델 데이터의 형상 데이터를 변경함으로써, 상기 3차원 아바타 모델의 변형 데이터를 상기 3차원 아바타 모델의 모션 데이터로 생성할 수 있다. 상기 모션 생성부150는 상기 3차원 아바타 모델의 변형 데이터를 생성하기 위해, 상기 입력 포즈 데이터에서 관절점 데이터 세트, 상기 3차원 아바타 모델 데이터에서 관절점 데이터 세트를 이용할 수 있다.
한편, 상기 3차원 아이템 모델의 모션 데이터는 상기 3차원 아바타 모델의 변형 데이터에 대응한 3차원 아이템 모델의 움직임을 나타낸다. 상기 3차원 아이템 모델의 모션은 3차원 아이템 모델의 형상 변형 및/또는 3차원 아이템 모델의 위치 변화로 구현될 수 있다. 3차원 아이템 모델의 위치 변화는 단순히 아이템이 이동하는 것은 물론이고, 해당 아이템을 바라보는 시점(view points)에 따라서 아이템의 2차원 형상을 변형시키는 것으로 2차원 이미지 상에 나타날 수 있다.
예를 들어, 옷을 입고 손가방을 든 사용자 아바타가 제자리에 서서 팔을 드는 모션을 취할 수 있다. 이러한 3차원 아바타 모델의 모션이 자연스럽고 어색하지 않게 구현되기 위해서는 아바타 형상에서 팔 부분이 위로 이동하면 마찬가지로 옷의 팔 부분과 손가방 역시 함께 움직여야 한다. 구체적으로, 3차원 아바타 모델의 모션에 대응한 옷의 움직임은 옷의 형상이 변형되는 형태로 나타나고 손가방의 움직임은 손가방의 위치가 변화하는 형태로 나타날 수 있다. 만약 3차원 아바타 모델에서 팔 부분이 위를 향하는데 옷과 손가방이 기본 자세일 때와 그대로 있거나, 적합하게 움직이지 않으면 3차원 아바타 모델의 팔 부분의 형상과 옷의 형상 또는 손가방의 형상이 서로 충돌하여 사용자 아바타의 모션이 부자연스럽게 구현된다.
상기 모션 생성부(150)는 이러한 옷, 손가방과 같은 3차원 아이템 모델의 움직임을 구현하는 상기 3차원 아이템 모델의 모션 데이터를 생성할 수 있다.
상기 3차원 아이템 모델의 모션 데이터는 아바타가 목표 모션(또는 포즈)을 취할 시점에 해당 아이템이 가져야 할 변형된 형상 또는 이동한 위치를 나타낸다. 상기 3차원 아이템 모델의 모션 데이터는 3차원 아바타 모델이 목표 모션을 취할 시점의 형상 데이터에 기초한다. 상기 3차원 아바타 모델이 목표 모션을 취하는 것은 목표 모션 데이터에 따라 3차원 아바타 모델의 포즈 데이터가 변경되는 것이다.
상기 3차원 아이템 모델의 모션 데이터가 해당 아이템의 변형 데이터 또는 이동 데이터인지는 아이템 카테고리에 의존한다.
본 출원의 다양한 실시 예들에서, 상기 3차원 아이템 모델의 모션 데이터를 생성하는 단계는, 3차원 의류 모델의 모션 데이터를 생성하는 단계(S353); 및 상기 사용자 이미지에 나타난, 의류 외 나머지 3차원 아이템 모델의 모션 데이터를 생성하는 단계(S355);를 포함할 수 있다.
3차원 의류 모델은 단일 의류 모델(예컨대, 드레스)이면, 상기 단계(S353)의 동작은 단일 의류 모델에 대해 수행될 수 있다. 또는, 3차원 의류 모델은 3차원 상의 모델, 3차원 하의 모델일 수 있다. 그러면, 상기 단계(S353)의 동작은 3차원 상의 모델, 3차원 모델 각각에 대해 수행될 수 있다.
상기 3차원 의류 모델의 모션 데이터를 생성하는 단계는, 상기 3차원 아바타 모델의 모션 데이터(즉, 목표 모션)에 대응한 상기 3차원 의류 모델의 변형 데이터(reshape data)를 생성하는 것일 수 있다. 의류는 사람이 움직이더라도 의류 구조에 의해 의류의 위치가 이동하진 않지만, 재질로 인해 형상이 변형되는 움직임 특성을 가진다.
상기 모션 생성부(150)는, 상기 목표 모션 데이터에 대응한 상기 3차원 의류 모델의 변형 데이터를, 상기 3차원 아바타 모델이 기준 포즈일 때 3차원 아이템 모델의 형상 데이터, 상기 3차원 아바타 모델이 목표 모션을 취할 때 상기 3차원 의류 모델의 변형 가중치, 상기 3차원 아바타 모델이 상기 목표 모션을 취할 때 상기 3차원 아바타 모델의 형상 데이터에서 외형 연결점의 위치와 상기 3차원 아바타 모델이 기준 포즈일 때 상기 3차원 아바타 모델의 형상 데이터에서 외형 연결점의 위치 간의 차이에 기초하여 생성할 수 있다(S353).
도 9은, 본 출원의 다양한 실시 예들에 따른, 특정 포즈의 시점에서 3차원 의류 모델의 변형 데이터를 예시적으로 설명한 도면이다 .
상기 모션 생성부(150)는 3차원 아바타 모델이 목표 모션대로 포즈를 취할 때 상기 단계(S330)에서 생성된 3차원 의류 모델의 형상을 기준으로 변형된 형상을 나타낸 3차원 의류 모델의 변형 데이터를 상기 목표 모션 데이터에 대응한 상기 3차원 의류 모델의 변형 데이터로서 생성할 수 있다.
전술한 것처럼, 상기 단계(S330)에서 생성된 3차원 아이템 모델의 형상 데이터는 해당 아이템의 3차원 메쉬 구조를 나타낼 수 있다. 도 9에 도시된 3차원 의류 모델의 형상 데이터 역시 해당 의류 아이템의 3차원 메쉬 구조를 나타낼 수 있다. 3차원 메쉬 구조의 3차원 의류 모델에 대한 형상 데이터는 각각의 식별번호(p)를 갖는 전체 q개의 격자점(mp, p=1, .., q의 자연수) 및 격자점(mp)을 연결하는 격자선을 나타낸다. 상기 3차원 의류 모델의 변형 데이터는 전체 q개의 격자점(mp) 중 적어도 하나의 격자점(mp)의 위치가 이동한 것으로 표현될 수 있다.
본 출원의 다양한 실시 예들에서, 상기 모션 생성부(150)는 목표 모션을 취할 때의 3차원 아바타 모델의 외형 연결선에 대응한 일부 격자점(mp)을 이용해 상기 3차원 의류 모델의 변형 데이터를 생성할 수 있다. 구체적으로, 상기 단계(S353)에서 목표 모션에 대응한 3차원 의류 모델의 변형 데이터는, 목표 모션을 취한 3차원 아바타 모델의 변형에 그 형상이 충돌하지 않도록, 목표 모션을 취할 때의 3차원 아바타 모델의 외형 연결선에 대응한 격자점(mp)의 위치 변화에 기초하여 변형된 3차원 의류 모델을 나타낸다. 여기서, 목표 모션을 취할 때의 3차원 아바타 모델의 외형 연결선에 대응한 격자점(mp)은 메쉬 구조의 전체 격자점들 중에서 목표 모션을 취할 때의 3차원 아바타 모델의 외형 연결선에 상대적으로 가까운 격자점이다. 일부 실시 예들에서, 상기 목표 모션을 취할 때의 3차원 아바타 모델의 외형 연결선에 대응한 격자점(mp)은 의류의 2차원 외형 실루엣의 연결선에서 수직 방향으로 배열된 격자점 중 해당 연결선에 가장 가까운 격자점일 수 있다. 상기 모션 생성부(150)는 사용자 속성이 반영된 3차원 아바타 모델의 외형 연결점에 기초하여 외형 연결선을 각각 산출하고, 상기 외형 연결선에 수직된 방향에서 가장 가까운 격자점을 3차원 아바타 모델의 외형 연결선에 대응한 격자점(mp)으로 선별할 수 있다.
의류의 가장 자리에 있거나 가까운 격자점의 위치 변화가 산출되면, 의류의 중심 부분에 있는 격자점의 위치는 메쉬 구조에 기초하여 자동으로 변경될 수 있다.
아바타 모델이 목표 모션을 취할 때에 대응하는 3차원 의류 모델의 변형 데이터에서 외형 연결선에 대응한 격자점(mp)의 위치는 다음의 수학식을 통해 산출될 수 있다.
여기서, 는 목표 모션 입력 이전의 기준 포즈(예컨대, 도 5의 기준 포즈)를 취할 때 상기 3차원 의류 모델(기본 3차원 의류 모델, S)에서 외형 연결선에 대응한, 위치 변화를 산출하기 위한 대상 격자점(mp)의 위치 좌표를 나타낸다.
는 아바타가 목표 모션을 취해서 변형된 3차원 의류 모델(t)에서 격자점(mp)의 위치 좌표를 나타낸다. 변형된 3차원 의류 모델은 목표 모션에 따른 아바타 외형 변화에 대응해 의류형상이 변형된 3차원 의류 모델이다. 상기 변형된 의류 모델(t)은 도 6의 기준 의류 모델(s)을 기준으로 형상이 변형되어 생성될 수 있다. 이처럼 변형된 3차원 의류 모델(t)에서 상기 외형 연결선에 대응한 격자점()의 위치 좌표가 상기 수학식 1을 통해 산출될 수 있다. 상기 격자점()은 상기 기준 의류 모델(s)에서 격자점()의 위치가 변화한 것이다.
α는 상기 기준 포즈를 취할 때 3차원 아이템 모델의 형상이 목표 모션에 대응해 변형될 정도를 나타내는, 변형 가중치를 나타낸다.
wfirst cp 는 기준 포즈에서 목표 모션의 입력 포즈로 변경됨에 따라 3차원 아바타 모델의 제1 외형 연결점(first cp(connection point))의 위치가 변화한 것을 나타내고, wcp 는 기준 포즈에서 목표 모션의 입력 포즈로 변경됨에 따라 3차원 아바타 모델의 제2 외형 연결점(second cp(connection point))의 위치가 변화한 것을 나타낸다. 상기 제1 외형 연결점, 제2 외형 연결점은 상기 사용자 속성이 반영된 3차원 아바타 모델이 목표 모션을 취할 때 변형된 형상의 외형 연결선을 구성한다. 적어도 하나의 격자점(mp)이 상기 제1 외형 연결점과 제2 외형 연결점 사이의 구간에 위치할 수 있다.
도 5의 사용자의 외형 연결점의 식별번호를 도 9에 그대로 적용할 경우, 상기 모션 생성부(150)는 3차원 아바타 모델의 외형 연결선으로서 외형 연결점(P1, P2) 사이의 제1 외형 연결선(P1, P2), 제2 외형 연결선(P2, P3), .., 제n-1 외형 연결선(Pn-1, Pn)을 산출하며, 각각의 외형 연결선에 가장 가까운 격자점들을 수학식 1에 적용할 격자점(mp)을 선별할 수 있다. 예를 들어, 외형 연결점(P6, P7)을 연결하는 연결선에 대응하는 격자점은 상기 연결선에 가장 가까운 특정 격자점(mp14)을 포함한다. 일부 실시 예들에서, 상기 모션 생성부(150)는 상기 격자점(mp14)과 연결되고 보다 안쪽에 위치한 격자점은 수학식 1에 적용하지 않을 수 있다.
상기 모션 생성부(150)는 이렇게 선별된 격자점(mp) 각각에 대한 변형 가중치 α를 수학식 3을 통해 산출하고, 상기 3차원 아바타 모델이 기준 포즈를 취할 때(즉, 기준 모델)의 외형 연결 정보와 상기 3차원 아바타 모델이 목표 모션을 취할 때(즉, 목표 모델)의 외형 연결 정보 간의 오차w를 수학식 2를 통해 산출함으로써, 상기 수학식 1을 통해 선별된 격자점(mp)의 변형된 위치를 나타내는, 의류 모델의 변형 데이터를 산출할 수 있다.
상기 3차원 아바타 모델이 목표 모션을 취할 때(즉, 목표 모델)의 외형 연결 정보 간의 오차w는 다음의 수학식과 같이 외형 연결점의 위치 변화로 표현될 수 있다.
본 출원의 다양한 실시 예들에서, 상기 변형 가중치(α)는 상기 격자점(mp) 각각에 대한 값으로 정의될 수 있다. 상기 개별 격자점(mp)에 대한 변형 가중치(α)는 3차원 아바타 모델이 기준 포즈를 취할 때(즉, 기준 모델) 제1 외형 연결점과 제2 외형 연결점 간의 거리, 3차원 아바타 모델이 기준 포즈를 취할 때(즉, 기준 모델) 해당 격자점(mp)과 제1 외형 연결점 사이의 거리에 기초하여 정의될 수 있다.
일부 실시 예들에서, 상기 모션 생성부(150)는 다음의 수학식을 통해 개별 격자점(mp)에 대한 변형 가중치(α)를 산출할 수 있다.
이러한 수학식 1 내지 수학식 3을 통해 목표 모션을 취함에 따라 형상이 변형된 상기 3차원 아바타 모델에 대응한 상기 3차원 의류 모델에서 상기 격자점(mp)의 위치 변화를 산출하고, 상기 의류 모델의 메쉬 구조에 기초해 상기 수학식 1에 적용되지 않은 나머지 격자점의 위치 변화를 산출함으로써, 상기 모션 생성부(150)는, 목표 모션을 취함에 따라 형상이 변형된 상기 3차원 아바타 모델에 대응한 상기 3차원 의류 모델의 변형 데이터를 상기 3차원 의류 모델의 모션 데이터로서 생성할 수 있다.
상기 수학식 1을 통한 의류 모델의 변형은 에셋 DB에 저장된 의류 모델의 에셋 형상을 사용자 속성이 반영된 아바타 모델의 형상에 대응하도록 변형하는데 이용될 수 있다. 상기 3차원 의류 모델의 에셋 형상을 나타낸 메쉬 구조의 격자점이 상기 수학식 1에 적용되는 격자점이고, 3차원 아바타 모델이 기준 포즈를 취하는 것이 목표 모션을 취하는 것으로 취급된다.
한편, 상기 사용자 이미지에 나타난, 의류 외 나머지 3차원 아이템 모델의 모션 데이터를 생성하는 단계는, 상기 3차원 아바타 모델의 모션 데이터(즉, 목표 모션)에 대응한 상기 나머지 3차원 아이템 모델의 변위 데이터(reposition data)를 생성하는 것일 수 있다. 팔찌, 신발, 피어싱 등과 같은, 의류를 제외한 대부분의 아이템은 사람이 움직이더라도 재질로 인해 형상이 변형되지 않지만, 아이템의 위치가 이동하는 움직임 특성을 가진다.
상기 단계(S355)에서 나머지 3차원 아이템 모델이 여러 개인 경우, 상기 단계(S355)의 동작은 3개의 3차원 아이템 모델 각각에 대해 수행될 수 있다.
상기 단계(S355)에서 상기 모션 생성부(150)는 상기 3차원 아바타 모델이 기준 포즈를 취할 때 나머지 3차원 아이템 모델의 위치를 기준으로 이동한 위치를 나타낸, 나머지 3차원 아이템 모델의 변위 데이터를 상기 나머지 3차원 아이템 모델의 모션 데이터로 생성할 수 있다.
본 출원의 다양한 실시 예들에서, 상기 목표 모션에 대응한 상기 나머지 3차원 아이템 모델의 변위 데이터(reposition data)를 생성하는 단계(S355)는, 나머지 3차원 아이템 모델 각각에 대해, 상기 기준 포즈를 갖고 있던 3차원 아바타 모델이 목표 모션을 취할 때 나머지 3차원 아이템 모델의 질량 중심이 이동한 새로운 위치를 추정하는 단계; 및 상기 나머지 3차원 아이템 모델의 새로운 질량 중심의 위치에 기초하여 상기 나머지 3차원 아이템 모델의 변위 데이터를 생성하는 단계를 포함할 수 있다.
일부 실시 예들에서, 상기 모션 생성부(150)는 개별 포즈의 시점 각각에서 상기 나머지 3차원 아이템 모델의 질량 중심(rcm)의 위치를 다음의 수학식을 통해 추정할 수 있다.
여기서, xcm, ycm, zcm 각각은 3차원 아이템 모델의 x축에 대한 질량 중심의 위치, y축에 대한 질량 중심의 위치, z축에 대한 질량 중심의 위치를 나타내는 것으로서, 다음의 수학식으로 정의될 수 있다.
여기서, M은 3차원 공간 상에 각각의 나머지 3차원 아이템 모델 을 표시하기 위한 단위 요소의 총 수를 나타낸다. 상기 nx는 나머지 3차원 아이템 모델을 표시하기 위한 단위 요소 중 x축 상에 위치한 개수를 나타낸다. 상기 ny는 나머지 3차원 아이템 모델을 표시하기 위한 단위 요소 중 y축 상에 위치한 개수를 나타낸다. 상기 nz는 나머지 3차원 아이템 모델을 표시하기 위한 단위 요소 중 z축 상에 위치한 개수를 나타낸다. 상기 단위 요소는 3차원 공간을 구성하는 단위일 수 있다.
일부 실시 예들에서, M은 3차원 공간 상에서 나머지 3차원 아이템 모델이 차지하는 총 픽셀의 수일 수 있다. 그러면, i는 3차원 공간 상에서 아이템 모델의 픽셀의 x축, y축, 및 z축 상의 좌표를 나타낸다.
상기 수학식 5를 통해 상기 3차원 아바타 모델이 목표 모션을 취할 때 3차원 아이템 모델이 기준 포즈를 취할 때 기준으로 이동해서 위치할 것으로 추정되는, 새로운 질량 중심의 위치(rcm)가 산출된다. 상기 모션 생성부(150)는 새로운 질량 중심의 위치(rcm)를 만족하는 변위 데이터를 상기 나머지 3차원 아이템 모델의 모션 데이터로 생성한다. 상기 변위 데이터는 기준 포즈를 취할 때와 나머지 3차원 아이템 모델의 형상을 유지하면서 새로운 질량 중심의 위치(rcm)를 만족하도록 격자점의 위치가 이동한 것을 나타낸다.
상기 모션 생성부(150)는 질량 중심과 나머지 3차원 아이템 모델의 3차원 메쉬 구조 내 개별 격자점(mp) 간의 위치 관계를 산출할 수 있다. 형상이 유지되면 질량 중심이 이동하여도 위치 관계 또한 유지된다. 즉, 질량 중심이 이동하면 상기 위치 관계가 유지될 수 있게 개별 격자점(mp) 또한 이동한다. 상기 모션 생성부(150)는 새로운 질량 중심과 상기 위치 관계를 유지할 수 있도록 새로운 질량 중심에 대응한 새로운 개별 격자점(mp)의 위치 좌표를 산출하여, 상기 나머지 3차원 아이템 모델의 변위 데이터를 생성할 수 있다.
이와 같이 상기 모션 생성부(150)는 사용자 이미지에 나타난 복수의 아이템 중 의류 아이템의 변형 데이터를 생성하고, 생성된 의류 아이템의 변형 데이터를 3차원 아바타 모델에 대한 목표 모션을 구성하는 일련의 포즈 순서로 배열하여 의류 아이템의 모션 데이터를 생성한다(S350). 또한, 상기 모션 생성부(150)는 사용자 이미지에 나타난 복수의 아이템 중 나머지 아이템 각각의 변위 데이터를 생성하며, 생성된 나머지 아이템의 변위 데이터를 3차원 아바타 모델에 대한 목표 모션을 구성하는 일련의 포즈 순서로 배열하여 나머지 아이템 각각의 모션 데이터를 생성한다(S350).
상기 아바타 생성 장치(100)는 3차원 아바타 모델의 모션 데이터, 3차원 의류 모델의 모션 데이터(즉, 변형 데이터), 및 나머지 3차원 아이템 모델의 모션 데이터(즉, 변위 데이터)를 이용하여 상기 3차원 아바타 모델이 목표 모션을 취하면서 3차원 아이템 모델 역시 목표 모션에 대응해 움직인 것을 나타낸 사용자 아바타의 모션 데이터를 생성할 수 있다. 즉, 상기 아바타 생성 장치(100)는 사용자 속성이 반영되어 생성된 사용자 아바타 데이터를 제어해 상기 사용자 아바타의 모션 데이터를 생성하여, 상기 3차원 아바타 모델이 목표 모션을 취하면서 3차원 아이템 모델 역시 목표 모션에 대응해 움직인 것을 구현하는 상기 사용자 아바타의 모션을 사용자에게 제공할 수 있다.
이와 같이 생성된 3차원 아바타 모델의 모션 데이터 및 3차원 아이템 모델의 모션 데이터를 갖는 사용자 아바타의 모션 데이터는 상기 사용자에 대응한 3차원 아바타 모델이 목표 모션을 취할 때 3차원 아이템 모델의 형상과 3차원 아바타 모델 형상의 충돌이 발생하지 않는다.
한편, 전술한 바와 같이 상기 단계(S350)에서 목표 모션 데이터는 복수의 포즈를 나타내는 것일 수 있다. 상기 복수의 포즈는 시간의 흐름에 따라 연속적인 동작을 나타내는 일련의 포즈일 수 있다.
상기 단계(S350)에서 입력되는, 상기 3차원 아바타 모델에 대한 목표 모션 데이터는 시간의 흐름에 따른 연속적인 부분 모션들을 나타낼 수 있다. 상기 모션 DB(151)에 미리 저장된 포즈는 사용자가 원하는 모션을 구현하는 다수의 부분 모션을 각각 나타낼 수 있다. 시간의 흐름은 부분 모션들 간의 순서를 가리키는 다양한 형태로 표현될 수 있다. 사용자 아바타의 모션 데이터를 비디오 데이터로 변환할 경우, 부분 모션들 간의 순서는 프레임 순서(또는 번호)에 대응할 수 있다.
부분 모션은 시퀀스 형태로 구현되는 목표 모션의 전체 동작에서 순간적으로 포착된 모션이다. 해당 순간에 포착된 부분 모션은 포즈 데이터로 표현될 수 있다. 전술한 바와 같이 3차원 아바타 모델은 키 데이터, 형상 데이터, 및 포즈 데이터로 구성되는데, 3차원 아바타 모델이 목표 모션을 취하는 동안 키, 체형의 변화 없이 포즈의 변화만 발생하기 때문이다.
본 출원의 다양한 실시 예들에서, 상기 목표 모션 데이터는 시계열 순서에 따른 입력 포즈 각각을 나타내는 것으로서, 개별 입력 포즈를 취할 때 관절점 세트의 위치를 각각 나타낼 수 있다. 관절점 세트의 위치는 개별 포즈 데이터에서 획득된다. 각 포즈 데이터가 해당 위한 관절점 데이터 세트를 가지기 때문이다.
시계열 순서에 따라 일련의 입력 포즈로 아바타의 형상을 변형하면, 아바타가 목표 모션을 취하는 동작을 구현할 수 있다.
일부 실시 예들에서, 시스템(1)은 전술한 바와 같이 사용자의 포즈 프롬프트를 수신하면 모션 DB(151)에 저장된 포즈 데이터를 이용하여 상기 3차원 아바타 모델에 대한 목표 모션 데이터를 생성할 수 있다.
만약 포즈 프롬프트가 일련의 목표 모션을 나타낼 경우, 복수의 입력 포즈 데이터가 검색되어, 상기 3차원 아바타 모델에 대한 목표 모션 데이터 세트를 생성할 수 있다.
입력 포즈 데이터는 입력된 포즈를 나타낸 포즈 데이터이다. 상기 입력 포즈 데이터는 해당 포즈를 위한 관절점 데이터 세트를 포함한다.
상기 포즈 프롬프트는 포즈 명칭, 또는 포즈 형태를 개략적으로 도시한 포즈 이미지일 수 있다. 상기 포즈 프롬프트는 하나 이상의 입력 포즈를 서술할 수 있다. 그러면, 상기 포즈 프롬프트는 순서별 입력 포즈를 서술한 일련의 포즈 명칭 또는 일련의 포즈 이미지일 수 있고, 결국 3차원 아바타 모델에 대한 목표 모션 데이터는 일련의 입력 포즈를 상기 아바타 모델이 취하는 것을 나타낸, 상기 아바타 모델의 일련의 변형 데이터를 포함할 수 있다.
이를 위해, 상기 모션 생성부(150)는 목표 모션 데이터를 생성하기 위해, 목표 모션을 구성하는 포즈를 서술하는 프롬프트를 입력하는 모션 입력 화면을 제공하고, 상기 모션 입력 화면을 통해 사용자의 프롬프트 정보가 입력되면, 입력된 프롬프트 정보에 미리 연관된 관절점 데이터를 상기 모션 DB(151)에서 검색하여 목표 모션 데이터를 획득할 수 있다.
이러한 시퀀스 모션을 위한 목표 모션 데이터가 입력되면, 상기 모션 생성부(150)는 사용자 아바타 데이터를 제어하여 시간의 흐름에 따른 연속적인 동작을 나타내는, 시퀀스 모션을 구현하기 위한 상기 사용자 아바타의 시퀀스 모션 데이터를 상기 사용자 아바타의 모션 데이터로서 생성할 수 있다(S350).
이러한 과정은 도 3 내지 도 9을 참조하여 전술한, 단일 모션을 취하는 것을 나타낸 사용자 아바타의 모션 데이터를 생성하는 과정과 유사하므로, 차이점을 위주로 서술한다.
도 10은, 본 출원의 다양한 실시 예들에 따른, 상기 사용자 아바타 데이터를 제어하여 자연스러운 시퀀스 모션을 구현하기 위한 상기 사용자 아바타의 모션 데이터를 생성하는 과정의 세부 흐름도이다.
도 10을 참조하면, 상기 상기 사용자 아바타 데이터를 제어하여 자연스러운 시퀀스 모션을 구현하기 위한 상기 사용자 아바타의 모션 데이터를 생성하는 단계(S350)는, 일련의 입력 포즈가 연속적으로 구현되는 목표 모션을 서술하는, 목표 모션 데이터가 입력되면, 상기 사용자 아바타 데이터에서 상기 아바타 모델 데이터를 제어하여 상기 아바타 모델이 상기 목표 모션을 취하는 것을 나타내는 상기 아바타 모델의 모션 데이터를 생성하는 단계(S352)를 포함한다.
상기 아바타 모델의 모션 데이터는 상기 일련의 포즈 내 각각의 포즈에 대응한, 상기 아바타 모델의 일련의 변형 데이터를 포함한다.
상기 단계(S352)는, 상기 단계(S330)에서 생성된 사용자 아바타 데이터에서 기준 포즈를 취할 때의 3차원 아바타 모델의 관절점의 위치를 상기 일련의 입력 포즈를 취할 때의 상기 3차원 아바타 모델의 관절점의 위치로 변경하고, 그리고 각각의 포즈별로 변경된 관절점의 위치에 기초하여 상기 3차원 아바타 모델의 일련의 변형 데이터를 생성하는 단계(S3521)를 포함한다.
상기 단계(S3521)는 상기 단계(S351)의 동작과 유사하므로, 차이점을 위주로 서술한다.
다시 도 8을 참조하면, 사용자는 사용자 아바타가 상기 1번 내지 6번 포즈를 순차적으로 취하는 것을 가리키는 목표 움직임 데이터를 입력하고자 할 수 있다. 상기 1번 내지 6번 포즈는 센서 기반(또는 이미지 기반) 모션 캡처 데이터로 제공되거나, 또는 포즈 프롬프트에 기반해 모션 DB(151)에서 검색된 일련의 입력 포즈 데이터(예컨대, 1번 포즈 데이터 내지 6번 포즈 데이터)일 수 있다. 상기 일련의 포즈가 목표 모션으로 입력되면, 상기 모션 생성부(150)는 기준 포즈를 취하고 있던 3차원 아바타 모델 데이터에서 포즈 데이터가를 변경할 수 있다.
상기 3차원 아바타 모델의 일련의 변형 데이터 각각은 일련의 포즈 각각을 상기 3차원 아바타 모델이 취하기 위해 형상이 변형된 것을 나타낸다. 상기 단계(S3521)는 기준 모델에서 단일 포즈의 목표 모션이 입력되었을 때 3차원 아바타 모델의 모션 데이터를 생성하는 것이다. 구체적으로, 모션 생성부(150)는 상기 3차원 아바타 모델의 형상 데이터에서 기준 포즈를 위한 관절점 데이터 세트를 상기 목표 모션 데이터를 구성하는 일련의 포즈 데이터에서 포즈별 관절점 데이터 세트로 변경할 수 있다. 관절점 데이터 세트가 변경되면, 상기 3차원 아바타 모델을 구성하는 복수의 관절점 각각에 대해 기준 포즈를 위한 관절점의 위치가 적용된 포즈를 위한 관절점의 위치로 각각 변경된다.
예를 들어, 도 8의 일련의 입력 포즈를 나타낸 3차원 아바타 모델에 대한 목표 모션 데이터가 입력되면, 모션 생성부(150)는 도 8의 기준 포즈를 나타내는 3차원 아바타 모델의 관절점 세트의 위치를 1번째 입력 포즈 내지 6번째 입력 포즈 각각의 관절점의 위치로 변경하여, 3차원 아바타 모델이 1번째 입력 포즈를 취하는 것을 나타낸 3차원 아바타 모델의 1번째 변형 데이터 내지 6번째 입력 포즈를 취하는 것을 나타낸 3차원 아바타 모델의 6번째 변형 데이터를 생성할 수 있다.
마찬가지로, 모션 생성부(150)는 도 8의 기준 포즈를 나타내는 3차원 아바타 모델의 관절점 세트의 위치를 도 8의 입력 포즈 사이의 연결 포즈들 각각의 관절점의 위치로 변경하여 연결 포즈들을 취하는 것을 나타낸 3차원 아바타 모델의 다른 변형 데이터(즉, 연결 모션 데이터)를 생성할 수 있다.
즉, 단계(S3521)의 동작은 연속된 포즈가 상기 단계(S351)의 목표 모션으로 취급되어 단계(S351)의 동작이 여러 번 수행되는 것일 수 있다.
또한, 상기 단계(S352)는, 상기 일련의 입력 포즈 중에서 서로 포즈 순서가 인접한 입력 포즈 사이를 연결하는, 상기 3차원 아바타 모델의 일련의 연결 모션 데이터를 생성하는 단계(S3522)를 포함할 수 있다. 상기 일련의 연결 모션 데이터에서 각각의 연결 모션 데이터는 인접한 입력 포즈 사이의 하나 이상의 변형 데이터일 수 있다. 즉, 상기 단계(S3522)에서 상기 모션 생성부(150)는 사용자가 입력한, 입력 포즈에 대한 상기 아바타 모델의 일련의 변형 데이터와 사용자가 직접 입력하지 않았은 연결 포즈에 대한 상기 아바타 모델의 다른 일련의 변형 데이터, 즉 상기 일련의 연결 모션 데이터를 생성한다.
일련의 입력 포즈에 대응한 일련의 변형 데이터를 프레임으로 볼 경우, 입력 포즈와 입력 포즈 간의 변형 데이터는 보간 프레임(interpolated frame)으로 볼 수 있다. 인접한 입력 포즈 간의 변형 데이터는 입력 포즈에 대응한 변형 데이터만으로 구성된 경우 대비 보다 자연스러운 시퀀스 모션을 제공하게 한다.
순서가 인접한 입력 포즈들은 시계열 상에서 연속된 포즈이다. 상기 모션 생성부(150)는 개별 관절점의 구동 각도 범위 및 구동 방향 범위에 기초하여 입력 포즈와 다음 입력 포즈에서 관절점의 위치 변화를 추적하여 적어도 하나의 인접한 입력 포즈 간의 변형 데이터를 연결 모션 데이터로서 생성할 수 있다. 관절점의 위치 변화는 움직이는 관절점의 궤적으로서, 해당 관절점의 구동 각도 범위, 구동 방향 범위에 기초하여 산출될 수 있다. 상기 모션 생성부(150)는 인접한 입력 포즈 간의 적어도 하나의 변형 데이터를 연결 모션 데이터로 생성할 수 있다.
예를 들어, 상기 도 8에 도시된 일련의 입력 포즈들에서 인접한 입력 포즈는 (P1, P2), (P2, P3), .., (P5, P6) 일 수 있다. 상기 모션 생성부는 도 8의 입력 포즈 내 관절점의 변화를 추적하여 1번째 연결 모션 데이터 내지 5번째 연결 모션 데이터를 생성할 수 있다.
또한, 일부 실시 예들에서, 상기 단계(S3522)는, 마지막 입력 포즈와 기준 포즈 사이를 연결하는 추가 연결 모션 데이터를 생성하는 단계를 포함할 수 있다. 그러면, 상기 모션 생성부는 도8의 마지막 포즈(P6)와 기준 포즈(Pinit) 각각의 관절점의 변화를 추적하여 6번째 연결 모션 데이터를 추가 연결 모션 데이터로 생성할 수 있다(S3522).
전술한 바와 같이 상기 일련의 입력 포즈 및 이들 사이의 연결 모션은 3차원 아바타 모델이 각각의 포즈/모션을 취할 때의 변형 데이터이다. 이와 같이 생성된 상기 3차원 아바타 모델의 변형 데이터 세트는 일련의 입력 포즈를 나타낸 제1 서브 세트, 및 일련의 연결 모션을 나타낸 제2 서브 세트로 분류될 수 있다.
또한, 상기 단계(S352)는, 상기 단계(S3521)에서 생성한, 상기 아바타 모델의 일련의 변형 데이터를 배열하고, 상기 단계(S3522)에서 생성한, 상기 아바타 모델의 일련의 연결 모션 데이터를 배열 순서가 인접한 변형 데이터 사이에 삽입 배열하여, 상기 일련의 변형 데이터와 상기 일련의 연결 모션 데이터로 이루어진 상기 목표 모션에 따른 3차원 아바타 모델의 모션 데이터를 생성하는 단계(S3523)를 포함한다.
상기 모션 생성부(150)는 상기 아바타 모델의 일련의 변형 데이터를 목표 모션 데이터에서 입력 포즈의 배열 순서에 따라 배열하고, 일련의 연결 모션 데이터를 입력 포즈 데이터 사이에 삽입 배열하여 목표 모션에 따른 3차원 아바타 모델의 모션 데이터를 생성할 수 있다(S3523).
즉, 상기 모션 생성부(150)는 상기 3차원 아바타 모델에 대한 목표 모션 데이터를 상기 사용자 아바타 데이터의 3차원 아바타 모델 데이터에 적용해 상기 3차원 아바타 모델 데이터를 변경하는 것은 물론(S3521), 연결 모션 데이터를 생성해 이들을 배열하여(S3522, S3523) 최종적으로 상기 3차원 아바타 모델의 모션 데이터를 생성할 수 있다.
또한, 도 10의 단계(S350)는, 상기 3차원 아바타 모델이 목표한 시퀀스 모션을 순차적으로 취할 때 사용자의 아이템의 움직임을 나타낸 상기 3차원 아이템 모델의 모션 데이터를 생성하는 단계(S354, S356)를 포함한다.
상기 단계(S3521, S3522)에 따르면 목표한 시퀀스 모션은 일련의 입력 포즈 및 연결 모션을 갖기 때문에, 아이템 모델의 모션 데이터은 입력 포즈, 연결 모션에 대응한 연속된 아이템의 움직임을 나타낸다. 아이템 모델의 모션 데이터는 3차원 아바타 모델이 각각의 포즈/모션을 취할 때의 아이템 모델의 변형 데이터 세트에 대응할 수 있다.
상기 모션 생성부(150)는, 상기 단계(S352)에서 생성한 3차원 아바타 모델의 일련의 변형 데이터(및 일련의 연결 모션 데이터)와 상기 단계(S330)의 상기 사용자 아바타 데이터에서 상기 3차원 아이템 모델의 형상 데이터에 기초하여, 상기 3차원 아바타 모델에 대한 목표 모션에 대응해 상기 3차원 아바타 모델이 움직이는 것을 나타낸, 상기 3차원 아이템 모델의 모션 데이터를 생성할 수 있다. 상기 3차원 아이템 모델의 모션 데이터는 일련의 입력 포즈(예를 들어, 도 8의 P1 내지 P6) 각각에 대응해 3차원 아이템 모델이 순차적으로 움직이는 것을 나타낸다.
상기 모션 생성부(150)는 이러한 옷, 손가방과 같은 3차원 아이템 모델의 움직임을 3차원 모델로 구현할 수 있다.
상기 3차원 아이템 모델의 모션 데이터는 목표 모션 데이터에서 일련의 포즈를 각각 취할 시점에 해당 아이템이 가져야 할 변형된 형상 또는 이동한 위치를 순차적으로 배열한 것일 수 있다. 3차원 아이템 모델즉, 3차원 아이템 모델의 모션 데이터는 일련의 포즈의 시점에 해당 아이템이 가져야할 변형된 형상 또는 이동한 위치를 나타낸다.
상기 3차원 아이템 모델의 모션 데이터가 해당 아이템의 변형 데이터 또는 이동 데이터인지는 아이템 카테고리에 의존한다. 본 출원의 다양한 실시 예들에서, 상기 3차원 아이템 모델의 모션 데이터를 생성하는 단계(S350)는, 3차원 의류 모델의 모션 데이터를 생성하는 단계(S354); 및 상기 사용자 이미지에 나타난, 의류 외 나머지 3차원 아이템 모델의 모션 데이터를 생성하는 단계(S356);를 포함할 수 있다.
상기 3차원 의류 모델의 모션 데이터를 생성하는 단계(S354)는, 상기 3차원 아바타 모델의 모션 데이터에 대응한 상기 3차원 의류 모델의 변형 데이터(reshape data) 세트를 생성하는 단계(S3541); 및 상기 3차원 의류 모델의 변형 데이터 세트에서 상기 3차원 의류 모델의 변형 데이터 각각을 대응한 상기 3차원 아바타 모델의 일련의 변형 데이터, 일련의 연결 모션 데이터의 배열 순서에 따라 배열하여 상기 3차원 의류 모델의 모션 데이터를 생성하는 단계(S3543)를 포함한다.
상기 3차원 아바타 모델의 모션 데이터에 대응한 상기 3차원 의류 모델의 변형 데이터 세트는 상기 3차원 아바타 모델의 변형 데이터 또는 연결 모션 데이터에 대응한 의류 모델의 변형 데이터로 이루어진다. 상기 의류 모델의 변형 데이터는 상기 3차원 아바타 모델이 변형된 상태의 포즈(또는 연결 모션)를 취하는 것에 따라서 의류 모델의 형상이, 상기 3차원 아바타 모델이 기준 포즈를 취할 때 상기 의류 모델의 형상을 기준으로 변형된 것을 나타낸다.
전술한 바와 같이 상기 3차원 아바타 모델의 모션 데이터는 일련의 변형 데이터와 일련의 연결 모션으로 서브 세트화될 수 있다. 따라서, 상기 모션 생성부(150)가 생성하는 3차원 의류 모델의 변형 데이터 세트는, 상기 3차원 아바타 모델의 모션 데이터에서 상기 3차원 아바타 모델의 일련의 변형 데이터에 대응한 변형 데이터로 이루어진, 제1 서브 세트; 및 상기 3차원 아바타 모델의 모션 데이터에서 상기 3차원 아바타 모델의 일련의 연결 모션 데이터에 대응한 변형 데이터로 이루어진, 제2 서브 세트로 이루어진다.
3차원 아바타 모델의 모션 데이터에서 변형 데이터, 연결 모션 데이터는 배열 순서에 따라 배열되어 있다. 상기 3차원 의류 모델의 변형 데이터 세트의 배열 순서는 대응하는 3차원 아바타 모델의 변형 데이터, 연결 모션 데이터의 배열 순서와 매칭된다.
상기 단계(S3541)에서 n번째 배열 순서를 갖는 상기 3차원 아바타 모델의 변형 데이터 대응하는, (즉, 역시 n번째 배열 순서를 갖는) 상기 3차원 의류 모델의 변형 데이터는 또한 수학식 1을 통해 생성될 수 있다. 구체적으로, 상기 모션 생성부(150)는 상기 3차원 아바타 모델이 기준 포즈일 때 3차원 아이템 모델의 형상 데이터, 상기 3차원 아바타 모델이 제1 배열 순서를 취할 때 상기 3차원 의류 모델의 변형 가중치, 상기 3차원 아바타 모델이 상기 목표 모션을 취할 때 상기 3차원 아바타 모델의 형상 데이터에서 외형 연결점의 위치와 상기 3차원 아바타 모델이 기준 포즈일 때 상기 3차원 아바타 모델의 형상 데이터에서 외형 연결점의 위치 간의 차이에 기초하여, 상기 제1 배열 순서의 목표 모션에 대응한 상기 3차원 의류 모델의 변형 데이터를 생성할 수 있다. 또한, 상기 모션 생성부(150)는 상기 3차원 아바타 모델이 기준 포즈일 때 3차원 아이템 모델의 형상 데이터, 상기 3차원 아바타 모델이 제2 배열 순서를 취할 때 상기 3차원 의류 모델의 변형 가중치, 상기 3차원 아바타 모델이 상기 목표 모션을 취할 때 상기 3차원 아바타 모델의 형상 데이터에서 외형 연결점의 위치와 상기 3차원 아바타 모델이 기준 포즈일 때 상기 3차원 아바타 모델의 형상 데이터에서 외형 연결점의 위치 간의 차이에 기초하여, 상기 제2 배열 순서의 목표 모션에 대응한 상기 3차원 의류 모델의 변형 데이터를 생성할 수 있다. 이러한 과정을 n번 반복하여 n개의 배열 순서, 즉 제1 배열 순서, 제2 배열 순서, .., 제n 배열 순서에 대한 3차원 의류 모델의 변형 데이터를 생성할 수 있다(S3541). 이러한 각각의 배열 순서에 대응한 의류 모델의 변형 데이터를 생성하는 것은 상기 수학식 1-3을 이용해 n개의 연속적인 변형 데이터를 생성하는 것으로서, 이 동작에 대해서는 상기 수학식 1-3을 참조해 전술하였는 바, 자세한 설명은 생략한다.
이와 같이 상기 모션 생성부(150)는 기준 모델을 이용하여 상기 3차원 아바타 모델이 목표한 시퀀스 모션을 취하기 위해 형상이 변형되는 연속된 시각(time point) 각각에서 3차원 의류 모델의 변형 데이터를 생성할 수 있다. 그 결과, 상기 모션 생성부(150)는 3차원 의류 모델의 형상이 목표 모션으로 움직인 3차원 아바타 모델과 충돌하지 않는,상기 3차원 의류 모델의 변형 데이터 세트를 생성할 수 있다.
상기 모션 생성부(150)는 상기 3차원 아바타 모델의 모션 데이터에서 상기 3차원 의류 모델의 변형 데이터 각각을 대응한 상기 3차원 아바타 모델의 일련의 변형 데이터, 일련의 연결 모션 데이터의 배열 순서에 따라 상기 3차원 의류 모델의 변형 데이터 세트 역시 배열하여 상기 3차원 의류 모델의 모션 데이터를 생성할 수 있다(S3543).
한편, 상기 사용자 이미지에 나타난, 의류 외 나머지 3차원 아이템 모델의 모션 데이터를 생성하는 단계(S356)는, 상기 나머지 3차원 아이템 모델 각각에 대해, 상기 3차원 아바타 모델의 모션 데이터에 대응한 상기 나머지 3차원 아이템 모델의 변위 데이터(reposition data) 세트를 생성하는 단계(S3561); 상기 나머지 3차원 아이템 모델의 변위 데이터 세트에서 상기 나머지 3차원 아이템 모델의 변위 데이터 각각을, 대응한 상기 3차원 아바타 모델의 일련의 변형 데이터, 일련의 연결 모션 데이터의 배열 순서에 따라 배열하여 상기 나머지 3차원 아이템 모델의 모션 데이터를 생성하는 단계(S3563)를 포함할 수 있다.
상기 3차원 아바타 모델의 모션 데이터에 대응한 상기 3차원 의류 모델의 변위 데이터 세트는 상기 3차원 아바타 모델의 변형 데이터 또는 연결 모션 데이터에 대응한 아이템 모델의 변위 데이터로 이루어진다. 상기 의류 모델의 변형 데이터는 상기 3차원 아바타 모델이 변형된 상태의 포즈(또는 연결 모션)를 취하는 것에 따라서 아이템 모델의 위치가, 상기 3차원 아바타 모델이 기준 포즈를 취할 때 상기 아이템 모델의 위치를 기준으로 위치 이동한 것을 나타낸다.
전술한 바와 같이 상기 3차원 아바타 모델의 모션 데이터는 일련의 변형 데이터와 일련의 연결 모션으로 서브 세트화될 수 있다. 따라서, 상기 모션 생성부(150)가 생성하는 나머지 3차원 아이템 모델의 변위 데이터 세트는, 상기 3차원 아바타 모델의 모션 데이터에서 상기 3차원 아바타 모델의 일련의 변형 데이터에 대응한 변위 데이터로 이루어진, 제1 서브 세트; 및 상기 3차원 아바타 모델의 모션 데이터에서 상기 3차원 아바타 모델의 일련의 연결 모션 데이터에 대응한 변위 데이터로 이루어진, 제2 서브 세트로 이루어진다.
목표 모션을 구현하기 위한 상기 3차원 아바타 모델의 변형 데이터 세트에 대응한, 상기 나머지 3차원 아이템 모델의 변위 데이터를, 나머지 3차원 아이템 모델 각각에 대해, 생성할 수 있다.
3차원 아바타 모델의 모션 데이터에서 변형 데이터, 연결 모션 데이터는 배열 순서에 따라 배열되어 있다. 상기 나머지 3차원 아이템 모델의 변위 데이터 세트의 배열 순서는 대응하는 3차원 아바타 모델의 변형 데이터, 연결 모션 데이터의 배열 순서와 매칭된다.
본 출원의 다양한 실시 예들에서, 상기 3차원 아바타 모델이 n-1번째 배열 순서의 변형 데이터가 나타내는 포즈(또는 연결 모션)에서 n번째 배열 순서의 변형 데이터가 나타내는 포즈(또는 연결 모션)를 새롭게 취할 때 나머지 3차원 아이템 모델의 질량 중심이 이동하는 새로운 위치를 추정하는 단계; 및 상기 나머지 3차원 아이템 모델의 새로운 질량 중심의 위치에 기초하여 상기 나머지 3차원 아이템 모델의 변위 데이터를 생성하는 단계를 포함할 수 있다.
이러한 나머지 3차원 아이템 모델의 변위 데이터를 생성하기 위한 질량 중심의 새로운 위치는 상기 수학식 4 및 수학식 5를 이용하여 산출할 수 있다. 구체적으로, n번째 배열 순서의 3차원 아바타 모델의 변형 데이터에 대응한, n번째 배열 순서의 나머지 3차원 아이템 모델의 3차원 아이템 모델의 질량 중심이 이동할 것으로 추정되는, 새로운 질량 중심의 위치(rcm)가 각각 산출된다. 상기 모션 생성부(150)는, n번째 배열 순서의 나머지 3차원 아이템 모델의 새로운 질량 중심의 위치(rcm)를 만족하는 변위 데이터를 생성한다. 전술한 바와 같이 3차원 아이템 모델은 메쉬 구조로 구현될 수 있는 바, 상기 변형 데이터는 n개의 포즈 각각의 시점에서 새로운 질량 중심의 위치(rcm)를 만족하도록 격자점의 위치가 이동한 것을 나타낸다.
이와 같이 상기 모션 생성부(150)는 사용자 이미지에 나타난 복수의 아이템 중 의류 아이템의 변형 데이터 세트를 생성하고, 생성된 의류 아이템의 변형 데이터 세트를 3차원 아바타 모델의 변형 데이터 세트의 배열 순서로 배열하여 의류 아이템의 모션 데이터를 생성한다(S3543). 또한, 상기 모션 생성부(150)는 사용자 이미지에 나타난 복수의 아이템 중 나머지 아이템 각각의 변위 데이터 세트를 생성하며, 생성된 나머지 아이템의 위 데이터 세트를 3차원 아바타 모델의 변형 데이터 세트의 배열 순서로 배열하여 나머지 아이템 각각의 모션 데이터를 생성한다(S3563).
상기 모션 생성부(150)는 아바타 모델의 모션 데이터, 의류 모델의 모션 데이터, 나머지 아이템 모델의 모션 데이터를 이용해 전체 사용자 아바타의 모션 데이터를 생성할 수 있다(S350).
이와 같이 생성된 3차원 아바타 모델의 모션 데이터 및 3차원 아이템 모델의 모션 데이터를 갖는 사용자 아바타의 모션 데이터는 상기 사용자에 대응한 3차원 아바타 모델이 목표 모션에 따라서 움직이는 동안 아이템 또한 상기 목표 모션에 따라서 움직임으로써, 3차원 아바타 모델이 움직이는 동안 3차원 아이템 모델의 형상과 3차원 아바타 모델 형상의 충돌이 발생하지 않는다.
그 결과, 상기 시스템(1)에서는 3차원 아이템 모델과의 충돌을 방지하기 위해 3차원 아바타 모델의 모션을 제한할 필요가 없고, 결국 사용자가 원하는 아바타 모션을 실제 관절의 구동 각도 범위, 구동 방향 범위 안에서 자유롭게 구현할 수 있다.
하드웨어를 이용하여 본 발명의 실시 예를 구현하는 경우에는, 본 발명을 수행하도록 구성된 ASICs(application specific integrated circuits) 또는 DSPs(digital signal processors), DSPDs(digital signal processing devices), PLDs(programmable logic devices), FPGAs(field programmable gate arrays) 등이 본 발명의 프로세서에 구비될 수 있다.
한편, 상술한 방법은, 컴퓨터에서 실행될 수 있는 프로그램으로 작성 가능하고, 컴퓨터 판독 가능 매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 또한, 상술한 방법에서 사용된 데이터의 구조는 컴퓨터 판독 가능한 저장 매체에 여러 수단을 통하여 기록될 수 있다. 본 발명의 다양한 방법들을 수행하기 위한 실행 가능한 컴퓨터 코드를 포함하는 저장 디바이스를 설명하기 위해 사용될 수 있는 프로그램 저장 디바이스들은, 반송파(carrier waves)나 신호들과 같이 일시적인 대상들은 포함하는 것으로 이해되지는 않아야 한다. 상기 컴퓨터 판독 가능한 저장 매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, DVD 등)와 같은 저장 매체를 포함한다.
이상에서 설명된 실시 예들은 본 발명의 구성요소들과 특징들이 소정 형태로 결합된 것들이다. 각 구성요소 또는 특징은 별도의 명시적 언급이 없는 한 선택적인 것으로 고려되어야 한다. 각 구성요소 또는 특징은 다른 구성요소나 특징과 결합되지 않은 형태로 실시될 수 있다. 또한, 일부 구성요소들 및/또는 특징들을 결합하여 본 발명의 실시 예를 구성하는 것도 가능하다. 발명의 실시 예들에서 설명되는 동작들의 순서는 변경될 수 있다. 어느 실시 예의 일부 구성이나 특징은 다른 실시 예에 포함될 수 있고, 또는 다른 실시 예의 대응하는 구성 또는 특징과 교체될 수 있다. 특허청구범위에서 명시적인 인용 관계가 있지 않은 청구항들을 결합하여 실시 예를 구성하거나 출원 후의 보정에 의해 새로운 청구항으로 포함시킬 수 있음은 자명하다.
본 발명이 본 발명의 기술적 사상 및 본질적인 특징을 벗어나지 않고 다른 형태로 구체화될 수 있음은 본 발명이 속한 분야 통상의 기술자에게 명백할 것이다. 따라서, 상기 실시 예는 제한적인 것이 아니라 예시적인 모든 관점에서 고려되어야 한다. 본 발명의 권리범위는 첨부된 청구항의 합리적 해석 및 본 발명의 균등한 범위 내 가능한 모든 변화에 의하여 결정되어야 한다.

Claims (14)

  1. 컴퓨팅 장치에 의해 수행되는, 아이템 속성을 갖는 사용자 아바타의 모션을 시각적으로 자연스럽게 구현하는 방법에 있어서,
    사용자 및 상기 사용자의 아이템이 나타난 사용자 이미지 내 관심 영역을 분석하여 사용자 속성, 및 사용자와 관련된 아이템 속성을 인식하고 상기 아이템 속성을 제공하는 상기 사용자 이미지에 나타난 아이템의 위치를 인식하는 단계;
    인식된 사용자 속성에 기초해 상기 사용자의 형상을 나타낸 3차원 아바타 모델 및 인식된 아이템 속성에 기초해 상기 아이템의 형상을 나타낸 3차원 아이템 모델을 나타낸 사용자 아바타 데이터를 생성하는 단계; 및
    사용자의 목표 모션 데이터가 입력되면, 상기 사용자 아바타 데이터를 제어하여, 아이템과 3차원 아바타 모델이 충돌하지 않으면서 상기 3차원 아바타 모델이 상기 목표 모션을 취하는 것을 나타내는, 상기 사용자 아바타의 모션 데이터를 생성하는 단계를 포함하고,
    상기 사용자 아바타의 모션 데이터를 생성하는 단계는,
    상기 3차원 아바타 모델에 대한 목표 모션 데이터를 상기 사용자 아바타 데이터의 3차원 아바타 모델 데이터에 적용해 상기 3차원 아바타 모델 데이터를 변경하여, 상기 3차원 아바타 모델의 변형 데이터를 상기 3차원 아바타 모델의 모션 데이터로서 생성하는 단계; 및
    상기 3차원 아바타 모델의 변형 데이터 및 상기 사용자 아바타에서 상기 3차원 아이템 모델의 형상 데이터에 기초하여, 상기 3차원 아바타 모델에 대한 목표 모션에 대응해 상기 3차원 아이템 모델이 움직이는 것을 나타낸, 상기 3차원 아이템 모델의 모션 데이터를 생성하는 단계를 포함하고,
    상기 목표 모션는 적어도 하나의 입력 포즈를 나타내고,
    상기 3차원 아이템 모델의 모션 데이터를 생성하는 단계는,
    상기 사용자 이미지에 나타난 3차원 의류 모델의 모션 데이터를 생성하는 단계; 및
    상기 사용자 이미지에 나타난, 의류 외 나머지 3차원 아이템 모델 각각에 대해, 개별 3차원 아이템 모델의 모션 데이터를 생성하는 단계;를 포함하고,
    상기 3차원 의류 모델의 모션 데이터를 생성하는 단계는, 상기 3차원 아바타 모델의 모션 데이터에 대응한 상기 3차원 의류 모델의 변형 데이터(reshape data)를 생성하는 것으로서, 상기 3차원 아바타 모델이 기준 포즈일 때 3차원 의류 모델의 형상 데이터, 상기 3차원 아바타 모델이 목표 모션을 취할 때 상기 3차원 의류 모델의 변형 가중치, 상기 3차원 아바타 모델이 상기 목표 모션을 취할 때 상기 3차원 아바타 모델의 형상 데이터에서 외형 연결점의 위치와 상기 3차원 아바타 모델이 기준 포즈일 때 상기 3차원 아바타 모델의 형상 데이터에서 외형 연결점의 위치 간의 차이에 기초하여, 상기 목표 모션 데이터에 대응한 상기 3차원 의류 모델의 변형 데이터를 생성하는 것을 특징으로 하는,
    방법.
  2. 제1항에 있어서, 사용자 및 상기 사용자의 아이템이 나타난 사용자 이미지 내 관심 영역을 분석하여 사용자 속성, 및 사용자와 관련된 아이템 속성을 인식하고 상기 아이템 속성을 제공하는 상기 사용자 이미지에 나타난 아이템의 위치를 인식하는 단계는,
    상기 사용자 이미지에서 사용자 얼굴이 나타난 제1 관심 영역 및 사용자 신체가 나타난 제2 관심 영역을 각각 검출하는 단계;
    상기 제1 관심 영역, 상기 제2 관심 영역에서 미리 학습된 속성 인식 모델을 이용하여 상기 사용자 이미지에 시각적으로 표출되어 있는 사용자 속성 및 아이템 속성을 인식하는 단계; 및
    인식된 아이템 속성을 제공하는 사용자의 아이템의 위치를 사용자 이미지에서 인식하는 단계를 포함하는,
    방법.
  3. 제2항에 있어서,
    미리 학습된 속성 인식 모델은, 얼굴 영역에서 특징을 추출하고 추출된 특징 및 상기 얼굴 영역에서의 랜드마크 검출 결과에 기초하여 사용자 속성 및 얼굴 주변의 아이템에 대한 아이템 속성을 산출하는 제1 속성 인식 모델, 및 신체 영역에서 특징을 추출하고 추출된 특징 및 상기 신체 영역에서의 랜드마크 검출 결과에 기초하여 사용자 속성 및 신체 주변의 아이템에 대한 아이템 속성을 산출하는 제2 속성 인식 모델이고,
    상기 제1 관심 영역, 상기 제2 관심 영역에서 미리 학습된 속성 인식 모델을 이용하여 상기 사용자 이미지에 시각적으로 표출되어 있는 사용자 속성 및 아이템 속성을 인식하는 단계는,
    사용자 속성을 산출하기 이전에, 얼굴 영역, 신체 영역의 랜드마크를 검출하는 단계;
    상기 제1 관심 영역의 이미지를 상기 제1 속성 인식 모델에 입력하여 얼굴 영역에서 사용자 속성 및 얼굴 주변의 아이템에 대한 아이템 속성을 산출하는 단계; 및
    상기 제2 관심 영역의 이미지를 상기 제2 속성 인식 모델에 입력하여 신체 영역에서 사용자 속성 및 신체 주변의 아이템에 대한 아이템 속성을 산출하는 단계;를 포함하는 것을 특징으로 하는,
    방법.
  4. 제3항에 있어서,
    상기 사용자의 얼굴, 신체를 설명하는 정보인 상기 사용자 속성은 키, 신체 비율, 체형, 얼굴형, 얼굴 크기 중 하나 이상을 포함하고, 여기서, 키, 신체 비율, 체형은 신체 속성이고, 얼굴형, 얼굴 크기는 얼굴 속성이며,
    상기 사용자의 얼굴, 신체에 삽입, 접촉 또는 착용된 아이템을 설명하는 정보인 상기 아이템 속성은 아이템 카테고리, 아이템 종류, 크기, 위치, 색상 중 하나 이상의 속성 항목을 포함하는 것을 특징으로 하는,
    방법.
  5. 제1항에 있어서,
    상기 사용자 아바타 데이터에서 상기 3차원 아바타 모델은 형상 파라미터, 포즈 파라미터로 매개변수화된 함수로 정의되는 것으로서,

    상기 사용자 아바타 데이터에서 상기 3차원 아바타 모델이 미리 설정된 기준 포즈를 갖는 것을 나타낸 3차원 아바타 모델 데이터는 사용자의 신체 속성이 반영된 아바타 모델의 형상을 나타낸 형상 데이터 및 상기 기준 포즈를 나타낸 포즈 데이터를 포함하고,
    상기 형상 데이터는 아바타 모델의 외형 실루엣을 표현하는 외형 연결정보로서 복수의 외형 연결점 정보 및 상기 외형 연결점을 연결하는 외형 연결선 정보를 포함하고,
    상기 3차원 아바타 모델 데이터는 관절점 세트를 나타낸 관절점 데이터 세트를 더 포함하고, 상기 관절점 데이터 세트에서 개별 관절점 데이터는 개별 관절점 각각의 식별정보, 3차원 아바타 모델에서 상기 개별 관절점 각각의 위치정보를 포함하는 것을 특징으로 하는,
    방법.
  6. 제5항에 있어서, 상기 인식된 사용자 속성에 기초해 상기 사용자의 형상을 나타낸 3차원 아바타 모델 및 인식된 아이템 속성에 기초해 상기 아이템의 형상을 나타낸 3차원 아이템 모델을 나타낸 사용자 아바타 데이터를 생성하는 단계는,
    실사형 아바타 기준 모델 데이터를 실사 DB에서 검색하는 단계;
    상기 실사형 아바타 기준 모델 데이터에 인식된 사용자 속성을 적용하여 사용자 속성이 반영되어 상기 사용자의 실제 형상을 나타낸 실사형 3차원 아바타 모델을 생성하는 단계;
    인식된 아이템 속성에 매칭한 실사형 에셋 데이터를 상기 실사 DB에서 검색하는 단계 - 상기 실사형 에셋 데이터는 실사형 에셋 데이터가 나타낸 아이템이 갖는 실제 속성 데이터, 및 실사형 에셋 데이터가 나타낸 아이템의 실제 형상 데이터를 포함함;
    검색된 실사형 에셋 데이터에 기초하여 상기 아이템 속성이 반영되어 상기 아이템의 실제 형상을 나타낸 실사형 3차원 아이템 모델을 생성하는 단계; 및
    인식된 아이템 위치에 기초하여 실사형 3차원 아이템 모델을 상기 실사형 3차원 아이템 모델 주변에 배치하는 단계;를 포함하는 것을 특징으로 하는,
    방법.
  7. 제5항에 있어서, 상기 인식된 사용자 속성에 기초해 상기 사용자의 형상을 나타낸 3차원 아바타 모델 및 인식된 아이템 속성에 기초해 상기 아이템의 형상을 나타낸 3차원 아이템 모델을 나타낸 사용자 아바타 데이터를 생성하는 단계는,
    캐릭터 스타일의 사용자 아바타 데이터를 생성하기 위해, 사용자 속성이 반영된 캐릭터형 3차원 아바타 모델을 생성하는 단계;
    인식된 아이템 속성에 매칭한 캐릭터형 에셋 데이터를 캐릭터 DB에서 검색하는 단계;
    검색된 캐릭터형 에셋 데이터에 기초하여 상기 아이템 속성이 반영되어 상기 아이템의 실제 형상을 나타낸 캐릭터형 3차원 아이템 모델을 생성하는 단계; 및
    인식된 아이템 위치에 기초하여 캐릭터형 3차원 아이템 모델을 상기 캐릭터형 3차원 아이템 모델 주변에 배치하는 단계;를 포함하고,
    상기 사용자 속성이 반영된 캐릭터형 3차원 아바타 모델은,
    캐릭터형 아바타 기준 모델 데이터를 캐릭터 DB에서 검색하고, 상기 캐릭터형 아바타 기준 모델 데이터에 인식된 사용자 속성을 적용하여 사용자 속성이 반영되어 상기 사용자의 캐릭터 스타일의 형상을 나타낸 캐릭터형 3차원 아바타 모델 데이터로 생성한 것이거나, 또는 상기 사용자 속성에 매칭한 캐릭터 에셋 데이터를 검색하고, 검색된 캐릭터 에셋 데이터에 포함된 캐릭터의 형상 데이터에 기초하여 상기 사용자 속성이 반영된 캐릭터를 3차원으로 나타낸 캐릭터 모델 데이터로 생성한 것을 특징으로 하는,
    방법.
  8. 삭제
  9. 삭제
  10. 삭제
  11. 제1항에 있어서,
    상기 3차원 의류 모델은 3차원 메쉬 구조로 구현하기 위한 복수의 격자점을 포함하고,
    상기 목표 모션에 대응한 3차원 의류 모델의 변형 데이터에서 격자점(mp)의 위치는 다음의 수학식을 통해 산출되며,
    [수학식]

    여기서, 는 목표 모션 입력 이전의 기준 포즈를 취할 때 상기 3차원 의류 모델(ms)에서 외형 연결선에 대응한 대상 격자점의 위치 좌표를 나타내고,
    는 목표 모션대로 포즈를 취할 때, 기본 3차원 의류 모델(ms)를 기준으로 형상이 변형된 3차원 의류 모델(mt)에서 상기 외형 연결선에 대응한 격자점의 위치 좌표를 나타내고,
    α는 상기 기준 포즈를 취할 때 3차원 아이템 모델의 형상이 목표 모션에 대응해 변형될 정도를 나타내는, 상기 격자점(mp)에 대한 변형 가중치를 나타내고,
    상기 목표 모션을 취할 때의 3차원 아바타 모델의 외형 연결선에 대응한 격자점은 메쉬 구조의 전체 격자점들 중에서 목표 모션을 취할 때의 3차원 아바타 모델의 외형 연결선에 상대적으로 가까운 격자점이고,
    wfirst cp 는 기준 포즈에서 목표 모션의 입력 포즈로 변경됨에 따라 3차원 아바타 모델의 제1 외형 연결점(first cp(connection point))의 위치가 변화한 것을 나타내고, wcp 는 기준 포즈에서 목표 모션의 입력 포즈로 변경됨에 따라 3차원 아바타 모델의 제2 외형 연결점(second cp(connection point))의 위치가 변화한 것을 나타내며, 상기 제1 외형 연결점, 제2 외형 연결점은 상기 사용자 속성이 반영된 3차원 아바타 모델이 목표 모션을 취할 때 변형된 형상의 외형 연결선을 구성하는 외형 연결점들인 것을 특징으로 하는,
    방법.
  12. 제1항에 있어서, 상기 의류 외 나머지 3차원 아이템 모델 각각에 대해, 개별 3차원 아이템 모델의 모션 데이터를 생성하는 단계는,
    나머지 3차원 아이템 모델 각각에 대해, 기준 포즈를 갖고 있던 3차원 아바타 모델이 목표 모션을 취할 때 나머지 3차원 아이템 모델의 질량 중심이 이동한 새로운 위치를 추정하는 단계; 및
    상기 나머지 3차원 아이템 모델의 새로운 질량 중심의 위치에 기초하여 상기 나머지 3차원 아이템 모델의 변위 데이터를 생성하는 단계를 포함하는 것을 특징으로 하는,
    방법.
  13. 청구항 제1항 내지 제7항, 제11항, 제12항 중 어느 하나의 청구항에 따른 아이템 속성을 갖는 사용자 아바타의 모션을 시각적으로 자연스럽게 구현하는 방법을 수행하게 하는, 프로그램을 기록한 컴퓨터 판독가능한 기록매체.
  14. 프로세서 및 메모리를 포함한 아바타 모션 생성 장치에 있어서,
    사용자 및 상기 사용자의 아이템이 나타난 사용자 이미지에서 사용자 속성, 사용자와 관련된 아이템 속성을 인식하고, 상기 사용자 이미지에 나타난 아이템의 위치를 인식하는 속성 분석부;
    인식된 사용자 속성 및 아이템 속성에 기초하여 사용자 아바타 데이터를 생성하는 아바타 생성부 - 상기 사용자 아바타 데이터는 사용자에 대응한 아바타 형상을 나타낸 3차원 아바타 모델 데이터 및 상기 사용자 이미지에 나타난 상기 사용자의 아이템 형상을 나타낸 3차원 아이템 모델 데이터를 포함함; 및
    사용자의 목표 모션 데이터가 입력되면, 상기 사용자 아바타 데이터를 제어하여, 아이템과 3차원 아바타 모델이 충돌하지 않으면서 상기 3차원 아바타 모델이 상기 목표 모션을 취하는 것을 나타내는, 상기 사용자 아바타의 모션 데이터를 생성하는 모션 생성부를 포함하고,
    상기 모션 생성부는, 상기 사용자 아바타의 모션 데이터를 생성하는 단계기 위해,
    상기 3차원 아바타 모델에 대한 목표 모션 데이터를 상기 사용자 아바타 데이터의 3차원 아바타 모델 데이터에 적용해 상기 3차원 아바타 모델 데이터를 변경하여, 상기 3차원 아바타 모델의 변형 데이터를 상기 3차원 아바타 모델의 모션 데이터로서 생성하고, 그리고
    상기 3차원 아바타 모델의 변형 데이터 및 상기 사용자 아바타에서 상기 3차원 아이템 모델의 형상 데이터에 기초하여, 상기 3차원 아바타 모델에 대한 목표 모션에 대응해 상기 3차원 아이템 모델이 움직이는 것을 나타낸, 상기 3차원 아이템 모델의 모션 데이터를 생성하도록 구성되고,
    상기 목표 모션는 적어도 하나의 입력 포즈를 나타내고,
    상기 모션 생성부는, 상기 3차원 아이템 모델의 모션 데이터를 생성하기 위해,
    상기 사용자 이미지에 나타난 3차원 의류 모델의 모션 데이터를 생성하고, 그리고
    상기 사용자 이미지에 나타난, 의류 외 나머지 3차원 아이템 모델 각각에 대해, 개별 3차원 아이템 모델의 모션 데이터를 생성하도록 구성되고,
    상기 모션 생성부는, 상기 3차원 의류 모델의 모션 데이터를 생성하기 위해,
    상기 3차원 아바타 모델의 모션 데이터에 대응한 상기 3차원 의류 모델의 변형 데이터(reshape data)를 생성하는 것으로서, 상기 3차원 아바타 모델이 기준 포즈일 때 3차원 아이템 모델의 형상 데이터, 상기 3차원 아바타 모델이 목표 모션을 취할 때 상기 3차원 의류 모델의 변형 가중치, 상기 3차원 아바타 모델이 상기 목표 모션을 취할 때 상기 3차원 아바타 모델의 형상 데이터에서 외형 연결점의 위치와 상기 3차원 아바타 모델이 기준 포즈일 때 상기 3차원 아바타 모델의 형상 데이터에서 외형 연결점의 위치 간의 차이에 기초하여, 상기 목표 모션 데이터에 대응한 상기 3차원 의류 모델의 변형 데이터를 생성하는 것을 특징으로 하는,
    아바타 모션 생성 장치.
KR1020230087195A 2023-07-05 2023-07-05 사용자 이미지에서 검출된 속성에 기반한 사용자 아바타를생성하고 상기 사용자 아바타의 자연스러운 모션을 제어하는 장치 및 방법 KR102627035B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020230087195A KR102627035B1 (ko) 2023-07-05 2023-07-05 사용자 이미지에서 검출된 속성에 기반한 사용자 아바타를생성하고 상기 사용자 아바타의 자연스러운 모션을 제어하는 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020230087195A KR102627035B1 (ko) 2023-07-05 2023-07-05 사용자 이미지에서 검출된 속성에 기반한 사용자 아바타를생성하고 상기 사용자 아바타의 자연스러운 모션을 제어하는 장치 및 방법

Publications (1)

Publication Number Publication Date
KR102627035B1 true KR102627035B1 (ko) 2024-01-19

Family

ID=89717551

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230087195A KR102627035B1 (ko) 2023-07-05 2023-07-05 사용자 이미지에서 검출된 속성에 기반한 사용자 아바타를생성하고 상기 사용자 아바타의 자연스러운 모션을 제어하는 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102627035B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200088187A (ko) * 2019-01-14 2020-07-22 삼성전자주식회사 아바타를 생성하기 위한 전자 장치 및 그에 관한 방법
KR20200093213A (ko) * 2019-01-28 2020-08-05 삼성전자주식회사 전자 장치 및 전자 장치의 그래픽 객체 제어 방법
KR20210138240A (ko) * 2020-05-12 2021-11-19 라인플러스 주식회사 아바타용 아이템 생성 방법, 컴퓨터 프로그램 및 컴퓨팅 장치
KR20220004296A (ko) 2020-07-03 2022-01-11 건국대학교 글로컬산학협력단 패션 스타일링 시뮬레이션 장치 및 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200088187A (ko) * 2019-01-14 2020-07-22 삼성전자주식회사 아바타를 생성하기 위한 전자 장치 및 그에 관한 방법
KR20200093213A (ko) * 2019-01-28 2020-08-05 삼성전자주식회사 전자 장치 및 전자 장치의 그래픽 객체 제어 방법
KR20210138240A (ko) * 2020-05-12 2021-11-19 라인플러스 주식회사 아바타용 아이템 생성 방법, 컴퓨터 프로그램 및 컴퓨팅 장치
KR20220004296A (ko) 2020-07-03 2022-01-11 건국대학교 글로컬산학협력단 패션 스타일링 시뮬레이션 장치 및 방법

Similar Documents

Publication Publication Date Title
Tiwari et al. Sizer: A dataset and model for parsing 3d clothing and learning size sensitive 3d clothing
US10922898B2 (en) Resolving virtual apparel simulation errors
US10679046B1 (en) Machine learning systems and methods of estimating body shape from images
Tome et al. Selfpose: 3d egocentric pose estimation from a headset mounted camera
Suzuki et al. Recognition and mapping of facial expressions to avatar by embedded photo reflective sensors in head mounted display
EP2718902B1 (en) Generation of avatar reflecting player appearance
US6072903A (en) Image processing apparatus and image processing method
CN109840825A (zh) 基于用户的物理特征的推荐系统
JP2019510297A (ja) ユーザの真実の人体モデルへの仮想的な試着
US20130097194A1 (en) Apparatus, method, and computer-accessible medium for displaying visual information
US9224245B2 (en) Mesh animation
JP6207210B2 (ja) 情報処理装置およびその方法
WO2009123354A1 (en) Method, apparatus, and program for detecting object
JP7278724B2 (ja) 情報処理装置、情報処理方法、および情報処理プログラム
US11200689B1 (en) Detailed 3D estimation from a single image
KR102326902B1 (ko) 멀티 포즈를 지원하는 이미지 기반 자세보존 가상피팅 시스템
US11648477B2 (en) Systems and methods for generating a model of a character from one or more images
Xu et al. 3d virtual garment modeling from rgb images
Wenninger et al. Realistic virtual humans from smartphone videos
WO2020104990A1 (en) Virtually trying cloths & accessories on body model
CN111862116A (zh) 动漫人像的生成方法及装置、存储介质、计算机设备
KR102627035B1 (ko) 사용자 이미지에서 검출된 속성에 기반한 사용자 아바타를생성하고 상기 사용자 아바타의 자연스러운 모션을 제어하는 장치 및 방법
JP2017122993A (ja) 画像処理装置、画像処理方法及びプログラム
Wang et al. Markerless body motion capturing for 3d character animation based on multi-view cameras
US20240020901A1 (en) Method and application for animating computer generated images

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant