Использование спутниковых изображений и нейронных сетей для определения основных индикаторов обезлесения

Смотрите полный код на Github

Я думаю, мы все знаем, какое влияние оказывает обезлесение не только на невероятное биоразнообразие тропических лесов, но и на человечество. Подробнее об этом можно прочитать в WWF или Википедии. В этом посте основное внимание будет уделено влиянию машинного обучения на эту проблему. Сначала я буду использовать высокоуровневые изображения, чтобы составить карту исчезновения лесов с течением времени, а затем покажу, как я обучил сверточную нейронную сеть определять основные индикаторы обезлесения. Таким образом, мы можем уведомить власти о точном местоположении, чтобы они предприняли действия.

Картирование потерь и прироста лесов

Google Earth Engine имеет инструменты, которые позволяют довольно легко отображать изменения на Земле с течением времени, например, в данном случае, лес. Используя изображения UMD Hansen, я смог построить следующую трехслойную карту, которая показывает убыль и прирост лесов в период с 2000 по 2015 год. Первый слой - это лес, выделенный зеленым цветом, за которым следуют красные точки, указывающие на потерю леса, и синие точки, указывающие на прирост леса за это время. 15-летний период. Обратите внимание на множество красных точек и отсутствие синих точек над Амазонкой.

Вызов Kaggle

Лучшим источником спутниковых изображений для этого проекта оказался конкурс Kaggle, спонсируемый компанией Planet под названием Планета: понимание Амазонки из космоса. Поэтому я решил участвовать через 3 года после завершения испытания.

В то время как большинство спутниковых снимков имеют размер от 10 до 100 метров на пиксель, технология Planet имеет это значение до 3 метров, что позволяет нам получить подробное представление о местности. Они предоставили более 40 000 изображений тропических лесов Амазонки, которые участники должны были разделить на 17 неисключительных классов. Ниже представлено распределение этих тегов. У каждого изображения был ровно один тег «погода» и как минимум один тег «землепользование».

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

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

Построение сверточной нейронной сети

Естественно, для задачи классификации изображений я обратился к сверточным нейронным сетям. После некоторых экспериментов я понял, что для получения действительно точной модели мне нужно самому обучить полную модель. Вот что я сделал.

Я взял модель VGG16, доступную в Keras, и позволил ей повторно тренировать каждый слой, а не только верхние слои. Хотя предварительно обученная версия оптимизирована для общего вывода с 1000 классами, это позволило мне оптимизировать для более конкретного вывода 17 классов, чтобы он соответствовал 17 тегам.

Проблема также требовала сигмоидной функции активации на выходном слое и двоичной кросс-энтропии в качестве функции потерь. Хотя обычно с проблемой нескольких классов мы использовали бы активацию Softmax и категориальную кросс-энтропию, было бы разумнее рассматривать эту проблему как 17 отдельных бинарных классификаций из-за неисключительного характера классов.

Модель показала довольно хорошие результаты по официальной метрике испытания, которая представляла собой средний балл F-Beta по всем 17 классам с бета = 2. Она набрала более 92%, что находится в пределах 1% от победителя испытания. При бета = 2 мы сосредоточены на минимизации ложноотрицательных результатов за счет ложных срабатываний. Это имеет смысл, потому что в переоценке положительного класса не так уж и много недостатков. Люди, конечно же, просмотрят любую фотографию, прежде чем отправить команду для исследования местности.

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

Тестирование на новых изображениях

Но, конечно, настоящим испытанием было бы проверить это на новых изображениях. К сожалению, у меня нет ресурсов, чтобы применить эту модель к большим областям, но технологии, безусловно, доступны для этого. Я просто использовал приложение Planet explorer и увеличил масштаб некоторых областей, где мы раньше видели красные точки, таких как штат Рондония в Бразилии, и сделал несколько снимков экрана.

Я удостоверился, что получаю снимки с точно такими же размерами пикселей и разрешением, что и обучающий набор, который имел размер 256x256 пикселей при 3 м / пиксель. Он по-прежнему хорошо показал себя в наиболее важных категориях, таких как дороги и сельское хозяйство, и смог отличить дороги от рек.

Подобные приложения машинного обучения могут привести к новым успехам, например, в Коста-Рике, которая вернула себе большие площади тропических лесов за последние 20 лет, заплатив землевладельцам за защиту леса. Надеюсь, что когда мы повторно запустим слои карты в 2040 году, синего будет больше, чем красного!