人脸识别系统架构
目录
1. 系统架构
1.1 采集子系统
1.2 解析子系统
1.3 存储子系统
1.4 比对子系统
1.5 决策子系统
1.6 管理子系统
1.7 应用开放接口
2. 业务流程
2.1 人脸注册
2.2 人脸验证
2.2.1 作用
2.2.2 特点
2.2.3 应用场景
2.3 人脸辨识
2.3.1 作用
2.3.2 特点
2.3.3 应用场景
3. 技术方案
3.1 本地离线方案
3.2 云端服务方案
4. 技术局限
4.1 相似脸较难解决
4.2 算法偏见问题
4.3 算法鲁棒性及性能问题
4.4 年龄变化的影响
4.5 安全性问题
4.6 工程落地问题
5. 标准下载
1. 系统架构
《GB∕T 41772-2022 信息技术 生物特征识别 人脸识别系统技术要求》定义人脸识别系统由采集子系统、解析子系统、存储子系统、比对子系统、决策子系统、管理子系统以及应用开放接口等组成,其系统架构下图所示。
1.1 采集子系统
用于人脸图像或视频的采集,包括人脸采集设备以及执行人脸采集过程所需的任何子过程。
1.2 解析子系统
用于人脸图像或视频的处理,包括人脸检测、质量判断、特征提取、人脸跟踪、属性检测、活体检测等。
1.3 存储子系统
用于人脸注册数据及实时采集数据的存储,包括:
-
人脸注册数据库:用于注册数据的存储。
-
实时采集数据库:用于采集数据的存储。
1.4 比对子系统
包括两种模式:
-
人脸验证模式:现场人脸与指定的存储人脸进行比对(1:1比对),输出一个相似度得分;
-
人脸辨识模式:现场人脸与部分或全部的存储人脸进行比对(1:N比对),输出多个相似度得分,并根据相似度得分进行排序。
1.5 决策子系统
根据一个或多个相似度得分,对人脸识别提供决策结果,包括两种模式:
-
人脸验证模式:当相似度得分超过指定的阈值时,现场人脸和存储人脸匹配;
-
人脸辨识模式:当相似度得分超过指定的阈值时,对应的存储人脸构成了与现场人脸匹配的潜在候选者。
1.6 管理子系统
管理人脸识别系统的总体策略、执行和应用,包括但不限于:
-
设置阈值:例如样本质量阈值,相似度阈值,活体检测阈值等;
-
日志管理:日志生成、查询和导出等;
-
权限管理:设置不同角色的操作权限等;
-
接口配置:配置人脸识别系统的视图采集子系统等;
-
用户管理:存储或删除用户的人脸等注册信息;
-
其他管理:控制工作环境和非生物特征数据的存储、在视图采集时或采集后向用户提供反馈信息、与人脸识别应用进行交互管理等。
1.7 应用开放接口
人脸识别系统与人脸识别应用之间的接口,包括人脸注册接口、人脸验证接口、人脸辨识接口、活体检测接口等。
2. 业务流程
人脸识别系统的核心业务流程包括人脸注册、人脸验证、人脸辨识等。
2.1 人脸注册
-
启动人脸注册过程;
-
根据人脸注册策略,采集用户数据,例如用户基本信息、人脸图像等;
-
解析子系统对采集的视图进行解析,例如质量判断和活体检测等;
-
将该用户的数据记录存储在人脸注册数据库;
-
结束注册过程,记录日志。
2.2 人脸验证
-
启动人脸验证过程;
-
读取身份证件中的人脸信息;
-
采集人脸图像或视频;
-
将现场人脸与身份证件中的人脸进行比对;
-
依据系统策略及相似度得分,对人脸验证提供决策结果;
-
将决策结果传输到人脸验证应用;
-
结束验证过程,记录日志。
2.2.1 作用
证明你是你。
2.2.2 特点
- 匹配的特征集少
- 检验准确率稳定
- 依赖身份证件(身份证、护照、会员卡等)验证身份
2.2.3 应用场景
适用于车站、机场、大型活动、机关单位、银行、酒店、网吧等人员流动频繁场所或其它重点场所中,以及线上开户,进出人员身份验证,核查人员真实身份。。
2.3 人脸辨识
-
启动人脸辨识过程;
-
采集人脸图像或视频;
-
将现场人脸与一个或多个存储人脸进行比对;
-
依据系统策略及相似度得分,对人脸辨识提供决策结果;
-
将决策结果传输到人脸辨识应用;
-
结束辨识过程,记录日志。
2.3.1 作用
辨识你是谁。
2.3.2 特点
- 不依赖身份证件信息(身份证、护照、会员卡等)
- 误识率会随着人脸底库的增加而升高
2.3.3 应用场景
适用于社区、楼宇、工地、学校等较大规模的人脸考勤签到、人脸通行等应用场景,人脸注册到底库,检测到人脸后从人脸底库中检索出谁是谁。
3. 技术方案
3.1 本地离线方案
3.2 云端服务方案
设备端负责数据采集,服务端负责人脸识别,根据不同的应用场景,有三种不同的实施方案如下:
4. 技术局限
人脸识别技术由于相似脸 、 年龄 、 算法偏见 、 面临的场景多样化以及人脸图像更易公开获取等原因 , 技术本身也面临着一定的局限性。
4.1 相似脸较难解决
双胞胎或者长相很相近的人脸容易识别错误,而该问题在目前暂时没有新技术能完全解决。大部分情况下双胞胎仍能区分分数高低 ,但是往往都在阈值之上,在开放环境下应用效果较差。
4.2 算法偏见问题
由于当前人脸识别算法很大程度依赖于数据样本,但是不同人群的人脸数据样本存在差别,这导致了算法对不同地域、不同年龄人群的识别能力有差别。比如,小孩子,老年人以及其他很少出现的人种或者肤色的人脸识别率相对较低,该问题亟需解决 。
4.3 算法鲁棒性及性能问题
现有的人脸识别系统在用户配合、采集条件比较理想的情况下可以取得令人满意的结果。但是,在用户不配合 、采集条件不理想的情况下, 比如非限制条件下捕捉的人脸图像,远距离多姿态低像素拍摄的人脸图像,动态视频、模糊、低质量的人脸图像,会影响现有系统的识别率 。另外戴口罩情况下大部分算法的错误率会提高 1 个数量级以上。
4.4 年龄变化的影响
随着年龄的变化,面部外观也会变化 ,特别是对于青少年,这种变化更加明显。对于不同的年龄段,人脸识别算法的识别率也不同。
4.5 安全性问题
人脸识别系统信息存储同样会面临黑客的攻击,所以对数据加密很重要。随着技术的不断提升,人脸识别技术在安全性上需要加强 。
4.6 工程落地问题
如何合理安装摄像头的⻆度、高度以及降低光线干扰,如何提升用户体验。
5. 标准下载
《GB ∕ T 41772-2022 信息技术 生物特征识别 人脸识别系统技术要求》
相关文章:

人脸识别系统架构
目录 1. 系统架构 1.1 采集子系统 1.2 解析子系统 1.3 存储子系统 1.4 比对子系统 1.5 决策子系统 1.6 管理子系统 1.7 应用开放接口 2. 业务流程 2.1 人脸注册 2.2 人脸验证 2.2.1 作用 2.2.2 特点 2.2.3 应用场景 2.3 人脸辨识 2.3.1 作用 2.3.2 特点 2.3.3…...

数塔问题(蛮力算法和动态规划)
题目:如下图是一个数塔,从顶部出发在每一个节点可以选择向左或者向右走,一直走到底层,要求找出一条路径,使得路径上的数字之和最大,及路径情况。(使用蛮力算法和动态规划算法分别实现) #include…...
启动 Redis 服务和连接到 Redis 服务器
启动 Redis 服务和连接到 Redis 服务器的步骤通常依赖于你的操作系统和 Redis 的安装方式。以下是一些常见的步骤: ### 启动 Redis 服务 对于大多数 Linux 发行版,Redis 服务可以通过以下命令启动: 1. 如果 Redis 是通过包管理器安装的&am…...

我独自升级崛起在哪下载 我独自升级电脑PC端下载教程分享
将于5月8日在全球舞台闪亮登场的动作角色扮演游戏《我独自升级崛起》,灵感源自同名热门动画与网络漫画,承诺为充满激情的游戏玩家群体带来一场集深度探索与广阔体验于一身的奇幻旅程。该游戏以独特的网络武侠世界观为基底,展现了一位普通人踏…...

STM32F4xx开发学习—GPIO
GPIO 学习使用STM32F407VET6GPIO外设 寄存器和标准外设库 1. 寄存器 存储器映射 存储器本身是不具有地址的,是一块具有特定功能的内存单元,它的地址是由芯片厂商或用户分配,给存储器分配地址的过程就叫做存储区映射。给内存单元分配地址之后…...

引领农业新质生产力,鸿道(Intewell®)操作系统助力农业机器人创新发展
4月27日至29日,2024耒耜国际会议在江苏大学召开。科东软件作为特邀嘉宾出席此次盛会,并为江苏大学-科东软件“农业机器人操作系统”联合实验室揭牌。 校企联合实验室揭牌 在开幕式上,江苏大学、科东软件、上交碳中和动力研究院、遨博智能研究…...

扩展学习|一文读懂知识图谱
一、知识图谱的技术实现流程及相关应用 文献来源:曹倩,赵一鸣.知识图谱的技术实现流程及相关应用[J].情报理论与实践,2015, 38(12):127-132. (一)知识图谱的特征及功能 知识图谱是为了适应新的网络信息环境而产生的一种语义知识组织和服务的方…...

ubuntu中的docker记录(3)——如何安装nvidia-docker以更好地支持GPU加速计算应用程序的运行
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、nvidia-docker2的安装1. 安装docker2. 安装nvidia-docker2(1) 添加密钥(2) 更新软件列表(3) 安装nvidia-docker2(4) 测试nvidia-docker2 二、可能的报错及解…...

MLP实现fashion_mnist数据集分类(1)-模型构建、训练、保存与加载(tensorflow)
1、查看tensorflow版本 import tensorflow as tfprint(Tensorflow Version:{}.format(tf.__version__)) print(tf.config.list_physical_devices())2、fashion_mnist数据集下载与展示 (train_image,train_label),(test_image,test_label) tf.keras.datasets.fashion_mnist.l…...
ChatGPT-税收支持新质生产力
Prompt: 税收发展助力新质生产力 Response: 是的,税收发展可以促进新质生产力的发展。通过税收政策的调整和优化,政府可以提供更好的创新环境,激发企业投资研发,推动新技术、新产品的出现,从而推动经济结构升级和新…...
Linux下深度学习虚拟环境的搭建与模型训练
在深度学习实践中,环境配置是十分重要且免不了的一步。本文以 YOLOv4 模型,介绍在Linux下虚拟环境配置到模型训练的过程。 安装Miniconda: Miniconda是Anaconda的一个轻量级版本,非常适合用于科学计算和数据处理。 wget https:…...
Map-Reduce是个什么东东?
MapReduce是一种用于使用并行分布式算法在集群计算机上处理大型数据集的编程模型及其相关实现。这一概念首先由Google普及,并随后作为Apache Hadoop项目的一部分开源发布。 MapReduce的基本工作流程: 映射(Mapping):这是第一阶段,…...
上位机工作感想-从C#到Qt的转变-2
2.技术总结 语言方面 最大收获就是掌握了C Qt编程,自己也是粗看了一遍《深入理解计算机系统》,大致了解了计算机基本组成、虚拟内存、缓存命中率等基基础知识,那本书确实有的部分看起来很吃力,等这段时间忙完再研读一遍。对于封装…...
【C++】C++ 中 的 lambda 表达式(匿名函数)
C11 引入的匿名函数,通常被称为 Lambda 函数,是语言的一个重要增强,它允许程序员在运行时创建简洁的、一次性使用的函数对象。Lambda 函数的主要特点是它们没有名称,但可以捕获周围作用域中的变量,这使得它们非常适合在…...

