【论文阅读】【弱监督-3D目标检测】WS3D:Weakly Supervised 3D Object Detection from Lidar Point Cloud

前言

《Weakly Supervised 3D Object Detection from Lidar Point Cloud》(WS3D)

ECCV20录用的一篇文章,后面扩展出一篇TPAMI,我在这里就合并两篇文章一起整理介绍了。

北京理工的一位在读博士。

论文地址:https://arxiv.org/abs/2007.11901

Code地址:https://github.com/hlesmqh/WS3D

TPAMI论文地址:https://ieeexplore.ieee.org/document/9369074/

解决的问题及对应贡献

  • 自主驾驶领域中弱监督三维物体检测的早期尝试
  • 一种允许使用低成本的标签进行三维目标检测的新的网络设计。
  • 一个容易使用的标注工具,其可以根据不同的需求选择不同的模式来标记点云。

核心思想:

弱监督的3D点云目标检测,训练数据是少量的弱标签(BEV目标中心点)+少量的kitti-groundtruth,效果能与全监督性能相近,甚至更好。基于此,还做了一个自动标注器。

文章解读

1.摘要:

人工标记训练高质量的点云数据是很费力的。这项工作提出了一种三维对象检测的弱监督方法,只需要一小组弱注释的场景,与一些精确标记的对象实例相关联。这是通过一个两阶段的架构设计来实现的。第一阶段学习在弱监督下生成圆柱形物体提案,仅在鸟视图场景中点击标注对象的水平中心,第二阶段学习完善圆柱形的建议,使用一些标记良好的实例以获得长方体和有信心的分数,仅使用500个弱注释的场景和534个精确标记的车辆实例。我们的方法达到了目前领先的完全监督的探测器(需要3712个详尽和精确注释的场景和15654个实例)85-95%的性能。此外,通过我们精心设计的网络架构,我们训练过的模型可以应用作三维对象标注器,支持自动和主动(人工循环)工作模式,由我们的模型生成的注释可以用于训练三维对象检测器,达到超过94%的原始效果(使用人工标记的培训数据)。我们的实验还表明,当提供更多的训练数据时,我们的模型在提高性能方面还有一定的潜力。以上设计使我们的方法非常实用,并在降低注释成本的情况下为学习三维对象检测引入了新的机会

2.Introduction:

两个阶段 ,第一个阶段需要一小部分的弱标注鸟视图数据,标注形式是在鸟视图中物体的水平中心位置标点(这样标注成本大大降低)。BEV中没有高度信息,所以产生一组y轴的范围是无限的圆柱形方案,同时需要一部分与弱标注对应精确标注的数据。如图1所示

第二阶段从这些建议方案中学习估计三维参数,并预测相应的置信度分数


图 1
其弱监督框架提供了两个吸引人的特性:
  1. 它利用少量弱标记的BEV数据和精确注释的对象实例来学习三维对象检测,标注成本和耗时都大大降低
  2. 一旦训练,生成的检测器可以作为一个注释工具应用,以帮助费力的标签过程。(成为一个自动化的标注工具)。实验证明,采用这个工具,重新自动化标注KITTI,重新训练PointPillar和PointRCNN可以达到原始性能的94%。如果采用活动模式,人工只是首先在BEV中标物体中心点,重新标注训练能达到原始性能的96%的效果。更关键的是,模型能够以更低的速度,以更少的监督提供更准确的注释

监督的方式:

当前在2D传感器中常用的方式是:中心点击、极点或者校正点。本文采用的方式是在BEV视图中采用中心点。


图 2

本文方法采用500个弱标注帧和对应的534个精确标注车辆实例,达到全监督(3712精确标注帧、15654个车)效果的85-95%。

可以看到本文方法以较低的标注数据量达到与全监督相近的效果

弱监管的数据注释策略:

图 3

原先的标注过程: 标注者首先借助相机图像中的视觉内容在三维场景中查找对象,然后标注一个粗糙的立方体和方向箭头,最后,最佳标注(图3©)通过逐步调整正交视图中投影的二维框获得。尽管标注的结果质量很高,但是过程耗时又耗力。

作者的弱监督数据只包含带对象中心注释的BEV map,这可以很容易地获得。

具体来说,标注者首先粗略地点击相机前视图上的目标,然后放大BEV map,并显示初始点击周围的区域,以获得更准确的标注点。由于这个注释过程没有引用任何三维视图,所以它非常简单和快速;大多数注释只用通过点击两次按钮即可完成。这个标注包含的信息很弱,没有y轴中的高度和长方体的大小信息。

