Привет, Хабр! Мы сотрудники Екатеринбургского офиса NAUMEN. Делимся интересным проектом — интерактивной древовидной картой на основе алгоритмов нейронных сетей.
В его создании также принимают участие студенты УрФУ и волонтеры из нашего города.
Многие современные мегаполисы сталкиваются с проблемой нехватки зеленых насаждений, и Екатеринбург не является исключением.
Точечная застройка центральных территорий и, как следствие, незаконные вырубки и сокращение парковых территорий не способствуют улучшению ситуации.
Думаем, эта проблема знакома жителям многих городов России.
Одним из решений является создание регулярно обновляемой интерактивной древовидной карты, доступной каждому.
С его помощью можно будет узнать, сколько деревьев уже растет в городе, сколько их должно быть и на каких участках необходимы дополнительные посадки.
Проведение инвентаризации зеленых насаждений вручную трудоемко и неэффективно.
На помощь приходят современные технологии: аэрофотосъемка, изображения Street View, системы LiDAR и дроны.
Среди многообразия источников данных для получения информации об объектах городской среды наиболее доступными и относительно дешевыми являются панорамные фотографии из Street View. С их помощью можно обучить нейросеть распознавать деревья на изображениях, определять их геолокацию и наносить на карту города.
Прочитайте статью, чтобы узнать, как проходил этот процесс и какие результаты были достигнуты.
Зачем Екатеринбургу интерактивная карта деревьев? В 2019 году по индексу качества городской среды Екатеринбург набрал менее половины максимального количества баллов по озеленению.
Однако на данный момент нет точных данных о том, сколько деревьев растет в городе, сколько их должно быть и в каких районах их не хватает.
По оценке качества городской среды Екатеринбург набрал меньше всего баллов за зеленые насаждения Практика подсчета деревьев внедрена во многих городах мира.
Открыты реестры зеленых насаждений в Вене, Амстердаме и Праге.
Наиболее удачным примером является Карта деревьев в центре Нью-Йорка .
За год более 2200 муниципальных служащих и волонтеров нанесли на карту около 700 тысяч деревьев и указали их виды.
Теперь, подтвердив навыки ухода за посадками, ухаживать за деревом сможет любой желающий.
Каждый житель Нью-Йорка может пожаловаться на состояние дерева или проблемы с ним.
О создании такого сервиса в Екатеринбурге давно задумывались в волонтерском сообществе «Парки и Скверы», в которое входят сотрудники компании NAUMEN Илья Котельников и Борис Оводов.
Ребята решили помочь создать интерактивную карту деревьев Екатеринбурга, на основе данных которой жители смогут влиять на озеленение города и предотвращать незаконные вырубки.
По задумке, все деревья Екатеринбурга можно будет увидеть на интерактивной карте.
В январе 2020 года сообщество волонтеров завершило первичную настройку системы на ресурсе.
В течение двух недель они нанесли на карту 150 деревьев, растущих в саду Вайнера.
Сбор данных вручную оказался очень трудоемким, а оперативное обновление информации в будущем казалось невозможным.
Поэтому мы пришли к решению использовать технологии машинного обучения.
Кроме того, такую карту можно использовать как доказательную базу во всех гражданских процессах, происходящих в городе, например, когда на месте леса хотят организовать стройку.
Илья Котельников: «С помощью интеллектуальных алгоритмов мы хотим создать систему, которая будет подсчитывать, сколько деревьев в Екатеринбурге.Основная задача – защитить то, что имеешь, а затем каждые 3-5 лет проводить инвентаризацию.
В идеале создать механизм, с помощью которого граждане смогут получать полезные услуги: заказывать посадку зеленых насаждений или уход за ними, жаловаться на упавшие и сломанные деревья, сообщать о противоправных действиях».
Создание интерактивной карты с помощью нейронной сети Чтобы ускорить процесс сбора информации о деревьях города, Илья обратился к Татьяне Зобниной, которая специализируется на разработке систем машинного обучения.
Он предложил ей попробовать реализовать интерактивную карту с помощью алгоритмов нейронных сетей.
Изучив накопленный опыт в области распознавания деревьев и определения геопозиции объектов по данным Street View и других источников, Татьяна убедилась, что проблема разрешима.
В январе 2020 года она разместила проект на сайте Project Workshop УрФУ, чтобы привлечь к разработке студентов.
Созданием интерактивной древовидной карты с помощью алгоритмов машинного обучения заинтересовались четыре студента радиотехнического факультета: Егор Демин, Егор Кипелов, Александр Черных и Георгий Шишкин.
Татьяна Зобнина: «Свою работу со студентами в рамках Проектной мастерской я стараюсь построить так, чтобы они успели достичь какого-то результата в течение семестра.Мне важно, чтобы им было интересно, чтобы они умели взаимодействовать в команде, распределять роли и соблюдать тайминг: в задачах, связанных с машинным обучением, с этим могут возникнуть проблемы.
Получается игровая образовательная практика.
Также реализация проекта с использованием нейронных сетей даст студентам несомненное профессиональное преимущество при поиске работы после окончания обучения в университете».
Все они уже прошли курс Татьяны «Распознавание эмоций по звуку» в прошлом семестре и обладали достаточно высоким уровнем технологических знаний и навыков для реализации этого проекта.
Студенты получили установочные материалы, узнали, какие готовые решения существуют для создания интерактивной карты с помощью нейросети, и выбрали два наиболее подходящих:
- обнаружение деревьев по аэрофотоснимкам;
- использование фотографий из Street View.
Работа была разбита на этапы и установлены примерные сроки готовности промежуточных результатов.
По результатам исследования выяснилось, что, несмотря на все преимущества аэрофотосъемки, качественных данных по Екатеринбургу в открытом доступе нет. От этого решения пришлось отказаться на данном этапе развития проекта.
Затем обе группы вместе начали реализовывать вариант Street View. Ребятам пришлось:
- Напишите код для загрузки данных из Street View.
- Разметьте загруженные фотографии – выделите на них деревья.
- Обучите нейронную сеть распознавать деревья на фотографиях.
- Напишите код для преобразования фотографии Street View с выделенным деревом в координаты и оцените их точность.
- Загрузить данные на интерактивную древовидную карту Екатеринбурга.
- Проверьте точность расположения деревьев на карте с помощью волонтеров.
При этом имеется обширная база данных деревьев Нью-Йорка с геопозицией каждого растения, но без изображений.
Возникла гипотеза, что можно пополнить базу фотографиями и с ее помощью обучить нейросеть определять координаты, а также другие параметры деревьев по снимку: высоту, диаметр, породу.
После этого обученную нейросеть можно будет распознавать на панорамах Екатеринбурга и указывать их характеристики, в том числе геолокацию.
Однако этот метод имеет свои недостатки.
Дело в том, что древовидная карта Нью-Йорка была создана в 2015 году, а опрос Street View содержит более актуальную информацию.
Соответственно, данные на карте и на фотографиях могут не совпадать, что может вызвать ошибки в системе.
Однако это было лучшее решение для обучения нейросети на данном этапе, и ребята принялись его реализовывать.
Для работы над проектом NAUMEN предоставила вычислительную мощность одного из своих серверов.
Студенты написали код для загрузки данных из Street View, оптимизировали его на своих ноутбуках и перенесли на сервер.
Далее нам нужно было определиться с нейросетью, подходящей для проекта.
Ребята выбрали Open Source решение — сверточная нейронная сеть YOLOv3 .
Основная задача, которую перед ней поставили студенты, — классифицировать размеченные данные и распознавать деревья на изображениях Street View. YOLOv3 обучен на больших объемах данных и может распознавать более 100 различных объектов, поэтому теоретически он должен с этим справиться.
Но деревья — достаточно сложный объект, имеющий множество разновидностей, поэтому на практике оказалось, что для лучшего решения задачи было бы неплохо дополнительно обучить сеть.
Необходимо было взять как можно больше размеченных изображений деревьев и загрузить их в нейронную сеть.
Для этого студенты сделали телеграмм-бот , в котором каждый может помочь отсортировать фотографии, отметив, есть ли в выделенном кадре дерево и с какой стороны оно находится.
К маркировке фотографий также привлекались волонтеры.
Когда часть данных была готова, нейросеть начала с ее помощью дополнительно обучаться.
С помощью телеграм-бота каждый может принять участие в обучении нейросети.
Кроме того, нашими разработками заинтересовался МГТУ.
Н.
?.
Бауман.
Выяснилось, что Михаил Ухов, принимавший участие в сборе данных для древовидной карты Нью-Йорка в качестве волонтера, реализует аналогичный проект в Москве.
В помощь коллегам Татьяна поделилась дополнительно обученным YOLOv3. Тем временем студенты написали код, который с помощью нейронной сети распознает и подсвечивает деревья на панорамах Street View и позволяет получать их координаты.
Однако в ходе испытаний выяснилось, что такой подход не обеспечивает необходимой точности определения геолокации дерева.
Сложная форма объекта и искажения, присутствующие на изображениях Street View, не позволяют получить правильную широту и долготу расположения зеленых насаждений.
Искажение изображений Street View не позволяет нейронной сети точно определять геопозицию деревьев.
Вторая гипотеза: определение геопозиции по изображениям Екатеринбурга Street View Чтобы понять, как точнее определить координаты деревьев по фотографиям и в каком направлении двигаться дальше вместе с учениками, Татьяна вновь приступила к исследованиям.
Оказалось, что есть готовое решение, описанное нашим соотечественником, преподающим в Дублинском университете, Владимир Крылов .
В статья он описал алгоритм, позволяющий точно распознавать геопозицию опор ЛЭП и светофоров с помощью Street View, и разместил ссылку на GitHub с кодом алгоритма .
Гипотетически алгоритм, описанный Владимиром, мог бы подойти для распознавания деревьев.
Во время летней стажировки в NAUMEN студенты начали доработку и сборку кода и настроек.
Также мы подключили к работе предварительно обученную нейросеть YOLOv3. В результате получился конвейер из трех нейронных сетей и алгоритм, который работал следующим образом:
- Система собирает изображения из Street View.
- Первая нейросеть сегментирует деревья, выделяя их силуэт на фотографии.
- YOLOv3 уточняет сегмент, выделяя дерево в квадратной рамке.
- Третья нейросеть определяет расстояние от машины, с которой снимался Street View, до нужного объекта — в нашем случае до дерева.
- Далее алгоритм геотегирования определяет координаты дерева.
В результате первого теста таким способом удалось распознать 68 деревьев вдоль улицы Сурикова по изображениям Street View и определить их координаты.
Так на карте показаны отметки опознанных деревьев на одной из улиц Екатеринбурга.
Следующий шаг — привлечь волонтеров и оценить достоверность полученных данных.
По результатам проверки студенты УрФУ и сотрудники NAUMEN продолжат работу над проектом в следующем семестре.
Отметим, что обучение нейросетевых алгоритмов продолжается, поэтому присоединиться к проекту и помочь может любой желающий.
Для этого вам необходимо скачать телеграмм-бот и сортировать отмеченные фотографии.
Вы можете внести более весомый вклад, самостоятельно отметив выбранные фотографии в программе YoloLabel. Если хотите принять участие, пишите в комментариях.
Теги: #Машинное обучение #Экология #нейронные сети #Визуализация данных #Геоинформационные сервисы #интерактивная карта
-
Насколько Безопасна Ваша Социальная Сеть?
19 Oct, 24 -
Редактор Threejs
19 Oct, 24