说明
- 2018年专门负责研发人脸相机有一年的时间,在这期间对接了多家公司的算法,例如:瑞为FPGA算法板、君正T01算法板、伟视清提供的软算法、以及一些小公司的软算法,也接触了阅面等公司的算法,特记录下一些理解。
人脸相关技术
- 人脸检测
- 人脸跟踪
- 人脸识别
人脸检测
- 人脸检测即检测出摄像头采集视频画面中的人脸。
- 遇到问题:早期算法无法识别活体,如果镜头中有玻璃反射出的人脸以及书籍上的人脸、照片等无意义的人脸都会被检测到,浪费了一定性能,当前算法应该大部分支持活体检测。
人脸跟踪
- 人脸跟踪即跟踪人脸在视频画面中的移动,作用是唯一标识一个个体,减少不必要的动作,例如:抓拍人脸时可以选择人脸整个生命周期中的最清晰的一帧。
- 实现原理:早期人脸跟踪算法是通过人脸移动轨迹来区分的个体,并不是通过人脸特征值,非常可能是算法性能不够,做不到实时运算人脸特征值跟踪。
- 遇到问题:通过人脸移动轨迹来区分的个体,测试可发现以下问题:
- 两个人运行轨迹交叉
- 两个人在画面上出现重叠或者靠的比较近
- 以上情况都有概率出现人脸id交换,即人脸标识交换了,无法进行区分。
- 市场应用:基于人脸跟踪可以实现人脸抓拍相机,即根据一些策略:例如最优人脸等,对出现在视频画面中的人脸进行抓拍,将抓拍到的人脸上传至后台做人眼识别或者备份。
人脸识别
- 人脸识别即对人脸进行识别,判断出个体身份。
- 识别分为:
- 前端识别,即设备端
- 后端识别,即服务器端
前端识别(设备端识别)
- 采用设备端识别算法,配合人脸检测以及跟踪算法,以及设备端人脸数据库检索,实现识别。
- 遇到问题:早期采用的是软算法,性能不强,识别一张人脸图要1~2s,并且和人脸数据库中存储的人脸个数相关(存储的数据并不是人脸特征值而是人脸图片,可能算法需要一个一个比对),即使算法应用实现良好,也只能做闸机产品或人脸个数较少的场景,使用硬件算法板效果应该会好很多。
后端识别(服务器端识别)
- 采用服务器端进行识别,设备端只需要将视频流推送给服务器,维持推流的稳定性。
- 由于服务器更好的性能以及扩展性,后端识别可以实现较好的效果。
- 缺点:视频画面和识别容易受传输质量的影响,画面效果没有前端好。