2016年北京安博会上,各家公司人脸识别产品百花齐放,但就是在这个人脸识别的鼎盛时代, 实际上需求最痛的安防行业还是无法大规模应用。根据最高人民检察院和最高人民法院关于刑事案件数量的统计,2015年全国人民法院新收刑事一审案件1126748件,同比上升8.29%。(数据来源:2001-2016年《中国法律年鉴》)。满大街的摄像头,各种智能检测分析,依旧有很多人肆无忌惮地进行着违法犯罪活动。
文/缪冬琴
针对此,本文首先回顾了目前人脸识别技术的发展状况,然后重点探讨了目前安防行业大规模应用人脸识别还需要解决的问题。
人脸识别技术的发展状况
在深度学习技术出现之前,几乎所有人脸检测都是采用滑动窗口式的方法。在识别输入图像前,我们会先用一个固定大小的窗口在输入图像上进行滑动,窗口框定的区域会被送入到分类器,去判断是人脸窗口还是非人脸窗口。滑动的窗口其大小是固定的,但是人脸的大小则多种多样,为了检测不同大小的人脸,还需要把输入图像缩放到不同大小,使得不同大小的人脸能够在某个尺度上和窗口大小相匹配。这种滑动窗口式的做法有一个很明显的问题,就是有太多的位置要去检查,去判断是人脸还是非人脸。
2000年前后出现的Viola-Jones人脸检测器,使得这种人脸检测技术开始成熟起来,并出现了相关的实际应用,例如数码相机中的人脸对焦的功能,照相的时候,相机会自动检测人脸,然后根据人脸的位置把焦距调整得更好。
就人脸检测而言,人脸可以大致看成是一种刚体,通常情况下不会有非常大的形变,比方说嘴巴变到鼻子的位置上去。但是对于公安实际应用中既关注人脸也关注全身来说,人可以把胳膊抬起来,也可以把腿翘上去,这使得人体有非常多的非刚性变化,从而使得检测的准确率大大降低。
2013年底,深度学习给人脸检测任务点起了一把火,这个火种就是R-CNN,其中R对应于“Region(区域)”,意指CNN以图像区域作为输入,这个工作最终发展成了一个系列,R-CNN的变革首当其冲的是抛弃了滑动窗口范式,取而代之的是一个新的生成候选窗口的环节;其次不再采用人工设计的特征,而是用CNN来自动学习特征。传统滑动窗口范式做目标检测时,需要对每一个物体去设计和和学习单独的检测器,例如做人脸检测和车辆检测,两个检测器特征会不一样,分类器也不一样,对于每一类物体,需要去尝试不同的特征和分类器的组合。但是现在,采用深度学习的R-CNN在物体类别上没有任何限制。换句话说,它既可以检测人脸,也可以同时检测其他类别的物体,比如说人体形态,这在公安实战应用中是一个非常重要的优势。
R-CNN带来了目标检测精度的一次巨大提升,然而由于所采用的候选窗口生成方法和深度网络都具有比较高的计算复杂度,因而检测速度非常慢。为了解决R-CNN的速度问题,紧接着出现了Fast R-CNN和Faster R-CNN,速度一个比一个快。与此同时,一部分研究人员把研究视角切换到将传统的人脸检测技术和深度网络(如CNN)的结合,保证检测速度的情况下进一步提升精度,专做人脸检测的Cascade CNN可以认为是传统技术和深度网络相结合的一个代表,吸取传统人脸检测技术中的精华,借鉴深度学习研究的最新成果,提升某一类目标检测精度和速度,这是一条值得继续探索的道路。
目前,人脸检测方法正日趋成熟,在现实场景中也已经得到了比较广泛的应用,在特定配合场景下如照片的检索、门禁考勤等应用,目前已基本成熟。但是人脸检测问题还并没有被完全解决,复杂多样的姿态变化、千奇百怪的遮挡情况、捉摸不定的光照条件、不同的分辨率、迥异的清晰度、微妙的肤色差,各种内外因素的共同作用让人脸的变化模式变得极其丰富,在非配合场景下的万级及以上的目标检测如安防监控库的应用,依旧任重道远。
安防行业应用人脸识别
具体到安防行业,特定配合场景下如公安系统的大库比对、身份查重等,人脸识别等应用已经有很多成功的案例。与简单的静态场景相比,安防市场中应用前景更广阔的一个方向是动态场景下的人脸识别:基于视频中的人脸照片进行远距离、快速、无接触式的重点人员布控预警。让应用于车站、机场、地铁等重点场所和大型商场超市等人群密集的公共场所视频监控系统能够对视频图像进行采集、自动分析、抓取人脸实时比对,主动在监控场景中识别重点关注人员,实现重点人员的布控和识别。这是一个热闹的研究方向,同时也是一个巨大的研究挑战。
算法前移:计算资源与算法精度的平衡问题
采用深度学习的方法来做人脸识别,需要消耗非常多的计算资源,针对服务器资源昂贵的市场情况,想要实现智能监控系统的大规模部署,必须要考虑到承担的经济成本。目前不少公司采用了将算法内嵌至前端摄像机的经济做法,比如科达公司推出的感知型摄像机等,让前端摄像机具备人脸检测的功能,后端服务器再做二次分析,以此减少后端服务器的计算压力。
显而易见,如果想在前端摄像机上集成精度高速度快的人脸识别模块,势必需要前端硬件性能的匹配。而目前已有的硬件还达不到这样的要求,只能在算法上做一些牺牲,如降低算法的复杂性,但这样应用到实际场景中,则会造成检测效果的降低,如漏检、误检。
大数据训练:数据从何而来以及如何训练
深度学习最核心的优势在于深度化,用足够多的数据来训练,训练的越多,算法的鲁棒性、泛化能力越强。目前深度学习算法的训练数据普遍都是几十万、上百万级,像一些互联网行业的IT巨头们,他们的训练数据都是上千万、甚至上亿级别。
Fei-Fei LI在2015年TED TALK中向公众介绍人工智能中计算机视觉技术的最新进展时说道,ImageNet中下载了接近十亿张照片,在巅峰时期,总共有接近五万工作者,来自167个国家,帮助他们清理、分类、标记,接近十亿张候选图片。“十亿张”、“五万工作者”这些关键词无不暗示着获取有标注数据的时间和金钱成本。
首先,安防行业的“十亿张”从何而来?据了解,尽管视频监控带来了图片与视频资源的激增,一方面出于安全及隐私的考虑,不少公司做大数据训练时,样本采用的是本公司自有建设的监控资源库,小范围的区域监控远远够不成海量;另一方面,目前安防产品的形态并没有给深度学习留下一个很好的空间,比如说安防系统的数据大多都存储在一个录像机、存储设备里,他们可以是DVR、NVR、IPSAN或者云存储里,这样的构成体系不太方便让一个计算设备把它的数据挖掘出来,然后去处理。如果在未来可以有一个更友好的基础设施出现:所有的监控摄像机都连到一个云上,在云上把深度学习的算法加载在上面,让其接触并分析所有的数据,真正实现大数据训练。
其次,“五万工作者”的研发体量可望不可及。每天,安防企业的研发者都需要花大量的精力和人力投入到给图像打标签的工作上,但是大量无监督数据的获取成本却是微乎其微的。
回顾深度学习的发展史,有趣的是,2006年Hinton教授等人倡导的却恰恰是利用无监督学习来对深层神经网络进行预训练。对无监督数据的学习能力严重不足,以致大量无监督数据就像富含黄金的沙海,我们却没有高效淘金的利器。直接从大量无监督数据中学习模型确实是非常困难的,“无师自通”并非朝夕之功,但“少量有监督数据+大量无监督数据”的模式也许值得大力研究。
监控摄像机:智能是左手,高清是右手
从模拟到720p到1080p到4K,更高清甚至超清的监控摄像机始终是安防人的首要关注点,毕竟没有有效的图像采集信息,后面一切围绕图片或视频展开的智能应用都是纸上谈兵。
一个很典型的例子便是2013年波士顿马拉松暴恐案的侦破过程,警方在监控画面中定位到涉案的两个嫌疑人,尽管嫌疑人距离监控摄像机不远,但他们的面部完全没有到达一个清晰可辨的程度,后来警方借助现场媒体、民众提供的视频、照片,才锁定了犯罪嫌疑人。因此,如果数据在采集过程中就没有捕捉到,后期是没有办法把它捏造出来的,要根本解决这个问题,需要发明更好的监控摄像机,能够在大广角的情况下,仍然可以看清很远的距离。时至今日,除了特定场景下的高空瞭望摄像机外,我们依然没有很好的监控摄像机可以远距离采集有效的人脸信息。
总结
人脸识别的最终诉求莫过于确认身份,回答“他是谁?”、“他在干什么?”、“何地?”、“何时?”这四个问题,从而通过决策推理解决“应该采取什么措施”的问题。在科研上,人脸识别技术日新月异,但落地到实际应用时,大规模部署时系统的经济性、复杂环境下系统的鲁棒性以及对应的硬件支撑都是需要考虑的现实问题,解决了这些,小目标的达成也将触手可及。
(作者现任职于苏州科达科技股份有限公司)