论文笔记_SPG: Unsupervised Domain Adaptation for 3D Object Detection via Semantic Point Generation

CVPR 2021
Qiangeng Xu et al.

SPG: Unsupervised Domain Adaptation for 3D Object Detection via Semantic Point Generation

A. Introduction

由于天气原因,自动驾驶场景中经常会出现一些遮挡因素,造成大量的目标丢失其部分或者全部的点云信息。而对于这些目标来说,由于点云信息的丢失使得其特征空间不再完整,或出现较大的区别,降低算法的整体识别能力。因此SPG算法的出现意在解决此类问题。

首先SPG算法是一个点云数据增强算法,他实现的功能是将低密度的目标点云进行up-sampling(而不是盲目的up-sampling整个场景),将残缺、遮挡的点云区域进行语义生成,从而使得可以一般检测器可以在此类糟糕天气场景中正常工作。

所以SPG并不包含检测功能,因此在文章的实验部分,作者采取了SPG+PV_RCNN以及SPG+PointPillars进行算法有效性的验证。

B. Method

I. Network Structure

对于点云空间 P C r a w = { p 1 , p 2 , . . . , p N } ∈ R 3 + F PC_{raw} = \{p_1,p_2,...,p_N\}\in\mathbb{R}^{3+F} PCraw={p1,p2,...,pN}R3+F,首先进行体素化:
P C r a w → V = { v 1 , v 2 , . . . , v M } ∈ R C PC_{raw}\to V=\{v_1,v_2,...,v_M\}\in \mathbb{R}^C PCrawV={v1,v2,...,vM}RC
体素化的过程与Voxelnet相似,通过MLP将同一网格内的所有点进行特征的聚合。对于每一个体素通过前馈网络判断其前景概率,即:
P ~ i f = FFN ( v i ) \tilde{P}^f_i=\text{FFN}(v_i) P~if=FFN(vi)
其中 v i ∈ V v_i\in V viV。对于每一个体素,通过一个网络进行语义点的生成:
s p ~ = Net ( v i ) \tilde{sp} = \text{Net}(v_i) sp~=Net(vi)
其中 s p ~ ∈ R 3 + F \tilde{sp}\in\mathbb{R}^{3+F} sp~R3+F v i ∈ V v_i\in V viV Net() \text{Net()} Net()论文中未给出描述。进一步的,对所有的生成点进行筛选,筛选规则如下:

  1. 生成点的坐标需要在generation area内。generation area被定义为具有点的体素空间以及其比邻的所有体素空间。
  2. 生成点的体素前景置信度需要满足 P ~ i f > P t h r e s h \tilde{P}^f_i>P_{thresh} P~if>Pthresh

最后将 s p ~ \tilde{sp} sp~与原始点云进行合并,并添加一个置信度维度:对于所有的原始点云,其置信度维度值为1.0,对于 s p ~ \tilde{sp} sp~,其置信度维度值为 P ~ i f \tilde{P}^f_i P~if。即:
P C a u g = { p 1 , p 2 , . . . , p N , s p ~ 1 , s p ~ 2 , . . . , s p ~ k } ∈ R 3 + F + 1 PC_{aug} = \{p_1,p_2,...,p_N,\tilde{sp}_1,\tilde{sp}_2,...,\tilde{sp}_k\}\in\mathbb{R}^{3+F+1} PCaug={p1,p2,...,pN,sp~1,sp~2,...,sp~k}R3+F+1

II. Training Targets & Loss

- 使用 y f y^f yf作为 P ~ f \tilde{P}^f P~f的监督

