61 回答
人脸识别最难的部分是有充分适应各大光线环境的人脸预处理算法,需要在各种复杂的光线环境中提取到人脸信息,特别是移动互联网时代,摄像头拍照的地方可以在斑驳的树影下,也可以在昏暗的街灯下,以及深夜出租车内,这对算法的鲁棒性考验极大。同时还要考虑照片和视频欺诈,二次成像的光线污染等问题。
下面说一下目前人脸识别的常见问题:
[h1]1:1人脸识别算法主要用于身份验证[/h1]1:1人脸识别技术主要是利用图像处理技术从图像中提取人像特征点,利用生物统计学的原理进行分析建立数学模型,即人脸特征点模型。再从人脸特征点模型与被测者的人的面像进行特征分析(可以假定为无数的几何特征点求解),根据分析的结果来给出一个相似值,通过这个值即可确定是否为同一人。简单的说就是A/B两张照片比对,产生的计算数值是否达到要求。
所以没有阈值说明的算法都是耍流氓。 1:1主要用于快速的人脸识别比对,作为身份确认的一种新方式,比如考生身份确认、公司考勤确认、各种证件照和本人确认,由于这些照片源不一定有权威统一的接口调用,所以一直没有用起来。目前市面上做的比对来源主要有三种方式: 1. 用户自传照片,比如支付宝的人脸比对,用户自传的照片最大的问题是照片质量的合格率太低,拍照的光线、角度等因素会导致采集源的质量下降,不利于后期的大批量人脸特征码管理。 2. 使用身份证读卡器,读取身份证上的照片,遗憾的是这张照片2K的大小,不过也是目前用最多的源照片提取方式,比较适合签到场合。 2016给国内一些会议培训公司的识别软件(用于验证会员是否有效以及是否本人):这个值我们称之为阈值,可以从1到100(100就是极端严苛)很多人脸识别公司说他们的产品很容易通过,那只说了一半,如果阈值调整到5以下,几乎大部分人都可以是相似的,而调整到95以上,同一个人在不同的背景环境拍出的照片都无法匹配。所以当一公司跟你吹牛算法准确度,先问下使用的是用什么阈值,同一人脸比对通过率,非同一人比对通过率。
3. 使用公安部旗下NCIIC的人脸比对接口(注意,不是网纹照片接口,这个接口已经不对外),使用的是直接的人脸比对接口。目前具备有这个库调用权限的,目前所知的只有几家,在人脸识别公司中,好像只看到一家在提供,这里先不提了。BAT应该都还没有接入,如有大家有新发现的可以补充。
实际上,解决比对源的问题的关键是需要有权威的照片数据来进行比对,许多公司刚刚开始的时候采取NCIIC(公安部的一个事业单位)身份证返照接口的照片,进行消网纹处理进行比对,但人脸的很多特征点被损毁成功率大概只有6成(根据六月份发布的网络安全法,目前网纹返照接口市面上除了银行系统可以使用外,其他所用的身份证返照接口都是非法的,一用就被查)。
[h1]1:1 人脸识别算法主要使用场景[/h1]
[h1]人脸识别的破解:[/h1]许多金融公司喜欢把人脸识别SDK模块嵌入到APP当中,但这个太容易绕过,所以会再加上活体检测(市场上常见的活体检测为随机动作配合),但是即便加了活体检测,也一样可以绕过。比如下面这两种方式:
1. 3D人脸仿真面具
2. 人脸模型实时重建
所谓道高一尺魔高一丈,这个还是增加其他的多维校验才能确认身份,否则真有人要进行远程攻击,也不是很难的事情。那么活体检测哪家强了?
[h1]1:N人脸识别算法主要用于人脸检索[/h1]跟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了,同时相应多张照片检索需求,检索耗费的时间跟硬件算法关系极大,就这一领域的应用,又哪家公司强了?
[h1]N:N人脸识别算法主要用于实时多1:N检索计算: [/h1]N:N 该算法实际上是基于1:N的算法,输入多个求解结果。比如视频流的帧处理所用,对服务器的计算环境要求严苛,目前的算法系统所支撑的输出率非常有限。
主要的限制如下:
海量的人脸照片解析需要大量运算(目前很少看到在采集端直接解析的,都是照片剪裁)
海量的人脸照片传输需要大量的带宽(常见的720布控摄像头抓取最小的人脸照片为20K)
海量的人脸照片在后台检索需要耗费大量的运算(国内主流主机为例,最多到24路摄像头)
由此可见,真正实现“天网”人脸检索,一来要解决数亿摄像头的图片处理,二来需要解决联合库的超算检索,这可不是一般公司吃得消。有些小区和高级场所,对VIP客户的识别和接待比较喜欢这种视频校验方式,但是实际部署使用者会受到摄像头位置、角度,以及多人同时入场产生的问题,而且人脸库会非常有限,不然计算时间长,体验极差,一些所谓的迎宾机通常也就几个人的照片(就是纯粹给领导看的),实用价值大大的打折扣,有戴墨镜或者帽子遮蔽都认不出,毕竟关键特征取样有限。这又有谁强了?
[h1]拍照和直播APP的人脸图像叠加[/h1]
国内比较多的娱乐APP通过对人像图层跟踪处理,也是一个不错的技术切入点,但是产品安装包会比较大,现在做的也只是跟踪技术,属于底层识别,如果复杂一些的需要通过云服务实现,但是服务器算法解析速度和带宽比较难以跟上,也不算是一种靠谱的商业模式。
[h1]人脸识别的技术发展方向: [/h1]在视频级N:N的校验中,如果要提高通过率,很多时候是采取降低准确率的方式,降低算法队列数量;同样在一些比赛中为了降低误识率,大大提高了准确率,所以算法在校验的过程中必须遵循至少一个固定标准,追求的是速度效率还是最高准确率。 [h1]人脸识别算法的应用分类派系:[/h1]结合三维信息:二维和三维信息融合使特征更加鲁棒 多特征融合:单一特征难以应对复杂的光照和姿态变化 大规模人脸比对:面向海量数据的人脸比对与搜索 深度学习:在大数据条件下充分发挥深度神经网络强大的学习能力
[h1]人脸识别对应解决方案方向:[/h1]
个人认为未来人脸识别会让大部分的数据更加真实,而可以通过社会工程学模板做很多分析和改良,比如近期一些科学家利用人脸识别来分析一些人的健康、清晰,甚至是犯罪倾向,或许在未来还可以结合大数据,对我们过去传统的面相分析技术做一个全新的提升,到时候算命先生都要失业了。更多机器人交互、无人机产生的摄像目标锁定分析等科幻画面并不是多遥远的事情。
[h1]关于算法核心研发情况的争论: [/h1]基本上国内每家公司都会说自己的算法牛,实际上有几家有人脸核心算法呢?国内在完全从事算法研究的总工程师人数到目前(2016年)总计不到100人,不过也没有现在问题也不大,中科院计算所山世光教授已经开源了SeetaFace开源人脸识别引擎介绍 - 知乎专栏,没有基础的公司不用太辛苦从零开始在OPENCV基础上做算法升级,相信很快google微软还会有新的算法发布。现在算法基本都是98%以上,这点差距已经不重要,算法核不核心也没有太大问题。大家不用太过于焦虑,产品到应用阶段,单单靠算法可不够,还要考虑实际的使用。
目前做人脸识别的公司很多,集成应用的有数百家,国内的看百度,看融资,看各种报道就差不多了,只是认真沉下心来做事情的公司太少。国内的腾讯和阿里都在做(阿里支付宝用的是自己的团队研发算法,只是特别低调,把名声都留给自己投资的公司,阿里可不止投了一家),国内的公司吹牛逼的、炒概念的太多,就不聊了。这些公司几乎做的都是政府的安全项目,但公司普遍规模都很小,盈利和投资也很少见报道。Facebook公司进入这个领域,主要是进行人群的分类和应用的优化(针对性的市场推广),项目都是作为公司原本业务的一种补充。
所以这个问题到了最后,答案很简单:
人脸识别哪家强并不重要,
未来的竞争不在现在这些战场。
借用雷布斯的话:少一些胡来的人,大家都可以专心做事。
人工智能投资泡沫带来的浮躁,反而让大家都不好好做事情了,所以花了时间整理了这篇,泼了点冷水,期待同行们真真正正为社会提供一些有价值的,也有资本回报的产品。
更多关于人脸识别的将分段更新【人脸识别技术】:
https://www.douban.com/doulist/79693888/
本篇收录到【人工智能指南】更多关于人工指南的阅读可以参考:
https://www.douban.com/doulist/46106084/