一、绪论
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扫一扫: