KR102438488B1 - 3d 마커리스 모션 캡처 기반 3d 아바타 생성 장치 및 방법 - Google Patents

3d 마커리스 모션 캡처 기반 3d 아바타 생성 장치 및 방법 Download PDF

Info

Publication number
KR102438488B1
KR102438488B1 KR1020220026578A KR20220026578A KR102438488B1 KR 102438488 B1 KR102438488 B1 KR 102438488B1 KR 1020220026578 A KR1020220026578 A KR 1020220026578A KR 20220026578 A KR20220026578 A KR 20220026578A KR 102438488 B1 KR102438488 B1 KR 102438488B1
Authority
KR
South Korea
Prior art keywords
user
skeleton
exercise
character
image
Prior art date
Application number
KR1020220026578A
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 KR1020220026578A priority Critical patent/KR102438488B1/ko
Application granted granted Critical
Publication of KR102438488B1 publication Critical patent/KR102438488B1/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
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • 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/20Movements or behaviour, e.g. gesture recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20036Morphological image processing
    • G06T2207/20044Skeletonization; Medial axis transform

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Psychiatry (AREA)
  • Social Psychology (AREA)
  • Human Computer Interaction (AREA)
  • Processing Or Creating Images (AREA)

Abstract

3D 아바타 생성 장치에 관한 것이며, 3D 아바타 생성 장치는 입력 영상의 분석을 통해 상기 입력 영상 내 사용자의 동작에 대응하는 스켈레톤(skeleton)을 생성하는 스켈레톤 생성부; 및 생성된 상기 스켈레톤을 이용하여 상기 입력 영상 내 사용자의 동작과 대응되는 동작을 수행하는 동적 3D 캐릭터를 생성하는 3D 캐릭터 생성부를 포함할 수 있다.

Description

