CityClass project #2

Conclusions and further steps

Roman Kuchukov
Towards Data Science

--

urban pattern convolution layer

CityClass —part #1

To my delight, the CityClass project was received with interest both among urbanists, city planning professionals and IT professionals. Fortunately, I get in the trend with machine learning, which spread in different realms. In particular, you can read in the article of the Moscow Institute Strelka “Machines can see”.

I got a lot of meaningful feedback from both sides. This showed that the chosen direction of activity is more important than ever, and it is necessary to continue the work. The most important event was the invitation to the Yandex Data & Science conference: the CITY, where I made a detailed report (Yandex —the largest search engine and IT company in Russia. Video recording, in Russian, see at the bottom of the page). Additional materials were prepared for this event, and I will outline them below.

City + Data Science = :)

Conclusions and additions

Perhaps the most important conclusion is the very possibility of machine learning for those specific knowledge that people have been learning for many years, and entrust to the neural network to do what the specialist does most of the time. This consequence of machine learning can completely change the established approaches and practices. This research project is a confirmation of this thesis in practice.

The particular interest was to see the images from the inner layers of the deep neural network. My neural network consists of 3 convolutional layers as follows (LeNet-like):

#Keras  CNN-model
model = Sequential()
model.add(Convolution2D(32, 3, 3, input_shape=(3, 300, 300)))#1 conv
model.add(Activation('relu')) #2 activation
model.add(MaxPooling2D(pool_size=(2, 2)))#3 MaxPooling
model.add(Convolution2D(64, 3, 3)) #4 conv
model.add(Activation('relu')) #5 activation
model.add(MaxPooling2D(pool_size=(2, 2))) #6 MaxPooling
model.add(Convolution2D(64, 3, 3)) #7 conv
model.add(Activation('relu')) #8 activation
model.add(MaxPooling2D(pool_size=(2, 2))) #9 MaxPooling
model.add(Flatten())
model.add(Dense(128)) #all connected layers
model.add(Activation('relu'))
model.add(Dropout(0.5))
model.add(Dense(nb_classes)) #7 classes
model.add(Activation('softmax'))

Thanks to the following procedure, using the theano function, we can get the image array from the required layers and then visualize them.

LayerID = 0  # layer to viz (0..8)output_layer = model.layers[LayerID].output 
output_fn = theano.function([model.layers[0].input], output_layer)
output_image = output_fn(input_image)

At the intuitive level, image processing by a neural network can be described as follows:

  • On the first convolution layer (1.conv), the network perceives the input image, reveals the characteristic contours in it;
  • On the subsequent layers (2–6) separate structures are identified, in this case roads and houses;
  • On the last convolutional layer (7.conv), occurs the assembling of separate structures into some complexes, characteristic for the class, on the basis of which the image is further classified.

Analyzing the intermediate images, one can notice hidden patterns and heuristics, that are not always clear when considering the original image.

Some urban patterns from Russian cities and inner layers visualizations:

Private housing; Historic district
Urban blocks mid 20th; Microrayon

A new tool for the analysis and prediction of urban agglomerations

On the basis of the data obtained in the first part, it is possible to obtain generalizing schemes of the city-planning situation of the considered cities.
It is important to emphasize, that an area of the city goes beyond administrative boundaries. Thus, machine learning is a tool with great potential for analyzing and fixing agglomeration processes occurring in the largest cities. In the future, such schemes can be used to develop schemes for master planning and other related documents.

Due to my experience, I see possible scenarios for using machine learning in project design and town planning as follows:

  • Schemes of master planning
  • Help in decision-making
  • Infographics and business analytics
  • Integration with CAD and BIM design systems
  • New methods of describing and forecasting the development of the city
  • INSIGHTS!

Future plans

The CityClass project showed a significant potential for using machine learning as a new tool for working with the city and agglomeration. Therefore, I will develop my studio aitecture in the following directions:

  • Coverage and analysis of other cities around the world
  • Retreat from the cell grid, splitting and discrimination based on the street network
  • Training models based on other criteria, classes
  • Оbject detection and generations
  • Transition to TensorFlow

Роман Кучуков / Roman Kuchukov —

Architect, urbanist and researcher of the city;
the founder of studio aitecture

--

--