KR20210087680A - 입력 영상에 포함된 객체의 3차원 포즈를 추정하기 위한 데이터를 생성하는 방법 및 장치와 3차원 포즈 추정을 위한 추론 모델 - Google Patents

입력 영상에 포함된 객체의 3차원 포즈를 추정하기 위한 데이터를 생성하는 방법 및 장치와 3차원 포즈 추정을 위한 추론 모델 Download PDF

Info

Publication number
KR20210087680A
KR20210087680A KR1020200000699A KR20200000699A KR20210087680A KR 20210087680 A KR20210087680 A KR 20210087680A KR 1020200000699 A KR1020200000699 A KR 1020200000699A KR 20200000699 A KR20200000699 A KR 20200000699A KR 20210087680 A KR20210087680 A KR 20210087680A
Authority
KR
South Korea
Prior art keywords
model
input image
joint
joints
information
Prior art date
Application number
KR1020200000699A
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 KR1020200000699A priority Critical patent/KR20210087680A/ko
Priority to JP2020212564A priority patent/JP7178396B2/ja
Priority to US17/137,749 priority patent/US11610331B2/en
Publication of KR20210087680A publication Critical patent/KR20210087680A/ko
Priority to KR1020220090814A priority patent/KR102562378B1/ko

Links

Images

Classifications

    • 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/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • 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
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/98Detection or correction of errors, e.g. by rescanning the pattern or by human intervention; Evaluation of the quality of the acquired patterns
    • 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
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10024Color image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20212Image combination
    • G06T2207/20224Image subtraction
    • 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

Abstract

입력 영상에 포함된 객체의 3차원 포즈 추정을 위한 데이터를 생성하는 방법으로서, 객체를 포함하는 입력 영상을 획득하고, 객체의 복수의 관절들 각각에 대한 위치 정보를 추정하기 위해 미리 훈련된 추론 모델을 사용하여, 객체의 복수의 관절들 각각에 대한 위치 정보를 추정하고, 추정된 위치 정보를 사용하여 객체의 움직임을 나타내는 애니메이션 데이터를 생성하는 3차원 포즈 추정을 위한 데이터를 생성하는 방법이 제공된다.

Description

