CN111492407B - 用于绘图美化的系统和方法 - Google Patents

用于绘图美化的系统和方法 Download PDF

Info

Publication number
CN111492407B
CN111492407B CN201880082046.9A CN201880082046A CN111492407B CN 111492407 B CN111492407 B CN 111492407B CN 201880082046 A CN201880082046 A CN 201880082046A CN 111492407 B CN111492407 B CN 111492407B
Authority
CN
China
Prior art keywords
segments
vertex
adjacent
primitive
beautification
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
CN201880082046.9A
Other languages
English (en)
Other versions
CN111492407A (zh
Inventor
陈天翼
涂霄
易晟
K·T·贝克
R·L·汤森
M·L·付
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN111492407A publication Critical patent/CN111492407A/zh
Application granted granted Critical
Publication of CN111492407B publication Critical patent/CN111492407B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/77Retouching; Inpainting; Scratch removal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/203Drawing of straight lines or curves
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/13Edge detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20072Graph-based image processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20172Image enhancement details
    • G06T2207/20192Edge enhancement; Edge preservation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)

Abstract

用于美化原始绘图数据的方法、系统和装置包括具有原始数据处理器的美化引擎,该原始数据处理器接收绘图数据并在数据中标识分段的集合。美化导引器构建分段数据的集合的结构表示,该结构表示指定分段之间的拓扑关系。单基元美化器在结构表示中标识要美化的分段,并且单基元美化动作被应用于分段以生成经美化的原始绘图数据。多基元美化器在结构表示中标识要美化的相邻分段,并且多基元美化动作被应用于相邻分段以生成进一步经美化的绘图数据。

Description

用于绘图美化的系统和方法
背景技术
许多计算机辅助绘图程序允许用户以将由用户输入的原始绘图笔画显示在数字绘图画布上的方便自由的方式在数字画布上绘图。通常,用户可能喜欢他们的输入绘图笔画被改进或更改以更准确地对应于期望规则形式或基本几何形状,诸如线、三角形或矩形。用于改进绘图笔画的现有技术方案将用户输入原始绘图笔画分类为已知几何对象,如三角形、矩形、五角形等,并且然后渲染他们认为用户试图创建到屏幕上的对象的理想化表示。然而,现实世界绘图常常是自由的并且包括不容易与可识别且可定义的基本几何形状相对应的许多几何基元。
发明内容
提供本发明内容从而以简化的形式介绍下面在具体实施方式中进一步描述的一系列概念。本发明内容不旨在确定要求保护的主题的关键特征或必要特征,也不旨在用于限制要求保护的主题的范围。
本文中公开了用于美化原始绘图数据的方法、系统和装置。在一个方面,一种美化引擎包括原始数据处理器,所述原始数据处理器接收绘图数据并在所述数据中标识分段的集合。美化导引器构建分段数据的集合的结构表示,该结构表示指定分段之间的拓扑关系。例如,结构表示可以是无向图,该无向图利用顶点表示每个分段并且针对每个顶点指示表示相邻分段的任何其他顶点。单基元美化器在结构表示中标识要美化的分段,并且单基元美化动作被应用于所标识的分段以生成经美化的原始绘图数据。多基元美化器在结构表示中标识要美化的相邻分段,并且多基元美化动作被应用于所标识的相邻分段以生成进一步经美化的绘图数据。美化过程可以以有序的方式来执行以全局美化绘图数据。
下面参考附图详细描述各种示例的另外的特征和优点以及结构和操作。应指出,本构思和技术不限于本文中描述的具体示例。这样的示例在本文中仅出于说明性目的而被呈现。基于本文中包含的教导,额外示例将对相关领域技术人员而言变得显而易见。
附图说明
被包含在本文中并且形成本说明书的一部分的附图图示了本申请的实施例,并且与说明书一起进一步用于解释实施例的原理并使得相关领域技术人员能够利用这些实施例。
图1A和图1B示出了根据示例实施例的美化系统的框图。
图2示出了根据示例实施例的美化原始绘图数据的方法的流程图。
图3示出了根据示例实施例的美化引擎的框图。
图4示出了根据示例实施例的标识分段的方法的流程图。
图5示出了根据示例实施例的构建无向图的方法。
图6示出了根据示例实施例的执行单基元美化的方法。
图7示出了根据示例实施例的执行多基元美化的方法。
图8A-8E示出了根据实施例的具有分段标识的示例的绘图屏幕。
图9示出了根据示例实施例指示的具有分段和顶点的绘图屏幕。
图10示出了根据实施例的无向图集合的示例。
图11A-11C示出了根据实施例的单基元美化动作的示例的绘图屏幕。
图12A-12C示出了根据实施例的多基元美化动作的示例的绘图屏幕。
图13示出了根据实施例的用于美化原始绘图数据的无向图集合。
图14A示出了根据实施例的示出原始绘图笔画的示例绘图。
图14B示出了根据实施例的示出经美化的绘图笔画的示例绘图。
图15示出了用于实施实施例的系统的示例。
当结合附图阅读时,从下面阐述的详细描述,本文中描述的实施例的特征和优点将变得更加显而易见,其中,类似的附图标记在其中指代对应的元件。在附图中,类似的附图标记一般指示相同的、功能上相似的和/或结构上相似的元件。元件首先出现的图由对应附图标记中的最左边的(一个或多个)数字指示。
具体实施方式
引言
本说明书和附图公开了包含所公开的主题的特征的一个或多个实施例。本专利申请的范围不限于所公开的实施例。所公开的实施例仅仅是示例性的,并且所公开的实施例的修改版本也被包含。本主题的实施例由本文随附的权利要求限定。
在说明书中对“一个实施例”、“实施例”、“示例实施例”等的引用指示所描述的实施例可以包括特定特征、结构或特性,但是每个实施例可能不必包括特定特征、结构或特性。此外,这样的短语不一定指代相同实施例。另外,当结合实施例描述特定特征、结构或特性时,所承认的是,无论是否明确描述,结合其他实施例影响这样的特征、结构或特性都在本领域技术人员的知识内。
在本说明书中,除非另行陈述,否则修饰本公开的实施例的一个特征或多个特征的条件或关系特性的诸如“基本上”和“大约”的形容词被理解为意指该条件或特性被定义为在对于其旨在用于应用的实施例的操作可接受的容差内。
本文中描述的示例实施例出于说明性目的而被提供并且不是限制性的。本文中描述的示例可以适于任何类型的绘图美化系统或配置。从本文中的教导,包括修改/更改的另外的结构和操作实施例将对于相关领域技术人员变得显而易见。
许多示例性实施例被描述如下。要指出,本文中提供的任何章节/子章节标题不旨在为限制性的。在整个本文中描述实施例,并且任何类型的实施例可以被包括在任何章节/子章节下。另外,任何章节/子章节中公开的实施例可以以任何方式与相同章节/子章节和/或不同章节/子章节中描述的任何其他实施组合。
示例实施例
本文中描述了将输入绘图笔画转换成可以以更有意义的方式来解读和美化的形式化表示的美化系统和方法的实施例。存在关于美化原始绘图数据的问题,包括实现全局美化以及确定应用美化动作的方式。为了处理上述问题,实施例以特定方式构造对绘图数据的处理。例如,在一个实施例中,以下步骤中的一个或多个可以被执行:(i)数据处理步骤,其中,表示原始数据中的几何基元的分段被标识;(ii)构建无向图步骤,其中,将分段表示为与其他顶点相邻的顶点或与其他顶点不相邻的顶点的一个或多个无向图被构建;(iii)单几何基元美化步骤,其中,单个几何基元被美化;以及(iv)多几何基元美化步骤,其中,多个相邻的几何基元相对于彼此被美化。一般,数据处理可以在输入原始绘图笔画上执行以获得基本低级几何基元的集合。(一个或多个)无向图被构建以表示整体基本几何基元并保留全局绘图信息。(一个或多个)无向图的拓扑可以被跟随,以在所标识的基元上执行单几何基元美化和多几何基元美化并确定几何基元相对于彼此被美化的方式和阶数。美化过程的结果是经全局美化的绘图数据。
在一个实施例中,用于绘图美化的系统可以以各种方式来配置。例如,图1A是根据示例实施例的美化系统100的框图。美化系统100被配置为自动改进由用户使用计算机辅助绘图或图形应用在电子画布106上做出的绘图。如图1所示,美化系统100包括计算设备122和电子画布106。计算设备122包括绘图应用102,其包括美化引擎108。图1A的这些特征被描述如下。
电子画布106接收由画布106的用户输入的原始绘图笔画(rawdrawings stroke)。画布106可以是允许用户输入自由形式的草图的绘图应用或图形应用的一部部分,并且可以被显示作为显示屏幕/绘图屏幕的一部分并且与用户交互。用户可以使用触笔、指尖、和/或其他仪器来与画布106交互以提供原始绘图笔画。画布106将呈原始绘图笔画数据110形式的原始数据笔画提供到绘图应用102。原始绘图笔画数据110以数字化形式来表示原始绘图笔画,诸如以绘图屏幕坐标、向量、像素和/或任何其他适当的图形数据的形式。
绘图应用102是如下的绘图应用或图形应用,其中该绘图应用或图形应用在计算设备122中操作、使得用户能够在数字画布106上画草图并且在内部地处理原始绘图笔画数据110以生成用于显示在画布106上的美化的绘图结果。数字画布106可以被显示在与计算设备122相关联的显示屏幕(包括与计算设备122集成的显示屏幕、外部显示屏幕等)上。绘图应用102从画布106接收原始绘图笔画数据110,并利用美化引擎108处理原始绘图笔画数据110。美化引擎108基于如本文中更详细地描述的基本几何基元美化(geometricprimitive beautification)来美化原始绘图笔画,并将经美化的绘图笔画数据112返回到绘图应用102。绘图应用102经将美化的绘图数据112提供到画布106。画布106然后显示美化的笔画。
计算设备122可以是任何类型的计算设备,包括移动设备,诸如移动计算机或移动计算设备(例如,微软设备、个人数字助理(PDA)、膝上型计算机、笔记本电脑、平板计算机(诸如苹果iPadTM)、上网本等)、智能电话、可穿戴计算设备(例如,头戴式设备,包括智能眼镜,诸如/>Glass等)、或其他类型的移动设备,或固定计算设备(诸如台式计算机、视频游戏控制台、或PC(个人计算机))。
图1A的实施例具有美化引擎108,其被包括在运行在计算设备122上的绘图应用102中。图1B示出了根据另一实施例的美化系统130的框图。美化系统130包括服务器104、电子画布106、美化引擎108以及计算设备122。类似于图1A的美化系统100,美化系统130被配置为自动改进由用户使用计算机辅助绘图或图形应用在电子画布106上做出的绘图。然而,在美化系统130中,服务器104从计算设备122接收绘图数据并将绘图数据传送到美化引擎108,以用于美化处理。美化系统108进一步被描述如下。
如图1B所示,计算设备122中的绘图应用102从电子画布106接收原始绘图笔画数据110。绘图应用102以任何方式(例如,经由HTTP请求,或者根据另一协议、数据格式和/或传输机制)将作为原始绘图笔画数据116的原始绘图笔画数据110发送到服务器104。
服务器104使得绘图应用102能够与绘图美化引擎108通信。服务器104可以包括一个或多个服务器设备和/或其他类型的计算设备。计算设备122和服务器104可以经由网络(例如,LAN(局域网)、WAN(广域网)、或网络的任何组合,诸如互联网)被通信地耦合。服务器104可以包含美化引擎108,或者可以通过网络与美化引擎108通信。服务器104被配置为将原始绘图笔画数据120发送到美化引擎108。美化引擎108如本文中更详细地描述地那样对原始绘图笔画进行美化,并且当其未被服务器104包含时,将经美化的绘图笔画数据118返回到服务器104。服务器104将经美化的绘图数据114发送到绘图应用102,该绘图应用102将经美化的绘图数据112提供到画布106。画布106生成并显示如由经美化的绘图数据112定义的美化的笔画(以及没有被美化的绘图信息)。
美化引擎108可以以各种方式来操作以美化绘图笔画。例如,图2示出了根据示例实施例的美化原始绘图数据的方法的流程图200。在一个实施例中,流程图200可以由图1A和图1B的美化引擎108执行。注意,并非流程图200的所有步骤都需要在所有实施例中被执行,并且流程图200的步骤可以以备选顺序来执行。
流程图200参考图3被描述如下。图3是根据实施例的美化引擎300的框图。图3的美化引擎300可以根据流程图200来操作。美化引擎300是图1A和图1B的美化引擎108的示例实施例,并且可以被定位在计算设备122、绘图应用102、服务器104或其他地方中。如图3中所示,美化引擎300包括原始数据处理器302、多基元美化器304、单基元美化器306、多基元动作应用器322、单基元动作应用器324、美化导引器332、以及数值转换器328。原始数据处理器302包括均匀距离采样器310、拐角检测器312、分段器314以及分段合并器316。美化导引器332包括无向图构建器326。流程图200和美化引擎300被描述如下。
流程图200以步骤202开始。在步骤202中,在原始绘图数据中标识分段的集合(aset of segments)。例如,如图3中所示,原始数据处理器302接收原始绘图笔画数据120。原始数据处理器302被配置为分析原始绘图笔画数据120以标识其中包括的绘图分段(例如,线)。所标识的分段对应于基本几何基元,该基本几何基元可以被美化作为全局美化过程的一部分。原始数据处理器302可以以任何方式(传统的或专有的)(包括通过在原始绘图笔画数据120中搜索形成直线或曲线的相邻点的序列)和/或任何其他方式标识原始绘图笔画数据120中包括的分段。原始数据处理器302被配置为生成分段的集合,该分段的集合包括原始绘图笔画数据120中标识的分段。
在步骤204中,构建所述原始绘图数据中标识的所述分段的集合的结构表示,该结构表示指定所述分段的集合中的分段之间的拓扑关系。美化导引器332被配置为以如下的任何方式生成原始绘图笔画数据120中标识的分段的集合的结构表示:该方式维持分段之间的拓扑关系(该拓扑关系包括对分段的标识,分段之间的任何连接性(该连接性实现对分段的遍历)等)。结构表示可以具有任何形式,包括表、图等。
例如,美化导引器332可以被配置为构建结构表示,该结构表示针对分段的集合中的每个分段指示任何相邻分段。在一个实施例中,一对分段可以在它们相交时被认为相邻。在另一实施例中,一对分段可以在它们包含距离彼此的预定数量的像素的范围内的点时被认为相邻。该相邻信息保留原始绘图数据的全局结构。美化导引器332可以被配置为以任何方式确定相邻分段,该方式包括通过确定靠近的分段(例如,通过坐标),确定相交的分段等。
在一个实施例中,美化导引器332可以包括无向图构建器326。无向图构建器326被配置为基于所标识的分段及其拓扑关系来构建一个或多个无向图。在一个实施例中,无向图构建器326被配置为将顶点分配给由原始数据处理器302生成的分段的集合中的每个分段。顶点用于在美化过程期间标识分段及其相对位置。所分配的顶点指示可以具有任何适当的形式,包括数值、字母数字值、坐标等。(一个或多个)无向图用于对美化过程进行构造并排序。(一个或多个)无向图可以具有任何适当的形式,包括将顶点(分段)表示为节点,其中边连接被确定为对应于相邻分段的顶点对。
在步骤206中,在结构表示中的多基元美化动作应用于的相邻分段的至少一个集合被标识。例如,多基元美化器304可以被配置为在由美化导引器332生成的结构表示中标识多美化动作可以被应用于的分段的集合(例如,分段对或其他尺寸的分段组)。多美化动作是应用到多个分段的美化动作,使得多个分段之间的关系通过多美化动作而改变。用于应用美化动作的准则是可选择的并且可以取决于特定动作。下面提供多基元美化器304的另外的示例和描述以及标识多美化动作可以被应用于的分段的集合的另外的示例和描述。
例如,在一个实施例中,多基元美化器304可以被配置为:应用一个或多个多基元美化策略,以在多基元美化动作应用于的(一个或多个)无向图中,标识相邻分段的顶点集合。这样的策略可以基于集合中的分段的接近度(例如,在彼此的预定数量的点/像素的范围内)来标识用于美化的顶点集合,集合的分段具有相对于彼此的预定几何关系(例如,第一分段和第二分段基本上垂直,或基本上形成预定角度等),集合的分段具有靠近彼此的特定部分(例如,集合的第一分段的端部靠近集合的一个或多个其他分段),和/或履行另一策略。
在一个实施例中,多基元美化器304可以包括多几何基元对象美化策略神经网络318,其被配置为确定要应用的一种或多种特定类型的美化动作。下面提供对多几何基元对象美化策略神经网络318的进一步描述。
在步骤208中,多基元美化动作被应用于相邻分段,以生成经多基元美化的绘图数据。例如,多基元动作应用器322可以被配置为将多基元美化动作应用于在步骤206中标识的分段。多基元动作应用器322生成(或增强)美化的绘图笔画数据118,以包括如由所应用的多基元美化动作修改的分段。可以基于分段集合的特定配置来执行一个或多个多基元美化动作中的任何一个动作,该特定配置包括涉及多个分段的捕捉线动作(snap lineaction)、垂直动作和/或其他动作。多基元动作应用器322被配置为:以顺序的方式,在步骤206中标识的结构表示中的相邻分段的每个集合上,应用多基元美化策略,直到可应用的几何基元已经相对于彼此被美化。
在流程图200的完成之后,美化引擎300生成经美化的绘图笔画数据118,其包含经美化的多基元(以及任何经美化的单基元)。经美化的绘图笔画数据118被提供到绘图应用(例如,绘图应用102),以用于显示并且任选地进一步与用户交互。
关于流程图200和美化引擎300的另外的实施例参考图4-14B被描述如下。例如,如以上所描述的,原始数据处理器302可以以各种方式被配置为在原始绘图数据中标识分段。例如,图4示出了根据实施例的标识分段的方法的流程图400。流程图400可以由美化引擎108的原始数据处理器302执行,并且/或者可以在流程图200的步骤202期间被执行。注意,并非流程图400的所有步骤都需要在所有实施例中被执行,并且流程图400的步骤可以以备选顺序来执行。出于说明性目的,流程图400参考图3的美化引擎300被如下描述。
流程图400以步骤402开始。在步骤402中,在原始绘图数据上执行均匀距离采样,以产生均匀距离采样的绘图数据。例如,均匀距离采样器310可以被配置为在原始绘图笔画数据120上执行均匀距离采样。例如,均匀距离采样器310可以接收原始绘图笔画数据120。原始绘图笔画数据120可以具有用于绘图数据的任何标准或专有格式(例如,绘图交换格式(DXF)、DWG、微软 VSD、VDX等)。为了生成均匀距离采样的绘图数据,均匀距离采样器310可以沿着水平和垂直轴线递增地对原始绘图笔画数据120中的每个绘图笔画进行采样,从而以序列的方式产生一系列数据点,该一系列数据点中的相邻数据点之间的距离基本上相等(诸如图8B中示出和下面进一步描述的采样点814)。这样的均匀距离采样移除小变化并简化对数据中的分段的分析和标识。由均匀距离采样器310使用的采样间隔可以以任何方式来选择,这些方式包括作为设计选择的问题,尺寸被设计为提供足够的分辨率以避免错过分段。均匀距离采样器310基于均匀距离采样来生成均匀距离采样的绘图数据。
在步骤404中,所述均匀距离采样的绘图数据被检查以检测拐角点。例如,均匀距离采样的绘图数据可以由图3的拐角检测器312处理以检测拐角点。拐角检测器312生成多个拐角点(例如,如图8C的采样的数据点816之中示出的并且下面进一步描述的)。拐角检测器312可以实施用于检测拐角的一种或多种技术和/或参数,诸如通过确定相邻采样点的序列之间的角度等,并且将所确定的角度与指示拐角的一个或多个预定角度进行比较。拐角点被标识以对数据中的分段的稍后标识进行辅助,其中,拐角点表示分段的端部。
在步骤406中,基于所检测的拐角点来在均匀距离采样的绘图数据中标识分段。例如,图3的分段器314可以被配置为分析均匀采样的绘图数据和所标识的拐角点(在步骤402和404中确定的),以标识与指示线的一个或多个基本几何基元相对应的分段。例如,分段器314可以将该线标识为所标识的拐角点之间的数据点的连续序列和/或序列的不在拐角处结束的端点之间的数据点的连续序列。
在步骤406中,移除不正确标识的分段。例如,图3的分段合并器316可以被配置为:从通过分段器314在均匀距离采样的绘图数据中而被标识的分段中,移除任何不正确标识的分段。不正确标识的分段的示例可以包括被不正确标识为多个分开的分段的多个分段,该多个分开的分段实际上为单个分段。分段合并器316可以实施用于检测不正确标识的分段的一种或多种技术,诸如通过确定在所标识的分段之间的所标识的拐角处的角度,并且将所确定的角度与指示直线的一个或多个预定角度(例如,非常接近180度的角度)进行比较。在其他实施例中,其他技术可以用于标识不正确标识的分段。分段合并器316被配置为从在均匀距离采样的绘图数据中被标识的分段中移除不正确标识的分段,其在一些情况下可以包括将在均匀距离采样的绘图数据中被标识的两个(或更多个)分段组合成单个分段。
在一个实施例中,在根据流程图400已经在原始绘图数据中标识分段之后,可以由无向图构建器326构建一个或多个无向图。(一个或多个)无向图用于指引原始绘图数据中的分段的美化的阶数。(一个或多个)无向图包括一系列顶点,该一系列顶点中的每个表示一分段。(一个或多个)无向图包含关于哪些顶点表示彼此相邻的分段的信息。
例如,图5示出了根据实施例的构建无向图的方法的流程图500。在一个实施例中,流程图500可以由图3中示出的美化导引器332中的无向图构建器326执行,并且是流程图200(图2)的步骤204的示例。流程图500被如下描述。
流程图500以步骤502开始。在步骤502中,利用顶点指示分段的集合中的每个分段。例如,如以上参考步骤204(图2)所描述的,无向图构建器326可以被配置为将顶点分配给由原始数据处理器302生成的分段的集合中的每个分段。所指示的顶点用于标识分段并对相邻分段的美化(如下面参考图7更详细地描述的)进行排序。
在步骤504中,确定任何顶点是否指示与分段的集合中的另一分段相邻的分段。例如,无向图构建器332可以被配置为:针对任何顶点/分段的集合中的分段,确定表示集合中的相邻分段的任何其他顶点。无向图构建器332可以被配置为以任何方式确定相邻分段,包括通过确定靠近的分段(例如,通过坐标),确定相交的分段等。在一个实施例中,一对分段可以在它们相交时被认为相邻。在另一实施例中,一对分段可以在它们包含距离彼此的预定数量的像素的范围内的点时被认为相邻。该相邻信息保留原始绘图数据的全局结构。例如,为了确定两个分段是相邻的,可以首先指定建立相邻关系的一组阈值参数。在一个实施例中,如果从分段到它们的相交点的距离之和除以分段之间的最小路径距离小于指定间隔阈值,则分段可以被认为相邻。示例间隔阈值可以为0.45,但是其他阈值间隔值可以被选择。
在步骤506中,构建包含顶点的一个或多个无向图,该一个或多个无向图指示每个顶点是否表示与分段的集合中的另一分段相邻的分段。例如,无向图构建器326可以被配置为基于拓扑信息关系(包括所指示的分段(步骤502)和确定的相邻信息(步骤504))来构建(一个或多个)无向图。无向图可以具有任何适当的形式,包括将顶点(分段)表示为节点,其中连接顶点对的边缘被确定为与相邻分段相对应。无向图的示例在图10和图13中示出并在下面额外详细地描述。
所生成的无向图可以用于对原始绘图数据的美化进行构造和排序。例如,多基元美化可以在原始数据上来执行,如以上参考流程图200的步骤206和208所描述的。在另一实施例中,除了或代替执行多基元美化,单基元美化可以被执行。例如,图6是根据示例实施例的执行单基元美化的方法的流程图600。在一个实施例中,流程图600可以由图3中的单基元美化器306执行。流程图600被描述如下。
流程图600以步骤602开始。在步骤602中,在所标识的分段上执行单基元美化策略,以生成单基元美化动作。例如,单基元美化器306可以被配置为:在由无向图构建器326生成的(一个或多个)无向图中,标识单美化动作可以被应用于的单个顶点。单美化动作是应用到一个分段,使得单个分段通过单美化动作来改变,而不改变其他分段的美化动作。用于应用单美化动作的准则是可选择的并且可以取决于特定动作。
例如,在一个实施例中,单基元美化器306包括基于用户反馈来确定用于单个分段的美化动作的单几何基元对象美化策略神经网络320。单基元美化器306可以访问数值转换器328,以将所标识的分段转换成数值特征来对所标识的分段的美化过程进行辅助。
在步骤604中,单基元美化动作被应用于所标识的分段,以产生经单基元美化的绘图数据。例如,单基元动作应用器324可以被配置为:将单基元美化动作应用于由单基元美化器306标识的分段。单基元动作应用器324可以执行的单基元美化动作的示例包括拉直线动作、水平对齐动作和垂直对齐动作或无动作。参考图11A-11C更详细地描述单基元美化动作。
单基元美化和多基元美化可以在在原始绘图数据中可以被标识为适合于这样的美化的所有分段上执行。在一个实施例中,如果多个分段是诸如方形的对象或形状的一部分,那么这些美化技术可以围绕该形状被顺序地执行以将每对相邻分段(以及任选地分段的更大组)相对于彼此美化。
例如,图7示出了根据实施例的执行多基元美化的方法的流程图700。在一个实施例中,流程图700可以由图3中示出的多基元美化器304和多基元动作应用器322执行。流程图700被描述如下。
流程图700以步骤702开始。在步骤702中,在无向图中的至少两个相邻分段上执行多基元美化策略,以生成多基元美化动作,其包括捕捉线动作、垂直动作和无动作中的至少一个。例如,多基元美化器304可以被配置为在无向图中的一对相邻分段上执行多基元美化策略。参考图12A-12C更详细地描述多基元美化策略和动作。多基元美化策略指定在确定多基元美化动作被需要之前要满足的一个或多个参数和/或条件。例如,在示例捕捉线策略中,两个分段的接近度可以被检查以确定捕捉线动作是否合适。任何数量的多基元美化策略可以存在并且被应用,包括垂直策略等。
在步骤704中,所述多基元美化动作被应用于至少两个相邻分段,以产生经多基元美化的绘图数据。例如,多基元动作应用器322可以被配置为以如以上参考步骤208(图2)描述的类似方式将多基元美化动作应用到在步骤702中标识的顶点的集合中的分段。例如,如果多基元美化器304确定捕捉线动作适合于分段对,则该分段对的一个或两个分段可以被移动使得分段彼此接触(例如,第一分段的端部与第二分段的边接触)。
在步骤706中,阶数被分配给无向图中的每个顶点,并且每当在与该顶点相关联的分段上执行多基元美化策略时,该顶点的阶数被增加。例如,无向图构建器326可以被配置为:将阶数分配给顶点,并且每当在该顶点的分段上执行多基元美化策略时,增加该顶点的阶数。该阶数在美化过程中被用于确定在对美化动作的应用期间改变特定分段多少。具有更高阶数的顶点将倾向于已经在先前比具有更低阶数的顶点更多地被美化。因此,当应用美化动作时,具有更高阶数的顶点可以被更少地移动以防止过度地改变先前美化的顶点。步骤702、704和706的美化过程可以被重复,直到(一个或多个)无向图中的所有顶点已经相对于彼此被美化,因此全局地美化输入绘图数据。
如以上所描述的,原始输入绘图数据(例如,原始绘图笔画数据110)可以经受由原始数据处理器302(图3)进行的处理,以将输入笔画分解成诸如分段的低级几何基元。示例性过程包括五个顺序步骤,即,接收输入笔画,执行均匀距离采样(例如,图4的步骤402)、发现拐角点(例如,图4的步骤404)、分割(例如,图4的步骤406)、以及合并(例如,图4的步骤408)。原始数据处理器302基于处理来生成基本几何基元的集合。在原始输入绘图数据中标识基本几何基元(例如,线/分段、方形、矩形、三角形、其他多边形等),使得所标识的分段可以经受被用于改变原始输入绘图数据的美化动作,以更接近地贴近用户试图创建的基本几何基元。图8A-8E示出了根据实施例的具有根据流程图400(图4)执行的分段标识的示例的绘图屏幕。
在图8A中,绘图屏幕802图示了可以被表示在原始绘图笔画数据120中(例如,以数据点、矢量等的形式)的输入原始绘图笔画812。在示出的示例中,原始绘图笔画812包括可以被连接或可以不被连接的实线。线可以是直的或弯曲的。表示原始绘图笔画812的输入绘图笔画数据可以从远程源(例如,绘图应用102)接收,使得快速地实施分段标识过程所需要的编码和处理功率可以在云中。然而,在另一实施例中,对于分段标识过程需要的编码处理功率可以被提供在单个设备(例如,计算设备122)本地。对表示原始绘图笔画812的数据的接收可以例如通过图3的原始数据处理器302实施。
在图8B中,绘图屏幕804将在原始绘图笔画812上执行均匀距离采样图示为分段标识过程的一部分(图4的步骤402)。原始绘图笔画812被采样,使得所有采样点814沿着它们之间的轴线共享相似距离。结果是原始绘图笔画812的轮廓中的采样点814的系列。均匀距离采样804在原始绘图笔画812上执行,以移除对于分析不重要的小变化并且限制分析输入原始绘图笔画812所要求的处理功率。图3的均匀距离采样器310可以例如用于执行图8B的均匀距离采样。
在图8C中,绘图屏幕804图示了分段标识过程的发现拐角点过程(图4的步骤404)。拐角点检测允许基本几何基元分段的起点和终点被标识。均匀采样的数据点814中的拐角点816可以通过检查相邻点数据点之间的角度来标识。图3的拐角检测器312可以例如用于标识图8C中示出的拐角点816。
在图8D中,绘图屏幕804图示了分段标识过程的分割部分(图4的步骤406)。分割过程基于由检测到的拐角点816指示的间隔,将采样的数据点814分解成基本几何基元或分段818的序列。分割允许可以经受美化动作的分段818被标识出。图3的分段器314可以例如用于标识图8D中示出的分段818。
在图8E中,绘图屏幕810图示了分段标识过程的合并过程(图4的步骤408)。合并过程被应用以校正在分割期间对分段的任何错误标识。例如,单个分段820可能已经被错误地标识为(图8D中的)两个分离的分段822和824。使分段的错误标识最小化改进美化动作的结果,该美化动作稍后被应用到所标识的分段。图3的分段合并器316可以例如用于将第一分段822与第二分段824合并成图8E中示出的单个分段820。
如以上所描述的,在原始绘图数据中标识的分段可以被表示为顶点,以帮助构造美化过程的阶数和方式。例如,图9示出了根据示例实施例指示的具有分段和顶点的绘图屏幕900。在图9中,原始绘图数据中的每个标识的分段被表示为顶点。顶点标识分段号和表示与该分段相邻的哪些其他分段数目。因此,在图9中,分段由顶点(0,0)924标识,其中,第一个零指示其是标识的第一个顶点,并且第二个数指示该顶点被连接到组零(group zero)、所标识的第一组相邻分段中的分段。在图9中,基于由顶点表示的分段的相邻关系,分段902、904、906、908、918、920和922被标识为组零的一部分,而分段910、912、914和916被标识为组一的一部分。如本文中更详细地描述的,将原始绘图数据中标识的分段表示为顶点在构造对输入绘图数据的全局美化中是有用的。作为示例,图3的无向图构建器326可以用于将分段的表示创建作为图9中所示的顶点。
图10示出了根据实施例的无向图集合1000的示例。在图10中,图9中标识的分段由无向图集合1000表示为两个无向图G0 1024和G1 1026的集合。作为示例,图3的无向图构建器326可以用于创建无向图G0 1024和G1 1026。构建这样的图形表示旨在(i)保留各种局部分段(诸如低级几何基元)之间的全局信息;以及(ii)帮助确定所应用的美化动作方式和/或阶数。多个阶段可以被遵循以构建无向图。首先,分段距离矩阵被计算以确定哪些分段是相邻的,并且然后生成无向图集合G。分段距离用于确定两个分段是否相邻。在一个实施例中,到分段相交点的距离的总和被计算,并且然后总和除以分段对之间的最小路径距离。当且仅当所计算的结果不大于规定的阈值/预定的阈值时,两个顶点或分段被认为相邻。阈值是可变的并且取决于具体应用和用户偏好。在一个实施例中,规定阈值被设置为0.45。然而,本领域技术人员将认识到,不同值可以取决于情况而使用。
一旦相邻分段已经被标识,一个或多个无向图被构建,该一个或多个无向图将分段表示为顶点,该顶点被连接到表示相邻分段的其他顶点。图9的分段由图10中的无向图G01024和G1 1026表示。在无向图G0 1024中,顶点1002被连接到顶点1022和1004,因为由顶点1022和1004表示的分段与由顶点1002表示的分段相邻。相邻关系信息导致顶点1002、1004、1006、1008、1018、1020和1022被标识为属于无向图G0 1024,而顶点1010、1012、1014和1016被指示为属于无向图G1 1026。
图11A-11C示出了根据实施例的单基元美化动作的示例的绘图屏幕。示出的三个单几何基元美化动作是:(i)在图11A中的绘图屏幕1102上执行无动作;(ii)在图11B中的绘图屏幕1104上执行拉直线动作;以及(iii)在图11C中的绘图屏幕1106上执行水平和垂直动作。图11A-11C的单基元美化动作可以在流程图600(图6)中例如由图3的单基元美化器306和单基元动作应用器324执行。在一个实施例中,执行动作的决策可以由图3的单几何基元对象美化策略神经网络320做出。
如图11A中所示,无动作涉及使经美化的绘图笔画1108不变,以处于与原始绘图笔画相同的位置和形式。无动作是重要的,因为输入绘图笔画可以不要求美化。确定不执行单基元美化动作可以基于许多因素,诸如对在分段上的美化动作的先前执行或拒绝,或者未能满足针对肯定动作的指定准则的集合。
如图11B中所示,拉直线动作1104涉及利用拉直的绘图笔画1114来替代弯曲的原始绘图笔画1112。确定执行拉直线动作可以基于许多因素,诸如在原始绘图笔画1112中检测到的弯曲度,关于笔画1112的美化动作的先前执行或拒绝,或者关于拉直线动作建立的美化准则的集合的满意度。
如图11C中所示,水平和垂直动作涉及利用也被对齐到水平或垂直轴的拉直线绘图笔画1120替代弯曲的原始绘图笔画1116。确定执行水平和垂直动作基于许多因素,诸如在原始绘图笔画1116中检测到的弯曲度,关于笔画1116的美化动作的先前执行或拒绝,或者关于水平和垂直动作建立的美化准则的集合的满意度。
尽管单几何基元美化动作的以上示例被描述,但是本领域技术人员将认识到,额外的单基元美化动作可以被并入到各种实施例中。
图12A-12C示出了根据实施例的多基元美化动作的示例的绘图屏幕。示出的三个多几何基元美化动作是:(i)在图12A中的绘图屏幕1202上执行的无动作;(ii)在图12B中的绘图屏幕1204上执行的捕捉线动作;以及(iii)在图12C中的绘图屏幕1206上执行的垂直动作。图12A-12C的多基元美化动作可以在步骤702和704(图4)中例如由图3中示出的多基元美化器304和多基元动作应用器322执行。在一个实施例中,执行动作的决策可以由图3的多几何基元对象美化策略神经网络318做出。
如图12A中所示,无动作涉及使第一原始绘图笔画1208和第二原始绘图笔画1210处于它们原先的相同位置和形式。无动作是重要的,因为原始绘图笔画1208和1210可能不要求相对于彼此的美化或者已经在先前相对于彼此被美化。确定不执行多基元美化动作可以基于许多因素,诸如对美化动作的先前执行或拒绝,或者未能满足美化准则的集合。
如图12B中所示,捕捉线动作涉及使得第一原先的原始绘图笔画1212移动/移位或延伸如下的距离1216,该距离是使第一绘图笔画1212与第二绘图笔画1214接触所要求的。确定执行捕捉线动作基于许多因素,诸如绘图笔画1212到绘图笔画1214的接近度,关于笔画1212或1214的美化动作的先前执行或拒绝,或者关于捕捉线动作建立的美化准则的集合的满意度。
如图12C中所示,垂直动作涉及将第一原始绘图笔画1220重定向或移动到新位置1224,使得第一绘图笔画1220垂直于第二绘图笔画1222。确定执行垂直动作基于许多因素,诸如原始绘图笔画1220与原始绘图笔画1222之间检测到的角度,关于笔画1220或1222的美化动作的先前执行或拒绝,或者关于垂直动作建立的美化准则的集合的满意度。
尽管多几何基元美化动作的以上具体示例被描述,但是本领域技术人员将认识到,额外的多基元美化动作可以被并入到其他实施例中。
如以上参考图7所描述的,绘图数据可以相对于多个基元(包括一次两个分段)被美化。例如,图13示出了根据实施例的用于美化原始绘图数据的无向图集合1300。在图13的示例中,无向图集合1300包括第一无向图1302和第二无向图1304(基于图10的无向图G01024和G1 1026)。在第一无向图1302和第二无向图1304中,沿着每对相邻顶点在每个顶点上执行两个几何基元美化。当每个顶点和其相邻顶点被检查时,当前顶点及其相邻顶点分别被分配两个阶数。分配给输入顶点的阶数可以用于确定美化动作被应用的方式。例如,针对每个顶点和相邻顶点,可以有三种情况:(i)顶点和相邻顶点已经相对于彼此被美化;(ii)相邻顶点还没有相对于其他顶点被美化;以及(iii)相邻顶点已经相对于其他顶点被美化。如以下所描述的,这些情况可以用于确定美化如何被应用。
对于第一种情况,因为顶点已经相对于彼此被美化,所以在顶点上不执行美化动作以避免重复美化。对于第二种和第三种情况,美化动作可以被应用。可以由已经使用手绘草图作为原始数据和/或以另一方式训练的双重几何基元对象美化策略神经网络(例如,多几何基元对象美化策略神经网络318),来预测要应用的美化动作。对于情况(ii),因为相邻顶点还没有相对于其他顶点被美化,所以相比于相邻顶点,更高的阶数被分配给当前顶点,并且考虑该阶数信息,而应用所选择的美化动作。例如,当前顶点可以被分配阶数2并且其相邻顶点被分配阶数1。结果,具有更高阶数的顶点暗示该顶点已经相对于其他顶点被美化,并且一些其他顶点针对它们的美化关系依赖于该具有更高阶数的顶点。具有更高阶数的顶点在美化过程期间经历更少形状改变或位置改变。否则,一个顶点的美化可以对其他顶点(针对其他顶点的先前的美化,其他顶点依赖于该顶点)具有很大影响。
对于情况(iii),因为相邻顶点已经在之前相对于其他顶点被美化,所以相同阶数被分配给当前顶点和相邻顶点,并且以如下的方式来应用美化动作,该方式针对美化动作被应用到的两个顶点引起更少形状和位置变化。
在图13中,实线1306和1310对应于情况(ii),其中,顶点还没有相对于相邻顶点被美化,而虚线1308和1312对应于情况(iii),其中,顶点已经相对于另一顶点被美化。由于无向图,当在顶点v9 1316与v3 1318之间执行美化时,相比于顶点v3 1318,美化动作将更不可能移动顶点v9 1316,因为顶点v9 1316已经相对于顶点v10 1314被美化。
在绘图美化过程中,第一策略神经网络和第二策略神经网络可以用于预测期望的美化过程。例如,单几何基元对象美化策略神经网络320可以用于预测单几何基元美化动作,并且多几何基元对象美化策略神经网络318可以用于预测两个(或更多个)几何基元美化动作。因为第一策略神经网络和第二策略神经网络被使用在绘图美化过程中,所以深度增强学习可以用于连续地保持训练策略神经网络。客户的反馈可以被用作对神经网络的奖励并且当前训练的策略神经网络可以被认为是用于增强学习的预先训练的网络,并且惩罚值被分配给由用户拒绝的美化动作。
因此,在一个实施例中,表示由用户做出的绘图的原始绘图数据可以被自动美化。例如,图14A和图14B示出了根据实施例的分别示出原始绘图笔画1402和经美化的绘图笔画1404的示例绘图屏幕1400。在一个实施例中,经美化的绘图笔画1404可以通过图1的美化引擎108根据原始绘图笔画1402来生成。原始绘图笔画1402表示在电子画布(例如,图1A和图1B的画布106)上接收的原始绘图笔画数据。原始绘图笔画1402中的第一原始绘图笔画1406和第二原始绘图笔画1408是弯曲的,彼此分离,未对齐到水平轴和垂直轴并且相对于彼此不垂直。然而,在经美化的绘图笔画1404(其还可以被显示在画布106和/或其他显示屏幕上)中,第一几何基元1406和第二几何基元1408已经在许多方面改进或美化。第一,个体线1406和1408已经经受单基元美化动作以被拉直并且变得水平和垂直对齐。第二,个体线1406和1408已经被确定为相邻并且经受多基元美化动作,其中,它们被捕捉在一起并且变得垂直。通过在原始绘图笔画1402的其他分段上执行相似的美化动作,从原始绘图笔画1402产生全局美化的绘图笔画1404。
示例计算机系统实施方式
绘图应用102、服务器104、美化引擎108、计算设备122、美化引擎300、原始数据处理器302、多基元美化器304、单基元美化器306、均匀距离采样器310、拐角检测器312、分段器314、分段合并器316、多基元动作应用器322、单基元动作应用器324、无向图构建器326、数值转换器328、美化导引器332、流程图200、流程图400、流程图500、流程图600和/或流程图700可以以硬件或具有软件和/或固件的任何组合的硬件来实施,其包括被实施为被配置为在一个或多个处理器中运行并且被存储在计算机可读存储介质中或者被实施为硬件逻辑/电路装置(诸如被一起实施在片上系统(SoC)上)计算机程序代码。SoC可以包括包含处理器(例如,微控制器、微处理器、数字信号处理器(DSP)等)、存储器、一个或多个通信接口、和/或另外的电、路和/或嵌入式固件中的一个或多个,以执行其功能的集成电路芯片。
图15描绘了实施例可以被实施于其中的计算设备1500的示例性实施方式。例如,计算设备122、服务器104、和/或图2和4-7中描绘的任何或所有流程图的任何或所有步骤在固定或移动计算机实施例中可以均被实施在类似于计算设备1500的一个或多个计算设备(包括计算设备1500的一个或多个特征和/或备选特征)中。本文中提供的计算设备1500的描述出于图示的目的被提供,并且不旨在为限制性的。实施例可以被实施于另外类型的计算机系统中,如相关领域技术人员将知道的。
图15描绘了可以用于实施本文中描述的各种实施例的示例性的基于处理器的计算机系统1500。例如,系统1500可以用于实施如以上参考图3所描述的美化引擎的任何部件。系统1500还可以用于实施计算设备122、服务器104、和/或图2和4-7中描绘的任何或所有流程图的任何或所有步骤。本文中提供的系统1500的描述出于图示的目的被提供,并且不旨在为限制性的。实施例可以被实施于另外类型的计算机系统中,如相关领域技术人员将知道的。
如图15中所示,计算设备1500包括一个或多个处理器,被称为处理器电路1502、系统存储器1504、以及总线1506,该总线1506将包括系统存储器1504的各种系统部件耦合到处理器电路1502。处理器电路1502是如下的电路和/或光电路,其在一个或多个物理硬件电路设备元件和/或集成电路设备(半导体材料芯片或管芯)中实施为中央处理单元(CPU)、微控制器、微处理器和/或其他物理硬件处理器电路。处理器电路1502可以运行存储于计算机可读介质中的程序代码,诸如操作系统1530、应用程序1532、其他程序1534等的程序代码。总线1506表示若干类型的总线结构中的任何类型的总线结构中的一个或多个,包括存储器总线或存储器控制器、外围设备总线、加速图形端口以及使用各种总线架构中的任何的处理器或本地总线。系统存储器1504包括只读存储器(ROM)1508和随机存取存储器(RAM)1510。基本输入/输出系统1512(BIOS)被存储在ROM 1508中。
计算设备1500还具有以下驱动器中的一个或多个:用于从硬盘读取并写入硬盘的硬盘驱动器1514、用于从可移除磁盘1518读取或写入可移除磁盘的磁盘驱动器1516、以及用于从可移除光盘1522(诸如CD ROM、DVD ROM、或其他光学介质)读取或写入可移除光盘的光盘驱动器1520。硬盘驱动器1514、磁盘驱动器1516、以及光盘驱动器1520分别通过硬盘驱动器接口1524、磁盘驱动器接口1526以及光学驱动器接口1528被连接到总线1506。驱动器及其相关联的计算机可读介质提供对用于计算机的计算机可读指令、数据结构、程序模块和其他数据的非易失性存储。尽管硬盘、可移除磁盘和可移除光盘被描述,但是其他类型的基于硬件的计算机可读存储介质(诸如闪存卡、数字视频盘、RAM、ROM和其他硬件存储介质)可以用于存储数据。
许多程序模块或部件可以被存储在硬盘、磁盘、光盘、ROM或RAM上。这些程序模块包括操作系统1530、一个或多个应用程序1532、其他程序模块1534、以及程序数据1536。根据各种实施例,程序模块可以包括计算机程序逻辑,其可由处理单元1502运行以执行绘图应用102、美化引擎108、美化引擎300、绘图数据处理器302、多基元美化器304、单基元美化器306、均匀距离采样器310、拐角检测器312、分段器314、分段合并器316、多基元动作应用器322、单基元动作应用器324、无向图构建器326、数值转换器328、美化导引器332、流程图200、流程图400、流程图500、流程图600和/或流程图700(包括流程图200、400、500、600和/或700的任何步骤)的任何功能和特征或所有功能和特征。
用户可以通过诸如键盘1538和指点设备1540的输入设备将命令和信息输入到计算设备1500中。其他输入设备(未示出)可以包括麦克风、操纵杆、游戏板、卫星碟、扫描仪、触摸屏和/或触摸板、接收语音输入的语音识别系统、接收手势输入的手势识别系统等。这些和其他输入设备通常通过被耦合到总线1506的串行端口接口1542被连接到处理器电路1502,但是可以通过诸如并行端口、游戏端口、或通用串行总线(USB)的其他接口连接。
显示屏幕1544还经由接口(诸如视频适配器1546)被连接到总线1506。显示屏幕1544可以在计算设备1500外部或被包含于该计算设备中。显示屏幕1544可以显示信息,以及是用于(例如,通过触摸、手指手势、虚拟键盘等)接收用户命令和/或其他信息的用户接口。除了显示屏幕1544,计算设备1500可以包括诸如扬声器和打印机的其他外围输出设备(未示出)。显示屏幕1544和/或任何其他外围输出设备(未示出)可以用于显示器130、显示器330和/或本文中描述的任何另外的实施例。
计算设备1500通过适配器或网络接口1550、调制解调器1552、或用于通过网络建立通信的其他装置被连接到网络1548(例如,互联网)。调制解调器1552(其可以是内部的或外部的)可以经由如图15中所示的串行端口接口1542被连接到总线1506,或者可以使用另一接口类型(包括并行接口)被连接到总线1506。
如本文中所使用的,术语“计算机程序介质”、“计算机可读介质”、以及“计算机可读存储介质”用于指代物理硬件介质,诸如与硬盘驱动器1514相关联的硬盘、可移除磁盘1518、可移除光盘1522、其他物理硬件介质,诸如RAM、ROM、闪存卡、数字视频盘、压缩盘、MEM、基于纳米技术的存储设备以及另外类型的物理/有形硬件存储介质。这样的计算机可读存储介质与通信介质不同且不重叠(不包括通信介质)。通信介质将计算机可读指令、数据结构、程序模块、或其他数据实现在诸如载波的经调制的数据信号中。术语“经调制的数据信号”意指具有如下的信号,该信号的特性中的一个或多个以对信号中的信息进行编码的方式被设置或被改变的信号。通过举例而非限制的方式,通信介质包括无线介质(诸如声学、RF、红外和其他无线介质)以及有线介质。实施例还涉及这样的通信介质,其与涉及计算机可读存储介质的实施例分开且不重叠。
如以上所指出的,计算机程序和模块(包括应用程序1532和其他程序1534)可以被存储在硬盘、磁盘、光盘、ROM、RAM或其他硬件存储介质上。还可以经由网络接口1550、串行端口接口1542、或任何其他接口类型来接收这样的计算机程序。这样的计算机程序当由应用运行或加载时使得计算设备1500能够实施本文中描述的实施例的特征。因此,这样的计算机程序表示计算设备1500的控制器。
实施例还涉及包括存储在任何计算机可读介质上的计算机代码或指令的计算机程序产品。这样的计算机程序产品包括硬盘驱动器、光盘驱动器、存储器器件封装、便携式记忆棒、存储卡、以及其他类型的物理存储硬件。
额外的示例实施例
在一个实施例中,一种计算设备包括被配置为美化原始绘图数据的绘图美化引擎。所述绘图美化引擎包括:原始数据处理器,其被配置为接收所述原始绘图数据并在所述原始绘图数据中标识分段的集合。美化导引器构建所述原始绘图数据中标识的所述分段的集合的结构表示,该结构表示指定所述分段的集合中的分段之间的拓扑关系。多基元美化器在所述结构表示中标识多基元美化动作被应用于的相邻分段的至少一个集合。多基元动作应用器将所述多基元美化动作应用于所述相邻分段以生成经美化的原始绘图数据。
在一个实施例中,所述美化导引器包括无向图构建器,并且所述结构表示包括根据所述分段的集而合构建的一个或多个无向图,所述一个或多个无向图将所述集合中的每个分段指示为顶点,并且针对每个顶点指示表示所述集合中的相邻分段的任何其他顶点。
在一个实施例中,所述多基元美化器被配置为:应用至少一个多基元美化策略,以在所述结构表示中标识所述多基元美化动作被应用于的所述相邻分段的至少一个集合。
在一个实施例中,所述多基元美化器被配置为:在所述一个或多个无向图中的每个顶点和任何相邻顶点上,应用所述多基元美化策略。
在一个实施例中,所述绘图美化引擎包括:单基元美化器,其被配置为在所述结构表示中标识单基元美化动作被应用于的至少一个分段。单基元动作应用器将所述单基元美化动作应用于所标识的至少一个分段,以进一步生成所述经美化的原始绘图数据。
在一个实施例中,所述单基元美化动作包括拉直线动作、水平对齐动作或垂直对齐动作中的至少一个。
在一个实施例中,所述单基元美化动作包括:数值转换器,其被配置为将所标识的分段转换为数值特征。
在一个实施例中,所述多基元美化动作包括捕捉线动作或垂直动作中的至少一个。
在一个实施例中,所述多基元美化器包括多对象美化策略神经网络。
所述原始在一个实施例中,所述原始数据处理器包括:采样器,其被配置为在所述原始绘图数据上执行均匀距离采样并产生均匀距离采样的绘图数据;拐角检测器,其被配置为检查所述均匀距离采样的绘图数据并检测拐角点;分段器,其被配置为基于所检测的拐角点来在所述均匀距离采样的绘图数据中标识分段;以及分段合并器,其被配置为移除任何不正确标识的分段。
在一个实施例中,一种方法包括在原始绘图数据中标识分段的集合。所述原始绘图数据中标识的所述分段的集合的结构表示被创建,该结构表示指定所述分段的集合中的分段之间的拓扑关系。所述结构表示中的多基元美化动作应用于的相邻分段的至少一个集合被标识。所述多基元美化动作被应用于所述相邻分段以生成经多基元美化的绘图数据。
在一个实施例中,构建在所述原始绘图数据中标识的所述分段的集合的指定所述分段的集合中的分段之间的拓扑关系的结构表示还包括:利用顶点来指示所述分段的集合中的每个分段。针对每个顶点,表示与所述集合中的所述顶点相邻的分段的任何其他顶点被指示。包含所述顶点的至少一个无向图被构建,该至少一个无向图针对每个顶点指示表示所述集合中的相邻分段的任何其他顶点。
在一个实施例中,阶数被分配给所述至少一个无向图的顶点。至少一个多基元美化策略基于所分配的阶数被应用于所述至少一个无向图中的顶点,以在所述至少一个无向图中标识所述多基元美化动作被应用于的所述相邻分段的至少一个集合。
在一个实施例中,在所述结构表示中标识单基元美化动作被应用于的至少一个分段。单基元美化动作被应用于所标识的至少一个分段,以进一步生成所述经美化的原始绘图数据。
在一个实施例中,将多基元美化动作应用于所述相邻分段以生成经美化的原始绘图数据包括将捕捉线动作或垂直动作中的至少一个应用于所述相邻分段。
在一个实施例中,标识原始绘图数据中的分段的集合包括在所述原始绘图数据上执行均匀距离采样以产生均匀距离采样的绘图数据。所述均匀距离采样的绘图数据被检查以检测拐角点。至少基于所检测的拐角点而在所述均匀距离采样的绘图数据中标识分段。任何不正确标识的分段从所标识的分段被移除。
在一个实施例中,一种系统包括至少一个处理器电路和至少一个存储器,所述至少一个存储器存储被配置为由至少一个处理器电路运行以执行操作的程序代码。所述操作包括在原始绘图数据中标识分段的集合。所述原始绘图数据中标识的所述分段的集合的结构表示被构建,该结构表示指定所述分段的集合中的分段之间的拓扑关系。所述结构表示中的多基元美化动作应用于的相邻分段的至少一个集合被标识。所述多基元美化动作被应用于所述相邻分段以生成经多基元美化的绘图数据。
在一个实施例中,构建所述原始绘图数据中标识的所述分段的集合的结构表示(该结构表示指定所述分段的集合中的分段之间的拓扑关系)的操作还包括将所述分段的集合中的每个分段指示为顶点。针对每个顶点,表示与所述集合中的所述顶点相邻的分段的任何其他顶点被指示。包含所述顶点的一个或多个无向图被构建,该一个或多个无向图针对每个顶点指示表示所述集合中的相邻分段的任何其他顶点。
在一个实施例中,所述操作还包括:在所述一个或多个无向图中标识单基元美化动作被应用于的至少一个分段;以及将单基元美化动作应用于至少一个标识的分段以进一步生成所述经美化的原始绘图数据。
在一个实施例中,所述原始绘图数据中标识分段的集合包括:在所述原始绘图数据上执行均匀距离采样以产生均匀距离采样的绘图数据;检测所述均匀距离采样的绘图数据中的拐角点;基于所检测的拐角点来在所述均匀距离采样的绘图数据中标识分段;以及从所标识的分段移除任何不正确标识的分段。
结论
尽管以上已经描述了所公开的主题的各种实施例,但是应当理解,它们仅仅通过举例而非限制的方式被呈现。相关领域技术人员将理解,可以在其中进行形式和细节上的各种改变而不脱离随附权利要求中限定的实施例的精神和范围。因此,所公开的主题的宽度和范围不应当由上述示例性实施例中的任何限制,而是应当仅仅根据随附权利要求及它们的等效方案来限定。

