UniAD 加入 Lidar 模态

简介: 解决2:检测和跟踪需要分开训练。uniad 原作者使用的是 bevformer 预训练的检测权重。因此,先要写一个检测代码,作单帧检测任务。然后将训练好的检测权重 load 到跟踪的代码中。

UniAD 加入 Lidar 模态
UniAD 加入 Lidar 模态相当于是在 BEVFormer 中加入 Lidar 模态。问题是如何加入?

读取历史帧数据
如何读取多帧图片数据?

使用的是 nuscenes_e2e_dataset - > prepare_train_data 方法,里面有个 for i in prev_indexs_list 循环。

处理点云数据
读取图片的时候,当前帧和历史帧都是 (6, c, h, w),读 4 帧历史帧,可以和当前帧拼接成 (5, 6, c, h, w)。最终会形成 (bs, 5, 6, c, h, w)

点云数据不同,每帧点云点的个数不相同,(32692, 5), (32867, 5), ... 那么无法将多个历史帧拼接起来。

方法1
统一每一帧为 32768 个点,若当前帧点数不够,则补点: (0, 0, 0, 0, 0)。在 train_pipeline 中执行。若当前帧点数太多,则随机删除一些点。

方法2
使用 mmdet3d 框架的 Pointsample 类,在 train_pipeline 中加入 dict(type='PointSample', num_points=32768)。

在 BEVFormer 中加入点云数据
使用 BEVFormer 加入激光
方法参考 github 代码相关 tag: v1.0, v2.0

使用 BEVFusion 方法
问题1:bevfusion 使用 bev_pool 算子,这个算子在 uniad 使用的 mmdet3d 代码中没有。

解决1:在 bevfusion 代码中,复制 bev_pool 这个算子(整个文件夹),到 mmdet3d 的 ops 中。再复制 setup.py 相关代码。重新编译 mmdet3d 即可。

问题2:训练 track 的时候 loss 很大。

解决2:检测和跟踪需要分开训练。uniad 原作者使用的是 bevformer 预训练的检测权重。因此,先要写一个检测代码,作单帧检测任务。然后将训练好的检测权重 load 到跟踪的代码中。

问题3:第 0 帧的 bbox_loss 很正常,是 0.4 左右,从第 1 帧开始的 bbox_loss 非常大
),大约为 10。

解决3:第 i 帧的位置 = 第 i-1 帧的(位置+速度x时间)所得,即 pos[i]= pos[i-1] + v[i-1] * (t[i] - t[i-1])。然后与当前帧的检测结果进行滤波得到。但是 uniad 中有 bug,time_delta 并没使用微妙
)。因此,time_delta 除以 1e6,得以解决。

日期
2024/01/30:时间辍问题
2023/12/14:记录 BEVFusion 方法问题
2023/11/10:完成历史帧的读取和点云数据的预处理

