70 回答
如果题主这里说的『业内』指的是科研行业,挑战和难点其实都不好说……有些问题是可解决的,有些问题是不可解决的,比如化妆和双胞胎的问题,其实长得像也是很普遍的例子。人脸识别这个行业存在一个由大佬们吹出来的硬伤,就是它在真实环境下总是无法达到100%的可靠,但是总被吹成是极其可靠……以至于领域外的人瞪大眼睛激动地要往里砸钱要项目上线……所以人脸识别在产业界总会给土老板们带去失望。 稍微有点偏,别回来。 我假设这里的业内并不是『科研界』,而是工业界,产业界,『产品』界,那么有很多地方其实都有成熟应用了,比如海关的过关人脸识别系统,当然人家会加上身份证或者指纹来双重验证,比如人脸识别的门禁系统,这个作为产品已经有了,虽然发生了『司机卖掉赵薇豪宅那个事』,但我还是相信在这个应用场景下,这个产品是可以达到可用的程度的。人脸识别技术最大的一个客户可能就是政府了,这个是让我有些伤感的事情,同时我也觉得这个东西在公安系统里面也是『采购了,但是极少用到,领导来了,我们就演示一下Demo,真办案了,还是要靠人来筛选一下以防疏漏』。 另外最近那些银行推出一些自动服务机器,里面有人脸识别功能,道理其实跟过海关一样,你需要的是身份证,人脸,密码甚至指纹……即便是把人脸识别关掉了……也是可以正常运作的……我常常好奇,为什么有些公司,不遗余力地去集中做一个产品落地很难的人脸识别技术……并且其做法仍然是按照学术那样,收集大量的数据集,然后交给科研人员,然后搞几个算法,提高准确率,然后把代码交给码农去优化,码农优化完,产品经理觉得仍然没法上线,但是上线压力太大,于是给科研和码农施压,科研人员也烦躁,只能过来给码农施压,码农无处诉苦,开始自我怀疑,失去自信,变得烦躁,更年期早到…… 这可能是做科研出身的人,突然跑去做产品的通病。 论文和实践的差别在于数据和方法。针对数据选择方法,是用很多种方法融合,针对不同的情况调试不同的参数,使用不同的trick,甚至使用外围的硬件辅助,最终的目的是提升产品的综合体验。人脸识别,实际的产品里面,最深奥的算法复杂程度也不会超过那些开源出来的已有算法,理解那些通用的算法,再去一线做产品应该足够了。但是注意,这些算法也许根本不会构成你产品的核心技术,真正的核心技术是你做产品的时候处理各种情况,各种数据的经验公式和方法。 在科研里,人脸识别技术还是有很多可以去研究的东西的,比如怎么用更小的数据更小的模型得到更好的准确率。比如怎么克服光照的影响,比如怎么通过局部特征来完成准确识别……。 但是如果是去做产品的话,我认为不需要迟疑,不要仰望科研成果。贴近一线的数据和场景,花时间分析数据钻研工程方法,也许就做出来了。 借用一句话:『未来属于那些愿意弄脏自己双手的人』。『请问目前业内人脸识别技术的挑战和难点是什么。为什么没有成熟可靠的商业应用。但是论文中已经接近99.7%了。实践和论文的差距是什么。是不是人脸识别的研究没得搞了。』
人脸识别最难的部分是有充分适应各大光线环境的人脸预处理算法,需要在各种复杂的光线环境中提取到人脸信息,特别是移动互联网时代,摄像头拍照的地方可以在斑驳的树影下,也可以在昏暗的街灯下,以及深夜出租车内,这对算法的鲁棒性考验极大。同时还要考虑照片和视频欺诈,二次成像的光线污染等问题。
下面说一下目前人脸识别的常见问题(不要再问人脸识别准确度了,这个是外行话)。
1:1人脸识别算法主要用于身份验证
[h1]1:1人脸识别技术主要是利用图像处理技术从图像中提取人像特征点,利用生物统计学的原理进行分析建立数学模型,即人脸特征点模型。再从人脸特征点模型与被测者的人的面像进行特征分析(可以假定为无数的几何特征点求解),根据分析的结果来给出一个相似值,通过这个值即可确定是否为同一人。简单的说就是A/B两张照片比对,产生的计算数值是否达到要求。[/h1]这个值我们称之为阈值,可以从1到100(100就是极端严苛)很多人脸识别公司说他们的产品很容易通过,那只说了一半,如果阈值调整到5以下,几乎大部分人都可以是相似的,而调整到95以上,同一个人在不同的背景环境拍出的照片都无法匹配。所以当一公司跟你吹牛算法准确度,先问下使用的是用什么阈值,同一人脸比对通过率,非同一人比对通过率。
1. 用户自传照片,比如支付宝的人脸比对,用户自传的照片最大的问题是照片质量的合格率太低,拍照的光线、角度等因素会导致采集源的质量下降,不利于后期的大批量人脸特征码管理。 2. 使用身份证读卡器,读取身份证上的照片,遗憾的是这张照片的质量极差,2K的大小,很多照片上的人脸质量实际非常差,不过也是目前用最多的方式。 3. 使用公安部旗下NCIIC的人脸比对接口(注意,不是网纹照片接口,这个接口已经不对外),使用的是直接的人脸比对接口。目前具备有这个库调用权限的,目前所知的只有几家,在人脸识别公司中,好像只看到一家在提供,这里先不提了。BAT应该都还没有接入,如有大家有新发现的可以补充。 实际上,解决比对源的问题的关键是需要有权威的照片数据来进行比对,许多公司刚刚开始的时候采取NCIIC(NCIIC是公安部的一个事业单位,公安内网是不对外开放的)身份证返照接口的照片,进行消网纹处理进行比对,但人脸的很多特征点被损毁成功率大概只有6成(根据六月份发布的网络安全法,目前网纹返照接口市面上除了银行系统可以使用外,其他所用的身份证返照接口都是非法的,一用就被查)。 1:1 人脸识别算法主要使用场景1:1主要用于快速的人脸识别比对,作为身份确认的一种新方式,比如考生身份确认、公司考勤确认、各种证件照和本人确认,由于这些照片源不一定有权威统一的接口调用,所以一直没有用起来。目前市面上做的比对来源主要有三种方式:
许多金融公司喜欢把人脸识别SDK模块嵌入到APP当中,但这个太容易绕过,所以会再加上活体检测(市场上常见的活体检测为随机动作配合),但是即便加了活体检测,也一样可以绕过。比如下面这两种方式:1. 3D人脸仿真面具
2. 人脸模型实时重建
所谓道高一尺魔高一丈,这个还是增加其他的多维校验才能确认身份,否则真有人要进行远程攻击,也不是很难的事情。那么活体检测哪家强了?1:N人脸识别算法主要用于人脸检索[h1]跟1:1的A/B两张照片比对最大的区别是A/B A/C A/D……多个1:1计算,这个最大的问题是一旦BCD总和数量越大计算速度越慢,而总和超过20万,就回出现多个相似结果(20万人这个大数会导致有不少人长相相似),需要人工辅助定位。过去我们在电影里面看到什么“天网”识别系统只是一种理想状态,实际应用中都是排列出多个结果,排第一的未必是需要的人。[/h1]
1:N人脸识别算法主要用于排查犯罪嫌疑人、失踪人口的全库搜寻、一人多证的重复排查,以此相似度列出相应的结果,可以大大提高排查效率。类似的也可以用到走失儿童的项目中去,相比美帝的亚当警报、安珀警戒,国内有没有类似的儿童走失警报及寻找机制? - 安全 - 知乎这一类系统的部署需要两个条件:1. BCD基本库(比如1000万人)2. 强大的算法硬件1:N同时作业就是N:N了,同时相应多张照片检索需求,检索耗费的时间跟硬件算法关系极大,就这一领域的应用,又哪家公司强了?N:N人脸识别算法主要用于实时多1:N检索计算: [h1]N:N 该算法实际上是基于1:N的算法,输入多个求解结果。比如视频流的帧处理所用,对服务器的计算环境要求严苛,目前的算法系统所支撑的输出率非常有限。[/h1]主要的限制如下:海量的人脸照片解析需要大量运算(目前很少看到在采集端直接解析的,都是照片剪裁)海量的人脸照片传输需要大量的带宽(常见的720布控摄像头抓取最小的人脸照片为20K)海量的人脸照片在后台检索需要耗费大量的运算(国内主流主机为例,最多到24路摄像头)
由此可见,真正实现“天网”人脸检索,一来要解决数亿摄像头的图片处理,二来需要解决联合库的超算检索,这可不是一般公司吃得消。有些小区和高级场所,对VIP客户的识别和接待比较喜欢这种视频校验方式,但是实际部署使用者会受到摄像头位置、角度,以及多人同时入场产生的问题,而且人脸库会非常有限,不然计算时间长,体验极差,一些所谓的迎宾机通常也就几个人的照片(就是纯粹给领导看的),实用价值大大的打折扣,有戴墨镜或者帽子遮蔽都认不出,毕竟关键特征取样有限。这又有谁强了?人脸识别的技术发展方向: [h1]结合三维信息:二维和三维信息融合使特征更加鲁棒多特征融合:单一特征难以应对复杂的光照和姿态变化大规模人脸比对:面向海量数据的人脸比对与搜索深度学习:在大数据条件下充分发挥深度神经网络强大的学习能力[/h1]人脸识别应用的发展方向 [h1]人脸识别这玩意儿就是一个调味料,在千万的业务解决方案中,就是一个小模块,其他的都是业务层的开发问题,使用上,技术也未必要高精尖,如果一定要真正称得上人工智能组成部分的,个人认为未来最大的使用端是机器人视觉交互。[/h1]人脸识别算法的应用分类派系:在视频级N:N的校验中,如果要提高通过率,很多时候是采取降低准确率的方式,降低算法队列数量;同样在一些比赛中为了降低误识率,大大提高了准确率,所以算法在校验的过程中必须遵循至少一个固定标准,追求的是速度效率还是最高准确率。
人脸识别对应解决方案方向:
个人认为未来人脸识别会让大部分的数据更加真实,而可以通过社会工程学模板做很多分析和改良,比如近期一些科学家利用人脸识别来分析一些人的健康、清晰,甚至是犯罪倾向,或许在未来还可以结合大数据,对我们过去传统的面相分析技术做一个全新的提升,到时候算命先生都要失业了。更多机器人交互、无人机产生的摄像目标锁定分析等科幻画面并不是多遥远的事情。关于算法核心研发情况的争论: 基本上国内每家公司都会说自己的算法牛,实际上有几家有人脸核心算法呢?国内在完全从事算法研究的总工程师人数到目前(2016年)总计不到100人,不过也没有现在问题也不大,中科院计算所山世光教授已经开源了SeetaFace开源人脸识别引擎介绍 - 知乎专栏,没有基础的公司不用太辛苦从零开始在OPENCV基础上做算法升级,相信很快google微软还会有新的算法发布。现在算法基本都是98%以上,这点差距已经不重要,算法核不核心也没有太大问题。大家不用太过于焦虑,产品到应用阶段,单单靠算法可不够,还要考虑实际的使用。目前做人脸识别的公司很多,集成应用的有数百家,国内的看百度,看融资,看各种报道就差不多了,只是认真沉下心来做事情的公司太少。国内的腾讯和阿里都在做(阿里支付宝用的是自己的团队研发算法,只是特别低调,把名声都留给自己投资的公司,阿里可不止投了一家),国内的公司吹牛逼的、炒概念的太多,就不聊了,讲讲老外吧。[list=1]