自学内容网 自学内容网

【论文精读】Fully Sparse 3D Occupancy Prediction

1 背景信息

团队:南京大学,上海人工智能实验室
时间:2023年12月
代码:https://github.com/MCG-NJU/SparseOcc

2 OCC预测存在的问题

2.1 dense 3D features

目前都是提取的密集3D特征,但是据统计,**90%**的Voxel都是空的,造成了极大的浪费,帧率现在很低,在Tesla A100上只能达到2-3FPS;然而,SparseOCC达到了17FPS;
还有一些稀疏的特征表征方式,最后还是做了saprse2dense的操作,比如VoxFormer。所以本文说自己是fully sparse。

2.2 evaluation

原本是mIOU,这篇文章提出了自己的评价方式RayIOU。

3 SparseOCC的做法

分为3个部分:

  1. backbone + FPN,提取特征
  2. sparse voxel decoder,解码出占据网格,但是不带类别信息
  3. mask transformer,分别各个实例的类别
  4. 2个decoder输出处理得到带分类的占据网格

3.1 sparse voxel decoder

将下述的层多次执行:

  1. 将一个体素voxel 8等份,得到8个新的体素;这一步就是论文里说的coarse2fine的步骤,它一步步把占据的网格细化,得到更细致的占据分布
  2. 这一步使用交叉熵损失进行监督,并考虑到地面这个种类最多,所以对每个类别进行了权重的平衡。

3.2 Mask transformer

  1. 这一步用到了上一步的输出,但是上一步输出的占据网格也会有错误,因此会把错误的结果类别设为no object;损失使用focal loss

4 Evaluation

4.1 mIOU的问题

一言以蔽之,mIOU鼓励模型预测的网格更厚,和真实场景不符。

If the model fills all areas behind the surface, it inconsistently penalizes depth predictions.
The model can obtain a higher IoU by filling all areas behind the surface and predicting a
closer depth.

如果模型预测的网格在真实网格的后面,那么IOU得分为0;那么如果想要得分高,而且也不预测那么准的话,就把网格预测厚一点,把真实网格包裹住就可以。

If the predicted occupancy represents a thin surface, the penalty becomes overly strict. Even
a deviation of just one voxel results in an IoU of zero.

反之,预测薄了的话,如果没包住真值,那IOU为0,得分就很低。

The visible mask only considers the visible area at the current moment, reducing occupancy
prediction to a depth estimation task and overlooking the scene completion ability.

visible mask告诉模型哪些区域有效,哪些区域无效invisible,那么模型只需要预测有效区域的深度就可以了,让模型occ预测变成了深度预测。

4.2 Ray-IOU的提出

针对每一束射线射到的第一个样本C:求:

TP / (TP + FP + FN)
TP表征实际有,预测有
FP表征实际没有,预测有
FN表征实际有,预测没有

这样有好处:

  1. 只看射线射到的第一个样本,不考虑其厚度
  2. TP的阈值更宽,比mIOU宽松一点
  3. 任何位置都有可能成为光束的起始点,这样子让模型能够真正进行场景建模能力,而不是仅仅深度预测能力

实验

在Ray-IOU中,SparseOCC达到最佳,在mIOU中,BEVDet-OCC达到最佳。
后面的实验结论没看了。


原文地址:https://blog.csdn.net/eepii/article/details/140614247

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!