Мастер-класс по съемке и сшивке панорамных изображений

В первую очередь статья будет касаться сферических панорам. Материал был создан очень давно и несколько раз корректировался и дополнялся, поэтому скриншоты будут на примере разных панорам.

Введение

Сферическая панорама должна иметь охват 360° или полный круговой обзор по горизонтали и 180° по вертикали или обзор от нижней точки (так называемый надир) до верхней точки (зенит). Если охват будет меньше — такая панорама уже не будет сферической.

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

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

У объективов с выдвигающимся далеко вперед линзоблоком (в народе такой конструктив имеет название «хобот») при изменении фокусного расстояния и у объективов с выраженным эффектом «focus breathing» (это явление, когда при наведении объектива на разные дистанции меняется угол его обзора), положение нодальной точки меняется для разных положений линзоблока.

Вращение фотоаппарата на штативной головке. Изображение справедливо для обеих осей вращения по горизонтали и по вертикали

Вращение фотоаппарата на штативной головке. Изображение справедливо для обеих осей вращения по горизонтали и по вертикали

А вот пример панорамной головки (на фото головка «Сфера-3») с установленным на ней фотоаппаратом Canon 600D.

Canon 600D на панорамной головке

Canon 600D на панорамной головке «Сфера-3»

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

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

Настройка панорамной головки

Установить фотоаппарат на панорамную головку — мало. Еще необходимо ее настроить. Настройка головки сводится к установке положения фотоаппарата так, чтобы он вращался точно вокруг нодальной точки. В интернете можно найти уже готовые данные по наиболее распространенным объективам или определить положение нодальной точки самостоятельно с помощью двух длинных и узких предметов (хорошо подойдут свечки, карандаши и т. д.). Для настройки головки сперва выравниваем положение фотоаппарата по нижнему уровню так, чтобы он был строго в центре кадра, потом ставим несколько вертикальных предметов один за другим на некотором расстоянии друг от друга строго на оптической оси фотоаппарата (чем дальше друг за другом они будут стоять, тем точнее получится настройка, хороший результат получается при расстоянии 40–50 см между предметами и 70–100 см до фотоаппарата). При этом задний предмет не должно быть видно за передним. Сперва поворачиваем головку так, чтобы предметы находились возле левого края кадра, подстраиваем положение головки так, чтобы передний предмет закрывал задний, потом поворачиваем головку так, чтобы предметы оказались возле правого края и точно так же подстраиваем положение, чтобы предметы были один за другим. Если ни в одном из трех положений (крайнее левое, центральное, крайнее правое) задний предмет не выглядывает из-за переднего, значит, что головка настроена правильно. Теперь можно сделать метки для дальнейшей быстрой настройки головки или затянуть винты намертво, если смена объективов не планируется.

Съемка панорамы

Когда головка настроена, можно приступить к съемкам.

