CN106250804B - 减少的文档笔划存储 - Google Patents

减少的文档笔划存储 Download PDF

Info

Publication number
CN106250804B
CN106250804B CN201610149654.XA CN201610149654A CN106250804B CN 106250804 B CN106250804 B CN 106250804B CN 201610149654 A CN201610149654 A CN 201610149654A CN 106250804 B CN106250804 B CN 106250804B
Authority
CN
China
Prior art keywords
character
user
stroke data
font
handwritten
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
CN201610149654.XA
Other languages
English (en)
Other versions
CN106250804A (zh
Inventor
拉塞尔·斯佩格特·范布恩
格里戈里·M·扎伊采夫
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.)
Lenovo Singapore Pte Ltd
Original Assignee
Lenovo Singapore Pte 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
Application filed by Lenovo Singapore Pte Ltd filed Critical Lenovo Singapore Pte Ltd
Publication of CN106250804A publication Critical patent/CN106250804A/zh
Application granted granted Critical
Publication of CN106250804B publication Critical patent/CN106250804B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/10Image acquisition
    • G06V10/17Image acquisition using hand-held instruments
    • 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/24Character recognition characterised by the processing or recognition method
    • G06V30/242Division of the character sequences into groups prior to recognition; Selection of dictionaries
    • G06V30/244Division of the character sequences into groups prior to recognition; Selection of dictionaries using graphical properties, e.g. alphabet type or font
    • G06V30/245Font recognition
    • 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
    • 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
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/32Digital ink
    • G06V30/36Matching; Classification
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Character Discrimination (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

公开了用于减少用户笔划数据的存储的系统、装置和方法。该装置包括笔迹输入设备,其接收输入的笔划数据;处理器;以及存储器,其存储能够由处理器执行的代码,该代码包括:从笔划数据识别手写字符,基于笔划数据将手写字符映射到用户特定的字体字符,以及创建存储与用户特定的字体字符对应的字符编码的文件的代码。笔迹输入设备可以包括选自触摸屏、触摸板、数字转换器、数字笔、扫描仪、图像仪和数字相机的输入设备。

Description

减少的文档笔划存储
技术领域
这里公开的主题涉及保存笔划数据,更具体地,涉及减少的文档笔划存储。
背景技术
笔划数据占用大量空间。采样率可以达到133个点每秒,其转换成数据比特率大于5kbps,导致10-20MB的平均文档大小。如果学生一天记录4个小时的数字笔记,则将导致每个月1.5GB或者每个学年(假设9个月的学期和3个月的假期)接近13GB的存储需要。这样的容量带来了本地存储的问题,特别是平板电脑上的有限的SSD。大的存储需要对于可能遇到与高带宽和高存储容量相关的按比例缩放的问题的远程(例如,基于云的)存储解决方案而言也是成问题的。
发明内容
公开了一种用于减少笔划数据的存储的装置。一种方法和计算机程序产品也执行该装置的功能。该装置包括笔迹输入设备,其接收输入的笔划数据;处理器;以及存储器,其存储能够由处理器执行的代码,该代码包括:从笔划数据识别手写字符,基于笔划数据将手写字符映射到用户特定的字体字符,以及创建存储与用户特定的字体字符对应的字符编码的文件的代码。笔迹输入设备可以包括选自触摸屏、触摸板、数字转换器、数字笔、扫描仪、图像仪和数字相机的输入设备。
在某些实施例中,将手写字符映射到用户特定的字体字符包括:确定手写字符的笔划数据是否与输入笔划数据的用户所关联的用户特定的字体集合中的字体字符匹配;响应于笔划数据与字体字符匹配,选择匹配的字体字符;以及响应于笔划数据与字体集合中的任何字体字符都不匹配,基于笔划数据生成新的字体字符。用户特定的字体集合可以包括与手写字符对应的文本字符的多个变体,其中选择匹配的字体字符包括基于笔划数据选择最相配的变体。
在一些实施例中,该装置包括读取文件,以及使用用户特定的字体字符显示字符编码指示的文本字符的代码。该装置还可以包括在文件中存储手写字符的字符位置的代码,其中显示文本字符包括在字符位置显示文本字符。
在一些实施例中,该装置包括响应于基于笔划数据将手写字符映射到用户特定的字体字符而擦除该笔划数据的代码。该装置可以进一步包括确定手写字符和模范字符之间的偏差的代码,其中文件进一步存储手写字符和模范字符之间的偏差。
在某些实施例中,识别手写字符包括:从笔迹输入设备接收笔划数据,笔划数据包括用户笔迹;对笔划数据执行笔迹识别;以及基于笔迹识别来识别与手写字符匹配的文本字符,其中字符编码对应于所识别的文本字符。在某些实施例中,将手写字符映射到用户特定的字体字符包括生成表示两个相邻的手写字母的单个用户特定的字体字符。
该方法包括:通过使用处理器从笔划数据识别手写字符;基于笔划数据将手写字符映射到用户特定的字体字符;以及存储与用户特定的字体字符对应的字符编码。在一些实施例中,该方法进一步包括基于笔划数据计算手写字符的大小和取向。
在某些实施例中,该方法进一步包括基于笔划数据计算手写字符的水平缩放因子,其中存储与用户特定的字体字符对应的字符编码进一步包括存储手写字符的大小、取向和水平缩放因子。在某些实施例中,该方法进一步包括:基于手写字符的取向识别用户情绪;以及基于用户情绪使用户特定的字体字符与特定的用户特定的字体集合相关联。
在一些实施例中,该方法包括确定手写字符的字符位置,其中存储与用户特定的字体字符对应的字符编码进一步包括生成使字符编码与字符位置和与用户特定的字体字符相关联的文件。在一些实施例中,该方法包括使用用户特定的字体字符显示字符编码指示的文本字符。
在某些实施例中,将手写字符映射到用户特定的字体字符包括:确定笔划数据和与手写字符匹配的用户特定的字体字符之间的偏差;以及响应于该偏差超过字符变体阈值,基于笔划数据生成新的字体字符。在一些实施例中,将手写字符映射到用户特定的字体字符包括:确定手写字符的笔划数据是否与输入笔划数据的用户所关联的用户特定的字体集合中的字体字符匹配;响应于笔划数据与字体字符匹配,选择匹配的字体字符;以及响应于笔划数据与字体集合中的任何字体字符不匹配,基于笔划数据生成新的字体字符。
该程序产品包括存储能够由处理器执行的代码的计算机可读存储介质,可执行代码包括用于执行如下操作的代码:从笔迹输入设备接收笔划数据;从笔划数据识别一个或更多个手写字符;基于笔划数据将一个或更多个手写字符映射到至少一个用户特定的字体字符;以及在文件中存储与用户特定的字体字符对应的字符编码。该程序产品还可以包括使用用户特定的字体字符显示字符编码指示的文本字符。
附图说明
将参照在附图中示出的具体实施例呈现以上简述的实施例的更具体的描述。应当理解,这些附图仅示出了一些实施例并且因此不应被视为范围限制,将通过使用附图以额外的特性和细节描述和说明实施例,其中:
图1是图示用于减少用户笔划数据存储的系统的一个实施例的示意性框图;
图2是图示用于减少用户笔划数据存储的装置的一个实施例的示意性框图;
图3A是图示接收用户笔划数据的移动设备的一个实施例的示意性框图;
图3B是图示用户笔划数据的单词的一个实施例的示意性框图;
图3C是图示用户笔划数据的单词的另一实施例的示意性框图;
图3D是图示笔划数据分析的一个实施例的示意性框图;
图3E是图示笔划数据分析的另一实施例的示意性框图;
图4A是图示用于减少笔划数据存储的方法的一个实施例的流程图;
图4B是图示用于再现笔划数据的方法的一个实施例的流程图;
图5是图示用于减少笔划数据存储的方法的一个实施例的示意性流程图;以及
图6是图示用于减少笔划数据存储的方法的另一实施例的示意性流程图。
具体实施方式
如本领域技术人员将认识到的,实施例的方面可以被实施为系统、方法或程序产品。因此,实施例可以采取完全硬件实施例、完全软件实施例(包括固件、驻留软件、微代码等)或者这里可以被统称为“电路”、“模块”或“系统”的组合软件和硬件方面的实施例的形式。此外,实施例可以采取在存储以下称为代码的机器可读代码、计算机可读代码和/或程序代码的一个或更多个计算机可读存储设备中实施的程序产品的形式。存储设备可以是有形的、非暂态的和/或非传输的。存储设备可以不实施信号。在某些实施例中,存储设备仅采用用于存取代码的信号。
本说明书中描述的许多功能单元已被标为模块,以便更具体地强调它们的实现独立性。例如,模块可以被实现为硬件电路,其包括定制VLSI电路或门阵列,诸如逻辑芯片、晶体管或其他离散部件的现货供应的半导体器件。模块还可以在可编程硬件器件中实现,诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑器件等。
模块还可以被实现为用于由各种类型的处理器执行的代码和/或软件。所识别的代码模块可以例如包括一个或更多个物理或逻辑的可执行代码块,其可以例如被组织成对象、进程或函数。尽管如此,所识别的模块的可执行代码不需要在物理上定位在一起,而是可以包括存储在不同位置的不同的指令,在将这些指令逻辑上连结在一起时,包括模块并且实现所阐述的模块的目的。
事实上,代码模块可以是单个指令,或者许多指令,并且甚至可以分布在不同程序中的若干不同的代码段上,并且可以跨越若干存储器设备分布。相似地,这里操作数据可以在模块内被识别和示出,并且可以实施为任何适当的形式并且被组织成任何适当类型的数据结构。操作数据可以被收集成单个数据集,或者可以分布在包括不同的计算机可读存储设备的不同的位置。在模块或者模块的一部分被实现为软件的情况下,软件部分存储在一个或更多个计算机可读存储设备上。
可以利用一个或更多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读存储介质。计算机可读存储介质可以是存储代码的存储设备。存储设备可以是例如,但不限于、电子的、磁的、光的、电磁的、红外的、全息的、微机械的或半导体的系统、装置、设备或者前述项的任何适当组合。
存储设备的更具体的示例(并非无遗漏的列表)将包括:具有一条或更多条导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪速存储器)、便携式致密盘只读存储器(CD-ROM)、光存储设备、磁存储设备或者前述项的任何适当的组合。在本文的背景下,计算机可读存储介质可以是任何有形的介质,其可以包含或存储由指令执行系统、装置或设备使用或者结合指令执行系统、装置或设备使用的程序。
用于执行实施例的操作的代码可以被写成一种或更多种编程语言的组合,包括面向对象的编程语言,诸如Python、Ruby、Java、Smalltalk、C++等,以及传统的进程编程语言,诸如“C”编程语言等,和/或机器语言,诸如汇编语言。代码可以完全在用户的计算机上执行,部分地在用户的计算机上执行,作为独立的软件包执行,部分地在用户的计算机上和部分地在远程计算机上执行或者完全在远程计算机或服务器上执行。在后者的情形中,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(LAN)或广域网(WAN),或者可以(例如,使用互联网服务提供商通过互联网)实现对外部计算机的连接。
在本说明书通篇中提及的“一个实施例”、“实施例”或相似的语言意味着结合实施例描述的特定的特征、结构或特性包括在至少一个实施例中。因而,除非另外明确说明,否则本说明书通篇出现的短语“在一个实施例中”、“在实施例中”和相似的语言可以,但不一定,全部指示同一实施例,而是意指“一个或更多个但不是所有实施例”。除非另外明确说明,否则术语“包括”、“具有”和它们的变体意指“包括但不限于”。除非另外明确说明,否则项目的列举列表并不意味着所有或任何项目相互排他。除非另外明确说明,否则术语“一个”和“该”也指示“一个或更多个”。
此外,所描述的实施例的特征、结构或特性可以以任何适当的方式组合。在下面的描述中,提供了许多具体细节,诸如编程、软件模块、用户选择、网络业务、数据库查询、数据库结构、硬件模块、硬件电路、硬件芯片等的示例,以提供实施例的透彻的理解。然而,本领域技术人员将认识到,可以在没有这些具体细节中的一个或更多个的情况下实践实施例,或者可以通过其他方法、部件、材料等实践实施例。在其他实例中,没有详细示出或描述公知的结构、材料或操作以避免使实施例的方面模糊。
以下参照根据实施例的方法、装置、系统和程序产品的示意性流程图和/或示意性框图描述了实施例的方面。将理解,示意性流程图和/或示意性框图中的每个框,以及示意性流程图和/或示意性框图中的框的组合,可以由代码实现。这些代码可以被提供给通用计算机、专用计算机或者其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现示意性流程图和/或示意性框图的框中说明的功能/动作的部件。
代码也可以存储在存储设备中,其可以引导计算机、其他可编程数据处理装置或者其他设备以特定方式发挥作用,使得存储设备中存储的指令产生包括实现示意性流程图和/或示意性框图的框中说明的功能/动作的指令的制品。
代码也可以加载到计算机、其他可编程数据处理装置或者其他设备,以使一系列操作步骤在计算机、其他可编程装置或者其他设备上执行,用于产生计算机实现的处理,使得在计算机或其他可编程装置上执行的代码提供用于实现示意性流程图和/或示意性框图的框中说明的功能/动作。
图中的示意性流程图和/或示意性框图图示了根据各实施例的装置、系统、方法和程序产品的可能的实现方案的架构、功能和操作。在这一点上,示意性流程图和/或示意性框图中的每个框可以表示代码的模块、区段或部分,其包括用于实现指定逻辑功能的代码的一条或更多条可执行指令。
还应注意,在一些替选实施例中,框中标记的功能可以不按图中标记的顺序进行。例如,根据所牵涉的功能,连续示出的两个框事实上可以基本上同时执行,或者框有时可以按相反的顺序执行。可以设想在功能、逻辑或作用上等同于所示图中的一个或更多个框或者它们的部分的其他步骤和方法。
尽管在流程图和/或框图中可以采用各种箭头类型和线类型,但是应理解,它们不限定相应的实施例的范围。事实上,一些箭头或其他连接物可用于仅指示所示出的实施例的逻辑流。例如,箭头可以指示所示出的实施例的所列举的步骤之间的时长未指定的等待或监控时段。还将注意,框图和/或流程图中的每个框以及框图和/或流程图中的框的组合可以由执行指定功能或动作的基于专用硬件的系统或者专用硬件和代码的组合实现。
每个图中的元件的描述可以参照前面的图中的元件。在所有图中相同的附图标记表示相同的元件,包括相同元件的替选实施例。
通常,所描述的实施例接收用户笔划数据,将笔划数据中的手写字符映射到一个或更多个用户特定的字体字符,并且存储与用户特定的字体字符对应的字符编码。传统上,由于高采样率,笔划数据耗用大量的空间,导致10-20MB的平均文档大小。尽管将笔划数据保存为动画gif可以打包数据以实现针对给定画布大小从数字笔接收到的准确的数据比特率,但是不允许进一步压缩并且也导致了大的文档大小。
为了以小的格式存储笔划数据,使用用户的笔迹创建定制用户字体。仅存储参考定制用户字体的字符编码(例如,来自笔划数据中的识别的手写字符)。当呈递时,从用户的字体重新创建笔划数据。这减少了笔迹的存储需要,但是不丧失将其显示为个人笔迹的能力。在一些实施例中,存储需要被减少到原始文件大小的0.4%。
手写字符的若干变体可以存储在字体中并且在呈递笔迹时使用(随机地或者只要变体是最相配的)。有时根据用户的心情,用户的笔迹可能不同。因而,一些实施例可以存储与不同心情相关联的若干用户字体。再者,用户笔迹的不同变体可用于单词中的不同的字符位置或者相对于其他字符的字符位置等。例如,一些人将他们的两个t交叉在一起,使得它们看起来与将两个单独的t放在一起是不同的。
为了更准确地再现笔划数据,所存储的字体笔划数据和实际的样本数据之间的差异可以与字符编码、它们的位置和取向一起被存储。这样的差异将仅包含相对于用户笔迹的随机偏差,因此其将包含比笔划数据少的信息,从而将导致比原始笔划数据少的比特率并且损失较少。在平均学生示例中,笔记所需的存储将减少到0.5MB/月或者5MB/年,这是保留手写笔记的外观、感受、字符和独立性的0.03%的压缩率。
图1示出了用于减少笔划数据的存储的系统100。系统100可以包括电子设备105,电子设备105自身包括处理器110、存储器115、笔划数据存储模块120、笔迹输入设备125和网络接口130。在一些实施例中,电子设备105可以经由数据网络连接到另一设备,诸如服务器110。该网络可以是互联网、局域网、广域网、Wi-Fi网络、移动电话网络或者它们的组合。
电子设备105可以是能够接收用户笔划数据的任何数字设备,其包括,但不限于,触摸板、轨迹板、触摸屏等。在一些实施例中,电子设备105可以是并入能够接收多点触摸动作并且输出点击事件的触摸面板的电子设备,其包括,但不限于,移动电话、智能电话、平板电脑、膝上型计算机、桌面型计算机、便携式游戏终端等。在其他实施例中,电子设备105可以是用于减少用户笔划数据存储的电子设备,诸如接收并且存储来自用户设备的笔记的联网存储设备或者服务器。在一个实施例中,服务器可以提供转换服务,该转换服务被提供给用户设备和/或存储设备。
在一个实施例中,处理器110可以包括任何已知的能够执行计算机可读指令和/或能执行逻辑操作的控制器。例如,处理器110可以是微控制器、微处理器、中央处理单元(CPU)、图形处理单元(GPU)、辅助处理单元、FPGA或者相似的可编程控制器。在一些实施例中,处理器110执行存储器115中存储的指令以执行这里描述的方法和例程。处理器110通信耦接到存储器115、笔划数据存储模块120和笔迹输入设备125。
在一个实施例中,存储器115是计算机可读存储介质。在一些实施例中,存储器115包括易失性计算机存储介质。例如,存储器115可以包括随机存取存储器(RAM),其包括动态RAM(DRAM)、同步动态RAM(SDRAM)和/或静态RAM(SRAM)。在一些实施例中,存储器115包括非易失性计算机存储介质。例如,存储器115可以包括硬盘驱动器、闪速存储器或者任何其他适当的非易失性计算机存储设备。在一些实施例中,存储器115包括易失性和非易失性计算机存储介质。
在一些实施例中,存储器115存储涉及转换笔划数据的数据,例如,存储器115可以存储用户特定的字体等。在一些实施例中,存储器115还存储程序代码和相关数据,诸如操作系统或者在电子设备105上操作的其他控制器算法。
在一个实施例中,笔划数据存储模块120被配置成从笔划数据中识别手写字符,基于笔划数据将手写字符映射到用户特定的字体字符并且创建存储与手写字符和用户特定的字体字符对应的字符编码的文件(例如,计算机可读文件)。笔划数据存储模块120可以确定大小、位置、取向和/或手写字符和模范字符之间的偏差,其中该文件进一步存储大小、位置、取向和/或偏差。
在一些实施例中,笔划数据存储模块120确定手写字符的笔划数据是否与输入是否与输入笔划数据的用户所关联的用户特定的字体集合中的字体字符匹配,并且响应于笔划数据与字体字符匹配,选择匹配的字体字符,或者响应于笔划数据与字体集合中的任何字体字符都不匹配,基于笔划数据生成新的字体字符。
在一个实施例中,笔划数据存储模块120可以被实现为用于笔迹输入设备125的设备驱动器,提供对笔迹输入设备125的软件接口。在另一实施例中,笔划数据存储模块120可以被实现为笔迹输入设备125的控制器和/或固件。
在一个实施例中,笔迹输入设备125是接收笔迹输入并且生成与用户笔迹对应的笔划数据的输入设备。在某些实施例中,笔迹输入设备125包括书写表面中的触觉传感器,用于将位置和运动转换为表示一个或更多个字符(例如,字母、符号、单词等)的笔划数据。例如,手写输入设备125可以包括触摸面板、数字转换器、图形平板、触摸板、轨迹板或者其他适当的触敏书写表面。在某些实施例中,笔迹输入设备125跟踪用户籍其输入(例如,手写)字母、字符、单词等的笔或触笔的移动。例如,笔迹输入设备125可以包括数字笔(例如,有源数字笔)、光笔、触笔或者其他的笔/触笔移动跟踪设备。
在一些实施例中,笔迹输入设备125包括图像捕获输入设备,用于将图像数据转换成表示一个或更多个字符的笔划数据。例如,笔迹输入设备125可以包括扫描仪、图像仪、数字相机、基于相机的数字笔或者其他适当的图像捕获设备。在另外的实施例中,笔迹输入设备125可以包括触敏书写表面、笔/触笔和/或图像捕获设备的组合。在某些实施例中,笔迹输入设备125可以与显示设备集成,例如,作为触摸屏或者相似的触敏显示器。
图2示出了用于减少笔划数据存储的笔划数据存储装置200。笔划数据存储装置200可以包括笔划数据存储模块120并且可以连接性地耦接到接收输入的笔划数据的笔迹输入设备125。如所示出的,笔划数据存储模块120包括字符模块205、相关模块210和存储模块215。在一些实施例中,笔划数据存储装置200还可以包括以下模块中的一个或更多个:呈现模块220、识别模块225、位置模块230、尺寸模块235、情绪模块240、比较模块245、匹配模块250、创建模块255和删除模块260。模块205-260可以连接性地彼此耦接。在某些实施例中,如上文所述,每个模块205-260可以在硬件电路中实现。在其他实施例中,如上文所述,模块205-260中的一个或更多个可以被实现为固件和/或软件,诸如嵌入在计算机可读介质上的程序代码。
在一个实施例中,字符模块205被配置成从输入的笔划数据识别一个或更多个手写字符。手写字符可以包括输入的笔划数据的一个或更多个笔划。在某些实施例中,字符模块205通信耦接到笔迹输入设备125,其中字符模块205从笔迹输入设备125接收笔划数据和/或根据笔迹输入设备125测量的输入生成笔划数据。因此,在一个实施例中,字符模块205从笔迹输入设备125接收包括用户笔迹的笔划数据,并且分析笔划数据以识别至少一个手写字符。如这里使用的,手写字符指的是符号、字母、字形、标记、图标、语标、音标或者用户组成(例如,手写)的其他字符。手写字符的示例包括,但不限于,字母、符号、语标(例如,中文字)、涂鸦(例如,笑脸或心)、标点符号等。
在某些实施例中,手写字符可以包括两个相邻的手写字母,其中相邻的手写字母被表示为单个字符。例如,一些用户在手写时用一条线使两个相邻的字母“t”交叉,因而两个字母“t”可以被表示为单个字符。作为另一示例,两个相邻的字母“f”也可以被表示为单个字符。在某些实施例中,两个相邻的手写字母可能被曲解为单个不同的手写字母。例如,两个大写的“L”可能被曲解为大写的“U”,两个小写的“l”可能被曲解为小写的“u”,和/或两个“V”可能被曲解为“W”。然而,在这些情况下,如下面更详细地描述的,相关模块210将曲解的字符映射到与手写输入匹配的用户特定的字体字符,从而减轻曲解。
在一些实施例中,字符模块205对笔划数据执行笔迹识别,确定手写字符的字符位置、大写和取向,和/或确定与手写字符相关联的用户运动。在另外的实施例中,字符模块205可以包括一个或更多个子模块,诸如识别模块225、位置模块230、尺寸模块235和/或情绪模块240,用于执行这些功能。此外,在一些实施例中,字符模块205可以将所识别的手写字符传递到相关模块210和/或存储模块215。
在一个实施例中,识别模块225被配置成对笔划数据执行笔迹识别以便从输入的笔划数据(例如,输入的用户笔迹)中识别一个或更多个手写字符。识别模块225可以执行许多笔迹识别分析以解释笔划数据。笔迹识别分析的示例包括字符识别(例如,光学字符识别、动态字符识别和/或智能字符识别)、单词识别、笔迹移动分析、模式识别等。识别模块225可以包括用于执行笔迹识别分析的一个或更多个工具和/或算法。
在一些实施例中,识别模块225将笔划数据分成多个手写字符(例如,字母、符号或其他字符)。在另外的实施例中,识别模块225可以识别具有唯一的手写形式的字母、符号等的组合,使得组合的字母在该特定组合中的书写形式不同于在该组合外部书写时的形式。例如,一些用户在手写时用一条线使两个相邻的字母“t”交叉。识别模块225可以将两个连续的“t”识别为唯一的字符。作为另一示例,某些字母在被连续书写时的书写形式不同于在紧接字母“o”之后的书写形式。识别模块225可以将跟随有其他字母的字母“o”的每个组合识别为唯一的字符。
在某些实施例中,识别模块225可以将手写字符转换成数字文本,诸如计算机使用的文本字符。例如,识别模块225可以基于笔迹识别来识别与手写字符匹配的文本字符。在一个实施例中,可以使用一个或更多个字符编码表示数字文本,其中每个唯一的字符可以由与所识别的文本字符对应的唯一的字符编码表示。例如,识别模块225可以将手写字符转换成Unicode(统一字符编码标准)文本字符编码或者其他字符编码方案。在手写字符不与现有的字符编码(例如,现有的Unicode文本字符编码)匹配的情况下,识别模块225可以生成新的编码以对应于手写字符。
在一个实施例中,位置模块230被配置成确定手写字符的字符位置。在一些实施例中,字符位置包括属于手写字符的笔划数据的屏幕上(例如,显示)位置。在其他实施例中,字符位置是相对于书写表面上的笔迹输入设备125,例如笔/触笔的坐标限定的位置。字符位置可以指示手写字符的拐角或起点、手写字符的中心、被手写字符包围的区域等。
在某些实施例中,位置模块230确定第一字母/字符在笔划数据(例如,用户笔迹)的单词或行中的字符位置。同一单词/行中的后继的字母/字符可以关联与第一字母/字符相同的字符位置。例如,位置模块230可以相对于前一字符的字符位置识别后继字符的字符位置。
在一些实施例中,位置模块230可以确定相对于页边空白的字符位置,以便保留手写文本的空白。例如,单词或行中的第一字母/字符的字符位置可以指示相对于右侧和/或左侧页边空白的水平间距和相对于顶部和/或底部页边空白的竖直间距。页边空白可以是笔迹输入设备125的物理页边空白,或者是由接收手写文本的程序(例如,笔记获取应用、笔迹捕获应用等)限定的虚拟页边空白。
在一个实施例中,如下文更详细地讨论的,位置模块230向存储模块215发送与笔划数据相关联的字符位置数据,其中存储模块215存储字符位置。在某些实施例中,呈现模块220访问所存储的字符位置以在再现(例如,显示)用户笔迹(例如,笔划数据)时保留输入位置和/或间距。
在一个实施例中,尺寸模块235被配置成使用笔划数据计算手写字符的大小和取向。在一些实施例中,手写字符的大小指的是字体大小,例如与笔划数据最相配的用户特定的字体字符的字体大小。在其他实施例中,手写字符的大小指的是与手写字符对应的笔划数据的尺寸(例如,物理笔划大小)。在另外的实施例中,手写字符的大小指的是手写字符的竖直尺寸。在一个实施例中,在再现笔划数据(例如,用户笔迹)时,手写字符的尺寸可以由存储模块215存储并且由呈现模块220使用。
在一些实施例中,手写字符的取向指的是手写字符的倾斜,诸如手写字符的向上或向下的笔划的优势角度。倾斜可以被表述为相对于竖直轴的角度。在其他实施例中,手写字符的取向指的是手写字符的歪斜或剪切。在一个实施例中,在再现笔划数据(例如,用户笔迹)时,手写字符的取向可以由存储模块215存储并且由呈现模块220使用。在另一实施例中,尺寸模块235可以向情绪模块240指示手写字符的取向,其中情绪模块240基于取向来识别用户情绪。
在一些实施例中,尺寸模块235基于笔划数据计算手写字符的水平缩放因子。水平缩放因子可以被计算为手写字符的宽度与基准字符,诸如与手写字符对应的用户特定的字体字符的宽度的比率。尺寸模块230可以将水平缩放因子与手写字符的大小组合使用,以准确地表示手写字符的宽度和高度二者。例如,尺寸模块235可以使用基于手写字符的高度的大小以及基于手写字符的宽度的水平缩放因子来表示高的、但是窄的手写字符。在一个实施例中,在再现笔划数据(例如,用户笔迹)时,水平缩放因子可以由存储模块215存储并且由呈现模块220使用。
在一个实施例中,情绪模块240被配置成基于手写字符的物理特性和/或模式来识别用户情绪。例如,情绪模块240可以基于手写字符的取向来识别用户情绪。已进行了许多研究,表明在笔迹的物理特性和/或模式中如何揭示情绪。例如,用户的笔迹的倾斜(例如,向右或向左)可以与用户书写时体验的情绪相关。在某些实施例中,情绪模块240可以检查用户笔迹的物理特性和/或模式以便识别相应的情绪。
在某些实施例中,情绪模块240向相关模块210和/或存储模块215指示所识别的情绪。相关模块210和/或存储模块215随后可以基于所识别的情绪使手写字符与特定的用户特定的字体字符相关联。例如,对于特定用户可以存储多个用户特定的字体集合,其中每个用户特定的字体集合与特定的情绪相关联。在一个实施例中,相关模块210可以将手写字符映射到与所识别的情绪匹配的用户特定的字体字符。在另一实施例中,存储模块215可以存储与字符编码相关联的情绪的指示,使得与情绪相关联的用户特定的字体集合与字符编码相关联。
在一个实施例中,相关模块210被配置成基于笔划数据将一个或更多个手写字符映射到至少一个用户特定的字体字符。相关模块210从字符模块205接收字符模块205识别的一个或更多个手写字符的指示。此外,响应于将一个或更多个手写字符映射到至少一个用户特定的字体字符,相关模块210将字符映射发送到存储模块215。在一些实施例中,相关模块210将笔划数据转换成数字文本,例如识别与字符模块205识别的手写字符对应的文本字符。在其他实施例中,字符模块205将笔划数据转换成数字文本并且将数字文本递送到相关模块210。
如这里使用的,用户特定的字体字符指的是用户特定的计算机字体的字符。用户特定的计算机字体可以是基于用户的笔迹的定制的计算机字体。用户特定的计算机字体包括多个字体字符,每个字体字符指示呈现和/或显示文本字符的风格。在某些实施例中,手写字符可以包括两个相邻的手写字母,其中将手写字符映射到用户特定的字体字符包括生成表示两个相邻的手写字母的单个用户特定的字体字符。
在一个实施例中,相关模块210将笔划数据与多个用户特定的字体字符进行比较以便找到与手写字符最匹配的字体字符。在一个实施例中,如果没有找到最佳匹配,则相关模块210基于笔划数据生成新的用户特定的字体字符。因此,相关模块210可以响应于笔划数据存储模块120从笔迹输入设备125接收到另外的笔划数据,动态地生成用户特定的计算机字体。
在另一实施例中,相关模块210可以确定笔划数据和基准字符,诸如现有的用户特定的字体字符之间的偏差。如果该偏差超过字体变体阈值,则相关模块210可以生成新的用户特定的字体字符。否则,相关模块210可以选择具有相对于笔划数据的最低偏差的用户特定的字体字符。响应于手写字符映射到用户特定的字体字符,相关模块210可以删除与手写字符对应的笔划数据。在某些实施例中,相关模块210可以包括一个或更多个子模块,诸如比较模块245、匹配模块250、创建模块255和/或删除模块260,用于执行以上功能。
在一个实施例中,比较模块245被配置成确定手写字符的笔划数据是否与字体字符匹配。在一些实施例中,字体字符属于与输入笔划数据的用户相关联的用户特定的字体集合。在某些实施例中,确定手写字符的笔划数据是否与字体字符匹配包括:比较模块245在笔划数据(属于手写字符)和字体字符之间比较尺寸(例如,高度和/或宽度)、线粗细、取向等。
在某些实施例中,将笔划数据与字体字符进行比较可以包括:比较模块245识别笔划数据(例如,手写字符)和字体字符之间的偏差。例如,比较模块245可以将笔划数据的线、曲线、角、交点或其他特征与诸如字体字符的模范(例如,基准)字符的特征进行比较。在某些实施例中,如后面更详细地讨论的,偏差被存储到文件以便通过基于所存储的偏差修改字体字符来更好地再现用户笔迹(例如,笔划数据)。
在笔划数据和字体字符二者中存在对应的特征的情况下,比较模块245可以识别笔划数据特征和字体字符特征之间的偏差。在一个实施例中,相关模块210可以基于特征比较来选择最相配(例如,最紧密匹配)的字体字符。在另一实施例中,如果偏差超过字符变体阈值,则相关模块210可以生成新的字体字符。在不存在对应的特征的情况下,相关模块210可以排除该字体字符作为候选匹配字符,并且检查另一字体字符或者基于笔划数据生成新的字体字符。
在某些实施例中,用户特定的字体集合可以包括文本字符(例如,字母)两个或更多个变体,每个变体具有其自身的字符编码。例如,用户特定的字体集合可以包括字母的多种形式以捕获同一字母在单词的开头、中间和/或结尾处使用时的笔迹的变化。作为另一示例,用户特定的字体集合可以包括字母的多种形式以捕获手写时的用户情绪的变化。因此,在一个实施例中,比较模块245可以将笔划数据与属于同一字母的不同变体的多个字体字符进行比较,其中相关模块210基于比较选择最相配的变体。
在一个实施例中,匹配模块250被配置成确定手写字符的笔划数据是否与输入笔划数据的用户所关联的用户特定的字体集合中的字体字符匹配。例如,匹配模块250可以在确定笔划数据是否与字体字符匹配时使用从比较模块245接收到的数据。在一些实施例中,匹配模块250确定笔划数据是否与多个候选字体字符中的一个字体字符匹配。在一个实施例中,如果笔划数据包括字体字符中没有的字符特征(诸如线、曲线、角、交点或其他标记),则匹配模块250确定笔划数据不与候选字体字符匹配。
在一些实施例中,匹配模块250用于动态生成用户特定的字体集合中的新的字体字符,其中响应于笔划数据充分不同于(例如,没有紧密匹配)用户特定的字体集合中的现有的字体字符,生成新的字体字符。这样,在确定笔划数据是否与现有的字体字符匹配时,匹配模块250可以参考一个或更多个字符变体阈值。在另外的实施例中,匹配模块250可以识别关于与笔划数据(例如,手写字符)匹配的字母/字符变体的文本字符和/或字符编码,字符编码指示特定变体。在手写字符不与现有的字符编码(例如,现有的Unicode文本字符编码)匹配的情况下,匹配模块250可以生成新的编码以对应于手写字符。没有预先存在的字符编码的手写字符的示例包括,但不限于,字符组合(例如,两个“t”)、图表和涂鸦(例如,心)。此外,匹配模块250和/或相关模块210可以在识别到现有的字符编码的新的字母/字符变体时生成新的字符编码。
在某些实施例中,匹配模块250被进一步配置成从用户特定的字体集合中选择与手写字符最匹配的字体字符,其中存储模块215存储所选择的用户特定的字体字符的字符编码。例如,匹配模块250可以选择具有相对于笔划数据的最小偏差的预先存在的用户特定的字体字符。在一些实施例中,匹配模块250响应于偏差在字符变体阈值以下而选择最匹配的字体字符。另外,如果偏差在字符变体阈值以上,则相关模块210确定手写字符是新字符或者是现有的字体字符的新的变体,并且创建模块255生成新的字体字符。在一些实施例中,匹配模块250向删除模块260指示用户特定的字体字符已被选择,其中删除模块260擦除用于选择用户特定的字体字符的笔划数据。
在一个实施例中,创建模块255被配置成基于笔划数据生成新的字体字符。如果现有的字体字符没有适当地与笔划数据匹配,则创建模块255能够根据笔划数据动态地生成新的字体字符。例如,创建模块255可以响应于匹配模块250确定笔划数据与用户特定的字体集合中的存在的任何字体字符都不匹配而生成新的字体字符。作为另一示例,创建模块255可以响应于比较模块245确定笔划数据和用户特定的字体集合中的现有的字体字符之间的偏差超过预定阈值,诸如以上讨论的字符变体阈值,而生成新的字体字符。在又一示例中,字符模块205可以检测到存在再三绘制的相似的物体(诸如在用户喜欢画心的情况下),其中创建模块255可以生成与该物体对应的定制字符。
在一些实施例中,创建模块255使用笔划数据生成位图字体字符。在其他实施例中,创建模块255使用笔划数据生成向量字体字符(例如,轮廓或者基于笔划的字体字符)。例如,创建模块255可以通过限定遵循从笔迹输入设备125接收到的笔划数据的一组顶点以及顶点之间的线/曲线来生成向量字体字符。在一些实施例中,创建模块255向删除模块260指示新的字体字符已被生成,其中删除模块260擦除用于生成新的字体字符的笔划数据。
在一个实施例中,删除模块260被配置成响应于手写字符基于笔划数据映射到用户特定的字体字符而擦除笔划数据。在一些实施例中,删除模块260响应于匹配模块250成功使笔划数据与用户特定的字体集合中的用户特定的字体字符匹配而擦除与手写字符对应的笔划数据。在其他实施例中,删除模块260可以响应于创建模块255基于笔划数据生成新的用户特定的字体字符而擦除与手写字符对应的笔划数据。在另一实施例中,删除模块260可以等待删除笔划数据,直到存储模块215存储与基于笔划数据选择和/或生成的用户特定的字体字符对应的字符编码为止。
在一个实施例中,存储模块215被配置成存储与用户特定的字体字符对应的字符编码。存储模块215可以响应于从字符模块205和相关模块210接收到的信息而存储字符编码。在一些实施例中,存储模块215通过创建存储与手写字符和用户特定的字体字符对应的字符编码的文件(例如,计算机可读文件)来存储字符编码。例如,存储模块215可以创建存储字符编码的文本文件,从而存储体现为笔划数据的文本(例如,字母/字符的序列)。该文本文件可以在以后被呈现模块220读取,或者被另一设备和/或应用读取,以便再现笔划数据。在一些实施例中,存储模块215向删除模块260指示字符编码已被存储,其中删除模块260擦除与字符编码相关联的笔划数据(例如,与字符编码所指示的用户特定的字体字符所映射的手写字符对应的笔划数据)。
如上文所讨论的,在某些实施例中,单个字母、字符或符号可以与多个字符变体相关联。在一些实施例中,如下文所讨论的,用户可能在使用第一上下文(例如,字符组合)中的字母/字符时手写第一变体并且在第二上下文中手写第二变体。在一个实施例中,字符编码指示在单个字母/字符的多个变体中要使用哪个变体。每个字符编码可以与不同的字体字符相关联,其中字体集合包括关于文本字符的不同变体的多个字体字符。在另一实施例中,存储偏差数据,其中基于偏差数据修改字符编码指示的字体字符以复制单个字母、字符或符号的变体。
存储模块215可以进一步存储与手写字符相关的附加信息,诸如位置、取向、大小(包括水平缩放因子)、相对于基准字符的偏差等。例如,包括字符编码的文本文件还可以包括位置、取向、大小和/或关于字符编码的偏差数据。在另外的实施例中,位置、取向和/或尺寸可以与字符编码的群组,诸如单词、行或段落相关。例如,单词中的所有字符可以具有相同的大小和取向(例如,倾斜),其中所存储的位置信息指示单词的开始。
在一些实施例中,存储模块215被配置成存储包含用户特定的字体的字体文件。在某些实施例中,字体文件可以是关于输入笔划数据的用户的用户简档的一部分。在一个实施例中,存储模块215将字体文件存储在联网的存储设备上,诸如服务器,使得字体文件可以在同一用户使用的多个设备之间共享。在一些实施例中,字体文件与文本文件相关联,使得在被显示时,总是使用作者的特定字体集合来示出文本文件。例如,字体文件可以嵌入在文本文件内。作为另一示例,字体文件可以在公众可访问的服务器上共享,使得读取/显示文本文件的第三方可以访问与文本文件的作者相关联的字体文件。
在一些实施例中,创建多个用户特定的字体,每个字体与如上文所述的特定的用户情绪相关联。因而,在某些实施例中,存储模块215被进一步配置成基于情绪模块240识别的用户情绪将特定的用户特定的字体字符存储在特定的字体文件中,其中特定的字体文件中的所有字体字符与同一用户情绪相关联。存储模块215可以附加地在文本文件中存储与字符编码相关联的用户情绪的指示,从而确保适当的字体文件与文本相关联。
如上文所述,笔划数据存储模块200使用笔划数据有效地创建新的文件,从而减少存储体现为笔划数据的笔迹所需的空间。因此,在一个实施例中,在存储模块215创建文本文件和/或字体文件之后放弃笔划数据。因而,笔划数据存储装置200将原始的笔划数据转换成包括笔划数据的文本和用于显示文本的用户特定的定制字体集合的紧凑的文件,根据笔划数据创建用户特定的字体集合。因而,在一些实施例中,笔划数据存储装置200使笔划数据的存储大小减少到原始文件大小的0.4%。
在一个实施例中,呈现模块220被配置成使用用户特定的字体字符显示字符编码指示的文本字符。在一些实施例中,呈现模块220读取包括一个或更多个参考用户特定的字体集合的字符编码的文件(例如,计算机可读文件)并且使用用户特定的字体字符显示字符编码指示的文本字符。在某些实施例中,该文件包括具有用户特定的字体字符的字体文件。
在一些实施例中,呈现模块220基于与文件相关联的用户(例如,文件的作者)加载定制字体。例如,作者标识符可以被存储为文件的元数据,其中呈现模块220基于作者标识符加载用户特定的字体文件,该用户特定的字体文件包含使用来自作者的笔划数据生成的定制的字体集合。
在某些实施例中,呈现模块220从文件中识别关于文本字符的位置、取向、大小、宽度和/或其他字符信息。呈现模块220随后可以在所指示的屏幕上位置按所指示的取向、大小、宽度等显示文本字符。因而,呈现模块220通过使用用户特定的字体字符(从笔划数据得到)以及输入字符的取向、大小、宽度等在输入(例如,手写)字符的位置显示文本字符来再现笔划数据。通过这种方式,呈现模块220可以使用较之存储压缩的笔划数据或者笔划数据的图像的传统方法小得多的计算机存储空间来复制手写笔记、文档或者其他作品。
图3A-3E示出了用于减少笔划数据存储的笔记获取系统300的实施例。在一个实施例中,笔记获取系统300可以包括移动设备302和触笔310。在一些实施例中,移动设备302包括上文参照图1和2描述的笔划数据存储模块120。在一个实施例中,移动设备302可以与上文参照图1描述的电子设备105基本上相似。移动设备302包括能够显示与用户输入对应的笔划数据的显示器304。这样,如下文更详细地讨论的,移动设备302可以转换和存储笔划数据。
在一些实施例中,触笔310是用于在显示器304上书写的无源触笔。因此,显示器304可以包括数字化触摸屏显示器,其将触笔310跨越显示器304的笔划转换成笔划数据。在其他实施例中,触笔310是在触笔310相对于移动设备302移动时经由光学、惯性或其他传感器测量笔划数据的有源触笔。如下文更详细地讨论的,触笔310可以将所测量的笔划数据传递到移动设备302,其中移动设备302转换并存储笔划数据。
图3A是图示接收笔划数据的笔记获取系统300的一个实施例的示意性框图。在一些实施例中,笔划数据至少包括第一手写单词306和第二手写单词308。尽管笔划数据可以包括许多单词、行、段落等,但是这里为了简单起见仅示出了两个单词。可以从用户用触笔310在显示器304上书写来得到笔划数据。如所示出的,用户书写了“salad dressing”。
图3B是图示第一手写单词306的一个实施例的示意性框图。如所示出的,用户书写了单词“salad”以及符号字符312(连字符)。第一手写单词306包括五个字符,即第一字符314(“s”)、第二字符316(“a”)、第三字符318(“l”)、第四字符320(“a”)和第五字符322(“d”)。如所示出的,第二字符316和第四字符320对应于同一文本字母(“a”),然而,每个字母是以不同方式书写的。在一些实施例中,移动设备302可以将第二字符316和第四字符320二者映射到同一用户特定的字体字符。在其他实施例中,由于它们的差异,移动设备302可以将第二字符316和第四字符320映射到同一字符(字母“a”)的不同的变体。
图3C是图示第二手写单词308的一个实施例的示意性框图。如所示出的,用户书写了单词“dressing”。第二手写单词308包括八个字符,即第一字符324(“d”)、第二字符326(“r”)、第三字符328(“e”)、第四字符330(“s”)、第五字符332(“s”)、第六字符334(“i”)、第七字符336(“n”)和第八字符(“g”)。如所示出的,第四字符330和第五字符332对应于同一文本字母(“s”),然而,每个字母是以不同方式书写的。此外,第四字符330和第五字符332对应于与第一字符314相同的文本字母,而第一手写单词306的第五字符322和第二手写单词308的第一字符324对应于同一字母(“d”)。在一些实施例中,移动设备302可以将与同一文本字母对应的所有手写字符映射到同一用户特定的字体字符。在其他实施例中,由于它们的差异,移动设备302可以将与同一文本字母对应的一个或更多个手写字符映射到同一字符的不同的变体。
图3D是图示笔划数据分析340的一个实施例的示意性框图。如所示出的,将第一字符314与从用户特定的字体集合中选择的三个候选字体字符342-346进行比较。在一些实施例中,通过识别具有与输入的手写字符(例如,第一字符314)相似的特征(例如,线、曲线、顶点、交点等)的现有的字体字符来选择候选字体字符。在进行笔划数据分析340时,每个候选字体字符342-346存在于用户特定的字体集合中。根据来自用户的笔划数据输入动态地生成用户特定的字体集合。如所示出的,每个候选字体字符342-346是同一文本字母(“s”)的变体。尽管在所示实施例中示出了三个变体,但是在其他实施例中在用户特定的字体集合中可以包括任何数目的变体。
在一些实施例中,移动设备302识别第一字符314和候选字体字符342-346的相似特征之间的偏差。例如,移动设备302可以识别第一字符314和第一候选字符342之间的起点和/或终点的差异。在另一示例中,移动设备302可以确定第一字符314和第二候选字符344或第三候选字符346之间的弯曲偏差。
基于比较,移动设备302可以选择最匹配的字体字符。例如,移动设备302可以确定第一字符314与第二候选字符344的偏差最小,从而选择第二候选字符344作为最匹配的字体字符。在另一实施例中,移动设备302可以将偏差与诸如上文讨论的字符变体阈值的阈值进行比较,其中响应于偏差超过阈值,移动设备302不选择候选字符,而是根据笔划数据生成新的字体字符。
响应于识别最匹配的字体字符(或者生成新的字体字符),移动设备302确定与字体字符相关联的字符编码。移动设备302可以随后存储字符编码,从而使得能够在以后使用与手写字符相关联的字符编码再现笔划数据。在某些实施例中,移动设备302额外识别并存储第一字符314的大小348、取向(例如,倾斜)350和/或位置352,用于准确地再现笔划数据。
图3E是图示笔划数据分析360的另一实施例的示意性框图。如所示出的,将第八字符338与从用户特定的字体集合中选择的三个候选字体字符362-366进行比较。每个候选字体字符362-366是根据与用户相关联的笔划数据生成的。在一些实施例中,通过识别具有与输入的手写字符(例如,第八字符338)相似的特征(例如,线、曲线、顶点、交点等)的现有的字体字符来选择候选字体字符。如所示出的,与字母“g”对应的字体字符在用户特定的字体集合中仍不存在。然而,在所描述的实施例中,每当对不与现有的字体字符匹配的手写字符进行分析时,移动设备302动态地扩展用户特定的字体集合。
在一些实施例中,移动设备302识别第八字符338和候选字体字符362-366的相似特征之间的偏差。例如,移动设备302可以识别第八字符338和第一候选字符362之间的起点和/或终点的差异。在另一示例中,移动设备302可以确定第八字符338和第二候选字符364或第三候选字符366之间的弯曲偏差和/或顶点偏差。基于比较,移动设备302可以确定没有候选字符与第八字符338匹配。在一个实施例中,移动设备302可以识别到第八字符338与候选字符362-366的偏差超过阈值量。
响应于确定第八字符338不与任何候选字符匹配,移动设备302可以基于笔划数据生成新的字体字符并且将该新的字体字符添加到用户特定的字体集合。如所示出的,移动设备302添加与新遇到的文本字符对应的字体字符。随着时间的逝去,较少的新的条目将被添加到用户特定的字体集合。用户特定的字体集合可以存储在计算机可读字体文件中。
在一些实施例中,用户可以通过调整字符变体阈值来控制与用户特定的字体相关联的字体文件的大小。高阈值导致同一字母的少的变体,而低阈值导致同一字母的许多变体。替选地,可以基于用户的字体文件大小偏好来确定字符变体阈值,其中对较小文件(或者对较低质量的笔划数据再现)的偏好导致了较高的阈值,而对较大文件(或者对较高质量的笔划数据再现)的偏好导致了较低的阈值。在一些实施例中,可以向用户提示字体文件大小偏好和/或再现质量偏好。
在生成了新的字体字符之后,移动设备302生成字体字符的字符编码。移动设备302可以随后存储字符编码,从而使得能够使用与手写字符相关联的字符编码在以后再现笔划数据。在某些实施例中,移动设备302额外识别并存储第八字符338的大小368、取向(例如,倾斜)370和/或位置372,用于准确地再现笔划数据。
图4A是图示用于减少笔划数据存储的方法400的一个实施例的流程图。在一个实施例中,电子设备105执行方法400。在另一实施例中,可以由笔划数据存储装置200执行方法400。替选地,方法400可以由计算机可读存储介质执行,诸如存储器115。计算机可读存储介质可以存储在处理器110上执行的代码,用于执行方法400的功能。
方法400开始并且字符模块205从笔划数据识别手写字符405。在一些实施例中,字符模块205从输入设备,诸如笔迹输入设备125接收笔划数据,其中笔划数据包括形成手写字符的一个或更多个手写笔划。在某些实施例中,字符模块205识别笔划数据中的多个手写字符405。例如,笔划数据可以对应于字母、单词、行、段落或者其他笔迹单位。
在一些实施例中,识别手写字符405进一步包括将手写字符转换成文本字符。例如,字符模块205可以对笔划数据执行光学字符识别算法或者相似的字符识别算法,以便识别手写字符。在某些实施例中,识别手写字符405包括将笔划数据分成多个手写字符并且转换每个手写字符。在另外的实施例中,识别手写字符405可以包括识别手写字符的大小、位置和/或取向。
随后相关模块210基于笔划数据将手写字符映射到用户特定的字体字符410。将手写字符映射到用户特定的字体字符410可以包括识别手写字符内的多个特征(诸如线、曲线、角和/或交点)并且识别具有相似特征的多个候选字体字符,候选字体字符属于用户特定的字体集合。相关模块210随后可以从多个候选字体字符中选择最匹配的用户特定的字体字符。
在一个实施例中,将手写字符映射到用户特定的字体字符410可以包括确定笔划数据和一个或更多个基准字符,诸如候选字体字符之间的变化。随后具有最小变化的候选字体字符可以被选择为最匹配的用户特定的字体字符。在一些实施例中,可以将变化量与字符变体阈值进行比较,其中相关模块210响应于变化超过字符变体阈值而生成新的用户特定的字体字符(例如,手写字符的新的变体)。
随后存储模块215存储与用户特定的字体字符对应的字符编码415。在一个实施例中,字符编码对应于所识别的与手写字符对应的文本字符。在某些实施例中,存储模块215创建存储字符编码的文件415。例如,存储模块215可以创建包括从手写的笔划数据转换而来的文本字符以及对应的用户特定的字体字符的文本文件,其中将使用用户特定的字体字符显示文本字符以便再现笔划数据。在一些实施例中,存储字符编码415包括存储关于与字符编码对应的手写字符的大小、位置和/或取向数据。方法400结束。
图4B是图示用于再现笔划数据的方法450的一个实施例的流程图。在一个实施例中,方法450由电子设备105执行。在另一实施例中,方法450可以由笔划数据存储装置200执行。替选地,方法450可以由计算机可读存储介质执行,诸如存储器115。计算机可读存储介质可以存储在处理器110上执行的代码以执行方法450的功能。
方法450开始并且呈现模块220基于输入的笔划数据访问存储字符编码的文件455。在一个实施例中,字符编码指示用户特定的字体字符,用户特定的字体字符基于输入的笔划数据。在另一实施例中,该文件指示要与所存储的字符编码一起使用的用户特定的字体集合。呈现模块220随后根据该文件确定字符大小和字符位置460。在一些实施例中,字符大小和字符位置对于单词、行或段落中的每个字符是相同的。
呈现模块220基于文件的字符编码、字符大小和字符位置显示用户特定的字体字符465。在一个实施例中,每个字符编码指示特定的用户特定的字体字符。在另一实施例中,文本字符可以映射到多个用户特定的字体字符,其中字符编码指示与笔划数据最匹配的文本字符的特定变体。方法450结束。
图5是图示用于减少笔划数据存储的方法500的一个实施例的示意性流程图。在一个实施例中,方法500由电子设备105执行。在另一实施例中,方法500可以由笔划数据存储装置200执行。替选地,方法500可以由计算机可读存储介质执行,诸如存储器115。计算机可读存储介质可以存储在处理器110上执行的代码以执行方法500的功能。
方法500开始并且字符模块205从笔迹输入设备125接收笔划数据505。字符模块205从笔划数据识别一个或更多个手写字符510。例如,笔划数据可以对应于字母、单词、行、段落或其他笔迹单位。在某些实施例中,识别手写字符510包括将笔划数据分成多个手写字符并且对每个手写字符进行转换。在一些实施例中,识别手写字符510进一步包括将手写字符转换成文本字符。
比较模块245将笔划数据与用户特定的字体集合中的一个或更多个字体字符进行比较515。在一个实施例中,将笔划数据与一个或更多个字体字符进行比较515包括识别手写字符内的多个特征(诸如线、曲线、角和/或交点)并且识别具有相似特征的多个候选字体字符,候选字体字符属于用户特定的字体集合。在另一实施例中,将笔划数据与一个或更多个字体字符进行比较515包括确定笔划数据和一个或更多个字体字符之间的变化。
匹配模块250确定笔划数据是否与候选字体字符匹配520。在一个实施例中,确定笔划数据是否与字体字符匹配520包括确定手写字符和候选字体字符是否具有匹配的字符特征(例如,线、曲线、角和/或交点)。在另一实施例中,确定笔划数据是否与字体字符匹配520包括确定笔划数据和候选字体字符之间的变化是否在字符变体阈值以下。例如,如果对于所有候选字体字符该变化超过字符变体阈值,则匹配模块250可以确定没有字体字符与笔划数据匹配520。
响应于匹配模块250确定笔划数据与字体字符匹配520,相关模块210选择最相配的字体字符525。另外,响应于匹配模块250确定笔划数据不与字体字符匹配520,创建模块255基于笔划数据生成新的字体字符535。在一些实施例中,生成新的字体字符535包括限定一组遵循笔划数据的顶点以及顶点之间的线/曲线。在另一实施例中,生成新的字体字符535可以包括限定与新的字体字符对应的新的字符编码。
在一些实施例中,选择最相配的字体字符525包括识别笔划数据和候选字体字符之间的最低的变化并且选择与该最低的变化对应的字体字符。响应于选择最相配的字体字符525,比较模块245可以确定所选择的字体字符中的笔划数据之间的偏差。偏差可以包括取向的差异、大小的差异、字符特征位置的差异和/或笔划长度的差异。字符模块205可以响应于选择最相配的字体字符525或者生成新的字体字符535而确定手写字符的字符位置540。
存储模块215存储字符位置和与字体字符对应的字符编码。在一个实施例中,字符编码对应于所识别的与手写字符对应的文本字符。在某些实施例中,存储模块215创建存储字符编码的文件545。例如,存储模块215可以创建包括从手写的笔划数据转换而来的文本字符以及对应的用户特定的字体字符二者的文本文件,其中将使用用户特定的字体字符显示文本字符以便再现笔划数据。在一些实施例中,存储字符位置和字符编码545包括存储关于与字符编码对应的手写字符的大小、位置和/或取向数据。方法500结束。
图6是图示用于存储和再现笔划数据的方法600的另一实施例的示意性流程图。在一个实施例中,方法600由电子设备105执行。在另一实施例中,方法600可以由笔划数据存储装置200执行。替选地,方法600可以由计算机可读存储介质执行,诸如存储器115。计算机可读存储介质可以存储在处理器110上执行的代码以执行方法600的功能。
方法600开始并且字符模块205从笔迹输入设备125接收笔划数据605。字符模块205从笔划数据识别一个或更多个手写字符610。例如,笔划数据可以对应于字母、单词、行、段落或其他笔迹单位。在某些实施例中,识别手写字符610包括将笔划数据分成多个手写字符并且对每个手写字符进行转换。在一些实施例中,识别手写字符610进一步包括例如使用字符识别算法将手写字符转换成文本字符。
字符模块205可以确定手写字符的大小和位置。在另外的实施例中,字符模块205还可以确定手写字符的倾斜或取向。匹配模块250基于笔划数据从用户特定的字体集合中识别最相配的字体字符620。在一些实施例中,识别最相配的字体字符620包括将笔划数据与用户特定的字体集合中的一个或更多个字体字符进行比较。
比较模块245计算笔划数据和最相配的字体字符之间的偏差并且相关模块210确定该偏差是否超过字符变体阈值630。偏差可以包括取向的差异、大小的差异、字符特征位置的差异和/或笔划长度的差异。响应于相关模块210确定该偏差超过阈值630,创建模块255基于笔划数据生成新的字体字符635。另外,响应于相关模块210确定该偏差不超过阈值630,相关模块210选择与最相配的字体字符对应的字符编码。
在一些实施例中,生成新的字体字符635包括限定一组遵循笔划数据的顶点以及顶点之间的线/曲线。在其他实施例中,生成新的字体字符635包括根据笔划数据创建位图字体字符。响应于生成新的字体字符635,相关模块210基于新的字体字符选择字符编码640。在一个实施例中,基于新的字体字符选择字符编码640可以包括限定与新的字体字符对应的新的字符编码。
存储模块215存储字符编码、字符地点和字符位置650。在一个实施例中,字符编码对应于所识别的与手写字符对应的文本字符。在某些实施例中,存储模块215创建存储字符编码、字符地点和字符位置的文件650。
呈现模块220基于字符编码、字符大小和字符位置显示文本字符655。在一些实施例中,显示文本字符655包括呈现模块220访问存储模块215生成的文件。在一个实施例中,每个字符编码指示特定的用户特定的字体字符。在另一实施例中,文本字符可以映射到多个用户特定的字体字符,其中呈现模块220基于字符编码显示文本字符的特定的变体655。方法600结束。
实施例可以通过其他具体形式实践。所描述的实施例应在所有方面仅被视为说明性的而非限制性的。因此,本发明的范围由所附权利要求限定而非由前面的描述限定。在权利要求的等同含义和范围内进行的所有改变应涵盖于其范围内。

Claims (19)

1.一种装置,包括:
笔迹输入设备,接收输入的笔划数据;
处理器;以及
存储器,存储能够由所述处理器执行的代码,所述代码包括:
从笔划数据识别手写字符的代码;
基于笔划数据将手写字符映射到用户特定的字体字符并获取手写字符与用户特定的字体字符之间的偏差的代码;以及
创建用于存储与用户特定的字体字符对应的字符编码的文件及手写字符与用户特定的字体字符之间的偏差的代码。
2.根据权利要求1所述的装置,其中将手写字符映射到用户特定的字体字符包括:
确定手写字符的笔划数据是否与输入笔划数据的用户所关联的用户特定的字体集合中的字体字符匹配;
响应于笔划数据与字体字符匹配,选择匹配的字体字符;以及
响应于笔划数据与字体集合中的任何字体字符都不匹配,基于笔划数据生成新的字体字符。
3.根据权利要求2所述的装置,其中所述用户特定的字体集合包括与手写字符对应的文本字符的多个变体,其中选择匹配的字体字符包括基于笔划数据选择最相配的变体。
4.根据权利要求1所述的装置,进一步包括:
读取所述文件的代码;以及
使用用户特定的字体字符显示所述字符编码指示的文本字符的代码。
5.根据权利要求4所述的装置,进一步包括在所述文件中存储手写字符的字符位置的代码,其中显示文本字符包括在字符位置显示文本字符。
6.根据权利要求1所述的装置,进一步包括响应于基于笔划数据将手写字符映射到用户特定的字体字符而擦除该笔划数据的代码。
7.根据权利要求1所述的装置,其中识别手写字符包括:
从所述笔迹输入设备接收笔划数据,笔划数据包括用户笔迹;
对笔划数据执行笔迹识别;以及
基于笔迹识别来识别与手写字符匹配的文本字符,其中所述字符编码对应于所识别的文本字符。
8.根据权利要求1所述的装置,其中将手写字符映射到用户特定的字体字符包括生成表示两个相邻的手写字母的单个用户特定的字体字符。
9.根据权利要求1所述的装置,其中所述笔迹输入设备包括选自触摸屏、触摸板、数字转换器、数字笔、扫描仪、图像仪和数字相机的输入设备。
10.一种方法,包括:
通过使用处理器从笔划数据识别手写字符;
基于笔划数据将手写字符映射到用户特定的字体字符并获取手写字符与用户特定的字体字符之间的偏差;以及
存储与用户特定的字体字符对应的字符编码及手写字符与用户特定的字体字符之间的偏差。
11.根据权利要求10所述的方法,进一步包括基于笔划数据计算手写字符的大小和取向。
12.根据权利要求11所述的方法,进一步包括基于笔划数据计算手写字符的水平缩放因子,其中存储与用户特定的字体字符对应的字符编码进一步包括存储手写字符的大小、取向和水平缩放因子。
13.根据权利要求11所述的方法,进一步包括:
基于手写字符的取向识别用户情绪;以及
基于用户情绪使用户特定的字体字符与特定的用户特定的字体集合相关联。
14.根据权利要求10所述的方法,进一步包括确定手写字符的字符位置,其中存储与用户特定的字体字符对应的字符编码进一步包括生成使字符编码与字符位置和与用户特定的字体字符相关联的文件。
15.根据权利要求10所述的方法,进一步包括使用用户特定的字体字符显示字符编码指示的文本字符。
16.根据权利要求10所述的方法,其中将手写字符映射到用户特定的字体字符包括:
确定笔划数据和与手写字符匹配的用户特定的字体字符之间的偏差;以及
响应于该偏差超过字符变体阈值,基于笔划数据生成新的字体字符。
17.根据权利要求10所述的方法,其中将手写字符映射到用户特定的字体字符包括:
确定手写字符的笔划数据是否与输入笔划数据的用户所关联的用户特定的字体集合中的字体字符匹配;
响应于笔划数据与字体字符匹配,选择匹配的字体字符;以及
响应于笔划数据与字体集合中的任何字体字符不匹配,基于笔划数据生成新的字体字符。
18.一种计算机可读存储介质,其上存储有计算机可读存储程序,包括存储能够由处理器执行的代码的计算机可读存储指令,可执行代码包括用于执行如下操作的代码:
从笔迹输入设备接收笔划数据;
从笔划数据识别一个或更多个手写字符;
基于笔划数据将一个或更多个手写字符映射到至少一个用户特定的字体字符并获取手写字符与用户特定的字体字符之间的偏差;以及
在文件中存储与用户特定的字体字符对应的字符编码及手写字符与用户特定的字体字符之间的偏差。
19.根据权利要求18所述的计算机可读存储介质,所述代码进一步执行如下操作:使用用户特定的字体字符显示字符编码指示的文本字符。
CN201610149654.XA 2015-06-10 2016-03-16 减少的文档笔划存储 Active CN106250804B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/736,035 US9715623B2 (en) 2015-06-10 2015-06-10 Reduced document stroke storage
US14/736,035 2015-06-10

