Skip to content

[Feature]: Compute cooperative perception features on each CAV and transmit compressed intermediate features #192

Description

@Haralishev77

Problem or motivation

The current intermediate-fusion integration does not compute neural features independently on each CAV before network transmission.

The current flow is approximately:

  1. Each CAV preprocesses its LiDAR data into voxels.
  2. voxel_features, voxel_coords, and voxel_num_points are serialized into the CAPI payload.
  3. Artery transports this raw preprocessed input.
  4. The receiving OpenCDA pipeline reconstructs a combined batch.
  5. PillarVFE, scatter, backbone, communication masking, and Where2comm fusion are executed centrally.

As a result, the simulated network carries voxelized LiDAR input rather than the compressed intermediate features that an intermediate-fusion system is expected to exchange.

The model's communication mask and compression stages execute after the emulated network transfer, so they do not reduce the actual Artery payload.

The current model configuration further disables communication reduction:

  • compression: 0
  • where2comm_fusion.fully: true
  • where2comm_fusion.multi_scale: true

In a 100-CAV scenario, a single serialized voxel payload reached 382,226 bytes and was rejected by Vanetza because the GeoNetworking SDU limit is 1,398 bytes.

Proposed solution

Split the cooperative perception inference pipeline into a local CAV encoder stage and an ego-side fusion stage.

Each transmitting CAV should:

  1. Process its local LiDAR point cloud.
  2. Run voxelization, PillarVFE, scatter, and the selected portion of the backbone locally.
  3. Compute the Where2comm confidence or communication mask.
  4. Select only the spatial features required for communication.
  5. Compress and/or quantize the selected features.
  6. Serialize the feature payload together with the required metadata:
    • sender ID;
    • timestamp or frame ID;
    • feature shape;
    • dtype and quantization parameters;
    • pose or transformation information;
    • feature mask or sparse indices.
  7. Transmit the payload through Artery.

The receiving CAV should:

  1. Reassemble fragmented feature messages.
  2. Discard incomplete, expired, or lost feature frames.
  3. Decode and decompress successfully received features.
  4. Align them using the sender and ego poses.
  5. Pass only successfully received features to the Where2comm fusion stage.
  6. Run the remaining backbone and detection heads.

The implementation should support:

  • sparse feature transmission;
  • configurable quantization;
  • configurable compression;
  • payload fragmentation and reassembly;
  • feature-frame expiration;
  • packet loss and delay;
  • payload-size and effective bitrate metrics.

A lossless mode should also be provided for validating the distributed pipeline against the existing centralized implementation.

Acceptance criteria:

  • In lossless and zero-delay conditions, distributed inference produces results equivalent to the centralized pipeline within a documented numerical tolerance.
  • Lost or delayed packets affect only the corresponding remote features.
  • The actual transmitted byte count reflects the compressed feature representation.
  • No individual GeoNetworking request exceeds the configured SDU limit.
  • The 100-CAV scenario runs without sending raw voxel tensors as one network packet.

Area

Cooperative perception

Alternatives considered

No response

Additional context

No response

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    982CoPSomething new in cooperative perception categoryenhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions