在RK3588上部署PPYOLOE模型

PP-YOLOE 是基于PP-YOLOv2的卓越的单阶段Anchor-free模型, 超越了多种流行的YOLO模型。PP-YOLOE有一系列的模型,即s/m/l/x,可以通过width multiplier和depth multiplier配置。

一、搭建PPYOLOE虚拟环境

1. 在Windows中安装miniaconda,下载地址:https://repo.anaconda.com/miniconda/Miniconda3-latest-Windows-x86_64.exe

安装好后在Anaconda PowershellPrompt (miniconda3)中创建虚拟环境

conda create -n PPYOLOE python=3.8  //创建环境
conda activate PPYOLOE  //进入虚拟环境

2. 安装PPYOLOE依赖

百度飞桨框架下载地址:开始使用_飞桨-源于产业实践的开源深度学习平台,我的电脑是集显,所以使用的是CPU版本。

 

 执行以下命令进行安装

conda install paddlepaddle==2.6.1 --channel https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/Paddle/

安装以下包,防止模型在运行中出错 

pip install Pillow==9.5.0

3. 获取PPYOLOE源码

git clone https://github.com/PaddlePaddle/PaddleYOLO.git //这里使用的是2.6 release

4. 获取模型权重,这里使用轻量化的s模型,

https://bj.bcebos.com/v1/paddledet/models/ppyoloe_plus_crn_s_80e_coco.pdparams

5. 验证环境是否搭建成功

修改PaddleYOLO/configs/runtime.yml,设置cpu推理

执行推理,使用以下命令

python tools/infer.py -c configs/ppyoloe/ppyoloe_plus_crn_s_80e_coco.yml -o weights=ppyoloe_plus_crn_s_80e_coco.pdparams --infer_img=demo/000000014439_640x640.jpg --draw_threshold=0.5

 显示以上结果说明paddle环境配置成功

二、 导出ONNX模型

为了在 RKNPU 上获得更优的推理性能,我们调整了模型的输出结构,这些调整会影响到后处理的逻辑,主要包含以下内容

1. 修改:ppdet/modeling/architectures/yolo.py

2.  修改:ppdet/modeling/architectures/yolo.py

 上面简单的修改只用于模型导出,训练模型时请注释掉。

# 切换到PaddleYOLO源码目录下,然后使用tools/export_model.py 导出paddle模型

cd PaddleDetection

 执行以下命令

python tools/export_model.py -c configs/ppyoloe/ppyoloe_plus_crn_s_80e_coco.yml  -o weights=ppyoloe_plus_crn_s_80e_coco.pdparams exclude_nms=True exclude_post_process=True --output_dir inference_model

 模型保存在inference_model/ppyoloe_plus_crn_s_80e_coco目录下:

 然后将paddle模型转换成ONNX模型

安装 paddle2onnx-1.0.6工具

pip install paddle2onnx
#转换模型 
paddle2onnx --model_dir inference_model/ppyoloe_plus_crn_s_80e_coco  --model_filename model.pdmodel  --params_filename model.pdiparams  --opset_version 11 --save_file ./inference_model/ppyoloe_plus_crn_s_80e_coco/ppyoloe_plus_crn_s_80e_coco.onnx
# 固定模型shape
python -m paddle2onnx.optimize --input_model inference_model/ppyoloe_plus_crn_s_80e_coco/ppyoloe_plus_crn_s_80e_coco.onnx --output_model inference_model/ppyoloe_plus_crn_s_80e_coco/ppyoloe_plus_crn_s_80e_coco.onnx  --input_shape_dict "{'image':[1,3,640,640]}"

 三、将onnx模型转换成rknn模型

使用rknn-Toolkit2工具,转换onnx模型为rknn,可以使用 rknn_model_zoo 的程序

下载链接:GitHub - airockchip/rknn_model_zoo

1. 在ubuntu中进入到Toolkit2环境中,进入到​rknn_model_zoo/examples/ppyoloe/python/目录下,使用以下命令进行转换

python3 convert.py ../model/xxx.onnx rk3588

四、在RK3588上部署

1. 在鲁班猫4上拉取GitHub - airockchip/rknn_model_zoo

git clone https://github.com/airockchip/rknn_model_zoo/tree/main
#切换到rknn_model_zoo/libs/rklibs目录,然后拉取相关库,包括rknpu2 和 librga
cd rknn_model_zoo/libs/rklibs
git clone https://github.com/rockchip-linux/rknpu2
git clone https://github.com/airockchip/librga

 进入到以下目录,并将rknn文件通过FileZilla传到该目录下

cd rknn_model_zoo/models/CV/object_detection/yolo/RKNN_C_demo/RKNN_toolkit_2/rknn_yolo_demo

 在该目录下执行以下命令,会在同级目录下生成install文件夹

./build-linux_RK3588.sh

进入 到install/rk3588/Linux/rknn_yolo_demo目录下进行推理

./rknn_yolo_demo q8 ./ppyoloe.rknn ./model/bus640.jpg ./model/test.jpg

 

rk3588evb是一款基于Rockchip RK3588芯片的开发板,用于人工智能应用领域。模型部署是指将训练好的模型应用到实际场景中,以实现特定的任务。而视频检测则是指通过对视频中的内容进行分析和识别,从而实现人、物体、动作等的检测和识别功能。 将模型部署rk3588evb上进行视频检测,首先需要将训练好的模型导入到rk3588evb的开发环境中。开发环境可以是使用开发板的SDK或者工具包。通过将模型与开发环境进行适配,可以确保模型可以在rk3588evb上正常运行。 接下来,在rk3588evb上编写运行代码,使用模型对视频进行检测。视频检测涉及到识别和追踪视频中的人和物体。可以通过处理视频的每一帧图像,并将其输入到模型中进行预测和判别。模型会根据训练时的分类标准,识别出视频中的不同物体和动作。 为了提高视频检测的效果,可以采用一些优化方法和技术。例如,可以使用图像处理算法对视频图像进行预处理,以提高模型的输入质量。同时,可以将模型与物体跟踪算法相结合,以实现对运动物体的跟踪和检测。 最后,将视频检测的结果进行输出和展示。可以将检测到的物体和动作标注在视频中,或者生成报告和统计数据。这样可以方便用户对视频内容进行分析和理解。 通过在rk3588evb上进行模型部署,可以实现视频检测的任务,为用户提供智能化的视频分析。同时,rk3588evb作为高性能的开发板,能够提供足够的计算能力,以满足视频检测的需求。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

曲途光未央

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值