[论文笔记] SurroundOcc: Multi-Camera 3D Occupancy Prediction for Autonomous Driving

Wei, Yi, et al. “Surroundocc: Multi-camera 3d occupancy prediction for autonomous driving.” Proceedings of the IEEE/CVF International Conference on Computer Vision. 2023.

重点记录

  1. 将占用网格应用到多个相机构成的3D空间中;
    • 使用BEVFormer中的方法获取3D特征, 然后使用交叉熵损失计算loss;
    • 和BEVFormer区别是BEV中z轴高度为1, 这里为获取3D特征不能设置为1, 文中为16;
    • 注意会生成不同尺度的3D特征, 会在每个尺度上做一个监督;
  2. 提出了稠密占用网格语义标签生成方法;
    • 分离lidar点云中的静态场景和动态目标为两个集合
    • 将静态场景转换到参考坐标系中
    • 将运动目标归一化到相对坐标系中
    • 根据当前帧pose从参考坐标系中恢复静态场景
    • 根据当前帧中的物体ID将运动目标填充回来
    • 对当前恢复并填充完的点云进行泊松重建
    • 用最近邻给稠密给标签, 体素化得到占用网格

稠密语义标签生成

Needs

  • lidar 点云
  • lidar 点云bbox标注, 需要有类别和tracking ID
  • lidar 分割标注 / 或者图像分割标注

步骤

场景划分

  • 一个场景中的所有点云根据bbox标注划分为静态场景 P s P_s Ps 和动态目标 P o P_o Po 两个集合, 分割标注和静态场景处理相似, 记为 P s s e g P^{seg}_s Psseg, 注意: 只有关键帧才有语义标签
  • 静态场景, 分割标注所有点云变换到参考坐标系(通常为场景开始帧), 然后将所有点云合并
  • 动态目标点云按照tracking ID分组, 每组中的为不同frame中物体, 假如有物体1在场景中出现10帧,可以表示为 {1: [frame_i_pts, …]}, 这里的frame_i_pts表示在第i帧中出现的bbox框中的点云, 并且需要将frame_i_pts点云归一化操作, 1.bbox最小点作为坐标原点 2.根据yaw角旋转至y轴正方形; 然后将所有场景中物体点云合并, 得到{1: pts1, …}
  • 动态目标 P o P_o Po 中点云根据tracking ID分别填充到静态场景 P s P_s Ps 和分割标注 P s s e g P^{seg}_s Psseg中, 得到稠密点云
    • 注意: 根据bbox将框外的点云删除

获取当前帧稠密标签

  • 根据当前帧位姿将静态场景 P s P_s Ps , 分割标注 P s s e g P^{seg}_s Psseg 变换到当前帧中, 并根据设置的点云范围裁切, 记为 P c u r P_{cur} Pcur P c u r s e g P^{seg}_{cur} Pcurseg
  • P c u r P_{cur} Pcur转换成mesh, 然后使用泊松重建, 再离散化得到占用网格(体素), 此步骤用来填充空洞
  • 根据 P c u r s e g P^{seg}_{cur} Pcurseg 采用最近邻算法给转换后的占用网格赋值语义标签, 得到稠密占用网格语义标签

Q&A

  • 场景中所有帧都会cut动态物体后转换到参考坐标系时, 会不会存在某些帧动态物体未bbox导致没有cut掉, 导致在最终参考坐标系中合并的静态场景中出现动态目标?
    • 可能存在上述情况, 静态场景中出现动态目标, 将该场景变换到当前帧, 再填充保留的动态目标, 会出现同一目标出现在两个位置, 导致标签存在歧义; 所以, 需要bbox标注准确且不能漏标; nuscenes场景中的每一帧点云都有bbox标注, 分割语义标签只有关键帧有;

代码

在这里插入图片描述

open3d 可视化 Occ网格

代码
在这里插入图片描述

### 关于高斯世界模型用于流式3D占用预测的研究 在研究领域中,高斯世界模型(Gaussian World Model, GWM)被广泛应用于表示复杂的三维环境。对于流式3D占用预测的任务而言,该方法通过利用动态变化场景中的稀疏性和局部性来实现高效建模。 #### 高斯世界模型概述 高斯世界模型采用一系列加权的各向异性高斯分布来近似复杂物体表面及其周围的空间结构[^1]。这些分布在空间上定义了一个概率场,其中每个位置处的概率反映了存在实体的可能性大小。这种方法不仅能够捕捉到精细几何特征,而且支持高效的渲染操作以及实时更新机制。 #### 流式处理框架设计 为了适应不断变化的真实世界条件并保持较低延迟,在线学习成为构建此类系统的必要组成部分之一。具体来说: - **增量训练**:当新数据到来时,仅需调整受影响部分对应的参数而无需重新计算整个模型; - **自适应分辨率管理**:根据不同区域的重要性自动调节细节程度; - **分布式存储与通信协议**:确保大规模环境下多节间协作顺畅无阻塞。 ```python class GaussianWorldModel: def __init__(self): self.gaussians = [] def add_gaussian(self, mean, covar, weight): gaussian = {'mean': mean, 'covariance': covar, 'weight': weight} self.gaussians.append(gaussian) def predict_occupancy(self, point_cloud): occupancy_probabilities = [] for p in point_cloud: prob_sum = sum([g['weight'] * multivariate_normal.pdf(p, g['mean'], g['covariance']) for g in self.gaussians]) occupancy_probabilities.append(prob_sum) return np.array(occupancy_probabilities) ``` 上述代码片段展示了如何初始化一个简单的`GaussianWorldModel`类,并提供了一种基于输入云数据预测占据情况的方法。实际应用中可能还需要考虑更多因素如噪声抑制、边界效应等。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值