赞
踩
本文主要基于《Handbook of Fingerprint Recognition》第三版第七章“Fingerprint Synthesis”的内容。本文会不定期更新,以反映一些新的进展和思考。
在指纹识别算法研究中,使用贴近应用的真实指纹库对算法进行评价是非常重要的。这就需要指纹库充分覆盖目标人群、跨越较长的时间周期、适应多种传感器。由于指纹识别的错误率很低,要得到可靠的错误率,对于样本量的需求就很大。此外,没有任何一家企业或者研究机构能掌握所有的指纹识别技术;为了便于直接比较已知的各种识别技术,指导改进技术的方向,数据库最好是公开的。然而,采集大型指纹数据库面临许多困难:
如果能人工合成大量真实的指纹图像,就可以避免上述问题。但是合成的困难在于如何建模指纹的多样性(类间变化)以及特定指纹在各种变量下产生的图像多样性(类内变化)。
现有的指纹合成研究可分为两大类:
下图将真实指纹与几种合成方法生成的指纹进行比较。
下面表格分别报告了一些代表性合成技术的以下信息:用于生成方向场和脊线图案的模型,从同一合成手指生成多个捺印的能力,以及生成有关特征(例如细节点)的真值的能力。
方法 | 方向场模型 | 脊线生成 | 多个捺印 | 真值 |
---|---|---|---|---|
Cappelli et al. (2000, 2002) | Zero-pole | Iterative Gabor | Yes | Yes |
Araque et al. (2002) | Zero-pole | Iterative Gabor | Possible | Possible |
Zhao et al. (2012) | Zero-pole | AM-FM | Yes | Possible |
Imdahl et al. (2015) | Real fingerprint | Iterative Gabor | Possible | Possible |
Cao and Jain (2018) | IWGAN/autoencoder | No | No | |
Attia et al. (2019) | Variational autoencoder | No | No | |
Mistry et al. (2020) | IWGAN/autoencoder/identity loss | No | No |
下面,第5节介绍如何检验合成指纹技术;第6节介绍SFinGe指纹合成软件。
典型指纹特征提取算法的流程如下(见下图):(1)首先从背景中分割指纹,(2)然后估计局部脊线频率图和方向场,(3)最后利用此信息来增强脊线并找到细节点。
主指纹生成算法的顺序与指纹特征提取算法的顺序相反(见下图)。先合成指纹区域、方向场和频率图,然后合成脊线图案。
生成主指纹通常采用以下步骤:
受手指大小、角度和压力等各种因素的影响,指纹图像具有不同的尺寸和轮廓。
Cappelli等人(2002)基于对许多指纹图像的经验分析,提出基于四个椭圆弧和一个矩形并由五个参数控制的简单模型(见下图),可以模拟指纹形状的大多数变化。下图显示了该模型通过改变五个参数生成的一些指纹形状。
方向场定义了指纹脊线的总体流向。生成逼真的方向场是指纹合成的关键步骤。一种方法是从数据库中随机选择真实指纹的方向场(Imdahl等,2015)。这种方法很简单,保证了方向场的真实性,但另一方面,它将方向场的数量限制为真实指纹数据库的大小。
大多数用于合成方向场的技术都是基于Sherlock和Monro(1993)提出的零极模型。该模型允许仅根据指纹奇异点(环形和三角形)的位置来唯一确定对应的方向场。在此模型中,图像位于复平面中,局部脊线方向是复有理函数的平方根的相位,其奇异点(极点和零点)与指纹奇异点位于同一位置。
零极点模型可用于生成方向场。首先随机选择一个指纹类型,然后根据特定类型的约束,随机选择奇异点的位置(例如,左箕的三角奇异点必须位于环形奇异点的右侧)。下图显示了该模型生成的一些方向场。可惜该模型不支持为不包含奇异点的弓型指纹生成方向场。为此,Cappelli等人(2000)提出用正弦函数(调整其频率和幅度以控制弓型的曲率和长宽比)生成弓型方向场。
真实指纹的方向场并不能完全由奇异点类型和位置确定。因此,尽管零极模型是一个简单优雅的模型,但建模效果并不令人满意。下图显示了指纹图像(属于左箕)和零极模型生成的方向场,具有相同的奇异点位置。合成方向场和真实方向场之间存在明显的差异,特别是在环形奇异点上方以及环形奇异点和三角奇异点之间的区域。因此,一些研究者使用了更复杂的模型。Zhao等人(2012)将方向场分解为奇异和残差分量,这些分量分别由零极模型和余弦外围模型近似(Wang和Hu,2011)。零极模型的参数(奇异点的位置)根据Cappelli和Maltoni (2009)中的统计模型进行采样,而余弦外围模型的参数从真实指纹库训练的高斯混合模型采样。
Araque等人(2002)和Cappelli等人(2002)采用了Vizcaya和Gerhardt(1996)提出的零极模型的变体。该模型引入了更多的自由度来应对方向场的变化。下图a,b显示了Vizcaya-Gerhardt模型生成的两个方向场。c和d的对比表明,在拟合真实指纹方向场方面,Vizcaya-Gerhardt模型要优于零级模型。
许多指纹合成研究忽略了频率图的生成,例如Araque等人(2002)、Zhao等人(2012)、Imdahl等人(2015)都假设整个指纹的频率是恒定的。
Cappelli等人(2000)提出了一种更复杂的方法,作者通过对大量指纹图像的观察注意到,在最上方环形奇异点(也叫中心点)以上和最下方三角奇异点以下的区域,脊线频率往往低于指纹的其余区域(见下图)。
因此,他们采取的频率图生成步骤如下:
下图显示了Cappelli等人(2000)合成的一些频率图。
脊线图案是指纹最显著的特征,其中的细节点是多数指纹匹配算法依赖的特征。旨在模拟脊线模式的研究(基于胚胎发生过程中指纹形成的一些假设物理机制)在第一次指纹合成工作之前。在Sherstinsky和Picard(1994)中,引入了一种采用称为“M-lattice”的动态非线性系统的复杂方法,目的是将灰度指纹图像二值化。该方法基于Turing(1953)研究动物皮肤斑纹的形成机制时提出的反应扩散模型。虽然Sherstinsky和Picard没有解决指纹合成问题,但他们提出的脊线模型可以用作指纹生成的基础。Penrose假设,诸如环形和螺旋之类的指纹图案是由脊形成的,对应于脊形成时胚胎皮肤的曲率线(Penrose,1965)。根据这一假设,Mardia等人(1992)证明了指纹图案可以通过具有精确解的微分方程来建模。
Novikov和Glushchenko(1998)提出了一种在频域中运行的脊线生成技术。对于初始随机图像的每个像素,计算以其为中心的局部窗口的二维傅里叶变换。最高能量谐波(即空间域的二维正弦波)是从傅里叶频谱沿局部脊线方向(来自人工生成的方向场)的法向选择的。将所有正弦曲线相加,结果二值化;反复重复该过程,直到获得足够平滑的图像。此方法与本节后面讨论的空间域中Gabor滤波器的迭代应用有些类似。事实上,Gabor滤波器的MTF(调制传递函数)的特征就是沿滤波器方向的法线有两个对称的峰。
Kosz(1999)提到可以利用脊线和细节点数学模型合成指纹。Bicz(2003)提供了有关该技术的更多详细信息。根据该模型,指纹可以描述为2D幅度和频率调制(AM-FM)信号:
f
(
x
,
y
)
=
cos
(
ϕ
(
x
,
y
)
)
,
f(x,y) = \cos (\phi (x,y)),
f(x,y)=cos(ϕ(x,y)),
ϕ
(
x
,
y
)
=
ϕ
O
(
x
,
y
)
+
ϕ
M
(
x
,
y
)
.
\phi \left( {x,y} \right) = \phi_{O} \left( {x,y} \right) + \phi_{M} \left( {x,y} \right).
ϕ(x,y)=ϕO(x,y)+ϕM(x,y).
ϕ
M
\phi_{M}
ϕM 可以通过添加
n
n
n 个不同偏移的反正切函数来生成
n
n
n 个细节点:
ϕ
M
(
x
,
y
)
=
∑
i
=
1
n
p
i
⋅
arctan
(
y
−
y
i
x
−
x
i
)
,
\phi_{M} \left( {x,y} \right) = \sum \limits_{i = 1}^{n} p_{i} \cdot \arctan \left( {\frac{{y - y_{i} }}{{x - x_{i} }}} \right),
ϕM(x,y)=i=1∑npi⋅arctan(x−xiy−yi),其中
x
i
,
y
i
x_i, y_i
xi,yi 是细节点
i
i
i 的位置,
p
i
p_i
pi(−1或1)表示其极性。下图显示了使用上述公式生成的一个合成图案。Larkin和Fletcher(2007)表明,上述模型可以用于指纹表示、合成和压缩。
从他们的工作开始,Feng和Jain(2011)提出了一种从细节点重建指纹的新方法;Zhao等人(2012)的指纹合成方法使用从Chen和Jain(2009)的细节点空间分布模型中采样得到的细节点集合作为输入,利用相位模型重建出指纹。
Cappelli等人(2000)介绍了一种基于Gabor滤波器的生成技术。这项技术非常简单,同时又很强大。通过将几个黑点随机放入白色图像来创建初始图像;然后,使用Gabor滤波器(根据局部脊线方向和频率进行调整)迭代增强该初始图像,会逐渐出现非常逼真的脊线图案,同时不同类型的细节点会随机出现。
下图显示了迭代脊线生成过程的一些示例。实验发现,增加初始点的数量提供了更不规则的图案,细节点更丰富。这并不奇怪,因为扩展不同的图像区域会在区域合并时产生干扰,从而有利于细节点的产生。Araque等人(2002)使用了类似的技术,只是他们使用二值方向滤波器而不是Gabor滤波器;Imdahl等人(2015)的初始图像中,每个像素被随机选择为黑色或白色,而不是只选择几个黑色像素。
Hill(2001)介绍了另一种脊线生成技术:从一组给定的细节点开始生成指纹图案。这项工作旨在证明可以通过盗取细节点模板,然后重建指纹图像,最后欺骗指纹识别系统。不过,这项早期工作的算法(从细节点位置开始,然后迭代填充空白空间)会产生视觉上不真实的图像。Rahmes等人(2007)引入了一种更有效的脊线重建方法,目的是通过自动恢复脊线模式中的低质量或缺失区域来改善指纹比对性能;但是,这种方法仅适用于重建真实指纹中的一些缺失区域,不能用于创建全新的指纹图像。
最后,Kücken和Champod(2013)提出了一种指纹形成模型,他们假设了两个影响因素:一方面产生机械压应力的生长力(另见Kücken和Newell,2004),另一方面是Merkel细胞从随机初始配置重新排列成线。计算机模拟表明,通过应用Kücken的模型可以产生与人类指纹非常相似的图案:可以模拟三种主要的指纹类型,并且在具有不同方向和/或频率的脊线图案相遇的区域存在细节点(Kücken,2007)。有趣的是,根据Kücken方法形成细节点与Gabor滤波产生细节点有很强的相似性,尽管这两种方法是基于完全不同的假设。
有几个因素会导致指纹的类内变化:
通过模拟上面的各种因素,就可以从主指纹生成各种各样的捺印:
皮肤潮湿和手指对传感器的压力对采集的图像有类似的影响:当皮肤干燥或压力小时,脊线显得更细,而当皮肤潮湿或压力大时,脊线显得更粗(见下图)。
Cappelli等人(2002)和Zhao等人(2012)对主指纹做形态学处理以模拟不同程度的潮湿/压力。使用腐蚀算子模拟低压或干性皮肤,采用膨胀算子模拟高压或湿皮肤。采用的结构元素是方块,其大小从 2 × 2 到 4 × 4 不等,以控制脊线宽度变化的大小。
当手指以不同姿态(不同的俯仰角和滚动角)按压时,皮肤变形往往是不一致的(见下图)。原因是与传感器密切接触的皮肤部位不同,因而容易发生非线性变形的部位也不同。
Cappelli等人(2002)利用了Cappelli等人(2001)中引入的皮肤扭曲模型。与指纹匹配不同,在指纹匹配中,函数 distortion()(见第 4.5.1 节)应用于重新映射细节点以改善指纹匹配,这里的映射应用于整个图像,以模拟逼真的扭曲印象。为此,采用拉格朗日插值法获得平滑的灰度变形图像。执行拉格朗日插值需要计算逆映射函数 distortion–1(),但遗憾的是,此函数无法解析表示。因此,对于映射中涉及的每个像素,牛顿-拉夫森方法(Press等人,1992)用于数值计算逆。下图显示了主指纹及其扭曲的捺印。Zhao等人(2012) 采用了相似的技术。
还有研究者对真实指纹图像进行扭曲,以制造多个样本,用于训练深度神经网络。例如,Cui等人(2021)生成扭曲的指纹以训练用于指纹稠密配准的卷积神经网络;Gu等人(2021)生成同一指纹的多个捺印用于训练基于CNN的细节点描述符。
在指纹采集过程中,有几个因素会导致图像的质量降级,从而产生有噪声的灰度图像。
Cappelli等人(2002)依次执行以下步骤以添加扰动并渲染出最终的合成图像:
步骤1和4是必要的,可以避免过度的整体图像平滑。下图显示了一个示例,其中报告了在步骤2、4和5之后生成的中间图像。Zhao等人(2012)采用了非常相似的方法。
Cappelli等人(2004)改进了上述技术,用更相干的噪声代替了步骤3中的均匀噪声生成(Perlin,1985),效果见下图。
Cho等人(2007)提出了一种基于遗传算法的方法,通过选择一组用于模拟不同采集条件的滤波器,从给定的指纹数据集中生成新图像。
Johnson等人(2013)提出了一种使用五个特征对脊线图案进行建模的方法:沿脊线中心线的灰度、脊线宽度、脊线横截面坡度、脊线噪声和谷线噪声。通过从真实指纹图像数据库对这些特征进行建模,可以从主指纹渲染出具有类似特征的合成图像。
Cappelli等人(2004)采用了基于KL变换的统计模型(Jolliffe,1986)来生成类似于使用给定传感器获取的指纹图像的背景。该模型需要一组纯背景图像作为训练集(见下图),以计算表示训练背景图像中主要变化的线性子空间,然后用于随机生成新背景。
下图报告了根据上述模型生成的三个具有背景的合成指纹。
生成逼真的合成背景对于模拟现场指纹尤为重要(见下图)。Rodriguez等人(2012)展示了一种将部分指纹图案与类似于现场指纹的背景相结合的技术。Qian等人(2019)通过将结构化噪声添加到真实指纹来模拟现场指纹噪声,目的是训练卷积神经网络以进行现场指纹增强。
一些指纹合成方法采用无监督机器学习技术来训练生成模型,将随机向量直接映射为指纹图像。深度生成模型是生成模型和深度神经网络的结合,在图像合成方面显示出巨大的前景。其中,变分自动编码器(VAEs)(Kingma和Welling,2013)和生成对抗网络(GAN)(Goodfellow,2016)是目前最受欢迎的两种深度生成模型。两者都已被研究者用于指纹合成。
Minaee和Abdolrashidi(2018)训练GAN根据从真实指纹数据库中采样的先验分布生成合成图像。鉴别器网络包含四个卷积层,末端有一个全连接层;生成器模型包含五个反卷积层。两个网络都使用批量归一化和泄漏整流线性单元。作者将基于各向异性总变异(简单地定义为每个像素梯度的水平和垂直分量之和)的正则化项添加到损失函数中,以提高模型学习如何生成具有足够连通度的脊线的能力。
Attia等人(2019)训练遵循正态分布的32个元素的VAE以生成合成指纹。编码器是一个具有六个卷积层的网络,这些卷积层将输入图像转换为大小为 4 × 4 的 2048 个特征图,然后是另外两个卷积层,最终产生描述隐向量正态分布的两个向量(前者包含 32 个均值,后者包含 32 个标准差)。解码器由七个反卷积层组成,这些层生成对应于给定隐向量的图像。为了提高合成指纹的视觉真实感,作者在VAE中采用的典型损失函数中添加了一项来提高图像的平滑度。
Cao和Jain(2018)试验了I-WGAN,这是Wasserstein GAN的改进版本(Gulrajani等人,2017),由卷积自动编码器初始化。自动编码器和I-WGAN都在一个包含25万个滚动指纹的数据库上进行训练。生成器网络有一个投影和整形层,然后是七个反卷积层:第一层从 512 维输入随机向量生成 4 × 4 个特征图;以下每一层的内核大小为 4 × 4,步幅大小为 2 × 2,以连续将特征图大小放大 2 倍,从而得到大小为 512 × 512 的最终输出图像。鉴别器网络基本上是生成器的逆。两个网络都使用批量归一化和泄漏整流线性单元,输出使用tanh。
Mistry等人(2020)指出,虽然上述一些技术可以生成逼真的合成指纹,尤其是那些在大型数据集上训练的技术,但它们不考虑生成的指纹的独特性,并且可能会不断生成仅对应于几个合成手指的图像。从Cao和Jain(2018)的工作开始,为了鼓励生成具有不同身份的指纹,他们包含一个额外的损失函数:该损失函数基于DeepPrint网络,旨在最小化生成的指纹之间的相似性。
下表分别报告了上述每种方法的训练指纹数量、输入向量的大小、生成器网络中的反卷积层数和最终图像大小。这些方法生成的指纹的一些示例可以在下图中找到。这些技术的一个明显优势是,只需提供一组适当的真实图像,就可以训练它们生成具有特定特征的图像;例如,可以模拟滚动或平面指纹,而无需对其特征进行显式建模;另一方面,它们有很大的局限性:无法生成同一“合成手指”的更多指纹捺印,这就无法用于指纹匹配。
自从早期的指纹合成工作以来,研究人员一直试图评估合成图像的质量。作为一个新的研究领域,没有验证合成指纹生成器的标准方法。这方面的初步尝试之一是在第十五届国际模式识别会议ICPR(2000年9月)期间进行的一项实验,当时要求大约90名与会者(其中大多数具有指纹分析方面的背景)在四幅图像中(其中三幅是真实指纹,一幅是用Cappelli等人方法生成的)找到合成指纹图像。只有23%的受试者能够正确识别合成图像,这表明合成指纹在视觉上看起来与真实指纹相似。此后,研究者已经提出了几种技术来验证指纹合成算法。下面介绍最常见的技术。
结合第二届国际指纹验证竞赛FVC2002进行了广泛的测试(Maio等,2002b)。在那场比赛中,使用了四个指纹数据库:其中三个(DB1,DB2和DB3)是从真实手指获取的,而第四个数据库(DB4)中的指纹是使用Cappelli等人(2002)方法合成的。下面对四个FVC2002数据库上所有参赛算法的排名分布进行分析,以了解参赛算法在DB4上的表现是否与其他数据库相似。设
R
i
k
(
j
)
R^{(j)}_{ik}
Rik(j)是算法
i
i
i 根据性能指标
j
j
j 在数据库
k
k
k 上的排名(在FVC2002中,有31个参赛算法,并使用四个准确性指标来比较性能:EER,ZeroFMR,FMR1000和FMR100)。设
R
R
D
i
(
j
)
RRD^{(j)}_i
RRDi(j)和
S
R
D
i
(
j
)
SRD^{(j)}_i
SRDi(j)分别是参赛算法
i
i
i 根据指标
j
j
j 在三个真实数据库之间以及合成数据库与每个真实数据库之间的平均排名差异:
R
R
D
i
(
j
)
=
∣
R
i
1
(
j
)
−
R
i
2
(
j
)
∣
+
∣
R
i
1
(
j
)
−
R
i
3
(
j
)
∣
+
∣
R
i
2
(
j
)
−
R
i
3
(
j
)
∣
3
,
RRD_{i}^{\left( j \right)} = \frac{{\left| {R_{i1}^{\left( j \right)} - R_{i2}^{\left( j \right)} } \right| + \left| {R_{i1}^{\left( j \right)} - R_{i3}^{\left( j \right)} } \right| + \left| {R_{i2}^{\left( j \right)} - R_{i3}^{\left( j \right)} } \right|}}{3},
RRDi(j)=3
Ri1(j)−Ri2(j)
+
Ri1(j)−Ri3(j)
+
Ri2(j)−Ri3(j)
,
S
R
D
i
(
j
)
=
∣
R
i
4
(
j
)
−
R
i
1
(
j
)
∣
+
∣
R
i
4
(
j
)
−
R
i
2
(
j
)
∣
+
∣
R
i
4
(
j
)
−
R
i
3
(
j
)
∣
3
.
SRD_{i}^{\left( j \right)} = \frac{{\left| {R_{i4}^{\left( j \right)} - R_{i1}^{\left( j \right)} } \right| + \left| {R_{i4}^{\left( j \right)} - R_{i2}^{\left( j \right)} } \right| + \left| {R_{i4}^{\left( j \right)} - R_{i3}^{\left( j \right)} } \right|}}{3}.
SRDi(j)=3
Ri4(j)−Ri1(j)
+
Ri4(j)−Ri2(j)
+
Ri4(j)−Ri3(j)
.下表报告对于每个指标
j
=
1...4
j = 1...4
j=1...4,
R
R
D
i
(
j
)
RRD^{(j)}_i
RRDi(j)和
S
R
D
i
(
j
)
SRD^{(j)}_i
SRDi(j)的分布。结果有些出乎意料:排名差异
S
R
D
(
j
)
SRD^{(j)}
SRD(j)往往甚至低于对应的
R
R
D
(
j
)
RRD^{(j)}
RRD(j),说明合成数据库与真实数据库之间的差异甚至小于三个真实数据库之间的差异。这表明Cappelli等人(2002)生成的指纹数据库可以用于测量匹配算法的性能。
R R D i ( 1 ) RRD^{(1)}_i RRDi(1) | S R D i ( 1 ) SRD^{(1)}_i SRDi(1) | R R D i ( 2 ) RRD^{(2)}_i RRDi(2) | S R D i ( 2 ) SRD^{(2)}_i SRDi(2) | R R D i ( 3 j ) RRD^{(3j)}_i RRDi(3j) | S R D i ( 3 ) SRD^{(3)}_i SRDi(3) | R R D i ( 4 ) RRD^{(4)}_i RRDi(4) | S R D i ( 4 ) SRD^{(4)}_i SRDi(4) | |
---|---|---|---|---|---|---|---|---|
Average | 2.84 | 2.65 | 3.14 | 2.74 | 2.58 | 2.58 | 2.69 | 2.59 |
Max | 8.67 | 11.33 | 11.33 | 7.67 | 7.33 | 5.67 | 8.00 | 10.67 |
Min | 0.00 | 0.00 | 0.67 | 0.33 | 0.00 | 0.33 | 0.00 | 0.33 |
St. Dev | 2.51 | 2.43 | 2.35 | 1.76 | 1.94 | 1.45 | 2.15 | 2.36 |
Zhao等人(2012)比较了从合成指纹数据库(1000个主指纹,每个有5幅图像)获得的真匹配和假匹配分数分布与来自真实指纹数据库(NIST DB4)的分数分布。每个手指的第一幅图像用作参考,其余的用作查询。下图显示了使用指纹比对算法得出的分数分布。值得注意的是,合成指纹数据库的分布与真实指纹数据库的分布趋势非常相似。
下图显示了由两种深度生成方法创建的合成数据库上假匹配分数分布:Cao和Jain(2018)和Mistry等人(2020)。注意这些技术无法获得真匹配分数分布,因为它们无法生成同一合成手指的多个捺印。
指纹识别的性能在很大程度上取决于指纹质量。因此,希望合成数据库上的指纹质量分布与真实数据库上的分布相似。Cappelli等人(2018)研究了如何改进Cappelli等人(2002)提出的指纹合成技术,以更好地模拟给定的真实指纹数据库:他们考虑的指标之一是使用NFIQ测量的指纹质量。其他基于指纹质量的验证实验见于Cao和Jain(2018)、Attia等人(2019)、Mistry等人(2020)。
二维细节点直方图是指纹中所有细节点对的相对距离和方向差异的固定长度描述符:两个特征(像素距离和方向差)都按相同大小的间隔以构建直方图。Gottschlich和Huckemann(2014)表明,细节点直方图可以帮助区分使用Cappelli等人(2002)生成的合成指纹和真实指纹。Imdahl等人(2015)提出可以生成大量合成图像,并从中选择细节点直方图更接近真实指纹库平均细节点直方图的图像,来提高合成数据库的真实性。Cao和Jain(2018)比较了真实和合成指纹数据库的平均细节点直方图,以验证一种新的深度生成方法。
Cappelli等人(2018)使用10个特征来比较合成和真实指纹数据库:
上述特征的分布是从六个真实数据库上估计的,这帮助Cappelli等人(2018)提高了Cappelli等人(2002)提出的指纹合成技术的真实性。在改进方法中,对于每个特征,合成数据库和真实数据库之间的平均分布差异始终小于或等于真实数据库对之间的分布差异。Mistry 等人(2020 年)采用了类似的方法来评估其深度生成方法的真实性。
在大型数据库(数百万个指纹)上运行指纹识别实验需要解决两个挑战:(1)在合理的时间内创建如此大量的合成图像,(2)使用足够快的识别算法来处理大量指纹。
Cappelli等人(2018)使用Cappelli等人(2002)最初提出的方法的改进和优化实现,生成了一个包含2000万个合成指纹(1000万个合成手指,每个指纹有两个捺印)的数据库,有关该软件的说明,请参见以下第6节。使用总共 180 个 CPU 内核的低成本工作站集群生成数据库大约需要三天时间。使用MCC算法的优化实现在该数据库上进行了指纹验证和识别实验,在一台计算机上每秒可以进行超过4200万次指纹比较。下图报告了合成数据库的验证(1:1比较)实验结果,包括五个性能指标:EER,FMR100(FMR = 1%时的FNMR值),FMR1000(FMR = 0.1%时的FNMR值),FMR10000(FMR = 0.01%时的FNMR值)和ZeroFMR(FMR = 0%时的FNMR值)。除ZeroFMR外,性能指标的恒定趋势非常明显,表明合成方法具有足够的自由度来创建大型数据库(由于合成模型的限制,没有合成身份的碰撞)。
下图报告指纹识别(1:N)实验结果。报告了三个性能指标:EER、FPIR1K(FPIR = 0.1% 时的 FNIR 值)和 FPIR10K(FPIR = 0.01% 时的 FNIR 值)。从图中可以看出,错误率有一个平滑合理的趋势。图中还绘制了与真实数据进行的两次大规模指纹识别评估结果相对应的点:印度的UIDAI项目和NIST FPVTE 2012。可以注意到,这些结果与合成指纹数据获得的错误率相当一致,表明用合成数据预测指纹识别结果的可行性。
Mistry等人(2020)生成了一个包含1亿个合成指纹的数据库。作者在高性能计算中心(HPCC)上运行他们的深度生成模型,在具有14个内核和NVIDIA Tesla K80 GPU的计算机上花费了51个CPU小时。作者通过针对如此大的数据库搜索NIST DB4指纹来进行指纹识别实验。使用Engelsma等人(2021)引入的DeepPrint指纹匹配器来比对指纹。这是文献中报道的涉及合成指纹的最大规模的实验。下图显示了NIST DB4上针对Cao和Jain(2018)中提出的方法以及Mistry等人(2020)中提出的方法生成的1亿个合成数据库的rank-N搜索精度。作者注意到使用后一种方法生成的指纹的搜索性能要低得多,认为这证实了Mistry等人(2020)的指纹比Cao和Jain(2018)的指纹更独特。
博洛尼亚大学生物识别系统实验室开发的SFinGe对应于Cappelli等人(2000,2002)的方法。SFinGe(Synthetic Fingerprint Generation)是意大利语中的“狮身人面像”一词。当前版本(SFinGe v5.1)包括Cappelli等人(2004)和Cappelli等人(2018)的改进。下图显示了指纹生成过程:步骤1到4创建主指纹;对从主指纹派生的每个指纹执行步骤5到10。下图显示了SFinGe生成的一些指纹。
SFinGe还能够生成每个合成指纹相关特征的真值,例如方向场、局部脊线频率和细节点。真值数据对于特征提取算法的开发、优化和评估非常有用,特别是对于通常需要大量标记数据的基于学习的技术。细节点真值的创建与指纹生成并行进行(下图)。为了生成细节点,将ISO/IEC 19794-2(2005)中定义的标准细节点提取规则应用于主指纹,然后将对图像执行的所有相关转换应用于细节点(例如,平移、旋转、变形)。
这种方法有一些明显的优势:
其他特征真值的生成可以以类似的方式进行。例如,将所有相关变换应用于在步骤2中计算的方向场,从而获得最终合成指纹图像的真实方向场。
下图显示了软件的用户界面:对于生成方法的每个步骤,用户可以调整参数并观察对合成指纹的影响。
该软件允许在给定相对较小的输入参数集(见图7.42)的情况下以批处理模式生成合成指纹数据库:手指数,每个手指的印模数,图像大小和分辨率,随机数生成器的种子,最大平移/旋转量,最大扰动或噪声量,最大变形量, 和全局数据库难度。
指纹数据库(包括真值数据)的生成可以并行执行,因为每个主指纹(及其捺印)都独立于其他指纹。这使得可以在许多计算机上分发该过程。例如,在网络中使用10台3 GHz PC,可以在不到两个小时的时间内生成包含10万个指纹(1万个手指,每个手指10幅图像)的数据库。因此,可以在短时间内生成一个大型的合成指纹数据库。此外,通过指定相同的参数和相同的随机数生成器种子,可以在不同的地方生成两个相同的数据库。这允许在不交换大量指纹图像的情况下重现相同的数据库。
指纹合成是克服指纹数据采集难的有效途径。当然,合成指纹不能完全替代真实指纹数据库,特别是当必须根据给定的应用程序环境和用户群体的人口统计数据来衡量性能时。另一方面,合成指纹已被证明非常适合FVC2000-FVC2006等技术评测。合成指纹的使用不仅限于性能评估问题。它还可用于以下任务:
如何将深度生成模型的优势(灵活性和真实性)与主指纹方法的优势(真值生成和多个捺印)相结合,是一个值得探索的方向。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。