4286| 3
|
无接触自动体温和口罩检测终端V2 |
本帖最后由 fibx 于 2020-8-14 15:42 编辑 无接触自动体温和口罩检测终端V2概述这是一个基于面部定位和深度学习,智能且经济实惠的自动化、无接触体温和口罩检测终端。成本低于100美元。 所需材料和工具
制作过程随着世界各国相继复工、复产,与新型冠状病毒一起生活正在成为新的生活方式。但是,为了阻止病毒的传播,我们需要把感染冠状病毒的人进行隔离。 根据疾控中心的说法,发烧是感染冠状病毒的主要症状,高达83%带症状的患者有发烧的迹象。许多国家/地区强制要求学校、大学、办公室和其他工作场所进行体温检测和戴口罩。 目前,体温检测是用无接触式温度计手动完成的。手动检查效率低下、不切实际(在人流量大的地方),而且风险很大。 为了解决这些问题,我设计了一个终端,通过使用面部定位技术和无接触式红外温度传感器实现体温检测过程自动化,并利用深度学习神经网络进行口罩检测。成本低于100美元。 这种终端的使用不局限于学校、大学、办公室和其他工作场所,还可以用于医院等高风险区域。该装置也可用于火车站、公共汽车站、机场等。 我用于这个项目中的方法是建立一个简单的安装设置过程,以便任何没有计算机视觉或深度学习经验的人都可以使用它。这是一个功能齐全、随时可用的项目。我已经使这个项目可通过为每一个独立的部分或完整的版本添加代码文件进行高度定制。因此,可以单独使用本项目的任何部分。 得益于Amazon AWS的成果,我能够使用AWS EC2实例的高性能计算能力训练用于口罩检测的深度学习模型。 第2版有什么改进
去这里查看第1版。 第0步:工作原理首先,基于TensorFlow的深度学习神经网络尝试检测目标人物是否戴了口罩。通过使用许多不同的实例对系统进行训练以防止误报,使系统变得健壮。 一旦系统检测到口罩,它就会进行面部定位。该系统使用DLIB模块进行面部定位,以找到人体额头上的最佳测温点。 接着,利用舵机的PID控制系统,将额头上选定的点对准温度传感器,或者如果在自我对准模式下,用户可以根据视觉线索调整自己。对准后,系统使用无接触式红外温度传感器读取温度读数。 如果温度在正常人体体温范围内,则允许这个人通行,并向管理员发送一封带有图片和其他细节(如体温等)的电子邮件。 第1步:软件安装
设置BalenaFin
安装树莓派系统
设置树莓派触摸屏注意:我用的是普通的3.5英寸触摸屏。你可以使用其它型号,但是强烈推荐使用官方树莓派触摸屏。如果你选择使用3.5英寸的触摸屏,你将需要动手焊接一些引脚。 参考官方教程设置官方树莓派触摸屏。 安装树莓派摄像头参考官方教程设置树莓派摄像头V1/V2。 安装软件包和库在终端中逐个执行以下命令来安装各种软件包和库。 更新系统,为安装做好准备更新树莓派操作系统
更新pip3
扩展交换文件大小和更改内存拆分
这将在新窗口打开一个文件。找到CONF_SWAPSIZE=100并将其更改为CONF_SWAPSIZE=1024。然后依次单击Ctr+O、回车和Ctr+X保存更改并关闭文件。 接着运行以下命令使更改生效。
然后运行
并导航到高级选项 => 内存拆分, 把128更改为16 (128 => 16)。 然后重新启动树莓派。 安装必备包
安装OpenCV安装OpenCV的重要依赖项
安装OpenCV
安装TensorFlow注意:该模型是在Tensorflow-2.2上训练的,如果您使用其它版本的TensorFlow,可能会导致一些问题。
确认安装正确
如果您在这一步没有收到任何错误,则表示已经成功地安装TensorFlow。 安装DLIB
检查安装情况
如果在这一步没有收到任何错误,则表示已成功安装DLIB。 改回交换文件大小和更改内存拆分
这将在新窗口打开一个文件。找到CONF_SWAPSIZE=1024,然后更改为CONF_SWAPSIZE=100。然后依次单击Ctr+O、回车和Ctr+X保存更改并关闭文件。 接着运行以下命令使更改生效。
然后运行
并导航到高级选项 => 内存拆分, 把16更改为128 (16 => 128)。 然后重新启动树莓派。 从GitHub下载源代码
设置环境变量
这将打开一个文件,如果你想收到电子邮件提醒,在文件的末尾添加以下几行
用您的电子邮箱地址替换“your-email-id@something.com"
用您的电子邮箱密码替换“your-email-password”
设置邮箱要使用电子邮件提醒服务,您需要一个Gmail帐户,并且您需要允许不太安全的APP。或者,如果使用两阶段身份验证,则可能需要创建APP密码。 第2步:安装硬件电路接线如电路图所示,连接舵机X和舵机Y。按照电路图接好所有的连接线。摄像头必须连接到摄像头接口,树莓派显示器可以连接到显示器接口。如果您使用的是普通的3.5英寸触摸屏,则可以将屏幕连接到所需的GPIO接口。连接到舵机的GPIO仍然是悬空的,你需要焊接以获得传感器的5v电压,传感器的SDA、SCL引脚也需要焊接。 注意:舵机X是控制左右移动的。舵机Y是控制上下移动的。 设置温度传感器温度传感器连接好后,运行以下命令
复制端口名称(本例中为5a)
然后,找到下面这行代码,并更改5A
第3步:验证
运行启用PID对准功能的完整应用程序
运行启用自我对准功能的完整应用程序
远程访问(可选)
重新启动后
启动远程访问
你会看到一个网址,使用这个网址可以查看仪表板(需运行前面给出的步骤之后才可以)。 第4步:3D打印树莓派外壳和摄像头与传感器外壳你可以用下面提供的文件3D打印外壳,或者可以用纸板、木头等制作你自己的临时外壳。 我3D打印的是由Stephen Wilson为我的3.5英寸触摸屏设计的外壳。 如果您使用的是官方树莓派显示器,请尝试在ThingVerse网站上查找外壳。我很喜欢这款,但还没用过。 至于摄像头和传感器外壳,我自己定制了一个,为的是使摄像头和传感器可以对齐。如果你想要修改外壳,可能需要更改代码中的对齐点。 注意:这些外壳是针对树莓派2代/3代设计的,不适用于树莓派4代。对于树莓派4代,你需要找到一个不同的外壳。以下附件所提供的摄像头和传感器外壳文件并没有为传感器预留螺丝孔(因为传感器的形状和尺寸各不相同)。如果你需要螺丝孔请自行修改这些文件。 第5步:故障排除如果口罩检测不能正常工作,该怎么办? 注意:这可能是棘手的,如果你在任何一个步骤卡住随时与我联系! 1 使用命令在树莓派上拍摄一些戴口罩和不戴口罩的照片
2 到这里的Google Collab笔记本并复制它。在 3 然后在笔记本上运行前4个单元格。这将创建两个文件夹:戴口罩和不戴口罩。将您拍摄的图像分别添加到这些文件夹并运行所有其他单元格。 4 运行之后将创建一个新的模型文件mask_detector.h5。下载这个模型并用它替换树莓派上covid=>models中的旧模型。 如果体温检测不能正常工作,该怎么办? 在此,向Adrian Rosebrock致敬,感谢他那令人惊叹的计算机视觉博客。 第6步:进一步改进的空间目前,我正在使用BalenaOS开发本项目的BalenaFin的版本。它允许各种规模的企业轻松地进行大规模部署。不幸的是,我没有足够的时间在截止日期前完成它,但我会尽快发布它。在那个版本中,我在BalenaOS上使用了2个docker容器,一个带有Balena Dash的Web图形用户界面,另一个用于所有计算。 定制零件和外壳
电路图
源代码直接下载:ZIP压缩包
|
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed