APP下载

一种基于树莓派的口罩自动检测装置

2022-02-19张丽艳赵艺璇李林

大连交通大学学报 2022年1期
关键词:服务端舵机树莓

张丽艳,赵艺璇,李林

(大连交通大学 计算机与通信工程学院,辽宁 大连 116028)①

此次新型冠状病毒的出现给民生、经济、贸易等方面都带来了前所未有的重创,口罩作为阻断病毒传播的有效手段在此次抗击疫情中起到了至关重要的作用.目前商场、药店、饭店等都已经开放,但是这些公共场所大都有必须佩戴口罩才能入内的要求.公共场所客流量大,单纯靠人工来检测如此大人流量是否佩戴口罩并不现实,因此需要寻求一种可以自动检测是否佩戴口罩的设备.

本文设计了一款可以自动检测顾客是否佩戴口罩的设备,并模拟控制门的开关.以树莓派作为主控制系统,应用超声波传感器检测是否有人出现在指定区域,并控制摄像头自动拍照,将图片成功传输给服务器端之后,LED灯亮起,并在服务端进行目标检测,检测到佩戴口罩,舵机控制闸门的开启、关闭,检测到未佩戴口罩,装置不开启.

1 总体方案设计

本文设计了基于树莓派的口罩检测系统,可以放置在一些必须要佩戴口罩的公共场合门口,在一定区域内自动检测行人是否佩戴口罩,并控制闸门的开关,以减少工作人员的工作强度.本系统以树莓派[1]为核心控制模块,外接摄像头、超声波传感器、SG90舵机、LED灯.主要工作过程为服务端(用户PC)首先发送可以接收数据的信息给客户端(树莓派),随后客户端通过摄像头模块和超声波传感器对目标进行数据采集,随后将数据信息无线传输给服务端,传输成功LED灯亮起,随后在服务端通过SSD方法对数据进行目标检测,检测完成后将结果反馈给客户端通过程序控制舵机的开关,控制过程为检测到口罩执行先开门后关门的操作,未检测到口罩则不开门.图1所示为系统总体结构图.

图1 系统结构图

2 系统硬件设计

本文选择“Raspberry Pi 4B”为控制处理器[2-3],树莓派采用Python进行编程,使用Linux和Windows系统为操作系统的ARM微机主板开发,以SD / MicroSD卡为内存硬盘.具有40个GPIO驱动接口以连接更多硬件,实现系统整体功能.在进行工作前需要对树莓派进行基础配置[4].本系统在硬件设计部分主要包括摄像头模块、超声波传感器、LED灯和舵机.运用超声波传感器检测顾客是否出现在阈值区域内,如检测到区域内有人则运用摄像头进行拍照;LED灯亮表示数据从客户端向服务端传输成功;SG90舵机模块进行开、关控制.

2.1 摄像头模块

本系统使用树莓派专用500万像素广角摄像头对目标进行数据采集即拍照,以OpenCV作为拍照模块处理图像的主要工具.摄像头含有OV5647感光芯片,静态图片分辨率为2 592 dpi×1 944 dpi,支持1080p30,720p60以及640×480p60/90视频录制.

2.2 LED模块

本系统使用LED灯指示树莓派拍摄照片已成功传输给服务端进行图像处理.LED灯正极连接树莓派GPIO端口的BCM21,控制灯的亮灭,LED负极连接树莓派的接地端口GND.使用LED模块的流程为先默认LED灯熄灭,待文件传输完成后灯亮1s后熄灭,此程序可随着文件传输重复执行.

2.3 超声波传感器

本系统选择HC-SR04超声波传感器作为检测顾客在设定阈值区域内出现从而可以调用摄像头进行拍照的模块.超声波传感器具有稳定的性能,可以准确地测量距离和小目标,可适用于机器人躲避障碍物、物体范围、水位感知及公共安全领域[5].HC-SR04模块有VCC、GND、Trig(控制端)和Echo(收信端)的四个接口.VCC是5V电源,GND接地,Trig是控制终端触发信号输入,在本系统中用GPIO口的BCM20号控制,Echo为接收端等待回响信号输出,在本系统中用GPIO口的BCM16号控制.超声波测距模块的工作原理大致分为以下四个步骤:

(1)触发信号:触发Trig端口给至少10 us的高电平信号用于测距;

(2)模块内部:发送8个40 kHz的方波自动检测返回信号;

(3)输出回响信号:返回信号触发Echo输出一个高电平,输出测试距离如式(1)所示;

(1)

(4)设定阈值:想要检测固定区域内出现的目标需要设定一个阈值范围,并将其与拍照模块相连接,如检测到阈值范围内的目标则触发拍照,本系统设定阈值为0.3~0.5 m.当控制端发出高电平,就在接收端等待输出,当接收到输出信号则开始计时,当检测到的输出信号由高电平变为低电平时停止计时,利用时间差代入公式即可算出距离,设定固定距离阈值并连接拍照模块可以实现自动对出现在阈值内的目标拍摄照片.

2.4 舵机

本系统使用SG90伺服马达作为仿真装置开关.伺服马达又称舵机,是一种可以变化角度且可以保持的控制系统.SG90舵机有三个引线接口,分别是红线电源VCC,黑线接地GND,黄线控制线使用PWM脉冲宽度调制技术,该系统用GPIO端口BCM17控制.在伺服器内部,以20 ms的主周期和50Hz的频率生成标准信号作为基准电路,由微处理器生成的PWM信号进入到舵机并产生直流偏置电压,从而控制伺服器的顺向和逆向旋转.该系统使用180°舵机,生成PWM信号,脉冲宽度在0.5~2.5 ms之间[6-7].平滑齿轮的控制信号是PWM信号,需要通过改变占空比从而改变舵机的旋转角度,其中占空比表示高电平所占周期电平周期的比例.本系统执行代码使舵机从0°旋转到180°,每次旋转10°,实现缓慢开关,转动角度用占空比控制,从2.5%~12.5%设定旋转角度为0°~180°,在20 ms周期后结束.要实现运用PWM控制舵机旋转固定角度需要将一个周期20 ms分为两次中断执行,分别是高电平持续时间为0.5~2.5 ms的短定时中断以及一次长定时中断.通过改变高电平持续时间及占空比控制舵机旋转角度,从而达成本系统模拟自动门开关的目的.

3 系统软件设计

本文系统在软件部分通过套接字socket建立客户端树莓派与服务端计算机的联系实现了信息传输,并将接收到的客户端传输图片应用SSD目标检测算法进行戴口罩与未戴口罩两类检测.软件系统结构如图2所示,首先需要客户端通过超声波传感器持续监测与障碍物的距离,设定阈值为0.3~0.5 m,在此范围内触发客户端树莓派摄像头拍照,否则不拍照;随后通过socket无线传输将所拍摄图片传输给服务端,传输完成LED灯亮起;在服务端通过SSD目标检测算法对图像进行是否佩戴口罩的检测并将结果反馈给客户端;最后在客户端设定程序,如识别结果为佩戴口罩则控制舵机先正向、后反向各旋转90°表示闸门装置的开启和关闭,如识别结果为未佩戴口罩则舵机不工作,闸门装置保持关闭状态.

图2 软件系统结构

3.1 数据集建立

本文系统从网络中搜集了戴口罩与未戴口罩的正面人脸图片共1 651张.从中随机选取1 000张图片作为训练集, 551张图片作为验证集,100张图片作为测试集,并对训练集和验证集样本利用labelImg图像标注工具进行人工标注并制作成所需.xml格式.本系统将目标类别分为两类进行标注,分别是戴口罩类别mask及未戴口罩类别face.

3.2 SSD目标检测算法

本文在服务端检测是否佩戴口罩使用了主干网络为mobilenet的SSD目标检测算法,MobileNet-SSD的网路结构是在SSD网络结构上改进的,将主干网的VGG16替换成MobileNet,去掉了主干网MobileNet 最后的全局平均池化、全连接层和softmax层,在MobileNet网络的最后卷积层conv13的后面增加了八个卷积层,并抽取其中的四层分别是conv14_ 2、conv15_ 2、conv16_ 2、conv17_2和MobileNet原网络中的conv11、conv13层,用于目标检测的分类和定位.MobileNet-SSD网络与SSD网络相比,虽然检测准确率略微下降,但是参数量由33.1×106下降到6.8×106,有较为明显的轻量级、低延迟的特点,在本文应用背景中有较大的优势[8-9].

本系统输入为大小是 300 ×300 的图像,首先经过一层标准卷积,其次将特征图输入到13层修正后的深度可分离卷积,具体操作为先通过卷积核为3×3的 Depthwise 卷积操作得到输出特征图,再利用卷积核为1×1的 Pointwise 卷积操作进行各通道的特征融合得到输出.候选框的回归和目标分类利用MobileNet 最后两个卷积层的输出以及新添加的四个卷积层实现,最后利用非极大抑制输出最终预测框[10-11].图3所示为MobileNet-SSD结构.

图3 MobileNet-SSD网络结构

4 系统测试及结果分析

本文系统应用SSD目标检测算法判断顾客是否佩戴口罩,训练过程中在手动标注的训练集与验证集共1 551张图片检测两类分别是戴口罩与不戴口罩的模型mAP值达到97.21% ,可以看出模型检测效果十分优秀,可以应用到本系统对客户端传送给服务端的图片进行是否佩戴口罩的检测.

5 结论

本文应用客户端树莓派与服务端计算机运用软硬件交互的方法实现了口罩检测并模拟自动门功能.应用超声波传感器实现了检测阈值范围内出现的人,运用SSD目标检测算法得到了一个很好的检测效果,系统基本实现了实时监测顾客是否佩戴口罩并通过舵机模拟门的开关功能.

猜你喜欢

服务端舵机树莓
多人联机对战游戏的设计与实现
基于三层结构下机房管理系统的实现分析
基于三层结构下机房管理系统的实现分析
黄金水果红树莓
树莓红了 游人醉了
海太克HS—1100WP数字舵机
超音速舵机保护器
e络盟率先推出第三代树莓派
年度睡姿大盘点(下)
菜鸟看模型