На современных картах все больше появляется 360 аэроснимков, которые принято называть "Сферические панорамы". Почти каждый владелец БПЛА с камерой может создавать свою собственную сферу. Но при изучении материалов на эту тему, обнаружил совсем мало информации об инструментах и способах склеивания. На Хабре уже была хорошая статья, но мы попробуем разобрать более подробный способ создания 360 панорамы с помощью бюджетного дрона DJI Mini 2. Этот туториал подойдет также для старших линеек.
С выходом Mini 2 появилось много фишек, как съемка изображений в формате RAW (DNG), 4K разрешение а также поддержка умных режимов. При автоматическом создании 360 сферы с помощью приложения DJI Fly, мы получаем достаточно неплохой результат, но не без грехов. В некоторых местах цветокоррекция оставляет желать лучшего, не говоря о разрешении такой панорамы.
Дефолтно приложение отдает фото в качестве JPEG, а в установочных параметрах во время съемки сферы RAW вообще выключен. Для его включения необходимо запустить дрон непосредственно в воздух и уже в полете применить необходимую настройку.
В настройках выбираем RAW+JPEG. Готово. Теперь можно производить съемку. Обычно я не использую PRO режим, а оставляю AUTO на экспозицию, баланс белого и выдержку. (Кроме ночных съемок)
Для лучшего качества изображения использую ND-фильтры от PGYTECH. (Эффект солнечных очков) Обращайте внимание на погодные условия: облачность в районе 20-50%, ветер не более 7 м/с. При сильных порывах кадр может быть смазан или в него вовсе попадет "шапка" дрона. Для выбора благоприятной погоды рекомендуется использовать сервис UAV Forecast, где уже в зависимости от характеристик беспилотника можно выбирать наилучшее время для полета. Также избегайте яркого солнца — снимки получаются слишком насыщенными и не поддаются обработке, а при высокой облачности наблюдается дымка, которая при засветке сильно искажает кадр. Обычно я выбираю для съемок ранее утро или вечер. С композицией и цветами лучше работать при таком освещении.
Локация выбрана, настройки произведены — можно начинать съемку. Всего дрон создаст около 26 снимков в разрешении 4000:3000 в папке PANORAMA. Теперь преступим к обработке полученного материала.
Инструменты:
Adobe Photoshop
Модуль Camera Raw 13.3.0
PTGui Pro
Affinity photo
Для начала нам понадобится старый добрый Adobe Photoshop (Или Lightroom) с модулем Camera Raw версии 13.3 с обновленным эффектом резкости. Из папки выбираем все наши 26 DNG снимков и переходим к фотошопу.
В глаза сразу бросаются артефакты: недостаточное освещение, размытость фона, тусклые цвета... В боковом меню выбираем все изображения через Cmd + A (Ctrl + A) - тогда настройки будут применятся ко всем фото.
Первым делом редактируем экспозицию в большую сторону, чтобы изображение стало более светлым, увеличиваем контрастность, понижаем уровень теней и затемнения. Уровень четкости, удаления дымки и текстуры обычно находится на 20, но это при условии отсутствия сильных шумов. Как правило эта настройка выставляется индивидуально, а на снимках горизонта может быть выкручена на + 10 от остальных. Красочность и насыщенность выставляется также индивидуально, но в рамках естественности, чтобы цвета не выглядели кислотно.
В кривых можно самостоятельно поиграться в уровнях тона и цвета, но все изображения должны быть в одном тоне. Слишком яркие или слишком темные кадры рекомендуется редактировать изолированно от всех.
В параметрах детализации PS уже автоматически проставляет значение для цвета, нам же необходимо применить около 25 к параметру Уменьшение шума. Для кадров горизонта это значение может увеличиться на разницу параметра резкости от остальных из настроек выше.
Важный пункт: Смещение цветов. Здесь мы красим наши цвета: зеленый делаем более насыщенным, а синий/голубой менее освещенным. Тогда панорама приобретает уже более живой вид. Хочу отметить, что при покраске неба, необходимо добиться минимальной яркости, для более четкого контура облаков. Это также можно сделать в настройках кривых.
После обработки изображений не забываем выделить их все в превью и открыть уже непосредственно в самом интерфейсе фотошопа. При необходимости можно произвести дополнительное точечное редактирование снимков — удалить лишние объекты, исправить яркость, вырезать с кадра случайных прохожих, подправить цвета.
Далее необходимо сохранить все 26 кадров в формате TIFF со сжатием LZW. В Lightroom это будет проще :)
Многие могут спросить: почему процесс склейки нельзя сделать в самом PS? К сожалению, постоянно наблюдаю проблемы с производительность обработки файлов DNG - этот процесс затягивается на часы, а на выходе получается нескладное изображение. Для создания горизонтальных панорам, в принципе, PS справляется неплохо, но не для 360... Поэтому мы будем использовать проверенную временем нейронку PTGui.
Готовые файлы грузим в PTGui Pro. Программа автоматически установит фокусное расстояние камеры из EXIF data. При необходимости можно изменить надстройку в ручную. Запускаем процесс установки контрольных точек и сшития через Align images — далее откроется окно с превью нашей панорамы.
После обработки получаем неплохой результат. PTGui предварительно исправляет возможные погрешности экспозиции и света, которые могли произойти во время обработки в PS. В кадре мы можем увидеть "шапку" дрона, про этот кейс я говорил чуть выше. Сейчас мы используем старую версию PTGui — поэтому получаем пустоту в верхней части экрана. Счастливые обладатели последней версии могут наблюдать как программа сама заполнит пустое пространство. Как исправить это вручную на старых версиях, опишу чуть ниже.
При захвате местности с водой, снегом или большим полем можно столкнуться с невозможностью установить контрольные точки автоматически. PTGui попросит Вас самостоятельно свести проблемные участки. В целом в этом нет ничего сложного. В одной из своих панорам я делал это практически в слепую.
Если проблем не возникло, горизонт ровно по линии а на превью нет явных артефактов, переходим уже к финальной выгрузке панорамы.
Жмем на последнюю вкладку и задаем следующие параметры:
Размеры 10000:5000 px - Больше при необходимости.
Формат TIFF.
Сжатие 16 bit с LZW компрессии.
Готовую панораму открываем вновь в Photoshop. Попробуем заполнить наше пространство и кажется что нейронки PS в этом отлично справятся. Выделяем пустоту, увеличиваем выделение так чтобы 100 px изображения попадало в выделяемую зону. Переходим в пункт Редактирование - Заливка с учетом содержимого. Применяем.
Многие могут подумать что на этом все, но нет. При загрузке на какой-нибудь сервис можно будет увидеть резкие поля склейки в верхней части панорамы. Для того чтобы это исправить отправимся в Affinity photo, предварительно объединив слои и сохранив изображение в том же TIFF. Кто-то может опять сказать, что редактирование панорамы можно сделать в том же PS в 3D режиме — мне честно он не зашел, несмотря на мощное железо он и на нем умудряется лагать. А с лагами не всегда приятно работать.
Уже в Affinity photo открываем изображение и идем в пункт Слои -> Динамическая проекция -> Равнопрямоугольная проекция.
Теперь с помощью перемещения (M) можно полноценно прокрутить нашу панораму. На этом этапе переходим к исправлению нашего неба. Изменяем поле обзора в левой верхней панели на 90°. Перемещаем обзор вверх и вызываем Кисть зарисовки (J) - Проблемные участки закрашиваем выделением и ждем чудо нейронки.
После обработки необходимо вновь вызвать перемещение (M) и нажать на кнопку "Изменить проекцию", чтобы продолжить поиск проблемных участков. В целом, если грехов больше нет, можно удалить Динамическую проекцию и финально сохранить готовую панораму. Обычно я использую формат JPEG. Такой формат можно загрузить быстро на Яндекс.Панорамы или SkyPixel. Вес при этом будет составлять всего 33-35 мб.
Для создания подобной сферы можно обратиться с сервису imgonline. Загружаем свой JPEG и отключаем опцию Сглаживание шов в начале и конце панорамы. Итоговый результат можно скачать в любом формате.
Итоговое изображение можно заценить на SkyPixel или Яндекс.Панорамы.
Нюансы
Использование Affinity photo и Photoshop. Оба продукта хороши в цветообработке и в целом можно использовать только один Affinity (Он обойдется дешевле фотошопа), но PS не уступает по качеству редактирования RAW, но проигрывает в удобстве при работе с динамической проекцией. Возможно я могу ошибаться.
Обработка цвета панорамы после склейки. Не рекомендую это делать, так как после изменения насыщенности или яркости изображения Вы скорее всего столкнетесь с шовной линией по середине панорамы.
После обработки PTGui могут обнаружиться нестыковки в кадрах. Это можно быстро исправить в фотошопе с помощью зарисовки или штампа.
Итог
Мы получаем 100% способ создания Сферической панорамы без явных артефактов, пустого дна или неба. Приблизительно у Вас уйдет минут 20 на каждую панораму.
Комментарии (12)
Gordon01
30.08.2021 07:43На яндекс-панорамах выглядит шикарно, а вот фотка с кругом, имхо, довольно бесполезна.
Вот бы все это автоматизировать, чтобы не сидеть по 20 минут. Удивлен, что DJI не сделали склейку панорам прямо на дроне.
P.S. артефакт проскочил:
susanin39 Автор
30.08.2021 12:59Да автоматизация есть у DJI, но разрешение, которое Вы получите из приложения, не будет таким, как если бы Вы сделаете панораму в вручную. + Верхушка будет просто залита размытым цветом без детальной прорисовки.
Да такие артефакты боль(
Javian
30.08.2021 09:23+1Microsoft Image Composite Editor неплохо клеит панорамы. А по статье: ожидал увидеть в статье на Хабре некую автоматизацию процесса от съемки до заливки результата куда-то в галерею, а не инструкцию куда нажимать.
zxcvbv
По мне так склеить панораму в фотошопе и "подкрасить кисточкой" косяки для целевой аудитории хабра - вещь тривиальная (особенно в последних версиях). Вот как потом это смотреть в офлайне без вот этих вот облачных сервисов - вот это было бы интересно, может есть какой вменяемый софт.
susanin39 Автор
Имеете ввиду как посмотреть панораму после ее публикации без сервисов Яндекса или DJI? Можно прямо в Affinity photo или в том же PTGUI. + Подобный функционал есть в Google Photo. Но вот прямо отдельного софта пока не видел)
zxcvbv
Видимо, сначала нужно появление некоего общепризнанного формата файла хранения 360°-панорам, после чего стандартные просмотрщики изображений уже подтянутся и реализуют просмотр (или такой уже есть?).
susanin39 Автор
Скорее всего дело не в формате) Это может быть tiff, jpeg или png. Просто средство универсального просмотра должно создать виртуальную камеру внутри такого изображения. Я думаю необходимо признание общего тэга в EXIF data. Тогда Photoshop или обычный Viewer сможет открыть правильно нашу сферу без сторонних сервисов)
zxcvbv
Я имел в виду, что все эти форматы хранят изображение в прямоугольной системе координат. Натягивание прямоугольной картинки на сферу влечет искажение пикселов ближе к полюсам (для равномерной плотности пикселов в сферической системе координат, их декартова проекция должна быть прорежена по широте, и уплотнена по долготе чем ближе мы подходим к полюсам). Если хранить картинку в сферических координатах, то получим равномерно максимальное разрешение по всей сфере при минимально возможном размере файла. Но наверное вы правы, и такой подход - это оверкилл и излишнее усложнение: приобретаем меньше (качество у полюсов при минимуме размера файла), чем теряем (сложность редактирования и хранения).
zlob
За десктоп не скажу, а для мобилок нужно только поискать.
Android https://play.google.com/store/apps/details?id=com.xojot.vrplayer
iOS https://spherium.app/
Но большого смысла в них не вижу. Самому смотреть это конечно весело, но хочется же поделиться и чтобы у человека на другом конце не возникло проблем с просмотром.
Google Photo закрывает этот вопрос (хранение, доставка, просмотр).