阿里巴巴园区人脸门禁每天承载数以万计的小二们园区内的频繁通行,如何让通行如丝般顺滑,本文将一一道来~
背景介绍
园区人脸门禁自18年上线以来,已经部署了多个园区,每天承载数以万计的小二们园区内的频繁通行;然而随着庞大的阿里巴巴经济体的快速发展以及我们的典座会务平台的产品化,我们的用户数量和应用场景在不断增加,因此用户体验变得越来越重要,而目前业务中影响用户体验的因素主要有:
通过率不稳定,session级别通过率达不到95%;
通行速度不高,目前(1秒左右)还不能达到“无感通行”;
针对上述的业务痛点,除了通过技术架构升级来解决业务痛点之外,作为质量保障人员,我们需要考虑如何从质量保障的角度出发,找出我们可以发力的点,来助力业务先赢。
质量保障挑战
基于上述的业务痛点,我们做一下拆分来找出事件背后的详细原因:
通过率不稳定
同一个人在不同园区或者同个园区不同楼宇会出现不同的通行结果,主要原因是通行结果受设备部署环境和设备类型影响
人脸算法识别准确率不高,需要算法持续不断的迭代优化升级
通行速度不高
需要梳理通行全链路,找出影响通行效率的模块或者调用关系,来针对性的进行优化链路优化
架构升级,改造目前的云端识别的通行方式
2.1 问题聚焦
上述对业务痛点的背后原因做了分析,这些原因看似都是需要开发需要去做的事情,而作为质量保障人员我们需要在这个过程中输出什么样的能力进行保障呢?是否我们还是沿用的传统质量保障模式,开发完成需求,验证需求就可以了,这个答案当然是否定的,我们需要从质量保障的角度出发去定义出业务中的问题和挑战,下面我们来定义一下质量保障的问题。
2.2 核心挑战
1.硬件安装环境复杂(有车库、室外、强逆光的室内等),而这些种类和数量繁多的硬件,在复杂环境中的安装环境部署方式也会严重影响我们的通行结果,因此需要有统一标准化的硬件安装部署验收方案。
2.硬件数量和型号多,如何保障这些硬件在通行过程的稳定性,确保不会出现硬件故障或者固件兼容性等问题。
3.标准化的人脸算法测评方法,针对人脸算法优化升级或者算法类型选型,通过标注丰富的样本集,使用统一测评方法,提供标准化的测评结果。
4.有通行全链路监控分析的能力,对于线上的实时质量能够全局把控,同时快速发现分析用户问题,提升用户通行体验。
人脸算法测评
根据上述的挑战,我们整体的质量保障策略如下:
通过构建丰富的人脸样本集和建立标准化的人脸算法测评方法,能够针对算法的不断调优升级而快速准确的给出测评结果、识别速度以及合适的阈值
构建样本集库
建立标准化算法测评方法
结构化测评结果
设计算法测评通用衡量指标
沉淀结果集
数据分析
3.1 人脸算法测评平台技术方案
3.2 人脸测评指标
(1)通过率:在一定阈值下,算法正确匹配到的人脸数和人脸底库总数的比值。通过率越高,表明人脸算法效果越好。
(2)不通过率:低于某一特定阈值,算法正确匹配到的人脸数和人脸底库总数的比值。不通过率越高,表明算法阈值设置不恰当,需要进行调整。
在评价一个算法的检测性能时,要同时考虑上述的两个指标,这两个指标通常用ROC曲线图的形式给出。
(3)误识率:在一定阈值下,算法错误匹配到的人脸数与人脸底库总数的比值。误识率越低,表明算法的安全性越高。
(4)漏识率:算法没有匹配到的人脸数和人脸底库总数的比值。漏识率越高,表明算法识别效果越差。
3.3 样本库建设
通过构建丰富的样本集进行算法测评,使得算法测评结果不再受采集的样本集的空间位置影响(目前出现同一个人在不同园区或楼宇出现不同的识别效果),能够降低算法测评结果与线上的实际误差;通过线上打标的方式进行样本库的建设,线上打标通过设置统一的特征值模型,使得样本集更加标准、更加丰富,同时样本可以进行统一化管理便于样本进行样本更新等。
主要技术方案:
3.4 离线人脸算法测评
离线人脸算法测评主要是针对算法升级进行的算法测评,是一种纯算法的测评方法,1. 通过不断扩大底库大小,验证算法的稳定性,确保在一定大小的底库范围内,算法能力始终可接受 2. 特殊人群算法测评,例如人脸样本数较少的外国人脸;运用离线算法测评的好处是,消除业务场景、以及设备安装位置、环境等对算法的影响。详细的流程如下:
3.4.1 样本集打标
样本集打标主要是将同一个人的人脸打标成同一个PID,同时人脸不同的照片要标识成唯一的UUID,例如下图中,PID为Gerry_Adams, 这个人的不同照片UUID为Gerry_Adams_0001.jpg, Gerry_Adams_0002.jpg......,打标完成后将人脸上传至OSS进行统一存储管理。
3.4.2 样本注册&识别
样本集打标完成后,选择编号为0001的照片进行人脸底库注册,注册完成以后形成0001.jpg 的人脸底库,且注册后每张底库会产生一个PersonID,用来标识这个人的唯一身份特征
样本注册完成后开始对人脸进行识别,选择打标样本集中非0001结尾的图片进行识别,调用识别接口进行识别,主要关注这些编号非0001的照片能否匹配到正确的PID+编号为0001的照片。
3.4.3 结果统计
识别结果统计,统计识别结果需要设计出标准化数据结构,目的是为了输出可靠的统计结果,按照上面的人脸测评指标,我们进行算法结果统计
1、通过率:在一定阈值(offline_match_score )下,算法正确匹配到的人脸数(样本pid==底库offline_match_pid)和人脸底库总数PG的比值
2、不通过率:低于特定阈值时,算法正确匹配到的人脸数(样本pid==底库offline_match_pid)和人脸底库总数PG的比值
3、误识率:在一定阈值下,算法错误匹配到的人脸数与人脸底库总数的比值(样本pid!=底库offline_match_pid)和人脸底库总数PG的比值
4、漏识率:算法没有匹配到的人脸数和人脸底库总数的比值
3.4 在线人脸算法测评
在线人脸算法测评主要针对算法策略优化后,对算法策略是否生效进行验证,确切的说是验证算法工程化的结果,需要开发同学将算法进行工程化的封装,封装后对外提供可调用的注册和识别接口。
这种测评方法与纯算法测评的区别是,测试过程不再需要单独进行纯算法的部署,只需要在调用人脸注册接口生成特征文件后,针对该特征文件生成特定场景Key,接着通过在调用识别接口中配置生成的场景key来进行测评,与离线测评相比,在测评过程中最主要的区别在于多了场景key的生成,因此在线测评不再单独进行详细的测试步骤描述。
3.4.1 详细技术方案
3.4.2 测评实际效果
3.5 阶段性结果
人脸算法测评平台上线以后,主要解决了下面的问题:1. 丰富的样本库(打标样本按照统一的特征值,进行在线样本打标),目前打标样本集数量(正确集、误识率、攻击集)在4w+以上 2.人脸打标时间大幅提升(1000张 日/人下降到1000张 小时/人),同时支持接入多场景(门禁、安防、会议室等)的人脸打标 3.算法测评周期降低 4.测评不仅能够给出算法的实际结果,同时能够给出算法的调优方向,降低算法人员的调优周期
关注「阿里巴巴技术质量」阅读更多