WaveComm
March 7, 2026 · View on GitHub
[ICRA2026] WaveComm: Lightweight Communication for Collaborative Perception via Wavelet Feature Distillation
This is the official implementation of WaveComm, a wavelet-based communication framework for collaborative perception.
Overview
WaveComm is a novel collaborative perception framework that achieves communication efficiency by exploiting the frequency structure of feature maps. The core idea is to decompose BEV feature maps using Discrete Wavelet Transform (DWT), transmit only compact low-frequency components, and reconstruct the full features at the receiver using a lightweight generator.
Video
Key Features
- Wavelet Feature Distillation: Uses DWT to decompose features into low-frequency and high-frequency components. Only low-frequency components are transmitted to reduce bandwidth.
- Multi-Scale Distillation (MSD) Loss: A hybrid loss function combining:
- Reconstruction Loss (pixel-level)
- SSIM Loss (structural-level)
- Perceptual Loss (semantic-level)
- Adversarial Loss (distributional-level)
- Lightweight Generator: A lightweight neural network that reconstructs high-frequency details from transmitted low-frequency components.
- Communication efficiency: Reduces communication volume to 86.3% (OPV2V) and 87.0% (DAIR-V2X) of the original while maintaining state-of-the-art performance.
Method
Wavelet Feature Distillation Module
The Wavelet Feature Distillation Module consists of two parts:
-
Feature Decomposition: Using DWT to decompose BEV features into low-frequency and high-frequency components. Low-frequency components retain most semantic information and global structure.
-
Feature Reconstruction: A lightweight generator reconstructs the full feature map from the transmitted low-frequency components. The generator is optimized using MSD Loss to ensure high-fidelity reconstruction.
Performance
OPV2V Dataset
| Method | Camera-based | LiDAR-based | ||||
|---|---|---|---|---|---|---|
| AP50 | AP70 | Comm | AP50 | AP70 | Comm | |
| No Collaboration | 0.405 | 0.216 | 0.0 | 0.782 | 0.634 | 0.0 |
| F-Cooper | 0.469 | 0.219 | 22.0 | 0.763 | 0.481 | 24.0 |
| DiscoNet | 0.517 | 0.234 | 22.0 | 0.882 | 0.737 | 24.0 |
| AttFusion | 0.529 | 0.252 | 22.0 | 0.878 | 0.751 | 24.0 |
| V2X-ViT | 0.603 | 0.289 | 22.0 | 0.917 | 0.790 | 24.0 |
| CoBEVT | 0.571 | 0.261 | 22.0 | 0.935 | 0.821 | 24.0 |
| HM-ViT | 0.643 | 0.370 | 22.0 | 0.950 | 0.873 | 24.0 |
| WaveComm (ours) | 0.681 | 0.451 | 19.0 | 0.965 | 0.926 | 21.0 |
DAIR-V2X Dataset
| Method | Camera-based | LiDAR-based | ||||
|---|---|---|---|---|---|---|
| AP30 | AP50 | Comm | AP30 | AP50 | Comm | |
| No Collaboration | 0.014 | 0.004 | 0.0 | 0.421 | 0.405 | 0.0 |
| F-Cooper | 0.115 | 0.026 | 23.0 | 0.723 | 0.620 | 23.0 |
| DiscoNet | 0.083 | 0.017 | 23.0 | 0.746 | 0.685 | 23.0 |
| AttFusion | 0.094 | 0.021 | 23.0 | 0.738 | 0.673 | 23.0 |
| V2X-ViT | 0.198 | 0.057 | 23.0 | 0.785 | 0.521 | 23.0 |
| CoBEVT | 0.182 | 0.042 | 23.0 | 0.787 | 0.692 | 23.0 |
| HM-ViT | 0.163 | 0.044 | 23.0 | 0.818 | 0.761 | 23.0 |
| WaveComm (ours) | 0.274 | 0.123 | 20.0 | 0.831 | 0.790 | 20.0 |
Installation
Prerequisites
- Python 3.8+
- PyTorch 1.12.0+
- CUDA 11.6+
Step 1: Create Environment
conda create -n wavecomm python=3.8
conda activate wavecomm
conda install pytorch==1.12.0 torchvision==0.13.0 torchaudio==0.12.0 cudatoolkit=11.6 -c pytorch -c conda-forge
Step 2: Install Dependencies
pip install -r requirements.txt
Step 3: Install Spconv
pip install spconv-cu116 # match your cudatoolkit version
Step 4: Compile Bbx IoU CUDA Version
python opencood/utils/setup.py build_ext --inplace
Step 5: Install This Project
python setup.py develop
Data Preparation
OPV2V Dataset
Please refer to OpenCOOD. You also need to download additional-001.zip for camera modality.
DAIR-V2X Dataset
Download from DAIR-V2X. Use complemented annotation.
Create a dataset folder and organize as follows:
WaveComm/
└── dataset/
├── my_dair_v2x/
│ ├── v2x_c/
│ ├── v2x_i/
│ └── v2x_v/
└── OPV2V/
├── additional/
├── test/
├── train/
└── validate/
Training
Train the Model
python opencood/tools/train.py -y ${CONFIG_FILE} [--model_dir ${CHECKPOINT_FOLDER}]
Arguments:
-yor--hypes_yaml: Path to training configuration file--model_dir(optional): Path to checkpoint for fine-tuning or continuing training
Train with DDP
CUDA_VISIBLE_DEVICES=0,1 python -m torch.distributed.launch --nproc_per_node=2 --use_env opencood/tools/train_ddp.py -y ${CONFIG_FILE}
Testing
python opencood/tools/inference.py --model_dir ${CHECKPOINT_FOLDER} [--fusion_method intermediate]
Project Structure
WaveComm/
├── opencood/
│ ├── hypes_yaml/ # Configuration files
│ ├── models/ # Model architectures
│ │ └── comm_modules/ # Communication modules
│ ├── data_utils/ # Data loading and preprocessing
│ ├── fuse_modules/ # Feature fusion modules
│ ├── loss/ # Loss functions
│ ├── utils/ # Utility functions
│ └── tools/ # Training and testing scripts
├── dataset/ # Dataset directory
├── assets/ # assets for README
└── README.md
Citation
@article{wavecomm2026,
title={WaveComm: Lightweight Communication of BEV Feature Maps for Collaborative Perception via Wavelet Feature Distillation},
author={},
journal={},
year={2026}
}
Acknowledgments
This project is built upon the OpenCOOD and HEAL frameworks. We thank the authors for their excellent work.