openRv1126 AI算法部署实战之——TensorFlow TFLite Pytorch ONNX等模型转换实战

Conda简介

查看当前系统的环境列表

复制代码
conda env list

base为基础环境

py3.6-rknn-1.7.3为模型转换环境,rknn-toolkit版本V1.7.3,python版本3.6

py3.6-tensorflow-2.5.0为tensorflow模型训练环境,tensorflow版本2.5.0,python版本3.6

py3.8-pytorch-1.13.0为pytorch、yolo模型训练环境,pytorch版本1.13.0,python版本3.8

进入模型转换环境

复制代码
conda activate py3.6-rknn-1.7.3

进入tensorflow模型训练环境

复制代码
conda activate py3.6-tensorflow-2.5.0

进入pytorch yolo模型训练环境

复制代码
conda activate py3.8-pytorch-1.13.0

退出当前终端下的虚拟环境

复制代码
conda deactivate

模型转换介绍

RV1126使用RKNN格式的模型文件。各深度学习框架不能直接使用,需要转换后才能放在RV1126上跑

模型转换环境版本介绍

复制代码
rknn-toolkit V1.7.3
python==3.6
tensorflow==1.14.0
mxnet==1.5.0
torch==1.10.0
torchvision==0.11.0
opencv-python==4.3.0.38

模型转换实操

//进入模型环境

复制代码
conda activate py3.6-rknn-1.7.3
cd ModelConvertSample/

转换ONNX ->RKNN

复制代码
python convert-onnx-to-rknn-pre.py

注意提示缺少libcudart.so属正常现象,原因是虚拟机使用cpu处理无法使用GPU处理,所以没有显卡cuda库文件

该脚本读取"./original_model/best.onnx"模型文件,

使用数据集'./dataset/dataset1.txt',

转换后保存为'./rknn_model/yolov5-7.0-onnx.rknn'文件

转换pytorch ->RKNN

复制代码
python convert-pytorch-to-rknn-pre.py

最终在rknn_model目录生成rknn文件

该脚本读取"./original_model/best.torchscript"模型文件,

使用数据集'./dataset/dataset1.txt',

转换后保存为'./rknn_model/yolov5-7.0-torchscript.rknn'文件

转换tensorflow ->RKNN

复制代码
python convert-tensorflow-to-rknn-pre.py

该脚本读取'./original_model/ssd_mobilenet_v1_coco_2018_01_28/frozen_inference_graph.pb'

模型文件,

使用数据集'./dataset/dataset3.txt',

转换后保存为'./rknn_model/ssd_mobilenet_v1_coco.rknn'文件

转换tflite ->RKNN

复制代码
python convert-tflite-to-rknn-pre.py

该脚本读取'./original_model/mobilenet_v1_1.0_224/mobilenet_v1_1.0_224.tflite'模型文件,

使用数据集'./dataset/dataset2.txt',

转换后保存为'./rknn_model/mobilenet_v1_1.0_224.rknn'文件

转换结果:生成以下四个rknn模型文件,后续我们将对这些模型全部部署到开发板运行

退出环境

复制代码
conda deactivate

转换其他模型

参考RK官方资料

https://github.com/rockchip-linux/rknn-toolkit

附:操作命令

复制代码
一、TFLite预训练模型转换 tflite->rknn
说明:      
    TFLite预训练模型下载地址:https://github.com/tensorflow/models/blob/master/research/slim/nets/mobilenet_v1.md
		下载MobileNet_v1_1.0_224
    数据集: ILSVRC-2012-CLS image 
    标签文件:https://github.com/leferrad/tensorflow-mobilenet/blob/master/imagenet/labels.txt
	
convert-tflite-to-rknn.py
    target = 'rv1126'	//确定目标设备target
    rknn = RKNN()		//创建RKNN对象
	rknn.config(quantized_dtype='asymmetric_affine-u8',			//配置RKNN模型
					mean_values=[[127.5, 127.5, 127.5]],#归一化
					std_values=[[127.5, 127.5, 127.5]],
					reorder_channel='0 1 2',#RGB
					target_platform=[target])#指定平台
	rknn.load_tflite(model='./original_model/mobilenet_v1_1.0_224/mobilenet_v1_1.0_224.tflite')//加载模型
	rknn.build(do_quantization=True, dataset='./dataset/dataset2.txt',pre_compile=True)//构建RKNN模型:指定参数需要量化,且指定量化数据集dataset2
    rknn.release()# 释放RKNN对象
	
	python convert-tflite-to-rknn-pre.py
	
二、TensorFlow预训练模型(ssd)转换rknn pb->rknn
	TF预训练模型下载地址:
    https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/tf1_detection_zoo.md
    http://download.tensorflow.org/models/object_detection/ssd_mobilenet_v1_coco_2018_01_28.tar.gz 

    数据集:MSCOCO数据集https://cocodataset.org
            Object(论文版本)有90类物体(加上一个背景类就是91类),label_map可参考:
            https://github.com/tensorflow/models/blob/master/research/object_detection/data/mscoco_label_map.pbtxt

            注:很多时候,在目标检测这块,只用到了原论文版本90类中的80类(加上背景类,就是81类)物体。
            Object(2014年版本)和Object(2017年版本)的label_map对应的说明文件可参考:
            https://github.com/tensorflow/models/blob/master/research/object_detection/data/mscoco_complete_label_map.pbtxt
			
	python convert-tensorflow-to-rknn-pre.py 
相关推荐
shehuiyuelaiyuehao4 小时前
算法31,前缀和,可被k整除的子数组
数据结构·python·算法
ggb喔4 小时前
AI 原生攻防时代:2026 年渗透测试与逆向开发的范式重构
人工智能·重构
宸津-代码粉碎机4 小时前
AI攻防战升级!基于Spring AI构建Java应用自动免疫安全体系
java·大数据·开发语言·人工智能·python·安全·spring
克里斯蒂亚诺更新5 小时前
机器学习库sklearn的主要任务
人工智能·机器学习·sklearn
先跑起来再说5 小时前
Qavor:一个能跑、能观测、能扩展的开源 AI Agent 工作台
人工智能·开源
Mr数据杨5 小时前
从文本特征到回归建模 Syllable Counting Model 实战解析
人工智能·数据分析·kaggle竞赛
HIT_Weston5 小时前
201、【Agent】【OpenCode】JS 语法:setTimeout 七种常用形式
人工智能·agent·opencode
维基框架5 小时前
萨尔瓦多学校免费上Grok 没账单的AI怎么限流
人工智能
敢敢是只喵i5 小时前
给现有业务系统接 AI 助手,入口怎么选?网页聊天、自动化任务与本地 Agent 对比
运维·人工智能·ai·开源·自动化·安全架构
AI行业说5 小时前
誉财自动化YC-18-M8045实测:服装自动化vs人工缝制产能成本对比
大数据·人工智能·自动化·智能模板机