天天看點

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就一緻了!

繼續閱讀