1. 前言
2. PC端输出获取
PC端输入的获取主要包括输入数据准备、输出节点配置和运行推理脚本这三个步骤,下面将对其进行逐一介绍。
2.1 输入数据准备
bev_mt_lss参考算法的PC端输入为:
输入 | shape | 备注 |
|---|---|---|
6V图像 | 6x3x256x704 | nuscenes数据集中6张不同相机位置的图像 |
homography矩阵 | 6x4x4 | 参考地平线bev参考算法板端输入数据准备教程 3.2节来获取homo矩阵 |
获取到6V图像和homography矩阵后,配置config文件的infer_cfg字段中输入路径参数infer_inputs:
bev参考算法的输入的6V图像的有顺序的,所以需要在config文件的process_inputs函数中定义输入图像的顺序,如下所示:
6V图像的输入顺序为:FRONT_LEFT,FRONT,FRONT_RIGHT,BACK_LEFT,BACK,BACK_RIGHT
2.2 输出节点配置
2.2.1 dump分割头输出
在docker环境下,进入到/usr/local/lib/python3.8/dist-packages/hat/models/task_modules/fcn/head.py目录下,在FCNHead类的forward函数中保存分割头的输出,如下所示:
2.2.2 dump检测头输出
在docker环境下,进入到/usr/local/lib/python3.8/dist-packages/hat/models/task_modules/centerpoint/head.py目录下,在TaskHead类的forward函数中dump检测头的输出,如下所示:
本节仅选择了检测头的一个类别的height输出一致性的验证,也可以选择在/usr/local/lib/python3.8/dist-packages/hat/models/task_modules/centerpoint/head.py中保存检测头的其它属性输出来验证一致性。
2.3 运行infer.py
最后,运行推理脚本infer.py:
运行infer.py之前请参考【参考算法】地平线 Bev_mt_lss 参考算法-v1.2.1 3.1.3节对config文件进行必要的修改。
运行infer.py完毕后,生成的seg_pred.txt即为模型的分割头输出,output_height.txt为检测头的“height”输出。
3. 板端输入获取
板端端输入的获取主要包括输入数据准备和运行hrt_model_exec工具这两个步骤,下面将对其进行逐一介绍。
3.1 输入数据准备
输入 | shape | 备注 |
|---|---|---|
6V图像(NV12) | 6x3x256x704 | 参考地平线bev参考算法板端输入数据准备教程) 第2节来获取 |
fpoints(int16) | 10x2x128x128 | 参考地平线bev参考算法板端输入数据准备教程 第3节来获取 |
dpoints(int16) | 10x2x128x128 | 参考地平线bev参考算法板端输入数据准备教程 第3节来获取 |
3.2 运行hrt_model_exec工具
获取到bev_mt_lss板端hbm的3个输入后,在板端运行hrt_model_exec工具来dump模型的输出,命令如下:
工具运行完成后,会在当前路径下生成数个txt文件,分割头对应的输出是model_infer_output_0.txt,检测头的“height”属性对应的输出是model_infer_output_32.txt文件。
可通过hrt_model_exec model_info --model_file model.hbm来获取模型输出节点的信息。
4. 输出结果对比
将2.3节导出的PC端分割头的输出seg_pred.txt和检测头输出output_height.txt分别与3.2节dump出的model_infer_output_0.txt和model_infer_output_32.txt对比,如果数值相同,则说明一致性验证通过。
