Машинное обучение на службе урбанистики

Машинное обучение на службе урбанистики


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


Несмотря на коронавирус, пока всё идёт к тому, что главной эпидемией XXI века станут психические расстройства. Уже сегодня основной причиной утраты трудоспособности в возрасте 15-45 в США является депрессия. Каждый пятый в возрасте 60+ принимает антидепрессанты, более половины населения США за последние пятнадцать лет хотя бы раз принимала антидепрессанты.

Научные исследования показывают, что в более "зелёных" районах люди реже страдают депрессией и совершают меньше преступлений. Выводы исследователей: если мы хотим здоровое и безопасное общество, то нужны не только таблетки и полиция, но и зелёная городская среда. 

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

Самым точным и наглядным способом отобразить "зелёнку" будет её детальная карта, составленная не по документам, а по реальным изображениям. Да и деревья бывают разные, начиная от молодых саженцев и голых тополей до раскидистых дубов. Для наглядности и контрастности можно нарисовать карту деревьев в чёрно-зелёном цвете, где зелёным обозначены кроны деревьев, чёрным — всё остальное. Для упрощения ориентирования в правой части приведена обычная карта Москвы из Яндекс.карт:

Центру Москвы не хватает озеленения, чернеют транспортные артерии. Однако за пределами третьего транспортного кольца (ТТК) жилые кварталы уже утопают в зелени, а до многочисленных парков от центра 5-7 километров.

Например, крупным планом территория спорт-комплекса "Лужники" с чёрной дугой Москвы-реки и парком Воробьёвых гор:

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

Чем теплее цвет, тем больше плотность деревьев. В центре зелень формирует 0-30% по площади — от чёрного до голубого цветов. Спальные районы вне ТТК окрашены преимущественно в зелёный цвет, что соответствует покрытию в 40-60%. Мало какой мировой столице по силам превысить этот показатель.

Ближе к окраинам много красного и белого цветов и несмотря на названия это не парки, а скорее сплошные леса с сомкнутостью крон 90-100%. Этим непросто гордиться, так как значительные площади окраинных "парков" необустроены и недоступны для прогулок. 


Нью-Йорк

Интересно посмотреть как обстоят дела с озеленением в других городах. Успехи заокеанских коллег по урбанистике можно оценить по Нью-Йорку:


Манхеттен выглядит совсем пустовато, как и центр Москвы. Его легко опознать по прямоугольнику Центрального Парка. С юга Бруклин - сомкнутость крон небольшая, 0-30% за исключением нескольких зелёных кварталов и парка с кладбищем. Отчасти дело в том, что в Бруклине плотная застройка и места под зелень осталось немного. Довольно зелено выглядит Бронкс [на севере по центру] и северо-восточная часть Куинса. Лесной верхний левый угол картинок это уже не Нью-Йорк, а пригород — Нью-Джерси.

Париж

Административно столица Франции небольшая, поэтому есть смысл добавить пригород:


Город контрастен. Во время Наполена III в середине XIX века Париж украсили несколько крупных парков — эти пятна видны на всех картах. От Триумфальной арки до Булонского леса всего один километр. Жилая часть Парижа и пригородов не привлекла бы дендрологов — тесные улочки, к которым примыкают фасады домов, не способны вместить достаточное количество зелени и основная часть деревьев расположена внутри незастроенных дворов. Запад и юго-запад радуют высокой долей деревьев, но как и в случае Москвы это необлагороженные леса, зато без болот.

Шанхай

Особая нелюбовь к озеленению у азиатских мегаполисов:


Город на тепловой карте выглядит "фиолетово" и этот цвет хорошо отражает отношение градостроителей к озеленению. В Шанхае есть парки, но небольшие. Есть и "зелёные" кварталы, но дома сами по себе там занимают более половины площади и деревья ютятся в каменных джунглях. Можно было бы подумать, что выделяющийся зелёным цветом пятиугольник это шанхайский аналог московского бульварного кольца, но нет — обособление деревьями кольцевой автомагистрали. 

Каунас

Города поменьше не выглядят лучше мегаполисов, например:


Шарлотт

Каким мог бы быть по-настоящему "зелёный" город? Для контраста один из самых зеленых городов США — Шарлотт:


Шарлотт это лес, в котором люди построили дома.

Технические детали

В задаче использовалась нейросетка EfficientNet-B7. Это самая большая нейросетка в линейке с 66 млн. параметров, предобученная под картинки размером 600х600 пикселей. Не самый оптимальный выбор, но хотелось поиграться с большими нейросетками, так как для продакшена обычно актуальны поменьше. Минус такого большого размера — требуется больше данных для обучения, плюсы — будет меньше склеек на результирующей картинке, так как изначальный размер картинки для инференса нейросеткой составлял ~1 гигапиксель. EfficientNet-B7 влезает в 12 ГБ видеопамяти, то есть можно обучать и в Google Colab, и на чём-нибудь домашне-игровом вроде GeForce 3060. На мой взгляд минусы сильно перевешивают и в дальнейшем сторонился версии B7. Для аугментации обучающего датасета использовалась albumentations.

В качестве бэкэнда поначалу использовался TensorFlow, всё-таки EfficientNet это детище Google и через TF было проще, но со временем появились и отличные реализации под PyTorch. При этом "из коробки" при инференсе реализация на TensorFlow потребляет в разы больше видеопамяти. Личные впечатления по TF vs PT сходятся с сообществом:

Ещё интересная эмпирика по TensorFlow vs PyTorch тут. Точность моделей можно сравнить тут.

Ну и ради чего всё затевалось: полновесная карта "зелёнки" Москвы тут (осторожно, 308 мегабайт).

Пример в колабе тут.



Report Page