Claims (20)

1.一种计算设备,包括:
绘图美化引擎,其被配置为美化原始绘图数据,所述绘图美化引擎包括:
原始数据处理器,其被配置为接收所述原始绘图数据并在所述原始绘图数据中标识分段的集合;
美化导引器,其被配置为构建在所述原始绘图数据中标识的所述分段的集合的结构表示,所述结构表示指定所述分段的集合中的分段之间的拓扑关系,所述结构表示包括一个或多个无向图,其中所述一个或多个无向图的每个顶点与所述分段的集合中的一分段相对应,并且其中每个顶点被连接到每个其他顶点,所述每个其他顶点与所述分段的集合中的一相邻的分段相对应;
多基元美化器,其被配置为在所述结构表示中标识多基元美化动作被应用于的相邻分段的至少一个集合;以及
多基元动作应用器,其被配置为将所述多基元美化动作应用于所述相邻分段以生成经美化的原始绘图数据。
2.根据权利要求1所述的计算设备,其中,所述无向图包括一顶点,该顶点具有至少三个相邻顶点。
3.根据权利要求2所述的计算设备,其中,所述多基元美化器被配置为:在所述一个或多个无向图中的每个顶点和任何相邻顶点上,应用所述多基元美化策略。
4.根据权利要求1所述的计算设备,其中,所述多基元美化器被配置为:应用至少一个多基元美化策略,以在所述结构表示中标识所述多基元美化动作被应用于的所述相邻分段的至少一个集合。
5.根据权利要求1所述的计算设备,其中所述多基元动作应用器还被配置为:每当在相应分段上执行多基元美化动作时,增加所述相邻分段的至少一个集合中的每个分段的阶数。
6.根据权利要求5所述的计算设备,其中所述多基元动作应用器还被配置为:向所述相邻分段应用所述多基元美化动作,使得至少部分地基于与每个分段相对应的阶数,确定与该分段相邻的每个分段的改变量。
7.根据权利要求5所述的计算设备,其中所述多基元美化动作包括在接近点使得所述相邻分段的至少一个集合中的第一分段和第二分段接合。
8.根据权利要求7所述的计算设备,其中接合包括:使得所述第一分段、所述第二分段或者所述第一分段和所述第二分段两者一起移动、移位或延伸如下的距离,所述距离是使得所述第一分段和所述第二分段在所述接近点接触所要求的。
9.根据权利要求8所述的计算设备,其中接合还包括:至少部分地基于与每个分段相对应的阶数的比较,确定使得所述第一分段和所述第二分段移动、移位或延伸多少距离,其中具有较大阶数的分段被确定为移动、移位或延伸比其他分段少的距离。
10.一种计算机实现的方法,包括:
在原始绘图数据中标识分段的集合;
构建在所述原始绘图数据中标识的所述分段的集合的结构表示,所述结构表示指定所述分段的集合中的分段之间的拓扑关系,所述结构表示包括一个或多个无向图,其中所述一个或多个无向图的每个顶点与所述分段的集合中的一分段相对应,并且其中每个顶点被连接到每个其他顶点,所述每个其他顶点与所述分段的集合中的一相邻的分段相对应;
在所述结构表示中标识多基元美化动作被应用于的相邻分段的至少一个集合;以及
将所述多基元美化动作应用于所述相邻分段以生成经多基元美化的绘图数据。
11.根据权利要求10所述的方法,其中所述无向图包括一顶点,该顶点具有至少三个相邻顶点。
12.根据权利要求11所述的方法,还包括:
将阶数分配给所述至少一个无向图的顶点;以及
基于所分配的阶数,将至少一个多基元美化策略应用于所述至少一个无向图的顶点,以在所述至少一个无向图中标识所述多基元美化动作被应用于的所述相邻分段的至少一个集合。
13.根据权利要求10所述的方法,其中在所述结构表示中标识多基元美化动作被应用于的相邻分段的至少一个集合包括:
针对所述一个或多个无向图中的每个顶点,并且针对与该顶点相邻的作为相邻顶点的每个顶点,至少部分地基于与所述相邻顶点相对应的分段以及与邻近所述相邻顶点的一个或多个顶点相对应的分段是否共同地经受之前所应用的多基元美化动作,向该顶点和所述相邻顶点分配阶数;以及
确定与该顶点相对应的分段和与所述相邻顶点相对应的分段是否共同地经受之前所应用的多基元美化动作;以及
其中将所述多基元美化动作应用于所述相邻分段包括:
当确定与该顶点相对应的分段和与所述相邻顶点相对应的分段没有共同地经受之前所应用的多基元美化动作,至少部分地基于被分配给该顶点和所述相邻顶点的阶数,而向与该顶点相对应的分段和与所述相邻顶点相对应的分段应用所述多基元美化动作。
14.根据权利要求13所述的方法,其中在与所述相邻顶点相对应的所述分段以及与邻近所述相邻顶点的一个或多个顶点相对应的所述分段没有共同地经受之前所应用的多基元美化动作的情况下,分配给该顶点的阶数高于分配给所述相邻顶点的阶数。
15.根据权利要求13所述的方法,其中在与所述相邻顶点相对应的所述分段以及与邻近所述相邻顶点的一个或多个顶点相对应的所述分段共同地经受之前所应用的多基元美化动作的情况下,分配给该顶点的阶数与分配给所述相邻顶点的阶数相同。
16.一种计算机系统,包括:
至少一个处理器电路,以及
至少一个存储器,存储被配置为由所述至少一个处理器电路实施以执行操作的程序代码,所述操作包括:
在原始绘图数据中标识分段的集合;
构建在所述原始绘图数据中标识的所述分段的集合的结构表示,所述结构表示指定所述分段的集合中的分段之间的拓扑关系,所述结构表示包括一个或多个无向图,其中所述一个或多个无向图的每个顶点与所述分段的集合中的一分段相对应,并且其中每个顶点被连接到每个其他顶点,所述每个其他顶点与所述分段的集合中的一相邻的分段相对应;
在所述结构表示中标识多基元美化动作被应用于的相邻分段的至少一个集合;以及
将所述多基元美化动作应用于所述相邻分段以生成经多基元美化的绘图数据。
17.根据权利要求16所述的系统,其中所述无向图包括一顶点,该顶点具有至少三个相邻顶点。
18.根据权利要求16所述的系统,其中在所述结构表示中标识多基元美化动作被应用于的相邻分段的至少一个集合的操作包括:
针对所述一个或多个无向图中的每个顶点,并且针对与该顶点相邻的作为相邻顶点的每个顶点,至少部分地基于与所述相邻顶点相对应的分段以及与邻近所述相邻顶点的一个或多个顶点相对应的分段是否共同地经受之前所应用的多基元美化动作,向该顶点和所述相邻顶点分配阶数;以及
确定与该顶点相对应的分段和与所述相邻顶点相对应的分段是否共同地经受之前所应用的多基元美化动作;以及
其中将所述多基元美化动作应用于所述相邻分段的操作包括:
当确定与该顶点相对应的分段和与所述相邻顶点相对应的分段没有共同地经受之前所应用的多基元美化动作,至少部分地基于被分配给该顶点和所述相邻顶点的阶数,而向与该顶点相对应的分段和与所述相邻顶点相对应的分段应用所述多基元美化动作。
19.根据权利要求18所述的系统,其中在与所述相邻顶点相对应的所述分段以及与邻近所述相邻顶点的一个或多个顶点相对应的所述分段没有共同地经受之前所应用的多基元美化动作的情况下,分配给该顶点的阶数高于分配给所述相邻顶点的阶数。
20.根据权利要求19所述的系统,其中在与所述相邻顶点相对应的所述分段以及与邻近所述相邻顶点的一个或多个顶点相对应的所述分段共同地经受之前所应用的多基元美化动作的情况下,分配给该顶点的阶数与分配给所述相邻顶点的阶数相同。
CN201880082046.9A 2017-12-19 2018-11-29 用于绘图美化的系统和方法 Active CN111492407B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/846,963 2017-12-19
US15/846,963 US10733710B2 (en) 2017-12-19 2017-12-19 System and method for drawing beautification
PCT/US2018/062933 WO2019125716A1 (en) 2017-12-19 2018-11-29 System and method for drawing beautification

