APP下载

基于Tengine的实验室门禁系统的实现*

2024-01-03詹鹏彦任义超

机械工程与自动化 2023年6期
关键词:开发板门禁系统人脸识别

过 怡,詹鹏彦,任义超

(苏州市职业大学 计算机工程学院,江苏 苏州 215104)

0 引言

现有的使用人脸识别进行门禁管理的系统,大都采用模型在服务器上训练和存储以及计算资源联网工作的方式,适用于计算量大、模型存储量大的应用场合[1]。这种人脸识别系统通常基于云计算技术,终端采集的图片通过网络传输到服务器端,使用GPU等专用计算设备进行特征提取识别,识别准确率高,但是上传数据会受到网络带宽影响,存在一定的时间延迟,同时识别设备只有在联网时才能进行工作,造成采集的数据有泄露危险。

高校实验室门禁系统的管理人员通常固定为某位教师,使用人员数量有限且相对固定,因此,本系统设计的人脸识别系统算量和模型都较小,适合直接部署在边缘终端设备上,以离线和本地存储的方式进行人脸的识别操作。

1 实验室门禁系统总体结构

实验室门禁系统总体结构如图1所示,首先由摄像头拍摄采集人脸图片,在系统初始化阶段,主控模块对人脸图片进行特征提取并存储到数据库中,完成实验室人员的人脸注册;初始化完成后,系统进入人员识别阶段,主控模块对采集的人脸图片进行特征提取后与数据库中的数据进行比对,比对成功开启门禁,比对失败发出警报。实验室管理员可以对系统进行数据管理,包括新成员注册、离开人员删除。

图1 实验室门禁系统总体结构框图

2 硬件平台搭建

2.1 主控板

系统硬件主控板采用EAIDK-610开发板,主芯片采用瑞芯RK3399,扩展性高,CPU为四核Cortex-A53+双核Cortex-A72和独立NEON协处理器,GPU为ARM四核图像处理器Mail-T860。主频1.8 GHz,运行内存采用双通道LPDDR3(64-bit)4 GB,支持HDMI、MIPI、EDP显示接口,Ethernet 10/100/1 000 Mb/s,WIFI 802.11ac/a/b/g/n,BT 4.2网络。操作系统支持Fedora、Android和Ubuntu,搭载深度学习推理框架Tengine,以及轻量级CV加速库BladeCV。

2.2 图像采集摄像头

EAIDK-610开发板拥有2路MIPI Camera接口,可以外接2个OV9750摄像头,组成双MIPI Camera同步显示和前后摄像模式。OV9750主摄像头和主机采用MIPI CSI接口,分辨率为1 920×1 080。

3 软件系统

3.1 Tengine部署

Tengine是由OPEN AI LAB公司推出的一款嵌入式开源前端AI推理框架,Tengine支持目前市场上各种主流的模型框架,如 TensorFlow、Caffe和MXNet,并且通过ONNX模型实现了对PyTorch和PaddlePaddle的支持,让开发者能更自由地选择训练框架,降低了面对不同硬件和场景而迁移平台的成本[2]。

3.1.1 操作系统固件安装

EAIDK-610开发板默认安装的操作系统是Fedora28,桌面环境是LXDE,同时在EAIDK官方FTP服务器上提供了Android8.1、Ubuntu的固件安装包。本系统采用Fedora的EAI610-P0-ReleaseV0.4.1固件,在PC机上使用瑞芯驱动助手安装USB驱动,将下载的固件压缩包解压缩,使用Type-C线连接PC机和EAIDK-610开发板,先后按下开发板上reset和update按键后重启开发板,直到开发板系统进入Loader模式,使用EAIDK烧写工具将固件烧写到开发板上。

3.1.2 编译工具安装

3.1.3 Tengine编译

从Github网站下载Tengine源码保存到开发板的新建文件夹下,进入源码的Tengine-Lite文件夹,新建build文件夹执行编译命令,在build/install/lib下编译生成libtegine-lite.so库文件。在系统中配置生成的库文件和其他依赖库并使其生效,后期就可以顺利使用Tengine工作了。

3.2 软件环境配置

系统开发使用了Python库、OpenCV库、FaceRecognition库、dlib库,在软件开发之前必须安装配置上述软件库。开发板默认安装了Python3.6.5。

安装OpenCV库,通过dnf包管理器命令从服务器下载安装依赖包opencv-devel:sudo dnf istall opencv opencv-devel。

由于dlib库需要内存资源较多,可以从开发板官方FTP服务器上下载压缩包快速安装。

3.3 软件系统设计

软件系统包括UI界面模块、人员注册模块、人员识别模块和数据管理模块。

UI界面模块使用Qt的Python界面开发工具PyQt进行设计。

人员注册模块可采用拍照注册和照片文件批量注册两种方式,拍照注册通过OpenCV调用摄像头拍摄人脸图片,调用FaceRecognition库的face_locations方法标记人脸位置和大小,该方法默认采用方向梯度直方图进行人脸定位。对截取的人脸进行光线补偿、灰度处理、直方图均衡等图像预处理。对经过处理的人脸调用FaceRecognition库的face_encodings方法进行人脸特征提取,获得每张人脸的128维特征向量[3],并将注册人员的姓名和特征向量保存到数据库中。批量注册与拍照注册只是获得图片的方式不同,批量注册收集实验室人员包含个人清晰人脸的照片图片,对图片进行逐个读取后进行人脸检测定位、预处理、特征提取和数据库存储。人员注册程序流程如图2所示。

图2 人员注册程序流程

图3 人员识别程序流程

数据管理模块实现个别临时入住实验室人员的人脸注册、离开实验室人员的数据库数据删除。人员删除可以单个删除,也可以批量删除。

4 模型部署实现

由于Tengine支持目前市场上各种主流的模型框架,如果实验室的人员较多,为了获得良好的识别效率,可以在服务器端使用主流框架,使用MobileNet[4]模型或者MobileFaceNets模型进行人脸识别模型训练。训练生成的模型使用convert_tool命令转换成Tengine支持的模型格式,部署到开发板上进行人脸的识别。

5 系统测试

实验室30名人员参与系统测试,识别率为100%,平均识别时间小于250 ms。40人参与系统测试,识别率为100%,平均识别时间小于280 ms。50名人员参与系统测试,识别率为98%,平均识别时间小于300 ms。

6 总结

在边缘设备上实现离线的人脸识别功能,成本低,安装调试灵活,稳定性好,识别速度快,同时不受网络带宽的影响,避免了人脸图像数据泄露的风险,很好地实现了人员数量较少情况下的实验室门禁系统管理。本系统无法进行活体识别,后期将针对这一问题对其进行进一步改进。

猜你喜欢

开发板门禁系统人脸识别
基于多种生物特征识别的RFID门禁系统设计
人脸识别 等
揭开人脸识别的神秘面纱
基于AI智慧人脸门禁系统的硬件系统设计
基于单片机的安全门禁系统研究设计
Microchip最新推出两款PIC32 Curiosity开发板
浅析单片机开发板的设计与制作
基于单片机的小区门禁系统设计
基于类独立核稀疏表示的鲁棒人脸识别
Mouser为您呈上开发关键之STMicroelectronics Nucleo开发板