点击下方卡片,关注“自动驾驶之心”公众号
ADAS巨卷干货,即可获取
论文作者 | 自动驾驶Daily
编辑 | 自动驾驶之心
写在前面&笔者的个人理解
传统方法通常依赖密集、规则的网格表示,这通常会导致过多的计算需求和小对象空间细节的丢失。OctreeOcc是一个无丢失重要信息的3D占用预测框架,它利用八叉树表示自适应地捕获3D中有价值的信息,提供可变的颗粒度来适应不同大小和复杂性的对象形状和语义区域。特别是,结合了图像信息来提高初始八叉树结构的准确性,并设计了一种有效的校正机制来迭代地细化八叉树结构。通过广泛的评估表明,OctreeOcc不仅在占用预测方面超越了最先进的方法,而且与基于密集网格的方法相比,计算开销减少了15%-24%。
![4312a175391c8d3673d07f2b0ae11449.png](https://img-blog.csdnimg.cn/img_convert/4312a175391c8d3673d07f2b0ae11449.png)
OctreeOcc的创新点核心
1.引入了基于多颗粒度八叉树查询的3D占用预测框架OctreeOcc
通过预测八叉树结构为不同区域提供不同的建模颗粒度,在保留空间信息的同时减少了需要建模的体素数量,从而减少了计算开销并保持了预测精度 从图1中可以看出,(a)表明语义类别只占空间的一小部分,建模空区域密集地影响计算效率。(b)和(c)证明了八叉树表示的优越性,我们可以对不同尺度的对象或空间应用不同的粒度,这减少了计算开销,同时保留了空间信息。半透明区域代表空体素
2.开发了语义引导的八叉树初始化模块和迭代结构校正模块
将语义信息作为初始化八叉树结构的前身。随后,我们迭代更新结构,确保与场景更准确地对齐的持续校正
OctreeOcc重点解析
![b378400e4de4e34119e28e5b137164d0.png](https://img-blog.csdnimg.cn/img_convert/b378400e4de4e34119e28e5b137164d0.png)
1. 图像特征提取(Image Backbone)
使用ResNet101-DCN作为backbone,从多视角图像中提取多尺度特征,用于后续模块。
2. 密集查询初始化(Dense Query Initialization)
八叉树初始化模块将八叉树转换为稀疏八叉树查询Qoctree:
A:稀疏和多颗粒度的八叉树查询
创建灵活的体素表示,以适应不同尺度的语义区域,通过预测八叉树掩码来启动,这个预测八叉树掩码Mo是获取八叉树结构的关键元素,促进了八叉树到Qoctree的转换:
![e08d56dcbd4fef4159daffa0eb6d9406.png](https://img-blog.csdnimg.cn/img_convert/e08d56dcbd4fef4159daffa0eb6d9406.png)
其中L=1,2, . . . , −L 1,八叉树掩码表示每个级别的每个体素分裂成八叉的可能性。这里,L代表八叉树的深度
B:确定八叉树的层次结构
根据查询选择比例α和八叉树掩码Mo,确定八叉树的层次结构,即在每个层级上需要保留或分裂的查询位置。α控制每个层级的分裂程度。
C:将密集查询转换为稀疏和多颗粒度的八叉树查询
在每个层级上,使用平均池化下采样密集查询Q_dense,只保留叶查询(不需要继续分裂的查询)。最终获得八叉树查询Q_octree。
D:将稀疏的Q_octree解码回密集表示Q_dense
通过追踪每个查询的八叉树坐标,可以方便地将稀疏的Q_octree解码回密集表示Q_dense,以匹配场景占用预测的输出形状。
3. 语义导向的八叉树初始化(Semantic-Guided Octree Initialization)
由图像语义驱动的八叉树初始化方法,可以产生更准确的初始八叉树结构
A:图像的语义分割结果(I_seg)
使用UNet对输入多视角图像进行语义分割
B:对采样点Pi的网络中心位置进行投影
对于每个占用查询点,投影到图像分割结果上,根据投影的语义类别设定查询点的分裂概率。例如投影到前景类别时分裂概率为1,采样点pi与其对应的2D参考点(uij,vij)在第j个图像视图上的投影公式为:
![2209bf431c75f2fe40c38825aeed56ea.png](https://img-blog.csdnimg.cn/img_convert/2209bf431c75f2fe40c38825aeed56ea.png)
其中πj(pi)表示第j个摄像机视图中位置pi处的第i个采样点的投影
C:为投影到不同语义类别的体素分配了不同的权重
在获得每个体素的初始置信度后,我们将其下采样到不同的八叉树级别以制定初始八叉树掩码,根据掩码,例如选择前20%和60%置信度查询作为父查询,其余为叶查询,构建初始的稀疏八叉树表示
4.八叉树编码器(Octree Encoder)
编码后的八叉树查询为结构优化提供了额外信息,使预测的八叉树结构能够动态调整
A:时空注意力(Spatial-Temporal Attention)
采用高效的可变形注意力用于图像交叉注意力(ICA)和时间自我注意力(TSA)
图像交叉注意力ICA:
图像交叉注意力机制旨在增强多尺度图像特征和八叉树查询之间的交互。对于八叉树查询q,我们可以获取其中心的3D坐标(x, y,z)作为参考点
然后我们将3d点投影到图像并执行可变形的注意:
![40a39b4bdc98949bc723094753a5543d.png](https://img-blog.csdnimg.cn/img_convert/40a39b4bdc98949bc723094753a5543d.png)
其中N表示相机视图,m索引参考点,M1是每个查询的采样点总数。Fn是第n个相机视图的图像特征,DA代表可变形注意力。
时序自注意力TSA:
给定历史八叉树查询Qt−1,通过自我意识车辆运动将其与当前八叉树查询Qt对齐。为了降低计算成本,采用了与ICA类似的操作。
给定八叉树查询:
特征:
和共同响应坐标p=(x,y,z)的单个查询:
![b8141a051f3508181611f5d93a05f069.png](https://img-blog.csdnimg.cn/img_convert/b8141a051f3508181611f5d93a05f069.png)
其中K表示注意力头的数量,M2表示采样点的数量,Wk和Wm是学习权重,Akm表示归一化注意力权重,p+Δpkm表示3D空间中可学习的采样点位置。该特征是通过该位置的体素特征的三线性插值计算的。
B:迭代结构校正(Iterative Structure Rectification
将当前八叉树结构划分为高置信和低置信区域。对低置信区域,利用编码后的稠密表示预测新结构与原结构融合得到校正后的结构。1.将之前预测的八又树结构划分为高置信区域和低置信区域。高置信区域直接保留不变。
2.对低置信区域先将当前的八叉树查询解码为密集表示,然后在每个八叉树层级上下采样得到密集特征表示。
3.提取低置信区域的密集特征用MLP预测这些区域的新八又树分裂概率。
4.将MLP预测的新概率与原先低置信区域的概率做加权融合,得到校正后的新概率。
5.根据新概率选择置信Top K%的位置作为真正需要分裂的位置生成当前层级的新结构。
6.将新结构与高置信区域直接保留的结构拼接成为当前层级校正后的新结构。
通过这种迭代校正,八叉树结构能够动态调整,从而提高结构预测的准确性,更好地表示场景。
C:损失函数(Loss Function)
![bb90663397fc3c155a7df8d8fb64ced4.png](https://img-blog.csdnimg.cn/img_convert/bb90663397fc3c155a7df8d8fb64ced4.png)
1.Focal Loss (Lfocal):处理类别不平衡的focal loss。2.Lovasz-softmax Loss (Lls): Lovasz hinge loss 的一个变种。3.Dice Loss (Ldice):Dice 系数的损失函数。4.尺度一致性损失(Lgeo_scal, Lsem_scal):监督几何和语义的Prediction不同尺度之间的一致性。5.八叉树损失(Loctree): 用focal loss 监督八叉树结构的预测。
总结
纯视觉的3D占用预测性能对比
![3111e7be75ec8dc36e05c9e576a68684.png](https://img-blog.csdnimg.cn/img_convert/3111e7be75ec8dc36e05c9e576a68684.png)
八叉树结构校正的图示。左图显示最初预测的八叉树结构,右图描述迭代结构校正模块后的八叉树结构。很明显,预测的八叉树结构在校正模块之后变得更加符合物体的形状
![11d7de0546013a6d62ca29a7a0422382.png](https://img-blog.csdnimg.cn/img_convert/11d7de0546013a6d62ca29a7a0422382.png)
第一行显示输入的多视图图像,而第二行显示PanoOcc、FBOCC、OctreeOcc方法和地面实况的占用预测结果
![4f2e09c331c94a5588748a83e7c96127.png](https://img-blog.csdnimg.cn/img_convert/4f2e09c331c94a5588748a83e7c96127.png)
结论
解决了传统密集网格表示在理解3D场景中的局限性。OctreeOcc对八叉树表示的自适应利用能够捕获具有可变颗粒度的有价值信息, 满足不同大小和复杂性的对象。广泛的实验结果证实了OctreeOcc在3D占用预测中获得最先进性能的能力, 同时同时减少了计算开销。
附录
A:语义引导的八叉树初始化(Semantic-Guided Octree Initialization)
使用UNet模型对图像进行语义分割,得到每幅图像的语义分割结果。
通过投影occupancy的ground truth到图像平面,为UNet得到图像语义分割的标签进行监督训练。
离线生成语义分割结果,以避免训练时对occupancy预测模型的影响。
对每一个查询点,投影到生成的语义分割结果图上。如果投影到地面像素(driveable surface等),分裂概率加0.1;如果投影到背景像素,加0.5;如果投影到前景像素,加1.0。
通过平均池化生成不同层级的八叉树掩码,即初始八叉树结构。最终构建初始的稀疏、多粒度八叉树表示。
B:迭代结构校正(Iterative Structure Rectification)
![895e62b3ab9badaa1fa22f4ab4d6ce12.png](https://img-blog.csdnimg.cn/img_convert/895e62b3ab9badaa1fa22f4ab4d6ce12.png)
在第1层级,直接保留置信度最高的10%预测结构。
对于剩下的位置,用2层MLP预测新概率,与原概率按60:40 权重融合得到新概率。
按新概率选择置信Top 10%的位置进行分裂,生成第1层级的新结构。
在第2层级,直接保留置信Top 30%预测结构。
对于其余位置,同样用MLP预测新概率,与原概率50:50 权重融合。
按新概率选择Top 30%的位置分裂,生成第2层级的新结构。
总结:通过这种连续校正,八叉树的质量明显提升(mIoU提高约10%),校正了许多不准确的预测。
C:八叉树结构质量探讨(Discussion on Octree Structure Quality)
![b92612be6bb176d6a05e2afdfd693075.png](https://img-blog.csdnimg.cn/img_convert/b92612be6bb176d6a05e2afdfd693075.png)
初始八叉树结构在第1层级和第2层级的mIoU分别为57.34和51.28。
经过第1轮迭代结构校正后,第1层级和第2层级的mIoU分别提高到60.13和53.95。
第2轮迭代结构校正后,第1层级和第2层级的mIoU进一步提高到62.27和56.79
可以看出,随着迭代结构校正模块的不断作用,八叉树的质量持续提高,原本不准确的预测被校正,mIoU提高了约10%。这证明了结构迭代校正模块的效果。
总的来说,这部分论证了预测八叉树结构的动态迭代调整和优化,可以持续改进八叉树表示的质量,从而提高下游任务的性能。
D. More Visualization
图14显示了提议的Oc-treeOcc的附加可视化。显然,此方法利用多颗粒度八叉树建模,展示了卓越的性能,特别是在卡车、公共汽车和人造物体的类别中。
![ab6737a0c6e2e2f37b11af322e1924ea.png](https://img-blog.csdnimg.cn/img_convert/ab6737a0c6e2e2f37b11af322e1924ea.png)
Occ3D-nuScenes验证集的更多可视化。第一行显示输入的多视图图像,而第二行显示PanoOcc、FBOCC、此方法和地面实况的占用预测结果。
投稿作者为『自动驾驶之心知识星球』特邀嘉宾,欢迎加入交流!
① 全网独家视频课程
BEV感知、毫米波雷达视觉融合、多传感器标定、多传感器融合、多模态3D目标检测、车道线检测、轨迹预测、在线高精地图、世界模型、点云3D目标检测、目标跟踪、Occupancy、cuda与TensorRT模型部署、大模型与自动驾驶、Nerf、语义分割、自动驾驶仿真、传感器部署、决策规划、轨迹预测等多个方向学习视频(扫码即可学习)
![4528b2a4f7b90999fd8c49998dc51541.png](https://img-blog.csdnimg.cn/img_convert/4528b2a4f7b90999fd8c49998dc51541.png)
② 国内首个自动驾驶学习社区
近2400人的交流社区,涉及30+自动驾驶技术栈学习路线,想要了解更多自动驾驶感知(2D检测、分割、2D/3D车道线、BEV感知、3D目标检测、Occupancy、多传感器融合、多传感器标定、目标跟踪、光流估计)、自动驾驶定位建图(SLAM、高精地图、局部在线地图)、自动驾驶规划控制/轨迹预测等领域技术方案、AI模型部署落地实战、行业动态、岗位发布,欢迎扫描下方二维码,加入自动驾驶之心知识星球,这是一个真正有干货的地方,与领域大佬交流入门、学习、工作、跳槽上的各类难题,日常分享论文+代码+视频,期待交流!
![3fa813e14cf206f8f8359712b3daf9ad.png](https://img-blog.csdnimg.cn/img_convert/3fa813e14cf206f8f8359712b3daf9ad.png)
③【自动驾驶之心】技术交流群
自动驾驶之心是首个自动驾驶开发者社区,聚焦目标检测、语义分割、全景分割、实例分割、关键点检测、车道线、目标跟踪、3D目标检测、BEV感知、多模态感知、Occupancy、多传感器融合、transformer、大模型、点云处理、端到端自动驾驶、SLAM、光流估计、深度估计、轨迹预测、高精地图、NeRF、规划控制、模型部署落地、自动驾驶仿真测试、产品经理、硬件配置、AI求职交流等方向。扫码添加汽车人助理微信邀请入群,备注:学校/公司+方向+昵称(快速入群方式)
④【自动驾驶之心】平台矩阵,欢迎联系我们!