本博文以ppyoloe_r为例,实现ppyoloe_r模型的onnx导出部署。
使用paddledetection做旋转框预测可以参考:
paddle 45 使用paddledetection做旋转框预测(预测自己的dota数据集)
1、导出模型
paddledetection中的旋转框模型在导出部署是可以使用paddle框架正常进行部署的,但是由于其在进行旋转框nms时需要特殊的算子,无法在正常的onnxruntime框架进行部署,故此需要修改部分导出源码。同时,ppyoloe_r模型的两个输出shape也没有正常对其,在c++部署时读取数据无法便捷的读取对应grid预测的boxes和class confs。
1.1 修改ppyoloe_r_head.py
修改ppdet/modeling/heads/ppyoloe_r_head.py的post_process函数 只针对paddledetection 2.4有效。新版本的post_process可能需要3个返回值,可以修改return为pred_scores, pred_bboxes,none