毕设成品 stm32与深度学习口罩佩戴检测系统(源码+硬件+论文)

文章目录

  • 0 前言
  • 1 主要功能
  • 2 硬件设计(原理图)
  • 3 核心软件设计
  • 4 实现效果
  • 5 最后

0 前言

🔥
这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。

为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的是

🚩毕业设计 stm32与深度学习口罩佩戴检测系统(源码+硬件+论文)

🥇学长这里给一个题目综合评分(每项满分5分)

  • 难度系数:3分
  • 工作量:3分
  • 创新点:5分

🧿项目分享:见文末!

1 主要功能

系统框架,下位机系统分为主控模块、通信模块、显示模块、报警模块四个部分组成,其运行流程为:首先主控模块通过通信模块接收上位机发送的识别结果数据,读取当前状态数据,当检测结果通过显示模块实时的显示在屏幕上,用于直观展示,若发现当前状态为未佩戴口罩,驱动报警程序控制蜂鸣器进行报警。

2 硬件设计(原理图)

口罩检测门禁系统的主要以PC和STM32为主控核心,首先是由PC端连接WiFi热点然后上位机的主控程序打开PC端摄像头实行实时检测再通过其WiFi模块将实时检测结果传输到我们的STM32模块中进行处理,将检测结果通过OLED进行显示,最终通过蜂鸣器发出警报。

硬件选择

  • STM32F103RCT6开发板 * 1
  • 蜂鸣器模块 * 1
  • Wifi - ESP01S * 1
  • 1.44寸液晶屏(SPI接口) * 1
  • 杜邦线若干

3 核心软件设计

系统软件流程如图所示,上位机的状态信息可以通过TCP通信实时传输给下位机控制器,进而下位机根据所接收到的数据进行其它显示报警操作。

(1)上位机软件设计:上位机软件主要负责将口罩识别的结果通过TCP通信传输给下位机,本课题上位机作为TCP客户端。首先上位机进行网络通信的初始化,包括设置IP地址与端口,创建socket对象,建立socket连接,之后上位机按钮通过AJAX方式向后端发起请求,后端调用TCP客户端向ESP8266发送消息。当成功建立局域网之间的通信时,上位机可显示连接成功的状态。
(2)下位机系统的软件程序设计包括系统的初始化程序及其各功能模块的子程序。其中初始化程序包括LCD显示屏配置的初始化、ESP8266通信模块的初始化程序。

蜂鸣器检测报警程序:若系统状态检测到未佩戴口罩,单片机进入报警程序控制相应的引脚输出高电平,进而控制蜂鸣器发出报警声音

ESP8266模块程序:首先进入通信初始化程序,启动STA模式,连接WIFI,并通过AT指令将ESP8266配置为服务端,与ESP8266通过串口连接的STM32控制器进入串口中断回调函数接收上位机发送过来的数据。

深度学习口罩佩戴检测

数据集的准备:

数据集是从网络上爬取的图片,总的包含了8535张图片(其中部分图片没有使用到),其中包含:
戴口罩的数据图(with_mask):2978个;
未戴口罩的数据图(without_mask):2995个;
带了口罩但是姿势不正确的数据图(mask_weared_incorrect):2994个。
所有图片均是由人脸识别模式切割出,每个图都只包含小部分图像,这也使得训练的准确性有极大的提高,有的图片还进行了旋转操作实现数据增强。下图12是我截图的部分数据集(包含了正确佩戴口罩、未佩戴口罩和未正确佩戴口罩三部分的数据图片)。

数据集训练

在准备好数据图集之后自然是需要进行训练了,对于每一张图片画出区域打赏本文使用了一款开源的标注工具labeling,非常的简便、高效的。运行指定的数据集文件夹实现标注,人工标注图片集,将整张脸作为目标框标注出它的位置,如图13,然后将相应的数据写入到相应的数据标签。

当完成数据集标注后,每张图片所对应的标签文件会自动保存到指定的文件夹,如图14,其中每一行开头的数字0和1代表着待检测的目标类别“with_mask”与“without_mask”,即已佩戴口罩或未佩戴。每行后续四个数字是该目标样本在本张图片中的位置坐标。

训练过程

