基于MaixHub的小方舟分类模型学习

前言

在暑假之余,与指导老师以及实验室中的部分成员共同对小方舟进行了一定的研究,并对小方舟进行了基于MaixHub的分类模型学习。下方提供我们在探索过程中的一些心得,若哪里有问题欢迎留言评论。

注:本文系湛江市岭南师范学院物联网俱乐部及人工智能俱乐部原创部分训练项目,转载请保留声明。

一、材料准备

材料名称材料数量
N+小方舟×1
SD卡(32G)×1
读卡器×1

二、烧录固件

1、固件下载

模型加载时需要烧录与其所对应的固件,固件库已经开源并且处于持续更新的状态,这边提供对应的下载地址->传送门,同时也附上我们烧录的固件maixpy_v0.6.2_57_gae955b706_minimum_speech_with_ide_support.bin

链接:https://pan.baidu.com/s/19OQrACoBaqffAab7K-3HAw
提取码:gs8g

2、烧录固件

烧录固件同样我们使用的是kflash_gui,烧录过程中须留意小方舟连接上之后会有两个串口号不同的串口,我们选择数字小的串口进行烧录,并且烧录地址为0x300000

链接:https://pan.baidu.com/s/1pT1k1sASu5kR7VxAITVHEw
提取码:i77j

kflash_gui V1.6

如果小方舟出现蓝屏或者灰屏,可尝试以下操作

  • 打开kflash_gui V1.6点击右上角选择擦除中的整片擦除
  • 重启小方舟后刷入目标固件,再次重启小方舟

三、制作数据集

1、收集需要训练的目标的照片

保证每一个训练类的照片数目都在40以上,最好训练照片多收集,增加模型训练的准确度,我们在训练中每一个训练类都以300张进行训练,最终训练得出的准确度和丢失率都比较理想。

2、转换格式

收集照片是还需注意每张照片的分辨率为224*224,否则后面的模型训练可能会出错导致无法进行,我参考了网上一些博主的方法,采用了文章K210借助MaixHub训练平台进行目标检测运用python脚本对照片进行转换,并对其代码进行了一定程度上的优化修改。(python相关安装配置请自行百度)

照片分辨率

2.1、创建转换目标文档

在桌面新建存放需要转换照片的文档,由于在代码中我将其命名为Hello,因此存放的文档名也为Hello(可对代码和文档名自行修改)

2.2、创建转换结果存放文档

在桌面新建images文件夹用于存放脚本转换之后的照片

文件夹命名

2.3、运行python转换脚本

运行该脚本会用到PIL模块,因此我们要保证我们设备上有安装到PIL库,它是一个功能非常强悍的第三方图像处理库,目前官方的最新版本并不支持python3,后来出现了移植到python3的库pillow,pillow号称是friendly fork for PIL,其功能和PIL差不多,可用pip进行安装

pip install pillow

安装完成后可直接运行脚本进行转换

from PIL import Image
import os.path
import glob
def convertjpg(jpgfile,outdir,width=224,height=224):
  img=Image.open(jpgfile)
  img = img.convert('RGB')#加上这一行可转换彩色
  try:
    new_img=img.resize((width,height),Image.BILINEAR)  
    new_img.save(os.path.join(outdir,os.path.basename(jpgfile)))
  except Exception as e:
    print(e)
for jpgfile in glob.glob("Hello/*.JPG"):
  convertjpg(jpgfile,"images")

3、照片分类

将图片数据集按分类保存为单独的文件夹, 子目录的名字为最后生成label的名字。需注意的是,目录名称不支持采用汉字进行命名

//数据集结构示例

----images
|        |
|        |---0.jpg
|        |
|         ---1.jpg
|
 ------xml
         |---0.xml
         |
         |---1.xml

四、机器码获取

  1. 下载key_gen固件:https://pan.baidu.com/s/1hnpwFgwfwhZVowW6Q3lrRA 提取码:sdbq

  2. 使用kflash_gui对key_gen固件进行烧录

  3. 设备连上重启后的小方舟,打开串口调试器,波特率选择115200,便可查看机器码,下面是采用了XCOM V2.6进行获取的设置界面,如果机器码没出来,反复点击RTS进行刷新即可

XCOM V2.6

五、模型训练

1、账户激活

1.1、打开MaixHub点击下图框选链接

MaixHub

1.2、输入邮箱点击验证后,会有一份邮件发送到你邮箱,根据邮箱指示点击验证便可,由于我已经验证过,旁边会有已验证的提示

MaixHub

2、提交数据集

2.1、填写刚刚获取的机器码,下方的模型描述为选填

提交数据集

2.2、将上面分类整理好的文件夹打包成zip包,上传到MaixHub,需要注意的是压缩包大小不能超过20M

上传数据集

2.3、提交训练时候就可以在个人中心内查看正在训练/已经训练完成的模型了

查看训练列表

六、模型加载

1、下载(Download)训练好的模型到本地之后可以看到一个压缩包,对其进行解压就可以查看训练之后的结果。其中的report.jpg为结果报告。如果最终训练出来的结果不理想,误差较大的话,可尝试增大各个训练类的照片量,并且控制每一个训练类的照片数量是相同的。

  • 第一个曲线图代表准确度,迅速上升至接近1.0后并且保持平缓为好
  • 第二个曲线图代表丢失率,迅速下降到接近0.0后并且保持平缓为好

结果report

2、将压缩包内文件全部拷贝到SD卡中,然后将其插入小方舟,重启后可查看训练之后的结果。小方舟左上角显示的是准确率,左下角为识别时间,单位为毫秒

结果演示

加载时要保证小方舟已经烧录文章开头提及的固件maixpy_v0.6.2_57_gae955b706_minimum_speech_with_ide_support.bin

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈宝子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值