Bootstrap

强大的Mx_yolo4目标检测训练模型(超详细)

因为作者在准备电赛,学习使用k210进行目标检测,使用Mx_yolo3进行数据的采集和训练模型。

本篇旨在供各位学习,有什么错误可以爽快指出,作者会定期修改。

本文步骤:

1.准备工具

2.采集数据

3.处理数据

4.标注数据

5.训练模型

6.得到和使用模型

1.准备工具

(1)Mx_yolo4

百度网盘下载地址:

链接:https://pan.baidu.com/s/1o2ro-fBac5eDqcwZ9U1nMw 
提取码:1CHC

建议使用4,无需配置环境

(2)图像大小批量修改器:

图片大小批量修改器最新版下载-图片大小批量修改器下载-PC下载网

2.采集数据

首先创建3个文件夹,一个是原始采集图片文件夹images_original(未经处理的图片文件夹),另外一个是经裁剪修改大小后的文件夹images(即训练模型所用的图片文件夹),另外一个是标签文件夹xml(标注后的标签文件夹),建议目录都是英文

(1)拍摄采集

如果使用电脑拍摄照片,可用Mx_yolo4自带的数据采集功能,当然也可以使用k210,在连接摄像头这里选择连接的摄像头即可。然后选择种类名称(class类别)和输出文件夹images_original,然后进行拍摄。

(2)批量抓包采集

这里也可以使用mx-yolov4自带的抓包工具(如下图)抓取网络上的图片,实现批量采集,这里方法比较简单,就不多介绍了。

3.处理数据

使用图像大小批量修改器修改图像大小,因为K210的图像要求224×224的,所以我们需要对图片进行修改尺寸(工具也可以进行重命名)。设置好参数,源文件目录为上述images_original,处理后目录为images,选择重命名处理大小(或者批量处理大小)即可。

4.进行数据标注(获取标签)

处理完数据大小之后开始进行数据的人工标注,首先打开Mx_yolo4的图片标注助手(有快捷键,所以标注起来挺快的)

然后设置这两个文件夹,一个是打开文件夹(即图像输入文件夹images),一个是选择保存文件夹(即标签输出文件夹xml)

设置完后会出现文件夹下的所有图片,然后开始进行标准,按W键进行画框,并输入标签,

点击OK之后再按D键进行下一个标准,如此反复标注完全部数据,标签会自动保存在xml文件夹。

5.训练模型

处理完数据并标注之后,开始训练模型,选择图片文件夹(images)和标签文件夹(xml),然后选择你需要的参数,开始进行训练(我这边选择次数1是方便看能否正常训练)。

注意:转换模型的输入输出以及量化图片路径不能带有空格,不然会转换失败

OK,训练完成,得到模型。

6.得到和使用模型

模型寻找:

得到的模型的目录一般在  mx-yolo\out\yolo_****下,如果不知道是哪一个可以查看软件的训练记录(右边的蓝条)

这里detector_result.zip便是训练后的结果,里面有你想要的数据,将它解压

解压之后得到以下文件

文件说明:

* boot.py: 在 maixpy 上运行的代码
* *.kmodel 或者 *.smodel: 训练好的模型文件( smodel 是加密模型 )
* labels.txt: 分类标签
* startup.jpg: 启动图标
* report.jpg: 训练报告,包括了损失和准确度报告等
* warning.txt: 训练警告信息,如果有这个文件,务必阅读, 里面的原因可能会导致训练精度低(我训练的结果没有)

使用方法:

有SD卡

0. 按照文档(maixpy.sipeed.com)更新到最新的固件
   如果新固件出现bug,可以使用这个固件测试(选择minimum_with_ide_support.bin): 
   https://dl.sipeed.com/MAIX/MaixPy/release/master/maixpy_v0.5.1_124_ga3f708c
1. 准备一张 SD 卡, 将本目录下的文件拷贝到 SD 卡根目录
2. SD 卡插入开发板
3. 开发板上电启动
4. 摄像头对准训练的物体,
       屏幕左上角会显示 物体标签 和 概率
       屏幕左下角会显示 运行模型消耗的时间,单位是毫秒

没有 SD 卡:

* 按照 maixpy.sipeed.com 文档所述的方式, 将模型烧录到 flash
* 修改 boot.py 的 main 函数调用的参数: model 在 flash 中的地址
* 其它资源文件,比如 startup.jpg 可以通过工具发送到开发板的文件系统,或者不管, 没有会自动跳过显示
* 运行 boot.py
* 如果以上的步骤您不理解,那么应该先完整按照 maixpy.sipeed.com 的文档学习一遍使用方法就会了

7.总结

1.准备工具

2.采集数据

3.处理数据

4.标注数据

5.训练模型

6.得到和使用模型

很明显mx-yolov4比3好了很多,优势如下:①不需要进行模型的转换,在mx-yolov3中,模型需要从.h5转换成.kmodel,而4则省略了这部,自动输出结果。②不需要每次训练完模型都修改一次boot.py,会自动导出.py。③软件界面更加简洁,BUG少不卡顿。④数据采集拍摄功能强大。

总之这是个很好的软件,相比于3它有更多优点,相信大家都能学会使用,并运用于K210,对了,关于模型在K210的实现,如果有时间,我后续会更新,看大家反响了,其实也是很简单的。

;