3-D HANet:一种用于目标检测的柔性三维 HeatMap 辅助网络

论文背景

室外场景感知使用 Lidar:
1.点云数据不受天气(雾、风暴、雨和雪)的影响,支持稳定的环境感知;
2.点云数据在很大程度上保留了原来中物体的空间结构特征。

3D 目标检测是室外场景感知的重要组成部分。 从一个不完整的点云空间结构中学习目标的完整尺寸和准确定位是三维目标检测的关键。

空间结构不完整: 受传感器、遮挡、物体材质等因素的影响,部分点云缺乏空间结构信息。点云的质量直接影响到检测器的准确性,很可能导致检测器将一个物体识别为另一个物体(如极点和行人)或未能检测到该物体,导致漏检或未被检测到的情况。空间结构的特性是精确计算结果的关键。
精度与效率的不平衡: 在 3D 目标检测的实际应用中,由于自动驾驶系统必须进行实时控制操作,环境感知算法既要求高精度,又要求高效率。 在以前的工作中,提高精确度需要大量的参数和计算,这使得推理时间不可接受。

多帧点云预测和形状补全方法部分解决了点云结构缺失的问题,但是现有的恢复空间结构的方法不可避免地增加了额外的计算量和检测器的推理时间。

结构感知单阶段点云三维目标检测(SASSD)提出了一种辅助网络,实验证明了该辅助工作的有效性。 但辅助任务中并没有考虑前景与对象之间的空间结构关系。

论文得出点云的分布不是随机的。 根据物体的形状,每个前景点自然与物体本身有空间位置关系。
提出了三维 HeatMap 辅助网络(3-DHANET),利用三维高斯分布函数将点云与目标的关系转化为三维高斯响应,在不增加推理时间的情况下感知目标的形状和位置。

论文相关

3D 目标检测
从基于检测的阶段来看,3D 目标检测分为单阶段目标检测和两阶段目标检测。 点密度感知体素(PDV)考虑了点云的密度,它在单阶段和两阶段算法中都有助于小目标检测。
单阶段算法用最小的计算代价获得了良好的检测结果。 单级 3D 目标检测算法使用端到端目标检测技术。 IASSD 提出了一种前景分割网络,提高了检测的准确性和速度。 旋转解耦 IOU(RDIOU)缓解了旋转敏感问题。
两阶段算法对第一阶段生成的方案进行细化后,在第二阶段输出更好的目标检测结果。 CasA设计了一种基于交叉注意机制的级联求精网络,以聚合对象各个阶段的特征。 Transfusion ]使用两个 transformer 解码器层,利用 cross attention 来对齐多模态特征。 用于自动驾驶的变换等变3D物体检测 (TED) 提出对原始点云执行多次旋转和二分变换。

Heatmap
CenterNet 将二维图像转换为二维 Heatmap。 2-D Heatmap很好地刻画了图像的特征。 CenterPoint 借鉴了图像目标检测中二维 Heatmap 的思想,将三维点云映射到二维空间,然后利用二维 Heatmap 完成目标检测。
然而,在三维空间中,将点云信息存储在二维 Heatmap 中会造成一定程度的空间结构和语义信息损失。 首先,给定一条有坡度的道路,用二维 Heatmap 表示的三维物体会有中心点偏移和尺寸变形。 第二,二维 Heatmap 不能反映物体在垂直维度上的位置信息。

基于辅助网络的检测算法
SASSD算法设计了一个专有的辅助网络,将稀疏卷积层的特征传播到原始点云中。保留了原始点云的空间结构特征。在辅助网络中建立中心点预测和语义分割。
为了平衡由每个模态控制的梯度变化,SFD 在两个分支上增加了辅助ROI head loss。
SAM 进行深度预测和补全的多任务, 辅助任务只参与训练阶段,不参与测试阶段,从而在不降低测试速度的情况下提高测试精度。
计算机视觉领域的多任务模型通常使用损失层来学习多任务的损失权值[40]。与多任务模型不同,辅助网络的丢权只依赖于目标检测任务的监控信号。

论文贡献

  1. 利用 3-D heatmap 构造了一种新的 3D 目标检测辅助网络。 所提出的 3-D heatmap 反映了三维场景中物体的位置、大小和方向信息。
  2. 所提出的三维HANET可以嵌入到任何主流的目标检测网络中,即插即用,在保持推理速度的同时提高了目标检测的准确性。

