致小白的K210模型训练与运用

致小白的K210模型训练与运用

文章目录

*
致小白的K210模型训练与运用
* 前言
* 一、模型训练方法
* 二、详细介绍
*
1.使用MixHub平台进行训练
2.使用Mx-yolov3自己搭建平台进行训练
3.V3模型
4.V4模型

前言

由于我也是刚接触K210不久,并且对python没有太多的了解,但是又想自己训练模型,于是花了挺多的时间在找寻简单的模型训练方法,本来是在几天前就找到了简单的模型训练方法,但是后来在使用的过程中出了点问题,直到今天才把问题勉强解决。所以写下本文来记录一下我所使用的K210模型训练方法,希望能给和我一样的小白一些帮助

提示:以下是本篇文章正文内容,下面案例可供参考

一、模型训练方法

1.使用MixHub平台进行训练
2.使用Mx-yolov3自己搭建平台进行训练

二、详细介绍

1.使用MixHub平台进行训练

详细方法可以看:MixHub训练使用说明
(1)数据集的准备
首先我们需要确定我们是要进行目标分类还是目标检测
目标分类是没有框的,只能识别该物体的种类,不能给出该物体的具体位置信息,效果如下

致小白的K210模型训练与运用
而如果是目标检测的话是有框的,可以给出物体的具体位置信息,并且框出来,效果如下图
致小白的K210模型训练与运用
这里以目标分类为例,具体的可以看MixHub训练使用说明

首先我们准备一个数据集文件夹,格式如下:

致小白的K210模型训练与运用

致小白的K210模型训练与运用
然后我们使用image_tool来将图片转换成224*224格式
致小白的K210模型训练与运用

转换好之后会多出一个文件夹

致小白的K210模型训练与运用
将cat和dog文件夹删除将cat_out和dog_out改成cat和dog。得到下图
致小白的K210模型训练与运用
然后压缩成ZIP格式
致小白的K210模型训练与运用
打开MixHub训练平台
填入邮箱和机器码,选择分类目标识别,机器码是通过将一个固件下入Maix bit或者其他sipeed的K210获得的。
致小白的K210模型训练与运用
再上传数据集,也就是刚刚的ZIP格式文件,点击开始训练
致小白的K210模型训练与运用
然后就等着就行,等训练好了就会将下载连接发到你的邮箱中
致小白的K210模型训练与运用
下载好了之后就是一个这样的压缩包
致小白的K210模型训练与运用
解压开之后就有以下文件
致小白的K210模型训练与运用
第一个boot.py是测试代码,第二个labels.txt是种类,第三个m.kmodel是模型文件
接下来将上面所有文件放入U盘中,即可看到效果

; 2.使用Mx-yolov3自己搭建平台进行训练

首先得感谢袁运强老师制作的Mx-yolov3
软件获取方法import创客公众号回复Mx3
软件的详细介绍也可以看公众号里的文件,在这里我以我使用过程中的问题以及解释做一下说明
这里也以物体分类为例
首先我们将MX3下载下来

致小白的K210模型训练与运用
然后双击Mx_yolov3安装,得到一个Mx_yolov3的文件夹
致小白的K210模型训练与运用
首先我们打开环境配置文件夹,双击环境配置.exe
致小白的K210模型训练与运用
致小白的K210模型训练与运用
然后按照步骤一步一步来就行,特别注意的是第三步的那二个一定要装,不然模型训练的会很慢
接下来我们以物体分类为例
首先我们找到Mx_yolov3文件夹中的example文件,将它复制到桌面
致小白的K210模型训练与运用
致小白的K210模型训练与运用

接着我们打开Mx-yolov3,找到图像识别

致小白的K210模型训练与运用
接着点选择找到刚刚的example文件夹
致小白的K210模型训练与运用
然后点击提取,将Alpha设置为0.75
致小白的K210模型训练与运用
接着点开始训练,等待即可,注意的是如果这里没有开GPU加速,训练要很久
致小白的K210模型训练与运用
训练好了模型之后我们再来测试一下模型
点击测试模型,然后找到所训练的模型位置
致小白的K210模型训练与运用
测试好了之后这里可以看到模型的效果
致小白的K210模型训练与运用
接下来是最后一步,也是最重要的一步
模型转换!!!
就是这一步,卡了我五天
我们输入路径选择tflite文件,输出文件任意设置,再选择量化图片,量化图片的路径如下
致小白的K210模型训练与运用
致小白的K210模型训练与运用
接着点击开始转换
如果你的结果是这样的
致小白的K210模型训练与运用
出现了模型转换成功,那么恭喜你,可以直接跳到最后一步了
如果你的结果是下图中的这样,或者是其他模型转换错误的情况,那么你得继续看接下来的步骤,尝试一下
致小白的K210模型训练与运用
尝试一、将参数设置成如下图
致小白的K210模型训练与运用
然后将图片用他自带的那个猫狗分类的例子,再重复上面的步骤试一下,看看能不能成功。
我测试发现生成的模型比较大的可以转换成功,如下图
致小白的K210模型训练与运用
生成的模型比较小的会转换失败,如下图
致小白的K210模型训练与运用
而调整模型的大小是调Alpha这个参数,参数越小,模型越小,效果越差,参数越大,模型越大,效果越好。
致小白的K210模型训练与运用
如果你按上述方法尝试了之后发现还是模型转换失败,那么你可能得用第二个方法了
找到Mx-yolov3文件夹中的NNcase 0.2这个文件夹
致小白的K210模型训练与运用
双击打开
致小白的K210模型训练与运用

设置和0.1版本的一样,点击转换即可

致小白的K210模型训练与运用
用0.2版本的转换一般都是可以成功的,但是用0.2版本的转换有一个问题,那就是转换出来的是V4的模型,而用0.1版本转换出来的是V3的模型。
致小白的K210模型训练与运用

; 3.V3模型

V3模型,也就是之前用nncase 0.1版本转换出来的模型
首先找到自己训练的模型,将下图中的二个文件放在SD卡中

致小白的K210模型训练与运用
注意将classnames这个文件名改成classes
再将下图中的boot.py文件也放入SD卡中
致小白的K210模型训练与运用
接下来将SD卡插入K210,然后给K210通电,就可以看到效果了。

4.V4模型

如果你是用nncase0.2的转换的,那么就是V4模型,V4模型出了上述步骤之外,还有二个地方做更改,一个是固件,固件要找一个支持V4版本的固件,固件可以在Sipeed 固件库找到

致小白的K210模型训练与运用
注意的是这个固件是连不了IDE的,这个是我测试过的,还有下面这个,我没有测试过,不过应该也是可以用的,支持IDE和V4的
致小白的K210模型训练与运用
除了固件需要更改,那个示例代码boot.py也需要更改一下改成下面的代码

代码如下():

import sensor
import math
import machine
import lcd
import KPU as kpu

sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.run(1)
sensor.skip_frames(10)
sensor.set_windowing((224,224))
sensor.set_vflip(0)
lcd.init(freq=15000000,color=0x0000)
KPU = kpu.load('/sd/weights.kmodel')
success = kpu.set_outputs(KPU,0,1,1,2)
f=open("classes.txt","r")
labels_txt=f.read()
labels = labels_txt.split(",")
f.close()
while True:
     img = sensor.snapshot()
     plist = kpu.forward(KPU,img)[:]
     pmax = max(plist)
     max_index = plist.index(pmax)
     pgoods = labels[max_index]
     print("No.{} is {}".format(pgoods, pmax))
     lcd.display(img)
     lcd.draw_string(48,224,"NO: {} {}{}".format(pgoods, round(pmax,2)*100,"%"),lcd.WHITE,lcd.GREEN)

也就是加了一句success = kpu.set_outputs(KPU,0,1,1,2)
这一句的主要作用是设置输出层形状,具体的意思不大清楚,我试着参数像这样填是可以运行的

致小白的K210模型训练与运用

这一句的具体说明可以看KPU的说明

其他的步骤和V3的一致,将必要文件和boot.py放入SD卡中即可运行,但是效果是卡卡的和PPT一样

Original: https://blog.csdn.net/moshanghuaw/article/details/113172455
Author: 创客@小白
Title: 致小白的K210模型训练与运用

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/520917/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球