0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

瑞芯微(EASY EAI)RV1126B resnet50训练部署教程

广州灵眸科技有限公司 2026-05-08 10:36 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

1. Resnet50简介

ResNet50网络是2015年由微软实验室的何恺明提出,获得ILSVRC2015图像分类竞赛第一名。在ResNet网络提出之前,传统的卷积神经网络都是将一系列的卷积层和池化层堆叠得到的,但当网络堆叠到一定深度时,就会出现退化问题。 残差网络的特点是容易优化,并且能够通过增加相当的深度来提高准确率。其内部的残差块使用了跳跃连接,缓解了在深度神经网络中增加深度带来的梯度消失问题。

本教程基于图像分类算法ResNet50的训练和部署到EASY-EAI-Nano-TB(RV1126B)进行说明。

v2-7f0a07cf236c857bd339fb88fd6a41cf_720w.webp

2. 准备数据集

2.1 数据集下载

本教程以车辆分类算法为例,数据集的百度网盘下载链接为:

https://pan.baidu.com/s/1ZLuEpqLRlEcvgmkFXvj6-Q?pwd=1234 提取码:1234

解压完成后得到以下两个文件夹:

v2-22da5eeca651435cd681c0c52b3b7c12_720w.webp

打开可以看到一共10类汽车:

v2-abf6ab72de450162dd7151741b78590f_720w.webp

类别名称与类别索引关系如下所示:

v2-0baceddb0716619e0dca23ea50f03889_720w.webp

3. ResNet50图像分类训练

3.1 训练源码下载

训练源码的百度网盘下载链接为:

https://pan.baidu.com/s/16Gm_dyJKXKdZNdqKolL1kA?pwd=1234 提取码:1234

得到下图所示目录:

v2-2989f87f0b419f75f5a05c0f6f5f3783_720w.webp

把数据集解压到当前目录:

v2-468dda2e1bb9202b1cca73699027e2c1_720w.webp

3.2 训练模型

进入anconda的pyTorch环境,切换到训练源码目录执行以下指令开始训练:

python train.py

执行结果如下图所示:

v2-52ec319bceef5156f3e65b298caa4ff3_720w.webp

训练结束后test loss结果如下所示:

v2-20e694a2e117efcb040756326b7cf3ff_720w.webp

训练结束后test accuracy结果如下所示:

v2-f83f1fdeb11efe0679986f0170f0503c_720w.webp

生成的最优模型如下所示:

v2-675d89089baa0d000fc445d9e27de46e_720w.webp

3.3 在PC端测试模型

在训练源码目录执行以下指令,测试模型(生成模型名称不一致则修改predict.py脚本):

python predict.py

v2-6466184eef32f51ce414e536c912a7b8_720w.webp

结果类别索引号为1——BUS, 测试结果正确。

v2-e2a961673e9b33a0d633e0c8871e16aa_720w.webp

3.4 pth模型转换为onnx模型

执行以下指令把pytorch的pth模型转换onxx模型:

python pth_to_onnx.py

v2-7f25008fec92cfc3a05ef0a841f80714_720w.webp

生成ONNX模型如下所示:

v2-f681df72ab741b5c2a51fad67f72c5c9_720w.webp

4. rknn-toolkit模型转换

4.1 rknn-toolkit模型转换环境搭建

onnx模型需要转换为rknn模型才能在EASY-EAI-Nano-TB运行,所以需要先搭建rknn-toolkit模型转换工具的环境。当然tensorflow、tensroflow lite、caffe、darknet等也是通过类似的方法进行模型转换,只是本教程onnx为例。

4.1.1 概述

模型转换环境搭建流程如下所示:

v2-797401af3f1b4305111eaca3c5121e02_720w.webp

4.1.2 下载模型转换工具

为了保证模型转换工具顺利运行,请下载网盘里“06.AI算法开发/01.rknn-toolkit2模型转换工具/rknn-toolkit2-v2.3.2/docker/docker_image/rknn-toolkit2-v2.3.2-cp38-docker.tar.gz”

网盘下载链接:https://pan.baidu.com/s/1wUy-UBy9n81p7jlee_dBVA?pwd=1234提取码:1234。

4.1.3 把工具移到ubuntu20.04

把下载完成的docker镜像移到我司的虚拟机ubuntu20.04的rknn-toolkit2目录,如下图所示:

v2-051fc60482f490d226f0cdd9dbb6f25f_720w.webp

4.1.4 运行模型转换工具环境

在该目录打开终端

v2-e721750085b7f41cb6006f0f31103ee9_720w.webp

执行以下指令加载模型转换工具docker镜像:

docker load --input rknn-toolkit2-v2.3.2-cp38-docker.tar.gz

执行以下指令进入镜像bash环境:

