点击上方“3D视觉工坊”,选择“星标”
干货第一时间送达
作者丨元气满满的打工人
来源丨CV研习社
导读:在自动驾驶领域,激光雷达由于其稳定的性能且不易受外界环境的影响,一直是自动驾驶汽车的主要传感器之一,各种基于点云的目标检测方案不断提出,但现有的方法在精度和速度方面都欠佳。今天小编将为大家分享一篇名为:SE-SSD: Self-Ensembling Single-Stage Object Detector From Point Cloud。在精度和速度上都达到了SOTA性能,让我们一起来学习一下吧。
Part 01
什么是知识蒸馏
知识蒸馏:
这一概念是Hinton在Distilling the Knowledge in a Neural Network这一论文中首次提出。知识蒸馏(Knowledge Distilling)是模型压缩的一种方法,是指利用已经训练好的一个较为复杂的模型(Teacher),来指导一个较轻量的模型(Student)。具体来讲,知识蒸馏是将复杂模型中的dark knowledge迁移到轻量化的模型中。因为一般来说复杂模型参数量较大,模型具有强大的特征表现能力,而简单模型的参数小,可以说浓缩的都是精华。因此运用知识蒸馏可以在有效减少模型大小和计算资源的同时,尽量使轻量化Student模型的准确率逼近复杂的Teacher模型,甚至是超越。从而使模型达到高精度和快速度的效果。
Part 02
知识蒸馏与迁移学习有何异同
知识蒸馏一般是在同一数据集上,将一个网络的中的知识转移到另一个网络中,二个网络的结构既可以相同也可以不同,最后让轻量化网络的结果接近于复杂网络的性能。同时在网络知识迁移的过程中,可以将多个网络学到的知识转移到一个网络中,使轻量化网络具有emsemble的结果。
迁移学习一般在不同的数据集上,可以在数据集有关联的任务中,选择更大的数据集进行模型的预训练,使模型具备出色的泛化能力。再将学到的参数迁移到目标数据集下进行辅助训练,使得模型可以不使用随机初始化来获得更快的网络收敛,同时也能从预训练模型中获得相关的参数。迁移学习的二个网络之间通常具有相同的主体网络结构。
Part 03
SE-SSD网络的提出
SE-SSD中提出了一种基于自集成单阶目标检测器的室外点云3D目标检测的方法,通过采用知识蒸馏的方法进行模型的优化,在不引入额外的计算量的同时,提出了一个准确而高效的点云3D目标检测模型。网络结构图如下图所示:
网络结构图
在网络结构图中,有绿色和蓝色二条处理路径,下面是二条处理路径的介绍。
-
第一条路径(图中蓝色箭头表示),将原始的点云数据输入Teacher 网络并产生较为精准的预测。随后对预测的结果进行全局变换,转换结果作为soft target来对Student网络进行监督。
-
第二条路径(图中绿色箭头表示),通过与第一条路径相同的全局变换加上提出的形状感知数据增强策略来扰乱相同的输入。然后,将增强后的数据输入到Student网络并使用一致性损失来进行训练,使Student网络的预测和soft target一致。Student网络使用hard target(即标签数据)来监督Student网络预测的方向感知距离损失。
SE-SSD网络的创新点:
-
SE-SSD网络的设计中包含二个相同结构的SSD模型,即Teacher和Student SSD模型。文章作者设计了一个基于IoU-based的匹配策略,以此来过滤Teacher模型预测的soft target,并通过使用一致性损失来使 Teacher模型的预测和Student模型的预测保持一致。
-
为了更好的利用回归bounding boxes,作者设计了一个方向感知的距离IoU损失,即ODIoU,来监督Student模型预测的bbox的中心和方向。
-
为了提高模型的性能,使Student模型能够探索更大的数据空间,设计了一个形状感知的数据增强方案。
SE-SSD的性能表现:
作者在KITTI数据集上进行了实验,结果表明SE-SSD具有SOTA的性能表现,在KITTI Cars Moderate数据集下的3D目标检测和BEV检测二大任务下,目前均排名第一。且Easy和Hard数据集下也都排名前二。SE-SSD的总体推断时间在TITAN Xp GPU下只有30.56ms。因此,网络整体在速度和精度上的表现都较为出色。
Part 04
SE-SSD网络的具体实现
SE-SSD网络的训练的二个SSD模型具有相同的架构,在训练时使用上面提到的一致性损失和方向感知距离损失这二个损失函数来优化Student网络,并对Student网络使用标准指数移动平均(EMA)来更新Teacher网络。因此,Teacher网络可以从Student网络那里获得蒸馏知识,并产生Soft target来监督Student网络,最终使Student网络具有出色的性能表现。
文章提出了2个损失函数和一个数据增强的策略,将分别进行介绍。
Consistency Loss
在3D物体检测中,与2D目标检测不同,预定义的anchor中的点云可能因为距离或目标的遮挡等因素,会有较大的不同。因此,同一hard target的样本点云和特征可能会有很大的不同。相比较之下,每个训练样本的soft target可以提供更多的信息,也有助于揭示同一样本数据之间的差异。基于这一原因,文章提出了使用相对精准的Teacher预测作为soft target,并提出了一致性损失来对Student网络进行优化。
在计算一致性损失前,文章设计了一种有效的IoU-based的匹配策略,目的是在户外稀疏的点云中匹配非轴对齐的teacher和Student box。匹配过程如下:
(1) 为了获取高质量的soft target,首先过滤掉Teacher和Student预测中置信度小于阈值的bbox,从而减少部分一致性损失的计算量。
(2) 计算第一步过滤完剩余的Teacher和Student 预测的bbox的IoU,并设定阈值过滤掉匹配度较低的bbox。通过这二次过滤后,只保留Teacher和Student中高匹配的bbox。
(3) 最后,对每一个Student的bbox,将与具有最大IoU的Teacher的 bbox进行匹配,以增加soft target的置信度。
与hard target相比,soft target的优势在于,其更加接近Student网络的输出。因此软目标可更好的引导Student网络对预测进行微调,减少梯度方差,从而更好的训练。
文章中使用Smooth-L1 损失作为bbox的回归损失,因为该损失可以均匀的对待所有的维度,定义如下:
对于分类损失,定义如下:
结合回归损失和分类损失,整体的一致性损失定义如下:
Orientation-Aware Distance-IoU Loss
在有监督的hard target训练中,经常会采用Smooth-L1损失来约束bbox的回归。然而,在室外的场景中由于远距离和遮挡,很难从稀疏的点云中获得足够信息来精准的预测bbox的所有维度。为了更好地利用回归边界盒的硬目标,文章设计了方向感知的距离iou损失(ODIoU),以更加关注预测的bbox与ground-truth的bbox之间的box中心和方向的对齐,如下图所示:
文章对预测的三维中心和ground-truth bbox之间的距离施加一个约束,以最小化中心不对齐。与此同时,对预测的BEV视角设计了一种新的方位约束,旨在进一步减小预测的BEV视角与ground-truth box的方位差,ODIoU的定义如下:
在bbox分类(L cls)和方向分类(L dir)分别使用Focal loss和交叉熵损失。因此,Student的总损失定义如下:
Shape-Aware Data Augmentation
数据扩充对提高模型的泛化能力非常的重要,作者分析发现hard target中的点云在实际情况中由于遮挡、距离变化和物体形状的多样性等因素差异很大。因此,本文设计了形状感知数据增强方案来模仿在数据增强时点云如何受到这些因素的影响。
该数据增强的方案是一个即插即用的模块。首先,对于点云中的每个对象,找到它的truth bbox的中心,并将中心与顶点连接起来,形成金字塔体积,将目标点分成六个子集。由于雷达的point主要分布于物体的表面,划分就像物体拆卸,增强方案通过像拆卸零件一样操纵这些划分的点子集来有效地增强每个物体的点云。数据增强的具体操作如下图所示:
具体而言,使用随机概率p1,p2,p3执行3个操作:
-
在随机选择的金字塔中随机删掉所有点(如下图左上所示蓝色点),模拟物体被部分遮挡,以帮助网络从剩余的点推断出完整的形状。
-
随机交换,在当前场景中随机选择另一个输入目标,并将点子集(绿色)与另一个输入对象的同一个金字塔中的点子集(黄色)交换,从而利用目标间的表面相似性来增加目标样本的多样性。
-
使用最远点采样算法,在随机选择的金字塔中的子采样点进行随机稀疏化,模拟由于LiDAR距离变化引起的点的稀疏变化(下图左下所示)。
此外,在形状感知增强之前,我们对输入点云进行了一组全局变换,包括随机平移、翻转和缩放。
Part 05
实验
作者在KITTI数据集下进行了实验,并同现有的一阶段和二阶段的方法进行了比较,结果如下图所示:
SE-SSD检测在KITTI验证集下的检测效果的可视化如下图所示:
Part 06
总结
在本文中,作者提出了一种用于户外的3D点云的自集成单阶段目标检测器。在文中作者提出使用知识蒸馏和soft target并制定一致性损失来优化SE-SSD,并提出ODIoU来监督Student SSD预测的bbox的中心和方向,同时作者提出了一个即插即用的数据增强的方法。文章提出的方法具有较强的优越性,在速度和精度上表现都较为出色,值得我们研究学习。
本文仅做学术分享,如有侵权,请联系删文。
3D视觉精品课程推荐:
1.面向自动驾驶领域的多传感器数据融合技术
2.面向自动驾驶领域的3D点云目标检测全栈学习路线!(单模态+多模态/数据+代码) 3.彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进 4.国内首个面向工业级实战的点云处理课程 5.激光-视觉-IMU-GPS融合SLAM算法梳理和代码讲解 6.彻底搞懂视觉-惯性SLAM:基于VINS-Fusion正式开课啦 7.彻底搞懂基于LOAM框架的3D激光SLAM: 源码剖析到算法优化 8.彻底剖析室内、室外激光SLAM关键算法原理、代码和实战(cartographer+LOAM +LIO-SAM)
9.从零搭建一套结构光3D重建系统[理论+源码+实践]
10.单目深度估计方法:算法梳理与代码实现
重磅!3DCVer-学术论文写作投稿 交流群已成立
扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。
同时也可申请加入我们的细分方向交流群,目前主要有3D视觉、CV&深度学习、SLAM、三维重建、点云后处理、自动驾驶、多传感器融合、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流、ORB-SLAM系列源码交流、深度估计等微信群。
一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。
▲长按加微信群或投稿
▲长按关注公众号
3D视觉从入门到精通知识星球:针对3D视觉领域的视频课程(三维重建系列、三维点云系列、结构光系列、手眼标定、相机标定、激光/视觉SLAM、自动驾驶等)、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答五个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近4000星球成员为创造更好的AI世界共同进步,知识星球入口:
学习3D视觉核心技术,扫描查看介绍,3天内无条件退款
圈里有高质量教程资料、答疑解惑、助你高效解决问题
觉得有用,麻烦给个赞和在看~