Делаем серию снимков по следующим правилам (этими правилами необходимо руководствоваться и для съемки обычных панорам):

  1. Включаем приоритет диафрагмы и выставляем желаемое значение диафрагмы. При съемке днем имеет смысл поставить диафрагму F/7.1 — F/9 или даже сильнее, поскольку это увеличит глубину резкости и резкость всей системы в целом. В темное время суток диафрагму наоборот необходимо открыть (съемка панорам звездного неба и т. д.). Если же идет съемка улицы, освещенной фонарями, то диафрагму также лучше закрыть до значения F/7.1-F/9. Поскольку значение выдержки при съемке в темное время суток может составлять несколько секунд, то необходим штатив и желательно использовать спусковой тросик, беспроводной пульт или просто активированный автоспуск — достаточно автотаймера на пару секунд. Впрочем, тросик будет нелишним для удобства взаимодействия с камерой на головке и увеличения скорости съемки. Я пользуюсь самодельным тросиком согласно схеме, нуженлишь разъем jack 2.5 (подойдет даже старая ненужная гарнитура от мобильного телефона, но провод земли будет соответствовать третьему от наконечника контакту) и пара кнопок, а упакована конструкция у меня в корпус от контроллера китайской восьмипрограммной гирлянды.

    86bd08f9d4025fd201b4c768b7ceb9b9.png
  2. В настройках выставляем баланс белого, соответствующий конкретной обстановке — ясно, облачно и т. д. Он не должен быть на автомате. Вспышку необходимо либо отключить совсем, либо держать принудительно включенной. Это важно!

  3. Наводим аппарат на участок средней освещенности, прижимаем кнопку затвора и запоминаем значение выдержки, которое выдаст фотоаппарат.

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

  5. При съемке со штатива обязательно отключаем стабилизатор изображения на камере и/или на объективе (если он есть), поскольку при использовании штатива он будет не компенсировать дрожание камеры, а наоборот сам приведет к тряске и смазыванию изображения (чем более мощный стабилизатор в объективе и чем больше фокусное расстояние, тем заметнее).

  6. Как я уже упомянул выше, видовые панорамы с достаточно удаленными объектами без особых проблем можно снимать и с рук, поскольку здесь эффект параллакса влияет мало, а небольшие нестыковки можно подогнать при сшивке и ретуши в фоторедакторе, но снимать на автофокусировке и сбивать фокусировку все равно нельзя, иначе на первом снимке резкость может оказаться «вот на этом дереве», а на втором снимке — «вон на той горе», и поэтому на стыке снимков часть объекта может получиться резкая, а часть — размытая.

  7. Делаем серию снимков с гарантированным перехлестом между каждой парой снимков, лучше с вертикальной ориентацией камеры (при той же ширине охвата панорама получится в большем разрешении), перехлест делаем до ¼–1/5 кадра, поскольку это увеличивает вероятность удачного схождения снимков.

  8. Съемку панорамы нужно производить как можно быстрее, особенно в условиях, когда в кадре есть люди, транспорт, облака и прочие движущиеся объекты, в противном случае на панораме могут возникнуть казусы, типа выезжающих из ниоткуда и въезжающих в никуда автомобилей и двойников людей, вплоть до невозможности нормальной сшивки.

  9. Обрабатываем всю серию снимков в RAW-конвертере с одинаковыми параметрами или обрабатываем один снимок, после чего все настройки применяем к остальным снимкам серии. Если фотоаппарат или смартфон не позволяет снимать в RAW и/или имеет ручных настроек, то пропускаем пункты 1, 3, 4, 5 и 9.

Программное обеспечение

Далее нам потребуется приложение для сшивки панорам. Я перепробовал множество инструментов, в частности, PTGui, Kolor AutoPano Giga (работает вроде бы неплохо, но одну из моих панорам почему-то изогнул волной и вдобавок больше не поддерживается разработчиком), бесплатный Hugin (основан на старом движке Panorama Tools, лично у меня перевернул панораму вверх ногами и после долгих раздумий вылетел с ошибкой; к слову, PTGui изначально представляла графическую оболочку для этого же самого движка, отсюда и название, но в дальнейшем разработчики от него отказались из-за его устаревания) и встроенное средство сложения изображений в Photoshop (сложные панорамы собирает весьма коряво).

В настоящий момент PTGui — это самый передовой инструмент. Самое главное, что он имеет мощные встроенные оптимизаторы параллакса и экспозиции, поддерживает OpenCL, что очень сильно ускоряет обработку даже на слабых видеокартах. Стоит учесть что для работы PTGui требуется как можно больше ОЗУ, желательно не меньше 8, а лучше — от 16 ГБ, также выделите хотя бы 30–40 ГБ свободного места под временные файлы. Если при выводе изображения полезут артефакты при включенном аппаратном ускорении — обновите или наоборот поставьте более старый видеодрайвер; на Intel HD аппаратное ускорение не работает, а PTGui может вообще вылетать с ошибкой. Также можно установить (ставятся путем простого копирования в рабочую папку PTGui и прописывания путей в ее настройках) плагины Enblend, Smartblend (это вообще очень крутая вещь — устраняет эффект параллакса и позволяет четко склеить несводимое, хотя работает очень медленно, потому что не поддерживает многопоточность и 64-битную архитектуру, также возможны проблемы с изображениями объемом более 4 ГБ, в этом случае помогает снизить разрешение выходного файла до 15000–20000 пикселей по длинной стороне), Autopano (это не одноименная программа AutoPano Giga, хотя они и выпускались одним и тем же разработчиком), PTOptimizer и PTStitcher. Все эти плагины можно найти в Интернете.

Также нам потребуется Photoshop и Pano2VR. Photoshop в представлении не нуждается, а Pano2VR — приложение для создания так называемых виртуальных туров (несколько панорам, объединенных точками перехода и опционально дополненных справочной информацией и т. п.) и преобразования панорам. Мы в нем будем будем преобразовывать эквидистантную панораму в стороны куба для их ретуши и потом обратно из сторон куба будем собирать плоскую проекцию.

Сшивка панорамы

Серия снимков сохранена из RAW

c45338ef94edf1f4908af3b18964452c.png

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

  1. Загружаем серию изображений в PTGui

    5f9691f800f3afd9279fd9ff0872321f.png
  2. Нажимаем Align images. Программа выполнит анализ изображений, сгенерирует контрольные точки и попытается по этим точкам соединить изображения. Результат будет показан в окне Panorama Editor, здесь также можно двигать и наклонять панораму в разные стороны, а также выбрать тип проекции. Сразу бросаются в глаза засечки на плитках, кусок тени от меня и небольшие дырки в областях, которые оказались недосняты. Поскольку эта панорама была отснята с рук, ряды получились перекошенные, а в каждом ряду — разное количество снимков.

    6cf01089dc17b4743dbc23ea2d7f4322.png

    Для сравнения приведу пример панорамы, снятой с использованием головки. Снимки каждого из рядов находятся точно друг на другом — красота! Черная полоса внизу — платформа панорамной головки.

    ed38234697fb0ba0f675e6469ad619d1.png
  3. Возвращаемся к главному окну PTGui, сразу же нажимаем кнопку Advanced справа вверху (она доступна только на первой вкладке), при этом появятся дополнительные вкладки и параметры. Поскольку низ у меня был снят с избыточностью, я сразу же сразу же исключил из проекта изображения под номерами 52 и 54. Получилось следующее: тень от меня стала гораздо меньше.

    29a363465bd435625334666a14be9eb7.png
  4. Теперь переходим на вкладку Control Points. Здесь мы будем добавлять собственные контрольные точки, по которым будет сшиваться панорама, особенно если их недостаточно или PTGui не смогла их найти совсем. В данном случае сразу после первичной сборки панорамы будет выведено предупреждение о том, что часть фрагментов не удалось привязать к панораме и номера этих фрагментов. Добавление контрольных точек вручную — едва ли не самое муторное занятие при создании панорамы, потому что необходимо расставить точки между каждой парой сообщающихся между собой изображений. Но в PTGui данный инструмент реализован наиболее удобно по сравнению с другими аналогичными программами: при достаточном количестве имеющихся точек (начиная уже от 3–5) PTGui сама может предсказывать расположение добавляемых точек. Жирным выделены изображения, имеющие общие между собой контрольные точки. Так например, с фрагментом №0 связаны изображения №№ 1, 10, 11, 12, 34, 35, 45 и 46, а с №1 — изображения №№ 0, 2, 12, 13, 14, 34, 35, 36 и 46. Сама PTGui расставляет точки по одной ей понятной системе. Я же советую для удобства расставлять точки по наиболее выделяющимся объектам, например, по углам плиток, декоративным элементам, цветам на клумбе.

    168346a5c92787f51b968cff5facb152.png
  5. По окончании добавления точек переходим на вкладку Optimizer, где отмечаем галочки напротив всех изображений в столбце Viewpoint, ставим галочки Horizontal shear и Vertical shear, выбираем Optimize using PtGui, нажимаем Run Optimizer и соглашаемся применить изменения. Снова возвращаемся на 1 вкладку, открываем Panorama Editor и видим, что стало гораздо лучше — засечки практически исчезли.

    7bba4bb8f70f81761e70c4623fe67238.png
  6. Открываем вкладку Exposure. Здесь можно выполнить коррекцию экспозиции, баланса белого, винъетирования и т. д. Несмотря на то, что данный инструмент выполняет коррекцию очень и очень неплохо, он не всемогущий, и слишком выбивающиеся по экспозиции и балансу белого снимки нормально не выправит. Ставим галку Exposure Compensation, нажимаем Settings, где выбираем Optimize Vignetting — Enabled, Optimize — Enabled (Full), Optimize White Balance — Enabled, Optimize Flare и Camera responce Curve не трогаем (оставляем Disabled и Automatic соотвественно). Нажимаем OK и соглашаемся применить коррекцию. Можем проверить результат в окне Panorama Editor.

  7. Переходим на последнюю вкладку Create Panorama, выбираем Blend Using — SmartBlend plugin и возвращаемся на одну вкладку назад — открываем Preview. Здесь можно вывести панораму в черновом качестве для предварительного просмотра. Задаем желаемое разрешение (самое оптимальное разрешение 2–3 тысячи точек по высоте, с запасом на масштабирование), жмем Preview и выбираем, в чем будем смотреть — встроенными средствами PTGui или просмотрщиком изображений по умолчанию. Я выбираю второй вариант. Если же выбрать средства PTGui, откроется окно, в котором можно покрутить сферическую панораму. После выбора желаемого просмотрщика надо немного подождать, пока сошьется панорама. Оптимизаторы отработали настолько отлично, что тень от меня пропала вовсе, засечки на плитках тоже исчезли. Если материал отснят с использованием панорамной головки, общая ошибка (Average error) даже в случае сложной панорамы может составлять не более 4–5 попугаев, что соответствует хорошему результату (good), а дальнейшая оптимизация может привести к снижению общей ошибки до 1.5–2 попугаев — это уже считается очень хорошим результатом (very good); в ряде случаев это значение вообще может быть меньше единицы. Справедливости ради, приемлемый результат можно получить и при гораздо бОльших значениях ошибки (может выдать not so good, not bad).

    17f0272c9ffd3ad527ad1afc1e0ef59c.png
  8. Если результат устраивает, можно делать финальный вывод. Для этого открываем последнюю вкладку Create Panorama, выбираем желаемый формат, нажимаем Create Panorama и оставляем компьютер на время от нескольких минут до нескольких часов, в зависимости от производительности железа, а также размеров и сложности панорамы.

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

  10. Для удобства ретуши загружаем созданную панораму в Pano2VR. При этом сразу могут быть заметны явные косяки типа сходящихся конусом неба и земли, например, такие:

    c1f84a0cf707de9ed3d80e1bd913cb51.png
  11. Для разделения панорамы на квадраты нажимаем Преобразовать импорт, в открывшемся окне выбираем Тип — Грани куба, все остальное оставляем как есть и нажимаем Конвертировать.

    d300326338c76a1e714da9a04096b4c5.png

После конвертации в папке с панорамой появятся 6 квадратных фрагментов панорамы:

c5926eb8823299867ff27c48f6400e73.png

  1. Видно, что необходимо избавиться от конуса на небе (фрагмент IMG_3931 Panorama1_cube_4.tif). Каждый решает сам, как и что будет делать. Я его размазал с помощью микс-кисти. Было/стало:

    8d2d4203ee948fa95422d85df8142b8c.png
  2. Сохраняем отретушированный фрагмент и загружаем его в Pano2VR, после чего проверяем, нормально ли он состыковался с остальными кусками панорамы.

    59bc64f21fc33439fa28250050b599e0.png
  3. Конуса больше нет, поэтому панораму можно собирать обратно. Снова нажимаем Преобразовать импорт, но теперь выбираем Тип — Эквидистантная, указываем ширину исходного изображения и снова нажимаем Конвертировать.

    e34ceacdba3aa7c26c0bbf95cee38f3d.png
    1. При съемке со штатива в нижней части панорамы неизбежно появление черного круга — области, не охваченной во время съемки, а также ног от штатива. Единых рецептов по устранению черного круга нет. В случае, если надир простой (земля, асфальт, трава и т. д.) — достаточно круг замазать клонированным штампом или выполнить заливку с учетом содержимого. При ретуши надира с повторяющимися элементами (плитка, паркет и т. д.) можно сделать заплатку из фрагмента, взятого рядом с кругом, подогнать его различными трансформациями и по месту, пройтись ластиком и подмазать клонированным штампом. Еще более сложный надир (ковры со сложным узором и т. д.) однозначно требует съемки кадра земли, который будет использован в качестве заплатки.

    2. Если при сборке панорамы вылезли двойники или «распиленные» объекты, я либо заретушевываю их клонированным штампом (если это представляется возможным), либо открываю исходное фото, выделяю нужный объект, копирую, вставляю в панораму, подгоняю с помощью различных видов трансформации (искажение, деформация и т. д.), объединяю слои и прохожусь по краю вставленного фрагмента клонированным штампом или перед объединением слоев прохожусь ластиком с мягкими краями и нажимом 50–70%.

      ae6b2f570730eced5d03bdcf9b851b80.png

Теперь полученное изображение в TIFF можно пересохранить в JPEG и использовать для выгрузки на сайты сферических панорам или создания собственных виртуальных туров.

© Habrahabr.ru