FastDeploy icon indicating copy to clipboard operation
FastDeploy copied to clipboard

[Backend] Add RKNPU2 backend support

Open Zheng-Bicheng opened this issue 1 year ago • 5 comments

PR types

New features

PR changes

Others

Describe

新增rknn backend 目前已经支持的模型:

  • Picodet-s-npu
  • PP-LiteSeg
  • PP-HumanSegV2Lite-portrait
  • PP-HumanSegV2Lite-human
  • SCRFD
  • ArcFace
  • cosFace

Zheng-Bicheng avatar Oct 14 '22 06:10 Zheng-Bicheng

scrfd模型测试(屏蔽nhwc转nchw的代码),几乎不存在误差 onnx推理结果 scrfd_cpu_result rknn推理结果 scrfd_rknn_vis_result

Zheng-Bicheng avatar Oct 15 '22 14:10 Zheng-Bicheng

yolov5模型测试(onnx模型为yolov5 6.0固定shape为(1,3,640,640)),rknn模型存在比较大的误差

onnx模型推理结果 yolov5s_cpu_vis_result rknn模型推理结果 yolov5s_rknn_vis_result

Zheng-Bicheng avatar Oct 15 '22 14:10 Zheng-Bicheng

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

Zheng-Bicheng avatar Oct 15 '22 14:10 Zheng-Bicheng

yolov5问题初步判断是方框部分推理出现问题。

判断过程如下:

我输出了nms前的label和confidence,发现并无明显差异(误差1%以内),因此基本排除是label和confidence部分出错。

onnx nms前label和confidence

before_nms_onnx.txt

rknn nms前label和confidence

before_nms_rknn.txt

我输出了nms后的方框信息,发现存在较大差距,且体现在定位上,因此基本上可以认为是方框部分推理不准确,导致nms并没有过滤掉这部分本该“重叠”的方框。

onnx nms后的方框信息 after_nms_onnx.txt

rknn nms后的方框信息 after_nms_rknn.txt

Zheng-Bicheng avatar Oct 15 '22 14:10 Zheng-Bicheng

目前测试出来的推理Bug的模型,等3588板子到了以后排查:

  • yolov5 6.0(坐标点计算出现问题)
  • MobileNetV3_small_x0_35_ssld(计算不准)

目前测试出来的无法直接转换的模型

  • PaddleDetection系列(导出时集成了NMS等后处理操作,RKNPU2不支持,需要重写后处理)

Zheng-Bicheng avatar Oct 18 '22 14:10 Zheng-Bicheng