yolov5部署后,quantized_model.onnx与 bin 模型测试结果不一致

用户您好,请详细描述您所遇到的问题,这会帮助我们快速定位问题~

1.芯片型号:j3

2.天工开物开发包OpenExplorer版本:XJ3_OE_2.2.3

3.问题定位:yolov5部署

4.问题具体描述:yolov5 模型转换后,使用同一张图片测试,quantized_model.onnx与 bin 模型测试结果不一致,置信度相差太多

测试结果以及模型均上传至百度云:链接:https://pan.baidu.com/s/1Qo66jKjxr9FZIDW13d5\_0w?pwd=ae5w

提取码:ae5w

--来自百度网盘超级会员V3的分享

感谢您使用地平线芯片算法工具链,最近我们在收集大家的满意度反馈,欢迎您填写问卷,详细情况可见:https://developer.horizon.ai/forumDetail/146177053698464782

你好,请问quantized.onnx和bin的一致性检验是否通过呢?-

具体调优过程请您参考这篇文章:https://developer.horizon.ai/forumDetail/71036815603174578进行精度调优。

quantized.onnx和bin的一致性检验通过,精度调优方法全部试过,依然存在quantized.onnx和bin置信度相差较大问题

你好,如果两者一致性检查通过的话,建议您仔细检查一下板端前后处理的代码哈,看看是不是代码写的时候存在一些数据处理上的差异

1、请问除了板端处理代码的原因,还存在其他可能的原因吗?数据处理上的差异大概指的是什么方面呢?我在测试onnx的时候输入的是rgb图,通过transformer转换成nv12,板端直接连接摄像头输入nv12的图。

2、请问怎样验证精度损失了多少?

你好,关于问题1:当使用工具验证quantized.onnx与bin模型的一致性后,说明两者在相同输入下,输出小数点后5位都是对齐的,这个也可以通过参数进行更严格的限制,如下图所示:

数据处理上的差异,比如opencv和skimage自身库的差异,resize不同插值方式的差异等。-
建议将Transformer转换成的nv12保存下来,在板端进行推理,这一步可以通过代码工具进行验证,比如工具的这个参数可以控制输入数据,如下图

也可以验证是否是摄像头直接给的nv12输入和transformer转成nv12存在差异。

关于问题2:通常验证quantized.onnx与bin的一致性即可,如果需要验证bin的精度的话,可以参考开发手册AI_benchmark章节进行

好的。谢谢,我试试