Международная конференция разработчиков
и пользователей свободного программного обеспечения

Любительская малобюджетная аэрофотосъёмка с использованием свободного программного обеспечения

Дмитрий Самсонов, Москва, Russia

LVEE 2015

This work concerns some tasks needed for KAP (Kite Aerial Photography) with free software (mostly from Debian GNU/Linux). This method was successfully used for taking aerial photos of several open-airs in 2013 and 2014. Nowadays it is very important to have cheap and simple solution.

Иногда возникает необходимость сделать аэрофотосъёмку. Например, на фестивале, проводящемся на открытом воздухе. Свежепостроенные фестивальные объекты могут не попасть на общедоступные спутниковые снимки, поэтому снимать их приходится самостоятельно. В данной работе рассмотрена методика, применявшаяся при аэрофотосъёмке фестивалей <<Пустые Холмы — Город Золотой>> осенью 2013 года и <<Фестиваля 17>> летом 2014 года.

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

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

Схематичное изображение процесса аэрофотосъёмки
Схематичное изображение процесса аэрофотосъёмки

Аппаратная часть

Готовые решения в виде специализированных самолётов стоят довольно дорого, а в самостоятельном производстве трудозатратны. Радиоуправляемые вертолёты (“дроны”) стоят дешевле, однако дрон, способный устойчиво поднимать в воздух относительно тяжёлый фотоаппарат стоит существенно дороже дешёвых моделей (а лёгкие фото-видеокамеры дороги сами по себе). К тому же у дронов высокие эксплуатационные издержки. Относительно дешёвыми являются воздушный змей и воздушный шар. Был выбран воздушный змей.

Для создания пикавета — платформы, обеспечивающей вертикальность съёмки, — была использована часть деревянной коробки, найденная среди бытовых отходов. Крючки для прикрепления пикавета к лееру были найдены в заброшенном цеху НИИДАРа (научно-исследовательский институт дальней радиосвязи).

Пикавет
Пикавет

Обеспечить серийную съёмку недорогими аппаратами стало возможным благодаря проекту CHDK — имеющийся функционал по выполнению скриптов позволил запрограммировать необходимое поведение даже у дешёвой “мыльницы” Canon PowerShot A480. Отдельным преимуществом является возможность работы от AA-батареек, что гораздо удобнее в полевых условиях, чем аккумуляторы “проприетарных” форматов.

Для привязки к местности снимаются GPS-координаты нескольких заметных объектов, однако для удешевления можно воспользоваться данными OpenStreetMap и публично доступными спутниковыми снимками. В данном случае использовался Garmin GPSMAP 62.

Программные средства

Стоит отметить, что почти всё необходимое программное обеспечение (за исключением CHDK) можно обнаружить в дистрибутиве Debian GNU/Linux, что удобно в полевых условиях.

CHDK

Canon Hacker’s Development Kit1, так называемая “неофициальная прошивка”, а на самом деле — резидентная программа, работающая без модификации прошивки фотоаппарата. Поддерживаются более сотни моделей аппаратов. Позволяет запускать самописные скрипты, программируя логику поведения аппарата в том числе в зависимости от внешних обстоятельств. Для данной задачи оказалось достаточным скрипта для съёмки timelapse, доступного “из коробки”.

Hugin

Hugin2 позволяет склеивать фотографии между собой для разных задач. Хотя позиционируется как инструмент для создания круговых панорам, имеет, наряду с прочими, возможность и “плоской склейки”, нужной для данной задачи.

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

Hugin позволяет вычислить точность совмещения снимков, однако за пределами операции склейки в этом мало практического смысла.

QGis

QGis3 — геоинформационная система. В нашем случае используется всего лишь для привязки к местности по GPS-точкам (с трансформацией по необходимости) склеенного изображения и получения на выходе изображения в формате GeoTIFF — содержащего метаданные о географической привязке.

gdal2tiles

Для генерации “тайлов”, которые могут быть использованы для нужд удобного отображения полученного результата, может быть использован gdal2tiles4.

OpenLayers

OpenLayers5 — JavaScript-библиотека для удобной визуализации через браузер. Впрочем, также можно посоветовать использовать для этих целей Leaflet6.

Итоги

Стоимость

Воздушный змей, способный поднимать несколько килограмм полезной массы (“грузовой” или “лифт”), стоит чуть больше $100, но при желании может быть сшит самостоятельно. Важной составляющей является леер, километровый моток которого стоит $50 (выдерживая нагрузку до 40 кг), однако на практике (после одного случая) оказалось более надёжным взять рыболовный шнур “на сома” меньшей длины по цене $30 (зато выдерживает нагрузку более 100 кг). Платформа для крепления фотоаппарата и мотовило для сматывания леера делаются самостоятельно, хотя при желании на рынке можно найти и готовые решения. Фотоаппарат подойдёт практически любой CHDK-совместимый, в данном случае использовался Canon PowerShot A480 (купленный “с рук” за $20), хотя можно было бы достичь лучших результатов с помощью Canon PowerShot SX20 (купленного “с рук” за $100).

Недостатки и преимущества

Выбранное решение обладает как рядом существенных недостатков, так и преимуществами.

Для подобного рода задач очевидны проблемы по трудозатратам на ручной отбор удачных снимков и склейку, борьбу с искажениями и параллаксом, зависимость от погодных условий (“нелётная погода” при сильном ветре), проблемы безопасности находящихся под камерой людей. Для воздушного змея также характерна неполная управляемость и требования по силе ветра для старта: например, для использованного змея скорость ветра для успешного запуска должна превышать 3 м/с. Также необходимо соблюдать паритет между противоречивыми требованиями длины леера, его прочностью и весом, грузоподъёмностью воздушного змея и требованиями по минимальной скорости ветра для старта.

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

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

Также стоит отметить, практическую сложность оценки погрешности точности определения местоположения каждой конкретной точки снимка при данном подходе, однако это приемлемо для любительской съёмки.

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

Применение

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

Перспективы дальнейшего усовершенствования метода

Для нивелирования некоторых недостатков погодных условий (отсутствие ветра для запуска) можно рассмотреть вопрос использования воздушного шара (BAP — Balloon Aerial Photography: чёрный воздушный шар, поднимающийся за счёт нагрева солнечными лучами воздуха внутри него) или применение более лёгкого воздушного змея, который может быть использован в качестве “лифта” для основного змея после поднятия на достаточную высоту для стабильного полёта.

1 http://chdk.clan.su/

2 http://hugin.sourceforge.net/

3 http://qgis.org/ru/site/

4 http://www.gdal.org/gdal2tiles.html

5 http://openlayers.org/

6 http://leafletjs.com/

Abstract licensed under Creative Commons Attribution-ShareAlike 3.0 license

Назад