• 14
  • 15
分享
  • 一“脸”走天下:人脸识别的测试故事——软件测试圈
  • 曼倩诙谐 2021-03-09 09:37:05 字数 2254 阅读 1194 收藏 15

  刷脸支付,刷脸进站,刷脸打卡,一“脸”走天下的时代悄然来临。人脸识别的技术让人们的生活告别繁琐,如何验证人脸识别技术的功能正确性、安全性、识别率等关键问题,在测试领域也逐渐成为至关重要的课题。本文将结合实际工作中的探索与总结,阐述如何针对人脸识别技术开展测试。

  一、什么是人脸识别?

  人脸识别是基于人的脸部特征信息进行身份识别的一种生物识别技术,用摄像机或摄像头采集含有人脸的图像或视频流,并自动在图像中检测和跟踪人脸,进而对检测到的人脸进行脸部识别的一系列相关技术。人脸识别技术分为人脸检测,人脸跟踪,人脸比对三个部分。通过人脸检测可以在复杂的背景和场景下判断是否存在活体面像,并将其分离出来并实时对被检测到的面貌进行动态目标跟踪,将采样到的面像与库存的面像依次进行比对,寻找出最佳匹配对象。这样我们就能真正的实现一“脸”走天下。

  二、人脸识别的应用场景

  落实到具体业务场景中,人脸识别技术有多种实现形式,例如企业、住宅的安全和管理,电子护照及身份证通过生物特征证件进行识别和管理,公安、司法、刑侦利用人脸识别系统追踪逃犯,银行的自动提款机,计算机的登录等等。总的来说,人脸识别多作为用户的身份验证,可分为人脸1:1识别、人脸1:n识别等。以人脸1:1识别为例,人脸1:1识别主要是判断两张照片上的人是否是同一人。人脸1:1识别模型返回一个判断分数,若分数越高,说明是同一个人的可能性越大,实际使用时,设定一个阈值M,高于阈值M的判断为同一人,通过1:1识别。同理,人脸1:n识别即1个人脸在照片库中进行n次人脸1:1识别,最终匹配人脸库中得分最高的照片。

1-1.jpg

  三、人脸识别技术测试方法

  1.测试通过标准

  以某掌银的刷脸转账功能为例,我们会对接口调用连通性、报文格式、参数非法校验、返回码正误等等进行测试,而由于人脸识别运用了生物识别技术和人工智能的算法与模型,海量数据训练出的模型会因为光线的明暗、背景的干扰、以及发型、眼镜等装饰的变化,而影响到转账的成功度,因此还需测试这些模型的识别结果准确率。(虽然模型训练完美,但目前却无法保证100%的正确率,因此一般来说就是各业务场景使用人员自行决定准确率通过准则,业界的通用标准是人脸识别准确率达到99%以上)所以当人脸识别模型的接口可以成功调用,并且模型的识别结果准确率达到通过准则时,视为测试通过。

1-2.jpg

  2.测试流程

  下图展示了测试模型识别效果的主要测试流程。首先需要准备一定量的测试数据,分为两个部分,一部分是测试素材集,如成对的人脸照片;另一部分是根据所测模型手工为测试素材打上的标签集,即人脸照片的对应关系。数据准备好之后,即可开始测试,为每一个测试素材构造一条请求所测模型服务的报文,发送至“人脸识别服务”,将“人脸识别服务”返回报文的结果和对应标签进行对比,遍历完所有的测试数据后,根据对比结果集计算准确率、召回率、误识率等模型效果评估指标。不同的模型和业务场景的关注点不同,使用的模型效果评估指标也有所差异,人脸1:1识别模型采用误识率和通过率。为了提高测试效率,通常通过编写测试脚本实现批量自动测试。

1-3.jpg

  在测试过程中测试数据至关重要,一方面数据量需合适,数据量太少容易存在偶然性,一个测试样本的识别结果对模型评估指标的值会有较大的影响。另一方面测试数据应尽量贴合实际应用场景,包含正负样例。为了贴近应用场景,人脸1:1识别的测试数据可以准备N张生活照集合(A)和N张对应的公安网小图集合(B),在选择生活照时考虑同一个人差别较大图片、不同年龄的图片以及戴帽子、戴眼镜等存在干扰的图片。人为标注了生活照和公安网小图的一一对应关系(即实际为同一人)。

