NextGIS совместно с Амурским филиалом Фонда дикой природы (WWF России) разработана технология для оперативного поиска нарушений лесного покрова на основе данных космической съемки. Незаконные рубки являются главной проблемой лесов Дальнего Востока России, а оперативное их обнаружение — одной из основных задач государственных контролирующих органов и общественных организаций.
Основные функциональные требования, предъявляемые к системе:
- поиск незаконных рубок должен быть автоматическим;
- территория мониторинга: Хабаровский и Приморский края;
- должны использоваться данные среднего пространственного разрешения (в первую очередь, Landsat);
- мониторинг лесоизменений нацелен на зимний период.
Примеры исходных данных (снимки Landsat-8) и целевых объектов — зимних рубок леса (светлые области на снимках).
Для решения задач проекта потребовалось создать систему, которая периодически получает спутниковые снимки и по этим снимкам производит поиск мест, подвергшимся рубкам.
Результат работы системы — границы вырубленных участков и даты рубок, а также оценка достоверности полученных результатов.
Процедура выявления рубок была реализована с использованием искусственных нейронных сетей и других методов машинного обучения. Сама система представляет собой набор библиотек, а также сервисов, запускаемых из внешних систем, таких как Государственная система оперативного мониторинга лесонарушений «Кедр».
Сложности, с которыми пришлось столкнуться
Разработанная система предназначена для поиска новых рубок, поэтому анализировать отдельные снимки недостаточно. Вместо этого необходимо производить постоянное сравнение вновь поступающих снимков с ранее обработанными снимками, уже находящимися в базе данных. Другими словами, решается задача поиска изменений (change detection). При решении этой задачи учитываются специфические черты региона, усложняющие процесс анализа: сплошной лесной покров и относительно небольшие размеры целевых объектов, большая протяженность по широте, горная местность.
Как и во многих задачах анализа данных ДЗЗ, при разработке данной системы мы принимали во внимание то, что доступные для работы снимки довольно сильно зашумлены, например, облачностью и/или дымкой, искажающими величину отраженного излучения. Кроме того, поскольку в работе анализируются снимки, относящиеся к различным датам, то приходится иметь дело со сценами, полученными при различных положениях камеры во время съемки, обрабатывать различные высоты и азимуты Солнца. Все это усложняется тем, что мониторинг производится в горных районах и различные геометрические конфигурации системы «Солнце — Спутник — Поверхность Земли» порождают значительные различия в конфигурации теней и освещенности земной поверхности.
И, наконец, поскольку работа ведется с зимними снимкам, то содержание снимка сильно варьируется в зависимости от изменяющихся погодных условий. Например, в первых версиях системы модули детекции изменений срабатывали на свежевыпавший снег. Все это потребовало доводки алгоритмов и создания подсистемы, предназначенной для нормализации данных перед дальнейшим анализом.
Тренировочные данные
Модель поиска изменений обучалась на примерах рубок и других изменений, база которых была предварительно создана экспертами. Для обучения и тестирования были собраны массивы объектов, соответствующих различным изменениям (рубки, облака, другие изменения), затем алгоритмы настраивались на данных нескольких предшествующих анализу лет, и для большей достоверности результатов тестировались на данных последующих за обучающей выборкой годов.
Примеры тренировочных данных
Режимы работы
Система функционирует в двух режимах:
1. Режим обучения. В этом режиме происходит настройка параметров системы, например: настройка подсистемы фильтрации облачности, нормализации данных, обучения нейронных сетей и др.
2. Режим поиска рубок. После того как завершился этап обучения и настроены все компоненты системы, начинается работа в функциональном режиме, состоящем в анализе вновь поступающих снимков и автоматическом поиске новых рубок.
Таким образом, схема работы состоит из нескольких связанных компонентов, при этом часть из них используется только на этапе обучения, а часть — как при обучении, так и при функционировании системы. Например, в режиме поиска рубок поток данных выглядит следующим образом:
Схема работы системы
Основные подсистемы
1. Модель для фильтрации облачности
Облачность — большая проблема при анализе данных ДЗЗ, поскольку облака или полностью закрывают часть анализируемых участков поверхности Земли, или вносят искажения в зафиксированные камерой величины отражающей способности поверхности.
Для поиска облаков существуют различные алгоритмы, в основе нашей модели лежит алгоритм поиска облаков FMASK. Помимо данного алгоритма была разработана отдельная нейросетевая модель, которая используется в дополнение к нему. Вообще говоря, качество работы FMASK нас вполне устраивало, и дополнительная модель была встроена в качестве задела на будущее, в расчете на расширение системы другими типами космической съемки, помимо тех, для которых существует реализация FMASK. В нейросетевой модели без использования сверточных слоев было получено качество распознавания облачности, сравнимое с точностью FMASK (что, в целом, не удивительно, поскольку этот алгоритм также не содержит операции свертки).
Пример облаков и теней на изображении Landsat-8 в синтезированных цветах (7-5-3)
Маска теней и облаков для изображения выше
2. Гармоническая модель поведения отражательной способности во времени
Для упрощения модели поиска изменений была создана вспомогательная модель, которая строит для каждого пикселя ожидаемое значение отражательной способности данной точки земной поверхности на произвольную дату, а также ожидаемые значения некоторых вегетационных индексов (в частности, NDVI). Эти ожидаемые значения можно в упрощенном виде воспринимать как ответ на вопрос, какие снимки получил бы спутник, если бы он вел съемку поверности Земли в заданный день и время в безоблачных условиях. Сравнивая ожидаемые значения, возвращаемые моделью, с реально зафиксированными спутником, мы получаем возможность находить места с неожиданными изменениями.
Данные прогнозные значения ToAR (Top of Atmosphere Reflectance) и вегетационных индексов строятся на основе исторических данных за предыдущие годы с использованием гармонической модели. Модель обрабатывает в качестве входов:
- отфильтрованные от облачности значения ToAR за предыдущие годы;
- даты и время съемки использованных сцен.
Модель возвращает набор коэффициентов (линейного тренда и гармонических колебаний ряда Фурье), по которым строятся прогнозные значения ToAR/индексов на заданную пользователем дату.
Пример хода кривой значения NDVI, реальные и прогнозные значения
На данном рисунке показаны значения индекса NDVI (с измененным масштабом), измеренные в одном из пикселей (аналогичные построения производятся во всех пикселях анализируемой территории). Синие точки обозначают реальные значения индекса в соответствующие моменты времени, а сплошная красная линия — прогнозные значения.
Таким образом гармоническая модель берет на себя часть функций системы: она фильтрует шумы и подчеркивает реальные изменения. В итоге модель поиска изменений «видит» не только реальные данные, пришедшие со спутника, но и те величины, которые ожидалось увидеть, если бы изменений не произошло.
3. Модель поиска изменений
Это основной по значимости компонент, отвечающий за поиск изменений. Модель поиска изменений создана на основе нейросетевого моделирования и принимает на вход соответствующим образом подготовленные даннные (результат работы вспомогательных компонентов, описанных выше):
- набор медианных срезов ToAR за выбранный временной период;
- набор ожидаемых медианных срезов ToAR, возвращаемых модулем, реализующим гармоническую модель.
На основании этих входных данных модель изменений выдаёт результат, в котором закодирован возраст изменения. В последние годы для анализа изображений успешно используются сверточные сети, тем не менее в нашем случае был построен стандартный многослойный перцептрон без использования сверточных слоев: данная модель не требует значительных ресурсов при обучении и функционировании, и в то же время обеспечивает приемлемую точность.
Пример результатов выявления рубок системой. Красным цветом обозначен уверенный результат (больше наблюдений, пиксель помечен рубкой на нескольких снимках), желтым — менее уверенный (пиксель помечен рубкой только на одном снимке, например совсем свежая рубка).
Если у вас возникли вопросы — дайте знать, мы будем рады ответить!
Здравствуйте.
Какая все-таки основная причина, почему не использовались CNN?
Нейросеть решала задачу сегментации, а определение возраста вырубки решалось с помощью эвристики (например ручными правилами), так?
Причин не одна, а несколько сразу.
1) Сверточные сети очень хороши, когда есть возможность зацепиться за какие-то геометрические характеристики, например, формы, текстуры, …; с природными же объектами все сложнее — форма у них может быть какой хочешь, а на том пространственном разрешении, с каким мы работаем, текстуры практически не заметны. Это не значит, что в задаче не имеет смысла применять сверточные сети — они вполне себе могли бы дать решение, но далее вступают в дело и другие соображения.
2) Рубка — объект, который характеризуется не столько геометрией, сколько поведением во времени: сначала участок Земли более-менее стабилен по своим характеристкам (с поправкой на сезонность и атмосферные шумы/облачность), а потом наступает резкое изменение, т.е. тут нужно ловить временнЫе изменения. Для того, чтобы учесть время, можно идти разными путями, например, использовать рекуррентные сети или те же сверточные сети (но со светками во временной области); ну или строить специфическую модель, учитывающие свойства именно таких объектов (чем мы и занялись).
3) Сверточные сети (как и все глубокое обучение) очень «жручее» по ресурсам. Им нужны ресурсы на все — память, время обучения, количество примеров, … Мы же и так с трубом укладывались в имеющиеся мощности.
Короче говоря, доводы 1) и 3) были довольно сильными аргументами, чтобы посмотреть в сторону чего попроще, чем глубокие сети.