专栏算法工具链bev参考算法板端输入数据准备教程

bev参考算法板端输入数据准备教程

已解决
yy12342024-02-28
226
2

用户您好,请详细描述您所遇到的问题,详细的描述有助于帮助我们快速定位,解决问题~Thanks♪(・ω・)ノ

1. 芯片型号:J5

2. 天工开物开发包 OpenExplorer 版本: J5_OE_1.1.68

3. 问题定位:模型训练

4. 问题具体描述:您好,在论坛《地平线bev参考算法板端输入数据准备教程》中,可以知道三种bev算法:IPM;LSS;GKT的输入准备方法,请问其它bev模型的非图像输入怎么准备?目前在尝试petr_efficientnetb3_nuscenes这个模型,根据上述论坛准备非图像输入,下面这三步还可以沿用的吧:
  1. 相机内外参数获取;

  2. 生成homography矩阵;

  3. 根据homography矩阵导出浮点points;

最后一步对浮点points做int16量化,process_reference_points.py代码中判断模型类型,设置了不同的scale,请问代码中这个scale如何计算, petr模型应该设置成多少呢?

if model=="ipm":

      scale = [0.0078125]

    elif model == "gkt":

      scale = [

      0.00390625, 0.00390625, 0.00390625, 0.00390625, 0.00390625,

      0.00390625, 0.00390625, 0.00390625, 0.00390625]

    if model == "lss":

      scale = [0.0078125, 0.03125]

另外代码最后保存的points = points.astype(np.int16)转换成了int16,但我看petr模型信息的非图像输入数据类型是HB_DNN_TENSOR_TYPE_S8,应该是int8类型。直接这样用就可以吗:points = points.astype(np.int8)


算法工具链
征程5
评论2
0/1000
  • 张飞飞96
    Lv.1

    可以尝试这样输出referpoint:

    output_point = points/ scale #scale有多个的话按照通道去处理

    quanti_point = torch.round(output_point)

    quanti_point = torch.clamp(quanti_point, -32768, 32767)

    output = quanti_point.numpy().astype(np.int16)

    file_name = os.path.join(out_dir, 'feat_points.bin')

    output.tofile(file_name)

    2024-02-29
    0
    0
  • GOYU\XU
    Lv.2
    其它bev模型的非图像输入要根据模型自身的设计具体准备,在此不做任何承诺。论坛上准备的非图像输入是一般通用的,petr_efficientnetb3_nuscenes模型可以沿用这几个步骤!
    2024-04-11
    0
    0