Using publicly available high resolution dataset, a shallow CNN is trained to label buildings in an held out samples.
The picture is part of an example output of the classifier. The green parts are true positives, the red parts are false positives, the blue parts are false negatives and the rest are true negatives. On test set: 86.82% accuracy, 76.72% precision and 66.62% recall.
For running the program yourself you will need some aerial images. You can download from here
After you downloaded the images, place the aerial imagery in a directory named Sentinel-2
under the input
directory.
Please take a look at the config.py file to see which shapefiles belong to which satellite images.
You can clone the repository using the command: git clone https://github.com/kayodeolaleye/building_segmentation.git
cd building_segmentation/src
mkdir data
python buildingNets.py --setup
python buildingNets.py -p
python buildingNets.py -a 'one_layer' -i -t -E -C -T -v -e
WaterNet from Treigerm helped a lot to get started on this project.
DeepOSM from TrailBehind
Volodymyr Mnih's PhD thesis Machine Learning for Aerial Image Labeling