1-4.jpg

  任意从A集合和B集合各抽取一张图片,构造一条人脸1:1识别的请求报文,总共可以构造出N*N条请求报文,其中有N条请求中两张图片为同一人,称为正样例,其余N*(N-1)条请求中图片为不同人,称为负样例。使用构造的N*N条报文请求“人脸识别服务”,将返回结果与人工标注就行对比。“误识”是指人脸1:1识别模型对两张不同人的照片请求返回了较高的分数,超过了阈值M,即将负样例判断为同一人;“误识率”是指“误识”的负样例占所有负样例的百分比。“通过”是指人脸1:1识别模型对同一人的两张图片的请求返回了较高的分数,即将正样例判断为同一人;“通过率”是指“通过”的正样例占所有正样例的百分比。我们希望人脸1:1识别模型的“误识率”为0,“通过率”为100%,而“误识率”和“通过率”与阈值M密不可分,若阈值M设定的低,极端情况设置为0,则不同人的照片可以轻易的通过模型识别判断为同一人;阈值M设定的越高,“误识”和“通过”的可能性越小,极端情况M设置为100,则虽然可以有效阻挡不同人照片通过识别,但也出现同一人的照片无法通过识别的情况,影响用户体验。因此在设置阈值M时存在二者的权衡。由于在测试时,阈值M还未确定,同时考虑到人脸1:1识别主要用于身份校验,对“误识”的容忍度更低,可以先确定“误识率”,再计算对应阈值M,最后计算通过率,并以通过率作为模型效果评价指标的方式。测试评价指标的计算通常通过自动化方式实现,编写测试脚本实现从构造请求报文、模拟发送、接收解析、结果记录、评价指标计算的全流程。

1-5.jpg

  以上是人脸识别技术具体的测试方法,而实际针对不同的应用场景及模型特点,还需要结合实际考虑测试数据,模型评估指标的选择。


作者:潘琦 雷陈芳   

来源:51Testing软件测试网原创

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 最近在写一些脚本,为了保持连续性,就在家也抽空赶进度,所以碰到了代码同步的问题,目前想到的方法有三个: 使用云盘,这个拿来即用,但是因为云盘还存放了其他一些东西,总是实时同步不太妥当;使用 SVN,传统的代码托管工具,一直在用;使用 Git,最新的分布式代码托管工具,据说很强大。 最后决定使用 Git,主要是学习下最新的技术。下面是操作步骤,做记录的同时也给其他同学做个指引:先说下环境: 服务端: Ubuntu 16.04 x64客户端: Windows7 x64 服务端配置 先使用如下命令切到 root 权限进行操作:sudo bash 提示输入密码时,输入 root 密码即可。登录...
            1 1 3161
            分享
          •   随着互联网技术的飞速发展,业务的开展方式更加灵活,应用系统更加复杂,也因此面临着更多的安全性挑战。安全测试是在应用系统投产发布之前,验证应用系统的安全性并识别潜在安全缺陷的过程,目的是防范安全风险,满足保密性、完整性、可用性等要求。  日常测试过程中经常遇到开发同事来询问一些常见的配置型漏洞应该如何去修复,为了帮助开发同事快速识别并解决问题,通过总结项目的安全测试工作经验,笔者汇总、分析了应用系统的一些常见配置型漏洞并给出相应的修复建议,在这里给大家进行简单的分享。Cookie缺少HttpOnly属性漏洞描述  Cookie中的HttpOnly属性值规定了Cookie是否可以通过客户端脚本...
            1 1 4804
            分享
          • 本文实现一个WebDriver测试脚本,介绍WebDrive的常用命令、UI元素定位的策略以及在脚本中的使用,还有Get命令。你将学到:· 脚本创建· 代码走查· 测试执行· 定位Web元素· 定位符类型及其语法· 总结一、脚本创建脚本创建部分仍然使用之前创建的“Learning Selenium”项目和“gmail.com”作为被测试应用程序(AUT)。场景:启动浏览器,打开“Gmail.com”。验证页面标题并打印验证结果。输入用户名和密码。单击登录按钮。关闭web浏览器。步骤1:在“Learning Selenium”...
            1 2 3215
            分享
          • 前言:MySQL越学越多,你的头有越来越秃么?1、MySQL的复制原理以及流程基本原理流程,3个线程以及之间的关联;主:binlog线程——记录下所有改变了数据库数据的语句,放进master上的binlog中;从:io线程——在使用start slave 之后,负责从master上拉取 binlog 内容,放进 自己的relay log中;从:sql执行线程——执行relay log中的语句;2、MySQL中myisam与innodb的区别,至少5点问5点不同?1>.InnoDB支持事物,而MyISAM不支持事物2>.InnoDB支持行级锁,而MyISAM支持表级锁3>.In...
            0 0 1032
            分享
          • 读者提问:文件下载,用例怎么写 ?阿常回答:我们先给文件下载一个特定的场景:不支持批量下载,只能一个一个的下载。一、文件下载测试点一)基本功能1、支持当前页面下载,还是新窗口打开另存为。2、下载后比对文件,是否和上传时的文件完全一致。3、注意文件名称为空、含特殊字符及文件名称较长的文件,下载后的文件是否和上传时的一致。4、下载文件过程中断网,等网络恢复,看文件是否继续下载。二)文件存储1、文件上传到服务器之后,采用的是文件存储 NAS 还是对象存储 OSS。2、文件上传到服务器之后,是否有做容灾备份。三)安全问题1、文件上传到服务器之后,文件名是否做了加密。四)权限测试1、不具备访问...
            0 0 1267
            分享
      • 51testing软件测试圈微信