Город глазами компьютера

Когда имеешь дело с городом, будь то исследование, создание концепций или проектирование, практически всегда требуется проанализировать его структуру. Наличие сервисов карт не дает обобщенного представления об исследуемом городе. Данный метод позволяет получить общую картину структуры города, а также новое знание о его ландшафте (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, 3

  • 1 — ИЖС, коттеджные поселки;
  • 2 — историческая квартальная застройка, до начала 20 в.;
  • 3 — квартальная, районная застройка отдельно стоящими жилыми домами, ансамблевая “сталинская”, строчная — первая половина 20 в., 1930–1960 года;


классы 4, 5, 6, 7

  • 4 — микрорайонная застройка секционными жилыми домами (1960–1990 года);
  • 5 — современная микрорайонная / квартальная застройка (с 2000-х годов);
  • 6 — промышленные и общественные территории: промышленные территории, вокзалы, торговые центры, стадионы, объекты инфраструктуры;
  • 7 — природные и смешанные территории.

Результаты

Москва

Москва 7636 образцов

Хорошо различимы крупные зоны, состоящие из многих плиток: исторический центр Москвы, парки, русло Москвы реки, промышленные зоны, сеть малоэтажных поселков за границами основной части города.

Увеличенные фрагменты города:

На увеличенных фрагментах заметны отдельные объекты, например: Ленинский проспект, объекты железнодорожной инфраструктуры, ЗИЛ, и другие.

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

Другие города описываются аналогично.

Казань

Казань 1389 образцов

Нижний Новгород

Нижний Новгород 1188 образцов

Нижний Новгород классифицирован наименее точно — “картинка” шумная. Возможно типы застройки города не вполне соответствуют, тем, на которой была обучена модель — требуется уточнение.

Самара

Самара 691 образец

Хорошо различимы старый центр города, “сталинская” застройка вдоль улицы Победы, промышленное “подбрюшье” и поселок Зубчаниновка

Екатеринбург

Екатеринбург 1254 образец

Выводы

Я очень рад что мне удалось осуществить идею этого исследования в таком виде, каким я его задумал, и при этом достичь запланированного уровня точности классификации выше 70%.

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

В результате мы увидели наши города такими, как их видит компьютер.

Источник 

Автор