双目人脸识别解决方案中的人脸识别模块开发是怎样的?
现在,人脸识别产品深受欢迎,包括人脸识别门禁产品在内的设备已经很常见了,佩特科技推出的双目人脸识别解决方案是目前市面上比较成熟的人脸识别解决方案,佩特科技同时推出可以直接在设备上配备的高性能双目摄像头,方便开发厂商直接使用。下面佩特科技就来说说在双目人脸识别解决方案里,尤其是人脸识别门禁系统里的人脸识别模块开发是怎么做的。
一般来说人脸识别平台通常包括人脸数据库、标注数据库和标注工具、模型训练和测试平台。
通常我们可以采用公开的已经标注好的人脸数据集进行模型训练,为了实现更好的模型效果,也很有必要建立自有的人脸数据库,并通过标注平台对数据进行标注。然后通过Opencv、Dlib、Tensorflow、Cafe等平台对人脸数据集和标注文件进行不断训练和测试,从而得出符合预期的人脸检测、特征提取、特征对比、活体检测等模型。
整个人脸识别平台大概如下图所示:
模型训练好,通常还需要对模型进行裁剪迁移到实际运行环境中并封装成SDK供嵌入式业务系统进行调用,其中还涉及到模型在真实环境中参数的调整和优化。一般的人脸识别流程如下图所示:
人脸采集:通过摄像头实时采集人脸图片,采集人脸数据时需要注意一下关键相应因素:
1. 图像大小:人脸图像过小会影响识别效果,人脸图像过大会影响识别速度。非专业人脸识别摄像头常见规定的最小识别人脸像素为60*60或100*100以上。在规定的图像大小内,算法更容易提升准确率和召回率。图像大小反映在实际应用场景就是人脸离摄像头的距离。
2. 图像分辨率:越低的图像分辨率越难识别。图像大小综合图像分辨率,直接影响摄像头识别距离。现4K摄像头看清人脸的最远距离是10米,7K摄像头是20米。
3. 光照环境:过曝或过暗的光照环境都会影响人脸识别效果。可以从摄像头自带的功能补光或滤光平衡光照影响,也可以利用算法模型优化图像光线。
4. 模糊程度:实际场景主要着力解决运动模糊,人脸相对于摄像头的移动经常会产生运动模糊。部分摄像头有抗模糊的功能,而在成本有限的情况下,考虑通过算法模型优化此问题。
5. 遮挡程度:五官无遮挡、脸部边缘清晰的图像为最佳。而在实际场景中,很多人脸都会被帽子、眼镜、口罩等遮挡物遮挡,这部分数据需要根据算法要求决定是否留用训练。
6. 采集角度:人脸相对于摄像头角度为正脸最佳。但实际场景中往往很难抓拍正脸。因此算法模型需训练包含左右侧人脸、上下侧人脸的数据。工业施工上摄像头安置的角度,需满足人脸与摄像头构成的角度在算法识别范围内的要求。
人脸检测:人脸图像采集完成后需要通过“人脸检测”技术判断图像中是否存在人脸。如果存在人脸则继续流程,否则重新采集图像。
人脸图像预处理:系统获取的原始图像由于受到各种条件的限制和随机干扰,往往不能直接使用,必须在图像处理的早期阶段对它进行图像预处理。所谓图像预处理就是基于人脸检测结果,对图像进行灰度矫正、噪声过滤等处理,并最终服务于特征提取的过程。
人脸图像特征提取:人脸特征提取就是对人脸进行特征建模将一张人脸图像转化为一串固定长度的数值的过程。输入是“一张人脸图像(带人脸坐标框)”,经过人脸关键点定位后,输出人脸相应的一个数值串(特征)。
人脸图像匹配与识别:特征提取后,便可以任意两个人脸特征进行比对,得到投特征之间的相似度。通过设定一个阈值,当相似度超过这一阈值,则把匹配得到的结果输出。人脸验证、人脸识别、人脸检索和人脸聚类都是在人脸特征比对的基础上加一些策略来实现。相对人脸特征提取过程,单次的人脸比对耗时极短,几乎可以忽略;
人脸活体检测:人脸活体(FaceLiveness)是判断人脸图像是来自真人还是来自攻击假体(照片、视频、换脸、面具、遮挡以及屏幕翻拍等)的方法。和前面所提到的人脸技术相比,人脸活体不是一个单纯算法,而是一个问题的解法。这个解法将用户交互和算法紧密结合,不同的交互方式对应于完全不同的算法。