3D 目标检测——IA-SSD

😸IA-SSD主要贡献:

  1. 指明了现有 point-based 检测器存在的采样问题,并通过引入两种基于学习learning-based)的实例感知instance-aware)下采样策略,提出了一种高效的 point-based 三维检测器
  2. 论文提出的方法 IA-SSDCVPR 2022, Oral)是高效的,且能够使用一个模型在激光雷达点云上检测多类对象。此外,论文还提供了详细的内存占用与推理速度对比分析,以进一步验证所提方法的优越性
  3. 在多个大型数据集上的大量实验表明,该方法具有较高的检测效率和精度

✍️尽管并非所有的点对目标检测任务都同等重要,但为了减少内存占用和计算开销,现有的基于点(point-based)的 pipelines 通常采用任务不可知(task-agnostic)的随机采样或最远点采样来逐步向下采样输入点云。此外,对于目标检测器来说,前景点(foreground points)往往比背景点(background points)更重要。因此,论文提出了一种高效、单阶段(single-stage)且基于点的三维检测器 IA-SSD。该方法的关键是利用两种可学习的、面向任务的(task-oriented)、实例感知的下采样策略,分层级地选择(hierarchically select)属于感兴趣对象(objects of interest)的前景点。此外,论文还引入了上下文质心感知contextual centroid perception)模块来进一步估计精确的实例中心。最后,为了提高效率,论文按照只允许编码器encoder-only)的架构来构建 IA-SSD。由于低内存占用和高并行度,它在 KITTI 数据集上使用单个 RTX2080Ti GPU 实现了每秒 80 帧以上的卓越速度,且在几个大规模检测 benchmarks 上进行的大量实验证明了 IA-SSD 具有较强的竞争力。下图是在 KITTIbenchmark 上比较不同算法的性能:

在这里插入图片描述

网络结构

在这里插入图片描述

  1. 将点云数据输入到网络中提取逐点特征,再通过实例感知下采样来逐步降低计算成本,并保留前景点信息
  • 实例感知下采样包含类别感知Class-aware)采样和质心感知Centroid-aware)采样这两部分

  • 类别感知采样:这种采样策略旨在学习每个点的语义,从而达到选择性的下采样。为了实现这一点,论文引入了额外的分支来获取潜在特性中的丰富语义。即在编码层( encoding layers)上增加了两个 MLP 层,以进一步估计每个点的语义类别。该采样的损失函数如下

    L c l s − a w a r e = − ∑ c = 1 C ( s i l o g ( s ^ i ) + ( 1 − s i ) l o g ( 1 − s ^ i ) ) L_{cls-aware} = - \sum_{c=1}^C(s_i log(\hat{s}_i) + (1-s_i)log(1-\hat{s}_i)) Lclsaware=c=1C(silog(s^i)+(1si)log(1s^i))

    ✍️其中, C C C 对应检测的类别个数, s i s_i si 对应 one-hot 编码下的真实标签, s ^ i \hat{s}_i s^i 对应预测值

  • 质心感知采样:考虑到实例中心估计是最终目标检测的关键之一,论文提出质心感知下采样策略,使更接近实例质心的点具有更高的权重。具体来说,先定义实例的软点掩码soft point mask),再根据该掩码来得到损失函数

    M a s k i = m i n ( f ∗ , b ∗ ) m a x ( f ∗ , b ∗ ) × m i n ( l ∗ , r ∗ ) m a x ( l ∗ , r ∗ ) × m i n ( u ∗ , d ∗ ) m a x ( u ∗ , d ∗ ) 3 L c t r − a w a r e = − ∑ c = 1 C ( M a s k i ⋅ s i l o g ( s ^ i ) + ( 1 − s i ) l o g ( 1 − s ^ i ) ) Mask_i = \sqrt[3]{\frac{min(f^*, b^*)}{max(f^*, b^*)} \times \frac{min(l^*, r^*)}{max(l^*, r^*)} \times \frac{min(u^*, d^*)}{max(u^*, d^*)}} \\ L_{ctr-aware} = -\sum_{c=1}^C(Mask_i \cdot s_i log(\hat{s}_i) + (1-s_i)log(1-\hat{s}_i)) Maski=3max(f,b)min(f,b)×max(l,r)min(l,r)×max(u,d)min(u,d) Lctraware=c=1C(Maskisilog(s^i)+(1si)log(1s^i))

    ✍️其中, f ∗ f^* f b ∗ b^* b l ∗ l^* l r ∗ r^* r u ∗ u^* u d ∗ d^* d 分别对应点到三维边界框的前、后、左、右、上、下这六个面的距离。由此可知,点越接近边界框的质心,mask 的值越大(最大为 1),当点在边界框的某一面上时,mask 的值为最小值 0。损失函数与类别感知采样类似,只不过将软点掩模与前景点的损失项相乘,使靠近中心的点具有更高的概率

  1. 学习到的潜在特征(前面保留的前景点信息)进一步输入到上下文质心感知模块,以预测实例的中心
  • 上下文质心预测:论文试图利用在边界框周围的上下文线索contextual cues)来进行质心预测,其损失函数如下

