Matlab以一个图像分类例子总结分类学习的使用方法

目录

前言

导入数据

训练学习

导出训练模型

仿真测试

总结


前言

最近在尝试一些基于Simulink的边沿AI部署,通过这个案例总结Matlab 分类学习功能的使用。本案例通过输入3000张28*28的灰度图像,训练分类学习模型。并验证训练好的模型最后部署到MCU。

导入数据

如下图是用于训练的数据,每一张图片上有一个数字,达到的目标是:训练好模型后,给定一个28*28带数字的灰度图像就可以识别出图像上的数字并输出结果。要训练一个模型首先就是导入数据,如下图就是用于训练的图片。

每一张图片导入到Matlab workspace后都是一个28*28的数组,如下图:

 完整的训练数据只需要用脚本把这3000张图像数据整理成一个28*28*3000的数组和对应的标签即可。这里还多了一个步骤就是把uint16的图片数据转换成了0-1的double类型数据进行归一化。如下图就得到了用于训练的x,y两个数组。X是输入的数据3000个28*28数据,Y是对应的答案3000*1个,每张图对应一个结果。

本Demo所使用的图片从0-9,每个数字有300张用于训练的图片。

 到这一步,用于训练的数据就整理好了。

训练学习

1.导入用于训练的数据。

打开分类学习器(Classification Learner), 从工作空间导入我们准备好的变量。

 导入X和Y数据集。

 2.根据自己的需要选择想要训练的模型,也可以在OPTIONS配置相关的训练参数,这里直接默认即可。选择ALL Simulink Supported. 然后再点Train ALL. 然后喝杯茶先!

 3. 选择合适的模型

训练出了很多模型,失败的就不用考虑了。后面就根据精度和占用资源的情况选择合适的模型即可。如果不考虑算力,100%的都可以选择,如果是要部署在MCU或者边沿设备上就需要选择资源占用较小的。

 Summary可以看到训练好后模型的参数,可根据实际需要选择。

导出训练模型

导出Simulink模型,也可以导出.m的脚本模型,根据自己需要选择。

 

导出的模型从工作空间导入图片进行验证,也可以自己集成在Simulink里面。 

仿真测试

从目录里导入图片进行分类识别,如下可以看到都能正确识别。

 后面就可以把模型生成代码集成在MCU了,这里也尝试了在MCU上集成测试,测了CPU和RAM,FLASH的使用情况,这个模型还是比较轻量级的。

总结

简单介绍了分数学习工具的使用,也算是提供了模型训练的一种解决方案,供参考。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

卡洛斯伊

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

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

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

打赏作者

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

抵扣说明:

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

余额充值