• Stars
    star
    108
  • Rank 321,259 (Top 7 %)
  • Language
    Python
  • License
    GNU General Publi...
  • Created almost 4 years ago
  • Updated 7 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A public available dataset for road boundary detection in aerial images

Topo-boundary

This is the official github repo of paper Topo-boundary: A Benchmark Dataset on Topological Road-boundary Detection Using Aerial Images for Autonomous Driving.

Project page.

Supplementary document.

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.

New models

You could try our latest proposed work RNGDet++, which is much more powerful and flexible than iCurb.

Update

  • 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.

Platform information

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.

Environment and Docker

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.

File structure

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
|

Data and pretrain checkpoints preparation

Follow the steps in ./dataset to prepare the dataset and checkpoints trained by us.

Implementations

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.

Evaluation metrics

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.

Related topics

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.

Contact

For any questions, please send email to zxubg at connect dot ust dot hk.

Citation

@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}
}