О съемке гигапиксельной панорамы Екатеринбурга

в 14:25, , рубрики: гигапиксельные изображения, екатеринбург, панорамная фотография, Фототехника, метки: , ,

В этой статье пойдет речь о создании панорамы Екатеринбурга.
Публикация на Хабре: habrahabr.ru/post/150591/ Сама панорама: ekburg.artstudio-3d.ru

Изначально более подробный вариант статьи направлялся в «песочницу», но НЛО не сочло его достойным инвайта. Ниже я опущу предысторию с тендерами и прочую «лирику», и постараюсь остановиться лишь на технической части.

image

В марте этого года был опубликован тендер на «изготовление панорамы города Екатеринбурга сверхвысокого (гигапиксельного) разрешения». Примерно сутки я обдумывал «смогу ли сделать эту работу если выиграю?». После положительного ответа на этот вопрос была подана котировочная заявка. Девушки в DHL были очень удивлены и пожелали удачи.
Тендер выиграл. (Не буду вдаваться в подробности в этой статье, хотя опыт работы в фото по системе тендеров уже есть кое-какой. Может быть еще статью напишу. 3 тендера выиграно на данный момент.)

Что нужно было снять?

Цилиндрическую панораму вида на город с местной высотки.
Разрешением не менее 10Gpx. А так же обычные панорамы 360х180 объектов по земле.

В целом вменяемое ТЗ, хотя и не без бредовых требований. «5000 исходных кадров» избыточны для 10Gpx (если речь о рально разных, а не просто брекетинге).

Снять куда больше, а потом ресайз вниз? Плохой вариант. Чем больше фокусное расстояние (меньше угол обзора), тем больше кадров, а, соотвественно, и стыков между ними. Это же, в свою очередь, увеличит количество «призраков» (половинки людей да машин и прочие артефакты блендинга). А еще снимать дольше по времени, т.е. выше риск изменения освещенности, да и тени могут местами просто не сойтись.

Снять на 50Gpx и получить еще один мыльный Дубаи (речь о старой панораме, которая прославилась «рекордом» по детализации и бессмысленностью по содержанию), где от уменьшения в 10 раз размера панорамы детализация не ухудшится? Тоже нет.

Доп. соглашение к контракту гласило, что объектов стало больше 10.
«Екатеринбург — объекты» на Яндекс.Картах

Расчеты

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

Готовых «калькуляторов» я нагуглить не смог, хотя особо и не старался — важно было самому все понять.

Поскольку в наличии из телеобъективов только 70-200/4L IS, то сначала расчет произвел для него.
В качестве камер рассматривались: 5D m2, как фф, и 600D (60D) как самый плотнопиксельный кроп (из актуальных на момент расчета кэнонов).

Внимание! Расчет ниже не претендует на 100% правильноть с точки зрения терминологии. Измерение «высоты кольца» в градусах — может повредить вашей психике. Просьба смотреть в суть, а не термины. Я таких расчетов уже 10 лет не делал.

70-200 имеет угол в 12о по диагонали (фф, 200мм), т.о. углы для фф и кропа:
фф: 9.99о по длинной стороне (3х) и 6.66о по короткой (2х);
кроп: 6.24о по длинной стороне (3х) и 4.16о по короткой (2х);

Для замыкания в 360о (кольцо без перекрытия) в теории нужно:
фф: 36 кадров (360:9.99), при высоте кольца в 6.66о — т.е. 127 от 180о;
кроп: 58 кадров (360:6.24), при высоте кольца в 4.16о — т.е. 144 от 180о.

Для полной сферы (360ох180о) в теории:
фф: 27 рядов по 36 кадров (972 кадра);
кроп: 44 ряда по 58 кадров (2552 кадра).

А в мегапикселях это:
фф: 27 x 36 x 21mp = 20 412mp;
кроп: 44 х 58 х 18mp = 45 936mp.

Перейдем к реалиям с перекрытием (25%) на сшивку.
Грубо уменьшим углы обзора, и будем дальше считать как бы без перекрытия:
фф: 7.5о (9.99ох0.75) по длинной и 5о (6.66ох0.75) по короткой;
кроп: 4.7о (6.24ох0.75) по длинной и 3.1о (4.16ох0.75) по короткой.

Для замыкания в 360о нужно:
фф: 48 кадров (360:7.5), при высоте кольца в 5о — т.е. 136 от 180о;
кроп: 77 кадров (360:4.7), при высоте кольца в 3.1о — т.е. 158 от 180о;

Итого, для полной сферы (360ох180о), с перекрытием в 25%:
фф: 36 рядов по 48 кадров = 1728 кадров;
кроп: 58 рядов по 77 кадра = 4466 кадров.

Апофеоз:
Пусть каждый кадр снимается до 1сек. (день же), и 3сек. уходит на перепозиционирование головы:
фф: 1728х4 = 1.9 часа (примерно 39Gb RAW-файлов);
кроп: 4466х4 = 4.9 часа (примерно 98Gb RAW-файлов);

Но это полная сфера, что бессмысленно (зачем нам небо и крыша здания с которого снимать?).
Пусть высота будет не 180о, а 60о:
фф: 576 кадров, 0.65 часа, 6.8Gpx;
кроп: 1448 кадров, 1.6 часа, 15.3Gpx.

Вывод? Спокойно можно снимать на 200mm и 18mp кроп-камеру.

Забегая вперед скажу, что расчеты неплохо подтвердились практикой.
После калибровки штативной головы «на месте» расхождения теорией составили 0.1-0.2о на кадр.

Чем работать?

Уже определился, что снимать на кроп-камеру о 18mp и 200mm объектив.
По условиям контракта съемка должна производиться с использованием «роботизированной штативной головы».
Хотя и можно снять 1450 кадров в ручном режиме, выбор, все же, пал на Gigapan EPIC Pro.
image

Ну а с наземными сферическими панорамами все просто: 5D m2 + 15mm. По схеме «2 ряда по 8 кадров». Это дает большое перекрытие, что поможет избавляться от призраков и половинок автобусов.

Если обычные сферические панорамы я уже привык (сшивать «потом, дома»), то гигапиксельный вид нужно проверить прямо в Екатеринбурге. Для этого был куплен нетбук следующей конфигурации: i7-2670QM / 16Gb RAM / 128Gb SSD / 640Gb HDD.

В Екатеринбурге

Наверное, и правда, не стоит писать об этом тут. Оставлю в жж. Всего в городе провел 5 дней. День ушел на тесты и пристреливания на крыше высотки, день на съемку, и еще 3 дня на городские виды «по земле».

Панорама же была снята 16го мая 2012 года.

На крыше

Что нужно учитывать в первую очередь?

  • Погоду и ее прогноз на ближайшее время. Недопустима резкая перемена освещенности. Нежелательны облака – будет каша.
  • Влажность – чем выше она выше, тем сильнее будет муар и хуже видимость.
  • Высоту солнца над горизонтом – чем выше, тем лучше.
  • Время съемки – снимать надо максимально быстро, иначе тени уползут и не сошьются.
  • Ветер был порывистый, пришлось снять бленду с объектива, для уменьшения площади паруса.

image
Фотографы тоже снимают телефонами. Первый день, тесты.

Как снимать?

  • Рядами сверху вниз. Так уменьшается количество «призраков» возникающих при сшивке.
  • Фокус – руками, с перефокусировкой каждые несколько рядов. Иногда это давало сбои (есть мыльные участки), но что поделать.
  • Режим – Av. М, при съемке такого числа кадров, не имеет смысла. Разбег освещенностей ни в одну матрицу по ДД не влезет.
  • Тесты показали, что экспокоррекция, вцелом, не нужна, но желательна эксповилка.
  • Само собой в RAW. Меняя флешки и сразу отсматривая материал.

Обработка материала

Опишу процесс работы над большой панорамой.

Нужно отобрать кадры, предварительно сконвертировать.
Затем собрать тестовую панораму, проверить ее на корректность сшивки.

Потом начинается самое нудное – нужно обрабатывать конкретные кадры и группы кадров. Что бы не было полос и перепадов яркости да цвета. Подменять кадры и смотреть на результат. В рядах кадров «неба» — очень много замен. И так много раз по кругу.

После того как цвет был выровнен я приступил к борьбе с «призраками» (людьми без голов, половинками машин, двухколесными автобусами). Это делается масками в PTGui, а иногда и ретушью в фотошопе. Эти операции так же повторялись многократно.

Если говорить о времени сшивки и нарезки изображений на тайлы (KRPano), то цифры, в среднем для каждого сектора, такие:

расстановка контрольных точек (автоматом) – 30-40 минут;
сшивка панорамы – 2-2.5 часа;
нарезка на тайлы – 1.5 часа;

Последние два пункта повторялись очень много раз. Окончательные правки вносились уже после предварительной публикации панорамы и обсуждения ее зрителями. И даже после этого — минимум пара призраков остались. Всего ушло примерно 3-4 недели.

Самым неприятным было применять кривые к двум из трех панорам (секторов). Для файлов в 5-7 гигапикселей и 20 гигабайт операции «открыть, применить кривые, повысить контраст, сохранить, закрыть» занимали по 2-3 часа.

Статистика отснятого

Было отснято 3 панорамы:

1. 19 рядов по 36 кадров – итого 684 уникальных (без учета брекетинга);
время съемки: 34 минуты;
угловые размеры: 160о по горизонту и примерно 55о по вертикали;
размеры сшитой простыни: 127 800 х 54 850 px, примерно 7 Gpx.

2. 15 рядов по 36 кадров – или 540шт;
время съемки: 31 минута;
угловые размеры: 160о по горизонту и примерно 40о по вертикали;
размеры сшитой простыни: 131 175 х 37 922 px, примерно 5 Gpx.

3. 16 рядов по 34 кадра – или 544шт;
время съемки: 31 минута;
угловые размеры: 155о по горизонту и примерно 47о по вертикали;
размеры сшитой простыни: 122 400 х 43 800 px, примерно 5.4 Gpx.

В общем, очень близко к расчетам.

Почему 3 сектора, а не единый цилиндр?
Не позволяет конфигурация крыши. При такой относительно небольшой высоте (43 этажа?) точки съемки слишком сильно разнесены друг от друга. Параллакс велик. Была попытка собрать, если не в единый цилиндр, то хотя бы в 2 сектора. Не вышло. На «пограничных территориях» доходило до того, что у одного и того же небольшого здания на одной панораме я видел как бы левую стену, а на другой чуть ли не правую.

Благодарности

Хочу сказать спасибо людям оказавшим мне помощь в реализации данного проекта:
Алексей Крылов, г. Москва;
Антон Фадеев, г. Екатеринбург;
Владимир Барданос, г. Новокузнецк;
Родион Галанев, г. Москва.

Что в итоге?

Опыт интересной работы.
Довольно неплохая визуализация Екатеринбурга.

О самой же панораме судить вам:

image
Екатеринбург: гигапиксельная панорама и виртуальный тур (кликабельно)

Конструктивная критика — приветствуется.
При смене обзора в адресной строке браузера меняются данные, т.о. можно давать ссылки на конкретные виды.

Автор: ArtStudio3D

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js