CoPLOT: Beyond BEV—Optimizing Point-Level Tokens for Collaborative Perception

September 3, 2025 · View on GitHub

Official PyTorch implementation of CoPLOT Paper: Beyond BEV: Optimizing Point-Level Tokens for Collaborative Perception Yang Li, Quan Yuan, Guiyang Luo, Xiaoyuan Fu, Rui Pan, Yujia Yang, Congzhang Shao, Yuewen Liu, Jinglin Li arXiv: https://arxiv.org/abs/2508.19638

CoPLOT moves beyond BEV features by using point-level optimized tokens as the intermediate representation for V2X collaborative perception. A point-native pipeline—semantic-aware token reordering, a frequency-enhanced state-space model (SSM), and neighbor-to-ego alignment—improves long-range modeling and alignment while reducing both computation and communication.

Overview (replace with your image path)


Data Preparation

Create a root folder dataset/ with the following structure (names can be symbolic links):

dataset
├── OPV2V
│   ├── additional
│   ├── test
│   ├── train
│   └── validate
├── V2V4Real
│   ├── test
│   ├── train
│   └── validate
└── ...

Installation

For more details on data/environment setup you may also refer to the excellent HEAL repository. Below is the updated environment setup guide.

# Python & CUDA
conda create -n coplot python=3.11
conda activate coplot

# PyTorch 2.3.1 (CUDA 12.1)
conda install pytorch==2.3.1 torchvision==0.18.1 torchaudio==2.3.1 pytorch-cuda=12.1 -c pytorch -c nvidia

# Python deps
pip install -r requirements.txt

# Build extensions
python setup.py develop
pip install spconv-cu121
python opencood/utils/setup.py build_ext --inplace
pip install git+https://github.com/klintan/pypcd.git
python opencood/pcdet_utils/setup.py build_ext --inplace

# PyG scatter (match your torch/cuda version)
pip install torch-scatter -f https://data.pyg.org/whl/torch-2.3.1+cu121.html

If you see a NumPy version error

# pip uninstall numpy
# pip install numpy==1.26.4

Install causal-conv1d and mamba-ssm (prebuilt wheels)

pip install https://github.com/Dao-AILab/causal-conv1d/releases/download/v1.5.0.post7/causal_conv1d-1.5.0.post7+cu12torch2.3cxx11abiFALSE-cp311-cp311-linux_x86_64.whl
pip install https://github.com/state-spaces/mamba/releases/download/v2.2.3.post2/mamba_ssm-2.2.3.post2+cu12torch2.3cxx11abiFALSE-cp311-cp311-linux_x86_64.whl

Make sure the wheel variants match your OS / CUDA / Torch versions.


Training (examples)

Option 1: Train all modules e.g.

python train_pt.py \
  --hypes_yaml opencood/hypes_yaml/opv2v/CoPLOT_fg_all.yaml

Option 2: Stage-wise training of different modules (pretrain → finetune → robust alignment)

1) Pretrain with a large Top-K (retain more tokens) to build strong semantics

python train_pt.py \
  --hypes_yaml opencood/hypes_yaml/opv2v/CoPLOT.yaml

2) Finetune with a smaller Top-K (focus on foreground tokens)

python train_pt.py \
  --hypes_yaml opencood/hypes_yaml/opv2v/CoPLOT_fg.yaml \
  --load_pretrained <path-to-previous-checkpoint>

3) Train neighbor-to-ego alignment under localization noise

python train_w_noise.py \
  --hypes_yaml opencood/hypes_yaml/opv2v/CoPLOT_noise.yaml \
  --load_pretrained <path-to-previous-checkpoint>

Checkpoints

We are preparing model checkpoints for public release. Stay tuned.


Contact

Please open a GitHub issue for questions or support.


Acknowledgements

This project builds on the excellent collaborative perception frameworks OpenCOOD and STAMP. We thank their authors for their contributions to the community.


Citation

If you find CoPLOT helpful, please cite:

@article{li2025coplot,
  title   = {Beyond BEV: Optimizing Point-Level Tokens for Collaborative Perception},
  author  = {Li, Yang and Yuan, Quan and Luo, Guiyang and Fu, Xiaoyuan and Pan, Rui and Yang, Yujia and Shao, Congzhang and Liu, Yuewen and Li, Jinglin},
  journal = {arXiv preprint arXiv:2508.19638},
  year    = {2025}
}