当前,刷脸识别业务在很多领域内适用,包括在学校、政府、企事业单位内的团餐、考勤、安保等领域。
该刷脸识别业务大多依托云服务器或局域网在线上操作,既迅捷又方便。可在突发断网场景下,刷脸设备就会瞬间“瘫痪”,造成业务阻塞。
为避免突发断网导致业务停断,应当建立某种机制:当断网发生时,立即在刷脸设备上自启动“离线刷脸业务”,可使用户根本觉察不到断网的存在,业务得以持续进行。
当恢复网络后,刷脸设备立即自启动“线上刷脸业务”,并自动同步离线业务数据至网络数据库服务器。
此机制原理上简单,实现起来却不容易,应当考虑方方面面的问题。针对该机制的方案架构大致如下:
一、方案中核心模块有以下部分
1、服务器端现有系统
2、数据同步模块
3、安卓设备本地数据库
4、离线人脸识别模块
5、网络状态检测与切换机制
二、核心功能实现思路
1、本地数据库
在人脸识别设备上安装本地数据库,用于存储从服务器同步的数据,具体至少包括下列数据表:
1)、用户信息表:存储基本信息以及人脸特征数据。
2)、业务表:存储业务信息和状态。
3)、同步日志表:记录数据同步情况。
2、数据同步机制
1)、服务端实现
提供数据同步API,支持按最后同步时间增量同步。
接收离线操作数据并更新服务器数据库。
2、安卓端实现
定期(如每24小时)执行数据同步。
网络恢复时自动上传离线操作数据。
首次运行应用时执行完整数据同步。
同步过程记录日志,包括成功/失败状态。
3、离线人脸识别功能
基于本地人脸引擎实现离线人脸检测与特征提取。
与本地数据库中存储的人脸特征进行比对。
根据比对结果确定用户身份。
查询本地数据库中的业务信息。
更新业务状态并标记为“离线操作”。
4、网络状态检测与模式切换
持续监控网络连接状态
网络可用时使用在线模式(调用原有在线服务)
网络不可用时自动切换到离线模式
网络恢复时尝试同步离线操作数据
5、应用集成与调度
应用启动时初始化本地数据库
注册网络状态监听
设置定时数据同步任务
提供统一的API接口,根据网络状态自动选择在线/离线处理
三、工作流程
1、正常在线模式
使用原有的在线人脸识别服务
实时与服务器交互处理业务请求
2、离线模式
检测到网络不可用时自动切换
使用本地数据库验证用户身份
在本地处理业务流程并记录操作
将操作结果存储到本地数据库并标记为"未同步"
3、数据同步过程:
定期或网络恢复时执行
上传离线期间的操作记录
从服务器获取最新数据更新本地数据库
通过上述方案,可确保即使在网络不可用的情况下,系统仍能正常运行,并在网络恢复后自动同步数据,保持数据一致性。