MR Mania

qtboy.egloos.com


포토로그


김구선생님 Current works



Kinect를 사용한 손가락 트래커 (Finger Tracker using KINECT) Previous works



현재 MS에서 내놓은 KINECT 때문에 NUI (natural user interface) 분야가 뜨겁죠. 저희 연구실에서도 며칠전 두대를 구입해서 이것저것 테스트 해보고 있는데요. 가장 단순한 어플리케이션으로 손가락 트래커를 제작해봤습니다. 동영상에서와 같이 검지 손가락을 펼치면 화면에 글씨가 써지고 주먹을 쥐면 아무것도 안써집니다. 모든 손가락을 펴면 이미 쓴 글을 지우는 어플리케이션입니다. 스마트 TV에서부터 게임기에 이르기까지 앞으로 NUI를 활용할 미래 세상이 기다려집니다.

Scalable Mobile AR Technology (SMART) Previous works



  SMART 기술은 "서버에서 인식/모바일 폰에서 트래킹"이라는 모토를 가지고 석사과정 하재원 군에 의해 만들어졌습니다. 저희 연구실에서는 "서버에서 인식/모바일 폰에서 트래킹"이 향후 모바일 증강현실의 골이라고 보고 이에 대한 연구를 활발히 진행 중입니다.
  이 동영상은 음반매장 등에서 활용될 수 있는 SMART 어플리케이션을 소개하고 있는데요. 음반매장에 가서 마음에 드는 CD를 스마트폰 카메라로 보다가 터치를 하게 되면 사진이 서버로 전송되게 됩니다. 서버에서는 사진 속의 CD에 대한 인식을 수행하고 서버는 다시 스마트폰으로 미리 저장된 CD 트래킹 정보를 전송함과 동시에 가수 뮤직비디오 스트리밍을 하게 됩니다. 이 후 스마트폰에서는 트래킹 정보를 바탕으로 실시간 CD 트래킹을 하면서 뮤직비디오를 증강시키게 됩니다.  아직은 뮤직비디오 스트리밍 서버를 구축하지 못해서 서버로부터 뮤직비디오의 한 장면만을 전송받아 증강시키고 있습니다.

Mobile AR Tracking Previous works



  최근에 안드로이드 폰에서 동작하는 마커리스 증강현실 툴킷들이 metaio와 퀄컴에서 공개되었습니다. 저희 연구실에서도 석사과정에 재학 중인 하재원 군이 안드로이드 2.1 용 증강현실 트래킹 기술을 개발한 바 있는데요. 동영상과 같이 학습된 페이지를 잘 트래킹하고 그 위에 MVG 책 이미지를 렌더링 합니다. 하지만 동영상을 보시면 약간 씽크가 맞지 않는데요. 이건 안드로이드에서 제공하는 카메라 프리뷰 위에 캡쳐된 영상을 처리하고 책 이미지를 렌더링하는데 약간 시간 차이가 나서 그렇습니다.

