基于人脸识别和RFID技术的多端可用智能设备管理系统
- 一级:软件工程
- 二级:软件服务工程
2021年1月到2022年4月
张超能(2019091611002)
余子潇(2019091607019)
林伊菡(2019091201024)
李美蓉
对于无论大型企业还是小型公司,或是一个组织,几个办公室之间,设备管理都是一个痛点。刚买来的设备不知道被谁拿去用了;老设备时间久了就记不得放在哪了;设备出借途中几经转手,出现损坏等问题难以追责……这些问题困扰着大型企业,困扰着小型公司,困扰着电子科技大学创新工坊的绝大多数工作室。对于任何一个集体而言,一些设备十分贵重,对这些设备的保管以及定期的维护显得极为重要;另一些设备则比较常规,但也需要妥善管理。设备终究不是人,当你找不到它时,无论如何呼唤它的名字,都没有任何响应;当其损坏时,无论如何询问,它也无法告知究竟是谁应该负责。
随着大型企业,尤其是互联网企业对设备保密性的要求不断提升,重点设备的定期盘点与保管也逐渐成为各个公司的一个刚性需求;特别是对于合作方未发布的设备,如果出现丢失或者泄密,都会面临非常严重的后果。
如果有这样一个设备管理系统,只需通过简单的操作,就可以轻松改变设备的状态,记录设备的位置。当找不到需要的设备时,只需查看管理平台上记录的该设备的状态信息,即可得知该设备的位置、状况等。该设备管理系统可以赋予用户的设备以生命,让设备管理呼之有应、咎之有责,以此保障设备的正常保管以及重要设备的保密。
该创新训练项目致力于研究一套跨平台多端可用的智能设备管理系统,以产品的实用性、创新性、可落地性为首要关注点,着力于开发出一套完整可用的智能设备管理系统。
在该项目过程中,采用软件工程的方法对项目进行管理,前后端以及嵌入式设备分离开发,端与端之间通过JSON格式的数据进行交互。下面将从前端、后端、机器学习、嵌入式系统等方向对研究内容与方法进行具体介绍。
该项目需要完成跨平台多端可用的智能设备管理系统,对于前端而言,跨平台项目需要开发Web端以及移动端应用。对于Web端而言,使用 React.js+Redux+React-router+antd.js 技术栈,在Web端可以实现设备状态的查看以及状态变更的申请,方便管理人员对设备状态进行快捷查看,并且支持一键导出Excel表格,让设备定期的盘点与保养变得更加简单并有所记录。在移动端,使用ReactNative技术栈,开发便捷的手机APP,通过手机的扫码、或手机NFC功能,对设备进行状态变更,让传统设备盘点时用纸笔的模式改变为使用移动设备进行快捷盘点。
后端使用Java以及Spring框架的技术栈,数据库使用MySQL,并且使用redis进行缓存服务。后端采用微服务的思想,将每个服务与其数据库进行拆离与整合,保证服务的解耦以及服务的高可用性。
后端与前端之间使用JSON数据格式进行交互,后端为每个微服务编写对应的API,每个接口使用Restful风格,前端通过对应的Axios库,使用GET、POST等方法调用后端API,获取后端服务数据。
机器学习需要完成人脸识别的工作。人脸识别需要用到OpenCV库及其相关算法,选用Tensorflow或Pytorch框架。机器学习使用Python作为开发语言,与前后端之间通过flask库进行网络数据交互。Flask可以建立一个http服务器,并能监听其他端发送的http请求。
嵌入式系统方面,使用树莓派作为开发平台,结合RFID读卡器等硬件设备,对设备管理系统中的设备进行便捷管理。
RFID (Radio Frequency Identification),意为无线射频识别,RFID是一种通信技术,可通过无线电讯号识别特定目标并读写相关数据,这种标签可以穿透雪、雾、冰、涂料、尘垢以及其他恶劣读写环境,并且读写速度极快,大多数情况下不到100毫秒。
现有的设备管理平台,以织信为例,已经有一定的发展,能够满足日常设备管理的最基础使用。但以织信为代表的这些平台仍存在以下不足。
- 平台可用性不高
以织信为例,该平台仅提供Web端管理界面,而在移动平台日益流行的今天,移动端应用的部署变得越来越关键。试想在实际的使用中,设备的状态一旦发生变化,就要找一台电脑在网页上进行复杂的设备登记工作,这必然会在一定程度上打击客户使用该平台的积极性。
- 平台形式局限性
在织信平台中,仅有通过软件对设备进行管理的模式,而这种模式在特定情境下的效率令人堪忧。对设备的管理追求点之一就是便捷,如果能够通过简单的触碰等操作即能实现对设备的管理,那样的效率会有大幅提升。
- 安全性考虑欠佳
在织信平台中,通过账号的模式对用户身份进行识别,并对设备进行管理,其中难免存在一些可供人为作弊的空间,而该系统中也并没有针对人为作弊情况的预防。
该项目目标为制作一个跨平台多端可用的智能设备管理平台。项目中需要前后端、机器学习、嵌入式系统分离开发,对于每个方面,分别制定其目标。
- 前端需要实现移动端以及Web端的管理页面,通过友好的交互以及可视化设计,便捷用户对设备进行管理。
- 在手机端,如果用户的手机支持NFC功能,则通过手机NFC扫描设备上的标签,从而读取到设备信息,并给设备添加状态;如果用户手机不具备NFC功能,则使用手机相机扫描对应二维码,对设备进行快捷状态变更。
- 针对每一台设备,还可以无需使用NFC,便捷查看设备的状态信息,以及设备的追踪记录,便于对设备的管理。对于重点设备,也可以标注星号,进行状态订阅。
- 对于网页端而言,管理人员需要能够便捷地在网页端查看所有设备的状态信息,对于安全级别较低的管理人员,其在Web端更改设备状态时需要向更高级别拥有相应权限的管理人员进行申请。鉴于网页端不便于扫描设备二维码和读取RFID卡片,网页端主要功能为管理功能。
后端需要完成以下任务。
- 设计数据库对用户数据、设备状态数据等进行保存
- 通过Restful API提供给前端进行访问
- 作为连接前端、边缘设备的中枢。
由于前端有移动端和Web端两个设备界面,后端接口需要有通用性。即同一套接口,既需要满足移动端的调用要求,也需要满足Web端的调用要求。这需要后端对数据传输JSON格式文件进行进一步的设计。
- 机器学习部分需要完成一个人脸识别功能,用来保障系统不会被人为作弊所欺骗。
- 人脸识别准确率应在95%以上,对于人脸识别不通过的用户,其即使触碰了设备的NFC标签或扫描了设备二维码,也无法成功改变设备状态,
- 任何接触NFC标签或扫码记录将被保存在服务端,以防恶意用户使用强行手段对设备进行处置。
- 嵌入式系统方面需要设计一个加密的且仅可供该项目移动端App访问的NFC标签。
- 并且需要设计一个能够便捷使用的NFC卡片加密写入工具,用于制作与设备配套的NFC标签,向其中存入设备信息。
初步计划嵌入式设备基于树莓派开发,后续将根据实际项目进展需要进行相应调整。
该项目相比于市面上现有产品,其创新点如下:
- 跨平台多端可用
该项目所设计的系统具有跨平台多端可用的特点,无论是移动端还是Web端,都能够对设备进行有效的控制与管理。
- 软硬件结合
该项目基于RFID技术,结合手机特性,对于有NFC功能的手机,则使用NFC感应区域触碰设备标签即可;对于没有NFC功能的手机,则使用二维码的方式对设备进行高效管理。
- 可信验证
为了防止人为作弊,对设备管理产生不利影响,该项目使用人脸识别技术,预期准确度将在95%以上。只有人脸识别认证通过后才能成功变更设备的状态。
- 了解了目前已有的竞品。
- 对于项目中需要用到的技术已经掌握。
- 拥有项目协作开发的经验。
时间节点 | 完成进度 |
---|---|
2月28日 | 完成项目需求分析文档 |
3月20日 | 完成项目初步开发并进行测试 |
4月2日 | 针对项目测试结果进行进一步改进 |
4月25日 | 整理项目文档 |
4月30日 | 完成项目开发 |