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

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 要说测试人员职业生涯当中最在意也是最绕不开的一个终极话题就是如何和开发人员相处。相信很多测试人员在面试的时候也遇到过这个问题:你是如何 和开发人员相(si)处(bi)的呢?要说起测试人员和开发人员的博弈,就不得不提到一个著名的思维测试-囚徒困境。在这场著名的思维试验中,两个罪犯即两个同案犯被逮捕了,他们被分别关到两个牢房里接受审讯。他们都被告知:"如果你保持沉默,你会被判处一年徒刑;如果你出卖同伴,你会获得自由;但如果你的同伴出卖了你,你就会蹲两年大狱。"出于竞争性的私利"两个囚徒实际上都有动力去出卖对方。然而,就如同下图所显示的,如果两个囚徒互相出卖,则他们获得...
            1 0 2900
            分享
          •   随着金三银四的来临,经济的复苏,各行各业也在复苏,相信无论是即将毕业的大学生,还是想换工作的小伙伴,想必都蠢蠢欲动。  但想找到一份适合自己的工作,实际上没有想像中的那么简单。  想做或是喜欢的工作  你要明白自己想要从事或是喜欢做的行业是什么。很多即将毕业或是已经好多年的小伙伴,一直不知道自己想要从事什么样的工作。  面包前面,随便选择了一份自己也不知道是什么的工作,等到醒悟过来的时候,又觉得自己没有能力改行,就这样,在一份自己没有兴趣的工作中浑浑噩噩好多年,浪费了好多时间。虽说面包很重要,为了目前的面包,可以做暂时的妥协,但自己也要清楚自己在多长时间后可以做自己喜欢的事情。  一份自己...
            0 0 428
            分享
          • UI自动化是自动化测试中不可分割的一部分,是黑盒测试的一种重要手段。在UI自动化测试过程中,我们不可避免会遇到各种各样的问题,现将自己在测试过程中遇到的问题进行汇总,希望可以为大家提供帮助。1、启动浏览器报错报错信息:Exception in thread "main" org.openqa.selenium.WebDriverException: unknown error: call function result missing 'value'...
            0 2 2186
            分享
          •   秘鲁媒体 andina 报道称,该国外交部长哈维尔?冈萨雷斯-奥拉埃切亚(Javier González-Olaechea)正式访问中国,他表示中国政府和企业都提供了更多的技术合作。  秘鲁外交部长称在参观华为公司总部和比亚迪汽车厂时所见到的景象令其印象深刻。他表示中国汽车制造商比亚迪正考虑在秘鲁建装配厂,就像在拉丁美洲其他两个国家(墨西哥、巴西)一样。▲ 巴西马瑙斯比亚迪电池工厂  据IT之家此前报道,比亚迪巴西生产基地综合体已于 3 月正式开工,一期年产能预计为 15 万辆;比亚迪墨西哥总经理在 6 月称当地工厂选址已进入最后谈判阶段,将创造约 10000 个工作岗位。▲ 比亚迪在墨西...
            0 0 249
            分享
          •   应用程序或网站的功能测试是SDLC(软件开发生命周期)的最重要阶段之一。开发人员、测试人员、项目经理、运营人员,甚至管理人员都需要多多少少参与到整个项目的功能测试。测试工作由测试部门分配,测试部门提供服务的稳定性至关重要。在建立多部分协作的工作文化的过程中,作为测试人员应当首先意识到,不仅可以对产品进行功能测试,还可以为公司的产品做出更多贡献。  在应用程序交付给用户面前之前,找出BUG并修复它们至关重要。软件的成功取决于用户的满意度,如果应用程序的界面中充斥着错误和BUG,不仅难以赢得新用户还会流失老用户。  大多数测试工程师对功能测试如何给企业创造价值都比较清楚也都很进行了很多的尝试和...
            1 1 2007
            分享
      • 51testing软件测试圈微信