Ghost Hunter Previous works



  이번에 소개해드릴 증강현실 게임 Ghost Hunter는 아래 "I miss You"와 마찬가지로 코엑스에서 열린 ICEC 2010 에 전시했던 게임입니다. 4년전 처음 Ghost Hunter라는 게임을 만들었었는데요. 그 때는 마커가 가득한 판 위에서 스티로폼 미니어처를 가지고 게임을 제작했습니다. 아무래도 마커가 보기에 좋지 않았습니다. 반면 새로이 업그레이드 된 Ghost Hunter는 시나리오도 약간 수정되었고, 무엇보다도 마커를 없애고 대신 땅 표면 텍스처를 트래킹함으로써 좀 더 자연스러운 환경에서 게임을 즐길 수 있습니다. 땅 표면 텍스처를 트래킹하기 위해 이미 여러차례 소개해드린 책 페이지 트래킹 기술을 변형하여 넓은 평면 지역을 트래킹할 수 있도록 했습니다.

  시나리오는 다음과 같습니다. 미니어처로 표현된 작은 마을에 고스트들이 나타났습니다. 이 고스트들은 마을 사람들을 해치기에 마을 사람들은 안전 지역인 마을 중앙에 있는 교회로 대피해야합니다. 플레이어의 임무는 고스트들을 검출할 수 있는 모바일 AR기기를 이용하여 고스트를 제거하여 마을 사람들이 안전하게 교회로 대피할 수 있도록 돕는 것입니다. 하지만 고스트들은 마을을 돌아다니다가 사람들을 보게 되면 가까운 무덤에 있는 다른 고스트들을 소환합니다. 이 때 관 뚜껑이 열리게되죠. 플레이어는 관이 열린 것을 보게 되면 더 많은 고스트가 나오기 전에 모바일기기를 이용해서 재빨리 관을 닫아야 합니다. 또한 마을 곳곳에는 경고등이 설치 되어 있는데요. 이것은 경고등 주변에 위험에 처한 마을 사람이 있다고 알려주는 역할을 합니다. 따라서 플레이어가 경고등이 켜진 것을 보게 되면 고스트가 마을 사람을 해치기 전에 재빨리 모바일 AR기기를 경고등 근처로 옮겨서 위협적인 고스트를 제거해야 합니다. 만약 세명의 마을 사람들이 희생되게 되면 게임은 실패로 끝납니다. 세 명보다 작은 희생 아래 마을 사람들이 모두 교회로 대피하게 되면 미션을 성공하게 됩니다.

  이 증강현실 게임에서는 흥미로운 게임 인터랙션을 추구했는데요. 바로 시점 변환 인터랙션입니다. 모바일 AR기기를 통한 시야는 좁지만 맨 눈으로 안보이는 고스트를 볼 수 있고, 그 시야 안에서 고스트를 제거해야합니다. 반면 맨 눈으로는 마을 전체를 조망할 수 있는 시야를 확보할 수 있습니다. 경고등이 켜진다던지 관 뚜껑이 열린다던지 이러한 환경의 변화를 통해 정확히는 알 수 없지만 게임의 흐름을 어렴풋이 알 수 있습니다. 만약 맨 눈으로 경고등이 켜지거나 관 뚜껑이 열리는 것을 보게되면 재빨리 모바일 AR기기를 그 곳으로 옮겨 증강된 게임의 상황에 맞게 대처를 해야합니다. Ghost Hunter에서는 이 두 시점의 변환을 게임의 주된 모티브로 삼았습니다.

  이러한 체험형 증강현실 게임은 스마트 폰이 점점 인기를 얻어가는 요즘 테마파크, 과학관 등지에 설치하고 관련 앱을 다운 받는 형식으로 게임을 즐기고, 동시에 여러명이 즐길 수 있는 멀티플레이어 모드로 발전하면 좋을 것이라 생각합니다.

I miss You (증강현실 엽서) Previous works



최근에 International Conference on Entertainment Computing (ICEC 2010) 이라는 학회가 코엑스에서 개최되었습니다. 지금 보여드릴 동영상은 이 학회에 전시한 I miss You 라는 증강현실 어플리케이션 입니다. 지금은 활발히 사용되진 않지만 우리의 아날로그적인 감성을 일깨워줄 수 있는 그림 엽서에 보낸 이의 영상편지를 증강시켰습니다. 이러한 어플리케이션을 통해 엽서를 주는 사람이나 받는 사람 모두 다 그리움을 달랠 수 있지 않을까 생각합니다.

가상 오브젝트의 가려짐 표현 (Occlusion Representation) AR Technology

증강현실 어플리케이션을 개발하다보면 실제 타겟에 의해 가상의 3D 오브젝트가 가려질 경우가 생깁니다. 위의 그림은 예전에 제작한 Ghost Hunter라는 증강현실 게임에서 발생한 가려짐 현상을 캡쳐한 것입니다. 보시다시피 가상의 3차원 탱크가 실제로 존재하는 구조물에 의해 일부 가려진 것을 보실 수 있습니다. 이것은 OpenGL이나 DirectX의 Z-buffer (Depth buffer)를 사용하시면 손쉽게 표현할 수 있습니다. 대신 실제로 존재하는 구조물의 3차원 모델 데이터는 있어야겠죠. 가려짐을 표현하기 위해서는 먼저 배경이 되는 카메라 영상을 그리고, 3D 오브젝트를 그리기 전에 실제 존재하는 구조물의 모델 데이터를 그립니다. 이때 주의하실 점은 color buffer는 모델을 안그리고 Z-buffer에만 그리는 점입니다. 이렇게 하면 화면에는 구조물에 대해 아무것도 그려지지 않았지만 카메라로 부터 깊이를 담당하는 Z-buffer에는 깊이 정보가 저장되게 됩니다. 이후 가상의 3D 오브젝트를 그리면 Z-buffer 비교에 의해서 실제 구조물에 가려지지 않은 부분에 대해서만 color buffer에 그려집니다. 이러한 간단한 방법으로 가상 오브젝트의 가려짐을 표현할 수 있습니다.

증강현실의 기본 AR Technology

증강현실을 처음 구현하려고 할 때 어렵다고 생각하시는 분이 많으실 겁니다. ARToolkit을 봐도 이게 통 무슨 소린지, OpenGL 가지고 지지고 볶고 하는거 같은데 도통 모르겠다고 생각하시는 분들이 많을 겁니다. 하지만 증강현실의 기본에 입각해서 모든 기술을 생각해보면 전체 구조는 그리 복잡하지 않습니다.

증강현실을 구현하기 위한 가장 핵심은 실제 사용하시는 웹캠과 OpenGL이나 DirectX상의 카메라를 일치시키는 것입니다. 카메라를 일치시키는 것은 두가지 작업을 해주면 되는데요. 먼저 초점거리, 중심점등 실제 웹캠의 내부 속성(intrinsic parameters)을 일치시키고 웹캠이 실공간 상에 위치하는 자세정보, 즉 외부속성 (extrinsic parameters)을 일치시키면 됩니다.

1. 내부속성 일치시키기
    기본적으로 카메라 칼리브레이션 과정은 카메라의 5 DOF 내부 속성을 알아내는 작업이지만, 이 과정에 constraints를 부여해서 초점 거리만 구했다면 내부속성 일치시키는 작업은 상당히 간편합니다. OpenGL에서 glPerspective() 함수를 이용하여 초점거리를 fov로 환산해서 입력해주면 되기 때문입니다. 하지만 5 DOF의 내부 속성을 일치시키는 작업은 만만한 작업이 아닌데요. 이를 위해서는 Computer Graphics의 Graphics Pipeline에 대해 잘 알고 계산식을 유도할 줄 알아야합니다. 이 과정을 통해 5 DOF의 내부 속성은 4x4 Projection Matrix 변환되고 glMatrixMode(GL_PROJECTION); glLoadMatrixd(4x4 matrix); 함수를 통해서 일치시킬 수 있습니다. 이 과정이 부담스러우신 분은 ARToolkit에 변환시키는 함수를 참조하시면 됩니다.

2. 자세정보 일치시키기
    자세 정보는 트래킹 하고자 하는 타겟의 6 DOF 자세 (회전을 위한 3 DOF, 위치 지정을 위한 3 DOF)인데요. 자세 정보를 일치시키는 데는 두가지 방법이 있습니다. glLookAt() 함수를 이용하여 가상 카메라를 직접 이동시키거나 glMatrixMode(GL_MODELVIEW); glLoadMatrixd(4x4 matrix); 함수를 이용하여 카메라는 원점에 고정시키고 대신 가상의 3D 오브젝트를 이동시키는 방법입니다. 이 역시도 ARToolkit을 보면 이해하시기 편할 겁니다.

위와 같이 두가지 속성을 일치시키면 증강된 영상을 보실 수 있습니다.

Mobile AR 의 구분 AR Technology

불과 2년 전만 해도 증강현실을 연구한다고 하면 잘 모르시는 분들이 많았습니다. 하지만 작년부터 일어난 스마트 폰의 붐으로 인해 덩달아 모바일 상의 증강현실도 주목받기 시작했습니다. 많은 재미있는 서비스들이 나오고 사용자들도 증가했는데요. 현재까지 나온 모바일 증강현실 서비스를 제 나름대로 구분해봤습니다. 크게 카테고리는 Location-based AR, Image Recognition-based AR, Image Tracking-based AR로 나누었습니다.

