Как машинное обучение спасает деревья в Екатеринбурге

в 13:26, , рубрики: Блог компании Naumen

Как машинное обучение спасает деревья в Екатеринбурге - 1

Привет! Мы сотрудники екатеринбургского офиса NAUMEN. Делимся интересным проектом – интерактивной картой деревьев на основе нейросетевых алгоритмов. В ее создании также участвуют студенты УрФУ и волонтеры нашего города.

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

Проводить опись зеленых насаждений вручную – долго и неэффективно. На помощь приходят современные технологии: аэрофотосъемка, изображения Street View, съемка LiDAR-систем и дронов. Среди многообразия источников данных для получения информации об объектах городской среды наиболее доступными и относительно дешевыми являются панорамные фотографии со Street View. С их помощью можно обучить нейросеть распознавать на снимках деревья, определять их геолокацию и наносить их на карту города. Как проходил этот процесс и каких результатов удалось добиться – читайте в статье.

Зачем Екатеринбургу интерактивная карта деревьев

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

Как машинное обучение спасает деревья в Екатеринбурге - 2

По оценке качества городской среды Екатеринбург набрал меньше всего баллов за озеленение пространства

Практика подсчета деревьев реализована во многих городах мира. Открытые реестры зеленых насаждений есть в Вене, Амстердаме, Праге. Наиболее удачный пример – карта деревьев центрального района Нью-Йорка. Свыше 2200 сотрудников муниципалитета и волонтеров за один год нанесли на нее порядка 700 000 деревьев и указали их вид. Теперь, подтвердив навыки ухода за насаждениями, любой человек может взять опеку над деревом. Каждый житель Нью-Йорка может пожаловаться на состояние дерева или проблемы с ним.

О создании подобного сервиса в Екатеринбурге давно задумывались в сообществе волонтеров «Парки и скверы», куда входят Илья Котельников и Борис Оводов, сотрудники компании NAUMEN. Ребята решили помочь создать интерактивную карту деревьев Екатеринбурга, ориентируясь на данные которой жители смогут влиять на озеленение города и предотвращать незаконные вырубки.

Как машинное обучение спасает деревья в Екатеринбурге - 3

По задумке, все деревья Екатеринбурга можно будет увидеть на интерактивной карте

В январе 2020 года сообщество волонтеров выполнило первоначальную настройку системы на ресурсе ekbtrees.ru. За две недели они нанесли на карту 150 деревьев, растущих в саду Вайнера. Собирать данные вручную оказалось очень долго, и оперативное обновление информации в будущем представлялось невозможным. Поэтому пришли к решению использовать технологии машинного обучения.

Как машинное обучение спасает деревья в Екатеринбурге - 4Илья Котельников:

«Используя интеллектуальные алгоритмы, мы хотим создать систему, которая посчитает, сколько деревьев в Екатеринбурге. Базовая задача − защитить то, что есть, а потом раз в 3−5 лет проводить инвентаризацию.
В идеале создать такой механизм, с помощью которого горожане смогут получать полезные сервисы: заказывать высадку зеленых насаждений или уход за ними, жаловаться на поваленные и сломанные деревья, сообщать о незаконных действиях».

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

Создание интерактивной карты с использованием нейросети

Чтобы ускорить процесс сбора информации о деревьях города, Илья обратился к Татьяне Зобниной, специализирующейся на разработке систем машинного обучения. Он предложил ей попробовать реализовать интерактивную карту с помощью нейросетевых алгоритмов. Изучив накопленный опыт в области распознавания деревьев и определения геопозиции объектов по данным Street View и других источников, Татьяна убедилась, что задача решаема. В январе 2020 года она разместила проект на сайте «Проектного практикума» УрФУ, чтобы привлечь к разработке студентов.

Как машинное обучение спасает деревья в Екатеринбурге - 5 Татьяна Зобнина:

«Я стараюсь выстраивать работу со студентами в рамках «Проектного практикума» так, чтобы они успели прийти к какому-то результату за семестр. Для меня важно, чтобы им было интересно, чтобы они умели взаимодействовать в команде, распределять роли, укладывались в тайминг: в задачах, связанных с машинным обучением, с этим могут возникать проблемы. Получается такая игровая учебная практика. Также реализация проекта с использованием нейронных сетей даст студентам несомненное профессиональное преимущество при поиске работы после завершения учебы в университете».

Созданием интерактивной карты деревьев при помощи алгоритмов машинного обучения заинтересовались 4 студента Радиотехнического факультета: Егор Дёмин, Егор Кипелов, Александр Черных и Георгий Шишкин. Все они в прошлом семестре уже проходили у Татьяны курс «Распознавание эмоций по звуку» и имели достаточно высокий уровень технологических знаний и навыков, чтобы реализовать этот проект.

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

  • детектирование деревьев по аэрофотоснимкам;
  • использование фотографий со Street View.

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

По итогам исследования оказалось, что несмотря на все преимущества аэрофотосъемки качественных данных по Екатеринбургу в открытом доступе нет. От этого решения на данном этапе развития проекта пришлось отказаться. Тогда обе группы вместе приступили к реализации варианта со Street View.

Ребятам предстояло:

  1. Написать код для выгрузки данных со Street View.
  2. Разметить выгруженные фотографии – выделить на них деревья.
  3. Обучить нейронную сеть распознавать деревья на фотографиях.
  4. Написать код для преобразования фотографии со Street View, на которых выделено дерево, в координаты, оценить их точность.
  5. Загрузить данные на интерактивную карту деревьев Екатеринбурга.
  6. Проверить точность расположения деревьев на карте с помощью волонтеров.