论文框架

在这里插入图片描述
3-D HANet 包括一个特征传播层、一个 3-D heatmap 预测器、一个 3-D heatmap 生成器自适应权重模块

特征传播层提取 backbone network 中体素空间或点云的特征图。
3-D heatmap 预测器通过线性回归层计算目标中心的每个点云/体素的概率。
3-D heatmap 生成器计算三维空间中点云/体素的真实热值响应,作为 ground-truth 的监督。
自适应模块以原算法颈部特征和 3-D heatmap 预测器特征为输入,通过多层感知(MLP)生成两个自适应损失权值,一个用于原算法,另一个用于热值损失。

主流检测网络

1.基于体素的方法: 基于体素的方法,它用体素表示原始点云,
a)将点云空间划分为一个体素立方体;
b)在立方体中设置阈值 T T T
c)如果立方体中的点数大于阈值,则随机采样,如果立方体中的点数小于阈值,则输入0。
2)基于点的方法: 基于点的方法将点云转化为逐点张量表示。
主流的物体检测框架分为三个部分:backbone、neck 和 head。backbone 的作用是从预处理后的数据中提取有效特征。

遵循主流的三维目标检测器,论文选择了自动特征提取方法。 对于基于点的方法,论文使用 PointNet 来提取特征。 对于基于体素的方法,使用一个体素特征编码(VFE)层来提取特征。 neck 模块对从 backbone 中提取的重要特征进行再处理和合理使用,以利于下一步检测任务的顺利进行。 head 模块从上层获取的特征获取检测结果。

特征传播层

对于基于体素和基于点的方法, 特征传播层的设计是不同的。
在基于体素的目标检测网络中,将特征传播层直接插入到 backbone network 输出的三维特征图中。根据数据处理中的量化运算,反求出三维特征图在原始体素坐标系中的真位置索引。在三维特征图的基础上,利用线性插值算法得到整个体素空间的特征表示。

在基于点的目标检测网络中,传播方法选择邻域聚合。逐点张量通过多个三维稀疏卷积层得到多尺度三维特征图。在各种尺度的三维特征图中,以原始点云位置为聚合点,将邻域半径 r r r 内的所有特征聚合为聚合点,从而最终获得具有丰富语义信息的强化点。最后,对不同尺度的增强点进行级联。

3-D Heatmap 辅助网络

动机

车载激光雷达获取的点云数据中,物体遮挡和远距离信号丢失导致点云所表示的物体不完整。这种不完整的结构表征给目标感知带来了巨大的挑战。论文使用简化的 3-D 高斯函数来生成 3-D Heatmap ground-truth。尽管点云的分布不完整,但每个点的热值响应反映了完整的物体尺寸。此外,热值响应指示点是否在前景中以及前景在对象中的位置。在辅助网络中设置学习热图的任务可以增强网络对点云进行分类和位置回归的能力。

嵌入辅助网络的动机:辅助网络仅参与训练,并在推理过程中被删除。因此,在检测网络中添加辅助网络并不会降低模型的运行速度。同时,辅助网络使主干网络能够更好地捕获包含特定任务要求的语义特征。换句话说,辅助网络使得主干网络能够训练出更优秀的参数,使得检测结果更加准确。

3-D Heatmap 生成器

3-D Heatmap 生成器对 3-D Heatmap 地面实况进行建模。根据点云的不同表示,3D Heatmap 分为两种策略:基于点和基于体素。

