天天看点

目标检测算法PP-PicoDet的.NET Onnx部署方法

作者:路人甲0614

PP-PicoDet 是飞桨推出的超轻量目标检测算法。本次选用的模型是picodet_s_320,导出的onnx文件不到5M,使用i5-6200U的古董CPU,加载模型约1s,推理一张图片约100ms左右。

环境

在NET中部署picodet的推理可以通过OnnxRuntime和OpencvSharp4实现。需要添加以下NuGet包。

目标检测算法PP-PicoDet的.NET Onnx部署方法

模型输入

目标检测算法PP-PicoDet的.NET Onnx部署方法

输入参数有两个:image和scale_factor

image:3通道320*320的图片。通过Cv2.ImDecode()解码得到BGR格式的图片,然后ReSize到320*320,并Normalize处理时按RGB顺序输出TensorInput。

目标检测算法PP-PicoDet的.NET Onnx部署方法

ImDecode

目标检测算法PP-PicoDet的.NET Onnx部署方法

Mat To Tensor

scale_factor:缩放系数,用于后处理。为模型输入大小/原图大小。

目标检测算法PP-PicoDet的.NET Onnx部署方法

模型输出

目标检测算法PP-PicoDet的.NET Onnx部署方法

PP-PicoDet Outputs

有两个输出,这里我们只要处理第一个即可。其中每行依次为:class,confidence,xmin,ymin,xmax,ymax。

目标检测算法PP-PicoDet的.NET Onnx部署方法

完整流程

还是比较简单的,重点在于图片的处理上,有一点比较奇怪的官方示例在Resize使用的是INTERLINEAR,但是实际使用时居然要用Nearest效果比较好!

目标检测算法PP-PicoDet的.NET Onnx部署方法

继续阅读