智能门摄像头与面部识别和热筛选

38

在Covid-19疫情期间,在允许进入办公室等场所之前,体温检测已成为必不可少的检查体温的手段。然而,这是一个累人的过程,因为它涉及到测量所有人的体温,一次一个。同时,进行热筛的人每天要站很长时间来检查每个人。这需要花费大量的时间和精力。

所以,我们已经建立了一个面部识别和热筛选系统,可以毫不费力地完成这项工作。该设备可以识别每个人的脸,并进行热筛选以检测他们的体温。如果发现有人发烧,系统会警告该人不要进入,并自动通知该人进行Covid-19检测。如果发现体温正常,在适当的消毒后允许进入。

表1列出了项目所需的组件。

先决条件

请确保您的Raspberry Pi (Rpi)板安装了最新的Raspbian。它通常预装在Python3中,但如果您没有找到它,请同时安装最新的Python环境和IDE。

安装库
图1:库的安装

打开Linux终端,使用下面给出的命令安装以下库(见图1):

Sudo pip3安装人脸识别
Sudo apt-get install speak
Sudo apt-get install python- speak
安装opencv2

用于导入库的Python代码
图2:导入库的Python代码
创建一系列已知的人
图3:已知人员数组的创建
检查温度的代码
图4:温度检测代码
保存数据库的代码
图5:保存数据库的代码

编码

在安装库之后,打开Python IDE并通过导入以下库开始编写代码:

Espeak

宣布被检测人脸的温度和名称。

Face_recoginition

来识别人脸。

日期和时间

添加某人进入某一区域的日期和时间,然后将该信息存储在数据库中。

Opencv

捕捉视频并逐帧处理,用于人脸识别。

接下来,设置我们想要识别的每个人的图像文件名。当然,我们需要创建一个数组,其中包含所有已确认身份的人的姓名和图像列表。名称和图像的顺序必须相同。如果数据库中没有一个人的图像,则认为它是未知的。

视频帧将在while循环中进行处理,它将识别出这个人的名字,然后将它与检测到的人脸进行匹配。如果不一样,则使用MLX90614传感器来测量人的体温。之后,将会用语音方式宣布此人的姓名和体温。

我们编写的if()语句检查温度是否大于37摄氏度。如果检测到的温度更大,系统会告诉人们不要进入该区域。它还能捕捉到用户的图像和温度,并将这些信息保存在带有时间戳的数据库文件夹中。

如果发现一个人的体温低于37摄氏度(或者高达37摄氏度),系统会允许此人在适当消毒后进入。这个人的图像也被保存在一个单独的数据库文件夹中,其中包括姓名、温度和时间戳。

显示图像以及名称和温度的代码
图6:显示图像、名称和温度的代码
作者的原型
图7:作者的原型

图6显示了图像的代码(从捕获的视频中获取)以及名称和温度。显示名称和图像的矩形框架的轮廓将根据检测到的温度(红色=高温,绿色=低温)改变其颜色。

连接

编码完成后,连接MLX传感器,如表2所示。MLX90614与RPI的连接图如图8所示。如图7所示,连接摄像机、HDMI显示器和传感器。

连接MLX90614与RPI
图8 MLX90614与RPI的连接
检测面和温度
图9:检测人脸和温度
存储数据库
图10:存储的数据库

测试

安装完成后,为树莓派供电,并将设备安装在墙上或门禁上。重新运行代码并等待几秒钟。它将显示出站在入口处的人的温度和脸在摄像机前。如果有人被检测到有高温/发烧,该设备将警告该人不要进入。

我们可以在数据库中查找每个通过热筛选程序的人的信息。对于特定的数据库,打开example文件夹下的entry.txt和no_entry.txt文本文件,如图10所示。文本格式的数据库如图10底部所示。


阿什维尼·库马尔·辛哈(Ashwini Kumar Sinha)是科技记者

本文转载自《EFY》杂志2021年7月号,并首次在electronicsforu.com网站上发表:点击这里

分享你的想法和评论

请输入您的评论!
请在这里输入你的名字