基于点的方法: 在世界坐标系中,以激光雷达位置为原点。
首先,如果点云中的某个点是背景点,则直接将该点的热值响应设置为“0”。
其次,设目标 M 任意一点的位置为 p ( p x , p y , p z ) p(p_x,p_y,p_z) p(px,py,pz),物体 M 的中心坐标为 μ ( μ x , μ y , μ z ) μ(μ_x,μ_y,μ_z) μ(μx,μy,μz),目标 M 的长、宽、高 为 ( w M , l M , h M ) (w_M , l_M , h_M) (wM,lM,hM),点的热值响应被定义为:
Q p = exp ⁡ [ − 1 2 [ p − u ] T ∑ − 1 [ p − u ] ] (1) \tag1 Q_p = \exp[ - \frac{1}{2} [p - u]^T {\sum}^{-1}[p-u]] Qp=exp[21[pu]T1[pu]](1)其中 [ p − u ] = [ p x − u x p y − u y p z − u z ] (2) \tag2 [p-u] = [p_x -u_xp_y -u_yp_z -u_z] [pu]=[pxuxpyuypzuz](2)协方差矩阵定义如下: ∑ = [ w M 2 + l M 2 4       w M 2 + h M 2 4       h M 2 + l M 2 4 ] (3) \tag3 \sum = \begin{bmatrix} \frac{w^2_M+l^2_M}{4} & \space & \space \\ \space & \frac{w^2_M+h^2_M}{4} & \space \\ \space & \space & \frac{h^2_M+l^2_M}{4} \end{bmatrix} = 4wM2+lM2   4wM2+hM2   4hM2+lM2 (3)3-D 高斯分布的方差选择目标对角线的长度。
3-D heatmap 的性质:热值响应的范围是 [0, 1]。热值响应从小到大表示一个点到中心的距离由远到近。当热值响应为“1”时,该点的坐标是对象的中心坐标。如果热值响应为 0,则该点为背景点。

基于体素的 3D heatmap 建模的设置与基于点的目标检测网络的设置大致相同。不同之处在于,使用体素的位置索引(体素中心点的坐标除以体素的大小)而不是点的坐标。
3-D heatmap 优化过程:下图 显示了 3-D HANet 的优化过程。
(a)显示了点云数据分布不均匀、无序的情况。 3-D 热图预测器生成每个点的热值响应;
(b)中点的颜色(由浅到深)对应热值由小到大的响应;箭头表示各点的热值响应作用于中心点的回归和尺寸的感知;

在这里插入图片描述
3-D HANet 增强了 backbone network 感知目标位置和大小的能力,从而提高物体检测的准确性。
具有热值响应的点云如下图所示。
在这里插入图片描述
背景点云颜色为紫色,热值为 “0”。前景点云的颜色范围从绿色到黄色,点云的热值变大。

辅助网络损失函数

