一种改进BEMD的指纹边缘检测算法
2018-07-12张雪锋韩志玲
张雪锋, 韩志玲
(西安邮电大学 通信与信息工程学院, 陕西 西安 710121)
在指纹图像中指纹边缘是灰度跳变剧烈的点的集合,这些明显的变化将呈现出图像的一些重要属性变化趋势[1]。边缘提取的目的是提取图像的主要边缘特征,并去掉不相关的细节,留下图像关键的轮廓结构和细节特征等重要信息,是指纹图像预处理的关键和前提。经典的边缘检测算子如Sobel算子、Laplace算子、Robert算子、Canny算子等[2-5]是通过不同的算子对图像边缘进行提取,采用一阶导数和二阶导数检测亮度的不连续性来判断出图像的边缘点;小波变换方法也常被应用于图像边缘检测中[6],但上述算法很难判断出处于高频的噪声和图像边缘,使得提取出的指纹图像边缘较模糊,图像的一些重要特征被淹没,干扰了图像的进一步分析。
经验模式分解(empirical mode decomposition, EMD)是一种自适应信号时频处理方法[7],与经典的傅里叶变换和小波变换方法[6]相比,该方法不需要预先设定基函数,完全依靠信号本身特性驱动分解,具有自适应特性,既能对线性稳态信号进行较好地分析,又在处理非线性、非平稳时间序列信号方面具有较强的优势[7]。EMD方法仅仅适用于一维时间信号序列,在EMD方法的基础上,二维经验模式分解(bidemensional empirical mode decomposition,BEMD)方法[8]被提出,并在图像处理方面得到了广泛应用,但BEMD算法仍存在边界效应、筛分终止条件选择不确定和算法时间复杂等问题[9]。边缘延拓[10]和镜像延拓[11]可以有效的抑制边界效应,但增加了大量的实验数据,时间和空间开销大。快速二维经验模式分解算法(fast bidemensional empirical mode decomposition, FABEMD)解决了分解速度慢、处理时间长等问题[12-13],但FABEMD算法的参数对实验结果影响比较大,分解出的结果并不理想[14]。采用均值滤波和奇异值分解的方法可以进一步提高分解速度,但是增加了算法的复杂度[15]。
为了提高BEMD算法在指纹图像边缘检测中的检测性能,解决该算法在指纹图像边缘检测中存在的时间和空间开销大、边缘连续性差等问题,本文拟在BEMD方法的基础上提出一种改进算法。该算法采用Delaunay三角剖分法构造指纹图像局部极值点三角网格来求得局部均值,通过滑动平均平滑来取代插值函数求取局部均值包络,以局部包络均值和极值点数目差来确定筛分的终止条件。首先通过改进BEMD算法将指纹图像分解成3个固有模态分量和1个残余分量之和,然后将前两层分量进行重构作为边缘提取的预处理图像,并通过与指纹图像处理的二值化、形态学细化相结合得到单像素的指纹图像边缘,并将其应用于指纹图像边缘检测。
1 BEMD算法
BEMD算法广泛应用于图像处理领域[16-19],其基本思想是把信号分解成一些由高频到低频的内在模式函数(intrinsic mode function, IMF)和残余图像,但IMF必须满足以下条件。
(1) 从整体来看,局部极值点的数目和过零点的数目相差不超过1个;
(2) 在任意的一个时刻点,信号的每个点形成的局部极大值包络和局部极小值包络的平均值必须为零。
BEMD分解的实现过程如下。
(1) 原始图像初始化,检测二维信号的局部极值点(即极大值点和极小值点)。
(2) 求取上下包络面,即对过程(1)中求得的离散的局部极大值点和局部极小值点运用插值函数进行插值,进而获得上包络面和下包络面。
(3) 求均值包络曲面,计算待处理图像与均值包络曲面的差值。
(4) 判定筛分终止。
相邻两次循环的标准差(standard deviation, SD)可表示为
(1)
其中hk(t)表示t时刻第k次循环中的初始信号与平均包络之差,hk-1(t)表示t时刻第k-1次循环的初始信号与平均包络之差,T表示信号时间总长度。
当标准差小于某一阈值λ时即当前筛分终止,通常将阈值λ取在0.1~0.3之间。重复上述前3个步骤,若满足给定的终止条件则停止循环,这时得到第一个IMF模态函数I1,用原始信号减去I1分量得到的第一个余量,对余量重复步骤(1)—(4),依次得到图像的第N个IMF分量和第N个残余。
传统BEMD算法采用限制标准差来确定筛分过程的终止,但标准差的阈值选择还没有一个精确的理论标准,都是根据实验的结果来确定一个区间范围。而且每个IMF分量最合适的阈值亦不相同,固定的标准差SD的阈值会出现过筛分或欠筛分。另外,传统的BEMD算法通过插值拟合得到极大值和极小值包络面,二维图像信号中并不是所有的端点都是极值点,但在进行插值时会把图像的所有端点错误的判断为极值点,这样就会使分解出的图像在端点处出现虚假成分导致部分边缘信息丢失,边缘连续性差。
2 改进的BEMD算法
为了解决分解出的图像在端点处出现虚假成分导致部分边缘信息丢失,边缘连续性差的问题,采用Delaunay三角剖分法构造局部极值点三角网格,通过三角网格求极值点局部均值,最后舍弃了BEMD分解中的插值函数算法,通过滑动平均求局部包络均值,避免BEMD中的过包络或欠包络问题。
固定的SD阈值会出现过筛分或欠筛分。本改进算法通过极值点的数目差和局部包络均值来确定筛分的终止。因为在BEMD分解过程中随着筛分的进行极值点数目逐渐趋于稳定,后续在进行筛分就没有实际意义,所以通过极值点差和局部包络均值来确定筛分的终止可以避免过度筛分,减少算法运行时间。
改进BEMD算法的具体实现步骤如下所述。
步骤1原始图像初始化。
设输入像素大小为M×N的灰度指纹图像
F(x,y),x=1,2,…,M;y=1,2,…,N。
令待处理量r1,1(x,y)=F(x,y)。
步骤2求指纹图像的极值点。
应用8-邻域法求rl,j(x,y)的局部极大值点和局部极小值点[20],其中l表示第l个IMF分量,m表示第j次分解(j=1,2,…,J)。
步骤3求取第l个IMF。
(1) 采用Delaunay三角剖分组建所有极值点的三角网格,通过三角网格求指纹图像的局部均值点,将三角网格内极值点间的最小距离作为平滑模板平滑窗口N的大小[21]。并计算第i个相邻域的局部极大值点和局部极小值点的局部均值
(2)
式(2)中ni和ni+1是一对相邻的不同属性的局部极值点。
(2) 通过滑动平均法来取代传统的插值函数算法求取均值包络面。对三角网格所确定的局部均值点进行滑动平均处理得到局部均值函数ml,j(x,y),平滑模板为
(3)
(3) 计算输入图像rl,j(x,y)与局部均值ml,j(x,y)的差值
hl,j(x,y)=rl,j(x,y)-ml,j(x,y)。
(4)
(4) 判断hl,j(x,y)是否满足IMF的筛分终止条件,若满足
|Nmax-Nmin| (5) ml,j(x,y) (6) 则hl,j(x,y)是第l个IMF分量;否则,令 rl,j+1(x,y)=hl,j(x,y), 然后返回步骤2开始重复执行,直到经过J次分解后图像信号满足上述条件为止,令j=J,筛选出的第l个IMF分量为 Cl(x,y)=hl,j(x,y)。 其中,Nmax表示极大值点数目,Nmin表示极小值点数目,t为极大值点数目和极小值点数目差;e为局部包络均值函数阈值。 步骤4计算残余量。 残余量 rl+1,1(x,y)=rl,1(x,y)-Cl(x,y)。 (7) 若在残余分量中包含的极值点大于两个,则把残余分量rl+1,1(x,y)重新作为待处理的图像,直到分解出的残余分量rl,1(x,y)中没有了极值点,则分解结束。 步骤5得到预分解图像F(x,y)的BEMD分解表达式 (8) 通过上述步骤的分解,就可以将灰度的指纹图像按照频率由高到低分解成多个IMF分量图像和一个残余分量图像的和。 改进的BEMD算法的基本流程,如图1所示。 实验基于Intel®Pentium®CPU@3.10 GHZ、4.00 GB内存的PC,Matlab R2010b的实验环境进行仿真。实验从指纹库CFV2002中抽取30组像素不同的指纹图像分别进行BEMD分解,实验中t取5,e取0.2,以右环形指纹图像为例进行实验。指纹图像原图,如图2所示。 图2 指纹图像原图 BEMD算法和改进BEMD算法的分解结果,分别如图3和图4所示。 图3 BEMD算法的分解结果 图4 改进BEMD算法的分解结果 由图3和图4可知,传统BEMD算法分解的指纹图像边界效应严重,而且随着筛分的进行,边界污染程度越来越深,边界部分数据丢失。改进的BEMD算法通过滑动平均代替插值过程有效的抑制了边界效应,各分量端点处的细节信息得到了较好的保留,更好的体现出了图像的主体轮廓。其中,IMF分量包含图像的主要细节特征,频率越高含有的指纹细节特征越多,余量则反映图像的变化趋势和明暗程度。 IMF分量是指纹图像经过BEMD算法一层层分解获得的,每一次分解筛选提取出的IMF分量都是当前分解层次下的局部最高空间主振荡频率成分。高频成分中包含当前图像最重要的纹理特征和细节信息。通过提取图像的角二阶矩(能量)、对比度、相关性、均匀性和熵5个特征量来反映指纹图像经过BEMD分解后各IMF分量和余量的纹理特征[22-23]。角二阶矩是度量图像灰度分布均匀性的量,纹理粗时值大,纹理细时值小。角二阶矩随着分解次数的增加呈增大趋势,说明高频IMF分量的纹理较细。对比度是度量图像清晰度的量,在图像中,对比度越大,图像越清晰,IMF1分量图像的清晰度最高,纹线最深。相关性表示的是元素在行或列方向的相似程度,从高频分量到残余量相关性呈缓慢上升趋势但基本保持平衡。均匀性表示图像纹理的规则程度,均匀性呈增大趋势,说明余量图像的纹理变化小,局部比较均匀。熵是用来度量图像所具有的信息量,高频分量的熵值最大,含有的信息量最多。 实验中,指纹图像前三层IMF分量和残余分量的纹理特征参数值,如表1所示。 表1 指纹图像各分量纹理特征参数值 通过对图3、图4和上述纹理特征参数值的对比与分析,可以反映出高频IMF分量包含的图像信息量最大,含有的图像细节特征较多。 图像中较锐利的边缘轮廓信息处于高频分量中,高频部分是图像中最主要的边缘信息,其它频率分量中也含有一些边缘信息,但大多都是一些变化较为缓慢的边缘,并不是所研究的重点。I1分量是最高频分量,高频分量中包含了指纹图像不同光照下的边缘信息,与边缘信息无关的低频信息已被剔除,所以将其作为边缘检测的原始输入图像,既能提取出更多的边缘信息,又能避免假边缘的产生。根据上述分析及多次实验可以得出,将前两层高频IMF分量的重构图像作为边缘检测预处理图像时能较好的反映出指纹纹理的细节特性。 改进的BEMD算法通过滑动平均代替插值函数算法可以抑制边界效应,各分量端点处的细节信息得到了较好的保留,更好的体现出了图像的主体轮廓。同时由表1可知前两层IMF分量中蕴含了丰富的图像信息。 基于改进的BEMD的指纹图像边缘检测实验步骤如下。 (1) 将原始灰度指纹图像通过BEMD分解为不同特征尺度的IMF分量和一个残余分量。 (2) 对IMF分量进行直方图均衡,进一步将背景与边缘背离;对I1分量和I2分量重构图像进行二值化得到原始图像边缘。 (3) 对二值化后的图像形态学细化处理,得到单像素的图像边缘。 实验具体步骤,如图5所示。 图5 指纹边缘检测实验步骤 应用改进的BEMD指纹边缘检测算法,在Matlab 2010b平台上对3组不同指纹图像进行仿真实验。3组不同指纹BEMD算法和改进BEMD算法部分实验结果对比,如图6—图8所示。 图6 指纹1图像边缘检测实验结果对比 图7 指纹2图像边缘检测实验结果对比 图8 指纹3图像边缘检测实验结果对比 由图6—图8可以看出,改进BEMD算法和传统BEMD算法都是得到单像素的指纹图像边缘,但传统算法提取的指纹边缘边界部分信息丢失,边缘连续性差,毛刺也较多;改进算法边缘连续性好,中心点附近边缘信息特征多而且毛刺较少,定位精度也比较高,符合理想的指纹图像边缘检测结果。 采用Pratt品质因数对两种算法的指纹图像边缘检测结果进行性能分析,其公式为 (9) 其中Nl表示实际边缘点的个数,NA表示检测边缘点的个数;d(k)是检测边缘点与实际边缘点之间的距离;α是常量,取1/9;F的取值范围为[0,1],F值越大表示检测的边缘越准确,性能越好。 应用BEMD算法和改进BEMD算法对实验中30组指纹图像边缘进行检测,其Pratt品质因数和运行时间,分别如表2和表3所示。 表2 两种算法Pratt品质因数对比 表3 两种算法运行时间对比 由表2和表3可知,改进BEMD算法对30幅指纹图像边缘检测的平均Pratt品质因数为0.951 3,平均运行时间为24.98 s,传统BEMD算法的平均Pratt品质因数为0.883 6,平均运行时间为7.95 s。改进BEMD算法比传统BEMD算法Pratt品质因数平均提高了0.067 7;运行时间平均提高了17.03 s。 本文针对传统BEMD算法边缘连续性差、筛分时间长等问题,对BEMD算法进行了改进。采用Delaunay三角剖分法构造局部极值点三角网格来求得局部均值,以滑动平均法来取代插值函数算法求取均值包络面,通过极值点的数目差和上下包络均值来作为判断筛分终止的条件。然后将分解获得的前两层高频分量进行重构作为边缘检测的原始图像,与指纹图像处理的二值化、形态学细化技术相结合来提取指纹图像的边缘信息。 实验结果表明,改进的BEMD指纹边缘检测算法提取的指纹边缘图像轮廓清晰,与BEMD指纹边缘检测算法相比,较好地保留了指纹图像的细节特征,Pratt品质因数提高了0.067 7,说明指纹图像边缘检测性能较好,而且运算时间提高17.03 s,减小了在时间和空间开销。但改进算法对于一些低质量的指纹图像,还未达到理想的效果,边缘检测性能还有待提高。3 实验结果及分析
3.1 算法分解结果
3.2 指纹边缘检测
4 结语