专栏算法工具链centerpoint模型训练编译相关

centerpoint模型训练编译相关

已解决
神秘嘉宾2026-02-10
59
7
OE包版本:j6_open_explorer_v3.0.31-py310_2024123
OE包中提供的centerpoint训练demo是基于nuscenes数据集(可以检测速度)。如果我想基于kitti数据集训练centerpoint模型(无法检测速度),有以下两个问题:
问题1:
nuscenes数据集在模型postprocess后处理中设置box_size为9,想问下这个9分别代表什么,是x, y, z, w, l, h, yaw, vx, vy 这9维吗,如果改为kitti数据集,这里的box_size应该设置为多少,是7吗(没有vx和vy)
问题2:模型编译部分,这里的output_layout和transpose_dim什么意思,是否都需要显示的设置
算法工具链
征程6技术深度解析
评论2
0/1000
  • 神秘嘉宾
    Lv.1

    还有就是由nuscenes数据集转为kitti数据集训练,这里的common_heads和code_weights怎么设置

    2026-02-10
    0
    0
  • Huanghui
    Lv.5
    2026-02-10
    0
    5
    • 神秘嘉宾回复Huanghui:

      好的,OE包已经升级,不过我看最新版的OE包也是需要确认这几个问题,麻烦有空解答下

      2026-02-10
      0
    • Huanghui回复神秘嘉宾:

      问题 1:nuScenes 的 box_size=9 这 9 维分别是什么?换 KITTI 应该设多少?

      在 OE 的 CenterPoint(nuScenes)示例里,box_size=9 表示 解码后的 3D box 参数输出包含速度,9 维语义通常是:

      [x, y, z, w, l, h, yaw, vx, vy]

      对应关系是:

      • reg → x, y(BEV 平面中心)
      • height → z
      • dim → w, l, h
      • rot → yaw(由 sin/cos 反解得到)
      • vel → vx, vy
      如果切到 KITTI 数据集(通常没有速度标注),建议:
      • 关闭 velocity 分支(with_velocity=False)

      • box_size 改为 7,即输出:
        box_size=7 → [x, y, z, w, l, h, yaw]
      注意:把 box_size 改 7 需要同时把 head/target/loss/postprocess/coder 里与 velocity 相关的部分一起同步关掉,否则会出现维度/shape 对不上。
      2026-02-10
      0
    • Huanghui回复Huanghui:

      问题 2:编译里的 output_layout 和 transpose_dim 是什么意思?都要显式设置吗?

      这两个字段是 “模型输出 tensor 的布局(NCHW / NHWC)”,它不改变模型计算逻辑,只影响输出的维度顺序(跟后处理绑定)。
      • transpose_dim.outputs.global = [0, 2, 3, 1] 的含义是:把输出从 NCHW 转成 NHWC
        在 OE 的 compile_perf_hbir.py 这条编译链路里,真正会插入转置并生效的是 transpose_dim。
      • output_layout="NHWC" 仅仅是一个 语义标注说明。在该 sample 中最终以 transpose_dim 的实际转置结果为准。
        建议显式设置,并且与 transpose_dim 保持一致,这样下游(推理/后处理)解析不容易出歧义。
      2026-02-10
      0
    • Huanghui回复Huanghui:

      问题 3:从 nuScenes 改 KITTI 训练,common_heads 和 code_weights 怎么设?

      nuScenes 示例里有 velocity,所以:

      如果切到 KITTI(无 vx/vy):

      1) 建议如下

      去掉 vel:

      2) 建议的 code_weights

      与回归 code 的维度一致。KITTI 中常见:

      • 训练内部回归用 rot 的 sin/cos 参数化,所以回归 code_size 会变成 8 维
        reg(2) + height(1) + dim(3) + rot(2) = 8
      因此 code_weights 建议改为 8 个元素,例如:

      同时要配套:

      • with_velocity=False

      • target/loss/postprocess/bbox_coder 相关配置不再包含 velocity 分支

      • postprocess.box_size=7

      2026-02-10
      0
    • 神秘嘉宾回复Huanghui:

      感谢,解答的很详细,明白了

      2026-02-11
      0