利用EdgeImpulse在线网站自行训练神经网络进行分类识别

为嵌入式设备OpenMV增加神经网络,可实现区分盗猎者和大象、对工厂生产线进行质量控制、让遥控模型车自行驾驶等功能。

在本教程中,你将学习如何收集图像建立一个高质量的数据集,如何应用迁移学习训练神经网络,以及如何将系统部署到OpenMV。

使用EdgeImpulse在线训练适用于OpenMV的神经网络模型主要分为以下四个步骤:数据集采集、上传、训练以及部署。

01采集数据集

在本教程中,我们会构建一个可以区分人脸是否佩戴口罩的模型。当然你也可以选择分类其他物品。为实现机器学习模型的运作,你需要收集戴口罩和不带口罩两种人脸的大量示例图像。在训练时,这些示例图像就用来做模型的区分练习。

我们需要利用OpenMVIDE来采集我们的数据集,采集图像的步骤如下:

*创建两个分类:

打开OpenMVIDE菜单栏的“工具”,选择“数据集编辑器”,单击“新建数据集”,然后新建一个文件夹并打开,在数据集里面再新建两个文件夹分别命名为mask(用来保存戴口罩的人脸的照片)和face(用来保存不戴口罩的人脸的照片)。

新建数据集

创建分类文件夹

*用OpenMV采集图像

首先我们连接OpenMV,点击IDE里面的“连接”,点击“运行”,Framebuffer帧缓冲区中可以看到OpenMV实时的图像,点击左侧菜单栏中的照片的按钮,OpenMV就会自动的保存这张图片,这就是数据集里面的一个数据。

首先我们要保存的是戴了口罩的人脸,点一下照片的按钮,IDE下侧就会拍摄一张照片,它会自动命名为00000,然后下一张是00001,以此类推。

用OpenMV分别采集200张戴口罩(男女各100张)和200张不戴口罩(男女各占100张)的人脸的照片。

用OopenMV采集男生戴口罩的图像

用OopenMV采集女生戴口罩的图像

*注意:要确保采集到各种角度的照片,保证我们训练学习的多样化。

*如果采集的过程中发现某张图片采集得不够完美的话,可以右键此图片点击删除。

02上传

*选择OpenMVIDE上方菜单栏的“工具”——“数据编辑器”——“Export”——“上传”——“通过APIKey上传”,复制“APIKey”上传即可。

上传时数据将自动划分为训练集和测试集,我们默认选择比例为“80%和20%”即可。我们一共采集了400多张人脸图片,其中80%的TrainingDate就是默认你80%的数据用来训练,剩余的20%用作测试集。

用OpenMV上传数据集

将数据集上传到EdgeImpulse上

03训练数据集

数据集准备就绪,你就可以在EdgeImpulse网站界面中训练数据集了。

*配置处理模块:

首先选择“ImpulseDesign”,配置处理模块:

*设置默认的图像长宽为“96x96”;

*选择“迁移学习(图像)TransferLearning(Images)”,设置学习的模型;

选择“保存Saveimpulse”,显示Successfully就是配置成功了。

配置处理模块

*图像预处理:

单击左侧菜单中的“图像Image”,将颜色格式设置为“RGB”,然后点击“Save”。

特征资源管理器将数据集中的数据进行可视化处理。

在特征资源管理器中分离良好的集群更便于机器学习模型学习。

*配置迁移学习模型

1.将训练周期数Numberoftrainingcycles设置默认为10

2.将学习率Learningrate设置为0.0005

3.可以勾选也可以不勾选“数据增强Dataaugmentation”

点击“开始训练Starttraining”,训练的过程大概4到5分钟左右。

模型训练完成后,你可以查看准确度、混淆矩阵confusionmatrix和预期设备性能。

训练完成后的表现

*测试模型:

训练完成后,我们将使用测试数据来检验模型。

选择“模型测试Modeltesting”,勾选“样本名称Samplename”旁的复选框,点击“分类选择Classifyselected”。这里显示的准确度达到了97%,就一个数据甚少的模型而言实属难得。

一个无法分类的图片(因为其最高数值仍低于0.8的阈值)

如果数据在所有已知的集群(戴口罩/不戴口罩)之外,这可能是与以前看到的任何分类都不匹配的数据——可能是由于头发遮住了大半的人脸。

04在OpenMV上运行模型

完成了训练设计、模型训练和模型验证的步骤,你就可以将这个模型导出到你的OpenMV,选择“OpenMV”,选择“Build”进行生成,它自动生成了3个文件:

*ei_image_classification.py是OpenMV上面要运行的代码

连接OpenMVIDE,把这3个文件保存到OpenMV内置的Flash里面。将ei_image_classification.py文件在OpenMVIDE中打开,可以看到我们刚刚在EdgeImpulse里面生成的代码。点击运行,在串行终端里面会显示运行的结果。

识别戴口罩的人脸

识别不戴口罩的人脸

好啦,你已经成功地为OpenMV增加自行训练神经网络的功能了。

期待你的成果!

责任编辑:lq

原文标题:OpenMV4Plus使用EdgeImpulse自行训练神经网络进行口罩识别

长沙市望城经济技术开发区航空路6号手机智能终端产业园2号厂房3层(0731-88081133)

