一、CIA-SSD:Confident IoU-Aware Single-Stage Object Detector From Point Cloud
目前已知的单阶段点云目标检测器大多将目标定位和类别分类视为两个独立的任务,导致定位准确性以及类别置信度二者不太一致,除此之外还伴随着一些冗余的检测结果,具体情况如下图所示:
CIA-SSD的整体架构如下图所示:
1.将点云进行编码
我们首先将点云体素化,然后在体素空间中计算每个体素中点的平均XYZ坐标和反射强度,并将这些作为点云初始特征。我们利用稀疏卷积网络SPConvNet从稀疏的体素中进行特征提取。最后,我们将稀疏体素特征转化为稠密的特征图,最后在z轴方向上进行连接,产生BEV特征图。
2.空间-语义特征聚合
在自动驾驶任务中,检测汽车样本分为两个子任务a.对汽车的位置进行精确的回归b.对每个边界框进行分类,区分是正样本还是负样本。在这个过程中,我们要同时考虑低级的空间特征和高级的语义特征。然而,当我们丰富了特征图中高级的语义特征时,低级的空间特征通过堆叠的卷积网络会下降,因此常用的BEV特征提取模块无法获得具有丰富空间信息的特征。
在本模型中,我们采用一种叫做Spatial-Semantic Feature Aggregation(SSFA)的模块,该模块包含两组卷积层,并在最后添加了特征融合模块。具体地,我们保持空间特征的维度(特征图的通道和尺寸)和输入相同以避免空间信息的损失。对于语义模块,我们将空间特征作为其输入,该模块将特征的通道数变为原来的2倍,通过在卷积层中将步幅调整为2,使空间尺寸减半。此处我们使用了两个DeConv网络,他们的作用分别是维持语义特征和空间特征维度相同,以及对语义特征进行上采样。
为了使空间特征和语义特征可以自适应融合,我们在最后使用了一个注意力模块。首先我们将每种多通道特征压缩成单通道结构,并将压缩后的结果连接起来。之后我们用Softmax函数对连接的通道进行归一化,然后将其分裂成两个BEV注意力图,我们用它们作为每种特征的权重,通过异或运算进行融合。
3.基于IoU感知的置信度校正
为了在不添加其他网络结构的情况下,缓解定位精度和分类置信度不一致的问题,我们引入了这个模块,对分类置信度进行后处理。在3D检测中,我们通过在BEV特征图上均匀的分布边界框来定义锚;然后训练网络,针对锚和真实的边界框之间的偏移量进行回归由于锚的特征信息不一致,使得基于锚的单阶段检测器预测的IoU准确性不如二阶段检测器。但是我们依然观测到,基于锚的IoU预测结果具有很强的辨识度。
从图4的a图中我们可以看出,预测的IoU值无法完全匹配真实的IoU值,且随着真实IoU值的下降,预测IoU值开始离散化,这可以帮助我们区分精确的和不精确的边界框回归结果。具体地,如果一个锚特征可以导致精确的边界框回归,则该特征应该可以预测具有高确定性的较高的IoU值,因为该特征已经包含了充分的位置信息。相反,如果一个锚特征会造成不精确的回归,则锚会偏离真实的边界框很远,这会造成IoU值的降低,且使其具有很高的不确定性。
为了抑制低IoU值的不确定性,进一步区别低IoU和高IoU,我们引入一种校正因子,如下:
其中i是预测IoU值,β是超参数,负责控制对低IoU预测值的抑制程度,增强高IoU预测。当β=4时,置信度函数f可以表示为:
其中c是预测边界框的类别预测分数,我们以这种方式对低IoU和高IoU预测值进行极化,从而对c进行更好的校正。
4.可变距离的基于IoU权重的NMS方法
具有较大IoU预测值的辅助边界框或者候选边界框,会为其分配较大的高斯权重,我们用σ来调整高斯权重的平滑程度,它和边界框的中心与观测点的距离呈正相关。我们用平滑的高斯权重处理远处边界框扰动的问题。
二、SA-SSD:Structure Aware Single-Stage Object Detection From Point Cloud
目前的点云单阶段目标检测器都是以全卷积的方式逐步的对3D点云进行下采样,然而这也不可避免的会丢失许多空间信息,使我们无法充分利用点云的结构信息,从而减弱定位准确性。在本模型中,我们设计了一个辅助网络,它将骨干网络中的卷积特征转换成基于点的表示,最后通过两项点级别的监督,指导骨干网络中的卷积特征感知点云的结构信息。辅助网络在训练后可以被移除,因此在推理阶段不需要额外的计算。除此之外,对于预测边界框和相关类别置信度不协调的问题,我们提出了part-sensitive warping操作来来解决这个问题。
1.主干网络和检测网络
(1)输入数据表示
之前我们通常将点云分割成体素并把每个体素特征表示成非零张量。然而,体素这种预处理方法特别耗时。为了方便,我们这样表示。令{Pi=(xi,yi,zi):i=1,...N}为点云坐标,d=[dx,dy,dz]为输入张量的量化步骤,则张量索引可以表示为{pi_=(|_xi/dx_|,|_yi /dy_|,|_zi /dz_|):i=1,...,N}。我们根据索引迭代地为每个点分配一个张量。如果多个点共享同一索引,我们用最后一个点的张量重写之前的。d=[0.05m,0.05m,0.1m]
(2)网络架构
在图2中,我们用了最常用的骨干网络进行特征提取。该骨干网络包含4个卷积块,每个块由卷积核为3的卷积子层构成。最后三个块还包含了步幅为2的稀疏卷积,每个卷积层后又有一个归一化层和ReLU非线性映射层。最后,骨干网络按照不同的分辨率生成每个阶段的特征。随后,探测网络在深度维度上将骨干网络输出的特征向量连接为一个通道,得到特征的BEV表示。接着我们用6个带有非线性映射的3×3卷积进行进一步的特征提取。最后用两个没有非线性函数的1×1卷积层生成像素级别的预测。
(3)可移除的辅助网络
从图3(a)可以看出,只有目标的少数点可以被检测到,这里存在一些背景点距离目标边界很近。这样的案例在现实场景中很常见,尤其是目标距离传感器较远或者被一些杂物遮挡的场景中。由于卷积网络会逐步地降低点云的空间分辨率,会使得目标点与一些背景点相融合,导致在低分辨率特征空间里,目标边界的特征会被误分类。如图3(b)所示。因此模型也会被误导生成低质量的边界框。
如图2所示,我们将骨干网络在每个阶段生成的特征索引转换为现实世界中点的坐标,这样每个骨干网络特征就可以表示为点的形式。我们用以下式子来表达这一过程:{(fj,pj):j=1,...,M},其中f表示特征向量,p表示点的坐标。为了生成覆盖所有分辨率的点特征,我们在每个阶段都用一个特征前向传播层,使其在原始点云坐标上对骨干网络特征进行插值。对于插值,我们是对邻域内的所有点施加反向插值加权平均操作。我们用{(fi^,pi):i=1,...,N}表示该过程。其中,
N(pi)代表球形邻域,半径分别为0.05m,0.1m,0.2m,0.4m。我们将这些点特征通过跨阶段链接连接起来,再利用预测单元进行预测。
我们引入了一种基于点的前景分割任务来指导骨干网络学习在目标边界上更具分辨性的模式。具体地,我们在分割分支上用Sigmoid函数预测每个点的前景或者背景概率。损失函数如下:
以上分割任务可以帮助骨干网络更准确地检测出目标边界,如图3(c)所示。然而,即便能够检测到目标边界,但由于特征图的稀疏性,我们对边界框大小和形状的决定还是很困难,因此,我们引入另一个辅助任务来学习每个目标点相对于目标中心的位置。如图3(d)所示,目标内部关系可以帮助决定目标大小和形状,使定位更精准。
(4)Part-Sensitive Warping
我们让最后的分类层生成K个局部感知分类图,我们用{X^k:k=1,2,...,K}表示,其中每一部分都编码了目标的一个确定部分的信息,例如K=4,就是{左上,右上,左下,右下}。同时,我们把特征图每个位置的边界框分成K个子窗口,并且选取每个字窗口的中心位置作为采样点。这样就可以生成K个采样点,用{S^k:k=1,2,...,K}并且每个点都关联一部分分类图。具体的计算过程如图4所示:
以分类图和采样点作为输入,输出是依据输入在每个采样点处采样的输出分类图,最终的分类置信度为K个采样得到的分类图的平均值。可以用如下公式表示:
其中b是二线性插值核。
三、3DSSD:Point-based 3D Single Stage Object Detector
1.整体架构
从整体上看,该模型由一个骨干网络以及一个包含候选生成层和锚预测头的边界框预测网络组成。(a)骨干网络:它以原始点云(x,y,z,r)作为输入,通过一些带有融合采样策略的SA层生成基于所有点的全局特征。(b)候选生成层:它在SA层后对点的特征进行下采样、变换和提取。(c)锚预测头。
2.融合采样(FS)
目前的目标检测框架主要分为基于点的和基于体素的,尽管准确率不相上下,但相比体素方法,基于点的方法会消耗更多时间。我们注意到基于点的方法一般分为两个阶段:提议生成阶段和预测精炼阶段。在第一阶段,我们用SA层对点云进行下采样来提高效率并扩大感受野,我们还会用FP层在下采样过程中,对被遗弃的点的特征进行广播,从而恢复所有点。SA层对于提取点特征很重要,但FP层和第二阶段精炼模块会限制模型的效率。
然而,将FP层移除并非易事。如之前所说,骨干网络中的SA层利用D-FPS选择一个点的子集作为下采样结果。没有FP层,边界框预测网络会直接在这些点上预测。尽管如此,这种采样方法只考虑点之间的相对位置,因此这些幸存的点中大部分都是背景点。换句话说,有许多前景实例无法被检测到。
对于一些远处的实例,目标内部的点可能检测不到,因为这些点的数量远低于背景点的数量。 在统计学上,我们用召回率来说明在采样中幸存的点数量以及该目标实例总的点数的比率。
Feature-FPS:为了维持正样本点并释放掉那些无意义的负样本点,我们在采样过程中,必须既考虑空间距离又考虑每个点的语义信息。由于深度神经网络可以很好的捕捉语义信息,因此我们在FPS中以特征距离为标准,淘汰掉大量负样本点。即便对于远距离目标,也可以很好的捕捉到其正样本点,因为不同目标实例内的点语义特征不同。
然而,如果以语义特征距离为唯一的标准,还会在同一实例中保留许多冗余点。比如对于汽车,车窗和轮子周围的点会有很大不同,二者都会得以保留,但这对回归没有帮助。为了减少冗余并维持多样性,我们在FPS中同时使用空间距离和语义特征距离作为标准,如下:
Fusion Sampling:在SA层中得益于F-FPS,不同的实例中会有大量的正样本点保留下来,然而,由于采样点的总数是固定的,许多负样本点在下采样过程中会被丢弃。这些点不利于边界框的回归,但有利于分类。在SA层的Group阶段,我们需要聚合相邻点的特征,一个负样本点由于无法在其周围找到足够的相邻点,也就无法扩大感受野。这就导致我们的模型在区分正负样本点上遭遇困难,导致分类性能下降。
基于以上分析,我们提出了一种新的融合采样策略—在SA中同时使用F-FPS和D-FPS,既能够保留更多的正样本点用于回归,又能保留足够的负样本点用于分类。
3.边界框预测网络
Candidate Generation Layer:在经过融合采样后,我们分别选取F-FPS和D-FPS中的部分点用于最终的预测。在之前的基于点的方法中,需要再应用一个SA层,包括中心点选取、邻近点提取和语义特征生成。
为了减少计算量并充分利用融合采样的优势,我们提出了CG层。由于D-FPS中的大部分点都是对边界框回归无用的点,因此我们以F-FPS中的点作为初始的中心点。如图2所示:
这些初始中心点在他们相对位置的监督下经过shift操作后变成了候选点,我们用这些点作为SA层中的中心点。接下来我们在一个预设的范围内,从D-FPS和F-FPS的点中寻找候选点周围的点,将它们的语义特征和归一化后的位置作为输入,利用MLP提取特征,最后用于分类和回归。
Anchor-Free Regression Head:如果使用基于锚的预测头,我们要考虑到多重尺度和方向的锚来覆盖各种各样的目标。比如在nuScenes这个数据集中,有十个种类的目标,我们至少需要20个锚,包括10种尺寸和2种方向。为了避免繁琐的设置并使模型轻量化,我们如下设计检测头。
在回归头中,对于每个候选点,我们预测它到相关实例的距离(dx,dy,dz)以及相关实例的尺寸(dl,dw,dh)和方向。由于每个点没有先验方向,我们预先定义Na个等分的方向范围,然后把提议方向放到这些小的范围中,对相对于bin值的残差进行回归。
3D Center-ness Alignment Strategy:在训练过程中,我们需要一种策略来为每个候选点分配标签。对于那些距离目标中心较近的点,会分配更高的中心评分,以它作为中心标签。但目标表面的雷达点,他们的这种标签都很小而且很相似,不足以让我们从点云中区分出好的预测结果。
因此,我们不再直接利用原始点晕,而是借助于监督候选点。距离目标中心更近的候选点会得到更准确的定位结果,因此3D中心标签在这种情况下更容易区分它们。对于每个候选点,我们分两步指定其中心标签。首先用一个二进制值lmask来决定该候选点是否在实例中。接下来进行如下计算:
最终的标签是lmask和lctrness的乘积。
四、SE-SSD:Self-Ensembling Single Stage Detector From Point Cloud
该框架由两个SSD构成,教师SSD和学生SSD。我们在同一个框架下训练这两个部分,使得学生通过优化的样本数据探索更广阔的数据空间,同时通过教师预测的软目标优化自身。在训练时,我们用一个预训练的SSD模型同时初始化学生和教师部分。然后,以点云作为输入,我们分两条路径处理:
(1)教师先通过原始点云生成相对准确的预测结果,之后在预测结果上进行一系列全局变换,将最后的结果作为软目标监督学生网络。
(2)我们在输入点云上施加相同的全局变换操作并进行形状感知的数据优化。我们将优化后的数据作为学生的输入(a)我们的consistency loss将学生的预测结果与软目标进行对齐(b)我们用优化后的数据中的硬目标通过orientation-aware DIoU监督学生网络。
教师和学生SSD的结构:点云首先被体素化,然后用3D稀疏卷积网络SPConvNet提取特征,最后在z轴方向将稀疏的3D特征连接起来变成稠密的BEV特征,然后用BEVConvNet进行特征提取,最后用MTHead进行边界框回归和类别预测。
Consistency Loss:在3D目标检测中,由于距离和不同形式的目标遮挡,锚框中的点云模式会发生显著变化。因此,相同的硬目标会有不同的点模式和特征。相比之下,对于每个训练样本而言,软目标具有更多的信息,帮助我们弥补同一类别的不同数据样本之间的差异。
在计算损失之前,为了获得更高质量的软目标,我们从教室和学生网络中过滤掉那些置信度小于阈值tc的边界框预测结果。接下来,我们计算剩余的教师和学生预测的边界框的IoU,过滤掉那些IoU小于阈值ti的对儿;我们用N和N'分别表示初始和最终的边界框的对数。相比硬目标,经过滤波的软目标笔硬目标更接近学生的预测。
我们使用Smooth-L1损失,因为它公平的对待所有维度的预测结果,公平的在所有维度上进行优化。
Orientation-Aware Distance-IoU损失:在用硬目标监督训练的过程中,一般用Smooth-L1控制边界框回归。然而,对于目标距离太远或者目标相互遮挡的情况,很难从稀疏的点云中获取足够的信息来预测边界框的各个维度。为了更好的利用硬目标进行边界框回归,我们把注意力放在边界框中心以及方向的匹配上。
ODIoU损失可以如下表示:
Shape-Aware Data Augmentation:数据优化是为了提高模型的泛化能力。为了使学生SSD探索到更广阔的数据空间,我们设计了一个形状感知数据优化模块来提高检测器的性能。我们的灵感来源于现实中的目标点云随着遮挡,距离的变化以及目标形状的多样性发生显著变化。我们设计这样一个优化模块,就是为了模仿对数据样本优化后,这些因素将如何影响点云。
这是一个即插即用模块。一开始,我们找到边界框的中心并将中心与边界框的表面连接,形成六个金字塔空间。我们观测到,雷达点云主要分布在表面,我们通过操作这些点的子集,来优化目标点云。
我们分别以随机概率p1,p2,p3进行如下三个操作:(a)随机丢弃:随机选择一个金字塔中的点全部丢弃,模拟目标的一部分被遮挡,帮助网络利用剩余的点推断目标的完整形状。(b)随机交换:在同一场景中随机选择另一个目标,交换两个目标相同金字塔空间的点。我们利用了目标曲面的相似性,增加了目标样本的多样性。(c)随机稀疏:随机选取一个金字塔空间,利用FPS对里边的点进行采样,模拟当目标与传感器距离变化时,点云稀疏性的变化。