3D 마커리스 모션 캡처 기반 3D 아바타 생성 장치 및 방법 {3D AVATAR CREATION APPARATUS AND METHOD BASED ON 3D MARKERLESS MOTION CAPTURE}
본원은 3D 마커리스 모션 캡처에 기반한 3D 아바타 생성 장치 및 방법에 관한 것이다.
모션캡처(Motion Capture)는 몸에 센서를 부착시키거나, 적외선을 이용하는 등의 방법으로 인체의 움직임을 디지털 형태로 기록하는 작업을 말한다. 미디어 쪽에서는 의미를 축소시켜 모션캡처를 통해 컴퓨터 그래픽(computer graphic, CG) 애니메이션(여기서, CG 애니메이션은 컴퓨터 그래픽 소프트웨어를 이용해 제작되는 애니메이션으로서, 3D 애니메이션으로도 불림) 등의 형태로 기록 및 가공하는 기술을 의미한다. 다시 말해, 모션 캡처 시스템은 실제 오브젝트(object)의 움직임(movement)을 캡처하고 거기에 생명을 불어 넣는 방법으로서 컴퓨터로 생성된 오브젝트에 맵핑(mapping)시키는데 사용되며, 이는 흔히 CG 애니메이션을 생성하는 소스 데이터(source data)로서 사용되는 인물의 디지털 표현을 창출하기 위한 동영상과 비디오 게임의 제작에 사용된다.
이처럼 대상 생물체의 주요 관절의 움직임을 얻는 모션캡처는 일반적으로 대상 생물체를 촬영한 다시점 영상을 분석하여 획득하게 된다. 모션캡처 방법 중 주로 활용되는 방법은 수작업으로 영상 내의 관절 좌표를 구하는 방법, 마커를 사용하는 마커기반 모션캡처, 마커 없이 3차원 형상을 직접 획득한 뒤 관절 지점을 찾는 마커리스(Markerless) 모션캡처 등이 있다.
여기서, 수작업으로 관절 지점을 찾는 방법은 많은 작업시간을 필요로 하는 단점이 있다. 즉, 대상체의 순간 운동 속도를 고려하면 관측 데이터는 대부분 고속카메라를 사용하여 촬영된 영상인데, 이러한 영상은 각 카메라에서 1초에 100프레임 이상이 획득된다. 따라서 수작업으로 관절지점을 찾는 방법은 너무 많은 시간이 소요되는 단점이 있다.
또한 마커를 사용하는 방법은 일예로 대상 생물체의 크기가 매우 작을 경우 적외선 마커를 붙이기 힘든 문제가 있고, 또한 마커를 붙이는 행위 자체가 대상 생물체의 움직임을 경직시키게 하여 올바른 실험데이터를 얻기 힘들다는 문제점이 있다.
상술한 문제점들에 의해, 관련 분야에서는 마커 없이 관절 지점을 찾을 수 있는 마커리스 모션캡처 기술에 대한 연구 개발이 활발히 이루어지고 있다.
마커리스(Markerless) 모션캡처의 일반적인 방법으로는 실루엣 해석을 통한 형상 복원방식(Shape from shilhouette)이 있다. 이는 여러 대의 카메라로 촬영한 영상에서 대상 생물체의 실루엣을 획득하고 이를 3차원 공간상에 역영사(back-projection) 하여 공간상의 교차 공간을 획득하는 방법으로서, 이러한 방법을 시각체법(visual hull) 또는 공간조각법(space carving)이라고도 한다.
그런데, 실루엣 정보를 사용하는 공간조각법, 시각체법은 보통 실험 대상 주위에 다수의 카메라를 배치하여 다시점 영상을 획득하며, 카메라를 많이 사용할수록 3차원 복원 품질이 좋아진다. 그러나 카메라의 수가 많아지면 시간당 저장할 영상의 양이 많아져 시스템이 거대해진다는 문제가 있다. 또, 공간조각법이나 시각체법은 자기폐색(self occlusion) 문제가 나타나며 이를 해결하기 위해 각 영상에서 색상 매칭을 수행하는 단위색차조각법 등이 있지만 관측대상물의 부위별 색상 차이가 크지 않을 경우에는 색상 매칭이 올바르게 이루어지지 않는다는 문제가 있다.
즉, 종래의 마커리스 모션캡처 기술은 다수의 카메라의 배치로 인해 시스템 크기가 커지게 되고, 복잡한 과정을 필요로 하며, 정밀한 모션 추적이 불가능함에 따라 생성된 3D 애니메이션(3D 캐릭터, 3D 아바타)이 부자연스럽게 동작하는 것과 같이 품질이 떨어지는 등 다양한 문제들이 존재한다.
본원의 배경이 되는 기술은 한국등록특허공보 제10-1250607호에 개시되어 있다.
본원은 전술한 종래 기술의 문제점을 해결하기 위한 것으로서, 종래의 마커리스 모션캡처 기술이 갖는 문제점(즉, 다수의 카메라의 배치로 인해 시스템 크기가 커지게 되고, 복잡한 과정을 필요로 하며, 정밀한 모션 추적이 불가능함에 따라 생성된 3D 애니메이션이 부자연스럽게 동작하는 것과 같이 품질이 떨어지는 등 다양한 문제들)을 해소할 수 있는 3D 마커리스 모션 캡처에 기반한 3D 아바타 생성 장치 및 방법을 제공하려는 것을 목적으로 한다.
다만, 본원의 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
상기한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본원의 일 실시예에 따른 3D 아바타 생성 장치는, 입력 영상의 분석을 통해 상기 입력 영상 내 사용자의 동작에 대응하는 스켈레톤(skeleton)을 생성하는 스켈레톤 생성부; 및 생성된 상기 스켈레톤을 이용하여 상기 입력 영상 내 사용자의 동작과 대응되는 동작을 수행하는 동적 3D 캐릭터를 생성하는 3D 캐릭터 생성부를 포함할 수 있다.
또한, 상기 스켈레톤 생성부는, 상기 사용자의 몸 동작에 대한 키포인트를 기반으로 상기 몸 동작에 대응하는 제1 스켈레톤을 생성하고, 상기 사용자의 손 동작에 대한 키포인트를 기반으로 상기 손 동작에 대응하는 제2 스켈레톤을 생성하며, 상기 3D 캐릭터 생성부는, 상기 제1 스켈레톤과 상기 제2 스켈레톤을 결합한 통합 스켈레톤을 이용하여 상기 동적 3D 캐릭터를 생성할 수 있다.
또한, 상기 3D 캐릭터 생성부는, 상기 입력 영상의 제1 스켈레톤과 이전 영상의 제1 스켈레톤 간의 비교를 통해 상기 제1 스켈레톤의 변위 값을 보정하고, 상기 제1 스켈레톤 내 키포인트 각각의 트랜스폼 값을 저장하고, 보정된 상기 변위 값의 움직임 각도를 계산하여 3D 캐릭터의 관절을 상기 트랜스폼 값에 대응되도록 회전시킴으로써 상기 동적 3D 캐릭터를 생성할 수 있다.
또한, 상기 3D 캐릭터 생성부는, 상기 입력 영상의 제2 스켈레톤과 이전 영상의 제2 스켈레톤 간의 비교를 통해 상기 제2 스켈레톤의 변위 값을 보정하고, 상기 제2 스켈레톤 내 키포인트 각각의 트랜스폼 값을 저장하고, 보정된 상기 변위 값의 움직임 각도를 계산하여 3D 캐릭터의 관절을 상기 트랜스폼 값에 대응되도록 회전시킴으로써 상기 동적 3D 캐릭터를 생성할 수 있다.
상술한 과제 해결 수단은 단지 예시적인 것으로서, 본원을 제한하려는 의도로 해석되지 않아야 한다. 상술한 예시적인 실시예 외에도, 도면 및 발명의 상세한 설명에 추가적인 실시예가 존재할 수 있다.
전술한 본원의 과제 해결 수단에 의하면, 3D 마커리스 모션 캡처에 기반한 3D 아바타 생성 장치 및 방법을 제공함으로써, 종래의 마커리스 모션캡처 기술이 갖는 문제점(즉, 다수의 카메라의 배치로 인해 시스템 크기가 커지게 되고, 복잡한 과정을 필요로 하며, 정밀한 모션 추적이 불가능함에 따라 생성된 3D 애니메이션이 부자연스럽게 동작하는 것과 같이 품질이 떨어지는 등 다양한 문제들)을 효과적으로 해소할 수 있다.
전술한 본원의 과제 해결 수단에 의하면, 단일 카메라로 획득된 영상(입력 영상)만을 이용해 사용자의 동작과 대응되는 동작을 수행하는 동적 3D 캐릭터를 생성하여 제공할 수 있는바, 시스템 크기를 줄이면서도 단순한 과정을 통해, 사용자의 동작(특히나 몸 동작과 손 동작)을 정밀하게 똑같이 따라하는 고품질의 3D 캐릭터를 제공할 수 있다.
전술한 본원의 과제 해결 수단에 의하면, 사용자가 취하는 동작을 똑같이 따라하는 3D 캐릭터로서, 보다 자연스럽고 부드러운 움직임을 갖는 3D 캐릭터를 생성하여 제공할 수 있다.
다만, 본원에서 얻을 수 있는 효과는 상기된 바와 같은 효과들로 한정되지 않으며, 또 다른 효과들이 존재할 수 있다.
도 1은 본원의 일 실시예에 따른 3D 마커리스 모션 캡처 기반 3D 아바타 생성 장치를 포함하는 3D 아바타 생성 시스템의 개략적인 구성을 나타낸 도면이다.
도 2 내지 도 6은 본원의 일 실시예에 따른 3D 마커리스 모션 캡처 기반 3D 아바타 생성 장치를 설명하기 위한 도면이다.
도 7은 본원의 일 실시예에 따른 3D 마커리스 모션 캡처 기반 3D 아바타 생성 장치에 의해 제공되는 운동 서비스를 설명하기 위한 도면이다.
도 8은 본원의 일 실시예에 따른 3D 마커리스 모션 캡처 기반 3D 아바타 생성 장치에서 기기 제어부가 복수의 카메라를 선택적으로 ON/OFF 제어하는 경우를 설명하기 위한 도면이다.
도 9는 본원의 일 실시예에 따른 3D 마커리스 모션 캡처 기반 3D 아바타 생성 장치에서 기기 제어부가 복수의 카메라를 선택적으로 ON/OFF 제어하는 경우를 설명하기 위한 다른 도면이다.
도 10은 본원의 일 실시예에 따른 3D 마커리스 모션 캡처 기반 3D 아바타 생성 방법에 대한 동작 흐름도이다.
아래에서는 첨부한 도면을 참조하여 본원이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본원의 실시예를 상세히 설명한다. 그러나 본원은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본원을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
본원 명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결" 또는 "간접적으로 연결"되어 있는 경우도 포함한다.
본원 명세서 전체에서, 어떤 부재가 다른 부재 "상에", "상부에", "상단에", "하에", "하부에", "하단에" 위치하고 있다고 할 때, 이는 어떤 부재가 다른 부재에 접해 있는 경우뿐 아니라 두 부재 사이에 또 다른 부재가 존재하는 경우도 포함한다.
본원 명세서 전체에서, 어떤 부분이 어떤 구성 요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다.
도 1은 본원의 일 실시예에 따른 3D 마커리스 모션 캡처 기반 3D 아바타 생성 장치(10)를 포함하는 3D 아바타 생성 시스템(1)의 개략적인 구성을 나타낸 도면이다.
이하에서는 설명의 편의상, 본원의 일 실시예에 따른 3D 아바타 생성 장치(즉, 3D 마커리스 모션 캡처 기반 3D 아바타 생성 장치)(10)를 본 장치(10)라 하고, 본원의 일 실시예에 따른 3D 아바타 생성 시스템(즉, 3D 마커리스 모션 캡처 기반 3D 아바타 생성 시스템)(1)을 본 시스템(1)이라 하기로 한다.
도 1을 참조하면, 본 시스템(1)은 본 장치(10), 사용자(20)가 소지한 사용자 단말(30)을 포함할 수 있다.
본 장치(10)는 사용자 단말(30)과 네트워크(40)를 통해 연동되어 데이터를 송수신할 수 있다. 네트워크(40)는 일예로 3GPP(3rd Generation Partnership Project) 네트워크, LTE(Long Term Evolution) 네트워크, WIMAX(World Interoperability for Microwave Access) 네트워크, 인터넷(Internet), LAN(Local Area Network), Wireless LAN(Wireless Local Area Network), WAN(Wide Area Network), PAN(Personal Area Network), 블루투스(Bluetooth) 네트워크, NFC(Near Field Communication) 네트워크, 위성 방송 네트워크, 아날로그 방송 네트워크, DMB(Digital Multimedia Broadcasting) 네트워크 등을 포함할 수 있으나, 이에 한정된 것은 아니고, 다양한 유/무선 통신 네트워크를 포함할 수 있다.
사용자(20)는 본 장치(10)(혹은 본 장치에 의해 제공되는 앱, 플랫폼 등)를 이용하는 사용자를 의미할 수 있다. 사용자(20)는 이용자 등으로 달리 지칭될 수 있다.
사용자 단말(30)은 사용자(20)가 소지한 단말을 의미하는 것으로서, 휴대단말, 이동단말 등으로 달리 표현될 수 있다. 사용자 단말(30)은 일예로 PCS(Personal Communication System), GSM(Global System for Mobile communication), PDC(Personal Digital Cellular), PHS(Personal Handyphone System), PDA(Personal Digital Assistant), IMT(International Mobile Telecommunication)-2000, CDMA(Code Division Multiple Access)-2000, W-CDMA(WCode Division Multiple Access), Wibro(Wireless Broadband Internet) 단말, 스마트폰(Smartphone), 스마트패드(SmartPad), 태블릿 PC, 노트북, 웨어러블 디바이스, 데스크탑 PC 등과 같은 모든 종류의 유무선 통신 장치를 포함할 수 있으며, 이에 한정되는 것은 아니다.
일예로, 본 장치(10)는 사용자 단말(30)에 포함된 장치의 형태로 마련될 수 있다. 이러한 경우, 본 장치(10)는 사용자 단말(30)에 설치되는 프로그램 또는 애플리케이션(어플, 앱)의 형태로 구현 가능한 장치일 수 있다. 달리 말해, 본 장치(10)를 통해 제공되는 3D 마커리스 모션 캡처 기반 3D 아바타 생성 방법은 일예로 프로그램 또는 애플리케이션의 형태로 구현되어 사용자 단말(30)을 통해 사용자(20)에게 제공될 수 있다. 다만, 이에 한정되는 것은 아니고, 다른 일예로 본 장치(10)는 사용자 단말(30)과 데이터 송수신이 가능한 서버의 형태로 마련될 수 있다. 서버의 형태로 마련된 본 장치(10)는, 본 장치(10)에 의해 제공되는 애플리케이션에 접속한 사용자(20)의 사용자 단말(30)의 화면 표시를 제어할 수 있다. 도 1을 참조한 설명에서는 본 장치(10)가 일예로 서버의 형태로 마련되는 것을 예로 들어 설명하기로 하며, 이러한 경우 본 장치(10)는 서버, 3D 마커리스 모션 캡처 기반 3D 아바타 생성 서버 등으로 달리 지칭될 수 있다.
또한, 본원에서 본 장치(10)에 의해 제공되는 애플리케이션(어플, 앱)은 3D 마커리스 모션 캡처 기반 3D 아바타 생성 애플리케이션으로서 본원에서 본 앱이라 지칭될 수 있다. 이에 따르면, 본 장치(10)는 본 앱을 설치한 사용자(20)의 사용자 단말(30)의 동작(일예로 화면 표시 동작 등)을 제어할 수 있다. 이러한 본 장치(10)는 본 앱의 제공을 통해 3D 마커리스 모션 캡처 기반 3D 아바타 생성 플랫품(본 플랫폼)을 제공할 수 있다.
본 장치(10)는 복수의 사용자의 단말 각각과 네트워크(40)를 통해 연동되어 데이터를 송수신할 수 있다. 즉, 본 장치(10)는 복수의 사용자가 이용할 수 있다. 여기서, 복수의 사용자에는 사용자(20)가 포함될 수 있고, 복수의 사용자 중 사용자(20)를 제외한 사용자들은 본원에서 타 사용자라 지칭될 수 있다.
이하 본원을 설명함에 있어서, 사용자(20)의 사용자 단말(30)에 대하여 설명된 내용은 이하 생략된 내용이라 하더라도 복수의 사용자의 단말 각각(혹은 복수의 타 사용자의 단말 각각)에 대한 설명에도 동일하게 적용될 수 있다. 본 장치(10)에 대한 보다 구체적인 설명은 다음과 같다. 이하에서는, 본 장치(10)에 의해 제공되는 3D 마커리스 모션 캡처 기반 3D 아바타 생성 기술(방법)을 설명의 편의상 본 기술이라 하기로 한다.
도 2 내지 도 6은 본원의 일 실시예에 따른 3D 마커리스 모션 캡처 기반 3D 아바타 생성 장치(10)를 설명하기 위한 도면이다. 특히나, 도 2는 본 장치(10)의 전체 흐름(즉, 본 기술의 전체 구현 알고리즘)을 설명하기 위한 도면이다. 도 3은 본 장치(10)에서 사용자의 몸 동작 구현을 위한 알고리즘을 설명하기 위한 도면이다. 도 4는 본 장치(10)에서 사용자의 손 동작 구현을 위한 알고리즘을 설명하기 위한 도면이다. 도 5는 본 장치(10)에서 사용자의 신체 동작(즉, 몸 동작과 손 동작이 결합된 전체의 신체 동작)의 구현을 위한 알고리즘을 설명하기 위한 도면이다. 도 6은 본 장치(10)에 생성된 동적 3D 캐릭터가 사용자 단말(30)의 화면에 제공된 예를 나타낸 도면이다.
도 1 내지 도 6을 참조하면, 본 장치(10)는 입력 영상의 분석을 통해 입력 영상 내 사용자의 동작에 대응하는 스켈레톤(skeleton)을 생성하고, 생성된 스켈레톤을 이용하여 입력 영상 내 사용자의 동작과 대응되는 동작을 수행하는(취하는) 동적 3D 캐릭터를 생성할 수 있다.
이때, 동적 3D 캐릭터를 생성하기 위해, 본 장치(10)는 유니티(UNITY) 엔진을 이용할 수 있다. 유니티 엔진은 본 기술을 시각화하기 위해 사용된 멀티 플랫폼 게임 엔진을 의미할 수 있다. 즉, 유니티 엔진은 멀티 플랫폼 프로그램 개발에 유용한 게임 엔진을 의미하며, 게임 소프트웨어를 만들기 위한 구성 요소로서 화면에 그려내는 그래픽 엔진, 물리현상을 계산하는 물리 엔진, 소리를 발생하는 오디오 엔진 등으로 이루어져 있을 수 있다.
본 장치(10)는 상술한 3개의 기술(그래픽 엔진, 물리 엔진, 오디오 엔진)을 포함하여 그 이상의 복합 기술을 이용함으로써 본 기술을 구현(개발)하여 제공할 수 있다. 본 장치(10)는 본 기술의 구현(개발)을 위해 다음의 솔루션을 이용할 수 있다.
본 장치(10)는 본 기술의 구현을 위해 사람의 각 관절을 오브젝트(Object)로 생성할 수 있다. 이를 위해, 본 장치(10)는 사람의 관절을 감지할 수 있는 솔루션으로서, 일예로 구글에서 무료로 상업적 이용이 가능한 라이브러리인 미디어파이프(Mediapipe)를 이용할 수 있다. 미디어파이프에서 제공하는 솔루션에는 얼굴 인식/감지(Face Detection), 얼굴 메쉬(face mesh), Iris, Hands, Instant Motion Tracking, Selfie Segmetation, Hair Segmetation, Object Detection, Objectron, Holistic, Pose 등 다양한 솔루션이 포함되어 있다.
본 장치(10)는 본 기술의 구현을 위해, 일예로 미디어파이프에서 제공하는 다양한 복수의 솔루션 중 핸드(Hands) 솔루션, 포즈(Pose) 솔루션 및 홀리스틱(Holistic) 솔루션을 이용할 수 있다. 여기서, 핸드 솔루션은 충실도가 높은(high-fidelity) 손 및 손가락 추적 솔루션을 의미한다. 포즈 솔루션은 충실도가 높은 신체 포즈(body pose) 추적을 위한 ML 솔루션을 의미한다. 홀리스틱 솔루션은 최적화된 얼굴, 손 및 포즈 구성요소를 포함하는 파이프라인 중 하나로서, 전체론적 추적이 가능하므로 모델이 얼굴 랜드마크와 함께 손 및 신체 포즈를 동시에 감지할 수 있다. 홀리스틱 솔루션의 주요 용도 중 하나는 얼굴과 손을 감지하고 핵심 포인트를 추출하여 컴퓨터 비전 모델에 전달하는 것이라 할 수 있다.
즉, 본 장치(10)는 본 기술의 구현을 위해, 입력 영상 내 사용자의 몸 동작 구현을 위한 포즈 솔루션, 입력 영상 내 사용자의 손 동작 구현을 위한 핸드 솔루션, 및 전술한 두 동작(즉, 사용자의 몸 동작과 손 동작)을 결합하기 위한 홀리스틱 솔루션을 이용할 수 있다.
포즈 솔루션은 사람의 몸 동작에 대한 키포인트(Key Points)를 생성하는 솔루션으로서, 이 솔루션으로는 사람의 몸의 동작에 대한 키포인트를 만들어 낼 수 있다. 핸드 솔루션은 사람의 손의 각 마디마다의 동작에 대한 키포인트를 생성하는 솔루션으로서, 이 솔루션으로는 사람의 손 부위에 대하여 좀 더 섬세한 손과 손가락의 움직임에 대한 키포인트를 만들어 낼 수 있다. 홀리스틱 솔루션은 포즈 솔루션과 핸드 솔루션으로부터 도출된 결과를 결합하여 하나의 결과로 만들어주는 솔루션을 의미할 수 있다.
본원에서 키포인트(Key Points)라 함은 인간(사람)의 관절 부위 혹은 랜드마크 부분을 의미할 수 있다. 본원에서 사람의 관절에 대한 키포인트(관절 부분에 대한 정보)는 오브젝트라 달리 지칭될 수 있다. 즉, 본 장치(10)에서는 사람의 관절마다 키포인트가 생성될 수 있고, 이러한 키포인트는 오브젝트라 달리 지칭될 수 있다. 또한, 본원에서 스켈레톤(skeleton)이라 함은 사람이 신체부위를 움직여 동작을 취하거나 자세를 취함에 있어서, 비교적 변형되지 않는(rigid) 신체부위들의 위치(즉, Pose point나 Hand point)와 그 부위들 사이의 연결정보(즉, Pose line 이나 hand line)를 기반으로 표현되는 정보로서, 이는 사람의 골격 정보(신체 골격 정보) 등으로 달리 지칭될 수 있다. 즉, 사람의 관절에 해당하는 키포인트를 연결한 집합을 스켈레톤이라 할 수 있다.
구체적으로, 본 장치(10)는 스켈레톤 생성부(11), 3D 캐릭터 생성부(12) 및 표시 제어부(13)를 포함할 수 있다.
스켈레톤 생성부(11)는 입력 영상의 분석을 통해 입력 영상 내 사용자의 동작에 대응하는 스켈레톤(skeleton)을 생성할 수 있다.
입력 영상은 일예로 사용자(20)가 자신이 소지한 사용자 단말(30)로 자신을 촬영함으로써 생성된 영상일 수 있으며, 이러한 입력 영상은 사용자 단말(30)로부터 획득되는 실시간 영상, 스트리밍 영상일 수 있다. 다만, 이에만 한정되는 것은 아니고, 입력 영상은 3D 아바타로 생성하고자 하는 대상을 촬영한 영상으로서, 사람을 포함하여 움직이는 모든 생명체(일예로, 강아지 등의 동물 등)를 대상으로 하여 해당 대상물(생명체)을 촬영한 영상일 수 있다.
스켈레톤 생성부(11)는 네트워크(40)를 통해 사용자 단말(30)로부터 획득된 영상을 입력 영상으로 인식하여, 입력 영상 내 사용자의 동작에 대응하는 스켈레톤(skeleton)을 생성할 수 있다.
스켈레톤 생성부(11)는 입력 영상에 대하여 미디어파이프에서 제공하는 포즈(Pose) 솔루션을 적용함으로써 입력 영상 내 사용자의 몸 동작(자세)에 대한 키포인트(포즈 키포인트, 혹은 포즈 오브젝트(Pose Object))를 생성할 수 있다. 이후, 스켈레톤 생성부(11)는 생성된 사용자의 몸 동작에 대한 키포인트(포즈 키포인트)를 기반으로 사용자의 몸 동작에 대응하는 스켈레톤을 제1 스켈레톤으로서 생성할 수 있다.
또한, 스켈레톤 생성부(11)는 입력 영상에 대하여 미디어파이프에서 제공하는 핸드(Hands) 솔루션을 적용함으로써 입력 영상 내 사용자의 손 동작(즉, 손과 손가락의 동작, 특히나 손과 손가락의 각 마디마다의 동작)에 대한 키포인트(핸드 키포인트, 혹은 핸드 오브젝트(Hand Object))를 생성할 수 있다. 이후, 스켈레톤 생성부(11)는 생성된 사용자의 손 동작에 대한 키포인트(핸드 키포인트)를 기반으로 사용자의 손 동작에 대응하는 스켈레톤을 제2 스켈레톤으로서 생성할 수 있다.
스켈레톤 생성부(11)에서 생성된 제1 스켈레톤과 제2 스켈레톤은 일예로 홀리스틱(Holistic) 솔루션에 의해 합쳐질 수 있으며, 제1 스켈레톤과 제2 스켈레톤이 합쳐진 스켈레톤은 본원에서 통합 스켈레톤이라 지칭될 수 있다.
다시 말해, 도 2를 참조하면, 스켈레톤 생성부(11)는 입력 영상에 대하여 포즈 솔루션과 핸드 솔루션을 각각 적용하고 그 결과를 홀리스틱 솔루션으로 제공할 수 있다. 즉, 입력 영상으로부터 포즈 솔루션과 핸드 솔루션이 각각 작동하여 홀리스틱 솔루션으로 합쳐질 수 있으며, 이에 따라 홀리스틱 솔루션 내에는 포즈 솔루션의 기능과 핸드 솔루션의 기능이 함께 포함되어 있을 수 있다. 스켈레톤 생성부(11)는 포즈 솔루션과 핸드 솔루션으로부터 입력 영상 내 사용자의 몸 동작에 해당하는 스켈레톤(즉, 제1 스켈레톤)과 입력 영상 내 사용자의 손과 손가락 동작에 해당하는 스켈레톤(즉, 제2 스켈레톤)을, 각 솔루션의 적용에 의해 생성된 키포인트(즉, 포즈 키포인트와 핸드 키포인트)를 기반으로 생성할 수 있다.
이때, 스켈레톤 생성부(11)는 입력 영상에 포즈 솔루션을 적용함으로써 입력 영상 내 사용자의 몸의 관절마다 키포인트(특히, 포즈 키포인트, 포즈 오브젝트)가 생성되면, 생성된 키포인트(포즈 키포인트)를 기반으로 사용자의 몸의 관절 부위들의 위치(즉, Pose point)와 각 관절 부위들의 위치들 사이의 연결정보(Pose line)을 이용하여 사용자의 몸 동작에 대한 스켈레톤(제1 스켈레톤)을 생성할 수 있다.
마찬가지로, 스켈레톤 생성부(11)는 입력 영상에 핸드 솔루션을 적용함으로써 입력 영상 내 사용자의 손과 손가락의 관절마다 키포인트(특히, 핸드 키포인트, 핸드 오브젝트)가 생성되면, 생성된 키포인트(핸드 키포인트)를 기반으로 사용자의 손과 손가락의 관절 부위들의 위치(즉, Hand point)와 각 관절 부위들의 위치들 사이의 연결정보(Hand line)을 이용하여 사용자의 손 동작에 대한 스켈레톤(제2 스켈레톤)을 생성할 수 있다.
이후, 3D 캐릭터 생성부(12)는 스켈레톤 생성부(11)에서 생성된 스켈레톤(즉, 제1 스켈레톤과 제2 스켈레톤)을 이용하여, 입력 영상 내 사용자의 각 관절에 해당하는 키포인트의 좌표 값을 기반으로 사원수(Quaternion)를 이동시켜 각 관절을 돌림으로써(Rotate), 입력 영상에 나오는 사람(사용자)과 똑같이 동작하는 3D 캐릭터를 동적 3D 캐릭터로서 생성할 수 있다.
3D 캐릭터 생성부(12)는 스켈레톤 생성부(11)에서 생성된 사용자의 동작에 대응하는 스켈레톤(즉, 제1 스켈레톤과 제2 스켈레톤)을 이용하여, 입력 영상 내 사용자의 동작과 대응되는 동작을 수행하는(취하는) 동적 3D 캐릭터를 생성할 수 있다. 동적 3D 캐릭터는 입력 영상 내 사용자와 똑같이 동작하는 3D 캐릭터를 의미할 수 있다. 3D 캐릭터 생성부(12)는 제1 스켈레톤과 제2 스켈레톤을 결합한 통합 스켈레톤을 이용하여 동적 3D 캐릭터를 생성할 수 있다.
구체적으로, 동적 3D 캐릭터를 생성하기 위해, 3D 캐릭터 생성부(12)는 도 3에 도시된 것과 같이 포즈 매치 알고리즘, 도 4에 도시된 것과 같이 핸드 매치 알고리즘 및 도 5에 도시되니 것과 같이 결합 알고리즘을 수행할 수 있다.
도 3을 참조하면, 포즈 매치 알고리즘과 관련하여 3D 캐릭터 생성부(12)는, 스켈레톤 생성부(11)에서 생성된 입력 영상의 제1 스켈레톤과 입력 영상 이전에 획득된 이전 영상의 제1 스켈레톤 간의 비교를 통해 입력 영상의 제1 스켈레톤(특히나, 제1 스켈레톤 내 사용자의 몸의 각 관절에 대응하는 포즈 키포인트)의 변위 값(제1 변위 값)을 보정할 수 있다. 이후, 3D 캐릭터 생성부(12)는 보정된 변위 값(제1 변위 값)을 기반으로 생성되는 3D 캐릭터(동적 3D 캐릭터)의 몸 부위에 대한 17개의 관절이 입력 영상 내 사용자의 키포인트(포즈 키포인트)와 1:1 매칭되어 움직일 수 있도록, 제1 스켈레톤 내 키포인트 각각의 트랜스폼(Transform, 변환) 값(이는 총 17개의 데이터(트랜스폼 값))을 저장할 수 있다. 이후, 3D 캐릭터 생성부(12)는 보정된 변위 값(제1 변위 값)의 움직임 각도를 계산하여 3D 캐릭터의 17개의 관절(몸 부위의 관절)을 앞서 저장된 트랜스폼 값(17개의 트랜스폼 값)에 대응되도록 회전시킴으로써 동적 3D 캐릭터를 생성할 수 있다. 이때, 제1 스켈레톤 내 키포인트 각각의 트랜스폼 값(즉, 17개의 트랜스폼 값)은 본원에서 제1 트랜스폼 값이라 지칭될 수 있다.
여기서, 본 장치(10)에는 복수의 영상이 시계열적으로 입력될 수 있다. 이때, 일예로 입력 영상은 현재 입력된 영상(현재 입력 영상)으로서 t시간에 획득된 영상일 수 있고, 이전 영상은 현재 입력 영상보다 이전에 획득된 영상으로서 t-1 시간에 획득된 영상일 수 있다. 본원에서 영상은 프레임이라는 용어로 달리 지칭될 수 있다.
또한, 사용자의 몸 부위의 17개의 관절에는 일예로 머리, 목(목 상단), 흉부, 골반, 발(오른쪽, 왼쪽 각각), 무릎(오른쪽, 왼쪽 각각), 둔부(오른쪽, 왼쪽 각각), 손목(오른쪽, 왼쪽 각각), 팔꿈치(오른쪽, 왼쪽 각각), 어깨(오른쪽, 왼쪽 각각) 등이 포함될 수 있다. 다만, 이에만 한정되는 것은 아니고, 본원에서 적용되는 몸 부위에 대한 관절(즉, 몸 관절 부위명 및 몸 관절 부위 개수)로는 종래에 이미 공지되었거나 향후 개발되는 다양한 몸(pose) 인식 기술과 관련하여 고려되는 몸 부위의 모든 관절이 적용될 수 있다.
다시 말해, 스켈레톤 생성부(11)에서 포즈 솔루션을 적용하여 생성(추출)된 키포인트(포즈 키포인트)로 제1 스켈레톤을 생성하고 나면, 이후 포즈 매치 알고리즘의 수행을 위해 3D 캐릭터 생성부(12)는, 생성된 제1 스켈레톤의 변위 값을 이전 영상(이전 프레임)의 스켈레톤의 변위 값과 비교를 하여 보정 알고리즘을 통해 생성된 제1 스켈레톤의 변위 값(제1 변위 값)을 보정할 수 있다. 그리고, 3D 캐릭터 생성부(12)는, 사용자 단말(30)의 화면에 표시하고자 하는 3D 캐릭터(즉, 화면에 움직일 3D 캐릭터인 동적 3D 캐릭터)(Humanoid avatar)의 17개의 관절을 입력 영상 내 사용자의 키포인트(포즈 키포인트)와 1대1로 매칭을 하여 움직일 수 있도록 제1 스켈레톤 내 각 키포인트(포즈 키포인트)의 트랜스폼 값을 본 장치(10) 내 DB(미도시)에 저장할 수 있다. 그리고, 3D 캐릭터 생성부(12)는, 보정된 변위 값(제1 변위 값)의 움직인 각도를 계산하여 관절의 트랜스폼의 회전(rotate)을 통해 3D 캐릭터의 17개 관절을 움직이게 할 수 있으며, 이를 사용자 단말(30)의 화면에 표시되는(표시될) 3D 아바타(동적 3D 아바타)의 그래픽과 결합(즉, 프레임에 그려질 캐릭터의 그래픽과 결합)되도록 할 수 있다. 이를 통해, 입력 영상 내 사용자가 취한 몸 동작을 따라하는 3D 캐릭터(동적 3D 캐릭터)가 생성될 수 있다.
즉, 포즈 매치 알고리즘의 수행과 관련하여, 3D 캐릭터 생성부(12)는 사용자의 몸 동작에 대한 키포인트(포즈 키포인트)와 사람의 관절에 대한 1:1 매치를 수행할 수 있다. 이때, 3D 캐릭터 생성부(12)는 사용자 단말(30)의 화면에 표시되는 동적 3D 아바타(Humanoid avatar)의 몸 부위에 대한 17개 관절을 탐색하고, 제1 스켈레톤 내 각 키포인트(포즈 키포인트, 포즈 오브젝트)로부터 추출된 변위 값을 보정하며, 이전 변위 값과 현재 변위 값의 회전(Rotation) 각도(즉, 움직인 각도)를 계산하여, 이를 토대로 입력 영상 내 사용자가 취한 몸 동작을 따라하는 동적 3D 캐릭터를 생성할 수 있다.
도 4를 참조하면, 핸드 매치 알고리즘과 관련하여 3D 캐릭터 생성부(12)는, 스켈레톤 생성부(11)에서 생성된 입력 영상의 제2 스켈레톤과 입력 영상 이전에 획득된 이전 영상의 제2 스켈레톤 간의 비교를 통해 입력 영상의 제2 스켈레톤(특히나, 제2 스켈레톤 내 사용자의 손의 각 관절에 대응하는 핸드 키포인트)의 변위 값(제2 변위 값)을 보정할 수 있다. 이때, 스켈레톤 생성부(11)는 제2 스켈레톤과 관련하여, 입력 영상 내 사용자의 왼손에 대한 왼손 스켈레톤 및 사용자의 오른손에 대한 오른손 스켈레톤을 생성할 수 있다. 이에 따라, 3D 캐릭터 생성부(12)는 입력 영상의 제2 스켈레톤(즉, 입력 영상의 왼손 스켈레톤과 오른손 스켈레톤 각각)에 대하여, 이전 영상의 제2 스켈레톤(즉, 이전 영상의 왼손 스켈레톤과 오른손 스켈레톤) 간의 비교를 통해 입력 영상의 제2 스켈레톤(즉, 입력 영상의 왼손 스켈레톤과 오른손 스켈레톤 각각)의 변위 값(제2 변위 값)을 보정할 수 있다.
이후, 3D 캐릭터 생성부(12)는 보정된 변위 값(제2 변위 값)을 기반으로 생성되는 3D 캐릭터(동적 3D 캐릭터)의 손 부위에 대한 21개의 관절(왼손과 오른손 각각의 21개의 관절)이 입력 영상 내 사용자의 키포인트(핸드 키포인트)와 1:1 매칭되어 움직일 수 있도록, 제2 스켈레톤 내 키포인트 각각(손 관절 각각)의 트랜스폼(Transform) 값(이는 오른손, 왼손 각각 21개의 데이터가 존재함에 따라, 총 42개의 데이터(트랜스폼 값)일 수 있음)을 저장할 수 있다. 이후, 3D 캐릭터 생성부(12)는 보정된 변위 값(제2 변위 값)의 움직임 각도를 계산하여 3D 캐릭터의 42개의 관절(오른손과 왼손 각각의 손 관절)을 앞서 저장된 트랜스폼 값(42개의 트랜스폼 값)에 대응되도록 회전시킴으로써 동적 3D 캐릭터를 생성할 수 있다. 이때, 제2 스켈레톤 내 키포인트 각각의 트랜스폼 값(즉, 42개의 트랜스폼 값)은 본원에서 제2 트랜스폼 값이라 지칭될 수 있다.
여기서, 사용자의 왼손과 오른손 각각의 손 부위(손과 손가락 부위)의 21개의 관절에는 일예로 다섯손가락 각각의 밑/밑중간/윗중간/끝, 손목 등이 포함될 수 있다. 다만, 이에만 한정되는 것은 아니고, 본원에서 적용되는 손 부위에 대한 관절(즉, 손 관절 부위명 및 손 관절 부위 개수)로는 종래에 이미 공지되었거나 향후 개발되는 다양한 손(hand) 인식 기술과 관련하여 고려되는 손 부위의 모든 관절이 적용될 수 있다.
다시 말해, 스켈레톤 생성부(11)는 제2 스켈레톤과 관련하여, 입력 영상에 핸드 솔루션을 적용함으로써 추출된 키포인트(핸드 키포인트)로 왼손 스켈레톤(left Hand Skeleton)과 오른손 스켈레톤(right Hand Skeleton)을 생성할 수 있다. 이후, 3D 캐릭터 생성부(12)는 생성된 제2 스켈레톤(왼손 스켈레톤과 오른손 스켈레톤)의 변위 값을 이전 영상(프레임)의 제2 스켈레톤의 변위 값과 비교를 하여 보정 알고리즘을 통해 생성된 제2 스켈레톤의 변위 값(제2 변위 값)을 보정할 수 있다. 그리고, 3D 캐릭터 생성부(12)는, 사용자 단말(30)의 화면에 표시하고자 하는 3D 캐릭터(즉, 화면에 움직일 3D 캐릭터인 동적 3D 캐릭터)(Humanoid avatar)의 21개에 해당하는 손과 손가락 관절을 입력 영상 내 사용자(특히, 입력 영상 내 사용자의 핸드 키포인트)와 1대1 매칭을 하여 움직일 수 있도록 제2 스켈레톤 내 각 키포인트(핸드 키포인트)의 트랜스폼 값을 본 장치(10) 내 DB(미도시)에 저장할 수 있다. 이때, 사용자의 손은 왼손과 오른손이 있음에 따라, DB(미도시)에는 제2 스켈레톤 내 각 키포인트(핸드 키포인트)의 트랜스폼 값과 관련하여 총 42개의 데이터가 저장될 수 있다. 그리고, 3D 캐릭터 생성부(12)는, 보정된 변위 값(제2 변위 값)의 움직인 각도를 계산하여 관절의 트랜스폼의 회전(rotate)을 통해 3D 캐릭터의 42개 관절(손 관절)을 움직이게 할 수 있으며, 이를 사용자 단말(30)의 화면에 표시되는(표시될) 3D 아바타(동적 3D 아바타)의 그래픽과 결합되도록 할 수 있다. 이를 통해, 입력 영상 내 사용자가 취한 손 동작을 따라하는 3D 캐릭터(동적 3D 캐릭터)가 생성될 수 있다.
즉, 핸드 매치 알고리즘의 수행과 관련하여, 3D 캐릭터 생성부(12)는 사용자의 손 동작에 대한 키포인트(핸드 키포인트, Hand Key Points)와 사람의 손 관절(손가락 마디 마다의 관절)에 대한 1:1 매치를 수행할 수 있다. 이때, 3D 캐릭터 생성부(12)는 사용자 단말(30)의 화면에 표시되는 동적 3D 아바타(Humanoid avatar)의 손 부위에 대한 21개의 관절(즉, 왼손과 오른손 각각의 21개의 손가락 마디 관절)을 탐색하고, 제2 스켈레톤 내 각 키포인트(핸드 키포인트, 핸드 오브젝트)로부터 추출된 변위 값을 보정(즉, 왼/오른쪽 Hand object의 추출된 변위 값을 보정)하며, 이전 변위 값과 현재 변위 값의 회전(Rotation) 각도(즉, 움직인 각도)를 계산하여, 이를 토대로 입력 영상 내 사용자가 취한 손 동작을 따라하는 동적 3D 캐릭터를 생성할 수 있다.
도 5를 참조하면, 결합 알고리즘과 관련하여 3D 캐릭터 생성부(12)는, 포즈 매치 알고리즘과 핸드 매치 알고리즘을 수행함으로써 생성된 데이터(일예로, 제1 변위 값, 제2 변위 값, 제1 트랜스폼 값, 제2 트랜스폼 값, 제1 변위 값의 움직임 각도, 제2 변위 값의 움직임 각도 등)를 주석 테이블(Annotation Table)에 저장할 수 있다. 여기서, 주석 테이블은 매치 알고리즘(즉, 포즈 매치 알고리즘과 핸드 매치 알고리즘)으로 수행되어 생성된 데이터(즉, 사람의 자세(포즈) 및 핸드 매치가 추정이 완료된 오브젝트로로서, 추정된 포즈 오브젝트 및 추정된 핸드 오브젝트)들을 각 위치에 맞게(일예로, 왼쪽 팔꿈치, 오른쪽 팔꿈치, 왼손 엄지의 두번째 마디 등에 맞게) 선별하는 엔티티 테이블을 의미할 수 있다. 예시적으로, Annotation은 딥러닝에 있어서 필요한 수집된 데이터를 학습하고자 하는 결과물의 양식에 맞게 데이터를 가공하는 기술을 의미할 수 있다.
포즈 오브젝트(포즈 키포인트)와 핸드 오브젝트(핸드 키포인트)는 서로 다른 솔루션(즉, 포즈 솔루션과 핸드 솔루션)으로부터 만들어진 오브젝트이기 때문에, 각 솔루션에서 생성된 오브젝트의 절대 변위 값을 하나의 오브젝트 내에서 통일해야 할 필요가 있다. 따라서, 3D 캐릭터 생성부(12)는 포즈/핸드 오브젝트 관련 데이터를 주석 테이블에 저장을 하고 절대 변위 값 조정 알고리즘을 이용하여 절대 변위 값을 조정(변경)할 수 있다. 이때, 변위 조정 알고리즘으로는 종래에 공지되었거나 향후 개발되는 다양한 변위 관련 조정 알고리즘이 적용될 수 있다. 이후, 3D 캐릭터 생성부(12)는 조정된 오브젝트들(즉, 변위 값이 조정된 포즈 오브젝트와 변위 값이 조정된 핸드 오브젝트)을 하나의 오브젝트로 합침(결합함)으로써 통합 스켈레톤을 생성하고, 생성된 통합 스켈레톤을 사용자 단말(30)의 화면에 표시되는(표시될) 3D 아바타(동적 3D 아바타)의 그래픽과 결합(즉, 프레임에 그려질 캐릭터의 그래픽과 결합)되도록 할 수 있다. 이를 통해, 입력 영상 내 사용자가 취한 동작(몸 동작과 손 동작을 포함한 전체 동작)을 따라하는 3D 캐릭터(동적 3D 캐릭터)가 생성될 수 있다.
즉, 결합 알고리즘과 관련하여 3D 캐릭터 생성부(12)는, 홀리스틱(Holistic) 솔루션을 통해 포즈 오브젝트와 핸드 오브젝트의 결합 알고리즘을 수행할 수 있다. 이때, 3D 캐릭터 생성부(12)는, 포즈 솔루션과 핸드 솔루션을 각각 적용함으로써 생성된 오브젝트(즉, 포즈 오브젝트와 핸드 오브젝트)를 주석 테이블(Annotation Table)을 통해 절대 변위 값을 변경(조정)하고, 주석 테이블에 있는 오브젝트(즉, 변위 값이 조정된 포즈 오브젝트와 변위 값이 조정된 핸드 오브젝트)를 결합함으로써 동적 3D 캐릭터를 생성할 수 있다. 이에 따르면, 3D 캐릭터 생성부(12)는 입력 영상 내 사용자의 모든 동작(몸 동작과 손 동작을 포함한 전체 동작)을 인식하여 똑같이 따라하는 3D 캐릭터를 동적 3D 캐릭터로서 생성할 수 있다.
표시 제어부(13)는 3D 캐릭터 생성부(12)에서 생성된 동적 3D 캐릭터를 화면에 표시할 수(표출시킬 수) 있다. 이때, 표시 제어부(13)는 생성된 동적 3D 캐릭터를 본 장치(10)에 자체 마련된 디스플레이부(미도시)를 통해 화면에 표시하거나, 네트워크(40)를 통해 사용자 단말(30)로 제공(전달)함으로써 사용자 단말(30)의 화면 상에 표시할 수 있다.
도 6에는 본 장치(10)에 의해 생성된 동적 3D 캐릭터가 사용자 단말(30)의 화면 상에 표시된 예가 도시되어 있다. 이에 따르면, 표시 제어부(13)는 생성된 동적 3D 캐릭터를 입력 영상 상에 오버랩하여 사용자 단말(30)의 화면에 표시할 수 있으며, 이때 입력 영상 내 사용자의 표시 영역과 겹치지 않는 영역에(즉, 입력 영상에서 사용자가 표시된 영역을 제외한 나머지 영역 중 일부 영역에) 동적 3D 캐릭터를 표시할 수 있다.
이에 따르면, 사용자(20)는 자신의 모습을 사용자 단말(30)로 촬영함에 따라 사용자 단말(30)의 화면을 통해 자신의 모습을 볼 수 있음과 동시에, 본 장치(10)에 의해 생성된 동적 3D 캐릭터를 사용자 단말(30)의 화면을 통해 함께 제공받아 볼 수 있다. 즉, 사용자(20)는 한 화면을 통해 자신의 모습 및 자신의 모습(동작)을 똑같이 따라하는 동적 3D 캐릭터를 함께 확인해 볼 수 있다.
이러한 본 장치(10)는 사용자 단말(30)의 화면 상에 사용자의 동작을 따라하는 동적 3D 캐릭터를 제공함으로써, 사용자(20)가 일예로 춤 연습 등을 수행할 때 흥미를 갖고 즐겁게 춤 연습을 수행할 수 있도록 제공할 수 있다.
또한, 도 6에는 사용자 단말(30)의 화면 상에 사용자의 동작을 따라하도록 생성된 동적 3D 캐릭터(하나의 동적 3D 캐릭터)가 표시되는 것으로만 예시하였으나, 이에만 한정되는 것은 아니다. 다른 예로, 표시 제어부(13)는 사용자(20)로부터 통합 캐릭터 콘텐츠 제작 요청이 이루어진 경우, 통합 캐릭터 콘텐츠 제작 요청에 응답하여 복수의 사용자 각각에 대응하도록 생성된 복수개의 동적 3D 캐릭터가 한 화면 상에 표출되는 통합 영상 콘텐츠를 생성하여 사용자 단말(30)의 화면에 제공할 수 있다.
이를 위해, 일예로 사용자(20)는 사용자 단말(30)을 통해 본 앱에 접속하여 통합 캐릭터 콘텐츠의 제작을 함께 하기를 희망하는 타 사용자들을 모집할 수 있다. 여기서, 타 사용자들은 본 장치(10)를 이용하는 복수의 사용자 중 적어도 일부의 사용자일 수 있으며, 이들은 사용자(20)가 실제로 아는 지인 이거나 혹은 사용자(20)가 모르는 사용자일 수 있다.
일예로, 사용자(20)는 본 앱에 접속하여 채팅방을 생성하여 통합 캐릭터 콘텐츠의 제작을 희망하는 타 사용자들을 모집할 수 있다. 이때, 모집된 타 사용자들 내에 4명의 타 사용자로서 제1 사용자 내지 제4 사용자가 포함되어 있다고 하자. 이러한 경우, 사용자(20)가 생성한 채팅방 내에는 총 5명의 사용자(즉, 제1 사용자 내지 제4 사용자, 및 사용자(20))가 포함되어 있을 수 있다. 이때, 이하에서는 설명의 편의상, 사용자(20)가 생성한 채팅방 내에 포함되어 있는 5명의 사용자를 설명의 편의상 참여자들이라 지칭하기로 한다.
사용자(20)는 채팅방의 일 영역에 마련된 통합 캐릭터 콘텐츠 제작 버튼을 클릭함으로써, 본 장치(10)에 대하여 통합 캐릭터 콘텐츠 제작을 요청할 수 있다.
표시 제어부(13)는 통합 캐릭터 콘텐츠 제작 버튼에 대한 사용자(20)의 클릭 입력이 이루어지면, 이를 통합 캐릭터 콘텐츠 제작 요청이 이루어진 것으로 인식하여, 사용자(20)가 생성한 채팅방에 속한 참여자들 각각이 소지한 단말들의 화면의 일영역에 통합 영상 콘텐츠를 표시할 수 있다. 즉, 표시 제어부(13)는 5명의 참여자가 소지한 단말(제1 사용자의 단말, 제2 사용자의 단말, 제3 사용자의 단말, 제4 사용자의 단말, 및 사용자(20)의 사용자 단말(30)) 각각의 화면의 일영역에 통합 영상 콘텐츠를 표시할 수 있다.
이때, 통합 영상 콘텐츠는, 5명의 참여자 각각이 자신이 소지한 단말로 자신을 촬영함으로써 획득된 영상(입력 영상)을 기반으로 하여 생성된 5명의 참여자 각각에 대응하는 동적 3D 캐릭터, 즉 5개의 동적 3D 캐릭터가 포함되도록 생성된 영상을 의미할 수 있다.
이때, 통합 영상 콘텐츠를 제공받은 5명의 참여자 각각은, 자신이 소지한 단말 상에 표시된 통합 영상 콘텐츠 내 5개의 동적 3D 캐릭터 중 적어도 하나의 동적 3D 캐릭터의 위치(즉, 통합 영상 콘텐츠 내에서의 3D 캐릭터의 위치)를 클릭 입력, 드래그 입력 등을 통해 조정/변경할 수 있다.
그리고, 사용자(20)가 통합 영상 콘텐츠 상의 일영역에 표시된 녹화 버튼을 제1 시점에 클릭하면, 표시 제어부(13)는 사용자 단말(30)의 화면에 표출되는 통합 영상 콘텐츠에 대하여 녹화를 수행(진행)할 수 있고, 녹화진행 중 상태에서 다시 녹화 버튼에 대한 클릭이 제2 시점에 재차 이루어지면 녹화를 종료(중단)할 수 있다. 이에 따라, 표시 제어부(13)는 제1 시점부터 제2 시점까지 녹화된 영상(즉, 녹화된 통합 영상 콘텐츠)를 생성하여 사용자 단말(30)의 화면에 저장할 수 있다.
본 장치(10)는 통합 영상 콘텐츠를 제공함으로써, 서로 다른 공간에 위치하는 복수의 사용자들(5명의 참여자)이 마치 같은 공간(한 공간)에 모여 같이 춤 연습을 하는 것과 같은 느낌을 받도록 제공할 수 있고, 외롭지 않고 즐겁게 춤 연습(안무 연습) 등이 가능하도록 할 수 있다. 본 장치(10)는 일예로 다수의 사람들이 모여 춤 연습을 함에 있어서, 실제로 다수의 사람들이 실제로 한 공간에 직접 모이지 않더라도 통합 영상 콘텐츠로 하여금, 다수의 사람들 중 누가 춤 안무를 틀렸는지, 다수 사람들의 춤 안무가 얼마나 통일감 있게 잘 맞는지 등을 쉽게 확인 가능하도록(즉, 안무를 맞춰볼 수 있도록 하는 기능을) 제공할 수 있다.
한편, 일반적으로 사용자는 집에서 운동(일예로 홈트레이닝)을 수행할 때, 사용자 단말(30)을 통해 웹 사이트나 어플에서 제공하는 운동 영상을 플레이해 놓고, 사용자 단말(30)에 표출되는 운동 영상을 보며 해당 운동 영상 내 사람의 동작(운동동작)을 따라함으로써 운동을 하게 된다.
그런데, 운동 자세마다 바라보아야 하는 시선이나 시선 방향이 각기 다름에도 불구하고, 사용자 단말(30)로부터 제공되는 운동 영상은 항시 고정된 위치에서 제공되기 때문에(즉, 사용자 단말(30)이 마련되어 있는 해당 위치에서만 사용자 단말(30)의 화면을 통해 운동 영상이 제공되기 때문에), 사용자가 운동자세를 따라하며 운동 영상을 보기 위해서는 항시 사용자 단말(30)의 화면을 봐야 함에 따라 시선에 제약이 따르고 이에 따라 정확한 운동 자세를 따라하는 데에 어려움이 있다.
또한, 운동 영상에서 알려주는 운동 속도가 너무 빠름에 따라 사용자가 보고 따라하기에 너무 벅찬 경우, 혹은 운동 영상 내에서 제공하는 쉬는 시간(즉, 서로 다른 운동 자세를 알려줄 때 그 사이에 쉴 수 있게 하는 시간)(일예로 10초)이 사용자에게는 너무 짧아 쉬는 시간이 더 길게 필요한 경우일 때, 사용자는 운동 영상을 잠시 멈추었다가 재생하는 등의 동작을 반복적으로 취하게 된다. 그런데, 이처럼 운동 영상을 멈추거나 다시 재생시키는 동작은 사용자가 사용자 단말(30)의 화면을 직접 터치함으로써 이루어지기 때문에, 운동 영상을 보며 운동을 따라하는 사용자로 하여금 번거롭고 불편하게 하는 단점이 있다.
이러한 문제를 해소하고자, 본 장치(10)는 사용자가 보다 편리하게 집에서 운동을 따라할 수 있도록 제공하기 위해 운동 서비스를 사용자에게 제공할 수 있다. 본 장치(10)는 운동 서비스의 제공을 위해 판단부(14), 기기 제어부(15), 복수의 카메라(50), 전방표시장치(60) 등의 구성을 제공할 수 있다. 이는 도 7을 참조하여 보다 쉽게 이해될 수 있다.
도 7은 본원의 일 실시예에 따른 3D 마커리스 모션 캡처 기반 3D 아바타 생성 장치(10)에 의해 제공되는 운동 서비스를 설명하기 위한 도면이다. 특히, 도 7에는 본 장치(10)를 이용하는 사용자(20)가 거주하는 거주 공간에 마련된 복수의 카메라(50), 사용자 단말(30) 등의 배치 모습의 예가 도시되어 있다.
이하에서는 본 장치(10) 및 본 시스템(1)을 설명함에 있어서(특히, 운동 서비스 내용을 설명함에 있어서), 일예로 도 7의 도면을 기준으로 10시-4시 방향을 전후방향, 8시-2시 방향을 좌우방향, 12시-6시 방향을 상하방향이라 하기로 한다. 다만, 이러한 방향 설정은 본원의 이해를 돕기 위한 예시일 뿐, 이에만 한정되는 것은 아니다.
도 7을 참조하면, 본 장치(10)는 판단부(14) 및 기기 제어부(15)를 포함할 수 있다. 또한, 본 시스템(1)은 사용자(20)가 거주하는 공간에 마련된 복수의 카메라(50) 및 전방표시장치(60)를 포함할 수 있다.
표시 제어부(13)는 웹 사이트에 존재하는 복수의 기등록 운동 영상 콘텐츠 중 사용자가 선택한 기등록 운동 영상 콘텐츠(일예로 제1 콘텐츠)를 사용자 단말(30)의 화면의 일영역(일예로 화면 상의 제1 영역)에 표시할 수 있다. 사용자(20)는 사용자 단말(30)을 통해 제공되는 제1 콘텐츠를 보며 제1 콘텐츠 내 사용자(일예로 운동강사)가 취한 운동자세를 따라하며 운동을 할 수 있다. 여기서, 웹 사이트라 함은 종래에 포털 사이트 등을 의미하는 것으로서 일예로 네이버, 다음, 구글 등일 수 있으나, 이에 한정되는 것은 아니고, 유튜브, 운동 앱(운동 관련 어플) 등이 포함될 수 있다.
이때, 표시 제어부(13)는 사용자 단말(30)로부터 획득된 운동실행영상을 사용자 단말(30)의 화면의 일영역(일예로, 제1 영역과는 겹치지 않는 제2 영역)에 표시할 수 있다. 여기서, 운동실행영상은 사용자(20)가 사용자 단말(30)의 화면에 표시되는 제1 콘텐츠(사용자가 선택한 기등록 운동 영상 콘텐츠)를 보면서 제1 콘텐츠 내 운동강사가 취한 운동자세를 따라하는 모습을 사용자 단말(30)에 자체 마련된 카메라를 통해 촬영한 영상을 의미할 수 있다.
스켈레톤 생성부(11)는 제1 콘텐츠로부터 제1 콘텐츠 내 운동강사의 동작에 대응하는 스켈레톤(즉, 운동강사 스켈레톤)을 생성할 수 있다. 또한, 스켈레톤 생성부(11)는 운동실행영상으로부터 운동실행영상 내 사용자(20)의 동작에 대응하는 스켈레톤(즉, 사용자 스켈레톤으로서, 이는 상술한 통합 스켈레톤을 의미할 수 있음)을 생성할 수 있다.
판단부(14)는 일예로 운동강사 스켈레톤과 사용자 스켈레톤 간의 유사도를 비교함으로써, 사용자(20)가 취한 운동자세의 정확도(즉, 운동강사의 운동자세를 따라한 사용자(20)의 운동자세의 정확도)를 판단할 수 있다. 표시 제어부(13)는 판단부(14)에서 판단된 정확도 결과를 사용자 단말(30)의 화면의 일영역에 표시할 수 있다. 이때, 유사도 비교시에는 종래에 기 공지되었거나 향후 개발되는 다양한 유사도 분석 기법이 적용될 수 있다. 또한, 정확도 결과로는 일예로 0% 이상 100% 이하의 값 중 어느 하나의 값으로 제공될 수 있으나, 이에만 한정되는 것은 아니다. 여기서, % 의 수치 값이 높을수록 정확도가 높음(즉, 정확함)을 의미하고, %의 수치 값이 낮을수록 정확도가 낮음(즉, 정확하지 않음)을 의미할 수 있다. 이에 따르면, 사용자(20)는 자신이 취한 운동 자세가 운동강사가 취한 운동 자세 대비 얼마나 정확한지를 확인할 수 있다.
또한, 판단부(14)는 운동강사 스켈레톤과 사용자 스켈레톤 간의 유사도 비교를 통해, 사용자 스켈레톤 내 복수의 키포인트 중 운동강사 스켈레톤의 키포인트와 대비하여 유사도가 미리 설정된 임계 유사도값 이하(일예로 85% 이하)로 나타나는 이상 키포인트를 식별할 수 있다. 여기서, 사용자 스켈레톤 내 복수의 키포인트라 함은 사용자의 포즈 키포인트와 핸드 키포인트를 포함한 전체 키포인트를 의미하는 것으로서, 운동실행영상 내 사용자의 전체 관절에 대한 사용자의 전체 키포인트를 의미할 수 있다.
일예로, 운동강사의 운동자세가 도 8의 (a)에 도시된 것과 같고, 사용자는 이러한 운동강사의 운동자세를 보고 도 8의 (c)에 도시된 것과 같이 스쿼트 자세를 취했다고 하자. 이때, 운동강사의 경우에는, 허벅지 부분에 대응하는 관절(즉, 엉덩이와 무릎을 잇는 관절)이 거의 지면과 평행하게 위치하는 자세를 취하고 있음(즉, 지면으로부터 엉덩이 지점까지의 이격 거리와 지면으로부터 무릎 지점 까지의 이격 거리가 거의 동일하게 위치해 있음)을 확인할 수 있다. 이에 반해, 사용자의 경우에는 허벅지 부분에 대응하는 관절이 지면과 평행하지 않고 경사지게 위치하는 자세를 취하고 있음(즉, 지면으로부터 엉덩이 지점까지의 이격 거리가 지면으로부터 무릎 지점까지의 이격 거리 대비 더 멀리 위치해 있음)을 확인할 수 있다. 이러한 경우, 판단부(14)는 일예로 사용자 스켈레톤 내 복수의 키포인트 중 허벅지 부분에 대응하는 관절의 키포인트를 미리 설정된 임계 유사도값 이하(일예로 85% 이하)로 나타나는 이상 키포인트로 식별할 수 있다. 이때, 사용자 스켈레톤 내 복수의 키포인트 중 미리 설정된 임계 유사도값 이하에 해당하는 키포인트는 이상 키포인트라 지칭되고, 미리 설정된 임계 유사도값을 초과하는 키포인트는 정상 키포인트라 지칭될 수 있다.
표시 제어부(13)는 운동실행영상을 사용자 단말(30)의 화면(2)의 제2 영역에 표시할 수 있는데, 이때, 운동실행영상 상에 사용자 스켈레톤(즉, 사용자의 통합 스켈레톤)을 오버랩하여 표시할 수 있다. 또한, 표시 제어부(13)는 제2 영역에 사용자 스켈레톤의 표시시, 사용자 스켈레톤 상에 이상 키포인트에 해당하는 영역(일예로 허벅지 부분에 대응하는 관절의 키포인트의 영역)을 정상 키포인트에 해당하는 영역 대비 보다 인식 또는 식별이 용이한 형태로 표시되도록 할 수 있다.
여기서, 이상 키포인트의 영역을 정상 키포인트의 영역 대비 인식 또는 식별이 용이한 형태로 표시한다는 것은, 이상 키포인트의 영역의 표시가 시각적으로 강조된 형태, 크기가 확장된 형태, 청각적인 효과를 수반하는 형태 및 동적인 애니메이션 형태 중 적어도 하나로 표시하는 것을 의미할 수 있다.
예시적으로, 표시 제어부(13)는 운동실행영상 상에 오버랩으로 표시된 사용자 스켈레톤 중에서 이상 키포인트에 해당하는 영역(즉, 일예로 허벅지 부분에 대응하는 관절이 키포인트의 영역)을 1초마다 깜빡이게 하는 점멸 형태로 표시하는 반면, 사용자 스켈레톤 중 이상 키포인트를 제외한 나머지 키포인트(정상 키포인트)에 해당하는 영역을 정적인 형태로 표시할 수 있다.
이처럼, 이상 키포인트의 영역을 정상 키포인트의 영역 대비 보다 인식 또는 식별이 용이한 형태로 표시하여 제공함으로써, 본 장치(10)는 사용자로 하여금, 사용자가 취한 운동자세에서 자세 교정이 이루어져야 하는 관절(키포인트) 부분의 위치가 어디인지(즉, 어느 관절 부분의 자세가 틀렸는지)를 보다 직관적으로 인지하여 올바른 자세를 취하도록 제공할 수 있다.
기기 제어부(15)는 본 장치(10)와 네트워크(40)를 통해 연동된 복수의 카메라(50)(51, 52, 53)의 ON/OFF를 제어할 수 있다. 복수의 카메라(50)는 사용자(20)가 거주하는 거주 공간 내에 마련될 수 있다. 복수의 카메라(50)는 제1 카메라(51), 제2 카메라(52) 및 제3 카메라(53)를 포함할 수 있다.
제1 카메라(51)는 사용자 단말(30)에 내장된 카메라, 즉 사용자 단말(30)에 자체 마련된 내장 카메라를 의미할 수 있다. 제1 카메라(51)는 전방을 바라보고 서 있는 사용자(20)의 위치를 기준으로, 사용자(20)의 전방에 배치되어 사용자(20)의 전방 운동실행영상을 촬영할 수 있다. 즉, 전방 운동실행영상은 사용자(20)가 운동하는 모습을 전방에서 촬영한 모습의 영상을 의미할 수 있다.
제2 카메라(52)는 사용자(20)의 우측 또는 좌측에 배치되어 사용자(20)의 측면 운동실행영상을 촬영할 수 있다. 도 7에는 일예로 제2 카메라(52)가 좌측에 배치된 좌측 카메라인 것으로 예시하였으나, 이는 본원의 이해를 돕기 위한 하나의 예시일 뿐, 이에만 한정되는 것은 아니고, 제2 카메라(52)는 우측에 배치되는 우측 카메라일 수도 있다. 측면 운동실행영상은 사용자(20)가 운동하는 모습을 측면에서 촬영한 모습의 영상을 의미할 수 있다.
제3 카메라(53)는 사용자(20)의 상측에 배치되어 사용자(20)의 상방 운동실행영상을 촬영할 수 있다. 여기서, 상측이라 함은 일예로 사용자(20)가 운동을 수행하는 집 공간(거주 공간)의 천장을 의미할 수 있다. 이에 따르면, 상방 운동실행영상은 사용자(20)가 운동하는 모습을 상측에서(위에서) 촬영한 모습의 영상을 의미할 수 있다. 본원에서는 일예로 사용자(20)가 집에서 운동을 하는 경우로 예로 들어 설명하였으나, 이에만 한정되는 것은 아니고, 사용자는 집, 헬스장, 회사 등 다양한 실내 공간에서 본 시스템(1)을 이용해 운동을 수행할 수 있다.
본 장치(10)는 복수의 카메라(50)와 네트워크(40)를 통해 연동되어 데이터를 송수신할 수 있다. 본 장치(10)는 네트워크(40)를 통해 복수의 카메라(50)에 의해 촬영된 운동실행영상을 수신할 수 있다. 복수의 카메라(50)는 이미지 센서, 이미지 획득 센서, 영상 센서 등으로 달리 지칭될 수 있다.
기기 제어부(15)는 사용자가 선택한 기등록 운동 영상 콘텐츠(즉, 제1 콘텐츠)에서 식별되는 운동강사의 운동 방향 정보와 운동강사가 수행하는 운동의 운동종류, 및 제1 카메라(51)를 통해 식별되는 사용자(20)의 운동 방향 정보를 고려하여, 복수의 카메라(50)(51, 52, 53) 중 적어도 하나의 카메라를 선택적으로 ON 으로 제어할 수 있다. 운동강사 혹은 사용자(20)의 운동 방향 정보라 함은, 운동강사 혹은 사용자(20)가 운동자세를 취한 방향 정보, 달리 말해 운동강사 혹은 사용자가 취한 운동자세의 방향에 대한 정보(즉, 특정 운동자세를 취했을 때 시선이 향하는 방향에 대한 정보)를 의미할 수 있다.
표시 제어부(13)는, 복수의 카메라(50) 중 선택적으로 ON으로 제어된 적어도 하나의 카메라를 통해 획득된 영상(즉, 전방 운동실행영상, 측면 운동실행영상 및 상방 운동실행영상 중 적어도 하나의 영상)을 운동실행영상으로서 사용자 단말(30)의 화면(2)의 제2 영역에 표시할 수 있다.
기기 제어부(15)는 선택된 기등록 운동 영상 콘텐츠(즉, 제1 콘텐츠) 내 운동강사가 정면을 바라보고 운동을 수행하고 있을 경우, 운동강사의 운동 방향 정보를 '정면'인 것으로 식별할 수 있다. 또한, 기기 제어부(15)는 제1 카메라(51)를 통해 획득된 운동실행영상 내 사용자(20)도 정면을 바라보고 운동을 수행하고 있을 경우, 사용자의 운동 방향 정보를 '정면'인 것으로 식별할 수 있다.
또한, 기기 제어부(15)는 제1 콘텐츠 내 운동강사가 수행하는 운동의 운동종류를 식별할 수 있다. 이러한 운동종류에 대한 정보는 운동 명칭(운동명)을 의미하는 것으로서, 이와 같은 정보는 일예로 제1 콘텐츠에 기 연계되어 저장되어 있을 수 있다. 일예로, 제1 콘텐츠에는 운동종류 정보(운동명 정보)로서 '정면을 바라보고 손 올렸다 내리기'와 같은 정보가 등록되어 있을 수 있다. 이러한 경우, 기기 제어부(15)는 운동강사가 제공하는 운동자세가 정면을 바라보고 수행 가능한 운동임에 따라, 복수의 카메라(50) 중 제1 카메라(51)를 ON으로 제어하고, 제2 카메라(52)와 제3 카메라(53)는 OFF 로 제어할 수 있다. 이에 따라, 표시 제어부(13)는 제1 카메라(51)를 통해 촬영되는 전방 운동실행영상을 운동실행영상으로서 화면(2)의 제2 영역에 표시할 수 있다.
도 8은 본원의 일 실시예에 따른 3D 마커리스 모션 캡처 기반 3D 아바타 생성 장치(10)에서 기기 제어부(15)가 복수의 카메라(50)를 선택적으로 ON/OFF 제어하는 경우를 설명하기 위한 도면이다.
도 8을 참조하면, 일예로 사용자 단말(30)의 화면(2)의 제1 영역에 선택된 기등록 운동 영상 콘텐츠(즉, 제1 콘텐츠)로서 도 8의 (a)와 같은 영상이 표시된다고 하자. 이때, 제1 콘텐츠에는 운동종류 정보(운동명)로서 '스쿼트'라는 정보가 기 저장(등록)되어 있을 수 있다.
이러한 경우, 도 8의 (a)와 같은 제1 콘텐츠로부터 기기 제어부(15)는 운동강사가 수행하는 운동의 운동종류가 '스쿼트'임을 식별할 수 있다. 또한, 기기 제어부(15)는 제1 콘텐츠 내에서 운동강사가 정면(카메라를 바라보는 정면)이 아닌 우측(즉, 사용자 단말의 화면에 표시되는 제1 콘텐츠를 기준으로 우측)을 바라보고 있으므로, 운동강사의 운동 방향 정보를 '우측'으로 식별할 수 있다.
한편, 사용자(20)는 일예로 집에서 운동을 수행할 때, 사용자 단말(30)의 화면(2)의 제1 영역에 표시된 제1 콘텐츠(즉, 도 8의 (a)에 도시된 영상 콘텐츠)를 보면서, 자신도 운동강사의 운동자세를 따라 스쿼트 자세를 취할 수 있다.
이때, 일예로 사용자(20)가 사용자 단말(30)의 화면(2)을 바라본 상태로 운동자세로서 스쿼트 자세를 취한 경우(이하 제1 경우라 함), 제1 카메라(51)를 통해서는 도 8의 (b)와 같은 영상이 획득될 수 있다. 이와 같은 경우, 기기 제어부(15)는 사용자(20)가 정면을 바라본 상태로 운동자세를 취하고 있으므로, 제1 카메라(51)를 통해 식별되는 사용자의 운동 방향 정보를 '정면'인 것으로 식별할 수 있다. 이때, 화면에 도 8의 (b)와 같은 영상이 운동실행영상으로서 표시되는 경우에는, 운동강사가 취한 스쿼트 자세의 방향(우측)과 사용자가 취한 스쿼트 자세의 방향(정면)이 서로 다름에 따라(즉, 스쿼트 자세의 비교 기준이 서로 다름에 따라), 사용자 스켈레톤과 운동강사 스켈레톤 간의 유사도 비교시 오차가 크게 발생할 수 있다.
따라서, 기기 제어부(15)는 운동강사가 수행한 운동의 운동종류가 '스쿼트'이고, 운동강사의 운동 방향 정보가 '우측'이고, 사용자의 운동 방향 정보가 '정면'인 것으로 식별된 경우(제1 경우일 때), 복수의 카메라(50) 중 측면 운동실행영상을 촬영하는 제2 카메라(52)를 ON으로 제어할 수 있다. 그리고, 제1 경우일 때 기기 제어부(15)는 복수의 카메라(50) 중 제1 카메라(51)와 제3 카메라(53)는 OFF 로 제어할 수 있다. 이후, 표시 제어부(13)는 제1 경우일 때, 제2 카메라(52)를 통해 촬영되는 측면 운동실행영상을 운동실행영상으로서 화면(2)의 제2 영역에 표시할 수 있으며, 이때 측면 운동실행영상은 도 8의 (c)와 같은 영상일 수 있다.
이후, 제1 경우일 때 판단부(14)는 화면(2)의 제2 영역에 표시된 운동실행영상(제2 카메라를 통해 촬영되는 측면 운동실행영상)인 도 8의 (c)와 같은 영상과 화면(2)의 제1 영역에 표시된 제1 콘텐츠인 도 8의 (a)와 같은 영상을 기반으로 하여, 사용자의 운동자세의 정확도를 판단할 수 있다.
제1 경우일 때, 사용자(20)는 정면을 바라본 상태에서, 표시 제어부(13)에 의해 제공되는 정확도 판단 결과를 실시간으로 확인하면서 스쿼트 자세를 따라 운동을 수행할 수 있다.
다른 예로, 사용자(20)가 화면(2)의 제1 영역에 표시된 제1 콘텐츠(즉, 도 8의 (a)에 도시된 영상)를 보면서, 자신도 운동강사의 운동자세를 따라 스쿼트 자세를 취했다고 하자. 이때, 사용자(20)가 사용자 단말(30)의 화면(2)이 아닌 우측을 바라보고 선 상태로 운동자세로서 스쿼트 자세를 취했다(이하 제2 경우라 함)고 하자.
제2 경우일 때, 제1 카메라(51)를 통해서는 도 8의 (c)와 같은 영상이 획득될 수 있다. 이러한 경우, 기기 제어부(15)는 사용자(20)가 우측을 바라본 상태로 운동자세를 취하고 있으므로, 제1 카메라(51)를 통해 식별되는 사용자의 운동 방향 정보를 '우측'인 것으로 식별할 수 있다.
이에 따르면, 기기 제어부(15)는 운동강사가 수행한 운동의 운동종류가 '스쿼트'이고, 운동강사의 운동 방향 정보가 '우측'이고, 사용자의 운동 방향 정보가 '우측'인 것으로 식별된 경우(제2 경우일 때), 복수의 카메라(50) 중 제1 카메라(51)를 ON으로 제어할 수 있다. 그리고, 제2 경우일 때 기기 제어부(15)는 복수의 카메라(50) 중 제2 카메라(52)와 제3 카메라(53)는 OFF 로 제어할 수 있다. 이후, 표시 제어부(13)는 제2 경우일 때, 제1 카메라(51)를 통해 촬영되는 전방 운동실행영상을 운동실행영상으로서 화면(2)의 제2 영역에 표시할 수 있으며, 이때 전방 운동실행영상은 도 8의 (c)와 같은 영상일 수 있다. 이후, 제2 경우일 때 판단부(14)는 화면(2)의 제2 영역에 표시된 운동실행영상(제1 카메라를 통해 촬영되는 전방 운동실행영상)인 도 8의 (c)와 같은 영상과 화면(2)의 제1 영역에 표시된 제1 콘텐츠인 도 8의 (a)와 같은 영상을 기반으로 하여, 사용자의 운동자세의 정확도를 판단할 수 있다.
제2 경우일 때, 사용자(20)는 우측을 바라본 상태에서 스쿼트 자세를 따라하며 운동을 수행할 수 있으며, 이때 사용자(20)가 운동을 따라하며 표시 제어부(13)에 의해 제공되는 정확도 판단 결과를 실시간으로 확인하기 위해서는 사용자(20)의 고개를 화면(2)이 위치한 정면으로 돌린 상태에서 스쿼트 자세를 따라할 수 있다.
도 9는 본원의 일 실시예에 따른 3D 마커리스 모션 캡처 기반 3D 아바타 생성 장치(10)에서 기기 제어부(15)가 복수의 카메라(50)를 선택적으로 ON/OFF 제어하는 경우를 설명하기 위한 다른 도면이다.
도 9를 참조하면, 일예로 사용자 단말(30)의 화면(2)의 제1 영역에 제1 콘텐츠로서 도 9의 (a)와 같은 영상이 표시된다고 하자. 이때, 제1 콘텐츠에는 운동종류 정보(운동명)로서 '누워서 하는 나비 스트레칭 자세'가 기 저장(등록)되어 있을 수 있다.
이러한 경우, 기기 제어부(15)는 운동강사가 수행하는 운동의 운동종류가 '누워서 하는 나비 스트레칭 자세'임을 식별할 수 있다. 또한, 기기 제어부(15)는 제1 콘텐츠 내에서 운동강사가 누워서 하늘을 바라보고 있으므로, 운동강사의 운동 방향 정보를 '상측'으로 식별할 수 있다.
한편, 사용자(20)는 일예로 집에서 운동을 할 때, 화면(2)의 제1 영역에 표시된 제1 콘텐츠(즉, 도 9의 (a)에 도시된 영상)을 보면서, 자신도 운동강사의 운동자세를 따라 스쿼트 자세를 취할 수 있다.
이때, 사용자(20)가 운동강사의 운동자세를 따라하기 위해, 도 7을 기준으로 머리는 우측 방향에 두고 다리는 좌측 방향에 둔 상태로 하늘(천장)을 보며 누웠다고 하자(이하 제3 경우라 함). 이때, 제1 카메라(51)를 통해서는 사용자가 도 9의 (b)와 같은 모습을 취하고 있는 것으로 파악될 수 있다. 이때, 기기 제어부(15)는 제1 카메라(51)를 통해 식별된 사용자가 바닥에 누워 하늘(천장)을 바라보고 있으므로, 사용자의 운동 방향 정보를 '상측'으로 식별할 수 있다.
따라서, 기기 제어부(15)는 운동강사가 수행한 운동의 운동종류가 '누워서 하는 나비 스트레칭 자세'이고, 운동강사의 운동 방향 정보가 '상측'이고, 사용자의 운동 방향 정보가 '상측'인 것으로 식별된 경우(제3 경우일 때), 복수의 카메라(50) 중 상방 운동실행영상을 촬영하는 제3 카메라(53)를 ON으로 제어할 수 있다. 그리고, 제3 경우일 때 기기 제어부(15)는 복수의 카메라(50) 중 제1 카메라(51)와 제2 카메라(52)는 OFF 로 제어할 수 있다. 이후, 표시 제어부(13)는 제3 경우일 때, 제3 카메라(53)를 통해 촬영되는 상방 운동실행영상을 운동실행영상으로서 화면(2)의 제2 영역에 표시할 수 있다.
이후, 제3 경우일 때 판단부(14)는 화면(2)의 제2 영역에 표시된 운동실행영상(제3 카메라를 통해 촬영되는 상방 운동실행영상)과 화면(2)의 제1 영역에 표시된 제1 콘텐츠인 도 9의 (a)와 같은 영상을 기반으로 하여, 두 영상 내 스켈레톤 데이터를 서로 비교함으로써 사용자의 운동자세의 정확도를 판단할 수 있다.
제3 경우일 때, 사용자(20)는 운동강사가 취한 운동자세를 따라하기 위해, 바닥에 누운 상태로 하늘(천장)을 바라보며 '누워서 하는 나비 스트레칭 자세'를 따라할 수 있다. 이때, 사용자(20)는 해당 운동자세를 취하면서 표시 제어부(13)에 의해 제공되는 정확도 판단 결과를 실시간으로 확인하고자 할 경우, 일예로 사용자(20)의 고개를 화면(2)이 위치한 정면으로 돌린 상태로 해당 운동자세를 따라할 수 있다.
상술한 제1 경우 내지 제3 경우에 의하면, 기기 제어부(15)는 제1 콘텐츠 내 운동종류가 무엇인지, 제1 콘텐츠 내 운동강사가 어느 방향을 바라보고 있는지(즉, 운동강사의 운동 방향 정보가 어떤지), 및 제1 카메라(51)를 통해 식별된 사용자가 어느 방향을 바라보고 있는지(즉, 사용자의 운동 방향 정보가 어떤지)를 종합적으로 고려하여, 복수의 카메라(50) 중 적어도 하나를 선택적으로 ON으로 제어하고, ON 으로 제어된 카메라를 통해 획득된 영상을 기등록 운동 영상 콘텐츠로서 화면(2)의 제2 영역에 표시할 수 있다.
이러한 본 장치(10)는 복수의 카메라(50)를 선택적으로 ON으로 제어함으로써, 사용자가 다양한 종류의 운동자세를 취함에 있어서 정확한 자세로 따라하고 있는지에 대해, 보다 쉽고 빠르게 정확한 판단이 이루어지도록 할 수 있다. 즉, 본 장치(10)는 복수의 카메라(50)의 선택적 ON/OFF 제어를 통해 사용자의 운동자세의 정확도를 판단함에 있어서, 보다 분석이 용이해지도록 하는 방향에 있는 영상(즉, 운동강사 스켈레톤과 사용자 스켈레톤 간의 유사도 비교를 보다 쉽고 정확하게 판단 가능하도록 하는 영상)을 획득할 수 있는바, 정확도 판단 결과가 보다 빠르고 정확한 값으로 도출되도록 할 수 있다.
또한, 본 장치(10)는 복수의 카메라(50)를 선택적으로 ON으로 제어함으로써, 사용자가 운동강사가 취한 다양한 종류의 운동자세를 따라함에 있어서 자신이 어느 방향을 바라보고 운동자세를 취해야 하는지를 따로 신경쓸 필요 없이, 사용자(20)가 편안해 하는 방향에 시선을 두고 자유롭게 운동자세를 취하도록 할 수 있다.
또한, 기기 제어부(15)는 본 장치(10)와 네트워크(40)를 통해 연동되어 화면(2)에 표시된 데이터에 대응하는 빔 데이터를 빔(beam) 조사를 통해 상공에 제공하는 전방표시장치(Head Up Display, HUD)(60)의 동작을 제어할 수 있다. 기기 제어부(15)는 제1 카메라(51)를 통해 식별되는 사용자의 운동 방향 정보를 고려하여 전방표시장치(60)를 통해 조사되는 빔 조사의 각도를 달리 제어할 수 있다.
전방표시장치(60)는 일예로 사용자 단말(30)과 이웃하여 배치될 수 있으며, 이에만 한정되는 것은 아니다. 전방표시장치(60)는 빔(beam) 조사를 통해 전방표시장치(60)의 전방에(혹은 전방의 공중에, 전방의 상공에) 사용자 단말(30)의 화면에 표시된 데이터에 대응하는 빔 데이터를 제공할 수 있다.
전방표시장치(60)는 빔을 통해 전방표시장치(60)의 전방에 초점이 맺히도록 할 수 있으며, 이로부터 해당 초점에 대응하는 위치에 빔 데이터(혹은 빔 데이터에 대응하는 이미지)가 표시되도록 할 수 있다. 다시 말해, 기기 제어부(15)는 일예로 사용자(20)로부터 빔 데이터 제공 요청이 이루어지면, 그에 응답하여 전방표시장치(60)를 ON으로 제어하여 전방에 빔을 통해 상을 뿌림으로써 빔 데이터(화면에 표시된 데이터에 대응하는 정보)를 전방에 제공할 수 있다.
이러한 본 장치(10)는 사용자 단말(30)의 화면(2)에 표시되는 데이터와 상응하는 데이터(빔 데이터)를 전방표시장치(60)를 통해 보다 큰 크기로 제공할 수 있다.
본 장치(10)에서 입력 영상(특히, 운동실행영상)으로부터 사용자 스켈레톤을 획득하기 위해서는 사용자 단말(30)의 제1 카메라(51)에 의해 촬영되는 운동실행영상 내에 사용자의 신체의 적어도 일부(혹은 신체 전체, 전신)가 포함되도록 촬영이 이루어져야 하며, 이를 위해 사용자는 제1 카메라(51)로부터 일정 거리를 두고 운동실행영상의 촬영을 수행해야 한다. 이러한 경우, 사용자가 제1 카메라(51)로부터 다소 멀리 떨어져 있음에 따라 화면(2)에 표시되는 데이터가 작아서 잘 보이지 않을 수 있다. 이러한 경우, 사용자(20)는 전방표시장치(60)를 통해 빔 데이터를 제공받음으로써, 사용자 단말(30)의 화면(2)으로부터 먼 거리에 위치해 있더라도, 멀리서도 화면(2)에 표시된 데이터를 빔 데이터를 통해 제공받아 확인할 수 있다.
제1 카메라(51)를 통해 식별되는 사용자(20)의 운동 방향 정보를 고려하여 빔 조사의 각도가 달리 제어되는 경우의 예는 다음과 같다.
일예로, 상술한 설명에서와 같이 제1 경우일 때(즉, 사용자가 정면을 바라본 상태에서 스쿼트 자세를 따라하는 경우일 때), 기기 제어부(15)는 전방표시장치(60)가 사용자 단말(30)의 위치보다는 상측이면서 사용자(20)의 전방에 빔 데이터가 조사되도록 빔 조사의 각도를 전방 상측으로 제어할 수 있다. 이를 통해, 사용자는 정면을 응시한 채로 빔 데이터를 보며 스쿼트 자세를 따라할 수 있다.
다른 일예로, 상술한 설명에서와 같이 제2 경우일 때(즉, 우측을 바라본 상태에서 스쿼트 자세를 따라하는 경우일 때), 기기 제어부(15)는 빔 데이터가 집 공간(거주 공간) 중 우측면 상에(특히, 사용자가 바라보고 있는 우측면 중 사용자의 가시 영역 내에) 조사되도록 전방표시장치(60)의 빔 조사 각도를 제어할 수 있다.
이에 따르면, 일예로 본 시스템(1)에 전방표시장치(60)가 존재하지 않는 경우, 사용자는 제2 경우일 때 우측을 바라본 상태로 스쿼트 운동을 수행하되, 이때 운동을 따라하면서 정확도 판단 결과를 실시간으로 확인하기 위해서는 고개를 정면으로 돌려야 하는 불편함이 있었다. 이는 사용자가 정확한 운동자세를 취하는 데에 있어서 방해되는 요소로 작용할 수 있다. 이러한 문제를 해소하고자, 본 장치(10)는 제2 경우일 때 전방표시장치(60)를 통해 우측면 상에 빔 데이터를 제공할 수 있으며, 이를 통해 사용자는 우측을 바라본 상태로 스쿼트 운동을 수행하면서도 고개를 따로 정면으로 돌릴 필요 없이 사용자가 바라보고 있는 시선 방향(우측)에 조사되는 빔 데이터를 토대로 실시간으로 정확도 판단 결과를 확인하고 정확한 자세로 운동을 따라할 수 있다.
또 다른 일예로, 상술한 설명에서와 같이 제3 경우일 때(즉, 사용자가 바닥에 누운 상태로 하늘(천장)을 바라보며 ‘누워서 하는 나비 스트레칭 자세’를 따라하는 경우일 때), 기기 제어부(15)는 빔 데이터가 집 공간 중 상측면 상에(특히, 사용자가 바라보고 있는 상측면(천장) 중 사용자의 가시 영역 내에) 조사되도록 전방표시장치(60)의 빔 조사 각도를 제어할 수 있다. 이를 통해, 사용자는 누워서 운동을 따라하면서도 전방표시장치(60)를 통해 천장에 실시간으로 조사된 빔 데이터 내 정확도 판단 결과를 토대로 자신이 취한 자세가 정확한지를 즉각 확인할 수 있다.
본 장치(10)는 사용자의 운동 방향 정보를 고려해 전방표시장치(60)를 통해 제공되는 빔 데이터의 빔 조사 각도를 달리함으로써, 사용자(20)가 보다 다양한 종류의 운동자세를 따라함에 있어서, 시선에 제약받는 것 없이 자유롭게 운동자세를 취하면서도 항시 정확도 판단 결과를 쉽게 확인 가능하도록 제공할 수 있다.
즉, 다양한 운동자세에 의하면 사용자가 누워서 위(천장, 하늘)를 보고 운동을 하거나 바닥(땅)을 보고 운동을 하는 등 다양한 방향에 시선을 두고 운동을 해야 하는 경우가 생길 수 있다. 그런데, 정확도 판단 결과가 일예로 특정 위치에 고정되어 있는 사용자 단말(30)의 화면(2)에만 표시되는 경우에는 사용자가 이를 확인하고자 할 때 현재 취하고 있는 운동자세에 틀어짐이 발생할 수 있다.
일예로, 사용자 단말(30)은 전면(정면)에 고정되어 있고 사용자가 누워서 천장을 바라보며 하는 운동을 따라하고 있다고 하자. 이때, 사용자가 정확도 판단 결과를 실시간으로 확인하고자 할 경우, 천장이 아닌 고개를 돌려 전면을 바라보아야 하며, 이에 따라 운동자세가 틀어질 수 있다. 즉, 정확도 판단 결과가 사용자 단말(30)의 화면(2)을 통해서만 제공되는 경우, 실시간으로 정확도 판단 결과의 확인시 사용자가 온전히 정확한 운동자세를 취하는 데에 있어서 방해가 된다고 할 수 있다.
이러한 문제점에 착안하여, 본 장치(10)는 전방표시장치(60)의 빔 조사 각도를 달리 제어함으로써, 전방표시장치(60)가 존재하지 않을 때 사용자가 정확도 판단 결과의 확인을 위해 항시 화면(2)을 응시해야 했던 시선 제약 문제를 해소할 수 있다. 구체적으로, 본 장치(10)는 사용자가 누워서 천장을 보고 운동을 수행하고 있는 경우에는 전방표시장치(60)를 통해 빔 데이터를 천장을 향해 조사함으로써, 사용자가 전면(사용자 단말의 화면이 위치한 전면)을 응시하지 않더라도, 천장을 바라보고 있는 상태에서도 정확도 판단 결과를 실시간으로 확인 가능하도록 할 수 있다. 즉, 사용자가 전면(사용자 단말의 화면이 위치한 전면)이 아닌 다른 방향에 시선을 두고 운동을 따라하고 있는 상황 속에서, 사용자는 전방표시장치(60)를 통해 다각도로 제공되는 빔 데이터로 하여금 자신이 시선을 둔 방향에서 실시간으로 정확도 판단 결과를 확인 가능 하면서도, 운동강사의 운동 자세를 따라 운동을 할 수 있도록 제공할 수 있다.
또한, 표시 제어부(13)는 제1 콘텐츠를 사용자 단말(30)의 화면의 제1 영역에 표시할 수 있다. 이때, 표시 제어부(13)는 제1 콘텐츠가 재생 중 일 때 사용자 단말(3)에서 콘텐츠 제어 명령을 사용자로부터 입력받은 것으로 감지된 경우, 사용자가 입력한 콘텐츠 제어 명령에 대응하는 콘텐츠 제어를 수행할 수 있다. 여기서, 콘텐츠 제어 명령은 일예로 콘텐츠 제어와 관련하여 사용자(20)가 발화한 명령 발화 음성 정보로서, 일예로 '일시정지', '재생'과 같은 발화 음성 정보일 수 있다.
이에 따르면, 표시 제어부(13)는 제1 콘텐츠의 재생 중에 콘텐츠 제어 명령으로서 '일시정지'라는 사용자(20)의 발화 음성 정보가 사용자 단말(30)에 입력된 경우, 입력된 콘텐츠 제어 명령에 응답하여 사용자 단말(30)의 화면에 표출된 재생 중 상태의 제1 콘텐츠를 일시정지 시킬 수 있다. 이후, 다시 콘텐츠 제어 명령으로서 '재생'이라는 사용자(20)의 발화 음성 정보가 사용자 단말(30)에 입력된 경우, 표시 제어부(13)는 사용자 단말(30)의 화면에 표출된 일시정지 상태의 제1 콘텐츠를 다시 재생되도록 제어할 수 있다.
이에 따르면, 표시 제어부(13)는 사용자의 발화 음성 정보에 기반한 콘텐츠 제어 명령을 토대로 사용자 단말(30)의 화면에 표출되는 제1 콘텐츠의 상태(일시정지 상태, 재생 상태 등)를 제어할 수 있다.
종래에는 운동 영상(제1 콘텐츠)에서 알려주는 운동 정보의 속도가 너무 빠름에 따라 사용자가 보고 따라하기에 너무 벅찬 경우, 혹은 운동 영상 내에서 제공하는 쉬는 시간(즉, 서로 다른 운동 자세를 알려줄 때 그 사이에 쉴 수 있게 하는 시간)(일예로 10초)이 사용자에게는 너무 짧아 쉬는 시간이 더 길게 필요한 경우일 때, 사용자가 운동 영상(제1 콘텐츠)을 잠시 멈추었다가 재생하는 등의 동작을 반복적으로 취하게 된다. 이때, 운동 영상을 멈추거나 다시 재생시키는 동작은 일반적으로 사용자가 사용자 단말(30)의 화면을 직접 터치함으로써 이루어지기 때문에, 운동 영상을 보며 운동을 따라하는 사용자로 하여금 번거롭고 불편하게 하는 단점이 있었다.
이에 반해, 본 장치(10)는 사용자의 발화 음성 정보에 기반한 콘텐츠 제어 명령을 토대로 사용자 단말(30)의 화면에 표출되는 제1 콘텐츠의 상태를 제어할 수 있는바, 사용자가 사용자 단말(30)의 화면을 직접 터치하지 않더라도 원격에서 제1 콘텐츠의 상태를 제어할 수 있으므로, 사용자가 불편함 없이 보다 편리하게 운동 영상(제1 콘텐츠)을 보며 운동을 따라할 수 있도록 제공할 수 있다.
이하에서는 상기에 자세히 설명된 내용을 기반으로, 본원의 동작 흐름을 간단히 살펴보기로 한다.
도 10은 본원의 일 실시예에 따른 3D 마커리스 모션 캡처 기반 3D 아바타 생성 방법에 대한 동작 흐름도이다.
도 10에 도시된 3D 마커리스 모션 캡처 기반 3D 아바타 생성 방법은 앞서 설명된 본 장치(10)에 의하여 수행될 수 있다. 따라서, 이하 생략된 내용이라고 하더라도 본 장치(10)에 대하여 설명된 내용은 3D 마커리스 모션 캡처 기반 3D 아바타 생성 방법에 대한 설명에도 동일하게 적용될 수 있다.
도 10을 참조하면, 단계S11에서 스켈레톤 생성부는, 입력 영상의 분석을 통해 입력 영상 내 사용자의 동작에 대응하는 스켈레톤(skeleton)을 생성할 수 있다.
이때, 스켈레톤 생성부는, 사용자의 몸 동작에 대한 키포인트를 기반으로 몸 동작에 대응하는 제1 스켈레톤을 생성하고, 사용자의 손 동작에 대한 키포인트를 기반으로 손 동작에 대응하는 제2 스켈레톤을 생성할 수 있다.
다음으로, 단계S12에서 3D 캐릭터 생성부는, 단계S11에서 생성된 스켈레톤을 이용하여 입력 영상 내 사용자의 동작과 대응되는 동작을 수행하는 동적 3D 캐릭터를 생성할 수 있다. 단계S12에서 3D 캐릭터 생성부는, 단계S11에서 생성된 제1 스켈레톤과 제2 스켈레톤을 결합한 통합 스켈레톤을 이용하여 동적 3D 캐릭터를 생성할 수 있다.
또한, 단계S12에서 3D 캐릭터 생성부는, 입력 영상의 제1 스켈레톤과 이전 영상의 제1 스켈레톤 간의 비교를 통해 상기 제1 스켈레톤의 변위 값을 보정하고, 제1 스켈레톤 내 키포인트 각각의 트랜스폼 값을 저장하고, 보정된 변위 값의 움직임 각도를 계산하여 3D 캐릭터의 관절을 트랜스폼 값에 대응되도록 회전시킴으로써 동적 3D 캐릭터를 생성할 수 있다.
또한, 단계S12에서 3D 캐릭터 생성부는, 입력 영상의 제2 스켈레톤과 이전 영상의 제2 스켈레톤 간의 비교를 통해 제2 스켈레톤의 변위 값을 보정하고, 제2 스켈레톤 내 키포인트 각각의 트랜스폼 값을 저장하고, 보정된 변위 값의 움직임 각도를 계산하여 3D 캐릭터의 관절을 트랜스폼 값에 대응되도록 회전시킴으로써 동적 3D 캐릭터를 생성할 수 있다.
다음으로, 단계S13에서 표시 제어부는, 단계S12에서 생성된 동적 3D 캐릭터를 사용자 단말의 화면에 표시할 수 있다.
상술한 설명에서, 단계 S11 내지 S13은 본원의 구현예에 따라서, 추가적인 단계들로 더 분할되거나, 더 적은 단계들로 조합될 수 있다. 또한, 일부 단계는 필요에 따라 생략될 수도 있고, 단계 간의 순서가 변경될 수도 있다.
본원의 일 실시 예에 따른 3D 마커리스 모션 캡처 기반 3D 아바타 생성 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
또한, 전술한 3D 마커리스 모션 캡처 기반 3D 아바타 생성 방법은 기록 매체에 저장되는 컴퓨터에 의해 실행되는 컴퓨터 프로그램 또는 애플리케이션의 형태로도 구현될 수 있다.
전술한 본원의 설명은 예시를 위한 것이며, 본원이 속하는 기술분야의 통상의 지식을 가진 자는 본원의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본원의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본원의 범위에 포함되는 것으로 해석되어야 한다.
1: 3D 마커리스 모션 캡처 기반 3D 아바타 생성 시스템
10: 3D 마커리스 모션 캡처 기반 3D 아바타 생성 장치
11: 스켈레톤 생성부
12: 3D 캐릭터 생성부
13: 표시 제어부
14: 판단부
15: 기기 제어부
20: 사용자
30: 사용자 단말
40: 네트워크
50: 복수의 카메라
60: 전방표시장치

