linux server下人脸检测与识别服务程序的系统架构设计

news2024/11/14 13:46:03

一、绪论

1.1 定义

1.2 研究背景及意义

1.3 相关技术综述

二、人脸检测与识别技术概述

2.1 人脸检测原理与算法

2.2 人脸识别技术及方法

2.3 人脸识别过程简介

三、人脸检测与识别服务程序的系统架构

3.1 系统架构设计

3.2 技术实现流程

四、后续设计及经验瞎谈

4.1 后续设计

4.2 经验瞎谈

一、绪论
1.1 定义

       人脸检测是指对于任意一幅给定的图像,采用一定的策略对其进行搜索以确定其中是否含有人脸,如果是则返回脸的位置、大小和姿态。

       人脸识别技术是基于人的脸部特征,对输入的人脸图像或者视频流,首先判断其是否存在人脸,如果存在人脸,则进一步的给出每个脸的位置、大小和各个主要面部器官的位置信息。并依据这些信息,进一步提取每个人脸中所蕴涵的身份特征,并将其与已知的人脸进行对比,从而识别每个人脸的身份。

1.2 研究背景及意义
       随着第四次工业革命在“智能”领域不断推陈出新,计算机和网络技术飞速发展,人类在工作、生活和学习当中进行的人机交互已是十分频繁,信息的安全性和隐蔽性越来越受到人们的重视。如何有效、快速地进行身份验证和鉴定,已成为人们日益关注的问题。通常的密码或密码验证措施的安全性和便捷程度已经不再能满足需求,人们开始将注意力转向生物识别技术。人脸识别技术应运而生。

       在计算机视觉领域,人脸检测是一项具有挑战性的任务。由于人脸具有多样的表情、姿势、遮挡和光照条件等因素的干扰,使得人脸检测有很大的困难。此外,大规模的图像数据处理和复杂的计算任务也对人脸检测技术提出更高的要求。因此,通过研究检测技术及算法优化,可以提高计算机对图像的理解及分析能力,进一步推动计算机视觉领域的发展。

       人脸检测技术在实际应用中具有广泛的意义。人脸检测技术可以应用于人机交互方面,实现自动的人脸识别、表情分析及情感识别等功能,提高用户体验和交互效果;人脸检测技术在安防领域,可以实现实时监控和人脸比对,有效防范各类安全风险;在智能交通领域,可以实时检测并抓拍如<疲劳驾驶>等有风险的行为。

1.3 相关技术综述
       广义的人脸识别实际包括构建人脸识别系统的一系列相关技术,包括人脸图像采集、人脸定位、人脸识别预处理、身份确认以及身份查找等;而狭义的人脸识别特指通过人脸进行身份确认或者身份查找的技术或系统。

二、人脸检测与识别技术概述
2.1 人脸检测原理与算法
       人脸检测是人脸识别中的第一个环节,是一项关键技术。人脸检测是指假设在输入图像中存在一个或者多个人脸区域的情况下,确定图像中全部人脸的位置、大小和姿势的过程。

       从教学理论上来讲,人脸检测本质上是对一副图像的特征提取,如果提取了M个体征,则此模式可以用一个M维特征向量描述:x=(x1,x2,x3......xm),表现为M维欧式空间中的一个点。按照统计学的观点,好的特征提取方法必须满足以下条件:特征之间相互独立,减小类内距离的同时增大类间距离,特征向量的维数m尽量小。

       人脸检测算法一般包括两大类:基于统计的方法及基于结构特征的方法。具体有那些算法,请摆渡或Google,我这里限于篇幅就不作介绍了。

2.2 人脸识别技术及方法
       人脸识别技术是基于人的脸部特征,对输入的人脸图像或者视频流,首先判断其是否存在人脸,如果存在人脸,则进一步的给出每个脸的位置、大小和各个主要面部器官的位置信息。并依据这些信息,进一步提取每个人脸中所蕴涵的身份特征,并将其与已知的人脸进行对比,从而识别每个人脸的身份。

       人脸识别技术包含三个部分:
(1)人脸检测
       面貌检测是指在动态的场景与复杂的背景中判断是否存在面像,并分离出这种面像。一般有下列几种方法:
①参考模板法
       首先设计一个或数个标准人脸的模板,然后计算测试采集的样品与标准模板之间的匹配程度,并通过阈值来判断是否存在人脸。
②人脸规则法
       由于人脸具有一定的结构分布特征,所谓人脸规则的方法即提取这些特征生成相应的规则以判断测试样品是否包含人脸。
③样品学习法
       这种方法即采用模式识别中人工神经网络的方法,即通过对面像样品集和非面像样品集的学习产生分类器。
④肤色模型法
       这种方法是依据面貌肤色在色彩空间中分布相对集中的规律来进行检测。
⑤特征子脸法
       这种方法是将所有面像集合视为一个面像子空间,并基于检测样品与其在子空间的投影之间的距离判断是否存在面像。

值得提出的是,上述5种方法在实际检测系统中也可综合采用。
(2)人脸跟踪
       面貌跟踪是指对被检测到的面貌进行动态目标跟踪。具体采用基于模型的方法或基于运动与模型相结合的方法。此外,利用肤色模型跟踪也不失为一种简单而有效的手段。
(3)人脸比对
       面貌比对是对被检测到的面貌像进行身份确认或在面像库中进行目标搜索。这实际上就是说,将采样到的面像与库存的面像依次进行比对,并找出最佳的匹配对象。所以,面像的描述决定了面像识别的具体方法与性能。主要采用特征向量与面纹模板两种描述方法:
①特征向量法
       该方法是先确定眼虹膜、鼻翼、嘴角等面像五官轮廓的大小、位置、距离等属性,然后再计算出它们的几何特征量,而这些特征量形成一描述该面像的特征向量。
②面纹模板法
       该方法是在库中存贮若干标准面像模板或面像器官模板,在进行比对时,将采样面像所有像素与库中所有模板采用归一化相关量度量进行匹配。此外,还有采用模式识别的自相关网络或特征与模板相结合的方法。
       人脸识别技术的核心实际为“局部人体特征分析”和“图形/神经识别算法”。这种算法是利用人体面部各器官及特征部位的方法。如对应几何关系多数据形成识别参数与数据库中所有的原始参数进行比较、判断与确认。一般要求判断时间低于1秒。

2.3 人脸识别过程简介

一般分三步:

(1)首先建立人脸的面像档案。即用摄像机采集单位人员的人脸的面像文件或取他们的照片形成面像文件,并将这些面像文件生成面纹(Faceprint)编码贮存起来。

(2)获取当前的人体面像。即用摄像机捕捉的当前出入人员的面像,或取照片输入,并将当前的面像文件生成面纹编码。

(3)用当前的面纹编码与档案库存的比对。即将当前的面像的面纹编码与档案库存中的面纹编码进行检索比对。上述的“面纹编码”方式是根据人脸脸部的本质特征和开头来工作的。这种面纹编码可以抵抗光线、皮肤色调、面部毛发、发型、眼镜、表情和姿态的变化,具有强大的可靠性,从而使它可以从百万人中精确地辨认出某个人。人脸的识别过程,利用普通的图像处理设备就能自动、连续、实时地完成。 

三、人脸检测与识别服务程序设计
3.1 系统架构设计
      《GB∕T 41772-2022 信息技术 生物特征识别 人脸识别系统技术要求》定义人脸识别系统由采集子系统、解析子系统、存储子系统、比对子系统、决策子系统、管理子系统以及应用开放接口等组成,其系统架构下图所示。

       本服务程序主要包括:采集子系统、解析子系统、存储子系统之实时采集数据库、比对子系统、决策子系统。管理子系统在《FaceDR-web platform》中实现,应用开发接口在《FaceDR-sdk》中实现,后续博文会作说明,就不在本文作说明了。

(1) 采集子系统
       用于人脸图像或视频的采集,包括人脸采集设备以及执行人脸采集过程所需的任何子过程。

(2) 解析子系统
       用于人脸图像或视频的处理,包括人脸检测、质量判断、特征提取、人脸跟踪、属性检测、活体检测等。

(3) 存储子系统
       用于人脸注册数据及实时采集数据的存储,包括:

人脸注册数据库:用于注册数据的存储。--在《FaceDR-web platform》中实现

实时采集数据库:用于采集数据的存储。

(4) 比对子系统
    包括两种模式:

人脸验证模式:现场人脸与指定的存储人脸进行比对(1:1比对),输出一个相似度得分;

人脸辨识模式:现场人脸与部分或全部的存储人脸进行比对(1:N比对),输出多个相似度得分,并根据相似度得分进行排序。

(5) 决策子系统
       根据一个或多个相似度得分,对人脸识别提供决策结果,包括两种模式:

人脸验证模式:当相似度得分超过指定的阈值时,现场人脸和存储人脸匹配;

人脸辨识模式:当相似度得分超过指定的阈值时,对应的存储人脸构成了与现场人脸匹配的潜在候选者。

3.2 技术实现流程
见下图:

(1)人脸图像采集及检测

       人脸图像采集:不同的人脸图像都能通过摄像镜头采集下来,比如静态图像、动态图像、不同的位置、不同表情等方面都可以得到很好的采集。当人在采集设备的拍摄范围内时,采集设备会自动搜索并拍摄人的人脸图像。

       人脸检测:人脸检测在实际中主要用于人脸识别的预处理,即在图像中准确标定出人脸的位置和大小。人脸图像中包含的模式特征十分丰富,如直方图特征、颜色特征、模板特征、结构特征及Haar特征等。人脸检测就是把这其中有用的信息挑出来,并利用这些特征实现人脸检测。

(2)人脸图像预处理

人脸图像预处理:对于人脸的图像预处理是基于人脸检测结果,对图像进行处理并最终服务于特征提取的过程。系统获取的原始图像由于受到各种条件的限制和随机干扰,往往不能直接使用,必须在图像处理的早期阶段对它进行灰度校正、噪声过滤等图像预处理。对于人脸图像而言,其预处理过程主要包括人脸图像的光线补偿、灰度变换、直方图均衡化、归一化、几何校正、滤波以及锐化等。

(3)人脸图像特征提取

       人脸图像特征提取:人脸识别系统可使用的特征通常分为视觉特征、像素统计特征、人脸图像变换系数特征、人脸图像代数 特征等。人脸特征提取就是针对人脸的某些特征进行的。人脸特征提取,也称人脸表征,它是对人脸进行特征建模的过程。人脸特征提取的方法归纳起来分为两大类:一种是基于知识的表征方法;另外一种是基于代数特征或统计学习的表征方法。

       基于知识的表征方法主要是根据人脸器官的形状描述以及他们之间的距离特性来获得有助于人脸分类的特征数据,其特征分量通常包括特征点间的欧氏距离、曲率和角度等。人脸由眼睛、鼻子、嘴、下巴等局部构成,对这些局部和它们之间结构关系的几何描述,可作为识别人脸的重要特征,这些特征被称为几何特征。基于知识的人脸表征主要包括基于几何特征的方法和模板匹配法。

(4)人脸图像匹配与识别

       人脸图像匹配与识别:提取的人脸图像的特征数据与数据库中存储的特征模板进行搜索匹配,通过设定一个阈值,当相似度超过这一阈值,则把匹配得到的结果输出。人脸识别就是将待识别的人脸特征与已得到的人脸特征模板进行比较,根据相似程度对人脸的身份信息进行判断。这一过程又分为两类:一类是确认,是一对一进行图像比较的过程,另一类是辨认,是一对多进行图像匹配对比的过程。

四、后续设计及经验瞎谈
4.1 后续设计

       敬请关注后续博文《linux下人脸检测与识别服务程序的编码设计与实现》即《FaceDR-SVC-linux》的设计与实现。
4.2 经验瞎谈

       在现今信息大爆炸时代,全网人脸检测方面的文章数不胜数,要实现单一摄像机的人脸识别非常简单,一个<opencv>库2天内搞定。但这样弄出来的东西是毫无价值,实际项目可能是几百个甚至几千个摄像机,《项目架构》如何设计、<性能>如何保证、人脸特征库如何采集及存储(人脸特征是128维向量值)、采集的海量图像信息如何存储、大数据下的人脸匹配(经常是N:N)性能如何保证。

       以上这些才真正考验设计者的功力。 这些坑笔者都踩过,也填得差不多了。

HI,我是Remon,CSDN上的别名:AncleLeen(被csdn强迫更名),一位30年的老码农了。

如对我的文章或代码感兴趣,可VX:RemonLin,敬请备注:cvDNN。VX扫一扫:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1872637.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Mac】Listen 1 for Mac(最强的音乐搜索工具)软件介绍

软件介绍 Listen 1 for Mac 是一款非常方便的音乐播放软件&#xff0c;主要功能是集成多个音乐平台&#xff0c;让用户可以方便地搜索、播放和管理音乐。它是一个用 Python 语言开发的免费开源综合音乐搜索工具项目&#xff0c;最大的亮点在于可以搜索和播放来自网易云音乐&am…

全国公共汽车、出租车拥有情况及客运量、货运量数据

基本信息. 数据名称: 全国公共汽车、出租车拥有情况及客运量、货运量数据 数据格式: Shp、Excel 数据时间: 2020-2022年 数据几何类型: 面 数据坐标系: WGS84 数据来源&#xff1a;中国城市统计年鉴 数据可视化. 2022年全年公共汽车客运总量数据示意图 2022年公路客…

Apifox 更新|定时任务、内网自部署服务器运行接口定时导入、数据库 SSH 隧道连接

Apifox 新版本上线啦&#xff01; 看看本次版本更新主要涵盖的重点内容&#xff0c;有没有你所关注的功能特性&#xff1a; 自动化测试支持设置「定时任务」支持内网自部署服务器运行「定时导入」数据库均支持通过 SSH 隧道连接自动化测试数据库操作优化 1、自动化测试支持设…

计算机语言vs指令vs中央处理器cpu

计算机中如何表示数据 在计算机中&#xff0c;所有数据和指令都是用二进制表示的&#xff0c;即0和1。这些0和1实际上是电压信号的高低电平&#xff0c;0通常表示低电平&#xff08;如0伏特&#xff09;&#xff0c;1表示高电平&#xff08;如5伏特&#xff09;。 指令系统&a…

基本的 Spring Boot 配置步骤和常见的配置项【创建,配置,日志,数据库,安全,MVC】

基本的 Spring Boot 配置步骤和常见的配置项【创建&#xff0c;配置&#xff0c;日志&#xff0c;数据库&#xff0c;安全&#xff0c;MVC】 学习总结 1、掌握 JAVA入门到进阶知识(持续写作中……&#xff09; 2、学会Oracle数据库入门到入土用法(创作中……&#xff09; 3、…

UE5基本操作(二)

文章目录 前言相机的移动速度修改默认地图使用初学者内容包文件夹结构 总结 前言 在我们的上一篇文章中&#xff0c;我们已经介绍了一些Unreal Engine 5&#xff08;UE5&#xff09;的基本操作。UE5是一款强大的游戏开发引擎&#xff0c;它提供了许多工具和功能&#xff0c;使…

Elasticsearch 聚合查询

Hi~&#xff01;这里是奋斗的小羊&#xff0c;很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~~ &#x1f4a5;&#x1f4a5;个人主页&#xff1a;奋斗的小羊 &#x1f4a5;&#x1f4a5;所属专栏&#xff1a;C语言 &#x1f680;本系列文章为个人学习…

SpringMVC处理器映射器HandlerMapping详解

目录 一、前言 二、initHandlerMappings 三、处理器映射器架构 策略接口 请求链 模版类 四、RequestMappingHandlerMapping的初始化 HandlerMethod映射器模版类的初始化 AbstractHandlerMethodMapping.MappingRegistry&#xff1a;内部类注册中心 五、Reques…

AST反混淆|某练习平台混淆代码彻底还原及逆向请求

关注它&#xff0c;不迷路。 本文章中所有内容仅供学习交流&#xff0c;不可用于任何商业用途和非法用途&#xff0c;否则后果自负&#xff0c;如有侵权&#xff0c;请联系作者立即删除&#xff01; 一.目标地址 https://match.yuanrenxue.cn/match/2 二.代码还原 初次请…

MongoDB:JSON and BSON

目录 什么是 JSON MongoDB-JSON连接 什么是 BSON MongoDB 使用 BSON 还是 JSON JSON 与 BSON 架构灵活性和数据治理 JSON 和 BSON 是近亲&#xff0c;正如它们几乎相同的名称所暗示的那样JSON&#xff08;即 JavaScript 对象表示法&#xff09;是网络上广泛流行的数据交换…

CVPR上新 | 从新视角合成、视频编解码器、人体姿态估计,到文本布局分析,微软亚洲研究院精选论文

编者按&#xff1a;欢迎阅读“科研上新”栏目&#xff01;“科研上新”汇聚了微软亚洲研究院最新的创新成果与科研动态。在这里&#xff0c;你可以快速浏览研究院的亮点资讯&#xff0c;保持对前沿领域的敏锐嗅觉&#xff0c;同时也能找到先进实用的开源工具。 本周&#xff0…

2024年湖北省安全员-C证证考试题库及湖北省安全员-C证试题解析

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2024年湖北省安全员-C证证考试题库及湖北省安全员-C证试题解析是安全生产模拟考试一点通结合&#xff08;安监局&#xff09;特种作业人员操作证考试大纲和&#xff08;质检局&#xff09;特种设备作业人员上岗证考试…

uni-app通过配置package.json实现环境变量、自定义条件编译

文章目录 前言官方提示使用方法微信小程序配置如下自定义条件编译使用方法 前言 uni-app 官方概括 官方文档 在开发web时&#xff0c;有时需要一套代码编译发布到不同的站点&#xff0c;比如主站和微信h5站。&#xff08;注意不是一套代码内部自适应不同浏览器&#xff0c;是真…

CentOS 生命周期结束指南

2019 年 9 月&#xff0c;Red Hat 宣布打算废止 CentOS&#xff0c;并将其替换为 CentOS Stream。 CentOS 7 和 8 是 CentOS Linux 的最终版本。CentOS 7 和 8 的生命周期结束日期为&#xff1a; CentOS 8 - 2021 年 12 月 31 日 CentOS 7 - 2024 年 6 月 30 日 相关内容推荐 点…

MySQL数据库存储引擎

MySQL数据库存储引擎 存储引擎概念 存储引擎也称为表类型 通过不同的技术比如说&#xff0c;存储机制&#xff0c;索引技巧&#xff0c;锁定水平等等&#xff0c;来提供不同的功能。 查看MySQL支持的存储引擎 show engines\G&#xff1b; 常用引擎比较 对事务有需求 innodb …

MySQL丢失更新问题的出现和解决

MySQL丢失更新问题的出现和解决 丢失更新问题&#xff08;Lost Update&#xff09;指的是两个或多个事务在读同一数据并基于此数据进行更新操作时&#xff0c;某些更新操作被覆盖或丢失。例如&#xff0c;事务A和事务B都读取了某个数据&#xff0c;然后事务A更新了该数据&…

谷歌Gemma 2:开源模型的新里程碑

引言&#xff1a; 在人工智能领域&#xff0c;谷歌一直是创新的先行者。最近&#xff0c;谷歌DeepMind团队在I/O Connect大会上发布了Gemma 2&#xff0c;这是其开源模型系列的最新力作&#xff0c;标志着AI技术的又一大步。 Gemma 2的前身&#xff0c;Gemma&#xff0c;已经因…

0-30 VDC 稳压电源,电流控制 0.002-3 A

怎么运行的 首先&#xff0c;有一个次级绕组额定值为 24 V/3 A 的降压电源变压器&#xff0c;连接在电路输入点的引脚 1 和 2 上。&#xff08;电源输出的质量将直接影响与变压器的质量成正比&#xff09;。变压器次级绕组的交流电压经四个二极管D1-D4组成的电桥整流。桥输出端…

中电金信:时代有命题,运营有答案——咨询服务为金融机构运营加上智慧“基因”

这两年&#xff0c;很多搞运营的“卷王”都开始迷茫了 原因其实没别的&#xff1a;时代变了 与此同时&#xff0c;条线集中趋于成熟 跨条线共享障碍多多 运营模式创新所带来的变革红利 也达到了发展瓶颈 想破局就必须引入一些新“变量” 基于中电金信多年来对银行业的实践…

多行业预约门店服务小程序源码系统 支持多门店预约 带完整的安装代码包以及搭建教程

系统概述 该系统基于先进的云计算和大数据技术&#xff0c;采用模块化设计&#xff0c;具有高度的可扩展性和可定制性。无论是餐饮、美容美发、健身房还是其他服务行业&#xff0c;都可以通过该系统轻松实现多门店预约功能。同时&#xff0c;我们还提供了丰富的接口和插件&…