项目描述:
与钉钉深度合作开发的人脸识别考勤机,具备活体识别功能,能检测出活体与非活体(电子屏、 照片等),支持在线离线识别的切换、活体与非活体识别的切换;
任务描述:
1、负责整个 app 层的框架设计,业务模块的开发以及优化;
2、设计并实现 fmp 多帧活体检测机制;
3、实现凝视打卡机制与 UI 动画;
4、设计弱网环境识别机制;
5、封装自定义 cameraview 类;
6、实现识别结果的滚轮动画效果;
7、自定义封装激活时 icon 呼吸动画图标。
技术与优化:
1、使用 MVP 开发模式以及工厂模式实现业务处理;
2、使用 EventBus 实现激活状态、网络状态等信息的通讯;
3、使用 ExecutorService、Handler 实现多帧活体检测多线程并行以及线程间的通讯;
4、使用 ConcurrentHashMap 解决线程安全并提高检索速度;
5、活体识别中增加一个存放对应 personId 最新检测为活体的时间的 Map,解决因机器性能问题 造成人脸检测 sdk 跳 trackId 造成的识别速度问题;
6、使用 Android 自带的 FaceDetectionListener 解决逆光补偿问题以及控制 sdk 检测时间从而节 省了 cpu 的消耗;
7、自定义一个内存池来存放摄像头回调回来的 buffer 数据;