Publications (2)

Publication Number Publication Date
CN111492407A CN111492407A (zh) 2020-08-04
CN111492407B true CN111492407B (zh) 2023-09-12

Family

ID=64665420

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880082046.9A Active CN111492407B (zh) 2017-12-19 2018-11-29 用于绘图美化的系统和方法

Country Status (4)

Country Link
US (1) US10733710B2 (zh)
EP (1) EP3711027B1 (zh)
CN (1) CN111492407B (zh)
WO (1) WO2019125716A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10521700B2 (en) * 2017-12-14 2019-12-31 Honda Motor Co., Ltd. Methods and systems for converting a line drawing to a rendered image
US11605187B1 (en) * 2020-08-18 2023-03-14 Corel Corporation Drawing function identification in graphics applications
US11886768B2 (en) * 2022-04-29 2024-01-30 Adobe Inc. Real time generative audio for brush and canvas interaction in digital drawing
US20240071118A1 (en) * 2022-08-31 2024-02-29 Microsoft Technology Licensing, Llc Intelligent shape prediction and autocompletion for digital ink

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104834459A (zh) * 2014-02-07 2015-08-12 奥多比公司 使用特征检测和语义标注来提供绘图辅助
CN106897143A (zh) * 2015-12-21 2017-06-27 想象技术有限公司 对图形处理系统中的处理引擎的区片分配

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4058849A (en) * 1975-09-22 1977-11-15 International Business Machines Corporation System for converting a rough sketch to a finished drawing
JP2559792B2 (ja) * 1988-02-17 1996-12-04 日産自動車株式会社 Cadスケッチ入力作図方法
EP1321866A4 (en) * 2000-09-18 2007-01-10 Hitachi Ltd METHOD FOR DESCRIBING SOLID-PARTICULAR FORMS AND DEVICE THEREFOR AND SYSTEM FOR SUPPORTING THE DESIGN OF SOLID-PARTICULAR FORMS THEREWITH
US6999907B2 (en) * 2000-09-19 2006-02-14 Draftlogic System, Inc. System and process for client-driven automated computer-aided drafting
US20020113784A1 (en) * 2000-12-29 2002-08-22 Feilmeier Michael Leon Portable computer aided design apparatus and method
JP4096161B2 (ja) * 2002-04-24 2008-06-04 株式会社日立製作所 形状データ作成装置
US7426302B2 (en) * 2003-11-28 2008-09-16 John Amico System and method for digitizing a pattern
US20060227140A1 (en) * 2005-03-21 2006-10-12 Karthik Ramani Sketch beautification
US7880737B2 (en) * 2005-03-22 2011-02-01 Vijayvardhan Elchuri Graphical method and system for making drawings directly in three-dimensions on a computer monitor or other display device
US8259101B2 (en) * 2006-06-07 2012-09-04 Carnegie Mellon University Sketch-based design system, apparatus, and method for the construction and modification of three-dimensional geometry
US20100171754A1 (en) * 2009-01-07 2010-07-08 Microsoft Corporation Converting digital ink to shapes and text
US8718375B2 (en) * 2010-12-03 2014-05-06 Massachusetts Institute Of Technology Sketch recognition system
US9098191B2 (en) * 2012-01-24 2015-08-04 Microsoft Corporation Sketch beautification and completion of partial structured-drawings
US20140313216A1 (en) * 2013-04-18 2014-10-23 Baldur Andrew Steingrimsson Recognition and Representation of Image Sketches
US10997754B2 (en) * 2015-05-27 2021-05-04 Adobe Inc. Freeform drawing beautification

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104834459A (zh) * 2014-02-07 2015-08-12 奥多比公司 使用特征检测和语义标注来提供绘图辅助
CN106897143A (zh) * 2015-12-21 2017-06-27 想象技术有限公司 对图形处理系统中的处理引擎的区片分配

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Sundar Murugappan等.Feasy:a sketch-based interface integrating structural analysis in early design.《Proceedings of the ASME 2009 International Design Engineering Technical Conferences &amp Computers and Information in Engineering Conference IDETC/CIE 2009》.2009,1-10. *

