OctreeOcc: 使用八叉树查询的高效多粒度占用预测
OctreeOcc:
文章链接:OctreeOcc
概述
OctreeOcc是一个创新的3D占用预测框架,它通过利用八叉树结构自适应地捕获3D空间中的关键信息,并结合图像数据来提高结构的精确性,同时通过有效的校正机制进行迭代细化,相比于传统密集网格方法,在保持优越占用预测性能的同时,显著降低了15%-24%的计算开销。
比较新颖的点:
1.引入了基于多颗粒度八叉树查询的3D占用预测框架OctreeOcc:
通过预测八叉树结构为不同区域提供不同的建模颗粒度,在保留空间信息的同时减少了需要建模的体素数量,从而减少了计算开销并保持了预测精度
从图1中可以看出,(a)表明语义类别只占空间的一小部分,建模空区域密集地影响计算效率。(b)和(c)证明了八叉树表示的优越性,我们可以对不同尺度的对象或空间应用不同的粒度,这减少了计算开销,同时保留了空间信息。半透明区域代表空体素
2.开发了语义引导的八叉树初始化模块和迭代结构校正模块:
将语义信息作为初始化八叉树结构的前身。随后,我们迭代更新结构,确保与场景更准确地对齐的持续校正
重点!:
1. 图像特征提取(Image Backbone)
使用ResNet101-DCN作为backbone,从多视角图像中提取多尺度特征,用于后续模块。
2. 密集查询初始化(Dense Query Initialization)
八叉树初始化模块将八叉树转换为稀疏八叉树查询Qoctree:
A:稀疏和多颗粒度的八叉树查询
创建灵活的体素表示,以适应不同尺度的语义区域,通过预测八叉树掩码来启动,这个预测八叉树掩码Mo是获取八叉树结构的关键元素,促进了八叉树到Qoctree的转换:
其中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个图像视图上的投影公式为:
其中πj(pi)表示第j个摄像机视图中位置pi处的第i个采样点的投影
C:为投影到不同语义类别的体素分配了不同的权重
在获得每个体素的初始置信度后,我们将其下采样到不同的八叉树级别以制定初始八叉树掩码,根据掩码,例如选择前20%和60%置信度查询作为父查询,其余为叶查询,构建初始的稀疏八叉树表示
4.八叉树编码器(Octree Encoder)
编码后的八叉树查询为结构优化提供了额外信息,使预测的八叉树结构能够动态调整
A:时空注意力(Spatial-Temporal Attention)
采用高效的可变形注意力用于图像交叉注意力(ICA)和时间自我注意力(TSA)
图像交叉注意力ICA:
图像交叉注意力机制旨在增强多尺度图像特征和八叉树查询之间的交互。对于八叉树查询q,我们可以获取其中心的3D坐标(x, y,z)作为参考点Refx,y,z,然后我们将3d点投影到图像并执行可变形的注意:
其中N表示相机视图,m索引参考点,M1是每个查询的采样点总数。Fn是第n个相机视图的图像特征,DA代表可变形注意力。
时间自我注意力TSA:
给定历史八叉树查询Qt−1,通过自我意识车辆运动将其与当前八叉树查询Qt对齐。为了降低计算成本,采用了与ICA类似的操作。给定八叉树查询:Qt ∈ RN,C,具有特征q ∈ RC,和共同响应坐标p=(x,y,z)的单个查询:
其中K表示注意力头的数量,M2表示采样点的数量,Wk和Wm是学习权重,Akm表示归一化注意力权重,p+Δpkm表示3D空间中可学习的采样点位置。该特征是通过该位置的体素特征的三线性插值计算的。
B:迭代结构校正(Iterative Structure Rectification
将当前八叉树结构划分为高置信和低置信区域。对低置信区域,利用编码后的稠密表示预测新结构与原结构融合得到校正后的结构。
通过这种迭代校正,八叉树结构能够动态调整,从而提高结构预测的准确性,更好地表示场景。
C:损失函数(Loss Function)
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占用预测性能对比
八叉树结构校正的图示。左图显示最初预测的八叉树结构,右图描述迭代结构校正模块后的八叉树结构。很明显,预测的八叉树结构在校正模块之后变得更加符合物体的形状
第一行显示输入的多视图图像,而第二行显示PanoOcc、FBOCC、OctreeOcc方法和地面实况的占用预测结果
结论:
解决了传统密集网格表示在理解3D场景中的局限性。
OctreeOcc对八叉树表示的自适应利用能够捕获具有可变颗粒度的有价值信息,
满足不同大小和复杂性的对象。
广泛的实验结果证实了OctreeOcc在3D占用预测中获得最先进性能的能力,
同时同时减少了计算开销。