PP-YOLOE是基于PP-YOLOv2的卓越的单阶段Anchor-free模型,超越了多种流行的YOLO模型。PP-YOLOE有一系列的模型,即s/m/l/x,可以通过width multiplier和depth multiplier配置。PP-YOLOE避免了使用诸如Deformable Convolution或者Matrix NMS之类的特殊算子,以使其能轻松地部署在多种多样的硬件上。PP-YOLOE+是PP-YOLOE模型的升级版,PP-YOLOE+_l在COCO test-dev2017达到了53.3的mAP, 同时其速度在Tesla V100上达到了78.1 FPS。PP-YOLOE+_s/m/x同样具有卓越的精度速度性价比。paddle官方只给出了基于paddle框架的部署案例,为了更好的部署,为此实现将paddle模型转换为onnx模型,然后在python下实现onnxruntime部署和c++ onnxruntime部署。通过以下部署实现仅支持单图推理,不支持batch推理,后续在新的博客中会补充实现对batch的支持。

1、模型转换

在这里假设给已经安装好了paddledetection,并训练好了模型。具体可以参考paddle 31 安装paddledetection并训练自己的数据集(支持voc与coco数据集)

1.1 导出模型

进入PaddleDetection目录,使用tools/export_model.py命令可以按照需求将paddle动态图模型转换为paddle静态图。-c参数对应模型配置文件,-o参数对应训练好的的模型路径(路径前面需要带’weights='),–output_dir参数对

更多推荐

paddle 43 用onnxruntime实现ppyoloe模型的部署(含python和c++版本)