Data Processing

December 31, 2025 · View on GitHub

Image 2 UniLION: Towards Unified Autonomous Driving Model with Linear Group RNNs

Zhe Liu 1, 2, Jinghua Hou 1, Xiaoqing Ye 3, Jingdong Wang 3, Hengshuang Zhao 2,✉, Xiang Bai 1,✉
1 Huazhong University of Science and Technology, 2 The University of Hong Kong, 3 Baidu Inc.
✉ Corresponding author.

Image 2

🔥 Highlights

  • Unified Heterogeneous Inputs. UniLION integrates multi-view images, LiDAR point clouds, and temporal information into a unified 3D backbone through direct token concatenation without hand-crafted fusion modules. 💪

  • Unified Model. UniLION enables parameter sharing across different input formats. Specifically, once trained with multi-modal temporal data, the same UniLION model can be directly deployed across different sensor configurations and temporal settings (e.g., LiDAR-only, temporal LiDAR, or multi-modal fusion) without retraining. 💪

  • Unified Representation. UniLION highly compresses heterogeneous multi-modal and temporal information into a compact BEV feature representation that serves as a shared strong representation for autonomous driving. 💪

  • Strong performance. UniLION achieves competitive and SOTA performance across comprehensive autonomous driving tasks including 3D perception, motion prediction, and planning. 💪

News

  • 2025.12.15: DrivePI paper released. 🔥
  • 2025.12.15: GenieDrive (Physics-Aware Driving World Model) paper released. 🔥
  • 2025.06.16: Our new work about Transformer-Mamba architecture HybridTM have been accepted by IROS 2025 as Oral presentation. 🎉
  • 2024.09.26: LION has been accepted by NeurIPS 2024. 🎉
  • 2024.07.25: LION paper released. 🔥
  • 2024.07.02: Our new works OPEN and SEED have been accepted by ECCV 2024. 🎉

Results

  • nuScenes Validation Set
ModelModalityNDSmAPAMOTAmIoURayIoUminADE (Car/Ped.)L2Col.ConfigCheckpoint
UniLIONL72.367.572.671.746.8-----
UniLIONLT73.068.973.372.449.60.58 / 0.390.600.27--
UniLIONLC74.972.276.272.350.8---config-
UniLIONLCT75.473.276.573.351.30.57 / 0.370.650.18configmodel
  • 3D Object Detection
ModelModalityNDSmAP
UniLIONL72.367.5
UniLIONLT73.068.9
UniLIONLC74.972.2
UniLIONLCT75.473.2
  • Multi-object Tracking
ModelModalityAMOTAAMOTPIDS
UniLIONL72.60.542510
UniLIONLT73.30.515537
UniLIONLC76.20.499711
UniLIONLCT76.50.477613
  • BEV Map Segmentation
ModelModalitymIoU
UniLIONL71.7
UniLIONLT72.4
UniLIONLC72.3
UniLIONLCT73.3
  • 3D Occupancy Prediction
ModelModalityRayIoU
UniLIONL46.8
UniLIONLT49.6
UniLIONLC50.8
UniLIONLCT51.3
  • Motion Prediction
ModelModalityminADE (Car)minADE (Ped)EPA
UniLIONLT0.580.390.647
UniLIONLCT0.570.370.678
  • Planning
ModelModalityL2 (1s)L2 (2s)L2 (3s)L2 (avg)Col. (1s)Col. (2s)Col. (3s)Col. (avg)
UniLIONLT0.350.671.090.700.010.200.600.27
UniLIONLCT0.330.620.990.650.010.120.420.18

Installation

Please refer to INSTALL.md for the installation of UniLION codebase.

Data Processing

First, download the nuscenes dataset

├── can_bus
├── maps
├── occ3d
├── samples
├── sweeps 
└── v1.0-trainval

The dataset of occ3d can be downloaded from: https://tsinghua-mars-lab.github.io/Occ3D/

Then, we run the following script:

export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
export PYTHONPATH="$(dirname \$0)/..":$PYTHONPATH
python tools/data_converter/nuscenes_converter.py nuscenes \
    --root-path ./data/nuscenes \
    --canbus ./data/nuscenes \
    --out-dir ./data/nuscenes \
    --extra-tag nuscenes \
    --db-save-path ./data/nuscenes/ \
    --version v1.0

For planning anchor generation, please run:

python kmeans_planning.py

Dwonload image pretrained model

We adopt the same image pretrained model with bevfusion. You could download this file in swint_nuimg_pretrained.pth

After completing all the steps above, the final data structure should be organized as follows:

├── can_bus
├── kmeans_motion_6.npy
├── kmeans_planning_4096.npy
├── kmeans_planning_6.npy
├── maps
├── nuscenes_dbinfos_train.pkl
├── nuscenes_gt_database
├── nuscenes_infos_train.pkl
├── nuscenes_infos_val.pkl
├── occ3d
├── samples
├── sweeps 
└── v1.0-trainval

Getting Started

Train UniLION on nuScenes

# First stage

tools/dist_train.sh projects/unilion_swin_384_det_map.py 8

# Second stage

tools/dist_train.sh projects/unilion_swin_384_seq_perception.py 8

# Third stage

tools/dist_train.sh projects/unilion_swin_384_seq_e2e.py 8

Note: for better performance, you can additionly train 3D object detection for providing the pretrained model in the first stage.

tools/dist_train.sh projects/unilion_swin_384_det.py 8

Test UniLION on nuScenes

You can freely select the tasks to be evaluated in the config.

tools/dist_test.sh projects/<CONFIGS> 8 <CKPT> --eval mAP

Besides, you can use our released model (UniLION model) to evaluate all results:

tools/dist_test.sh projects/projects/configs/unilion_swin_384_seq_e2e.py 8 <CKPT> --eval mAP

TODO

  • Release the paper.
  • Release the code of UniLION.
  • Release checkpoints of UniLION.

Citation

@article{liu2024lion,
  title={LION: Linear Group RNN for 3D Object Detection in Point Clouds},
  author={Zhe Liu, Jinghua Hou, Xingyu Wang, Xiaoqing Ye, Jingdong Wang, Hengshuang Zhao, Xiang Bai},
  journal={Advances in Neural Information Processing Systems},
  year={2024}
}

@article{liu2025unilion,
  title={UniLION:Towards Unified Autonomous Driving Model with Linear Group RNNs},
  author={Zhe Liu, Jinghua Hou, Xiaoqing Ye, Jingdong Wang, Hengshuang Zhao, Xiang Bai},
  journal={arXiv preprint arXiv:2511.01768},
  year={2025}
}

Acknowledgements

We thank these great works and open-source repositories: LION, MMDectection, SparseDrive, Mamba, RWKV, Vision-RWKV, and flash-linear-attention.