[0029] 指静脉生物密钥提取流程如图1所示。基于指静脉生物密钥的网络身份认证模式如图2所示。由于指静脉图像拍摄时,手指活动范围较小,图像变形、移动范围不大。但是,采集设备采集图像的清晰程度会有差异。使得指静脉图像预处理阶段,静脉纹线是否准确刻画成为指静脉密钥能否成功提取的关键之一。
[0039] 1)选择邻域方向模板如图4所示。模板上的数值1~8分别对应代表8个离散方向,即从水平位置开始,按逆时针方向每隔22.5°确定一个方向;模板的方向角范围为[0,π)。
[0040] 2)确定每个像素点的方向。利用图4所示邻域模板求出每个像素点在以该点为中心的8个方向上的像素灰度平均值,记为Gi,1
[0041] ΔGk=|Gk-Gk+4| (2)
[0042] k为静脉纹路方向(k=1,2,3,4),取使ΔGk最大的方向,记为kmax。
[0043] 取kmax和kmax+4方向中灰度平均值与当前像素点的灰度值接近的方向为像素点的纹线方向D(x,y),
[0044]
[0045] 所有像素点的方向组成了静脉图像的方向图。
[0046] 3)用方向滤波器对静脉图像进行滤波操作。
[0047] 用9*9模板构造8个方向的滤波模板,滤波器的系数从中心向方向两端衰减。水平方向滤波器模板如下式所示。
[0048]
[0049] 模板中系数a,b,c,d满足
[0050] d+2a+2b-2c=0;d>a>b≥0,c>0
[0051] a,b,c,d的值根据经验选定。
[0052] 滤波时根据方向图得出某点及其周围区域的方向特征,并从滤波器组中选择一个相应方向的滤波器对这一块进行滤波(卷积运算),获得方向滤波增强后的图像。如图5所示。
[0053] 对增强后图像进行平滑、细化处理。
[0054] 用中值滤波对图像进行平滑,用查表法对图像进行细化。查表法为图像处理领域成熟的细化方法。细化处理后效果图如图6所示。
[0055] 第三步,对预处理后指静脉图像,依行向量前后拼接,得1×N维向量,M幅图像对应的向量装配成一个M×N维的矩阵,用主成分分析法(PCA)提取特征向量投影矩阵,及投影后特征向量。主成分分析法是图像处理领域经典方法。处理后,得指静脉在特征空间中的投影矩阵,记为P1(N×D维)。将M幅指静脉图像左乘投影矩阵P1,得M×D维特征向量矩阵,记为S1,D为投影后特征向量元素个数。
[0056] 第四步,将矩阵S1扩展为2个矩阵,L×L维的随机误差方阵EX,L×L维的标准值方阵EY,L>D。
[0057] 取矩阵S1的M个行向量,求均值,得均值向量EB(1×D维);
[0058] 设定波动范围Er,如Er=标准值方阵10;为EB增加随机误差扰动,计算公式为[0059]
[0060] S1j代表S1矩阵中的第j行,EXj代表一个行向量;rand(0,1)函数返回(0,1)之间的随机数;将EXj以行为单位装配为L×D维的矩阵。
[0061] 构造L-D个非线性函数,输入变量是一维行向量(x1,x2,…,xD),D个元素,输出为一维行向量(x1,x2,…,xD,…,xL),L个元素。非线性函数可由用户自行定义,作为示例,可取如下非线性函数
[0062] Z(t)=(x1-x2)×sin(t)+(t^2)×(x3%10)(t为整数,0
[0063] sin(t)三角函数,(t^2)表示t的平方,(x3%10)表示x3模10运算。
[0064] 用构造的Z(t)对EXj进行运算,j遍历1~L,得L×L维矩阵,即随机误差方阵EX。
[0065] EY构造方法为:
[0066] 将均值向量EB重复L行,得L×D维矩阵,记为EYt。用Z(t)对EYtj进行运算,j遍历1~L,得L×L维矩阵,即标准值方阵EY。
[0067] 第五步,求解EX的广义逆矩阵,记为IEX,将IEX左乘矩阵EY得到指静脉特征向量的高维空间投影矩阵PEX=IEX×EY,在用户端存储P1,PEX。
[0068] 指静脉生物密钥训练完成。
[0069] 指静脉生物密钥提取部分具体步骤为:
[0070] 第一步,用户通过红外静脉采集设备采集用户指静脉图像。
[0071] 第二步,对指静脉图像进行预处理,含灰度化、尺寸归一化、方向滤波增强、平滑、细化处理。处理方法与指静脉生物密钥训练部分相同。
[0072] 第三步,将预处理后指静脉图像转换为行向量,转化方法为取图像矩阵所有的行向量,首尾拼接。取指静脉生物密钥训练时存储的投影矩阵P1,左乘投影矩阵P1,得指静脉在特征空间中的特征向量,记为Z,长度为D。
[0073] 第四步,将向量Z扩展为1×L维矩阵EZ,左乘PEX矩阵,得1×L维向量ED。扩展方法与指静脉生物密钥训练时一致。
[0074] 第五步,用棋盘法对向量ED中的数值进行进一步稳定处理,棋盘法描述如下:
[0075] 对ED中的每一个元素(记为EDXi)进行一次运算,伪代码为
[0076]
[0077] mod()为取模函数,maxdis标记棋盘法的格子大小。
[0078] 取前DL个数值得1×DL维向量EE,DL≤D。将向量EE中各元素的数值前后拼接,即生成指静脉生物密钥。
[0079] 本技术领域中的普通技术人员应当认识到,以上实施例仅是用来说明本发明,而并非作为对本发明的限定,只要在本发明的实质范围内,对以上实施例的变化、变型都将落在本发明的保护范围。