在这里使用 L c l s L_{cls} Lcls作为前景分类损失,损失函数使用Focal loss L c l s L_{cls} Lcls对四个类别进行监督(见下文 III.Strategies/Semantic Area Expansion )。
L c l s = 1 ∣ V o ∪ V e b ∣ ∑ V o ∪ V e b L f o c a l + 0.5 ∣ V e f ∣ ∑ V e f L f o c a l + 2 ∣ V h i d e ∣ ∑ V h i d e L f o c a l L_{cls}=\frac{1}{|V_o\cup V^b_e|}\sum_{V_o\cup V^b_e}L_{focal}+\frac{0.5}{|V^f_e|}\sum_{V^f_e}L_{focal}+\frac{2}{|V_{hide}|}\sum_{V_{hide}}L_{focal} Lcls=VoVeb1VoVebLfocal+Vef0.5VefLfocal+Vhide2VhideLfocal

- 使用体素的真值 ψ \psi ψ作为 s p ~ \tilde{sp} sp~的监督

在这里使用 L r e g L_{reg} Lreg作为特征回归损失,损失函数使用Smooth-L1。SPG生成语义点的目标为前景体素的平均,即对于每一个体素 v i ∈ R C v_i\in\mathbb{R}^{C} viRC,若其为前景( y f > 1 y^f>1 yf>1),则生成的点 s p ~ \tilde{sp} sp~ [ x i ˉ , f i ˉ ] [\bar{x_i},\bar{f_i}] [xiˉ,fiˉ]为目标。
L r e g = 1 ∣ V o f ∣ ∑ V o f L s m o o t h − L 1 ( ψ , ψ ~ ) + 2 ∣ V h i d e ∣ ∑ V h i d e L s m o o t h − L 1 ( ψ , ψ ~ ) L_{reg}=\frac{1}{|V^f_o|}\sum_{V^f_o}L_{smooth-L1}(\psi,\tilde{\psi})+\frac{2}{|V_{hide}|}\sum_{V_{hide}}L_{smooth-L1}(\psi,\tilde{\psi}) Lreg=Vof1VofLsmoothL1(ψ,ψ~)+Vhide2VhideLsmoothL1(ψ,ψ~)

III. Strategies

为了使得网络不仅可以在有点的体素中生成以增加点的密度,同时还需要在没有点但是为前景的体素中生成,以弥补遮挡和信息丢失带来的“missing points”情况。为此,在之前网络的基础上,作者添加了两个策略:“Hide and Predict” 以及 “Semantic Area Expansion”.

- Hide and Predict
为了模拟部分目标被遮挡,点云空间部分丢失的情景,对于体素空间 V V V,随机进行 γ % \gamma\% γ%隐藏(作者使用 γ = 25 \gamma=25 γ=25),有:
V h i d e ⊂ V V_{hide}\subset V VhideV
在训练中,需要仅通过 ∣ V − V h i d e ∣ |V-V_{hide}| VVhide而对所有的 V V V进行前景/背景标签 y f y^f yf的判断。对于 V h i d e V_{hide} Vhide内的语义点 s p ~ \tilde{sp} sp~生成,应该以真值为目标(见 II. Training Targets 章节)。

其实网络对于所有 y f = 1 y^f=1 yf=1的体素都需要生成一个语义点,那么在代码中完全可以不对 V h i d e V_{hide} Vhide进行区分,直接进行前景判断、 s p ~ \tilde{sp} sp~生成。那么这里 V h i d e V_{hide} Vhide的作用就是故意隐去一部分前景,并鞭策网络对空的体素也要判断其属性并相应进行语义点的生成。

- Semantic Area Expansion
由于空体素不一定紧邻有信息的前景体素,因此需要对更多的空体素进行生成。对于所有的体素,根据其不同类别进行如下划分:

  • 背景体素( V b V^b Vb): y f = 0 y^f=0 yf=0
  • 前景非空体素( V o f V^f_o Vof): y f = 1 y^f=1 yf=1
  • 前景空体素( V e f V^f_e Vef): y f = α ,  where  α < 1 y^f=\alpha,~\text{where} ~\alpha <1 yf=α, where α<1

同时由于空体素没有真值,因此只对非空前景体素进行 ψ \psi ψ监督,空前景生成的点不再监督。

IV. Experiment and Result

原文结果。

  • 25
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值