├── README.md
├── examples
├── 4190_gt.png
├── 4190_on_opt_img.png
├── 4190_on_zimg.png
├── 4785_gt.png
├── 4785_on_opt_img.png
├── 4785_on_zimg.png
└── README.md
└── geojson_to_shp.py
/README.md:
--------------------------------------------------------------------------------
1 | # Quebec City building footprints extracted by SRSM
2 | Delineated building footprints in Quebec City (Canada), resulted by the SRSM method (Super-Resolution-based Snake Model). The dataset covers a total area is **656 square kilometers, with more than 200 thousand buildings**.
3 |
4 | These building footprints are the results of our paper **Super-Resolution-based Snake Model --- An Unsupervised Method for Large-Scale Building Extraction using Airborne LiDAR Data and Optical Image**.
5 |
6 | Authors: [Thanh Huy Nguyen](mailto:nthuy190991@gmail.com), Sylvie Daniel, Didier Guériot, Christophe Sintès, and Jean-Marc Le Caillec.
7 |
8 | ## Download links
9 | [SRSM results](https://ulavaldti-my.sharepoint.com/:u:/g/personal/thngu52_ulaval_ca/EcsaXqiItQFAqF9HxTBc7fQB0bBIndcbUuF3oPzHFFUa0A?e=hu8QA7) (approx. 210 MB).
10 |
11 | (in case that the link expires, please open an issue on the Issues tracker or [email me](mailto:nthuy190991@gmail.com))
12 |
13 |
14 | ## Citation
15 | If you use these footprints, please cite our paper \[[arXiv](https://arxiv.org/abs/2004.08522)\]:
16 | ```
17 | @article{nguyen2020super,
18 | title={Super-Resolution-Based Snake Model—An Unsupervised Method for Large-Scale Building Extraction using Airborne LiDAR Data and Optical Image},
19 | author={Nguyen, Thanh Huy and Daniel, Sylvie and Gu{\'e}riot, Didier and Sint{\`e}s, Christophe and Le Caillec, Jean-Marc},
20 | journal={Remote Sensing},
21 | volume={12},
22 | number={11},
23 | pages={1702},
24 | year={2020},
25 | publisher={Multidisciplinary Digital Publishing Institute}
26 | }
27 | ```
28 |
29 |
30 | ## Ground Truth (GT) building footprints
31 | The GT footprints of Quebec City are provided by the City of Quebec and updated regularly.
32 | They are used as a reference for evaluating the SRSM results. It is worth-nothing that we don't use them as training data or use any training data for that matter (hence **unsupervised**).
33 |
34 | We would like to thank the City of Quebec for providing and maintaining this dataset.
35 | To download these GT footprints, please refer to their [website](https://www.donneesquebec.ca/recherche/fr/dataset/empreintes-des-batiments).
36 |
37 |
38 | ## Comparison with Microsoft open Canada building footprints
39 | We compared the SRSM results with the open Canada building footprint datasets carried out by Microsoft Bing maps team (see their [blog entry](https://blogs.bing.com/maps/2019-03/microsoft-releases-12-million-canadian-building-footprints-as-open-data) and [Github](https://github.com/microsoft/CanadianBuildingFootprints)).
40 |
41 | ### Accuracy metrics
42 | | Area-based | Completeness | Correctness | Quality | F1-score | Notes |
43 | | --- | :---: | :---: | :---: | :---: | --- |
44 | | Microsoft | 77.42 % | 87.61 % | 69.77 % | 82.20 % | Using ResNet34 as the foundation |
45 | | SRSM | 82.32 % | 72.02 % | 62.37 % | 76.73 % | Unsupervised method |
46 | | **Object-based** | **Completeness** | **Correctness** | **Quality** | **F1-score** | |
47 | | Microsoft | 59.01 % | 93.16 % | 56.56 % | 72.26 % | |
48 | | SRSM | 74.25 % | 80.95 % | 63.21 % | 77.46 % | |
49 |
50 |
51 |
52 | ## Some examples
53 | SRSM results overlapped on z-image (tile 4190) | SRSM results overlapped on z-image (tile 4785)
54 | :-------------------------:|:-------------------------:
55 |
|
56 | **SRSM results overlapped on orthoimage* (tile 4190)** | **SRSM results overlapped on orthoimage* (tile 4785)**
57 |
|
58 | **Ground truth (tile 4190)** | **Ground truth (tile 4785)**
59 |
|
60 |
61 | *The orthoimages are provided by the courtesy of ©Communauté métropolitaine de Québec.
62 |
63 |
64 | ## What is the coordinate reference system?
65 | [EPSG: 2949](https://epsg.io/2949) a.k.a. NAD83(CSRS) / MTM zone 7
66 |
67 |
68 | ## Notes:
69 | - For the sake of computational cost, we carried out the SRSM separately on tile (each covers a 1km x 1km area).
70 | - The tile-based results were then combined in QGIS.
71 | - A version of the simplified footprints by applying the ERSI ArcMap built-in polygonization [algorithm](https://arxiv.org/abs/1504.06584) can be found [here](https://ulavaldti-my.sharepoint.com/:u:/g/personal/thngu52_ulaval_ca/EcNbGxwXWOVFuwV4u8wulhQBRc7sRkT7xnsDjHORgWRibA?e=vLmqNP). But only the raw results from SRSM are used in the publication.
72 |
73 |
74 | ## Conversion ERSI Shapefile into GeoJSON
75 | In order to convert [ERSI Shapefile](https://www.esri.com/library/whitepapers/pdfs/shapefile.pdf) into [GeoJSON](https://geojson.org) or vice versa, please use the Python script 'geojson_to_shp.py' (credits to Dr. Eric Janssens-Coron from CRDIG, Université Laval). Prerequisite: [Geopandas](https://geopandas.org).
76 |
77 |
78 | ## Questions/Discussions
79 | For any other questions/issues, please open an issue on the Issues tracker.
80 |
--------------------------------------------------------------------------------
/examples/4190_gt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nthuy190991/SRSM_QuebecCity_building_extraction/1a014927abde6d165916bf9563228a6590f3d939/examples/4190_gt.png
--------------------------------------------------------------------------------
/examples/4190_on_opt_img.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nthuy190991/SRSM_QuebecCity_building_extraction/1a014927abde6d165916bf9563228a6590f3d939/examples/4190_on_opt_img.png
--------------------------------------------------------------------------------
/examples/4190_on_zimg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nthuy190991/SRSM_QuebecCity_building_extraction/1a014927abde6d165916bf9563228a6590f3d939/examples/4190_on_zimg.png
--------------------------------------------------------------------------------
/examples/4785_gt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nthuy190991/SRSM_QuebecCity_building_extraction/1a014927abde6d165916bf9563228a6590f3d939/examples/4785_gt.png
--------------------------------------------------------------------------------
/examples/4785_on_opt_img.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nthuy190991/SRSM_QuebecCity_building_extraction/1a014927abde6d165916bf9563228a6590f3d939/examples/4785_on_opt_img.png
--------------------------------------------------------------------------------
/examples/4785_on_zimg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nthuy190991/SRSM_QuebecCity_building_extraction/1a014927abde6d165916bf9563228a6590f3d939/examples/4785_on_zimg.png
--------------------------------------------------------------------------------
/examples/README.md:
--------------------------------------------------------------------------------
1 |
2 | # Examples
3 | SRSM results on two tiles 4190 and 4785 are displayed overlapping on the high-resolution z-image, and also on the orthorectified images, courtesy of © Communauté métropolitaine de Québec.
4 |
5 |
6 | ## Extents:
7 | - Tile 4190: x=\[241000, 242000\], y=[5190000 5191000].
8 | - Tile 4785: x=\[247000, 248000\], y=[5185000 5186000].
9 |
10 |
--------------------------------------------------------------------------------
/geojson_to_shp.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 | # -*- coding: utf-8 -*-
3 | """
4 | Created on Tue Feb 18 14:18:42 2020
5 |
6 | @author: thanhhuy nguyen, eric janssens-coron
7 | """
8 |
9 | import datetime
10 | import geopandas as gpd
11 |
12 | INDIR = ""
13 | OUTDIR = INDIR
14 |
15 | #%% Convert an ERSI Shapefile to GeoJSON
16 | FILE = "Quebec.geojson.shp"
17 |
18 | SCRIPT_START_TIME = datetime.datetime.now()
19 | print("Started at: " + str(datetime.datetime.now()))
20 | GDFB = gpd.read_file(INDIR + FILE)
21 |
22 | print(GDFB.head())
23 | GDFB.to_file(driver='GeoJSON', filename=OUTDIR + FILE + '.geojson')
24 |
25 | print()
26 | print("Duration: " + str(datetime.datetime.now() - SCRIPT_START_TIME))
27 | print()
28 | print("Ended at: " + str(datetime.datetime.now()))
29 |
30 | #%% Convert GeoJSON into an ERSI Shapefile
31 | FILE = "QC_footprints.geojson"
32 |
33 | SCRIPT_START_TIME = datetime.datetime.now()
34 | print("Started at: " + str(datetime.datetime.now()))
35 | GDFB = gpd.read_file(INDIR + FILE)
36 |
37 | print(GDFB.head())
38 | GDFB.to_file(driver='ESRI Shapefile', filename=OUTDIR + FILE + '.shp')
39 |
40 | print()
41 | print("Duration: " + str(datetime.datetime.now() - SCRIPT_START_TIME))
42 | print()
43 | print("Ended at: " + str(datetime.datetime.now()))
44 |
--------------------------------------------------------------------------------