ETH Zurich, FS2020
N. Kumar, L. Laneve, A. Paccagnella, T. Pegolotti
The task of the project was to create a classification model able to segment aerial satellite images from Google Maps, separating roads from backgrounds. We present and compare two different methods to tackle this problem, both based on Convolutional Neural Networks: one based on a per-patch classification, and the other based on a fully convolutional network. The best model obtained in Kaggle’s public test data achieved an F1 score of 0.92105
.
For details about our implementation, please read the file report.pdf
.
For details about how to reproduce our code, please read the file README.txt
.
REPRODUCIBLE EXPERIMENTS:
-
zero_classifier.ipynb
This notebook shows how we estimated, using a 4-fold cross validation, the accuracy of the zero classifier, as described in the report paper, Section II. -
logistic.ipynb
This notebook shows how to train, use and visualize the results of the logistic regression baseline described in the report paper, Section II(A). -
naive_cnn.ipynb
This notebook shows how to train, use and visualize the results of the context-free CNN baseline described in the report paper, Section II(B). -
cnn.ipynb
This notebook shows how to train, use and visualize the results of the context-sensitive CNN model described in the report paper, Section III(A). -
xception.ipynb
This notebook shows how to train, use and visualize the results of the Xception based classifier described in the report paper, Section III(B). -
unet.ipynb
This notebook shows how to train, use and visualize the results of the U-Net model described in the report paper, Section IV. -
discontinuity.ipynb
This notebook shows the visual differences between a U-Net prediction made of 4 or 9 pieces. This problem was mentioned in the report paper, Section IV. -
bagging.ipynb
This notebook shows how we computed the majority of 9 different (already trained) U-Nets, in order to obtain our best result, as mentioned in the report paper, Section VI.