bz home

Склейка панорам в Hugin

Мои статьи:

Вступление

Зная насколько тяжело русскоязычная аудитория интерента относится к широко доступной информации на английском языке, я сподвигся написать это руководство по склейке панорам. Посвящаю свой подвиг некоторым неназванным персонам, которые, надеюсь, догадаются, что я имею в виду именно их.

О панорамах специально говорить вобщем-то незачем. Широко известный факт, что человеческое зрение охватывает значительно больший кусок внешнего мира, чем умещается на обычном кадре. Причём если сверху и снизу обычно интересного немного, то слева и справа — полно. Восприятие меняется существенно. Кроме того многие объекты съёмки просто не помещаются в кадр. Ну и наконец возможность осмотреться по сторонам (а в случае круговой панорамы — по всем сторонам) позволяет создать эффект приутствия. Короче, один раз увидеть — и сразу всё понятно.

Сперва небольшая преамбула. Купив свой первый цифровой фотоаппарат и увидев в нём возможность поддержки панорам, я обрадовался. Правда идущая в комплекте программа для склейки панорам PhotoStitcher быстро остудила мой пыл, так как хоть сколько приемлемо склеивать она могла только самые банальные и идеально снятые панорамы. И те с изрядными дефектами и хорошо видимыми опытному глазу швами. Крутить было чего, но на результат почти не вляило. Короче, не впечатлило. И только спустя несколько лет, буквально случайно наткнувшись на пакет PanoTools, я наконец распробовал всю прелесть склеивания панорам. Я переклеил заново все панорамы, которые фотографировал в предыдущие годы. Самое приятное, что ничего сложного в склейке панорам нет. Процесс прост и интуитивно понятен, если понимать, что, как и зачем делается. А результат просто завораживает.

Вот для этого я и написал это руководство, что бы обьяснить что, как и зачем делается для склейки панорам с использованием пакета Hugin. Сперва я хотел было пройтись по конкретному примеру, но в дальнейшем вроде получилось уловить тот уровень абстракции, чтобы не останавливаться на частных действиях, но сосредоточиться на процессе в целом. Цель сделать полноценную документацию к программе не ставилась, так что описаны только ключевые моменты. Тем более что инструкции не читают. Приятно будет услышать отзывы.

Предыстория

Не могу не сказать несколько слов про сам пакет PanoTools. База была разработана немцем Helmut Dersch и основывалась на простом и логичном подходе, который дал неожиданно хорошие результаты. Изначальная идея была такова. Любой кадр — это часть изображения сферы, в центре которой находился наблюдатель. Несколько кадров могут быть сделаны из немного отстоящих друг от друга точек (сдвиг), соответствующие сферы иметь разный радиус (быть с разными оптическими искажениями). Ну и конечно каждый кадр может быть повёрнут относительно горизонта и других кадров. Это всё характеризуется параметрами каждого снимка. Обозначив на разных снимках соответсвующие друг другу точки (так называемые контрольные точки), можно попробовать решить получившиеся уравнения так, чтобы построить одинаковые проекции всех входящих в панораму кадров. После этого кадры останется только совместить и склеить вместе, подобрав места швов, чтобы они были наименее заметны.

Отсюда вполне естественная последовательность работы:

  1. сделать фотографии;
  2. обозначить контрольные точки на снимках;
  3. с помощью оптимизатора добиться наилучшего подбора параметров снимков;
  4. выбрать параметры для финальной склейки и склеить панораму;
  5. при необходимости провести постобработку внешними средствами (обрезка, прочая фотообработка).

Надо отдать должное автору пакета PanoTools, который раскрыл тему, что называется, полностью. Включая сам пакет с пользовательским интерфейсом, оптимизатором, склейщиком, программу для морфига(!) и некоторые другие программы для специальной обработки изображений, плагин для Фотошопа, просмотрщики готовых панорам и даже Java-апплет для встраивания панорам в веб-страницы. Но в 2001 году он неожиданно пропал из поля зрения, убрав со свой домашней страницы всё. История тёмная и не до конца понятная, но связана она по всей вероятности с тем, что на Helmut-а просто наехали с патентными претензиями и угрозами судов и штрафов. Helmut просто не захотел связываться. К счастью энтузиасты сохранили копии его домашней страницы, но исходные тексты программ в результате были потеряны для общественности. Тогда эта самая общественность разработала этот пакет с нуля под открытой лицензией. Так и появился пакет PanoTools в его современном виде. Он сохраняет совместимость с оригинальной разработкой Helmut-а, хотя местами и отстаёт (зато местами опережает) по функциональности. Больше информации можно получить, посетив домашнюю страницу проекта.

Подход оказался настолько мощным, что все лучшие современные программы по склейке панорам используют именно его. Это PTgui, PTAssembler и прочие. К счастью среди всех этих коммерческих и шароварных программ затесалась и одна бесплатная — Hugin. Вот о ней и пойдёт речь дальше. Можно конечно пользоваться и оригинальным пакетом программ PanoTools, он делает всё то же самое, но удобства превыше всего (и заметно повышают производительность).