为了准确预测3D heatmap,3D heatmap 预测器选择具有许多网络参数的全连接神经网络,并直接将输出维度设置为“1”,从而预测点的热值响应。每个点的热值预测由真实 3D heatmap 确定。在此预测中,论文使用 SmoothL1 函数。 3-D heatmap 预测器生成的点的热值响应为 Q ^ \hat Q Q^,3-D heatmap 的真实热值响应为 Q Q Q。辅助任务训练阶段使用的损失函数如下: L H e a t m a p = 1 N ∑ i = 1 N { 0.5 ∣ Q ^ i − Q i ∣ 2   ∣ Q ^ i − Q i ∣ < 1 ∣ Q ^ i − Q i ∣ − 0.5   ∣ Q ^ i − Q i ∣ ≥ 1 (4) \tag4 L_{Heatmap}=\frac{1}{N}\sum_{i=1}^N \begin{cases} 0.5|\hat Q_i - Q_i|^2 &\text{ } |\hat Q_i - Q_i|<1 \\ |\hat Q_i - Q_i|-0.5 &\text{ } |\hat Q_i - Q_i| \geq1 \end{cases} LHeatmap=N1i=1N{0.5∣Q^iQi2Q^iQi0.5 Q^iQi<1 Q^iQi1(4)其中 N N N 指点云的数量; Q ^ \hat Q Q^ Q Q Q 分别表示热值响应的预测值和实际值。

注意力自适应权重模块

在训练神经网络模型时,需要大量时间手动调整多任务损失函数的超参数以达到最佳的训练效果。手动调整参数后,通过消融实验得到最终的超参数。然而,这种方法需要很多时间,并且仍然很难找到最佳权重。论文融合了神经架构搜索和注意力机制两种策略,并提出了一种注意力自适应模型。
在这里插入图片描述
首先,从 heatmap 预测器和颈部模块获得特征向量,接下来,从 3-D heatmap 预测器和颈部模块输出 [ 1 ∗ 10 ] [1 * 10] [110] 的张量,然后,连接两个张量以获得 [ 1 ∗ 20 ] [1 * 20] [120] 的张量。张量经过ML层,输出一个权重为 [ 1 ∗ 2 ] [1*2] [12] 的新张量,其中第一维是传统检测头损失的自适应权重;第二个维度是 heatmap 预测网络损失的自适应权重。最后,根据任务对网络的贡献,自适应权重在权重分配中分散注意力。

Loss

论文提出了整个 3-D 目标检测网络的损失函数。 L t o t a l L_{total} Ltotal由三部分组成:检测器的分类损失( L c l s L_{cls} Lcls)、回归损失( L r e g L_{reg} Lreg)和辅助网络的 heatmap 预测损失( L H e a t m a p L_{Heatmap} LHeatmap)。其中,分类损失采用 focal loss。回归损失和 heatmap 预测损失使用 Smooth L1 函数。 L t o t a l = weight 1 ( α L c l s + β L r e g ) + weight 2 L Heatmap (5) \tag5 L_{total} = \text{weight}_1(\alpha L_{cls}+\beta L_{reg})+\text{weight}_2L_{\text{Heatmap}} Ltotal=weight1(αLcls+βLreg)+weight2LHeatmap(5)其中,两个系数 α \alpha α β \beta β 分别设置为大小为 1 和 2 的超参数;权重1和权重2由自适应权重模块获得。使用梯度下降算法来获得使损失最小化的权重。

论文总结

提出了一种新颖的点云表示(3-D heatmap),它获得了点与目标中心之间的欧几里德距离的高斯响应,以目标对象大小作为方差。 3D heatmap 的预测被添加到主干网络的训练过程中。 3D heatmap 包含物体的高层语义信息和低层空间结构信息;因此,辅助网络增强了主干网络的空间感知能力。

限制:在辅助网络的训练阶段筛选背景点。有很多对背景点的预测无法为检测提供有效的信息。辅助网络不参与推理;然而,无用背景点的预测会在训练过程中产生不必要的计算,从而影响训练速度。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
HANet是一种基于注意力机制的深度学习网络,可以用于图像分类、目标检测等任务。下面是使用PyTorch搭建HANet的步骤: 1. 定义注意力机制 首先需要定义一个注意力机制,用于计算每个特征图的权重。可以使用Softmax函数将特征图中的每个位置的权重归一化,然后乘以特征图得到加权的特征向量。注意力机制的实现如下: ``` import torch.nn.functional as F class Attention(nn.Module): def __init__(self, in_channels): super(Attention, self).__init__() self.conv = nn.Conv2d(in_channels, 1, kernel_size=1) def forward(self, x): x = self.conv(x) x = F.softmax(x, dim=2) return x ``` 2. 定义HANet模型 然后需要定义HANet模型,它由多个注意力模块和卷积层组成。在每个注意力模块中,先通过卷积层得到特征图,然后计算注意力权重,最后将加权的特征向量输入下一层。HANet模型的实现如下: ``` class HANet(nn.Module): def __init__(self, in_channels, out_channels, num_attention): super(HANet, self).__init__() self.num_attention = num_attention self.attentions = nn.ModuleList([Attention(in_channels) for _ in range(num_attention)]) self.conv = nn.Conv2d(in_channels * num_attention, out_channels, kernel_size=1) def forward(self, x): attention_maps = [] for attention in self.attentions: attention_maps.append(attention(x)) x = torch.cat([x * attention_maps[i] for i in range(self.num_attention)], dim=1) x = self.conv(x) return x ``` 3. 使用HANet进行图像分类 最后,可以使用HANet进行图像分类。可以先使用卷积层提取特征,然后将特征输入HANet模型中,得到加权的特征向量,最后使用全连接层输出分类结果。分类模型的实现如下: ``` class ClassificationModel(nn.Module): def __init__(self, num_classes): super(ClassificationModel, self).__init__() self.conv1 = nn.Conv2d(3, 64, kernel_size=3, padding=1) self.conv2 = nn.Conv2d(64, 128, kernel_size=3, padding=1) self.hanet = HANet(128, 256, 3) self.fc = nn.Linear(256, num_classes) def forward(self, x): x = F.relu(self.conv1(x)) x = F.relu(self.conv2(x)) x = self.hanet(x) x = x.mean(dim=(2, 3)) x = self.fc(x) return x ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

飞大圣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值