[WEEK 4–ARTIFICIAL REAL ESTATE AGENT]

Gökay Atay
bbm406f18
Published in
4 min readDec 24, 2018

Theme: Image Classification and House Price Estimation with Visual and Textual Features

Team Members: Gökay Atay, Ilkin Sevgi Isler, Mürüvet Gökçen, Zafer Cem Özcan

Frontal View of a House

REMINDER

The goal is to predict the values of the houses correctly. To do this we have to follow these steps.

We’ll use some features like location, number of rooms etc., but the main thing is adding the luxury levels of each house to these data, according to their photos. And to do that first we have to categorize the pictures as a bathroom, bedroom etc., because we think not all users are going to tag their photos depend on their types. With that, we would be able to compare the in-kind rooms with each other. Illustration is shown below.

Main Flow
  1. We need to categorize the photos according to their types.
  2. We need to classify these rooms depending on their luxury levels.
  3. Using these luxury levels and the other data we have, we need to estimate the price of the house.

IMAGE CLASSIFICATION

As we have mentioned before, for the image classification task (where we try to classify bathroom, bedroom, kitchen and frontal view of a house), we have used Convolutional Neural Network. We have split the dataset 80% for train and 20% for validation.

For each architecture that we have tried, we have arranged the code for ~200 epochs, and we have set up early stopping condition. If validation accuracy does not increase for 30 epochs, the execution ends and saves the model with maximum validation accuracy.

We have already tested the performance of InceptionV3 architecture two weeks ago. Here are the other deep architecture’s results such as VGG19 and DenseNet201.

VGG19 Architecture

VGG-19 is a convolutional neural network that is trained on more than a million images from the ImageNet database. The network is 19 layers deep, The VGG network architecture was introduced by Simonyan and Zisserman in their 2014 paper, Very Deep Convolutional Networks for Large Scale Image Recognition. We have used VGG19's pre-trained weights to classify images. We have frozen all the layers and only trained the fully-connected layer with our class labels. Since this architecture is used for a related task, the classifier accuracy was decent which is around 87% accuracy.

Loss & Accuracy Curves of VGG19 (87% Accuracy)

Since the network is deep and consists of large number of parameters, it was painfully slow to train. Nevertheless, it did worse than InceptionV3 which has got 90% accuracy.

Epoch 00080: val_acc did not improve from 0.87069
Passed Time: 1 day, 13:52:21.351408

DenseNet Architecture (Taken from original DenseNet paper)

DenseNet-201 is a convolutional neural network that is trained on more than a million images from the ImageNet database. The network is 201 layers deep. DenseNet connects each layer to every other layer in a feed-forward fashion. Whereas traditional convolutional networks with L layers have L connections — one between each layer and its subsequent layer — DenseNet has L(L+1)/2 direct connections. For each layer, the feature-maps of all preceding layers are used as inputs, and its own feature-maps are used as inputs into all subsequent layers.

Loss & Accuracy Curves of DenseNet201 (92% Accuracy)

We have applied the same transfer learning method as we did in previous architectures. We have got validation accuracy of 92% with DenseNet201 which is the best among the other deep networks that we have tried.

Epoch 00051: val_acc did not improve from 0.92172
Epoch 00051: early stopping
Passed Time: 15:08:18.962689

For the upcoming weeks we will look into luxury extraction, price estimation and combining these with image classification.

--

--