参考资料:
(67 封私信 / 80 条消息) 轻量级占用网络要来了!FlashOcc:主打实时性,高精度快速高效内存 - 知乎
论文地址: ++https://arxiv.org/abs/2311.12058++
代码链接: ++https://github.com/Yzichen/Flas++
简介:
occ三维体素优势很多,但是同样显存和算力开销很大,限制了模型部署。
FlashOcc能够在不影响精度的前提下,提升推理速度,节约训练时间与训练成本。
Flashocc的Pipeline :
1. 二维图像编码器
- backbone提取多相机视角的 2D 图像特征 。
- Neck 模块(例如 FPN-LSS)融合多尺度特征。
2. 视角变换模块
- 利用网络进行像素级的深度预测
- 并结合相机的内外参矩阵,完成2d到3d投影
- 沿着高度方向进行"压扁"(Pooling 操作),最终得到一个扁平的、纯 2D 的 BEV 特征表达 。
3. BEV 编码器 (BEV Encoder)
- 使用2D 卷积来处理上一步得到的 2D BEV 特征 。同时,进行多尺度特征融合。通道数被硬性设置为 高度层数 \times 类别数。 也就是 16 \times 10 = 160 个通道。
4. 通道到高度转换
-
简单 PyTorch 里的
tensor.view()或tensor.reshape()函数 -
将数据从"通道"维度重新排列(Reshape)到"高度(Height/Z)"维度上 。将2d的bev特征图 变成 3D 占据体素矩阵。
总结:技术选型带来的工程价值
-
极致降本: 去除了沉重的 3D 卷积,使得显存占用和推理延迟大幅度降低 。这对于那些需要在几十 TOPS 算力的低端芯片上跑通端到端和复杂感知的高阶智驾公司(如卓驭、地平线)来说,是非常完美的工程化方案 。
-
高度兼容: 它的整体架构与主流传统 BEV 网络(如 BEVDet)高度兼容 。开发团队只需保留原有流水线,把原来的 3D 预测头替换为 Channel-to-Height 模块就能直接跑通,非常容易整合到车企现有的感知流水线中 。