yolov3转onnx和原来torch的预测结果一致

1.想做的事情: yolov3的pth模型转成onnx,并用opencv调用
2. 原因: 希望不引入深度学习的框架,编译tensorflow谁编译谁懂!而且包文件也会小

做法:
1.参考大神的思路: 将yolov3的三个特征图输出重写,输出格式为xyxy,将upsample用转置卷积重写
2. yolov3训练的时候用新的网络正常训练,测试的时候np.concatenate三个特征图的输出去预测,这两个结果验证过是一样的
3. 想做的事: 将网络输出的pth模型转成onnx, 对onnx模型预测
4. 问题: onnx预测结果和3出来的不一样,框稀疏的地方结果一致,框比较密的地方会多框,且onnx出来的conf会比3出来的大些
2021年3月25更新:
遇到4这种问题从nms那边着手考虑,这是很典型的nms问题!
我出现这种问题的原因是yolov3网络里的nms那边的iou是giou,onnx那边用numpy写的原始iou,重新改成giou就一致了!

猜你喜欢

转载自blog.csdn.net/weixin_43868576/article/details/115217278