1,488
社区成员




我们使用Windows下使用QNN进行推理的时,如果选择在NPU上加载和运行量化版的dlc模型文件,对本地图片进行推理时,发现推理结果经过后处理后,目标的框位置是正确的,但是其对应的置信度,它们的值都为0或趋于0,并因此滤掉了所有检测出来的目标,请问这是怎么回事?
经过调试分析发现模型中最后一个激活层(Sigmoid)的输出是正确,但是最后一个链接层(Contact)的输出则是不正确的——置信度的值都为0或趋于0,如下图所示:
有两种法可以用来处理这个问题:
1)简单起见,加载构建原量化版yolov5l模型时,屏蔽其原输出层(output0),并添加最后一个激活层作为输出,并在后处理中对推理结果其进行额外的处理(Split、Mul、Add等);
2)编写python脚本或使用相关工具对onnx模型进行修改——删除Split及其后续节点,并添加三个输出节点分别与最后一个激活层Sigmod节点的输出相连接,后处理方式通前一种方式。