[0043] 下面结合附图对本发明作进一步说明。
[0044] 触摸屏手写签名输入与传统纸上手写签名输入相比,其文字输入的规则度不如纸上手写汉字,但触摸屏可以同时记录手写签名的笔划过程与完成后的文字图片,双通道签名笔迹信息可以。图1显示了不同用户写同一个‘张三’字的笔迹图样,直接看图用户书写有差异,但不明显,如果取得笔划过程,差异就比较明显。另一方面汉字为方块字,有很强的笔划性,且每一个用户的笔划书写习惯均有差异。以上特点使得将触摸屏上签名的笔划间位置关系与签名图像处理相结合,识别用户签名笔迹可以获得很高的准确率。基于以上原因,本发明采用触摸屏上记录手写签名,用签名轨迹和签名图像结合的策略提取用户手写签名生物密钥。
[0045] 本发明提出的手写签名生物密钥生成方法包括两部分,第一部分为手写签名生物密钥训练部分,第二部分为手写签名生物密钥提取部分。手写签名生物密钥生成框图如图2所示。
[0046] 手写签名生物密钥训练部分具体步骤为:
[0047] 步骤(1)、用户在触摸屏上书写签名,重复书写m1次,m1由用户定义,一般可取>30,书写的大小无限制,笔划也没有限制,既可以连笔一笔写完,也可以分若干笔写完。用触摸屏数据采样函数记录用户书写轨迹,取得采样结果(具体采样函数视不同的触摸屏操作系统而异,如Android系统提供了如下采样函数android_server_KeyInputQueue_readEvent());书写完成后保留签名文字图片,即一次采样同时保留书写轨迹与文字图片两组结果。
[0048] 步骤(2)、将保留的书写轨迹与文字图片两组结果分别进行标准化处理。
[0049] 文字图片的标准化处理如图3所示,步骤为:
[0050] 1)对图片做平滑、降噪处理,可采用领域内通用方法,如高斯滤波做平滑处理,中值滤波做降噪处理等;高斯滤波、中值滤波是领域内通用方法。
[0051] 2)对平滑、降噪处理后图片进行确定签名文字边界的操作,如图3所示,在图片中打出水平和垂直线段,将线段从上往下、从左往右移动,线段在未接触文字边界时,所含的所有像素点均为图片底色(一般为白色),接触到文字边界时,所含像素点中会出现文字颜色(一般为黑色);继续移动线段,当线段走到另一端的文字边界时,所含像素点会从包含文字颜色变为图片底色,根据线段所含像素点颜色的变化确定文字边界。
[0052] 3)将文字图片沿上一步确定的边界切割并缩放为固定尺寸图片,可采用双线性插值等领域内通用的图像缩放方法对图片进行缩放,图片尺寸由用户根据经验设定,一般取150×100~300×200像素。完成文字图片标准化处理。
[0053] 再进行用户书写轨迹的标准化处理,分两步进行,标准化处理一与标准化处理二。以第1个采样点为坐标原点,后续采样点与第1采样点的差值为新坐标值,将采样结果转化为新坐标值,完成标准化处理一;扫描经标准化处理一得到的结果序列,取出序列中长、宽的最大值做分母,预设的矩形长、宽值做分子,得到长、宽的标准化比值;将采样结果序列乘以标准化比值得到标准化结果,完成标准化处理二。用户书写汉字经过标准化处理二将尺寸规整到预定的一个矩形范围内,矩形大小由用户根据经验设定。
[0054] 步骤(3)、将标准化后书写轨迹依据用户书写时的笔划进行分段,形成若干段签名笔迹向量;记签名笔迹向量的段数为m2,m2取值依选取的汉字和用户书写习惯的不同而不同,但同一个汉字、同一个用户,认为最初m2值波动范围在±1之间,经过一段时间的适应,用户的m2值可以是确定的。对每一段笔迹向量中的轨迹点进行间隔均匀化处理,如图4所示,具体如下。
[0055] 3.1)依据时间阈值进行笔划分割;
[0056] 用户依据自身签名书写习惯设定两段笔划间的间隔时间判定阈值TM,TM取值为经验值,对步骤2标准化处理后的书写轨迹进行笔划划分,方法为若2个书写轨迹采样点(简称轨迹点)之间的时间间隔>TM,则判定为此处是2段笔划间的分割点;若2个书写轨迹采样点之间的时间间隔≤TM,则判定为这2个轨迹点属于同一段笔划;
[0057] 3.2)进行轨迹点间隔均匀化处理;
[0058] 对3.1步骤处理后的笔划轨迹点集合,计算每一段笔划轨迹点的总个数Ti,1≤i≤m2,m2为笔划段数;从每段笔划的起始轨迹点开始,依据 的间隔进行取点,至取满m3个轨迹点结束,m3为用户预设的每一段笔划经间隔均匀化处理后所取的轨迹点个数;完成笔划轨迹点间隔均匀化处理。
[0059] 以上取点方法对用户运笔的方向、长度变化有一定的缓冲作用,只要用户在书写汉字时保持相对稳定的书写习惯,均匀化处理可以消除轨迹点坐标在笔划转折处的错配、冗余等情况。
[0060] 间隔均匀化处理的结果得到m2个m3×2维的矩阵,将m3×2维的矩阵转化为一维向量,将转化后的m2个一维向量前后拼接为一个一维向量,领域内的通用转化与拼接方法均可使用,结果记为签名轨迹向量ZL。
[0061] 步骤(4)、将签名轨迹向量ZL与标准化处理后的文字图片矩阵进行拼接、转化,领域内通用的图像拼接方法均可使用,获得签名笔迹特征图像1;取N1类以上的不同签名,N1由用户根据经验确定,一般取>20;基于签名笔迹特征图像1构建手写签名密钥深度神经网络训练集合L1。
[0062] 步骤(5)、构造手写签名密钥深度神经网络,并利用训练集合L1进行训练[0063] 所述的手写签名密钥深度神经网络包括串联的手写签名稳定特征提取器、手写签名生物密钥稳定器、手写签名生物密钥提取器;
[0064] 5‑1构造手写签名稳定特征提取器M1,其输入为签名笔迹特征图像1,输出为签名笔迹特征图像2;
[0065] 手写签名稳定特征提取器M1由深度神经网络学习模型、手写签名稳定特征选择器组成;
[0066] 所述的深度神经网络学习模型可采用现有成熟的ResNet、DenseNet等模型,在模型经训练集L1训练稳定后,移除全连接层,用手写签名稳定特征选择器替换全连接层,如图4所示;
[0067] 所述的手写签名稳定特征选择器用于从深度神经网络学习模型输出的所有特征图,选择拼接为一张输出特征图。
[0068] 将训练集L1中的训练图片经步骤5‑1处理后得到的输出特征图组成集合U,其中图片集为U=(U1,U2,...,Ui,...,Un1),Ui为单张输出特征图,n1为输出特征图的数量,所有图片大小均相同;像素点集 pi,j表示第i张特征图中第j个位置的单个像素点,每张特征图有m1个像素点,共n1×m1个像素点;然后从像素点集P中选出取值更趋稳定的像素点集P',由像素点集P'整理为签名笔迹特征图像2:
[0069] 所述从像素点集P中选出取值更趋稳定的像素点集P'具体是:
[0070] a)根据以下公式(1)获得特征图Xi在j位置处的像素值pi,j的绝对误差R(pi,j);如果R(pi,j)<β1则将像素位置(i,j)存入队列;如果R(pi,j)≥β1则继续判断像素位置(i,j)是否已存在于队列中;若存在于队列中则执行步骤b);若不存在于队列中,则将像素位置(i,j)加入队列,并计算队列中所有像素点值的方差δ;若δ≥β2,则将像素位置(i,j)从队列中删除,执行步骤b);若δ<β2则保留像素位置(i,j),执行步骤b);
[0071] b)继续遍历i、j,选择一个新的像素点位置,返回步骤a);直至i=n1,j=m1时迭代结束,将队列中存放的所有像素位置对应的像素点组成像素点集P';
[0072]
[0073] 其中 为像素点集P中j列的所有像素点的均值,pi,j表示特征图Xi在j位置处的像素值,β1、β2均为人为定义的阈值。
[0074] 5‑2构造手写签名生物密钥稳定器M2,其输入为手写签名稳定特征提取器M1输出的签名笔迹特征图像2,输出为手写签名生物特征序列L2;
[0075] 手写签名生物密钥稳定器M2以现有成熟的具备编码‑解码(Encode‑Decode)以及跳跃连接(Skip Connection)结构特点的Unet网络模型为基础,模型的基本构造为多层编码‑解码模块的堆叠,编码采用卷积加下采样操作,解码采用上采样加卷积操作;
[0076] 作为优选,Unet网络的跳跃连接采用神经连接控制(Neural connection control,NCC)结构;
[0077] NCC将流经该网络的原始数据的特征保留;保留的原始数据特征信息将参与到解码运算中。
[0078] NCC采用h层(h一般取1~3)神经元连接网络结构构成,原始数据作为NCC结构的输入数据,作为第一层神经元的输入,第一层神经元的输出作为连接到的下一层神经元的输入,最后一层神经元的输出为NCC结构的输出,即保留的特征信息。
[0079] 单层神经元的计算过程如下:
[0080] Xi=σ(Wi*Xi‑1+bi)
[0081] 其中,i表示当前层为第i层神经连接网络,若i为1,则Xi‑1即为原始数据,若1
[0082] Unet网络处理后的输出为手写签名生物特征序列L2。
[0083] 5‑3构造手写签名生物密钥提取器M3,其输入为手写签名生物密钥稳定器M2输出的手写签名生物特征序列L2,输出为手写签名生物密钥。
[0084] 经过手写签名特征稳定器M2处理后的序列向量L2一般依然有一定数量的数值是不稳定的,用手写签名密钥提取器M3提取稳定的手写签名密钥序列。M3的构造可以使用领域内通用的模糊提取器提取手写签名生物密钥。也可以采用Shamir门限秘密共享方法进行密钥的模糊提取,具体方法为:
[0085] 生成阶段:设定参数n2,t1,B,其中参数n2表示从序列向量中选取的子序列的个数,B表示选取的子序列的长度,子序列为连续的数字序列;参数t1表示阈值,当有t1个子序列成功匹配时即可准确提取出密钥。
[0086] (1)构造一个多项式,使Output与多项式常数项a0绑定,a0视为密钥[0087] F(x)=at1‑1xt1‑1+...+a2x2+a1x1+a0mod(p),a0=Output
[0088] 其中p为素数,系数at1‑1,...a2,a1随机选取,x∈Zp,Zp为模p剩余系域。
[0089] (2)从训练阶段的手写签名密钥稳定器M2处理后的序列向量L2中取n2块比特长为B的子序列1≤t1≤n2,将n2个子序列作为多项式的输入x,得到对应的F(Mi),记录F(Mi)、p与loci(i=1,2,...,n2),其中loci表示选取的第i个子序列Mi的第一位在整个序列中的索引值。供密钥提取阶段使用。
[0090] 提取阶段:
[0091] 当x=0时F(0)=a0=Output,即可恢复出密钥。根据记录的n2个索引值选取n2块B比特长的子序列Qi,将(Qi,F(Mi))及x=0代入下式,若其中有t1(1≤t1≤n2)块Qi与Mi相等即可得到Output=a0,即为手写签名生物密钥。
[0092]
[0093] 手写签名生物密钥训练完成。
[0094] 手写签名生物密钥提取部分具体步骤为:
[0095] 步骤(1)、用户在触摸屏上书写签名,用触摸屏数据采样函数记录用户书写轨迹,书写完成后保留签名文字图片。
[0096] 步骤(2)、将记录的书写轨迹与文字图片分别进行标准化处理。处理方法与训练阶段步骤2相同。
[0097] 步骤(3)、将标准化后书写轨迹依据用户书写时的笔划进行分段,形成m2段签名笔迹向量,对每一段笔迹向量中的轨迹点进行间隔均匀化处理,方法与训练阶段步骤3相同;得到m2个m3×2维的矩阵,m3为每一段笔迹向量经间隔均匀化处理后所取的轨迹点个数;将m3×2维的矩阵转化为一维向量,将转化后的m2个一维向量前后拼接为一个一维向量,转化与拼接方法与训练阶段步骤3相同,获得签名轨迹向量ZL。
[0098] 步骤(4)、将签名轨迹向量ZL与标准化处理后的文字图片矩阵进行拼接、转化,转化与拼接方法与训练阶段步骤4相同,获得签名笔迹特征图像1。
[0099] 步骤(5)、用训练完成的手写签名密钥深度神经网络处理签名笔迹特征图像1,生成手写签名生物密钥。
[0100] 本技术领域中的普通技术人员应当认识到,以上实施例仅是用来说明本发明,而并非作为对本发明的限定,只要在本发明的实质范围内,对以上实施例的变化、变型都将落在本发明的保护范围。