Mx-yolov3
Mx-yolov3
https://mp.weixin.qq.com/s/yBRWjDExazR1ZS_Woub8fw
在过去的一段时间里,收到了许多反馈和BUG,但由于各种原因,很久没有去更新Mx-yolov3;经过几天的修改和改进,新的版本诞生了,我们将它定为1.0版本(你可以在软件界面右下角看到版本号,为了今后能更好的识别软件版本,新版本的软件您可以在“Import 创客”公众号中发送"Mx3"以此来获得下载链接);下面我们就来看看1.0版本做了哪些改进和修复。
01
改进和修复
#增加两种网络结构
增加Tiny Yolo和Full Yolo网络结构提供选择
#增加Alpha参数调节
Alpha参数在训练模型的过程中非常重要,能够控制模型文件大小,当然较小的参数也会影响模型的精度,调节参数为0.25能够训练出800~900K大小的Kmodel模型文件。小模型意味着占的内存更加的小,使得能够在K210中同时加载两个模型。
#全新的Anchors锚点计算方式
新的Anchors锚点计算方式,使得锚点更加适合数据集。
# 新的环境配置GUI
更加清晰的配置步骤
#修复多个BUG
1、修复了因为h5py库版本较高引起的预训练模型读取失败问题。
2、修复了Anchors锚点计算时遍历标签时,找不到图片的错误问题。
3、修复了软件一直提示“could not convert string to float:”的问题。
02
环境配置与GPU配置
现在,你可以使用的配置GUI来按照步骤进行环境配置!
1、先安装Python3.7.4 版本,不支持Python3.8版本(因为许多依赖库不支持3.8版本的Python)必须安装在默认路径,否则修改kreas网络将失败。
2、安装依赖库、拷贝权重文件并修改Kreas网络,在安装依赖库的过程中若收到“HTTP”错误,请更换网络环境重试。
3、若需要使用GPU训练,则需要安装CUDA_10.0和Cudnn_7.6.4,安装成功后将自动启用GPU进行训练;安装的网络教程在文件夹内。
03
训练第一个模型-口罩识别模型
本文中将简单演示一下Mx-yolov3自带的Demo(口罩识别模型)的训练及部署方法,关于数据集的准备、Mx-yolov3的目录结构将在下期进行讲解。
打开Mx-yolov3软件,经过简单加载之后,我们将看到它的主界面,重新选择一下训练图片地址和训练标签地址,这两个文件夹都在主目录“datasets/yolo/masks“路径下,其中img文件里面包含着所有的训练图片,而xml文件夹内则包含了所有已标注好的标签文件。
接着你可以点击”计算Anchor”按钮,此时Mx-yolov3将在后台对数据集进行整理并计算出训练所需要的锚点参数。(图1)
图1 Anchor计算结果
可以看到锚点的计算方式非常简单,接着点击开始训练,如果不出意外地话,你将在信息栏和终端信息栏中看到如下画面:
图2 开始训练
等待迭代完毕后,信息栏和终端信息将会同时显示训练结束。
图3 训练结束
训练结束后,可以在主目录下的“模型文件”文件夹中找到你刚才训练好的两个模型文件yolov2.h5和yolov2.tflite
(图4)
接下来点击“测试模型”按钮,选择yolov2.h5模型文件,稍等几分钟,Mx-yolov2将会把测试结果显示出来。
04
使用NNcase0.1进行模型转换
点击模型转换按钮,打开NNcase0.1_GUI版本,选择刚才训练出来的yolov2.tflite模型文件,保存地址,量化图片地址(训练图片4~5张),点击开始转换,等待一会,将看到如下信息。
05
部署模型到Maix上
将转换得到的yolov2.kmodel模型文件、模型文件文件夹内的anchor.txt文件、label.txt文件、程序文件内的物体分类脚本boot.py拷贝到sd卡,将Maix开机,不出意外地话,Maix将快速的进行口罩识别,当然你可以将Mx-yolov3用在你自己的数据集上,更多有趣的创意等待大家去发现。
06
口罩识别效果
07
人体识别效果