mmdet3d pointpillar kitti 训练

文章描述了在使用PointPillars模型进行训练时遇到的错误,涉及到ObjectSample函数在处理数据采样时的问题,特别是当`use_ground_plane`设置为true但未找到地面平面时。ObjectSample负责在样本gtobjects不足时从全局gtobject库中补充,同时涉及db_sampler的初始化和样本选择策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

运行:

python tools/train.py configs/pointpillars/pointpillars_hv_secfpn_8xb6-160e_kitti-3d-3class.py

报错1:‘use_ground_plane’ is true but find plane is none

这个函数在object sample里,pointpillars_hv_secfpn_8xb6-160e_kitti-3d-3class.py里有定义它,

在train_pipeline里,把objectSample的use_ground_plane改为false.

ObjectSample是什么?

我们在前面的create data步骤建立了一个关于数据集的全体 gt object 库,即 db_infos.pkl,ObjectSample 做的就是,如果当前样本的 gt object 比较少的情况下,从这个库里面采样一些 gt object 填充到当前的样本中(可理解为从其他样本里 copy 一些 gt object 放到当前样本中)

  1. 初始化 db_sampler ,在 db_sampler 初始化里面按照 difficulty 和 min_points 过滤掉 一些 gt object.

  2. 是否选择 sample_2d,调用相应的 db_sampler.sample_all

  3. db_sampler.sample_all() 的过程

    1. 计算每个类别需要 sample 的个数: 要求个数 减去 目前 gt label 中该类别个数
    2. 如果该类别的 gt objects 已经足够多,即需要 sample 的个数 <= 0,则不做任何 sample 操作,返回的 sample 结果为 None
    3. 如果该类别的 gt objects 比较少,则从 db_info 里面对应的类别 sample 所需数量的 object ,也就是从其他文件去 sample 一些 object 出来填充到当前文件的 gt 数据。比如用000005.bin 的一些 object 点云 补充到 000003.bin 去,并补充相应的 gt boxes.
  4. 得到 sample 结果之后,判断是否和已有的 gt boxes and sample boxes 冲突 (注意这里是将某类别的 sample 结果和目前所有类别的已有 boxes 判断冲突),保留那些没有冲突的 sample 结果作为该类别的 sample 结果

  5. concat sample 结果和原本的 gt labels and bboxes, 替换 gt point cloud 里面落在 sample boxes 里的 point 为 sample points

 参考:https://www.cnblogs.com/notesbyY/p/13564454.html

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值