OpenSSL实现AES-CBC加解密,可一次性加解密任意长度的明文字符串或字节流(QT C++环境)
本篇博文讲述如何在Qt C的环境中使用OpenSSL实现AES-CBC-Pkcs7加/解密,可以一次性加解密一个任意长度的明文字符串或者字节流,但不适合分段读取加解密的(例如,一个4GB的大型文件需要加解密,要分段读取,每次…...

cURL:命令行下的网络工具
序言 在当今互联网时代,我们经常需要与远程服务器通信,获取数据、发送请求或下载文件。在这些情况下,cURL 是一个强大而灵活的工具,它允许我们通过命令行进行各种类型的网络交互。本文将深入探讨 cURL 的基本用法以及一些高级功能…...
Baumer工业相机堡盟工业相机如何通过NEOAPISDK查询和轮询相机设备事件函数(C#)
Baumer工业相机堡盟工业相机如何通过NEOAPISDK查询和轮询相机设备事件函数(C#) Baumer工业相机Baumer工业相机NEOAPI SDK和相机设备事件的技术背景Baumer工业相机通过NEOAPISDK在相机中查询和轮询相机设备事件函数功能1.引用合适的类文件2.通过NEOAPISDK…...
Day45代码随想录动态规划part07:70. 爬楼梯(进阶版)、322. 零钱兑换、279.完全平方数、139.单词拆分
Day45 动态规划part07 完全背包 70. 爬楼梯(进阶版) 卡码网链接:57. 爬楼梯(第八期模拟笔试) (kamacoder.com) 题意:假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬至多m (1 < m < n)个…...

土壤重金属含量分布、Cd镉含量、Cr、Pb、Cu、Zn、As和Hg、土壤采样点、土壤类型分布
土壤是人类赖以生存和发展的重要资源之一,也是陆地生态系统重要的组成部分。近年来, 随着我国城市化进程加快,矿产资源开发、金属加工冶炼、化工生产、污水灌溉以及不合理的化肥农药施用等因素导致重金属在农田土壤中不断富集。重金属作为土壤环境中一种具有潜在危害…...
力扣:100284. 有效单词(Java)
目录 题目描述:输入:输出:代码实现: 题目描述: 有效单词 需要满足以下几个条件: 至少 包含 3 个字符。 由数字 0-9 和英文大小写字母组成。(不必包含所有这类字符。) 至少 包含一个 …...

基于Docker Compose部署Java微服务项目
一. 创建根项目 根项目(父项目)主要用于依赖管理 一些需要注意的点: 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件,否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...
Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!
一、引言 在数据驱动的背景下,知识图谱凭借其高效的信息组织能力,正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合,探讨知识图谱开发的实现细节,帮助读者掌握该技术栈在实际项目中的落地方法。 …...

selenium学习实战【Python爬虫】
selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...

Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)
目录 一、👋🏻前言 二、😈sinx波动的基本原理 三、😈波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、🌊波动优化…...
LeetCode - 199. 二叉树的右视图
题目 199. 二叉树的右视图 - 力扣(LeetCode) 思路 右视图是指从树的右侧看,对于每一层,只能看到该层最右边的节点。实现思路是: 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...
LRU 缓存机制详解与实现(Java版) + 力扣解决
📌 LRU 缓存机制详解与实现(Java版) 一、📖 问题背景 在日常开发中,我们经常会使用 缓存(Cache) 来提升性能。但由于内存有限,缓存不可能无限增长,于是需要策略决定&am…...
Kafka主题运维全指南:从基础配置到故障处理
#作者:张桐瑞 文章目录 主题日常管理1. 修改主题分区。2. 修改主题级别参数。3. 变更副本数。4. 修改主题限速。5.主题分区迁移。6. 常见主题错误处理常见错误1:主题删除失败。常见错误2:__consumer_offsets占用太多的磁盘。 主题日常管理 …...

【C++】纯虚函数类外可以写实现吗?
1. 答案 先说答案,可以。 2.代码测试 .h头文件 #include <iostream> #include <string>// 抽象基类 class AbstractBase { public:AbstractBase() default;virtual ~AbstractBase() default; // 默认析构函数public:virtual int PureVirtualFunct…...
深度剖析 DeepSeek 开源模型部署与应用:策略、权衡与未来走向
在人工智能技术呈指数级发展的当下,大模型已然成为推动各行业变革的核心驱动力。DeepSeek 开源模型以其卓越的性能和灵活的开源特性,吸引了众多企业与开发者的目光。如何高效且合理地部署与运用 DeepSeek 模型,成为释放其巨大潜力的关键所在&…...

Elastic 获得 AWS 教育 ISV 合作伙伴资质,进一步增强教育解决方案产品组合
作者:来自 Elastic Udayasimha Theepireddy (Uday), Brian Bergholm, Marianna Jonsdottir 通过搜索 AI 和云创新推动教育领域的数字化转型。 我们非常高兴地宣布,Elastic 已获得 AWS 教育 ISV 合作伙伴资质。这一重要认证表明,Elastic 作为 …...