人脸识别的算法有哪些:落地场景不同适配的算法类型完全不同
之前做智能门禁项目调试的时候,被甲方反复追问人脸识别的算法有哪些,那时候只笼统知道是AI图像算法,压根分不清具体品类,拿着网上的笼统资料瞎调试,导致初期的识别准确率差的离谱,逆光场景下几乎全部识别失败,白白耽误了三天的工期。
最开始固执的认为,人脸识别就是靠单一算法跑通所有场景,所有设备用的都是同一套逻辑。当时直接套用了传统的模板匹配算法,觉得简单轻量化,适配低端门禁设备刚刚好,结果实操的时候漏洞百出。这种算法只会对比人脸固定像素点,只要人脸角度偏一点、光线暗一点、戴个口罩镜框,匹配度直接归零,完全适配不了户外的门禁使用场景,也是我第一次真切感受到,算法选择根本不是看名气,而是看适配场景。
折腾好久才搞明白,传统算法根本撑不起商用场景。
后来替换成了特征脸PCA算法,这是我第二次盲目尝试的选择。这个算法会提取人脸的核心特征维度,压缩图像数据,比死板的模板匹配灵活很多,室内稳定光源下识别速度特别快,差不多能做到毫秒级响应,日常室内静态打卡基本不会出问题。但短板也特别明显,它对人脸姿态变化的容忍度很低,员工低头刷卡、侧头进门,就会识别失败,而且没法处理人脸细微的纹理变化,换季肤色暗沉、长了胡须、轻微卸妆,都会影响识别结果,稳定性还是差的很远,完全达不到项目交付标准。
做项目迭代的时候,才接触到真正适配商用的主流算法。
目前市面上落地最多、实用性最强的是基于深度学习的CNN卷积神经网络算法,我后期所有的门禁、考勤、人脸闸机设备,全部统一用的这套算法。它不再是单纯对比像素点和基础浅层特征,而是可以自主学习人脸的深层纹理、骨骼结构、五官比例等核心特征,不管是户外逆光、夜间暗光、侧脸通行,还是日常的淡妆、发型改变,都能精准匹配识别,容错率拉满。而且模型可以自由轻量化调整,低端嵌入式设备用精简版模型保证速度,高端终端用完整版模型保证精度,这种灵活度是传统人脸识别算法完全不具备的。
还有一种小众的贝叶斯人脸算法,基本只存在老旧软件系统里。
这种算法依靠概率模型做人脸分类比对,运算量极低,十几年的老旧办公电脑不用独显也能流畅运行,几乎没有硬件门槛。但它的精度上限特别低,只能适配静态、正面、无任何变化的人脸比对,现在主流的动态人脸识别、活体检测场景,基本已经彻底淘汰了这套算法,我只在一次老旧考勤系统翻新改造时适配过一次,之后再也没用到过。其实还有一些基于残差网络的进阶算法,精度更高、抗干扰性更强,但普通民用安防、办公场景完全用不上,强行套用只会徒增设备运算成本,一点都不划算。
那天通宵调试完所有设备,保存好最终的算法参数,关掉满是代码和调试数据的电脑屏幕,窗外的天已经微微泛白了。