docker run -t -i --privileged -v /dev/bus/usb:/dev/bus/usb -v /home/developer/rknn-toolkit2/model_convert_test:/test rknn-toolkit2:2.3.2-cp38 /bin/bash

现象如下图所示:

v2-0d5b568ed51fd1a38a5512d8182b8f6d_720w.webp

输入“python”加载python相关库,尝试加载rknn库,如下图环境测试成功:

v2-2862312dd40d22e7230452c6b662c296_720w.webp

至此,模型转换工具环境搭建完成。

4.2 模型转换为RKNN

EASY-EAI-Nano-TB支持.rknn后缀的模型的评估及运行,对于常见的tensorflow、tensroflow lite、caffe、darknet、onnx和Pytorch模型都可以通过我们提供的 toolkit 工具将其转换至 rknn 模型,而对于其他框架训练出来的模型,也可以先将其转至 onnx 模型再转换为 rknn 模型。 模型转换操作流程入下图所示:

v2-a664bde92e9af4a3902a8b9c1551e4b5_720w.webp

4.2.1 模型转换Demo下载

下载百度网盘链接:https://pan.baidu.com/s/1cpY_2zDJ18IURf8jTBHh8A?pwd=1234 提取码:1234。把resnet50_model_convert.tar.bz2quant_dataset.zip解压到虚拟机,如下图所示:

v2-6209e9cc12d65224f90a9fa75134aa91_720w.webp

4.2.2 进入模型转换工具docker环境

执行以下指令把工作区域映射进docker镜像,其中/home/developer/rknn-toolkit2/model_convert为工作区域,/test为映射到docker镜像,/dev/bus/usb:/dev/bus/usb为映射usb到docker镜像:

docker run -t -i --privileged -v /dev/bus/usb:/dev/bus/usb -v /home/developer/rknn-toolkit2/model_convert:/test rknn-toolkit2:2.3.2-cp38 /bin/bash

执行成功如下图所示:

v2-4ef7d51da807fac864c86b91a870b2d3_720w.webp

4.2.3 模型转换Demo目录介绍

模型转换测试Demo由resnet50_model_convertquant_dataset组成。resnet50_model_convert存放软件脚本,quant_dataset存放量化模型所需的数据。如下图所示:

v2-3cd742725f7a546f3beeb598538bda4e_720w.webp

resnet50_model_convert文件夹存放以下内容,如下图所示:

v2-3ff9cedb38a2b9427a68d40085d4aa77_720w.webp

4.2.4 生成量化图片列表

在docker环境切换到模型转换工作目录:

cd /test/resnet50_model_convert

如下图所示:

v2-aff3b050e15b0fe53095c98523a75bb3_720w.webp

执行gen_list.py生成量化图片列表:

python gen_list.py

命令行现象如下图所示:

v2-4326494cedbe0a033ee52c9b064147d2_720w.webp

生成“量化图片列表”如下文件夹所示:

v2-9fce135a3ad28bf24e179293363b6d17_720w.webp

4.2.5 onnx模型转换为rknn模型

rknn_convert.py脚本默认进行int8量化操作,脚本代码清单如下所示:

import os import urllib import traceback import time import sys import numpy as np import cv2 from rknn.api import RKNN ONNX_MODEL = '10class_ResNet50.onnx' RKNN_MODEL = './10class_ResNet50_rv1126b.rknn' DATASET = './pic_path.txt' QUANTIZE_ON = True if __name__ == '__main__': # Create RKNN object rknn = RKNN(verbose=False) if not os.path.exists(ONNX_MODEL): print('model not exist') exit(-1) # pre-process config print('--> Config model') rknn.config(mean_values=[[123.67, 116.28,103.53]], std_values=[[58.395, 57.12, 57.375]], target_platform = 'rv1126b') print('done') # Load ONNX model print('--> Loading model') ret = rknn.load_onnx(model=ONNX_MODEL) if ret != 0: print('Load failed!') exit(ret) print('done') # Build model print('--> Building model') ret = rknn.build(do_quantization=QUANTIZE_ON, dataset=DATASET) if ret != 0: print('Build resnet failed!') exit(ret) print('done') # Export RKNN model print('--> Export RKNN model') ret = rknn.export_rknn(RKNN_MODEL) if ret != 0: print('Export resnet failed!') exit(ret) print('done') rknn.release()

把onnx模型10class_ResNet50.onnx放到resnet50_model_convert目录,并执行rknn_convert.py脚本进行模型转换:

python rknn_convert.py

生成模型如下图所示,此模型可以在rknn-toolkit环境和EASY EAI Nano-TB环境运行:

v2-907901af804928fc2f1978c7755f631d_720w.webp

5. ResNet50图像分类部署

5.1 模型部署示例介绍

本小节展示ResNet50模型的在EASY EAI Nano-TB的部署过程,该模型仅经过简单训练供示例使用,不保证模型精度。

5.2 准备工作

5.2.1 硬件准备

需准备EASY EAI Nano-TB开发板,Type-C数据线、网线。可以基于MobaXterm的ssh远程桌面登录调试。首先使用网线把EASY EAI Nano-TB的千兆以太网接口连着路由LAN口的交换机或者路由器的LAN口连接,如下图所示。

v2-e1774be2e9f82986605e9308c785c5d1_720w.webp

以及串口连接。

v2-42f9a69fda0db2099b36677c51e787b5_720w.webp

5.2.2 开发环境准备

如果您初次阅读此文档,请阅读《入门指南/开发环境准备/Easy-Eai编译环境准备与更新》,并按照其相关的操作,进行编译环境的部署

在PC端Ubuntu系统中执行run脚本,进入EASY-EAI编译环境,具体如下所示。

cd ~/develop_environment ./run.sh 2204

v2-e1127efd76bcca3331922be6d17e546f_720w.webp

5.3 源码下载以及例程编译

下载ResNet50 C Demo示例文件。

百度网盘链接: (https://pan.baidu.com/s/1ecsc-vl9Qh6DjgRa_Eibvg?pwd=1234 提取码:1234)。

下载程序包移至ubuntu环境后,执行以下指令解压:

tar -xvf resnet50_classification_C_demo.tar.bz2

下载解压后如下图所示:

v2-5af40c7d99d4724166a71d234fa1d75a_720w.webp

在EASY-EAI 编译环境下,进入到对应的例程目录执行编译操作,具体命令如下所示:

cd /opt/nfsroot/rknn-src/RV1126B/resnet50_classification_C_demo/ ./build.sh

v2-c33f1f871904fa274119d1640500d4f2_720w.webp

同时,把可执行程序目录resnet_classification_demo_release/复制到开发板/userdata目录上:

cp resnet_classification_demo_release/ /mnt/userdata/ -rf

v2-0143545d21dda3cea7ec5cfba43f2e0c_720w.webp

5.4 在开发板执行ResNet50 图像分类算法

通过串口调试或ssh调试,进入板卡后台,定位到例程部署的位置,如下所示:

cd /userdata/resnet_classification_demo_release/

v2-76b15b841e629815e4db81ec2bc98490_720w.webp

运行例程命令如下所示:

chmod 777 resnet_classification_demo ./resnet_classification_demo

执行结果如下图所示,算法执行时间约为12.7ms:

v2-9b94a5a32d5bae34d764d6ab6bfc3037_720w.webp

至此,ResNet50图像分类例程已成功在板卡运行。

6. 资料下载

v2-d239aa92b00617ff2e165e645dcbcac8_720w.webp
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 人工智能
    +关注

    关注

    1821

    文章

    50388

    浏览量

    267145
  • 开发板
    +关注

    关注

    26

    文章

    6440

    浏览量

    121239
  • 瑞芯微
    +关注

    关注

    27

    文章

    866

    浏览量

    54691
  • EASY-EAI灵眸科技

    关注

    4

    文章

    113

    浏览量

    3730
  • RV1126B
    +关注

    关注

    0

    文章

    102

    浏览量

    256
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    (EASY EAI)RV1126B 音频输入

    1.声卡资源介绍EASY-EAI-Nano-TB仅有一块由RV1126B主控输出的声卡。通过串口调试或ssh调试,可以进入开发板终端。执行aplay命令查看声卡相关的详细信息,如下所示
    的头像 发表于 12-18 13:41 2633次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b>(<b class='flag-5'>EASY</b> <b class='flag-5'>EAI</b>)<b class='flag-5'>RV1126B</b> 音频输入

    (EASY EAI)RV1126B PWM使用

    1.PWM简介1.1开发板PWM资源1.2查找PWM节点rv1126b的pwm资源表如下:【PWM1CH0】对应的是pwm1_4ch_0,寄存地址为20700000。【PWM1CH1】对应
    的头像 发表于 01-06 10:49 8579次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b>(<b class='flag-5'>EASY</b> <b class='flag-5'>EAI</b>)<b class='flag-5'>RV1126B</b> PWM使用

    (EASY EAI)RV1126B 音频输出

    1.声卡资源介绍EASY-EAI-Nano-TB仅有一块由RV1126B主控输出的声卡。通过串口调试或ssh调试,可以进入开发板终端。执行aplay命令查看声卡相关的详细信息,如下所示
    的头像 发表于 04-01 17:13 8595次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b>(<b class='flag-5'>EASY</b> <b class='flag-5'>EAI</b>)<b class='flag-5'>RV1126B</b> 音频输出

    EASY EAI Nano-TB(RV1126B)开发板试用】+初识篇

    Nano-TB是灵眸科技研发的一款应用于AIoT领域的开发板,它基于RV1126B处理器,集成了4个Cortex-A53及独立的NEON协处理器,它支持4K@30fps的H.
    发表于 10-25 22:06

    EASY EAI Nano-TB(RV1126B)开发板试用】命令行功能测试-shell脚本进行IO控制-红绿灯项目

    接上文【EASY EAI Nano-TB(RV1126B)开发板试用】通过wifi连接,使用ssh登录EASY EAI Nano-TB(
    发表于 11-02 18:34

    EASY EAI Nano-TB(RV1126B)开发板试用】命令行功能测试-shell脚本进行IO控制-红绿灯按钮项目

    0接上文【EASY EAI Nano-TB(RV1126B)开发板试用】命令行功能测试-shell脚本进行IO控制-红绿灯项目-实现开机起动 EASYEAINano-TB(RV1126B
    发表于 11-03 10:00

    EASY EAI Nano-TB(RV1126B)开发板试用】+1、开箱上电

    ,避免因接触不良导致显示或采集异常。 2 硬件解析:强劲AI核心与丰富接口 2.1 核心处理器性能 EASY EAI Nano-TB开发板的核心基于
    发表于 11-19 21:39

    EASY EAI Nano-TB(RV1126B)开发板试用】介绍、系统安装

    ,并介绍了系统镜像安装部署的相关流程。 介绍 EASY-EAI-Nano-TB是灵眸科技研发的一款应用于AIoT领域的AIOT主板。 核心板基于
    发表于 12-23 18:05

    基于RV1126开发板的resnet50训练部署教程

    本教程基于图像分类算法ResNet50训练部署EASY-EAI-Nano(RV1126)进行说明
    的头像 发表于 04-18 15:07 1282次阅读
    基于<b class='flag-5'>RV1126</b>开发板的<b class='flag-5'>resnet50</b><b class='flag-5'>训练</b><b class='flag-5'>部署</b>教程

    RV1126系列选型指南:从RV1126RV1126B,一文看懂升级差异

    2025年7月,正式发布新一代AI视觉芯片RV1126B。作为其金牌方案商,EASYEAI灵眸科技同步推出搭载该芯片的AIoT核心板EAI11
    的头像 发表于 09-04 10:50 5284次阅读
    <b class='flag-5'>RV1126</b>系列选型指南:从<b class='flag-5'>RV1126</b>到<b class='flag-5'>RV1126B</b>,一文看懂升级差异

    【免费试用】EASY EAI Nano-TB(RV1126B)开发套件评测

    EASY-EAI-Nano-TB是灵眸科技研发的一款应用于AIoT领域的AIOT主板。核心板基于RV1126B处理器设计,并引入了新
    的头像 发表于 09-23 08:09 1313次阅读
    【免费试用】<b class='flag-5'>EASY</b> <b class='flag-5'>EAI</b> Nano-TB(<b class='flag-5'>RV1126B</b>)开发套件评测

    RV1126B特性概述

    RV1126BRockchip在2025年第二季度全新推出的Arm架构AI视觉芯片,搭载4核Cortex-A53与自研3Tops算力NPU。全面替代上一代的
    的头像 发表于 10-09 11:22 2279次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b><b class='flag-5'>RV1126B</b>特性概述

    替代升级实锤!实测RV1126B,CPU性能吊打RV1126

    AI智能芯片迭代提速,推出了全新的Arm架构AI视觉芯片RV1126B,是否替换RV1126,CPU性能是挤牙膏还是大突破。带着这些核
    的头像 发表于 12-11 17:13 2631次阅读
    替代升级实锤!实测<b class='flag-5'>RV1126B</b>,CPU性能吊打<b class='flag-5'>RV1126</b>

    (EASY EAI)RV1126B 人体关键点识别

    的特点。本人员检测算法在数据集表现如下所示:基于EASY-EAI-Nano-TB(RV1126B)硬件主板的运行效率:17个人体关键点索引定义:2.快速上手2.1开发
    的头像 发表于 01-23 10:13 3886次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b>(<b class='flag-5'>EASY</b> <b class='flag-5'>EAI</b>)<b class='flag-5'>RV1126B</b> 人体关键点识别

    (EASY EAI)RV1126B rknn-toolkit-lite2使用方法

    1.rknn-toolkit-lite2介绍RKNN-Toolkit-Lite2是(Rockchip)专为旗下RK系列芯片(如RV1126B、RK3576、RK3588等)打造的
    的头像 发表于 04-22 17:38 693次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>芯</b><b class='flag-5'>微</b>(<b class='flag-5'>EASY</b> <b class='flag-5'>EAI</b>)<b class='flag-5'>RV1126B</b> rknn-toolkit-lite2使用方法