Publications (2)

Publication Number Publication Date
CN106250804A CN106250804A (zh) 2016-12-21
CN106250804B true CN106250804B (zh) 2020-02-21

Family

ID=56134151

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610149654.XA Active CN106250804B (zh) 2015-06-10 2016-03-16 减少的文档笔划存储

Country Status (5)

Country Link
US (1) US9715623B2 (zh)
EP (1) EP3104305B1 (zh)
CN (1) CN106250804B (zh)
DE (1) DE102016109517A1 (zh)
GB (1) GB2539797B (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9141588B2 (en) * 2013-01-28 2015-09-22 Empire Technology Development Llc Communication using handwritten input
WO2015040740A1 (ja) * 2013-09-20 2015-03-26 株式会社 東芝 電子機器および方法
US10725650B2 (en) * 2014-03-17 2020-07-28 Kabushiki Kaisha Kawai Gakki Seisakusho Handwritten music sign recognition device and program
US20170236318A1 (en) * 2016-02-15 2017-08-17 Microsoft Technology Licensing, Llc Animated Digital Ink
US11210467B1 (en) * 2017-04-13 2021-12-28 Snap Inc. Machine learned language modeling and identification
JP2019028094A (ja) * 2017-07-25 2019-02-21 大日本印刷株式会社 文字生成装置、プログラム及び文字出力装置
CN109254717B (zh) * 2018-08-13 2021-06-22 广东小天才科技有限公司 一种写字板的手写引导方法、装置、写字板及存储介质
JP7482783B2 (ja) * 2018-09-20 2024-05-14 富士フイルム株式会社 フォント作成装置、フォント作成方法及びフォント作成プログラム
WO2020102937A1 (zh) * 2018-11-19 2020-05-28 深圳市柔宇科技有限公司 手写笔迹处理方法、手写输入设备及计算机可读存储介质
CN109472249A (zh) 2018-11-22 2019-03-15 京东方科技集团股份有限公司 一种确定书写体优劣等级的方法及装置
KR20200103236A (ko) * 2019-02-22 2020-09-02 삼성전자주식회사 수기에 기반한 입력을 디스플레이하기 위한 방법 및 장치
US20210311551A1 (en) * 2020-04-01 2021-10-07 Wacom Co., Ltd. Handwritten data generation apparatus, handwritten data reproduction apparatus, and digital ink data structure
CN112487876A (zh) * 2020-11-12 2021-03-12 深圳市鹰硕教育服务有限公司 智能笔字符识别方法、装置及电子设备
CN112486337B (zh) * 2020-11-17 2023-11-24 深圳市鹰硕技术有限公司 笔迹图形分析方法、装置及电子设备
JP2022138285A (ja) * 2021-03-10 2022-09-26 株式会社リコー 表示装置、表示方法、プログラム
CN114826665A (zh) * 2022-03-21 2022-07-29 深圳市鹰硕教育服务有限公司 一种智能笔笔迹数据存储方法和系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001044885A2 (en) * 1999-12-17 2001-06-21 Koninklijke Philips Electronics N.V. Apparatus and system for reproduction of handwritten input
CN1497438A (zh) * 2002-09-25 2004-05-19 理想科学工业株式会社 字体产生的装置和方法,以及记录其程序的计算机可读存储媒体
CN101430623A (zh) * 2007-11-05 2009-05-13 三星电子株式会社 输入笔迹自动转换系统和方法
CN102323919A (zh) * 2011-08-12 2012-01-18 百度在线网络技术(北京)有限公司 一种基于用户情绪指示信息显示输入信息的方法与设备

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3362913B2 (ja) * 1993-05-27 2003-01-07 松下電器産業株式会社 手書き文字入力装置
JPH08249422A (ja) * 1995-03-08 1996-09-27 Canon Inc 文字処理装置及び方法
US6320985B1 (en) * 1998-07-31 2001-11-20 International Business Machines Corporation Apparatus and method for augmenting data in handwriting recognition system
AU2002312237A1 (en) * 2001-05-31 2002-12-09 Empower Technologies, Inc. System and method of pen-based data input into a computing device
AUPR824401A0 (en) * 2001-10-15 2001-11-08 Silverbrook Research Pty. Ltd. Methods and systems (npw002)
US20050105799A1 (en) 2003-11-17 2005-05-19 Media Lab Europe Dynamic typography system
US7657094B2 (en) * 2005-12-29 2010-02-02 Microsoft Corporation Handwriting recognition training and synthesis
KR20130089486A (ko) 2012-02-02 2013-08-12 삼성전자주식회사 휴대단말기의 키 입력 방법 및 장치
JP5389241B1 (ja) * 2012-09-26 2014-01-15 株式会社東芝 電子機器および手書き文書処理方法
US9330331B2 (en) * 2013-11-11 2016-05-03 Wipro Limited Systems and methods for offline character recognition

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001044885A2 (en) * 1999-12-17 2001-06-21 Koninklijke Philips Electronics N.V. Apparatus and system for reproduction of handwritten input
CN1497438A (zh) * 2002-09-25 2004-05-19 理想科学工业株式会社 字体产生的装置和方法,以及记录其程序的计算机可读存储媒体
CN101430623A (zh) * 2007-11-05 2009-05-13 三星电子株式会社 输入笔迹自动转换系统和方法
CN102323919A (zh) * 2011-08-12 2012-01-18 百度在线网络技术(北京)有限公司 一种基于用户情绪指示信息显示输入信息的方法与设备

Also Published As

Publication number Publication date
GB201609218D0 (en) 2016-07-06
EP3104305A2 (en) 2016-12-14
EP3104305A3 (en) 2017-03-01
GB2539797B (en) 2020-04-01
US20160364607A1 (en) 2016-12-15
US9715623B2 (en) 2017-07-25
CN106250804A (zh) 2016-12-21
EP3104305B1 (en) 2020-08-19
DE102016109517A1 (de) 2016-12-15
GB2539797A (en) 2016-12-28

Similar Documents

Publication Publication Date Title
CN106250804B (zh) 减少的文档笔划存储
US9811193B2 (en) Text entry for electronic devices
US9013428B2 (en) Electronic device and handwritten document creation method
JP5349645B1 (ja) 電子機器および手書き文書処理方法
US20150242114A1 (en) Electronic device, method and computer program product
US10083163B2 (en) Completing fields in electronic documents by automatically assigning drawing input
US20130181995A1 (en) Handwritten character font library
CN107193542B (zh) 信息显示方法和装置
JP5694234B2 (ja) 電子機器、手書き文書表示方法、及び表示プログラム
KR102075433B1 (ko) 필기 입력 장치 및 그 제어 방법
US20180107651A1 (en) Unsupported character code detection mechanism
US10210141B2 (en) Stylizing text by replacing glyph with alternate glyph
KR102075424B1 (ko) 필기 입력 장치 및 그 제어 방법
US20170139898A1 (en) Updating hint list based on number of strokes
JP6081606B2 (ja) 電子機器および方法
CN106250035A (zh) 动态生成个人化手写字型的系统和方法
US11763064B2 (en) Glyph accessibility and swash control system
JPWO2004095361A1 (ja) オンライン手書き文字入力装置及び方法
JP2013239203A (ja) 電子機器、方法、及びプログラム
US20100166313A1 (en) Information processing apparatus and locus data recognition method
WO2016031016A1 (ja) 電子機器、方法及びプログラム
US20230185446A1 (en) Information processing apparatus and control method
US10564819B2 (en) Method, apparatus and system for display of text correction or modification
US20240168575A1 (en) Input support apparatus, method, computer-readable medium, and input system
WO2019049187A1 (ja) プログラム、情報処理装置、及び情報処理方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant