Zermatt DeepZoom — интерактивная галерея панорамных фотографий на Silverlight и Windows Azure

Zermatt DeepZoom — проект Microsoft Switzerland, выполненный на Silverlight 3 с поддержкой Windows 7 Touch и хостящийся на Windows Azure.

Проект этот примечателен с двух точек зрения. Во-первых, это потрясающие панорамы швейцарских гор в районе Zermatt (посмотреть в Bing Maps), включая гору Matterhorn.

image image

image image

Во-вторых, это весьма и весьма интересное в технологическом плане приложение, особенно в части “как именно сделаны эти 8-гигапиксельные фоторгафии”.

Прежде, чем читать далее, советую посмотреть самостоятельно https://ronnies.blob.core.windows.net/zermatt/Default.htm ;)

image

Технические детали

Понятно, что среди “доступных” камер нет таких, которые смогли бы само по себе сделать 8-гигапиксельную фоторгафию. Максимум, что было доступно авторам — 21-25 мегапиксельная фотокамера, соответственно, чтобы получить столь большое изображение, нужно сделать большое количество “небольших” фотографий и как-то их склеить.

Самая большая фотография в данной коллекции (9.24 гигапикселя) склеена из 440 21-мегапиксельных фоторгафий.

Для съемки использовалась фотокамера Canon 400mm DO F4 IS c 1.4 телеконвертером, увеличивающим фокусное расстояние до 560mm (общий вес около 3кг).

image

Делать 440 фотографий вручную, правильно меняя направление съемки — весьма сложная задача, поэтому было решено воспользоваться автоматикой — AutoPano Robot 1.0 от Gadget Works (правда, даже с автоматикой весь процесс съемки занял 3 дня). Управляется эта штука с помощью приложения на .NET Compact Framework 3.5 и работает на любом устройстве с Windows Mobile и поддержкой Bluetooth.

Фоторгафии снимались с нахлестом около 50%.

image

После съемки наступает не менее забавный процесс — склейка фотографий. Полученные 440 фотографий общим весом в 3.4 Gb загружаются в Microsoft Research ICE 64 bit — это бесплатная программа для склейки панорам, причем примечательно, что она умеет экспортировать результат непосредственно в виде DeepZoom-коллекций для Silverlight.

Для склейки использовался ноутбук Lenovo W500 с 8Gb памяти и 64-битной версией Windows 7.

image

Правда, при склеивании неба возникли какие-то сложности, поэтому после ICE небо пришлось доводить вручную в Photoshop. Итоговый размер полученного Tiff-файла — 4.7Gb (ICE может экспортировать файлы до 2Gb, поэтому панораму разбили на три части и потом склеили в фотошопе для доводки неба).

Далее полученный tiff-файл нужно было превратить в deepzoom-коллекцию. Обычно это делается с помощью DeepZoom Composer, но там тоже есть ограничение на 2Gb. Проблема разрешилась весьма просто — с помощью плагина MSR Hdmake для Photoshop, в итоге получилась DeepZoom-изображение в 1.67 гигапикселей.

Склеивание всех 8 фотографий заняло 5 дней.

Следующий шаг — разработка интерфейса с помощью Expression Blend и Design и написание кода в Visual Studio 2008.

image

По-моему, в целом все это — это потрясающая интеграция самых разнообразных современных технологий: от фотокамер и автоматики для съемки панорам с соответствующей программной поддержкой до исследовательских разработок в области склеивания фотографий и профессиональных инструментов для разработки пользовательского интерфейса и написания логики приложения.

Всем смотреть галерею: https://ronnies.blob.core.windows.net/zermatt/Default.htm