相关文章
|
1月前
|
机器学习/深度学习 自动驾驶 机器人
【论文速递】BEVFormer: 通过时空变换器从多相机图像中学习BEV表示
【论文速递】BEVFormer: 通过时空变换器从多相机图像中学习BEV表示
|
1月前
|
人工智能 数据可视化 vr&ar
TripoSR:一个图像到3D生成模型,你get到了嘛!
TripoSR:一个图像到3D生成模型,你get到了嘛!
|
1月前
|
传感器 机器学习/深度学习 自动驾驶
【多模态融合】CRN 多视角相机与Radar融合 实现3D检测、目标跟踪、BEV分割 ICCV2023
本文介绍使用雷达与多视角相机融合,实现3D目标检测、3D目标跟踪、道路环境BEV分割,它是来自ICCV2023的。CRN,全称是Camera Radar Net,是一个多视角相机-雷达融合框架。 通过融合多视角相机和雷达的特性,生成语义丰富且空间精确的BEV特征图。实现3D物体检测、跟踪和BEV分割任务。
165 1
|
机器学习/深度学习 传感器 编解码
史上最全 | BEV感知算法综述(基于图像/Lidar/多模态数据的3D检测与分割任务)
以视觉为中心的俯视图(BEV)感知最近受到了广泛的关注,因其可以自然地呈现自然场景且对融合更友好。随着深度学习的快速发展,许多新颖的方法尝试解决以视觉为中心的BEV感知,但是目前还缺乏对该领域的综述类文章。本文对以视觉为中心的BEV感知及其扩展的方法进行了全面的综述调研,并提供了深入的分析和结果比较,进一步思考未来可能的研究方向。如下图所示,目前的工作可以根据视角变换分为两大类,即基于几何变换和基于网络变换。前者利用相机的物理原理,以可解释性的方式转换视图。后者则使用神经网络将透视图(PV)投影到BEV上。
史上最全 | BEV感知算法综述(基于图像/Lidar/多模态数据的3D检测与分割任务)
|
9月前
|
机器学习/深度学习 传感器 算法
基于监督学习的多模态MRI脑肿瘤分割,使用来自超体素的纹理特征(Matlab代码实现)
基于监督学习的多模态MRI脑肿瘤分割,使用来自超体素的纹理特征(Matlab代码实现)
|
机器学习/深度学习 编解码 移动开发
【论文解读】——基于多尺度卷积网络的遥感目标检测研究(姚群力,胡显,雷宏)
【论文解读】——基于多尺度卷积网络的遥感目标检测研究(姚群力,胡显,雷宏)
【论文解读】——基于多尺度卷积网络的遥感目标检测研究(姚群力,胡显,雷宏)
|
10月前
|
机器学习/深度学习 Ubuntu 机器人
【D435i深度相机YOLO V5结合实现目标检测】
【D435i深度相机YOLO V5结合实现目标检测】
1018 0
|
传感器 编解码 测试技术
CVPR'2023 | Nerf-Stereo: 利用NeRF来训练双目立体匹配网络的新范式!
CVPR'2023 | Nerf-Stereo: 利用NeRF来训练双目立体匹配网络的新范式!
476 0
|
机器学习/深度学习 传感器 存储
最新综述!分析用于实时车载激光雷达感知的点云深度学习表示(空间结构/光栅化/坐标系)
随着帧速率、点云大小和传感器分辨率的增加,这些点云的实时处理仍必须从车辆环境的这张日益精确的图片中提取语义。在这些点云上运行的深度神经网络性能和准确性的一个决定因素是底层数据表示及其计算方式。本文调查了神经网络中使用的计算表示与其性能特征之间的关系,提出了现代深度神经网络中用于3D点云处理的LiDAR点云表示的新计算分类法。使用这种分类法,对不同的方法家族进行结构化分析,论文揭示了在计算效率、内存需求和表示能力方面的共同优势和局限性,这些都是通过语义分割性能来衡量的。最后,论文为基于神经网络的点云处理方法的未来发展提供了一些见解和指导。
最新综述!分析用于实时车载激光雷达感知的点云深度学习表示(空间结构/光栅化/坐标系)
|
传感器 人工智能 监控
Nuscenes SOTA!BEVFormer v2: 通过透视监督使流行的图像Backbones适应BEV识别!
作者提出了一种具有透视监督的新型鸟瞰图(BEV)检测器,它收敛更快,更适合目前的图像主干网络。现有的SOTA BEV检测器通常与某些深度预训练的主干网(如VoVNet)相连,阻碍了图像backbones和BEV检测器之间的协同作用。为了解决这一限制,论文优先考虑通过引入透视空间监督来简化BEV检测器的优化方案。为此提出了一种两级BEV检测器,其中来自透视头部的proposal被输入鸟瞰头部,用于最终预测。为了评估模型的有效性,作者进行了广泛的消融研究,重点是监督的形式和拟议检测器的通用性。所提出的方法在传统和主流图像主干上得到了验证,并在大规模nuScene数据集上获得了新的SOTA结果
Nuscenes SOTA!BEVFormer v2: 通过透视监督使流行的图像Backbones适应BEV识别!