├── 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 | Tile 4190 | Tile 4785 56 | **SRSM results overlapped on orthoimage* (tile 4190)** | **SRSM results overlapped on orthoimage* (tile 4785)** 57 | Tile 4190 | Tile 4785 58 | **Ground truth (tile 4190)** | **Ground truth (tile 4785)** 59 | Tile 4190 | Tile 4785 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 | --------------------------------------------------------------------------------