如何构建人脸识别系统?

人脸识别系统是一套可以将数字图像中的人脸与数据库中的人脸进行匹配的技术,通常可以用于用户身份验证服务。如今,人脸识别系统正逐步走进人们的日常生活:它被广泛应用于我们生活中的方方面面,比如手机屏幕解锁、在社交媒体帖子中标记好友、保障公共安全、防范网络欺诈和改善客户体验……以下是有关人脸识别系统的具体案例,可供参考:

深入了解人脸识别系统

人脸识别系统可通过计算机算法,识别出人脸特定、独特的细节,如两眼之间的距离或下巴的形状,然后将这些细节转换成数值形式,并将其与人脸识别数据库中收集的其他人脸数据进行比较。这些能判定特定人脸的数据通常被称为“人脸模板”,但这些“人脸模板”并非一张常见的人脸照片,因为这个模板只设计了某些可以用来区分不同人脸的细节。

人脸识别系统的主要步骤包括人脸检测、特征提取和基于数据库的特征匹配。

步骤1:人脸检测

使用过滤程序来区分面部特征,并在输入图像中用精确的分类器对其进行过滤。需注意,所有平移、缩放和旋转等操作都必须在人脸检测阶段进行。

步骤2:特征提取

这一步可获得构成面部特征的标志信息和节点的位置轮廓,然后将这些信息编码成数字,这类数字编码即“面部特征”——它对每个人来说都是独一无二的。

步骤3:特征匹配

使用欧氏距离计算法,将人脸特征与数据库中的已知人脸图像进行比较,然后将组合距离进行排序和阈值化,以过滤不匹配的人脸图像。

 

人脸识别系统的挑战:建立大型数据库

目前为止,我们已经谈到了算法。现在,让我们站在数据工程师的角度,探讨一下工程师在建造人脸识别系统中需要克服的困难。

在建设人脸识别系统时,首要困难就是如何解决大规模数据,当数据库扩充到百万量级时,系统会变得非常复杂——建立一套包含1亿张人脸图像的人脸识别系统,需要的解决方案与只含有100张人脸图像的系统截然不同。

大型人脸识别系统的设计要求如下:

  • 响应速度:实时响应的性能(300ms-3s),通常取决于数据库大小和与识别无关的其他任务。搜索速度取决于用户的CPU,但内存也是影响因素之一,因为用户倾向于将所有的人脸数据都缓存在内存中,以避免磁盘的频繁读取。因此,根据目标速度和数据集预计大小,即可得出最佳的均衡配置。
  • 数据分片:数据通常会分片分布在多个节点上,以支持大型数据集和高吞吐量的操作。如何在不影响系统整体延迟的情况下合理分配数据?如何在运行过程中增加节点时自动进行重分配?对于工程师来说,这些都是极具挑战性的任务。
  • 动态数据库:根据不同的使用案例,人脸数据库可能会有大幅扩展。例如,领创智信的ADVANCE人脸搜索服务会将每次请求中的人脸插入数据库。这种情况下,如有任何节点出现内存不足,系统应当能立即做出相应反应进行处理,比如自动增加一个新节点。
  • 数据存储恢复:人脸数据不应仅缓存在内存中,而是需要长久保存。如果其中一个节点断开,系统应能在下一阶段自动恢复。
  • 高效实用:当部分节点出现故障时,系统应能继续运行。
  • 节点管理:由于数据分布于多个节点,因此需要一种机制来识别和管理集群中的节点,以进行节点添加、故障转移和数据分片等操作。
  • 滚动更新:如何在不影响联网客户端应用的前提下,进行人脸识别服务的滚动更新,这给工程师带来了新的挑战。

 

基于以上需求,领创智信自主研发过一款服务于人脸相关技术的基础组件——人脸识别引擎,能为其他基于人脸识别技术开发的智能产品的一些惯例需求,提供服务支持。

领创智信的人脸识别引擎提供了多种定制化选项,以用于不同业务环境的部署。例如,客户端应用可以建立多个数据库,并在一次请求中同时搜索多个数据库。它还可以将自定义属性关联到数据条目,如为每个条目绑定一个时间戳。然后,客户端应用程序可以将搜索限制在某个时间范围内,并添加直接在引擎内执行的过滤逻辑,以删除不相关的匹配。

 

通过人脸识别系统促进电子化身份信息验证(eKYC)的应用

在数字时代,银行和金融机构都需要采用可靠、现代的方式来进行“电子化身份信息验证(eKYC)”——以提升用户体验、达到最新的合规要求,同时保护用户免受在线欺诈。与此同时,伴随着数据泄露风险的增加,带来了企业对自动化、数字化用户注册流程需求的大幅增长;智能手机普及率的上升;用户对数据安全问题担忧的加剧……都将会推动全球身份识别技术的大幅演进与发展。

如今,虽然有多种技术可以“电子化身份信息验证(eKYC)”,但人脸识别依旧是各类技术中应用最为广泛的。随着人脸识别技术在银行业更为深入的部署应用,适逢一些地区新监管条例出台,我们相信“电子化身份信息验证(eKYC)”的推广定将得到更进一步的发展。

Back to Blog
Contact Icon
Message Icon
Back To Top