设计原则、测试指标……系统梳理人脸算法测试的硬核技巧

企业动态 算法
虹软视觉开放平台除提供免费、离线的人脸识别等算法外,也致力于打造系统化的开发者培训体系,为全行业输送高质量人才

   对视觉AI领域的开发者而言,选到一款合适算法,堪称项目成功了一半:算法与项目需求匹配,可以显著提升开发效率、减少后期磨合调试,快速实现产品落地,

  然而什么样的算法才叫“合适”?优秀的算法模型需要投入大量且全面的数据用以训练,同样,在测试算法时,开发者需要结合实际应用场景,先设计算法测试集,再用充足的数据进行测试,这才能得出算法是否适合项目的准确评判。

  虹软视觉开放平台除提供免费、离线的人脸识别等算法外,也致力于打造系统化的开发者培训体系,为全行业输送高质量人才,官网最近上线了“从零学习人脸识别“之《人脸识别算法测试》培训课程,从一线实战角度系统阐述了算法测试的要点。

  【算法测试集设计原则】

  无论是算法训练,还是针对应用场景进行测试,都需要大量场景数据的支撑。正如虹软视觉开放平台的ArcFace人脸识别SDK,在算法研发时就考虑了楼宇、工地、社区、校园和景区等一系列场景的共性及个性,并进行针对训练,因此在百余个垂直行业的细分领域中得到了普遍应用。

  同样,设计算法测试集的第一步是分析具体应用场景,再根据场景特点抽象出场景属性。譬如楼宇、工地、社区、校园和景区等常见应有场景,这些场景需要关注的属性就各不相同。

  

 

  当算法应用在工地上,我们需要考虑算法在室外顶棚环境下的表现、IPC设备高度对识别效果的影响、排队及多人脸状况下算法识别速度,同时工地场景下识别目标通常为戴安全帽的成年人,也就需要格外这类群体的识别效果。

  当应用场景在学校时,就需要主要考虑快速成长过程中儿童和青少年的识别效果;部署场景在社区和景区时,就需要考虑各个年龄段的识别效果……所有场景属性都需要因地制宜,结合实际情况来总结,但总体遵循内部因素和外部因素两大原则:

  内因包括人脸姿态、妆容、身高、性别、表情、年龄、人种等,外因则包括室内/室外、光线方向、攻击道具、妆容道具、光照强度、设备高度、背景、遮挡等。

  

 

  此外,测试素材集需要同时具备正样本、负样本,所谓正样本是指与真值对应的目标类别,负样本则是与真值不对应的其他所有目标类别,这样才能比对判断算法是否进行正确识别。

  

 

  以“智慧楼宇门禁场景”为例,我们就需要全面模拟目标场景的应用环境,考虑场景、属性、设计和规模四大要素:场景上需要囊括室内/室外、楼宇/楼层/办公室等常见环境;属性上对外模拟采集环境须涵盖全属性,对内需要针对性采集人员选取须涵盖全属性;在素材设计上要模拟模拟真实用户的行为动作,譬如快走、慢走、跑步,以及戴帽子、眼镜或首饰引起的遮挡;素材规模上则需要根据测试需求决定,譬如实际场景常为暗光环境,就需要多采集暗光素材,同时测试集整体大小也要足够完成算法指标的评定。

  测试素材的采集同样有严格要求:首先,我们必须选取目标设备进行采集,这样才不会因为硬件设备的变化导致测试结果有偏差;其次,注册照需要在正常光环境下采集,即光线在面部反光均匀、没有明显的阴影、反光现象,光线强度没有明显的分化现象环境,识别照则需要模拟实际应用场景下的抓拍照;再次,素材要进行清洗,测试集要求是无噪点且准确的;最后,需要标记每张素材的属性,包括内部属性和外部属性。

  【人脸识别算法评测方法】

  在理想状态下,人脸识别准确率越高越好,但算法在产品化时会受到光线、遮挡、图片质量、遮挡等外部因素,以及人脸姿态、年龄、性别、人种和表情等内部因素的综合影响。因此,评价一款算法是否适用于产品,需要结合实际场景并进行测试后才能做出评价。

  多数情况下,我们以基于FAR(错误接受率,又称误识率,即把某人误识为其他人的概率)和FRR(错误拒绝率率,即本人注册在底库中,但比对相似度达到不预定的值)的DET曲线作为评判参考。

  理想状况下,FAR和FRR都越低越好,但两个指标是一个跷跷板,一个指标的降低通常意味着另一个指标会升高,所以需要实现两者间的平衡。一般认为在FAR达到市场正常水准时,FRR越低,该人脸识别算法性能就越好。

  在实际测试时,开发者需要根据对应项目建立相应的测试集,采集场景需要贴近实际使用场景;尽可能涵盖识别目标的全属性,包括性别、肤色、发型等因素;属性权重按照评测偏重点分配;测试集本身也需要有足够的容量,来保证测试结果可信。

  另外,还有一些常见的评测常见指标,在评价人脸检测算法好坏时,我们会考虑以下四个指标,其他条件不变时,查全率越高越好,漏检率和误检率越低越好,IOU则是重合面积越大效果越好,但为了提高效率,超过设定阈值后可直接合并,视为同一个人脸框:

  查全率=正确检测的人脸数/标注的总人脸数

  漏检率=1-正确检测的人脸数/标注的总人脸数

  误检率=错误检测的人脸数/标注的总人脸数

  IOU=检测出来的人脸框A/实际的人脸框B

  在评价活体检测算法时,我们则考虑真人误检率和假体误检率,其他条件不变时,这两者都是越低越好:

  真人误检率 = 错误判断为真人数量/活体检测总次数

  假体误检率 = 错误判断为假体数量/活体检测总次数

  了解相关测试原则和方法之后,很多开发者仍然难以顺利进行算法选型,这往往是受限于实际条件,譬如缺乏专门的采集场地、采集人员,或者无法采集大规模测试集。

  需要快速进行算法评测时,可以因地制宜,创造简易条件,譬如就地选取尽可能贴近使用场景的场地,省去场地租金、搭建成本,同时邀请公司员工充当采集人员。尽管从简,测试集规模原则上仍然需要覆盖全属性。

  【算法评测需软硬一体】

  前文提到,采集素材时最好选用目标设备,合适硬件、摄像模组采集有利于优化素材集。实际上,在项目开发的过程中,算法与硬件的磨合经常耗时日久,这往往是阻碍产品落地的重要因素。

  为此,虹软开放平台则提供配套的软硬件资源对接平台——产业链市场,上架了丰富的摄像头模组、开发板、整机、行业解决方案供需求方选择。同时,所有上线产品都经过虹软视觉开发平台的认证与调优,实现软硬件的整合优化,确保算法运行高效流畅,大幅缩短产品落地时间。

  想要完整学习《人脸识别算法测试》培训课程的开发者,请搜索“从零学习人脸识别“或登陆虹软视觉开放平台官网公开课页面浏览。

责任编辑:张诚 来源: 互联网
相关推荐

2017-01-20 09:32:19

AB测试

2018-01-09 18:33:24

软件开发测试软件测试

2023-09-13 14:47:34

性能测试开发

2024-11-05 16:45:02

2023-09-28 21:55:12

AndroidApp

2010-09-08 11:38:27

2009-07-15 18:16:47

性能测试结果

2022-06-16 21:01:32

人脸识别人工智能生物识别

2012-12-24 22:58:07

测试网络测试

2009-12-14 18:23:38

Ruby DSL测试

2022-01-19 17:48:57

测试用例开发

2024-02-19 08:12:15

DIKW 模型指标系统数据仓库

2013-04-08 09:28:09

测试

2022-09-26 14:07:56

设计思维研发管理测试

2021-09-27 13:02:05

Python技巧测试

2009-10-14 08:47:53

综合布线系统测试

2024-10-22 15:14:16

2021-06-30 06:28:07

人脸识别AI人工智能

2019-07-03 10:21:50

人工智能数据库算法

2010-03-11 14:06:22

局域网交换机
点赞
收藏

51CTO技术栈公众号