作者 | 阿里文娱技术专家墨贤

出品 | AI科技大本营(ID:rgznai100)

大麦的人脸闸机在2019年杭州马拉松上成功的完成了刷脸入场功能的首秀,相比传统的马拉松入场核验方案在入场体验和入场效率上都有了很大的提升,下面介绍一下大麦的人脸识别是如何支持马拉松赛事的。

马拉松赛事流程介绍

马拉松赛事的流程主要分三步:

第一步,参赛者到马拉松官方网站报名,报名成功后会通知选手;

第二步,报名成功的选手需携带身份证到官方指定的地点领取装备;

第三步,比赛当天携带号码簿验票入场进行比赛。

我们面临的挑战是:

1、如何在指定时间内完成参赛者的装备领取工作:既要保证快速领取不造成人员积压,又要保证装备不会领错;

2、 如何保证比赛当天在短时间内完成几万人的入场核验工作。

大麦人脸识别解决方案

在介绍大麦的人脸识别方案之前,首先介绍人脸比对的几个常用术语:

1比1:1比1是指用照片跟人进行比对,通过算法判定照片和人是否是同一个人,简单理解就是证明“你就是你”。

1比N:1比N是指在N个人的照片库里(底库)进行查找,通过算法判定这个人是否在这些照片里面,通俗来讲就是“我是谁”。

清楚了马拉松赛事的流程之后,下面介绍大麦是如何支持现场领取装备和比赛当天入场核验的,在我们的方案里面比赛当天的入场核验是压力最大,风险最高的,而且这个也是依赖前两步的。

选手入场比赛时不会携带手机和证件,那如何进行验票呢?

大麦传统做法:提前跟主办沟通,在号码簿中放置一个射频芯片,芯片号与号码簿上的号码一一对应,这样通过验票设备扫描到芯片后会查询到这个选手的参赛信息,包括照片(来源于第1步和第2步),为什么需要照片?只有拿到照片然后和本人进行比对才能确认是不是本人还是替跑,这就用到了人脸识别,也就是上面所说的1比1比对。

这个方案是可行的,但面临两个问题:

1、 号码簿是第三方公司负责的,经常会遇到号码簿里没有芯片或者芯片号跟号码簿上的号码不一致(实际发生率还比较高),这就会造成选手无法直接核验入场,需要人工处理;

2、 这种入场方案需要先核验芯片,再进行人脸比对,在马拉松赛事中有一些力不从心,因为几万名选手需要在短短的半个多小时完成入场,压力可想而知。

如何优化选手入场,既避免号码簿芯片的问题又能快速准确的核验?

这就用到人脸识别的1比N,我们提前拿到所有选手的照片,选手直接刷脸进行比对,快速核验入场。

这个优化的方案需要做到以下两点:

1、 安全的人脸比对算法,该进去的人放行通过,不该进去的人拒绝开闸;

2、 提前获取所有选手的照片,而且照片质量需要足够好,用作人脸比对的底库

人脸比对算法这块要求是比较严格的,马拉松赛事每年都有很多替跑的人,我们的人脸算法必须要能找出替跑者,而且大麦的验票场景像演唱会的门票动辄上千,是决不允许让无票的人入场,当然也要让买了票的人能够正常通过,这样的场景与刷脸支付场景比较像,因此我们使用了成熟的金融级别的人脸算法。

获取所有选手的照片的问题,我们是通过前面介绍的报名和领装备的环节解决的:

我们会要求选手在报名的时候提交一张本人的照片,但是这不能保证所有人都提交了质量足够好的照片,而且提交的照片是本人。这就需要在现场领取装备的时候解决,因为这影响到比赛时能否正常顺利入场。

下面介绍我们是如何在完成领取装备的同时获取到选手的照片:

我们都知道,入场验票时是需要票的,选手在使用身份证领装备的时候其实他的身份证就是一张票,选手使用大麦的闸机系统刷身份证后,系统会根据身份证号读取到选手的信息,然后会通过闸机的打印系统打印出一张小票,选手拿着小票到相应的窗口领取参赛装备。但是这样无法满足主办的要求,必须要求选手持本人身份证到现场领取装备,当然也无法满足我们自己的需求——获取到所有选手的照片。因此我们在选手刷身份证的时候对他进行了1比1比对,确认是本人后再去采集一张用户现场的照片,这就完成了身份确认和照片的获取。

在这个方案里,领取装备的这个流程其实是可以优化的,用户在第1步报名时提交的照片有很多是质量很好可以直接用的,没有必要到现场再进行一次采集,对于这部分用户我们有了他们的照片之后会引导他们直接通过1比N人脸刷脸比对入场打印小票进行领取装备,这个方案的优点是:

1、 直接刷脸,无需刷身份证+1比1比对+采集,让领取效率更高,避免现场排队

2、 解决了很多已上传人脸的用户忘带身份证或者身份证丢失导致的无法领取装备的问题

        

小结:我们通过报名的时候引导选手提交照片,通过现场引导让提交照片的选手直接刷脸领取装备,对于刷脸识别失败和未成功提交人脸的选手通过1比1进行本人确认并进行人脸采集,这样就确保了所有选手的照片都到了我们的人脸底库,也就使得我们在比赛当天可以让选手直接使用1比N比对直接刷脸入场。

保护用户隐私与数据安全

我们的人脸识别入场的方案是基于用户的照片,这就涉及到用户的隐私,我们会在马拉松报名的时候提前告知用户,获得用户的授权,我们需要做的更多的是如何保证用户照片的安全。下面介绍我们的方案:

闸机识别到用户后需要显示用户的照片,为了保护用户的照片不被泄露,我们对读取用户照片的接口做了授权判断,非授权设备无法获取照片数据,只有已授权的设备才能获取到照片数据,且是已经进行过加密处理的,保证了数据不会从端上泄露。

现场采集用户照片时,我们会将采集到的照片进行编码之后再进行一次加密操作,加密之后上传到服务端,上传成功之后会立即删掉本地的照片。在本场比赛结束之后服务器会自动将所有照片删掉。

通过以上操作,保证了用户的照片数据安全,也就保护了用户的隐私。

人脸闸机软件架构演进

讲完了我们的人脸识别方案,下面再介绍一下我们的软件架构是如何支撑我们的人脸识别入场:

我们的闸机采用的是安卓系统,开发闸机的人脸核验系统跟开发普通的安卓应用稍有不同,我们需要针对硬件进行适配:机芯(摆闸、辊闸),打印机,二维码模块,RFID模块,身份证模块等。

那整个闸机的软件架构很自然的就成下面的样子:

这样的方案用起来是没有问题的,但是时间长了会发现几个问题:

  • 无论是改动业务代码还是硬件驱动代码都需要针对整个应用升级

  • 随着闸机型号的增多,程序中会有各种型号的驱动,导致硬件驱动的代码臃肿,不易维护

  • 关于硬件的适配,由于跟业务代码合在一起,只能我们自己来做,无法交给闸机的厂商

因此在这个基础上我们对软件架构进行了优化: 业务程序与驱动程序分开,采用了面向接口编程的思想,业务程序通过AIDL的方式将命令给到驱动程序。

这样的好处显而易见:

  • 业务和驱动代码不再耦合在一起,各自独立,业务应用只需关心业务逻辑,驱动应用做好硬件驱动的事情

  • 业务程序无需关心驱动程序如何实现,驱动程序的实现可以交由厂家实现,我们制定标准就好了

  • 业务程序和驱动程序独立升级,按需升级

  • 每种型号的设备使用统一的业务程序,只安装自身的驱动程序,不再需要将所有的不同型号的设备驱动代码都放在一起

人脸识别能力优化

我们采用了安全的人脸识别算法,但这不表示算法就能解决我们现场的所有问题,大麦的现场环境较刷脸支付场景更为复杂,下面介绍我们是如何优化和提升我们的人脸识别能力:

