SASSD

Structure Aware Single-stage 3D Object Detection from Point Cloud

文章:SA-SSD

代码:SA-SSD

这是来自香港理工大学和达摩院的一篇文章,一作是为在读的博士生,何晨航。通讯作者是张磊,香港理工大学的博导,目前在达摩院。华先胜达摩院的的人,也是为大牛。

Abstract

提出问题:

目前的单级探测器通过完全卷积方式逐步缩小三维点云是有效的。但是缩小特征不可避免的损失空间信息和无法充分利用3D点云的结构信息,降低了位置精度。

文章工作:

通过显示的利用3D点云结构信息提升单阶段检测的位置精度。

  • 辅助网络:该网络将backbone网络中的卷积特征转化为点级的展示。这个辅助网络由两个点级监督联合优化,进而引导卷积特征感知目标结构。训练完成后,可以分离这个辅助网络,因此在推理阶段没有引入多余的计算。

  • part-sensitive warping operation:考虑到单阶段检测框出现预测框和分类得分不一致的情况,所以使用该操作将得分对齐预测框。

结果:

  • 目前在KITTI3D/BEV检测榜上排名第一(现在已经不是了)。

  • 推理速度25FPS

Introduction

目前的文章以及问题:

单阶段检测的不足:

缩小特征不可避免的损失空间信息和无法充分利用3D点云的结构信息,降低了位置精度。

两阶段检测的优缺点:

精度提升,无法应用于实时性场景。

解决方法:

auxiliary network用于提升位置精度,part-sensitive warping operation改善预测框和对应的分类得分不一致情况

  • auxiliary network

    • backbone网络的特征转化为逐点展示,然后执行两个任务:
      • 前景分割使得特征对目标边界敏感
      • 逐点中心评估,进而使得特征感知目标内关系
  • part-sensitive warping operation

    • 预测框和对应分类不一致的原因:分类概率于使用的特征映射的当前位置有关,而预测框通常偏离它们的当前位置。
    • 对空间特征映射进行分类空间变换

Related Work

Single-stage approaches

Complex-yolo, Squeezeseg, Pixor, Voxelnet, Pointpillars, Second

Two-stage approaches

F-Pointnet, Frustum convnet, Fast point r-cnn, Pointrcnn, Part-aˆ2 net, STD

Auxiliary task learning

Hdnet,

Multi-task multi-sensor fusion for 3d object detection,

Leveraging heterogeneous auxiliary tasks to assist crowd counting,

Revisiting multi-task learning with rock: a deep residual auxiliary block for visual detection

Structure-Aware 3D Object Detection via Auxiliary Network Learning

SA-SSD_struct1

backbone and detection networks

Input data representation:
{ p i = ( x i , y i , z i ) : i = 1 , . . . , N } : 点 云 坐 标 d = [ d x , d y , d z ] ∈ I R 3 : 输 入 张 量 的 量 化 步 { p ‾ i = ( ⌊ x i d x ⌋ , ⌊ y i d y ⌋ , ⌊ z i d z ⌋ ) : i = 1 , . . . , N } d = { 0.05 m , 0.05 m , 0.1 m } \{p_i = (x_i, y_i, z_i): i = 1,...,N\}:点云坐标\\ d = [d_x, d_y, d_z] \in IR^{3}: 输入张量的量化步 \\ \{\overline p_i = (\lfloor\frac{x_i}{d_x}\rfloor, \lfloor\frac{y_i}{d_y}\rfloor, \lfloor\frac{z_i}{d_z} \rfloor): i = 1,...,N\}\\ d = \{0.05m, 0.05m, 0.1m\}\\ {pi=(xi,yi,zi):i=1,...,N}d=[dx,dy,dz]IR3:{pi=(dxxi,dyyi,dzzi):i=1,...,N}d={0.05m,0.05m,0.1m}
Network architecture:

  • backbone网络:采用的是和SECOND一样的网络,有4个卷积块,获得过尺度的特征;
  • 检测网络:沿着深度通道合并成一个通道,变成BEV。之后再利用两个非线性卷积,之后再使用线性卷积分别得到part-sensitive classification mapsregression maps

Detachable auxiliary network

Motivation:
SA-SSD_aux1
问题场景:

如图a所示,目标被遮挡,边界和背景靠的很近。经过卷积,很容易使得目标丢失,或者引入背景点,如图b所示。

Point-wise feature representation

  • backbone中特征的非零索引转化为真实世界坐标系的点,表示如下: { ( f j , p j ) : j = 1 , . . . , M } \{(f_j, p_j): j = 1, ..., M\} {(fj,pj):j=1,...,M}

  • 使用Pointnet++中的feature propagation操作,将上述的数据差值为 { ( f ~ j , p j ) : j = 1 , . . . , N } \{(\tilde f_j, p_j): j = 1, ..., N\} {(f~j,pj):j=1,...,N}。方法如下:
    SA-SSD_aux2

