网站制作上海市,seo推广公司招商,卖服务器网站源码,苏宁易购的网站建设 论文地址#xff1a;https://arxiv.org/abs/2307.08209 项目主页#xff1a;https://a-suozhang.xyz/ada3d.github.io/ 01. 背景与动因
3D检测(3D Detection)任务是自动驾驶任务中的重要任务。由于自动驾驶任务的安全性至关重要(safety-critic)#xff0c;对感知算法的延… 论文地址https://arxiv.org/abs/2307.08209 项目主页https://a-suozhang.xyz/ada3d.github.io/ 01. 背景与动因
3D检测(3D Detection)任务是自动驾驶任务中的重要任务。由于自动驾驶任务的安全性至关重要(safety-critic)对感知算法的延迟与准确性都有很高的要求然而由于车载计算平台一般硬件资源受限由于价格和能耗的限制典型平台为边缘嵌入式计算平台相较于常用的消费级GPU计算与显存资源都更为受限制。为实现上述需求感知模型的效率存在提升的需求。
基于稀疏体素(Sparse Voxel)的3D检测方法因为其优异性能获得了广泛关注。通过将空间分为规则的小方格(体素3D的像素)将不规则点云转化为规整的稀疏体素表征采用3D稀疏卷积算子对其进行特征提取。 然而其存在着硬件效率相对较低的问题如下图所示即使3D稀疏卷积只有原本稠密卷积的1/7计算量却需要1.3x的执行时间。 典型的基于体素的3D检测器的框架如下所示主要包含两大部分分别在3D与2D域(Domain)进行处理。首先将点云体素化为体素表征采用3D稀疏卷积的3D Backbone提取特征。经过一个3D转2D的投影在Z轴做Average Pooling转化为稠密的2D BEV(Bird-Eye-View 表征)。 研究者发现除了现有3D感知模型效率优化工作所关注的模型冗余性之外数据冗余性是提升3D感知方法效率的一个重要方面。
针对3D体素空间存在着大量的冗余背景点以及接近传感器中心过稠密的冗余点针对2D鸟瞰图(BEV)空间由于其由3D体素投影得到其中大多数80%以上位置的像素值为0。在现有方法中大量的计算和存储被浪费在了这些冗余的数据之中。
研究者进行了验证实验以说明3D检测任务中输入冗余性如下图所示。当随机从输入点云中删除约30%的点时蓝色曲线仅造成了小于0.5的mAP损失。若从不在ground-truth bounding box中删除点(橙色曲线删除的点可近似看做对3d检测任务无信息损失)及时丢失了70%的点仍然没有明显的精度损失。以上实验结果展示了输入点云存在较大的冗余性有压缩与优化空间。 02. 方法描述
基于此动因提出了基于动态推理的效率优化框架 - Ada3D让模型在推理中识别出冗余部分并自适应的跳过其计算存储以减少模型计算资源优化。在无精度损失的情况下Ada3D方法能减少40%的3D体素与80%的2D像素获得等效约5x的计算量(FLOPs)与内存(Memory)优化。并在实际硬件测试中展示约1.5x的延迟(Latency)优化与2.2x的峰值内存(Peak Memory)优化。 论文提出的Ada3D动态推理框架主要包含以下3个部分方法框架图见下
(1) 一个共享的轻量化BEV空间像素重要性预测器
(2) 考虑点云密度先验的空间过滤方法
(3) 保持稀疏性的批归一化 2.1 BEV空间重要性预测器 (BEV-space Importance Predictor)
我们在模型的3D骨干与2D骨干网络的多个位置应用了一个共享的BEV空间的预测器该预测器将模型的特征映射到每个像素的相对重要性程度。如下图所示我们采用了CenterPoint模型中的基于物体中心的热力图Center-based Object Heatmap来作为预测器需要拟合的目标。以每个ground-truth bounding box的中心为中心在周围以球状高斯函数渲染。通过学习预测器能够从输入特征中识别出“出现识别目标”的概率。预测器由5层的高效组卷积(Group Convolution)组成且处理低分辨率的特征整个预测器的计算代价少于原本模型的1%仅引入了极少的额外计算。 该重要性预测器能够较好的预测出各输入点的重要性程度如下图所示橙色代表着预测器输出置信度较高的区域基本识别出了Boudning Box周围的点。 2.2 考虑点云密度先验的空间过滤方法 (Density-guided Spatial Filtering)
激光雷达所产生的点云有着独特的特性如下图左图所示距离传感器中心近处的点更加稠密而远处的点则较为稀疏。该现象可能会导致预测器更倾向于对近处的点给出更高的置信度预测从而忽视远处的物体。因此我们引入了基于密度先验的空间过滤方法同时考虑预测器分数与点云的密度以补偿远处稀疏部分的点。 引入了密度先验后能够显著的提升空间过滤的准确度。以下图为例在左下角重要性预测器的输出中远处较为稀疏的Box1与Box5并无较高的置信度而经过密度矫正之后的热力图中能够识别出Box1与Box5。 定量来看对比引入密度先验前后所丢弃输入的“在box中的比例”密度先验能够减少错误丢弃box中的点进而减少精度损失。 2.3 保持稀疏性的批归一化 (Sparsity-Preserving Batch Normalization)
在基于体素的3D检测器中2D的BEV特征是由稀疏的3D体素所投影得到。因此很大部分的像素点的位置是背景具有0值如下图中的蓝色部分。但是经过第一次批归一化层之后特征图将失去稀疏度。为保持2D特征图的稀疏图以进行稀疏加速我们对原本的批归一化进行了改进设计了一种“维持稀疏性的批归一化方法”(Sparsity-preserving Batch Normalization),跳过了归一化中减均值的操作能够在不减少性能的前提下维持2D特征图的稀疏度。 02. 实验分析
3.1 算法加速比分析
我们在KITTInuScenesONCE等公开数据集上测试了Ada3D的加速效果。如下图所示: 在KITTI数据集上当加速策略较为保守时(Ada3D-A)甚至能提升模型的性能。
在无精度损失情况下(Ada3D-B)能获得约5倍的计算和存储(FLOPs/Memory)优化。在少量精度损失(Ada3D-C, 1mAP)下能够获得约一个数量级(10x)的计算存储优化。 3.2 硬件效率分析
除了理论加速比之外我们面向Nvidia GPU平台对Ada3D算法进行了实测。测试环境为RTX3090CUDA-11.1SPConv v2.2.6 Gather Scatter GEMM dataflow。如下图所示从硬件测试中我们能归纳出以下结论 对于voxel-based 3d detector,加速2D部分与加速3D部分都很重要2D BEV bakcbone的实际耗时与内存消耗占比比3D部分更高。 理论的计算存储加速比(5x)与实际的硬件加速比存在较大的gap(1.5x/2.2x)。
针对该现象我们进一步分析其原因在于稀疏卷积的加速比与稀疏比的增加并不线性。当稠密度较高时候(20%),采用稀疏卷积相比稠密计算加速比不高。在3D检测模型场景中3D部分数据由于已经有较高的稀疏度因此稀疏比增加能近乎线性的反映到实际加速比。而2D部分由于是从全稠密增加稀疏度加速比增长比稀疏度增长更慢。 3.3 应用分析
Ada3D方法关注压缩数据层面冗余性与关注模型冗余性的压缩方法可进行组合。如下图所示Ada3D可以进一步对SPVNAS所搜索出的高效模型或者是新颖设计的全稀疏模型进行进一步的冗余性压缩。 04. 总结
针对3D感知任务中输入数据存在冗余性的问题我们提出了基于动态推理的框架Ada3D能够有效的在模型推理过程中通过去除冗余的输入数据减少模型的计算和存储消耗。在典型的基于体素的3D检测器中在不损失性能的前提下我们能够去除约40%的3D体素与80%的2D像素实现约5x的flops与memory优化并在GPU设备上获得了1.5倍的延迟与2.2倍的峰值内存的优化。Ada3D方法能够与现有的模型压缩方法组合且在专用硬件平台上有更高的效率优化空间。
有关Ada3D的更多信息请关注我们的项目网站https://a-suozhang.xyz/ada3d.github.io/。有关Ada3D的后续工作与其他算法(LLM,Diffusion)的软硬件协同优化方法请关注我们的实验室主页Home (欢迎访问同学交流学习) 作者赵天辰 关于TechBeat人工智能社区
▼ TechBeat(www.techbeat.net)隶属于将门创投是一个荟聚全球华人AI精英的成长社区。 我们希望为AI人才打造更专业的服务和体验加速并陪伴其学习成长。 期待这里可以成为你学习AI前沿知识的高地分享自己最新工作的沃土在AI进阶之路上的升级打怪的根据地 更多详细介绍TechBeat一个荟聚全球华人AI精英的学习成长社区