K210在Windows10的本地训练

该教程主要记录自己使用K210在Windows10下面的训练过程,请严格按照教程的步骤一步步来。所需要的文件我都已经放在了阿里云盘
阿里云盘链接:Python3.8.10
cuda10

百度网盘链接:

链接:https://pan.baidu.com/s/1fbZhCQlHQs91d7J5yi1cHA 
提取码:qdeb

一、 安装python3.8和pip

推荐安装

python3.8.10

由于python3.9有一些不知名问题导致了环境可能会配置失败
点击下载安装python3.8.10,具体的安装教程各位可以自行百度安装,需要注意的是,需要把Python添加到环境变量中。与此同时,用于安装Python的软件管理工具pip也需要安添加到系统环境变量中,具体的添加教程也是可以在CSDN搜索到的,这里就不细讲。
在这里插入python3.8.10图片描述

安装之后的python,按win+r,输入cmd打开命令行,然后输入python + 回车,出现下图则表示python安装成功

在Python安装完成了之后,需要检查pip是否安装完成(在Python安装的时候是默认安装pip的)
检查方法:按win+r,输入cmd打开命令行,然后输入pip -v回车,出现下图则表示pip安装成功

二、CUDA和CUDNN环境配置

对于模型的训练,可以使用CPU或者是GPU进行训练,本教程是针对GPU训练的环境配置的。
不同版本的CUDA有所对应不同的显卡驱动版本要求,对于K210的环境,我们推荐的是CUDA10.1搭配
cudnn v7.6.5.32 for cuda 10.1,同样,我们把安装包也一起放置在了阿里云盘中。

CUDA的安装:在下载好了CUDA的压缩包之后,解压打开。会达到一个安装包文件


以管理员身份运行,具体的安装方法新手推荐默认,不需要修改任何地方。

cudnn v7.6.5.32 for cuda 10.1的安装:解压文件夹,将解压后的文件夹下的文件拷贝到cuda安装目录下,与之相对应的文件夹下。

这时CUDA的环境已经配置好了!!!

在安装完成了之后可以使用以下方法检查CUDA的环境是否配置好。
在命令行中输入python,然后再输入

import tensorflow as tf
tf.test.is_gpu_available()

回车检查一下这些文件有没有找到,和最后一行是否打印出True!!!!!如果没有,则说明你的前面的cuda和cudnn环境没有安装好,请将所有关于英伟达的软件驱动进行卸载,是卸载!!!不是将文件删除。然后再重新进行cuda和cudnn的环境配置。

三、Tensorflow安装

对于Tensorflow的安装,这是也是有要求的,需要安装tensorflow-gpu 2.3.0版
win+r,输入cmd,打开命令行

在命令行中输入:

pip install tensorflow-gpu==2.3.0

如果下载的很慢,请输入:

pip install tensorflow-gpu==2.3.0 -i https://pypi.mirrors.ustc.edu.cn/simple

然后等待安装成功即可。

四、MiaxHub本地训练

本地训练所需要的环境我们已经基本配置完成了,接下来就是对数据集的制作和运行代码进行模型训练。
1、安装依赖
首先打开我们下载好的项目文件—K210_Project
可以看到有如下几个文件

打开maix_train

再在上方地址栏输入cmd,回车,进入命令行模式


输入

pip install -r requirements.txt

(下载速度很慢的时候可以使用以下指令来提高下载速度)

pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/

回车,等待安装结束

2、数据集的制作
数据集的制作这里就不再详细描述,按照Sipeed官网的示例制作即可,个人建议在进行标注的时候选用Python来下载安装LabelImg来进行数据的标注。
但要注意,K210支持两种识别方式

 1、目标分类
 2、目标检测

两者所需要的数据集格式存在一定的差异,本文着重介绍目标检测。

3、开始训练

在前面我们打开的CMD命令行输入以下命令
对训练的环境进行初始化

python train.py init

运行训练代码

python train.py -t detector -z datasets/fruit_test.zip train

注意!!!这里面的datasets/fruit_test.zip train是你所使用的数据集,我在工程中添加了我自己使用的一份数据集,打开K210_Project\maix_train\datasets 可以看到如下文件

其中fruit_test里面包含的即为数据集,另外在该文件路径下面,还保存了其他的数据集,感兴趣的话可以自行修改指令进行训练
训练完之后在K210_Project\maix_train路径下就会得到一个out的文件夹,里面的文件就是训练之后得到的模型以及配置文件

4、模型的使用
打开上一步生成的out文件夹,会发现里面有一个压缩包—
maixhub_detector_result_2021_11_12__22_07.zip
对其解压,打开解压之后得到的文件夹,可以发现有如下内容。

这里介绍以下各个文件各自的作用:

boot.py 里面存放的是给K210使用的运行脚本文件,我们需要在MaixPy IDE里面运行该脚本,确保在IDE上面程序可以正常运行之后,还需要把该文件以脚本的形式下载到板子内部的Flash中,注意该脚本文件需要下载到0x000000地址下面,确保板子上电后首先执行的是该部分程序。此外,这部分代码并不能直接使用,需要对其进行一定的修改才可下载到K210板子上面运行。

labels.txt 里面存放的是模型文件中的分类,在修改boot.py中会根据这一部分进行修改。

m.kmodel 训练之后得到的模型文件,需要下载到板子内部Flash地址为0x300000地址中,供脚本文件调用。
README.txt 训练文件生成的提示文件,暂不需要对其进行修改。
report.jpg 训练结束之后模型内部的loss值,反应了模型内部的迭代程度以及量化程度,可以在一定程度上反应训练之后模型的准确程度,但其目前仅限于针对训练集而言,对新的目标还需要实际验证。
startup.jpg 官方定义的开机JPG界面。

了解文件夹中各个文件的作用之后,开始训练。
首先将m.kmodel利用kflash_gui.exe烧录到板子内部的Flash中,

点击下载,下载完成之后,打开MaixPy IDE,连接上开发板。
之后把boot.py里面的内容复制到MaixPy IDE开始界面,这里我们需要修改部分参数。
因为我们是直接把模型文件烧录到板子内部的Flash中,所以我们需要修改程序中模型的调用地址为model_addr=0x300000,使得程序可以在该地址下进行模型寻址。
除此之外,我们需要修改labels指向的类别分类,这里我们直接把label.py里面的内容直接替换掉原来的内容即可。

此外,还有一个需要进行修改的地方,

训练出来的模型只支持224*224的图片输入,但该部分训练生成的运行脚本默认是240*240,故需要修改该部分参数,方可运行。
程序修改完成之后,点击运行,发现成功识别

当在IDE成功运行识别程序之后,就可以把改代码以脚本的形式下载到K210中,实现开机自启。

本文章借鉴了以下文章,如有侵权,请联系删除!!!!!
Sipeed官方教程

来源:醉醉念

物联沃分享整理
物联沃-IOTWORD物联网 » K210在Windows10的本地训练

发表评论