입력 영상에 포함된 객체의 3차원 포즈를 추정하기 위한 데이터를 생성하는 방법 및 장치와 3차원 포즈 추정을 위한 추론 모델{METHOD AND APPARATUS FOR GENERATING DATA FOR ESTIMATING 3 DIMENSIONAL POSE OF OBJECT INCLUDED IN INPUT IMAGE, AND PREDICTION MODEL FOR ESTIMATING 3 DIMENSIONAL POSE OF OBJECT}
실시예들은 입력 영상에 포함된 객체의 3차원 포즈를 추정(예측)하는 방법 및 장치와 이를 위한 추론 모델에 관한 것으로, 특히, 깊이 카메라와 같은 센싱 장치를 사용하지 않고 RGB 카메라를 사용하여 촬영된 입력 영상에 대해, 해당 입력 영상에 포함된 객체의 3차원 포즈를 추정하기 위한 경량화된 추론 모델을 구축하고, 이러한 추론 모델을 사용하여 객체의 3차원 포즈 실시간으로 추정하기 위한 데이터를 생성할 수 있는 방법 및 장치와 관련된다.
카메라를 통해 촬영된 영상 또는 실시간으로 촬영되는 영상에 대해, 영상에 포함된 인물(사람)과 같은 객체의 3차원 포즈를 추정하고, 추정된 3차원 포즈를 가상의 캐릭터에 매핑하는 기술에 대해 관심이 높아지고 있다. 특히, 머신러닝, 인공신경망 또는 딥러닝과 같은 인공지능 기술을 사용하여 영상으로부터 3차원 포즈를 추정하는 기술에 대한 연구가 활발하게 진행되고 있다.
영상에 포함된 객체의 움직임을 나타내는 3차원 포즈를 추정하기 위해서는 2차원의 입력 영상(예컨대, RGB 카메라에 의해 촬영된 영상) 뿐만아니라 입력 영상의 깊이 정보를 비롯한 다양한 센싱 데이터가 요구되며, 센싱 데이터를 획득하기 위해서는 객체에 관성측정장치 또는 마커와 같이 센서가 탐지할 수 있는 센서 장비가 직접 부착될 필요가 있다. 즉, 영상으로부터 객체의 3차원 포즈를 추정하기 위해서는 상대적으로 많은 비용이 소요되었고, 센서 장비의 부착에 따라 객체의 움직임이 제한되는 바, 객체의 자연스러운 움직임과 이에 따른 3차원 포즈 추정 역시 제한되었다.
따라서, 고가의 센서 장비 없이도, 노트북부터 스마트폰과 같이 다양한 장치에 부착되어있는 일반적인 RGB 카메라로부터도 획득가능한 2차원의 입력 영상만으로부터 영상에 포함된 객체의 3차원 포즈를 추정할 수 있도록 할 필요가 있다. 특히, 노트북이나 스마트폰 등의 장치에서 실시간으로 바로 포즈 추정이 가능하도록 하기 위해서는 보다 경량화된 추론 모델의 구축과, 이러한 추론 모델을 사용하여 객체의 3차원 포즈 추정을 위한 데이터를 생성하고, 3차원 포즈를 추정하는 방법이 요구된다.
한국등록특허 제10-1925879호(공고일 2019년 02월 26일)는 깊이 영상을 이용하는 동작 추정 방법으로서, 연속된 두 프레임들의 깊이 영상들을 획득하고, 깊이 영상들에 기초하여 인접 프레임들 사이의 깊이 흐름과 관련된 제1 파라미터들을 계산하며, 모션 프라이어들과 관련된 제2 파라미터들을 획득하고, 제1 파라미터들 및 제2 파라미터들에 기초하여 연속된 적어도 두 프레임들 사이에서 포즈의 변화량을 추정하는 동작 추정 방법을 기재하고 있다.
상기에서 설명된 정보는 단지 이해를 돕기 위한 것이며, 종래 기술의 일부를 형성하지 않는 내용을 포함할 수 있으며, 종래 기술이 통상의 기술자에게 제시할 수 있는 것을 포함하지 않을 수 있다.
일 실시예는, 객체를 포함하는 입력 영상을 획득하고, 객체의 복수의 관절들 각각에 대한 위치 정보를 추정하기 위해 미리 훈련된 추론 모델을 사용하여, 객체의 복수의 관절들 각각에 대한 위치 정보를 추정하고, 추정된 위치 정보를 사용하여 객체의 움직임을 나타내는 애니메이션 데이터를 생성하는 방법을 제공할 수 있다.
일 실시예는, 훈련용 2차원의 입력 영상에 포함된 객체의 복수의 관절들에 대한 위치 정보를 추정하도록 교사 모델을 훈련시키고, 교사 모델에 의한 추정의 결과에 기반하여, 교사 모델보다 더 경량화된 모델인 학생 모델에 대해 해당 훈련용 2차원의 입력 영상에 포함된 객체의 복수의 관절들에 대한 위치 정보를 학습시켜, 학습된 학생 모델을 2차원의 입력 영상에 포함된 객체의 3차원 포즈를 추정하기 위한 추론 모델로서 구축하는 방법을 제공할 수 있다.
일 측면에 있어서, 컴퓨터 시스템을 사용하여, 입력 영상에 포함된 객체의 3차원 포즈 추정을 위한 데이터를 생성하는 방법에 있어서, 적어도 하나의 움직이는 객체를 포함하는 입력 영상을 획득하는 단계, 상기 객체의 복수의 관절들 각각에 대한 위치 정보를 추정하기 위해 미리 훈련된 추론 모델을 사용하여, 상기 입력 영상에 포함된 상기 객체의 복수의 관절들 각각에 대한 위치 정보를 추정하는 단계 및 상기 추정된 위치 정보를 사용하여 상기 객체의 움직임을 나타내는 애니메이션 데이터를 생성하는 단계를 포함하는, 3차원 포즈 추정을 위한 데이터를 생성하는 방법이 제공된다.
상기 추론 모델은, 소정의 훈련용 영상으로부터 상기 훈련용 영상에 포함된 객체의 복수의 관절들에 대한 위치 정보를 추정하도록 미리 훈련된 교사 모델을 이용하여 학습된 것으로, 상기 추론 모델은 상기 교사 모델에 비해 더 경량화된 모델이고, 상기 추론 모델이 입력 영상에 포함된 객체의 복수의 관절들에 대한 위치 정보를 학습함에 있어서, 상기 교사 모델에 의한 입력 영상에 포함된 객체의 복수의 관절들에 대한 위치 정보의 추정 결과가 손실 함수의 계산에 사용될 수 있다.
상기 3차원 포즈 추정을 위한 데이터를 생성하는 방법은 상기 애니메이션 데이터에 기반하여, 상기 복수의 관절들을 가상의 캐릭터에 맵핑함으로써, 상기 객체의 움직임을 모방하는 가상의 캐릭터를 생성하는 단계를 더 포함할 수 있다.
상기 위치 정보를 추정하는 단계는, 상기 복수의 관절들의 각각의 관절에 대한 히트맵 및 위치맵을 생성하는 단계 및 상기 히트맵 및 상기 위치맵에 기반하여 상기 각각의 관절에 대한 3차원 좌표 정보를 상기 위치 정보로서 추정하는 단계를 포함하고, 상기 히트맵은 상기 각각의 관절이 상기 히트맵 내의 각 픽셀 위치에 존재할 가능성(likelihood)을 나타내고, 상기 위치맵은 상기 각각의 관절에 대해 x축 방향의 위치를 나타내는 위치맵, y축 방향의 위치를 나타내는 위치맵 및 z축 방향의 위치를 나타내는 위치맵을 포함할 수 있다.
상기 3차원 포즈 추정을 위한 데이터를 생성하는 방법은 상기 추정된 위치 정보 중 잘못 추정된 위치 정보를 결정하는 단계 및 상기 잘못 추정된 위치 정보를 보정하는 단계를 더 포함할 수 있다.
상기 3차원 포즈 추정을 위한 데이터를 생성하는 방법은 상기 각각의 관절에 대한 3차원 좌표 정보에 대응하는 상기 각각의 관절에 대한 히트맵 상의 값이 소정의 임계값 미만인지 여부를 판정하는 단계, 상기 3차원 좌표 정보에 대응하는 상기 히트맵 상의 값이 상기 소정의 임계값 미만이면, 상기 3차원 좌표 정보를 잘못 추정된 것으로 판정하는 단계 및 상기 잘못 추정된 것으로 판정된 3차원 좌표 정보를 보정하는 단계를 더 포함할 수 있다.
상기 추정된 위치 정보는 상기 복수의 관절들의 각각의 관절에 대한 3차원 좌표 정보를 포함하고, 상기 애니메이션 데이터는, 상기 3차원 좌표 정보에 기반한 상기 각각의 관절에 대한 3차원 위치 정보 및 상기 각각의 관절에 대해 연속적으로 추정되는 3차원 좌표 정보에 기반한 상기 각각의 관절에 대한 회전 정보를 포함할 수 있다.
상기 3차원 포즈 추정을 위한 데이터를 생성하는 방법은 상기 각각의 관절에 대한 회전 정보 중 비정상 회전 상태를 나타내는 회전 정보가 있는지 여부를 판정하는 단계 및 상기 비정상 회전 상태를 나타내는 것으로 판정된 회전 정보를 보정하는 단계를 더 포함할 수 있다.
상기 판정하는 단계는, 상기 각각의 관절에 대한 회전 정보가 상기 객체의 정상적인 움직임에 해당하는 것으로 기 설정된 각도의 범위 내에 있지 않은 경우 비정상 회전 상태로 판정할 수 있다.
상기 3차원 포즈 추정을 위한 데이터를 생성하는 방법은 상기 입력 영상을 촬영하기 위해 사용된 카메라의 초점 거리 및 상기 복수의 관절들 중 적어도 하나에 대해 추정된 위치 정보에 기반하여, 상기 객체의 글로벌 위치를 나타내는 글로벌 위치 정보를 계산하는 단계를 더 포함하고, 상기 글로벌 위치 정보에 기반하여 상기 객체의 상기 입력 영상 내에서의 위치 이동이 추정될 수 있다.
상기 입력 영상은 복수의 객체들을 포함하고, 상기 3차원 포즈 추정을 위한 데이터를 생성하는 방법은 상기 복수의 객체들과 연관된 컨피던스 맵을 생성하는 단계를 더 포함하고, 상기 컨피던스 맵은 상기 복수의 객체들의 각 객체의 복수의 관절들 각각과 연관된 벡터 정보를 포함하고, 상기 위치 정보를 추정하는 단계는, 상기 컨피던스 맵을 사용하여 상기 각 객체의 복수의 관절들 각각에 대한 위치 정보를 상기 복수의 객체들 중 다른 객체와 구분하여 추정할 수 있다.
상기 가상의 캐릭터를 생성하는 단계는, 상기 애니메이션 데이터에 기반하여, 상기 복수의 관절들을 복수의 가상의 캐릭터들의 각각에 맵핑함으로써, 상기 객체의 움직임을 모방하는 복수의 가상의 캐릭터들을 생성하고, 상기 생성된 복수의 가상의 캐릭터들의 각각은 사용자 단말에서 출력되는 출력 영상의 상이한 위치에서 배치될 수 있다.
상기 입력 영상은 복수의 객체들을 포함하고, 상기 획득하는 단계는, 상기 입력 영상에서 복수의 객체들 중 하나의 객체를 포함하는 부분 영상을 획득하고, 상기 복수의 객체들 중 하나의 객체를 포함하는 각 부분 영상에 대해 상기 추정하는 단계 및 상기 생성하는 단계는 병렬적으로 수행되거나, 상기 각 부분 영상 별로 순차적으로 수행될 수 있다.
상기 입력 영상은 복수의 객체들을 포함하고, 상기 가상의 캐릭터를 생성하는 단계는, 상기 복수의 객체들의 각각의 복수의 관절들을 가상의 캐릭터에 맵핑함으로써, 상기 복수의 객체들의 움직임을 모방하는 복수의 가상의 캐릭터들을 생성하고, 상기 생성된 복수의 가상의 캐릭터들의 각각은 사용자 단말에서 출력되는 출력 영상에서, 상기 사용자 단말의 사용자에 의한 상기 사용자 단말에 대한 조작에 따라 결정된 위치에서 배치될 수 있다.
다른 일 측면에 있어서, 입력 영상에 포함된 객체의 3차원 포즈 추정을 위한 데이터를 생성하는 컴퓨터 시스템에 있어서, 컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 적어도 하나의 움직이는 객체를 포함하는 입력 영상을 획득하고, 상기 객체의 복수의 관절들 각각에 대한 위치 정보를 추정하기 위해 미리 훈련된 추론 모델을 사용하여, 상기 입력 영상에 포함된 상기 객체의 복수의 관절들 각각에 대한 위치 정보를 추정하고, 상기 추정된 위치 정보를 사용하여 상기 객체의 움직임을 나타내는 애니메이션 데이터를 생성하는 컴퓨터 시스템이 제공된다.
또 다른 일 측면에 있어서, 컴퓨터 시스템을 사용하여, 입력 영상에 포함된 객체의 3차원 포즈를 추정하기 위한 추론 모델을 구축하는 방법에 있어서, 훈련용 영상에 포함된 객체의 복수의 관절들에 대한 위치 정보를 추정하도록 교사 모델을 훈련시키는 단계, 상기 교사 모델에 의한 상기 훈련용 영상에 포함된 객체의 복수의 관절들에 대한 위치 정보의 추정의 결과에 기반하여, 상기 교사 모델보다 더 경량화된 모델인 상기 교사 모델의 학생 모델에 대해 상기 훈련용 영상에 포함된 객체의 복수의 관절들에 대한 위치 정보를 학습시키는 단계, 및 상기 학습된 학생 모델을, 입력 영상에 포함된 객체의 3차원 포즈를 추정하기 위한 추론 모델로서 구축하는 단계를 포함하는, 추론 모델을 구축하는 방법이 제공된다.
상기 학생 모델에 대해 상기 훈련용 영상에 포함된 객체의 복수의 관절들에 대한 위치 정보를 학습시키는 단계에 있어서, 상기 학생 모델은, 상기 학생 모델에 의해 추정된 상기 복수의 관절들의 각각의 관절에 대한 제1 히트맵과 상기 각각의 관절에 대한 정답에 해당하는 제2 히트맵 간의 차 및 상기 제1 히트맵과 상기 교사 모델에 의해 추정된 상기 각각의 관절에 대한 제3 히트맵 간의 차에 기반하여 계산되는 제1 손실 함수, 및 상기 학생 모델에 의해 추정된 상기 각각의 관절에 대한 제1 위치맵과 상기 각각의 관절에 대한 정답에 해당하는 제2 위치맵 간의 차 및 상기 제1 위치맵과 상기 교사 모델에 의해 추정된 상기 각각의 관절에 대한 제3 위치맵 간의 차에 기반하여 계산되는 제2 손실 함수를 사용하여 훈련될 수 있다.
상기 제1 히트맵과 상기 제2 히트맵 간의 차 및 상기 제1 히트맵과 상기 제3 히트맵 간의 차는 소정의 혼합비로 상기 제1 손실 함수에 포함되고, 상기 제1 위치맵과 상기 제2 위치맵 간의 차 및 상기 제1 위치맵과 상기 제3 위치맵 간의 차는 상기 소정의 혼합비로 상기 제2 손실 함수에 포함될 수 있다.
고가의 센서 장비에 의해 촬영된 영상이나, 깊이 정보와 같은 센싱 데이터 없이도, 2차원의 입력 영상에 포함된 객체의 복수의 관절들 각각에 대한 위치 정보를 추정하여 해당 객체의 움직임을 나타내는 3차원 포즈를 실시간으로 추정할 수 있다. 추정된 위치 정보에 대한 후처리 및 객체의 움직임을 나타내는 애니메이션 데이터에 대한 후처리를 통해 포즈 추정에 있어서의 정확도를 높일 수 있다.
미리 훈련된 교사 모델의 입력 영상에 포함된 객체의 복수의 관절들에 대한 위치 정보의 추정의 결과를 사용하여 훈련된 학생 모델로, 2차원의 입력 영상에 포함된 객체의 3차원 포즈를 추정하기 위한 추론 모델을 구축함으로써, 추정의 정확도를 높이면서 모바일 단말에 탑재 가능한 정도로 추론 모델의 경량화를 달성할 수 있다.
도 1은 일 실시예에 따른, 2차원의 입력 영상에 포함된 객체의 3차원 포즈를 추정하는 방법을 나타낸다.
도 2 및 도 3은 일 실시예에 따른, 2차원의 입력 영상에 포함된 객체의 3차원 포즈를 추정하는 컴퓨터 시스템의 구조를 나타낸다.
도 4는 일 실시예에 따른, 2차원의 입력 영상에 포함된 객체의 3차원 포즈 추정을 위한 데이터를 생성하는 방법을 나타내는 흐름도이다.
도 5는 일 예에 따른, 2차원의 입력 영상에 포함된 객체의 관절의 위치 정보를 추정하는 방법을 나타내는 흐름도이다.
도 6은 일 예에 따른, 2차원의 입력 영상에 포함된 객체의 글로벌 위치 정보를 계산하는 방법을 나타내는 흐름도이다.
도 7은 일 예에 따른, 2차원의 입력 영상에 포함된 복수의 객체들의 3차원 포즈 추정을 위한 데이터를 생성하는 방법을 나타내는 흐름도이다.
도 8은 일 실시예에 따른, 2차원의 입력 영상에 포함된 객체의 3차원 포즈를 추정하기 위한 추론 모델을 구축하는 방법을 나타내는 흐름도이다.
도 9는 일 예에 따른, 교사-학생 모델을 사용하여, 2차원의 입력 영상에 포함된 객체의 3차원 포즈를 추정하기 위한 추론 모델을 구축하는 방법을 나타낸다.
도 10은 일 예에 따른, 2차원의 입력 영상에 포함된 객체의 3차원 포즈를 추정하기 위한 추론 모델을 나타낸다.
도 11a 및 도 11b는 일 예에 따른, 2차원의 입력 영상에 포함된 객체의 3차원 포즈를 추정하는 예시를 나타낸다.
도 12는 일 예에 따른, 2차원의 입력 영상에 포함된 복수의 객체들의 3차원 포즈를 추정하는 예시를 나타낸다.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 일 실시예에 따른, 2차원의 입력 영상에 포함된 객체의 3차원 포즈를 추정하는 방법을 나타낸다.
도 1을 참조하여, 카메라(120)를 통해 촬영된 객체(130)에 대해, 해당 객체(130)의 움직임을 나타내는 3차원 포즈를 추정하고, 객체(130)의 추정된 3차원 포즈에 대응하는 가상의 캐릭터(150)(즉, 3차원의 움직임을 나타내는 가상의 캐릭터(150))를 생성하는 방법을 설명한다. 가상의 캐릭터(150)는 일례로 아바타일 수 있다.
도시된 컴퓨터 시스템(100)은 객체(130)를 촬영한 입력 영상을 획득할 수 있다. 획득되는 입력 영상은, 예컨대, 단안의 RGB 카메라에 의해 촬영된 것으로서, 2차원의 입력 영상일 수 있다. 2차원의 입력 영상은 객체(130)에 대한 깊이(depth) 정보를 포함하지 않는 영상일 수 있다.
객체(130)는 입력 영상을 촬영한 카메라(120)의 피사체에 대응하는 것으로서, 예컨대, 입력 영상 내에서 움직이는 인물(사람)일 수 있다.
객체(130)를 촬영한 입력 영상은 도시된 것처럼 컴퓨터 시스템(100)이 포함하는 카메라(120)에 의해 촬영된 것일 수 있다. 또는, 객체(130)를 촬영한 입력 영상은 카메라(120)가 아닌 다른 카메라에 의해 촬영된 영상으로서 컴퓨터 시스템(100)에 기 저장된 것이거나, 다른 장치 또는 서버로부터 컴퓨터 시스템(100)로 전송되어 컴퓨터 시스템(100)이 획득하는 것일 수 있다. 이 때, 컴퓨터 시스템(100)의 입력 영상의 획득은 입력 영상에 해당하는 입력 영상 파일을 로드하는 것일 수 있다.
컴퓨터 시스템(100)은 획득된 객체(130)를 촬영한 입력 영상으로부터 객체(130)의 움직임을 나타내는 3차원 포즈를 추정하기 위한 추론 모델을 탑재하고 있는 컴퓨터 시스템일 수 있다. 컴퓨터 시스템(100)은 이러한 추론 모델을 사용하여 객체(130)가 포함하는 관절(들)의 위치 정보를 추정할 수 있고, 이러한 위치 정보에 기반하여 객체(130)의 3차원 포즈에 대응하는 애니메이션 데이터를 생성할 수 있다. 컴퓨터 시스템(100)은 생성된 애니메이션 데이터를 가상의 캐릭터(150)에 매핑함으로써, 객체(130)의 움직임을 모방하는 3차원의 가상의 캐릭터(150)를 생성할 수 있다.
일례로, 컴퓨터 시스템(100)은 카메라(120)를 사용하여 객체(130)를 촬영할 수 있고, 촬영에 따라 실시간으로 획득되는 객체(130)에 대한 입력 영상으로부터 객체(130)의 3차원 포즈를 추정할 수 있고, 이에 대응하는 3차원의 가상의 캐릭터(150)를 생성할 수 있다. 말하자면, 컴퓨터 시스템(100)은 카메라(120)를 사용하여 촬영되는 객체(130)의 움직임을 실시간으로 모방하는 3차원의 가상의 캐릭터(150)를 생성할 수 있다.
컴퓨터 시스템(100)은 입력 영상에 포함된 객체(130)와 생성된 캐릭터(150)를 겹쳐서 (예컨대, 캐릭터(150)가 객체(130)보다 상위의 레이어가 되거나, 또는 객체(130)의 앞쪽에 위치하도록) 디스플레이하거나, 객체(130)를 디스플레이하지 않고 캐릭터(150)만을 디스플레이할 수도 있다. 또는, 컴퓨터 시스템(100)은 객체(130)와 캐릭터(150)를 디스플레이의 각각 상이한 영역에서 구분하여 동시에 디스플레이할 수도 있다.
실시예에서는, 컴퓨터 시스템(100)에 탑재된 경량화된 추론 모델을 사용하여 객체(130)를 촬영한 2차원의 입력 영상으로부터 실시간으로 객체(130)의 관절(들)의 위치 정보를 추정함으로써 객체(130)의 3차원 포즈를 추정할 수 있고, 따라서, 컴퓨터 시스템(100)은 객체(130)의 움직임을 모방하는 가상의 캐릭터(150)를 생성하여 디스플레이할 수 있다.
2차원의 입력 영상으로부터 객체(130)의 3차원 포즈를 추정하는 보다 구체적인 방법과, 객체(130)의 관절(들)의 위치 정보를 추정하기 위한 추론 모델의 구축 방법에 대해서는 후술될 도 2 내지 도 12를 참조하여 더 자세하게 설명된다.
도 2 및 도 3은 일 실시예에 따른, 2차원의 입력 영상에 포함된 객체의 3차원 포즈를 추정하는 컴퓨터 시스템의 구조를 나타낸다.
도시된 컴퓨터 시스템(100)은 도 1을 참조하여 전술된 컴퓨터 시스템(100)에 대응할 수 있다. 말하자만, 컴퓨터 시스템(100)은 경량화된 추론 모델을 탑재하고 있는 전자 장치로서, 객체(130)를 촬영한 2차원의 입력 영상을 획득할 수 있고, 탑재된 추론 모델을 사용하여 객체(130)의 관절(들)의 위치 정보를 추정할 수 있고, 객체(130)의 3차원 포즈를 추정하여 객체(130)의 움직임을 모방하는 가상의 캐릭터(150)를 생성할 수 있다.
컴퓨터 시스템(100)은, 예컨대, PC(personal computer), 노트북 컴퓨터(laptop computer), 스마트폰(smart phone), 태블릿(tablet), 웨어러블 컴퓨터(wearable computer), 사물 인터넷(Internet Of Things) 기기 등을 포함할 수 있다.
컴퓨터 시스템(100)은 통신부(210) 및 프로세서(200)를 포함할 수 있다. 또한, 컴퓨터 시스템(100)은 디스플레이(220)를 더 포함할 수 있다. 또한, 컴퓨터 시스템(100)은 전술된 카메라(120)를 더 포함할 수 있다.
통신부(210)는 컴퓨터 시스템(100)이 다른 서버나 다른 장치와 통신하기 위한 장치일 수 있다. 말하자면, 통신부(210)는 다른 서버나 다른 장치에 대해 데이터 및/또는 정보를 전송/수신하는, 컴퓨터 시스템(100)의 네트워크 인터페이스 카드, 네트워크 인터페이스 칩 및 네트워킹 인터페이스 포트 등과 같은 하드웨어 모듈 또는 네트워크 디바이스 드라이버(driver) 또는 네트워킹 프로그램과 같은 소프트웨어 모듈일 수 있다. 일례로, 통신부(210)는 객체(130)에 대한 입력 영상을 다른 서버나 다른 장치로부터 수신할 수 있다.
프로세서(200)는 컴퓨터 시스템(100)의 구성 요소들을 관리할 수 있고, 컴퓨터 시스템(100)이 사용하는 프로그램 또는 어플리케이션을 실행할 수 있다. 예컨대, 프로세서(200)는, 객체(130)에 대한 입력 영상을 획득하여, 추론 모델을 통해 입력 영상으로부터 객체(130)의 관절(들)의 위치 정보를 추정할 수 있고, 객체(130)의 3차원 포즈를 추정하여 객체(130)의 움직임을 모방하는 가상의 캐릭터(150)를 생성할 수 있고, 이러한 동작을 수행하기 위해 요구되는 프로그램 또는 어플리케이션의 실행 및 데이터의 처리 등에 필요한 연산을 처리할 수 있다. 프로세서(200)는 컴퓨터 시스템(100)의 적어도 하나의 프로세서 또는 프로세서 내의 적어도 하나의 코어(core)일 수 있다.
컴퓨터 시스템(100)은 도시되지는 않았으나 메모리를 포함할 수 있다. 메모리는 컴퓨터에서 판독 가능한 기록매체로서, RAM(random access memory), ROM(read only memory) 및 디스크 드라이브와 같은 비소멸성 대용량 기록장치(permanent mass storage device)를 포함할 수 있다. 여기서 ROM과 비소멸성 대용량 기록장치는 메모리와 분리되어 별도의 영구 저장 장치로서 포함될 수도 있다. 또한, 메모리에는 운영체제와 적어도 하나의 프로그램 코드가 저장될 수 있다. 이러한 소프트웨어 구성요소들은 메모리와는 별도의 컴퓨터에서 판독 가능한 기록매체로부터 로딩될 수 있다. 이러한 별도의 컴퓨터에서 판독 가능한 기록매체는 플로피 드라이브, 디스크, 테이프, DVD/CD-ROM 드라이브, 메모리 카드 등의 컴퓨터에서 판독 가능한 기록매체를 포함할 수 있다. 다른 실시예에서 소프트웨어 구성요소들은 컴퓨터에서 판독 가능한 기록매체가 아닌 통신부(210)를 통해 메모리에 로딩될 수도 있다. 메모리에는 입력 영상으로부터 객체(130)의 관절(들)의 위치 정보를 추정하기 위한 추론 모델을 구성하는 데이터가 저장되어 있을 수 있다. 또한, 메모리에는 객체(130)를 포함하는 입력 영상이 저장되어 있을 수 있다.
프로세서(200)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리 또는 통신부(210)에 의해 프로세서(200)로 제공될 수 있다. 예를 들어, 프로세서(200)는 메모리에 로딩된 프로그램 코드에 따라 수신되는 명령을 실행하도록 구성될 수 있다. 이러한 프로세서(200)에 의한 동작에 의해 컴퓨터 시스템(100)은 전술된 객체(130)의 3차원 포즈 추정의 동작 및 가상의 캐릭터(150)의 생성의 동작을 수행할 수 있다.
프로세서(200)의 보다 상세한 구성에 대해서는 후술될 도 3을 참조하여 더 자세하게 설명한다. 후술될 프로세서(200)의 구성들 각각은 프로세서(200)의 일부로서 소프트웨어 및/또는 하드웨어 모듈로 구현될 수 있고, 프로세서에 의해 구현되는 기능(기능 블록)에 해당할 수 있다.
디스플레이(220)는 객체(130)를 포함하는 입력 영상을 디스플레이하거나, 3차원 포즈 추정에 따라 생성된 가상의 캐릭터(150)를 디스플레이하는 장치일 수 있다. 또한, 디스플레이(220)는 터치 스크린(터치 패널)을 포함할 수 있으며, 이 때 디스플레이(220)는 터치 입력을 포함하는 사용자의 인터랙션을 입력 받기 위한 입력부(미도시)의 기능을 포함하도록 구성될 수 있다.
카메라(120)는 피사체를 촬영하여 피사체에 대한 영상 데이터를 생성할 수 있다. 예컨대, 카메라(120)는 객체(130)를 촬영하여 객체(130)에 대한 2차원의 영상 데이터를 생성할 수 있다. 카메라(120)는 RGB 카메라일 수 있다.
도 3을 참조하여, 프로세서(200)의 보다 상세한 구성에 대해 설명한다.
도시된 것처럼, 프로세서(200)는 입력부(310), 전처리부(320), 추론부(330), 후처리부(340), 애니메이션 생성부(350) 및 출력부(360)를 포함할 수 있다.
입력부(310)는 적어도 하나의 움직이는 객체(130)를 포함하는 2차원의 입력 영상을 획득하는 구성일 수 있다. 예컨대, 입력부(310)는 카메라(120)에 의해 촬영된 객체(130)에 대한 입력 영상을 획득하거나, 컴퓨터 시스템(100)에 기 저장된 객체(130)에 대한 입력 영상을 획득할 수 있다. 또는, 입력부(310)는 통신부(210)를 통해 수신된 객체(130)에 대한 입력 영상을 획득할 수 있다.
전처리부(320)는 획득된 객체(130)에 대한 입력 영상을 추론 모델이 사용하기에 적합한 형태로 가공하는 구성일 수 있다. 예컨대, 전처리부(320)는 추론 모델의 입력으로서 적합한 크기가 되도록 획득된 객체(130)에 대한 입력 영상의 사이즈를 (예컨대, 크롭을 통해) 변경할 수 있다. 전처리부(320)는 획득된 입력 영상에서, 추론 모델이 객체(130)의 관절의 위치 정보를 추정함에 있어서 불필요한 부분을 제거하는 구성일 수 있다.
추론부(330)는 전처리부(320)를 통해 가공된 입력 영상을 입력으로서, 추론 모델을 사용하여 객체(130)의 복수의 관절들 각각에 대한 위치 정보를 추정하기 위한 구성일 수 있다. 추론 모델은 모바일 단말에 탑재 가능하도록 경량화된 모델로서, 예컨대, MoVNect 모델로 명명되는 모델일 수 있다. 추론 모델은 입력 영상으로부터 객체(130)의 복수의 관절들 각각에 대한 위치 정보를 추정하기 위해 미리 훈련된 것일 수 있다. 말하자면, 추론부(330)는 객체(130)의 복수의 관절들 각각에 대한 위치 정보를 추정하기 위해 미리 훈련된 추론 모델을 사용하여, (전처리부(320)에 의해 가공된) 입력 영상에 포함된 객체(130)의 복수의 관절들 각각에 대한 위치 정보를 추정할 수 있다. 추론 모델과 추론 모델을 구축하는 보다 상세한 방법에 대해서는 후술될 도 8 내지 10을 참조하여 더 자세하게 설명된다.
추론부(330)에 의해 추정된 위치 정보를 사용하여 객체(130)의 움직임(즉, 3차원 포즈)을 나타내는 애니메이션 데이터가 생성될 수 있다.
후처리부(340)는 추론부(330)에 의한 추론의 결과(즉, 추정된 위치 정보)를 보정하기 위한 구성일 수 있다. 후처리부(340)에 의한 보정에 따라 입력 영상에 포함된 객체(130)의 3차원 포즈를 보다 정확하게 나타내는 애니메이션 데이터가 생성될 수 있다.
애니메이션 생성부(350)는 추론부(330)에 의해 추정된 위치 정보(및 후처리부(340)에 의해 보정된 위치 정보)를 사용하여 객체(130)의 움직임(즉, 3차원 포즈)를 나타내는 애니메이션 데이터를 생성하는 구성일 수 있다. 애니메이션 생성부(350)는 객체(130)로부터 추정되는 연속적인 위치 정보를 사용하여 객체(130)의 각 관절(즉, 각각의 관절)에 대한 회전 정보를 포함하는 애니메이션 데이터를 생성할 수 있다.
출력부(렌더링부)(360)는 가상의 캐릭터(150)에 대해 생성된 애니메이션 데이터를 적용(리타게팅)하는 구성일 수 있다. 예컨대, 출력부(360)는 객체(130)의 각 관절에 대한 애니메이션 데이터를 가상의 캐릭터(150)의 대응하는 관절에 대해 맵핑함으로써, 객체의 3차원 포즈를 모방하는 가상의 캐릭터(150)를 생성할 수 있다.
생성된 가상의 캐릭터(150)는 디스플레이(220)를 통해 출력될 수 있다. 생성된 가상의 캐릭터(150)는 실시간으로(또는 거의 실시간으로) 촬영되는 객체(130)의 움직임(3차원 포즈)을 모방할 수 있다.
전술된 프로세서(200)의 구성들(310 내지 360)의 보다 구체적인 기능 및 동작에 대해서는 후술될 도 4 내지 도 12를 참조하여 더 자세하게 설명된다.
이상, 도 1을 참조하여 전술된 기술적 특징에 대한 설명은, 도 2 및 도 3에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다.
후술될 상세한 설명에서, 컴퓨터 시스템(100) 또는 프로세서(200)의 구성들에 의해 수행되는 동작이나 컴퓨터 시스템(100) 또는 프로세서(200)가 실행하는 어플리케이션/프로그램에 의해 수행되는 동작은 설명의 편의상 컴퓨터 시스템(100)에 의해 수행되는 동작으로 설명될 수 있다.
도 4는 일 실시예에 따른, 2차원의 입력 영상에 포함된 객체의 3차원 포즈 추정을 위한 데이터를 생성하는 방법을 나타내는 흐름도이다.
단계(410)에서, 컴퓨터 시스템(100)(또는, 입력부(310))은 적어도 하나의 움직이는 객체(130)를 포함하는 2차원의 입력 영상을 획득할 수 있다. 전술한 것처럼, 컴퓨터 시스템(100)은 카메라(120)에 의해 촬영된 객체(130)에 대한 입력 영상을 획득하거나, 기 저장된 객체(130)에 대한 입력 영상을 획득할 수 있다. 또는, 컴퓨터 시스템(100)은 통신부(210)를 통해 수신된 객체(130)에 대한 입력 영상을 획득할 수 있다.
단계(420)에서, 컴퓨터 시스템(100)(또는, 추론부(330))은 객체(130)의 복수의 관절들 각각에 대한 위치 정보를 추정하기 위해 미리 훈련된 추론 모델을 사용하여, 입력 영상에 포함된 객체(130)의 복수의 관절들 각각에 대한 위치 정보를 추정할 수 있다. 전술한 것처럼, 단계(420)의 수행에 앞서 전처리부(320)에 의해 객체(130)에 대한 입력 영상은 추론 모델에의 입력으로 보다 적합한 형태로 가공될 수 있다.
객체(130)의 복수의 관절들은 사람을 구성하는 주요한 관절들로서, 예컨대, 사람이 포함하는 15개의 관절을 포함할 수 있다. 예컨대, 관절은 머리('Head'), 목('Neck'), 오른쪽 어깨('RightShoulder'), 오른쪽 팔꿈치('RightElbow'), 오른쪽 손목('RightWrist'), 왼쪽 어깨('LeftShoulder'), 왼쪽 팔꿈치('LeftElbow'), 왼쪽 손목('LeftWrist'), 오른쪽 둔부('RightHip'), 오른쪽 무릎('RightKnee'), 오른쪽 발목('RightAnkle'), 왼쪽 둔부('LeftHip'), 왼쪽 무릎('LeftKnee'), 왼쪽 발목('LeftAnkle'), 골반('Pelvis') 등을 포함할 수 있다.
추론 모델은 딥러닝 또는 인공신경망(예컨대, CNN 및/또는 DNN)을 통해 영상으로부터 이러한 관절의 위치 정보를 추정하도록 미리 훈련된 것일 수 있다. 추론 모델과 추론 모델을 구축하는 보다 상세한 방법에 대해서는 후술될 도 8 내지 10을 참조하여 더 자세하게 설명된다.
단계(420)에서 추정된 각 관절에 대한 위치 정보는 각 관절에 대한` 3차원 좌표 정보를 포함할 수 있다. 말하자면, 각 관절에 대한 위치 정보는 3차원의 공간 내에서 해당 각 관절이 위치하는 좌표(x, y, z)를 나타낼 수 있다.
단계(430)에서, 컴퓨터 시스템(100)(또는, 후처리부(340))은 단계(420)에서 추정된 위치 정보에 대한 후처리를 수행할 수 있다. 예컨대, 단계들(432 및 434)에서와 같이, 컴퓨터 시스템(100)은 추정된 위치 정보 중 잘못 추정된 위치 정보를 결정할 수 있고, 잘못 추정된 위치 정보를 보정할 수 있다. 말하자면, 컴퓨터 시스템(100)은 잘못 추정된 것으로 결정된 관절에 대한 위치 정보를 적절한 값으로 보정하거나, 또는, 잘못 추정된 것으로 결정된 관절에 대한 위치 정보를 후술될 애니메이션 데이터의 생성에 있어서 사용하지 않을 수 있다. 단계(430)의 후처리부(340)에 의한 동작은 추론부(330)에 의한 동작으로 통합될 수도 있다.
단계(430)에 의해 객체(130)의 관절에 대한 보다 정확한 위치 정보의 추정이 이루어질 수 있다.
단계(440)에서, 컴퓨터 시스템(100)(애니메이션 생성부(350))은 추정된(또는 후처리된) 위치 정보를 사용하여 객체(130)의 움직임을 나타내는 애니메이션 데이터를 생성할 수 있다.
생성되는 애니메이션 데이터는, 각 관절에 대해 추정된(또는 후처리된) 3차원 좌표 정보에 기반한 각 관절에 대한 3차원 위치 정보 및 각 관절에 대해 연속적으로 추정되는(또는, 후처리된 연속적인) 3차원 좌표 정보에 기반한 각 관절에 대한 회전 정보를 포함할 수 있다. 각 관절에 대한 3차원 위치 정보는 각 관절에 대해 추정된 3차원 좌표 정보에 대응할 수 있다. 각 관절에 대한 회전 정보는 각 관절의 회전 각도를 포함할 수 있다. 컴퓨터 시스템(100)은 각 관절에 대해 연속적으로 추정되는 3차원 좌표 정보를 비교함으로써 해당 관절의 회전 각도를 계산할 수 있다.
애니메이션 데이터는 각 관절의 움직임을 나타내는 정보일 수 있다. 애니메이션 데이터가 포함하는 각 관절에 대한 3차원 위치 정보는 각 관절에 대한 RST (Rotation, Scale, Translation) 정보 중 Translation 정보에 해당할 수 있다. 애니메이션 데이터가 포함하는 각 관절에 대한 회전 정보는 각 관절에 대한 RST 정보 중 Rotation 정보에 해당할 수 있다. 애니메이션 데이터는 각 관절에 대한 Scale (즉, 확대/축소에 관한) 정보는 포함하지 않을 수 있다.
단계(450)에서, 컴퓨터 시스템(100)(애니메이션 생성부(350))은 생성된 애니메이션 데이터를 후처리할 수 있다. 예컨대, 단계들(452 및 454)에서와 같이, 컴퓨터 시스템(100)은 각 관절에 대한 회전 정보 중 비정상 회전 상태를 나타내는 회전 정보가 있는지 여부를 판정할 수 있고, 비정상 회전 상태를 나타내는 것으로 판정된 회전 정보를 적절하게 보정할 수 있다.
일례로, 단계(452)에서, 컴퓨터 시스템(100)은 각 관절의 회전 각도가 사람이 취할 수 있는 범위 내인지 여부를 체크할 수 있고, 회전 각도가 사람이 취할 수 없는 범위에 있는 것이면, 해당 회전 각도에 대응하는 회전 정보를 비정상 회전 상태를 나타내는 것으로 판정할 수 있다. 말하자면, 컴퓨터 시스템(100)은 각 관절에 대한 회전 정보가 객체(130)의 정상적인 움직임에 해당하는 것으로 기 설정된 각도의 범위 내에 있는지 여부를 판정할 수 있고, 그러한 경우, 해당 회전 정보를 정상 회전 상태를 나타내는 것으로 판정할 수 있다. 컴퓨터 시스템(100)은 각 관절에 대한 회전 정보가 객체(130)의 정상적인 움직임에 해당하는 것으로 기 설정된 각도의 범위 내에 있지 않은 경우 비정상 회전 상태로 판정할 수 있다.
각 관절의 회전 각도가 사람이 취할 수 없는 범위인지 여부를 판정하기 위한 기준 범위는, 일반적으로 사람의 관절이 취할 수 있는 범위를 벗어나는지 여부에 따른 것으로서, 미리 설정되어 있을 수 있다. 기준 범위는 각 관절별로 미리 설정되어 있을 수 있으며, 각 관절의 x축, y축 및 z축에 대해 각각 미리 설정되어 있을 수 있다. 일례로, 머리의 움직임과 연관된 관절의 x축 방향의 최소~ 최대의 회전 각도는 -37도~22도로 설정되어 있을 수 있다(Angle = MIN(MAX(-37, Angle), 22)). 컴퓨터 시스템(100)은 머리의 움직임과 연관된 관절의 회전 정보가 포함하는 x축 방향의 회전 각도가 -37도~22도의 범위를 벗어나는 경우, 해당 회전 정보를 비정상 회전 상태를 나타내는 회전 정보로 판정할 수 있다. 일반적으로 사람의 관절이 취할 수 있는 범위는 각 관절(즉, 각 관절과 연관하는 부위(뼈)) 별로, 예컨대, 아래의 표 1과 같이 설정될 수 있다. 표 1에서 예시된 각 관절에 대한 값은 생성되는 사람의 모션 캡쳐 데이터(실시예의 애니메이션 데이터)를 포함하는 파일(일례로, BHV 파일)에 적용되는 각 관절에 대한 회전 한계 값을 나타낼 수 있다. 아래의 각 관절에 대한 값은 예시적인 것으로서 포즈 추정의 대상이되는 사람에 따라(예컨대, 포즈 추정의 대상이 되는 사람이 체조 선수 등인 경우) 적절하게 변경될 수 있다.
뼈(관절) x축 범위 x축 스티프니스 y축 범위 y축 스티프니스 z축 범위 z축 스티프니스
머리(head) -37~22 84% -45~45 75% -30~30 83%
목(neck) -37~22 84% -45~45 75% -30~30 83%
왼쪽 쇄골(lCollar) 고정(Locked) 해당 없음(Not Applicable) -30~10 89% -30~30 83%
오른쪽 쇄골(rCollar) 고정 해당 없음 -10~30 89% -30~30 83%
왼쪽 어깨(lShldr) -135~90 38% -180 (-105)~98 44% -91~97 48%
오른쪽 어깨 (rShldr) -135~90 38% -98~180 (105) 44% -97~91 48%
왼쪽 전완(lForeArm) -90~79 53% -146~0 59% 고정 해당 없음
오른쪽 전완(rForeArm) -90~79 53% 0~146 59% 고정 해당 없음
왼쪽 손(lHand) -45~45 99% -25~36 83% -90~86 51%
오른쪽 손(rHand) -45~45 99% -36~25 83% -86~90 51%
가슴(chest) -45~22 81% -45~45 75% -30~30 83%
복부(abdomen) -45~68 69% -45~45 75% -30~30 83%
둔부(hip) 해당 없음 해당 없음 해당 없음 해당 없음 해당 없음 해당 없음
왼쪽 허벅지(lThigh) -155~45 44% -85~105 47% -17~88 71%
오른쪽 허벅지(rThigh) -155~45 44% -105~85 47% -88~17 71%
왼쪽 정강이(lShin) 0~150 58% 고정 해당 없음 고정 해당 없음
오른쪽 정강이(rShin) 0~150 58% 고정 해당 없음 고정 해당 없음
왼쪽 발(lFoot) -31~63 74% -26~26 86% -74~15 75%
오른쪽 발(rFoot) -31~63 74% -26~26 86% -15~74 75%
각 관절(뼈)의 스티프니스(stiffness)는 특정 축을 중심으로 관절이 얼마나 쉽게 회전하는지 나타내는 값일 수 있다. 스티프니스 값이 적절하게 설정된 경우 역 운동학(inverse kinematics)을 적용할 시 뼈와 관절들이 사실적으로 움직이게 될 수 있다. 스티프니스 값이 클수록 해당 축으로의 회전은 최소화될 수 있다. 둔부에 해당하는 관절(예컨대, 골반)의 경우 사람의 뼈 계층(bone hierarchy)의 루트(root)가 되는 바, 해당 관절은 몸 전체를 회전시킬 수 있다. 따라서, 둔부에 해당하는 관절의 경우 회전에 있어서의 제한이나, 스티프니스 값이 없는 것으로 설정될 수 있다. 단계(454)에서, 컴퓨터 시스템(100)은 비정상 회전 상태를 나타내는 회전 정보의 회전 각도를 정상 회전 상태를 나타내는 회전 각도로 보정하거나, 해당 비정상 회전 상태를 나타내는 회전 정보의 회전 각도를 가상의 캐릭터(150)의 생성에 있어서 사용되지 않도록 할 수 있다. 컴퓨터 시스템(100)은 보간법(interpolation)을 사용하여 비정상 회전 상태를 나타내는 회전 정보의 회전 각도를 적절하게 보정할 수 있다.
단계(450)의 애니메이션 생성부(350)에 의한 동작은 후처리부(340)에 의한 동작으로 통합될 수도 있다. 즉, 각 관절의 회전 각도에 대한 보정은 후처리부(340)에 의해 수행될 수도 있다.
단계(450)에 의해 비정상적인 회전을 나타내는 관절을 포함하지 않는 객체(130)의 움직임을 보다 정확하게 모방하는 가상의 캐릭터(150)가 생성될 수 있다.
단계(460)에서, 컴퓨터 시스템(100)(출력부(360))은 생성된 애니메이션 데이터에 기반하여, 객체(130)의 복수의 관절들을 가상의 캐릭터(150)에 맵핑함으로써, 객체(130)의 움직임(즉, 3차원 포즈)을 모방하는 가상의 캐릭터(150)를 생성할 수 있다. 말하자면, 컴퓨터 시스템(100)은 객체(130)의 움직임을 모방하는 가상의 캐릭터(150)를 렌더링할 수 있다. 렌더링은 셰이더(shader)에 의해 수행될 수 있다. 생성된 가상의 캐릭터(150)는 디스플레이(220)를 통해 출력될 수 있다. 컴퓨터 시스템(100)은 카메라(120)를 사용하여 촬영되는 객체(130)의 움직임을 실시간으로 모방하는 3차원의 가상의 캐릭터(150)를 생성할 수 있고, 실시간으로 가상의 캐릭터(150)를 디스플레이할 수 있다. 가상의 캐릭터(150)는 출력 영상에 포함되어 사용자 단말(즉, 컴퓨터 시스템(100))에서 디스플레이될 수 있다.
컴퓨터 시스템(100)은 객체(130)의 관절들의 움직임을 추론함으로써, 객체(130)가 정면을 보고 있는지 또는 뒤돌아 서있는지 여부를 식별할 수 있고, 이에 따라, 생성되는 가상의 캐릭터(150)의 방향 또한 결정될 수 있다.
한편, z축의 좌표를 포함하는 각 관절의 3차원 위치 정보가 애니메이션 데이터에 포함됨에 따라, 애니메이션 데이터가 각 관절에 대한 Scale 정보를 포함하지 않더라도, 객체(130)의 움직임을 정확하게 모방하는 3차원의 가상의 캐릭터(150)가 생성될 수 있다.
관련하여, 도 11a는 2차원의 입력 영상에 포함된 객체(1100)의 3차원 포즈를 추정하는 예시를 나타낸다.
도 11a에서 도시된 것처럼, 2차원의 입력 영상에 포함된 객체(1100)의 3차원 포즈가 추정됨으로써, 3차원의 가상의 캐릭터(1110)가 생성될 수 있다. 도시된 것처럼, 객체(1100)의 15개의 관절들에 대한 추정된 위치 정보(또는, 이에 따른 애니메이션 데이터(1120)가 캐릭터에 대해 맵핑될 수 있다. 생성되는 가상의 캐릭터(1110)는 객체(1100)의 움직임을 실시간으로 모방할 수 있다. 도시된 애니메이션 데이터(1120)는 전술된 추론 모델에 의한 객체(1100)의 관절들에 대한 위치 정보의 추정의 결과를 나타낼 수 있다.
이상, 도 1 내지 도 3을 참조하여 전술된 기술적 특징에 대한 설명은, 도 4 및 도 11a에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다.
도 5는 일 예에 따른, 2차원의 입력 영상에 포함된 객체의 관절의 위치 정보를 추정하는 방법을 나타내는 흐름도이다.
도 5를 참조하여, 컴퓨터 시스템(100)(또는, 추론부(330))에 의한 객체(130)의 각 관절에 대한 위치 정보의 추정 방법을 보다 자세하게 설명한다.
단계(510)에서, 컴퓨터 시스템(100)은 객체(130)의 복수의 관절들의 각 관절에 대한 히트맵(Heat Map) 및 위치맵을 생성할 수 있다. 히트맵 및 위치맵은 각각 2차원 이미지일 수 있다. 위치맵은 각 관절에 대해 x축 방향의 위치를 나타내는 위치맵, y축 방향의 위치를 나타내는 위치맵 및 z축 방향의 위치를 나타내는 위치맵을 포함할 수 있다. 히트맵은 각 관절의 각 픽셀 위치에 대한 likelihood를 나타낼 수 있다. 말하자면, 히트맵은 각각의 관절이 히트맵 내의 각 픽셀 위치에 존재할 가능성(likelihood)을 나타낼 수 있다.
단계(520)에서, 컴퓨터 시스템(100)은 객체(130)의 각 관절에 대한 히트맵 및 위치맵에 기반하여 각 관절에 대한 3차원 좌표 정보를 각 관절에 대한 위치 정보로서 추정할 수 있다.
도 4를 참조하여 전술된 단계(430)의 추정된 위치 정보에 대한 후처리를 수행함에 있어서, 단계(432)에서, 컴퓨터 시스템(100)(또는, 후처리부(340))은 각 관절에 대한 3차원 좌표 정보에 대응하는 각 관절에 대한 히트맵 상의 값이 소정의 임계값 미만인지 여부를 판정할 수 있다. 이 때, 컴퓨터 시스템(100)은 상기 3차원 좌표 정보에 대응하는 히트맵 상의 값이 상기 소정의 임계값 미만이면, 해당 3차원 좌표 정보를 잘못 추정된 것으로 판정할 수 있다. 단계(434)에서, 컴퓨터 시스템(100)은 이러한 잘못 추정된 것으로 판정된 3차원 좌표 정보를 보정할 수 있다.
일례로, 컴퓨터 시스템(100)은 각 관절에 대해 추정된 3차원 좌표 정보가 잘못 추정된 것인지 여부를 해당 관절에 대한 히트맵의 최대값에 기반하여 판정할 수 있다. 컴퓨터 시스템(100)은 히트맵의 최대값이 소정의 임계값(예컨대, 0.5) 미만일 경우 추정된 3차원 좌표 정보를 불안정하고 잘못 추정된 값으로서 판정할 수 있다.
컴퓨터 시스템(100)은 추정된 위치 정보에 해당하는 3차원 좌표 정보에 대해, 필터(예컨대, 1 Euro Filter 및/또는 Median Filter)를 적용함으로써 해당 3차원 좌표 정보를 보정할 수 있다.
이에 따라, 객체(130)의 관절에 대한 보다 정확한 3차원 좌표 정보의 추정이 이루어질 수 있다.
이상, 도 1 내지 도 4 및 도 11a를 참조하여 전술된 기술적 특징에 대한 설명은, 도 5에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다.
아래에서는, 각 관절에 대해 추정된 위치 정보에 대한 후처리부(340)에 의한 전술된 후처리에 대해 더 자세하게 설명한다.
전술된 추론 모델은 합성곱 신경망(CNN; Convolution Neural Network)에 기반하여 객체(130)에 대한 3차원 포즈 추정을 수행할 수 있고, 이는 그래픽 애플리케이션에 있어서 허용될 수 없는 작은 지터(jitter), 즉, 허용될 수 없는 아티팩트를 발생시킬 수 있다. 이러한 지터 및 허용될 수 없는 아티팩트에 대응하는 위치 정보의 값이 후처리에 의해 보정될 수 있다.
이러한 시계열적인 지터(및 아티팩트)를 저감시키기 위해, 후처리부(340)는 추정된 위치 정보의 2차원 키포인트(keypoint)에 대해 특정 필터(예를 들면, 1 Euro 필터)를 적용할 수 있고, 이러한 필터가 적용된 키포인트(K)를 해당 위치맵의 값을 참조하도록 사용할 수 있다. 추정된 3차원 포즈를 나타내는 위치 정보 역시 계속적인 영상 추정 결과에 따른 시계열적인 노이즈를 줄이기 위해 필터가 적용될 수 있다.
한편, 추정된 3차원 포즈를 나타내는 위치 정보는 각 관절의 루트-상대 3차원(root-relative 3D) 위치 정보에 해당하므로, 캐릭터 애니메이션에 대해 직접적으로 적용될 수 없다. 따라서 각 관절 위치의 3차원의 위치 정보를 방위(orientation)로 변환하기 위해 역운동학(inverse kinematics)이 적용될 수 있다. 이러한 방위 값들에는 또한 1 Euro 필터가 적용될 수 있다.
도 6은 일 예에 따른, 2차원의 입력 영상에 포함된 객체의 글로벌 위치 정보를 계산하는 방법을 나타내는 흐름도이다.
도 6을 참조하여, 입력 영상 내에서 객체(130)가 이동하는 경우에 있어서의 객체(130)의 이동을 추정하고, 추정된 객체의 이동을 대응하는 가상의 캐릭터(150)의 생성에 있어서 반영하는 방법에 대해 설명한다.
단계(610)에서, 컴퓨터 시스템(100)(출력부(360))은 입력 영상을 촬영하기 위해 사용된 카메라(예컨대, 카메라(120))의 초점 거리 및 객체(130)의 복수의 관절들 중 적어도 하나에 대해 추정된 위치 정보(즉, 관절에 대한 3차원 좌표 정보)에 기반하여, 객체(130)의 글로벌 위치를 나타내는 글로벌 위치 정보를 계산할 수 있다. 객체(130)의 글로벌 위치는 입력 영상 내에서의 객체(130)의 절대적인 위치를 나타낼 수 있다. 말하자면, 글로벌 위치는 객체(130)의 각 관절의 움직임에 대응하는 객체(130)의 움직임과는 구별되는, 객체(130) 자체의 영상 내에서의 이동을 나타낼 수 있다. 일례로, 입력 영상이 객체(130)가 춤을 추는 영상인 경우에 있어서, 제자리에서 객체(130)가 춤을 추는 움직임은 전술된 단계들(420)에 의해 추정되는 각 관절에 대한 위치 정보에 의해 추정될 수 있다. 그러나, 객체(130)가 무대 위를 이동하면서 춤을 추는 경우에 있어서 객체(130)의 무대 위에서의 이동은 객체(130)의 글로벌 위치를 계산함으로써 추정될 수 있다.
단계(620)에서, 컴퓨터 시스템(100)은 계산된 글로벌 위치 정보에 기반하여 객체(130)의 입력 영상 내에서의 위치 이동을 추정할 수 있다.
단계들(610 및 620)에 따라, 객체(130)의 3차원 포즈 및 이동을 보다 정확하게 반영하는 가상의 캐릭터(150)가 생성될 수 있다.
전술된 단계들(610 및 620)은 출력부(360)가 아닌 후처리부(340)에 의해 수행될 수도 있다.
관련하여, 도 11b는 일 예에 따른, 2차원의 입력 영상에 포함된 객체(1100)의 3차원 포즈를 추정하는 예시를 나타낸다.
도시된 것처럼, 입력 영상에서 객체(100)가 단순히 제자리에서 움직이는 것뿐만 아니라 글로벌하게 이동하는 하는 경우, 컴퓨터 시스템(100)은 객체(130)의 글로벌 위치를 나타내는 글로벌 위치 정보를 계산할 수 있고, 이에 따라, 객체(130)의 입력 영상 내에서의 글로벌한 위치 이동을 추정할 수 있다. 도시된 것처럼, 생성되는 가상의 캐릭터(1110)는 객체(1100)의 글로벌한 위치 이동까지도 모방할 수 있다.
아래에서, 컴퓨터 시스템(100)이 입력 영상을 촬영하기 위해 사용된 카메라(예컨대, 카메라(120))의 초점 거리 및 객체(130)의 관절들에 대해 추정된 위치 정보(즉, 관절에 대한 3차원 좌표 정보)를 사용하여 객체(130)의 글로벌 위치를 나타내는 글로벌 위치 정보를 계산하는 방법을 더 자세하게 설명한다.
실시예에서는 입력 영상에 대해 경계 상자(bounding box)를 사용하여 크롭된 입력 영상으로부터 객체(130)에 대한 3차원 포즈의 추정이 이루어짐에 따라, 추정에 의해 얻어지는 루트-상대 3차원 포즈는 객체(130)에 대한 글로벌 위치 정보를 잃어버리게 될 수 있다.
이러한 객체(130)에 대한 글로벌 위치 정보는 아래의 수학식 1에 따라 계산됨으로써 복원될 수 있다. 아래 수학식 1에서
Figure pat00001
는 객체(130)에 대한 글로벌 위치 정보를 나타낼 수 있다.
[수학식 1]
Figure pat00002
여기서,
Figure pat00003
Figure pat00004
는 객체(130)의 모든 관절들에 대한 3차원, 2차원 평균(mean)일 수 있으며, 특히,
Figure pat00005
는 스크린 좌표계의 값을 가질 수 있다. P[x,y]는 P3D의 x, y 부분일 수 있고, 단일한 하부 기호는 특정 요소를 나타낼 수 있다. f는 객체(130)의 촬영에 사용된 카메라(예컨대, 카메라(120))의 초점 거리일 수 있다. 말하자면, 객체(130)에 대한 글로벌 위치 정보는 객체(130)의 촬영에 사용된 카메라의 초점 거리 및 추론 모델에 의한 추정 전후의 각 관절에 대한 2차원에서의 및 3차원에서의 위치 정보를 사용하여 계산될 수 있다.
계산된 글로벌 위치 정보에 기반하여, 객체(130)의 3차원 포즈 뿐만아니라 글로벌한 이동을 모방하는 가상의 캐릭터(150)가 생성될 수 있다.
이상, 도 1 내지 도 5, 도 11a 및 도 11b를 참조하여 전술된 기술적 특징에 대한 설명은, 도 6에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다.
도 7은 일 예에 따른, 2차원의 입력 영상에 포함된 복수의 객체들의 3차원 포즈 추정을 위한 데이터를 생성하는 방법을 나타내는 흐름도이다.
도 7을 참조하여, 획득되는 입력 영상이 복수의 객체들을 포함하는 경우에 있어서의 객체들에 대한 3차원 포즈 추정을 위한 데이터를 생성하는 방법에 대해 설명한다.
단계(710)에서처럼, 컴퓨터 시스템(100)(또는, 입력부(310) 혹은 전처리부(320))은 복수의 객체들을 포함하는 입력 영상에 대해 해당 복수의 객체들과 연관된 컨피던스 맵을 생성할 수 있다.
컨피던스 맵은 입력 영상에 포함된 복수의 객체들의 각 객체의 복수의 관절들 각각과 연관된 벡터 정보를 포함할 수 있다. 상기 벡터 정보는 각 관절이 어떠한 객체에 포함되는 것인지를 식별하기 위해 사용되는 정보일 수 있다.
컴퓨터 시스템(100)은 전술된 단계(420)에서 각 관절에 대한 위치 정보를 추정함에 있어서, 단계(710)에서 생성된 컨피던스 맵을 사용하여 각 객체의 복수의 관절들 각각에 대한 위치 정보를 복수의 객체들 중 다른 객체와 구분하여 추정할 수 있다. 말하자면, 컨피던스 맵이 포함하는 벡터 정보에 의해, 위치 정보의 추정의 대상이 되는 관절은 어떠한 객체의 관절인지가 구분(특정)될 수 있고, 따라서, 단계들(420 내지 460)에서, 컴퓨터 시스템(100)은 복수의 객체들 각각의 움직임에 해당하는 3차원 포즈를 구분하여 추정해 낼 수 있다. 설명된 실시예에 따라, 복수의 객체들을 포함하는 입력 영상에 대해서는, 객체들 각각의 3차원 포즈가 동시에 추정될 수 있다.
또는, 입력 영상이 복수의 객체들을 포함하는 경우에 있어서, 컴퓨터 시스템(100)은 해당 입력 영상에서 복수의 객체들 중 하나의 객체를 포함하는 부분 영상만을 획득할 수도 있다. 하나의 객체를 포함하는 부분 영상은 입력 영상이 하나의 객체만을 포함하도록 크롭된 영상이거나, 입력 영상에서 하나의 객체를 나타내는 부분이 삭제되거나, 블러처리(또는 기타의 처리)된 영상일 수 있다.
컴퓨터 시스템(100)은 입력 영상이 포함하는 복수의 객체들 중 하나의 객체를 포함하는 각 부분 영상에 대해, 단계(420)의 추정하는 단계 및 (단계(430)의 후처리 단계를 포함하는) 단계(440)의 생성하는 단계를 병렬적으로 수행하거나, 각각의 객체를 포함하는 부분 영상 별로 해당 단계들을 순차적으로 수행할 수 있다.
단계들(420 내지 440)이 병렬적으로 처리되는 경우에는 복수의 객체들을 포함하는 입력 영상에 대해 객체들 각각의 3차원 포즈가 동시에 추정될 수 있다. 또는, 단계들(420 내지 440)이 각 부분 영상 별로 순차적으로 처리되는 경우에는 복수의 객체들을 포함하는 입력 영상에 대해 객체들 각각의 3차원 포즈가 순차적으로 추정될 수 있다.
한편, 전술된 단계(460)에 있어서, 컴퓨터 시스템(100)은 생성된 애니메이션 데이터에 기반하여, 객체(130)의 복수의 관절들을 복수의 가상의 캐릭터들의 각각에 맵핑함으로써, 객체(130)의 움직임을 모방하는 복수의 가상의 캐릭터들을 생성할 수 있다. 즉, 컴퓨터 시스템(100)은 하나의 객체(130)를 포함하는 입력 영상에 대해서 해당 객체(130)의 움직임을 모방하는 복수의 캐릭터들을 생성할 수 있다. 복수의 캐릭터들의 각각은 서로 상이한 캐릭터일 수 있다.
또는, (전술한 것처럼) 입력 영상이 복수의 객체들을 포함하는 경우에 있어서, 컴퓨터 시스템(100)은 복수의 객체들의 각각의 복수의 관절들을 가상의 캐릭터에 맵핑함으로써, 복수의 객체들의 움직임을 모방하는 복수의 가상의 캐릭터들을 생성할 수 있다.
생성된 복수의 가상의 캐릭터들의 각각은 사용자 단말(즉, 컴퓨터 시스템(100)인 사용자 단말)에서 출력되는 출력 영상의 상이한 위치에서 배치될 수 있다. 예컨대, 생성된 복수의 가상의 캐릭터들의 각각은 그것이 출력되는 출력 영상 내에서, 사용자 단말(즉, 컴퓨터 시스템(100))의 사용자에 의한 사용자 단말에 대한 조작에 따라 결정된 위치에서 배치될 수 있다. 말하자면, 사용자는 각 객체에 대응하는 가상의 캐릭터가 출력 영상에서 배치될 위치를 선택할 수 있으며, 따라서, 사용자는 출력 영상을 커스터마이즈할 수 있다. 이에 따라, 입력 영상에 있어서의 객체들의 배치는 사용자의 조작에 따라 출력 영상에서의 가상의 캐릭터들의 배치와는 상이하게 될 수 있다.
관련하여, 도 12는 일 예에 따른, 2차원의 입력 영상에 포함된 복수의 객체들의 3차원 포즈를 추정하는 예시를 나타낸다.
도시된 것처럼, 입력 영상에 포함된 서로 상이한 객체들(1210 내지 1230)의 각각은 3차원 포즈 추정에 의해 서로 상이한 캐릭터들(1240 내지 1260) 각각으로 변환될 수 있다. 캐릭터들(1240 내지 1260)의 각각의 출력 영상에서의 위치는 객체들(1210 내지 1230)의 입력 영상에서의 위치와는 상이하게 될 수 있다. 예를 들면, 사용자는 출력 영상이 디스플레이되는 사용자 단말(즉, 컴퓨터 시스템(100))을 조작함으로써 캐릭터들(1240 내지 1260) 각각의 위치를 변경할 수 있다.
한편, 도시된 것과는 달리 캐릭터들(1240 내지 1260) 중 적어도 2개는 객체들(1210 내지 1230) 중 어느 하나의 객체의 3차원 포즈를 추정하여 생성된 것일 수도 있다.
또는, 복수의 캐릭터들(1240 내지 1260)을 포함하는 출력 영상을 생성하기 위해 복수의 입력 영상들이 사용될 수도 있다. 말하자면, 도시된 것과는 달리 객체들(1210 내지 1230)은 각각 상이한 입력 영상에 포함되는 객체이거나, 복수의 캐릭터들(1240 내지 1260)은 복수의 입력 영상들로부터 추정된 것일 수 있다. 컴퓨터 시스템(100)은 이러한 객체들(1210 내지 1230)을 포함하는 복수의 입력 영상들에 대해 3차원 포즈 추정을 수행함으로써 복수의 캐릭터들(1240 내지 1260)을 포함하는 하나의 출력 영상을 생성할 수 있다.
이상, 도 1 내지 도 6, 도 11a 및 도 11b를 참조하여 전술된 기술적 특징에 대한 설명은, 도 7 및 도 12에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다.
도 8 내지 10을 참조하여 추론 모델과 추론 모델을 구축하는 보다 상세한 방법에 대해 설명한다.
후술될 상세한 설명에서, 추론 모델 및 추론 모델의 구축을 설명함에 있어서 '학습(learning)' 및 '훈련(training)'의 용어는 서로 혼용되어 사용될 수 있고 이들 용어는 서로 대체될 수 있다.
도 8은 일 실시예에 따른, 2차원의 입력 영상에 포함된 객체의 3차원 포즈를 추정하기 위한 추론 모델을 구축하는 방법을 나타내는 흐름도이다.
전술된 컴퓨터 시스템(100)이 탑재하고 있는 추론 모델은 객체(130)의 복수의 관절들 각각에 대한 위치 정보를 추정하기 위해 미리 훈련된 것일 수 있다. 추론 모델은 모바일 단말에도 탑재 가능하도록 경량화된 모델일 수 있고, 예컨대, MoVNect 모델로 명명되는 모델일 수 있다.
이러한 추론 모델은 교사-학생 학습(Teacher-Student Learning) 모델에 있어서 학생 모델에 해당할 수 있다. 학생 모델(Student Model)은 추론 모델의 미리 훈련된 교사 모델(Teacher Model)에 비해 더 경량화된 모델일 수 있다. 즉, 학생 모델은 모델 경량화(model compression)에 의해 교사 모델보다 경량화된 뉴럴 네트워크를 포함할 수 있다. 학생 모델은 교사 모델에 비해 더 적은 수의 레이어를 포함할 수 있다. 또는, 학생 모델은 교사 모델보다 적은 개수의 히든 레이어를 포함하거나 또는 교사 모델 보다 적은 개수의 필터 또는 노드를 포함할 수 있다. 이러한 학생 모델은 소정의 훈련용 영상(즉, 훈련용 2차원의 입력 영상)에 포함된 객체의 복수의 관절들에 대한 위치 정보를 학습함으로써 이러한 위치 정보를 추정하도록 훈련된 모델일 수 있다. 학생 모델은 훈련용 2차원의 입력 영상에 포함된 객체의 복수의 관절들에 대한 위치 정보를 학습함에 있어서, 교사 모델에 의한 상기 훈련용 2차원의 입력 영상에 포함된 객체의 복수의 관절들에 대한 위치 정보의 추정의 결과를 사용할 수 있다. 예컨대, 추론 모델이 입력 영상에 포함된 객체의 복수의 관절들에 대한 위치 정보를 학습함에 있어서, 교사 모델에 의한 해당 입력 영상에 포함된 객체의 복수의 관절들에 대한 위치 정보의 추정 결과가 손실 함수의 계산에 사용될 수 있다. 이에 따라, 구축된 추론 모델은 경량화된 학생 모델의 특성을 유지하면서 교사 모델에 준하는 추정의 정확도를 유지할 수 있다.
아래에서 추론 모델을 구축하는 보다 구체적인 방법에 대해 설명한다. 후술될 단계들(810 내지 830)은 추론 모델을 구축하기 위한 컴퓨터 시스템에 의해 수행될 수 있다. 해당 컴퓨터 시스템은 전술된 컴퓨터 시스템(100)에 대해 추론 모델을 제공하기 위한 장치로서, 서버 기타 컴퓨팅 장치일 수 있다. 이하 추론 모델을 구축하기 위한 컴퓨터 시스템을 모델 구축 장치로 명명하여 설명한다.
단계(810)에서, 모델 구축 장치는 소정의 훈련용 영상(즉, 훈련용 2차원의 입력 영상)에 포함된 객체의 복수의 관절들에 대한 위치 정보를 추정하도록 교사 모델을 훈련시킬 수 있다. 말하자면, 모델 구축 장치는 훈련용 2차원의 입력 영상을 사용하여 교사 모델을 훈련시킬 수 있다. 교사 모델은 소정의 훈련용 영상으로부터 해당 훈련용 영상에 포함된 객체의 복수의 관절들에 대한 위치 정보를 추정하도록 미리 훈련된 것일 수 있다. 실시예의 추론 모델은 이러한 미리 훈련된 교사 모델을 이용하여 학습(훈련)될 수 있다.
훈련용 2차원의 입력 영상은 복수의 훈련용 2차원 입력 영상들의 세트일 수 있다. 교사 모델은 예컨대, 정답을 알고 있는 2차원 입력 영상들(즉, 그라운드 트루스(ground truth) 입력 영상들)을 사용하여 미리 훈련된 것일 수 있다.
단계(820)에서, 모델 구축 장치는 교사 모델에 의한 훈련용 (2차원의 입력) 영상에 포함된 객체의 복수의 관절들에 대한 위치 정보의 추정의 결과에 기반하여, 교사 모델보다 더 경량화된 모델인 학생 모델에 대해 해당 훈련용 2차원의 입력 영상에 포함된 객체의 복수의 관절들에 대한 위치 정보를 학습시킬 수 있다. 말하자면, 모델 구축 장치는 훈련용 2차원의 입력 영상을 사용하여 학생 모델을 훈련시키되, 학생 모델은 교사 모델에서의 추정의 결과를 사용하여 훈련될 수 있다.
즉, 교사-학생 학습 기반의 지식 증류(knowledge-distillation)에 의해 훈련될 수 있다. 학습하고자 하는 훈련용 2차원 입력 영상에 대해 해당 훈련용 2차원 입력 영상을 교사 모델이 먼저 학습하고, 교사 모델보다 경량화된 학생 모델은 이러한 교사 모델에 있어서의 추정의 결과를 활용하여 훈련용 2차원 입력 영상을 학습할 수 있다. 이에 따라, 교사 모델은 훈련용 2차원 입력 영상에 대한 지식을 응축하여 학생 모델로 전달할 수 있고, 학생 모델은 교사 모델 없이 훈련용 2차원 입력 영상을 학습한 경우에 비해 최적해를 찾기가 쉬워지기 때문에 정확도가 올라갈 수 있다.
단계(830)에서, 모델 구축 장치는 단계(820)에 의해 학습된 학생 모델을 2차원의 입력 영상에 포함된 객체의 3차원 포즈를 추정하기 위한 추론 모델로서 구축할 수 있다. 모델 구축 장치는 이러한 학습된 학생 모델을 전술된 추론 모델로서 컴퓨터 시스템(100)에 대해 탑재시킬 수 있다.
학생 모델은 2차원 입력 영상이 포함하는 각 객체의 위치 정보를 추정하기 위해 사용되는 손실 함수를 사용하여 훈련될 수 있다. 학생 모델은 교사 모델에 의해 추정(예측)된 결과와 정답(ground truth)에 기반하여 결정되는 손실 함수를 사용하여 훈련될 수 있다. 학생 모델의 훈련에 있어서 사용되는 손실 함수는 히트맵에 대한 손실 함수인 제1 손실 함수 및 위치맵에 대한 손실 함수인 제2 손실함수를 포함할 수 있다. 예컨대, 단계(820)에서 학생 모델에 대해 훈련용 2차원의 입력 영상에 포함된 객체의 복수의 관절들에 대한 위치 정보를 학습시킴에 있어서, 학생 모델은 학생 모델에 의해 추정된 복수의 관절들의 각 관절에 대한 제1 히트맵과 해당 각 관절에 대한 정답에 해당하는 제2 히트맵 간의 차, 및 제1 히트맵과 교사 모델에 의해 추정된 각 관절에 대한 제3 히트맵 간의 차에 기반하여 계산되는 제1 손실 함수와; 학생 모델에 의해 추정된 각 관절에 대한 제1 위치맵과 해당 각 관절에 대한 정답(ground truth)에 해당하는 제2 위치맵 간의 차, 및 제1 위치맵과 교사 모델에 의해 추정된 각 관절에 대한 제3 위치맵 간의 차에 기반하여 계산되는 제2 손실 함수를 사용하여 훈련될 수 있다.
이 때, 제1 히트맵과 제2 히트맵 간의 차, 및 제1 히트맵과 제3 히트맵 간의 차는 소정의 혼합비로 제1 손실 함수에 포함될 수 있다. 또한, 제1 위치맵과 제2 위치맵 간의 차, 및 제1 위치맵과 제3 위치맵 간의 차는 동일한 소정의 혼합비로 제2 손실 함수에 포함될 수 있다. 소정의 혼합비는 예컨대, 0.5일 수 있다. 제1 손실 함수와 연관된 혼합비 및 제2 손실 함수와 연관된 혼합비는 서로 상이하게 설정될 수도 있다.
상기와 같이 소정의 혼합비에 의해 교사 모델에 의한 추정의 결과(즉, 학습의 결과)가 학생 모델의 훈련에 있어서 사용될 수 있다. 따라서, 실시예의 학생 모델에 의해 구축된 추론 모델은 경량화된 모델이 됨과 동시에 높은 추정의 정확도를 가질 수 있다.
이상, 도 1 내지 도 7, 도 11 및 도 12를 참조하여 전술된 기술적 특징에 대한 설명은, 도 8에 대해서도 그대로 적용될 수 있으므로 중복되는 설명은 생략한다.
도 9는 일 예에 따른, 교사-학생 모델을 사용하여, 2차원의 입력 영상에 포함된 객체의 3차원 포즈를 추정하기 위한 추론 모델을 구축하는 방법을 나타낸다. 한편, 도 10은 일 예에 따른, 2차원의 입력 영상에 포함된 객체의 3차원 포즈를 추정하기 위한 추론 모델을 나타낸다.
아래에서는, 교사-학생 학습을 활용하여 경량화된 3차원 포즈 추정을 위한 추론 모델을 훈련시키고 이러한 훈련 모델을 구축하는 방법에 대해 더 자세하게 설명한다.
실시예에서 구축되는 추론 모델은, 단일한 RGB 카메라에 의해 촬영된 영상(입력 영상)으로부터 3차원 포즈 추정을 수행할 수 있는 경량화된 심층신경망 기반의 모델일 수 있다. 추론 모델은 MoVNect 모델로서 명명될 수 있다. 전술한 것처럼, 추론 모델의 추정에 있어서의 성능을 강화하기 위해, 3차원 포즈를 추정을 위한 추론 모델을 훈련시킴에 있어서 교사 학생 학습 기반의 지식 증류(Knowledge distillation) 방법이 사용될 수 있다.
추론 모델에서 추정된 영상에 포함된 객체의 관절에 대한 위치 정보는 후처리를 통해 CNN 출력이 시계열적으로 안정된 3D 골격 정보로서 생성될 수 있고, 이는 (예컨대, 3차원의 캐릭터 또는 아바타를 생성하기 위한) 애플리케이션에서 직접 적용될 수 있다.
추론 모델은 실시간으로 촬영되는 영상에 대해 실시간으로 객체의 3차원 포즈를 추정할 수 있다. 추정된 객체의 3차원 포즈는 AR(증강 현실) 또는 VR(가상 현실) 환경에서 운동 경기력 분석, 신체 및 제스처 모션 캡쳐에 활용될 수 있다. 실시예의 추론 모델은 센서와 여러 대의 카메라가 장착된 웨어러블 슈트에 의존하거나 객체(인체)의 관절의 위치 정보를 얻기 위해 깊이 카메라를 요구하지 않고, 관절의 위치 정보를 추정할 수 있다. 따라서, 고가의 특수 장비를 요구하거나, 교정 절차를 요구하거나, 특정한 광원을 요구하지 않는 바, 실내 및 실외의 환경에서 제한 없이 객체에 대한 3차원 포즈 추정이 가능하게 될 수 있다.
심층신경망을 사용하여 RGB 영상에 대해 포즈를 추정하는 모델을 구축하기 위해서는, 심층 학습 기반 모델의 성능의 향상을 위해서는 매우 깊고 넓은 계층을 마련할 필요가 있고, 이는 높은 배치 비용으로 이어질 수 있다. 이는 FLOPS(Floating Point Operations Per Second, 초별 부동소수점 연산 횟수)를 증가시키게 되고, 따라서, 이는 구축된 모델을 스마트 폰 또는 임베디드 시스템 등과 같은 컴퓨팅 자원이 제한된 장치에의 탑재에 적합하지 않게 할 수 있다. FLOPS를 줄이기 위해, 실시예의 추론 모델은 경량화된 모델로서 구축될 수 있다. 즉, 실시예의 추론 모델은 일반적으로 더 적은 수의 파라미터로 설계될 수 있고, 심층 컨볼루션 같은 효율적인 작업으로 설계될 수 있다.
실시예의 추론 모델은 경량화에 따라 파라미터를 줄이면서 추정의 정확도의 저하가 최소화되도록 학습될 수 있다. 전술한 것처럼, 추론 모델은 교사-학생 모델 학습 방법에 기초하여 구축될 수 있고, 이에 따라 구축된 추론 모델은 교사 학습 없이 훈련된 모델보다 높은 추정의 정확도를 달성할 수 있다.
도 9에서는 교사-학생 모델 학습 방법에 기초하여, 훈련용 2차원 입력 영상(910)으로 훈련된 학생 모델을 실시예의 추론 모델로서 구축하는 방법을 설명하고 있다. 먼저, 교사 모델(920)은 훈련용 2차원 입력 영상(910)으로 훈련될 수 있다. 교사 모델(920)은 다수의 신경망 레이어들을 포함할 수 있다. 다음으로, 교사 모델(920)에 비해 더 경량화된 학생 모델(900)이 훈련용 2차원 입력 영상(910)으로 훈련될 수 있다. 학생 모델(900)은 교사 모델(920)의 추가 지도(extra supervision)를 사용하여 교사 모델(920)의 3차원 포즈 지식의 전달을 위한 모방(mimicry) 손실 함수를 통해 훈련될 수 있다. 훈련된 경량화된 학생 모델(900)은 더 이상 교사 모델(920)에 의존하지 않을 수 있고, 교사 모델(920)을 통해 훈련되지 않은 학생 모델에 비해 보다 우수한 추정의 정확도를 나타낼 수 있다. 추정된 3차원 포즈(950)는 구축된 추론 모델(즉, 학생 모델(900))에 의한 포즈 추정의 결과를 나타낼 수 있다. 학생 모델(900)과 교사 모델(920)의 훈련을 위해 사용되는 정답(Ground Truth, GT)은 미리 알고 있는 값일 수 있다. 정답(GT)은 훈련용 2차원 입력 영상(910)(또는, 다른 훈련용 입력 영상의 세트)에 대한 정답으로서, 예컨대, 복수의 센서, 다수의 카메라, 이들이 부착된 웨어러블 슈트, 깊이 카메라 등을 사용하여 객체를 촬영함으로써 획득되는 훈련용 2차원 입력 영상(910)(또는, 다른 훈련용 입력 영상의 세트)에 대한 정답 데이터일 수 있다. 이러한 정답 데이터는 정답 히트맵 및 정답 위치맵을 포함할 수 있다. 학생 모델(900)을 훈련시키기 위한 손실 함수는, 이러한 정답 히트맵 및 정답 위치맵과, 교사 모델(920)에 의해 추정된 히트맵 및 위치맵과, 학생 모델(900)에 의해 추정된 히트맵 및 위치맵을 사용하여 결정될 수 있다. 자세한 손실 함수의 결정 방법에 대해서는 후술한다.
전술된 지식 증류는 구분되는 캐패시티를 갖는 상이한 네트워크들 간에 정보를 전달하는 것일 수 있다. 지식 증류의 주요한 아이디어는 클래스 확률, 피처 표현 또는 레이어간(inter-layer) 흐름에서 교사 모델을 사용하여 추가 지도를 적용하는 것에 있다. 이는 상대적으로 훈련시키기가 쉬운 대규모의 네트워크를 사용하여 훈련시키기 어려운 소규모 네트워크의 효율적인 훈련을 위해 사용될 수 있다. 즉, 지식 증류를 통해 대형 네트워크의 지식이 소규모 네트워크로 성공적으로 이전될 수 있다. 또한, 온라인 기반 증류를 통해서는 오프라인 기반의 방법보다 더 효과적인 최적화가 달성될 수 있다. 실시예에서는, 이러한 지식 증류를 분류 문제에서 (3차원) 포즈 추정으로 확대하였다. 즉, 객체의 관절에 대응하는 히트맵(및 위치맵)의 지식 전달을 통해, 효율적이고 경량화된 포즈 추정 모델이 훈련될 수 있다. 실시예를 통해서는 경량화된 추론 모델이 구축될 수 있고 따라서 처리 능력이 낮은 장비에서도 입력 영상에 포함된 객체에 대한 3차원 포즈 추정이 가능하게 될 수 있다.
실시예에 따라 구축된 추론 모델(900)은 교사 모델(920) 혹은 동일한 수준의 추정의 정확도를 유지하는 비교 모델에 비해, 파라미터의 수가 1/14로 경량화될 수 있으며, 모델의 파일의 사이즈 역시 1/8 내지 1/10 미만이 될 수 있다. 또한, 컴퓨터 시스템(100)에서의 구동에 있어서, 3차원 포즈 추정의 속도는 비교 모델에 비해 CPU에서 약 6배, GPU에서 약 3배, NPU에서 약 2.8배의 향상을 나타낼 수 있다.
도 10은 일 예에 따른, 2차원의 입력 영상에 포함된 객체의 3차원 포즈를 추정하기 위한 추론 모델을 나타낸다. 도 10에서 도시된 모델은 도 9를 참조하여 전술된 학생 모델(900)에 대응할 수 있다.
추론 모델(900)은 백본 네트워크를 포함할 수 있다. 백본 네트워크는 입력 영상으로서 RGB 영상을 입력 받는 베이스 네트워크일 수 있다. 백본 네트워크는 영상에서 객체의 관절의 위치 정보를 추정하도록 미리 훈련된 모델일 수 있다. 일례로, 백본 네트워크는 MobileNet (또는 MobileNetV2) 모델일 수 있고 블록 12까지만이 추론 모델(900)을 위한 백본 네트워크로서 사용될 수 있다. 추론 모델(900)은 효율적인 피처(feature) 추출을 위해 pointwise 및 depthwise CNN 기반의 구조를 사용하여 구현될 수 있다. 또한, 추론 모델(900)은 디컴포지션(decomposition) 및 스킵 커넥션(skip connection)과 같은 경량화를 위한 구조를 포함할 수 있다. J는 관절을 나타낼 수 있고, BL은 뼈의 길이(Bone Lenth)를 나타낼 수 있다. 중간 피처인 △X, △Y 및 △Z는 BL에 해당하는 피처를 위해 사용될 수 있다. BL에 해당하는 피처는 루트-상대 3차원 포즈(root-relative 3D human pose)를 추정하기 위한 보조적인 단서가 될 수 있다. 본 발명의 일 실시예에서는, 루트로서 골반을 사용하며, 이 경우 BL에 해당하는 피처는 골반을 기준으로 하는 상대좌표계 상의 3차원 포즈가 될 수 있다. 추론 모델(900)은 결과적으로 각 관절에 대한 히트맵(H)과, 각 좌표축에 대한 위치맵들(X, Y, Z)을 생성(추정)할 수 있다.
아래에서, 3차원 포즈를 추정하기 위한 추론 모델(900)에 대해 더 자세하게 설명한다.
객체의 3차원 포즈 추정에 있어서는, 주어진 RGB 영상(입력 영상) I로부터 3차원 포즈 P3D가 추정된다. P3D∈R3×J는 객체의 J 관절의 루트-상대 3차원 위치(root-relative 3D position)를 나타낼 수 있다. 실시예의 추론 모델(900)은 저전력 장치(예컨대, 스마트 폰, 임베디드 시스템 등)에서 탑재되어 실행될 수 있다. 이러한 추론 모델(900)은 객체에 대해 3차원 완전체의 모션을 위한 15개의 관절(J = 15)를 추정할 수 있다.
실시예의 추론 모델(900)은 객체의 각 관절에 대한 히트맵 및 위치맵에 대해 지식 증류를 사용하여 훈련될 수 있다. 히트맵 및 위치맵은 2차원의 공간 정보를 나타내는 바 지식 증류를 적용하기가 용이할 수 있다. 추론 모델(900)은 모든 관절 j∈1...J에 대해 히트맵과 위치맵을 생성할 수 있다. 도시된 것처럼, 추론 모델(900)은 일례로, MobileNetV2 모델의 12 블록까지를 백본 네트워크로 사용할 수 있고, 추가로 심층 CNN 레이어들을 포함할 수 있다. 추론 모델(900)은 뼈의 길이 피처를 추론 모델(900)에 추가함으로써 루트-상대 위치맵을 추정하기 위한 명확한 단서를 획득할 수 있다. 예컨대, 뼈의 길이 피처는 아래의 수학식 2와 같이 표현될 수 있다.
[수학식 2]
Figure pat00006
△Xj, △Yj, △Zj는 추론 모델(900)에서의 중간 피처일 수 있다. 효율적인 계산을 위해, 뼈의 길이 피처는 L2 거리 기반의 방정식(equation) 대신에 L1 거리를 사용하여 계산될 수 있다. 계산된 피처들은 다른 중간 피처들과 결합하여 최종 출력을 계산하기 위해 활용될 수 있다.
추론 모델(900)은 훈련에 있어서 객체의 경계 상자(bounding box)에 기초하여 크롭된 영상을 사용할 수 있다. 이는 런타임에서 영상의 크기에 영향을 받는 추론 모델(900)의 성능에 영향을 미칠 수 있다. 추론 모델(900)이 탑재되는 모바일 디바이스에서 실시간 처리를 유지하면서 성능의 문제를 해결하기 위해, 예컨대, 버퍼 면적 0.2× 수직 높이 0.4× 수평 폭에 기반하는 2차원 히트맵의 초기 몇 개의 프레임들에서 발견되는 키포인트(K)에 기반하여 경계 상자를 획득할 수 있고, 0.75의 모멘텀을 갖는 이전의 프레임을 사용하여 이를 지속적으로 추적할 수 있다. 스케일을 정상화하기 위해, 경계 상자에 기초하여 크롭된 영상은 256×256으로 크기가 조정되어 추론 모델(900)에 대한 입력으로 사용될 수 있다.
아래에서는, 추론 모델(900)을 훈련함에 있어서, 교사 학생 학습에 기초한 추가 지도를 위한 손실 함수에 대해 설명한다.
추론 모델(900)을 훈련시키기 위한 손실 함수는 히트맵 손실 함수(LHM) 및 위치맵 손실 함수(LLM)를 포함할 수 있다. 히트맵 손실 함수(LHM) 및 위치맵 손실 함수(LLM)는 각각 아래의 수학식 3 및 4로 표현될 수 있다.
[수학식 3]
Figure pat00007
[수학식 4]
Figure pat00008
여기서, Hj
Figure pat00009
는 각각 추론 모델(900)(즉, 학생 모델)에 의해 추정된 j번째 관절의 히트맵과 실측 히트맵(즉, 정답(ground truth))을 나타낼 수 있다.
Figure pat00010
는 Hadamard product(아다마르 곱)을 나타낼 수 있고, Lj는 추론 모델(900)에 의해 추정된 j번째 관절의 위치맵을 나타낼 수 있다.
Figure pat00011
는 j번째 관절의 실측 위치맵(즉, 정답(ground truth))을 나타낼 수 있다. GT와 T는 각각 정답과 교사 모델(920)에 의해 추정된 결과를 나타낼 수 있다. 즉,
Figure pat00012
Figure pat00013
는 각각 교사 모델(920)에 의해 추정된 j번째 관절의 히트맵 및 위치맵을 나타낼 수 있다.
Figure pat00014
는 정답과 교사 모델 손실 조건 사이의 혼합 요소(즉, 혼합비)를 나타낼 수 있고, 예컨대, 0.5로 설정될 수 있다. 교사-학생 학습은 각 미니-배치(mini-batch)에서 전체의 훈련 과정에 걸쳐서 수행될 수 있다. 추론 모델(900)에 대한 훈련이 완료된 후, 교사 모델(920)의 지식으로 학습된 학생 모델인 추론 모델(900)이 모바일 디바이스와 같은 컴퓨터 시스템(100)에 탑재되어 객체의 3차원 포즈 추정을 위해 사용될 수 있다.
예컨대, 도 8을 참조하여 전술된 단계(820)에서, 학생 모델(900)에 대해 훈련용 2차원의 입력 영상(910)에 포함된 객체의 복수의 관절들에 대한 위치 정보를 학습시킴에 있어서, 학생 모델(900)은 학생 모델(900)에 의해 추정된 복수의 관절들의 각 관절에 대한 제1 히트맵(Hj)과 해당 각 관절에 대한 정답에 해당하는 제2 히트맵(
Figure pat00015
) 간의 차, 및 제1 히트맵(Hj)과 교사 모델(920)에 의해 추정된 각 관절에 대한 제3 히트맵(
Figure pat00016
) 간의 차에 기반하여 계산되는 제1 손실 함수(LHM)와; 학생 모델(900)에 의해 추정된 각 관절에 대한 제1 위치맵(Lj)과 해당 각 관절에 대한 정답(ground truth)에 해당하는 제2 위치맵(
Figure pat00017
) 간의 차, 및 제1 위치맵(Lj)과 교사 모델(920)에 의해 추정된 각 관절에 대한 제3 위치맵(
Figure pat00018
) 간의 차에 기반하여 계산되는 제2 손실 함수(LLM)를 사용하여 훈련될 수 있다. 이 때, 제1 히트맵(Hj)과 제2 히트맵(
Figure pat00019
) 간의 차, 및 제1 히트맵(Hj)과 제3 히트맵(
Figure pat00020
) 간의 차는 소정의 혼합비(
Figure pat00021
:1-
Figure pat00022
)로 제1 손실 함수(LHM)에 포함될 수 있다. 또한, 제1 위치맵(Lj)과 제2 위치맵(
Figure pat00023
) 간의 차, 및 제1 위치맵(Lj)과 제3 위치맵(
Figure pat00024
) 간의 차는 동일한 소정의 혼합비(
Figure pat00025
:1-
Figure pat00026
)로 제2 손실 함수(LLM)에 포함될 수 있다. 상기 소정의 혼합비는 예컨대, 0.5일 수 있다. 다만, 제1 손실 함수(LHM)와 연관된 혼합비 및 제2 손실 함수(LLM)와 연관된 혼합비는 서로 상이하게 설정될 수도 있다.
추론 모델(900)에 의해 추정된 관절에 대한 위치 정보는 전술된 후처리 방법에 의해 후처리될 수 있다. 이와 관련하여 중복되는 설명은 생략한다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.

Claims (19)

  1. 컴퓨터 시스템을 사용하여, 입력 영상에 포함된 객체의 3차원 포즈 추정을 위한 데이터를 생성하는 방법에 있어서,
    적어도 하나의 움직이는 객체를 포함하는 입력 영상을 획득하는 단계;
    상기 객체의 복수의 관절들 각각에 대한 위치 정보를 추정하기 위해 미리 훈련된 추론 모델을 사용하여, 상기 입력 영상에 포함된 상기 객체의 복수의 관절들 각각에 대한 위치 정보를 추정하는 단계; 및
    상기 추정된 위치 정보를 사용하여 상기 객체의 움직임을 나타내는 애니메이션 데이터를 생성하는 단계
    를 포함하는, 3차원 포즈 추정을 위한 데이터를 생성하는 방법.
  2. 제1항에 있어서,
    상기 추론 모델은,
    소정의 훈련용 영상으로부터 상기 훈련용 영상에 포함된 객체의 복수의 관절들에 대한 위치 정보를 추정하도록 미리 훈련된 교사 모델을 이용하여 학습된 것으로,
    상기 추론 모델은 상기 교사 모델에 비해 더 경량화된 모델이고,
    상기 추론 모델이 입력 영상에 포함된 객체의 복수의 관절들에 대한 위치 정보를 학습함에 있어서, 상기 교사 모델에 의한 입력 영상에 포함된 객체의 복수의 관절들에 대한 위치 정보의 추정 결과가 손실 함수의 계산에 사용되는, 3차원 포즈 추정을 위한 데이터를 생성하는 방법.
  3. 제1항에 있어서,
    상기 애니메이션 데이터에 기반하여, 상기 복수의 관절들을 가상의 캐릭터에 맵핑함으로써, 상기 객체의 움직임을 모방하는 가상의 캐릭터를 생성하는 단계
    를 더 포함하는, 3차원 포즈 추정을 위한 데이터를 생성하는 방법.
  4. 제1항에 있어서,
    상기 위치 정보를 추정하는 단계는,
    상기 복수의 관절들의 각각의 관절에 대한 히트맵 및 위치맵을 생성하는 단계; 및
    상기 히트맵 및 상기 위치맵에 기반하여 상기 각각의 관절에 대한 3차원 좌표 정보를 상기 위치 정보로서 추정하는 단계
    를 포함하고,
    상기 히트맵은 상기 각각의 관절이 상기 히트맵 내의 각 픽셀 위치에 존재할 가능성(likelihood)을 나타내고,
    상기 위치맵은 상기 각각의 관절에 대해 x축 방향의 위치를 나타내는 위치맵, y축 방향의 위치를 나타내는 위치맵 및 z축 방향의 위치를 나타내는 위치맵을 포함하는, 3차원 포즈 추정을 위한 데이터를 생성하는 방법.
  5. 제1항에 있어서,
    상기 추정된 위치 정보 중 잘못 추정된 위치 정보를 결정하는 단계; 및
    상기 잘못 추정된 위치 정보를 보정하는 단계
    를 더 포함하는, 3차원 포즈 추정을 위한 데이터를 생성하는 방법.
  6. 제4항에 있어서,
    상기 각각의 관절에 대한 3차원 좌표 정보에 대응하는 상기 각각의 관절에 대한 히트맵 상의 값이 소정의 임계값 미만인지 여부를 판정하는 단계;
    상기 3차원 좌표 정보에 대응하는 상기 히트맵 상의 값이 상기 소정의 임계값 미만이면, 상기 3차원 좌표 정보를 잘못 추정된 것으로 판정하는 단계; 및
    상기 잘못 추정된 것으로 판정된 3차원 좌표 정보를 보정하는 단계
    를 더 포함하는, 3차원 포즈 추정을 위한 데이터를 생성하는 방법.
  7. 제1항에 있어서,
    상기 추정된 위치 정보는 상기 복수의 관절들의 각각의 관절에 대한 3차원 좌표 정보를 포함하고,
    상기 애니메이션 데이터는, 상기 3차원 좌표 정보에 기반한 상기 각각의 관절에 대한 3차원 위치 정보 및 상기 각각의 관절에 대해 연속적으로 추정되는 3차원 좌표 정보에 기반한 상기 각각의 관절에 대한 회전 정보를 포함하는, 3차원 포즈 추정을 위한 데이터를 생성하는 방법.
  8. 제7항에 있어서,
    상기 각각의 관절에 대한 회전 정보 중 비정상 회전 상태를 나타내는 회전 정보가 있는지 여부를 판정하는 단계; 및
    상기 비정상 회전 상태를 나타내는 것으로 판정된 회전 정보를 보정하는 단계
    를 더 포함하는, 3차원 포즈 추정을 위한 데이터를 생성하는 방법.
  9. 제8항에 있어서,
    상기 판정하는 단계는, 상기 각각의 관절에 대한 회전 정보가 상기 객체의 정상적인 움직임에 해당하는 것으로 기 설정된 각도의 범위 내에 있지 않은 경우 비정상 회전 상태로 판정하는, 3차원 포즈 추정을 위한 데이터를 생성하는 방법.
  10. 제1항에 있어서,
    상기 입력 영상을 촬영하기 위해 사용된 카메라의 초점 거리 및 상기 복수의 관절들 중 적어도 하나에 대해 추정된 위치 정보에 기반하여, 상기 객체의 글로벌 위치를 나타내는 글로벌 위치 정보를 계산하는 단계
    를 더 포함하고,
    상기 글로벌 위치 정보에 기반하여 상기 객체의 상기 입력 영상 내에서의 위치 이동이 추정되는, 3차원 포즈 추정을 위한 데이터를 생성하는 방법.
  11. 제1항에 있어서,
    상기 입력 영상은 복수의 객체들을 포함하고,
    상기 복수의 객체들과 연관된 컨피던스 맵을 생성하는 단계
    를 더 포함하고,
    상기 컨피던스 맵은 상기 복수의 객체들의 각 객체의 복수의 관절들 각각과 연관된 벡터 정보를 포함하고,
    상기 위치 정보를 추정하는 단계는, 상기 컨피던스 맵을 사용하여 상기 각 객체의 복수의 관절들 각각에 대한 위치 정보를 상기 복수의 객체들 중 다른 객체와 구분하여 추정하는, 3차원 포즈 추정을 위한 데이터를 생성하는 방법.
  12. 제3항에 있어서,
    상기 가상의 캐릭터를 생성하는 단계는, 상기 애니메이션 데이터에 기반하여, 상기 복수의 관절들을 복수의 가상의 캐릭터들의 각각에 맵핑함으로써, 상기 객체의 움직임을 모방하는 복수의 가상의 캐릭터들을 생성하고,
    상기 생성된 복수의 가상의 캐릭터들의 각각은 사용자 단말에서 출력되는 출력 영상의 상이한 위치에서 배치되는, 3차원 포즈 추정을 위한 데이터를 생성하는 방법.
  13. 제1항에 있어서,
    상기 입력 영상은 복수의 객체들을 포함하고,
    상기 획득하는 단계는, 상기 입력 영상에서 복수의 객체들 중 하나의 객체를 포함하는 부분 영상을 획득하고,
    상기 복수의 객체들 중 하나의 객체를 포함하는 각 부분 영상에 대해 상기 추정하는 단계 및 상기 생성하는 단계는 병렬적으로 수행되거나, 상기 각 부분 영상 별로 순차적으로 수행되는, 3차원 포즈 추정을 위한 데이터를 생성하는 방법.
  14. 제3항에 있어서,
    상기 입력 영상은 복수의 객체들을 포함하고,
    상기 가상의 캐릭터를 생성하는 단계는, 상기 복수의 객체들의 각각의 복수의 관절들을 가상의 캐릭터에 맵핑함으로써, 상기 복수의 객체들의 움직임을 모방하는 복수의 가상의 캐릭터들을 생성하고,
    상기 생성된 복수의 가상의 캐릭터들의 각각은 사용자 단말에서 출력되는 출력 영상에서, 상기 사용자 단말의 사용자에 의한 상기 사용자 단말에 대한 조작에 따라 결정된 위치에서 배치되는, 3차원 포즈 추정을 위한 데이터를 생성하는 방법.
  15. 제1항 내지 제14항 중 어느 한 항의 방법을 수행하는 컴퓨터 판독 가능 기록 매체에 기록된 프로그램.
  16. 입력 영상에 포함된 객체의 3차원 포즈 추정을 위한 데이터를 생성하는 컴퓨터 시스템에 있어서,
    컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서
    를 포함하고,
    상기 적어도 하나의 프로세서는,
    적어도 하나의 움직이는 객체를 포함하는 입력 영상을 획득하고, 상기 객체의 복수의 관절들 각각에 대한 위치 정보를 추정하기 위해 미리 훈련된 추론 모델을 사용하여, 상기 입력 영상에 포함된 상기 객체의 복수의 관절들 각각에 대한 위치 정보를 추정하고, 상기 추정된 위치 정보를 사용하여 상기 객체의 움직임을 나타내는 애니메이션 데이터를 생성하는, 컴퓨터 시스템.
  17. 컴퓨터 시스템을 사용하여, 입력 영상에 포함된 객체의 3차원 포즈를 추정하기 위한 추론 모델을 구축하는 방법에 있어서,
    훈련용 영상에 포함된 객체의 복수의 관절들에 대한 위치 정보를 추정하도록 교사 모델을 훈련시키는 단계;
    상기 교사 모델에 의한 상기 훈련용 영상에 포함된 객체의 복수의 관절들에 대한 위치 정보의 추정의 결과에 기반하여, 상기 교사 모델보다 더 경량화된 모델인 상기 교사 모델의 학생 모델에 대해 상기 훈련용 영상에 포함된 객체의 복수의 관절들에 대한 위치 정보를 학습시키는 단계; 및
    상기 학습된 학생 모델을, 입력 영상에 포함된 객체의 3차원 포즈를 추정하기 위한 추론 모델로서 구축하는 단계
    를 포함하는, 추론 모델을 구축하는 방법.
  18. 제17항에 있어서,
    상기 학생 모델에 대해 상기 훈련용 영상에 포함된 객체의 복수의 관절들에 대한 위치 정보를 학습시키는 단계에 있어서,
    상기 학생 모델은,
    상기 학생 모델에 의해 추정된 상기 복수의 관절들의 각각의 관절에 대한 제1 히트맵과 상기 각각의 관절에 대한 정답에 해당하는 제2 히트맵 간의 차 및 상기 제1 히트맵과 상기 교사 모델에 의해 추정된 상기 각각의 관절에 대한 제3 히트맵 간의 차에 기반하여 계산되는 제1 손실 함수, 및 상기 학생 모델에 의해 추정된 상기 각각의 관절에 대한 제1 위치맵과 상기 각각의 관절에 대한 정답에 해당하는 제2 위치맵 간의 차 및 상기 제1 위치맵과 상기 교사 모델에 의해 추정된 상기 각각의 관절에 대한 제3 위치맵 간의 차에 기반하여 계산되는 제2 손실 함수를 사용하여 훈련되는, 추론 모델을 구축하는 방법.
  19. 제18항에 있어서,
    상기 제1 히트맵과 상기 제2 히트맵 간의 차 및 상기 제1 히트맵과 상기 제3 히트맵 간의 차는 소정의 혼합비로 상기 제1 손실 함수에 포함되고,
    상기 제1 위치맵과 상기 제2 위치맵 간의 차 및 상기 제1 위치맵과 상기 제3 위치맵 간의 차는 상기 소정의 혼합비로 상기 제2 손실 함수에 포함되는, 추론 모델을 구축하는 방법.
KR1020200000699A 2020-01-03 2020-01-03 입력 영상에 포함된 객체의 3차원 포즈를 추정하기 위한 데이터를 생성하는 방법 및 장치와 3차원 포즈 추정을 위한 추론 모델 KR20210087680A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020200000699A KR20210087680A (ko) 2020-01-03 2020-01-03 입력 영상에 포함된 객체의 3차원 포즈를 추정하기 위한 데이터를 생성하는 방법 및 장치와 3차원 포즈 추정을 위한 추론 모델
JP2020212564A JP7178396B2 (ja) 2020-01-03 2020-12-22 入力映像に含まれた客体の3次元ポーズの推定のためのデータを生成する方法およびコンピュータシステム
US17/137,749 US11610331B2 (en) 2020-01-03 2020-12-30 Method and apparatus for generating data for estimating three-dimensional (3D) pose of object included in input image, and prediction model for estimating 3D pose of object
KR1020220090814A KR102562378B1 (ko) 2020-01-03 2022-07-22 입력 영상에 포함된 객체의 3차원 포즈를 추정하기 위한 데이터를 생성하는 방법 및 장치와 3차원 포즈 추정을 위한 추론 모델

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200000699A KR20210087680A (ko) 2020-01-03 2020-01-03 입력 영상에 포함된 객체의 3차원 포즈를 추정하기 위한 데이터를 생성하는 방법 및 장치와 3차원 포즈 추정을 위한 추론 모델

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020220090814A Division KR102562378B1 (ko) 2020-01-03 2022-07-22 입력 영상에 포함된 객체의 3차원 포즈를 추정하기 위한 데이터를 생성하는 방법 및 장치와 3차원 포즈 추정을 위한 추론 모델

Publications (1)

Publication Number Publication Date
KR20210087680A true KR20210087680A (ko) 2021-07-13

Family

ID=76655522

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020200000699A KR20210087680A (ko) 2020-01-03 2020-01-03 입력 영상에 포함된 객체의 3차원 포즈를 추정하기 위한 데이터를 생성하는 방법 및 장치와 3차원 포즈 추정을 위한 추론 모델
KR1020220090814A KR102562378B1 (ko) 2020-01-03 2022-07-22 입력 영상에 포함된 객체의 3차원 포즈를 추정하기 위한 데이터를 생성하는 방법 및 장치와 3차원 포즈 추정을 위한 추론 모델

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020220090814A KR102562378B1 (ko) 2020-01-03 2022-07-22 입력 영상에 포함된 객체의 3차원 포즈를 추정하기 위한 데이터를 생성하는 방법 및 장치와 3차원 포즈 추정을 위한 추론 모델

Country Status (3)

Country Link
US (1) US11610331B2 (ko)
JP (1) JP7178396B2 (ko)
KR (2) KR20210087680A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102349530B1 (ko) 2021-08-19 2022-01-10 (주)로코모스튜디오 인공지능 기반 애니메이션 객체의 자동 생성 방법, 장치 및 시스템
WO2023224250A1 (ko) * 2022-05-16 2023-11-23 삼성전자주식회사 전자 장치 및 이의 제어 방법

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109829849B (zh) * 2019-01-29 2023-01-31 达闼机器人股份有限公司 一种训练数据的生成方法、装置和终端
CN115222871B (zh) * 2021-08-31 2023-04-18 达闼科技(北京)有限公司 模型评估方法、装置、存储介质及电子设备
WO2023080806A1 (en) * 2021-11-08 2023-05-11 Nvidia Corporation Synthetic audio-driven body animation using voice tempo
CN114099234B (zh) * 2021-11-23 2023-08-22 复旦大学 一种用于辅助康复训练的智能化康复机器人数据处理方法及系统
US11861779B2 (en) * 2021-12-14 2024-01-02 Adobe Inc. Digital object animation using control points
CN114131611B (zh) * 2021-12-16 2023-10-24 华中科技大学 机器人重力位姿分解的关节误差离线补偿方法、系统及终端
CN114037066B (zh) * 2022-01-07 2022-04-12 南昌虚拟现实研究院股份有限公司 数据处理方法、装置、电子设备及存储介质
CN114494334B (zh) 2022-01-28 2023-02-03 北京百度网讯科技有限公司 调整三维姿态的方法、装置、电子设备及存储介质
WO2024014197A1 (ja) * 2022-07-14 2024-01-18 ソニーグループ株式会社 映像処理装置、映像処理方法およびプログラム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000194876A (ja) 1998-12-25 2000-07-14 Atr Media Integration & Communications Res Lab 仮想空間共有装置
JP2001126082A (ja) 1999-11-01 2001-05-11 Atr Media Integration & Communications Res Lab ネットワークを用いる映画制作装置
JP2003058907A (ja) 2001-08-09 2003-02-28 Univ Tokyo 木構造リンク系のポーズ及び動作を生成する方法
JP4148281B2 (ja) * 2006-06-19 2008-09-10 ソニー株式会社 モーションキャプチャ装置及びモーションキャプチャ方法、並びにモーションキャプチャプログラム
JP5604225B2 (ja) 2010-08-25 2014-10-08 Kddi株式会社 人体姿勢推定装置、人体姿勢推定方法およびコンピュータプログラム
KR101925879B1 (ko) 2012-11-02 2019-02-26 삼성전자주식회사 깊이 영상을 이용하는 동작 추정 방법 및 장치
US9384443B2 (en) * 2013-06-14 2016-07-05 Brain Corporation Robotic training apparatus and methods
JP2017138915A (ja) 2016-02-05 2017-08-10 株式会社バンダイナムコエンターテインメント 画像生成システム及びプログラム
JP6310516B2 (ja) * 2016-08-18 2018-04-11 株式会社カプコン ゲームプログラム及びゲームシステム
WO2019111932A1 (ja) * 2017-12-08 2019-06-13 日本電気株式会社 モデル学習装置、モデル学習方法及び記録媒体
WO2019167883A1 (ja) 2018-02-28 2019-09-06 富士フイルム株式会社 機械学習装置および方法
JP7241004B2 (ja) * 2019-11-19 2023-03-16 株式会社エヌ・ティ・ティ ピー・シー コミュニケーションズ 身体動作解析装置、身体動作解析システム、身体動作解析方法、及びプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102349530B1 (ko) 2021-08-19 2022-01-10 (주)로코모스튜디오 인공지능 기반 애니메이션 객체의 자동 생성 방법, 장치 및 시스템
WO2023224250A1 (ko) * 2022-05-16 2023-11-23 삼성전자주식회사 전자 장치 및 이의 제어 방법

Also Published As

Publication number Publication date
US11610331B2 (en) 2023-03-21
KR102562378B1 (ko) 2023-08-02
KR20220110453A (ko) 2022-08-08
US20210209788A1 (en) 2021-07-08
JP7178396B2 (ja) 2022-11-25
JP2021111380A (ja) 2021-08-02

Similar Documents

Publication Publication Date Title
KR102562378B1 (ko) 입력 영상에 포함된 객체의 3차원 포즈를 추정하기 위한 데이터를 생성하는 방법 및 장치와 3차원 포즈 추정을 위한 추론 모델
CN109636831B (zh) 一种估计三维人体姿态及手部信息的方法
US20210074006A1 (en) Image processing method and apparatus, image device, and storage medium
JP2021192250A (ja) 単眼カメラを用いたリアルタイム3d捕捉およびライブフィードバックのための方法およびシステム
CN108062776A (zh) 相机姿态跟踪方法和装置
US11417069B1 (en) Object and camera localization system and localization method for mapping of the real world
JP2022553167A (ja) 動画処理方法、動画処理装置、コンピュータプログラム及び電子機器
US11494987B2 (en) Providing augmented reality in a web browser
CN113706699B (zh) 数据处理方法、装置、电子设备及计算机可读存储介质
CN113034652A (zh) 虚拟形象驱动方法、装置、设备及存储介质
US11928778B2 (en) Method for human body model reconstruction and reconstruction system
US20200118333A1 (en) Automated costume augmentation using shape estimation
US11721056B2 (en) Motion model refinement based on contact analysis and optimization
KR20230150867A (ko) 얼굴 표정, 신체 자세 형상 및 의류 퍼포먼스 캡처를 위해 암시적 구별가능 렌더러를 사용하는 멀티뷰 신경 사람 예측
US20200410759A1 (en) Providing augmented reality target images in a web browser
US20210201502A1 (en) Method and system for motion prediction
KR20210057586A (ko) 블라인드 워터마킹 기술을 이용한 카메라 기반 측위 방법 및 시스템
Usabiaga et al. Global hand pose estimation by multiple camera ellipse tracking
CN114202606A (zh) 图像处理方法、电子设置、存储介质及计算机程序产品
Jian et al. Realistic face animation generation from videos
Lobo et al. Bioinspired visuo-vestibular artificial perception system for independent motion segmentation
US20230126829A1 (en) Point-based modeling of human clothing
US20240020901A1 (en) Method and application for animating computer generated images
Hong et al. A novel Gravity-FREAK feature extraction and Gravity-KLT tracking registration algorithm based on iPhone MEMS mobile sensor in mobile environment
Zhou et al. Tracking of Deformable Human Avatars through Fusion of Low-Dimensional 2D and 3D Kinematic Models

Legal Events

Date Code Title Description
E90F Notification of reason for final refusal
E601 Decision to refuse application
E801 Decision on dismissal of amendment