• 14
  • 15
分享
  • 一“脸”走天下:人脸识别的测试故事——软件测试圈
  • 曼倩诙谐 2021-03-09 09:37:05 字数 2254 阅读 1213 收藏 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软件测试网原创

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 测试左移与右移大家熟悉的测试工作(也是传统的瀑布式),是接到项目后参与需求评审,然后根据需求文档写写用例和准备脚本,等开发提测之后正式开始测试、提bug、回归,测试通过后就结束了,项目交给运维上线,之后投入下一个项目继续重复这样的流程。这样的流程看似没什么问题,但缺点是:测试过程是在一定时间间隔内发生的,测试人员必须等待产品完全构建才能找到错误和故障。不可否认,花费的时间超过了可以商定的时间,等待代码成为测试人员的瓶颈;测试同学非常被动:当需求质量、开发质量差的时候,你只能被动接受,结果就是你会进行漫长痛苦的测试过程以及因为质量差导致上线延期;Bug的成本在后期是非常高的,需要花费很多精力和时...
            0 0 3085
            分享
          • 新浪科技讯北京时间10月24日早间消息,据报道,美国苹果旗舰店已经开始销售能用Apple Watch或iPhone解锁的外门锁。这款售价329美元的Level Lock+门锁是苹果旗舰店销售的首款支持Home Key的门锁。Level Lock+由Level Home公司出品。在大门上安装这款产品后,用户只需使用苹果Home Key功能轻触便可打开或关闭门锁。Home Key是一款使用NFC和苹果软件中的安全令牌实现开锁和解锁的功能。用户可以通过短信把钥匙发送给朋友,也可以直接通过苹果设备自动开门。对苹果来说,这是2021年宣布的一项备受期待的功能取得的重要进展。Home Key表明苹果仍在推...
            0 0 930
            分享
          • 1、手工测试与自动化测试其实并不是对立的并不是所有的功能自动化测试都可以实现,它的效率也不高,但是可以完成一部分场景的功能回归。自动化测试发展了这么多年,也没有把手工测试给取代。2、手工测试的特点手工测试能通过人为的逻辑判断效验当前的步骤是否正确,同时用例的执行具有一定步骤跳跃性,能够清楚知道逻辑,细致定位问题。如果修改bug所需时间稍长,那么想将手工测试应用于回归测试将变得异常困难。这是因为需要测试的测试用例太多,所以需要引入自动化测试。3、自动化测试的特点执行的对象是脚本,能通过人为的逻辑判断效验当前的步骤是否正确实现,用例步骤之间关联性强,不像手工测试用例那么跳跃。另外也是用来保证产品主...
            0 0 857
            分享
          •   本次上线的项目属于OA系统中的一个子模块。OA系统,百度百科上解释,Office Automation(简称OA),即办公自动化,是将计算机、通信等现代化技术运用到传统办公方式,进而形成的一种新型办公方式。办公自动化利用现代化设备和信息化技术,代替办公人员传统的部分手动或重复性业务活动,优质而高效地处理办公事务和业务信息,实现对信息资源的高效利用,进而达到提高生产率、辅助决策的目的,最大限度地提高工作效率和质量、改善工作环境。笔者所在公司的OA项目提供已授权的同事浏览各家公司首页、申请单据、审批单据等功能。本次谈及的项目模块即包含给公司首页浏览、公司专题配置以及模块编码功能。  产品提出的...
            0 0 476
            分享
          • 什么是bug,英文直译过来叫虫,是指程序运行过程中出现的一些问题。任何人都有自己的问题,程序也是,更何况程序是开发人员写的。日常生活中直接冲到别人面前去嚷嚷:“喂,你这里有问题!”你觉得别人会愿意搭理你吗?而如果你有礼貌一点:“你好,我发现你这块有点不妥,换个方式应该会更好”效果会大不相同。同理,测试人员的日常工作中,最主要的就是报bug,bug提交的好,能够减少沟通成本,也会尽快提高软件质量。笔者特地总结了关于报bug的一些注意事项,分享给大家,遵守这些礼仪,可以让我们汇报bug的效果锦上添花。一、注明前置条件先来看下禅道上面默认的bug模板是什么样子的:步骤:是怎么操作出这个bug的,要尽...
            0 1 2917
            分享
      • 51testing软件测试圈微信