BEVDET

思想

  1. 相机视图进行特征提取和深度估计,根据深度估计的信息和特征进行融合,得到三维空间的特征
  2. 生成pillar
    1. 生成图像空间内的三维坐标,根据特征下采样的倍数及深度数来生成
    2. 上述三维坐标变换到点云空间,有以下几步变换
      1. 图像是有数据增强的,如旋转、平移、缩放等,浓缩成两个变换,仿射和平移,那第一步是增强后的三维坐标还原为原始的三维坐标,即平移和仿射的逆变换
      2. 图像坐标系到相机坐标系,即乘以内参矩阵
      3. 相机坐标系到点云坐标系,刚体变换,旋转+平移
    3. 生成融合特征,即点云空间的三维坐标及图像特征融合
      1. 点云空间的三维坐标pillar化,减去点云的起点,除以点云的步长
      2. 筛选,保留点云设定范围内的点
      3. voxel内的点筛选留存,留存最大数为300,即相同voxel内点保留前300个,排序按照batch D H W依次来排
      4. 设定pillar特征尺寸, B C D H W 300,按照排序后的坐标将x的值赋值到上面
      5. 最后一个维度sum,第三个维度和第二个维度flatten,得到Pillar特征
  3. 再接neck,以及使用类似centerpoint的head

模型结构

输入

以nuscenes为例,输入是6个camera的数据,尺寸为1 * 6 * 3 * 256 * 704

前处理

test

  1. 只做两个变换,缩放和平移

网络部分

part1 生成伪点云

  1. 基于6个cameras的输入,输出612316*44
  2. 前59维为深度信息,单独提出,然后与后64维度相乘
  3. 如下图,生成深度图
  4. 在这里插入图片描述

part2 bev pool

  1. 根据点云范围得到点云的网格,生成伪点云

part3 bev detector

  1. 对生成的bev走centerpoint的推理流程
  2. 在这里插入图片描述

onnx模型导出

由于网络中存在bev pool,直接导出模型不方便,将网络切成两个部分,bevdet_pseudo_cloud和bevdet_detector,需要重写forward函数,修改代码不是很好,我们参考mmdeploy的方案,运行时对bevdet注册一些函数,用来导出两个部分的onnx,git地址

模型推理 onnxruntime or tensorrt

自定义int8量化

参考博客

  1. https://zhuanlan.zhihu.com/p/454569125
  2. https://zhuanlan.zhihu.com/p/557613388

参考论文

  1. https://github.com/nv-tlabs/lift-splat-shoot
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值