专利名称:检测墨水输入中的手绘对象的系统和方法
技术领域:
本发明通常涉及计算机系统,特别是涉及改进过的检测墨水输入中的手绘对象的系统和方法。
(2)背景技术检测和识别手绘对象对用户能用墨水输入或墨水注解直接绘制在他们的计算机上很重要。当前的硬件和软件也许能相当好地捕获代表手写的墨迹,但现在还不能同样地识别和表示手绘对象的含义。因此,用户改为使用基于菜单的应用程序来制作对象的绘图。可由这些应用程序呈现各种形状供用户选择和复制到绘图网格上。随后可将复制的形状的大小调整到理想的比例,并且直至绘图结束,用户都可将附加的形状放置到绘图网格上并调整其大小。
至今,致力于手绘对象的形状识别的研究产生了边际结果。例如已使用了可从按特定次序做的特定数量的笔划中识别圆圈或方框之类的简单几何形状的增量识别算法。然而,为了识别特定的手绘形状,这种增量算法依赖于笔划次序和/或假定一特定数量的笔划。这种方法由于几种原因不是很稳健。首先,所有的增量算法都不解决确定哪组笔划是一起属于(因为那些笔划代表一个特定的形状)哪个集合的分组问题。没有能力将属于一个形状的笔划组合在一起,增量算法也许不能容纳箭头之类的多笔划。另外,因为增量算法依赖于一个形状的笔划次序和/或为其假定一特定数量的笔划,增量算法无法解决过度描绘的问题(在绘制一个形状时,可能会过度描绘一个笔划)。
所需要的是一种对笔划输入次序和/或形成任何给定形状所需的笔划数量不敏感的用于检测和识别手绘对象的形状的方法。任何这种系统和方法都应能检测多笔划手绘形状并能确定哪组笔划合在一起代表不同的形状。
(3)发明内容简要地说,本发明提供检测以墨水输入的手绘对象的系统和方法。为此目的,提供了一个可检测到诸如以墨水输入的图表之类的图的检测器。该检测器可包括用于找到属于一个容器的笔划的容器检测器,及用于找到属于一个连接器的笔划的连接器检测器。可以通过执行空间搜索和识别各个容器的笔划的时间顺序搜索来检测到手绘的形状。
一个实施例可使墨水笔划适合合适尺寸的图象网格并标记与绘图笔划相交的网格。从图象网格的外部边缘开始,直到与绘图笔划相交的标记网格,可将最外面的空白网格漫水填充。然后,可将网格内出现的空白网格的任何岛屿漫水填充直到岛屿的边界的标记。然后就可以从围绕被漫水填充的岛屿的边界中识别出候选容器的绘图笔划。可核查任何候选容器来确定它们是有效容器。
在一个实施例中,也可在处理绘图笔划重叠的空间搜索之后,执行时间次序搜索。一般来说,采用时间次序搜索通过确定输入笔划序列形成容器的似然性可以找到连续笔划序列形成的容器。通过执行时间次序搜索找到的任何附加的容器可标记在用于空间搜索的图象网格中,这样在内容检测和连接器检测期间,就可将任何找到的容器包括在图象网格中备用。
一旦在图象网格中检测到任何容器及与它们相关联的内容,可执行连接器检测。一般来说,在可以在用容器标记的图象网格中执行搜索,以检测任何在未经访问(unvisited)的绘图笔划的网格中的连接器。可以用围绕容器边界的经标记的网格膨胀与未经访问的绘图笔划不相邻的任何容器,以使连接器与相应的容器相邻。然后,可将未经访问的绘图笔划的网格漫水填充,而那些到达两个或两个以上容器的漫水填充的网格(包括经膨胀的容器)可识别候选连接器的相应绘图笔划。可核查任何候选连接器来确定它们是有效连接器。
有利的是系统和方法对笔划输入次序和形成手绘形状的笔划数量不敏感。另外,可将该系统和方法用于检测绘图中任何闭合容器的和未闭合的连接器。一旦检测到,则可以识别出形状的类型、位置、方向和大小。
从以下结合附图的详细描述中,其它优点将变得很明显。
(4)
图1为通常表示可合并本发明的计算机系统的方框图;图2为一般表示根据发明的一个方面的用于以墨水输入的手绘对象的检测和手绘对象的形状识别的系统部件的示例结构的方框图;图3为一般表示根据发明的一个方面的为检测以墨水输入的手绘对象和识别手绘对象的形状所采取的步骤的流程图;图4为一般表示根据发明的一个方面的用在执行以墨水输入的手写对象的检测和手绘对象的形状识别之间的结构关系的示例图;图5A-5C为一般表示根据发明的一个方面的支持手绘对象的检测和识别的墨水输入中的容器类型的示例图;图6A-6D为一般表示根据发明的一个方面的支持手绘对象的检测和识别的墨水输入中的连接器的类型的示例图;图7为一般表示根据发明的一个方面为检测墨水输入中的容器和连接器而采取的步骤的一个实施例的流程图;图8为一般表示根据发明的一个方面为检测的墨水输入中的容器而采取的步骤的一个实施例的流程图;图9为一般表示根据发明的一个方面为执行空间搜索以检测容器而采取的步骤的一个实施例的流程图;图10A-10C为一般表示根据发明的一个方面在空间搜索的各个步骤期间图象网格中的容器的描绘的示例图;图11A-11C为一般表示根据发明的一个方面在空间搜索期间用于图象网格中确认的候选容器的描绘的示例图;图12为一般表示根据发明的一个方面的候选容器的有效区域的描绘的示例图;图13为一般表示根据发明的一个方面的候选容器的笔划数的分组的描绘的示例图;图14为一般表示根据发明的一个方面为执行时间次序搜索而采取的步骤的一个实施例的流程图;图15为一般表示根据发明的一个方面为执行容器的内容检测而采取的步骤的一个实施例的流程图;图16为一般表示根据发明的一个方面的容器内容的检测的示例图;图17为一般表示根据发明的一个方面为检测墨水输入中的连接器而采取的步骤的一个实施例的流程图;图18A-18B为一般表示根据发明的一个方面的检测墨水输入中的连接器的描绘的示例图;图19A-19B为一般表示根据发明的一个方面的检测墨水输入中的候选连接器的描绘的示例图;图20A-20C为一般表示根据发明的一个方面的有效和无效候选连接器的描绘的示例图;图21为一般表示根据发明的一个方面在执行绘图对象的检测之后墨水输入中的手写对象的结构关系的示例图;(5)具体实施方式
图1示出可实施本发明的合适的计算系统环境100的例子。计算系统环境100只是合适的计算环境的一个例子,并不旨在限定本发明的使用范围和功能。不应将计算环境100解释成依赖于或需要示例操作环境100中所示的任何一个部件或其组合。
本发明可用许多其它通用或专用计算系统环境或配置操作。熟知的可适合与本发明一起使用的计算系统、环境、和/或配置包括,但不限于个人电脑、服务器计算机、手提或膝上设备、图形输入板设备、无头服务器、多处理器系统、基于微处理器的系统、机顶盒、可编程的消费电子产品、网络PC机、微型计算机、大型计算机、包括任何以上系统或设备的分布式计算机环境等等。
本发明可以在计算机可执行指令的一般上下文中描述,例如由计算机执行的程序模块。一般来说,程序模块包括执行特定任务或实施特定抽象数据类型的例行程序、程序、对象、部件、数据结构等等。本发明也可应用于分布式计算环境中,在该环境中任务是由通过通信网络链接的远程处理设备执行的。在分布式计算环境中,可将程序模块定位于包含存储器设备的本地和/或远程计算机存储器媒体中。
参见图1,用于实施本发明的示例系统包括以计算机110形式的通用计算装置。计算机110的部件可包括,但不限于处理单元120、系统存储器130、和连接各种系统部件(包括将系统存储器连接至处理单元120)的系统总线121。系统总线121可以是几种总线结构(包括存储器总线或存储器控制器、外围总线、和使用各种总线结构中任一种的本地总线)中的任一种。作为示例而非限定,这种结构包括工业标准结构(ISA)总线、微通道结构(MCA)总线、扩展工业标准结构(EISA)总线、视频电子标准协会(VESA)本地总线、和外部设备互连(PCT)总线(也称为夹层总线)。
计算机110通常包括各种计算机可读媒体。计算机可读媒体可以是可由计算机110访问的任何可用媒体,并包括以任何方法或技术实施的用于存储信息的易失性和非易失性媒体,及可移动/不可移动媒体,作为示例而非限定,计算机可读媒体可包括计算机存储媒体和通信媒体。计算机存储媒体包括以任何用于存储信息的方法或技术(例如计算机可读指令、数据结构、程序模块或其它数据)实施的易失性和非易失性、可移动和不可移动媒体。计算机存储器媒体包括,但不限于RAM、ROM、EEPROM、闪存或其它存储技术、CD-ROM、数字通用光盘(DVD)或其它光盘存储器、磁带盒、磁带、磁盘存储器或其它磁存储装置、或任何可用于存储可由计算机110访问的想要的信息的其它媒体。通信媒体通常体现计算机可读指令、数据结构、程序模块或以已调制的数据信号(例如载波或其它传输机制)形式的其它数据并包括任何信息传输媒体。“已调制的数据信号”一词指一个信号一个或多个属性被设定,或以编码信号中的信息的方式被改变。作为示例而非限定,通信媒体包括有线网络或直接连线连接之类的有线媒体,以及诸如声、RF、红外线的无线媒体及其它无线媒体。任何上述媒体的组合也应包括在计算机可读媒体的范围内。
系统存储器130包括以诸如只读存储器(ROM)131和随机存储器(RAM)132之类的易失性和/或非易失性存储器形式的计算机存储媒体。包括帮助在计算机110的元件之间传输信息(例如在启动期间)的基本例行程序的基本输入/输出系统133(BIOS)通常被存储在ROM131中。RAM132通常包括可由处理单元120立即访问和/或当前由处理单元120操作的数据和/或程序模块。作为示例而非限定,图1示出操作系统134、应用程序135、其它程序模块136和程序数据137。
计算机110也可包括其它可移动/不可移动、易失性和非易失性计算机存储媒体。仅作为示例,图1示出硬盘驱动器141(它从不可移动媒体、非易失性磁媒体读取或写入不可移动媒体、非易失性磁媒体)、磁盘驱动器151(它从可移动、非易失性磁盘152读取或写入可移动、非易失性磁盘152)、及光盘驱动器155(它从诸如CD ROM或其它光媒体之类的可移动、非易失性光盘156读取或写入诸如CD ROM或其它光媒体之类的可移动、非易失性光盘156)。其它可用于示例操作环境中的可移动/不可移动、易失性和非易失性计算机存储媒体包括,但不限于盒式磁带、闪存卡、数字通用光盘、数字视频带、固态RAM、固态ROM等等。通常通过诸如接口140之类的不可移动存储器接口将硬盘驱动器141连接到系统总线121,并通过诸如接口150之类的不可移动存储器接口将磁盘驱动器151和光盘驱动器155。
上述和图1中示出的驱动器及与它们相关联的计算机存储媒体为计算机110提供计算机可读指令、数据结构、程序模块和其它数据。在图1中,例如硬盘驱动器141被示为存储操作系统144、应用程序145、其它程序模块146及程序数据147。注意这些部件既可以与操作系统134、应用程序135、其它程序模块136及程序数据137相同,也可以与之不同。这里给予存储操作系统144、应用程序145、其它程序模块146及程序数据147不同的编号是为了至少表示了它们是不同的副本。用户可通过诸如图形输入板、或电子数字化转换器164、麦克风163、键盘162和指点装置161(通常称为鼠标、跟踪球或触摸输入板)之类的输入装置将命令和信息输入到计算机110。图1中未示出的其它输入装置可包括操纵杆、游戏板、圆盘式卫星电视天线、扫描仪或包括了包含生物测定传感器、环境传感器、位置传感器或其它类型的传感器的装置的其它装置。这些和其它输入装置通常由耦合至系统总线的用户输入接口160连接到处理单元120,但也可由诸如并行端口、游戏端口或通用串行总线(USB)之类的其它接口和总线结构连接。监视器191或其它类型的显示装置也通过诸如视频接口190之类的接口连接到系统总线121。也可将监视器191与触摸输入板等一体化。注意可以将监视器和/或触摸输入板物理连接至合并了计算装置110的机架(例如在一图形输入板型的个人电脑中)。另外,诸如计算装置110之类的计算机也可包括其它外围输出设备,如扬声器195和打印机196,它们可以通过输出外围接口194等连接。
本发明中的计算机110可以使用到一个或多个如远程计算机180那样的远程计算机逻辑连接,在联网的环境中操作。该远程计算机180可以是个人电脑、服务器、路由器、网络PC、对等装置或其它公共网络节点并通常包括上述与计算机110相关的全部或许多元件,尽管图1仅示出了存储装置181。图1示出的逻辑连接包括局域网(LAN)171和广域网(WAN)173,但也可包括其它网络。这种连网环境在办公室、企业范围计算机网络、企业内部互联网和因特网中是很常见的。
当用于LAN的网络环境中时,计算机110通过网络接口和适配器170连接到LAN171。当用于WAN的网络环境中时,计算机110通常包括调制解调器172和用于在WAN173(例如因特网)上建立通信的其它装置。该调制解调器172(可以是内置的或外接的)可以通过用户输入接口160或其它合适的机构连接到系统总线121。在联网的环境中,相对所述的与计算机110画出的程序模块或其一部分可以存储在远程存储装置中。作为示例而非限定,图1示出在存储器装置181上的远程应用程序185。我们将会理解所示的网络连接是示例性的,还可以用其它在计算机之间建立通信链路的方法。
检测手绘对象本发明通常针对用于检测诸如墨水输入中的图表之类的图的系统和方法。如这里使用的那样,手绘对象指任何手写的非字符的形状或绘图。用户可不受手绘输入的限制自由地画图和画流程图。一个形状可以有许多笔划,且输入笔划的次序可以是任意的,使得系统和方法可将任何墨水作为输入接受。正如这里所用的,墨水一般意谓手写的一笔或多笔笔划。另外,笔划可以是过度绘制或重叠的。在这两种情况下,该系统和方法都可自动地检测到正确的形状。
具体来说,该系统和方法可以检测容器的手绘形状以及容器之间所画的连接器以用于形状识别。如这里使用的那样,容器指任何闭合的绘图对象。如这里使用的那样,连接器指任何连接容器的绘图对象。如将会理解的那样,这里所述的各种方框图,流程图和情况只是示例,本发明还会应用于许多其它的情况。
回到图2,它示出了一般表示手绘对象的检测和形状识别的系统部件的示例结构的方框图。那些本领域的技术人员会理解可以将在图中所示的方框中实施的功能作为分开的部件实施,或可以在一个单个的部件中实施几个或所有方框的功能。例如可以将图表检测器204的功能包括在形状识别器206中。或可将容器检测器212的功能作为一个分开的部件实施。
墨水解析器202可接受任何墨水,包括具有绘图对象的墨水。墨水解析器202可包括一可操作地耦合的图表检测器204和可操作地耦合的形状识别器206。一般来说,图表检测器204和形状识别器206可以是诸如核心部件、应用程序、链接程序库、对象等等之类任何类型的可执行软件代码。图表检测器204可包括可操作地耦合的容器检测器212和可操作地耦合的连接器检测器214,而形状识别器206可包括可操作地耦合的容器识别器208和可操作地耦合的连接器识别器210。容器识别器208可包括任何数量的可操作地耦合的分类器,例如椭圆/圆分类器216、多边形分类器218、三角形分类器220、四边形分类器222等等。连接器识别器210可包括任何数量的可操作地耦合的识别器,例如基干识别器224、箭头识别器226等等。这些部件中的每一个都可以是诸如核心部件、应用程序、链接程序库、对象等等之类任何类型的可执行软件代码或其它类型的可执行软件代码。
图3示出一般表示为手绘对象的检测和形状识别所采取的步骤的流程图。在步骤302中,包括具有绘图对象的墨水在内的任何墨水都可被解析。例如在一个实施例中,一页墨水可作为输入接受并被解析。在此实施例中,例如墨水解析器可能不具有在该页面上的墨水的先验知识。因此,可以执行诸如词分组、写/绘图分类和绘图分组之类的基础算法。为了执行词分组,可将笔划分组到词、线和块的层次级别中。这样,词分组过程可包括笔划的特征提取,以捕获距离、几何相异点和线性及其它笔划特征。词分组过程还可包括根据暂时信息将笔划分组的动态编程。词分组过程还可包括根据空间信息聚类以分组笔划。在组中识别的词、线和块不必与现实的语义词、线和块相对应。实际上,这些组可包括手绘对象的笔划。
为了执行写/绘图分类,可识别各种特征来区别写和画。例如可将诸如曲率、密度和其它手写模块特征之类的单字特征用于区分写和画。在一个实施例中,可将诸如临时和空间语境特征之类的语境特征用于区分写和画。可将各特征映射至模糊函数,并根据模糊函数的组合确定写和画之间的分类。
在执行词分组和写/绘图分类之后,可通过执行绘图分组来很好地组织绘图笔划。可根据它们之间的空间关系将绘图笔划分组成单个的对象来执行绘图分组。可将一有效的基于网格的方法用于使墨水笔划适合于具有合适尺寸的图象网格。可标志图象网格来找到连接的部件。每个连接的部件可对应于一绘图对象。可将启发式规则用于调节绘图对象。
在步骤304中,可通过找到属于一个绘图对象的所有笔划来执行图表检测,以对绘图笔划进行分组。这样用户就能不受输入限制自由地绘制图表和流程图了。例如一个形状可具有许多笔划而输入次序可以是任意的。另外,笔划可以是过度绘制或重叠的。在其中任何一种情况下,该系统都可自动地检测到正确的形状。在一个实施例中,可将超图用于表示图表和流程图,这样就可以完全地表示容器和连接器之间的关系了。因此,在此实施例中可以支持可与两个以上容器相连的连接器。
在一个实施例中,容器检测器212可以找到属于一个容器的所有笔划,而连接器检测器214可以找到属于一个连接器的所有笔划。这样,就可以按时间次序执行最佳搜索以检测任何容器。也可以执行有效的搜索来检测容器和连接器。最后,可以为每个检测到的容器执行内容检测。
在步骤306中,可以执行形状识别来识别容器和连接器。在为每个容器和每个连接器将所有的笔划分组之后,形状识别引擎206(在一个实施例中)可用于识别在诸如图表之类的图中的闭合的容器和未闭合的连接器。识别出之后,可提供该形状的类型、位置、方向和大小。有利的是笔划输入的次序和笔划的数量不影响识别。当执行形状识别来识别闭合的容器和未闭合的连接器时,可在步骤308生成图。
图4示出一般表示用于执行手绘对象的检测和形状识别的墨水输入中的手写对象的结构关系的示例图。根402可代表墨水输入,例如一页可包括一个或多个诸如绘图对象404和406之类的绘图对象的墨水输入。绘图对象404可具有相关联的内容,例如在结构上可由段落408表示的文本,段落408由具有由笔划414形成的词412的行410组成。可通过在墨水输入中对手绘对象进行检测和形状识别来检测和识别绘图对象404和406。
手绘对象可以是诸如图或表之类的图,通常包括容器和连接器。图5A-5C提供通常示出墨水输入中支持手绘对象的检测和形状识别的容器类型的示例图。可检测和识别的支持容器可以是可形成闭合区域的任何类型的容器。这些容器的例子是图5A中的容器502、图5B中的容器504和图5C中的容器506。诸如文本之类的内容可包含在容器的闭合区域内。图6A-6D提供一般示出的墨水输入中支持手绘对象的检测和形状识别的连接器类型的示例图。可检测和识别的支持连接器可以是与两个或两个以上容器相连的任何类型的连接器。这一连接器可以不包括箭头,例如图6A中的连接器606,包括一个箭头,例如图6B中的连接器612,包括两个箭头,图6C中的连接器618,包括三个箭头,例如图6D中的连接器626。一个连接器可括同与之相连的容器一样多的箭头。
图7示出一般表示为检测具有容器和连接器的图表而采取的步骤的一个实施例的流程图;可以在步骤702为绘图对象中的每个容器进行容器检测。然后在步骤704为绘图对象中的每个连接器进行连接器检测。一般来说,可把绘图对象中的容器看作具有在它们之间形成桥的连接器的二维平面中的岛屿。在一个实施例中,可以将绘图对象的笔划定位于图象网格上,并将漫水填充算法用于检测容器和连接器。
图8示出一般表示为检测墨水输入中的容器而采取的步骤的一个实施例的流程图。在步骤802中,可执行空间搜索来检测容器。有利的是空间搜索可以处理笔划的任意输入和笔划的过度绘制。因为时间次序搜索更适合于处理笔划的重叠,也可以在步骤804中进行时间次序搜索来检测用重叠的连续笔划绘制的容器。可以在用于空间搜索的网格中标记用时间次序搜索找到的附加容器,这样就可以将找到的所有容器包括在图象网格中以备以后内容检测和连接器检测时用。在步骤806中,可以为任何容器进行内容检测。在此步骤中,可以通过计算其边界框与每个容器的交叉区域来确定诸如识别的词之类的任何内容是否可以属于一个容器。
图9示出一般表示为执行空间搜索以检测容器而采取的步骤的一个实施例的流程图。在步骤902中,可生成一个图象网格,且可将绘图对象的笔划定位在生成的网格上。在一个实施例中,可以将网格尺寸设定在合适的值以减少容器笔划之间的间隙,但仍会在容器的内部留下一个空的区域。为了选择合适的值,可以通过核查检测数据凭经验确定网格的大小以确保可以检测到尽可能多的容器。由于这一确定,可以将网格尺寸设置在2.5mm。在步骤904中可以标记与绘图笔划的交叉的网格。为了核查哪些网格与绘图笔划交叉,可以根据统一的步长对绘图笔划重新采样,并可核查重新采样的点在图象网格中的位置。如图10A所示,与容器1004、连接器1006和容器1008的绘图笔划交叉的网格标记在图象网格1002中。容器1004和1008变成图象网格1002中的8相邻连接区域。
从图象网格的外缘开始直到与图象笔划交叉的标记网格,在步骤906中可漫水填充最外面的空的网格。如图10B所示,容器1004和1008可作为空白网格的岛屿出现在图象网格1002中。在步骤908中,可漫水填充空白网格的岛屿。对每个岛屿,可将一内部空白网格选择成开始网格,从该网格直到与一些笔划相交的网格形成的边界,所有相邻的空白网格都可被漫水填充。当到达岛屿的边界时,记录形成候选容器的笔划。例如图10C示出容器1004和1008的漫水填充的岛屿。漫水填充的岛屿周围的边界与这些候选容器的绘图笔划相交。
漫水填充空白网格的岛屿的步骤可导致将可能无效的容器识别成候选容器。因此,可在步骤910中核查候选容器以确定它们是有效的容器。各候选容器的绘图笔划可以具有在漫水填充的岛屿的边界网格外部的笔划。例如图11A示出具有候选容器1108的图象网格1102,候选容器1108具有在边界网格1106外部围绕漫水填充的岛屿1110的笔划1104和1112。对于所有与候选容器的一个笔划相交的网格,可以将与漫水填充的岛屿网格相邻的网格定义成有效的,而将其它定义为无效的。如果无效网格对有效网格的比率比经验值大,例如0.2,则可将相应的笔划定义成无效的。这些无效的笔划可以被去除。例如图11A中的笔划1104和1112为无效笔划。在去除所有无效笔划后,如果它仍旧闭合(即,形成一个闭合的区域)的话候选容器有效。可以采用与用于图9中的容器检测相同的步骤来确定容器是否仍旧闭合。即,候选容器的空白网格的岛屿可以是漫水填充的,且如果可以到达岛屿外部的一些空白网格,则可以确定候选容器不再闭合。
一个有效闭合的容器可包括诸如外部绘图笔划之类的其它笔划,或可与另一候选容器共享绘图笔划。在有效容器包括内部绘图笔划的情况中,在一个实施例中可将内部绘图笔划作为图11B所示的容器的内容对待。图象网格1114中的容器1116包括可作为容器1116的内容对待的内部绘图笔划1118。在一个候选容器与另一候选容器共享绘图笔划的情况下,可以在一个实施例中将共享的笔划分开并确定属于候选容器中的一个。例如图11C示出图象网格1120中的候选容器1122和1124,其中部分有效边界被各候选容器共享。有两个绘图笔划与边界的共享部分的网格相交。对边界共享部分中的每个笔划,都重新采样绘图笔划的点并计算到每个候选容器的中心的平均距离。绘图笔划被指派为属于与一个候选容器的中心具有最短平均距离的候选容器。如果由于丢失绘图笔划另一候选容器不再闭合,它可能变成一个无效的候选容器。然而,如图11C所示,可以将与候选容器1122和1124的有效边界的共享部分相交的两个绘图笔划分别指派成属于距离其中心的平均距离最近的候选容器。两个候选容器都可以保持闭合并仍旧有效,因为它们每个都被分配了两个绘图笔划中的一个。
在一个实施例中,还可以在空间搜索之后进行时间次序搜索,因为时间次序搜索可能更适合于处理笔划的重叠。一般来说,可以通过确定输入笔划序列形成容器的似然性采用时间次序搜索找到从连续的笔划序列形成的容器。在此实施例中,p(i,j)可以表示从i至j的输入笔划序列(i,j)可能是容器的似然性。可以将p(i,j)定义成 其中Vb为有效边界比;Va为有效面积比;s(i,j)为笔划数;w1、w2、w3为重量;VB和VA分别为Vb和Va的阈值。可以将一有效的边界比定义成Vb=有效边界长度/总边界长度。可以将候选容器的无效区域面积定义成与一些不属于候选容器的内部绘图笔划相交的区域,并将有效区域面积定义成在候选容器减去任何无效区域面积中的面积。有效面积比可以定义成Va=有效区域面积/总面积。图12示出包括与内部绘图笔划1206相交的无效区域面积的候选容器1202的有效区域面积104的示例图。本领域的技术人员会理解可以采用图象网格用在与如图9所述的空间搜索期间用于识别候选容器的边界相同的过程确定有效边界长度、总边界长度、有效区域面积和总面积的特征。可将经验值用于VB和VA,例如0.15和0.25,并将经验值0.4、0.4、和0.2用于权重w1、w2、w3。可以将笔划数s(i,j)定义成s(i,j)=j-i+1。如图13所示,可将笔划数的特征用来防止靠近容器的任何小笔划的误分组。可以为围绕区域1308确定用于形成容器1302的笔划数,并使该笔划数与在区域1306中发现的形成容器1302和部分连接器1304的笔划数相区别。
图14示出一般表示为执行时间次序搜索而采取的步骤的一个实施例的流程图。在步骤1402中,可以确定一个有效边界比Vb。在步骤1404中,可以确定一个有效面积比Va。在步骤1406中,可以确定笔划数s(i,j)。在步骤1408中,可以从输入笔划次序确定容器。在一个实施例中,可以通过求解p(m,n)在输入笔划序列(m,n)中找到容器。对于将输入笔划序列(m,n)分割成k个子序列,i1,i2,...ik,p(m,n)可定义成P(m,n)=max(p(m,i1)+p(i1+1,i2)+...+P(ik+1,n))可以通过计算p(m,n)将输入笔划分组成正确的容器。在一个实施例中,可将动态编程用于计算p(m,n),其中可将p(m,n)表达成定义如下的递归过程 可以在用于空间搜索的图象网格中标志任何通过执行时间次序搜索找到的附加容器,这样就可将找到的所有容器包括在图象网格中以备以后在内容检测和连接器检测期间使用。
在执行空间搜索和时间次序搜索以检测容器之后,可以在图象网格中对任何可能属于容器的内容(例如一个经识别的词)进行内容检测。例如可以通过计算其边界框和容器的边界网格的交叉区域,核查写的词是否属于一个容器。图15表示一般表示为执行容器的内容检测而采取的步骤的一个实施例的流程图。在步骤1502中,可以为在图象网格中识别的任何文本确定最小的边界矩形和其面积。在步骤1504中,可以确定最小的边界矩形与各容器的交叉面积。在步骤1506中,可以计算交叉面积和最小的边界矩形的面积比。在步骤1508中,可将具有最大交叉比的容器选择成内容所在的容器。例如图16示出在图象网格1602中围绕词“hello”的边界矩形1606。可以确定词“hello”属于容器1604,因为与容器1604的交叉比大于与容器1608的交叉比。在一个实施例中,可能还要求交叉比大于经验阈值(例如0.55)。
一旦在图象网格中检测到任何容器及与它们相关联的内容,就可进行连接器检测。图17呈现一般表示为检测墨水输入中的连接器而采取的步骤的一个实施例的流程图。一般来说,可以在用容器标记的图象网格中进行搜索,以检测在包括所有非容器笔划的未访问过的绘图笔划的网格中的连接器。因为一些用户可能倾向于画远离容器的小的连接器,可以膨胀那些容器使连接器与相应的容器相邻。图18A示出与连接器1806相交的未经访问的网格和容器1804、1808标记边界之间的网格被漫水填充的图象网格1802。在步骤1702中,可以用围绕容器的边界的标记的网格膨胀与未经访问的绘图笔划不相邻的孤立的容器来检测这一连接器。在未经访问的网格或另一容器到达时可停止膨胀过程。这样,连接器就可以如图18B所示地与相应地膨胀的容器相邻了。图18B的图象网格1810中所示的容器具有它们用标记网格围绕的边界,以建立填满的容器1812和1816。这样与连接器1814未经访问的绘图笔划相交的网格就可与经膨胀的容器的网格相邻了。
在图17的步骤1704中,可以漫水填充未经访问的网格。可以将一个未经访问的网格选择为开始网格,可以将从该网格开始的所有与未经访问的网格相邻的网格漫水填充。如果那些漫水填充的网格到达两个或两个以上容器(包括被膨胀的容器),则将相应的绘图笔划记录为一候选连接器。如在图19A的图象网格1902中所示的,在膨胀的容器1904和1908之间漫水填充的网格形成一候选连接器1906。在一个实施例中,图象网格中容器的边界可能已经与形成连接器的未经访问的绘图笔划相邻。在这种情况下,可以不先膨胀容器而将未经访问的网格漫水填充。图19B示出图象网格1910中的这种情况,其中漫水填充的网格可以不膨胀而在容器1912和1916之间形成一个候选连接器1914。
将未经访问的绘图笔划漫水填充的步骤可导致将可能无效的连接器识别成候选连接器。因此,在步骤1706可以核查候选连接器以确认它们是有效的连接器。如果候选连接器具有不与容器相连的绘图笔划,则候选连接器有可能是无效的。在一个实施例中,为了检测到可能有不与容器相连的候选连接器的绘图笔划,可以将一个滑动窗沿候选连接器移动以证明绘图笔划与滑动窗的边界的交点数不超过候选连接器可连接的相邻容器的数量。可以将滑动窗的大小设置成经验尺寸以避免与局部变差的虚假交叉。在一个实施例中,窗的半径可以是4mm。假设,例如候选连接器连接N个容器(N>=2)而M为候选连接器的绘图笔划与滑动窗的边界的交点数,如果在滑动窗沿候选连接器移动时,在某一点M>N,可以认为候选连接器是无效的。例如图20A示出沿与三个容器(容器2002、容器2006和容器2008)相连的候选连接器2010移动的滑动窗2004的三个位置。在每个所示的位置上,交点数都比候选连接器可连接的容器数少。因为交点数不超过连接的容器数,该候选连接器是无效的。另一方面,图20B示出无效候选连接器2020的检测,其中在滑动窗2014的边界中的交点数大于连接的容器2012、2016和2018的数量。如果它包括不与容器相连的绘图笔划,候选连接器也可以是无效的。例如图20C示出在滑动窗2024中不与任何容器2022、2026和2028相连的候选连接器2030的笔划。因此,候选连接器2030是无效连接器。
一旦检测到容器和连接器,就会理解手写对象的结构关系。图21为一般表示在执行绘图对象的检测之后墨水输入中的手写对象的结构关系的示例图。根2002可表示墨水输入,例如一页可包括一个或多个诸如绘图对象2106之类的绘图对象的墨水输入。可通过在墨水输入中对手绘对象进行检测和形状识别来检测和识别诸如图表2104之类的绘图对象。图表2104可以由通过连接器连接的容器2108和2110形成。容器2108可包括相关联的内容,例如结构上可由具有用笔划形成的词2118的行2116组成的段落2114表示的文本。
在用所述系统和方法检测到所有容器和连接器后,可以完全识别和生成在墨水输入中的手绘对象。通过使用本发明,用户可不受手绘输入限制而自由地绘制图表和流程图。一个形状可以有许多笔划,且输入笔划的次序可以是任意的,使得系统和方法可将任何墨水作为输入接受。另外,笔划可以是过度绘制或重叠的。在这两种情况下,该系统和方法都可自动地检测到正确的形状。
如从以上的详细说明中看出的,本发明提供用于检测手绘对象的系统和方法。有利的是,该系统和方法对可形成手绘形状的笔划输入次序和笔划数不敏感。另外,提供的系统和方法是灵活而且可扩展的。如现在理解的,可将本发明用于检测包括图表的图中的任何闭合的容器和未闭合的连接器。一旦检测到,就可以识别形状的类型、位置、方向和大小。因此本系统和方法提供了当代计算中所需的重要优点和益处。
虽然本发明容许各种修改和选择性结构,在附图中示出和详细描述了本发明的某些实施例。然而,应理解并不想将本发明限定于所揭示的特定形式,相反,是想揭示所有落在本发明的精神和范围之内的修改及选择性结构。
权利要求
1.一种用于检测手绘形状的计算机系统,其特征在于,包括用于接收墨水输入的图表检测器;可操作地与图表检测器耦合的用于检测墨水输入中闭合容器的容器检测器;和可操作地与图表检测器耦合的用于检测墨水输入中的连接器的连接器检测器。
2.如权利要求1所述的系统,其特征在于,还包括可操作地与图表检测器相连用于将墨水输入发送至图表检测器的墨水解析器。
3.如权利要求2所述的系统,其特征在于,还包括可操作地与墨水解析器耦合用于识别手绘形状的形状识别器。
4.如权利要求3所述的系统,其特征在于,所述形状识别器包括一个可操作地与形状识别器耦合的容器识别器。
5.如权利要求3所述的系统,其特征在于,所述形状识别器包括一个可操作地与形状识别器耦合的连接器识别器。
6.一种包括权利要求1的系统的具有计算机可执行部件的计算机可读媒体。
7.一种用于检测手绘形状的方法,其特征在于,包括接收墨水输入;为在墨水输入中的每个容器进行容器检测;和为在墨水输入中的每个连接器进行连接器检测。
8.如权利要求7所述的方法,其特征在于,还包括解析墨水输入以区分墨水输入中的写和画。
9.如权利要求7所述的方法,其特征在于,还包括进行图表检测,以识别墨水输入中的图表的笔划。
10.如权利要求7所述的方法,其特征在于,还包括进行形状识别,以识别在墨水输入中检测到的各容器和连接器的形状。
11.如权利要求10所述的方法,其特征在于,还包括生成具有在墨水输入中识别的各容器和连接器的绘图。
12.如权利要求7所述的方法,其特征在于,所述进行容器检测包括进行空间搜索以检测容器。
13.如权利要求7所述的方法,其特征在于,所述进行容器检测包括生成图象网格并将来自墨水输入的笔划定位在生成的图象网格上。
14.如权利要求7所述的方法,其特征在于,所述进行容器检测包括标记与定位在图象网格上的墨水输入的笔划相交的图象网格的网格。
15.如权利要求7所述的方法,其特征在于,所述进行容器检测包括将直到与定位在图象网格上的墨水输入的笔划相交的标记网格的图象网格的最外面的空白网格漫水填充。
16.如权利要求7所述的方法,其特征在于,所述进行容器检测包括将直到与定位在图象网格上的墨水输入的笔划相交的标记网格的图象网格的空白网格的岛屿漫水填充。
17.如权利要求7所述的方法,其特征在于,所述进行容器检测包括核查候选容器为有效容器。
18.如权利要求17所述的方法,其特征在于,所述核查候选容器为有效容器包括核查所有与定位在图象网格上的候选容器的笔划相交的边界网格与漫水填充的岛屿网格相邻。
19.如权利要求17所述的方法,其特征在于,所述核查候选容器为有效容器包括去除不与图象网格中的边界网格相交的任何定位在图象网格上的候选容器的笔划。
20.如权利要求17所述的方法,其特征在于,所述核查候选容器为有效容器包括确定该候选容器是闭合的容器。
21.如权利要求17所述的方法,其特征在于,所述核查候选容器为有效容器包括将候选容器之间所有共享的绘图笔划分开。
22.如权利要求21所述的方法,其特征在于,所述将所有共享的绘图笔划分开包括计算绘图笔划的各点到各个共享绘图笔划的候选容器的中心的平均距离,并将绘图笔划分配成属于绘图笔划的点距离其中心的平均距离最近的候选容器。
23.如权利要求7所述的方法,其特征在于,所述进行容器检测包括进行时间次序搜索以检测容器。
24.如权利要求23所述的方法,其特征在于,所述进行时间次序搜索包括计算定义成有效边界长度除以总边界长度的有效边界比,其中边界包括与定位在图象网格上的墨水输入的笔划相交的标记网格。
25.如权利要求23所述的方法,其特征在于,所述进行时间次序搜索包括计算定义成有效区域面积除以总面积的有效面积比,其中区域面积包括与定位在图象网格上的墨水输入的笔划相交的标识网格的边界内的面积。
26.如权利要求23所述的方法,其特征在于,所述进行时间次序搜索包括通过计算输入笔划序列形成容器的似然性从墨水输入的笔划确定容器。
27.如权利要求26所述的方法,其特征在于,所述计算输入笔划序列形成容器的似然性包括使用动态编程来将输入笔划分组成片段,其中每个片段形成一个容器。
28.如权利要求7所述的方法,其特征在于,所述进行容器检测包括进行内容检测以检测出任何属于一个容器的内容。
29.如权利要求28所述的方法,其特征在于,所述进行内容检测包括确定围绕内容的最小边界矩形并计算其面积。
30.如权利要求28所述的方法,其特征在于,所述进行内容检测包括计算所述最小边界矩形与各相交的容器的相交面积比,并选择与各相交的容器具有最小边界矩形的最大相交面积比的容器。
31.如权利要求7所述的方法,其特征在于,所述对墨水输入中的每个连接器进行连接器检测包括将边界不相邻与定位于网格上的墨水输入中的未访问笔划相交的网格的容器进行膨胀。
32.如权利要求31所述的方法,其特征在于,所述容器填满包括标记围绕容器边界的网格直到达到与未经访问的笔划相交的网格。
33.如权利要求31所述的方法,其特征在于,所述容器填满包括标记围绕容器的边界的网格直到达到另一容器的边界网格。
34.如权利要求7所述的方法,其特征在于,所述为墨水输入中的每个连接器进行连接器检测包括将与定位于网格上的墨水输入中的未经访问笔划相交的网格漫水填充。
35.如权利要求7所述的方法,其特征在于,所述进行连接器检测包括核查候选连接器是有效连接器。
36.如权利要求35所述的方法,其特征在于,所述核查连接器是有效的连接器包括证明候选连接器的笔划与一个容器相连。
37.如权利要求35所述的方法,其特征在于,所述核查候选连接器是有效连接器包括证明候选连接器的笔划的交点数不超过候选连接器可连接的相邻容器数。
38.如权利要求37所述的方法,其特征在于,所述证明候选连接器的笔划的交点数不超过候选连接器可连接的相邻容器数包括使用可沿候选连接器移动的滑动窗。
39.一种具有用于执行权利要求7的方法的计算机可执行指令的计算机可读媒体。
40.一种用于检测手绘形状的计算机系统,其特征在于,包括用于接收墨水输入的装置;用于检测在墨水输入中的闭合容器的装置;和用于检测在墨水输入中的连接器的装置。
全文摘要
本发明提供一种用于在墨水输入中检测手绘对象的系统和方法。检测器可通过检测该绘图中闭合的容器和/或未闭合的连接器来从墨水输入中检测到诸如图或表之类的绘图。一种基于网格的有效方法可用于使墨水笔划适合于具有合适尺寸的图象网格。漫水填充算法可用于检测容器和连接器。还可以在空间搜索后进行时间次序搜索以处理绘图笔划的重叠。最后,可对每个检测到的容器进行内容检测。一旦在图象网格中检测到任何容器及与它们相关联的内容,就可进行内容检测。通过使用本发明,用户可不受手绘输入限制而自由地绘制图和流程图。
文档编号G06T11/80GK1619576SQ20041008265
公开日2005年5月25日 申请日期2004年9月24日 优先权日2003年9月24日
发明者李彦涛, 王坚 申请人:微软公司