指纹局部脊线方向估计方法详解
立即解锁
发布时间: 2025-09-02 00:21:38 阅读量: 6 订阅数: 11 AIGC 

# 指纹局部脊线方向估计方法详解
## 1. 局部脊线方向估计概述
局部脊线方向估计,也称为脊线流估计,是指纹图像处理中至关重要的一步。可靠的方向信息能够显著提升后续处理任务的效果,特别是通过上下文滤波进行指纹增强。
在像素点 $[x, y]$ 处的局部脊线方向,是指穿过以 $[x, y]$ 为中心的任意小邻域的指纹脊线与水平轴所形成的角度 $\theta_{xy}$。由于指纹脊线没有方向,$\theta_{xy}$ 是一个无向方向,取值范围在 $[0…180°)$。
大多数指纹处理和特征提取方法不会在每个像素点计算局部脊线方向,而是在离散位置进行估计,这样可以减少计算量,并且通过插值仍能得到其他像素点的估计值。指纹方向场(也称为方向图像或定向图像)是一个矩阵 $D$,其元素编码了指纹脊线的局部方向。每个元素 $\theta_{ij}$ 对应位于像素 $[x_i,y_j]$ 上的网格节点 $[i, j]$,表示 $[x_i,y_i]$ 邻域内指纹脊线的平均方向。此外,通常会为每个元素 $\theta_{ij}$ 关联一个值 $r_{ij}$,用于表示该方向的可靠性(或一致性)。在指纹图像中,噪声严重和损坏区域的 $r_{ij}$ 值较低,而高质量区域的 $r_{ij}$ 值较高。
## 2. 基于梯度的方法
### 2.1 基本原理
提取局部脊线方向最简单、最自然的方法是基于指纹图像中梯度的计算。图像 $I$ 在点 $[x, y]$ 处的梯度 $\nabla(x, y)$ 是一个二维向量 $[\nabla_x(x, y),\nabla_y(x, y)]$,其中 $\nabla_x$ 和 $\nabla_y$ 分别是 $I$ 在 $[x, y]$ 处关于 $x$ 和 $y$ 方向的导数。梯度相位角表示强度变化最大的方向,因此,穿过以 $[x, y]$ 为中心区域的假设边缘的方向 $\theta$ 与该点的梯度相位角正交。
### 2.2 存在的问题
- 使用经典的 Prewitt 或 Sobel 卷积掩码确定梯度的 $\nabla_x$ 和 $\nabla_y$ 分量,并根据 $\nabla_y/\nabla_x$ 比值的反正切计算 $\theta$ 时,会因 90° 附近的非线性和不连续性而产生问题。
- 单个方向估计反映的脊谷方向尺度过细,通常对指纹图像中的噪声非常敏感。
- 由于角度的循环性,简单地对梯度估计进行平均没有意义。例如,5° 和 175° 的平均方向不是 90°(算术平均值),而是 0°。而且,平均方向的概念并不总是明确定义的,例如 0° 和 90° 的正确平均方向是 45° 还是 135° 并不明确。
### 2.3 解决方案
Kass 和 Witkin(1987)提出了一种简单而优雅的解决方案,允许对局部梯度估计进行平均。他们的基本思想是将角度加倍,使得每个单个方向估计由向量表示:
$d = [r · cos (2\theta),r · sin (2\theta)]$
其中,$2\theta$ 用于消除角度的循环性,可靠性 $r$ 与方向估计强度成正比(例如,梯度的平方范数:$\nabla_x^2 + \nabla_y^2$)。在局部 $n×n$ 窗口 $W$ 中对角度进行平均以获得更稳健的估计 $d$,可以通过分别对两个($x$ 和 $y$)分量进行平均来实现:
$d = \left[ \frac{1}{n^2} \sum_{W} r · cos(2\theta), \frac{1}{n^2} \sum_{W} r · sin (2\theta) \right]$
### 2.4 具体计算方法
基于上述思想,可以推导出一种计算指纹方向图像的有效方法。例如,Ratha 等人(1995)通过组合以 $[x_i,y_j]$ 为中心的 $17×17$ 窗口 $W$ 内的多个梯度估计来计算主导脊线方向 $\theta_{ij}$:
$\theta_{ij} = 90° + \frac{1}{2}atan2(2G_{xy}, G_{xx} - G_{yy})$
$G_{xy} = \sum_{h=-8}^{8} \sum_{k=-8}^{8} \nabla_x(x_i + h, y_j + k) · \nabla_y(x_i + h, y_j + k)$
$G_{xx} = \sum_{h=-8}^{8} \sum_{k=-8}^{8} \nabla_x(x_i + h, y_j + k)^2$
$G_{yy} = \sum_{h=-8}^{8} \sum_{k=-8}^{8} \nabla_y(x_i + h, y_j + k)^2$
其中,$\nabla_x$ 和 $\nabla_y$ 是通过 $3×3$ Sobel 掩码计算的 $x$ 和 $y$ 梯度分量,$atan2(y,x)$ 计算两个变量 $y$ 和 $x$ 的反正切,与计算 $y/x$ 的反正切类似,但使用两个参数的符号来确定结果的象限。
### 2.5 可靠性计算
估计 $\theta$ 的可靠性 $r$ 可以通过局部窗口 $W$ 中方向向量 $d$ 的一致性(或连贯性)来推导。Kass 和 Witkin(1987)将连贯性定义为方向向量和的范数除以它们各自范数的和,该标量始终在 $[0, 1]$ 范围内:当所有方向相互平行时,其值为 1(最大连贯性);当它们指向相反方向时,值为 0(最小连贯性):
$r = coherence(\theta) = \frac{\left\|\sum_{W} d\right\|}{\sum_{W} \|d\|}$
对于对应于式(3.3)的基于梯度的方法,可以证明式(3.4)简化为:
$r_{ij} = coherence(\theta_{ij}) = \frac{\sqrt{(G_{xx} - G_{yy})^2 + 4G_{xy}^2}}{G_{xx} + G_{yy}}$
### 2.6 梯度方法的缺陷
基于梯度的方向估计器的主要缺陷是在接近零梯度的区域(即脊峰和谷底)失效。在这些区域,梯度的 $x$ 和 $y$ 分量值较小,意味着对噪声的敏感性较高。一些作者建议考虑二阶导数,但仅使用二阶导数只能部分解决问题,因为高噪声敏感性会转移到零交叉区域(即拐点),在这些区域所有二阶导数和 Hessian 矩阵都为零。Da Costa 等人(2001)的方法基于一阶和二阶导数,根据两个算子的局部连贯性对每个区域做出使用哪个算子的二元决策。
## 3. 基于狭缝和投影的方法
### 3.1 基本思想
最早的基于狭缝的方法可以追溯到 20 世纪 60 年代,最近也有一些变体被提出。其基本思想是定义固定数量($n_S$)的参考方向或狭缝
0
0
复制全文
相关推荐









