CN105556566B - 动态手写验证、基于手写的用户认证、手写数据生成和手写数据保存 - Google Patents

动态手写验证、基于手写的用户认证、手写数据生成和手写数据保存 Download PDF

Info

Publication number
CN105556566B
CN105556566B CN201480051049.8A CN201480051049A CN105556566B CN 105556566 B CN105556566 B CN 105556566B CN 201480051049 A CN201480051049 A CN 201480051049A CN 105556566 B CN105556566 B CN 105556566B
Authority
CN
China
Prior art keywords
data
hand
written
value
equipment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201480051049.8A
Other languages
English (en)
Other versions
CN105556566A (zh
Inventor
马丁·霍尔登
尼古拉斯·梅特伊尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wacom Co Ltd
Original Assignee
Wacom Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US14/080,723 external-priority patent/US9235748B2/en
Application filed by Wacom Co Ltd filed Critical Wacom Co Ltd
Publication of CN105556566A publication Critical patent/CN105556566A/zh
Application granted granted Critical
Publication of CN105556566B publication Critical patent/CN105556566B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/30Writer recognition; Reading and verifying signatures
    • G06V40/37Writer recognition; Reading and verifying signatures based only on signature signals such as velocity or pressure, e.g. dynamic signature recognition
    • G06V40/394Matching; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/75Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
    • G06V10/754Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries involving a deformation of the sample pattern or of the reference pattern; Elastic matching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/14Image acquisition
    • G06V30/142Image acquisition using hand-held instruments; Constructional details of the instruments
    • G06V30/1423Image acquisition using hand-held instruments; Constructional details of the instruments the instrument generating sequences of position coordinates corresponding to handwriting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/22Character recognition characterised by the type of writing
    • G06V30/226Character recognition characterised by the type of writing of cursive writing
    • G06V30/2268Character recognition characterised by the type of writing of cursive writing using stroke segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/32Digital ink
    • G06V30/333Preprocessing; Feature extraction
    • G06V30/347Sampling; Contour coding; Stroke extraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/30Writer recognition; Reading and verifying signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/30Writer recognition; Reading and verifying signatures
    • G06V40/33Writer recognition; Reading and verifying signatures based only on signature image, e.g. static signature recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/30Writer recognition; Reading and verifying signatures
    • G06V40/37Writer recognition; Reading and verifying signatures based only on signature signals such as velocity or pressure, e.g. dynamic signature recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/30Writer recognition; Reading and verifying signatures
    • G06V40/37Writer recognition; Reading and verifying signatures based only on signature signals such as velocity or pressure, e.g. dynamic signature recognition
    • G06V40/382Preprocessing; Feature extraction
    • G06V40/388Sampling; Contour coding; Stroke extraction
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N1/32101Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title
    • H04N1/32144Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title embedded in the image data, i.e. enclosed or integrated in the image, e.g. watermark, super-imposed logo or stamp
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6064Selection of Compressor

Abstract

公开了手写验证方法和相关计算机系统,以及基于手写的用户认证方法和相关的计算机系统。手写验证方法包括获得包含多个可用参数的手写测试样本;提取几何参数;对测试样本中的多个特征点的每一个,得出包括x位置值和y位置值的几何特征;在测试样本和参考样本的几何特征之间执行特征匹配;至少部分基于特征匹配,确定手写验证结果;以及输出手写验证结果。还公开了用于生成和保存电子手写数据的技术和工具。将原始手写数据转换成保存原始手写数据的原始内容的流化格式。还公开了用于将电子手写数据插入到数字图像中的技术和工具。

Description

动态手写验证、基于手写的用户认证、手写数据生成和手写数 据保存
背景技术
电子手写在各种环境中正日益重要。例如,现在常使用电子手写来代替笔和纸,以获得信用卡交易的信用卡持有者的确认。由于电子手写已经变得更普遍,验证电子手写的真实性的能力也已经变得更重要。
U.S.专利No.6,487,310描述了一种用于使签名相互比较的“弹性匹配”方法,包括在开始书写签名后,创建在不同时间测量的、待比较的两个签名中的相应点之间的映射的操作,其最大化测量点的局部空间领域之间的相关性,同时最小化与该映射的弹性空间畸变的曲率,提供映射中的空间相关度和不均匀空间畸变度的定量测量,由此提供签名之间的类似性的测量。
除签名验证的精度外,手写数据的记录是重要的问题。最近的手写输入设备不限于传统的数字化器,而是有许多种具有类似但不相同的性能的硬件。为了确保由所有类型的设备捕捉的手写数据的兼容性,期望灵活的数据格式。
发明内容
提供该概述来以简化的形式引入在下文的详细描述中所述的概念的选择。该概述不打算标明所要求保护的主题的关键特征,也不打算用作帮助确定所要求的主题的范围。
在本公开内容的至少一个方面中,手写验证方法包括:获得包含多个可用参数的手写测试样本,其中,多个可用参数包括几何参数和一个或多个非几何参数;从多个可用参数提取几何参数;基于几何参数,对手写测试样本中的多个均匀分布的特征点的每一个,得出包括x位置值和y位置值的几何特征;在手写测试样本的几何特征和参考样本的几何特征之间执行第一特征匹配;至少部分基于该特征匹配,确定手写验证结果;以及输出手写验证结果。几何特征可以进一步包括从几何参数,诸如方向和曲率值得出的值。确定手写验证结果可以进一步基于无链接的特征点的计数。
第一特征匹配能包括找出测试样本中的一个或多个均匀分布特征点和参考样本中的一个或多个均匀分布的特征点之间的映射。该第一特征匹配能包括模拟退火处理。模拟退火处理能包括选择参考样本中的特征点;生成伪随机值;将伪随机值与常数进行比较,以及基于该比较,确定从参考样本中的所选点消除链接,还是在参考样本中的所选特征点和测试样本中的所选特征点之间定义新链接。确定步骤能比消除现有链接更偏向基于常数值定义新链接。如果定义新链接,能消除与该新链接交叉的任何现有的链接。
还能执行第二特征匹配,第二特征匹配可以包括评价非几何参数(例如时间相关参数,诸如随时间的速度、加速度或笔压力)。第二特征匹配可以包括比较从参考样本的起点到参考样本的第i点的压力-时间图的面积与从测试样本的起点到测试样本的第i点的压力-时间图的面积。手写验证结果能进一步基于第二特征匹配。
在另一方面中,手写验证方法包括在手写测试样本的几何特征和参考样本的几何特征之间执行特征匹配,其中,特征匹配包括在测试样本中的一个或多个均匀分布的特征点和参考样本中的一个或多个均匀分布的特征点之间定义一个或多个链接;获得测试样本中的连续未链接特征点的计数;以及输出手写验证结果,其中,手写验证结果至少部分基于特征匹配和测试样本中的连续未链接特征点的计数。
在另一方面中,用户认证方法包括从用户设备接收测试签名数据和用户设备标识符(ID);搜索与测试签名数据关联的姓名ID;获得姓名ID;搜索与姓名ID关联的参考设备ID;将参考设备ID与用户设备ID进行比较;以及基于比较,将认证信息(例如认证结果)提供给用户设备。设备ID可以是例如与笔或触笔(stylus)关联的笔或触笔ID。
在另一方面中,用户认证方法包括从用户设备接收测试签名数据(例如加密的测试签名数据)、设备标识符和服务标识符,其中,服务标识符与在用户设备上执行的服务有关;将测试签名数据与参考签名数据进行比较;基于比较结果,获得与在用户设备上执行的服务关联的认证信息(例如用户ID和密码);以及将认证信息提供给用户设备。如果测试签名数据与参考签名数据一致,可以将测试签名数据添加到参考签名数据(例如作为用于未来认证的辅助信息)。
在另一方面中,一种在计算机中执行的方法,该计算机被配置成与手写数据输入设备一起使用,该方法包括:获得原始手写数据,原始手写数据包括一系列笔事件,每个笔事件包括多个不同属性的值;由原始手写数据生成包括多个流的流化数据,多个流的每一个包括与不同属性的单一属性相关的数据;由原始手写数据生成笔划数据和/或图像数据;以及有选择地输出流化数据或笔划数据和/或图像数据。有选择地输出可以至少部分基于来自应用的请求,以及可以包括将流化数据与笔划数据和/或图像数据整合(例如作为隐写图形(steganographic)处理),由此将原始手写数据的原始内容与笔划数据和/或图像数据重组在单个文件中。
生成流化数据可以包括无损数据处理,以及生成笔划数据和/或图像数据可以包括有损数据处理。无损数据处理可以包括保存时间戳信息,以及有损数据处理可以包括丢弃时间戳信息。无损数据处理可以包括以原始精度级保存值。有损数据处理可以包括对于至少一些值降低原始精度级。
生成流化数据可以包括(例如在流化数据的头部中)插入与多个流相关联的标识符。生成流化数据还可以包括基于标识符,为多个流的每一个,从多个可用压缩技术选择压缩技术,以及将所选择的压缩技术应用于多个流的每一个。
多个可用压缩技术包括(i)不压缩和(ii)差异编码(delta coding)。差异编码可以包括差异值(delta value)的运行长度编码。应用所选择的压缩技术可以包括将差异编码应用于x坐标值或y坐标值。
选择的压缩技术还包括下述:获得一系列手写数据值中的第k值作为当前目标值,其中,k是索引值(index value);基于在编码第k值前获得的值,计算用于第k值的预测值;基于当前目标值和用于第k值的预测值,计算用于第k值的预测残差值,以及通过使用为较小绝对预测残差值映射较短位串和为较大绝对预测残差值映射较长位串的熵编码方法,编码预测残差值。熵编码方法可以包括根据流类型,在可变长度编码表之间切换。
在另一方面中,一种计算机系统包括:流化数据生成部,该流化数据生成部被配置成基于原始手写数据,生成流化数据,其中,流化数据包括多个流,其中,流化数据生成部包括被配置成自适应地编码多个流的无损流自适应编码器;以及有损数据处理部,该有损数据处理部被配置成基于原始手写数据,生成笔划数据和/或图像数据。计算机系统还可以包括整合部,该整合部被配置成将流化数据与笔划数据和/或图像数据整合成整合数据。整合数据可以包括具有插入其中的编码手写数据的数字图像。
附图说明
图1A是被配置成验证样本手写数据的真实性的示例性云计算设备的高级图;
图1B是示例性手写数据处理部的功能框图;
图2A是包括多个笔事件的手写签名的示例;
图2B是能对笔设备检测的旋度、高度角和方位角的图;
图2C是能用来表示笔事件和这些笔事件的数据序列顺序的示例性数据结构的示例;
图3是可以在手写验证服务器中实现的手写验证服务的功能框图;
图4是示例性动态手写验证处理的流程图;
图5是沿手写路径的特征点的示例;
图6是示例各个特征点的x位置和y位置的示例计算的图;
图7A和7B是分别描绘基于在前特征点和后续特征点的x位置和y位置,用于当前特征点的方向和曲率的计算的示例;
图8是通过特征匹配技术,在测试样本和参考样本之间建立的映射的图;
图9A是能在手写验证处理中使用的示例性退火处理的流程图;
图9B是示例在手写验证处理中使用的退火处理期间,允许能量增加的条件的图;
图9C是示例性处理的流程图,通过该处理,能在手写验证处理中使用的退火处理中,改变链接集合;
图9D是在手写验证处理中使用的退火处理期间,链接集合的示例性变化的图;
图9E是示例性处理的流程图,通过该处理,能在手写验证处理中重复退火处理;
图10是示出来自已经标出链接的特征的比例和用于大量签名的平均链接能量的测试的结果的图;
图11是包括连续未链接特征点的计数的示例性样本匹配处理的流程图;
图12A和12B分别是可以根据包括连续未链接特征点的计数的样本匹配处理处理的测试样本和参考样本的示例;
图13A是示例对应于两个手写样本中的特征点的经过时间值的比较结果的图;
图13B是示例从签名开始到特征i的压力-时间图的区域的图;
图13C是示例与两个手写样本中的特征点对应的压力-时间值的比较结果的图;
图14中在做出有关测试样本与参考样本一致还是不一致的确定后能使用的示例后处理过程的流程图;
图15是用于签名的验证真实性的示例计算机系统和处理的图;
图16是用来基于一个或多个标识符,查找参考签名的表的示例;
图17是在适当构成的计算系统中的示例性基于手写的用户认证处理的图;
图18A是能用来基于签名数据查找标识符的表的示例;
图18B是能用来基于其他标识符,查找设备标识符的表的示例;
图19A是适当构成的计算系统中的另一示例性基于手写的用户认证处理的图;
图19B是用在图19A所示的用户认证处理中的数据的表的示例;
图20是被配置成生成整合手写数据的示例性系统的高级图;
图21A是图20中所示的手写数据处理部的示例性实施例的功能框图;
图21B是手写数据处理部件的另一示例性实施例的功能框图;
图21C和21D是可以根据所述的实施例使用的示例性云计算设备的图;;
图22和23分别是如由使用电磁共振技术的系统检测的、包括手写签名和艺术绘图的电子手写的坐标位置的示例,其中,示出抬笔点和下笔点;
图24是用来表示笔事件的示例性数据结构和能提供给手写数据处理部的这种笔事件的数据序列顺序的示例;
图25是流生成部的示例性实施例的功能框图;
图26是示出可以在来自流生成器的输出中表示的示例性手写数据的表;
图27是示出能由流自适应编码器执行的示例性自适应编码过程的流程图;
图28是示出能用在图27中图示的自适应编码过程中的第一编码方案的例子的流程图;
图29A是示出32v编码技术的图;
图29B是示出32v编码技术的流程图;
图30是能从流编码器输出的示例性数据结构的图;
图31是示出替代的第一编码方案的流程图;
图32是示例可以在图31中所示的替代第一编码方案中执行的预测残差计算的图;
图33是具有各个差异值、预测值和预测残差的若干示例性x坐标值的图;
图34是示出图33中所示的差异值和预测残差的频率的直方图;
图35和36图示99个样本手写签名的实验学习的结果的表和直方图;
图37图示示出能用来编码值,诸如差异值或预测残差的示例性可变长度编码方案的表;
图38和39图示示出将图37的可变长度编码方案分别应用于用于x坐标值和压力值的预测残差的结果的表;
图40是示例性基于上下文编码方案部处理的流程图;
图41A和41B示出用于示例性基于上下文编码方案的示例性可变长度编码(VLC)表;
图42是涉及通过编码预测残差解码值的示例性解码处理的流程图;
图43是图像数据处理部的示例性实施例的功能框图;
图44是笔划和图像数据处理部的示例性实施例的功能框图;
图45和46是可以从由有损数据处理部生成的图像数据呈现的图像的示例;
图47是笔划数据处理部的示例性实施例的功能框图;
图48是用于将流化数据插入图像数据的隐写图形处理的功能框图;
图49是用于将编码二进制手写数据插入到图像中的广义图;
图50是像素的伪随机选择中的二进制数据的16位的示例性分布的图;
图51是示出将编码二进制手写数据插入到数字图像中的隐写图形处理的详细流程图;
图52是整合部的示例性实施例的功能框图;
图53是整合部的另一示例性实施例的功能框图;以及
图54是根据本发明的实施例,适合使用的示例性计算设备的方面的框图。
具体实施方式
结合相同的数字表示相同的元件的附图的下述详细描述打算作为所公开的主题的各种实施例的描述,而不打算表示仅这些实施例。在本公开内容中所述的每一实施例仅提供为例子或示例,而不应当解释为优于或好于其他实施例。在此所提供的示例性实施例不打算穷举或将所要求的主题限定到所公开的具体形式。
在下述描述中,阐述许多具体的细节,以便提供本公开内容伯示例性实施例的全面理解。然而,对本领域的技术人员来说,在没有一些或全部具体细节的情况下,也可以实施本公开内容的许多实施例是显而易见的。在一些例子中,不详细地描述非常公知的处理步骤,以便不必要地混淆本公开内容的各个方面。此外,将意识到本公开内容的实施例可以采用在此所述的特征的结合。
I.动态手写验证和基于手写的用户认证
本公开的一些实施例针对验证电子签名或其他电子手写。确定签名是否真实提出了许多挑战。一种挑战是由同一人所做的真实签名总是具有一些可变性程度。另一挑战是真实签名之间的可变性程度将随不同人而改变。以前,通过将在不同时间采集的若干参考样本组合成能用于验证的模板,进行可变性程度的确定。然而,在不同时间采集若干参考样本与许多商业处理不好配合。例如,银行传统上存储用于比较目的的单一参考签名。由此,在使用单一参考的同时,提高验证处理的精度的能力将是有利的。
因此,在所述的实施例中,动态手写验证引擎被配置成将与手写测试样本(例如签名)关联的手写数据和与参考样本关联的手写数据进行比较来确定测试样本是否真实。尽管在此所述的一些实施例是指签名的验证,但应理解到,在此所述的实施例能用来验证所有类型的手写,不限于签名的验证。
根据在此所述的实施例,验证过程包括匹配测试样本和参考样本中的几何特征,同时允许由同一人所做的样本之间的固有不一致性而导致的小差异。除几何特征外,验证过程还能考虑能由当前手写采集技术生成的更多数据(例如笔划之间的笔的运动、笔压力、笔角度等等),能提高验证结果的质量。因为不同输入设备能提供不同类型的数据,根据在此所述的实施例,验证过程能采用由特定设备提供的数据类型。例如,如果测试样本包括压力信息并且参考样本不包括,则验证过程能省略分析压力信息,而是集中在两个样本共同的数据的比较上。
图1A是被配置成根据在此所述的技术,验证样本手写数据的真实性的示例性云计算设备1的高级图。在图1A所示的例子中,手写输入设备10、12和14在网络20(例如互联网)上,以各种形式向手写验证服务器700提供手写数据。手写输入设备10、12和14可以实现为专用手写采集设备或通用设备,诸如适当地配置的智能电话或平板电脑。尽管手写输入设备10、12和14在此称为“输入设备”,但这些设备不限于采集输入,通常还将包括其他功能性(例如显示功能性、数据传输功能性等等)。
当在纸上完成手写签名时,墨水笔留下形成签名的墨水的连续轨迹。手写签名的数字形式通常包括以规则的时间间隔测量的离散数据点的集合。
再参考图1A,输入设备10、12和14的任何一个可以使用电磁共振(EMR)技术,其中,数字化器包含检测笔的运动的传感器板,并且通过由传感器板表面生成的磁场,将能量引入到笔的共振电路。笔的共振电路然后使用该能量来将磁信号返回到传感器板表面。板以规则时间间隔检测笔的坐标位置,即使电子笔不接触传感器板表面,只要笔仍然非常接近传感器板,使得仍然能从笔接收信号(该有效信号范围能取决于所使用的特定技术而改变,但通常在若干毫米左右)。
替代地,能使用其他手写输入技术。例如,电子笔可以使用其他无线技术,或可以通过导线连接到数字化器。作为另一例子,离开数字化器的表面,电子笔可以或不可以是可检测的。作为另一例子,电子笔可以加电或不加电。加电的笔可以经连接到外部电源的导线或经板上电池接收电力。作为另一例子,可以在没有电子笔的情况下输入手写数据(例如,经压敏数字手写笔上的触笔、触摸屏或不要求电子笔的一些其他输入设备)。
然而,可以采集手写数据,由输入设备10、12和14提供的手写数据可以包括笔事件信息、设备信息,和/或有关进行手写的环境的环境信息。在所述的实施例中,笔事件信息包括数字化器表面上或上方的笔尖的x,y位置,以及自开始手写以来的时间。此外,笔事件信息可以另外包括受制于输入设备10、12和14的性能的附加信息,诸如压力(笔压力)、角度(方位角、高度角和/或旋度)和下笔状态。通常在签字过程期间,以规则间隔采集笔事件信息。
设备信息可以包括从数字化器单位转换成真实世界单位所需的信息。用于签名的环境信息可以包括该人所签的姓名;签名的日期和时间;签字的原因;用在主机设备上的操作系统的类型和版本;数字化器的类型;数字化器设备驱动器的版本;从主机设备的网络接口控制器(NIC)地址获得的唯一标识符;如果使用加密散列函数,有关散列函数的类型的信息;和/或可以在捕捉时,由软件应用添加的补充数据。环境信息还可以包括有关正签字的文档的信息,诸如加密消息摘要。
再参考图1A,手写验证服务器700执行将手写测试样本与参考样本进行比较来确定测试样本是否真实的验证处理。验证处理的结果能由手写验证服务器700输出。在至少一个实施例中,手写验证服务器700执行图4所示的验证处理,如下文进一步详细所述。在图1A所示的例子中,验证处理的结果由手写验证服务器提供给后处理部790,用于进一步处理(例如,格式化结果用于显示,存储结果、分析结果、将结果传送到其他设备等等)。后处理部790可以在手写验证服务器700和/或一个或多个其他设备中实现。
手写验证服务器700能验证以各种形式(例如整合数据:integrated data、流化数据:streamed data、原始笔事件数据:raw pen event data)提供的手写输入数据的真实性。例如,如图1A所示,输入设备10和12能将原始手写数据传送到手写数据处理部100,其能生成并在网络20上向手写验证服务器700传送流化数据或整合数据,如在下文进一步所述。
图1B是示例性手写数据处理部100的结构框图。手写数据处理部100可以在手写输入设备内或在可以与输入设备直接(例如经USB连接)或在网络上通信的一些其他设备中实现(例如实现为软件或硬件)。
在图1B所示的例子中,手写数据处理部100包括输入处理部101、流生成部200、有损数据处理部300和整合部400。输入处理部101负责转发用于由例如流生成部200和有损数据处理部300进一步处理的原始手写数据。流生成部200作为输入接收原始手写数据并生成流化数据(例如,与头部信息一起,分别的用于x坐标、y坐标以及压力信息的流)。在至少一个实施例中,流生成部200使用无损编码技术来生成包括多个流的压缩流化数据。
在图1B所示的例子中,有损数据处理部300也作为输入接收将原始手写数据。有损数据处理部300能使用有损数据处理技术(即,可以导致数据损失的技术)来生成笔划数据(能用来将手写呈现为图像)和/或图像数据(例如,以PNG格式或一些其他图像数据格式的图像数据)。例如,有损数据处理部300可以包括被配置成执行呈现手写的可视表示(例如签名)以便显示所需的数据格式化和处理的墨水引擎。作为图1B所示的、基于原始手写数据生成笔划数据和/或图像数据设备的替代方案,有损数据处理部300能基于由流生成部200生成的流化数据,生成输出。
在图1B所示的例子中,整合部400作为输入接收流化数据和笔划和/或图像数据并且输出整合手写数据。整合部400可以以单个输出文件(例如图像文件)输出整合数据,或可以单独地输出流化数据和/或笔划/图像数据。在至少一个实施例中,流化数据能转换成编码二进制格式,并且整合数据能采用具有隐写图形地(steganographically)插入数字图像中的编码二进制数据的数字图像的形式。
图1A和1B中所示的设备仅是例子。许多其他的设备也是可行的。例如,尽管参考图1A将手写输入和手写验证描述为发生在不同设备中(例如分别在输入设备和手写验证服务器700中),但也可以在同一设备中执行手写输入和手写验证。作为另一例子,尽管参考图1A,将手写输入设备和手写验证服务器描述为在诸如互联网20的广域网上在云计算设备1内通信,但输入设备和手写验证服务器也能以一些其他方式(例如在局域网)通信。作为另一例子,手写数据处理部100如何操作的详情可以取决于实现方式和/或环境而改变。作为另一例子,根据在此所述的技术,可以不要求手写数据处理部100提供用于待验证的手写数据。在图1A所示的例子中,输入设备14生成原始笔事件数据,并且在网络20上将原始笔事件数据传送到手写验证服务器700,而无需手写数据处理部100的中间处理。
根据在此所述的实施例,待验证的手写样本(或“测试样本”)能是手写签名(见图2A)或可以是任何其他类型的手写,诸如印刷字符或艺术绘画。
在所述的实施例中,手写数据可以表示为笔事件的序列。典型地,笔事件记录特定时间的笔尖的位置(例如,当在数字化器的表面上或在其有限范围内时)。除x/y坐标值外,一些手写输入设备还可以检测其他信息,诸如笔角度、书写速度、书写压力等等。取决于设备性能,与笔事件关联的笔数据可以包括另外的测量,诸如笔压力和角度。在图2B所示的例子中,旋度、高度角和方位角均在对笔设备(由大黑箭头208表示)检测的参数中。
再参考图2A,示例性手写签名206A包括使用允许在笔提离数字化器表面时,只要笔仍然在信号范围内,就持续检测笔事件的技术(例如,EMR技术),由笔设备检测的多个笔事件。在图2A所示的例子中,当抬笔时检测的坐标被描述为较浅的点,而下笔时检测的坐标被描绘为较深的点。
图2C是能用来表示笔事件和这种笔事件的数据序列顺序212的示例性数据结构210的示例。笔事件的序列能以原始形式和/或预处理形式(例如经能用来使笔事件数据成为流化数据和/或整合数据的形式的手写数据处理部100)提供为例如手写验证服务器700的输入。在图2C所示的例子中,数据结构210能实现为“struct(结构)”或“class(类)”类型。替代地,数据结构210能以一些其他方式实现。在所述的实施例中,在数据序列顺序212中以笔事件发生的顺序提供它们。
图3是可以在手写验证服务器(例如图1A的手写验证服务器700)中实现的手写验证服务700A的功能框图。在图3所示的例子中,手写验证服务700A包括具有被配置成处理以不同形式的手写数据的子部件720、730和740的手写测试样本数据处理部710。在所示的例子中,整合数据处理子部720、流化数据处理子部730和原始手写数据子部740被配置成分别作为输入接收整合数据、流化数据和原始手写数据,并且作为输出生成笔事件参数。数据处理部中的一些也能输出其他数据。例如,在图3所示的例子中,整合数据处理部720被配置成从整合数据提取图像数据并且将图像数据传送到后处理部790A,用于进一步处理。
在图3所示的例子中,验证部750从手写测试样本数据处理部710接收笔事件参数,并且从知识库760接收参考样本。(知识库760可以实现在与手写验证服务700A分开的设备上,如图3所示,或知识库可以实现在与服务700A相同的设备上。)验证部750通过将从笔事件参数得出的特征与参考样本的特征进行比较,验证手写测试样本的真实性。
在图4中示出了示例性动态手写验证处理。图4中所示的验证处理能由手写验证服务器(例如,图1A中的手写验证服务器700)或一些其他设备执行。图4中的验证处理能在云计算设备(例如图1A中所示的云计算设备1)或一些其他设备中执行。在所述的实施例中,验证处理使用手写测试样本中的手写的几何参数来得出能与参考样本中的特征进行比较的手写特征。
在图4所示的例子中,在步骤S101,从可用的笔事件参数,选择手写的几何参数。在该例子中,手写的几何参数包括x坐标值和y坐标值。从其选择几何参数的可用笔事件参数除x坐标值和y坐标值外,还可以包括压力值、角度值、时间戳信息等等。可用笔事件参数可以取决于诸如能用来产生手写的输入设备的性能的因素。
因为普通手写的速度改变,以规则时间间隔检测x坐标值和y坐标值导致检测位置之间的可变间距。再参考图2A所示的示例性签名,以规则间隔(例如,每秒133点、每秒200点的采样速率,或一些其他采样速率)检测笔事件的坐标位置206B。因此,坐标位置之间的较大的间距表示笔正较快地移动的签名的位置,并且较窄的间距表示笔在较缓慢地移动的部分。
再参考图4,为了便于比较手写测试样本和参考样本中的特征点,在步骤S103,从手写的几何参数得出特征点。以该方式得出的特征点按照样本的手写路径,但不需要与笔事件在同一处。在至少一个实施例中,特征点沿手写路径均匀地分布。然而,也能以其他方式分布特征点。
图5描述沿手写路径的特征点的示例性间距。在图5所示的例子中,均匀地分布特征点。通常,减小间距倾向于增加特征点数,这会导致增加处理时间。另一方面,增加间距倾向于减少特征点数,这会导致降低的精度和忽略手写中的重要特征点。在至少一个实施例中,将1mm的规则间距用作平衡合理处理时间和重要手写特征的准确检测的折衷。
所使用的特定间距能取决于实现方式而改变。例如,特征点之间的间距不需要均匀。根据一个替代方法,能根据对相应的特征点扩展密集填充的笔事件之间的间距的密度归一化处理,来定位特征点。在这种方法中,特征点可以或可以不与原始笔事件在同一处。密度归一化处理还能包括将特征点插入笔事件稀疏的手写路径的部分中。密度归一化处理能被应用于测试样本和参考样本来解决样本之间的密度差,同时允许特征点之间的间距的一些变化,这能有助于保存与手写的速度和加速度有关的信息。密度归一化处理能助于提供由不同采样速率的设备获得的样本之间的特征点的可比集合。
再参考图4,特征点的每一个(见步骤S103)与沿手写路径以规则的空间间隔计算的相应x位置和y位置关联。在至少一个实施例中,如图6所示,计算各个特征点的x位置和y位置。
在图6所示的例子中,将特征点的x位置(X)和y位置(Y)分别定义为x坐标值或y坐标值相对于手写或手写的一部分(例如笔划)的各个维度(例如,宽度(w)或高度(h))的整体值的比例。
在至少一个实施例中,对手写样本的整个长度,包括笔未与平板表面接触的抬笔区域,定义特征点。在一些情况下,抬笔信息在笔划之间将不可用。例如,这发生在当使用不支持抬笔数据的捕捉设备时,或当笔保持在离数字化器一定距离,使得不能检测到抬笔数据时。如果抬笔信息不可用,能在下笔笔事件的限度内,生成特征点。
再参考图4,在步骤S105,能从得出的特征点的x位置和y位置,得出方向(D)和曲率(C)。在该例子中,在步骤S105得出的方向和曲率值不基于来自于原始笔事件的x/y坐标值。在至少一个实施例中,基于在前特征点和后续特征点的x位置和y位置,得出当前特征点的方向和曲率,如图7A和7B所示。
在图7A所示的例子中,将用于当前特征点802的方向D计算为在前特征点804和下一特征点806之间的线的角度(相对于水平,以弧度单位)。在图7B所示的例子中,将当前特征点802的曲率C计算为将当前特征点802连接到在前特征点804的线和将当前特征点802连接到下一特征点806的线之间的角度(弧度)。
再参考图4,在步骤S107,使用特征点的几何特征(例如x位置、y位置、方向、曲率),执行特征匹配。在该例子中,特征匹配的目的是链接待验证的手写样本(或测试样本)和参考样本中的相应几何特征,同时提供灵活度来考虑真实手写的固有变化。步骤S107的特征匹配可以包括多于一次特征匹配,如在下文详细所述。
图8是通过特征匹配技术(例如图4中的步骤S107),在测试样本810和参考样本820之间建立的映射的示例。在图8所示的例子中,映射包括在测试样本810和参考样本820中的对应特征点(由圆表示)之间建立的链接(由虚线表示)。链接的每一端部的手写线的一致性能称为链接的“能量”。在该例子中,根据链接特征点的x位置(X)、y位置(Y)、方向(D)和曲率(C)之间的差异,测量该能量。
在至少一个实施例中,根据下述等式,测量能量:
[公式1]
ei=kx(Xr-Xt)2+ky(Yr-Yt)2+kd(Dr-Dt)2+kc(Cr-Ct)2
其中,ei是将参考样本r与测试样本t连接的第i个链接的能量,Xr、Yr、Dr和Cr是用于参考样本的x、y、方向和曲率值;Xt、Yt、Dt和Ct是用于测试样本的x、y、方向和曲率值,并且kx、ky、kd和kc是用于不同能量分量的加权因子。
在至少一个实施例中,链接的最佳集合是能实现根据下述等式定义的、系统的最小总能量(E)的集合:
[公式2]
E=∑ei+kunu
其中,ei是第i个链接的能量,ku是表示未链接特征的能量的常数,并且nu是未链接特征(如果有的话)的计数。
在至少一个实施例中,使用数值退火来最小化每一链接的端部的特征点之间的差,由此最小化能量E。特别地,在至少一个实施例中,使用模拟退火的方法来对链接产生伪随机变化,这可能增加或减小总能量。
在现在将参考图9A-9D描述的一个示例性退火过程中,总是接受导致总能量降低的变化,并且可以取决于诸如可能逐步减小的系统的当前温度的因素,接受导致能量增加的变化。在此使用的术语“温度”是指系统的数学能量,而不是指任何实际热能。类似地,相关术语,诸如“冷却”用来指数学能量的降低,而不指实际热能的任何变化。
“能量”和“温度”是能用于对退火处理建模的相关术语。在至少一个实施例中,退火处理的目的是找出两个签名的对应特征之间的链接的最佳集合。能通过评估几何特征,诸如链接特征点的位置、线方向和曲率的相似性,确定可能链接图的任何一个的相对指标。链接的能量是两个特征点之间的差异的度量。零能量表示具有相同特征的状态,并且当差变为更大时,能量增加。
退火处理尝试通过调整链接集合,最小化系统的总能量。然而,如果永不允许增加总能量的单个调整,退火处理变为陷入总能量的局部最小化的可能性将增加。为解决这一情形,能设计退火处理来通过允许导致能量的增加的一些变化,降低变为陷入局部最小化的处理的可能性,由此允许随后变化可能实现更小总能量的可能性。
能使用系统的温度来控制增加总能量的变化的似然性。在至少一个实施例中,将温度初始地设定在允许更频繁地发生能量增加的相对高值。当退火处理进行时,降低该温度。当温度下降时,降低增加能量的似然性,直到达到系统的稳定为止。
现在参考图9A中所示的示例性退火处理,在步骤S201,初始化变量E(能量)、T(温度)、I_step和I_cycle。在步骤S203,改变联系。在该上下文中,术语“联系”(“linkage”)用来通指测试样本和参考样本之间的一个或多个链接(link)。因此,在步骤S203,以一些方式改变测试样本和参考样本之间的链接集合。(参考图9C,在下文中,详细地描述能改变链接集合的示例性处理。)
在步骤S205,将变化联系的总能量(E_new)与该联系的在前状态的总能量(E_prew)进行比较。如果E_new小于或等于E_prew,在步骤S207保持该联系的变化。如果E_new大于E_prew,在步骤S217确定是否仍然能接受该联系的变化。
在至少一个实施例中,取决于包含变化的大小(dE)和当前温度的比率,可以接受能量的增加。在图9B所示的例子中,当满足下述条件时,允许能量的增加(正dE):
[公式3]
其中,U是在0<=U<=1.0的范围中的统一偏差值,dE是由联系的变化导致的总能量的变化,并且T是系统的当前温度。能使用统一偏差来生成一个或多个伪随机值U。将单个统一偏差生成器用于测试样本和参考样本之间的全部比较,并且总通过相同的种子初始化。这确保测试样本和参考样本的比较总是返回相同的结果。
现在,将参考图9C,描述改变联系(图9A中的步骤S203)的示例性过程。在步骤S203-1,在参考样本中选择特征点。在步骤S203-2,做出有关统一偏差值U是否小于常数K_removeLink的确定。
在至少一个实施例中,通过将值U和常数K_removeLink的比较,伪随机确定移除链接还是设定新链接,在每一联系变化执行步骤S203-2。能设定K_removeLink的值来使确定偏向移除现有链接或设定新链接。实验表明期望的是如果约30%变化由移除链接组成,在这种情况下,将K_removeLink设定成0.3。常数K_removeLink的值能取决于实现方式而改变。
如果U小于K_removeLink,在步骤S203-3,从所选特征点移除链接。(该步骤允许退火处理来移除链接,无需插入任何其他链接来替代它,以确保更多可能联系变化是可实现的)。否则,在步骤S203-4,选择测试样本中的特征点,并且在步骤S203-5,在参考样本和测试样本中的所选特征点之间插入链接。在步骤S203-6,从联系移除由新插入的链接交叉的任何先前现有链接。在图9D所示的例子中,新链接830与三个现有链接交叉,根据图9C所示的示例处理,从联系移除这三个现有链接。
通常,期望确保对联系做出足够的变化来允许实现最小能量状态并且确保足够地降低温度来允许解决方案处于最佳状态。再参考图9A,使用步骤S209-S215来确定退火处理是否已经到其尽头。在图9A所示的例子中,在步骤S211递增I_cycle直到达到最大值(Max_cycles)为止(见步骤S209),并且在步骤S215递增I_step,直到达到最大值(Max_steps)为止(见步骤S213)。当在步骤S215递增I_step时,通过将T乘以冷却因子(K_cool),能降低整个系统的温度(T)。步骤数是所做的温度变化的次数,通过每一级的冷却因子,降低温度。周期数是在每一温度级所尝试的变化次数。诸如Max_cycles,Max_steps和K_cool的值能取决于实现方式而改变。
通过使用更大量的周期数和更大逐步温度降低,以可能的处理速度牺牲为代价,能使退火处理更准确。在至少一个实施例中,在大多数情况下,选择退火参数(例如,周期数、用于温度降低的冷却因子)来快速地获得足够准确性。然而,这偶尔会导致两个样本之间的不良联系,否则,其在退火充分的情况下将是可接受的联系。
为帮助确定不良联系是样本之间的不相似还是不准确的初始退火处理的结果,能通过不同的初始种子,执行第二退火处理。在图9E中示例能重复退火的示例性处理。在步骤S301,将统一偏差初始化到固定值。在步骤S303,执行退火处理,诸如图9A所示的处理。在步骤S305,如果在两个样本之间找到良好匹配,在步骤S311确定样本一致。还能在步骤S315检验其他属性(例如时间值、压力值、角度值)来确认样本的一致性。
如果在步骤S305未找到良好匹配,在步骤S307执行检验来确定是否将做出另一退火尝试。步骤S307执行的检验包含将已经执行的退火步骤次数与最大值进行比较。例如,在至少一个实施例中,如果还未完成两次退火尝试,重复退火步骤S303,而不重置统一偏差生成器,以便保证在后续退火处理中,不使用同一随机序列。否则,在已经完成两次退火尝试的情况下,在步骤S313确定样本不一致。
在执行退火后,得到的联系将包括链接的集合,每一链接具有已知能量。然而,并非所有特征点都将被链接,除非样本相同或几乎相同。能通过根据下述等式,计算所链接的特征点的比例(Pl)和平均链接能量(Em),来评估联系的质量:
[公式4]
[公式5]
其中,Pl是所链接的特征的比例,nl是链接的总数,nr是参考样本中的特征数,并且nt是测试样本中的特征数。在使用上述等式来评估联系质量的实施例中,一致签名将具有高Pl值和低Em值。相反,不相似样本将具有低Pl值和高Em值。
能经验地测量一致签名和不一致签名的Pl和Em值的预期差。在图10中,从已经绘制用于大量签名的比例Pl和平均链接能量Em值的测试示出结果。虚线内的区域1010中的标出点分别与来自不同人的样本的比较关联,因此,很可能是不一致的。虚线内的区域1020中的标出点分别与来自同一人的比较样本关联,因此,很可能是一致的。
在图10所示的例子中,区域1010中的大部分数据点反映与不一致样本关联的Pl和Em值,而区域1020中的大部分数据点反映与一致样本关联的Pl和Em值。在标记为“边界线”的区域中的区域1010和1020之间存在一些重叠,其中,Pl和Em值未清楚地表示样本是一致还是不一致。然而,图10的结果示出在许多情况下,基于手写几何结构,做出测试样本和参考样本是否一致的初始评估是可能的。在至少一个实施例中,在该阶段标识为不一致的测试样本被自动地赋予验证分值0,没有进行进一步处理来确定测试样本是否与参考样本一致。
尽管Pl和Em值在许多情况下,对测量联系质量有效,但如果样本的基本部分非常相似,它们不可能反映测试样本和参考样本之间的显著区别。通过执行另外的检验来确定测试样本和参考样本之间是否存在未链接的特征点的显著部分,可以提高手写验证的精度。
再参考图4,在步骤S109,进行测试样本和参考样本是否足够匹配确定。在图4所示的例子中,如果在步骤S109确定测试样本和参考样本足够匹配,那么在步骤S113输出验证结果前,执行进一步处理(见步骤S111,如在下文详细所述)。然而,如果在步骤S109确定测试样本和参考样本不是足够匹配,在步骤S113,输出表示样本不一致的结果,无需进一步处理。
在步骤S113产生的输出能是适合于表示验证结果的任何输出,诸如布尔值。替代地,能使用允许表示不只是二进制或真/假结果的不同值。在至少一个实施例中,步骤S113产生的输出包括从0(表示测试样本和参考样非常不同)到1.0(表示测试样本和参考样本非常类似)范围的浮点值。
图11示例包括连续未链接特征点的计数的示例性匹配处理S109。在图11所示的例子中,在步骤S109-1,通过确定用于测试样本和参考样本之间的联系的Pl和Em值,执行联系质量的初始测量。如上参考图10所示,在步骤S109-2,如果Pl和Em值表明测试样本和参考样本不一致,过程S109在步骤S109-5返回表示测试样本和参考样本不是良好匹配(不一致)的结果,并且能省略匹配处理S109中的进一步处理。然而,如果Pl和Em值表示测试样本和参考样本一致,在步骤S109-3,计数连续未链接特征点。
图12A和图12B分别描述可以根据图11所示的匹配处理S109被处理的测试样本和参考样本。图12A描绘具有“Z”形状的示例性测试样本,而图12B描述具有类似“Z”形状的示例性参考样本,但具有另外的环。图12A和图12B中所述的两个样本的基本部分相同或非常类似。由此,通过非常低的链接能量,可以链接在图12A和图12B中所述的高比例特征。可以不链接图12B中所示的参考样本中的另外的环,但总联系和链接能量可能类似于真实签名之中期望的固有变化。
图12A和图12B所述的样本是Pl和Em值可能表示测试样本和参考样本一致的情形,除测试样本中的显著丢失特征外。可以使用用于连续未链接特征点的另外的检验(图11中所示)来提高匹配处理的精度。在图12A和12B所述的示例性情况下,图11中所示的匹配处理可以用来确定由于丢失特征,各个样本不一致。
再参考图11,在步骤S109-4,确定未链接特征点是否显著。如果未链接特征点显著,过程S109在步骤S109-5返回表示测试样本和参考样本不是良好匹配(不一致)的结果。如果未链接特征点不显著,过程109在步骤S109-6返回表示测试样本和参考样本是良好匹配的结果。
在至少一个实施例中,确定未链接特征点显著包括确定在未链接部分中的连续未链接特征点的计数是否大于预定值NU。能增加大于NU的计数,并且能将这些计数的总长度表示为全样本长度的比例(参见“无比例”,或Pf)。能忽略小于或等于NU的计数。NU的值能取决于实现方式来改变。具有超出预定值的Pf值的样本能被视为不一致。
再参考图4,如果在步骤S109,已经基于手写几何结构,初始地确定测试样本和参考样本足够匹配,在步骤S111,使用不限于手写几何结构的其他笔事件参数,执行另外的评价。
在至少一个实施例中,在步骤S111执行的另外的评价包括非几何特征匹配,能包括分析时间相关的笔事件参数,诸如书写速度。个人倾向于开发以他们用笔书写的方式的习惯节奏,这是指笔速和加速度倾向于对由同一人所做的书写(例如签名)非常相似(尽管不是相同)。由此,不同于在其他步骤中分析的几何特征的时间相关笔参数能被用在手写验证处理中(例如作为几何特征匹配的补充)。在至少一个实施例中,能与对应于各个特征的经过时间一起,从原始书写数据提取几何特征,这允许比较经过时间值。
图13A是示例对应于两个手写样本中的特征点的经过时间值的比较结果的图。该结果在图13中示为对应于用于链接特征点的经过时间的图。该图中的每一点对应于链接并且表示参考样本(水平轴)中的特征点的经过时间和测试样本(垂直轴)中的链接特征点的经过时间。对一致的签名,对每一对链接特征点,从开始签名起经过的时间应当类似。
在图13A所示的例子中,点被绘制在表示速度的整体一致性(由矩形对角斜率,或与水平的角度)和可变性(由矩形的较窄尺寸,如由垂直箭头所示)的矩形内。该上下文中的整体一致性是指各个样本的平均经过总时间(因此速度)。在该例子中,约1:1的矩形的斜率表示样本具有一致的平均速度。该环境中的可变性是指速度的局部变化的差异。能通过测试已知由同一人所做的签名样本,测量速度的整体一致性和可变性的可接受极限。
再参考图4,在步骤S111执行的另外的评价还能包括分析其他参数,诸如笔压力或笔角度。通过评估每一特征点的压力的状态(例如增加、减小或稳定),能可靠地比较笔压力。压力的一致性能计算为在链接的每一端部具有相同压力状态的链接的比例PP。通过测量已知来自同一人的大量签名样本中的压力变化,能确定PP的可接受值。
典型地,笔压力被测量为相对值,而不是绝对压力值。笔压力是设备相关的,由于诸如的构造差异、滞后和笔材料的老化的因素,即使在同一型号的设备之间,也会发生灵敏度的变化。由此,通常不可能使用绝对压力值进行样本之间的可靠比较,尤其是如果同一人可能使用不同的输入设备来提供样本。
在笔压力值比较的第一示例性方法中,能通过评估每一特征点的压力的状态,例如,在每一点,压力增加、减小还是稳定,来比较笔压力。然后,通过在每一端部具有相同压力状态的链接的比例PP,计算一致性。然而,在至少一个实验中,在压力接近常数达显著时段时,发现第一方法不适当。当这发生时,可能将轻微差异得到为不同符号梯度,这导致相当大的误差。
在笔压力值比较的第二示例性方法中,通过根据下述等式计算Pi,即归一化为用于整个签名的全压力-时间面积的比例的、从开始签名到特征i的压力-时间图的面积,来可靠地计算笔压力:
[数字式6]
其中,Pi是直到特征i的压力-时间图的比例,p是笔压力,t是从开始签名到特征i的时间,并且T是总签名时间。图13B是示出上述等式的图。在图13B中,水平轴表示从开始签名经过的时间,并且垂直轴表示由笔尖记录的压力。由虚线限定的区域中的图的阴影区域表示从时间0到时间t的笔压力P(t)的总和。
图13C是示例对应于两个手写样本中的特征点的压力-时间值的比较结果的图。在图13C中,将该结果示为对应于用于链接特征点的压力时间值的图。图中的每一点对应于链接并且表示参考样本(水平轴)中的特征点的压力-时间图的比例和测试样本(垂直轴)中的链接特征点的压力-时间图的比例。对一致的签名,对每一对链接特征点,压力-时间图的比例类似。注意,在该例子中,该图的最后一个点总是被定义为(1.0,1.0)。
图14是在确定有关测试样本与参考样本是一致还是不一致后,能使用的示例性后处理过程的流程图。在图14所示的示例性过程中,如果在步骤S401,确定测试样本与参考样本一致,在步骤S403,将测试样本添加到知识库,作为另一参考样本。当发现测试样本与参考样本一致时,能使用测试样本来补充现有的参考样本并且潜在地提高未来验证处理的精度。此外,在图14所示的示例性过程中,在步骤S405,能与能被呈现以便显示的分开的图像数据一起,输出验证结果。例如,如果用于测试样本的手写数据与图像数据整合,能与验证处理的结果的指示器一起(例如,是否验证该手写),显示手写的图像。
图15是用于验证签名的真实性的示例性计算机系统和过程的图。取决于实现方式,可以用在图15所述的系统和过程中的特定签名验证技术能不同于在此所述的技术。在图15所示的例子中,在银行环境的合同上进行签名。
如图15所示,由ABC银行提供的服务器1510将原始合同文档提供给手写输入设备10以便签名。输入设备10响应于用户在合同上的签名,生成签名数据,并且将签名数据与所签的合同的图像整合。输入设备10将整合文件在网络20(例如互联网)上提供给签名验证服务器700B。手写输入设备10可以实现为专用手写采集设备或通用设备,诸如适当配置的具有笔输入能力的智能电话或平板电脑。
在图15所示的例子中,服务器1510(或由ABC银行控制的一些其他服务器)将用户ID提供给签名验证服务器700B。签名验证服务器700B使用用户ID来选择知识库760中的适当参考签名,以便用在验证过程中。
图16描述签名验证服务器700B能用来基于一个或多个标识符(例如,由服务器1510提供的服务ID(识别提供用于签名的文档的全部)和用户ID),查找参考签名的表1690。服务ID可以由服务器1510、输入设备10或一些其他实体提供。如表1690所示,参考签名能是任何语言,并且多于一个参考签名可以用于单一用户。
再参考图15,签名验证服务器700B通过将该签名与参考签名进行比较,验证由输入设备10提供的签名。签名验证服务器700B将表示签名被核实(“OK”)还是未核实(“NG”)的验证结果返回给输入设备10。
图17是能用来基于用户签名认证用户的示例性计算机系统和基于手写的用户认证过程的图。取决于实现方式,图17中所述的示例性计算机系统和基于手写的用户认证过程可以使用在此所述的手写验证技术或其他手写验证技术,用于用户认证。
在图17所示的例子中,输入设备10响应用户尝试通过笔/触笔设备11向计算机系统签入,生成测试签名数据。输入设备10将签名数据连同用户设备ID(例如与笔/触笔设备11关联的触笔ID)一起,在网络20(例如互联网)上提供给签名签入服务1720。
在图17所示的例子中,签名签入服务1720基于由输入设备10提供的测试签名数据,搜索“姓名ID”。签名签入服务1720能使用验证过程来确定由输入设备10提供的测试签名数据是否与在数据库1730中存储的一个或多个参考签名关联的对应的参考签名数据一致。
图18A是能用来基于签名数据,查找标识符(例如,数据库1730中)的表的示例。特别地,图18A描述基于由输入设备10提供的签名数据,签名签入服务1720能用来查找姓名ID(例如与服务ID结合的本地ID)的表1890。本地ID可以与用户关联,并且服务ID可以与服务ID服务1710关联(见图17)。
再参考图17,签名签入服务1720将用户设备ID和姓名ID(例如,本地ID和服务ID)发送到设备ID服务1710。图18B是能用来基于其他标识符,查找参考设备ID(例如触笔ID)的表的示例。特别地,图18B描述设备ID服务1710能用来查找与由签名签入服务1720提供的姓名ID对应的参考设备ID的表1892。如果表项中的参考设备ID与由签名签入服务1720发送的用户设备ID匹配,设备ID服务1710能将认证信息发送回输入设备10。在图17所示的例子中,认证信息包括“成功”或“失败”的认证结果。除成功/失败结果外,在该例子中传送的认证信息能包括完成登录过程所需的(例如,在“成功”的情况下)用户ID和密码。
图19A是在适当配置的计算系统中,另一示例性的基于手写的用户认证处理的图。在该例子中,用户认证处理是用来提供接入称为“Book+”的社会网络服务的登录过程,然而,能以类似的方式接入其他服务。
如图19A所示,手写输入设备10激活与服务关联的登录过程(例如,通过使用浏览器应用导航到与服务关联的网站或通过激活与服务关联的专用应用)。设备10捕捉可以响应用户通过笔/触笔设备(未示出)签字生成的签名数据(例如,签名区1902中)。设备10发送签名数据作为待验证的测试签名数据。在网络20(例如互联网)上,将测试签名数据连同与设备10和/或笔/触笔设备关联的设备ID和与服务关联的服务ID(例如,“Book+”)一起,发送到签名签入服务1920。
在图19A所示的例子中,签名签入服务1920验证测试签名数据(例如,根据在此所述的技术或其他技术,将测试签名数据与参考签名数据进行比较)并且至少部分基于验证结果,获得认证信息(例如,用户ID和密码信息)。签名签入服务1920实现为允许待认证的用户使用将由设备10提供的用户输入(签名)的单一例子,而不是要求用户输入的多个例子(例如用户ID和密码)的“一遍”签入服务。
图19B描述示例能提供给签名签入服务(例如,签入服务1920)来认证用户的信息,以及如果用户认证成功则从签名签入服务返回的认证信息(例如,用户ID和密码)的表1990。在图19B所示的例子中,笔/设备ID、与待验证的测试签名关联的签名数据和服务ID(例如,“Book+”)能从用户设备(例如输入设备10)接收,并且用来相对于由服务ID识别的服务,认证用户设备的用户。
再参考图19A,签名签入服务1920能使用诸如设备ID和服务ID的信息来在数据库1930中查找与用户关联的一个或多个参考签名。然后,签名签入服务1920能使用手写验证处理来确定由输入设备10提供的签名数据是否与参考签名一致。只要通过签名签入服务1920认证了用户,服务1920将用户ID和密码传送到设备10。然后,能使用用户ID和密码来完成登录过程。例如,设备10能将用户姓名(例如,电子邮件地址)和密码自动地填写在用户界面的适当字段中。
实际上,允许通过签名签入服务(例如签名签入服务1920)可靠地认证用户的任何信息采集能用于用户认证。可以用来查找数据库(例如数据库1930)中的特定用户的特定信息能取决于诸如传送到签名签入服务的信息、数据库中存储的信息和设计数据库的方式的因素改变。
为安全目的,可以加密(例如,使用对称(例如共享密钥)或不对称(例如公钥)加密)与手写验证和相关用户认证过程有关的信息(例如,手写数据、设备标识符、服务标识符、认证信息等等)。在对基本信息进行进一步处理前,可以解密加密的信息。例如,在将测试签名数据与参考签名数据进行比较前,可以解密加密的测试签名数据。
II.手写数据生成和保存
本公开的一些实施例针对生成和保存电子手写数据。在一些所述的实施例中,由数字化器生成原始电子手写数据,以及将原始数据转换成流化格式。尽管相对于其原始形式,改变手写数据的格式,但流化格式通过采用无损数据处理技术,保存原始手写数据的原始内容,同时还允许会导致数据损失的数据处理(例如呈现手写数据用于显示为图像)。
能以各种数据格式保存原始手写数据的原始内容,以及待使用的格式能根据包括将对该数据执行的处理的本质的各种因素而改变。在一些实施例中,使用提供多种好处的手写数据格式:其保存该原始数据,在任何方面均不改变,使得能没有任何数据损失风险地在法庭上使用;其包括有关源设备的足够信息,使得能将原始数据转换成通常理解的度量体系;其是灵活且可扩展的,使得能支持所有设备性能;其被最佳压缩来最小化存储和传输开销;以及其在二进制级是独立于设备的,使得能在任何类型的硬件上处理。
在一些情况下,能将手写数据无数据损失地转换成多种格式,同时还允许转换成会如果不另外保存手写数据则会导致数据损失的其他格式(例如用于以标准显示单位呈现的笔划数据格式)。能使用无损压缩技术来减少存储和传输带宽需求,同时允许保存所有所需的手写数据。
本公开的一些实施例针对将数据(例如电子手写数据)插入到数字图像中,当由适当配置的解码器解码时,其提供与图像本身分开但可能与图像本身有关的信息。在所述的实施例中,将原始电子手写数据的原始内容转换成流化数据,以及当显示图像时,以通常人类观众不易察觉的方式,将流化数据插入到数字图像(例如包含手写签名的呈现的数字图像),由此在不显著地降低图像质量和无需额外的存储需求的情况下,允许保存原始手写数据的原始内容。在这些实施例中,能保存在手写输入期间获得的手写数据,用于未来呈现、认证或其他处理。
在一些所述的实施例中,保存原始电子手写数据的原始内容(例如通过电子笔相对于相应的数字化器移动生成的高质量笔数据)。例如,在示例性使用情况中,将电子手写数据存储在包括表示手写本身的图像的像素数据的数字图像中。电子手写数据由一个或多个传感器(例如笔设备和/或数字化器中的传感器)采集并且被转换成能被呈现和显示为一个或多个笔划(例如作为签名的一部分)的笔划数据。然而,还保存原始手写数据来避免数据损失。在所述的实施例中,以流化格式保存原始手写数据,其能被转换成适合于跨大量应用、平台和技术可移植地分发、分析和呈现手写数据的编码二进制格式。
当在纸上完成手写签名时,墨水笔留下形成签名的墨水的连续轨迹。手写签名的数字形式通常包括以规则的时间间隔测量的离散数据点的集合。
在所述的实施例中,数字化器(例如签名平板设备)通过以频繁间隔记录电子笔的位置、测量每一点的x(水平)和y(垂直)位置工作。例如,在使用电磁共振技术的系统中,数字化器包括检测笔的运动的传感器板。通过由传感器板表面生成的磁场,将能量引入到笔的共振电路。笔的共振电路然后使用该能量来将磁信号返回到传感器板表面。板以规则时间间隔检测笔的坐标位置,即使电子笔不接触传感器板表面,只要笔仍然非常接近传感器板,使得仍然能从笔接收信号(该有效信号范围能取决于所使用的特定技术而改变,但通常在若干毫米左右)。
替代地,能使用其他手写输入技术。例如,电子笔可以使用其他无线技术,或可以通过导线连接到数字化器。作为另一例子,离开数字化器的表面,电子笔可以或不可以是可检测的。作为另一例子,电子笔可以加电或不加电。加电的笔可以经导线或经板上电池接收电力。作为另一例子,可以在没有电子笔的情况下输入手写数据(例如,经压敏数字手写笔上的触笔、触摸屏或不要求电子笔的一些其他输入设备)。
呈现和显示电子手写的笔划的处理通常包括分析电子手写数据以便确定将调整显示器中的哪些像素来在显示器上表示笔划。用来可视地表示笔划的像素有时被称为笔划的“墨水”。通过称为墨水引擎的部件,处理呈现用于显示的笔划的过程。除使用笔位置数据来呈现笔划的形状和位置外,墨水引擎还能使用其他手写属性(例如压力)的测量来确定墨水厚度。
在一些情况下,丢弃原始手写数据(例如,在已经由墨水引擎使用以便呈现和显示后)是可接受的。就保存的数据大小而言,丢弃原始数据会提供一些效率。然而,通过墨水引擎转换原始数据会导致数据损失。例如,如果转换高分辨率原始手写数据,以便在低分辨率显示器上以标准单位呈现,如果未另外保存,大部分的数据会丢失。如果不以一些形式保存原始数据,会丧失许多好处,诸如为认证目的分析手写数据的能力或在具有不同呈现特性的墨水引擎中使用手写数据的能力。
因此,根据各种所述的实施例,能保存电子手写数据的原始内容。当需要时,能由墨水引擎将手写数据转换成标准单位,而没有不期望的数据损失。能以原始传感器测量单位(会取决于使用的传感器类型而改变),存储笔的位置(例如x坐标和y坐标),能记录输入设备的特性来允许转换成不同单位。例如,如果包括有关每一轴的比例尺和方向的信息,能将x,y位置信息从本机传感器单位转换成常规单位(诸如与原点的毫米偏移量)。
特别地,为在数字图像中记录和存储手势数据提供技术和工具。以这种方式存储的手写数据能跨不同软件应用、平台和设备可移植地使用。
在此所述的任一例子中,能以为跨可能在例如字大小(例如16位,32位等)、字节顺序(例如,从小到大、从大到小)和浮点支持方面,具有不同需求的各个设备和平台的可移植性设计的形式,保存手写数据。此外,在此所述的例子的任何一个中,可以扩展保存的信息的范围而不影响现有的软件。在至少一些实施例中,使用流化数据架构,这允许软件安全地忽略无法识别的流类型。使用在此所述的原理,能设计有效地处理旧数据(缺少最新类型的信息,诸如通过新的或重新设计的传感器采集的信息)而没有不期望的结果的新应用,这对可能需要存储许多年的签字文档有利。
图20是根据至少一个所述的实施例,被配置成生成整合手写数据的示例性系统2010的高级图。如图20所示,输入设备2020(例如电子笔和相应的数字化器(例如签名板设备)或能用于手写输入的一些其他输入设备,诸如触控板设备)生成设备输入数据2030,其能在通信链路(例如USB连接)上被传送到计算机2040。设备输入数据2030由在计算机2040上运行的设备相关的设备驱动器2050处理。设备驱动器2050生成原始电子手写数据。
在图20所示的例子中,使用笔设备和数字化器来提供手写输入。数字化器可以实现为专用手写采集设备或通用设备,诸如适当配置的智能电话或平板电脑。笔设备和/或数字化器中的传感器检测笔位置并且还可以检测另外的信息,诸如压力信息。在至少一个实施例中,设备驱动器2050生成原始手写数据,其包括坐标信息、压力信息和定时信息。
手写数据可以包括在签字过程期间,以规则间隔采集的笔事件信息、设备信息和/或有关进行签名的环境的环境信息。笔事件信息包括数字化器表面上或上方的笔尖的x,y位置,以及自开始签名以来的时间。此外,笔事件信息可以可选地包括受制于输入设备2020的性能的附加信息,诸如压力(笔压力)、角度(方位角、高度和/或旋度)和下笔状态。设备信息可以包括从数字化器单位转换成真实世界单位所需的信息。环境信息可以包括该人所签的姓名、签名的日期和时间、签字的原因、用在主机设备上的操作系统的类型和版本、数字化器的类型、数字化器设备驱动器的版本、从主机设备的网络接口控制器(NIC)地址获得的唯一标识符、如果使用加密散列函数,有关散列函数的类型的信息;和/或可以在捕捉时,由软件应用添加的补充数据。环境信息还可以包括有关正签字的文档的信息,诸如加密消息摘要。
在图20所示的例子中,手写数据处理部2100A接收作为输入的原始手写数据并且生成整合手写数据作为输出。生成整合手写数据的过程以及整合手写数据的内容可以取决于上下文和实现而改变,如在下文进一步详细所述。
图21A是图20中所示的手写数据处理部2100A的示例性实施例的功能框图。在图21A所示的例子中,手写数据处理部2100A包括输入处理部101、流生成部200、有损数据处理部300和整合部400。输入处理部101负责转发用于由例如流生成部200和有损数据处理部300进一步处理的原始手写数据。
在图21A所示的例子中,流生成部200接收作为输入的原始手写数据并生成流化数据(在图21A中标记为“FIRST_CONV_DATA”)。例如,流生成部200能与头部信息一起提供用于x坐标、y坐标以及压力信息的单独流。(在一些实施例中,能基于已知采样率,计算用于特定笔事件的时间信息,而不需要将时间信息存储在其自己的流中,或信号告知每一笔事件的时间信息)。在至少一个实施例中,流生成部200使用无损编码技术来生成包括多个流的压缩流化数据。
有损数据处理部300也接收作为输入的原始手写数据。有损数据处理部300能生成笔划数据(能用来将手写呈现为图像)和/或图像数据(例如,以PNG格式或一些其他图像数据格式的图像数据)。在至少一个实施例中,有损数据处理部300使用有损数据处理技术(即,会导致数据损失的技术)来生成笔划数据和/或图像数据。例如,有损数据处理部300可以包括被配置成执行呈现手写以便显示所需的数据格式化和处理的墨水引擎。例如,墨水引擎能生成包括手写的可视表示(例如签名)的图像数据。
作为其中基于原始手写数据生成笔划数据和/或图像数据的图21A所示的设备的替代方案,这些数据也能基于编码手写数据生成(见图21B)。图21B是手写数据处理部件2100B的另一示例性实施例的功能框图。在图21B所示的例子中,有损数据处理部300基于由流生成部200提供的编码数据(“FIRST_CONV_DATA”)生成输出(“SECOND_CONV_DATA”)。
如图21A和21B所示,整合部400接收作为输入的流化数据以及笔划和/或图像数据并且输出整合手写数据。整合部400可以以单个输出文件(例如图像文件)输出流化数据和笔划/图像数据,或可以有选择地输出流化数据和/或笔划/图像数据。在至少一个实施例中,图像数据能与编码流化数据合成来形成整合数据(例如具有隐写图形地插入的编码二进制数据的数字图像)。整合部400如何操作的详情可以取决于实现而改变,如下文进一步详细所述。
图20、21A和21B中所示的设备仅是例子。许多其他的设备也是可行的。在此所述的数据(例如原始数据,流化数据,笔划数据,图像数据和整合数据)和在此所述的手写数据处理模块可以以不同方式存储和实现。例如,数据和处理模块能在数字化器内、在一些其他设备(诸如PC)中存储和实现,或分布在若干设备之间。在此所述的数据可以从一个设备传送(例如,以图像文件的形式)到另一个,或可以在同一设备内存储和/或处理。例如,在个人计算机中,流化数据可以与图像数据合成、转换成整合数据,并且在个人计算机内以数字图像文件存储。
图21C和21D是根据所述的实施例,可以使用的示例性云计算设备的图。图21C和21D提供图20中所示的设备的示例性替代方案,其中,将手写数据处理部2100A示为在单个计算机2040上实现。
在图21C所示的例子中,输入设备2020将原始手写数据在网络2110上传送到手写数据处理部2100C。具体地,由输入处理服务器2101接收原始手写数据,输入处理服务器2101将原始手写数据传送到流生成服务器2102以及笔划和/或图像数据处理服务器2103。服务器2102和2103分别生成流化数据以及笔划和/或图像数据,其被传送到整合服务器和数据存储器2104。
在图21D所示的例子中,不同的应用(例如应用2180和2190)能从不同设备获得不同类型的信息。例如,能从服务器2103获得有损图像数据,以及能从整合服务器和数据存储器2104获得整合数据(例如包括有损图像数据和无损编码手写数据的数字图像)。实际上,应用2180和2190可以在不同计算设备或同一计算设备上运行。
再参考图21A和21B,在图21C和21D中图示的服务器可以实现为分别运行软件,诸如流生成部200、有损数据处理部300和整合部400的单独的计算机。
再参考图21D,应用2180和2190可以包括被配置成解码有损或无损编码数据的解码器,或应用可以将编码数据传送到被配置用于解码有损或无损编码数据的其他应用或设备。尽管在图21D中,在云计算设备中示出应用2180和2190,但这些应用和解码器还可以根据其他设备,获得和处理信息。
图22和23是分别包括如由使用电磁共振技术的系统检测的手写签名2200A和艺术绘画2200B的电子手写中的坐标位置的示例,其中,示出了抬笔点2202和下笔点2204。因为以规则间隔检测位置,因此,电子手写2200A和2200B中的点之间的较大间隔表示笔正更快速移动的签名的部分,以及较窄间隔表示笔正更缓慢移动的部分。注意,如图22和23所示,持续检测在抬笔点2202和后续下笔点2204之间的坐标。即,如果笔仍然在信号范围内,当笔提离数字化器的表面时,持续检测坐标。在图23中,当抬笔时检测的坐标(例如在抬笔点2202和后续下笔点2204之间)图示为较浅的点,而下笔时检测的坐标(例如下笔点2204和后续抬笔点2202之间)被图示为较深的点。该板(或一些其他传感器)还检测其他信息,诸如笔角度、书写速度、书写压力等。
根据在此所述的实施例,手写能是手写签名(见图22)或任何其他类型的手写,诸如印刷的字符或艺术绘画(见图23)。手写的给定笔划的原始手写数据包含允许分析并且显示该笔划的信息(例如,x坐标,y坐标等)。其他笔相关手写数据可以包括压力数据(例如,施加到笔尖的力)、倾角(笔杆与垂直之间的角度)、方位数据(从笔尖的笔的平面方向)和扭曲数据(例如,在签字期间笔杆的旋转)。在许多数字化器中,通过约毫秒,或更好(例如1毫秒)的精度记录签名中的每一点。定时信息使得可以观察笔运动的方向并且推断每一位置的速度和加速度。由此,原始手写数据通常将包括定时信息,诸如采样率和/或时间戳。原始手写数据还可以包括与手写有关的其他数据,诸如与笔设备或数字化器本身有关的信息、环境信息(例如,待签字的文档的描述、签字的时间和日期等)等,如在下文进一步详细所述。
在所述的实施例中,原始手写数据能表示为一系列笔事件(见图24)。通常,笔事件记录特定时间的笔尖的位置(例如,在数字化器的表面上或在数字化器的有限范围内)。取决于设备性能,与笔事件相关联的笔数据可以包括另外的测量,诸如笔压力和角度。图24是能用来表示笔事件的示例性数据结构108和能提供给手写数据处理部(参见例如图20中的手写数据处理部2100A)的这种笔事件的数据序列顺序110的示例。如图24所示,数据结构2408能实现为“struct(结构)”或“class(类)”类型。替代地,数据结构2408能以一些其他方式实现。在所述的实施例中,当每一事件以数据序列顺序2410发生时,将笔事件提供为输入。根据所述的实施例,笔事件能被转换成流化格式(例如通过流生成部200)。
在至少一些实施例中,手写数据包括下笔信息(即当笔尖与表面接触时采集的笔数据)和抬笔信息(即,当笔尖不与表面接触时采集的笔数据),但排除识别为手势信息的信息。例如,在一些使用情形,笔设备能用于输入手写信息和手势信息(例如,用于与用户界面要素的各种交互,诸如轻击、拖动、滚动等)。在一个示例性情形中,用户能在指定区域中,用笔设备签字,然后使用笔设备来轻击用户界面要素(诸如复选框或标记为“好”或“完成”的按钮)来表示签名完成。在这种情况下,可以保存与签名有关的手写数据,同时可以丢弃复选框或按钮轻击事件数据。替代地,如果需要,可以与签名数据一起保存手势数据。
在此所述的任一例子中,能使用笔设备和数字化器来提供手写输入。初始地以原始手写数据格式存储由传感器记录的信息。由传感器记录的信息可以伴有由笔设备和/或数字化器(例如设备ID信息、样本率信息等)提供的附加信息(例如设备ID信息、样本率信息等)。原始手写数据能被转换成笔划数据,用于由墨水引擎处理。将原始数据转换成笔划数据的过程(可以包括将以对传感器特定的单位记录的数据转换成标准单位,诸如像素或毫米)可能是不可逆的。例如,在至少一些实施例中,将原始手写数据转换成标准单位的过程可能会导致数据损失。然而,还能无数据损失地将相同的原始手写数据转换成流化数据。能无数据损失地将未压缩流化数据转换成编码(压缩)流化数据(例如以适合于在图像文件中编码的格式的二进制数据)。根据在此所述的实施例,能将编码流化数据插入到包含例如对应于由笔设备和数字化器提供的手写输入的手写的图像的数字图像文件(未示出)中。
图25示出流生成部200的示例性实施例,其中,由生成压缩流化数据(例如头部和各个流)的流生成器2520处理原始手写数据以便提供给流自适应编码器2540。流自适应编码器能将压缩方法有选择地应用于一些数据,而使其他数据不压缩。例如,能在逐个流的基础上应用压缩,而不是压缩全部数据,使得可以由每一种流的形式得到优点。在至少一个实施例中,仅压缩包含相对大量数据的流(例如,x坐标流,y坐标流,压力信息流、定时信息流、角度信息流)。有选择地压缩少于所有流会导致稍微较大的数据大小,但可以提供关于降低复杂性和处理时间的优点。
在图25所示的例子中,头部数据经过流自适应编码器2540,而不压缩,而由流自适应编码器2540压缩各个流(标记“流ID#1”,“流ID#2”…“流ID#n”)。流自适应编码器2540的输出包括头部数据和压缩流。流自适应编码器2540可以单独或结合地使用无损压缩方法,诸如差异编码、运行长度编码、熵编码和位打包(bit packing)来降低存储的流化数据的大小。使用的特定编码技术,以及自适应选择可用编码技术的过程可以取决于环境或实现而改变,如在下文进一步说明。替代地,能省略压缩。
流化数据能采用许多形式。在至少一些实施例中,流化数据包括流的集合,每一流负责存储数据的一个分量(例如一个流用于x坐标,一个流用于y坐标等)。流类型(即,特定流的数据格式)能取决于存储的数据而改变。可能流类型包括但不限于整数值(例如32位带符号或无符号(U32)整数)、整数值对、浮点值(例如32位浮点值)、UTF8或其他文本值,或这些值的数组或缓冲器。例如,x坐标流可以采用整数数组的形式,而不同流类型可以用于存储其他信息。
在一些实施例中,两个数据流可以共同提供用于特定类型测量的信息,一个数据流是原始数据本身(例如,x坐标,y坐标等),而另一个是由允许墨水引擎将原始数据转换成实际单位的设备提供的校准(或度量)数据。在至少一个实施例中,x坐标流包括由该设备提供的x坐标值,而x坐标度量流包括有关那些x坐标值的比例尺和范围的信息。例如x坐标度量可以描述值的可能范围、比例尺信息和符号约定信息(例如,正负值的含义)。
在图26所示的表2600中示出以来自流生成器220的输出表示的示例性手写数据。表2600中的行对应于流中表示的笔事件。在表2600中标记“笔划”的列与流ID=3相关联并且提供笔事件与手写中的哪一笔划相关联的指示符。(在该例子中,笔划“0”表示相应的笔事件在手写的第一笔划中)。在表2600中标记“Btn”的列与流ID=4相关联并且提供表示笔是抬起(0)还是放下(1)的二进制值。标记“X”和“Y”的列分别与流ID=1和流ID=2相关联并且提供x坐标和y坐标。在表2600中标记“Ti”的列提供定时信息。定时信息可以包括用于各个笔事件的时间戳。然而,在图26所示的例子中,第一行后的该列为空白以表示数字化器以固定时间间隔采集笔事件(例如每隔5ms)的列情形,由此允许由采样率推断每一笔事件的时间,并且避免用于每一笔事件的明确时间戳信令的需要。在表2600中标记“P”的列与流ID=7相关联并且提供笔压力值。
在图27中示出能由流自适应编码器2540(见图25)执行的示例性自适应编码过程S240。在步骤S241,识别流ID,以及基于流ID,选择相应的编码方案。例如,对流ID=1,2,或7(例如x坐标,y坐标或压力值),选择第一编码方案S242,以及对流ID=3或4,选择第二编码方案S243(例如笔划ID编号或表示笔抬起还是放下的“Btn”值)。选择的编码方案能利用待编码的数据的特性的优点。例如,第一编码方案S242能利用x坐标、y坐标和压力值频繁但以基于与较早笔事件相关联的值稍微可预测方式改变的趋势的优点。如另一例子,第二编码方案S242能利用笔划ID编号和“Btn”值不常改变,导致长期处于同一值的趋势的优点。
在图27所示的例子中,基于流ID进行适当编码方案的选择,并且当已经处理所有流时,在步骤S245,输出流化数据(FIRST_CONV_DATA)。适当时,可以忽略或丢弃不存在或流自适应编码器2540未识别的任何流ID。使用的特定编码方案和为编码选择的特定数据能取决于实现而改变。在图27所示的例子中,编码方案S244可以包括在此所述的任何编码技术或一些其他编码技术并且可以用来编码在此所述的任何流或一些其他流。
在图28中示出第一编码方案S242的例子(见图27)。在图28所示的例子中,编码与笔事件相关联的x坐标值,尽管可以类似地编码其他值(例如y坐标值、压力值)。在步骤242A-1,获得当前x坐标值(索引k)。在步骤242A-2,通过从当前x坐标值减去前一x坐标值,计算差异值。(在一些情况下,可以跳过步骤242A-2,诸如当前x坐标值与初始笔事件(k=0)相关联)。对后续笔事件,重复步骤242A-1和242A-2。当处理完该流的所有值时,在步骤242A-3,连同用于后续笔事件(k=1…n)的差异值一起,编码用于初始笔事件(k=0)的初始x坐标值。例如,步骤242A-3的编码可以包括用于差异值的运行长度编码或熵编码。用于编码初始值和差异值的特定技术可以取决于实现而改变。
在至少一个实施例中,无符号的32位整数(U32)数组流用来存储x坐标,以及当存储该数据时,使用下述过程。
1.将该值存储为初始值,接着是用于数组的余数的差异集。
2.差异被运行长度编码。计算需要存储的最大差异,然后得到最大重复次数。
3.将该数据写入为:(a)点的数量,存储为32v值;(b)第一值,存储为32v值;(c)存储最大差异所需的位数量,存储为8位值;以及(d)存储最大运行长度所需的位数量,存储为8位值。在该上下文中,“32v”是指存储大小达32位的值的方法,但仅使用存储该值实际所需的字节数。由此,32v值是可变长度值的例子,特别地,具有可变字节数的值(可变字节值)。在图29A中示出示例性32v编码技术。如图29A所示,在32v值中,使用每一字节来存储需要存储的值的7位。前7位存储在第一字节中,且符号位设定为(1)。重复直到已经存储所有非零位为止。由清零符号位(0)表示最后一个字节。例如,在图29B所示的处理中,在步骤2910获得整数V。在步骤2920,将V与十六进制值0x7F比较。如果V大于十六进制值0x7F,在步骤2940,将V的最低7位写在单个字节中,且符号位设定为(1),以及在步骤2950执行7位的右移。重复步骤2920、2940和2950直到V不大于0x7F为止,此时,在步骤2930,V的最后一个字节写入符号位清零(0)。再参考图29A所示的例子,2字节值的第二字节具有清零符号位,而n字节值的第n字节具有清零符号位。在加载32v值时,读取每一字节,以及提取最低有效7位直到由清零符号位表示的最后一个字节为止。
4.然后将整个差异集合写入为位打包二进制大型对象(binary blob),适当时,通过运行长度编码存储。(在下文中进一步描述二进制大型对象。)
在至少一些实施例中,能将任何流类型的流化数据转换成包括一系列平化数据的输出数据,其也能称为编码二进制手写数据或“二进制大型对象”。然后,将对应于流的二进制大型对象合成为单个实体,可能与属于不只一个流或作为整体的输出数据的、诸如头部信息(例如格式和/或版本信息,流编号等)其他二进制信息一起。在手写签名的上下文中,该单个实体能被称为“签名大型对象”。应用可以直接处理签名大型对象中的二进制信息,或可以将二进制信息转换成不同格式,诸如base-16(十六进制)或base-64编码。
图30是包括至少三个流和包括流的总数的指示的头部信息的示例性数据结构3000的图。数据结构3000是二进制大型对象或编码二进制数据的一个例子。根据在此所述的实施例,能从流编码器(例如图25中的流自适应编码器2540)输出数据结构3000。
在至少一个实施例中,如图25所示,对每一流,指定唯一整数标识符(例如,对x坐标,ID=1,对y坐标,ID=2,对x坐标度量,ID=3等)。可以由单个机构定义和控制流ID值。流ID值可以与特定流类型相关联,这可以允许由流ID确定用于指定流的流类型而无需明确地告知。唯一标识的不同流仍然可以具有同一流类型。例如,x坐标和y坐标流均是整数数组但具有不同流标识符。流还可以包括附加信息,诸如包含在流中、表示有效载荷数据(例如,对应于x坐标流中的实际x坐标的数据)的字节数的长度字段。
如图30所示,从上到下和从左向右阅读,数据结构3000包括指示签名大型对象中的流总数的字段,接着是对应于各个流的数据(例如流ID、以字节为单位的有效载荷数据的长度,以及有效载荷数据本身)。能通过读取流ID、其包含的二进制有效载荷数据的长度和有效载荷数据本身,顺序地读取每一流。如果识别流ID,能使用相关数据处理器,将有效载荷数据转换成适当格式。(如图30中所示,省略了流ID 3,4,5和6,存在对应于所有可能流ID的流是不必要的)。如果未识别流ID(例如,较老的解码器不能识别新定义的数据流的情形),能安全地丢弃该流并且下一流依次进行。
如上所述,用于编码在此所述的数据(包括例如编码二进制手写数据)的特定编码技术以及自适应选择可用编码技术的过程可以取决于实现而改变。在该章节中,参考图31-34,描述替代的编码技术。
在一些实施例中,就一些数据类型的压缩效率而言,使用熵编码的可变长度编码方案是优选的。此外,在一些实施例中,使用预测编码来编码一些值(例如x坐标,y坐标和压力值)。在此所述的例子中,预测编码包括计算预测残差,即,预测值和实际值之间的差。预测值基于先前获得的数据。在编码器中,可以将先前获得的数据存储在存储器中。在解码器中,先前获得的数据可以是最新解码数据。预测编码基于手写运动倾向于以与先前运动的方向和速度类似的方向和速度继续的假设。与差异值一样,还能编码预测残差。
在图31中示出了替代的第一编码方案S242(见图28)的流程图。在图31所示的例子中,编码与笔事件相关联的x坐标值,尽管可以类似地编码其他值(例如y坐标值,压力值)。当应用图31中所示的该编码方案时,执行下述步骤(例如在图20的手写数据处理部2100A中)。在步骤242B-1,获得当前x坐标值(索引k)。在步骤242B-2,基于先前获得的数据,计算当前x坐标值(索引k)的预测值。例如,通过对第三点的线性预测方法,由两个解码值(例如X[k-2]和X[k-1])得出预测值。在步骤242B-3,通过从当前x坐标值减去预测值,计算预测残差值。在该例子中,预测残差为(i)预测x坐标位置和实际测量的x坐标位置之间的差。(在一些情况下,可以忽略步骤242B-2和242B-3,诸如在将当前x坐标值与初始笔事件(k=0)相关联并且无先前获得的数据可用于计算预测值的情况下)。对后续笔事件,重复步骤242B-1、242B-2和242B-3。当处理该流中的所有值时,连同用于后续笔事件(k=1…n)的预测残差,在步骤242A-4,编码用于初始笔事件(k=0)的初始x坐标值。用于编码初始值和预测残差的特定技术可以取决于实现而改变,如在下文进一步详细所述。
图32是示出可以在图31所示的替代的第一编码方案S242中执行的预测残差计算的图。在图32所示的例子中,预测与笔事件相关联的x坐标值,尽管可以类似地预测其他值(例如y坐标值、压力值)。基于先前获得的数据,计算当前x坐标值(X[k]=+26)的预测值。在该例子中,基于两个先前获得的x坐标值(x[k-2]和X[k-1])的值,计算预测值(Predicted_X[k])。具体地,通过将x[k-2]和X[k-1]之间的差与X[k-1]的值相加,计算预测值(+25),如下所示:
[公式7]
Predicted_X[k]=X[k-1]+(X[k-1]-X[k-2])=20+(20-15)=20+5=+25
通过从当前x坐标值减去预测值,计算预测残差值(+1),如下所示:
[公式8]
预测残差=X[k]-Predicted_X[k]=26·25=+1
图33是具有各个差异值、预测值和预测残差的若干示例性x坐标值的图。在图33中,第一行的值(X[0...])表示实际x坐标值,第二行(delta_X[1...])表示差异值,第三行(Predicted_X[2...])表示预测值,以及第四行(预测残差[2...])表示预测残差值。在图33所示的例子中,x坐标值(第一行)从初始值15增加直到变化率在50附近相当缓慢为止。图34是示出图33中所示的差异值和预测残差的频率的直方图。如图34所示,预测残差的大小可能平均小于差异值的大小。此外,预测残差的频率以单一峰值(例如小的绝对值或0)为中心,而差异值的频率可以具有多个峰值(例如,在+5附近的1个峰值,以及在0附近的1个峰值)。
分别如图35和36中图示的表3500和3600中所示,99个样本手写签名的实验研究分别指示较小的x坐标预测残差和压力值预测残差分别趋向于比较大的x坐标预测残差和压力值预测残差更频繁。图35中图示的直方图3510示出用于x坐标值的预测残差的频率可以以单个峰值(例如小绝对值或0)为中心,而差异值的频率可以具有多个峰值(例如,-10附近的1个峰值,+10附近的1个峰值以及0附近的1个峰值)。图36中图示的直方图3610示出预测残差和压力值的频率均可能以单个峰值(例如小绝对值或0)为中心。总的来说,直方图3510和3610示出对压力值和x坐标值,预测残差值更可能等于或接近0。如果使用适当的编码方案,通过用更少位编码它们,可以利用这些更小的大小。
图37图示示出能用来编码值,诸如差异值或预测残差的示例性可变长度编码方案的表3700。表3700图示值和相应的位串之间的映射。图37中图示的编码方案是一种称为指数-哥伦布(或Exp-Golomb)编码的可变长度熵编码,其中,使用较短位串编码较高概率值。图37中所示的示例性编码方案特别适合于与大值相比更容易出现小值的情形,如图38和39所示。
图38和39分别图示表示将图37的可变长度编码方案分别应用于用于x坐标值和压力值的预测残差的结果的表3800和3900。分别在表3800和3900中标记为“X_pred_residual_ExpGolomb”和“P_pred_residual_ExpGolomb”的列中的条目能包括在适当配置的编码器(例如图25中的流自适应编码器2540)的输出(例如分别与“FIRST_CONV_DATA”中的“流ID#1”和“流ID#7”相关联的流)中。
在图40中示出示例性的基于上下文的编码方案选择部4000的流程图。在步骤4010,至少部分基于流ID,确定编码上下文。在步骤4020,基于该上下文,选择可变长度码(VLC)。在步骤4030,使用选择的VLC表,编码由流ID表示的流中的值。图41A和41B分别示出示例性VLC表4100和4110。在图41A所示的例子中,基于与x坐标值相关联的流ID(例如,流ID=2),确定上下文。VLC表4100通过通常对给定大小的右移提供较短位串,使右移的优先级高于左移。在图41B所示的例子中,基于与x坐标值相关联的流ID和书写倾向从右向左移动的语言(例如阿拉伯语)、脚本或字母表的指示,确定上下文。VLC表4110通过对给定大小的左移,通常提供更短位串,使左移的优先级高于右移。如何确定编码上下文以及使用的特定VLC表和代码的详情可取决于实现而改变。
在图42中示出了示例性解码过程4200的流程图。在图42所示的例子中,解码过程包括通过编码的预测残差来解码值(例如x坐标值、y坐标值等)。在步骤4210,解码编码值的第一部分(例如,分别对应于索引k=0和k=1的两个初始编码值)。步骤4210中的第一部分的值的解码允许具有编码的预测残差的后续值在稍后步骤中解码。在步骤4220,基于先前得出或解码的值,对与下一索引(例如k=2或后续值)相关联的值,得出预测值。(见例如图32)。在步骤4230,对各个预测值,解码预测残差值。在步骤4240,基于得出的预测值和解码的预测残差值,获得初始值。(见例如图32)。继续对另外的值解码直到已经解码待解码的所有编码值为止。用于解码特定编码值和/或编码预测残差的技术(见例如图42的步骤4210和4230)将取决于用来编码它们的编码方案而改变。例如,将使用相应的解码方案,解码使用Exp-Golomb编码方案编码的值。
再参考图21A,在一些实施例中,笔划和/或图像数据数据处理部300使用有损技术(即,可以包含数据损失的技术),处理原始手写数据。由于诸如单向x/y坐标平滑函数、量化(例如,将数据转换成标准单位)、时间戳的未使用和后续丢弃的处理,数据损失会发生。图43示出图像数据处理部300A的示例性实施例,其中,基于由呈现配置模块4320提供的配置数据,由图像处理器4340处理原始手写数据。配置数据可以包括生成图像数据所需的数据,诸如图像大小、比例、偏移量、笔划颜色(例如红、绿、蓝、不透明)和/或笔工具数据(例如画笔、铅笔)等。在图43所示的例子中,图像处理器4340将原始手写数据转换成图像数据(标记为“SECOND_CONV_DATA”)。图44示出笔划和图像数据处理部300B的替代实施例,其中,基于由呈现配置模块4320提供的配置数据,由笔划数据生成器4330处理原始手写数据。在图44所示的例子中,笔划数据生成器4330将原始手写数据转换成能由墨水引擎4340B处理的笔划数据。墨水引擎4340B将笔划数据转换成图像数据(“SECOND_CONV_DATA”)。
在图45和46中示出可以从由有损数据处理部300生成的图像数据呈现的图像的例子(例如,由图43和44中图示的实施例的一个),分别图示签名4500和艺术绘画4600的图像。在图46所示的例子中,在背景图像4610上呈现艺术绘画。可以使用配置数据来配置图像的呈现。例如,配置数据可以指示应当以墨水的特定颜色呈现签名4500或艺术绘画4600的手写。
图47示出笔划数据处理部300C的实施例,其中,基于由呈现配置模块4320提供的配置数据,由笔划数据生成器4330处理原始手写数据。笔划数据生成器4330将原始手写数据转换成笔划数据(“SECOND_CONV_DATA”)。与图44中图示的笔划和图像数据处理部300B不同,笔划数据处理部缺乏墨水引擎。分开的墨水引擎(未示出)可以将笔划数据转换成图像数据。例如,分开的墨水引擎可以在云计算设备中的服务器上运行。用来生成和处理在此所述的实施例中的配置数据、笔划数据和图像数据的特定技术可以取决于实现和/或环境而改变。
再参考图21A,在一些实施例中,整合部400将以流化格式保存的手写数据与图像数据合成。图48示出整合部400的示例性实施例,其中,从流生成部200(见图21A)接收的数据(“FIRST_CONV_DATA”)与从有损数据处理部300(见图21A)接收的图像数据(“SECOND_CONV_DATA”)整合。在图48所示的例子中,使用隐写图形处理4820来将流化数据插入到图像数据。用来生成整合数据的特定技术可以取决于实现和/或环境而改变,如下文详细说明。
尽管可以以标准图像格式呈现签名或签字文档的图像,而不保存手写数据的原始内容,这样做的一个缺点在于所捕捉的大部分签名信息将丢失。通过将手写数据的原始内容与图像数据整合(例如通过将编码的二进制手写数据隐写图形地插入到图像中),克服该问题。另外的优点在于许多现有的应用能处理图像而不是手写数据。通过将手写数据插入到图像中。甚至当在自己不能识别或处理手写数据的应用之间传递图像时,也能保存原始手写数据的原始内容。使用这种图像允许保存手写数据的完整原始内容,无需修改处理所修改的图像的应用。
用于手写的特定实例的流化数据的大小是可变的并且取决于诸如手写的持续时间的因素;通常以固定间隔采集数据点,使得将保存的点的数量与数据采集速率和签字所花费的整体时间成比例。一些数字化器可以每秒采集400个点,或更多。流化数据的大小也可以取决于是否存在可以可选的数据流,诸如压力和笔角度流。例如,当以二进制形式存储时,包括以每秒100个点(正常频率)采集的x坐标、y坐标、时间和压力信息的签名可以占用1和2千字节之间。包含每秒更多点的手写可以包括更多信息。在至少一个实施例中,典型的手写签名生成大小在2和4千字节之间的范围中的流化数据。
在至少一个实施例中,根据图49中所示的通用技术4900,将编码的二进制手写数据插入到图像中。在步骤4910,获得数字图像像素数据。不要求原始像素数据的特定格式。然而,优选像素数据的位深度是使得一些位可以从它们的原始值变更,而不会导致呈现图像的显著劣化。在步骤4920,由表示电子手写的编码二进制手写数据(例如,以上述编码二进制格式)替换原始像素数据的一部分。例如,在图像的选择像素中,修改一个或多个颜色值的一个或多个位,如在下文进一步说明。将修改的像素的数量可以取决于若干因素,包括待编码的数据的大小和在每一像素中修改的位数量。在步骤4930,将像素数据,包括修改的像素值存储在修改的数字图像中。修改的图像可以以压缩或不压缩格式存储。为避免数据损失,不以有损压缩格式,诸如JPEG存储修改的数字图像。
在至少一个实施例中,在由24位组成的像素中,其中,8位用于三种颜色值(例如红、绿和蓝)的每一个,由电子手写数据替代颜色值的较低有效位。在至少一个实施例中,替代每一像素4位(例如红值的最低有效位、绿值的最低有效位和蓝值的2个最低有效位),由此允许将4位手写数据存储在单个像素中,以及1字节(8位)手写数据存储在2个像素中。能将每一像素的4位手写数据译码成base-16(十六进制)值。
通常优选手写数据不完全存储在图像的连续像素序列中。在一些实施例中,尽管一些数据(例如头部数据)可以存储在一系列顺序像素中,但大多数数据(例如,x坐标数据,y坐标数据)存储在伪随机选择的、遍布于整个图像的像素中。在至少一个实施例中,将头部信息插入到以图像的第一像素开始的一系列顺序像素中,并且顺序继续直到插入所有头部信息为止。然后,将各个流中的数据插入到伪随机选择的像素中。头部信息可以包括数据存储机制的版本号、流化数据的大小和将存储数据的图像的宽度和高度。
除头部信息和流数据外,可以将验证数据插入到图像中,以便提供用于确定图像是否包含有效手写数据的机制。在至少一个实施例中,表示两个预定十六进制值的8位插入在图像的前两个像素中。当后续提取该数据时,适当配置的解码器能校验这两个十六进制值的存在来对图像包含有效手写数据进行初始判定。替代地,验证数据能采用其他形式(例如表示多于2个十六进制值的二进制数据、base-64值等),或能省略验证数据。
在图50所示的例子中,示出在伪随机选择的像素中,16位二进制数据的分布。如图50所示,修改每一红色值中的1位、每一绿色值中的1位以及每一蓝色值中的2位。不影响每一颜色值中的剩余位(在图50中,由“X”表示)。替代地,能以一些其他方式,将二进制数据插入到像素值中。例如,能修改红、绿和蓝颜色值的不同位数量,或能修改颜色值的一些子集(例如红和蓝),而保留其余颜色值(例如绿)不变。待修改的特定位数量和特定值也可以取决于图像数据的格式。例如可以以不同方式调整以包含不同颜色值,或具有不同位深度的颜色值(例如10或16位)的格式的图像。通常,优选导致非常少量图像劣化的整合方案。
可以以许多方式执行像素的伪随机选择。在至少一个实施例中,通过作为种子的图像大小,初始化均匀偏差生成器,然后将其用于确定待修改的像素的序列。这确保均匀地分布像素并且使得第三方难以确定已经修改了哪些像素。如果第二次选择给定像素,简单地忽略它,以及根据伪随机算法,选择另一像素。当解码嵌入数据时,通过相同算法,能将图像大小作为种子,确定像素的序列。这意味着尽管信息遍布于图像散布,但(通过同一种子初始化均匀偏差)能再现同一序列,并且能通过适当配置的解码器,以正确顺序读取修改的像素。
在图51中提供在至少一个实施例中,将编码的二进制手写数据插入到数字图像中的隐写图形过程3200的详细流程图。在步骤5110,进行有关图像是否足够大(根据像素的数量)来存储编码的手写数据的初始判定。用来进行该判定的算法能取决于实现而改变。例如,给定每一像素中待修改的位数量(例如4位),算法能确定需要被修改来存储编码的手写数据的像素的数量是否超出图像中的总像素的预定阈值百分比。如果图像足够大,在步骤5120,将头部数据写入像素序列中。对剩余的编码手写数据,在步骤5130,伪随机地选择像素。在步骤5140执行校验来确定先前是否选择过该像素。如果先前已经选择过该像素,再次执行伪随机选择过程。如果还未选择过该像素,在步骤5150,将编码的手写数据的适当位数量(例如1/2字节(4位))写入该像素中。重复步骤5130-5150直到在步骤5160,确定已经将所有编码的手写数据写入图像中为止。在步骤52170设定状态标志来指示成功。
另一方面,如果图像不是足够大来存储编码的图像数据,在步骤5180,设定状态标记来指示失败。然而,处理5100还包括有效地处理不是足够大来存储编码的手写数据的一些图像的自适应特征。例如,能采用处理5100来修改每一选择的像素中的较大位数量(例如通过每一像素修改6位,例如每一颜色值2位),而不是每一像素4位)来减少需要被修改的像素数量。以这种方式,可以减小图像中待被修改的像素的百分比,并且隐写图形处理能继续,与图像的较小像素数量无关。
不必总是将流化数据与图像数据或笔划数据合成。图52示出整合部400B的示例性实施例,其中,使从流生成部200(见图21A)接收的数据有选择地与从有损数据处理部300(见图21A)接收的笔划数据整合。在图52所示的例子中,整合部400B基于提供为选择模块5201的输入的标记(“FIRST_CONV_DATA_EXIST_FLAG”)的状态,确定从流生成部200接收的数据(“FIRST_CONV_DATA”)是否将与笔划数据复用器5202中的笔划数据(“SECOND_CONV_DATA”)整合。图53示出整合部400C的另一示例性实施例,其中,从流生成部200(见图21A)接收的数据有选择地与从有损数据处理部300(见图21A)接收的笔划和/或图像数据整合。在图53所示的例子中,整合部400C基于提供为选择模块5301和5303的输入的控制信号(“ctrl”),确定从流生成部200接收的流化数据(“FIRST_CONV_DATA”)是否将与重组模块5302中的笔划和/或图像数据(“SECOND_CONV_DATA”)整合。用来整合数据和确定是否应当整合和/或单独处理数据的特定技术可以取决于实现和/或其他因素,诸如应用是否正请求特定数据而改变。例如,如果应用仅请求图像数据(例如PNG文件),能设定控制信号,使得整合部400C仅输出图像数据。如另一例子,如果应用仅请求流化数据,可以设定控制信号使得整合部400C仅输出流化数据。如另一例子,如果应用请求流化数据和图像数据,能设定控制信号,使得整合部400C输出包括流化数据和图像数据的整合数据。
在此所述的任一例子中,能使用一个或多个解码器来解码有损或无损编码的数据。解码器接收作为输入的编码数据并且产生解码数据作为输出。通常,解码器包括被配置成解码已经以特定方式编码的数据的解码逻辑。例如,PNG(可移植的网络图形)解码器被配置成解码已经以PNG格式编码的数据。解码逻辑可以驻留在与相应的编码逻辑不同的计算设备上,或相同设备上。
根据在此所述的实施例,编码手写数据解码器包括用于读取编码的二进制手写数据(例如位打包、exp-Golomb编码的二进制手写数据)并且将其转换回能由工具,诸如墨水引擎、法庭签名数据分析工具或其他电子手写工具使用的形式。编码手写数据解码器能结合其他解码器,诸如图像数据解码器一起使用。例如,在编码手写数据解码器读取已经插入图像文件中的像素数据中的编码手写数据后,然后能够由适当的图像数据解码器解码图像文件并且呈现以便显示。
由解码器使用的解码过程的详情可以取决于提供给解码器的上下文和/或信息。例如,根据在此所述的实施例,编码手写数据解码器可以接收编码手写数据的头部部分中的信息,其指示像素的每一颜色值中的多少位包含编码的二进制手写数据,或是否已经在熵编码方案中使用了特定编码表。通过该信息,解码器能选择用于解码编码的数据的适当技术。
尽管上述实施例涉及可以存储在数字图像中的电子手写数据,但应当理解到,在上述许多技术和工具中,可以由不限于电子手写数据的其他类型的数据补充或替代电子手写数据,以及根据在此所述的原理,这些数据可以被存储在图像数据中和/或从数字图像提取。
III.计算环境
除非在具体例子的上下文中具体说明,否则所述的技术和工具可以由任何适当的计算设备,包括但不限于膝上型计算机、台式计算机、智能电话、平板电脑等等实现。例如,尽管在此所述的一些例子中生成手写数据可以要求特定硬件特征,诸如电子笔,但可以将由电子笔生成的原始数据传送到适当配置的通用计算设备,包括但不限于膝上型计算机、台式计算机、智能电话、平板电脑等等并由其处理。
在此所述的一些功能性可以在客户端-服务器关系的环境中实现。在该环境中,服务器设备可以包括被配置成提供在此所述的信息和/或服务的适当计算设备。服务器设备可以包括任何适当的计算设备,诸如专用服务器设备。由服务器设备提供的服务器功能性在一些情况下,可以由在不是专用服务器设备的计算设备上执行的软件(例如可视化计算例子或应用对象)实现。术语“客户端”能用来指获得由服务器在通信链路上提供的信息和/或接入服务的计算设备。然而,将特定设备指定为客户端设备不一定要求存在服务器。在不同时间,取决于环境和配置,单一设备可以充当服务器、客户端、或服务器和客户端两者。客户端和服务器的实际物理位置不一定重要,但位置能对客户端描述为“本地”,而对服务器描述为“远程”,以便示例客户端正接收由远程位置的服务器提供的信息的通用情形。
图54是示例根据本公开内容的实施例,适合于使用的示例性计算设备5400的方面的框图。下文的描述适用于服务器、个人计算机、移动电话、智能电话、平板电脑、嵌入式计算设备和根据本公开内容的实施例可以使用的其他当前可用或还未开发的设备。
在其大部分基本配置中,计算设备5400包括由通信总线5406连接的至少一个处理器5402和系统存储器5404。取决于设备的准确配置和类型,系统存储器5404可以是易失或非易失存储器,诸如只读存储器(“ROM”)、随机存取存储器(“RAM”)、EEPROM、闪存或其他存储技术。本领域的普通技术和其他人将意识到系统存储器5404通常存储直接由处理器5402可存取或当前在处理器5402上运行的数据和/或程序模块。关于这一点,处理器5402可以通过支持指令的执行,充当计算设备5400的计算中心。
如图54进一步所示,计算设备5400可以包括由用于与其他设备在网络上通信的一个或更多个部件的网络接口5410。本公开内容的实施例可以接入利用网络接口5410来使用通用网络协议执行通信的基本服务。网络接口5410也可以包括配置成经一个或多个无线通信协议,诸如WiFi、2G、3G、4G、LTE、WiMAX、蓝牙等等通信的无线网络接口。
在图54所示的示例性实施例中,计算设备5400还包括存储介质5408。然而,可以使用不包括用于将数据存留到本地存储介质的设备的计算设备接入服务。因此,图54中所述的存储介质5408是可选的。在任何情况下,存储介质5408可以是易失或非易失的、可移除或不可移除的,使用能存储信息的任何技术实现,诸如但不限于硬盘驱动器、固态驱动器、CD-ROM、DVD或其他盘存储、磁带、磁盘存储等等。
如在所使用的,术语“计算机可读介质”包括以能存储信息,诸如计算机可读指令、数据结构、程序模块或其他数据的任何方法或技术实现的易失和非易失以及可移除和不可移除介质。关于这一点,图54中所述的系统存储器5404和存储介质5408是计算机可读介质的例子。
为易于示例和因为对理解所要求的主题不重要,图54未示出许多计算设备的一些典型部件。关于这一点,计算设备5400可以包括输入设备,诸如键盘、小键盘、鼠标、跟踪球、麦克风、视频摄像机、触控板、触摸屏、触笔等等。这些输入设备可以通过有线或无线连接,包括RF、红外、串行、并行、蓝牙、USB或使用无线或物理连接的其他适当的连接协议,耦接到计算设备5400。
在任何所述例子中,数据能由输入设备捕捉并且被传送和存储,以便未来处理。处理可以包括编码数据流,其随后能被解码,以便由输出设备呈现。媒体数据能由多媒体输入设备捕捉并且通过将媒体数据流保存为计算机可读存储介质(例如客户设备、服务器、管理员设备或一些其他设备上的内存或永久存储中)上的文件。输入设备能与计算设备5400(例如客户设备)分开并且可通信地耦接到计算设备5400,或能是计算设备5400的一体化部件。在一些实施例中,许多输入设备能组合成单一、多功能输入设备(例如具有一体化的麦克风的视频摄像机)。目前已知或未来开发的任何适当的输入设备可以与在此所述的系统一起使用。
计算设备5400还可以包括输出设备,诸如显示器、扬声器、打印机等等。输出设备可以包括视频输出设备,诸如显示器或触摸屏。输出设备还可以包括音频输出设备,诸如外部扬声器或耳机。输出设备能与计算设备5400分开并且可通信地耦接到该计算设备5400,或能是计算设备5400的一体化部件。在一些实施例中,可以将多个输出设备组合成单一设备(例如具有内置扬声器的显示器)。目前已知或未来开发的任何适当输出设备可以与所述的系统一起使用。
通常,可以用嵌入以编程语言,诸如C、C++、COBOL、JAVA(tm)、PHP、Perl、HTML、CSS、JavaScript、VBScript、ASPX、Microsoft.NET(tm)语言,诸如C#等等编写的硬件或软件指令中的计算逻辑,实现在此所述的计算设备的功能性。计算逻辑能编译成可执行程序或以解释编程语言编写。通常,在此所述的功能性能实现为能被复制来提供更大处理能力、与其他模块合并或分成子模块的逻辑模块。计算逻辑能被存储在任何类型的计算机可读介质(例如非瞬时介质,诸如内存或存储介质)或计算机存储设备中,并且能存储在一个或多个通用或专用处理器上并且由其执行,由此产生配置成提供在此所述的功能性的专用计算设备。
IV.扩展和替代
对在此所述的系统和设备的许多替代是可能的。例如,单个模块或子系统能分成另外的模块或子系统或组合成更少模块或子系统。作为另一例子,模块或子系统能被省略或由其他模块或子系统补充。作为另一例子,被指示为由特定设备、模块或子系统执行的功能可以由一个或多个其他设备、模块或子系统代替执行。尽管本公开内容中的一些例子包括由特定配置中的专用硬件部件组成的设备的描述,但在此所述的技术和工具能被修改成适应不同硬件部件、组合或配置。此外,尽管本公开内容中所述的一些例子包括专用情形的描述,但在此所述的技术和工具能被修改成适应不同使用情形。描述为以软件实现的功能性能代替地由硬件实现,或反之亦然。
在此所述的技术的许多替代是可能的。例如,能将各个技术的处理级分成另外级或组合成更少级。作为另一例子,各种技术中的处理级能被省略或由其他技术或处理级补充。作为另一例子,描述为出现以特定顺序出现的处理级能代替地以不同顺序出现。作为另一例子,描述为以一系列步骤执行的处理级能代替地以并行的方式、通过同时处理一个或多个所示的处理级的多个模块或软件过程处理。作为另一例子,被指示为由特定设备或模块执行的处理级可以代替地由一个或多个其他设备或模块执行。
在上述描述中,已经描述了本公开内容的原理、代表性实施例和操作模式。然而,打算保护的本公开内容的方面不应当解释为限定到所公开的具体实施例。此外,在此所述的实施例应当视为示例性而不是限制。将意识到能由其他人做出各种变化和改变,以及采用等效,而不背离本公开内容的精神。因此,明显能预期所有这些变化、改变和等效将落在所要求的主题的精神和范围内。
在权利要求部分中限定要求独占权或特权的本发明的实施例。

Claims (12)

1.一种在计算机中执行的方法,所述计算机被配置成与手写数据输入设备一起使用,所述方法包括:
获得原始手写数据,所述原始手写数据包括一系列笔事件,每个笔事件包括多个不同属性的值;
由所述原始手写数据生成包括多个流的流化数据,所述多个流的每一个包括与所述不同属性的单一属性相关的数据;
由所述原始手写数据生成笔划数据和/或图像数据;以及
有选择地输出(i)所述流化数据或(ii)所述笔划数据和/或图像数据,
生成所述流化数据包括插入与所述多个流相关联的标识符,以及其中,插入所述标识符包括将所述标识符插入所述流化数据的头部中,
生成所述流化数据进一步包括基于所述标识符,为所述多个流的每一个,从多个可用压缩技术选择压缩技术,以及将所选择的压缩技术应用于所述多个流的每一个,
所选择的压缩技术包括:
获得一系列手写数据值中的第k值作为当前目标值,其中,k是索引值;
基于在编码所述第k值前获得的值,计算用于所述第k值的预测值;
基于所述当前目标值和用于所述第k值的所述预测值,计算用于所述第k值的预测残差值,以及
通过使用为较小绝对预测残差值映射较短位串和为较大绝对预测残差值映射较长位串的熵编码方法,编码所述预测残差值。
2.根据权利要求1所述的方法,其中,所述多个可用压缩技术包括(a)不压缩和(b)差异编码,其中,所述差异编码包括差异值的运行长度编码,以及其中,应用所选择的压缩技术包括将所述差异编码应用于x坐标值或y坐标值。
3.根据权利要求1所述的方法,其中,所述熵编码方法包括根据流类型,在可变长度编码表之间切换。
4.根据权利要求1所述的方法,其中,所述有选择地输出包括:将所述流化数据与所述笔划数据和/或所述图像数据整合,由此将所述原始手写数据的原始内容与所述笔划数据和/或所述图像数据重组在单个文件中。
5.根据权利要求4所述的方法,其中,所述整合包括隐写图形处理。
6.根据权利要求1所述的方法,其中,所述有选择地输出至少部分基于来自应用的请求。
7.根据权利要求1所述的方法,其中,生成所述流化数据包括无损数据处理,以及其中,生成所述笔划数据和/或所述图像数据包括有损数据处理。
8.根据权利要求7所述的方法,其中,所述无损数据处理包括保存时间戳信息,以及其中,所述有损数据处理包括丢弃所述时间戳信息。
9.根据权利要求7所述的方法,其中,所述无损数据处理包括以原始精度级保存多个值,以及其中,所述有损数据处理包括对于所述多个值的至少一些降低原始精度级。
10.一种计算机系统,包括:
流化数据生成部,所述流化数据生成部被配置成基于原始手写数据,生成流化数据,其中,所述流化数据包括多个流,其中,所述流化数据生成部包括被配置成自适应地编码所述多个流的无损流自适应编码器;以及
有损数据处理部,所述有损数据处理部被配置成基于所述原始手写数据,生成笔划数据和/或图像数据。
11.根据权利要求10所述的计算机系统,进一步包括整合部,所述整合部被配置成将所述流化数据与所述笔划数据和/或所述图像数据整合成整合数据。
12.根据权利要求11所述的计算机系统,其中,所述整合数据包括数字图像,并且在所述数字图像中插入有编码手写数据。
CN201480051049.8A 2013-10-25 2014-10-22 动态手写验证、基于手写的用户认证、手写数据生成和手写数据保存 Active CN105556566B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361895895P 2013-10-25 2013-10-25
US61/895,895 2013-10-25
US14/080,723 2013-11-14
US14/080,723 US9235748B2 (en) 2013-11-14 2013-11-14 Dynamic handwriting verification and handwriting-based user authentication
PCT/JP2014/005367 WO2015059930A1 (en) 2013-10-25 2014-10-22 Dynamic handwriting verification, handwriting-baseduser authentication, handwriting data generation, and handwriting data preservation

Publications (2)

Publication Number Publication Date
CN105556566A CN105556566A (zh) 2016-05-04
CN105556566B true CN105556566B (zh) 2019-06-14

Family

ID=52992543

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480051049.8A Active CN105556566B (zh) 2013-10-25 2014-10-22 动态手写验证、基于手写的用户认证、手写数据生成和手写数据保存

Country Status (8)

Country Link
US (1) US10846510B2 (zh)
EP (1) EP3061067B1 (zh)
JP (3) JP5841297B1 (zh)
CN (1) CN105556566B (zh)
HK (1) HK1220031A1 (zh)
SG (2) SG10201901111UA (zh)
TW (1) TWI667619B (zh)
WO (1) WO2015059930A1 (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105556566B (zh) * 2013-10-25 2019-06-14 株式会社和冠 动态手写验证、基于手写的用户认证、手写数据生成和手写数据保存
US9710701B2 (en) 2015-03-26 2017-07-18 Lenovo (Singapore) Pte. Ltd. Handwriting data search
KR101575577B1 (ko) * 2015-07-09 2015-12-08 주식회사 시큐브 수기서명 인증 시스템 및 방법
KR101584045B1 (ko) * 2015-09-02 2016-01-11 주식회사 시큐브 세그먼트 기반 수기서명 인증 시스템 및 방법
TWI552119B (zh) * 2015-09-25 2016-10-01 Univ Hungkuang Computer writing sense system
CN105844726B (zh) * 2016-03-18 2018-04-17 吉林大学 一种手写签名签到管理系统
CN106843714B (zh) * 2016-11-15 2020-05-12 广州视源电子科技股份有限公司 触控笔笔迹的优化方法及系统
JP6387207B1 (ja) * 2016-12-30 2018-09-05 株式会社ワコム デジタルインクの符号化方法、復号化方法
JPWO2018155107A1 (ja) * 2017-02-21 2019-12-12 日本電気株式会社 認証処理装置、認証処理方法、およびプログラム
CN106951832B (zh) * 2017-02-28 2022-02-18 广东数相智能科技有限公司 一种基于手写字符识别的验证方法及装置
CN107358148B (zh) * 2017-05-24 2022-04-29 广东数相智能科技有限公司 一种基于手写识别的防作弊网络调研的方法及装置
US11164025B2 (en) 2017-11-24 2021-11-02 Ecole Polytechnique Federale De Lausanne (Epfl) Method of handwritten character recognition confirmation
EP3822795B1 (en) * 2018-08-21 2023-07-26 Huawei Technologies Co., Ltd. Data storage and acquisition method and device
US11087078B2 (en) * 2018-08-23 2021-08-10 Tata Consultancy Services Limited System and method for real time digitization of hand written input data
EP3888301A4 (en) * 2018-11-26 2022-08-24 Forticode Ltd MUTUAL AUTHENTICATION OF COMPUTER SYSTEMS ON AN UNSECURED NETWORK
CN111079491B (zh) * 2019-05-29 2023-11-24 广东小天才科技有限公司 一种书写内容识别方法、电子设备及存储介质
US10733325B1 (en) * 2019-11-15 2020-08-04 Capital One Services, Llc Securing user-entered text in-transit
US11416621B2 (en) 2020-06-18 2022-08-16 Micron Technology, Inc. Authenticating software images
US11514695B2 (en) * 2020-12-10 2022-11-29 Microsoft Technology Licensing, Llc Parsing an ink document using object-level and stroke-level processing
CN113468987B (zh) * 2021-06-17 2023-04-18 重庆傲雄在线信息技术有限公司 一种电子笔迹鉴定方法、系统、电子设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6487310B1 (en) * 1991-09-06 2002-11-26 Penop Ltd. Signature matching

Family Cites Families (114)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CH503336A (de) 1968-08-23 1971-02-15 E Balk Michael Verfahren zum Identifizieren von Personen sowie Vorrichtung zur Ausführung des Verfahrens
US4453267A (en) 1979-03-19 1984-06-05 Ncr Corporation Signal compression apparatus and method
US4495644A (en) 1981-04-27 1985-01-22 Quest Automation Public Limited Company Apparatus for signature verification
JPS58178488A (ja) * 1982-04-12 1983-10-19 Mitsubishi Electric Corp 手書き図形符号化装置
JPS59192A (ja) 1982-06-25 1984-01-05 株式会社東芝 個人照合装置
US4656662A (en) 1983-07-18 1987-04-07 Ncr Corporation Personal identification method and apparatus
US4701960A (en) 1983-10-28 1987-10-20 Texas Instruments Incorporated Signature verification
JPS626385A (ja) * 1985-07-03 1987-01-13 Oki Electric Ind Co Ltd 文字認識装置
US4724542A (en) 1986-01-22 1988-02-09 International Business Machines Corporation Automatic reference adaptation during dynamic signature verification
JPS62287387A (ja) 1986-06-06 1987-12-14 Yukio Sato 手書き文字のオンライン認識方式
EP0276109B1 (en) 1987-01-20 1993-05-12 Btg International Limited Method and apparatus for capturing information in drawing or writing
US5054088A (en) 1989-09-20 1991-10-01 International Business Machines Corporation Signature verification data compression for storage on an identification card
US5109426A (en) 1989-11-10 1992-04-28 National Research Development Corporation Methods and apparatus for signature verification
US5091975A (en) 1990-01-04 1992-02-25 Teknekron Communications Systems, Inc. Method and an apparatus for electronically compressing a transaction with a human signature
US5038392A (en) 1990-02-12 1991-08-06 International Business Machines Corporation Method and apparatus for adaptive image processing by recognizing a characterizing indicium in a captured image of a document
US5101437A (en) 1991-02-11 1992-03-31 Ecole Polytechnique Method and apparatus for comparing a test handwritten signature with a reference signature by using information relative to curvilinear and angular velocities of the signature
US5285506A (en) 1991-04-30 1994-02-08 Ncr Corporation Method of recording a handwritten message
US5111512A (en) 1991-05-14 1992-05-05 At&T Bell Laboratories Method for signature verification
US6128409A (en) * 1991-11-12 2000-10-03 Texas Instruments Incorporated Systems and methods for handprint recognition acceleration
JP2800538B2 (ja) * 1992-03-23 1998-09-21 日本電気株式会社 可変長ビット列処理プロセッサ
US5699445A (en) 1992-04-10 1997-12-16 Paul W. Martin Method for recording compressed data
EP0567680B1 (en) 1992-04-30 1999-09-22 International Business Machines Corporation Pattern recognition and validation, especially for hand-written signatures
WO1994004992A1 (en) 1992-08-20 1994-03-03 Communication Intelligence Corporation A method for dynamic reconstruction of handwritten data
US5528699A (en) 1992-11-24 1996-06-18 Nippondenso Co., Ltd. Information medium recognition device
JPH06162268A (ja) * 1992-11-24 1994-06-10 Nippondenso Co Ltd サイン認識装置
US5454046A (en) 1993-09-17 1995-09-26 Penkey Corporation Universal symbolic handwriting recognition system
US5434928A (en) 1993-12-06 1995-07-18 At&T Global Information Solutions Company Method for verifying a handwritten signature entered into a digitizer
WO1995016974A1 (en) 1993-12-17 1995-06-22 Quintet, Incorporated Method of automated signature verification
US5699456A (en) 1994-01-21 1997-12-16 Lucent Technologies Inc. Large vocabulary connected speech recognition system and method of language representation using evolutional grammar to represent context free grammars
US5577135A (en) 1994-03-01 1996-11-19 Apple Computer, Inc. Handwriting signal processing front-end for handwriting recognizers
GB9409773D0 (en) 1994-05-13 1994-07-06 Atomic Energy Authority Uk Identification system
US5687254A (en) 1994-06-06 1997-11-11 Xerox Corporation Searching and Matching unrecognized handwriting
US6091835A (en) 1994-08-31 2000-07-18 Penop Limited Method and system for transcribing electronic affirmations
US5544255A (en) 1994-08-31 1996-08-06 Peripheral Vision Limited Method and system for the capture, storage, transport and authentication of handwritten signatures
US5528003A (en) 1994-12-14 1996-06-18 International Business Machines Corporation Data compression for pen stroke input
US5812698A (en) 1995-05-12 1998-09-22 Synaptics, Inc. Handwriting recognition system and method
US5991441A (en) 1995-06-07 1999-11-23 Wang Laboratories, Inc. Real time handwriting recognition system
US5828772A (en) 1995-12-27 1998-10-27 Lucent Technologies Inc. Method and apparatus for parametric signature verification using global features and stroke-direction codes
US5892824A (en) 1996-01-12 1999-04-06 International Verifact Inc. Signature capture/verification systems and methods
US6259043B1 (en) * 1996-01-23 2001-07-10 International Business Machines Corporation Methods, systems and products pertaining to a digitizer for use in paper based record systems
US6512840B1 (en) 1996-05-30 2003-01-28 Sun Microsystems, Inc. Digital encoding of personal signatures
NO963903D0 (no) 1996-09-18 1996-09-18 Gary A Mcconnell Fremgangsmåte til registrering av validering av en personlig signatur, kompilering av databaser for bruk ved fremgangsmåten, en elektronisk skriveinnretning for signaturegistrering samt anvendelse av fremgangsmåter og innretning
GB9625661D0 (en) * 1996-12-11 1997-01-29 Hewlett Packard Co A method and apparatus for compression of electronic ink
JP3492874B2 (ja) * 1996-12-26 2004-02-03 株式会社デンソーウェーブ サイン照合システム
JPH10240866A (ja) * 1997-02-24 1998-09-11 Mitsubishi Electric Corp 文字認識装置
CN1272932A (zh) 1997-10-01 2000-11-08 株式会社凯迪克斯 集成电路卡验证方法和装置
US6055552A (en) * 1997-10-31 2000-04-25 Hewlett Packard Company Data recording apparatus featuring spatial coordinate data merged with sequentially significant command data
US6055592A (en) 1998-02-09 2000-04-25 Motorola, Inc. Smart card authentication system comprising means for converting user identification and digital signature to pointing device position data and vice versa using lut
US6011873A (en) 1998-04-29 2000-01-04 Penware, Inc. Method and apparatus for lossless compression of signature data
JPH11341456A (ja) * 1998-05-29 1999-12-10 Matsushita Graphic Communication Systems Inc 家庭用マルチメディア通信システム
JP2000163514A (ja) * 1998-09-25 2000-06-16 Sanyo Electric Co Ltd 文字認識方法、文字認識装置および記憶媒体
US6307955B1 (en) 1998-12-18 2001-10-23 Topaz Systems, Inc. Electronic signature management system
DE60042165D1 (de) 1999-01-13 2009-06-18 Computer Ass Think Inc Unterschriften-erkennungs-system und -verfahren
WO2000057349A1 (en) * 1999-03-24 2000-09-28 British Telecommunications Public Limited Company Handwriting recognition system
US7106888B1 (en) 1999-05-25 2006-09-12 Silverbrook Research Pty Ltd Signature capture via interface surface
AU761773B2 (en) 1999-06-30 2003-06-12 Silverbrook Research Pty Ltd Method and system for sensing device registration
JP2001331802A (ja) * 2000-05-22 2001-11-30 Interlink Kk 筆跡イメージの生成装置及び表示装置並びに筆跡イメージ生成用プログラムを記憶した記憶媒体
US7397949B2 (en) * 2000-06-21 2008-07-08 Microsoft Corporation Serial storage of ink and its properties
JP2002108822A (ja) 2000-09-28 2002-04-12 Nec Corp セキュリティ管理方式
US6975750B2 (en) 2000-12-01 2005-12-13 Microsoft Corp. System and method for face recognition using synthesized training images
US6549675B2 (en) * 2000-12-20 2003-04-15 Motorola, Inc. Compression of digital ink
JP4346814B2 (ja) 2000-12-27 2009-10-21 キヤノン株式会社 情報処理装置及びその方法、コンピュータ可読メモリ、プログラム
US6741749B2 (en) 2001-01-24 2004-05-25 Advanced Digital Systems, Inc. System, device, computer program product, and method for representing a plurality of electronic ink data points
JP2002269272A (ja) 2001-03-13 2002-09-20 Nippon Telegr & Teleph Corp <Ntt> 認証代行方法及び装置、認証代行プログラム並びにそのプログラムを記録した記録媒体
US6694045B2 (en) 2002-01-23 2004-02-17 Amerasia International Technology, Inc. Generation and verification of a digitized signature
US7197167B2 (en) 2001-08-02 2007-03-27 Avante International Technology, Inc. Registration apparatus and method, as for voting
AUPR890201A0 (en) * 2001-11-16 2001-12-06 Silverbrook Research Pty. Ltd. Methods and systems (npw005)
CA2363372A1 (en) 2001-11-20 2003-05-20 Wayne Taylor System for identity verification
US7391906B2 (en) 2001-12-05 2008-06-24 Microsoft Corporation Methods and system for providing image object boundary definition by particle filtering
EP1345163B2 (en) 2002-03-15 2010-12-29 Computer Sciences Corporation Methods for analysis of writing in documents
JP4070001B2 (ja) * 2002-03-19 2008-04-02 日本サイバーサイン株式会社 署名認証システム、署名認証プログラム
JP2003271966A (ja) * 2002-03-19 2003-09-26 Fujitsu Ltd 手書き入力認証装置、手書き入力認証方法、および手書き入力認証プログラム
JP2003271965A (ja) 2002-03-19 2003-09-26 Fujitsu Ltd 手書き署名認証プログラム、方法、及び装置
JP2003271967A (ja) 2002-03-19 2003-09-26 Fujitsu Prime Software Technologies Ltd 手書き署名認証プログラム、方法、及び装置
JP2003345505A (ja) 2002-05-23 2003-12-05 Takeo Igarashi 固有のデバイスidを有する入力操作手段を用いるコンピュータシステム
JP2004021663A (ja) * 2002-06-18 2004-01-22 Hitachi Ltd ネットワークを利用した商取引システムの個人認証方法
GB0223074D0 (en) 2002-10-04 2002-11-13 Motion Touch Ltd Recording writing movements
US7433499B2 (en) 2003-08-22 2008-10-07 Dynasig Corporation Method and apparatus for capturing and authenticating biometric information from a writing instrument
AU2004271639B2 (en) 2003-09-05 2010-09-23 Gannon Technologies Group Systems and methods for biometric identification using handwriting recognition
JP4357935B2 (ja) 2003-11-14 2009-11-04 株式会社東芝 情報処理装置およびサインデータ入力プログラム
US7136054B2 (en) * 2004-01-06 2006-11-14 Microsoft Corporation Camera-pen-tip mapping and calibration
US7190815B2 (en) 2004-05-26 2007-03-13 Topaz Systems, Inc. Method for authenticating an electronic signature
US20050276480A1 (en) * 2004-06-10 2005-12-15 Microsoft Corporation Handwritten input for Asian languages
DE102004057157A1 (de) 2004-08-21 2006-04-27 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Verfahren und Vorrichtung zum Erfassen einer eigenhändig ausgeführten Unterschrift oder Signatur und zum Erkennen der Echtheit der Unterschrift oder Signatur
EP1810493A2 (en) 2004-10-06 2007-07-25 Sybase 365, Inc. System and method for message-based access
US20060136731A1 (en) 2004-12-21 2006-06-22 Signaturelink, Inc. System and method for providing an online electronic signature
DE112005003281B4 (de) 2004-12-30 2012-02-16 Topaz Systems Inc. Elektronisches Signatursicherheitssystem
RO121497B1 (ro) 2005-02-09 2007-06-29 Softwin S.R.L. Sistem informatic şi metodă pentru achiziţia, analiza şi autentificarea semnăturii olografe
US7536051B2 (en) * 2005-02-17 2009-05-19 Microsoft Corporation Digital pen calibration by local linearization
US7917761B2 (en) 2005-03-21 2011-03-29 Microsoft Corporation Digitally signing an electronic document with a user-entered signature image
US8370632B2 (en) 2005-04-18 2013-02-05 Vpsign Ltd. Apparatus and method for incorporating signature into electronic documents
US8732025B2 (en) 2005-05-09 2014-05-20 Google Inc. System and method for enabling image recognition and searching of remote content on display
JP2006352628A (ja) 2005-06-17 2006-12-28 Viva Computer Co Ltd デジタル画像の作成・送信・受信装置およびその配受信システム
US7474770B2 (en) 2005-06-28 2009-01-06 Beigi Homayoon S M Method and apparatus for aggressive compression, storage and verification of the dynamics of handwritten signature signals
US20070065021A1 (en) 2005-07-14 2007-03-22 David Delgrosso System for encoding signatures for compressed storage using a signature encoding algorithm
US7529391B2 (en) 2005-12-29 2009-05-05 Microsoft Corporation Signature verification
US8090161B2 (en) 2006-06-19 2012-01-03 Christiane Kaplan Systems and method for signature verification
WO2008002239A1 (en) 2006-06-28 2008-01-03 Anoto Ab Operation control and data processing in an electronic pen
US20080019575A1 (en) 2006-07-20 2008-01-24 Anthony Scalise Digital image cropping using a blended map
GB0623236D0 (en) * 2006-11-22 2007-01-03 Ibm An apparatus and a method for correcting erroneous image identifications generated by an ocr device
TWI336854B (en) 2006-12-29 2011-02-01 Ibm Video-based biometric signature data collecting method and apparatus
JP2010198341A (ja) 2009-02-25 2010-09-09 Fujitsu Fsas Inc 認証処理プログラム及び装置
US20110060985A1 (en) 2009-09-08 2011-03-10 ABJK Newco, Inc. System and Method for Collecting a Signature Using a Smart Device
RO126248B1 (ro) 2009-10-26 2012-04-30 Softwin S.R.L. Sistem şi metodă pentru aprecierea autenticităţii semnăturii olografe dinamice
JP5604176B2 (ja) * 2010-05-12 2014-10-08 日本放送協会 認証連携装置およびそのプログラム、機器認証装置およびそのプログラム、ならびに、認証連携システム
JP2012033042A (ja) * 2010-07-30 2012-02-16 Hitachi Information Systems Ltd シングルサインオンシステム及びシングルサインオン方法
WO2013093864A1 (en) 2011-12-23 2013-06-27 Prosense Technology (Proprietary) Limited Electronic signature authentication method and system
CN102789576B (zh) 2012-06-29 2015-09-09 鸿富锦精密工业(深圳)有限公司 签名特征提取系统及方法
US9898186B2 (en) * 2012-07-13 2018-02-20 Samsung Electronics Co., Ltd. Portable terminal using touch pen and handwriting input method using the same
US9563926B2 (en) * 2013-03-14 2017-02-07 Applied Materials Technologies Limited System and method of encoding content and an image
US9235748B2 (en) 2013-11-14 2016-01-12 Wacom Co., Ltd. Dynamic handwriting verification and handwriting-based user authentication
CN105556566B (zh) * 2013-10-25 2019-06-14 株式会社和冠 动态手写验证、基于手写的用户认证、手写数据生成和手写数据保存
US9489048B2 (en) 2013-12-13 2016-11-08 Immersion Corporation Systems and methods for optical transmission of haptic display parameters
JP2015125620A (ja) 2013-12-26 2015-07-06 キヤノン株式会社 情報処理装置、その制御方法、プログラム、及び情報処理システム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6487310B1 (en) * 1991-09-06 2002-11-26 Penop Ltd. Signature matching

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
《Automatic Signature Verification:The State of the Art》;Donato Impedovo et al.;《IEEE TRANSACTIONS ON SYSTEMS,MAN,AND CYBERNETICS》;20080930;第38卷(第5期);609-635

Also Published As

Publication number Publication date
SG10201901111UA (en) 2019-03-28
HK1220031A1 (zh) 2017-04-21
TWI667619B (zh) 2019-08-01
EP3061067B1 (en) 2023-11-29
US10846510B2 (en) 2020-11-24
JP6562461B2 (ja) 2019-08-21
CN105556566A (zh) 2016-05-04
EP3061067A1 (en) 2016-08-31
JP2020009452A (ja) 2020-01-16
SG11201601314RA (en) 2016-03-30
EP3061067A4 (en) 2017-08-02
WO2015059930A1 (en) 2015-04-30
US20200082153A1 (en) 2020-03-12
JP2016076233A (ja) 2016-05-12
JP5841297B1 (ja) 2016-01-13
JP7050725B2 (ja) 2022-04-08
TW201535274A (zh) 2015-09-16
JP2016505907A (ja) 2016-02-25

Similar Documents

Publication Publication Date Title
CN105556566B (zh) 动态手写验证、基于手写的用户认证、手写数据生成和手写数据保存
US10496872B2 (en) Dynamic handwriting verification, handwriting-based user authentication, handwriting data generation, and handwriting data preservation
US11102201B2 (en) Robust encoding of machine readable information in host objects and biometrics, and associated decoding and authentication
US9747491B2 (en) Dynamic handwriting verification and handwriting-based user authentication
US20210117529A1 (en) Authenticating an identity of a person
JP6884104B2 (ja) 等高線マッピングから導き出される移植可能な等高線メトリックを使用する学習型等高線識別システム
CN107077589B (zh) 基于图像的生物计量中的面部假冒检测
US10403076B2 (en) Method for securing and verifying a document
US20200389293A1 (en) System and method for operating pseudorandom generators
CN104715194B (zh) 恶意软件检测方法和装置
WO2003103217A1 (en) Biometric authentication system
CN109670413A (zh) 人脸活体验证方法及装置
CN110008664A (zh) 认证信息采集、开户方法、装置及电子设备
CN109815199A (zh) 一种图片压缩算法的选取方法及装置
CN107408031A (zh) 使用材料样品中存在的物理变化生成随机数的系统和方法
CN114218574A (zh) 一种数据检测方法、装置、电子设备以及存储介质
JP2020194544A (ja) マトリックスバーコードを生成及び検証するシステム、マトリックスバーコードを生成する方法並びにマトリックスバーコードを検証する方法
US20240144729A1 (en) Generation method and information processing apparatus

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1220031

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant