点击下方卡片,关注“自动驾驶之心”公众号
ADAS巨卷干货,即可获取
论文作者 | Shengchao Zhou
笔者的个人理解
目前,基于纯视觉的3D感知模型已经取得了非常不错的成绩,其性能指标逐渐向使用激光雷达作为输入的感知模型看齐。但是!虽然纯视觉的感知算法已经取得了非常好的效果,但是由于相机采集到的是2D图像信息,物体在3D坐标系下的深度信息会在相机的成像过程中消失,这就导致纯视觉的感知模型对深度的估计还有待进一步的加强。而现在比较流行的一种技术路线是借助激光雷达传感器采集到的点云信息对视觉模型进行监督;其中一种监督方式就是利用知识蒸馏的思想,让激光雷达模型作为教师模型,视觉模型作为学生模型,利用激光雷达能够更加准确表达物体几何和位置的能力对视觉模型进行跨模态蒸馏监督。
今天介绍的一篇是来自旷视的自动驾驶感知论文,并且中稿了今年的CVPR 2023视觉顶会。该文章的主要贡献点是提出了一种通用的跨模态知识蒸馏框架去提升单模态的感知模型能力,是一篇很不错的将知识蒸馏技术应用到自动驾驶感知任务的论文。
UniDistill算法模型整体结构
由于自动驾驶的车辆上配备了不同的传感器采集数据,如相机采集到的图像数据,激光雷达采集到的点云数据,所以会收集到不同模态的数据表示。而这篇文章提供了一种通用的跨模态蒸馏思路,如下图所示。
![5a23b75e62015ab42dec47e7be14cbaf.png](https://i-blog.csdnimg.cn/blog_migrate/21ad1daa18f0703d8f4b70193afc6d1b.png)
其中图中的(a)和(b)主要是指知识蒸馏中的教师模型和学生模型采用相同的数据模态,如(a)的图像数据,或者(b)的点云数据。而文章的创新点是提出了(c)跨模态蒸馏,可以让激光雷达或者视觉模型分别充当教师或者学生模型进行蒸馏,从而实现了通用意义上的蒸馏框架。而论文中所提出的蒸馏框架整体结构图如下。
![87b4a229f6bde43abe569d94356f43f5.png](https://i-blog.csdnimg.cn/blog_migrate/8645220a07934ceb340a89bf27de831e.png)
其中框架图的上方代表该知识蒸馏网络的教师模型(数据输入可以采用激光雷达的点云数据或者相机采集的图像数据),框架图的下方代表知识蒸馏网络的学生模型(数据输入同教师模型)。
通过整个算法框图可以看出文章的创新点主要包括三部分的蒸馏子模块
Feature Distillation(Low-Level级蒸馏):对应上图中的绿色部分,将教师和学生模型的主干网络提取出来的低级语义特征进行蒸馏,这部分是蒸馏框架中的第一层蒸馏
Relation Distillation(High-Level级蒸馏):对应上图中的蓝色部分,将教师和学生模型的BEV Encoder提取出来的高级语义特征进行蒸馏,这部分是蒸馏框架中的第二层蒸馏
Response Distillation(Response级蒸馏):对应上图中的粉色部分,将教师和学生模型的Head的输出结果特征进行蒸馏,这部分是蒸馏框架中的第三层蒸馏
接下来就详细介绍一下上述三部分蒸馏子模块具体的工作流程~
Feature Distillation(Low-Level级蒸馏)
因为网络模型浅层可以提取到物体较为丰富的语义特征,文章中就将教师和学生模型主干网络提取到的特征进行了Low-Level级的蒸馏,用于对二者的特征进行对齐。论文中也有提到,一种比较直觉的特征蒸馏方法就是进行点对点的特征蒸馏,但是由于不同模态背景之间的差异性将会弱化蒸馏的性能,所以文章中的解决方案是选择只对前景区域进行蒸馏。除此之外,由于大类目标的前景区域要比小类目标的前景区域在BEV空间上占的面积要多,从而会导致模型更多的关注对大类目标的前景蒸馏,而忽略对小类目标蒸馏的学习,所以文章中的解决方案是无论是大类目标还是小类目标,都只选择九个关键点(对应整体结构中的九个红色的点)进行蒸馏,从而使得模型进行均等的学习。
所以,针对上述提到的不同模态背景区域差异以及不同类目标对蒸馏的贡献度不同的问题,论文针对Feature Distillation蒸馏子模块提出的蒸馏损失如下
![b91ca956a96e6f610878d68fbbe0e6dd.png](https://i-blog.csdnimg.cn/blog_migrate/32fd14c0fc1166045323aa374584d569.png)
其中公式中的代表教师的Low-Level级的特征,代表学生模型的Low-Level级的特征,则代表每个目标的九个关键点。
但是作者进行实验发现,由于教师模型和学生模型的模态是不相同的,从而导致两种模态的特征之间存在语义gap问题,弱化最终的蒸馏学习效果。在这里作者是采用了1x1的卷积层充当Adaption Layer来缩短两种模态间的语义gap。注意:这里提到的Adaption Layer只会在训练的过程中用到,模型在推理的过程中就会去除掉Adaption Layer。
Relation Distillation(High-Level级蒸馏)
由于深层网络提取到的特征可以更好的表述模型对场景内容的理解,这对于后续进行3D的检测至关重要,文章中就将教师模型和学生模型BEV Encoder提取到的特征进行了High-Level级的蒸馏,从而实现二者特征的对齐。由于同样是进行特征级的蒸馏,也会面临着Feature Distillation中涉及到的背景蒸馏的歧义性以及不同大小的物体BEV特征贡献程度出入较大的问题,所以作者这里还是采用了Feature Distillation中的解决方案,只对前景区域进行蒸馏。同时由于此处已经对High-Level的特征进行蒸馏,所以作者选择对教师和学生模型的特征关系矩阵进行蒸馏学习,其中特征关系矩阵的计算公式如下:
![caebdfda57f90355b231ea2221c9a784.png](https://i-blog.csdnimg.cn/blog_migrate/f86283483fd1135c9207f5b2784c00d3.png)
其中公式中的指的是余弦相似性函数,代表学生模型的前景特征,用于计算九个关键点之间的联系。在计算得到关系矩阵之后,Relation Distillation子模块的蒸馏损失如下
![71f9284407fd0c3fab609c78ae02c520.png](https://i-blog.csdnimg.cn/blog_migrate/2c34d7172d1a3c1c0738114ad49989e9.png)
在这里同样会出现Feature Distillation中提到的不同模态之间的语义gap问题,所以作者还是采用了一个另外的1x1卷积充当Adaption Layer缓解不同模态之间的语义差距。
Response Distillation(Response级蒸馏)
为了使最终学生模型的预测结果可以和教师模型的结果保持近似,论文里设计了一个Response Distillation级的蒸馏学习模块。在学生和教师模型得到各自的High-Level级的特征之后,会利用各自模型的3D检测头输出分类任务的分类特征图以及回归任务的回归特征图。这里将分类特征图抽象为,回归特征图抽象为。其中和分别代表两个任务对应需要预测结果的数量。为了进一步的得到分类特征图在每个单元格位置的响应,论文中是对每个单元格沿着通道方向上去了max,对应公式如下
![6da37421554acef5b17a8bb4447d3332.png](https://i-blog.csdnimg.cn/blog_migrate/5a659ea2fa0d9079bff8af4c831e064c.png)
并将聚合后的分类特征图与回归特征图沿着通道维度合并在了一起形成。在进行蒸馏时,也是考虑到了教师模型和学生模型模态不一致出现的背景歧义性问题,Response级的蒸馏同样也是对前景区域进行蒸馏。但与前两个模块Feature Distillation以及Relation Distillation不同的地方是,Response Distillation不再是选择九个关键点进行前景蒸馏,而是选择前景区域的高斯Mask进行蒸馏,所以Response Distillation的蒸馏损失如下
![f54da66ef4e471683c11e1ddc3fe197a.png](https://i-blog.csdnimg.cn/blog_migrate/1be594634e7d4340c1c3234c9a6bfd1d.png)
其中代表教师模型的分类+回归特征图,代表学生模型的分类+回归特征图,代表前景区域目标对应的高斯分布图。
论文实验结果
首先给出UniDistill和其他自动驾驶感知算法的比较实验,实验中给出了UniDistill在不同模态的情况下的nuScenes的test数据集的结果。
![95d20d9964f2978dd244e54cd6a9b6fd.png](https://i-blog.csdnimg.cn/blog_migrate/abc2f65676983cbedd2e04b6bda7feff.png)
其中代表激光雷达的点云数据,代表相机的图像数据。通过实验结果可以看出相比于其他的蒸馏算法,无论学生模型使用哪种模态,教师模型通过UniDistill框架均能提高学生模型的各类性能指标,从而凸显了UniDistill框架的通用性能。
同时针对上文提到的,为了缩减学生模型和教师模型两类不同模态之间的语义gap而引入的adaption layer,作者也进行了相关的消融实验,结果如下图所示。
![1ddb24b77349f363094c717bf20217fe.png](https://i-blog.csdnimg.cn/blog_migrate/cf5720abee693ea2f88a3226eb419ad6.png)
通过实验结果可以看出,当采用了1x1的卷积层充当adaption layer来缓解不同模态语义的gap之后,教师模型可以更加准确的指导学生模型的学习过程(无论是Low-Level级的蒸馏还是High-Level级的蒸馏),除此之外,论文中还使用了训练过程中的检测损失,进一步的说明adaption layer的重要作用。
![4f749d24bd0c267984c0d64beb65486f.png](https://i-blog.csdnimg.cn/blog_migrate/d9f8408c0edea0255a738d9620a4175d.png)
可以较为明显的看出,在采用了adaption layer后,学生模型的学习过程更加容易,无论是High-Level级的蒸馏还是Low-Level级的蒸馏,都有更低的代价损失。
最后论文作者也放出了使用了UniDistill框架的检测结果对比图,如下。
![ef53e47962dbea02d3d3541617c7502a.png](https://i-blog.csdnimg.cn/blog_migrate/4197c1264c88d3a994f3ac15c91faf9a.png)
其中图中的红色框代表检测结果,绿色框代表真值结果。可以看出,通过教师模型引导学生模型的学习后,蒸馏后的学生模型要明显优于未经教师模型指导的模型,有更多准确的检测结果,同时具有更少的虚警。
总结
目前,虽然基于纯视觉的自动驾驶感知算法已经取得了非常大的进步,但是由于相机自身的成像机理,纯视觉的检测模型对于深度的估计依旧是一个痛点问题。而激光雷达的点云数据可以非常好的描述一个物体的空间和几何结构,所以激光雷达作为教师模型,视觉图像作为学生模型的蒸馏路线是一个比较火的研究方向。本文就是对旷视的一项发表在CVPR 2023的跨模态蒸馏论文进行了介绍,希望对大家有所帮助。
文章的链接和官方开源仓库链接如下:
论文链接:https://arxiv.org/abs/2303.15083
代码链接:https://github.com/megvii-research/CVPR2023-UniDistill
① 全网独家视频课程
BEV感知、毫米波雷达视觉融合、多传感器标定、多传感器融合、多模态3D目标检测、点云3D目标检测、目标跟踪、Occupancy、cuda与TensorRT模型部署、协同感知、语义分割、自动驾驶仿真、传感器部署、决策规划、轨迹预测等多个方向学习视频(扫码即可学习)
![03c72065c183eb49b3b283eb6f7b4b6b.png](https://i-blog.csdnimg.cn/blog_migrate/7123a9e35440691035bc931b958784d6.png)
② 国内首个自动驾驶学习社区
近2000人的交流社区,涉及30+自动驾驶技术栈学习路线,想要了解更多自动驾驶感知(2D检测、分割、2D/3D车道线、BEV感知、3D目标检测、Occupancy、多传感器融合、多传感器标定、目标跟踪、光流估计)、自动驾驶定位建图(SLAM、高精地图、局部在线地图)、自动驾驶规划控制/轨迹预测等领域技术方案、AI模型部署落地实战、行业动态、岗位发布,欢迎扫描下方二维码,加入自动驾驶之心知识星球,这是一个真正有干货的地方,与领域大佬交流入门、学习、工作、跳槽上的各类难题,日常分享论文+代码+视频,期待交流!
![35f8d2e571b4caead302f6e38a325c2f.png](https://i-blog.csdnimg.cn/blog_migrate/f05bc8688dfd0f81d225d77950e6c98c.png)
③【自动驾驶之心】技术交流群
自动驾驶之心是首个自动驾驶开发者社区,聚焦目标检测、语义分割、全景分割、实例分割、关键点检测、车道线、目标跟踪、3D目标检测、BEV感知、多模态感知、Occupancy、多传感器融合、transformer、大模型、点云处理、端到端自动驾驶、SLAM、光流估计、深度估计、轨迹预测、高精地图、NeRF、规划控制、模型部署落地、自动驾驶仿真测试、产品经理、硬件配置、AI求职交流等方向。扫码添加汽车人助理微信邀请入群,备注:学校/公司+方向+昵称(快速入群方式)
④【自动驾驶之心】平台矩阵,欢迎联系我们!