Skip to content

alexandersteinitz2023-stack/CurbNet

 
 

Repository files navigation

CurbNet: Curb Detection Framework Based on LiDAR Point Cloud Segmentation

arXiv PR's Welcome


📌 Overview

Curb detection is a critical task in autonomous driving and robotic perception, enabling accurate understanding of road boundaries and drivable areas.

However, it remains challenging due to:

  • (a) Difficulty in extracting height-aware geometric features
  • (b) Non-uniform density distribution of LiDAR point clouds
  • (c) Severe class imbalance between curb and non-curb points

To address these challenges, we propose CurbNet, a LiDAR-based curb detection framework with:

  • A newly constructed 3D-Curb dataset
  • A Multi-Scale Channel Attention (MSCA) module for feature fusion and height modeling
  • A loss group strategy to handle class imbalance
  • A post-processing refinement module for improved prediction quality

🧠 Framework

📊 Detection Results

SemanticKITTI Benchmark

🗂️ Dataset: 3D-Curb

We construct the 3D-Curb dataset based on the large-scale SemanticKITTI dataset, with the following features:

  • Add a new curb category (label = 3) with full 3D annotations
  • Preserve original 28 semantic classes
  • Captured using 64-line LiDAR
  • Designed for urban autonomous driving scenarios

📥 Download

📦 Data Format

The dataset follows the SemanticKITTI format:


/kitti/dataset/
└── sequences/
├── 00/
│   ├── labels/
│   │     ├ 000000.label
│   │     └ 000001.label
│   └── velodyne/
│         ├ 000000.bin
│         └ 000001.bin
├── 01/
├── 02/
...
└── 10/

  • Point clouds: .bin
  • Labels: .label

⚠️ Important Note

Since curb is an additional category, we assign:


label: 3 → "curb"

To visualize correctly using SemanticKITTI API, please modify:


config/semantic-kitti.yaml

Add:


3: "curb"

🔧 Visualization Tool

We recommend using the official SemanticKITTI API:

👉 https://github.com/PRBonn/semantic-kitti-api

📁 Additional Dataset: NRS

The original NRS dataset contains only 2D annotations.

We:

  • Project 2D labels to 3D point clouds
  • Convert format to SemanticKITTI style
  • Release processed version for public use

📥 Download


⚙️ Installation

Requirements

🚀 Training

  1. Modify config file:

config/semantickitti-curb_0.2.yaml

  1. Start training:
sh train_0.2.sh

🎯 Inference Demo

Run demo on a folder of LiDAR scans:

python demo_folder_focal.py \
    --demo-folder YOUR_FOLDER \
    --save-folder YOUR_SAVE_FOLDER

With labels (optional):

python demo_folder_focal.py \
    --demo-folder YOUR_FOLDER \
    --save-folder YOUR_SAVE_FOLDER \
    --demo-label-folder YOUR_LABEL_FOLDER

⭐ Citation

If you find this project useful, please consider giving a ⭐ and citing our work:

@article{zhao2025curbnet,
  title={CurbNet: Curb detection framework based on LiDAR point cloud segmentation},
  author={Zhao, Guoyang and Ma, Fulong and Qi, Weiqing and Liu, Yuxuan and Liu, Ming and Ma, Jun},
  journal={IEEE Transactions on Intelligent Transportation Systems},
  year={2025},
  publisher={IEEE}
}

📬 Contact

If you have any questions or suggestions, feel free to open an issue or contact the authors.

🌟 Acknowledgements

This project is built upon:

  • SemanticKITTI dataset
  • Open-source LiDAR perception frameworks Cylinder3D

We thank the community for their contributions.

About

Curb Detection Framework Based on LiDAR Point Cloud Segmentation

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 98.4%
  • Dockerfile 1.4%
  • Shell 0.2%