109 lines
5.7 KiB
Markdown
109 lines
5.7 KiB
Markdown
|
|
# PytorchAutoDrive: Framework for self-driving perception
|
||
|
|
|
||
|
|
|
||
|
|
*PytorchAutoDrive* is a **pure Python** framework includes semantic segmentation models, lane detection models based on **PyTorch**. Here we provide full stack supports from research (model training, testing, fair benchmarking by simply writing configs) to application (visualization, model deployment).
|
||
|
|
|
||
|
|
**Paper:** [Rethinking Efficient Lane Detection via Curve Modeling](https://arxiv.org/abs/2203.02431) (CVPR 2022)
|
||
|
|
|
||
|
|
**Poster:** [PytorchAutoDrive: Toolkit & Fair Benchmark for Autonomous Driving Research](https://drive.google.com/file/d/14EgcwPnKvAZJ1aWqBv6W9Msm666Wqi5a/view?usp=sharing) (PyTorch Developer Day 2021)
|
||
|
|
|
||
|
|
*This repository is under active development, results with models uploaded are stable. For legacy code users, please check [deprecations](https://github.com/voldemortX/pytorch-auto-drive/issues/14) for changes.*
|
||
|
|
|
||
|
|
**A demo video from ERFNet:**
|
||
|
|
|
||
|
|
https://user-images.githubusercontent.com/32259501/148680744-a18793cd-f437-461f-8c3a-b909c9931709.mp4
|
||
|
|
|
||
|
|
## Highlights
|
||
|
|
|
||
|
|
Various methods on a wide range of backbones, **config** based implementations, **modulated** and **easily understood** codes, image/keypoint loading, transformations and **visualizations**, **mixed precision training**, tensorboard logging and **deployment support** with ONNX and TensorRT.
|
||
|
|
|
||
|
|
Models from this repo are faster to train (**single card trainable**) and often have better performance than other implementations, see [wiki](https://github.com/voldemortX/pytorch-auto-drive/wiki/Notes) for reasons and technical specification of models.
|
||
|
|
|
||
|
|
## Supported datasets:
|
||
|
|
|
||
|
|
| Task | Dataset |
|
||
|
|
| :---: | :---: |
|
||
|
|
| semantic segmentation | PASCAL VOC 2012 |
|
||
|
|
| semantic segmentation | Cityscapes |
|
||
|
|
| semantic segmentation | GTAV* |
|
||
|
|
| semantic segmentation | SYNTHIA* |
|
||
|
|
| lane detection | CULane |
|
||
|
|
| lane detection | TuSimple |
|
||
|
|
| lane detection | LLAMAS |
|
||
|
|
| lane detection | BDD100K (*In progress*) |
|
||
|
|
|
||
|
|
\* The UDA baseline setup, with Cityscapes *val* set as validation.
|
||
|
|
|
||
|
|
## Supported models:
|
||
|
|
|
||
|
|
| Task | Backbone | Model/Method |
|
||
|
|
| :---: | :---: | :---: |
|
||
|
|
| semantic segmentation | ResNet-101 | [FCN](/configs/semantic_segmentation/fcn) |
|
||
|
|
| semantic segmentation | ResNet-101 | [DeeplabV2](https://arxiv.org/abs/1606.00915) |
|
||
|
|
| semantic segmentation | ResNet-101 | [DeeplabV3](https://arxiv.org/abs/1706.05587) |
|
||
|
|
| semantic segmentation | - | [ENet](https://arxiv.org/abs/1606.02147) |
|
||
|
|
| semantic segmentation | - | [ERFNet](/configs/semantic_segmentation/erfnet) |
|
||
|
|
| lane detection | ENet, ERFNet, VGG16, ResNets (18, 34, 50, 101), MobileNets (V2, V3-Large), RepVGGs (A0, A1, B0, B1g2, B2), Swin (Tiny) | [Baseline](/configs/lane_detection/baseline) |
|
||
|
|
| lane detection | ERFNet, VGG16, ResNets (18, 34, 50, 101), RepVGGs (A1) | [SCNN](https://arxiv.org/abs/1712.06080) |
|
||
|
|
| lane detection | ResNets (18, 34, 50, 101), MobileNets (V2, V3-Large), ERFNet | [RESA](https://arxiv.org/abs/2008.13719) |
|
||
|
|
| lane detection | ERFNet, ENet | [SAD](https://arxiv.org/abs/1908.00821) ([*Postponed*](https://github.com/voldemortX/pytorch-auto-drive/wiki/Notes)) |
|
||
|
|
| lane detection | ERFNet | [PRNet](http://www.ecva.net/papers/eccv_2020/papers_ECCV/papers/123630698.pdf) (*In progress*) |
|
||
|
|
| lane detection | ResNets (18, 34, 50, 101), ResNet18-reduced | [LSTR](https://arxiv.org/abs/2011.04233) |
|
||
|
|
| lane detection | ResNets (18, 34) | [LaneATT](https://arxiv.org/abs/2010.12035) |
|
||
|
|
| lane detection | ResNets (18, 34) | [BézierLaneNet](/configs/lane_detection/bezierlanenet) |
|
||
|
|
|
||
|
|
## Model Zoo
|
||
|
|
|
||
|
|
We provide solid results (average/best/detailed), training time, shell scripts and trained models available for download in [MODEL_ZOO.md](docs/MODEL_ZOO_J.md).
|
||
|
|
|
||
|
|
## Installation
|
||
|
|
|
||
|
|
Please prepare the environment and code with [INSTALL.md](docs/INSTALL.md). Then follow the instructions in [DATASET.md](docs/DATASET.md) to set up datasets.
|
||
|
|
|
||
|
|
## Getting Started
|
||
|
|
|
||
|
|
Get started with [LANEDETECTION.md](docs/LANEDETECTION.md) for lane detection.
|
||
|
|
|
||
|
|
Get started with [SEGMENTATION.md](docs/SEGMENTATION.md) for semantic segmentation.
|
||
|
|
|
||
|
|
## Visualization Tools
|
||
|
|
|
||
|
|
Refer to [VISUALIZATION.md](docs/VISUALIZATION.md) for a visualization & inference tutorial, for image and video inputs.
|
||
|
|
|
||
|
|
## Benchmark Tools
|
||
|
|
|
||
|
|
Refer to [BENCHMARK.md](docs/BENCHMARK.md) for a benchmarking tutorial, including FPS test, FLOPs & memory count for each supported model.
|
||
|
|
|
||
|
|
## Deployment
|
||
|
|
|
||
|
|
Refer to [DEPLOY.md](docs/DEPLOY.md) for ONNX and TensorRT deployment supports.
|
||
|
|
|
||
|
|
## Advanced Tutorial
|
||
|
|
|
||
|
|
Checkout [ADVANCED_TUTORIAL.md](docs/ADVANCED_TUTORIAL.md) for advanced use cases and how to code in PytorchAutoDrive.
|
||
|
|
|
||
|
|
## Contributing
|
||
|
|
|
||
|
|
Refer to [CONTRIBUTING.md](/docs/CONTRIBUTING.md) for contribution guides.
|
||
|
|
|
||
|
|
## Citation
|
||
|
|
|
||
|
|
If you feel this framework substantially helped your research or you want a reference when using our results, please cite the following paper that made the official release of PytorchAutoDrive:
|
||
|
|
|
||
|
|
```
|
||
|
|
@inproceedings{feng2022rethinking,
|
||
|
|
title={Rethinking efficient lane detection via curve modeling},
|
||
|
|
author={Feng, Zhengyang and Guo, Shaohua and Tan, Xin and Xu, Ke and Wang, Min and Ma, Lizhuang},
|
||
|
|
booktitle={Computer Vision and Pattern Recognition},
|
||
|
|
year={2022}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
## Credits:
|
||
|
|
|
||
|
|
PytorchAutoDrive is maintained by Zhengyang Feng ([voldemortX](https://github.com/voldemortX)) and Shaohua Guo ([cedricgsh](https://github.com/cedricgsh)).
|
||
|
|
|
||
|
|
Contributors (GitHub ID): [kalkun](https://github.com/kalkun), [LittleJohnKhan](https://github.com/LittleJohnKhan), [francis0407](https://github.com/francis0407), [PannenetsF](https://github.com/PannenetsF), [bjzhb666](https://github.com/bjzhb666)
|
||
|
|
|
||
|
|
People who sponsored us (e.g., with hardware): [Lizhuang Ma](https://dmcv.sjtu.edu.cn/people/), [Xin Tan](https://tanxincs.github.io/TAN-Xin.github.io/), Junshu Tang ([junshutang](https://github.com/junshutang)), Fengqi Liu ([FengqiLiu1221](https://github.com/FengqiLiu1221))
|