1、解决底库增大&&降低误识率

研究过人脸算法的同学应该清楚,再完美的人脸算法也会有误识的情况,也就是误识率,而且随着底库的变大,误识率也会跟着上升。马拉松的场景几万人很正常,既要降低误识率又要满足底库的变大,看似一个矛盾的问题,而且算法层面目前是无法解决,但必须要解决业务问题,我们的思路是:既然算法无法解决,那只能通过业务去解决,我们知道马拉松赛事还细分为全马,半马,情侣跑,迷你跑,家庭跑等不同的种类,那我们就可以根据这些不同的种类将人群分开,这样就做到了减少了底库,那误识率自然会降低。

2、人脸数据全流程打通

上面讲过通过报名网站进行人脸采集或者现场刷身份证进行现场采集,完成人脸采集,但是还有一种情况是用户既没有在报名时上传照片,有没有携带身份证,这些用户只能通过大麦APP进行采集,那如何保证APP上采集了之后能马上入场领取装备?那就需要把整个流程打通,具体如下:

3、动态远程调优

马拉松的人脸识别场景其实要比人脸支付的场景复杂,人脸支付大多是在室内,光线的影响会相对小一些,而马拉松既要考虑室内场景(领取装备)又要考虑户外场景(开跑入场),面临着曝光过度、逆光侧脸和远距离等的影响,因此需要根据具体环境来进行调优,我们通过在管理端动态修改影响人脸算法的各种参数,以及是否采用降级方案等,远程下发到现场所有设备,确保选手顺利高效入场,不会引起排长队的问题。

总结

我们根据马拉松赛事实际的业务场景,将人脸识别功能1比1和1比N应用到马拉松赛事,开启了马拉松行业的新的入场模式,但是我们的路还很长,人脸算法需要继续提升:提高识别率与降低误识率,不同环境下人脸算法的优化配置,室内与户外的不同验票方案以及已经开始商业化的5G能否给我们的业务带来新的突破,我们会将人脸识别功能应用到更多的核验场景,持续提升现场用户的入场体验和通行效率。

【end】◆有奖征文◆推荐阅读超轻量级中文OCR,支持竖排文字识别、ncnn推理,总模型仅17M网红直播时的瘦脸、磨皮等美颜功能是如何实现的?比特币最主流,以太坊大跌,区块链技术“万金油”红利已结束 | 区块链开发者年度报告一文了解 Spring Boot 服务监控,健康检查,线程信息,JVM堆信息,指标收集,运行情况监控!用 3 个“鸽子”,告诉你闪电网络是怎样改变加密消息传递方式的!出生小镇、高考不顺、复旦执教、闯荡硅谷,59 岁陆奇为何如此“幸运”?你点的每个“在看”,我都认真当成了AI

万人马拉松赛事,人脸识别系统如何快速、准确完成校验?相关推荐

  1. 万人马拉松,人脸识别系统如何又快又准完成校验?

    作者 | 阿里文娱技术专家墨贤 出品 | AI科技大本营(ID:rgznai100) 大麦的人脸闸机在2019年杭州马拉松上成功的完成了刷脸入场功能的首秀,相比传统的马拉松入场核验方案在入场体验和入场 ...

  2. 大麦人脸识别系统,如何支撑马拉松赛事?

    大麦的人脸闸机在 2019 年杭州马拉松上成功的完成了刷脸入场功能的首秀,相比传统的马拉松入场核验方案在入场体验和入场效率上都有了很大的提升,下面介绍一下大麦的人脸识别是如何支持马拉松赛事的. 一.马 ...

  3. 人脸识别系统全过程讲解,告诉你是如何找到人的?

    经常被网友问到"人脸识别系统是如何找到人的?",本文将通过实际案例具体分析人脸识别系统的组成.人脸识别系统的架构.人脸布控流程.以及人脸识别系统的具体功能来详细解答网友疑惑. 人脸 ...

  4. 东京奥运会将采用人脸识别系统 加强安检

    随着科技日益发展,许多世界顶级赛事都采用了前沿的科技技术,比如,足球赛事中的门线判定.篮球赛事中的3D战术分析等等.不过这些技术大多只针对某一场比赛,所以相较而言无需太大的数据量.而近来备受关注的&q ...

  5. 人工智能人脸识别系统,人工智能应用人脸识别

    手机人脸识别的原理是什么? . 不同品牌机型采用的面部识别技术方案不同,面部识别效果也会不一样:目前vivo/iQOO系列手机,仅NEX双屏版采用3D人脸识别技术,其余机型均采用FaceWake面部识 ...

  6. 这家AI公司用面具破解中国人脸识别系统!微信、支付宝、火车站无一幸免

    全世界只有3.14 % 的人关注了 青少年数学之旅 据外媒报道,一家人工智能公司Kneron用一个特制的3D面具,成功欺骗了包括支付宝和微信在内的诸多人脸识别支付系统,完成了购物支付程序.他们用同样的 ...

  7. Kinect人脸识别系统—开发历程

    除非比较重要的文章,其他小文章都放在52coding.com上了.此文属于,吐槽文章. 持续维护地址: http://52coding.com/kinect-face-recognition-deve ...

  8. 基于MATLAB的人脸识别系统[创新元素,界面GUI]

    第一章 绪论 本章提出了本文的研究背景及应用前景.首先阐述了人脸图像识别意义:然后介绍了人脸图像识别研究中存在的问题:接着介绍了自动人脸识别系统的一般框架构成:最后简要地介绍了本文的主要工作和章节结构 ...

  9. 牛逼!这家 AI 公司用面具破解了中国的人脸识别系统!微信、支付宝、火车站无一幸免...

    公众号关注 "GitHubDaily" 设为 "星标",带你了解圈内新鲜事! 转自:新智元 来源:fortune.theverge 编辑:张佳 [导读]据外媒报 ...

最新文章

  1. 裴健等9名华人当选加拿大皇家学会院士
  2. 在SQL Server中将数据导出为XML和Json
  3. 单点登录系统实现基于SpringBoot
  4. 算法笔记_188:历届试题 危险系数(Java)
  5. 1000+高质量数据集免费高速下载!一个好用又丰富的AI公开数据集平台
  6. bootstrap时间控件
  7. 将数据压缩到数据结构中
  8. 通过Spring将AWS SQS用作JMS提供程序
  9. java中get接口示例_Java即时类| 带示例的get()方法
  10. jq使用教程05_ 新手也能用的安装版本,30秒点选即可安装完成,不需配置Python环境
  11. ubuntu iptables 共享上网
  12. 面试题:在O(1)空间复杂度范围内对一个数组中前后连段有序数组进行归并排序...
  13. java 配置文件参数_从Java的配置文件中读取配置参数的最佳方法是什么?
  14. 无法读源文件或磁盘_磁盘阵列RAID1+0和RAID0+1的区别
  15. Mysql开发实践:error while loading shared libraries: libaio解决方案
  16. C# - Poker Sort
  17. 机器视觉运动控制一体机应用例程 | 瓶盖密封完整性检测
  18. Java中implement和extend
  19. mysql like 百分号_mysql语句中使用like后面的%(百分号)的问题
  20. 根据经纬度查询具体地址

热门文章

  1. kaggle之数据分析从业者用户画像分析
  2. 推荐15个国外使用 CSS3 制作的漂亮网站
  3. 《JavaScript设计模式》——11.2 一切只因跨域
  4. 【直播预告】7月18日3D游戏引擎免费公开课答疑,參与送C币!
  5. android圆形旋转菜单,而对于移动转换功能支持
  6. IIS 伪静态配置(安装ISAPI_Rewrite配置)
  7. Transform-style和Perspective属性
  8. 转:浅谈Linux的内存管理机制
  9. JS nodeType返回类型
  10. 有关GetPrivateProfileString的使用方法