天天看點

目标檢測算法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部署方法

繼續閱讀