基于云端训练的深度学习

序言

本文将以openMV为例讲述如何在云端训练出一个智能垃圾识别AI,适合当代大学生参加各类比赛所用    下图为openMV视觉模块

                                

采集数据的过程是在openmv视觉模块上完成的,后文会介绍如何操作

本文所介绍的方法不需要硬件有多好,将我们视觉模块所拍摄的实物分类上传到网站进行训练即可

在线训练需要登录Edge Impulse的官网,注册账号,登录。

                网址为:https://www.edgeimpulse.com/

将训练好的模型传输到openmv中进行实验,验证训练结果合理性

深度学习中openmv视觉模块使用教程

数据的采集

创建数据保存的文件夹

打开OpenMV IDE

选择:工具->数据集编辑器->新数据集;

在弹出的窗口中选择一个储存的路径,新建一个数据集的文件夹,然后选中它点击确定。

具体操作如下图所示

 

 因为本文是以垃圾分类为例所以我建立了一个rubbish文件,选中该路径即可。

创建类别class文件夹

OpenMV IDE中创建多个类别Class的文件夹。注意:类别Class的名称只能是英文!

当然大家可以用拼音代替英文,只要是字母就行。

具体操作如下图1图2

图1:

 图2:

 

 图2之中新建电池battery,易拉罐can,胡萝卜carrot,烟头cigarette的4个类别文件夹

意思是我们将垃圾通过训练分为四类实现机器自动识别这四类垃圾。

当然大家可以分成更多的种类,根据需要自行分配即可。

采集图片

连接OpenMV,运行,选中相应的类别文件夹,然后进行采集图片。采集图片的注意事项:多个角度等。比如说你想识别出一个胡萝卜,那么我们需要通过openmv自带的摄像头采集胡萝卜的各个角度的照片,采集图片的背景最好和你实际应用的背景相同,这样可以提高深度学习的准确性,让机器更好的进行识别。

具体的操作方法如下图

 该图中右上角的区域为拍摄的图像显示区域。

检查四类文件中的图片数据

每个类别都采集完毕以后,可以在之前创建的文件夹得到的相应的图片等文件。

 打开这些文件夹就可以查看自己分类的这些图片数据是否足够,根据我的经验每个文件夹100到150张照片最为适宜

图片数据的上传 

登录网站

登录Edge Impulse的官网,注册账号,登录。https://www.edgeimpulse.com/

Edge Impulse网站的运行速度有时候会比较慢,耐心。

同时这是一个英文的网站,不要畏难。必要的时候需要翻译一下网页,如果你的浏览器没有翻译的功能也可以打开手机的百度进行拍照翻译。

创建新项目

下图为登录之后的页面

上传数据集

点击Data acquisition(数据采集)->Lets collect some data

 

 上传数据的界面

将数据逐类上传

上传的具体步骤如下,按此方法将每个类别的数据集逐类上传

 上传完成


上传完成之后就可以开始训练了

在线训练

训练模型的创建

模型创建 Impulse design - Create impulse

Image 参数设置和特征生成

第一步

第二步

迁移学习

迁移学习 Transfer learning


模型测试

模型测试 Model testing

打版本标签

模型导出

模型导出 Deployment

 得到压缩包

模型导出以后可以得到一个压缩包,解压后为所需文件(共3个)

代码文件为测试参考文件,可以进行实际的效果测试

模型应用

训练模型的检验

检验训练模型的方法:

1. OpenMV4 Plus 通过配套数据线与电脑 连接
2. Edge Impluse 网站训练网站的 3 个文件 复制粘贴 OpenMV u 盘;
3. 代码文件 OpenMV IDE 软件 运行 ,观察模型的效果。

 openmv代码略讲

 图片上的注释很清楚,如有不懂可以私信咨询本博主

应用模型到项目

 实际应用模型到项目:

1. 训练模型:通过采集 - 上传 - 训练 - 导出模型 4 个步骤得到模型文件(需要不断改善)
2. 模型文件导入:将网站得到的模型文件复制粘贴到 OpenMV u
3. 根据要求修改代码

 举一个实际例子:垃圾分类项目中,项目的设计逻辑是:通过超声波测距的模块设定某个距离值,垃圾投入时垃圾距离测量点的距离小于设定值时,Arduino发出指令使OpenMV工作,OpenMV需要接收到OpenMV的指令,开始拍照->识别->返回物体和名称,同时将概率值最大的物体名称传回给ArduinoArduino再进行分类垃圾的操作。


实际应用的openmv代码讲解

 同样注释较为详细

另一端为arduino的代码

 

ArduinoOpenMV串口通信 

ArduinoOpenMV串口通信文档:

https://book.openmv.cc/MCU/serial1.html

https://book.openmv.cc/MCU/serial2.html

 总结

在openmv上的深度学习其实很简单,只需要掌握以上的操作步骤即可,如果以上的文章对你有用请关注博主,可与博主进行探讨喔!

  • 11
    点赞
  • 99
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值