KR102364728B1 - 피사체의 프레임 데이터로부터 캐릭터 모션을 생성하는 방법 및 이를 이용한 장치 - Google Patents

피사체의 프레임 데이터로부터 캐릭터 모션을 생성하는 방법 및 이를 이용한 장치 Download PDF

Info

Publication number
KR102364728B1
KR102364728B1 KR1020210140626A KR20210140626A KR102364728B1 KR 102364728 B1 KR102364728 B1 KR 102364728B1 KR 1020210140626 A KR1020210140626 A KR 1020210140626A KR 20210140626 A KR20210140626 A KR 20210140626A KR 102364728 B1 KR102364728 B1 KR 102364728B1
Authority
KR
South Korea
Prior art keywords
character
coordinate
joints
motion
frame
Prior art date
Application number
KR1020210140626A
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 KR1020210140626A priority Critical patent/KR102364728B1/ko
Application granted granted Critical
Publication of KR102364728B1 publication Critical patent/KR102364728B1/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/20Analysis of motion
    • G06T7/215Motion-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/277Analysis of motion involving stochastic approaches, e.g. using Kalman filters
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery

Landscapes

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

Abstract

본 개시서에는 피사체의 프레임 데이터로부터 캐릭터 모션을 생성하는 방법 및 이를 이용한 장치가 개시된다. 구체적으로, 본 개시서의 방법에 의하면, 컴퓨팅 장치가, 피사체의 영상 데이터 및 깊이 데이터(depth data) 중 적어도 하나인 상기 피사체의 프레임 데이터를 촬영 장치 또는 저장 장치로부터 획득하거나 상기 컴퓨팅 장치에 연동되는 타 장치로 하여금 상기 피사체의 프레임 데이터를 획득하도록 지원하고, 상기 프레임 데이터로부터 상기 피사체에 포함된 하나 이상의 조인트들인 피사체 조인트들 및 상기 조인트들의 모션을 검출하며, 미리 모델링된 캐릭터에 포함된 모든 조인트들인 캐릭터 조인트들을 상기 피사체의 상기 조인트들에 매핑하고 상기 캐릭터 조인트들로 하여금 상기 모션에 따라 움직이게 한(animate) 결과인 3차원 모델링 정보 또는 3차원 영상을 산출한다.

Description

피사체의 프레임 데이터로부터 캐릭터 모션을 생성하는 방법 및 이를 이용한 장치{METHODS FOR GENERATING CHARACTER MOTION FROM FRAME DATA OF SUBJECT AND APPARATUS USING THE SAME}
본 개시서에는 피사체의 프레임 데이터로부터 캐릭터 모션을 생성하는 방법 및 이를 이용한 장치가 개시된다. 구체적으로, 본 개시서의 방법에 의하면, 컴퓨팅 장치가, 피사체의 영상 데이터 및 깊이 데이터(depth data) 중 적어도 하나인 상기 피사체의 프레임 데이터를 촬영 장치 또는 저장 장치로부터 획득하거나 상기 컴퓨팅 장치에 연동되는 타 장치로 하여금 상기 피사체의 프레임 데이터를 획득하도록 지원하고, 상기 프레임 데이터로부터 상기 피사체에 포함된 하나 이상의 조인트들인 피사체 조인트들 및 상기 조인트들의 모션을 검출하며, 미리 모델링된 캐릭터에 포함된 모든 조인트들인 캐릭터 조인트들을 상기 피사체의 상기 조인트들에 매핑하고 상기 캐릭터 조인트들로 하여금 상기 모션에 따라 움직이게 한(animate) 결과인 3차원 모델링 정보 또는 3차원 영상을 산출한다.
영화, 애니메이션, 컴퓨터 게임 등 미디어 산업에서 컴퓨팅 기술은 널리 활용되고 있다. 그 중에서도 모션 캡처 기술을 이용하여 사람으로부터 얻은 모션(motion)을 미리 만들어진 모델(model)인 캐릭터 혹은 아바타에 적용하는 기술이 활발하게 이용되고 있다. 종래에는 사람을 대상으로 모션 캡처를 하기 위하여 트래킹 가능한 복수의 포인트 표지(point indicators)가 부착된 전용 수트를 그 사람이 입었다면, 최근 기술의 발달에 따라 그런 제약 없이 영상으로부터 오로지 모션 캡처를 하는 것이 가능해졌다.
예를 들어 등록특허 제10-1751078호에 따르면 실시간 카메라 영상으로부터 컴퓨터 게임의 캐릭터에 모션을 입히는 것이 가능해졌는데, 이와 같은 종래 기술은 사람으로부터 모션을 인식하는 정확도가 여전히 낮다는 단점이 있다. 그러한 단점은 컴퓨터 게임의 용례에는 크게 문제되지 않을 수 있으나 상업용 수준의 영화나 애니메이션을 제작하는 데 있어서는 큰 문제가 된다. 즉, 상업용 동영상의 품질에 적합한 캐릭터 모션 적용 기술이 필요하다.
KR 10-1751078 B
본 개시서는 종래 기술의 문제점을 해결하여, 모션 인식의 정확도를 높여 사람의 모션을 캐릭터에 자연스럽게 적용할 수 있는 방법 및 장치를 제공하는 것을 그 목적으로 한다.
전술한 바와 같은 본 발명의 목적을 달성하고, 후술하는 본 발명의 특징적인 효과를 실현하기 위한 본 발명의 특징적인 구성은 하기와 같다.
본 개시서의 일 태양에 따르면, 피사체의 프레임 데이터로부터 캐릭터 모션을 생성하는 방법이 제공되는바, 그 방법은, 컴퓨팅 장치가, 피사체의 영상 데이터 및 깊이 데이터(depth data) 중 적어도 하나인 상기 피사체의 프레임 데이터를 촬영 장치 또는 저장 장치로부터 획득하거나 상기 컴퓨팅 장치에 연동되는 타 장치로 하여금 상기 피사체의 프레임 데이터를 획득하도록 지원하는 피사체 프레임 획득 단계; 상기 컴퓨팅 장치가, 상기 프레임 데이터로부터 상기 피사체에 포함된 하나 이상의 조인트들인 피사체 조인트들 및 상기 조인트들의 모션을 검출하거나 상기 컴퓨팅 장치에 연동되는 타 장치로 하여금 검출하도록 지원하는 모션 검출 단계; 및 상기 컴퓨팅 장치가, 미리 모델링된 캐릭터에 포함된 모든 조인트들인 캐릭터 조인트들을 상기 피사체의 상기 조인트들에 매핑하고 상기 캐릭터 조인트들로 하여금 상기 모션에 따라 움직이게 한(animate) 결과인 3차원 모델링 정보 또는 3차원 영상을 산출하거나 상기 컴퓨팅 장치에 연동되는 타 장치로 하여금 상기 3차원 모델링 정보 또는 상기 3차원 영상을 산출하도록 지원하는 캐릭터 모션 적용 단계를 포함한다.
유리하게, 상기 모션 검출 단계는, 객체 검출 모델에 의하여 상기 프레임 데이터로부터 하나 이상의 개별 객체들의 데이터를 추출하는 단계; 객체 분류 모델에 의하여 상기 개별 객체들의 데이터로부터 상기 피사체의 데이터를 분류해내는 단계; 및 객체 좌표 추론 모델에 의하여 상기 피사체의 데이터로부터 모든 상기 피사체 조인트들의 개수 및 좌표들을 추론하는 단계를 포함한다.
바람직하게, 상기 피사체 프레임 획득 단계 내지 상기 캐릭터 모션 적용 단계가 실시간으로 획득되는 프레임마다 반복되거나 저장된 동영상의 프레임마다 상기 모션 검출 단계 내지 상기 캐릭터 모션 적용 단계가 반복된다.
더 바람직하게, 최초의 프레임인 제1 프레임에 대응하는 상기 캐릭터 조인트들의 좌표 초깃값들은 미리 정해지며, 상기 최초의 프레임이 아닌 제n 프레임(n은 2 이상의 자연수)에 대응하는 상기 좌표 초깃값들은 제n-1 프레임에서 상기 캐릭터 모션 적용 단계를 수행한 결과로 정해진 상기 캐릭터 조인트들의 좌표들로 정해진다.
더욱 더 바람직하게, 상기 캐릭터 모션 적용 단계에서, 상기 캐릭터에 포함된 M 개의 모든 개별 캐릭터 조인트 CJi (단, 1≤i≤M)에 대하여: 상기 개별 캐릭터 조인트 CJi에 대응하는 개별의 피사체 조인트 MJi가 존재하는지 확인하는 단계; 및 상기 개별 피사체 조인트 MJi가 존재하면, 상기 개별 피사체 조인트 MJi의 제1 좌표가 상기 개별 캐릭터 조인트 CJi의 제2 좌표와 매칭되는지 확인하는 단계를 수행한다.
일 실시 예에서는, 상기 캐릭터 모션 적용 단계에서, 상기 캐릭터에 포함된 M 개의 모든 개별 캐릭터 조인트에 대하여: 상기 제1 좌표가 상기 제2 좌표와 매칭되는지 확인하는 단계를 수행한 후, 상기 제1 좌표가 상기 제2 좌표와 매칭되지 않으면, 칼만 필터를 이용하여 상기 제2 좌표에서 상기 제1 좌표를 뺀 차이만큼 상기 개별 캐릭터 조인트 CJi의 제2 좌표를 이동시키는 제1 좌표 이동 단계를 더 수행한다.
다른 실시 예에서는, 상기 캐릭터 모션 적용 단계에서, 상기 캐릭터에 포함된 M 개의 모든 개별 캐릭터 조인트에 대하여: 상기 개별 캐릭터 조인트 CJi에 대응하는 개별의 피사체 조인트 MJi가 존재하는지 확인하는 단계를 수행한 후, 상기 개별 피사체 조인트 MJi가 존재하지 않으면, 모든 상기 피사체 조인트들 MJk (1≤k≤M)의 무게중심의 좌표인 제3 좌표와 모든 상기 캐릭터 조인트들의 상기 좌표 초깃값들의 무게중심의 좌표인 제4 좌표 간의 차이를 산출하는 단계; 및 상기 제3 좌표와 상기 제4 좌표의 차이가 소정의 문턱값 미만이면, 칼만 필터를 이용하여 상기 제4 좌표에서 상기 제3 좌표를 뺀 차이만큼 상기 개별 캐릭터 조인트 CJi의 상기 제2 좌표를 이동시키는 제2 좌표 이동 단계를 더 수행한다.
이 실시 예에서는, 상기 캐릭터 모션 적용 단계에서, 상기 제3 좌표와 제4 좌표 간의 차이를 산출하는 단계를 수행한 후, 상기 제3 좌표와 상기 제4 좌표의 차이가 소정의 문턱값 이상이면, 소정 횟수만큼 상기 프레임 데이터에 확률적인 왜곡을 적용하고 상기 모션 검출 단계를 재수행한 후 재산출된 상기 제3 좌표와 상기 제4 좌표의 차이 중 가장 작은 값을 이용하여 상기 제2 좌표 이동 단계를 수행하는 단계를 더 수행할 수 있다.
본 발명의 다른 태양에 따르면, 본 발명에 따른 방법을 수행하도록 구현된 인스트럭션들(instructions)을 포함하는 컴퓨터 프로그램도 제공된다.
본 발명의 또 다른 태양에 따르면, 피사체의 프레임 데이터로부터 캐릭터 모션을 생성하는 컴퓨팅 장치가 제공되는바, 그 장치는, 피사체의 영상 데이터 및 깊이 데이터(depth data) 중 적어도 하나인 상기 피사체의 프레임 데이터를 촬영 장치 또는 저장 장치로부터 획득하는 통신부; 및 상기 프레임 데이터로부터 상기 피사체에 포함된 하나 이상의 조인트들인 피사체 조인트들 및 상기 조인트들의 모션을 검출하는 모션 검출 프로세스, 및 미리 모델링된 캐릭터에 포함된 모든 조인트들인 캐릭터 조인트들을 상기 피사체의 상기 조인트들에 매핑하고 상기 캐릭터 조인트들로 하여금 상기 모션에 따라 움직이게 한(animate) 결과인 3차원 모델링 정보 또는 3차원 영상을 산출하는 캐릭터 모션 적용 프로세스를 수행하는 프로세서를 포함한다.
본 개시서의 예시적인 실시 예에 따르면, 인공지능 방법론에 따라 모션 인식의 정확도를 높일 수 있는 효과가 있다. 특히, 예시적인 실시 예들에 따르면, 인공지능 방법론에 따라 모션을 인식할 때 객체 오인식으로 인해 발생되는 모션 인식 실패나 좌표 오인식을 해결하여 고품질의 캐릭터 모션 적용이 가능한 장점이 있다.
따라서 본 개시서의 예시적인 실시 예에 따르면 사람의 모션을 캐릭터에 자연스럽게 적용함으로써 상업용 품질의 영화 또는 애니메이션 등 동영상을 제작할 수 있는 효과가 있다.
본 발명의 실시 예의 설명에 이용되기 위하여 첨부된 아래 도면들은 본 발명의 실시 예들 중 단지 일부일 뿐이며, 본 발명이 속한 기술분야에서 통상의 지식을 가진 사람(이하 "통상의 기술자"라 함)에게 있어서는 발명에 이르는 노력 없이 이 도면들에 기초하여 다른 도면들이 얻어질 수 있다.
도 1은 본 개시서의 일 실시 예에 따라 피사체의 프레임 데이터로부터 캐릭터 모션을 생성하는 방법(이하 "캐릭터 모션 생성 방법"이라 함)을 수행하는 컴퓨팅 장치의 예시적 구성을 개략적으로 도시한 개념도이다.
도 2는 본 개시서의 일 실시 예에 따른 캐릭터 모션 생성 방법을 수행하는 컴퓨팅 장치의 하드웨어 및 소프트웨어 아키텍처를 예시적으로 도시한 개념도이다.
도 3은 본 개시서의 일 실시 예에 따른 캐릭터 모션 생성 방법을 예시적으로 나타낸 흐름도이다.
도 4는 본 개시서의 일 실시 예에서 촬영 장치로부터 획득된 예시적인 프레임 데이터, 이로부터 검출되는 피사체 조인트들, 미리 모델링된 캐릭터 및 캐릭터 조인트들을 설명하기 위하여 나타낸 도면이다.
도 5는 본 개시서의 캐릭터 모션 생성 방법에 이용되는 모션 검출 모듈을 구성하는 예시적 기계 학습 모델들과 함께 모션 검출 단계를 더 구체적으로 예시한 도면이다.
도 6은 본 개시서의 캐릭터 모션 생성 방법에 있어서 캐릭터 모션 적용 단계를 더 구체적으로 예시한 도면이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명의 목적들, 기술적 해법들 및 장점들을 분명하게 하기 위하여 본 발명이 실시될 수 있는 특정 실시 예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시 예는 통상의 기술자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고, 이에 대한 중복되는 설명은 생략하기로 한다.
실시 예들에 대한 특정한 구조적 또는 기능적 설명들은 단지 예시를 위한 목적으로 개시된 것으로서, 다양한 형태로 변경되어 실시될 수 있다. 따라서, 실시 예들은 특정한 개시형태로 한정되는 것이 아니며, 본 명세서의 범위는 기술적 사상에 포함되는 변경, 균등물, 또는 대체물을 포함한다.
"제1" 또는 "제2" 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 해석되어야 하는바, 어떠한 순서도 시사하고 있지 않기 때문이다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 기재된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 개시서에 언급된 '기계 학습'은 널리 알려진 의미와 마찬가지로 절차에 따른 컴퓨팅(computing)을 통하여 통계 처리, 근사 처리 등을 수행함을 일컫는 용어인바, 인간의 교육 활동과 같은 정신적 작용을 지칭하도록 의도된 것이 아님을 통상의 기술자는 이해할 수 있을 것이다.
본 개시서에서 언급된 깊이 데이터(depth)는, 예를 들어, 3D 카메라, 특히, '깊이 카메라'에 의하여 획득되는, 평면에 속하지 않은 제3 차원의 데이터를 지칭한다. 즉, 깊이 카메라는 2차원 이미지 정보에 국한되지 않은 3차원 깊이 정보를 물리적인 방식으로 제공할 수 있는 카메라이다. 깊이 카메라는 구조화된 광 기반 카메라와 같이 RGB 데이터와 같은 영상 데이터를 제공하는 것일 수도 있으나, 카메라로부터 피사체에 이르는 거리, 즉, 깊이에 대응하는 깊이 데이터만을 포함할 수도 있다. 근래에는 3D 카메라뿐만 아니라 일반 카메라로 촬영된 영상에 대해서도 RGB 등 영상 데이터로부터 깊이 데이터를 추출할 수 있는 깊이 추정(depth prediction) 기술이 발달하고 있는바, 영상 데이터로부터 깊이 데이터를 획득하는 정확도가 점차 높아지고 있는 추세이다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
더욱이 본 발명은 본 개시서에 표시된 실시 예들의 모든 가능한 조합들을 망라한다. 본 발명의 다양한 실시 예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시 예에 관련하여 본 발명의 사상 및 범위를 벗어나지 않으면서 다른 실시 예로 구현될 수 있다. 또한, 각각의 개시된 실시 예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 사상 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.
본 명세서에서 달리 표시되거나 분명히 문맥에 모순되지 않는 한, 단수로 지칭된 항목은, 그 문맥에서 달리 요구되지 않는 한, 복수의 것을 아우른다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
이하, 통상의 기술자가 본 발명을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 바람직한 실시 예들에 관하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.
도 1은 본 개시서의 일 실시 예에 따른 캐릭터 모션 생성 방법을 수행하는 컴퓨팅 장치의 예시적 구성을 개략적으로 도시한 개념도이다.
도 1을 참조하면, 본 개시서의 일 실시 예에 따른 컴퓨팅 장치(100)는, 통신부(110) 및 프로세서(120)를 포함하며, 상기 통신부(110)를 통하여 외부 컴퓨팅 장치(미도시)와 직간접적으로 통신할 수 있다.
구체적으로, 상기 컴퓨팅 장치(100)는, 전형적인 컴퓨터 하드웨어(예컨대, 컴퓨터, 프로세서, 메모리, 스토리지(storage), 입력 장치 및 출력 장치, 기타 기존의 컴퓨팅 장치의 구성요소들을 포함할 수 있는 장치; 라우터, 스위치 등과 같은 전자 통신 장치; 네트워크 부착 스토리지(NAS; network-attached storage) 및 스토리지 영역 네트워크(SAN; storage area network)와 같은 전자 정보 스토리지 시스템)와 컴퓨터 소프트웨어(즉, 컴퓨팅 장치로 하여금 특정의 방식으로 기능하게 하는 명령어들)의 조합을 이용하여 원하는 시스템 성능을 달성하는 것일 수 있다. 상기 스토리지는 하드 디스크, USB(Universal Serial Bus) 메모리와 같은 기억 장치뿐만 아니라 클라우드 서버와 같은 네트워크 연결 기반의 저장 장치의 형태를 포함할 수 있다.
이와 같은 컴퓨팅 장치의 통신부(110)는 연동되는 타 컴퓨팅 장치, 예컨대 휴대 단말 등과의 사이에서 요청과 응답을 송수신할 수 있는바, 일 예시로서 그러한 요청과 응답은 동일한 TCP(Transmission Control Protocol) 세션(session)에 의하여 이루어질 수 있지만, 이에 한정되지는 않는바, 예컨대 UDP(User Datagram Protocol) 데이터그램(datagram)으로서 송수신될 수도 있을 것이다.
구체적으로, 통신부(110)는 통신 인터페이스를 포함하는 통신 모듈의 형태로 구현될 수 있다. 이를테면, 통신 인터페이스는 WLAN(Wireless LAN), WiFi(Wireless Fidelity) Direct, DLNA(Digital Living Network Alliance), WiBro(Wireless Broadband), WiMax(World interoperability for Microwave access), HSDPA(High Speed Downlink Packet Access) 등의 무선 인터넷 인터페이스와 블루투스(Bluetooth™), RFID(Radio Frequency IDentification), 적외선 통신(Infrared Data Association; IrDA), UWB(Ultra-WideBand), ZigBee, NFC(Near Field Communication) 등의 근거리 통신 인터페이스를 포함할 수 있다. 뿐만 아니라, 통신 인터페이스는 외부와 통신을 수행할 수 있는 모든 인터페이스(예를 들어, 유선 인터페이스)를 나타낼 수 있다.
예를 들어, 통신부(110)는 이와 같이 적합한 통신 인터페이스를 통해 타 컴퓨팅 장치로부터 데이터를 송수신할 수 있다. 덧붙여, 넓은 의미에서 상기 통신부(110)는 명령어 또는 지시 등을 전달받기 위한 키보드, 마우스, 기타 외부 입력 장치, 인쇄 장치, 디스플레이, 기타 외부 출력 장치를 포함하거나 이들과 연동될 수 있다. 컴퓨팅 장치, 예컨대 휴대 단말의 사용자에게 적절한 사용자 인터페이스를 표시하여 제공함으로써 사용자와의 상호작용을 가능하게 하기 위하여, 컴퓨팅 장치(100)는 디스플레이 장치를 내장하거나 상기 통신부(110)를 통하여 외부의 디스플레이 장치와 연동될 수 있음이 알려져 있다. 예컨대, 그러한 디스플레이 장치는 터치 입력이 가능한 터치스크린일 수 있다.
또한, 컴퓨팅 장치의 프로세서(120)는 MPU(micro processing unit), CPU(central processing unit), GPU(graphics processing unit), NPU(neural processing unit) 또는 TPU(tensor processing unit), 캐시 메모리(cache memory), 데이터 버스(data bus) 등의 하드웨어 구성을 포함할 수 있다. 또한, 운영체제, 특정 목적을 수행하는 애플리케이션의 소프트웨어 구성을 더 포함할 수도 있다. 프로세서(120)는 본 개시서에서 후술하는 캐릭터 모션 생성 방법의 단계들 각각에 해당하는 프로세스들을 수행할 수 있다.
도 2는 본 개시서의 일 실시 예에 따른 캐릭터 모션 생성 방법을 수행하는 컴퓨팅 장치의 하드웨어 및 소프트웨어 아키텍처를 예시적으로 도시한 개념도이다.
도 2를 참조하여 본 발명에 따른 방법 및 장치의 구성을 개관하면, 컴퓨팅 장치(100)는 그 하드웨어 구성요소 그리고/또는 소프트웨어 구성요소로서 피사체 프레임 획득 모듈(210)을 포함할 수 있다. 이 피사체 프레임 획득 모듈(210)은 2차원 카메라, 깊이 카메라 등의 3D 카메라와 같은 외부 데이터 소스 또는 저장 장치로부터 피사체의 영상 데이터 및 깊이 데이터(depth data) 중 적어도 하나를 프레임 데이터로서 획득한다.
깊이 데이터가 아닌 영상 데이터만 획득되는 때에도 영상 데이터로부터 깊이 데이터를 산출함으로써 3차원 좌표 정보를 생성할 수 있음이 알려져 있다 (예를 들어, 김혜진, 지수영, Depth Estimation 기술의 원리 및 동향, https://data.doi.or.kr/10.22733/JITAE.2019.09.01.005 참조).
그리고 획득된 프레임 데이터를 전달받은 모션 검출 모듈(220)은 그 프레임 데이터에 기초하여 상기 피사체에 포함된 하나 이상의 조인트(joint; 관절)들인 피사체 조인트들 및 그 피사체 조인트들의 모션(motion; 움직임)을 검출하도록 구성되는바, 피사체 프레임 획득 모듈(210) 및 모션 검출 모듈(220)을 포함하여 도 2에 도시된 개별 모듈들은, 예컨대, 컴퓨팅 장치(100)에 포함된 통신부(110), 또는 상기 통신부(110) 및 프로세서(120)의 연동에 의하여 구현될 수 있음은 통상의 기술자가 이해할 수 있을 것이다.
피사체 조인트들 및 그 피사체 조인트들의 모션은 캐릭터 모션 적용 모듈(230)에 전달되고, 캐릭터 모션 적용 모듈(230)은 미리 모델링된 캐릭터에 포함된 모든 조인트들인 캐릭터 조인트들과 상기 피사체 조인트들을 서로 매핑하고 캐릭터 조인트들로 하여금 상기 모션에 따라 움직이게 한 결과인 3차원 모델링 정보 또는 3차원 영상 데이터를 산출하여 제공한다. 이 캐릭터 모션 적용 모듈(230)의 산출 결과인 3차원 모델링 정보 또는 3차원 영상 데이터는 소정의 저장 장치(미도시) 또는 통신부(110)를 통하여 외부 엔티티에 제공될 수도 있다.
여기에서 외부 엔티티라고 함은, 상기 컴퓨팅 장치(100)의 사용자, 관리자 등을 포함하나, 이 이외에도 산출된 캐릭터 3차원 모델링 정보 또는 3차원 영상을 필요로 하는 주체라면 어느 주체라도 포함되는 것으로 이해되어야 할 것이다. 예를 들어, 상기 외부 엔티티는 상기 캐릭터 3차원 영상을 활용하는 별도의 하드웨어 및/또는 소프트웨어 모듈을 포함하는 외부의 컴퓨팅 장치일 수도 있다. 또한, 외부 엔티티에서의 '외부(external)'는 그러한 하드웨어 및/또는 소프트웨어 모듈이 상기 컴퓨팅 장치(100)에 일체화되는 실시 예를 배제하도록 의도된 것이 아니라, 본 발명의 방법을 수행하는 하드웨어 및/또는 소프트웨어 모듈의 결과물인 3차원 모델링 정보 또는 3차원 영상이 타 방법의 입력 데이터로 활용될 수 있음을 시사하도록 이용된 것임을 밝혀둔다.
이제 도 2를 참조하여 개략적으로 설명된 각 구성요소들에 의하여 달성될 수 있는 구체적인 기능 및 효과에 관하여 도 3 내지 도 6을 참조하여 상세히 후술하기로 한다. 도 2에 나타난 구성요소들은 설명의 편의상 하나의 컴퓨팅 장치에서 실현되는 것으로 예시되었으나, 본 개시서의 방법을 수행하는 컴퓨팅 장치(100)는 복수개의 장치들이 서로 연동되도록 구성될 수도 있다는 점이 이해될 것이다. 예를 들어, 피사체 프레임 획득 모듈(210) 및 모션 검출 모듈(220)은 제1 컴퓨팅 장치에서 수행되고, 캐릭터 모션 적용 모듈(230)은 제1 컴퓨팅 장치에 연동되는 제2 컴퓨팅 장치에서 수행될 수 있도록 구성할 수도 있을 것인바, 통상의 기술자는 다양한 방식으로 복수개의 장치들이 서로 연동하여 본 개시서의 방법을 수행하도록 구성할 수 있을 것이다.
도 3은 본 개시서의 일 실시 예에 따른 캐릭터 모션 생성 방법을 예시적으로 나타낸 흐름도이고, 도 4는 본 개시서의 일 실시 예에서 촬영 장치로부터 획득된 예시적인 프레임 데이터, 이로부터 검출되는 피사체 조인트들, 미리 모델링된 캐릭터 및 캐릭터 조인트들을 설명하기 위하여 나타낸 도면이다.
도 3 및 도 4를 참조하면, 본 개시서에 따른 캐릭터 모션 생성 방법은, 우선, 피사체(410)가 움직이거나 멈추고 있는 상태에서, 컴퓨팅 장치(100)에 의하여 구현되는 피사체 프레임 획득 모듈(210)이, 촬영 장치 또는 저장 장치로부터 피사체(410)의 영상 데이터 및 깊이 데이터 중 적어도 하나인 프레임 데이터를 획득하거나 컴퓨팅 장치(100)에 연동되는 타 장치(미도시)로 하여금 상기 프레임 데이터를 획득하도록 지원하는 피사체 프레임 획득 단계(S100)를 포함한다.
단계(S100)에서 프레임 데이터가 획득될 수 있음은 앞서 설명된 바와 같은바, 프레임 데이터 중 영상 데이터만이 촬영 장치 또는 저장 장치로부터 획득되는 때에도 단계(S100) 또는 후술하는 모션 검출 단계(S200)에서 깊이 데이터가 그 영상 데이터로부터 예측될 수 있다.
다음으로, 본 개시서에 따른 캐릭터 모션 생성 방법은, 컴퓨팅 장치(100)에 의하여 구현되는 모션 검출 모듈(220)이, 상기 프레임 데이터에 기초하여, 피사체(410)에 포함된 하나 이상의 조인트(422)(joint; 관절)들인 피사체 조인트들(420) 및 피사체 조인트들(420)의 모션을 검출하거나 컴퓨팅 장치(100)에 연동되는 타 장치로 하여금 피사체 조인트들(420) 및 상기 모션을 검출하도록 지원하는 모션 검출 단계(S200)를 더 포함한다.
도 5는 본 개시서의 캐릭터 모션 생성 방법에 이용되는 모션 검출 모듈을 구성하는 예시적 기계 학습 모델들과 함께 모션 검출 단계를 더 구체적으로 예시한 도면이다.
도 5를 참조하면, 모션 검출 모듈(220)은 다수의 기계 학습 모델들, 예컨대, 딥러닝 모델과 같은 인공 신경망 모델들을 포함할 수 있다. 구체적으로, 모션 검출 모듈(220)은 객체 검출 모델(222), 객체 분류 모델(224) 및 객체 좌표 추론 모델(226)을 포함할 수 있는바, 단계(S200)에서, 객체 검출 모델(222)은 상기 프레임 데이터로부터 하나 이상의 개별 객체들의 데이터를 추출(S220)하도록 구성될 수 있고, 객체 분류 모델(224)은 그 개별 객체들의 데이터 중에서도 캐릭터 모션을 추출할 대상인 피사체를 구분(분류; S240)해내도록 구성될 수 있으며, 객체 좌표 추론 모델(226)은 상기 피사체의 데이터로부터 피사체 조인트들의 개수 및 좌표들을 추론하도록 구성될 수 있다.
예를 들어, 객체 검출 모델(222)로서 인공 신경망인 Tiny YOLO v2가 이용될 수 있고, 객체 분류 모델(224)로서 인공 신경망인 MobileNet v1/v2가 이용될 수 있다. 이와 함께 피사체 조인트들의 개수 및 좌표들을 추론할 수 있도록 객체 좌표 추론 모델(226)은 인공 신경망의 일종인 U-Net 모델들, 완전 합성곱 모델들(fully convolutional models), 완전 연결 모델들(fully dense models), 스페이드 아키텍처(Spade architecture)와 같은 요소들 중 적어도 하나로서 구성될 수 있다.
앞서 예시된 기계 학습 모델들 외에도 모션 검출 단계(S200)에 다양한 방식의 영상 프로세싱, 기계 학습 방법 등을 이용한 포즈 추산법(pose estimation)의 적용이 가능함은 통상의 기술자에게 알려진 바와 같다.
모션 검출 단계(S200) 다음으로, 본 개시서에 따른 캐릭터 모션 생성 방법은, 컴퓨팅 장치(100)에 의하여 구현되는 캐릭터 모션 적용 모듈(230)이 미리 모델링된 캐릭터(430)에 포함된 모든 조인트들인 캐릭터 조인트들(440)을 피사체 조인트들(420)에 매핑(mapping)하고 캐릭터 조인트들(440)로 하여금 상기 모션에 따라 움직이게 한 결과인 3차원 모델링 정보 또는 3차원 영상을 산출하거나 컴퓨팅 장치(100)에 연동되는 타 장치(미도시)로 하여금 상기 3차원 모델링 정보 또는 상기 3차원 영상을 산출하도록 지원하는 캐릭터 모션 적용 단계(S300)를 더 포함한다. 캐릭터(430)는 미리 모델링된 것이므로 단계(S300)에서 모든 캐릭터 조인트들의 개수(M 개)와 그 연결 관계는 알려져 있는 상태이다.
단계(S300)에서 상기 3차원 모델링 정보 또는 상기 3차원 영상 데이터가 소정의 저장 장치(미도시) 또는 통신부(110)를 통하여 외부 엔티티에 제공될 수 있음은 앞서 언급된 바와 같다. 3차원 모델링 정보는 렌더링(rendering) 작업을 통하여 3차원 영상 데이터 또는 2차원 영상 데이터로 변환될 수 있음은 물론이고, 3차원 영상 데이터도 단순한 사영기하(projective geometry)로 2차원 영상 데이터로 변환될 수 있음은 물론이다.
전술한 단계들(S100 내지 S300)은 1회 수행될 여지도 있으나, 바람직하게는, 피사체의 움직임에 따라 연속적으로 프레임 데이터를 획득하고 이를 처리하여 캐릭터의 연속적인 3차원 모델링 정보 또는 연속적인 3차원 영상, 즉 3차원 동영상을 산출할 수 있도록, 단계들(S100 내지 S300)은 실시간(real-time)으로, 그리고/또는 반복적으로(iteratively) 수행될 수 있다. 다시 말하자면, 단계(S100) 내지 단계(S300)는 실시간으로 획득되는 프레임마다 반복되거나 저장된 동영상의 프레임마다 반복될 수 있다.
다시 캐릭터 모션 적용 단계(S300)의 설명으로 돌아가 이를 더 구체적으로 설명하기로 한다. 단계(S300)에서 캐릭터 조인트들(400)과 피사체 조인트들(420)이 서로 매핑되어야 하므로, 모션 검출 단계(S200)에서 캐릭터 조인트들의 개수(M 개)만큼 피사체 조인트들(420)이 추출되어야 한다.
그런데 반복적으로 딥러닝 모델로 조인트의 추출을 시도하다 보면, 종종 어느 조인트가 다른 객체, 다른 조인트에 의해 가려지는 프레임이 발생할 수 있으며, 딥러닝 모델 자체의 추정 확률이 낮아 좌표의 추론이 가능하지 않은 프레임이 있을 수 있다. 이러한 경우 조인트의 좌표가 제대로 추출되지 않으며, 편의 상 null 값으로 처리된다. 따라서 그러한 문제의 프레임, 즉, 여러 프레임들 사이에 피사체 조인트의 좌표가 획득되지 않은 프레임은 캐릭터의 조인트들에 관하여 인접한 프레임과 상당히 다른 좌표 출력값을 가지게 될 수 있는바, 이를 모션(motion)이 부자연스럽게 튀는 원인이 된다.
따라서, 이와 같은 문제의 프레임에 대해서도, 적절한 예외 처리를 통하여 매끄러운(smooth) 모션 적용을 가능하게 할 필요가 있다.
도 6은 본 개시서의 캐릭터 모션 생성 방법에 있어서 그러한 예외 처리를 가능하게 하는 캐릭터 모션 적용 단계(S300)를 예시한 도면이다.
도 6을 참조하면, 단계(S300)에서 최초의 프레임인 제1 프레임에 대응하는 캐릭터 조인트들(440)의 좌표 초깃값들이 임의의 값 또는 사용자에 의하여 지정된 값으로 미리 정해질 수 있는바(S305), 제1 프레임에서의 캐릭터 조인트들의 좌표 초깃값이 정해지고나면, 그 후 제n 프레임(n은 2 이상의 자연수)에 대응하는 좌표 초깃값들은 제n-1 프레임에 대한 캐릭터 모션 적용 단계(S300)를 수행한 결과로 정해진 캐릭터 조인트들의 좌표들 각각으로 정해질 수 있다.
도 6에 예시된 단계(S310; 제1 프레임을 현재 프레임으로 지정함), 단계(S330; 다음 프레임을 현재 프레임으로 갱신하여 반복함)는 본 개시서의 캐릭터 모션 생성 방법을 구성하는 단계들(S100 내지 S300)이 최초 프레임(제1 프레임)을 포함하는 다수의 프레임들(제k 프레임; k=1, 2, 3, …)에 대해 반복적으로 수행됨을 내며, 단계(S320; 제i 캐릭터 조인트를 다룸), 단계(S325; i는 1 이상 M 이하로만 반복되게 함), 단계(S375; 제i 캐릭터 조인트를 갱신하여 반복함)는 캐릭터(430)에 포함된 M 개의 모든 개별 캐릭터 조인트들(CJi; i는 1 이상 M 이하의 자연수임)에 대하여 동일한 단계들이 반복적으로 수행됨을 나타낸다.
따라서, 도 6을 참조하면, 캐릭터 모션 적용 단계(S300)에서, 캐릭터(330)에 포함된 M개의 모든 개별 캐릭터 조인트 CJi(단, 1≤i≤M)에 대해, 개별 캐릭터 조인트, 즉, 제i 캐릭터 조인트 CJi에 대응하는 개별의 피사체 조인트, 즉, 제i 피사체 조인트 MJi가 존재하는지 확인하는 단계(S335); 및 상기 제i 피사체 조인트 MJi가 존재하면, 상기 제i 피사체 조인트 MJi의 제1 좌표가 상기 제i 캐릭터 조인트 CJi의 제2 좌표와 매칭되는지 확인하는 단계(S360)가 수행될 수 있다.
본 개시서에서 언급된 좌표 간의 '매칭(matching)'은 피사체가 존재하는 공간인 피사체 공간의 좌표와 캐릭터가 존재하는 공간인 캐릭터 공간의 좌표를 서로 연관짓는 연산을 지칭하는바, 그러한 연산으로 일반적으로 아핀(affine) 변환이 이용된다. 피사체 공간과 캐릭터 공간의 축적(scale)은 편의 상 1:1일 수 있으나 달리 적용될 수 있음은 물론이다.
단계(S360)에서 상기 제1 좌표와 상기 제2 좌표가 서로 매칭된다면 캐릭터 조인트 CJi의 좌표는 그대로 유지한다(S365). 그러나, 상기 제1 좌표와 상기 제2 좌표가 서로 매칭되지 않으면, 칼만 필터를 이용하여 상기 제2 좌표에서 상기 제1 좌표를 뺀 차이만큼 제i 캐릭터 조인트 CJi의 제2 좌표를 이동시킨다(제1 좌표 이동 단계; S370).
단계(S335)가 수행된 후, 상기 제i 피사체 조인트 MJi가 존재하지 않으면, 모든 상기 피사체 조인트들 MJj (1≤j≤M)의 무게중심의 좌표인 제3 좌표와 모든 상기 캐릭터 조인트들의 상기 좌표 초깃값들의 무게중심의 좌표인 제4 좌표 간의 차이를 산출(S340)한다. 검출이 되지 않은 등의 원인으로 좌표가 획득(추론)되지 못한 피사체 조인트는 무게중심의 좌표를 구할 때 반영되지 않게 하는바, 이는 계산 가능성을 고려한 것이다.
상기 제3 좌표와 상기 제4 좌표 간의 차이가 소정의 문턱값 미만이면, 칼만 필터를 이용하여 상기 제4 좌표에서 상기 제3 좌표를 뺀 차이만큼 상기 제i 캐릭터 조인트 CJi의 좌표인 상기 제2 좌표를 이동시킨다(제2 좌표 이동 단계; S350).
그렇지 않고 상기 제3 좌표와 상기 제4 좌표 간의 차이가 소정의 문턱값 이상이면, 소정의 횟수만큼 상기 프레임 데이터에 확률적인 왜곡(블러, 색반전, 노이즈 발생 등)을 적용하고, 모션 검출 단계(S200)를 재수행한 후에 다시 산출된 상기 제3 좌표와 상기 제4 좌표의 차이 중 가장 작은 값을 이용하여 제2 좌표 이동 단계(S350)를 수행한다.
지금까지 설명된 바와 같이 본 개시서의 방법 및 장치는 그 모든 실시 예 및 변형례에 걸쳐, 모션 인식의 정확도를 높여 상업용 품질의 영화 또는 애니메이션 등 동영상을 제작하는 데 활용할 수 있는 장점이 있다.
본 개시서에 첨부된 도면들에 나타난 구성요소들은 설명의 편의상 하나의 컴퓨팅 장치, 예컨대, 서버에서 실현되는 것으로 예시되었으나, 본 발명 방법의 각 단계가, 하나의 컴퓨팅 장치를 통해 수행되거나 그 하나의 컴퓨팅 장치의 지원에 의하여 그 하나의 컴퓨팅 장치에 연동되는 타 컴퓨팅 장치를 통해 수행될 수 있음은 자명하다.
지금까지 설명된 단계들(혹은 이에 대응되는 프로세스들)은 논리적으로 모순되거나 맥락상 달리 명시되어 있지 않는 한 기재된 순서대로 수행되어야 함을 의미하는 것이 아니며, 각각의 단계들(혹은 대응되는 프로세스들)은 동시에 또는 이시(異時)에 수행될 수 있다는 점을 통상의 기술자는 이해할 수 있을 것이다.
이상, 본 개시서의 다양한 실시 예들에 관한 설명에 기초하여 해당 기술분야의 통상의 기술자는, 본 발명의 방법 및/또는 프로세스들, 그리고 그 단계들이 하드웨어, 소프트웨어 또는 특정 용례에 적합한 하드웨어 및 소프트웨어의 임의의 조합으로 실현될 수 있다는 점을 명확하게 이해할 수 있다. 상기 하드웨어는 범용 컴퓨터 및/또는 전용 컴퓨팅 장치 또는 특정 컴퓨팅 장치 또는 특정 컴퓨팅 장치의 특별한 모습 또는 구성요소를 포함할 수 있다. 상기 프로세스들은 내부 및/또는 외부 메모리를 가지는, 하나 이상의 프로세서, 예컨대, 마이크로프로세서, 컨트롤러, 예컨대, 마이크로컨트롤러, 임베디드 마이크로컨트롤러, 마이크로컴퓨터, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 예컨대, 프로그래머블 디지털 신호 프로세서 또는 기타 프로그래머블 장치에 의하여 실현될 수 있다. 게다가, 혹은 대안으로서, 상기 프로세스들은 주문형 집적회로(application specific integrated circuit; ASIC), 프로그래머블 게이트 어레이(programmable gate array), 예컨대, FPGA(field programmable gate array), PLU(programmable logic unit) 혹은 프로그래머블 어레이 로직(Programmable Array Logic; PAL) 또는 기타 인스트럭션(instruction)을 실행하고 응답할 수 있는 임의의 다른 장치, 전자 신호들을 처리하기 위해 구성될 수 있는 임의의 다른 장치 또는 장치들의 조합으로 실시될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 컨트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 인스트럭션(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치에 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 인스트럭션 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 기계 판독 가능 기록 매체에 저장될 수 있다.
더욱이 본 발명의 기술적 해법의 선행 기술들에 기여하는 부분들은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 인스트럭션의 형태로 구현되어 기계 판독 가능 매체에 기록될 수 있다. 기계 판독 가능 매체는 프로그램 인스트럭션, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 기계 판독 가능한 기록 매체에 기록되는 프로그램 인스트럭션은 실시 예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야의 통상의 기술자에게 공지되어 사용 가능한 것일 수도 있다. 기계 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD, Blu-ray와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 인스트럭션을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 인스트럭션의 예에는, 전술한 장치들 중 어느 하나뿐만 아니라 프로세서, 프로세서 아키텍처 또는 상이한 하드웨어 및 소프트웨어의 조합들의 이종 조합, 또는 다른 어떤 프로그램 인스트럭션들을 실행할 수 있는 기계 상에서 실행되기 위하여 저장 및 컴파일 또는 인터프리트될 수 있는, C와 같은 구조적 프로그래밍 언어, C++ 같은 객체지향적 프로그래밍 언어 또는 고급 또는 저급 프로그래밍 언어(어셈블리어, 하드웨어 기술 언어들 및 데이터베이스 프로그래밍 언어 및 기술들)를 사용하여 만들어질 수 있는 바, 기계어 코드, 바이트코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 이에 포함된다.
따라서 본 발명에 따른 일 태양에서는, 앞서 설명된 방법 및 그 조합들이 하나 이상의 컴퓨팅 장치들에 의하여 수행될 때, 그 방법 및 방법의 조합들이 각 단계들을 수행하는 실행 가능한 코드로서 실시될 수 있다. 다른 일 태양에서는, 상기 방법은 상기 단계들을 수행하는 시스템들로서 실시될 수 있고, 방법들은 장치들에 걸쳐 여러 가지 방법으로 분산되거나 모든 기능들이 하나의 전용, 독립형 장치 또는 다른 하드웨어에 통합될 수 있다. 또 다른 일 태양에서는, 위에서 설명한 프로세스들과 연관된 단계들을 수행하는 수단들은 앞서 설명한 임의의 하드웨어 및/또는 소프트웨어를 포함할 수 있다. 그러한 모든 순차 결합 및 조합들은 본 개시서의 범위 내에 속하도록 의도된 것이다.
예를 들어, 상기된 하드웨어 장치는 실시 예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다. 상기 하드웨어 장치는, 프로그램 인스트럭션을 저장하기 위한 ROM/RAM 등과 같은 메모리와 결합되고 상기 메모리에 저장된 인스트럭션들을 실행하도록 구성되는 MPU, CPU, GPU, TPU와 같은 프로세서를 포함할 수 있으며, 외부 장치와 신호를 주고받을 수 있는 통신부를 포함할 수 있다. 덧붙여, 상기 하드웨어 장치는 개발자들에 의하여 작성된 인스트럭션들을 전달받기 위한 키보드, 마우스, 기타 외부 입력 장치를 포함할 수 있다.
이상에서 본 발명이 구체적인 구성요소 등과 같은 특정 사항들과 한정된 실시 예 및 도면에 의해 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명이 상기 실시 예들에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상적인 지식을 가진 사람이라면 이러한 기재로부터 다양한 수정 및 변형을 꾀할 수 있다.
따라서, 본 발명의 사상은 상기 설명된 실시 예에 국한되어 정해져서는 아니되며, 본 개시서에 첨부된 특허청구범위뿐만 아니라 이 특허청구범위와 균등하게 또는 등가적으로 변형된 모든 것들은 본 발명의 사상의 범주에 속한다고 할 것이다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그와 같이 균등하게 또는 등가적으로 변형된 것에는, 예컨대 본 발명에 따른 방법을 실시한 것과 동일한 결과를 낼 수 있는, 논리적으로 동치(logically equivalent)인 방법이 포함될 것인 바, 본 발명의 진의 및 범위는 전술한 예시들에 의하여 제한되어서는 아니되며, 법률에 의하여 허용 가능한 가장 넓은 의미로 이해되어야 한다.

Claims (16)

  1. 컴퓨팅 장치가, 피사체의 영상 데이터 및 깊이 데이터(depth data) 중 적어도 하나인 상기 피사체의 프레임 데이터를 촬영 장치 또는 저장 장치로부터 획득하거나 상기 컴퓨팅 장치에 연동되는 타 장치로 하여금 상기 피사체의 프레임 데이터를 획득하도록 지원하는 피사체 프레임 획득 단계;
    상기 컴퓨팅 장치가, 상기 프레임 데이터로부터 상기 피사체에 포함된 하나 이상의 조인트들인 피사체 조인트들 및 상기 피사체 조인트들의 모션을 검출하거나 상기 컴퓨팅 장치에 연동되는 타 장치로 하여금 검출하도록 지원하는 모션 검출 단계; 및
    상기 컴퓨팅 장치가, 미리 모델링된 캐릭터에 포함된 모든 조인트들인 캐릭터 조인트들을 상기 피사체 조인트들에 매핑하고 상기 캐릭터 조인트들로 하여금 상기 모션에 따라 움직이게 한(animate) 결과인 3차원 모델링 정보 또는 3차원 영상을 산출하거나 상기 컴퓨팅 장치에 연동되는 타 장치로 하여금 상기 3차원 모델링 정보 또는 상기 3차원 영상을 산출하도록 지원하는 캐릭터 모션 적용 단계
    를 포함하고,
    상기 피사체 프레임 획득 단계 내지 상기 캐릭터 모션 적용 단계가 실시간으로 획득되는 프레임마다 반복되거나 저장된 동영상의 프레임마다 상기 모션 검출 단계 내지 상기 캐릭터 모션 적용 단계가 반복되며,
    최초의 프레임인 제1 프레임에 대응하는 상기 캐릭터 조인트들의 좌표 초깃값들은 미리 정해지며, 상기 최초의 프레임이 아닌 제n 프레임(n은 2 이상의 자연수)에 대응하는 상기 좌표 초깃값들은 제n-1 프레임에서 상기 캐릭터 모션 적용 단계를 수행한 결과로 정해진 상기 캐릭터 조인트들의 좌표들로 정해지고,
    상기 캐릭터 모션 적용 단계는,
    상기 캐릭터에 포함된 M 개의 모든 개별 캐릭터 조인트 CJi (단, 1≤i≤M)에 대하여:
    상기 개별 캐릭터 조인트 CJi에 대응하는 개별의 피사체 조인트 MJi가 존재하는지 확인하는 단계; 및
    상기 개별 피사체 조인트 MJi가 존재하면, 상기 개별 피사체 조인트 MJi의 제1 좌표가 상기 개별 캐릭터 조인트 CJi의 제2 좌표와 매칭되는지 확인하는 단계
    를 수행하는, 캐릭터 모션 생성 방법.
  2. 삭제
  3. 삭제
  4. 제1항에 있어서,
    상기 모션 검출 단계는,
    객체 검출 모델에 의하여 상기 프레임 데이터로부터 하나 이상의 개별 객체들의 데이터를 추출하는 단계; 객체 분류 모델에 의하여 상기 개별 객체들의 데이터로부터 상기 피사체의 데이터를 분류해내는 단계; 및 객체 좌표 추론 모델에 의하여 상기 피사체의 데이터로부터 모든 상기 피사체 조인트들의 개수 및 좌표들을 추론하는 단계를 포함하는, 캐릭터 모션 생성 방법.
  5. 삭제
  6. 제1항에 있어서,
    상기 캐릭터 모션 적용 단계는,
    상기 캐릭터에 포함된 M 개의 모든 개별 캐릭터 조인트에 대하여:
    상기 제1 좌표가 상기 제2 좌표와 매칭되는지 확인하는 단계를 수행한 후, 상기 제1 좌표가 상기 제2 좌표와 매칭되지 않으면, 칼만 필터를 이용하여 상기 제2 좌표에서 상기 제1 좌표를 뺀 차이만큼 상기 개별 캐릭터 조인트 CJi의 제2 좌표를 이동시키는 제1 좌표 이동 단계
    를 더 수행하는, 캐릭터 모션 생성 방법.
  7. 제1항에 있어서,
    상기 캐릭터 모션 적용 단계는,
    상기 캐릭터에 포함된 M 개의 모든 개별 캐릭터 조인트에 대하여:
    상기 개별 캐릭터 조인트 CJi에 대응하는 개별의 피사체 조인트 MJi가 존재하는지 확인하는 단계를 수행한 후, 상기 개별 피사체 조인트 MJi가 존재하지 않으면, 모든 상기 피사체 조인트들 MJk (1≤k≤M)의 무게중심의 좌표인 제3 좌표와 모든 상기 캐릭터 조인트들의 상기 좌표 초깃값들의 무게중심의 좌표인 제4 좌표 간의 차이를 산출하는 단계; 및
    상기 제3 좌표와 상기 제4 좌표의 차이가 소정의 문턱값 미만이면, 칼만 필터를 이용하여 상기 제4 좌표에서 상기 제3 좌표를 뺀 차이만큼 상기 개별 캐릭터 조인트 CJi의 상기 제2 좌표를 이동시키는 제2 좌표 이동 단계
    를 더 수행하는, 캐릭터 모션 생성 방법.
  8. 제7항에 있어서,
    상기 캐릭터 모션 적용 단계는,
    상기 제3 좌표와 제4 좌표 간의 차이를 산출하는 단계를 수행한 후, 상기 제3 좌표와 상기 제4 좌표의 차이가 소정의 문턱값 이상이면, 소정 횟수만큼 상기 프레임 데이터에 확률적인 왜곡을 적용하고 상기 모션 검출 단계를 재수행한 후 재산출된 상기 제3 좌표와 상기 제4 좌표의 차이 중 가장 작은 값을 이용하여 상기 제2 좌표 이동 단계를 수행하는 단계
    를 더 수행하는, 캐릭터 모션 생성 방법.
  9. 컴퓨팅 장치로 하여금, 제1항, 제4항, 제6항 내지 제8항 중 어느 한 항의 방법을 수행하도록 구현된 명령어(instructions)를 포함하는, 기계 판독 가능한 기록 매체에 저장된, 컴퓨터 프로그램.
  10. 컴퓨팅 장치에 있어서,
    피사체의 영상 데이터 및 깊이 데이터(depth data) 중 적어도 하나인 상기 피사체의 프레임 데이터를 촬영 장치 또는 저장 장치로부터 획득하는 통신부; 및
    상기 프레임 데이터로부터 상기 피사체에 포함된 하나 이상의 조인트들인 피사체 조인트들 및 상기 피사체 조인트들의 모션을 검출하는 모션 검출 프로세스, 및 미리 모델링된 캐릭터에 포함된 모든 조인트들인 캐릭터 조인트들을 상기 피사체 조인트들에 매핑하고 상기 캐릭터 조인트들로 하여금 상기 모션에 따라 움직이게 한(animate) 결과인 3차원 모델링 정보 또는 3차원 영상을 산출하는 캐릭터 모션 적용 프로세스를 수행하는 프로세서
    를 포함하고,
    실시간으로 획득되는 프레임마다, 또는 저장된 동영상의 프레임마다 상기 모션 검출 프로세스 및 상기 캐릭터 모션 적용 프로세스가 반복 수행되며,
    최초의 프레임인 제1 프레임에 대응하는 상기 캐릭터 조인트들의 좌표 초깃값들은 미리 정해지며, 상기 최초의 프레임이 아닌 제n 프레임(n은 2 이상의 자연수)에 대응하는 상기 좌표 초깃값들은 제n-1 프레임에서 상기 캐릭터 모션 적용 프로세스를 수행한 결과로 정해진 상기 캐릭터 조인트들의 좌표들로 정해지고,
    상기 프로세서는,
    상기 캐릭터 모션 적용 프로세스에서,
    상기 캐릭터에 포함된 M 개의 모든 개별 캐릭터 조인트 CJi (단, 1≤i≤M)에 대하여:
    상기 개별 캐릭터 조인트 CJi에 대응하는 개별의 피사체 조인트 MJi가 존재하는지 확인하는 프로세스; 및
    상기 개별 피사체 조인트 MJi가 존재하면, 상기 개별 피사체 조인트 MJi의 제1 좌표가 상기 개별 캐릭터 조인트 CJi의 제2 좌표와 매칭되는지 확인하는 프로세스
    를 수행하는, 캐릭터 모션 생성 장치.
  11. 삭제
  12. 삭제
  13. 삭제
  14. 제10항에 있어서,
    상기 프로세서는,
    상기 캐릭터 모션 적용 프로세스에서,
    상기 캐릭터에 포함된 M 개의 모든 개별 캐릭터 조인트에 대하여:
    상기 제1 좌표가 상기 제2 좌표와 매칭되는지 확인하는 프로세스를 수행한 후, 상기 제1 좌표가 상기 제2 좌표와 매칭되지 않으면, 칼만 필터를 이용하여 상기 제2 좌표에서 상기 제1 좌표를 뺀 차이만큼 상기 개별 캐릭터 조인트 CJi의 제2 좌표를 이동시키는 제1 좌표 이동 프로세스
    를 더 수행하는, 캐릭터 모션 생성 장치.
  15. 제10항에 있어서,
    상기 프로세서는,
    상기 캐릭터 모션 적용 프로세스에서,
    상기 캐릭터에 포함된 M 개의 모든 개별 캐릭터 조인트에 대하여:
    상기 개별 캐릭터 조인트 CJi에 대응하는 개별의 피사체 조인트 MJi가 존재하는지 확인하는 프로세스를 수행한 후, 상기 개별 피사체 조인트 MJi가 존재하지 않으면, 모든 상기 피사체 조인트들 MJk (1≤k≤M)의 무게중심의 좌표인 제3 좌표와 모든 상기 캐릭터 조인트들의 상기 좌표 초깃값들의 무게중심의 좌표인 제4 좌표 간의 차이를 산출하는 프로세스; 및
    상기 제3 좌표와 상기 제4 좌표의 차이가 소정의 문턱값 미만이면, 칼만 필터를 이용하여 상기 제4 좌표에서 상기 제3 좌표를 뺀 차이만큼 상기 개별 캐릭터 조인트 CJi의 상기 제2 좌표를 이동시키는 제2 좌표 이동 프로세스
    를 더 수행하는, 캐릭터 모션 생성 장치.
  16. 제15항에 있어서,
    상기 프로세서는,
    상기 캐릭터 모션 적용 프로세스에서,
    상기 제3 좌표와 제4 좌표 간의 차이를 산출하는 프로세스를 수행한 후, 상기 제3 좌표와 상기 제4 좌표의 차이가 소정의 문턱값 이상이면, 소정 횟수만큼 상기 프레임 데이터에 확률적인 왜곡을 적용하고 상기 모션 검출 프로세스를 재수행한 후 재산출된 상기 제3 좌표와 상기 제4 좌표의 차이 중 가장 작은 값을 이용하여 상기 제2 좌표 이동 프로세스를 수행하는 프로세스
    를 더 수행하는, 캐릭터 모션 생성 장치.
KR1020210140626A 2021-10-20 2021-10-20 피사체의 프레임 데이터로부터 캐릭터 모션을 생성하는 방법 및 이를 이용한 장치 KR102364728B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210140626A KR102364728B1 (ko) 2021-10-20 2021-10-20 피사체의 프레임 데이터로부터 캐릭터 모션을 생성하는 방법 및 이를 이용한 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210140626A KR102364728B1 (ko) 2021-10-20 2021-10-20 피사체의 프레임 데이터로부터 캐릭터 모션을 생성하는 방법 및 이를 이용한 장치

Publications (1)

Publication Number Publication Date
KR102364728B1 true KR102364728B1 (ko) 2022-02-18

Family

ID=80495103

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210140626A KR102364728B1 (ko) 2021-10-20 2021-10-20 피사체의 프레임 데이터로부터 캐릭터 모션을 생성하는 방법 및 이를 이용한 장치

Country Status (1)

Country Link
KR (1) KR102364728B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102589194B1 (ko) 2023-02-07 2023-10-13 (주)로코모스튜디오 서로 다른 캐릭터 사이의 애니메이션 데이터를 호환 가능하게 연결하는 모션 커버 방법, 장치 및 시스템

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140002227A (ko) * 2012-06-28 2014-01-08 삼성전자주식회사 모션 추정 시스템 및 그 방법, 디스플레이 컨트롤러, 및 전자 장치
KR101751078B1 (ko) 2009-05-29 2017-07-03 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 애니메이션 또는 모션들을 캐릭터에 적용하는 시스템 및 방법
KR102264803B1 (ko) * 2019-12-12 2021-06-15 주식회사 옐로테일 이미지에서 캐릭터를 추출하여 캐릭터 애니메이션을 생성하는 방법 및 이를 이용한 장치

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101751078B1 (ko) 2009-05-29 2017-07-03 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 애니메이션 또는 모션들을 캐릭터에 적용하는 시스템 및 방법
KR20140002227A (ko) * 2012-06-28 2014-01-08 삼성전자주식회사 모션 추정 시스템 및 그 방법, 디스플레이 컨트롤러, 및 전자 장치
KR102264803B1 (ko) * 2019-12-12 2021-06-15 주식회사 옐로테일 이미지에서 캐릭터를 추출하여 캐릭터 애니메이션을 생성하는 방법 및 이를 이용한 장치

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Tompson et al. Joint training of a convolutional network and a graphical model for human pose estimation. arXiv, 2014년 9월, pp. 1-9. 1부.* *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102589194B1 (ko) 2023-02-07 2023-10-13 (주)로코모스튜디오 서로 다른 캐릭터 사이의 애니메이션 데이터를 호환 가능하게 연결하는 모션 커버 방법, 장치 및 시스템

Similar Documents

Publication Publication Date Title
US10861225B2 (en) Neural network processing for multi-object 3D modeling
US20210225077A1 (en) 3d hand shape and pose estimation
US10888785B2 (en) Method and system for real-time animation generation using machine learning
EP2880633B1 (en) Animating objects using the human body
EP3198373B1 (en) Tracking hand/body pose
US20160284123A1 (en) Automated three dimensional model generation
KR102338372B1 (ko) 영상으로부터 객체를 분할하는 방법 및 장치
EP3324339A1 (en) Method and apparatus to perform material recognition and training for material recognition
EP3631759A1 (en) Hand tracking based on articulated distance field
Saini et al. A review on particle swarm optimization algorithm and its variants to human motion tracking
CN103890782B (zh) 用于手势识别的方法和设备
EP3095072A1 (en) Contour-based classification of objects
CN111738403A (zh) 一种神经网络的优化方法及相关设备
KR102364728B1 (ko) 피사체의 프레임 데이터로부터 캐릭터 모션을 생성하는 방법 및 이를 이용한 장치
EP4302273A1 (en) Modeling objects from monocular camera outputs
CN107272899A (zh) 一种基于动态手势的vr交互方法、装置及电子设备
CN111368668B (zh) 三维手部识别方法、装置、电子设备及存储介质
CN115661336A (zh) 一种三维重建方法及相关装置
KR102637342B1 (ko) 대상 객체를 추적하는 방법과 장치 및 전자 장치
US20230245344A1 (en) Electronic device and controlling method of electronic device
JP7459452B2 (ja) ニューラルネットワークモデルベースの深度推定
Heinrich et al. Continuous convolutional object tracking in developmental robot scenarios
CN115393538A (zh) 基于深度学习的室内动态场景的视觉slam方法及系统
Liu et al. Real-time object recognition based on NAO humanoid robot
WO2019198233A1 (ja) 動作認識装置、動作認識方法、及びコンピュータ読み取り可能な記録媒体

Legal Events

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