This is the official github repo of paper Topo-boundary: A Benchmark Dataset on Topological Road-boundary Detection Using Aerial Images for Autonomous Driving.
Topo-boundary is a publicly available benchmark dataset for topological road-boundary detection in aerial images. With an aerial image as the input, the evaluated method should predict the topological structure of road boundaries in the form of a graph.
This dataset is based on NYC Planimetric Database. Topo-boundary consists of 25,297 4-channel aerial images, and each aerial image has eight labels for different deep-learning tasks. More details about the dataset structure can be found in our paper. Follow the steps in the ./dataset
to prepare the dataset.
We also provide the implementation code (including training and inference) based on PyTorch of 9 methods. Go to the Implementation section for details.
You could try our latest proposed work RNGDet++, which is much more powerful and flexible than iCurb.
- Oct/1/2021 Fix google drive link issue. The label and checkpoints should be able to be normally downloaded.
- Sep/17/2021 Add initial vertex prediction (under
./graph_based_baselines/init_vertex
) and update the checkpoint of OrientationRefine. - Aug/12/2021 Fix dataset download bug.
- Jul/2/2021 This paper is accepted and will appear on The IEEE/RSJ International Conference on Intelligent Robots and Systems (IROSβ) 2021.
- Jul/2/2021 The code of ConvBoundary has been cleaned and released.
- Jun/21/2021 This paper is accepted by IEEE Robotics and Automation Letters(RA-L).
- Jun/21/2021 The code of DAGMapper has been cleaned and released.
- May/27/2021 The code of Enhanced-iCurb has been cleaned and released.
- May/22/2021 Topo_boundary is released. More time is needed to prepare ConvBoundary, DAGMapper and Enhanced-iCurb, thus currently these models are not open-sourced.
Hardware info
GPU: one RTX3090 and one GTX1080Ti
CPU: i7-8700K
RAM: 32G
SSD: 256G + 1T
Software info
Ubuntu 18.04
CUDA 11.2
Docker 20.10.1
Nvidia-driver 460.73.01
Make sure you have Docker installed.
Docker is used to set up the environment. If you are not familiar with Docker, refer to install Docker and Docker beginner tutorial for more information.
To build the Docker image, run:
# go to the directory
cd ./docker
# optional
chmod +x ./build_image.sh
# build the Docker image
./build_image.sh
The image is based on the Docker image pytorch/pytorch:1.7.0-cuda11.0-cudnn8-runtime
provided on Docker hub. You may use other base image at Pytorch_Docker_hub based on your own preference.
To build Docker containers, check ./build_container.bash
under the directory of each baseline.
Topo-Boundary
|
βββ dataset
| βββ data_split.json
| βββ config_dir.yml
| βββ get_data_new.bash
| βββ get_label.bash
| βββ get_checkpoints.bash
β βββ cropped_tiff
β βββ labels
| βββ pretrain_checkpoints
β βββ scripts
|
βββ docker
|
βββ graph_based_baselines
| βββ ConvBoundary
| βββ DAGMApper
| βββ Enhanced-iCurb
| βββ iCurb
| βββ RoadTracer
| βββ init_vertex
| βββ VecRoad
|
βββ segmentation_based_baselines
| βββ DeepRoadMapper
| βββ OrientationRefine
| βββ naive_baseline
|
Follow the steps in ./dataset
to prepare the dataset and checkpoints trained by us.
We provide the implementation code of 9 methods, including 3 segmentation-based baseline models, 5 graph-based baseline models, and an improved method based on our previous work iCurb. All methods are implemented with PyTorch by ourselves.
Note that the evaluation results of baselines may change after some modifications being made.
We evaluate our implementations by 3 relaxed-pixel-level metrics, the self-defined Entropy Connectivity Metric (ECM), naive connectivity metric (proposed in ConvBoundary) and Average Path Length Similarity (APLS). For more details, refer to the supplementary document.
Other research topics about line-shaped object detection could be inspiring to our task. Line-shaped object indicts target objects that have long but thin shapes, and the topology correctness of them also matters a lot. They usually have an irregular shape. E.g., road-network detection, road-lane detection, road-curb detection, line-segment detection, etc. The method to detect one line-shaped object could be adapted to another category without much modification.
For any questions, please send email to zxubg at connect dot ust dot hk.
@ARTICLE{9488209,
author={Xu, Zhenhua and Sun, Yuxiang and Liu, Ming},
journal={IEEE Robotics and Automation Letters},
title={Topo-Boundary: A Benchmark Dataset on Topological Road-Boundary Detection Using Aerial Images for Autonomous Driving},
year={2021},
volume={6},
number={4},
pages={7248-7255},
doi={10.1109/LRA.2021.3097512}}
@article{xu2021icurb,
title={iCurb: Imitation Learning-Based Detection of Road Curbs Using Aerial Images for Autonomous Driving},
author={Xu, Zhenhua and Sun, Yuxiang and Liu, Ming},
journal={IEEE Robotics and Automation Letters},
volume={6},
number={2},
pages={1097--1104},
year={2021},
publisher={IEEE}
}