MaixPy K210 目标分类模型在线训练及使用教程
相关步骤
本文的资料来自于MaixPy官方文档,更多详细内容可进入MaixPy官方文档进行查询。
官方文档地址:https://wiki.sipeed.com/soft/maixpy/zh/
准备数据集
模型训练一定需要数据集,物品分类的数据集格式比较简单,首先创建一个数据集文件夹,然后根据需要分类物品的个数再在里面创建若干个名字为分类名的文件夹(分类名即文件夹名),每个文件夹里面存放对应分类物品的图片数据集,编号从0开始,最后将整个文件夹打包成zip压缩文件。
如不清楚上述结构可看下面的描述加以理解
datasets.zip
|
datasets
|
----ball
| |
| ---0.jpg
| |
| ---1.jpg
| |
| ---2.jpg
|
----toy
|
---0.jpg
|
---1.jpg
在线训练
MaixPy的模型可以在MaixHub里面进行训练,只需准备好数据集即可,因此需要注册一个MaixHub账号。
进入MaixHub官网,点击左上角注册
进入之后填写用户名,邮箱,密码即可注册账户
注册完账户后点击上方的模型训练
填写相关信息,模型类别为物品分类,模型格式为kmodel,模型描述根据模型填写,机器码需要通过给MaixPy开发板烧录一个bin文件获得,不知道如何烧录的同学,可以查看此文章学习如何烧录 MaixBit初次上手配置教程
bin文件下载地址:key_gen.bin
下载完bin文件后,通过kflash将文件烧录进开发板
烧录完成后,连接电脑与开发板,使用串行终端工具访问开发板,这里我使用Putty作为演示
其中选择开发板的端口号,并且设置波特率为115200,然后点击open进行连接
按下开发板上的Reset键,终端屏幕上就会显示机器码
复制机器码到模型训练网站上即可
点击下一步,会让我们上传数据集,把我们之前整理好的数据集压缩包上传上去即可
然后点击Submit即可提交数据集开始训练
之后我们就能在模型训练记录里面看见我们正在训练的模型并且能够看到训练进度
训练完成后会提供给我们模型下载链接,点击Download下载我们的模型至本地
运行模型
官网下载maixpy_vx.y.z_x_xxx*_minimum_with_ide_support.bin这种名字的固件烧录进MaixPy开发板
官网固件地址:https://dl.sipeed.com/MAIX/MaixPy/release/master/
将之前下载的模型压缩包解压得到一系列文件
这些文件的作用README.txt文件写的很详细,这里简单说一下
- boot.py: 在 maixpy 上运行的代码
- .kmodel 或者 *.smodel: 训练好的模型文件( smodel 是加密模型 )
- labels.txt: 分类标签
- startup.jpg: 启动图标
- report.jpg: 训练报告,包括了损失和准确度报告等
- warning.txt: 训练警告信息,如果有这个文件,务必阅读, 里面的原因可能会导致训练精度低
如果MaixPy有SD卡,则可以将这些文件拷入SD卡根目录,将SD卡插入开发板并上电启动即可。
如果MaixPy没有SD卡,则通过kflash将kmodel文件烧录到flash里,烧录的地址建议不要烧入0x000000,烧入其它地址如0x300000等;烧录完成后剩下的文件可以通过MaixPy IDE的发送功能发送给开发板,也可以不发送,不影响程序运行
然后修改boot.py程序中调用main函数时的参数值,将圈起来的那句话中model_addr的参数值设置为烧录模型时烧录的地址即可,然后将boot.py发送至开发板中,重启后便能自动运行此模型