按照目标要求更改训练数据、神经网络模型路径、训练轮数、batchsize的大小和GPU处理的数量以及其他的一些参数,然后模型训练代码就可以正式运行了。尽管本次制作的目标检测的数据集是由8535张训练集、验证集图片组成,模型的损失函数值还是很快地收敛开始无限接近于0,在训练执行到第35轮时模型准确率接近于90%。

展示模型在训练过程中的准确率(Precision)与召回率(Recall)数值的变化。

使用下图这两个函数绘制训练的loss(图1)和accuracy(图2)曲线,可以看到,整个训练过程的收敛性是非常好的,最后在验证集的准确率也稳定到了97%左右。

篇幅有限,不过多复述详细设计细节,详细的设计分享在论文中。。。

stm32采集部分代码

voidSMBus_StartBit(void){SMBUS_SDA_H();// Set SDA lineSMBus_Delay(5);// Wait a few microsecondsSMBUS_SCK_H();// Set SCL lineSMBus_Delay(5);// Generate bus free time between StopSMBUS_SDA_L();// Clear SDA lineSMBus_Delay(5);// Hold time after (Repeated) Start// Condition. After this period, the first clock is generated.//(Thd:sta=4.0us min)SMBUS_SCK_L();// Clear SCL lineSMBus_Delay(5);// Wait a few microseconds}voidSMBus_StopBit(void){SMBUS_SCK_L();// Clear SCL lineSMBus_Delay(5);// Wait a few microsecondsSMBUS_SDA_L();// Clear SDA lineSMBus_Delay(5);// Wait a few microsecondsSMBUS_SCK_H();// Set SCL lineSMBus_Delay(5);// Stop condition setup time(Tsu:sto=4.0us min)SMBUS_SDA_H();// Set SDA line}u8SMBus_SendByte(u8 Tx_buffer){u8 Bit_counter;u8 Ack_bit;u8 bit_out;for(Bit_counter=8;Bit_counter;Bit_counter--){if(Tx_buffer&0x80){bit_out=1;// If the current bit of Tx_buffer is 1 set bit_out}else{bit_out=0;// else clear bit_out}SMBus_SendBit(bit_out);// Send the current bit on SDATx_buffer<<=1;// Get next bit for checking}Ack_bit=SMBus_ReceiveBit();// Get acknowledgment bitreturnAck_bit;}voidSMBus_SendBit(u8 bit_out){if(bit_out==0){SMBUS_SDA_L();}else{SMBUS_SDA_H();}SMBus_Delay(2);// Tsu:dat = 250ns minimumSMBUS_SCK_H();// Set SCL lineSMBus_Delay(6);// High Level of Clock PulseSMBUS_SCK_L();// Clear SCL lineSMBus_Delay(3);// Low Level of Clock Pulse// SMBUS_SDA_H(); // Master release SDA line ,return;}u8SMBus_ReceiveBit(void){u8 Ack_bit;SMBUS_SDA_H();//引脚靠外部电阻上拉,当作输入SMBus_Delay(2);// High Level of Clock PulseSMBUS_SCK_H();// Set SCL lineSMBus_Delay(5);// High Level of Clock Pulseif(SMBUS_SDA_PIN()){Ack_bit=1;}else{Ack_bit=0;}SMBUS_SCK_L();// Clear SCL lineSMBus_Delay(3);// Low Level of Clock PulsereturnAck_bit;}u8SMBus_ReceiveByte(u8 ack_nack){u8 RX_buffer;u8 Bit_Counter;for(Bit_Counter=8;Bit_Counter;Bit_Counter--){if(SMBus_ReceiveBit())// Get a bit from the SDA line{RX_buffer<<=1;// If the bit is HIGH save 1 in RX_bufferRX_buffer|=0x01;}else{RX_buffer<<=1;// If the bit is LOW save 0 in RX_bufferRX_buffer&=0xfe;}}SMBus_SendBit(ack_nack);// Sends acknowledgment bitreturnRX_buffer;}

4 实现效果

演示视频

毕业设计 stm32与深度学习口罩佩戴检测系统 - 单片机 嵌入式 物联网

5 最后

包含内容

包含详细设计论文

🧿项目分享:见文末!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1137043.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

盲人丈夫为55岁妻子报琴课,红松小课传递暖心爱意

​55岁的王金珠提起学钢琴的事&#xff0c;眼睛里带着笑意&#xff1a;“结婚纪念日&#xff0c;刘鹏偷偷给我报了红松小课的钢琴课&#xff0c;他说我这个‘琴行老板’该好好学琴了。”她口中的“琴行”不是卖钢琴的店铺&#xff0c;而是和丈夫刘鹏在哈尔滨经营的一家盲人按摩…

一文说清Elasticsearch中的分页与深度分页问题

一文讲透 Elasticsearch 分页与深度分页&#xff1a;从原理到实战你有没有遇到过这样的场景&#xff1f;前端同学说&#xff1a;“用户点了第500页&#xff0c;怎么卡住了&#xff1f;”运维报警&#xff1a;“ES节点CPU爆了&#xff0c;查一下是不是有人在翻几万条数据&#x…

大数据BI工具排行榜:2023年最受欢迎的10款工具盘点

大数据BI工具排行榜&#xff1a;2023年最受欢迎的10款工具盘点关键词&#xff1a;大数据BI工具、商业智能、数据可视化、自助式BI、企业级BI、AI驱动分析、数据治理摘要&#xff1a; 本文深度解析2023年全球最受欢迎的10款大数据BI工具&#xff0c;从技术架构、核心功能、适用场…

琴声润晚年!红松小课见证盲人夫妻的幸福答卷

55岁的王金珠提起学钢琴的事&#xff0c;眼睛里带着笑意&#xff1a;“结婚纪念日&#xff0c;刘鹏偷偷给我报了红松小课的钢琴课&#xff0c;他说我这个‘琴行老板’该好好学琴了。”她口中的“琴行”不是卖钢琴的店铺&#xff0c;而是和丈夫刘鹏在哈尔滨经营的一家盲人按摩店…

提示系统代码覆盖率分析瓶颈:架构师的6个突破策略

系统代码覆盖率分析瓶颈&#xff1a;架构师的6个突破策略——深入剖析大型项目优化之道 副标题&#xff1a;从测试效率到高质量交付&#xff0c;打造可伸缩的覆盖分析架构 第一部分&#xff1a;引言与基础 (Introduction & Foundation) 1. 引人注目的标题 系统代码覆盖率…

动圈 vs 动铁耳机频率响应差异:深度剖析结构影响

动圈 vs 动铁耳机频率响应差异&#xff1a;从结构到听感的深度拆解你有没有过这样的体验&#xff1f;同一首歌&#xff0c;换一副耳机&#xff0c;仿佛换了支乐队在演奏。低频不再是“轰”地一下扑来&#xff0c;而是清晰可辨的鼓点节奏&#xff1b;人声不再浑浊挤在一起&#…

基于Java+SpringBoot+SSM传统文化交流交易平台(源码+LW+调试文档+讲解等)/传统文化传播平台/文化交流平台/文化交易平台/传统文化活动平台/传统文化展示平台/文化交流交易网站

博主介绍 &#x1f497;博主介绍&#xff1a;✌全栈领域优质创作者&#xff0c;专注于Java、小程序、Python技术领域和计算机毕业项目实战✌&#x1f497; &#x1f447;&#x1f3fb; 精彩专栏 推荐订阅&#x1f447;&#x1f3fb; 2025-2026年最新1000个热门Java毕业设计选题…

伊顿变压器启用明诺V75驾驶式洗地机,赋能智慧工厂清洁升级

作为全球智能动力管理领域的领军企业&#xff0c;伊顿变压器始终以高标准打造生产环境&#xff0c;保障电力设备制造的安全性与精密性。近日&#xff0c;伊顿变压器&#xff08;江苏&#xff09;有限公司正式启用明诺V75驾驶式洗地机&#xff0c;为其68000平方米的现代化生产车…

漏电探测仪:发现绝缘老化、线路破损等隐患

漏电探测仪作为一种专业的电气安全检测工具&#xff0c;在发现绝缘老化、线路破损等隐患方面发挥着至关重要的作用。以下是对漏电探测仪如何发现这些隐患的详细解释&#xff1a;一、漏电探测仪的工作原理漏电探测仪通常基于电磁感应原理或电场感应原理工作。它能够检测到电路中…

PCB铺铜初学指南:掌握地平面设计要点

PCB铺铜实战心法&#xff1a;从地平面设计到信号完整性的底层逻辑你有没有遇到过这样的情况&#xff1f;电路原理图明明没问题&#xff0c;元器件选型也经过反复验证&#xff0c;可板子一上电就干扰严重&#xff0c;ADC采样数据跳得像心电图&#xff0c;高速通信动不动就丢包。…

一文说清USB-Serial Controller D驱动下载常见问题

一文说清USB-Serial Controller D驱动下载常见问题 你有没有遇到过这样的情况&#xff1a; 手里的开发板插上电脑&#xff0c;设备管理器里却只显示“未知设备”或“USB-Serial Controller D”&#xff0c;找不到COM口&#xff1f; 串口助手打不开端口&#xff0c;烧录程序失…

新手必看:工业电子项目前的Vivado安全卸载方法

工业电子项目启动前&#xff0c;如何彻底卸载Vivado&#xff1f;新手避坑全指南 你有没有遇到过这种情况&#xff1a; 刚装好新版Vivado&#xff0c;结果一打开就报错“许可证无效”&#xff1b; 或者JTAG连不上开发板&#xff0c;反复重装驱动也没用&#xff1b; 甚至安装…

工业电机驱动器中I2C配置接口的操作指南

工业电机驱动器中I2C配置接口的实战解析&#xff1a;从原理到代码调试在工业自动化系统中&#xff0c;电机驱动器早已不是简单的“通电就转”设备。现代伺服、步进或BLDC驱动芯片集成了复杂的控制逻辑和保护机制&#xff0c;而如何高效地与这些“智能执行单元”通信&#xff0c…

SSM校园排球联赛管理系统y513u(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面

系统程序文件列表系统项目功能&#xff1a;学生,排球联赛,比赛报名,比赛成绩,比赛分组SSM校园排球联赛管理系统开题报告一、课题研究背景与意义&#xff08;一&#xff09;研究背景校园排球联赛作为高校体育文化建设的重要组成部分&#xff0c;深受学生喜爱。但当前联赛管理多依…

HID设备操作指南:报告描述符编写技巧与验证方法

深入HID报告描述符&#xff1a;从零构建可即插即用的USB输入设备你有没有遇到过这样的情况&#xff1f;精心设计的嵌入式HID设备&#xff08;比如自定义键盘、游戏手柄或工业控制面板&#xff09;已经能正常发送数据&#xff0c;但主机就是“视而不见”——按键不响应、坐标错乱…

前端向架构突围系列 - 框架设计(三):用开闭原则拯救你的组件库

写在前面 兄弟们&#xff0c;回想一下&#xff0c;你有没有接过这种需求&#xff1a; 产品经理跑来说&#xff1a;“咱们那个通用的表格组件&#xff0c;现在需要在某一列加个自定义的渲染逻辑&#xff0c;以前是纯文本&#xff0c;现在要变成个带图标的按钮&#xff0c;还能点…

如何在 Linux 中使用 file 命令识别文件类型

在 Linux 系统中&#xff0c;file 命令是一款强大的工具&#xff0c;用于确定文件类型&#xff0c;例如普通文件、压缩归档文件、符号链接以及其他特殊文件类型。与仅依赖文件扩展名的方法不同&#xff0c;file 命令通过引用“magic file database”数据库来识别文件类型。该数…

WebM转MP4在线转换工具

WebM转MP4在线转换工具 - 88box视频格式转换助手 工具核心信息 工具名称&#xff1a;88box视频格式转换工具访问地址&#xff1a;https://88box.top/video-tools/transcode核心功能&#xff1a;支持WebM与MP4格式双向转换&#xff0c;兼容多场景视频格式适配需求 工具详细介…

SSM校园人才市场391d8(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面

系统程序文件列表系统项目功能&#xff1a;学生,企业,招聘信息,岗位类别,投递简历,参加面试,面试结果,学生评价SSM校园人才市场开题报告一、课题研究背景与意义&#xff08;一&#xff09;研究背景当前高校毕业生就业压力逐年增大&#xff0c;校园招聘作为毕业生求职的核心渠道…

图解说明RS232串口调试工具在自动化产线中的连接方式

RS232串口调试工具如何接&#xff1f;一张图讲清自动化产线中的“通信听诊器”用法在现代自动化车间里&#xff0c;PLC、伺服驱动器、条码扫描仪、温控表这些设备高速协同运转。一旦通信出问题&#xff0c;整条产线可能就得停摆。这时候&#xff0c;工程师往往会掏出一个不起眼…