详细解读人脸识别技术

2018-5-12

人脸识别的算法能力几个指标:拒识率、误识率、通过率,准确率。

那么人脸识别的基本流程是怎么样的呢:

详细解读人脸识别

详细解读人脸识别

  人脸识别最难的部分是有充分适应各大光线环境的人脸预处理算法,需要在各种复杂的光线环境中提取到人脸信息,特别是移动互联网时代,摄像头拍照的地方可以在斑驳的树影下,也可以在昏暗的街灯下,以及深夜出租车内,这对算法的鲁棒性考验极大。同时还要考虑照片和视频欺诈,二次成像的光线污染等问题。

详细解读人脸识别

  下面说一下目前人脸识别的常见问题:

  1:1人脸识别算法主要用于身份验证

  1:1人脸识别技术主要是利用图像处理技术从图像中提取人像特征点,利用生物统计学的原理进行分析建立数学模型,即人脸特征点模型。再从人脸特征点模型与被测者的人的面像进行特征分析(可以假定为无数的几何特征点求解),根据分析的结果来给出一个相似值,通过这个值即可确定是否为同一人。简单的说就是A/B两张照片比对,产生的计算数值是否达到要求。

  这个值我们称之为阈值,可以从1到100(100就是极端严苛)很多人脸识别公司说他们的产品很容易通过,那只说了一半,如果阈值调整到5以下,几乎大部分人都可以是相似的,而调整到95以上,同一个人在不同的背景环境拍出的照片都无法匹配。所以当一公司跟你吹牛算法准确度,先问下使用的是用什么阈值,同一人脸比对通过率,非同一人比对通过率。

  所以没有阈值说明的算法都是耍流氓。

  1:1主要用于快速的人脸识别比对,作为身份确认的一种新方式,比如考生身份确认、公司考勤确认、各种证件照和本人确认,由于这些照片源不一定有权威统一的接口调用,所以一直没有用起来。目前市面上做的比对来源主要有三种方式:

  1. 用户自传照片,比如支付宝的人脸比对,用户自传的照片最大的问题是照片质量的合格率太低,拍照的光线、角度等因素会导致采集源的质量下降,不利于后期的大批量人脸特征码管理。

  2. 使用身份证读卡器,读取身份证上的照片,遗憾的是这张照片2K的大小,不过也是目前用最多的源照片提取方式,比较适合签到场合。

  2016给国内一些会议培训公司的识别软件(用于验证会员是否有效以及是否本人):

详细解读人脸识别

  3. 使用公安部旗下NCIIC的人脸比对接口(注意,不是网纹照片接口,这个接口已经不对外),使用的是直接的人脸比对接口。目前具备有这个库调用权限的,目前所知的只有几家,在人脸识别公司中,好像只看到一家在提供,这里先不提了。BAT应该都还没有接入,如有大家有新发现的可以补充。

  实际上,解决比对源的问题的关键是需要有权威的照片数据来进行比对,许多公司刚刚开始的时候采取NCIIC(公安部的一个事业单位)身份证返照接口的照片,进行消网纹处理进行比对,但人脸的很多特征点被损毁成功率大概只有6成(根据六月份发布的网络安全法,目前网纹返照接口市面上除了银行系统可以使用外,其他所用的身份证返照接口都是非法的,一用就被查)。

  1:1 人脸识别算法主要使用场景

  • 无证件的情况下,如何确认本人是XX?

曾经有一些问题是关于如何确认本人的笑话,派出所要求一个小伙证明就是本人,证明你妈是你妈。。这种奇葩问题,但是许多陌生场合也有这种尴尬,你如果没有带证件,警察无法看到你的照片,如何确认你就是XX就是之前经常出现的执法矛盾;如果一个人把身份证弄丢了,外面风雪交加,如何给这类人办理酒店入住手续?这些就是身份确认的问题。公安部推身份证网上副本 身份认证可“刷脸”完成就是用来解决这个问题,我们出门不用完全依赖身份证可以确定身份,可以方便很多。

但是1:1人脸算法的巨大隐患是我们随处可见的人脸,实际就是一个公开的钥匙,马云提出刷脸消费吃饭,如果没有手机验证码(本身也是一重手机实名验证,同时做了人脸库图源定位,方便1:1校验),分分钟钟被吃垮。但是既然可以用手机,为什么还用刷脸,不是多此一举吗?

另外还有一些高级会所,希望实现VIP的贵宾警报服务,这个在下面的1:N和N:人脸识别算法系统中可以看到。但是1:1比对的身份应用哪家强了?

  • 比如远程的互联网客户,如何确认身份?