THE END
1.人工智能深入了解神经网络 通过Frank La La|2019 年 2 月 神经网络是很多高级的人工智能 (AI) 解决方案的基本元素。但是,很少人取消 derstand 这一概念的核心数学或结构化基础。虽然初始研究神经网络返回日期数十年来,它不是直到最近的计算能力和训练数据集的大小进行它们实际供常规使用。 https://docs.microsoft.com/zh-cn/archive/msdn-magazine/2019/february/artificially-intelligent-a-closer-look-at-neural-networks
2.深度学习轻量级神经网络模型,嵌入式微小设备也能实时检测轻量级神经网络的进步已经彻底改变了计算机视觉在各种物联网(IoT)应用中的使用,涵盖了远程监控和过程自动化。 然而,对于许多这些应用来说,检测小型物体,这是至关重要的,目前在计算机视觉研究中仍然是一个未探索的领域,尤其是在资源受限的嵌入式设备上,这些设备拥有处理器。 https://blog.51cto.com/u_15671528/12791754
3.深度学习&神经网络知识神经网络是一种模仿人脑工作原理的计算模型,它由大量的基本单元节点(神经元)组成,这些节点通过层次化的方式组织成输入层、隐藏层和输出层。每个节点都与其他节点通过权重连接,并且每个节点都有一个激活函数,用于决定该节点是否被激活。隐藏层连接输入层与输出层,对输入信息进行非线性变换来处理信息,输出层也即预测结果https://blog.csdn.net/auiiii/article/details/144338942
4.神经网络在线可视化工具cumtchw神经网络在线可视化工具 https://ethereon.github.io/netscope/#/editorhttps://www.cnblogs.com/cumtchw/p/11576625.html
5.随时间在线训练脉冲神经网络模型的图像数据分类方法与流程对于反馈型脉冲神经网络,构建多组(n-1组)脉冲神经元作为不同的隐层,输入层与隐层和隐层与隐层之间具有前馈连接,最后第n-1层隐层与输出层具有前馈连接,第n-1层隐层与第1层隐层具有反馈连接。 [0046] 以上输入层与隐层、隐层与隐层、隐层与输出层之间的连接均代表任意的线性操作,可以包括全连接的神经网络https://www.xjishu.com/zhuanli/55/202210694741.html
6.BrilliantBrilliant是一个在线学习平台,提供Introduction to Neural Networks课程介绍神经网络知识,让学生理解神经网络的基础知识,学习构建和调节神经网络,并应用神经网络解决实际问题。 Introduction to Neural Networks是Brilliant平台上的一门神经网络入门课程。这门课程面向初学者,介绍神经网络的基本概念、模型与算法。学习者可以在这https://www.aizhinan.cn/tools/2320.html
7.SPSS在线SPSSAU上述表格中,基本信息汇总展示出因变量Y(标签项)的分类分布情况,模型评估结果(包括训练集或测试集)用于模型的拟合效果判断,尤其是测试集的拟合效果,以及提供测试集数据的混淆矩阵结果;模型汇总表格将各类参数值进行汇总,并且在最后附录神经网络模型构建的核心代码。 https://spssau.com/en/helps/machinelearning/neutralnetwork.html
8.在线学习RBF神经网络的模型参考自适应控制器.pdf在线学习RBF神经网络的模型参考自适应控制器.pdf,2001年第2期 般机发展 【文章蕾号) 1005—3751(2001)02—0005—03 在线学习RBF神经网络的模型参考自适应控制器 ModelReferen~~AdaptiveController ofOn—lineLearningRBFNem-alNetworks 朱明星 龚蓬(安徽大学自动化系,https://max.book118.com/html/2017/0321/96259798.shtm
9.在线深度学习:在数据流中实时学习深度神经网络机器之心在线深度学习:在数据流中实时学习深度神经网络 在线深度学习的主要困难是模型的容量、复杂度等设置很不灵活,即模型是静态的,而数据流是动态的。本论文提出了一种适应性的网络框架,结合 HBP 算法,使网络结构能随着数据的流入而逐渐扩展、复杂化。这使得模型同时拥有在线学习和深度学习的优点,并在多种在线学习模型和https://www.jiqizhixin.com/articles/2017-12-30
10.基于RBF在线辨识的神经网络PID控制及其应用基于RBF在线辨识的神经网络PID控制及其应用,RBF辨识,神经网络PID控制,仿真,讨论了RBF辨识网络的控制算法,并提出了一种新型PID控制器,该控制器利用神经元自适应PID的在线参数调整,采用RBF网络对被控对象在线https://wap.cnki.net/qikan-YJDL200604034.html
11.变压器油中水分在线监测的神经网络计算模型期刊摘要:为了对变压器油中的微水含量进行在线监测和建模计算,介绍了变压器油纸绝缘中水分的分布和利用聚酰亚胺薄膜电容式湿度传感器在线监测变压器油中微水含量的原理并在变压器油中微水含量监测的相关理论基础上,提出了一种基于神经网络的在线监测计算模型以评估变压器油中的微水含量.比较油中微水含量的计算值与测量值证明,采用https://d.wanfangdata.com.cn/Periodical/gdyjs200705019
12.7个深度神经网络可视化工具,不可错过!腾讯云开发者社区Netscope 是一个支持 prototxt 格式描述的神经网络结构的在线可视工具。它可以用来可视化 Caffe 结构里 prototxt 格式的网络结构,使用起来也非常简单,打开这个地址http://ethereon.github.io/netscope/#/editor,把你的描述神经网络结构的 prototxt 文件复制到该编辑框里,按 shift+enter,就可以直接以图形方式显示网络的https://cloud.tencent.com/developer/article/1065135
13.神经网络模型结构可视化不用代码的在线网页与软件绘图方法之前向大家介绍了一种基于Python第三方ann_visualizer模块的神经网络可视化方法,大家可以直接点击这篇博客(https://www.jianshu.com/p/5984b97127c5)查看;这方法可以对Dense隐藏层以及MaxPooling层、Dropout层、Flatten层等其它类型的隐藏层加以绘制,功能非常强大,但是需要用代码执行,且在执行前需要将神经网络的https://www.jianshu.com/p/833379a901c6