为嵌入式设备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)