DAIR-V2X:车路协同自动驾驶的开源数据集与框架

【免费下载链接】DAIR-V2X 【免费下载链接】DAIR-V2X 项目地址: https://gitcode.com/gh_mirrors/da/DAIR-V2X

DAIR-V2X是一个用于车辆-基础设施协同自动驾驶(VICAD)的大型多模态多视角数据集,包含了丰富的2D和3D物体标注数据,所有数据均来自真实场景。该项目为研究人员和开发者提供了完整的工具链,支持数据处理、模型训练和性能评估。

项目概述

DAIR-V2X数据集包含三个主要部分:

  • DAIR-V2X-I:基础设施端数据
  • DAIR-V2X-V:车辆端数据
  • DAIR-V2X-C:协同数据

此外,项目还提供了V2X-Seq序列数据集,包含V2X-Seq-SPD(顺序感知数据集)和V2X-Seq-TFD(轨迹预测数据集),为时序V2X研究提供了丰富的数据资源。

环境安装

依赖安装

首先安装必要的依赖包:

pip install mmdetection3d==0.17.1

安装修改版的pypcd:

git clone https://github.com/klintan/pypcd.git
cd pypcd
python setup.py install

项目克隆

git clone https://gitcode.com/gh_mirrors/da/DAIR-V2X
cd DAIR-V2X

数据集准备

数据结构

数据集应按照以下结构组织:

cooperative-vehicle-infrastructure/
├── infrastructure-side/
│   ├── image/
│   ├── velodyne/
│   ├── calib/
│   ├── label/
│   └── data_info.json
├── vehicle-side/
│   ├── image/
│   ├── velodyne/
│   ├── calib/
│   ├── label/
│   └── data_info.json
└── cooperative/
    ├── label_world/
    └── data_info.json

创建数据链接

cd dair-v2x
mkdir ./data/DAIR-V2X
ln -s /path/to/your/dataset ./data/DAIR-V2X

快速开始

评估示例

以下是一个评估TCLF在VIC-Async-2数据集上的示例:

cd v2x
bash scripts/eval_lidar_late_fusion_pointpillars.sh 0 late_fusion 2 0 100

或者使用详细参数:

python eval.py \
  --input ../data/DAIR-V2X/cooperative-vehicle-infrastructure \
  --output ../cache/vic-late-lidar \
  --model late_fusion \
  --dataset vic-async \
  --k 2 \
  --split val \
  --inf-config-path ../configs/vic3d/late-fusion-pointcloud/pointpillars/trainval_config_i.py \
  --inf-model-path ../configs/vic3d/late-fusion-pointcloud/pointpillars/vic3d_latefusion_inf_pointpillars.pth \
  --veh-config-path ../configs/vic3d/late-fusion-pointcloud/pointpillars/trainval_config_v.py \
  --veh-model-path ../configs/vic3d/late-fusion-pointcloud/pointpillars/vic3d_latefusion_veh_pointpillars.pth \
  --device 0 \
  --pred-class car \
  --sensortype lidar

核心功能

多模态支持

项目支持多种传感器模态:

  • 激光雷达(Lidar):点云数据处理和3D检测
  • 摄像头(Camera):图像处理和2D检测
  • 多模态(Multimodality):融合多种传感器数据

融合策略

支持多种融合策略:

  • 无融合(No Fusion):单独使用车辆或基础设施数据
  • 早期融合(Early Fusion):在数据层面进行融合
  • 晚期融合(Late Fusion):在检测结果层面进行融合
  • 时间补偿融合(TCLF):考虑时间差异的融合

评估指标

项目提供全面的评估指标:

  • AP-3D:3D平均精度
  • AP-BEV:鸟瞰图平均精度
  • MOTA/MOTP:多目标跟踪精度
  • AMOTA/AMOTP:平均多目标跟踪精度

配置文件结构

项目的配置文件位于configs目录下:

configs/
├── vic3d/                 # 车辆-基础设施协同3D检测
├── vic3d-spd/            # 序列感知数据集配置
├── sv3d-inf/             # 单视角基础设施3D检测
└── sv3d-veh/            # 单视角车辆3D检测

数据处理工具

项目提供了丰富的数据处理工具:

# 数据加载示例
from v2x.dataset import DAIRV2XDataset

dataset = DAIRV2XDataset(
    path='path/to/dataset',
    args=config,
    split='train',
    sensortype='lidar'
)

# 获取单帧数据
data = dataset[0]

可视化功能

项目支持多种可视化方式:

  • 3D点云可视化
  • 2D图像标注可视化
  • 多模态融合结果可视化
  • 时序数据可视化

基准测试结果

项目提供了多个基准测试结果,包括:

模态融合策略模型数据集AP-3DAP-BEV
图像晚期融合ImvoxelNetVIC-Sync18.7724.85
点云早期融合PointPillarsVIC-Sync62.6168.91
点云晚期融合PointPillarsVIC-Async-252.4358.10

扩展功能

自定义模型

项目支持自定义模型集成:

from v2x.models.base_model import BaseModel

class CustomModel(BaseModel):
    def __init__(self, args):
        super().__init__(args)
        # 自定义模型初始化
    
    def forward(self, inf_frame, veh_frame, delta_t, filt):
        # 自定义前向传播逻辑
        return result

数据转换

支持多种数据格式转换:

  • DAIR-V2X 到 KITTI 格式转换
  • 点云数据转换
  • 标注数据转换

最佳实践

数据预处理

# 数据预处理示例
def preprocess_data(data):
    # 点云滤波
    filtered_points = filter_pointcloud(data['points'])
    # 数据增强
    augmented_data = augment_data(filtered_points)
    return augmented_data

模型训练

# 训练脚本示例
python train.py \
  --config configs/vic3d/late-fusion-pointcloud/pointpillars/trainval_config.py \
  --work-dir ./work_dirs \
  --gpu-ids 0,1

社区与支持

项目提供了完善的文档支持:

DAIR-V2X项目为车路协同自动驾驶研究提供了完整的数据集和工具链,支持从数据预处理到模型评估的全流程开发,是自动驾驶领域研究的重要资源。

【免费下载链接】DAIR-V2X 【免费下载链接】DAIR-V2X 项目地址: https://gitcode.com/gh_mirrors/da/DAIR-V2X

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