Попутно замечу, что пакет позволяет не только склеивать панорамы, но и делать ряд других интересных операций, как то исправление оптических искажений (бочки, подушки), изменение проекций (поставить ровно завалившиеся столбики и стены домов), склейку отсканированных картинок...

Установка и настройка Hugin

NB! Данная глава несколько устарела, после выхода новой версии подлежит исправлению.

Для установки всего чего потребуется, следует пойти на домашнюю страницу Hugin, далее в раздел download. По всей вероятности, большую часть читателей заинтересует предкомпилированная версия под Windows, про которую и пойдёт речь дальше. Тут же рядом по ссылкам берём Autopano и обязательно Smartblend (это очень мощное колдунство!).

Устанавливаем штатным образом, если инсталятор. Если zip-архив, то просто разворачиваем его в подходящее место (например, C:\Program Files\Hugin) и создаём иконку для запуска Hugin.exe. В моём случае это версия 0.7 beta 4. Есть много разных языков интерфейса, включая русский. Хотя он местами коряв и русские названия не всегда хорошо помещаются в отведённое им место. Лично мне и не нравятся меню на великом и могучем, но дальше я буду придерживаться именно русифицированных названий интерфейса. Надеюсь более опытные товарищи, разделяющие мои вкусы, без особого труда найдут соответствующие английские аналоги. Тем более я старался показать всё существенное в картинках.

Дальше где-нибудь рядом распаковываем Autopano и Smartblend (можно прямо в каталог Hugin-а).

Теперь запускаем Hugin и в настройках (меню Файл -> Настроить программу) на закладке Autopano отмечаем галочкой "использовать замену программе Autopano" и выбираем полный путь к программе Autopano.

hugin-setup-autopano.jpg

А на закладке Enblend ставим галочку "использовать замену программе Enblend", указываем путь к программе Smartblend, и следим за тем, чтобы галочка "использовать откадрированные файлы TIFF" была убрана. Последняя настройка позволяет изрядно экономить на больших панорамах как место на диске, так и время обработки, но увы не поддерживается Smartblend.

hugin-setup-enblend.jpg

Всё, готово. Теперь можно приступать к работе.

Подготовка фотографий

Несколько советов про подготовку фотографий для панорам.

Многие цифровые фотоаппараты поддерживают режим съёмки панорам. Рекомендую пользоваться. Во-первых, по первому кадру идёт фиксация парметров съёмки — все кадры получаются с одинаковой выдержкой и диафрагмой, а следовательно — освещнностю. Очень способствует качественному конечному результату. Так как фиксация идёт по первому кадру, то в случаях сильной неравномерности освещения (например, закаты-рассветы) следует собственно зафиксировать эти параметры, направив фотоаппарат на центральный объект съёмки, нажав до половины спуск, а только потом навести первый кадр и дожать спуск. Несколько неудобно, но зато не получится, что самое важное пересвечено или недосвечено. Как вариант, первый кадр панормы можно делать с центральным объектом съёмки, зафиксировав тем самым установки, а потом собственно выполнять всю серию как полагается, выкинув первый кадр из дальнейшей обработки. Суровые люди могут выбрать ручной режим съёмки, установить все параметры самостоятельно и не менять их в процессе серии.

Во-вторых, в таких режимах фотоаппараты показывают часть предыдущего кадра, чтобы было удобнее делать следующий. Тоже просто удобно. Суровые люди могут самостоятельно справиться с тем, чтобы обеспечить должное наложение кадров. Главное помнить, что лучше пусть будет большее перекрытие соседних кадров. Лишнее просто не попадёт в финальный результат, а иногда и поможет выбрать более удачный вариант из двух имеющихся. Это бывает особенно актуально для панорам, где изображение меняется в процесе съёмки — например, ходят люди. А вот дыру в середине уже ничем не исправишь. Да и склеить панорамы с разрывом почти никогда не удаётся.

В-третьих, снимайте всегда со штатива. Маленькая складная тренога легко помещается в карман и занимает вес и объём не больше, чем запасные батарейки. И результат того стоит! Особенно в условиях плохой освещённости — этот волшебный талисман магически предохраняет от смазов. Кроме того, позволяет делать снимки практически из одной и той же точки, что заметно упрощает дальнейшую склейку панорамы.

В-четвёртых, для борьбы с теми же смазами, если условия съёмки позволяют (не убегают из кадра, что в целом достаточно характерно для панорамных снимков), следут использовать задержку спуска. Все современные цифровые фотоаппараты позволяют сделать задержку в неколько секунд. Так что ставим на штатив, выбираем отложенный спуск, жмём капу и убираем пальцы. Это шаманское действо также магически охраняет от смаза. Ибо нет ничего хуже, когда вся панорама безнадёжно испорчена всего одним плохим кадром (из десятка), а руки дрожат абсолютно у всех, даже у хронических трезвенников. Ну разве что у роботов не дрожат (а это считай тот же штатив, вид сбоку).

Но вот наконец кадры сделаны и скачаны в компьютер, можно переходить к настоящему волшебству — склейке.