1.1 广义人脸识别的1:1、1:N 和N:N 比对计算模式
从人脸识别的流程上来说,广义的“人脸识别”包含人脸检测、人脸校准、人脸特征提取、人脸关键点定位及狭义的人脸识别(两张人脸特征的相似性计算或比对)等步骤。在后续章节中,我们将按照人脸识别的流程介绍相关的技术和研究进展。
传统的人脸识别系统的流程和步骤如图1-1所示[1],具体包括图像获取(通过视频采集设备)、人脸检测和人脸校准(人脸图像预处理)、人脸特征提取、人脸关键点定位及狭义的人脸识别(两张人脸图像特征的相似性计算或比对)等步骤。
从人脸识别的流程和人脸比对计算的量级上,“广义”的人脸识别问题又可细分为1:1、1:N 和N:N 比对计算模式。简而言之,1:1人脸比对就是人脸验证;1:N 人脸识别算法主要用于人脸检索;N:N 人脸识别算法主要用于同时进行多个1:N 检索计算[1]。
图1-1 人脸识别系统的组成[1]
1.1.1 人脸验证——1:1相似度对比
人脸验证主要用于身份验证[1]。在此类应用中,除捕捉用户的人脸外,用户往往还须提供个人证件。人脸验证的本质是一对一(1:1)的人脸相似度比对,即将视频实时捕捉到的人脸与系统中该用户注册时提交的身份证中的证件照人脸图像进行相似度比对,通过两张人脸图像特征的相似度比对,得出相应的置信度,根据置信度的值决定是否通过身份验证。支付宝用户身份验证、火车站刷脸检票、机场刷脸安检、考生身份确认、公司考勤、个人域名申请的身份验证等,用户均须提供真实的身份证件(物理介质),都是一对一的相似度比对:将摄像头实时捕捉到的人脸与用户注册时登记的身份证(证件照)人脸图像进行相似性计算。事实上,目前绝大多数常见的落地人脸识别应用,本质上多为人脸验证。人脸验证又可称为一对一(1:1)的人脸识别。
1.1.2 人脸检索——1:N 相似度比对
在此种应用场景下,用户不需要“亮明”(出示)身份证件,而是纯粹的“刷脸验身”,主要用于静态照片比对系统,如身份确认与查询、一人多证排查[1]及在视频中检索某个人的踪迹。
人脸检索的一个重要应用是关键场所视频监控,尤其是对通缉犯和嫌疑人员的实时监测和侦查。此时,唯一的输入就是人脸,没有证件、票证等物理介质。例如,公安人员会提前将嫌疑人的人脸图像存入嫌疑人数据集,在火车站、汽车站等公共场所部署的摄像头(天网)可实时捕捉人脸,把捕捉到的每张人脸与嫌疑人数据集中的人脸图像进行1:N的相似性比对,以确认是不是嫌疑人员。在身份查询的应用中,输入一张图像(包括非正脸图像),需要在百万级别、千万级别的标准人脸数据集中迅速查找,确认库中与之最相似的一个或若干个人员,从而获取所查询照片中人员的身份信息,如寻找走失儿童。此时,我们对1:N 人脸检索的计算效率有较高的要求,而上述公共场所监测嫌犯人员的应用(天网),对实时性、计算效率的要求更高。
如果不考虑实时性和计算效率的要求,1:N 的人脸检索,从技术上可看作由N 次1:1的人脸验证组成,本质上仍是人脸验证。但是,人脸检索的难点在于:摄像头捕捉到的人脸图像,往往不是正脸图像,而是侧脸图像甚至是由于运动或距离较远导致的模糊、难辨认的人脸图像,同时由于人脸数据的采集方式不同、光线条件各异,在进行人脸验证时难度较大,容易发生误判、漏判的情况(因为最终是正脸与侧脸或模糊人脸之间的人脸比对/验证)。相比之下,在上文所述的1:1的人脸验证应用中,人在受限(受约束)情况下主动配合摄像头的图像采集,得到的是正脸图像,人脸验证的难度相对较低(正脸与正脸之间的人脸验证)。在考生身份确认的应用中,如果考生无须同时在设备上核检身份证件(此时属于1:1的人脸验证),而仅需要刷脸入场,则属于1:N 的相似性比对。
人脸检索的另一个重要应用是一人多证的排查。这里面有一个小故事:21世纪初,公安信息系统还没有实现数据流通,尤其是户口和人员信息,需要通过当地派出所本地办理户口的手续(数据没有及时同步),因此会出现少数的一人多证现象,即一个人由于种种原因拥有多张合法的户口/身份证的情况。但在最近几年,由于全国公安和户口数据的联网和流通,尤其是大规模人脸识别技术的应用,这一问题得到了有效解决。在使用人脸搜索(1:N 人脸相似性计算)时,将公安部身份证件库的每张人脸图像与其余所有图像逐一进行碰撞(1:N 人脸相似性计算),寻找与之高度相似的人脸图像,作为一人多证的候选对象(后期再由人工辅助确认)。需要说明的是,这一过程需要巨大的计算量,需要高性能的CPU/GPU 并行计算平台。同样的技术也适用于一人多护照的排查。
总之,人脸检索是1:N 的人脸相似度计算,需要基于1:1人脸验证,但通常对人脸检索算法的健壮性,或算法/系统的计算效率、实时性有较高的要求,为此,人们提出了哈希方法及深度哈希方法,以加快检索速度,后续章节将详细介绍。
1.1.3 N:N 人脸相似性计算
多个1:N 同时作业就是N:N 了,N:N 人脸识别算法主要用于实时多个1:N 检索计算:N:N 算法实际上基于1:N 算法,输入多个求解结果[1]。因此N:N 人脸识别的应用和1:N 人脸搜索的应用比较接近,但N:N 人脸识别对计算平台的要求更高,对算法和系统的计算效率和实时性的要求更高。
1.1.4 人脸检测、人脸识别、人脸检索与1:1、1:N、N:N人脸相似度计算
上述从比对对象之间的数量级角度上细分的1:1、1:N 和N:N 的人脸相似度计算,是基于人脸识别的比对计算量级的视角进行划分的。在实际科学研究中,学术界更多是从人脸识别的相关任务和业务流程的角度进行划分,具体分为人脸检测、人脸校准、人脸特征提取、人脸关键点定位、狭义的人脸识别(两张人脸特征的相似性计算/比对)和人脸检索等步骤和任务,如图1-1所示。而在基于深度学习的广义人脸识别系统中,人脸检测、人脸关键点定位、狭义的人脸识别(两张人脸特征的相似性计算/比对)和人脸检索是4个最为重要的部分。下面章节将分别阐述相关技术的最新研究进展和成果。
需要说明的是,除人脸识别外,在视频中查找、辨识相关人员的行为时,经常用到步态识别技术,尤其是当人脸图像无法获取时(如嫌疑人员刻意遮挡或背对摄像头)。简单地说,步态识别技术就是通过行人走路的步态识别对应人员、“不看脸也能认出来是谁”的技术[2]。
从算法精确度来看,国内外的人脸识别技术大多数在开源OpenCV等开源库上进行新规则添加,如增加基于深度学习的人脸识别算法,公司之间的识别正确率差异仅在小数点上[1]。衡量人脸识别算法能力的指标有拒识率(漏识率)、误识率、准确率及算法的处理速度等。