Interesting/iPhone | Posted by hyena0 2009.04.07 21:35

[iPhone APP] Seadragon Mobile



 [아이폰 APP] Seadragon Mobile

 Seadragon 이란 프로그램은 Microsoft에서 인수합병한 

 회사의 프로그램으로 Photosynth에 필수적인 소프트웨어

 였고, Silverlight 의 Deep Zoom이라는 기술의 핵심적인

 기능을 하고 있다.

 이 프로그램이 자신의 이름인 Seadragon 을 달고 

 아이폰 용으로 출시되었다. 

 MS의 프로그램이 Apple 용으로 나온다는 것이 신기하기도 하지만,

 Seadragon이 모바일에 적합하기 때문에 그들은 선택의 여지가 없었을 수도 있다. 

 고해상도 이미지를 볼 수 있게 되어 있고, 포토신스도 체험할 수 있도록 되어 있다. 

 무료 어플리케이션으로 MS 의 전략이 기대된다. 



 



배워야 할 것들

Photosynth 는 사진을 조합해서 3차원의 효과를 낼 수 있도록 하는 기술이 필요하다.

이런 프로그램을 만들려고 하면 어떤 것들을 알아야 할지 알아보자.

이 분야에 관심이 있어서 들여다 본 사람이라면 한번쯤이 Zisserman과 Hartley 의 "Multiple View Geometry in computer visioin" 이라는 책제목을 들어 봤을 것이다.

하지만 서두르지 말자. 내가 그랬지만 이 책을 먼저 본다는 것은 새로운 개념에 부딪치게 되면서 상당한 시간을 허비하게 될 수도 있다. 물론 기본적인 영상처리기법을 안다고 가정한다면 다른 말이긴 하다.

일반적인 경우를 고려할때, 기본적인 영상처리에 대해 먼저 알고 다음 단계로 넘어가는 것이 좋을 것 같다.

레벨은 차이가 있을 수 있지만, 단계별로 공부해야 할 사항을 정리해 보면 다음과 같다.

1. 영상처리(Image Processing)
   - Convolution 의 이해
   - 이미지 처리 방법의 이해와 코드화하는 방법

2. Corner Detection
  - Edge Detection
  - Corner Detection

3. Line Fitting
  - Hough transform
  - alignment

4. Multiview geometry
  - Camera
  - epipolar geometry
  - SfM

이 정도가 정리되고 코드화 할 수 있다면 기초적인 수준의 Photosynth는 된다고 생각한다.
단 위에서 한가지 빠진 것이 있는데, "SIFT(Scale Invariant Feature Tranform)"이다.

Photosynth는 이미지의 코너를 계산하여 추적하는 부분에 SIFT를 적용하고 있는데, Lowe 교수의 특허가 걸린 기술이다. 이 부분은 코너 검출 부분이 정리되고 난 후 다뤄보도록 하겠다.

오늘은 여기까지...




Photosynth 따라잡기

2007년 TED에서 Blaise Aguera y Arcas 라는 개발자가 사진을 이용해서 투어를 조합하여 마치 어떤 장소에 가 있는 것처럼 체험할 수 있는 Photosynth의 데모를 선보였을때, 놀라움을 금할 수 없었다.

Photosynth 에 관련된 자료를 모아보았고, 100%는 아니겠지만 동일하게 만들어 봐야 겠다는 생각을 해보았다.

이전에도 다루긴 했었지만 TED의 강연을 아래와 같이 붙인다.



혹자는 그런 걸 어디다 적용시킬 데가 있을 것인가 라는 의문을 가지고 있을지 모른다.

그렇게 생각한다면 CES2008 에서 마지막으로 빌게이츠가 보여주었던 Keynote speech를 보기 바란다.



여기에서 빌게이츠는 핸드폰에서 사진을 찍으면 사진에서 인식된 건물의 정보를 이용해 예약을 하거나 하는 모습을 보여준다. 물론 샘플로 만들어 놓은 데모에 불과하지만 그 가능성을 보여주는 대목이라 하겠다.

지금은 photosynth.net 사이트에 가면 photosynth가 본격적인 서비스가 되고 있는 것을 볼 수 있다.

작년부터 Photosynth를 흉내내보기 위한 시도를 위해 준비하고 있었는데, 어느 정도 정리가 된 것같아 블로그에서 소개하고자 한다. 그렇다고 해서 현 수준이 동일하게 되었다고는 볼 수 없고, 1/3 정도 따라 왔다고 본다.

지금까지 정리하면서 더 가까이 다가가 보려고 한다.

Photosynth의 구성을 보자면 아래와 같이 구분된다.[1]

1. Reconstructing Cameras and Sparse Geometry
  - Keypoint Detection and Matching
  - Structure from Motion
  - Geo-Registration
  - Scene Representation

2. Photo Explorer Rendering

3. Photo Explorer Navigation

4. Enhancing Scenes

여기서 이 모든 것을 다 해볼 생각은 아니다. GUI 등의 부분등은 제외하고 이미지를 처리하는 핵심적인 부분에 대해서 파악해보고자 한다.

다음 포스트부터 어떻게 Photosynth를 만들지 하나씩 해보도록 하자.

----------------------------------------------------------------------
[1]Modeling the World from Internet Photo Collections, International Journal of Computer Vision