Skip to content

guoyangzhao/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

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors