吴春生,李孝君,吴 浩
(1.北京警察学院,北京 102202;2.公安部物证鉴定中心,北京 100038)
指纹是人体生物特征之一,因其唯一性、易获取和低成本而被广泛使用[1],在我国法庭科学中有着广泛的应用。随着指纹数据库容量的不断扩大,应用计算机技术对指纹实现快速的自动比对识别成为趋势[2]。我国从20世纪80年代初开始指纹自动识别系统(automated fi ngerprint identifi cation system, AFIS)的研发工作,至20世纪90年代逐步走向成熟,21世纪初在公安机关得到了广泛的应用。近年来,随着指纹库容量的快速增长,由于识别准确率无法持续提高,基于特征点的传统指纹识别技术遇到瓶颈。与此同时以深度学习技术为代表的人工智能技术开始在指纹识别领域崭露头角。
指纹自动识别系统的研究与开发是一门多学科融合的技术[3],涉及应用数学、信息技术、法庭科学多个领域,这三个领域可以进一步细分为若干个二级领域。其中,应用数学解决特征提取、特征比对的核心算法;信息技术解决数据组织、数据存储、任务管理、人机交互等技术环节;法庭科学既是AFIS的应用领域,又担负着探究指纹识别的原理和指引其发展方向的任务。
AFIS系统的发展与信息化领域相关学科的发展密切相关[4]。当涉及的学科领域有新的技术出现,都会在法庭科学领域得到应用,从而促进AFIS向前发展,不断迈上新的台阶。
基于特征点的指纹自动识别算法的思路来自于人工指纹鉴定方法[5-6]。此方法依赖于对指纹细节特征点进行提取,而模式识别技术及一系列衍生方法的研究很好地解决了这一难题,进而能根据两个特征点集合间的最大匹配度计算出两枚指纹的相似度。
网络技术的发展,特别是金盾工程的实施,使得AFIS系统从单机版升级为网络版[7]。随着网络带宽和电脑终端性能的提升,主流的AFIS系统均已经实现了基于Web技术的B/S交互,大大降低了AFIS的应用门槛,实现了系统的应用普及。
进入21世纪,随着指纹库容量的不断升级,比对速度成为应用瓶颈。科研机构利用以并行计算、分布式计算为代表的一系列高性能计算技术,实现了指纹比对的加速,支撑起了千万人级乃至更高量级指纹库的应用[8-10]。
随着指纹库容量的进一步扩大以及人像等其他生物识别技术的应用,AFIS的破案率不断下降,需要通过不断追加硬件设备的方式维持系统的比对效率。同时由于各主流指纹算法原理接近,均为使用细节特征进行比对,大量因图像问题造成特征点提取或标注不准确的现场指纹未能被比中。传统的细节特征点匹配算法经过多年的不断研究升级,已经面临着技术瓶颈。
人工智能(artifi cial intelligence, AI)是计算机学科的一个分支,近三十年来它发展迅速,在很多学科领域都获得了广泛应用,无论在理论和实践上都已自成体系[11-12]。人工智能是研究使用计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,几乎涉及自然科学和社会科学的所有学科,其范围已远远超出了计算机科学的范畴。人工智能技术广泛应用在图像识别等多个领域。指纹识别是人工智能技术在图像识别领域的一个具体应用,近年来已有国内外多个科研机构对人工智能在指纹自动识别方面的应用开展了研究工作[13-18]。
根据计算机领域各项技术产生、发展、成熟的普遍规律,把基于人工智能的指纹识别技术发展分为三个阶段。
1)初始发展阶段。随着近年来人工智能新技术的出现和设备计算能力的提升,将已有的成熟技术方法直接在指纹识别领域应用,成为最快捷的方法。如:使用较为成熟的分类网络甚至人像识别等技术进行指纹的分类识别。由于没有针对性的改进,初期的性能较差,仅靠实验才能判定某种方法的有效性。此阶段人工智能技术仅能开展图像质量处理、特征提取和简单分类等工作,可以作为传统算法的一种补充。
2)并行发展阶段。在简单套用的基础上,根据指纹的特点对技术方法进行改进。无论是训练数据的选取还是网络结构的搭建,都体现出指纹自身的特点。如:根据指纹脊线的平均宽度设置卷积窗口的尺度,可以大幅提高采样的有效性。新的算法可以满足主流应用需求,与基于特征点的传统算法之间存在互补性。可以将两者通过在算法之上进行并行应用,实现算法之间的互补,达到综合应用的最优性能。
3)全面赶超阶段。此阶段,新算法在综合识别准确率和速度指标上大大超出传统算法,新的系统可以完全替代原有系统。此阶段仍然需要指纹专家参与最终的认定,但工作量大大减少。这就需要在指纹图像特性、人工智能基础理论、现有技术方法三方面相结合的基础上,逐渐开发并完善全新算法。新的算法虽然还需要对现有技术进行借鉴,但其应具有较完备的理论支撑,能够有的放矢地去调整算法进行性能改进,对于算法出现的各种性能问题做到可解释。
当前,业内整体处于从第一阶段向第二阶段过渡时期。人工智能在图像识别领域最常采用的技术是深度学习(deep learning)。深度学习技术通过建立具有多层结构的人工神经网络(artifi cial neural networks),实现了模拟人类对图像中所包含内容进行识别分辨的初级人工智能[12,19-21]。神经网络的应用在20世纪90年代曾经流行,但由于当时的计算机性能不高,仅限于构建浅层神经网络,而浅层网络难以从高维数据中自动学习到有效的特征表达。相对于传统的神经网络,当前的深度神经网络主要特点是具有更大的深度和维度即网络层数和每层节点数,可以实现对高分辨率的图像进行特征提取。
基于深度学习的基础理论,衍生出了大量结构各异的深度神经网络(deep neural network, DNN),如卷积神经网络、循环神经网络等,在很多应用领域均取得了良好的效果。在指纹领域,借助深度神经网络对高分辨率图像特征学习和提取的优势,可以将深度学习技术应用于对指纹图像的特征识别、特征压缩和特征匹配。深度学习技术的应用改变了若干年以来的指纹识别算法的设计规则。深度学习进行指纹识别基于图像特征而不是传统的细节特征。这些特征可以用一维数组的方式进行存储,称为特征向量。以特征向量为基础,对指纹进行相似程度的比较。
传统的指纹识别算法以指纹细节特征点的提取和匹配作为算法的主要工作目标和性能评判标准,而深度学习方法可以创建由指纹整体图像在多重变换及降维后得到的多尺度多形态的图像特征,并由此构成特征向量。该特征向量的维度大小可由设计者通过设置网络的输入维度来进行调整。为了保证包含足够的信息量,指纹特征向量通常应在100以上。特征规模与其对原始指纹的描述程度成正比,更高的特征规模意味着能够在更高的维度表现出指纹图像的更多潜在特征。图像的特征向量由构成图像的所有像素转换生成,因此图像特征向量相比细节特征点具有更高层级的对于指纹图像信息的表达能力。与细节特征点不同的是,DNN提取的特征是经过压缩后的图像特征,每个特征都不能直观地看到其所表达的内容。特征向量的大小相对于传统方法提取的数量为100左右的细节特征点而言,处于同一数量级。由于DNN可对指纹有效区域内所有图像形态的隐性特征进行提取,对于无特征点区域和特征点难以定位的图像区域,DNN具有先天的技术优势。特征向量生成网络的实现方式有很多种,下面以训练指纹纹型分类网络为例,对于特征向量的构建方法进行说明。构建步骤如下:
1)创建指纹的训练样本、验证样本、测试样本。
2)设计分类深度神经网络结构,构建网络并初始化。
3)使用训练样本对分类网络进行训练,网络自动通过损失函数来对其参数进行调整,使用验证样本进行准确性的校验。
4)当网络训练收敛到符合准确性要求后,使用测试样本进行测试,得到网络的分类性能。
深度学习进行指纹识别的基本技术方案是通过将较高分辨率的指纹图片多次降维及神经网络映射变换,得到图像的特征向量。通过将两枚指纹的特征向量进行空间距离比较,得到两枚指纹的相似度。应用流程见图1。
这其中涉及的主要技术环节如下:
1)网络模型的设计:在应用需求的牵引下,确定深度神经网络的结构。主要包括设计网络两端的输入输出数据维度、网络层数、每层采用的结构、网络优化器的类型等等。用于指纹图像的基础网络结构通常设计由若干卷积层、池化层和多个全连接层组成。
2)训练数据的准备:根据网络模型的输入和输出设计选取数据,对网络进行训练和校验,分为训练数据和校验数据,其中以训练数据为主。数据选取的一般原则:典型有代表性、不同类别分布均匀、数据量充足。对于有监督学习模式,要对所有的数据标注标签,如:进行纹型识别时要对训练的指纹图像标注好现有的纹型类别,细节特征点提取时要对某部分图像是否含有特征点进行标注。对于无监督学习,往往也要将数据分组分类,如进行指纹匹配训练时,要先将重卡或比中的数据放在同一组中。面向应用的开发以数据为驱动,合理的数据选取会让开发事半功倍。
3)模型的训练和调优:神经网络模型的训练就是向网络输入足够多的样本数据,通过优化算法调整网络的结构(主要是调节网络中各个节点的权值),使网络的输出与预期值相符。训练往往需要大量的循环迭代,持续较长时间。每隔一定的循环次数,要用校验数据检验是否达到预期。对于不收敛和迟迟不能达到预期的网络要及时调整网络设置。
4)特征向量的提取存储:当网络训练符合预期,需要将网络中指纹图像的变换结果固化,避免多次重复计算。指纹识别1对N的比对模式,意味着对于每个比对任务,指纹库中所有指纹都要进行一次单循环的比对。显然每次加载指纹图像比对时间过长,存储空间也难以满足。深度学习的主要计算量集中在将图像进行空间映射变换操作中,而全连接层结点向量之间的相似度计算量很小。因此在网络不变的情况下,将网络中最后一层的结点向量值作为指纹经转换后得到的特征向量值进行保存。该特征向量作为该枚指纹的抽象特征表达,可以直接参与指纹识别计算。
在开发过程中,针对不同的需求和应用模式,要使用不同的模型设计或组合方法。如:正查、反查所用的训练数据和网络模型会有所区别。但无论哪种应用模式都会涉及如下几个关键技术环节。
1)图像的预处理。深度学习可以直接对指纹图像进行降维和特征提取,并能达到相当不错的识别效果。像传统方式那样对指纹图像进行预处理成为可选的步骤。预处理的优点是能够大大降低图像噪声、使图像灰度均衡化、得到指纹的有效区域,缺点是使得图像中部分固有特征消失。图像固有特征在细节点提取时无需关注,但在深度学习中却至关重要。
2)网络模型的深度定义。深度神经网络的层数越多越能提取图像的本质特征,而相对浅层网络可以提取到图像的表象特征。二者对图像的区分能力各有侧重,浅层网络侧重于表达局部的细节形态,层数增加则更有利于学习到图像整体的特征。例如,对细节特征的分辨就不宜使用较深的网络,而纹型的识别则推荐使用层数较多的网络完成。开发者需要根据不同应用场景,设计相应的网络结构、层数及参数设置。
3)图像的降维。指纹图像的采集普遍采用较高分辨率,如公安行业标准规定指纹采集的分辨率为500 dpi[22]。高分辨率图像中存在不同尺度的信息,如指纹纹线的间距一般为5~9像素,判断方向场要根据纹线间距进行窗口的设计,而不同类型的细节特征点可以在3×3至7×7的二维区域内进行识别。高分辨图像维度远超存储和比对所能接受的量级,必须对图像进行合理且有效的降维,也就是通过设计合理的计算窗口,将窗口内的像素按一定规律合并,同时使得窗口内的原有信息在合并之后仍然能够相互区别。通常要经过若干次降维才能达到所需的维度。降维主要采用卷积计算的方式。
4)特征向量的维度。特征向量的内容与网络结构直接相关。深度神经网络的每层输出都作为新的特征输入到下一层的网络中。实践中往往提取网络中最后一个全连接层的一维向量作为最终的识别特征向量。向量维度大小是识别环节中最重要的参数,相当于现行的指纹标准中对特征点数量的定义,对系统运行性能和数据存储空间有很强的影响。过大的特征向量会导致系统性能下降,而过小的则会影响准确性。初期的经验值往往在1 024级别左右,但随着研究的深入,我们发现更低量级的特征向量也可以较好地对指纹进行表达。
3.4.1 卷积神经网络
卷积神经网络[23-24]是近年来图像识别方面最流行的深度神经网络,通过它可以实现对输入的指纹图像进行降维、降噪、分类等一系列功能。卷积操作本质上是一种压缩技术,通过卷积计算,可以对指纹图像进行有效的降维,将大图逐渐缩小为小图。深度学习技术之所以能够对高分辨率的指纹图像实现高速有效的特征提取,卷积网络的使用功不可没。图2为使用卷积神经网络进行纹型分类的示意图。
3.4.2 自编码器
对于无监督的深度学习,可以使用同样的指纹图像同时作为输入和输出数据,也就是指纹图像自己做自己的标签,这样的网络模型称为自编码器[25-26]。训练自编码器要达到的目标是:通过编码网络进行指纹图像的压缩编码、得到压缩特征表达,再通过解码网络反向计算还原成原图。也就是中间的压缩特征可作为指纹的特征向量在后续的识别中使用。图3为指纹图像自编码器的示意图。
3.4.3 卷积自编码器
将卷积神经网络和自编码器相结合,称为卷积自编码器[27-28],是自编码器的一种具体实现方法。如果将输出的指纹加以变换,也可以让网络学习到变换的规律。如将指纹图像原图对应的细化图作为重构图像,则通过网络训练可以实现指纹图像细化的深度神经网络。见图4。
2016年以来,国际国内已经有多个研究机构开展了基于人工智能的指纹自动识别技术研究工作,很多AFIS研发企业都参与其中。目前大多数成果处于试验阶段或与传统算法混合使用,形成独立产品的屈指可数。本章给出对目前国内某基于人工智能技术的AFIS(记为A系统)核心算法的性能测试情况,并将其与国内几个主流的传统AFIS产品(分别记为B系统、C系统、D系统、E系统)的测试结果进行比较。
4.1.1 正查测试
从某公安机关AFIS系统中选取部分具有代表性的比中关系,由指纹专家逐一核对检视确认,整理出现场档案比对关系6 227对。
将比中的档案指纹与500万人员的指纹库随机混合在一起。使用A系统将现场指纹逐一在指纹库中进行比对。目标现场指纹比对结果候选队列前200位的有4 231枚,占67.9%;未进入前200位的视为漏比,占32.1%。比中情况见表1。
表1 人工智能算法正查测试Table 1 Scene fi ngerprint matching to the archived fi ngerprint by AI algorithm
4.1.2 查重测试
在某公安机关收集的全国指纹库中抽取用于测试的十指指纹数据,其中有重卡的十指指纹和无重卡的十指指纹各10 000人份。经进一步核对,确定20人份十指指纹无效,10 640人份有重卡、9 340人份无重卡,合计19 980人份十指指纹作为测试数据。将数据混入正查的500万人指纹库中,在A系统中进行查重测试,共声明比中十指指纹重卡9 281人份。经人工核对,情况见表2。
表2 人工智能算法查重测试Table 2 Searching for the repetitive archived fi ngerprint by AI algorithm
在19 980人份十指指纹数据中,A系统共声明比中十指指纹重卡9 281人份,经专家人工核对,有9 159人份为正确比中关系,有1 481人份未比中。无重卡的9 340人中,有122人份为错误比中关系。由此可计算出综合比中率、错比率、漏比率。综合比中率为重卡数据查出率和无重卡数据未错识率的综合比率,综合比中率=[查出率+ (100%-错识率)]/ 2 =[86.1%+ (100%-1.3%)] / 2 = 92.4%。错比率为总量指纹中错误比出的概率,错比率=错误声明比中数量/总量=122/19 980 ≈ 0.61%;漏比率为总量指纹中未正确比出的概率,漏比率=未比中数量/总量=1 481/19 980≈7.41%。
对国内几个主流的AFIS产品,使用同样的数据进行了正查和查重测试。由于B、C、D、E系统是基于人工标注现场指纹特征点,部分指纹存在两种及以上的标注方法,对每种标注方法作为单独的任务进行提交,因此总任务数会大于6 227,达到6 496。结果对照见表3、表4。
表3 多系统正查测试结果对照表Table 3 Comparison for scene fi ngerprint matching to archived fi ngerprint among multiple algorithms
表4 多系统查重测试结果对照表Table 4 Comparison for searching the repetitive archived fi ngerprint among multiple algorithms
不断提升的指纹应用需求是指纹自动识别技术的发展动力。随着指纹数据库容量的增加,自动识别技术的发展,新的技术取代旧的技术是必然趋势。从指纹识别所属的模式识别、图像处理领域看,以深度学习为代表的人工智能技术已经取得了大量令人瞩目的成果,大大推动了这些领域的科技进步和应用发展。在指纹领域,经过探索,已经出现了性能不低于主流AFIS产品的人工智能算法。随着指纹应用需求的不断丰富,以及人工智能技术的不断进步和新技术的产生,基于深度学习的指纹自动识别技术将不断发展完善,迈向最终的全面赶超阶段。