We develop a novel deep learning-based multistage framework to accurately extract the road surface and road centerline simultaneously. The framework consists of three steps: boosting segmentation, multiple starting points tracing, and fusion. We evaluated our method utilizing three data sets covering various road situations in more than 40 cities around the world. The results demonstrate our method’s performance exceeded the other methods by 7% and 40% for the connectivity indicator for road surface segmentation and for the completeness indicator for centerline extraction, respectively.
If you find it is helpful in your research, cite our paper (Wei, Y., Zhang, K., & Ji, S. Simultaneous Road Surface and Centerline Extraction from Large-Scale Remote Sensing Images Using CNN-Based Segmentation and Tracing. IEEE Transactions on Geoscience and Remote Sensing. vol. 58, no. 12, pp. 8919-8931, Dec. 2020). Please note that the code can be used in any academic study however the commercial application is not allowed as the system is protected by a Chinese Patent with Number 201911228166.8.
Download the network code. Click HERE to Download
If your road ground-truth is only in segmentation format, then you may have to first convert it to graph format (through mapextract.py) for centerline tracing process.
The initial road surface segmentation is achieved with D-LinkNet (CVPR_2018), you can refer to the original implementation or our reimplementation (in the folder initial_seg and run road.py). Regarding the designed Boosting Segmentation Network (BSNet), run BSNet/cmd.py to train and test multiple BSNets. The corresponding voting weight and training set for each BSNet are listed in the folder BSNet/boost_train.
First, run corner_detect.py to generate the starting points from the segmentation results. Then, train CNN by using Tracer/train.py, or you can refer to the original implementation of RoadTracer (CVPR_2018). For inference, run Tracer/infer_MSPTracer.py and Tracer/infer_MSPTracer_postprocess.py.
Run fusion.py to produce the final and refined road segmentation and centerline maps.
Run evaluate_connectivity.py
Modify the parameters before running. More details, please contact weiyao@whu.edu.cn or zhangkai11@whu.edu.cn.