02_proprocess能否直接输出640*640的RGB校准数据

将100份测试集图片通过02_proprocess进行转化后得到672*672尺寸的RGB校准数据集,但后续在转化bin模型时,出现报错-
INFO First calibration picture name: 108.rgb

INFO First calibration picture md5:

3cd70e16792e6d6f7f80f73a194f8c90

/open_explorer/Model/fire_calibration_data_rgb_f32/108.rgb

INFO *******************************************

ERROR load cal data for input ‘images’ error

ERROR cannot reshape array of size 1354752 into shape (1,3,640,640)-
后续将尺寸转为640*640后无报错,但在上板部署且置信度为0.99也会出现很多框,使用官方Github上的部署模板也会出现的相同的情况

问题

  1. 02_proprocess能否直接输出640*640的RGB校准
  2. 能否直接将672*672转为640*640

20b0f612198a0b774b3944f8485a0afd.png-
70827199ec4d3d7b2bd175830495f993.png

基本上新算法都需要做pipeline检查,来摸明白前后处理,一般不会是精度问题

你好, 在算法开发的过程中,遇到各种数值不可控的问题都是正常的,算法开发本身就是需要厚积薄发的领域。算法工具链提供了完整的流程说明,debug工具及流程说明,供您参考。 PTQ流程详解:https://developer.d-robotics.cc/api/v1/fileData/x5\_doc-v126cn/oe\_mapper/source/ptq/ptq\_workflow.html-
精度调优:https://developer.d-robotics.cc/api/v1/fileData/x5\_doc-v126cn/oe\_mapper/source/tune\_content/accuracy\_tune.html-
性能调优:https://developer.d-robotics.cc/api/v1/fileData/x5\_doc-v126cn/oe\_mapper/source/tune\_content/performance\_tune.html-
精度debug工具详解:https://developer.d-robotics.cc/api/v1/fileData/x5\_doc-v126cn/oe\_mapper/source/ptq/ptq\_tool/accuracy\_debug.html-
Runtime程序编写详解:https://developer.d-robotics.cc/api/v1/fileData/x5\_doc-v126cn/oe\_mapper/source/runtime.html-

如果将工具链手册所述的所有流程走完仍然不及预期,则说明模型及其权重本身无法量化。特别的,过拟合的模型本身容易出现异常值导致量化表示能力不足。-

新算法开发建议-

  1. 编写使用ONNXRuntime来推理原始浮点onnx的程序,来确定前后处理的baseline。
  2. 将输入类型设置为NCHW和featuremap,包括train和rt的两个type,前处理类型修改为no_preprocess,这样编译出来的quantized模型和bin模型所需要的数据,也就是所需要的前处理,和浮点onnx完全一致。建议在全featuremap的基础上进行准备校准数据,和bin模型编译。由于featuremap在板子上的python接口无法推理,只能用C/C++推理,调试阶段建议使用开发机器的HB_ONNXRuntime推理quantized onnx来调试。quantized onnx在全featuremap的编译基础上,前处理与浮点onnx完全一致。
  3. 如果在全featuremap的基础上,精度不达预期,可以查阅手册使用全int16编译,来确定精度上限。
  4. 全featuremap的基础上调通了,再来尝试配置nv12或rgb等让BPU加速前处理的配置方式。

改preprocess.py里的大小参数就行了

现在能输出640*640的RGB校准数据,但是量化部署后还是会出现很多框,请问是后处理问题还是模型精度问题