发布时间:2019-7-15 分类: 行业资讯
我最近编写了一些CV方向的基本知识。我之前的文章《看AI产品经理如何介绍“计算机视觉”(基于实战经验和案例)》是本系列的第一篇;本文是本系列的第二篇,主要用于人脸识别。随后的多目标跟踪,OCR和其他方向。我希望每个人都可以从这个系列中收获更多的CV干货:)
人脸识别:检测,识别和跟踪图像中的人脸。
首先,技术过程详细
技术流程:
1.面部收藏
Face collection专注于以下因素——
1)图像尺寸:如果脸部图像太小,识别效果会受到影响,脸部图像会影响识别速度。非专业人脸识别相机通常规定的最小识别面部像素是60 * 60或100 * 100或更多。在指定的图像大小内,该算法更有可能提高准确性和召回率。图像大小反映在实际应用场景中是脸部与相机的距离。
2)图像分辨率:图像分辨率越低,识别越难。图像尺寸与图像分辨率相结合,直接影响相机识别距离。现在4K相机是最长的距离,看到的脸是10米,7K相机是20米。
3)照明环境:过度曝光或太暗的照明环境会影响人脸识别效果。您可以使用相机的内置功能来填充光线或滤镜以平衡光线的效果,或者您可以使用算法模型来优化图像光线。
4)模糊度:实际场景主要集中在解决运动模糊,并且脸部相对于相机的运动经常产生运动模糊。一些相机具有抗模糊能力,并且在成本有限的情况下,考虑通过算法模型来优化问题。
5)遮挡程度:脸部没有遮挡和清晰边缘的图像是最佳的。在实际场景中,许多面孔被帽子,眼镜,面具和其他障碍物挡住。这部分数据需要根据算法要求决定是否保留训练。
6)采集角度:相对于摄像机角度,脸部最适合脸部。然而,在实际场景中捕获正面通常是困难的。因此,算法模型需要训练包括左脸和右脸以及上下脸的数据。工业结构中摄像机放置的角度需要满足算法识别范围内人脸和摄像头形成的角度要求。
2,人脸检测(人脸检测)
面部位置检测:
目的是准确地校准图像中面部的位置和大小。
面部关键点检测(面部对齐):
目的是自动估计面部图像上面部特征点的坐标
可以使用Openface中的Dlib模型实现面部检测,并使用OpenCV库处理数据。最近,人脸检测算法模型的类型包括三种类型和它们之间的组合:viola-jones框架(性能一般很好,适合移动,嵌入),dpm(速度较慢),cnn(性能良好))。
人脸检测侧重于以下指标:
检测率:识别正确脸部/图片中的所有脸部。检测率越高,检测模型的效果越好。
错误检测率:识别错误的面部/识别的面部。错误检测率越低,检测模型的效果越好。
错过检测率:图像中无法识别的脸部/所有脸部。漏检率越低,检测模型的效果越好。
速度:从完成图像采集到完成人脸检测的时间。时间很短,检测模型越好。
举一个实际的例子:
在摄像机的捕获图像中,总共有7个面部,并且算法检测到4个面部,其中3个面部是真实面部,并且1个是被错误地识别为面部的道路标志。
在这个实际情况中:检测率=3/7错误检测率=1/4未命中检测率=(7-3)/7
3.图像预处理
图像预处理的目的是消除图像中的无关信息,尽可能地去除或减少照明,成像系统,外部环境等的干扰,从而可以在图像中清楚地表达其特征。主要过程包括射线补偿,灰度变换,直方图均衡,归一化,几何校正,滤波和人脸图像锐化。
1)灰度:将彩色图像转换为灰度图像的过程。
2)直方图均衡:直方图描述图像的灰度级内容。直方图均衡化的主要目的是改善对比度和灰度色调,使图像更清晰。
3)归一化:通过一系列变换,将要处理的原始图像转换为相应的唯一标准形式(标准形式图像具有仿射变换的不变特征,如平移,旋转,缩放等),以便图像可以抵抗几何。改变攻击。例如,图像被放大和缩小,并且减少了由不均匀照明引起的干扰。
4)中值滤波:平滑图像以消除噪声。
预处理的效果直接影响人脸识别率。模型效果可以通过不同的方法,相同的算法和相同的训练模式来评估,并且可以选择最佳的预处理方法。
4.人脸特征提取和人脸识别方法
传统的人脸识别模型通常在通过SVM等分类器进行分类后通过CNN提取特征。
但随着深度学习的发展,人脸识别有更多的端到端框架选择。以下简要介绍过去两年基于深度学习的三种深层识别方法:深层面,Deep ID,FaceNet
1)深脸
a.Deep face和其他方法之间的最大区别在于DeepFace在训练神经网络之前使用基于3D模型的面部对齐方法。
湾使用深度神经网络学习功能
C。该模型在LFW数据集上实现了0.9735的准确度
2)DeepID
DeepID有三代:DeepID,DeepID2,DeepID2 +
DeepID2 +对遮挡非常强大
有两种方法可以在不同的比例下遮挡脸部。首先是自下而上阻止,从10%到70%。第二种是随机放置不同大小的黑色块,黑色块的大小为10次; 10到70次; 70.
结论是:遮挡在20%以内,块大小在30 * 30以下,Deep2 +输出向量的验证精度几乎没有变化。
3)FaceNet
面部图像直接映射到欧几里德空间,空间的距离表示面部图像的相似性。该方法基于深度卷积神经网络。 FaceNet不需要在面部的最终表示之后重新训练模型以进行分类,并且直接计算距离,这是非常有效的。
它在LFW数据集上使用两种模式:
直接将LFW图像的中间部分用于训练,
使用额外的面部对齐工具,准确率为0.9963,超过DeepID。
当然,有许多基于深度学习的人脸识别方法,如百度方法。如果您对这篇文章感兴趣,可以查看这篇文章:《基于深度学习的人脸识别技术综述》
5.面部匹配和识别
搜索提取的面部特征数据并与存储在数据库中的特征模板匹配,并设置最佳相似度阈值。当相似度超过阈值时,输出匹配结果。
最佳相似性阈值的决定需要考虑输出的正确速率和数量。假设1000个样本图像中有600个阳性样本。总共有100张相似度为0.9的图片,其中99张是阳性样本。虽然0.9阈值非常准确,但它是99/100;然而,0.9阈值正确输出非常小,只有99/600。这很容易错过。
有些学生可能会很快将准确性和回忆的概念与这种情景联系起来。是的,这是需要应用程序准确性和召回的实际评估方案之一。这里再次解释准确性和召回率:
精度:标识为正确的样品数/标识样品数=99/100
回忆:所有样品中标识为正确/正确数量的样品数量=99/600
(图片来自@ mousever)
仅在达到所选阈值时:a。超过阈值的结果的准确性非常高;湾召回超过阈值的结果非常高。该阈值是算法模型下的最佳阈值。
除了准确率和召回率之外,误报率(False Alarm)也是一个非常重要的指标。家用机器人/摄像机可能经常进行面部检测,误报可能会极大地影响用户体验(例如,没有异常但频繁发生警报)。因此,误报率将是此类情景的重要指标。
此外,在此识别步骤中,产品还需要确定特定的输出需求点是面部认证还是面部识别——
1)面部认证:一对一的匹配过程,解决这是否是某人的问题。系统需要首先找出存储的对象信息,然后将要验证的信息与前者进行比较,以确定是接受还是拒绝要验证的身份。
常见的应用场景:如移动支付认证,安全身份验证等。
在系统设计的逻辑中,产品需要首先考虑存储对象信息的先验条件。通过界面/语音提示,被认证的人事先知道他正在被检查过程中,并且预先知道要检查的对象的身份。
2)面部比较:一对多的匹配过程,解决了“谁是这个”的问题。系统将要识别的面部图像的特征值与存储在数据库中的所有已知身份对象的特征值进行比较,以确定要识别的人的身份。
常见的应用场景:面部开放,面部检索等。
在设计此要求时,产品需要考虑系统的实时性和产品逻辑的不同架构解决方案的影响。例如,面部开放的通用架构跨越因特网和局域网。面部检索的通用架构是在某个局域网(Internet)下。
一个。需要关注跨网络解决方案的因素,如面部开放。
远程算法更新:远程算法更新将不可避免地导致本地LAN功能暂时不可用。因此,远程算法更新的频率,时间和更新效果要求在更新之前准确评估产品。
添加和删除面部数据和本地数据的同步:本地LAN和Internet不能直接相互交互。因此,一旦用户在因特网上添加或删除面部数据库,就需要关注交付过程的稳定性和及时性。
硬件环境:本地存储空间的大小和GPU的速度直接影响本地识别。服务器的稳定性会影响系统的功能使用。
恶魔程序:如果在关闭电源并发生意外情况后出现外部情况,程序可以自动恢复正常。
湾需要通过局域网(Internet)解决方案(如面部检索)解决的因素
速度:除了算法识别需要消耗一定时间外,局域网下的网络速度会影响识别结果输出的速度。
数据库架构:通过检索结果来关联结构化数据。
阈值可配置性:在接口上设置阈值功能。从产品级别输入阈值后,更改相应的结果输出。
对输出结果进行排序:根据相似性排序或结构化数据对内容进行排序
云服务的稳定性。
第二,与面部识别相关的其他CV内容
1.面部表情识别(FER)
面部表情识别的一般步骤:图像采集,图像预处理(主要是图像归一化,人脸检测和定位),特征提取和表情分类。
现在人们普遍认为人类有六种基本情绪:愤怒,快乐,悲伤,惊讶,厌恶和恐惧。大多数表达识别都是基于这六种情绪及其延伸的情绪。主要困难是:
表达的细化程度:是否需要对每种情绪的最弱表现进行分类。分类的边界要求产品给出评估规则。
表达类别的多样化:是否有必要补充其他类别的情感,某些场景中的六种情绪远未实现人类的真实情感。因此,除了基本表达识别之外,还有关于精细表达识别,混合表达识别和非基本表达识别的详细研究。
缺乏稳健性
2.面对性别认可
性别分类是典型的二等问题。面部特征提取和分类器选择需要解决面部性别分类问题中需要解决的两个关键问题。
面子性别认可只能认识到面部外观更偏向女性或男性。很难对男女学生做出正确的判断。产品必须具有合理的性别划分规则。
3.面子年龄识别
年龄识别的难点在于识别单身人士的不同年龄组和识别不同年龄组的多人。面部年龄识别通常与面部识别相结合以更正确地识别。判断一个人是否在某段时间内更为正确。 ;问题。
识别年龄没有变化的面部就足够了,年龄变化的面部识别方法是将测试图像和查询库中的图像按年龄转换为共同年龄,从而消除不同年龄的影响。同时识别同一年龄的人脸图像。
除上述之外,还有眼镜,头发长度,肤色等,产品可根据需要提出不同的算法组合。值得强调的是,随着行业的深入,我们会发现简单的人脸识别不能满足实际应用场景的需求,例如在安全行业或金融领域,生活技术(如何验证当前人是真实的)人而不是照片或视频)和反欺诈技术是解决用户痛苦的更重要的关键。人脸识别技术与多种技术的结合是当前场景中广泛使用的解决方案。
三,补充说明
1.测试环境描述
例如:
CPU:Intel(R)Core(TM)i7-4790 CPU @ 3.60 GHz
内存:8GB
系统:Ubuntu 14.04 x86_64/Windows 7 SP1 64位
GCC版本:4.8.2
注意:上述测试环境是PC或可以在手机上。
2,需要解释测试集是什么,或图片要求(如“图片包含的脸部大小应超过96 * 96像素”
一个。经典人脸识别测试装置LFW(LFW基准测试http://vis-www.cs.umass.edu/lfw/)共包含13233张图片5749个不同的身份;世界纪录99.7%。
b.CK +是面部表情数据集(CK +,Extended Cohn-Kanade Dataset,http://www.pitt.edu/~emotion/ck-spread.htm),其中包含固定表达式和自我表达,包括123个人的593个表达式。序列。每个序列的目标表情符号由FACS编码,添加经过验证的情感标签(愤怒,厌恶,恐惧,快乐,悲伤,惊讶)。
3,需要说明“有效距离,左右角度,上下角度,速度”等参数值(范围)
注意:这与“部署的灵活性”和“mdash;—因为不同的客户在不同场景下有不同的需求,技术方的人脸检测模块一般可以通过调整参数来获得N个子类型,以适应不同的应用。在场景下(光,角度,有效距离,速度)需要计算和有效检测距离。
4,需要知道的是很多公司刷数据清单,更多的是PR效果
@朱松纯UCLA教授在文章《浅谈人工智能:现状、任务、构架与统一 | 正本清源》中提到:
我们不仅仅是打乒乓球,而且刷名单成了我们的人工智能研究“ldquo;国家球”所谓刷清单,一般下载别人的代码,改进,调整,构建一个更大的模块,这么快。我曾经访问过一家具有非常技术技能(而不是视觉)的中国公司,该公司的研发总监非常自豪,说他们总是赢得这份名单,而美国的顶尖大学根本就没有。我很不耐烦,我说那里有两个学生,你有这么大的团队在这里刷,你的代码中基本没有算法是你自己的。如果人们之前没有发布代码,则根本无法播放。许多公司已经使用此列表的结果来推动自己超越世界级水平。
四,人脸识别的现状
1.实验室效果与实际效果的比较
1)实验室培训数据和实际捕获数据
在大多数情况下,实际捕获的图像质量远低于训练图像质量。由于训练数据通常由用户通过移动应用程序/网络收集,因此照明,角度和模糊程度可由产品控制,但实际捕获的图像质量与实际场景中的光线有关,分辨率相机等。照片的质量很难掌握。
在上图的情况下,即使算法模型能够实现高精度,由于图像质量差,实际效果将大大降低甚至不可用。
这种情况的解决方案是:
填充/过滤相机
将相机固定在适当的角度
该算法在识别之前执行图像预处理
2)培训标准和实际应用标准
在大多数情况下,实际应用的标准将远高于培训标准。例如,人脸识别实验室的标准是通过正面数据训练模型以识别正确的面部。但是,实际情况可能没有积极的面部数据,这对培训提出了更高的要求。
3)训练效果和逼真效果
在大多数情况下,实际效果将远低于训练效果。现在市场上的CV公司表示他们的培训效果高于99%(无限接近100%),但这并不意味着实际应用效果为99%。工业复杂的面部应用(类似于1: N面部比较的黑名单)具有超过90%的正确率并且已经是良好的算法模型。
2.算法漏洞经常被用来破解人脸识别系统
面部识别经常被质疑是否安全性不够高,并且许多面部识别产品可能被破解。例如,看起来像个人的人可能会被误认为是同一个人;输入人的照片或视频也可以通过面部系统。
目前,具有较高安全性能的系统通常与人脸识别技术和其他生物识别技术相结合,如人脸识别+指纹识别;人脸识别+虹膜识别。
所有这些都是面部识别的梳理。文章指的是大量的文件,也结合了我的实战项目经验,希望通过这样的系统化管理让每个人都获得一些东西。我也很高兴分享你对人脸认可的看法和意见。
附件:参考文章
《人脸面部特征提取技术的研究》http://t.cn/RTm3Xwm
《人机交互中的人脸表情识别研究进展》http://t.cn/RTm3pLS
《基于深度学习的人脸识别技术综述》http://t.cn/RJeczWj
《人脸识别之端到端的框架(二)—DeepID》http://t.cn/RHlEVZU
作者:茉莉,微信公众号:AI修身产品
本文最初由@Jasmine发布。未经许可,禁止复制。
该地图由作者提供
« 在过去的两年里,当我还是一名草根代购源码网站管理员时,很难在互联网上赚钱? | 当没有热点追逐时,软文推广也可以“怀旧” »