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 
相关推荐
磊磊落落38 分钟前
编写一个 VS Code 扩展:将 Copilot 支持的大模型通过 REST API 方式暴露出来
人工智能
格林威41 分钟前
多相机拼接:消除重叠区域的6个核心方法,附OpenCV+Halcon实战代码!
人工智能·数码相机·opencv·计算机视觉·机器人·视觉检测·制造
Aspect of twilight41 分钟前
LeetCode华为2025年秋招AI大模型岗刷题(四)
算法·leetcode·职场和发展
小白量化2 小时前
聚宽策略分享-1年化98国九条后中小板微盘小改
大数据·数据库·人工智能·量化·qmt
张拭心6 小时前
Cursor 又偷偷更新,这个功能太实用:Visual Editor for Cursor Browser
前端·人工智能
吴佳浩7 小时前
大模型 MoE,你明白了么?
人工智能·llm
im_AMBER8 小时前
Leetcode 74 K 和数对的最大数目
数据结构·笔记·学习·算法·leetcode
Blossom.1188 小时前
基于Embedding+图神经网络的开源软件供应链漏洞检测:从SBOM到自动修复的完整实践
人工智能·分布式·深度学习·神经网络·copilot·开源软件·embedding
t198751288 小时前
电力系统经典节点系统潮流计算MATLAB实现
人工智能·算法·matlab
万悉科技8 小时前
比 Profound 更适合中国企业的GEO产品
大数据·人工智能