Also Published As

Publication number Publication date
CN111492407A (zh) 2020-08-04
US10733710B2 (en) 2020-08-04
WO2019125716A1 (en) 2019-06-27
EP3711027B1 (en) 2023-07-19
EP3711027A1 (en) 2020-09-23
US20190188831A1 (en) 2019-06-20

Similar Documents

Publication Publication Date Title
CN111492407B (zh) 用于绘图美化的系统和方法
RU2711029C2 (ru) Классификация касаний
TWI821671B (zh) 一種文本區域的定位方法及裝置
US9904847B2 (en) System for recognizing multiple object input and method and product for same
US20130050076A1 (en) Method of recognizing a control command based on finger motion and mobile device using the same
KR102257172B1 (ko) 기하학적 형상들을 인식하는 시스템 및 방법
KR20140079262A (ko) 이미지 검색 방법, 실시간 그리기 프롬프팅 방법 및 그 장치
CN113780098B (zh) 文字识别方法、装置、电子设备以及存储介质
KR101559502B1 (ko) 실시간 손 포즈 인식을 통한 비접촉식 입력 인터페이스 방법 및 기록 매체
JP2018206252A (ja) 画像処理システム、評価モデル構築方法、画像処理方法及びプログラム
CN108932533A (zh) 识别模型构建方法及装置、字符识别方法及装置
Joo et al. Real‐Time Depth‐Based Hand Detection and Tracking
JP2022168167A (ja) 画像処理方法、装置、電子機器及び記憶媒体
WO2024159943A1 (zh) 图纸表格区域检测方法、装置、存储介质和电子设备
CN115589786A (zh) 手绘图形识别方法、装置和系统,以及计算机可读存储介质
CN112784732A (zh) 地物类型变化的识别、模型训练方法、装置、设备及介质
CN110850982B (zh) 基于ar的人机交互学习方法、系统、设备及存储介质
WO2020147258A1 (zh) 一种远程桌面操作方法、装置、可读存储介质及终端设备
CN115359308A (zh) 模型训练、难例识别方法、装置、设备、存储介质及程序
CN114445825A (zh) 文字检测方法、装置、电子设备和存储介质
CN116824609A (zh) 文档版式检测方法、装置和电子设备
CN116311526A (zh) 图像区域确定方法、装置、电子设备及存储介质
CN111968030B (zh) 信息生成方法、装置、电子设备和计算机可读介质
CN115359502A (zh) 一种图像处理方法、装置、设备以及存储介质
TW201248456A (en) Identifying contacts and contact attributes in touch sensor data using spatial and temporal features

Legal Events

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