L c e n t = 1 ∣ F + ∣ 1 ∣ S + ∣ ∑ i ∑ j ( ∣ Δ c i j ^ − Δ c i j ∣ + ∣ c i j ^ − c i ‾ ∣ ) ⋅ I S ( p i j ) w h e r e c i ‾ = 1 ∣ S + ∣ ∑ j c i j ^ , I S : P → { 0 , 1 } \begin{aligned} &L_{cent} = \frac{1}{|F_{+}|}\frac{1}{|S_{+}|}\sum_i \sum_j (|\Delta_{\hat{c_{ij}}} - \Delta_{c_{ij}}| + |\hat{c_{ij}} - \overline{c_i}|) \cdot I_S(p_{ij}) \\ &where \qquad \overline{c_i} = \frac{1}{|S_{+}|}\sum_{j}\hat{c_{ij}}, \quad I_S : P \rightarrow \{0, 1\} \end{aligned} Lcent=F+1S+1ij(Δcij^Δcij+cij^ci)IS(pij)whereci=S+1jcij^,IS:P{0,1}

✍️其中, ∣ S + ∣ |S_{+}| S+ 是用来预测实例中心的点的数量 Δ c i j ^ \Delta_{\hat{c_{ij}}} Δcij^ 是点 p i j p_{ij} pij 到实例中心偏移量的预测值 Δ c i j \Delta_{c_{ij}} Δcij 是点 p i j p_{ij} pij 到实例中心偏移量的真实值 I S I_S IS 是一个用来判断是否用这个点 p i j p_{ij} pij 来估计实例中心的指示器函数

  • 基于质心的实例聚合:对于位移的代表(质心)点,论文进一步利用 pointnet++ 模块来学习每个实例的潜在表示。具体地说,论文将相邻点转换为局部标准坐标系local canonical coordinate),然后通过共享的 MLP 和对称函数聚合点特征
  1. 通过建议生成头回归 3D 边界框和相应的类别标签
  • 将聚合的质心点特征输入到建议生成头(proposal generation head)中,用来预测三维边界框和相应的类标签。论文将生成的建议编码为具有位置、大小(scale)和方向的多维表示
  • 通过一个使用特定 IoU 阈值的 3D-NMS 后处理来对生成的所有建议进行过滤
损失函数

🙀IA-SSD 可进行端到端end-to-end)的训练,在该框架中,多任务损失被用于联合优化。总损失由四部分组成,分别是下采样策略中的损失 L s a m p l e L_{sample} Lsample,质心预测损失 L c e n t L_{cent} Lcent,分类损失 L c l s L_{cls} Lcls 和边界框损失 L b o x L_{box} Lbox。此外,边界框损失又包含位置、大小、angle-binangle-rescorner 这几部分。即,总的损失函数表达如下:
L t o t a l = L s a m p l e + L c e n t + L c l s + L b o x L b o x = L l o c + L s i z e + L a n g l e − b i n + L a n g l e − r e s + L c o r n e r \begin{aligned} &L_{total} = L_{sample} + L_{cent} + L_{cls} + L_{box} \\ &L_{box} = L_{loc} + L_{size} + L_{angle-bin} + L_{angle-res} + L_{corner} \end{aligned} Ltotal=Lsample+Lcent+Lcls+LboxLbox=Lloc+Lsize+Langlebin+Langleres+Lcorner

😻论文:https://arxiv.org/pdf/2203.11139.pdf

😻代码:https://github.com/yifanzhang713/IA-SSD

  • 4
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值