Posts Tagged ‘FLARToolKit’

Tech Report 조현철, 이은택

April 6, 2009

Augmented Reality(증강현실)

eab7b8eba6bc-12

우리는 실감형 사용자 경험을 제공하는 증강현실에

대하여 리서치 하였다.

증강현실이란?

캠이나 영상 입력 장치를 통해 받아온 영상 데이터에 3D 객체를

추가하여 정보를 나태내어 주는 것을 말한다.

C, C++ 라이브러리로 시작하여 (2000년대 이전부터 존재)주로

의학적 용도로 활용이 되었다. 그리고 몇년전에 자바용으로

NyARtoolkit으로 만들어 졌고 작년 가을에  일본의 saqoosha씨가

flash 버전으로 포팅한것이 flartookit 이다.  플래시로 넘어오면서 우선

웹에서 표현가능한 컨텐츠를 개발 할 수 있게 되었다. 그리고 플래시

플레이어 10으로 업데이트 되면서 재미있는 작업들이 가능하게 된다.

먼저 프로세스는 이렇다.

1. 카메라에서 영상을 받아온다.

2. 받아온 영상에서 패턴을 찾는다.

3. 찾은 패턴들 중 입력시킨 가장 비슷한 패턴을 찾는다.

4. 찾은 패턴에 카메라가 바라보는 패턴의 3차원 상의 각도를 계산한다.

5. 영상에 뿌려준다.

개발은 액션스크립트 3로 이루어져있다.

http://www.libspark.org/wiki/saqoosha/FLARToolKit/en 에 공개되어 있고

svn으로 받을 수 있다.

이 라이브러리 외에  papervision3D와 away3D같은

외부라이브러리가 추가로 필요하다.

eab7b8eba6bc-3

라이브러리는 많은 클래스로 이루어져 있다.

eab7b8eba6bc-5

단독적으로 활용하는것이 아니라 다른 3차원 엔진과 같이 써야 한다.

1차로 테스트 해본 영상이다. flartoolkit 과 papervision을 이용하였고

단순한 사각형 마크를 이용하여 인식해 보았다. papervision으로 큐브를 그렸으며

포인트 라이트를 추가하였다.

두번째 테스트 화면이다.

flartoolkit 과 papervision3D 그리고 wow 물리엔진을 이용한 화면이다.

객채가 움직이는데로 중력과 3차원 각도를 계산한다.

마커 패턴인식은 RGB 색상값을 인식하며 기본적으로 16* 16 픽셀 크기의

정보를 가지고 있고 숫자가 클 수록 밝고 작을 수록 어두운 색을 의미하게

된다,

255 255 255 255 255 255 191 0 0 159 255 255 0 0 0 0
255 255 255 255 87 63 47 0 0 159 255 255 0 0 0 0
255 255 255 255 31 0 0 0 0 159 255 255 0 0 0 0
255 255 255 255 31 0 0 0 0 159 255 255 0 0 0 0
255 95 0 0 0 0 0 0 0 159 255 255 239 239 239 239
255 95 0 0 0 0 0 0 0 159 255 255 255 255 255 255
175 65 0 0 0 0 0 0 0 109 175 175 175 175 175 175
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 71 127 127 15 0 0 0 0 79 127 127 127 127 127 127
0 143 255 255 31 0 0 0 0 159 255 255 255 255 255 255
0 143 255 255 31 0 0 0 0 159 255 255 255 255 255 255
191 227 255 255 199 191 143 0 0 159 255 255 255 255 207 63
255 255 255 255 255 255 191 0 0 159 255 255 255 255 191 0
255 235 223 223 249 255 191 0 0 159 255 255 223 223 171 15

eab7b8eba6bc-2

현재 개발 이슈로 떠오른지 얼마 되지 않았지만 벌써 여러가지 프로젝트들이

쏟아져 나오고 있고 마케팅의 가능성은 무한하다. 가장 큰 매력은 개인화를 통한

개인의 모습과 함께 체험하는 영상 감상이다. 마이크나 다른 디바이스를 이용해

확장성을 극대화 한다면 더욱 새로운 사용자 경험을 만들 수 있을 것이다.

웹 애플리케이션부터 교육, 상거래, 게임 등등 그 분야는 무한하다고 생각된다.