KR102118937B1 - 3d 데이터서비스장치, 3d 데이터서비스장치의 구동방법 및 컴퓨터 판독가능 기록매체 - Google Patents

3d 데이터서비스장치, 3d 데이터서비스장치의 구동방법 및 컴퓨터 판독가능 기록매체 Download PDF

Info

Publication number
KR102118937B1
KR102118937B1 KR1020180155331A KR20180155331A KR102118937B1 KR 102118937 B1 KR102118937 B1 KR 102118937B1 KR 1020180155331 A KR1020180155331 A KR 1020180155331A KR 20180155331 A KR20180155331 A KR 20180155331A KR 102118937 B1 KR102118937 B1 KR 102118937B1
Authority
KR
South Korea
Prior art keywords
unit
data
animation
service device
position information
Prior art date
Application number
KR1020180155331A
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 KR1020180155331A priority Critical patent/KR102118937B1/ko
Application granted granted Critical
Publication of KR102118937B1 publication Critical patent/KR102118937B1/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
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/816Monomedia components thereof involving special video data, e.g 3D video
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Graphics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Health & Medical Sciences (AREA)
  • Economics (AREA)
  • Geometry (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Processing Or Creating Images (AREA)

Abstract

본 발명은 3D 데이터서비스장치, 3D 데이터서비스장치의 구동방법 및 컴퓨터 판독가능 기록매체에 관한 것으로서, 본 발명의 실시예에 따른 3D 데이터서비스장치는 게임 또는 애니메이션을 포함하는 3D 콘텐츠 내의 캐릭터에 관련되는 임의의 피사체에 대한 촬영영상을 수신하는 통신 인터페이스부, 및 수신한 촬영영상 내의 피사체에 대한 움직임을 추적해 움직임에 따른 피사체의 위치정보(Px, Py, Pz) 및 회전정보(Ox, Oy, Oz)를 추출하며, 추출한 위치정보 및 회전정보에서 비정상값이 발견되면 정상값을 갖는 위치정보 및 회전정보를 근거로 비정상값을 보정하는 제어부를 포함할 수 있다.

Description

3D 데이터서비스장치, 3D 데이터서비스장치의 구동방법 및 컴퓨터 판독가능 기록매체{Apparatus for Service of 3D Data and Driving Method Thereof, and Computer Readable Recording Medium}
본 발명은 3D 데이터서비스장치, 3D 데이터서비스장치의 구동방법 및 컴퓨터 판독가능 기록매체에 관한 것으로서, 더 상세하게는 가령 애니메이션 데이터 추출 엔진 등을 통해 사용자의 니즈(needs)에 부합하는 애니메이션 데이터를 제공하여 적은 인력과 시간에 의해서도 애니메이션의 자동 제작이나 애니메이션 콘텐츠 공급이 이루어지도록 하는 3D 데이터서비스장치, 3D 데이터서비스장치의 구동방법 및 컴퓨터 판독가능 기록매체에 관한 것이다.
오늘날의 3D(Three Dimensions) 콘텐츠는 그래픽 제작툴(예: Maya, 3DS MAX 등)을 이용하여 제작을 하기 때문에 그 3D 캐릭터의 퀄리티가 매우 중요하다. 예로부터 오늘까지의 그래픽 기술은 상당히 빠르게 발전해 왔지만 요즘 들어서는 그 속도가 매우 더디어졌으며, 반대로 현대 사용자들의 눈높이는 점점 높아지고 있다. 특히, 게임 애니메이션의 경우 3D 캐릭터의 퀄리티가 중요하게 요구되고 있다.
종래에는 게임엔진 상의 유니티(unity)와 3D 그래픽 툴 간의 데이터 연동 방법이 개시된 바 있다. 게임 제작시에 게임엔진에서 스테이지 즉 무대를 구성하기 위해, 필요한 에셋 즉 자산을 3D 그래픽 툴에서 제작하여 게임엔진으로 제공(export)한 후, 게임엔진과 3D 그래픽 툴상의 장면(scene)을 비교하면서, 게임엔진에서 배경 및 장면을 구성하여 3D 그래픽 툴과 게임엔진을 연동하는 방식이다.
그런데, 이러한 그래픽 제작툴을 사용함에도 불구하고 애니메이션 작업이나 섬세한 작업을 위해서는 상상 이상의 인력과 시간이 소요되는 문제가 있으며, 또 그러한 제작툴을 사용함에 있어 3D 캐릭터의 움직임에 오류가 발생하는 경우도 있어 캐릭터의 움직임이 콘텐츠상에서 자연스럽지 못한 문제도 발생하고 있다. 나아가, 최근에는 가령 게임 콘텐츠의 경우 소비자들의 눈높이가 높아지면서 3D 캐릭터를 실제 사람이 움직이는 것과 같이 표현해야 할 필요성도 제기되고 있다.
한국공개특허공보 제10-2016-0020639호(2016.02.24.) 한국공개특허공보 제10-2013-0138247호(2013.12.18.)
본 발명의 실시예는 가령 애니메이션 데이터 추출 엔진 등을 통해 사용자의 니즈에 부합하는 애니메이션 데이터를 제공하여 적은 인력과 시간에 의해서도 애니메이션의 자동 제작이나 애니메이션 콘텐츠 공급이 이루어지도록 하는 3D 데이터서비스장치, 3D 데이터서비스장치의 구동방법 및 컴퓨터 판독가능 기록매체를 제공함에 그 목적이 있다.
본 발명의 실시예에 따른 3D 데이터서비스장치는 게임 또는 애니메이션을 포함하는 3D(Three Dimension) 콘텐츠 내의 캐릭터에 관련되는 임의의 피사체에 대한 촬영영상을 수신하는 통신 인터페이스부, 및 상기 수신한 촬영영상 내의 상기 피사체에 대한 움직임을 추적해 상기 움직임에 따른 상기 피사체의 위치정보(Px, Py, Pz) 및 회전정보(Ox, Oy, Oz)를 추출하며, 상기 추출한 위치정보 및 상기 회전정보에서 비정상값이 발견되면 정상값을 갖는 상기 위치정보 및 상기 회전정보를 근거로 상기 비정상값을 보정하는 제어부를 포함한다.
상기 제어부는, 상기 피사체의 관절(skeleton)을 추적하여 상기 관절의 움직임에 대한 위치정보 및 회전정보를 각각 추출할 수 있다.
상기 제어부는, 상기 피사체의 임의 관절에 설정된 표식을 추적해 추출되는 위치정보 및 회전정보로부터 상기 비정상값을 판단해 낼 수 있다.
상기 제어부는, 사용자와의 인터페이스에 의해 상기 표식을 설정할 수 있다.
상기 제어부는, 인접하는 위치정보 및 회전정보와 비교해 기준을 벗어난 임의의 위치정보 및 회전정보를 상기 비정상값으로 판단할 수 있다.
상기 통신 인터페이스부는, 상기 캐릭터와 동일 또는 유사하게 모델링하여 형성한 대상물을 각도별로 촬영한 사진 데이터를 더 수신하며, 상기 제어부는, 상기 수신한 각도별 사진 데이터를 상기 피사체에 합성하여 3D 콘텐츠 제작시 활용되는 3D 데이터를 생성할 수 있다.
상기 제어부는, 상기 3D 데이터를 FBX(Filmbox) 포맷(.fbx)으로 변환하여 저장부에 저장시킬 수 있다.
또한, 본 발명의 실시예에 따른 3D 데이터서비스장치의 구동방법은 통신 인터페이스부 및 제어부를 포함하는 3D 데이터서비스장치의 구동방법으로서, 게임 또는 애니메이션을 포함하는 3D 콘텐츠 내의 캐릭터에 관련되는 임의의 피사체에 대한 촬영영상을 상기 통신 인터페이스부에서 수신하는 단계, 및 상기 제어부가, 상기 수신한 촬영영상 내의 상기 피사체에 대한 움직임을 추적해 상기 움직임에 따른 상기 피사체의 위치정보(Px, Py, Pz) 및 회전정보(Ox, Oy, Oz)를 추출하며, 상기 추출한 위치정보 및 상기 회전정보에서 비정상값이 발견되면 정상값을 갖는 상기 위치정보 및 상기 회전정보를 근거로 상기 비정상값을 보정하는 단계를 포함한다.
상기 보정하는 단계는, 상기 피사체의 관절을 추적하여 상기 관절의 움직임에 대한 상기 위치정보 및 상기 회전정보를 각각 추출할 수 있다.
상기 보정하는 단계는, 상기 피사체의 임의 관절에 설정된 표식을 추적해 추출되는 위치정보 및 회전정보로부터 상기 비정상값을 판단해 낼 수 있다.
상기 보정하는 단계는, 사용자와의 인터페이스에 의해 상기 표식을 설정하는 단계를 포함할 수 있다.
상기 보정하는 단계는, 인접하는 위치정보 및 회전정보와 비교해 기준을 벗어나는 위치정보 및 회전정보를 상기 비정상값으로 판단할 수 있다.
상기 구동방법은, 상기 캐릭터와 동일 또는 유사하게 모델링하여 형성한 대상물을 각도별로 촬영한 사진 데이터를 수신하는 단계, 및 상기 수신한 각도별 사진 데이터를 상기 피사체에 합성하여 3D 콘텐츠 제작시 활용되는 3D 데이터를 생성하는 단계를 더 포함할 수 있다.
상기 구동방법은, 상기 3D 데이터를 FBX(Filmbox) 포맷(.fbx)으로 변환하여 저장부에 저장시키는 단계를 더 포함할 수 있다.
나아가, 본 발명의 실시예에 따른 컴퓨터 판독가능 기록매체는, 3D 데이터서비스장치의 구동방법을 실행하기 위한 프로그램을 포함하는 컴퓨터 판독가능 기록매체로서, 상기 3D 데이터서비스장치의 구동방법은, 게임 또는 애니메이션을 포함하는 3D 콘텐츠 내의 캐릭터에 관련되는 임의의 피사체에 대한 촬영영상을 수신하는 단계, 및 상기 수신한 촬영영상 내의 상기 피사체에 대한 움직임을 추적해 상기 움직임에 따른 상기 피사체의 위치정보(Px, Py, Pz) 및 회전정보(Ox, Oy, Oz)를 추출하며, 상기 추출한 위치정보 및 상기 회전정보에서 비정상값이 발견되면 정상값을 갖는 상기 위치정보 및 상기 회전정보를 근거로 상기 비정상값을 보정하는 단계를 실행한다.
본 발명의 실시예에 따르면 실제 사진 기반의 3D 캐릭터가 실제 사람이 움직이는 것과 같은 움직임으로 화면에서 표현될 수 있을 것이다. 이로 인해 사용자들의 눈높이에 맞는 퀄리티의 3D 캐릭터를 구현할 수 있게 될 것이다.
또한, 애니메이션 작업 또는 섬세한 작업을 위하여 많은 인력과 시간이 필요하지 않게 될 것이다.
도 1은 본 발명의 실시예에 따른 3D 콘텐츠 서비스 시스템을 나타내는 도면,
도 2는 도 1의 3D 데이터서비스장치의 구조를 예시한 블록다이어그램,
도 3은 도 1의 3D 데이터서비스장치의 다른 구조를 예시한 블록다이어그램,
도 4는 도 2의 애니메이션 데이터처리부 또는 도 3의 애니메이션 데이터실행부의 세부 구조를 예시하여 나타낸 도면,
도 5는 도 4의 적용 예를 설명하기 위한 도면,
도 6은 도 5의 사진기반 모델링자동화부의 구조를 예시한 블록다이어그램,
도 7은 도 5의 애니메이션 추출엔진의 구조를 예시한 블록다이어그램,
도 8은 도 5의 애니메이션 추출엔진의 다른 구조를 예시한 블록다이어그램, 그리고
도 9는 본 발명의 실시예에 따른 3D 데이터서비스장치의 구동과정을 나타내는 흐름도이다.
이하, 도면을 참조하여 본 발명의 실시예에 대하여 상세히 설명한다.
도 1은 본 발명의 실시예에 따른 3D 콘텐츠 서비스 시스템을 나타내는 도면이다.
도 1에 도시된 바와 같이, 본 발명의 실시예에 따른 3D 콘텐츠 서비스 시스템(90)은 가령 게임이나 애니메이션 등의 3D 콘텐츠를 제공하기 시스템으로서, 사용자장치(101, 103), 통신망(110), 콘텐츠서비스장치(120) 및 3D 데이터서비스장치(130)의 일부 또는 전부를 포함한다.
여기서, "일부 또는 전부를 포함한다"는 것은 콘텐츠서비스장치(120)와 같은 일부 구성요소가 생략되어 시스템(90)이 구성되거나 콘텐츠서비스장치(120)와 같은 일부 구성요소가 통신망(110) 내의 네트워크장치(예: 무선교환장치 등)에 통합되어 구성될 수 있는 것 등을 의미하는 것으로서, 발명의 충분한 이해를 돕기 위하여 전부 포함하는 것으로 설명한다.
사용자장치(101, 103)는 사용자장치 1(101) 및 사용자장치 2(103) 중 적어도 하나의 사용자장치를 포함할 수 있다. 물론 그 이상의 사용자장치를 더 포함할 수 있다. 다만, 본 발명의 실시예에서는 콘텐츠서비스장치(120)로부터 게임 콘텐츠를 제공받는 경우나 애니메이션 제작의 경우 복수의 사용자장치가 사용되는 것이 바람직하며, 애니메이션과 같은 콘텐츠를 제공받는 경우에는 하나의 사용자장치가 사용되어도 무관하다.
사용자장치(101, 103)는 다양한 장치를 포함한다. 사용자장치(101, 103)는 애니메이션이나 게임 콘텐츠 제작 및 이를 이용하기 위한 랩탑컴퓨터, 데스크탑컴퓨터, 스마트폰, 스마트TV, 태블릿PC, 웨어러블장치, 또 게임기(예: 플레이스테이션) 등을 포함한다. 예를 들어, 콘텐츠 제작을 위하여 사용자장치(101, 103)는 3D 데이터서비스장치(130)에 접속하여 필요한 3D 데이터를 제공받을 수 있다. 예를 들어, 사용자장치(101, 103)는 콘텐츠 제작을 위하여 배경 이미지와 그 배경 이미지에 합성되는 객체 즉 캐릭터를 생성하게 되는데, 특히 게임 콘텐츠의 경우에는 이 캐릭터를 전문인력이 직접 그리는 경우에는 실제 인물과 많은 차이가 있을 수 있다. 물론 실제 인물과 흡사할 수 있겠지만, 사용자들은 실제 인물과 같은 수준의 퀄리티를 요구할 수 있다.
이에 따라, 콘텐츠 제작자는 사용자장치(101, 103)를 이용해 콘텐츠를 제작할 때, 특정 캐릭터와 해당 캐릭터의 움직임에 대한 3D 데이터를 3D 데이터서비스장치(130)로부터 제공받아 이를 콘텐츠 제작시 이용할 수 있다. 물론 특정 캐릭터의 다양한 움직임에 대한 3D 데이터가 준비되어 있기 때문에 이를 단순히 배경 이미지에 합성하는 형태로 게임 콘텐츠와 같은 3D 콘텐츠를 쉽게 제작할 수 있고, 또 실제 사진 기반으로 구축된 데이터를 이용할 수 있기 때문에 사용자들의 눈높이에 맞는 퀄리티의 콘텐츠를 제공할 수 있게 되는 것이다.
사용자장치(101, 103)에서 제작된 콘텐츠는 콘텐츠서비스장치(120)에 제공되어 DB(120a)에 저장될 수 있다. 따라서, 사용자장치(101, 103)는 콘텐츠서비스장치(120)를 운영하는 운영사의 사용자장치일 수 있지만, 콘텐츠만 공급하는 서드파티장치로서의 역할을 수행할 수도 있다. 또한, 사용자장치(101, 103)는 콘텐츠서비스장치(120)에 접속하여 콘텐츠를 제공받는 고객의 사용자장치가 될 수도 있다. 예컨대, 사용자장치 1(101) 및 사용자장치 2(103)는 콘텐츠서비스장치(120)에 접속하여 게임 서비스를 이용할 수 있을 것이다. 이의 경우, 사용자장치 1(101) 및 사용자장치 2(103)는 제어단말로서 동작할 수 있다. 다시 말해, 사용자장치 1(101) 및 사용자장치 2(103)의 사용자들은 동일 게임 화면에 접속하여 게임을 즐길 수 있게 된다. 이때 사용자장치(101, 103)를 통해서는 사용자들의 조작에 의한 제어정보(예: 캐릭터의 위치정보나 회전정보)가 실시간으로 콘텐츠서비스장치(120)에 제공되고 콘텐츠서비스장치(120)는 해당 제어정보를 기반으로 콘텐츠를 사용자장치 1(101) 및 사용자장치 2(103)로 각각 제공하게 되는 것이다.
상기한 바와 같이, 도 1에서는 사용자장치(101, 103)가 마치 콘텐츠 제작과 이용을 동시에 할 수 있는 것처럼 기술하고 있지만, 물론 그러한 경우도 불가능한 것은 아니지만, 무엇보다 사용자장치(101, 103)는 3D 데이터서비스장치(130)로부터 제공되는 3D 데이터를 이용하여 콘텐츠를 제작하는 제작자 단말일 수 있다는 것이고, 또 그 제작된 콘텐츠를 콘텐츠서비스장치(120)로부터 제공받는 고객 단말일 수 있다는 것을 설명하려는 것이므로, 위의 내용에 특별히 한정하지는 않을 것이다.
통신망(110)은 유무선 통신망을 모두 포함한다. 가령 통신망(110)으로서 유무선 인터넷망이 이용되거나 연동될 수 있다. 여기서 유선망은 케이블망이나 공중 전화망(PSTN)과 같은 인터넷망을 포함하는 것이고, 무선 통신망은 CDMA, WCDMA, GSM, EPC(Evolved Packet Core), LTE(Long Term Evolution), 와이브로(Wibro) 망 등을 포함하는 의미이다. 물론 본 발명의 실시예에 따른 통신망(110)은 이에 한정되는 것이 아니며, 향후 구현될 차세대 이동통신 시스템의 접속망으로서 가령 클라우드 컴퓨팅 환경하의 클라우드 컴퓨팅망, 5G망 등에 사용될 수 있다. 가령, 통신망(110)이 유선 통신망인 경우 통신망(110) 내의 액세스포인트는 전화국의 교환국 등에 접속할 수 있지만, 무선 통신망인 경우에는 통신사에서 운용하는 SGSN 또는 GGSN(Gateway GPRS Support Node)에 접속하여 데이터를 처리하거나, BST(Base Station Transmission), NodeB, e-NodeB 등의 다양한 중계기에 접속하여 데이터를 처리할 수 있다.
통신망(110)은 액세스포인트를 포함할 수 있다. 액세스포인트는 건물 내에 많이 설치되는 펨토(femto) 또는 피코(pico) 기지국과 같은 소형 기지국을 포함한다. 여기서, 펨토 또는 피코 기지국은 소형 기지국의 분류상 사용자장치(101, 103)를 최대 몇 대까지 접속할 수 있느냐에 따라 구분된다. 물론 액세스포인트는 사용자장치(101, 103)와 지그비 및 와이파이 등의 근거리 통신을 수행하기 위한 근거리 통신 모듈을 포함한다. 액세스포인트는 무선통신을 위하여 TCP/IP 혹은 RTSP(Real-Time Streaming Protocol)를 이용할 수 있다. 여기서, 근거리 통신은 와이파이 이외에 블루투스, 지그비, 적외선(IrDA), UHF(Ultra High Frequency) 및 VHF(Very High Frequency)와 같은 RF(Radio Frequency) 및 초광대역 통신(UWB) 등의 다양한 규격으로 수행될 수 있다. 이에 따라 액세스포인트는 데이터 패킷의 위치를 추출하고, 추출된 위치에 대한 최상의 통신 경로를 지정하며, 지정된 통신 경로를 따라 데이터 패킷을 다음 장치, 예컨대 콘텐츠서비스장치(120)나 3D 데이터서비스장치(130)로 전달할 수 있다. 액세스포인트는 일반적인 네트워크 환경에서 여러 회선을 공유할 수 있으며, 예컨대 라우터(router), 리피터(repeater) 및 중계기 등이 포함된다.
콘텐츠서비스장치(120)는 애니메이션, 가령 게임 콘텐츠를 제공한다. 물론 3D 형태로 제공하는 것이 바람직하다. 본 발명의 실시예에 따른 콘텐츠는 애니메이션 기법에 의해 생성된 콘텐츠에 해당된다. 다시 말해, 영화제작과 같이 카메라에 의해 촬영되어 형성한 콘텐츠라기보다는 복수의 정지 영상에 배경과 캐릭터를 그려 넣어 이를 빠르게 동영상의 형태로 구현하여 생성한 콘텐츠인 것이다. 그러나, 최근에는 애니메이션과 같이 캐릭터를 적용한 영화들도 많이 선보이고 있기 때문에 본 발명의 실시예에서는 위의 형태에 특별히 한정하지는 않을 것이다.
콘텐츠서비스장치(120)는 가령 게임 콘텐츠의 경우, 제작된 영상과 함께 해당 영상 내의 객체, 더 정확하게는 캐릭터들의 움직임에 대한 다양한 정보를 DB(120a)에 저장할 수 있다. 즉 캐릭터의 위치정보(Px, Py, Pz)와 회전정보(Ox, Oy, Oz)를 저장하는 것이다. 여기서, Px는 좌우방향, Py는 전후방향, Pz는 상하방향이 될 것이다. 이에 따라 가령 캐릭터가 사용자장치(101, 103)에서의 제어정보에 따라 전후방으로의 이동이 있을 수 있다. 이의 경우에는 위의 위치정보에서 Py 값이 변경될 것이다. 따라서, 콘텐츠서비스장치(120)는 그에 상응하는 배경 영상을 사용자장치(101, 103)로 제공하면 된다. 또한, 게임에서는 캐릭터가 단순히 위치정보의 변경을 넘어, 90도나 180도 등과 같이 회전하는 상황도 발생한다. 물론 이러한 회전은 사용자의 조작에 의한 것이다. 따라서, 사용자 조작에 의해 회전정보가 제공되면 콘텐츠서비스장치(120)는 그 회전정보에 상응하는 배경영상과 캐릭터영상을 사용자장치(101, 103)로 제공해 주게 된다.
이와 같이, 콘텐츠서비스장치(120)는 사용자장치(101, 103)의 사용자 조작에 따라 가령 게임 콘텐츠의 경우 입력되는 캐릭터의 위치정보 및 회전정보를 근거로 게임 영상을 실시간으로 제공해 주게 된다. 따라서, 해당 게임 영상은 게임 영상의 콘텐츠 제작시 미리 구축되어 있어야 하는 것이며, 또는 3D 데이터서비스장치(130)와 실시간으로 연동하여 사용자들에게 게임콘텐츠를 제공할 수 있어야 한다. 다시 말해, 사용자들이 특정 게임 콘텐츠에 접속하여 게임을 본격적으로 진행하기에 앞서 자신이 원하는 캐릭터를 선택하게 된다. 따라서, 콘텐츠서비스장치(120)는 사용자장치 1(101)과 사용자장치 2(103)가 어떠한 게임 콘텐츠를 선택했고, 또 어떠한 캐릭터를 선택했는지를 알 수 있다. 따라서, 해당 정보를 근거로 사용자장치 1(101) 및 사용자장치 2(103)로부터 게임을 진행하는 동안 위치정보와 회전정보가 제공되면 그에 맞는 게임 영상을 실시간을 제공하게 된다. 이때, 콘텐츠서비스장치(120)는 DB(120a)에 자체적으로 구축해 놓은 콘텐츠를 제공할 수도 있겠지만, 3D 데이터서비스장치(130)와 실시간으로 연동하여 제공하는 것도 얼마든지 가능할 수 있다. 즉, 콘텐츠서비스장치(120)는 특정 게임과 관련하여 배경이미지에 대한 데이터를 DB(120a)에 저장하고 있고, 캐릭터와 관련해서는 3D 데이터서비스장치(130)로부터 제공받아 합성하여 사용자장치(101, 103)로 제공할 수 있으므로, 본 발명의 실시예에서는 어느 하나의 형태에 특별히 한정하지는 않을 것이다.
3D 데이터서비스장치(130)는 게임 콘텐츠 등의 애니메이션 제작에 필요한 데이터를 제공한다. 이러한 제공은 제작자들이 운영하는 제작자 단말, 가령 사용자장치(101, 103)로 제공하거나 콘텐츠서비스장치(120)와의 연동에 따라 콘텐츠서비스장치(120)로 제공될 수도 있다. 예를 들어, 사용자장치(101, 103)를 사용하는 제작자들은 배경 이미지에 대한 제작을 완료한 상태에서 해당 배경 이미지에 넣을 캐릭터와 캐릭터의 움직임을 결정할 수 있다. 이때 3D 데이터서비스장치(130)에 접속하여 캐릭터를 선택하고 움직임 정보를 입력하면(예를 들어, 화면에서의 좌표값의 형태로 입력하면) 해당 움직임에 해당되는 캐릭터의 3D 데이터를 제공해 줄 수 있다. 다시 말해, 3D 데이터서비스장치(130)는 애니메이션 데이터 추출 엔진으로서의 역할을 수행한다고 볼 수 있다.
3D 데이터서비스장치(130)는 다양한 형태로 서비스를 제공할 수 있다. 가령, 툴(tool)을 사용자장치(101, 103)로 제공하여 이용하도록 할 수 있다. 또는 앱이나 웹을 통해 서버에 접속하여 서비스를 이용하도록 할 수도 있다. 3D 데이터서비스장치(130)는 사용자들의 눈높이에 맞는 퀄리티의 3D 데이터를 제공하기 위해 이후에 자세히 기술하겠지만, 별도의 시스템을 통해 데이터를 구축한다. 대표적으로 실제 인물의 사진 기반으로 캐릭터의 데이터를 생성한다. 예컨대, 축구 게임 콘텐츠를 사용자들에게 제공한다고 가정하면, 가령 호날두를 모델링한 대상을 형성한 후 이를 다양한 각도에서 사진 촬영을 수행한다. 이와 같이 다양한 각도에서 촬영된 사진 데이터가 게임 콘텐츠에서, 더 정확하게는 캐릭터로 구현되는 것이다.
또한, 3D 데이터서비스장치(130)는 게임을 즐기는 사용자들의 사용자장치(101, 103)에 대한 조작정보에 대응하는 게임 영상을 실시간으로 제공하기 위하여 다양한 위치정보와 회전정보에 기반한 3D 데이터를 구축하되, 영상분석 과정이나 혹은 기존의 영상분석 툴(예: Maya 등)에서 발생하는 오류를 보정하여 3D 데이터를 생성한다. 다시 말해, 게임 특성상 캐릭터의 움직임이 사용자의 조작에 대응하여 유연하게 화면에 나타나야 하지만, 부자연스러운 부분이 발견될 수 있다. 이는 미리 구축되어 있는 3D 데이터가 없거나 또는 잘못된 값에 의한 것일 수 있다. 따라서, 3D 데이터서비스장치(130)는 3D 데이터의 구축시 생성된 데이터를 다시 한번 검토하여 보정하는 동작을 수행할 수 있다.
예컨대, 3D 데이터서비스장치(130)는 3D 데이터 생성시 사용자, 혹은 시스템설계자와의 인터페이스(interface)에 의하여 캐릭터의 움직임을 얻기 위해 촬영되는 피사체의 관절에 설정한 표식을 기반으로 비정상적인 값을 찾아 보정할 수 있다. 물론 그러한 표식은 팔목 관절이나 발목 관절일 수 있는데, 한 곳에만 설정하여 이용될 수도 있다. 한 곳만 정보를 살펴서 그 정보에 관련되는 주변 정보를 보정하면 되는 것이다. 가령, 첫번째 내지 네번째 단위프레임에서 위치정보나 회전정보가 정상으로 판단되었으나, 다섯번째 단위프레임에서 비정상적인 값이 발견되었다고 가정하자. 이때 다섯번째 단위프레임에는 피사체의 여러 관절에 대한 위치정보와 회전정보가 포함될 수 있으므로, 한 곳의 즉 표식이 설정된 한 곳의 위치정보나 회전정보의 보정시 다른 관절의 위치정보나 회전정보도 함께 보정하는 것이다. 물론 이러한 보정은 이전 프레임과 이후 프레임의 정보들을 참조하여 유연(smoothing)하게 피사체의 동작이 이루어지도록 보정하는 것이 바람직하다. 피사체의 유연한 동작은 결국 콘텐츠 내의 캐릭터의 유연한 동작에 관련된다고 볼 수 있다.
결론적으로 본 발명의 실시예에 따른 3D 데이터서비스장치(130)는 사용자들의 눈높이에 맞는 퀄리티의 콘텐츠를 제공하기 위하여 인물의 실사진 기반의 데이터를 생성하는 과정과, 캐릭터의 정교한 움직임을 구현하기 위한 움직임정보 즉 위치정보와 회전정보를 생성하는 과정, 그리고 그 과정에 의해 획득된 사진 데이터와 정보를 결합하는 동작을 수행한다고 볼 수 있다. 이를 통해, 실사진 기반의 3D 데이터를 생성하여 구축하게 되는 것이다. 가령, 3D 데이터서비스장치(130)는 맵핑 방식에 의해 캐릭터를 나타내는 사진 데이터와 위치정보 및 회전정보를 나타내는 제어데이터를 매칭시켜 3D 데이터를 구축할 수 있지만, 입력정보가 있을 때 즉시 관련 3D 데이터를 생성하여 제공하는 것도 얼마든지 가능하므로, 본 발명의 실시예에서는 어느 하나의 형태에 특별히 한정하지는 않을 것이다.
도 2는 도 1의 3D 데이터서비스장치의 구조를 예시한 블록다이어그램이다.
도 2에 도시된 바와 같이, 본 발명의 실시예에 따른 도 1의 3D 데이터서비스장치(130)는 통신 인터페이스부(200) 및 애니메이션 데이터처리부(210)의 일부 또는 전부를 포함하며, 여기서 "일부 또는 전부를 포함"한다는 것은 앞서서의 의미와 동일하다.
통신 인터페이스부(200)는 통신망(110)을 경유하여 제작자 단말로서의 사용자장치(101, 103)와 통신을 수행하거나 콘텐츠서비스장치(120)와 통신을 수행할 수 있다. 본 발명의 실시예에서는 전자를 바람직하게 보고 있으므로, 전자를 중심으로 이하 설명하고자 한다.
통신 인터페이스부(200)는 사용자장치(101, 103)에서 3D 콘텐츠 제작을 위한 툴을 요청하는 경우, 이에 대한 다운로드 동작을 수행할 수 있다. 또는 서비스 접속을 요청하는 경우, 이에 대한 정보를 애니메이션 데이터처리부(210)에 제공하여 서비스를 이용하도록 할 수 있다.
또한, 통신 인터페이스부(200)는 사용자장치(101, 103)와 통신을 수행하면서 변/복조, 인코딩/디코딩, 먹싱/디먹싱 등의 다양한 동작을 더 수행할 수 있지만, 이는 당업자에게 자명하므로 더 이상의 설명은 생략하도록 한다.
애니메이션 데이터처리부(210)는 3D 콘텐츠를 제작하는 제작자 단말, 가령 사용자장치(101, 103)로부터 요청하는 3D 데이터를 제공한다. 따라서, 애니메이션데이터처리부(210)는 이러한 3D 데이터를 제공하기 위하여 별도의 DB와 연동할 수 있다. 예를 들어, 애니메이션 데이터처리부(210)는 일례로 사용자장치(101, 103)로부터 특정 캐릭터의 움직임과 관련한 정보를 제공하게 되면, 그에 상응하는 형태의 캐릭터 이미지 즉 실사진 기반의 3D 데이터를 제공할 수 있다. 물론 여기서 3D 데이터는 R, G, B 등의 화소에 대한 화소데이터와 캐릭터의 움직임에 대한 제어데이터(예: 위치정보, 회전정보)를 포함하는 의미일 수 있다.
예를 들어, 사용자장치(101, 103)로부터 축구선수 호날두가 경기장 바닥에 누워있는 모습을 배경이미지에 담기 위한 정보를 제공하였다면, 애니메이션 데이터처리부(210)는 수신된 정보를 근거로 정확히 매칭될 수 있는 실사진 기반의 이미지 데이터를 추출하여 사용자장치(101, 103)로 제어데이터와 함께 제공할 수 있다. 또는 사용자장치(101, 103)로부터 복수의 배경이미지에서 호날두의 움직이는 모습을 구현하고자 하여 이에 관련되는 움직임 정보를 주면, 애니메이션 데이터처리부(210)는 각 움직임 정보를 근거로 그에 매칭되는 사진 기반의 이미지 데이터를 제공하며, 이때 유연한 동작이 이루어지도록 관련 움직임 정보 즉 위치정보와 회전정보에 대한 제어 데이터를 제공하게 되는 것이다.
애니메이션 데이터처리부(210)는 사용자장치(101, 103)로부터 어떠한 정보를 제공받아 그에 관련되는 3D 데이터를 제공할지는 다양한 방법이 가능할 수 있으므로, 본 발명의 실시예에서는 어느 하나의 형태에 특별히 한정하지는 않을 것이다, 가령 사용자장치(101, 103)에서 배경 이미지에 캐릭터의 간략한 스케치만 한 상태의 정지영상을 제공할 경우, 애니메이션 데이터처리부(210)는 해당 정지영상을 분석하여 정교한 형태의 캐릭터가 삽입되도록 관련 데이터를 제공할 수 있다.
나아가, 애니메이션 데이터처리부(210)는 위의 3D 데이터를 제공하기 위하여 3D 데이터를 생성하여 구축하는 동작을 수행한다. 이와 관련해서는 이후에 자세히 설명될 것이므로 그 내용들로 대신하고자 한다.
도 3은 도 1의 3D 데이터서비스장치의 다른 구조를 예시한 블록다이어그램이다.
도 3에 도시된 바와 같이, 본 발명의 다른 실시예에 따른 3D 데이터서비스장치(130')는 통신 인터페이스부(300), 제어부(310), 애니메이션 데이터실행부(320) 및 저장부(330)의 일부 또는 전부를 포함한다.
여기서, "일부 또는 전부를 포함한다"는 것은 저장부(330)와 같은 일부 구성요소가 생략되어 3D 데이터서비스장치(130')가 구성되거나 애니메이션 데이터실행부(320)와 같은 구성요소가 제어부(310)와 같은 다른 구성요소에 통합되어 구성될 수 있는 것 등을 의미하는 것으로서, 발명의 충분한 이해를 돕기 위하여 전부 포함하는 것으로 설명한다.
도 3의 3D 데이터서비스장치(130')를 도 2의 3D 데이터서비스장치(130)와 비교해 볼 때, 도 2의 애니메이션 데이터처리부(210)가 도 3의 제어부(310)와 애니메이션 데이터실행부(320)로 이원화되어 구성되거나, 저장부(330)를 더하여 삼원화되어 구성될 수 있다는 데에 그 차이가 있다. 물론 그러한 분리는 하드웨어(H/W), 소프트웨어(S/W) 또는 그 조합에 의한 분리를 포함한다. 상기의 구성에 따라 제어부(310)는 제어동작만을 담당하고, 애니메이션 데이터실행부(320)는 3D 데이터 처리 동작만을 수행하게 된다.
예컨대, 제어부(310)는 통신 인터페이스부(300)로부터 수신된 사용자장치(101, 103)로부터의 애니메이션 3D 데이터 요청이 있으며, 이를 처리하기 위하여 애니메이션 데이터실행부(320)를 동작시킬 수 있다. 제어부(310)는 애니메이션 데이터실행부(320)의 요청에 따라 저장부(330)에 저장되어 있는 3D 데이터를 제공할 수도 있을 것이다. 그에 앞서 제어부(310)는 3D 데이터를 구축하기 위하여 애니메이션 데이터실행부(320)와 연동할 수 있다. 예를 들어, 제어부(310)는 실사진 기반의 캐릭터 이미지를 생성하고, 또 해당 캐릭터의 움직임이 정교하게 즉 유연하게 이루어지도록 하는 움직임 정보의 보정 동작을 위하여 애니메이션 데이터실행부(320)를 동작시킬 수 있다.
애니메이션 데이터실행부(320)는 본 발명의 실시예에 따른 3D 데이터 구축 동작과 그 구축된 3D 데이터를 서비스하는 동작을 수행한다. 3D 데이터 구축 동작은 게임 콘텐츠와 같은 애니메이션 제작자들이 적은 인력이나 시간을 투자하더라도 양질의 콘텐츠가 양산될 수 있도록 다양한 캐릭터와 관련한 3D 데이터를 제공하기 위한 것이고, 또 특정 캐릭터의 경우에는 실제 인물과 아주 흡사하도록 실사진 기반의 이미지 데이터를 제공할 수 있으며, 캐릭터가 애니메이션으로 구현될 때 사용자의 제어에 의한 캐릭터의 동작이 유연하게 이루어지도록 3D 데이터를 생성하여 구축하게 된다. 이를 위하여 애니메이션 데이터실행부(320)는 가령 캐릭터의 움직임과 관련되는 움직임 정보를 얻기 위한 피사체의 움직임 정보를 기반으로 비정상 구간이나 비정상값을 찾아, 이때 비정상값은 주변의 값들과 비교하여 비정상임을 판별하고 또 주변의 정상값들을 참조하여 비정상값을 유연한 동작이 이루어지도록 보정하게 된다. 이때, 움직임 정보는 피사체의 모든 관절에 대한 움직임 정보를 판단하여 비정상값을 보정한다기보다는 사용자가 설정한 특정 관절에 대하여만 추적하여 이를 근거로 해당 움직임 정보뿐 아니라, 다른 관절의 움직임 정보도 보정하는 것이다.
또한, 애니메이션 데이터실행부(320)는 3D 데이터의 구축이 완료되면, 사용자장치(101, 103)로부터 제공되는 요청을 확인하여 확인 결과를 기반으로 그에 부합하는 3D 데이터를 추출하여 제공할 수 있다. 물론 이러한 과정은 어떠한 방식으로 3D 데이터를 제공할지에 따라 다르게 동작될 수 있는 것이지만, 한가지 방법으로서 단순히 캐릭터를 선택하고 그 선택한 캐릭터의 움직임 정보를 제공하는 형태로 3D 데이터를 제공할 수 있겠지만, 다른 방법으로서 배경이미지에 스케치된 캐릭터의 움직임정보를 분석하여 이를 근거로 3D 데이터를 제공하는 것도 얼마든지 가능할 수 있을 것이다.
상기한 점들 이외에 기타 도 3의 통신 인터페이스부(300), 제어부(310), 애니메이션 데이터실행부(320) 및 저장부(330)와 관련한 자세한 내용은 도 1의 3D 데이터서비스장치(130)나 도 2의 통신 인터페이스부(200) 및 애니메이션 데이터처리부(210)의 내용과 크게 다르지 않으므로 그 내용들로 대신하고자 한다.
한편, 본 발명의 다른 실시예로서, 도 3의 제어부(310)는 CPU 및 메모리를 포함할 수 있다. 여기서, CPU는 제어회로, 연산회로(ALU), 명령어해석부 및 레지스트리 등을 포함할 수 있으며, 메모리는 램을 포함할 수 있다. 제어회로는 제어동작을 담당하고, 연산회로는 비트정보의 연산동작을 수행하며, 명령어해석부는 기계어 즉 비트정보을 해석하여 동작을 인식한다. 또한 레지스트리는 정보의 저장에 관여한다. 상기의 구성에 따라, CPU는 가령, 도 3의 애니메이션 데이터실행부(320)에 저장되어 있는 프로그램을 3D 데이터서비스장치130')의 초기 구동시 복사하여 메모리에 로딩하고 이를 실행시킴으로써 도 3에 비하여 데이터 연산처리속도를 빠르게 증가시킬 수 있다.
도 4는 도 2의 애니메이션 데이터처리부 또는 도 3의 애니메이션 데이터실행부의 세부 구조를 예시하여 나타낸 도면이며, 도 5는 도 4의 적용 예를 설명하기 위한 도면이다.
도 4에서의 애니메이션 데이터처리부(210') 또는 애니메이션 데이터실행부(320')는 도 2의 애니메이션 데이터처리부(210) 또는 도 3의 애니메이션 데이터실행부(320)의 일 예로서, 모델링 자동화부(400), 애니메이션 자동화부(410) 및 애니메이션 데이터생성부(420)의 일부 또는 전부를 포함하며, 여기서 "일부 또는 전부를 포함"한다는 것은 앞서서의 의미와 동일하다.
먼저, 모델링 자동화부(400)는 콘텐츠 내의 객체 특히 캐릭터를 실사진 기반의 데이터로 형성하기 위한 동작을 수행한다. 이를 위하여 모델링 자동화부(400)는 도 5에서와 같이, 캐릭터를 실제 모델링화하여 형성한 대상 즉 피사체(510)를 촬영하기 위한 제1 촬영장치에 연결되어 동작할 수 있다. 이의 경우, 모델링 자동화부(400)는 도 5에서와 같이 사진데이터를 이용하여 사진측량(photogrammetry) 기술을 적용해 3D 모델을 추출한다. 본 발명의 실시예에 따라 제1 촬영장치는 가령 복수의 카메라(501)를 포함하며, 복수의 카메라(501)는 별도로 설계된 인워드 기구(500)에 고정된다. 인워드 기구(500)에 고정된 대략 카메라 10대에 대한 상하 각도 조절이 가능하며, 기구 자체의 높이도 조절이 가능하다. 제1 촬영장치는 카메라 셔터 다중 제어회로가 제작된 구동부, 즉 PCB를 구비하며 카메라(501)에 케이블을 연결하여 특정 전력을 주어 카메라 10대의 셔터를 동시에 작동시킨다.
모델링 자동화부(400)는 카메라 10대가 장착된 인워드 기구(500)를 이용하여 피사체(510)의 주변을 돌면서 획득한 피사체(510)에 대한 사진 데이터를 수집한다. 사진측량기법을 이용하려면 피사체의 머리끝부터 발까지의 사진 데이터를 취득하여야 하는데 이를 하나하나 찍기에는 시간의 소요가 크므로, 별도로 제작된 인워드 기구(500)를 활용하여 가령 10대의 카메라(501)로 피사체(510)의 사진 데이터를 한번에 취득하는 것이다. 물론 각 카메라(501)의 셔터를 개별 제어할 수도 있겠지만, 본 발명의 특성상 카메라 다중 셔터 회로를 통해 버튼 하나로 10대의 카메라 셔터를 동시에 컨트롤하여 촬영을 수월하게 진행할 수 있다. 캐릭터를 실제 인물과 같은 모델을 통해 취득한 사진 데이터로 형성함으로써 사용자들의 눈높이에 맞는 퀄리티의 캐릭터를 제공할 수 있게 되는 것이다.
애니메이션 자동화부(410)는 가령 3D 콘텐츠의 제작시 캐릭터의 움직임에 대한 움직임 정보 즉 위치정보나 회전정보와 같은 제어정보에 매칭시키기 위한 3D 데이터, 더 정확하게는 제어데이터를 생성한다. 위의 모델링 자동화부(400)는 실물에 가까운 캐릭터를 구현하기 위해 각도별도 획득한 이미지에 대하여 화소데이터를 생성하기 위한 동작이라면, 애니메이션 자동화부(410)는 각도별 이미지에 매칭하기 위한 움직임 정보, 가령 위치정보나 회전정보와 같은 제어데이터를 생성하는 과정이라 볼 수 있다. 다시 말해, 3D 콘텐츠를 제작할 때 가령 게임 콘텐츠의 경우 사용자들의 사용자 조작에 따라 캐릭터나 주변 배경은 변경되어야 할 것이다. 이때, 캐릭터의 움직임은 단순한 위치변경일 수 있지만, 캐릭터가 가령 턴(turn) 동작을 수행하거나 공중 회전과 같은 동작을 수행할 수 있으므로, 이러한 사용자 조작에 부합하기 위한 데이터가 미리 구축되어 있어야 하는 것은 당연하다.
이를 위하여 애니메이션 자동화부(410)는 3D 콘텐츠의 제작시 이용할 수 있도록 다양한 움직임 정보, 즉 제어데이터를 생성할 수 있다. 이를 위하여 도 5에서와 같이 3D 카메라(520)를 이용하여 피사체(혹은 제2 피사체)를 촬영하여 획득한 촬영영상을 수신하게 된다. 3D 카메라(520)는 깊이(depth) 정보를 형성하기에 유용하기 때문에 사용되지만, 복수개의 2D 카메라를 사용하여 깊이 정보를 형성할 수도 있으므로, 본 발명의 실시예에서는 3D 카메라(520)에 특별히 한정하지는 않을 것이다. 애니메이션 자동화부(410)는 도 5에서와 같이 정형화된 툴 형태의 애니메이션 추출 엔진(410')을 적용할 수 있다. 다시 말해, 애니메이션 추출은 3D 카메라(520)로 피사체의 움직임을 촬영하고 매 (단위) 프레임마다 촬영 데이터를 애니메이션 추출 엔진(410')에 입력해 준다. 엔진에서는 이 데이터를 이용하여 각 관절에 대한 위치(position)값을 가령 FBX 데이터로 변경하여 FBX 파일 형태로 추출 혹은 생성할 수 있다.
가령, 애니메이션 자동화부(410)는 도 5에서와 같은 애니메이션 추출 엔진(410')으로서 키넥트를 이용하여 오픈소스로 내놓은 키넥트 전용 동작 기록 형태 데이터 추출 엔진을 활용하는 경우에는 튀는 값이 발생할 수 있다. 일종의 오류가 발생하는 것이다. 즉 현재 시장에 출시되어 있는 알고리즘은 위치와 회전 추적 도중 순간적으로 값이 튀는 현상이 발생할 수 있다. 즉 위치나 회전값이 비정상적으로 요동치는 현상이 발생하게 되는 것이다.
다시 말해, 애니메이션 자동화부(410)는 3D 카메라(520)를 이용하여 촬영한 영상을 입력받아 영상의 매 프레임마다 피사체의 각 관절의 위치정보와 회전정보를 3D 데이터로 출력해주는 역할을 수행한다. 이때, 기존에 상용화된 엔진을 활용하는 경우, 위에서와 같이 비정상적으로 요동치는 구간이 발견될 때, 이를 보정하여 3D 데이터를 생성하게 된다. 이와 관련해서는 이후에 좀더 다루기로 한다.
애니메이션 데이터생성부(420)는 모델링 자동화부(400) 및 애니메이션 자동화부(410)에 각각 제공되는 사진 데이터와 제어데이터를 조합(혹은 결합)하여 실 사진 기반의 3D 모델링 데이터를 생성한다. 여기서, 3D 모델링 데이터는 3D 콘텐츠의 캐릭터와 관련하여 실제 인물과 흡사한 모델의 사진을 기반으로 생성한 데이터이고, 또 캐릭터가 사용자의 조작에 의해 이동하고 회전할 때 동작이 실제 인물의 동작과 같이 자연스럽게 이루어지도록 한 제어데이터를 포함하는 것이다.
애니메이션 데이터생성부(420)는 도 5에서와 같이, 특정 포맷으로 3D 데이터를 생성할 수 있다. 가령 특정 그래픽 툴을 이용하여 서로 다른 FBX 파일을 하나로 합쳐주어 하나의 애니메이션이 동작하는 모델을 완성하게 되는 것이다. 예를 들어, 30장의 정지 영상으로 이루어진 배경이미지에 축구선구 호날두와 같은 캐릭터가 골을 득점하는 상황을 구현해야 한다고 가정해 보자. 이의 경우, 준비된 배경 이미지의 정지 영상 각각에 캐릭터의 움직임에 대한 모습을 그려넣어야 할 것이다. 이때, 각 움직임에 대한 모습과 각 움직임에 대한 움직임정보(예: 위치정보, 회전정보)를 단순히 가져다 쓰는 방식으로 3D 콘텐츠를 제작할 수 있다면, 또 해당 캐릭터의 움직임이 자연스럽게 구현될 수 있도록 하는 3D 데이터라면 사용자들의 니즈에 부합한 3D 콘텐츠가 제작될 수 있다는 것은 분명하다.
이를 위하여 가령 3D 캐릭터에 뼈를 심는 작업 즉 리깅(Rigging) 작업이 완료된 모델을 가지고 애니메이션 제작 툴의 일종인 그래픽 툴의 좌표값과 영상의 좌표값을 매핑할 수 있는데, 가령 관절의 위치 좌표값을 입력하여 애니메이션 데이터를 뽑아내고 즉 추출하고, 그 애니메이션 데이터를 그래픽 툴이나 게임 개발 툴에서 그대로 적용하여 작업하면 애니메이션이 들어간 3D 모델이 될 수 있다. 이러한 과정에 사용되는 애니메이션 데이터는 애니메이션 데이터생성부(420)에서 생성되어 별도로 저장된 데이터가 될 것이다. 가령 "매핑"은 화면 전체의 시작 좌표값과 끝 좌표값을 맞추어주고, 영상에서 시작 좌표값과 끝 좌표값을 더하여 픽셀 수로 나눈 뒤 매핑하는 방식으로 이루어질 수 있을 것이다.
도 6은 도 5의 사진기반 모델링자동화부의 구조를 예시한 블록다이어그램이다.
도 6에 도시된 바와 같이, 도 5의 사진기반 모델링자동화부(400')는 이미지 획득부(600), 이미지 판독부(610), 자동모델링부(620) 및 출력부(630)의 일부 또는 전부를 포함하며, 여기서 "일부 또는 전부를 포함"한다는 것은 앞서서의 의미와 동일하며, 위의 구성요소들을 하드웨어, 소프트웨어 혹은 그 조합에 의해 구성된다.
이미지 획득부(600)는 도 5의 다수의 카메라(501)로부터 다양한 각도별 사진 이미지를 취득한다. 예를 들어, 하나의 각도에서 10장의 정지형태의 사진 이미지를 수신하는 것이다. 이때, 이미지 획득부(600)는 가령 10°단위로 피사체(510) 주변을 돌면서 촬영을 하는 임베디드 프로그램이 탑재된 인워드 기구(500)를 이용해 촬영하여 기존의 한장씩 촬영하던 방식에서 시간이 훨씬 단축된 촬영영상을 취득할 수 있고, 이에 따라 보편화된 돔형 스튜디어보다는 비용을 절감시킬 수 있다.
이미지 판독부(610)는 이웃된 사진의 공통된 특징점을 찾아 생성된 버텍스(vertex)의 위치정보와 색상정보를 이용하여 3D 모델의 메쉬(mesh)를 생성한다. 다시 말해, 이미지 획득부(600)를 통해 취득된 이미지는 피사체(510)의 일부에 대한 사진 이미지이므로, 사진을 분석하여 하나의 각도에서(또는 다양한 각도에서)의 3D 모델을 생성해야 한다. 이와 같이 3D 모델을 생성하기 위하여 이미지 판독부(610)는 위에서와 같이 특징점과 버텍스의 위치정보 및 색상정보를 이용할 수 있는 것이다. 물론 이는 하나의 예시에 불과하다. 다시 말해, 템플릿 방식으로 이미지를 학습시켜 최종적으로 어느 부위인지를 판별하는 방식도 얼마든지 가능할 수 있기 때문이다. 가령, 얼굴 사진 이미지를 분석하여 얼굴이 판단되면, 목 부위의 사진 이미지를 연결해야 하고, 또 팔과 몸통, 다리에 해당되는 사진 이미지를 차례대로 조합해야 한다. 이때, 사진 이미지에서 특징점을 찾아 해당 이미지가 피사체의 어느 부위에 해당하는지 알 수 있게 되고, 또 조합 또는 결합시 정확한 결합을 위하여 위치정보나 색상정보를 이용하는 것은 당연하다. 이러한 규칙은 미리 저장되어 있는 설정정보를 근거로 판단과 조합이 이루어질 수 있을 것이다. 이러한 과정을 통해 이미지 판독부(610)는 3D 모델의 메쉬(mesh)를 생성하게 된다. 즉 다양한 각도별 3D 모델을 생성하는 것이다.
좀더 첨언하면, 이웃된 사진에서 영상 내 좌, 우 관심영역(ROI)을 설정할 수 있다. 예컨대 좌 영상의 우측 관심영역과 우 영상의 좌측 관심영역은 어느 정도 겹쳐진다. 이렇게 겹쳐지는 부분에서 가령 특징점 검출 알고리즘을 이용하여 두 점을 매칭하는 알고리즘 방식을 사용하여 공통된 특징점을 찾아낼 수 있다. SIFT, SURF, ASIFT, PSURF 등 다양한 알고리즘이 적용될 수 있다. 특징점은 영상 내에서 '점'일 수 있지만, 실제로는 '점', '선', '면' 중에 겹쳐지는 특징이 될 수 있다. 선은 점으로 이루어져 있고, 면은 선과 점으로 결국 이루어진 것이기 때문이다. 또한, 꼭지점에서 색상 및 영상 기울기(orientation) 변화량이 작으면 특징점이라고 인식할 수도 있고 아닐 수도 있기 때문에, 특징점은 영상 내에서 뭔가 확실한 변화요소(또는 변화량)를 가지는 버텍스, 라인, 메쉬 등을 모두 포함하는 의미이다. 가령, 지문 인식은 사람들마다 서로 다른 특징점을 이용하는 것이므로, 결국 특징점은 개별 주체(예: 특정 영상, 또는 객체 등)가 가지는 고유정보인 것이다.
자동 모델링부(620)는 이미지 판독부(610)의 데이터를 통하여 정밀화되지 않은 데이터들을 취합하여 텍스쳐를 입힌다. 이를 통해 모델링 단계의 정밀화되지 않은 데이터를 정밀화하는데 소비되는 시간과 인력을 최소화할 수 있다. 즉 자동 모델링을 통해 정밀화되지 않은 메쉬와 텍스쳐를 보다 깨끗하고 정돈된 데이터를 추출(혹은 생성해 출력)해 줄 수 있다. 이를 위하여 자동 모델링부(620)는 도 6에서와 같이 모델링부(621), 텍스쳐링부(623), 레토폴로지부(625), UV부(627) 및 리깅부(629)의 일부 또는 전체 동작을 수행할 수 있다.
예컨대, 자동 모델링부(620)는 이미지 판독부(610)에서 만들어진 메쉬에 입력된 사진 데이터들을 이용하여 텍스쳐를 입히고, 이 3D 데이터에 리깅(Rigging) 작업을 통하여 뼈대를 심어준다. 다시 말해, 모델링 단계의 리깅 작업은 가령 그래픽 툴을 이용하여 손목과 발목까지 자동으로 리깅해 준 것을 넘어 손가락과 발까지 리깅 자동화를 하여 리깅 작업에 소비되는 시간과 인력을 최소화할 수 있다.
요약하면, 자동 모델링부(620)는 이미지 판독부(610)를 통해 정밀화되지 않은 데이터가 입력될 때 이를 기설정된 포맷으로 자동으로 가공한다. 즉 수정한다. 이때, 수정되는 부분은 다양할 수 있지만, 본 발명의 실시예에서는 모델 생성, 텍스쳐링, 모델링 및 리깅 등 다양한 방식으로 가공한다. 예컨대, 자동 모델링은 정밀화된 작업을 통해 나온 속칭 '조감도'를 의상 조감도의 앞쪽, 뒤쪽 영역의 유사도를 서로 판단하여 텍스쳐링과 맵핑을 자동적으로 맞추어 준다던지 하는 등의 작업을 하는 것이다. 리깅 작업은 OpenCV(Open Source Computer Vision)의 라이브러리를 이용하여 짜여진 골격을 토대로 3D 모델에 뼈를 심어 이를 토대로 3D 데이터화시키게 된다. 여기서, OpenCV는 컴퓨터 영상처리 프로그래밍을 위한 기능패키지로서, 주로 실시간 컴퓨터 비전을 목적으로 한 프로그래밍 라이브러리이다.
출력부(630)는 자동 모델링부(620)에서 생성된 완성된 3D 모델링 데이터를 출력해 준다. 더 정확하게는 가령 도 4의 애니메이션 데이터생성부(420)로 출력해 준다고 볼 수 있다. 이의 과정에서 출력부(630)는 도 5에서와 같이 FBX 포맷을 생성하여 데이터를 출력할 수 있을 것이다.
도 7은 도 5의 애니메이션 추출엔진의 구조를 예시한 블록다이어그램이다.
도 4의 애니메이션 자동화부(410)는 도 7에서와 같은 애니메이션 자동화부(410')의 형태를 가질 수 있으며, 필터부(700), 영상분석부(710) 및 FBX 파일처리부(720, 730, 740)의 일부 또는 전부를 포함하며, 여기서 "일부 또는 전부를 포함"한다는 것은 앞서서의 의미와 동일하다.
필터부(700)는 필터를 포함하며 이를 통해 가령 도 5의 (b)에서와 같은 3D 카메라(520)를 통해 입력된 데이터를 필터링하여 3D 카메라로 측정한 위치값의 튀는 값을 잡아줄 수 있다. 여기서, 필터란 필터링 기능을 수행하는 알고리즘일 수 있다. 이러한 알고리즘은 입력된 촬영영상에서 R, G, B의 픽셀에 해당하는 화소값을 보정하는 방식으로 위의 튀는 값을 잡아줄 수 있겠지만, 본 발명의 실시예에서는 이러한 방식에 특별히 한정하지는 않을 것이다. 가령, 화소보간법이 적용될 수 있다. 이전 단위프레임과 이후 단위프레임 사이에 화소값을 비교하여 화소값이 급격한 변화가 감지되면 해당 부분의 화소값을 그 중간값으로 수정해 주는 것이다.
영상분석부(710)는 필터부(700)를 통해 보정된 촬영영상을 분석하여 피사체의 움직임, 더 정확하게는 피사체의 여러 관절을 기준으로 피사체의 움직임을 분석한다. 다시 말해, 피사체의 움직임을, 즉 위치와 회전을 관절의 움직임을 통해 파악하는 것이다. 이와 같이 영상분석부(710)는 입력된 영상에 대한 즉, 각 단위 프레임별 피사체의 움직임에 대한 위치정보와 회전정보를 추출하여 출력하다.
FBX 파일처리부(720~740)는 FBX sdk를 이용하여, 가령 키트의 형태로 이용하여 매 프레임마다 위치값을 FBX 포맷의 파일로 추출(혹은 생성)한다.
도 7의 애니메이션 자동화부(410')는 가령 기존의 상용화되어 있는 툴을 적용할 때, 간단히 필터부(700)를 추가함으로써 본 발명의 실시예에서 얻고자 하는 제어데이터를 생성할 수 있음을 보여주는 것이라 볼 수 있지만, 본 발명의 실시예에서는 그 내용에 특별히 한정하지는 않을 것이다.
도 8은 도 5의 애니메이션 추출엔진의 다른 구조를 예시한 블록다이어그램이다.
도 4의 애니메이션 자동화부(410)는 도 8에서와 같은 애니메이션 자동화부(410")의 형태를 가질 수도 있으며, 영상 입력부(800), 사용자 설정부(810), 영상분석 및 바디분석부(820), 자동 보정부(830) 및 정보 추출부(840)의 일부 또는 전부를 포함할 수 있으며, 여기서 "일부 또는 전부를 포함"한다는 것은 앞서서의 의미와 동일하다.
애니메이션 자동화 기능을 이용하기 위하여 영상 입력부(800)는 촬영해 놓은 영상의 프레임을 입력받거나, 촬영을 하면서 매 프레임을 입력받을 수 있다. 후자의 경우는 이미 도 5를 통해 확인한 바 있다. 하지만, 이외에도 영상 입력부(800)는 전자의 경우와 같이 이미 촬영되어 있는 영상을 제공받을 수도 있다.
사용자 설정부(810)는 사용자가 영상 입력부(800)에 입력된 영상에서 초기 피사체의 위치와 회전을 추적할 관절에 가령 마우스 포인터로 클릭하여 표식, 가령 점을 찍어줄 수 있다. 따라서, 사용자 설정부(810)는 마우스나 키보드와 같은 사용자 인터페이스부이거나 이에 연동할 수 있다. 사용자와의 인터페이스에 의해 피사체의 특정 부위에 표식을 설정할 수 있다면 어떠한 방식도 무관하다. 예를 들어, 30장의 단위프레임 영상이 입력되면, 사용자는 첫번째 프레임에서 피사체의 추적할 관절에 표식을 설정할 수 있을 것이다. 이후에 설명하겠지만, 엔진은 바로 그 점을 추적하여 위치와 회전값을 3D 데이터로 추출해 주게 되는 것이다.
예를 들어, 사용자가 영상 입력부(800)로 입력된 영상의 초기 피사체의 위치값과 회전값 추적을 용이하게 하기 위해 영상의 x, y, z값의 시작값과 끝값을 정해 주고 각 관절에 대한 좌표값과 회전값을 입력해 주어 관절들의 초기값을 정해주는 것이다. 여기서, 시작값과 끝값을 정해주기 위하여 화면 전체의 시작 좌표값과 끝 좌표값을 입력하면 영상에서 시작 좌표값과 끝 좌표값을 더하여 픽셀 수로 나누어 주면 픽셀 당 위치값의 계산이 가능하게 된다. 관계식은 <수학식 1>과 같다.
<수학식 1>
(x0, y0, z0) + (xn, yn, zn) / n
(여기서, (x0, y0, z0) = 초기값, n = 픽셀수)
영상분석 및 바디분석부(820)는 골격 추적(skeleton tracking) 기술을 이용하여 관절의 위치와 회전값을 반환한다. 다시 말해, 피사체의 관절은 팔과 다리, 목 등 다양할 수 있다. 이와 같이 다양한 관절에 대하여 위치와 회전값을 반환하되, 특정 관절은 사용자가 표식을 설정한 관절에 해당될 수 있다.
자동 보정부(830)는 위치와 회전을 추적한 후 3D 데이터를 검토하여 튀는 값이 발생한 지점 즉 위치나 회전값이 비정상적으로 요동치는 지점을 관계식 혹은 관계식을 실현하는 알고리즘을 이용하여 튀는 값을 정상값으로 자동 보정해 준다.
먼저, 위치값 자동 보정은 <수학식 2>에 의해 이루어질 수 있다.
<수학식 2>
v = (pt+n - pt-1) / (Ft+n - Ft-1)
여기서, v는 속력, t는 시간, pt는 튀는 값, pt+n은 정상값, Ft는 현재 프레임수)
속력 = 거리/시간을 이용하여 처음으로 튀는 값이 발견되었을 때 이전 값과 튀는 값 이후의 정상값을 이용하여 프레임 수를 나누게 되면 프레임 당 위치값의 이동속도가 나온다. 각 x, y, z 위치값을 대입하여 보정한다.
위에서 구한 이동속도를 이용하여 pt = pt-1 + (v × 단위프레임)에 대입하고 나온 값으로 튀는 값을 대체한다. 이런 과정을 거치면 요동치던 위치값의 파형이 잔잔해지게 된다. 각 x, y, z 위치값을 대입하여 보정한다.
회전 값의 자동 보정은 각 관절을 연관있는 관절끼리 묶어서 위치값과 마찬가지로 3D 데이터 결과의 파형이 요동치는 부분을 튀는 값으로 간주하여 각 관절 양 옆의 관절의 회전값을 토대로 튀는 값을 가진 관절의 회전값을 보정해 준다. 각 x, y, z 회전값을 보정한다.
위에서, 파형은 결과값을 수치화하여 화면에 표시하였을 때, 또는 오실로스코프상에서 확인하였을 때를 나타낼 수 있는 것이므로, 본 발명의 실시예에서는 특정 단위 프레임의 임의 지점(예: 관절)의 값이 주변의 값과 비교하여 매우 차이가 있다고 판단될 때, 또 그 판단한 값이 기준값이나 기준범위를 벗어날 때 튀는 값이라 판단할 수 있는 것이므로, 본 발명의 실시예에서는 그 판단 방법을 어느 하나의 형태에 특별히 한정하지는 않을 것이다.
가령, 사용자가 표식을 설정한 관절마다 집합이 있다고 가정해 보자. 이의 경우 팔 관절 집합(예: 1번 관절, 2번 관절, 3번 관절 등)이 있다고 생각하면 2번 관절에 대한 보정은 1번 관절과 3번 관절에 의해 결정될 수 있다. 사람의 관절로 생각해 보면 손을 뒤집을 때 팔꿈치 관절을 움직이지 않고 뒤집는 데에는 자연스럽지 않은 부분이 있으므로 이를 생각하면 이해가 쉬울 것이다.
자동 보정이 완료되면, 정보 추출부(840)는 지금까지의 과정에 의하여 생성된 데이터를 사용자가 원하는 파일 포맷으로 추출해 준다. 물론 이러한 파일 포맷 생성은 도 4의 애니메이션 데이터생성부(420)에서 이루어질 수도 있으므로 이의 경우에는 데이터를 변환하는 동작만을 수행할 수 있을 것이다.
도 9는 본 발명의 실시예에 따른 3D 데이터서비스장치의 구동과정을 나타내는 흐름도이다.
설명의 편의상 도 9를 도 1과 함께 참조하면, 본 발명의 실시예에 따른 3D 데이터서비스장치(130)는 애니메이션 내의 객체 즉 캐릭터와 관련되는 임의의 피사체에 대한 촬영영상을 수신한다(S900). 이는 도 5의 (b)에 해당될 수 있다.
이어, 3D 데이터서비스장치(130)는 수신한 촬영영상 내의 피사체에 대한 움직임을 추적해 움직임에 따른 피사체의 위치정보 및 회전정보를 추출하며, 추출한 위치정보 및 회전정보에서 비정상값이 발견되면 정상값을 갖는 위치정보 및 회전정보를 근거로 비정상값을 보정한다(S910). 이와 같이 비정상값을 보정함으로써 특정 캐릭터의 움직임이 3D 콘텐츠 내에서 유연하게 이루어지도록 할 수 있을 것이다.
이외에도 3D 데이터서비스장치(130)는 다양한 동작을 수행할 수 있지만, 이와 관련해서는 앞서 충분히 설명하였으므로, 앞서의 내용들로 대신하고자 한다.
한편, 본 발명의 실시예를 구성하는 모든 구성 요소들이 하나로 결합하거나 결합하여 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시 예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위 안에서라면, 그 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성 요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수 개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 그 컴퓨터 프로그램을 구성하는 코드들 및 코드 세그먼트들은 본 발명의 기술 분야의 당업자에 의해 용이하게 추론될 수 있을 것이다. 이러한 컴퓨터 프로그램은 컴퓨터가 읽을 수 있는 비일시적 저장매체(non-transitory computer readable media)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 발명의 실시 예를 구현할 수 있다.
여기서 비일시적 판독 가능 기록매체란, 레지스터, 캐시(cache), 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라, 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로, 상술한 프로그램들은 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리 카드, ROM 등과 같은 비일시적 판독가능 기록매체에 저장되어 제공될 수 있다.
이상에서는 본 발명의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안 될 것이다.
101, 103: 사용자장치 110: 통신망
120: 콘텐츠서비스장치 130, 130': 3D 데이터서비스장치
200, 300: 통신 인터페이스부 210, 210': 애니메이션 데이터처리부
310: 제어부 320, 320': 애니메이션 데이터실행부
330: 저장부 400: 모델링 자동화부
410, 410', 410": 애니메이션 자동화부 420: 애니메이션 데이터생성부
500: 인워드 기구 501: 카메라
510: 피사체 520: 3D 카메라
600: 이미지 획득부 610: 이미지 판독부
620: 자동 모델링부 630: 출력부
700: 필터부 800: 영상 입력부
810: 사용자 설정부 820: 영상분석 및 바디분석부
830: 자동 보정부 840: 정보 추출부

Claims (15)

  1. 게임 또는 애니메이션을 포함하는 3D(Three Dimension) 콘텐츠 내의 캐릭터에 관련되는 임의의 피사체에 대한 촬영영상을 수신하는 통신 인터페이스부; 및
    상기 촬영영상으로부터 3D 데이터를 생성하여 상기 통신 인터페이스부를 통해 사용자 장치에 제공할 수 있는 애니메이션 데이터처리부를 포함하고,
    상기 애니메이션 데이터처리부는,
    수신한 상기 촬영영상 내의 상기 피사체의 관절(skeleton)의 움직임을 추적해 상기 움직임에 따른 상기 관절의 위치정보(Px, Py, Pz)를 프레임별로 추출하는 영상분석 및 바디분석부; 및
    특정 단위프레임에서 추출된 특정 관절의 상기 위치정보가 양 옆의 관절의 위치정보와 비교하여 기준 범위를 벗어난다고 판단되는 경우, 이를 보정해주는 자동 보정부를 포함하고,
    상기 자동 보정부는,
    상기 특정 단위프레임에서의 상기 특정 관절의 위치정보(Pt)를 정상값으로 보정하되,
    상기 정상값은
    v = (pt+n - pt-1) / (Ft+n - Ft-1)
    (여기서 v는 이동속도, p는 위치정보, F는 프레임 수이고, t+n은 특정 관절의 위치정보가 기준 범위 내에 있는 정상상태인 프레임, t-1은 상기 특정 단위프레임 직전의 프레임)
    로 이동속도를 구한 후,
    pt = pt-1 + (v × 단위프레임)
    의 식을 통해 얻어지는 3D 데이터서비스장치.
  2. 삭제
  3. 제1항에 있어서,
    상기 애니메이션 데이터처리부는, 사용자와의 인터페이스에 의해 사용자가 추적할 관절에 표식을 설정할 수 있는 사용자 설정부를 포함하는 3D 데이터서비스장치.
  4. 삭제
  5. 삭제
  6. 제1항에 있어서,
    상기 통신 인터페이스부는, 상하 방향으로 배치된 복수 개의 카메라를 구비하는 인워드 기구를 통해 상기 피사체를 특정 각도에서 동시에 촬영한 복수 개의 사진 데이터를 각도별로 더 수신하고,
    상기 애니메이션 데이터처리부는,
    이웃한 위치에서 촬영된 사진의 공통된 특징점을 찾아 생성된 버텍스의 위치정보와 색상정보를 이용하여 3D 모델의 메쉬를 생성하는 모델링 자동화부를 포함하는 3D 데이터서비스장치.
  7. 제1항에 있어서,
    상기 애니메이션 데이터처리부는, 상기 3D 데이터를 FBX(Filmbox) 포맷(.fbx)으로 추출해주는 애니메이션 데이터생성부를 더 포함하는 3D 데이터서비스장치.
  8. 3D 데이터서비스장치의 구동방법으로서,
    게임 또는 애니메이션을 포함하는 3D 콘텐츠 내의 캐릭터에 관련되는 임의의 피사체에 대한 촬영영상을 통신 인터페이스부에서 수신하는 단계;
    애니메이션 데이터처리부가 상기 촬영영상으로부터 3D 데이터를 생성하여 상기 통신 인터페이스부를 통해 사용자 장치에 제공하는 단계;
    영상분석 및 바디분석부가 수신한 상기 촬영영상 내의 상기 피사체의 관절(skeleton)의 움직임을 추적해 상기 움직임에 따른 상기 관절의 위치정보(Px, Py, Pz)를 프레임별로 추출하는 단계; 및
    특정 단위프레임에서 추출된 특정 관절의 상기 위치정보가 양 옆의 관절의 위치정보와 비교하여 기준 범위를 벗어난다고 판단되는 경우, 자동 보정부가 이를 보정하는 단계를 포함하되,
    상기 자동 보정부는,
    상기 특정 단위프레임에서의 상기 특정 관절의 위치정보(Pt)를 정상값으로 보정하되,
    상기 정상값은
    v = (pt+n - pt-1) / (Ft+n - Ft-1)
    (여기서 v는 이동속도, p는 위치정보, F는 프레임 수이고, t+n은 특정 관절의 위치정보가 기준 범위 내에 있는 정상상태인 프레임, t-1은 상기 특정 단위프레임 직전의 프레임)
    로 이동속도를 구한 후,
    pt = pt-1 + (v × 단위프레임)
    의 식을 통해 얻어지는 3D 데이터서비스장치의 구동방법.
  9. 삭제
  10. 제8항에 있어서,
    사용자 설정부를 통해 사용자와의 인터페이스에 의해 사용자가 추적할 관절에 표식을 설정하는 단계를 더 포함하는 3D 데이터서비스장치의 구동방법.
  11. 삭제
  12. 삭제
  13. 제8항에 있어서,
    상하 방향으로 배치된 복수 개의 카메라를 구비하는 인워드 기구를 통해 상기 피사체를 특정 각도에서 동시에 촬영한 복수 개의 사진 데이터를 각도별로 더 수신하는 단계; 및
    이웃한 위치에서 촬영된 사진의 공통된 특징점을 찾아 생성된 버텍스의 위치정보와 색상정보를 이용하여 모델링 자동화부가 3D 모델의 메쉬를 생성하는 단계;를 더 포함하는 3D 데이터서비스장치의 구동방법.
  14. 제8항에 있어서,
    애니메이션 데이터생성부가 상기 3D 데이터를 FBX(Filmbox) 포맷(.fbx)으로 추출하는 단계;를 더 포함하는 3D 데이터서비스장치의 구동방법.
  15. 3D 데이터서비스장치의 구동방법을 실행하기 위한 프로그램을 포함하는 컴퓨터 판독가능 기록매체로서,
    상기 3D 데이터서비스장치의 구동방법은,
    게임 또는 애니메이션을 포함하는 3D 콘텐츠 내의 캐릭터에 관련되는 임의의 피사체에 대한 촬영영상을 통신 인터페이스부에서 수신하는 단계; 및
    애니메이션 데이터처리부가 상기 촬영영상으로부터 3D 데이터를 생성하여 상기 통신 인터페이스부를 통해 사용자 장치에 제공하는 단계;
    영상분석 및 바디분석부가, 수신한 상기 촬영영상 내의 상기 피사체의 관절(skeleton)의 움직임을 추적해 상기 움직임에 따른 상기 관절의 위치정보(Px, Py, Pz)를 프레임별로 추출하는 단계; 및
    특정 단위프레임에서 추출된 특정 관절의 상기 위치정보가 양 옆의 관절의 위치정보와 비교하여 기준 범위를 벗어난다고 판단되는 경우, 자동 보정부가 이를 보정하는 단계를 포함하되,
    상기 자동 보정부는,
    상기 특정 단위프레임에서의 상기 특정 관절의 위치정보(Pt)를 정상값으로 보정하되,
    상기 정상값은
    v = (pt+n - pt-1) / (Ft+n - Ft-1)
    (여기서 v는 이동속도, p는 위치정보, F는 프레임 수이고, t+n은 특정 관절의 위치정보가 기준 범위 내에 있는 정상상태인 프레임, t-1은 상기 특정 단위프레임 직전의 프레임)
    로 이동속도를 구한 후,
    pt = pt-1 + (v × 단위프레임)
    의 식을 통해 얻어지는 컴퓨터 판독가능 기록매체.
KR1020180155331A 2018-12-05 2018-12-05 3d 데이터서비스장치, 3d 데이터서비스장치의 구동방법 및 컴퓨터 판독가능 기록매체 KR102118937B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180155331A KR102118937B1 (ko) 2018-12-05 2018-12-05 3d 데이터서비스장치, 3d 데이터서비스장치의 구동방법 및 컴퓨터 판독가능 기록매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180155331A KR102118937B1 (ko) 2018-12-05 2018-12-05 3d 데이터서비스장치, 3d 데이터서비스장치의 구동방법 및 컴퓨터 판독가능 기록매체

Publications (1)

Publication Number Publication Date
KR102118937B1 true KR102118937B1 (ko) 2020-06-04

Family

ID=71080880

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180155331A KR102118937B1 (ko) 2018-12-05 2018-12-05 3d 데이터서비스장치, 3d 데이터서비스장치의 구동방법 및 컴퓨터 판독가능 기록매체

Country Status (1)

Country Link
KR (1) KR102118937B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023277586A1 (ko) * 2021-06-30 2023-01-05 옥재윤 딥러닝 기술을 이용한 모션 추적 시스템
KR20230004280A (ko) * 2021-06-30 2023-01-06 옥재윤 딥러닝 기술을 이용한 모션 추적 시스템
WO2024043752A1 (en) * 2022-08-26 2024-02-29 Samsung Electronics Co., Ltd. Method and electronic device for motion-based image enhancement

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040055310A (ko) * 2002-12-20 2004-06-26 한국전자통신연구원 고속 마커프리 모션 캡쳐 장치 및 방법
KR20120087473A (ko) * 2011-01-28 2012-08-07 주식회사 매크로그래프 3d 애니메이션 제공 방법과 상기 방법을 수행할 수 있는 장치들
KR20130138247A (ko) 2010-10-07 2013-12-18 선제비티 신속 3d 모델링
KR101515847B1 (ko) * 2014-08-06 2015-05-04 스타십벤딩머신 주식회사 Nui 장치에 의해 수집된 동작정보의 보정 방법 및 장치
KR20160020639A (ko) 2014-08-13 2016-02-24 동서대학교산학협력단 3d 그래픽 툴과 게임엔진 간의 데이터 공유를 위한 데이터 익스포트 방법
JP2017138915A (ja) * 2016-02-05 2017-08-10 株式会社バンダイナムコエンターテインメント 画像生成システム及びプログラム
KR20180059104A (ko) * 2016-11-25 2018-06-04 한국전자통신연구원 클라우드환경의 인터랙티브 사용자시점 연동 모바일 3d 콘텐츠 재생 방법 및 장치
KR20180123248A (ko) * 2017-05-08 2018-11-16 (주)몬스터즈랩 가상 공간 캐릭터의 모션데이터 생성을 위한 모션인식피규어 장치 및 모션데이터 생성 방법

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040055310A (ko) * 2002-12-20 2004-06-26 한국전자통신연구원 고속 마커프리 모션 캡쳐 장치 및 방법
KR20130138247A (ko) 2010-10-07 2013-12-18 선제비티 신속 3d 모델링
KR20120087473A (ko) * 2011-01-28 2012-08-07 주식회사 매크로그래프 3d 애니메이션 제공 방법과 상기 방법을 수행할 수 있는 장치들
KR101515847B1 (ko) * 2014-08-06 2015-05-04 스타십벤딩머신 주식회사 Nui 장치에 의해 수집된 동작정보의 보정 방법 및 장치
KR20160020639A (ko) 2014-08-13 2016-02-24 동서대학교산학협력단 3d 그래픽 툴과 게임엔진 간의 데이터 공유를 위한 데이터 익스포트 방법
JP2017138915A (ja) * 2016-02-05 2017-08-10 株式会社バンダイナムコエンターテインメント 画像生成システム及びプログラム
KR20180059104A (ko) * 2016-11-25 2018-06-04 한국전자통신연구원 클라우드환경의 인터랙티브 사용자시점 연동 모바일 3d 콘텐츠 재생 방법 및 장치
KR20180123248A (ko) * 2017-05-08 2018-11-16 (주)몬스터즈랩 가상 공간 캐릭터의 모션데이터 생성을 위한 모션인식피규어 장치 및 모션데이터 생성 방법

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023277586A1 (ko) * 2021-06-30 2023-01-05 옥재윤 딥러닝 기술을 이용한 모션 추적 시스템
KR20230004280A (ko) * 2021-06-30 2023-01-06 옥재윤 딥러닝 기술을 이용한 모션 추적 시스템
KR102622981B1 (ko) * 2021-06-30 2024-01-10 옥재윤 딥러닝 기술을 이용한 모션 추적 시스템
WO2024043752A1 (en) * 2022-08-26 2024-02-29 Samsung Electronics Co., Ltd. Method and electronic device for motion-based image enhancement

Similar Documents

Publication Publication Date Title
US10789453B2 (en) Face reenactment
CN106778928B (zh) 图像处理方法及装置
CN109145788B (zh) 基于视频的姿态数据捕捉方法和系统
CN108537881B (zh) 一种人脸模型处理方法及其设备、存储介质
US7764828B2 (en) Method, apparatus, and computer program for processing image
US9070207B2 (en) Modelization of objects in images
CN111754415B (zh) 人脸图像处理方法及装置、图像设备及存储介质
KR102118937B1 (ko) 3d 데이터서비스장치, 3d 데이터서비스장치의 구동방법 및 컴퓨터 판독가능 기록매체
CN106896925A (zh) 一种虚拟现实与真实场景融合的装置
KR102358464B1 (ko) 인공지능 기술을 이용하여 영상 정보로부터 3d 캐릭터 애니메이션을 자동으로 생성하는 3d 이미지 변환장치 및 이를 포함하는 3d 이미지 변환시스템
KR20100025862A (ko) 얼굴인식을 이용한 얼굴관상정보 및 얼굴 아바타 생성시스템
US11640687B2 (en) Volumetric capture and mesh-tracking based machine learning 4D face/body deformation training
CN112270736A (zh) 增强现实处理方法及装置、存储介质和电子设备
CN107016730A (zh) 一种虚拟现实与真实场景融合的装置
US20240169670A1 (en) Three-dimensional mesh generator based on two-dimensional image
JP2017037424A (ja) 学習装置、認識装置、学習プログラム、及び認識プログラム
CN106981100A (zh) 一种虚拟现实与真实场景融合的装置
US11620765B2 (en) Automatic detection of a calibration object for modifying image parameters
CN114373044A (zh) 生成脸部三维模型的方法、装置、计算设备和存储介质
JP5419777B2 (ja) 顔画像合成装置
KR100422470B1 (ko) 3차원 동화상 모델 얼굴 대체 방법 및 장치
JP2020173726A (ja) 仮想視点変換装置及びプログラム
US11450054B2 (en) Method for operating a character rig in an image-generation system using constraints on reference nodes
WO2021131103A1 (ja) 距離画像処理装置及び距離画像処理方法
US11341703B2 (en) Methods and systems for generating an animation control rig

Legal Events

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