在互联网买机票、车票,医院挂号,政府惠民工程项目,以及各种证券开户、电信开户、互联网金融开户都会用到。过去的身份认证方式是非常不妥的(比如支付宝的持有注册流程,还有一些不知名的社交APP等需要上传身份证照片),这些资料是极其容易被盗取和转卖的,下图是来自百度的图片搜索结果截图,还有最近的一些女大学生的裸条资料泄露知乎专栏,导致犯罪分子有很多利用的漏洞,黑客军团号称资料2000万,分分钟钟薅干一家金融平台没有问题:

详细解读人脸识别

  人脸识别的破解:

  许多金融公司喜欢把人脸识别SDK模块嵌入到APP当中,但这个太容易绕过,所以会再加上活体检测(市场上常见的活体检测为随机动作配合),但是即便加了活体检测,也一样可以绕过。比如下面这两种方式:

  1. 3D人脸仿真面具

详细解读人脸识别

  2. 人脸模型实时重建

详细解读人脸识别

  所谓道高一尺魔高一丈,这个还是增加其他的多维校验才能确认身份,否则真有人要进行远程攻击,也不是很难的事情。那么活体检测哪家强了?

  1:N人脸识别算法主要用于人脸检索

  跟1:1的A/B两张照片比对最大的区别是A/B A/C A/D……多个1:1计算,这个最大的问题是一旦BCD总和数量越大计算速度越慢,而总和超过20万,就回出现多个相似结果(20万人这个大数会导致有不少人长相相似),需要人工辅助定位。过去我们在电影里面看到什么“天网”识别系统只是一种理想状态,实际应用中都是排列出多个结果,排第一的未必是需要的人。

详细解读人脸识别

  1:N人脸识别算法主要用于排查犯罪嫌疑人、失踪人口的全库搜寻、一人多证的重复排查,以此相似度列出相应的结果,可以大大提高排查效率。类似的也可以用到走失儿童的项目中去,相比美帝的亚当警报、安珀警戒,国内有没有类似的儿童走失警报及寻找机制?

  这一类系统的部署需要两个条件:

  1. BCD基本库(比如1000万人)

  2. 强大的算法硬件

  1:N同时作业就是N:N了,同时相应多张照片检索需求,检索耗费的时间跟硬件算法关系极大,就这一领域的应用,又哪家公司强了?

  N:N人脸识别算法主要用于实时多1:N检索计算:

  N:N 该算法实际上是基于1:N的算法,输入多个求解结果。比如视频流的帧处理所用,对服务器的计算环境要求严苛,目前的算法系统所支撑的输出率非常有限。

  主要的限制如下:

海量的人脸照片解析需要大量运算(目前很少看到在采集端直接解析的,都是照片剪裁)

海量的人脸照片传输需要大量的带宽(常见的720布控摄像头抓取最小的人脸照片为20K)

海量的人脸照片在后台检索需要耗费大量的运算(国内主流主机为例,最多到24路摄像头)

详细解读人脸识别

  由此可见,真正实现“天网”人脸检索,一来要解决数亿摄像头的图片处理,二来需要解决联合库的超算检索,这可不是一般公司吃得消。有些小区和高级场所,对VIP客户的识别和接待比较喜欢这种视频校验方式,但是实际部署使用者会受到摄像头位置、角度,以及多人同时入场产生的问题,而且人脸库会非常有限,不然计算时间长,体验极差,一些所谓的迎宾机通常也就几个人的照片(就是纯粹给领导看的),实用价值大大的打折扣,有戴墨镜或者帽子遮蔽都认不出,毕竟关键特征取样有限。这又有谁强了?

  拍照和直播APP的人脸图像叠加

详细解读人脸识别

  国内比较多的娱乐APP通过对人像图层跟踪处理,也是一个不错的技术切入点,但是产品安装包会比较大,现在做的也只是跟踪技术,属于底层识别,如果复杂一些的需要通过云服务实现,但是服务器算法解析速度和带宽比较难以跟上,也不算是一种靠谱的商业模式。

  在视频级N:N的校验中,如果要提高通过率,很多时候是采取降低准确率的方式,降低算法队列数量;同样在一些比赛中为了降低误识率,大大提高了准确率,所以算法在校验的过程中必须遵循至少一个固定标准,追求的是速度效率还是最高准确率。

人脸识别算法的应用分类派系:

详细解读人脸识别

  人脸识别对应解决方案方向:

详细解读人脸识别

  个人认为未来人脸识别会让大部分的数据更加真实,而可以通过社会工程学模板做很多分析和改良,比如近期一些科学家利用人脸识别来分析一些人的健康、清晰,甚至是犯罪倾向,或许在未来还可以结合大数据,对我们过去传统的面相分析技术做一个全新的提升,到时候算命先生都要失业了。更多机器人交互、无人机产生的摄像目标锁定分析等科幻画面并不是多遥远的事情。