草庐IT

yolov8 瑞芯微 RKNN 的 C++部署

  上一篇博客yolov8瑞芯微RKNN和地平线Horizon芯片仿真测试部署写了在rknn模型的转换与PC端仿真测试,有网友希望写一篇在板子上部署的博文和开源提供C++代码。这一篇基于rknn板子进行C++部署,并开源提供完整的源代码和模型,供网友自行进行测试验证。特别说明:如有侵权告知删除,谢谢。【完整代码】代码和模型1、rknn模型准备  onnx转rknn模型这一步就不再赘述,请参考上一篇”yolov8瑞芯微RKNN和地平线Horizon芯片仿真测试部署“。上一篇提供了完整的模型和代码,如果仅仅是想验证模型,可以直接拿提供的rknn模型进行后续的步骤,本篇也是基于上一篇转好的rknn模

(一)模型量化与RKNN模型部署

文章目录1.计算平台运算能力评估2.模型量化原因3.模型量化方式3.1基本原理3.1.1int83.1.2.uint83.2量化分类4.模型量化方法4.1Per-Layer/Per-Tensor4.2Per-Channel5.RockchipNPU相关5.1数据排列方式5.2`rknn_output`设置`want_float`5.3开发板上组件版本查询方法参考资料欢迎访问个人网络日志🌹🌹知行空间🌹🌹1.计算平台运算能力评估深度学习模型部署运算量的衡量使用的是乘累加运算次数MAC,MultiplyAccumulate,形如:a←a+b+ca\leftarrowa+b+ca←a+b+c硬件的运算

RKNN模型训练转换部署

1.背景做了一个手机版本的人流量计数,显然不能最终真实环境实施,因为数据集不够,并且硬件还需要搭载其他设备,所以使用的是安卓工控机,但推理速度非常慢,接近500ms,换一个好的CPU,比如3568工控机等,速度也是在150ms左右,但是发现了Firefly相关文档,瑞芯微,可以用NPU做计算,那开始吧。2.先快速体验一下NPUROC-RK3568-PC板子这是一款次旗舰级,3588性能会更高,目前使用的3568做的开发。rknn-toolkit主要是针对RK1808/RK1806/RV1109/RV1126,对应需要的库地址rknpu,所以这个忽略,使用下面的工具。rknn-toolkit2主

RKNN模型训练转换部署

1.背景做了一个手机版本的人流量计数,显然不能最终真实环境实施,因为数据集不够,并且硬件还需要搭载其他设备,所以使用的是安卓工控机,但推理速度非常慢,接近500ms,换一个好的CPU,比如3568工控机等,速度也是在150ms左右,但是发现了Firefly相关文档,瑞芯微,可以用NPU做计算,那开始吧。2.先快速体验一下NPUROC-RK3568-PC板子这是一款次旗舰级,3588性能会更高,目前使用的3568做的开发。rknn-toolkit主要是针对RK1808/RK1806/RV1109/RV1126,对应需要的库地址rknpu,所以这个忽略,使用下面的工具。rknn-toolkit2主

RKNN模型部署(3)—— 模型转换与测试

文章目录1常用API介绍1.1rknn初始化及释放1.2rknn模型配置1.3PT模型加载1.4rknn模型转化1.5模型导出1.6rknn运行环境初始化1.7rknn模型推理1.8rknn性能评估2pth2pt3pt2rknn3.1界面转换3.2代码转换4测试4.1模型推理4.2量化后检测不出目标或精度大幅下降4.2.1模型训练注意事项4.2.2RKNN量化过程使用的Dataset4.2.3RKNN量化过程的参数设置1常用API介绍1.1rknn初始化及释放初始化函数:rknn=RKNN(verbose,verbose_file)初始化RKNN对象时,可以设置verbose和verbose_

RKNN模型部署(3)—— 模型转换与测试

文章目录1常用API介绍1.1rknn初始化及释放1.2rknn模型配置1.3PT模型加载1.4rknn模型转化1.5模型导出1.6rknn运行环境初始化1.7rknn模型推理1.8rknn性能评估2pth2pt3pt2rknn3.1界面转换3.2代码转换4测试4.1模型推理4.2量化后检测不出目标或精度大幅下降4.2.1模型训练注意事项4.2.2RKNN量化过程使用的Dataset4.2.3RKNN量化过程的参数设置1常用API介绍1.1rknn初始化及释放初始化函数:rknn=RKNN(verbose,verbose_file)初始化RKNN对象时,可以设置verbose和verbose_

yolov5训练自己的pt文件,转onnx,再转成rknn,到RK3588开发板运行测试

一、训练自己的模型yolov5训练好自己的模型,例如训练完后,名称为best.pt,路径为runs/exp/weights/best.pt。采用detect.py文件验证best.pt可以正常检测目标,再进行下一步工作。二、pt转onnx修改utils/yolo.py文件的后处理部分,将classDetect(nn.Module)类的子函数forward由defforward(self,x):z=[]#inferenceoutputforiinrange(self.nl):x[i]=self.m[i](x[i])#convbs,_,ny,nx=x[i].shape#x(bs,255,20,20

36、RK3399Pro 环境搭建和Yolov5 c++调用opencv进行RKNN模型部署和使用

基本思想:记录rk3399pro配置环境和c++npu开发记录,主要想搞一份c++代码和其它图像算法结合一下,好进行部署,淘宝链接见附录 需要的python3.7对应的aarch64的whl包:包含opencv-whl、h5py-whl包:链接:https://pan.baidu.com/s/1cvCAmHBa_4KgEjrcFIYnig提取码:5ui4链接:https://pan.baidu.com/s/1hrcr8Fc2sboD1_uy8T1Z8Q提取码:e4wq第一步:因为系统是python3.8,因为官方没有提供python3.8的rknn的版本,需要安装anconda环境构建pyth

yolov8 瑞芯微RKNN和地平线Horizon芯片仿真测试部署

特别说明:参考官方开源的yolov8代码、瑞芯微官方文档、地平线的官方文档,如有侵权告知删,谢谢。模型和完整仿真测试代码,放在github上参考链接模型和代码。跟上技术的步伐,yolov8首个板端芯片部署。1模型和训练  训练代码参考官方开源的yolov8训练代码,由于SiLU在有些板端芯片上还不支持,因此将其改为ReLU。2导出yolov8onnx  后处理中有些算在板端芯片上效率低或者不支持,导出onnx需要将板端芯片不友好或不支持算子规避掉。导出onnx修改的部分。第一步:进行预测将pt只保存权重,增加代码如下图。#保存权重值importtorchself.model.fuse()sel

yolo v7 转rknn

上一篇:yolov5-release6.0转rknn一、训练1.切换版本gitclonehttps://github.com/WongKinYiu/yolov7.gitcdyolov7gitcheckout44d8ab41780e24eba563b6794371f29db09022712.训练v7的训练可以参考v5训练:yolov5初识(ubuntu版)、yolov5初识(win版)二、pt2onnx注意一下,opset_version=12pythonexport.py--weights="runs/train/exp/weights/best.pt"--simplify三、onnx2rkn