Первая гипотеза: обучить нейросеть с помощью карты деревьев NY и снимков со Street View

Google и Yandex предоставляют доступ к огромному количеству городских панорам. При этом существует обширная база деревьев Нью-Йорка с геопозицией каждого растения, но без снимков. Появилась гипотеза, что можно обогатить базу фотографиями и с ее помощью обучить нейросеть по картинке определять координаты, а также другие параметры деревьев: высоту, диаметр, видовую принадлежность. После можно будет использовать обученную нейросеть, чтобы распознать деревья на панорамах Екатеринбурга и указывать их характеристики, включая геолокацию.

Однако у этого метода есть свои минусы. Дело в том, что карта деревьев Нью-Йорка была создана в 2015 году, а съемка Street View содержит более актуальную информацию. Соответственно, данные на карте и на фотографиях могут не совпадать, из-за чего в системе могут возникать ошибки. Тем не менее, это было лучшим решением для обучения нейросети на данном этапе, и ребята приступили к его реализации.

Для работы над проектом компания NAUMEN предоставила вычислительные мощности на одном из своих серверов. Студенты написали код для выгрузки данных со Street View, оптимизировали его на своих ноутбуках и перенесли на сервер.

Дальше нужно было определиться с подходящей для проекта нейросетью. Ребята остановили свой выбор на Open Source решении – сверточной нейросети YOLOv3. Основная задача, которую студенты ставили перед ней, – классифицировать размеченные данные и распознавать деревья на снимках со Street View.

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

Нужно было сделать как можно больше размеченных снимков деревьев и загрузить их в нейросеть. Для этой цели студенты сделали телеграм-бота, в котором любой человек может помочь отсортировать фотографии, отметив, есть ли в выделенной рамке дерево и с какой стороны оно расположено. Также к разметке снимков подключили волонтеров. Когда часть данных была готова, по ней стали дообучать нейросеть.

Как машинное обучение спасает деревья в Екатеринбурге - 6

С помощью телеграм-бота каждый может поучаствовать в обучении нейросети

Помимо этого, нашими наработками заинтересовались в МГТУ им. Н.Э. Баумана. Оказалось, что Михаил Ухов, участвовавший в сборе данных для карты деревьев Нью-Йорка в качестве волонтера, реализует подобный проект в Москве. Чтобы помочь коллегам, Татьяна поделилась дообученной YOLOv3.

Тем временем студенты написали код, который при помощи нейросети распознает и выделяет на панорамах со Street View деревья и позволяет получить их координаты. Однако во время тестов выяснилось, что такой подход не дает нужной точности в определении геолокации дерева. Непростой по форме объект и искажение, которое присутствует на снимках Street View, препятствует получению правильной широты и долготы расположения зеленых насаждений.

Как машинное обучение спасает деревья в Екатеринбурге - 7

Искажение на снимках со Street View мешает нейросети точно определять геопозицию деревьев

Вторая гипотеза: определение геопозиции по снимкам Street View Екатеринбурга

Чтобы понять, как точнее определять координаты деревьев по фотографиям и в каком направлении двигаться вместе со студентами дальше, Татьяна снова приступила к исследованию. Оказалось, что есть готовое решение, описанное нашим соотечественником, который преподает в университете Дублина, Владимиром Крыловым. В статье он описал алгоритм, позволяющий точно распознавать геопозицию столбов электропередач и светофоров по Street View, и разместил ссылку на GitHub с кодом алгоритма.

Гипотетически описанный Владимиром алгоритм мог подойти для распознавания деревьев. На летней стажировке в NAUMEN студенты занялись доработкой и компоновкой кода и настроек. Также подключили к работе дообученную нейросеть YOLOv3.

Получился пайплайн из трёх нейросетей и алгоритма, работающий следующим образом:

  1. Система собирает снимки со Street View.
  2. Первая нейросеть сегментирует деревья, выделяя их силуэт на фотографии.
  3. YOLOv3 уточняет сегмент, выделяя дерево в квадратную рамку.
  4. Третья нейросеть определяет расстояние от машины, с которой шла съемка Street View, до нужного объекта – в нашем случае до дерева.
  5. Далее алгоритм геотегирования определяет координаты дерева.

Этот метод позволяет сразу определять координаты деревьев на снимках Екатеринбурга, пропустив этап обучения нейросети с помощью карты деревьев Нью-Йорка.

В результате первого теста таким способом удалось распознать по снимкам Street View 68 деревьев по улице Сурикова и определить их координаты.

Как машинное обучение спасает деревья в Екатеринбурге - 8

Так на карте обозначаются метки распознанных деревьев на одной из улиц Екатеринбурга

Следующим шагом планируется подключить волонтеров и оценить точность полученных данных. По итогам проверки студенты УрФУ и сотрудники NAUMEN продолжат работу над проектом в следующем семестре.

Отметим, что обучение нейросетевых алгоритмов продолжается, поэтому любой желающий может подключиться к проекту и помочь. Для этого необходимо скачать телеграм-бота и отсортировать размеченные фотографии. Более весомый вклад можно внести, размечая подобранные фотографии самостоятельно в программе YoloLabel. Если хотите поучаствовать, пишите в комментариях.

Автор: nberezentseva

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js