mmLaneDet
mmLaneDet copied to clipboard
MMLaneDet
Introduction
MMLaneDet is an open source lane detection toolbox based on Pytorch. It contains many excellent lane detection models and our DALNet (The code will be made available after acceptance of the paper).
Supported datasets:
- [x] Tusimple
- [x] CULane
- [x] LLAMAS
Supported detectors:
- [x] SCNN
- [x] RESA
- [x] UFLD
- [x] LaneATT
- [x] CondLane
- [x] GANet
- [x] BezierLaneNet
- [x] CLRNet
Preparation
Environments Preparation
Python == 3.8
CUDA == 11.1
pytorch == 1.9.1
mmcv-full == 1.5.1
mmdet == 2.25.0
python setup.py develop
Data Preparation
Tusimple
Download Tusimple. Then extract them to $TUSIMPLEROOT. Create link to data directory.
cd $LANEDET_ROOT
mkdir -p data
ln -s $TUSIMPLEROOT data/tusimple
For Tusimple, the segmentation annotation is not provided, hence we need to generate segmentation from the json annotation.
python tools/dataset_converts/generate_seg_tusimple.py --root $TUSIMPLEROOT
CULane
Download CULane. Then extract them to $CULANEROOT. Create link to data directory.
cd $LANEDET_ROOT
mkdir -p data
ln -s $CULANEROOT data/CULane
For CULane, you should have structure like this:
$CULANEROOT/driver_xx_xxframe # data folders x6
$CULANEROOT/laneseg_label_w16 # lane segmentation labels
$CULANEROOT/list # data lists
LLAMAS
Download LLAMAS. Then extract them to $LLAMASROOT. Create link to data directory.
cd $LANEDET_ROOT
mkdir -p data
ln -s $LLAMASROOT data/llamas
Train & inference
# train
bash tools/dist_train.sh /path_to_your_config 8
# inference
bash tools/dist_test.sh /path_to_your_config /path_to_your_pth 8 --eval mAP
Results
Results on Tusimple
| Model | Setting | BatchSize | Lr Schd | Acc | F1 | Config | Download |
|---|---|---|---|---|---|---|---|
| LaneATT | r18 | 4(gpus) * 8 | 100 epochs | 95.85 | 96.69 | config | model/log |
| CLRNet | r18 | 4(gpus) * 8 | 70 epochs | 96.81 | 97.63 | config | model/log |
| BezierLaneNet | r18 | 4(gpus) * 8 | 400 epochs | 95.79 | 96.24 | config | model/log |
| GANet | r18 | 4(gpus) * 8 | 70 epochs | 95.99 | 97.23 | config | model/log |
Results on CuLane
| Model | Setting | BatchSize | Lr Schd | F1@50 | F1@75 | mF1 | Config | Download |
|---|---|---|---|---|---|---|---|---|
| CLRNet | r18 | 4(gpus) * 8 | 15 epochs | 79.32 | 62.04 | 55.02 | config | model/log |
| CondLane | r18 | 2(gpus) * 4 | 16 epochs | 77.99 | 57.48 | 51.42 | config | model/log |
| BezierLaneNet | r18 | 4(gpus) * 8 | 36 epochs | 73.11 | 44.43 | 42.41 | config | model/log |
| LaneATT | r18 | 4(gpus) * 8 | 15 epochs | 76.31 | 53.01 | 48.19 | config | model/log |
Results on LLAMAS(val)
| Model | Setting | BatchSize | Lr Schd | F1@50 | F1@75 | mF1 | Config | Download |
|---|---|---|---|---|---|---|---|---|
| CLRNet | r18 | 4(gpus) * 8 | 20 epochs | 96.68 | 85.63 | 71.51 | config | model/log |
Notes:
I don't have enough time to do all the experiments and optimize the parameters, so some of the results are not fully aligned. I would like to have partners on board to help optimize this project.
DALNet
Results on DL-Rail
| Model | Setting | BatchSize | Lr Schd | F1@50 | F1@75 | mF1 |
|---|---|---|---|---|---|---|
| BezierLaneNet | r18 | 4(gpus) * 8 | 400 epochs | 85.13 | 38.62 | 42.81 |
| GANet | r18 | 4(gpus) * 8 | 70 epochs | 95.68 | 62.01 | 57.64 |
| CondaLaneNet | r18 | 4(gpus) * 8 | 70 epochs | 95.10 | 53.10 | 52.37 |
| UFLD | r18 | 4(gpus) * 8 | 70 epochs | 93.67 | 57.74 | 53.50 |
| LaneATT | r18 | 4(gpus) * 8 | 70 epochs | 93.82 | 58.97 | 55.57 |
| DALNet | r18 | 4(gpus) * 8 | 70 epochs | 96.43 | 65.48 | 59.79 |
Demo
Youtube/BiliBili
DL-Rail dataset
Aliyundirve: https://www.alipan.com/s/n1HV3tFpWCF
Acknowledgement
Many thanks to the authors of mmdetection, lanedet and pytorch-auto-drive.
Citation
If you find mmLaneNet or DALNet is useful in your research or applications, please consider giving us a star 🌟 and citing it by the following BibTeX entry.
@article{yu2023dalnet,
title={DALNet: A Rail Detection Network Based on Dynamic Anchor Line},
author={Zichen Yu and Quanli Liu and Wei Wang and Liyong Zhang and Xiaoguang Zhao},
journal={arXiv preprint arXiv:2308.11381},
year={2023}
}