Claims (4)

  1. 3D 아바타 생성 장치로서,
    입력 영상의 분석을 통해 상기 입력 영상 내 사용자의 동작에 대응하는 스켈레톤(skeleton)을 생성하는 스켈레톤 생성부;
    생성된 상기 스켈레톤을 이용하여 상기 입력 영상 내 사용자의 동작과 대응되는 동작을 수행하는 동적 3D 캐릭터를 생성하는 3D 캐릭터 생성부;
    상기 생성된 동적 3D 캐릭터를 화면에 표시하는 표시 제어부; 및
    운동 서비스를 제공하기 위해 사용자가 거주하는 공간에 마련된 복수의 카메라의 ON/OFF를 제어하는 기기 제어부를 포함하고,
    상기 기기 제어부는, 사용자에 의해 선택된 기등록 운동 영상 콘텐츠에서 식별되는 운동강사의 운동 방향 정보와 운동강사가 수행하는 운동의 운동종류, 및 상기 복수의 카메라 중 사용자 단말에 내장된 카메라인 제1 카메라를 통해 식별되는 사용자의 운동 방향 정보를 고려하여, 복수의 카메라 중 적어도 하나의 카메라를 선택적으로 ON 으로 제어하고,
    상기 표시 제어부는, 상기 선택적으로 ON으로 제어된 적어도 하나의 카메라를 통해 획득된 영상을 운동실행영상으로서 사용자 단말의 화면의 제2 영역에 표시하고, 상기 사용자 단말의 화면의 제1 영역에 상기 선택된 기등록 운동 영상 콘텐츠를 표시하고, 상기 제2 영역에 표시된 운동실행영상과 상기 제1 영역에 표시된 상기 선택된 기등록 운동 영상 콘텐츠를 기반으로, 두 영상 내 스켈레톤 데이터를 서로 비교함으로써 판단된 사용자의 운동자세의 정확도 결과를 사용자 단말의 화면에 표시하며,
    상기 복수의 카메라는, 사용자의 전방, 측면 및 상방 각각의 운동실행영상을 촬영하도록 마련되는 것인, 3D 아바타 생성 장치.
  2. 제1항에 있어서,
    상기 스켈레톤 생성부는,
    상기 사용자의 몸 동작에 대한 키포인트를 기반으로 상기 몸 동작에 대응하는 제1 스켈레톤을 생성하고, 상기 사용자의 손 동작에 대한 키포인트를 기반으로 상기 손 동작에 대응하는 제2 스켈레톤을 생성하며,
    상기 3D 캐릭터 생성부는, 상기 제1 스켈레톤과 상기 제2 스켈레톤을 결합한 통합 스켈레톤을 이용하여 상기 동적 3D 캐릭터를 생성하는 것인, 3D 아바타 생성 장치.
  3. 제2항에 있어서,
    상기 3D 캐릭터 생성부는,
    상기 입력 영상의 제1 스켈레톤과 이전 영상의 제1 스켈레톤 간의 비교를 통해 상기 제1 스켈레톤의 변위 값을 보정하고,
    상기 제1 스켈레톤 내 키포인트 각각의 트랜스폼 값을 저장하고,
    보정된 상기 변위 값의 움직임 각도를 계산하여 3D 캐릭터의 관절을 상기 트랜스폼 값에 대응되도록 회전시킴으로써 상기 동적 3D 캐릭터를 생성하는 것인, 3D 아바타 생성 장치.
  4. 제2항에 있어서,
    상기 3D 캐릭터 생성부는,
    상기 입력 영상의 제2 스켈레톤과 이전 영상의 제2 스켈레톤 간의 비교를 통해 상기 제2 스켈레톤의 변위 값을 보정하고,
    상기 제2 스켈레톤 내 키포인트 각각의 트랜스폼 값을 저장하고,
    보정된 상기 변위 값의 움직임 각도를 계산하여 3D 캐릭터의 관절을 상기 트랜스폼 값에 대응되도록 회전시킴으로써 상기 동적 3D 캐릭터를 생성하는 것인, 3D 아바타 생성 장치.
KR1020220026578A 2022-03-02 2022-03-02 3d 마커리스 모션 캡처 기반 3d 아바타 생성 장치 및 방법 KR102438488B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220026578A KR102438488B1 (ko) 2022-03-02 2022-03-02 3d 마커리스 모션 캡처 기반 3d 아바타 생성 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220026578A KR102438488B1 (ko) 2022-03-02 2022-03-02 3d 마커리스 모션 캡처 기반 3d 아바타 생성 장치 및 방법

Publications (1)

Publication Number Publication Date
KR102438488B1 true KR102438488B1 (ko) 2022-09-01

Family

ID=83282108

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220026578A KR102438488B1 (ko) 2022-03-02 2022-03-02 3d 마커리스 모션 캡처 기반 3d 아바타 생성 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102438488B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102596248B1 (ko) * 2022-12-30 2023-11-01 주식회사 쓰리아이 모션캡쳐 기반의 초실감형 컨텐츠 제공 방법 및 그를 위한 시스템

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170086317A (ko) * 2016-01-18 2017-07-26 한국전자통신연구원 타이밍 변환을 이용한 3차원 캐릭터 동작 생성 장치 및 방법
KR20200056602A (ko) * 2018-11-15 2020-05-25 송응열 객체 움직임 인식 방법 및 장치
KR20200060196A (ko) * 2018-11-21 2020-05-29 한국전자통신연구원 3차원 아바타 생성 장치 및 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170086317A (ko) * 2016-01-18 2017-07-26 한국전자통신연구원 타이밍 변환을 이용한 3차원 캐릭터 동작 생성 장치 및 방법
KR20200056602A (ko) * 2018-11-15 2020-05-25 송응열 객체 움직임 인식 방법 및 장치
KR20200060196A (ko) * 2018-11-21 2020-05-29 한국전자통신연구원 3차원 아바타 생성 장치 및 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102596248B1 (ko) * 2022-12-30 2023-11-01 주식회사 쓰리아이 모션캡쳐 기반의 초실감형 컨텐츠 제공 방법 및 그를 위한 시스템

