안녕하십니까
발표에 앞서 저희 팀원을 소개하겠습니다.
유근선 이상진 파울로 황광진 그리고 발표자 김대근 입니다.
20기 3조 M.A.S(마스) 발표를 시작하겠습니다.
발표는 저희 시스템인 Motion Analysis System에 대한 소개와
아키텍쳐, 코어 테크닉, 플로우, 결론 순으로 하겠습니다.
애니메이션이나 게임, 영화 등 3D를 이용한 많은 매체들이 전 세계적으로 주목을 받고 있으며 ~~~ 짧은 시간 안에 더 많은 매체들이 3D를 이용하게 될 것입니다.
3D를 이용한 매체들은 Motion Capture, 3D 객체 스토리 보드 제작 등을 해야 하는데, 이를 위해 다수의 카메라와 장비 및 인력이 필요하여 많은 비용이 발생하게 됩니다. 이로 인해 좋은 아이디어를 가지고 있어도 자본이 부족해 도전할 엄두를 못 내는 경우가 많이 있습니다.
Motion Capture란?
사람을 비롯한 동적 및 정적 사물에 센서(마커)를 부착시켜 , 이 센서를 통해 포착된 대상체의 동작정보를 컴퓨터상의 Data로 만들어 가상캐릭터(3D모델)에 같은 동작으로 전달 하거나 동작 자체를 시각적, 산술적으로 분석하는 기술입니다. 모션캡쳐는 센서의 종류에 따라 시스템이 구분되고 개수에 따라 자연스러운 움직임을 만들어 낼 수 있을 뿐 아니라, Actor가 움직임을 보다 자유롭게 표현할 수 있게 합니다. 여러가지 시스템 중 광학식(Optical)은 Actor의 주요관절 부위에 마커를 부착하고 여기에 적외선을 비추어 반사되는 영상을 카메라로 촬영하여 각 카메라에서 2차원 좌표를 생성하고 각 좌표 데이터는 소프트웨어로 분석되어 3차원 공간상의 좌표를 계산하게 됩니다.
현재 만들어지는 3D 객체 기반의 영화, 애니메이션, 게임들은 많은 고가의 카메라를 설치 해야 하며, Motion Capture를 하기 위한 센서가 부착된 옷도 입어야 합니다.
이로써 소자본으로 시작하는 사람들은 해당 장비들을 이용할 생각조차 하지 못하고 도전조차 하지 않게 됩니다.
하지만 본 프로젝트를 이용하거나 확장하여 사용하게 된다면 간단하게 3D 관련 프로젝트를 수행 함에 있어 도움을 받을 수 있습니다.
그래서 저희는 Motion Analysis System을 기획하게 되었습니다.
Motion Analysis System은 한 개의 웹 캠과 정적인 3D객체만 있어도 3D 객체 기반의 매체 제작이 가능하게 해 주는 엔진을 제공해 주는 것을 목표로 하였습니다.
Motion Analysis System 아키텍쳐입니다.
웹 캠의 이미지에서 필요한 속성들을 원하는 객체 단위로 변환하여 Digital 2D 데이터를 생산하는 Tracking Engine과 Digital 2D 데이터에서 Digital 3D 데이터를 계산해 내는 2DT3D Engine,
Digital 3D 데이터와 정적인 3D객체를 조합하여 3D객체를 핸들링 할 수 있는 3D Object Handling Engine으로 구성되어 있습니다.
그리고 MAS Application을 통해 이러한 엔진들을 사용할 수 있습니다.
다음은 캠을 통해 만들어지는 아나로그 2D영상을 디지털 2D 데이터로 변환하는 Tracking Engine의 Abstract입니다.
Tracking Engine은 OpenCV를 이용하여 얻어낸 Raw Data를 원하는 객체 단위로 필요한 요소 속성을 생성합니다.
2D 데이터를 3D데이터로 변환하기 위해 필요한 속성으로는 X,Y의 좌표 뿐 만이 아니라 색조, 명도, 채도, 객체의 길이 정보가 필요로 하게 됩니다.
이렇게 하여 생성된 디지털 2D 데이터는 2DT3D 엔진을 사용하여 Digital 3D 데이터로 가공하게 됩니다.
2D 데이터에서의 객체의 이전 X,Y 좌표와 현재 X,Y 좌표를 통해 객체의 기울기의 변화를 구하고
객체의 길이의 변화를 통해 Z좌표의 변화 량을 구하게 됩니다.
Z좌표의 변화 방향을 구하기 위해 명도와 채도, 색상 정보를 이용합니다.
이렇게 하여 만들어 낸 Digital 3D 데이터는 정적 3D 객체를 동적인 3D객체로 변이시키기 위한 행동 데이터 역할을 하게 됩니다. 엔진 성능을 향상 시키기 위해서는 카메라와 녹화한 객체와의 거리 및 기울기, 조도 등을 분석하여 이를 반영하면 양질의 Digital 3D 데이터를 생산할 수 있을 것입니다.
기존의 x,y,좌표에 해당하는 z좌표를 함께 사용하여 객체가 움직인 각도를 구하게 됩니다.
3차원 데이터를 만들어서 미리 정의 된 Xml 형식으로 저장합니다.
3D Object Handling Engine은 2DT3D엔진에서 만든 Digital 3D 데이터와 정적인 3D객체를 합성하여 동적인 3D객체로 전이시키는 역할을 담당합니다.
다음은 저희 프로그램의 흐름입니다. 카메라가 지정한 오브젝트들의 움직임을 트래킹하고, 트래킹 된 데이터를 기반으로 2DT3D Engine을 거쳐서 2D data에 Z 좌표를 생성하고, x,y 좌표와 생성된 z좌표를 사용하여 객체의 길이를 통해 움직인 각도를 구하게 됩니다. 움직인 각도를 통하여 모델을 움직이고 앞과 뒤의 판별은 명도값을 가지고 하려고 해보았으나, 명도값이 일정하기위해서는 많은 제약 조건들이 따랐고, 그 많은 제약 조건들을 만족시키지 못하여 정확하게 앞뒤를 판별하지는 못하였습니다.
Motion Analysis System을 이용하면 적은 비용으로 3D 객체 기반의 매체 제작을 가능하게 해 줍니다.
저희 엔진은 2D에서 3D로 변환하기 위한 인수로 객체별 X,Y좌표, 길이 등을 사용하고 있습니다.
여기에 조명의 세기, 반사율, 흡수율 등의 환경 요소들을 설정하여 변환 시에 인수로 사용하면 개선된 엔진이 될 수 있을 것입니다.
그리고, 객체의 물리적 운동량, 운동 가능 범위, 객체의 형태 인수를 고려하여 트레킹을 한다면 질 좋은 매체 제작을 적은 비용으로 가능케 할 것입니다.
Motion Analysis System is System 프로젝트 진행을 하면서
담당 파트 및 참고한 레퍼런스 입니다
팀의 리더인 저는 전체적인 프로젝트 방향 제시 및 진행과 Tracking Engine에 대해서 작업을 하였습니다.
유근선 조원은 Tracking Engine에 대해서 작업을 하였습니다.
이상진 조원은 2DT3D Engine에 대해서 작업을 하였습니다.
파울로는 프로젝트 초기의 Prototype과 M.A.S Form 을 합치는 작업을 하였습니다.
황광진은 3D Object Handling Engine에 대해서 작업을 하였습니다.
이상 발표를 마치겠습니다.