作为人工智能领域少有的算法研究和商业应用都相当成熟的技术,人脸识别近几年火热异常。但由于其技术门槛较高,一些新入门的开发者往往对人脸识别存在很多认知误区,如简单地认为识别率越高,算法越好;可检测的关键点越多,识别比对效果越出色……接下来笔者就以自身使用虹软视觉开放平台免费离线SDK ArcFace3.0做开发的经历来为大家讲讲,要如何避开这些误区。
这里先简单介绍一下ArcFace3.0,该SDK对人脸识别、活体检测、年龄检测、性别检测等核心算法模型进行了全面升级,其算法鲁棒性大幅提升,接入门槛显著降低,可同时支持Windows、iOS、Android(包含Android10)、Linux,性能与开发效率也有了整体提升,同样秉承了开放平台免费、离线的核心,进而成为了广大开发者落地AI应用的利器。
常见误区一:“人脸检测”就是“人脸识别”?
事实上,“人脸检测”只是人脸识别完整流程中的一个环节。在用摄像头采集含有人脸的图像或视频流后,首先就需要用人脸检测技术自动检测、提取当中的人脸,随后才能进入人脸图像预处理及最核心的人脸特征提取环节。
但在实际商业化落地中,人脸检测也可独立于人脸识别进行使用。譬如泸州云龙机场就布置了智能零售服务机器人,可以通过人脸检测功能自动寻找顾客并提供服务。其智能零售服务机器人就是采用了虹软视觉开放平台的人脸识别算法。
虹软推出的ArcFace3.0 SDK囊括了人脸检测、性别检测、年龄检测等技术,结合使用可应用于商业迎宾机器人、自动广告机等产品。
常见误区二:人脸识别的准确率越高越好吗?
理想状态下,“人脸识别准确率”当然越高越好,但算法在产品化使用时会受到逆光、暗光、强光、识别角度等诸多因素的影响。相同算法,在实验室环境中与不同的实际应用环境中,所表现出的识别准确率都存在一定差异。因此,脱离使用场景单纯考量算法的识别准确率参考价值不大。
业界更多会采用“认假率(FAR,又称误识率,把某人误识为其他人)”和“拒真率(FRR拒真率,本人注册在底库中,但比对相似度达到不预定的值)”,来作为评判算法的依据。另外还有识别速度、活体攻击成功率、人脸检测成功率等维度,也可作为评判算法优劣的参考依据。
尽管FAR和FRR都越低越好,但两个指标是一个跷跷板,一个指标的降低会意味着另一个指标会升高,所以需要实现两者间的平衡。
人脸识别算法一般会设定一个阈值作为评判通过与否的标准,该阈值一般是用分数或者百分比来衡量。当人脸比对的相似度值大于此阈值时,则比对通过,否则比对失败。每个阈值都可以统计对应的FAR/FRR,不同阈值的FAR/FRR值可绘成ROC曲线(Receiver Operating Curve),我们可以通过ROC曲线选定一个合理的阈值点。
常见误区三:人脸关键点越多,人脸比对效果越好?
人脸关键点技术在人脸识别的一系列环节中,确实有所应用。但它并不是使用在最核心的人脸比对中,而是在前置的人脸图像预处理环节中。因此,确保人脸五官基础关键点数量及准确性即可,无需一味追求过多关键点的数量。
当前主流的人脸识别算法,在进行最核心的人脸比对时,主要依靠人脸特征值的比对。所谓特征值,即面部特征所组成的信息集。我们辨别一个人的特征,可能会记住他是双眼皮、黑眼睛、蓝色头发、塌鼻梁……但人工智能算法可以辨别和记住的面部特征会比肉眼所能观察到的多很多。
人脸识别算法通过深度学习,利用卷积神经网络对海量人脸图片进行学习,借助输入图像,提取出对区分不同人脸的特征向量,以替代人工设计的特征。每张人脸在算法中都有一组对应的特征值,这也是进行人脸比对的依据。同一人的不同照片提取出的特征值,在特征空间里距离很近,不同人的脸在特征空间里相距较远。
虽然人脸关键点不会直接作用于人脸比对,但在人脸图像预处理环节,依旧有重要作用。事实上,通过人脸检测提取到人脸图像质量参差不齐,角度各异。而在虹软ArcFace3.0算法中,利用人脸关键点技术可准确定位出人脸五官位置,使用仿射变换将人脸统一“摆正”,尽量消除姿势不同带来的误差,为算法准确提取人脸特征值提供保障。
常见误区四:用照片或者视频能否通过人脸识别?
在成熟的人脸识别应用中,都会加入活体检测技术。所谓活体检测,即验证用户是否为真实活体本人在操作,可有效抵御照片、视频等常见的攻击手段,是金融、政务等无人值守应用中几乎是标配。
在交互方式上,活体检测可分为静默式和配合式,配合式需要结合摇头、眨眼、唇语等方式配合,静默式则不需要用户配合动作,相比配合式算法层面要求更高,体验更好。
目前市场上主流的而在静默式活体检测中,同样以上文提及的虹软视觉开放平台为例,该平台已经免费开放了RGB单目活体检测、IR活体检测两种算法,并在最新推出的ArcFace3.0中进行了模型更新,全面提升了算法鲁棒性。其中的RGB单目活体采用普通RGB摄像头即可,通过分析采集摩尔纹、成像畸形、反射率等人像破绽,从而获得活体检测所需要的识别信息,多维度的识别依据保证了识别的准确性。而IR活体检测,则是在此基础上,充分利用了红外成像中屏幕类无法成像的原理,进一步加强了电子屏的攻击防范。
常见误区五:大面积遮挡下还能进行人脸识别吗?
在人脸识别领域中,大面积人脸遮挡一直是公认的识别难题,难点主要体现在:
第一,人脸识别算法主要依据人脸面部特征进行身份判定,脸部大量遮挡时,算法无法准确检测人脸位置、定位五官关键点,大大降低了识别效果。
第二,人脸识别算法使用的深度学习技术依赖海量的训练数据,短期内难以收集到大量面部遮挡的照片,并进行人工标注;
第三,人脸识别算法包含多重模块,面部遮挡影响的不仅仅是人脸比对模块,还会影响到人脸检测、跟踪等多个模块,对整个系统带来很大的干扰影响。
能否在大面积遮挡的条件下进行人脸识别,对算法要求比较高。近段时间,虹软视觉开放平台针对个人防护中所造成的人脸大面积遮挡问题,进行了算法模型针对性升级,提升人脸可见区域权重,在局部特征增强方面设计了相应策略,如加强了对眼睛、眉毛等重点区域的识别,大面积遮挡下的人脸识别准确率达99.5%以上。
对于很多刚进入人脸识别领域的开发者而言,很多算法细节都需要亲自上手感受过,才能明白个中精微之处。建议新手开发者可以尝试虹软视觉开放平台免费开放的ArcFace3.0 SDK,下载即可使用,新版本对人脸识别、活体检测、年龄检测、性别检测等核心算法模型进行全面升级,大幅提升算法鲁棒性,显著降低接入门槛,同时支持Windows、iOS、Android(包含Android10)、Linux,在性能和开发效率上进行了整体提升,还可以离线使用,对开发者来说非常实用。
实际使用中,开发者往往会提出一系列细节问题。为帮助开发者快速上手,前段时间虹软工程师团队推出了一系列课程,以技术解析和专项答疑等形式帮助开发者解决难题。前后几期课程分别讲解了安卓端AI应用开发技巧,如何快速接入Windows版本的ArcFace 3.0 SDK,还有Java服务端开发技巧,以及对常见问题的答疑,建议感兴趣的开发者朋友可以登陆虹软开放平台官网观看学习。
(免责声明:本网站内容主要来自原创、合作伙伴供稿和第三方自媒体作者投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
任何单位或个人认为本网站中的网页或链接内容可能涉嫌侵犯其知识产权或存在不实内容时,应及时向本网站提出书面权利通知或不实情况说明,并提供身份证明、权属证明及详细侵权或不实情况证明。本网站在收到上述法律文件后,将会依法尽快联系相关文章源头核实,沟通删除相关内容或断开相关链接。 )