APP下载

一个智慧门禁系统的软件设计与实现

2022-10-24韩培珊郑晓君黄翔琪

现代计算机 2022年16期
关键词:来访者人脸编码

韩培珊,郑晓君,谢 松,黄翔琪

(广东外语外贸大学南国商学院计算机学院,广州 510545)

0 引言

随着社会的快速发展和科技不断进步,人们对生活质量水平的追求越来越高。近年来,来访安全问题被大多数人忽略,仅仅只有独居年轻人群体重视。然而疫情爆发后这几年,由于封闭居所隔离,逐渐出现不法分子冒充防疫人员进行入室抢劫以及对屋主进行不法行为的案例,来访安全问题逐渐被大众重视。为了解决疫情下的来访安全问题,本文提出了一个智慧门禁系统。

智慧门禁系统项目在百度AI开放平台创建人脸识别应用,获得AppID、API Key和Secret Key等,并搭建人脸数据库,用于存放采集到的人脸数据信息。百度人脸识别平台提供人脸注册、更新和删除等功能,将采集和监测到的人脸信息数据实时上传至后台巴法云服务器,方便管理员查询。录入的人脸信息数据会即时在微信开发者工具上转变成Base64格式编码并在小程序显示人脸详细信息,同时与人脸库中的人脸数据信息进行比对,比对结果同步到小程序界面告知用户来访者信息。针对可能使用任务图片识别蒙混软件的情况,本系统实现了活体检测、人脸库与检测到的人脸比对等功能。

1 研究方法

1.1 百度AI人脸识别

进入百度AI开放平台右侧导航的控制台-产品服务-人工智能-创建人脸识别应用,应用是调用API服务的基本操作单元,创建成功后点击“管理应用”,获取API Key和Secret Key等设备信息,进行接口调用操作及相关配置。用户需要保存好AppID、API Key和Secret Key,因为它们是程序运行的唯一标识。获取token用于校验,因为在调用API时必须在URL中带上access_token参数。

基于本项目我们选择Java Http SDK,下载解压后在桌面创建对应这4个jar文件的项目文件夹,将这4个文件拖入项目文件夹。需要注意,安装的是AIP不是API。将包解压执行解压命令就可以了。

在创建好的人脸识别应用界面中点击人脸管理,点击人脸库名称,新建一个组,登记好组ID,在编写代码的时候要用到,然后点进去创建用户,添加人脸ID和照片。

1.2 编写程序并运行

本项目人脸识别原理是获取图片,将其转成Base64编码格式,上传数据到调用的百度API接口上,实现活体检测,防止使用人物图片识别蒙混进入软件。在确认是活体后,从中截取图片,调用百度人脸识别接口进行人脸识别,最后将得到的返回结果输出为JSON格式。下载官方API,导入官方提供的四个工具类。先拍摄照片,然后通过SDK来检测照片里面的人是谁,如果这个人在人脸库里面,而且有权限的话,那么就开门,否则不开门。

String auth=getAuth();语句是获取token地址,该token有一定的有效期,有效期30天左右,需要自行管理,失效后需重新获取或者更新。

faceSearch(auth);语句是调用人脸库比对函数,将待检测的图片与人脸库中已有人脸数据进行数据比对。

String accessToken=token;这里仅为了简化编码每一次请求都去获取access_token,线上环境access_token有过期时间,客户端可自行缓存,过期后重新获取。请求的图片需经过Base64编码,图片的Base64编码是指将图片数据编码成一串字符串,使用该字符串代替图像地址。首先得到的是图片的二进制,然后用Base64格式编码即可。图片的base64编码不包含图片头。

图1 人脸信息识别部分代码示例

1.3 小程序开发

微信小程序(Mini Program)相对于APP,具备无需安装、无需注册、开发费用低等优点。基于微信平台超9亿的用户流量入口以及小程序“用完即走“的理念,同时可以节省用户的手机空间,成为取代手机APP的最佳选择。小程序依靠微信平台,近三年来发展迅速,涉及生活娱乐、医疗交通、健身阅读等各个领域,但对于实现实时查询公共场所进出人流量需求的小程序较稀缺。对于高校学生,此类小程序新颖且为日常生活提供便利。对于开发者,小程序开发门槛相对较低,能够满足简单的基础需求,如查询、通知、统计、打卡等。

本设计主要使用了小程序云开发的云函数、云存储和云数据库三大功能。监测到的人脸数据信息会实时同步在小程序转变成Base64格式编码并与上传至百度智能云人脸库进行比对,随后将比对结果发送至小程序界面告知使用者来访者人脸信息,所有人脸信息数据都会上传至巴法云服务器,从而保障来访安全和来访信息的具体情况。后台开发者也可以通过巴法云服务器获取实时数据,从而保障使用者的权益。

所监测到的数据同步到小程序上的误差时间不会太大。也就是说,不会因为延时太长而导致室内人因为来不及弄清来访者身份而造成人员伤亡的情况。

2 研究结果

2.1 人脸录入结果

图2 人脸信息录入成功结果

2.2 人脸识别结果

图3 人脸信息识别成功结果

图4 人脸识别结果

2.3 小程序界面

图5 小程序实时数据界面截图

3 总结与讨论

针对当前新冠疫情爆发下出现的来访安全问题,本研究设计了基于百度AI开放平台和小程序的前端技术(WXML+WXSS+JavaScript)与云开发后端技术用于保障来访安全。通过百度AI开放平台创建人脸识别应用,获得AppID、API Key和Secret Key,并搭建人脸库,用来存放人脸数据。百度人脸识别提供人脸注册、更新和删除以及用户信息查询,对来访者自动进行活体检测,获取用户人脸列表,复制、删除用户等,实现了用户通过手机微信端,可以实时查看来访者信息从而保障疫情时代下来访安全的设想。

猜你喜欢

来访者人脸编码
Chapter 5 An important visitor第五章 一位重要的来访者
住院病案首页ICD编码质量在DRG付费中的应用
咨询师带给来访者的礼物
玻璃窗上的人脸
放下“应该”,才得自由
智力考场:有趣的图片测试
在“以来访者为中心”疗法中谈“共情”
高效视频编码帧内快速深度决策算法
“领家系”可爱脸VS“高冷系”美人脸
长得象人脸的十种动物