标注速度:

采用这样的方式重新标注Kitti数据,3712帧,15K个车辆实例,花费了11个小时。与其他公开数据集对比,减少了15~45倍的时间。

3.网络结构:


图 4

整体结构如图所示。由两个阶段组成。第一阶段由圆柱形三维提案生成结果,第二阶段进行立方体预测。最后产生结果。

3.1 阶段一:学习从点标注中生成圆柱形建议

在第一阶段里有两个目标:1、分割出前景点;2、生成一组圆柱形的三维对象方案。

【关键:如何利用标注点的信息】

伪Groundtruth生成(就是由标注点出发去扩展出一个目标的大致圆形区域):

因为点标注信息实在太弱,所以要想办法生成一些强监督的伪信息。对于标记的车辆中心点o∈O,可以根据BEV到点云的投影推断其在激光雷达坐标系中的水平位置(xo、zo),我们将其高度(y)设置为激光雷达传感器的高度(目标车辆的高度),即yo=0。然后,对于每个未标记的点p,其伪前景值fp∈[0,1]被定义为:

d(p, o) 是作者设置的未标记点和标记中心点的欧式距离的变式:

其中λ= 0*.5(因为y轴上的距离具有很大不确定性,如果λ*设置地太大,很多前景点就会被忽略)

“这个设置的意义就是从标注中心点,大致区分出前景点和非前景点(远的点,其属于目标前景点的概率就低)”

对于背景点,即使与激光雷达传感器的高度相似(之前设置标注点y=0),它们也非常稀疏,通常在(x、z)平面上远离车辆中心(见图3(h)),因此这些点可以被忽略。

点云表示:

应用几种具有多尺度分组的集合-抽象层,直接从原始点云输入中学习可区分的点特征(PointNet++),然后,在backbone上放置两个分支,

  • 进行前景点分割
  • 车辆(x-z)平面的中心预测

前景点分割:

前景分割分支学习估计每个点p的前景概率˜fp,学习是通过最小化以下损失来实现的:

对象(x,z)-中心预测:

另一个分支用于对象(x、z)中心回归,因为弱注释的BEV映射只包含水平信息。作者采用PointRCNN(CVPR19)的方法来做这个预测。

对于每个已标记的对于o∈O的对象中心,将4米距离内的点设置为支撑点(其中它们的伪前景概率≥0.1)。这些支撑点用于估计o的水平坐标。每个支撑点p,它沿x轴和z轴的周围区域(L×Lm2)是o的搜索空间,被分为一系列离散的箱子。具体地,对于x轴和z轴,搜索范围L(=8m)分为10个均匀长度δ(=0.8m)。因此,对于一个支持点p和相应的中心o,目标箱子(bx, b**z)可以被计算:

对于支持点p,中心定位损失Lbin被设计为

其中b 和r 是预测的bin分配和残差,b和r是目标(这个数据是谁提供?弱标注提供还是精确标注)。

"这部分的意义是什么?,最开始我以为是作者觉得凭感觉点了个BEV中心点,然后再在这个基础上去预测物体实际的BEV中心点,这里做损失计算的目标真值从精确标注框计算得到的。

后来,思考了全过程:这里是从弱标注的BEV中心点去学习预测中心点,这样就可以预测出每帧的目标BEV中心点(比如标注+遗漏的疑似物体中心点),之后推理的时候,就可以直接从点云出发预测中心点。所以这一阶段也不需要用到groundtruth"

圆柱形三维方案的生成:

在推理过程中,分割分支估计每个点的前景概率。然后,只保留前景分数大于0.1的点,选择预测置信度最高的bin中心,增加预测残余r,得到细化的参数。因为我们只有中心的水平坐标,无法直接生成3D框。因此对于每个中心,生成一个圆柱形proposal,在(x,z)平面上,半径是4m,y轴范围无限延伸。如上图4(a-b)所示。

"这里是对于所有预测出来的中心点去产生proposal,可以这么想:一帧弱标注的训练数据,从标注点学到了如何预测中心点,然后在当前帧里去预测出中心点(原有的+疑似的中心点)"

具有中心意识的非最大抑制作用(OB-NMS):

为了消除冗余的方案,作者提出了一种中心感知的非最大抑制(OB-NMS)策略。其主要思想是,在伪groundtruth生成策略下,从中心近点更容易预测中心,并且中心近点可以获得较高的前景分数。因此对于上面3.1预测出来的中心点,其支撑点(4m内)的前景点概率直接就作为中心点的置信度分数。然后,我们根据所有预测中心的置信度对它们进行排序,从大到小。对于每个中心,如果其与平面(x-z)上任何其他预选中心的距离大于4m。这个中心点对应的proposal将被保留下来,否则就被丢弃。

"在后面的TPAMI文章中,作者这里改为了大于0.3m的被保留"

3.2 阶段二:学会从一些高质量标注的实例中细化建议

第二阶段是从提案中估计长方体,并识别错误的估计。我们通过从两个精确标注的实例中学习一个提案改进模型来实现这一点,其动机有两个考虑因素(TPAMI中扩展到了三个):

  1. 对提案的细化是按实例进行的,这驱使我们使用实例化的注释
  2. 最初的圆柱形建议尽管粗糙,但是其包含了丰富的有价值的信息,这促进了长方体的预测
  3. 受级联二维对象探测器成功的启发,作者进行了粗到精细的提案优化,效果更好

全局Pipeline:我们的方法通过两个步骤对长方体的预测进行了改进

在每一步,提案细化网络采用从前一个步骤中的圆柱形提案或长方体作为输入,并输出更准确的长方体估计。不同步骤中的细化网络具有相同的架构,但不分享权重。在最后一步中,让细化网络同时预测长方体和置信度。所有的三维参数都以级联的方式回归,并逐步改进,生成一个紧凑而强大的提案细化框架

  1. 初始长方体生成网络以圆柱形建议作为输入,并输出初始长方体估计,如上图4(b-c)。
  2. 一个最终的长方体细化网络以初始的长方体估计作为输入,并输出最终的长方体预测,如图4(c-d)

级联网络:

初始立方体生成:

初始长方体生成网络采用PointNet++去提取圆柱体特征。然后用一个多层感知觉MLP去预测立方体参数(x, y, z, h, w, l, θ),应用了一种基于bin的回归损失Lbin来估计θ(一共有12种角度θ),和一个平滑的`1损失Lreg来估计其他参数

这里用到了Groundtruth(精细标注框)

基于IoU的置信度估计:

增加了一个额外的置信度估计头,用来预测立方体的置信度。这一部分是基于IOU的估计

目标置信分数CIoU被计算为输出立方体和groundtruth之间的最大IOU
最后立方体生成:

学习级联推理:

对于级联推理,当前步骤从前面的步骤中获得帮助,通过逐步消除背景噪声和输出更准确的长方体估计

在第一个方案细化步骤中,对于每个groundtruth,选择与其中心距离((x、z)平面上)小于1.4m(阶段一预测出来的中心点)的圆柱形方案作为训练样本,然后估计出来的立方体和groundtruth被用作下一步细化步骤的训练输入。经过几个细化步骤后,从最后一个提案优化网络的输出是我们最终的三维对象估计。通过这种方式,我们的第二阶段模块学会了怎样从粗到细进行方案细化

"在后面的消融实验中,可以看到这个级联步骤是有提升效果的"

3.3 实现细节

第一阶段 四个多尺度的集合抽象层,将点采样成大小为(4096,1024,256,64)的组,然后使用四个特征传播层来获得point-wise特征,作为分割和中心预测分支的输入。分割分支包含两个FC层,分别有128个神经元和1个神经元。(x,z)中心预测分支有两个FC层,分别有128个神经元和40个神经元。

第二阶段 从每个圆柱形提案/长方体中采样512个点,并且每个点都与一个五维特征向量相关联,即三维点坐标的串联(x,y,z),激光反射强度r和前景得分。

在将每个提案/长方体输入生成/细化网络之前,对点的坐标进行规范化,以保证它们的平移和旋转不变性(Fast point R-CNN)。

使用四个具有单尺度分组的集合抽象层将输入点采样成大小为(256,128,32,1)的组,最后,提取了一个512维特征,然后叠加两个FC层(分别有256个神经元和30个神经元)进行长方体预测

Kitti中前500个带有弱注释BEV地图的场景被用于训练我们的第一阶段模型。在500个场景中,25%的车辆实例(=534)与精确的3D注释相关联,并用于训练我们的第二阶段模型。对于最后一个提案细化网络,附加了一个额外的IOU评分分支,它分别包含两个具有256个和1个神经元的FC层

就是这500帧里,点标注、部分groundtruth都存在。”

数据增强:

阶段一:向左右方向进行翻转、尺度变换[0.95, 1.05],、角度旋转[-10 , 10 ]。随机采样几个标注过的车辆中心及它生成的圆柱方案里的点,并将它们插入到当前的样本中(数据库采样)。此外,为了提高对遥远车辆的鲁棒性(这些车辆通常包含很少的点),随机在标记中心的圆柱形空间(半径为4米)内加点

阶段二:翻转、尺度变换[0.8, 1.2]、角度旋转[-90 , 90 ],随机删除proposal内的点,x,y,z平移(高斯分布)。随机改变前景点的标签。随机忽略一些proposal

推理:

在一阶段采用CA-NMS产生立方体后,将其余的proposal送入第二阶段,得到最后的3D框。然后,使用一个BEVIoU阈值为0.3的定向NMS来减少冗余

实验(ECCV20+TPAMI21):

在这里插入图片描述
可以看到作者的方法和全监督的性能相差不大,在表1里,比采用500个精确标注,包含2176个车辆实例的数据全监督的方法性能还好。

500精确标注帧(2176个车辆)+剩余未标注数据(利用训好的PointRCNN模型去生成伪标签),然后重新训练。发现相比没有加未标注数据的情况,效果提升不大,而且也都比本文方法效果差。
在这里插入图片描述向官方服务器提交评估结果,测试集测试。

行人测试:
在这里插入图片描述
使用圆柱体(半径为0.4m)来生成伪二进制掩模。因为行人在BEV视角下更像是一个正方形。对于落入标注点-圆柱体中的点,前景概率设置为1,否则为0。

对应之后生成半径为1m的圆柱形proposal。

诊断性试验-消融实验

对不准确的BEV注释的鲁棒性

BEV地图上的注释很弱且不准确

为了评估这方面的鲁棒性,作者从标注的groundtruth生成更为精确的BEV中心点标注。然后重新训练,发现只有微小的改进,这说明BEV标点,不完全在中心位置也可以。
在这里插入图片描述

训练样本替换,证明弱标注的选择可以是随机的

作为标注工具的性能

模型,一旦经过训练,就可以用作三维对象标注器

由于其特定的网络架构和点击注释引导的学习范式,它支持自动和活动标注模式。

对于一个给定的场景,我们可以直接使用我们的预测作为伪注释,从而产生一个自动工作模式。在这样的设置下,我们的方法为每个汽车实例注释花费大约0.1秒。以前的3D检测方法也可以以这种方式作为自动注释器工作。然而,由于它们通常使用整个KITTI训练集进行训练,因此很难检查它们的注释质量

在活动模式下,人工标注者可以额外单击BEV地图中的对象中心,对标注进行修正。然后,对每个注释中心,从周围0.4m×0.4m区域(0.1m间隔)均匀采样25个点。这些点被用作圆柱形方案的中心,而它们周围的前景掩模是根据公式1生成,然后,我们使用我们的第二阶段模型来预测长方体,从中选择置信度最大的一个作为最终注释。在我们的活动注释模式下,注释每个汽车实例大约需要2.6秒,其中人类平均需要2.5秒来标注BEV点。

标注质量:
请添加图片描述
在这里插入图片描述

“红圈就是人工修正的目标”

问题:

在这里插入图片描述
第一种:严重的遮挡。导致预测框高度错误。可能的解决方法是充分利用更多的上下文信息;

第二张:障碍物形状与物体类似,导致误检;

第三种:前景点非常稀疏,很难预测出来

最后两个问题突出了基于激光雷达的方法的一般局限性,考虑到纹理和光学信息应该会有帮助。

作者的进一步思考:

首先,可以从三维数据的固有结构中挖掘出更多多样化的监控信号,例如激光雷达和视觉摄像机之间的通信关系,以及来自相邻帧的点数据之间的强相关性。其次,可以探索更有效的学习方式,例如自/半/混合监督学习技术,以降低注释成本,并有利于3D对象模式建模,从而进一步促进了各种下游的3D应用程序。第三,可以开发出不同类型的注释策略。2D图像在探索很多不同的标注方式,比如例如中心点击,极端点,和涂鸦。然而,3D注释受到的关注要少得多,尽管它更费时,更困难,也很有价值,扩展我们的注释方法的一种直接的方法是探索正的和负的单击注释。

"还有负标注,个人感觉这部分可以用来降低误检"

总结:

这项工作是比较少的使用弱监督信息来训练3D目标检测器。此外,作者的检测器可以扩展为一个注释工具,但这个工作还有一定改进的空间。

后续我也会运行这个代码,有机会的话会出一个代码解析

Kitti榜单(2021.6.8更新)
在这里插入图片描述
如果文章解析部分有理解不到位的地方,欢迎各位批评指正!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值