Home

Awesome

FlashOcc: Fast and Memory-Efficient Occupancy Prediction via Channel-to-Height Plugin

<div align="left"> <img src="figs/performance_flashocc.jpg" width="1500px" /> </div><br/> * Please note that the FPS here is measured with RTX3090 TensorRT FP16.

Panoptic-FlashOcc: An Efficient Baseline to Marry Semantic Occupancy with Panoptic via Instance Center

<div align="left"> <img src="figs/performance.png" width="1500px"/> </div><br/> * Please note that the FPS here is measured with A100 GPU (PyTorch fp32 backend).

News

<!-- - [History](./docs/en/news.md) --> <!-- ## Introduction -->

arXiv arXiv arXiv

This repository is an official implementation of FlashOCC

<div align="center"> <img src="figs/overview.png"/> </div><br/>

and Panoptic-FlashOCC

<div align="center"> <img src="figs/panoptic_flashOcc.jpg"/> </div><br/>

Main Results

1. FlashOCC

ConfigBackboneInput <br/>SizemIoUFPS<br/>(Hz)Flops<br/>(G)Params<br/>(M)ModelLog
BEVDetOCC (1f)R50256x70431.6092.1241.7629.02gdrivelog
M0: FlashOCC (1f)R50256x70431.95197.6154.139.94gdrivelog
M1: FlashOCC (1f)R50256x70432.08152.7248.5744.74gdrivelog
BEVDetOCC-4D-Stereo (2f)R50256x70436.1---baidulog
M2:FlashOCC-4D-Stereo (2f)R50256x70437.84---gdrivelog
BEVDetOCC-4D-Stereo (2f)Swin-T512x140842.0---baidulog
M3:FlashOCC-4D-Stereo (2f)Swin-T512x140843.52-1490.77144.99gdrivelog

FPS are tested via TensorRT on 3090 with FP16 precision. Please refer to Tab.2 in paper for the detail model settings for M-number.

2. Panoptic-FlashOCC

In Panoptic-FlashOCC, we have made the following 3 adjustments to FlashOCC:

More results for different configurations will be released soon.

ConfigBackboneInput <br/>SizeRayIouRayPQmIoUFPS<br/>(Hz)Flops<br/>(G)Params<br/>(M)ModelLog
M1: FlashOCC (1f)R50256x704--15.41-248.5744.74gdrivelog
Panoptic-FlashOCC-Depth-tiny (1f)R50256x70434.57-28.8343.9175.0045.32gdrivelog
Panoptic-FlashOCC-Depth-tiny-Pano (1f)R50256x70434.8112.929.1439.8175.0045.32gdrivelog
Panoptic-FlashOCC-Depth (1f)R50256x70434.93-28.9138.7269.4750.12gdrivelog
Panoptic-FlashOCC-Depth-Pano (1f)R50256x70435.2213.229.3935.2269.4750.12gdrivelog
Panoptic-FlashOCC-4D-Depth (2f)R50256x70435.99-29.5735.9--gdrivelog
Panoptic-FlashOCC-4D-Depth-Pano (2f)R50256x70436.7614.530.3130.4--gdrivelog
Panoptic-FlashOCC-4DLongterm-Depth (8f)R50256x70438.51-31.4935.6--gdrivelog
Panoptic-FlashOCC-4DLongterm-Depth-Pano (8f)R50256x70438.5016.031.5730.2--gdrivelog

Get Started

  1. Environment Setup
  2. Model Training
  3. Quick Test Via TensorRT In MMDeploy
BackendmIOUFPS(Hz)
PyTorch-FP3231.95-
TRT-FP3230.7896.2
TRT-FP1630.78197.6
TRT-FP16+INT8(PTQ)29.60383.7
TRT-INT8(PTQ)29.59397.0
  1. Visualization
<div align="center"> <img src="figs/visualization.png"/> </div><br/> <div align="center"> <img src="figs/sem.png"/> </div><br/> <div align="center"> <img src="figs/pano.png"/> </div><br/>
  1. TensorRT Implement Writen In C++ With Cuda Acceleration

Acknowledgement

Many thanks to the authors of BEVDet, FB-BEV, RenderOcc and SparseBEV

Bibtex

If this work is helpful for your research, please consider citing the following BibTeX entry.

@article{yu2024ultimatedo,
  title={UltimateDO: An Efficient Framework to Marry Occupancy Prediction with 3D Object Detection via Channel2height},
  author={Yu, Zichen and Shu, Changyong},
  journal={arXiv preprint arXiv:2409.11160},
  year={2024}
}

@article{yu2024panoptic,
  title={Panoptic-FlashOcc: An Efficient Baseline to Marry Semantic Occupancy with Panoptic via Instance Center},
  author={Yu, Zichen and Shu, Changyong and Sun, Qianpu and Linghu, Junjie and Wei, Xiaobao and Yu, Jiangyong and Liu, Zongdai and Yang, Dawei and Li, Hui and Chen, Yan},
  journal={arXiv preprint arXiv:2406.10527},
  year={2024}
}

@article{yu2023flashocc,
      title={FlashOcc: Fast and Memory-Efficient Occupancy Prediction via Channel-to-Height Plugin}, 
      author={Zichen Yu and Changyong Shu and Jiajun Deng and Kangjie Lu and Zongdai Liu and Jiangyong Yu and Dawei Yang and Hui Li and Yan Chen},
      year={2023},
      eprint={2311.12058},
      archivePrefix={arXiv},
      primaryClass={cs.CV}
}