matlab大作业——智能口罩识别系统(一)图片数据集

项目思路介绍

一切开始前,先来总体介绍一下我这个项目是的大体情况。
这个项目是我们小组的一个结课大作业,但是大部分都是我亲自完成的,这里仅分享我制作的那部分(主要是因为同学后来加的那部分语音识别太鸡肋,点了检测按钮还得再说一声开始检测才能打开摄像头,我觉得毫无意义)。虽然不算太难,但是从开始研究到最后结束我花了将近两个星期(因为平时还得正常上课)。
这是一个单人或多人口罩识别的应用,主要运用卷积神经网络(lenet5)来进行判别,预期效果是若检测到没有人戴口罩则在屏幕实时显示警报,并发出声音提示。
下面是一组效果图:
(单人)
在这里插入图片描述
(多人)
在这里插入图片描述
看完效果图之后,我们废话不多说,直接进入正题

数据集的构建

要使用卷积神经网络,我们首先得有一个庞大的数据集,用来训练神经网络。我这里采用的数据集有8个分类,每个类有22张照片,使用其中17张为训练集、5张为验证集。这些照片设定大小为200*200RGB图片(因为太小会失真检测效果大大减少)
下面是一个数据集的一部分在这里插入图片描述
图片是从各处搜集到的,大小不一,形状各异。但是我们要明白一个基本知识传入卷积神经网络的图片要求大小相同。所以我们就涉及到了批量处理数据的问题。于是我编写了一段代码:
你使用时只需要改写输入地址和输出地址和循环次数(图片个数)即可。 此外,我这里只需要将图片大小更改,所以只有这一个功能,你可以根据你的所需将图片二值化、进行灰度处理等等

ObjDir = 'D:\matlab\new\my\4\';%将被改变的图像地址,称为目标地址
OtpDir = 'D:\matlab\new\HandWrittenDataset\12\';%输出图像地址,称为输出地址

for i = 1:5%我的图像标号是
%输入区
    bgFile = [ObjDir,num2str(i,'%d'),'.jpg'];%这句话读取目标地址里面的格式为jpg的图片
    bgFile = imread(bgFile);%把图片读成matlab认识的,类型为:图片

%在这里插入你想要的功能。
    img = imresize(bgFile,[200 200]);%调整大小到200*200

%输出区
    filename=[num2str(i,'%d'),'.jpg'];%输出的图片名称是
    path=fullfile(OtpDir,filename);%输出的路径
    imwrite(img,path,'jpg');%以jpg格式输出出去
end

好了!数据集的创建就说到这里,后面还会有:怎样训练卷积神经网络、怎样从matlab对摄像头进行操作、怎样构造屏幕刷新函数、怎样构建一个GUI、怎样进行软件打包,想要跟着我了解一套完整课程设计该怎么做就关注我吧!近期会爆肝更新!!!

  • 17
    点赞
  • 80
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
要将 Matlab识别一张图片扩展到识别整个数据集,首先需要了解如何将多个图片加载到 Matlab 程序中。一般情况下,一个称为文件夹(或文件目录)的容器用于在同一个目录下存放多个图像文件。 在 Matlab 中要读取整个数据集,可以使用一个 for 循环来遍历这个文件夹。 首先,要使用 Matlab 的 dir() 函数找到文件夹中的所有图像文件,然后使用一个循环来处理每个文件。 在处理每个文件时,需要使用 imread() 函数将图像文件加载到 Matlab 中,并将这些图像保存到一个数据结构中,比如一个矩阵或数组。可以使用一个 for 循环读取每个图像文件。在每个循环迭代中,打开一个新的图像文件、读取它、将它保存到一个数据结构中,然后关闭这个文件。 对于每张图像,还需要进行预处理。预处理可能包括裁剪图像,调整图像大小,将图像转换为灰度图像,或对图像进行其他操作,以便在后续的图像处理和分类步骤中更好地处理它们。 一旦完成了所有的文件读取和预处理,就可以使用常规的图像处理和机器学习函数对整个数据集进行分析和分类。可以使用常见的分类方法,如支持向量机、卷积神经网络、K均值聚类等等,来对整个数据集进行分类和学习。 【注意】:除此之外,数据集的类别标记也很重要。需要用cellstr函数建立一个标签的cell数组label存储所有图像的标记,并记录每个标记所对应的类别信息,以便在分类模型训练和测试中使用。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值