Auxiliary tasks

  • segmentation task

    • 我们在分割分支上利用sigmoid函数,来预测每个点的前景、背景可能性,标记为 s ~ i \tilde s_i s~i s i s_i si为标签,是否落入边界框中。利用focal loss
      SA-SSD_aux3

    α = 0.5 , γ = 2 \alpha = 0.5, \gamma = 2 α=0.5,γ=2

    具体如图c所示。

  • center estimation tasks

  • 学习每个目标点指向目标中心的相对位置,利用Smoth l1 loss
    SA-SSD_aux4
    △ p ~ ∈ I R N ∗ 3 : 表 示 中 心 评 估 分 支 的 输 出 △ p : 目 标 点 到 对 应 中 心 的 目 标 偏 移 N p o s : 表 示 前 景 点 的 个 数 I [ . ] 表 示 指 标 函 数 \triangle \widetilde p \in IR^{N*3}: 表示中心评估分支的输出\\ \triangle p: 目标点到对应中心的目标偏移\\ N_{pos}: 表示前景点的个数\\ I[.]表示指标函数\\ p IRN3:p:Npos:I[.]

这两个辅助任务只应用于训练过程,不占用推理过程资源。而且显著提升预测位置的准确度。

Part-sensitive warping

  • 将最后分类层改变为K个部分敏感的分类映射
  • 将每个特征映射的预测边界框分割成K个子框,将每个子框的中心点作为采样点,进而得到K个采样网格 { S k : k = 1 , 2 , . . . , K } \{S^k: k = 1,2,...,K\} {Sk:k=1,2,...,K},以及对应的分类映射。
  • 给定预测框,已经对应的采样点 { ( u k , v k ) = S k : k = 1 , 2 , . . . , K } \{(u^k, v^k) = S^k: k = 1,2,...,K\} {(uk,vk)=Sk:k=1,2,...,K}
  • 根据如下公式得到输出的置信映射 C p C_p Cp
    SA-SSD_psw1
    { x k : k = 1 , 2 , . . . , K } : 表 示 由 最 后 分 类 层 改 变 得 到 的 K 个 部 分 敏 感 的 分 类 映 射 b ( i , j , u , v ) = m a x ( 1 − ∣ i − u ∣ , 0 ) ∗ m a x ( 1 − ∣ j − v ∣ , 0 ) \{x^k: k = 1,2,...,K\}:表示由最后分类层改变得到的K个部分敏感的分类映射\\ b(i,j,u,v) = max(1-|i-u|,0) * max(1-|j - v|,0)\\ {xk:k=1,2,...,K}Kb(i,j,u,v)=max(1iu,0)max(1jv,0)
    示意图如下:
    SA-SSD_psw2

Loss functions

SA-SSD_loss1

L c l s : 表 示 分 类 分 支 f o c a l l o s s L b o x : 表 示 预 测 框 分 支 , S m o t h − l 1 l o s s w = 2 , 根 据 S E C O N D u = 0.9 , λ = 2 实 验 所 得 L_{cls}: 表示分类分支 focal loss\\ L_{box}: 表示预测框分支, Smoth-l_1 loss\\ w = 2, 根据SECOND\\ u = 0.9, \lambda = 2 实验所得\\ Lcls:focallossLbox:,Smothl1lossw=2,SECONDu=0.9,λ=2

Experiment

3712 training set
3769 validation set
7518 testing samples
IoU thresheld = 0.7

Implementation details

Training details

lidar point range (0m, 70.4m), (-40m, 40m), (-3m, 1m) in XYZ
match threshold for positive and negitive anchors: 0.6 and 0.45
SGD
batch_size = 2
learning_rate = 0.01
weight_decay = 0.001
learning rate is decayed with a cosine annealing strategy
# inference stage
threshold of low-confidence bounding box = 0.3
IoU threshold for NMS = 0.1 

Data augmentation

cut-and-paste strategy
random flipping, global rotation and global scaling to the whole point cloud

Weight selection of auxiliary tasks

SA-SSD_loss2

Comparison with state-of-the-arts

SA-SSD_res1
SA-SSD_res2

Ablation study

不同方法对比:
SA-SSD_res3
添加不同组成对比:
SA-SSD_res4
不同分类置信度处理对比:
SA-SSD_res5

running analysis

对标SECOND方法的各个模块:
SA-SSD_res6

Conclusion

  • 我们首先提出了使用两点级监督来学习辅助网络,以指导在backbone网络中学习到的特征来感知3D目标的结构信息。没有增加推理计算情况下,显著提升了检测的位置准确度。
  • 设计了一个PSW操作,以减轻预测的边界框与它们在NMS后处理中的相应置信度之间的不一致。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值