4月13日结束的计算机视觉沙龙圆满落幕。本期沙龙从构建图像识别系统的方法切入,讲述腾讯云人脸识别、文字识别、人脸核身等技术能力原理与行业应用,为各位开发者带来了一场人工智能领域的技术开拓实践之旅。下面是周吉成老师关于人脸核身技术原理与行业应用的总结。
讲师介绍:周吉成,北京邮电大学软件工程硕士研究生,现任腾讯云大数据及人工智能产品中心高级产品经理,主要从事云计算、人工智能产品的规划设计。在云计算、计算机视觉、语音识别、自然语言理解等领域有丰富的技术和产品研发经验。
我这部分会介绍的人脸技术在实际生产生活中的应用,因为技术总会遇到很多挑战,大家也可以从实际场景中体会一下。
首先我们看一下人脸技术概述。然后是我们常用的人脸应用方向,叫核身方案,就是证明你本人是本人,我们无论是去银行或者运营商去办业务的时候,他经常要求你本人在现场,而且要拿着身份证,这个方案就是解决远程核身的方案。第三会介绍一些应用案例就是实际落地的项目,第四部分是实际过程中遇到的挑战和问题。
刚才大家会讲很多很具体的细节,这个其实是我们整个人脸核身方案涉及的所有环节,一是检测,我们可以从一个图片中检测到人脸。第二大部分是分析,从里面做一些跟踪、3D建模,还有属性的提取。第三部分是五官配置,人脸融合其实用了很多。再往后是人脸识别,也分两种,1:1的比对和1:N的检索。最后一部分是活体检测,它其实是证明一个实实在在的人在办理这个业务。
这是一个典型的核身的流程,第一步是拍身份证的正反面,提取身份信息,第二步是录制一段小视频,当然这个视频有多种模式,有读数字的,也有摇头眨眼的,最后会给一个结果,是不是一个实名实人的反馈结果。它的后台主要涉及到几种技术,第一个是身份证上传照片的OCR的结构信息的提取;第二部分是活体的检测和1:1的比对获取真实身份,这个身份现在通过从拍的照片里提取到的人脸照片,或者视频里最佳的帧发到权威库进行比对,他们返给我们一个实名结果。这是第一个环节,身份证OCR的拍照上传,这个技术已经比较成熟了,但实际上应用中还有很多的挑战,像不同的角度,比如0度、90度、180度、270度,大家拍的时候可能会有旋转或者倾斜,这是需要处理的。还有一些少数民族身份证,这个也需要在实际业务中做处理,普通的OCR识别不一定能很好的支持。
从人脸比对角度,刚才也说了有两种,1:1和1:N。1:1就是给我两张照片返给你相似度。1:N就是给我一张照片从库里检索这个人,要做好人脸识别,一是数据的积累,二是数据的采集场景。数据积累是因为有不同的照片类型,有生活照、艺术照、监控照、门禁照等等。实际应用中这个1:1的核身现在已经非常成熟了,它的错误率也非常低,基本上十万分之一的错误率,1:N的场景是安防场景,我们在三千万库的规模上Top1可以达到95%以上。还有人脸支付,对错误率的要求更高,级别上是亿级的,因为它跟钱相关嘛,我们现在也从端到端的设计去保证支付的安全。
这是竞争比较激烈的一块,活体检测算法,实际腾讯也一直在引领这个技术的发展,最早我们叫动作活体,通过指示摇头眨眼录下视频做活体,后来发现这种大家觉得体验不好,因为你在镜头前做这种动作可能自己不好意思,所以后来我们在微众银行开户的应用中提出了数字的,就是读数字加上唇语分析。再后来做基于手机的“极光守卫”,利用手机屏幕打红蓝光映射到脸上录视频,再拿这个视频做活体检测分析,特点是安全性比较高,而且在普通主流手机上都可以完成。这个其实有一点类比iPhoneX的faceID,因为它能取到人脸的立体信息,所以保证活体的可靠性非常高。但好多安卓手机没有这个设备,这个也是腾讯优图实验室为了把这个技术能广泛性的使用而研发的这么一套算法,它实际上是通过打光,打到脸上之后检测漫反射的现象提取一部分的立体信息,模拟红外或者双摄像头的机制。最后一步对安全性要求更高的场景来说,我们现在都是推荐用端到端的,就是摄像头上得做一些定制,像这种结构光、红外,结合这种信息能提升安全性。
综合来看从上面来讲,如果我们真的做一个核身方案,涉及的还是挺多的。最底下是人脸库,无论是身份信息库还是每个企业里面员工的库,还是比方我们学校、园区都有这种库,先有一个人脸库,才有可能在库里做各种应用。再往上最核心的是这种引擎能力,无论OCR还是活体还是1:1、1:N的,这个引擎能力也比较重要的。另外比较重要的是覆盖能力,就是你能不能通过各种方式触达到各种用户,比如通过微信的H5公众号通过小程序、App甚至通过一些自助终端、PC电脑都可以触达用户,我们称之为联接能力。只有覆盖足够广,这个应用才能有生命力。
除了这两部分里面还隐藏着一个安全需求,既然我们叫核身应用,意味着人会冒用这个身份,比如外部人员想进入某个园区他没有权限,这种可能会想各种办法去跳过这个检验。所以在中间部分的下层还有一个增值的能力,我们做一些风控的保护,甚至一些人工审核的能力,这样才能真正提供一个比较完善可靠的方案。
刚才介绍的就是整体的技术加方案,后面有一些实际用例给大家分享一下,这是我们做的一个运营商的客户,联通的大王卡,大王卡是联通和腾讯合作,腾讯系的App可以打包流量,关键的一环是远程开卡,开SIM卡的时候运营商早期是要求到营业厅,拿着本人的身份证做注册才能现场开卡,但这种模式实际成本比较高,而且不方便,所以做成一个远程开卡的模式,在家下订单把卡送到你家里,这时候拿出手机打开远程开卡的应用,按照指示走完核身过程,是这么一个业务流程。
因为这个上线比较早,当时也是一个比较创新的应用,这个案例里面最有特色的是一个攻防的对抗,运营商开卡实际上有很多的黑产去攻击,比如搜集大量的身份证,然后去拿身份证去注册SIM卡,这个过程是有盈利空间的,而且他拿到SIM卡之后可以注册各种App,参与各种活动,我们称之为薅羊毛。当时我们上线的时候也会有很多攻击的行为,他拿到身份证之后,他会拿别人的照片,甚至是拿别人的视频去攻击你这个核身的应用,这时候我们需要不断跟他对抗,升级这个算法,这是一个比较典型的点。
这是我们做的银行的客户,这个客户是一个金融服务的窗口,是为民众提供金融服务的,它比较典型的应用是低收入人群补助的发放。他发放补助的时候需要核实身份,我们也是提供了1:1人脸核身产品、1:N人脸检索,以及人脸属性,我们也做了一些线下发放补助店里面自助机这种终端的核身方案。另外它比较有特点的是我们也提供了多种活体模式,像动作、数字、反光都提供给他了。
这是我们做的一个公安的客户,因为公安本身就是一个制证部门,它本身就有大量的数据,但它作为一个地方,比方在广东,可能有广东省的数据,但如果一个户口不在广东的人去深圳办很多业务的时候,其实他需要去全国的库里查询这个人的身份。我们这个项目的特点是我们给他做混合部署的方式,什么叫混合部署?客户自己的人脸库,我们把算法布在他的内网里做检索,但有一部分客户在他的库里没有,这时候我们提供一个公有库的查询服务,允许本地查不到的库,丢到腾讯云这边,我们帮他代理去查询全国的库,这是比较典型的。公安最终也是为下面的政府,经信委、委办局、工商提供统一的人脸核身的服务。
这也是一个运营商,这是中国电信。我可以介绍一下我们遇到的很多挑战,第一像身份证,很多银行、保险、运营商好多业务都是需要留证据的,你在现场很容易留证据,我无论做复印件、拍照,有工作人员辅助,如果我远程的话我拍照片,这时候就有很多仿冒的可能性,比如他做一下PS,照片拿过去,这种东西理论上从法律上来讲不足以作为证据的。我们客户也提出这个身份证能不能检测是翻拍、复印件,做这种提示。说到翻拍、检测大家觉得好像也不是特别难,有时候像中间这个照片,大家很明显可以看出来,实际上是一个正常拍摄,确实拿着自己身份证现场拍的,但我们的算法极有可能识别为一种翻拍的效果,因为背景是一个玻璃的家具式的东西,有时候算法会根据原来训练数据的数据集,会把它定为翻拍。我讲这个是,我们实际应用中有些检测和分类,不是一个确定性的、概念性,我们只是提供给验方一个参考。
最后是一个活体的攻击,这是我们的一个例子。这个非常直观,其实真正的核身的时候录的视频,这就是一个典型的数字视频的活体,正常我们就是这样录下来,然后检测,检测完就OK了,但这个因为是冒用别人的身份,所以很容易看出来,只是把眼睛和嘴巴部分做了一个动态,肯定是PS或者视频编辑软件做的,中间这部分都没有动。有时候这种攻击视频是非常难以防范的,而且这种也是只有在业务过程中才能发现,这种挑战都非常大的,我们客户也是经过反馈,我们不断地去做算法的对抗,才能真正做到一个既便捷又安全的一个服务。
下面我也整理了很多我们项目中遇到的素材,一些badcase,其实里面还是有很多问题的。可能大家觉得,比如我经常做人脸比对、人脸融合,大家觉得很成熟了,其实这个远没有大家想的那么容易。比如第一组照片,这两个人当时用肉眼基本第一眼大家都认为是一个人,如果有人告诉你这不是一个人,人眼仔细看的时候会发现嘴唇高度不一样,很快能知道这不是一个人。实际上我们侧了市面上主流这几个厂商,多数厂商都会判定为一个人,根源就在于他采集的来源不同,那个基本上是一个近照,自拍层面的,另外一个是像监控的,摄像头离他比较远,像这种比对虽然都能做算法比对,但有时候正确率会下降。
右边这几组照片有很多特点,比如有一些带网纹的照片,或者把身份证的照片部分扣出来做一些上传,这些我们都要去做处理。还有最右边,其实是一个翻拍,翻拍手机屏幕的照片。下面是身份证90度放置,中间是少数民族身份证,最后面是刚才那个活体,基本上是一个意思。我们真正做功能化落地的时候,尤其是一些要求比较高的客户环境,实际上我们还是会遇到很多问题的,这些问题怎么解决?从两个角度吧,一个角度是让我们的算法工程师努力的提高攻防水平,另一方面其实我们有很多周边措施,比方说我们通过控制前端摄像头无论拍身份证照片还是视频,都要求他规范或者做一些提示,只要你不满足这样的就不让你上传。还有一些风控的手段,比如像蓄意攻击的,就是一些黑产团伙,检测它的IP地址、手机号、身份证号,都可以发现一些风险。比如我们发现他的风险比较高,即使他通过了算法检测,我们也可以提示审核人员去做二次处理。
如果你想让一个应用真正跑起来,触达能力是非常重要的,也就是我们在不同的接入渠道都要做到良好的体验,尤其是视频、语音类的,其实你无论是在手机上还是在闸机设备上,还是在自己做的安卓App上,要做到一个非常好的体验还是非常困难的。它有很多兼容性的问题,这个大家做开发肯定都知道,因为浏览器各方面权限控制都非常难。这一块也是腾讯的慧眼产品,把这些都做好了,无论H5还是小程序,都可以快速集成、接入。
这一块是讲风控的,第一部分我们可以多种控制风控的方案,比如我们也可以结合微信的实名认证信息去比对,还有结合一些腾讯内部提供的数据服务,像风控的服务,比如微信号被盗的嫌疑,我们其实也可以通过预先的检测去发现它。还有一部分像手机号恶意,这些都是风控的措施。另外从监管层面、工信部、公安部都会出很多的规范,因为数据隐私嘛大家越来越重视,我们也出了很多的检测报告以及合作。
实际上现在技术,可能大家觉得已经很成熟了,在我们运营过程中,无论我们做的多么好,我们还是会遇到很多客户审核通不过,这时候怎么办?我们还是用老办法,通过人工审核去做。当然我们也可以从前端的应用体验去做,比如第一次过不了去提醒人工审核或者做二次验证,都是增加通过率的操作。另外从安全性上来讲,我们也可以做各种活体的组合,现在我们能支持的,像数字、动作、静默、光线都可以组合起来,比如刚才讲的银行,它对安全性比较高,就可以让他同时过两道算法,一道光线的,一道静默的,可以极大的提升安全性。
如果大家接触过政务内网或者银行内网的都了解,实际上从他们安全性角度来讲,他们的数据是出不来的,也需要我们支持混合部署的模式。
这个是大家可以直观也可以去体验的,云智慧眼助手,一个公众号,打开公众号就可以输入自己的身份证号、名字就可以完成一个核身的过程,这个我们也有几种不同的模式都可以体验。我们还有一个特别的优势,可能其他的友商不一定具备,我们有一个微信原生的体验,无论是H5还是小程序,它的体验做的非常好,尤其是返回速度、提示、流畅性都会好很多。
Q:我们有一个人脸融合的应用,能做一个攻击行为吗?
A:这个是有可能的,我们以子之矛攻子之盾,不光是人脸融合,因为人脸融合本质上在于,首先你拿到对方的照片,比如你要冒充张三,得拿到他的张三的照片附到自己脸上,还得讲话,这个成本是比较高的,首先你制作的视频在哪儿放着,你是放在你的手机上还是怎么传上来,这个渠道也很难做到。
我的意思就是说你拿张三的照片模拟读数字或者做动作,是需要先生成一个视频的。就算生成了视频,比如我们最简单的H5或者小程序里,你合成视频怎么录进去呢?要么是拍屏幕,即使H5的方式通过参数注入,注入之后也是类似,如果我说我有立体检测方法,你也是通过不了的,当然如果安全性要求比较低或者没有做那个的话,是有可能攻击的。
Q:就是如果不在硬件上做限制的话,是有一定风险的。
A:对,现在不光是人脸融合,前一段时间业界有一个专门做假脸的,就模拟非常真,唯一这种防范,第一个是刚才说的红外这种立体的检测,还有是在前端做防控。
Q:这种立体防控,精度能达到多少?
A:我们评价一般是从业务角度,比如一百个人去做这种活体的检测,没有误判就是百分百;如果一万个人做,有一个人通过了,那就是万分之一的通过,光线的话可以做到99.9%的水平。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。