Skip to content

erdemtbao/WaveComm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WaveComm

[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:

  1. 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.

  2. 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.4050.2160.0 0.7820.6340.0
F-Cooper 0.4690.21922.0 0.7630.48124.0
DiscoNet 0.5170.23422.0 0.8820.73724.0
AttFusion 0.5290.25222.0 0.8780.75124.0
V2X-ViT 0.6030.28922.0 0.9170.79024.0
CoBEVT 0.5710.26122.0 0.9350.82124.0
HM-ViT 0.6430.37022.0 0.9500.87324.0
WaveComm (ours) 0.6810.45119.0 0.9650.92621.0

DAIR-V2X Dataset

Method Camera-based LiDAR-based
AP30 AP50 Comm AP30 AP50 Comm
No Collaboration 0.0140.0040.0 0.4210.4050.0
F-Cooper 0.1150.02623.0 0.7230.62023.0
DiscoNet 0.0830.01723.0 0.7460.68523.0
AttFusion 0.0940.02123.0 0.7380.67323.0
V2X-ViT 0.1980.05723.0 0.7850.52123.0
CoBEVT 0.1820.04223.0 0.7870.69223.0
HM-ViT 0.1630.04423.0 0.8180.76123.0
WaveComm (ours) 0.2740.12320.0 0.8310.79020.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:

  • -y or --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.

About

[ICRA2026] WaveComm: Lightweight Communication for Collaborative Perception via Wavelet Feature Distillation

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors