Advertisement

【论文解读】OPV2V: An Open Benchmark Dataset and Fusion Pipeline for Perception with Vehicle-to-Vehicle...

阅读量:

OPV2V

  • 摘要
    • 引言

    • 注意力中间融合

      • Metadata Transfer and Feature Exchange
      • Compression and Feature Exchange
      • Attentive Integration
      • Prediction Header
    • 实验

    • 结论

摘要

在自动驾驶领域中,车对车通信技术的应用逐渐受到了广泛关注;然而,在缺乏合适的公开基准数据集以系统性地验证算法性能的情况下,“车对车感知”的研究仍显艰难。为此我们特意设计并发布了首个覆盖多场景的城市道路环境的大型开放数据集。该数据集包含来自CARLA模拟器中的8个不同城镇区域以及洛杉矶卡尔弗市数字城市中的70个典型场景细节信息,并提供了11464帧图像数据以及232913个带注释的三维车辆边界框实例。基于此基础我们构建了一个全面的数据驱动基准体系 通过整合总计16种不同的深度学习模型架构 从早期融合到中期融合再到后期融合等三个阶段全面考察了各类信息融合策略的表现 并与当前最先进的激光雷达检测算法进行了对比实验

引言

我们开发了OPV2V系统(简称:OPV2V),它是首个具备车辆间通信感知能力的大规模开放数据集。基于协同驾驶协同模拟框架——由OpenCDA[18]与CARLA[19]联合提供——我们在不同连接车辆数量的情景中收集了73种不同场景的数据样本,并深入模拟各种复杂驾驶情境下的交通状况。为了使模拟环境更贴近真实世界,在美国洛杉矶卡尔弗市构建了一个具有相同道路拓扑结构的数字城市模型,并在其上创建动态代理来模拟真实的交通流量变化过程。我们对几种前沿的3D物体检测算法进行了系统性评估,并结合多种多辆融合策略形成了完整的测试体系;同时引入了一种专注中间融合管道的新架构设计,在捕捉网络中代理间交互关系方面取得了显著进展。实验结果表明,在减少带宽需求的同时实现了当前最优性能水平

在这里插入图片描述

注意力中间融合

考虑到不同连接车辆的传感器观测可能带有不同噪声水平(如基于车辆间距),因而开发一种聚焦于关键观测并忽略干扰观测的方法对稳健检测至关重要。为此我们提出了一种中间融合管道用于捕捉相邻连接车辆特征间的相互作用从而帮助网络聚焦于关键观测结果。所提出的注意力中间融合管道包含六个模块:元数据共享层用于信息交互;特征提取层用于获取各子网络输出;压缩编码层用于降维处理;多模态特征共享层实现信息汇总;注意力机制融合层进行权重分配;最后的预测输出层生成最终结果。整体架构示于图5

在这里插入图片描述

Attentive Intermediate Fusion管道的体系结构。我们的模型由6个部分组成:
1)元数据共享:在相邻的CAV之间建立连接图和广播位置。
2) 特征提取:根据每个检测器的主干提取特征。
3) 压缩(可选):使用编码器-解码器压缩/解压缩功能。
4) 功能共享:与联网车辆共享(压缩)功能。
5) 注意力融合:利用自我注意力来学习同一空间位置的特征之间的互动。
6) 预测头:生成最终的对象预测。

Proposed pipe is flexible and can be easily integrated into existing deep learning-based LiDAR detectors (see Table III).

在这里插入图片描述

Metadata Sharing and Feature Extraction

随后向每个CAV发送其相对姿态信息及外部特征描述,并构建一个空间图结构(如图1所示),其中每个节点代表一辆位于通信范围内的CAV车辆;每条边代表两个节点之间的通信路径连接关系)。完成图形构建后,在群体中随机选择一辆作为基准车;在训练阶段中动态调整基准车位置以确保多样性;而在推理阶段保持基准车位置不变以保证测试公正性。该模块可作为现有三维目标识别系统的主干组件并直接接入后续数据处理流程。

Compression and Feature sharing

V2V通信的主要因素之一是硬件设备在传输带宽方面的限制。传统的高维特征图传输通常需要占用大量带宽资源,并且必须经过压缩处理以适应实际应用需求。相较于仅共享原始点云的数据,在压缩后消息融合中具有显著的优势:边际精度损失显著降低[15]。为此我们采用了编码器-解码器架构来处理共享的消息数据其中编码器模块由多层二维卷积操作与最大池化操作串联而成,在编码器模块的瓶颈层输出的特征图将被广播并发送至本地车辆进行解码处理以恢复并发送必要的压缩信息给细心融合模块完成最终的数据整合。

Attentive Fusion

基于自注意力机制[28]对压缩后特征进行综合融合。在同一个特征图中每个特征向量对应于原始点云所处的空间区域(如图5所示的绿色与蓝色圆圈区域)。仅仅对特征图进行压缩并计算其加权和会导致空间相关性的破坏。相反我们为每个特征向量构建一个局部子图其中从不同车辆来源但位于相同空间位置的特征向量间建立边关系(如图5所示)。这样一个局部子图通过图卷积操作模拟交互过程以更好地提取具有代表性的特征信息。

复制代码
    # -*- coding: utf-8 -*-
    # Author: Hao Xiang <haxiang@g.ucla.edu>, Runsheng Xu <rxx3386@ucla.edu>
    # License: TDG-Attribution-NonCommercial-NoDistrib
    
    
    import numpy as np
    import torch
    import torch.nn as nn
    import torch.nn.functional as F
    
    
    class ScaledDotProductAttention(nn.Module):
    
    def __init__(self, dim):
        super(ScaledDotProductAttention, self).__init__()
        self.sqrt_dim = np.sqrt(dim)
    
    def forward(self, query, key, value):
        score = torch.bmm(query, key.transpose(1, 2)) / self.sqrt_dim
        attn = F.softmax(score, -1)
        context = torch.bmm(attn, value)
        return context
    
    
    class AttFusion(nn.Module):
    def __init__(self, feature_dim):
        super(AttFusion, self).__init__()
        self.att = ScaledDotProductAttention(feature_dim)
    
    def forward(self, x, record_len):
        split_x = self.regroup(x, record_len)
        C, W, H = split_x[0].shape[1:]
        out = []
        for xx in split_x:
            cav_num = xx.shape[0]
            xx = xx.view(cav_num, C, -1).permute(2, 0, 1)
            h = self.att(xx, xx, xx)
            h = h.permute(1, 2, 0).view(cav_num, C, W, H)[0, ...]
            out.append(h)
        return torch.stack(out)
    
    def regroup(self, x, record_len):
        cum_sum_len = torch.cumsum(record_len, dim=0)
        split_x = torch.tensor_split(x, cum_sum_len[:-1].cpu())
        return split_x
    
    
    
    python
    
    
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-08-18/z48gnlhDUMfFQGbXtjJZaWk2Iqre.png)

ScaledDotProductAttention公式:

在这里插入图片描述

AttFusion中的forward函数逐行解析

x被定义为一种张量类型的特征
通过按record_len分段的方式对x进行分组处理*
获取split_x这一部分的空间维度信息*
初始化一个空白的空间变量out用于存储融合后的特征*
计算出xx在通道方面的数量信息*
基于(cav_num, C, -1)这一模式重构矩阵的空间结构*
应用ScaledDotProductAttention机制完成注意力计算*
将变换后的空间结构映射回原始空间中*
将融合后的特征信息整合到out变量中*
将所有融合得到的关键张量拼接在一起形成最终单一化的张量。

AttFusion中的regroup函数逐行解析

cum_sum_len = torch.cumsum(record_len, dim=0): 计算沿指定维度(此处为dim=0)的累积总和,并将其存储在cum_sum_len变量中。
split_x = torch.tensor_split(x, cum_sum_len[:-1].cpu()): 通过调用torch.tensor_split函数按照cum_sum_len[:-1]所指定的位置对输入变量x进行切分,并将其结果赋值给split_x。
输出分割后的结果列表

实际上regroup就起到了一个融合的作用

Prediction Header

融合后的特征会被传递到预测模块中以生成边界框建议以及与之相关的置信度得分。

实验

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

结论

在本文中, 我们开发了一个首个针对车辆间感知的开放获取的数据集框架与基准型融合策略. 随后, 我们又开发了一种基于注意力机制的中间级融合管道. 实验证明了我们提出的方法能够超越现有所有其他融合方法, 即使在较高的压缩比下同样能达到最佳性能水平. 在未来规划中, 我们的团队计划拓展包含更多任务类型与传感器组合的数据集库, 并在车辆间感知(V2V)以及车辆到基础设施(V2I) 的设置中展开多模态传感器联合优化研究. 我们的开源项目不仅致力于推动 V2V 感知领域的标准化进程, 在此过程中我们也期待激发更多学术界的研究兴趣.

全部评论 (0)

还没有任何评论哟~