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

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

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

В марте этого года был опубликован тендер на «изготовление панорамы города Екатеринбурга сверхвысокого (гигапиксельного) разрешения». Примерно сутки я обдумывал «смогу ли сделать эту работу если выиграю?». После положительного ответа на этот вопрос была подана котировочная заявка. Девушки в 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 о — т.е. 1\27 от 180 о ; кроп: 58 кадров (360:6.24), при высоте кольца в 4.16 о — т.е. 1\44 от 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 о — т.е. 1\36 от 180 о ; кроп: 77 кадров (360:4.7), при высоте кольца в 3.1 о — т.е. 1\58 от 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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Самым неприятным было применять кривые к двум из трех панорам (секторов). Для файлов в 5-7 гигапикселей и 20 гигабайт операции «открыть, применить кривые, повысить контраст, сохранить, закрыть» занимали по 2-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 сектора. Не вышло. На «пограничных территориях» доходило до того, что у одного и того же небольшого здания на одной панораме я видел как бы левую стену, а на другой чуть ли не правую.

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

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

Что в итоге?

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

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

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

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

UPD: Отретушировал большую часть из указанного в комментариях. Файлы обновил. Копию администрации заказчика передал.

📎📎📎📎📎📎📎📎📎📎