1. Location-based AR : 현재 제일 많이 활용되고 있는 모바일 AR 종류로서 단순히 GPS나 Compass 정보를 이용하여 위치를 인식하고 그에 맞는 서비스를 제공하는 형태입니다. 많이들 좋아하시는 Layar, Wikitude, Nearest Tube, Sekai Camera, I need Coffee 가 이 카테고리라 할 수 있습니다. 대부분의 증강현실 서비스는 사실 위치 정보만으로 가능하기 때문에 이 카테고리가 가장 많이 활성화되었다고 볼 수 있습니다.

2. Image Recognition-based AR : 구글의 Goggles나 올라웍스의 ScanSearch를 통해 우리에게 친숙해진 형태입니다. 먼저 관심있는 대상에 대해 촬영한 뒤 그 사진은 서버로 전송됩니다. 서버에서는 사진을 Image Retrieval 기술을 통해 인식한 뒤 결과를 다시 스마트 폰으로 전송합니다. 이 카테고리에는 Goggles, Point&Find, Kooaba, SREngine, ScanSearch, 그외에 바코드나 QR코드 검색기가 속한다고 볼 수 있습니다.

3. Image Tracking-based AR : 위에 두 카테고리는 정보를 증강시킬 때 가상의 비주얼 정보가 자연스럽게 (seamless) 혼합되지는 않습니다. 그 이유는 관심있는 물체에 대한 3차원 트래킹이 이뤄지지 않아서 입니다. 현재 많이 활성화되지는 않았지만, Total Immersion 사의 D'Fusion 이나 Metaio 사의 juneio, 조만간 나올 퀄컴사의 증강현실 엔진등이 이 카테고리에 해당합니다. 현재는 모바일 트래킹은 기술적 접근이 많은 곳에서 이뤄지지 않아 많이 활성화 되지는 않았지만, TU Graz 의 Mobile AR 연구팀의 연구성과로 볼 때, 기술적인 어려움은 거의 해소되었다고 보여집니다. 향후 1~2년 안에 많이 활성화 될 듯 싶습니다.

이상은 제 주관적인 관점에 의해 나눠본 Mobile AR 카테고리였습니다.


증강현실 연구실 투어 (Augmented Lab Tour) Previous works


  이번 연구는 이전에도 몇 번 소개드린 증강현실 연구실 투어의 최종버전입니다. 증강현실 연구실 투어는 연구실 주변에 걸려있는 사진을 모바일 기기를 이용하여 증강시킴으로써 관람객의 연구실에 대한 이해도를 높이는 것을 목표로 합니다. 사진은 어느 한 순간을 포착하기 때문에 사진 만으로는 피사체를 설명하기에 충분하지 않습니다. 사진에 피사체와 관련된 동영상을 증강시킴으로써 관람객들은 피사체가 어떤 과정을 통해 만들어졌는지, 어떻게 작동되는지 등에 대한 상세한 정보를 얻을 수 있습니다. 이 어플리케이션은 미술관이나 과학관 같은 전시물을 증강시키는데도 동일하게 적용될 수 있습니다.
  최종버전에는 최근에 만든 빠르고 강인한 Tracker를 적용하였습니다. 동영상에서 볼 수 있듯이 이 어플리케이션에서 사용한 모바일 기기는 저사양의 CPU (1.2 GHz)와 노이즈 많고 블러링이 심한 내장 카메라를 포함하고 있습니다. 또한 관람객이 직접 모바일 기기를 들고 움직이기 때문에 모션 블러가 굉장히 심한 상황입니다. 그럼에도 불구하고 아주 빠르고 안정적으로 사진들을 증강시키는 것을 보실 수 있습니다.
  혹시 문의 사항이 있으시면 qtboy@paradise.kaist.ac.kr 주소로 메일주시기 바랍니다.

1 2 3 4