Similar Documents

Publication Publication Date Title
US20230351663A1 (en) System and method for generating an avatar that expresses a state of a user
US11132533B2 (en) Systems and methods for creating target motion, capturing motion, analyzing motion, and improving motion
CN114981844A (zh) 3d身体模型生成
EP2203896B1 (en) Method and system for selecting the viewing configuration of a rendered figure
Kurillo et al. Real-time 3D avatars for tele-rehabilitation in virtual reality
JP7126812B2 (ja) 検出装置、検出システム、画像処理装置、検出方法、画像処理プログラム、画像表示方法、及び画像表示システム
KR20230107654A (ko) 보철 림을 위한 실시간 모션 전달
CN102622774A (zh) 起居室电影创建
CN117916776A (zh) 利用物理模拟的适配身体的配件
JP2022501732A (ja) 画像処理方法及び装置、画像デバイス並びに記憶媒体
KR102438488B1 (ko) 3d 마커리스 모션 캡처 기반 3d 아바타 생성 장치 및 방법
Tharatipyakul et al. Pose estimation for facilitating movement learning from online videos
Sénécal et al. Modelling life through time: cultural heritage case studies
KR20140009900A (ko) 로봇 제어 시스템 및 그 동작 방법
Alaoui et al. Ai-enabled high-level layer for posture recognition using the azure kinect in unity3d
CN117826976A (zh) 一种基于xr的多人协同方法及系统
KR20150044243A (ko) 손 아바타를 이용한 콘텐츠 제어가능 전자학습 장치 및 방법
JP2023057498A (ja) 画像の重ね合わせ比較による運動姿勢評価システム
Yang et al. Bimanual natural user interaction for 3D modelling application using stereo computer vision
Menache Motion capture primer
KR102669062B1 (ko) 운동 보조 서비스 제공 로봇 및 운동 보조 서비스 제공 방법
CN114356100B (zh) 健身动作指导方法、装置、电子设备及存储介质
WO2022123800A1 (ja) 情報処理装置、情報処理方法およびプログラム
Sutopo et al. Synchronization of dance motion data acquisition using motion capture
Huang et al. Interactive demonstration of pointing gestures for virtual trainers

Legal Events

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