FastDeploy
FastDeploy copied to clipboard
[Backend] Add RKNPU2 backend support
PR types
New features
PR changes
Others
Describe
新增rknn backend 目前已经支持的模型:
- Picodet-s-npu
- PP-LiteSeg
- PP-HumanSegV2Lite-portrait
- PP-HumanSegV2Lite-human
- SCRFD
- ArcFace
- cosFace
scrfd模型测试(屏蔽nhwc转nchw的代码),几乎不存在误差
onnx推理结果
rknn推理结果
yolov5模型测试(onnx模型为yolov5 6.0固定shape为(1,3,640,640)),rknn模型存在比较大的误差
onnx模型推理结果
rknn模型推理结果
arcface模型测试(使用的模型为ms1mv3_arcface_r100 固定输入shape为(1,3,112,112)),存在一定误差,但是并不明显 onnx推理结果
--- [Face 0]:FaceRecognitionResult: [Dim(512), Min(-2.309219), Max(2.372197), Mean(0.016987)]
--- [Face 1]:FaceRecognitionResult: [Dim(512), Min(-2.288257), Max(1.995103), Mean(-0.003400)]
--- [Face 2]:FaceRecognitionResult: [Dim(512), Min(-3.243412), Max(3.875865), Mean(-0.030682)]
Detect ArcFace In Cpu Done! Cosine 01: 0.814385, Cosine 02: -0.059388
rknn 推理结果
--- [Face 0]:FaceRecognitionResult: [Dim(512), Min(-2.310547), Max(2.371094), Mean(0.016962)]
--- [Face 1]:FaceRecognitionResult: [Dim(512), Min(-2.287109), Max(1.996094), Mean(-0.003369)]
--- [Face 2]:FaceRecognitionResult: [Dim(512), Min(-3.242188), Max(3.873047), Mean(-0.030661)]
Detect ArcFace In Cpu Done! Cosine 01: 0.814365, Cosine 02: -0.0594706
yolov5问题初步判断是方框部分推理出现问题。
判断过程如下:
我输出了nms前的label和confidence,发现并无明显差异(误差1%以内),因此基本排除是label和confidence部分出错。
onnx nms前label和confidence
rknn nms前label和confidence
我输出了nms后的方框信息,发现存在较大差距,且体现在定位上,因此基本上可以认为是方框部分推理不准确,导致nms并没有过滤掉这部分本该“重叠”的方框。
onnx nms后的方框信息 after_nms_onnx.txt
rknn nms后的方框信息 after_nms_rknn.txt
目前测试出来的推理Bug的模型,等3588板子到了以后排查:
- yolov5 6.0(坐标点计算出现问题)
- MobileNetV3_small_x0_35_ssld(计算不准)
目前测试出来的无法直接转换的模型
- PaddleDetection系列(导出时集成了NMS等后处理操作,RKNPU2不支持,需要重写后处理)