CityClass project
анализ типов городской застройки при помощи нейросети
CityClass — часть #2
Этот проект является первой частью моего долгосрочного проекта aitecture.com
Технологии машинного обучения актуальны как никогда ранее и находят применение в очень многих отраслях экономики. Они имеют огромный потенциал, вплоть до полного пересмотра устоявшихся подходов и практик. Архитектура, проектирование и урбанизм — не исключение. В своем исследовании я применил нейросеть для анализа и классификации 5 российских городов.
Когда имеешь дело с городом, будь то исследование, создание концепций или проектирование, практически всегда требуется проанализировать его структуру. Наличие сервисов карт не дает обобщенного представления об исследуемом городе. Данный метод позволяет получить общую картину структуры города, а также новое знание о его ландшафте (urbanscape).
Особенность многих российских городов во том, что они имеют общие морфологические типы городской застройки (паттерны). Так например, микрорайоны по всей России застраивались типовыми сериями жилых домов, по одному принципу. Таким образом возможен анализ морфотипов на основании единой коллекции паттернов.
Если человек, глядя на спутниковую карту, способен отличить одни морфотипы от других, например, промышленную зону от жилой, или застройку центра города от микрорайона, то при современном уровне развития компьютерных технологий, этому можно обучить и компьютер (классификатор).
В моем исследовании я анализировал пять крупных городов:
Москва, Нижний Новгород, Казань, Самара, Екатеринбург.
Методика состоит из двух этапов:
1) Обучение: тренировка модели
На этом этапе важно получить качественный материал (dataset) для обучения и в достаточном количестве. Для этого эксперт (человек способный классифицировать объекты), в данном случае я сам, в случайном порядке классифицирует отдельные объекты от общей базы, например 10% от общего числа. Чем больше, тем лучше.
Затем когда обучающая выборка собрана, можно тренировать нейросетевую модель (классификатор).
2) Прогноз: классификация образцов
Когда модель обучена, через нее можно пропускать неограниченное число образцов в виде изображений, а на выходе получать предполагаемый класс объекта. Теперь, когда мы смогли передать свой опыт компьютерной модели, она будет добывать новое знание для нас!
Причем, если подготовка материалов и тренировка модели занимает время, то получение результата происходит практически мгновенно!
Для работы я использовал связку:
- ГИС пакет Qgis, c модулем Open Layers для подгруздки карт Google, и собственными скриптами для предварительной классификации и экспорта образцов карт “плиток”;
- Среда Python с библиотеками машинного обучения: Keras, Theano;
В качестве модели машинного обучения использована многоуровневая модель свёрточной нейронной сети (Convolutional Neural Networks — CNN).
Для людей не знакомых с проблематикой машинного обучения поясню, что классификация изображений и образов является классической задачей компьютерного зрения, которая была наглядно решена в проекте LeNet. В этом проекте c помощью системы CNN-нейронных сетей удалось создать модель, распознающую написание рукописных цифр (база данных изображений MNIST насчитывает 60000 для обучения и 10000 для проверки).
Для проекта CityClass было отобрано и классифицировано 1686 образцов (1267 train / 419 validation). Удалось достичь точности классификации по проверочной выборке 70–75 %, что является хорошим показателем для базы данных небольшого размера, а также учитывая то, что не все образцы можно было определить однозначно.
Классы морфотипов
Все города были разбиты на сетку размером ячейки 600 х 600 м, из которых отобраны 7 характерных классов городской застройки (изначально классов было 9, но точность классификации была не высокой)
- 1 — ИЖС, коттеджные поселки;
- 2 — историческая квартальная застройка, до начала 20 в.;
- 3 — квартальная, районная застройка отдельно стоящими жилыми домами, ансамблевая “сталинская”, строчная — первая половина 20 в., 1930–1960 года;
- 4 — микрорайонная застройка секционными жилыми домами (1960–1990 года);
- 5 — современная микрорайонная / квартальная застройка (с 2000-х годов);
- 6 — промышленные и общественные территории: промышленные территории, вокзалы, торговые центры, стадионы, объекты инфраструктуры;
- 7 — природные и смешанные территории.
Результаты
Москва
7636 образцов
Хорошо различимы крупные зоны, состоящие из многих плиток: исторический центр Москвы, парки, русло Москвы реки, промышленные зоны, сеть малоэтажных поселков за границами основной части города.
Увеличенные фрагменты города:
На увеличенных фрагментах заметны отдельные объекты, например: Ленинский проспект, объекты железнодорожной инфраструктуры, ЗИЛ, и другие.
Отдельно стоит упомянуть о классе современной застройки (5). Т.к. эти объекты трудно различать, классификатор не всегда корректно их идентифицирует. Тем не менее этот класс служит маркером, указывающим на то, что в этом месте вероятна современная застройка.
Другие города описываются аналогично.
Казань
1389 образцов
Нижний Новгород
1188 образцов
Нижний Новгород классифицирован наименее точно — “картинка” шумная. Возможно типы застройки города не вполне соответствуют, тем, на которой была обучена модель — требуется уточнение.
Самара
691 образец
Хорошо различимы старый центр города, “сталинская” застройка вдоль улицы Победы, промышленное “подбрюшье” и поселок Зубчаниновка
Екатеринбург
1254 образец
Выводы
Я очень рад что мне удалось осуществить идею этого исследования в таком виде, каким я его задумал, и при этом достичь запланированного уровня точности классификации выше 70%.
Это лишь один из примеров того, как можно использовать технологию глубокого машинного обучения в практике урбанизма / градостроительства. К примеру, можно обучить нейросеть различать площади и общественные пространства, извлекать их специфические характеристики чтобы затем использовать. Этим я планирую заняться в будущем.
В результате мы увидели наши города такими, как их видит компьютер.
Роман Кучуков / Roman Kuchukov —
архитектор, урбанист и исследователь города;
основатель студии aitecture