注意,本教程使用的是现成的已经转化好的rknn格式模型,后续会写pt—onnx—rknn的教程
1. 硬件购买
1.1 开发板
本教程使用RV1126开发板进行部署,某鱼200不到的价格,这个板子是我找到带NPU比较便宜的板子了,适合入门尝试。
注意购买的时候看准是开发板,不是核心板,核心板只有一个接口,开发板有很多接口。
板卡自行搜索购买,我不做推销。
这里二手的板卡可能需要自己买个12v 1A左右的电源(或者家里路由器的电源就可以)
1.2 摄像头
普通USB摄像头即可
2. 软件准备
本教程提供所有需要的软件包,不需要再费时到处寻找下载了
2.1 板卡烧录系统
(1)自己电脑(Windows)安装驱动DriverAssitant_v5.0
运行文件:yolov8部署全过程用到的包\1.1win 驱动DriverAssitant_v5.0\DriverInstall.exe
部分系统需要重启电脑才能生效
(2)首先要确认看门狗被关闭(出厂默认关闭,用户会按需自行开启),否则会一进入Loader模式就会马上重启。
(3)给板卡烧录系统
Android-USB线,连接板卡和电脑
运行文件:yolov8部署全过程用到的包\1.2win 固件(板卡系统)EASY-EAI-Nano-Ubuntu-20.04-firmware_20240227\tools\windows\RKDevTool\RKDevTool_Release\RKDevTool.exe
如果烧录工具启动正常,则会看到以下界面:
点击【切换】按钮,等待10秒左右,切换到Loader模式(此方法切换失败的话,则可以采用手动方式进入Loader模式)。
然后点击【执行】按钮,烧录成功如下所示
到此就完成了板卡的系统烧录。
后续所有步骤都在虚拟机进行
2.2 安装虚拟机
运行文件:yolov8部署全过程用到的包\1.3win 虚拟机\VMware-workstation-full-16.2.2-19200509.exe
安装虚拟机,并选择 yolov8部署全过程用到的包\1.3win 虚拟机\ubuntu-20.04.6-desktop-amd64.iso 作为虚拟机系统,其他的选项默认,内存大一点60G差不多
安装过程时间较长,耐心等待。
2.3 安装docker
更新 apt 包索引
sudo apt-get update
sudo apt upgrade
安装 apt 依赖包,用于通过HTTPS来获取仓库
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
gnupg-agent \
software-properties-common \
lsb-release
添加 Docker 的官方 GPG 密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
设置仓库
sudo add-apt-repository \
"deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/ \
$(lsb_release -cs) \
stable"
更新 apt 包索引
sudo apt-get update
sudo apt upgrade
安装 Docker Engine-Community 和 containerd
sudo apt-get install docker-ce docker-ce-cli containerd.io
docker更换镜像源
sudo vi /etc/docker/daemon.json
填入以下内容并保存(按 'i' 进入输入模式,按 'Esc' 退出输入模式,输入 ':wq!' 保存):
{
"registry-mirrors": [
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"https://dockerproxy.com",
"https://docker.mirrors.ustc.edu.cn",
"https://docker.nju.edu.cn"
]
}
重新加载配置文件、重启docker
sudo systemctl daemon-reload
sudo systemctl restart docker
2.4 环境配置
(1)将 yolov8部署全过程用到的包\1.5ubuntu 编译环境部署包\rv1126-develop-20240713.tar.gz 放到虚拟机的 home 文件夹下,不用解压
(2)打开命令行终端,加载镜像:
docker load --input rv1126-develop-20240713.tar.gz
上面这个命令只有第一次配置需要,可以用命令 doker images 查看是否已经存在镜像,已存在则直接跳下一步
(3)编译环境配置
yolov8部署全过程用到的包\3 部署包\develop_environment_20240123.tar.gz 放到虚拟机 home 文件夹下,需要解压
手动解压或者用命令:
tar -xvf develop_environment.tar.gz
到此所有软件环境都准备就绪,虚拟机中所放置的文件如下:
3. 开始编译代码
(第一次配置好环境后,以后都从这一步开始即可,不用重新走1.和2.)
3.1 连接板卡
先将板卡连接到电脑,弹出提示选择连接到虚拟机
连接板卡前:
连接板卡后:
3.2 启动交叉编译环境
cd develop_environment
./run.sh -v /home:/opt
成功如下图:
3.2 编译代码
cd /opt/yolov8_detect_C_demo
./build.sh
成功如下图,中间如果有乱七八糟的不用管,只要不是红色报错就没问题:
3.3 将编译好的程序移植到板卡上
cp /opt/yolov8_detect_C_demo/yolov8_detect_demo_release/ /mnt/userdata/ -rf
耐心等待复制,光标会卡住不动,跳到下一行就是复制完成:
完成后即可关闭终端
4. 运行代码
4.1 进入板卡
打开终端,输入:
adb shell
成功如图:
4.2 开始运行程序
进入板卡后,定位到程序上传的位置,如下所示:
cd /userdata/yolov8_detect_demo_release
运行程序命令如下所示,以下示例是摄像头推理:
./yolov8_detect_demo yolov8m_rv1126.rknn /dev/video45