rk3588多模型检测部署quickrun

quickrun 是一款rk3588 rknn多模型高效高并发部署软件

软件框架

采用session思想,可以定义多个session满足不同模型的义务需求。比如充电桩检测,垃圾分类,悬崖检测,模型共用一个摄像头,采用yolov5的模型。
rk3588多模型检测部署quickrun_第1张图片

  1. 采用消息队列存放照片数据是为了防止丢帧以及高效并发,一般情况下,采集照片数据25fps,前后处理+推理时间=40ms,25fps,所以基本取消息和存消息时间相等。
  2. 由于是模型是640*640 输入,摄像头是640 * 480输入,解码用cv::imdecode, rgb 格式输入模型,使用rga加速等比例缩放。
  3. 由于三个模型设置三个session的独立线程,之间相互独立,互不干扰。

模型输出

rk3588 yolov5模型输出注意转换为onnx的时候在forward 层去掉cat的操作,直接输出2020,4040,80*80三个特征图

性能

一个模型占用npu:1.2T,cpu:40%(前处理,推理,后处理画框), 推理时间20ms。使用perf top -p 查看cpu使用率,并且可以精确到具体某一个函数的cpu使用率

源码地址 https://github.com/dreamflyforever/quickrun

你可能感兴趣的:(视觉AI,rknn,rk3588,多模型推理并发,c++)