CN114118009A - 利用机器学习根据可视相似度来组织和表示字体集合 - Google Patents
利用机器学习根据可视相似度来组织和表示字体集合 Download PDFInfo
- Publication number
- CN114118009A CN114118009A CN202110635549.8A CN202110635549A CN114118009A CN 114118009 A CN114118009 A CN 114118009A CN 202110635549 A CN202110635549 A CN 202110635549A CN 114118009 A CN114118009 A CN 114118009A
- Authority
- CN
- China
- Prior art keywords
- font
- map
- fonts
- mapping
- visual
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/103—Formatting, i.e. changing of presentation of documents
- G06F40/109—Font handling; Temporal or kinetic typography
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/213—Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
- G06F18/2137—Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods based on criteria of topology preservation, e.g. multidimensional scaling or self-organising maps
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/0482—Interaction with lists of selectable items, e.g. menus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/44—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/74—Image or video pattern matching; Proximity measures in feature spaces
- G06V10/75—Organisation 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/751—Comparing pixel values or logical combinations thereof, or feature values having positional relevance, e.g. template matching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/24—Character recognition characterised by the processing or recognition method
- G06V30/242—Division of the character sequences into groups prior to recognition; Selection of dictionaries
- G06V30/244—Division of the character sequences into groups prior to recognition; Selection of dictionaries using graphical properties, e.g. alphabet type or font
- G06V30/245—Font recognition
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Multimedia (AREA)
- Biomedical Technology (AREA)
- Mathematical Physics (AREA)
- Molecular Biology (AREA)
- Biophysics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
本公开的实施例涉及利用机器学习根据可视相似度来组织和表示字体集合。本公开涉及系统、方法和非瞬态计算机可读介质,用于利用可视特征分类模型来生成字体映射,该字体映射基于可视相似度来有效且准确地组织字体。例如,所公开系统可以从不同样式的字体中提取特征,并且利用自组织映射(或其他可视特征分类模型)来将所提取的字体特征映射到字体映射内的位置。进一步地,通过将边界区域内的一些字体映射到更高分辨率字体映射内的位置,所公开系统还可以放大字体映射的区域。附加地,所公开系统可以导航字体映射,以标识视觉上类似的字体(例如阈值相似度内的字体)。
Description
技术领域
本公开的实施例涉及数字内容编辑。
背景技术
在数字内容编辑领域,字体(font)管理系统已经开发出各种呈现或选择机制,以供设计者或其他用户选择字体。例如,字体管理系统有时会使用各种字体来呈现示例文本,以向设计者示出字体的外观,而有时会呈现各种字体的描述或分组(grouping)。尽管常规字体管理系统提供了一些工具来帮助字体选择,但是这种常规系统仍然展现出许多技术缺点。
例如,许多常规字体管理系统使用严格且有限的计算模型来管理和呈现字体。在一些这样的情况下,通过按字母顺序呈现字体或根据广泛且刚性的字样(typeface)类别呈现字体,诸如通过根据常规标签或关键词将衬线或哥特式字样分组在一起,常规系统组织和呈现顺序列表或分组中的字体。由于其呈现字体的方法有限,常规系统难以适应设计者的期望审美观,也难以为基于字体审美观的更细化字体选择提供指导。
至少部分地由于它们在组织或呈现字体方面的局限性,常规字体管理系统还低效地呈现了用于在字体之间导航的图形用户界面,并且低效地消耗了计算资源。例如,常规系统在处理用户交互时低效地利用处理时间、处理能力和存储器,以在选择按字母顺序或通过字样分组排序的字体时,访问期望的数据和/或功能性。实际上,常规系统可能需要过多的用户交互,才能导航到字体并在它们被呈现的列表内选择字体。例如,对于用户使用常规系统来选择字体,用户必须要么知道要录入的字体名称作为搜索查询,要么必须滚动很长的字体列表以找到具有期望可视外观的字体。当字体的数量变大时,如许多常规字体管理系统的情况那样,这种滚动可能特别冗长。
因此,关于常规字体管理系统有多个缺点。
发明内容
本公开描述了方法、非瞬态计算机可读介质和系统的一个或多个实施例,其提供益处并解决本领域中的前述或其他问题中的一个或多个。特别地,所公开的系统利用可视特征分类模型来生成字体映射(font map),该字体映射基于可视相似度来有效且准确地组织字体。例如,所公开系统可以从不同样式(style)的字体中提取特征,并且利用自组织映射(或其他可视特征分类模型)来将所提取的字体特征映射到字体映射内的位置。这种字体映射可以是二维的或三维的(或n维的),并且具有基于由字体特征指示的可视属性被映射到位置的字体。在一些情况下,通过将边界区域内的一些字体映射到更高分辨率字体映射内的位置,所公开系统还放大字体映射的区域。在生成字体映射或调整字体映射的大小之后,所公开系统还可以导航字体映射,以标识视觉上类似的字体(例如阈值相似度内的字体)。通过使用可视特征分类模型生成字体映射,所公开的系统可以有效且准确地组织视觉上连贯的映射中的字体,以增强图形用户界面中的字体标识和呈现。
本公开的一个或多个实施例的附加特征和优点是在以下描述中概述的,并且通过描述将部分地变得明显,或者可以通过实践这种示例实施例来学习。
附图说明
本公开通过参照附图以附加的特异性和细节来描述本发明的一个或多个实施例。以下段落简要描述了这些附图,在附图中:
图1图示了示例系统环境,其中包括字体映射创建系统和字体映射消耗系统的字体映射系统可以根据一个或多个实施例操作;
图2图示了根据一个或多个实施例的生成字体映射的字体映射创建系统的概述;
图3图示了根据一个或多个实施例的字体映射的可视描绘;
图4A至图4B图示了根据一个或多个实施例的热图,该热图描绘了在字体映射中具有特定可视特性的字体的密度;
图5图示了根据一个或多个实施例的字体映射消耗系统,其跟随梯度遍历字体映射;
图6图示了根据一个或多个实施例的字体映射消耗系统,其使用最近邻遍历字体映射;
图7图示了根据一个或多个实施例的更高分辨率字体映射;
图8图示了根据一个或多个实施例的具有固定边界条件的更高分辨率字体映射;
图9图示了根据一个或多个实施例的用于字体映射创建系统训练或调谐可视特征分类模型的图;
图10图示了根据一个或多个实施例的使用替代的可视特征分类模型生成的三维的自由间隔的字体映射;
图11图示了根据一个或多个实施例的字体映射系统的示意图;
图12图示了根据一个或多个实施例的一系列动作的流程图,用于基于可视相似度生成字体映射来提供一个或多个字体的可视描绘;以及
图13图示了根据一个或多个实施例的示例计算设备的框图。
具体实施方式
本公开描述了字体映射系统的一个或多个实施例,该字体映射系统通过利用可视特征分类模型基于可视相似度来组织和呈现字体。例如,在一些情况下,字体映射系统利用自组织映射(或其他可视特征分类模型)基于与字体相关联的提取特征来确定字体之间的可视相似度。字体映射系统还根据可视相似度在字体映射内布置字体,从而在字体映射的附近区域中将视觉上类似的字体分组在一起。例如,在某些实现中,字体映射创建系统利用自组织映射根据可视相似度来布置字体。在一些实施例中,通过根据一个或多个遍历规则遍历字体映射,字体映射系统选择在可视描绘内包括或推荐的(多个)字体。在一些情况下,字体映射系统会生成字体映射和字体的可视描绘,作为用于透明更新和/或软件产品集成的离线过程。
在本文描述的一些实施例中,字体映射系统执行与一个或多个子系统相关联的动作或功能,诸如字体映射创建系统和字体映射消耗系统。实际上,在一些情况下,通过利用可视特征分类模型(例如自组织映射),字体映射系统执行与字体映射创建系统相关联的动作,以通过根据可视相似度布置字体来生成字体映射。在一些实施例中,字体映射系统还执行与字体映射消耗系统相关联的动作,该字体映射消耗系统生成(或呈现)字体映射的可视描绘,并接收与字体映射的用户交互(例如字体选择)的指示。尽管本公开通常以字体映射创建系统和字体映射消耗系统作为子系统来描述动作和特征,但是所公开的字体映射系统同样地执行这种动作,并表现出本文描述的这种特征。
如所提及的,在一些实施例中,通过利用可视特征分类模型,字体映射创建系统确定字体的可视相似度。为了确定可视相似度,字体映射创建系统从字体中提取特征,包括可见特征和/或潜在的不可观察的(例如深的)特征。例如,字体映射创建系统利用编码器神经网络从与客户端设备相关联的多个字体中提取特征。因此,字体映射创建系统生成字体特征向量,其表示字体的提取特征。
除了提取字体特征之外,在一个或多个实施例中,通过比较潜在特征空间内的字体的特征,字体映射创建系统确定字体之间的可视相似度。例如,字体映射创建系统确定潜在空间中的字体特征向量之间的特征距离(例如欧几里得距离)。因此,字体映射创建系统基于其相应距离来确定字体之间的可视相似度。在一些实施例中,字体映射创建系统利用可视特征分类模型来将字体特征映射到潜在空间,并通过例如确定字体映射内的字体特征向量之间的距离来确定可视相似度。
例如,字体映射创建系统以自组织映射的形式利用可视特征分类模型,该可视特征分类模型被训练以根据可视相似度映射字体。在一些情况下,字体映射创建系统将字体特征的向量输入到自组织映射中,从而基于与自组织映射的各个节点相关联的权重将向量放置在字体映射内的地点。因此,根据关于其他字体的可视相似度,字体映射创建系统映射字体的特征向量,以将它们布置在字体映射内。实际上,字体映射创建系统创建字体映射,以基于邻域函数根据可视相似度来布置字体(或与字体相对应的特征),其中看起来像(例如具有类似特征)的字体被分组在一起或在字体映射内彼此靠近。
在一些实施例中,字体映射创建系统基于表示样本字体的样本特征向量来训练或调谐自组织映射,以在字体映射内准确地映射字体。实际上,通过引入用于在训练过程期间标识最佳匹配节点的新技术,字体映射创建系统训练自组织映射。例如,字体映射创建系统利用自组织映射将表示样本字体的样本特征向量与自组织映射内的节点权重进行比较,着重于优先处理具有u矩阵值(u-matrix-value)的节点,该u矩阵值超过u矩阵值阈值。关于训练和应用自组织映射的附加细节在下面参照附图来提供。
如上面提及的,在一些实施例中,字体映射消耗系统生成并提供字体的可视描绘,以用于在客户端设备上显示。更具体地,在一些情况下,字体映射消耗系统访问并选择一个或多个字体,以在可视描绘内显示。为了选择字体以用于显示,字体映射消耗系统会选择全部或部分字体映射(从字体映射创建系统中),并通过针对字体映射内的节点或位置标识字体(例如其特征向量映射到节点的字体)来视觉上描绘由字体映射表示的字体。在一些实施例中,根据一个或多个遍历规则,字体映射消耗系统遍历或导航字体映射,以选择要包括在可视描绘内的字体。例如,字体映射消耗系统遍历字体映射,以标识和选择在彼此的阈值相似度内的字体。因此,通过跟随在节点之间可视属性保持类似的方向,字体映射消耗系统遍历字体映射。作为另一示例,字体映射消耗系统遍历字体映射,以选择它们之间在外观上至少具有阈值差异的字体,以提供更广泛的字体选项数组。
在一些实施例中,字体映射消耗系统通过选择字体(或字体的特征向量)来遍历字体映射,随后一个接一个地选择序列中的其他字体。关于先前在序列中选择的字体,字体映射消耗系统在序列中选择的每个字体至少具有阈值可视相似度(或小于可视外观上的阈值差异)。在一些情况下,字体映射消耗系统利用特定的字体映射遍历规则来维持不同字体之间的平滑过渡。例如,字体映射消耗系统沿着基本方向导航字体映射,跟随潜在特征空间中的最近邻(同时访问映射空间中的邻居),或跟随与字体映射相对应的u矩阵(u-matrix)的梯度。通过遍历字体映射,字体映射消耗系统标识并选择字体以用于呈现在客户端设备上。例如,在一些实施例中,字体映射消耗系统标识字体,该字体在视觉上类似于字体映射内的用户选择的字体,以提供用于在字体列表内显示。
除了生成初始字体映射之外,在一些实施例中,字体映射创建系统还生成具有多个分辨率的自适应分辨率字体映射。为了详细描述,通过提供具有较少字体和/或表示较大类别或字体系列的字体的低分辨率字体映射,字体映射创建系统支持在不同粒度级别上的字体选择。在一些情况下,字体映射创建系统会生成并提供更高分辨率字体映射,该更高分辨率字体映射包括更多字体和/或更细化级别的字体,其中邻近字体之间的可视外观会有细微的差异。在一些实施例中,基于低分辨率字体映射内的字体的用户选择,字体映射创建系统提供更高分辨率字体映射。通过从字体映射创建系统访问这些更高分辨率字体映射,字体映射消耗系统帮助设计者以更精确的级别标识具有优选外观的期望字体。
在一些实施例中,字体映射创建系统为字体映射固定边界条件,以生成这种更高分辨率字体映射。例如,字体映射创建系统标识低分辨率字体映射的目标区域(例如基于用户选择)。在一些实现中,字体映射创建系统还固定边界条件,以为目标区域生成更高分辨率字体映射,使得字体映射创建系统基于可视相似度在更细化级别上标识附加字体,该附加字体属于目标区域内。在一个或多个实施例中,通过为目标区域的边界标识某些节点(或对应的节点权重),并在节点之间(或节点权重)进行内插来增加目标区域内的节点数量或分辨率,字体映射创建系统固定边界条件。例如,通过将添加节点的节点权重与字体的特征向量进行比较,字体映射创建系统标识以更高分辨率映射到目标区域的字体(或其对应的特征向量)。关于以不同的分辨率生成字体映射(或以不同的分辨率生成单个字体映射的不同区域)的附加细节在下面参照附图来提供。
在一个或多个实施例中,字体映射创建系统利用可视特征分类模型来根据可视相似度布置和呈现风格化图形。这种风格化图形可以包括徽标、徽章、字体、图标、图形设计等。实际上,除了(或备选地)基于字体之间的可视相似度来布置字体之外,在某些实现中,字体映射创建系统利用本文描述的技术根据风格化图形之间的可视相似度来布置风格化图形,并提供对其的可视描绘。例如,为了映射风格化图形,字体映射创建系统使用编码器神经网络从风格化图形中提取特征,以生成风格化图形特征向量。进一步地,字体映射创建系统使用自组织映射将风格化图形特征向量映射到风格化图形映射。在一些情况下,通过从风格化图形映射中选择风格化图形特征向量,字体映射消耗系统生成一个或多个风格化图形的可视描绘。因此,在某些实施例中,在本公开中对“字体”的引用可以由“风格化图形”代替。
如上面暗示的,字体映射系统(包括字体映射创建系统和字体映射消耗系统)提供了优于常规字体管理系统的多个优点。例如,字体映射系统通过使用可视特征分类模型生成字体映射来提供新技术,该字体映射用于根据可视外观或相似度来布置字体,并且选择字体以用于显示。特别地,字体映射系统从不同样式的字体中提取特征,并通过基于所提取特征的可视相似度布置字体,利用自组织映射(或其他可视特征分类模型)来生成字体映射。相比之下,许多常规字体管理系统严格地将字体呈现为按照字母(或某种其他分类)顺序的列表。通过实现先前系统不捕获或暗示的有序非常规步骤集合,字体映射系统可以将字体映射到字体映射。例如,在一些情况下,字体映射系统通过实现非常规步骤来捕获新的字体映射,该非常规步骤包括使用可视特征分类模型(例如自组织映射)确定字体之间的可视相似度,以及使用可视特征分类模型将字体映射到字体映射,以根据视觉或感知相似度布置字体。
与许多常规系统不同,由于能够基于可视相似度来呈现字体,因此字体映射系统还为字体选择提供了不同级别的粒度。例如,字体映射系统使设计者能够选择字体,并随后呈现具有与所选字体类似的可视特性的其他字体。因此,与传统系统相比,字体映射系统改善了字体的可导航性,并提供了更精确的字体选择控制。
至少部分地由于新的字体映射和由字体映射系统提供的其他技术,在某些实现中,相对于许多常规字体管理系统,字体映射系统更有效地使用计算资源并支持字体之间的导航。例如,通过需要较少的用户交互来访问选择字体中的期望数据和/或功能性,字体映射消耗系统利用较少的计算资源,诸如处理时间、处理能力和存储器。实际上,通过根据可视相似度来布置或暗示字体,字体映射消耗系统提供了比许多常规系统更有效的用户界面。例如,基于字体之间的可视相似度,字体映射消耗系统从字体映射生成并提供字体的可视描绘。不像一些常规字体管理系统那样通过滚动列表中的数百个字体需要过多的用户输入来导航和选择字体,字体映射消耗系统提供了一种更智能的基于外观的表示,以更快地进行字体选择,其需要较少的用户输入。
除了提高效率之外,在一些实施例中,与常规字体管理系统相比,字体映射系统更准确地标识字体之间的可视相似度,并且更准确地呈现或推荐视觉上类似的字体。通过利用可视特征分类模型,字体映射系统生成字体映射,该字体映射更准确地组织或表示字体之间的可视相似度,并有助于根据这种可视相似度来呈现或推荐字体。为了详细描述,字体映射系统利用可视特征分类模型,该可视特征分类模型可以准确地表示字体映射中的字体的可视外观中的微妙细节,并且这样做不会引入过多的噪声,否则会干扰字体的表示,尤其是当字体之间的视觉差异更好或更难以感知。因此,字体映射系统准确地生成具有必要粒度的类似字体的可视描绘,以用于在看起来像的字体之间进行选择。
如前述讨论所暗示的,本公开利用各种术语来描述字体映射系统的特征和益处。关于在本公开中使用的这些术语的含义的附加细节在下文中被提供。特别地,术语“字体”是指特定样式的字形(glyph)集合。例如,字体可以包括特定客户端字体(font face)中或特定字体系列中的字形集合。实际上,字体可以包括(i)客户端字体中的字形,诸如新罗马粗斜体字、加拉蒙粗斜体字或Courier Regular;或(ii)字体系列中的字形(包括构成客户端字体),诸如新罗马、加拉蒙或Courier。
另外,术语“特征”是指字体的特性或属性,其反映或表示字体的可视或感知外观。在一些实施例中,特征包括字体的可观察特性。附加地(或备选地),特征可以包括不可观察或不可感知的潜在特征和/或多维深度特征。可观察或不可观察的特征可以与字体的可视外观相关,或定义字体的可视外观。示例特征包括但不必限于字符权重、倾斜、衬线的存在和字符紧密性。因此,“字体特征向量”(或简称为“特征向量”)是指表示特定字体的特征向量。
如所提及的,字体映射创建系统利用编码器神经网络从字体中提取特征。如本文使用的,术语“编码器神经网络”是指提取与字体相关的特征的神经网络(或神经网络的一层或多层)。在一些情况下,编码器神经网络是指将来自字体的特征提取并编码为特征向量的神经网络。例如,编码器神经网络可以包括特定数量的层,包括标识和表示字体的可见和/或不可观察特性的神经元的一个或多个全连接和/或部分连接的层。编码器神经网络还可以从提取特征生成特征向量,以表示字体。在一些实施例中,编码器神经网络是指卷积神经网络,诸如DeepFont神经网络或Rekognition神经网络。
相关地,术语“神经网络”是指机器学习模型,其可以基于输入而被训练和/或调谐,以确定分类或近似未知函数。特别地,术语神经网络可以包括互连的人工神经元(例如分层组织)的模型,该模型进行通信并学习近似复杂函数,并基于提供给神经网络的多个输入来生成输出(例如数字图像类的确定)。另外,神经网络可以指代一种算法(或算法集合),其实现深度学习技术以对数据中的高级抽象建模。
在一些实施例中,字体映射创建系统将提取特征输入到可视特征分类模型中,以确定字体之间的可视相似度。如本文使用的,术语“可视特征分类模型”是指机器学习模型,诸如神经网络,其分析字体的特征以基于其可视外观分类或以其他方式布置字体。特别地,可视特征分类模型基于彼此相关的可视相似度来布置字体,其中相似的字体被放置在一起。
在一些实施例中,字体映射创建系统以自组织映射的形式利用可视特征分类模型。如本文使用的,术语“自组织映射”是指一种人工神经网络,其使用无监督学习来训练,以基于邻域函数产生输入空间(即,映射)的离散化表示,以保留输入空间的拓扑性质。自组织映射包括多个“节点”(或神经元),这些“节点”定义了映射的布局,并具有字体映射创建系统在训练期间调整的对应权重。自组织映射产生一种表示,其中在整个空间中,相邻节点之间的成对差异被最小化。字体映射创建系统将节点的权重与字体的输入特征向量进行比较,以确定字体(或其对应的特征向量)属于映射中的何处(例如确定哪个节点是最佳匹配)。实际上,在一些情况下,字体映射的节点具有对应的权重向量,该权重向量由定义该节点的节点权重组成。因此,取决于字体映射的分辨率和/或要映射到字体映射的多个字体,单个节点可以表示单个字体或可以表示多个字体。备选地,在某些实施例中,可视特征分类模型是指用于分类的另一机器学习模型,诸如主成分分析(“PCA”)模型或t分布式随机邻居嵌入(“t-SNE”)模型。
相关地,术语“字体映射”是指字体的特征向量的离散的n维组织或布置。字体映射可以指的是被训练或调谐的自组织映射,使得字体的特征向量映射到自组织映射的特定节点,从而根据可视相似度布置特征向量。特别地,字体映射包括或表示多个字体(或对应于字体的特征),其是基于邻域函数根据可视相似度来布置的,其中看起来像(例如具有类似特征)的字体被分组在一起或在字体映射内彼此靠近。在一些实施例中,字体映射具有特定的“分辨率”(或多个分辨率),该“分辨率”定义了字体映射表示字体的粒度或细节级别。更高分辨率字体映射(或字体映射的更高分辨率区域)使用较高密度的较多节点来更详细地包括或表示字体。低分辨率字体映射(或字体映射的低分辨率区域)使用较低密度的较少节点(例如其中节点可以表示类似样式的整个字体系列)以较少的细节包括或表示字体。自适应分辨率字体映射包括针对字体映射的不同区域的多个分辨率。
另外,术语“可视相似度”是指可视外观或可视特性的相似性的度量。在一些情况下,可视相似度是一个字体可能与另一字体类似或看起来像多少的度量,如其相应特征所指示的。两个字体之间的可视相似度可以由特征空间内(例如字体映射内)的特征向量之间或与特定特征向量相对应的字体映射的节点之间的特征距离(例如欧几里得距离)来表示。例如,可视相似度可以由相似的可见和不可见特征来表示,以描绘可见字体特性,包括但不限于衬线字体、粗体字体、脚本字体、大写字母字体以及与字体相关联的其他特性。
如所提及的,在一些实施例中,字体映射创建系统标识本公开指代为字体映射(例如自适应分辨率字体映射)的目标区域的内容。特别地,字体映射创建系统标识目标区域,用于以提高的分辨率呈现字体。如本文使用的,术语“目标区域”是指字体映射的区域(或三维字体映射的体积),其被指定用于提更高分辨率来以提高的细节级别表示字体。实际上,目标区域可以具有由字体映射的特定区域中的字体(或字体特征)定义的特定边界。字体映射创建系统因此可以基于边界中的字体来为目标区域固定边界条件,并在边界内的节点的节点权重以及目标区域内的那些节点的节点权重之间进行内插,以提高目标区域的分辨率,以在更高的细节级别表示更多数量的字体(例如与低分辨率区域相比,字体之间的可视外观差异更好或不太激烈)。
如上面进一步提及的,在一些情况下,字体映射消耗系统遍历字体映射,以选择要包括在字体的可视描绘中的字体。如本文使用的,术语“遍历”是指在字体映射内导航或行走的过程。在某些实现中,遍历是指在字体映射内导航或行走,以基于彼此相关的可视相似度来标识或选择用于包括在可视描绘中的字体。在一些实施例中,遍历字体映射包括标识字体映射内的初始地点(例如初始节点或字体),并基于一个或多个规则,按顺序导航到相邻地点,然后导航到此后的另一相邻地点,依此类推。例如,通过标识哪些字体或节点与当前字体或节点具有至少阈值相似度(或与之相比具有小于阈值差),字体映射消耗系统遍历相邻的字体或节点。在一些实施例中,字体映射消耗系统沿着基本方向遍历字体映射,跟随特征空间中的最近邻(同时始终访问映射空间中的邻居),或跟随与字体映射相对应的u矩阵的梯度。
相关地,术语“u矩阵”是指自组织映射的数据的二维可视化,有时可以表示高维空间。例如,u矩阵是指自组织映射的表示,其中邻近节点的向量之间的欧几里得距离是在灰度图像中描绘的。附加地,“u矩阵值”是指u矩阵内的值,其反映对应字体映射的邻近节点之间的差异(或可视不相似度)的度量。因此,u矩阵中的高峰值或具有高u矩阵值的区域表示字体映射的区域,其中邻近节点比其他区域的差异更大。
关于字体映射系统(包括字体映射创建系统和字体映射消耗系统)的附加细节现在将参照附图提供。例如,图1图示了根据一个或多个实施例的示例系统环境的示意图,用于实现包括字体映射创建系统102和字体映射消耗系统103的字体映射系统105。字体映射系统105的概述是关于图1描述的。此后,关于随后的附图,字体映射系统105的组件和过程的更详细描述被提供。
如图所示,该环境包括(多个)服务器104、客户端设备108、数据库114和网络112。该环境的组件中的每个组件可以经由网络112进行通信,并且网络112可以是计算设备可以通过其通信的任何合适网络。示例网络在下面关于图13更详细地讨论。
如所提及的,该环境包括客户端设备108。客户端设备108可以是各种计算设备中的一个计算设备,包括智能手机、平板计算机、智能电视、台式计算机、膝上型计算机、虚拟现实设备、增强现实设备或关于图13描述的另一计算设备。虽然图1图示了单个客户端设备108,但是在一些实施例中,该环境可以包括多个不同的客户端设备,每个客户端设备与不同的用户(例如设计者)相关联。客户端设备108可以经由网络112与(多个)服务器104通信。例如,客户端设备108可以从与客户端设备108进行交互的用户(例如经由客户端应用110)接收用户输入,以例如选择字体,在字体之间导航或使用特定字体键入。因此,(多个)服务器104上的字体映射系统105可以接收信息或指令,以标识特定字体(或者可以在没有用户输入的情况下自动地进行标识),并且可以生成更高分辨率字体映射的可视描绘,以基于由客户端设备108接收的输入进行更细化、详细的字体选择。
如图所示,客户端设备108包括客户端应用110。特别地,客户端应用110可以是web应用、安装在客户端设备108上的本机应用(例如移动应用、桌面应用)或全部或部分功能性由(多个)服务器104执行的基于云的应用。客户端应用110可以向用户呈现或显示信息,包括用于从多个字体中显示和/或选择字体的图形用户界面。附加地,客户端应用110可以呈现根据彼此相关的可视相似度布置的字体的可视描绘。客户端应用110还可以包括用于更详细的字体选择的附加可视描绘。实际上,用户可以与客户端应用110交互,以提供用户输入以从低分辨率字体映射中选择字体,并且客户端应用110随后可以呈现更高分辨率字体映射的可视描绘,以进行在外观上与从低分辨率字体映射中选择的字体类似的字体的更详细、精确的字体选择。
如图1所图示的,该环境包括(多个)服务器104。(多个)服务器104可以生成、追踪、存储、处理、接收和发送电子数据,诸如用于特征向量、字体映射、u矩阵值、字体的可视描绘和用户交互的指示的数据。例如,(多个)服务器104可以以字体的选择或从多个字体中选择的请求的形式从客户端设备108接收数据。另外,(多个)服务器104可以将数据发送给客户端设备108,以提供一个或多个字体的可视描绘,以用于在客户端应用110的用户界面内显示。实际上,(多个)服务器104可以与客户端设备108通信,以经由网络112发送和/或接收数据。在一些实施例中,(多个)服务器104包括分布式服务器,其中(多个)服务器104包括跨网络112分布并且位于不同物理地点的多个服务器设备。(多个)服务器104可以包括内容服务器、应用服务器、通信服务器、web托管服务器或机器学习服务器。
如图1所示,(多个)服务器104还可以包括字体映射系统105,作为数字内容编辑系统106的一部分,并且它包括字体映射创建系统102和字体映射消耗系统103。数字内容编辑系统106可以与客户端设备108通信,以执行与客户端应用110相关联的各种功能,诸如基于字体映射提供和修改字体的可视描绘。例如,字体映射创建系统102可以与数据库114通信,以访问和存储字体、字体映射、u矩阵、特征向量和字体映射的节点权重。实际上,如图1进一步所示,该环境包括数据库114。特别地,数据库114可以存储信息,诸如字体、样本特征向量、字体映射、u矩阵、特征向量以及字体映射的节点权重。在一些实施例中,数据库114还存储自组织映射的一个或多个组件,包括邻域算法、节点权重和其他参数。
如图1描绘的,字体映射创建系统102和字体映射消耗系统103进行通信以来回转移信息。例如,字体映射消耗系统103访问由字体映射创建系统102生成的字体映射。字体映射消耗系统103还从字体映射生成字体映射的可视描绘,以用于在客户端设备108上显示(经由客户端应用110)。实际上,客户端应用110提供用于与字体映射消耗系统103进行交互的用户界面,以导航通过字体映射或其他可视描绘,并且选择和/或购买客户端应用110内示出的字体。
尽管图1图示了环境的特定布置,但是在一些实施例中,该环境可以具有不同的组件布置和/或可以完全具有不同数量或组件集合。例如,在一些实施例中,字体映射系统105可以由(例如全部或部分地位于其上)客户端设备108和/或第三方设备实现。另外,客户端设备108可以绕过网络112直接与字体映射系统105通信。进一步地,数据库114可以位于(多个)服务器104的外部(例如经由网络112进行通信),或位于(多个)服务器104上和/或客户端设备108上。更进一步地,字体映射创建系统102和字体映射消耗系统103可以位于不同的地方,或者可以位于彼此不同并且经由网络112通信的计算设备上。例如,在一些实施例中,字体映射创建系统102和字体映射消耗系统103由不同的服务器托管,在不同的地点或者在由(多个)服务器104托管的子系统以及客户端设备108上作为应用的另一子系统上。
如所提及的,在一些实施例中,通过从字体映射中选择字体,字体映射创建系统102生成视觉上类似的字体的可视描绘。特别地,字体映射创建系统102利用诸如自组织映射等可视特征分类模型来生成字体映射,以根据可视相似度来布置字体。图2图示了根据一个或多个实施例的字体映射创建系统102执行以生成字体映射的一系列动作。
如图2所图示的,字体映射创建系统102执行动作202,以标识字体。特别地,在一些情况下,字体映射创建系统102标识与客户端设备108相关联的多个字体。例如,字体映射创建系统102标识安装在客户端设备108上的字体和/或作为客户端应用110的一部分的字体。在一些实施例中,字体映射创建系统102访问数据库114,以标识安装在客户端设备108上和/或作为客户端应用110的一部分的字体。在相同或其他实施例中,字体映射创建系统102标识客户端设备108缺少的或可能潜在安装在客户端设备108上的字体,以在客户端应用110内使用。例如,在某些实现中,字体映射创建系统102从特定字体数据库(例如ADOBE字体)生成字体映射(或与其相关联),该字体映射包括字体的全部或子集。在这种情况下,字体映射消耗系统103可以经由客户端设备108提供对这种字体(例如ADOBE字体)的全部或子集的访问(例如用于下载到客户端应用110中)。
在标识字体时,字体映射创建系统102还执行动作204,以从字体中提取特征。更具体地,字体映射创建系统102从表示字体的特性(包括可视外观)的字体中提取特征(例如深层特征)。为了提取特征,字体映射创建系统102利用编码器神经网络(由动作204内的图2所示的互连神经元表示)。例如,在一些实施例中,字体映射创建系统102利用深度编码器神经网络,诸如DeepFont,该DeepFont是由ADOBE公司开发的编码器神经网络,如ZhangyangWang、Jianchao Yang、Hailin Jin、Eli Shectman、Aseem Agarwala、Jonathan Brandt和Thomas S.Huang在第23届ACM多媒体国际会议论文集451至459页(2015年10月)上发表的DeepFont:Identify Your Font from An Image(DeepFont:从图像标识您的字体)描述的,其通过引用全部并入本文。在其他实施例中,字体映射创建系统102利用不同的神经网络,诸如Rekognition神经网络或某个其他卷积神经网络。实际上,字体映射创建系统102将标识出的字体输入到编码器神经网络中,该编码器神经网络分析字体,以提取特征并生成与字体相对应的特征向量。因此,字体映射创建系统102为每个标识出的字体生成特征向量。
如图2进一步图示的,字体映射创建系统102执行动作206,以确定标识出的字体之间的可视相似度。特别地,通过确定与字体相关联的特征向量之间的关系,字体映射创建系统102确定字体之间的可视相似度。例如,字体映射创建系统102比较特征空间内的特征向量。在一些实施例中,字体映射创建系统102确定特征空间中的字体特征向量之间的距离(例如欧几里得距离)。
更具体地,字体映射创建系统102利用可视特征分类模型来确定特定特征空间内的特征向量之间的距离。例如,字体映射创建系统102在诸如字体映射等特定特征空间内组织特征向量。在一些实施例中,字体映射创建系统102利用自组织映射形式的可视特征分类模型来确定特征空间内的特征向量的相应地点(例如节点),并确定这些相应地点之间的距离。在这些或其他实施例中,字体映射创建系统102利用自组织映射(诸如紧急自组织映射)来创建不同权重的区域之间的平滑过渡。例如,在一些实施例中,字体映射创建系统102利用紧急自组织映射,如Alfred Ultsch和Lutz Herrmann在Esann 1至6页(2005)上发表的The Architecture of Emergent Self-Organizing Maps to Reduce Projection Errors(紧急自组织映射的架构以减少投影误差),其通过引用全部并入本文。
如图2进一步所示,字体映射创建系统102执行动作208,以将特征向量映射到字体映射。实际上,字体映射创建系统102利用自组织映射来映射特征向量,该自组织映射根据可视相似度在字体映射内布置字体的特征向量。特别地,一旦字体映射创建系统102训练了自组织映射,则字体映射创建系统102在所得空间中投影许多字体以生成字体映射。根据客户端字体的可视相似度,字体映射创建系统102可以例如将客户端字体的特征向量布置在字体映射内。相比之下,根据字体系列的可视相似度,字体映射创建系统102可以将字体系列的特征向量布置在字体映射内。在一些实施例中,字体映射创建系统102从https://www.myfonts.com投影或映射129255个字体,以使用训练后的自组织映射来生成字体映射。一旦自组织映射被训练并且字体映射被生成,字体映射创建系统102就可以立即(或几乎瞬时)将新字体映射到字体映射。
例如,字体映射创建系统102将与字体相对应的特征向量映射到字体映射内的特定节点。实际上,字体映射创建系统102将自组织映射的节点与字体的特征向量进行比较,以确定特定特征向量属于字体映射中的何处。例如,字体映射创建系统102将字体映射内的每个节点的权重与字体特征向量进行比较,以标识权重最接近特征向量的节点。字体映射创建系统102因此确定对应于特征向量(或对应于关联字体)的节点,并将视觉上类似的字体映射到字体映射的附近节点。在一些实施例中,通过确定字体映射内的特征向量之间的距离和/或通过确定特征向量在字体映射内映射的节点之间的距离,字体映射创建系统102确定可视相似度。
在字体映射创建系统102生成字体映射之后,字体映射消耗系统103执行动作210,以生成字体的可视描绘。实际上,字体映射消耗系统103访问由字体映射创建系统102生成的字体映射,以生成并提供字体的可视描绘,以经由客户端设备108从字体映射显示。例如,在某些实现中,字体映射消耗系统103生成可视描绘212a、可视描绘212b或可视描绘212c(或某个其他可视描绘)。特别地,字体映射消耗系统103生成与客户端设备108相关联的一个或多个字体的可视描绘(例如如动作202中所标识的)。例如,在一些实施例中,字体映射消耗系统103生成字体的描绘,该字体被安装在客户端设备108上或可以被安装在客户端设备108上(例如来自特定字体数据库)。为了生成可视描绘,字体映射消耗系统103从字体映射中选择一个或多个字体,以提供用于在客户端应用110的图形用户界面内显示。例如,字体映射消耗系统103从字体映射中选择字体,以包括在可视描绘内。在一些实施例中,字体映射消耗系统103从字体映射中选择特征向量的子集,并标识与特征向量相对应的字体,以提供字体的外观的可视描绘。
为了生成可视描绘212a,如图2所图示的,字体映射消耗系统103选择字体映射的一部分,并且呈现布置在与字体映射的所选部分内的字体特征向量的地点相对应的布置中的字体。然而,在一些实施例中,通过标识视觉上类似的字体(例如彼此的阈值可视相似度内的字体)以字体列表的形式包括在可视描绘212b内,字体映射消耗系统103选择字体的子集。在其他实施例中,字体映射消耗系统103选择视觉上不类似的字体(例如在可视外观上具有至少阈值差异的字体),以包括在可视描绘212b内。在其他实施例中,字体映射消耗系统103使用特定的(例如随机的)采样算法从字体映射采样特征向量,以选择字体(与所选的特征向量相对应的字体)以包括在可视描绘212b内。尽管可视描绘212b包括三个字体,但是在某些实现中,可视描绘212b包括更多或更少的字体,直到与由可视相似度布置的与客户端设备108相关联的所有字体的列表。
如上面提到的和在图2中描绘的,在一些实施例中,字体映射消耗系统103生成可视描绘212c,以显示一个或多个最佳匹配字体(例如作为推荐)。为了生成并提供可视描绘212c,字体映射消耗系统103标识用于字体映射的节点的最佳匹配特征向量,并生成与最佳匹配特征向量相对应的字体的可视描绘,以包括在可视描绘212c内。基于标识最佳匹配特征向量,字体映射消耗系统103生成可视描绘212c。在某些实现中,基于标识最佳匹配特征向量,字体映射消耗系统103生成可视描绘212a或212b。例如,字体映射消耗系统103生成类似于字体映射的布局的可视描绘212a,其中与最佳匹配特征向量相对应的字体是在与字体映射内的相应节点地点相对应的地点处描绘的。
为了确定最佳匹配特征向量,在某些实现中,字体映射消耗系统103比较映射到字体映射的单个节点的字体的多个特征向量。字体映射消耗系统103还从映射到单个节点的多个特征向量中标识最佳匹配特征向量。特别地,字体映射消耗系统103将最佳匹配特征向量标识为与对应于单个节点的节点权重具有最小差异(或映射空间中的距离)的特征向量。另外,字体映射消耗系统103生成或标识与最佳匹配特征向量相对应的字体的可视描绘,以表示字体映射的可视描绘内的单个节点。在一些实施例中,字体映射创建系统102比较特征向量以标识最佳匹配节点,并且字体映射消耗系统103访问指示最佳匹配节点的信息以包括可视描绘。
作为另一示例,在某些实现中,字体映射消耗系统103提供整个字体映射的可视描绘。为了详细描述,通过在与字体映射的节点相对应的地点处可视地表示映射到字体映射的各个节点的字体的特征向量,字体映射消耗系统103生成字体映射的可视描绘。在一些实施例中,字体映射消耗系统103从字体映射生成字体的二维或三维可视描绘(以对应于由字体映射创建系统102生成的字体映射的维度),以提供用于在客户端设备108上显示。针对三维可视描绘,字体映射消耗系统103还提供用于在客户端设备108上显示的可选选项,以使用户能够旋转或以其他方式操纵可视描绘以从可用字体中选择。
相比之下,在一些实施例中,通过自动(例如没有用户输入)遍历字体映射以选择要包括在可视描绘中的字体,字体映射消耗系统103选择要包括在可视描绘内的字体。例如,通过选择可视外观上具有平滑过渡的字体,字体映射消耗系统103遍历(或使字体映射创建系统102遍历)字体映射。在一些实施例中,通过跟随与字体映射相对应的u矩阵的梯度,字体映射消耗系统103遍历字体映射。通过跟随u矩阵的梯度,通过最小化或减小字体映射的按顺序选择的邻近节点之间的差异,字体映射消耗系统103维持字体之间的平滑过渡。本公开在下面还描述了这种遍历。
如上面指示的,字体映射消耗系统103还提供可视描绘,以用于在客户端设备108上显示。例如,字体映射消耗系统103提供通过遍历字体映射选择的字体的列表(例如沿着u矩阵的梯度)。在一些实施例中,字体映射消耗系统103仅选择特定数量的字体(例如5或10),以包括在可视描绘内。在其他实施例中,如上面提及的,字体映射消耗系统103提供整个字体映射的可视描绘,以用于显示。在一个或多个实施例中,字体映射消耗系统103提供字体映射的特定采样部分,以用于在可视描绘内显示。例如,字体映射消耗系统103在彼此的阈值相似度内选择字体。作为另一示例,字体映射消耗系统103选择在它们之间具有至少阈值视觉差异的字体,以向用户给出广泛的可能字体来选择。
字体映射消耗系统103还可以提供用于显示的附加可视描绘。例如,在某些实现中,字体映射消耗系统103从客户端应用110内的可视描绘接收对特定字体的用户选择的指示,并生成附加(或替代)字体的可视描绘,以提供用于在客户端设备108上显示。例如,客户端设备108接收字体的用户选择,并将该选择的指示提供给字体映射消耗系统103。基于接收到用户选择的指示,字体映射消耗系统103生成附加字体的另一可视描绘,该附加字体在视觉上类似于所选字体。在一些实施例中,附加的可视描绘对应于更高分辨率字体映射,该更高分辨率字体映射以更高分辨率映射字体,以表示字体之间的更精细的视觉差异。关于更高分辨率字体映射的附加细节是在下面参照图7提供的。
如上面提及的,在一些实施例中,字体映射创建系统102生成字体映射,该字体映射以反映字体之间的可视相似度的布置将字体的特征向量映射到字体映射内的节点。特别地,字体映射创建系统102利用可视特征分类模型(诸如自组织映射),以通过将字体特征向量映射到节点来生成字体映射。图3图示了根据一个或多个实施例的客户端设备108显示字体映射的可视描绘作为字体映射可视化302。
如图3所图示的,字体映射可视化302是为了讨论目的而映射到字体映射内的节点的特定字体的表示。尽管字体映射可视化302构成可视描绘,但是在某些实现中,字体映射本身包括向量、节点和/或权重的布置,这些向量、节点和/或权重对于人类观察者可能没有意义(例如作为布置在字体映射的节点地点中的特征向量的集合)。实际上,字体映射可视化302描绘了在整个二维布置中以均匀间隔定位的不同样式的字体,该二维布置与相应的字体特征向量的地点相对应。通过将字体的特征向量与对应于字体映射可视化302下面的字体映射内的节点的节点权重进行比较,并将特征向量放置在节点权重最接近特征向量的节点处,字体映射创建系统102将字体映射到字体映射可视化302下面的字体映射。
如图所示,字体映射可视化302描绘了字体,该字体在公共区域中视觉上类似,并在不同字体样式之间平滑过渡。在一些实施例中,尽管字体映射可视化302是二维的,但是字体映射可视化302可以是连续的,因为在同一行中最左边的字体和最右边的字体被认为是相邻的,并且同一列中最上面的字体和最下面的字体被认为是相邻的,好像字体映射可视化302在三个维度上环绕。实际上,字体映射可视化302的左上和左下字体共享一些可视相似度,左上和右上字体也是如此。对应于字体映射可视化302的字体映射共享视觉上类似的字体的相同组织,如由向量、节点和/或节点权重的布置所表示的。沿着这些线,字体映射创建系统102也可以生成三维字体映射,该三维字体映射可旋转以查看映射的连续性质,其描绘了字体或节点之间的关系。
在某些实现中,为了将字体映射到字体映射可视化302下面的字体映射,字体映射创建系统102从字体中提取特征以生成字体中的每个字体的特征向量。例如,字体映射创建系统102利用编码器神经网络(例如DeepFont)为每个字体提取760维特征向量。另外,通过将特征向量与节点权重进行比较以标识权重最接近特征向量的节点,字体映射创建系统102将760维特征向量映射到字体映射内的节点。例如,在一些情况下,通过确定映射空间或潜在特征空间中的特征之间的欧几里得距离,字体映射创建系统102将特征向量与特定节点的节点权重进行比较。
如上面暗示的,在一些实施例中,字体映射创建系统102利用可视特征分类模型来映射特征向量,该可视特征分类模型根据可视相似度将字体的特征向量布置在字体映射可视化302下面的字体映射内。例如,字体映射创建系统102可以使用自组织映射(或其他可视特征分类模型),以根据客户端字体的可视相似度在字体映射内布置客户端字体的特征向量,诸如通过将新罗马粗斜体的特征向量映射为更接近加拉蒙粗斜体的特征向量,而不是Courier Regular的特征向量。相比之下,字体映射创建系统102可以根据字体系列的可视相似度在字体映射内布置字体系列的特征向量,诸如通过将新罗马的特征向量映射为更接近加拉蒙的特征向量,而不是Courier的特征向量。
在一些实施例中,字体映射创建系统102标识多个特征向量,其与字体映射可视化302下面的字体映射的单个节点相对应。例如,字体映射创建系统102标识节点权重与多个特征向量的距离最小的特定节点。因此,在一些情况下,字体映射创建系统102将多个特征向量(和对应的字体)映射到字体映射可视化302下面的字体映射的单个节点。在其他情况下,字体映射创建系统102将单个特征向量映射到字体映射可视化302下面的字体映射的单个节点,或者不将特征向量映射到字体映射的某些节点(取决于其相应距离)。
如所提及的,在某些实现中,字体映射创建系统102生成字体映射,该字体映射布置特征向量,使得与特征向量相对应的字体根据可视相似度来分组。图4A至图4B图示了根据一个或多个实施例的客户端设备108显示热图,该热图分别描绘了斜体字体和衬线字体在字体映射内的分布。图4A的热图描绘了用于低分辨率字体映射(例如与字体映射可视化302相对应的字体映射)的特征向量(或字体)的分布,而图4B的热图描绘了用于更高分辨率字体映射的特征向量(或字体)的分布。尽管图4A至4B图示了与特定字体映射相对应的特定热图,这不一定是最佳或理想字体映射的图示。实际上,在一些实施例中,根据利用自组织映射或其他可视特征分类模型,字体映射创建系统102生成具有不同布置(有时甚至在处理相同数据的不同实例中)的字体映射。
如图4A所图示的,斜体热图402(在图4A中标题为“用于斜体的字体映射中的节点的热图”)包括在阴影中从暗到亮变化的单元。同样地,衬线热图404(在图4A中标题为“用于衬线的字体映射中的节点的热图”)也包括在阴影中从暗到亮变化的单元。斜体热图402和衬线热图404中的单元表示字体映射(例如对应于字体映射可视化302的字体映射)的一个或多个节点,其中由每个单元表示的节点数量取决于字体映射的分辨率以及相应热图的分辨率。附加地,斜体热图402和衬线热图404中的不同阴影表示字体的不同密度,这些字体在字体映射的对应地点中携带或描绘了特定属性。
例如,斜体热图402图示了字体映射内的斜体化的字体的分布(在图4A中,在阴影标度上标记为“斜体字体的密度”),而衬线热图404图示了字体映射内的衬线字体的分布(在图4A中,在阴影标度上标记为“衬线字体的密度”)。如阴影标度所指示的,较浅的阴影指示具有对应可视特性的字体密度较高的字体映射区域,而较深的阴影指示具有可视特性的字体密度较低的字体映射区域。因此,在斜体热图402中具有较浅阴影的单元指示具有较高浓度的斜体字体的字体映射的区域或节点。同样地,在衬线热图404中具有较浅阴影的单元指示具有较高浓度的衬线字体的字体映射的区域或节点。
在一些实施例中,为了生成用于在客户端设备108上显示的一个或多个字体的可视描绘,字体映射消耗系统103基于具有特定可视特性的字体的分布从字体映射中选择字体。例如,字体映射消耗系统103选择斜体字体,以提供用于在可视描绘内显示(例如基于请求斜体字体或与另一斜体字体类似的字体的用户输入)。为了从字体映射中选择斜体字体,在一些情况下,字体映射消耗系统103标识字体映射区域内具有较高密度或较高浓度的斜体字体的字体,如斜体热图402所指示的(例如通过选择字体映射区域内的节点,其对应于斜体热图402所示的较浅阴影的“c”形曲线)。关于选择字体以包括在可视描绘内的附加细节在下面参照后续附图来提供。
虽然图4A图示了字体映射创建系统102可以用字体映射(例如斜体和衬线)建模的两个示例可视属性或特性,字体映射创建系统102还可以基于其他可视特性映射,标识并确定字体的分布。例如,字体映射创建系统102可以确定粗体字体、浅色字体、脚本字体和/或浓缩字体在字体映射内的分布。每个不同的可视特性在字体映射内具有其自己的分布,并且字体映射创建系统102因此为每个特征(例如针对每个特征)生成不同的热图。
如所提及的,在一些实施例中,字体映射创建系统102生成更高分辨率字体映射。特别地,字体映射创建系统102生成更高分辨率字体映射,其更详细地放大或表示低分辨率字体映射的全部或一部分,包括映射到附加节点的字体,以在字体样式之间进行更精细的过渡。附加地(或备选地),字体映射创建系统102基于与低分辨率字体映射相同的数据来生成更高分辨率字体映射,但是该数据独立于低分辨率字体映射而被训练(因此没有与低分辨率字体映射直接对应)。图4B图示了根据一个或多个实施例的更高分辨率字体映射的热图。
如图4B所示,斜体热图406是在与图4A的斜体热图402相同的字体数据上训练的。更具体地,斜体热图406表示斜体字体在更高分辨率字体映射内的分布,该更高分辨率字体映射是在与由斜体热图402表示的低分辨率字体映射相同的字体数据上训练的。类似地,图4B所示的衬线热图408对应于图4A的衬线热图404,并且表示衬线字体在更高分辨率字体映射内的分布,该更高分辨率字体映射是在与由衬线热图404表示的低分辨率字体映射相同的字体数据上训练的。因此,衬线热图408表示衬线字体在更高分辨率热图内的分布,该更高分辨率热图是使用与由衬线热图404表示的低分辨率热图相同的字体集合生成的。实际上,由于斜体热图406和衬线热图408表示更高分辨率字体映射,因此与对应于图4A的斜体热图402和衬线热图404的那些字体映射相比,对应于图4B的斜体热图406和衬线热图408的字体映射在更精细的细节级别上包括较小的单元。
类似于上面关于图4A的讨论,斜体热图406和衬线热图408内的单元的不同阴影表示具有相应可视特性的字体映射内的字体的不同密度。较浅的阴影指示更高分辨率字体映射的具有较高密度或较高浓度的区域,而较深的阴影则指示更高分辨率字体映射的具有较低密度或较低浓度的区域。
在一些实施例中,字体映射消耗系统103从更高分辨率字体映射中选择一个或多个字体,以包括在字体的可视描绘中,以用于在客户端设备108上显示。为了从更高分辨率字体映射中选择字体,字体映射消耗系统103标识更高分辨率字体映射的区域,这些区域包括具有特定视觉特定的字体(例如基于用户输入来选择或请求具有可视特性的字体或类似于另一字体的字体)。例如,字体映射消耗系统103选择更高分辨率字体映射的一部分(例如一个或多个节点),该部分对应于斜体热图406的具有较浅阴影单元的区域。作为另一示例,字体映射消耗系统103选择更高分辨率字体映射的一部分(例如一个或多个节点),该部分与衬线热图408的具有较浅阴影单元的区域相对应。
如上面提及的,在一些实施例中,字体映射消耗系统103选择与字体映射内的特征向量相对应的字体,以包括在可视描绘内。特别地,通过选择字体映射内的节点或特征向量或通过使用特定的遍历技术遍历字体映射,字体映射消耗系统103选择字体。例如,字体映射消耗系统103遍历字体映射,以标识在可视外观上从一个所选的字体平滑过渡到下一字体的字体。实际上,字体映射消耗系统103可以遍历字体映射,以标识,推荐和/或提供与用户选择的字体视觉上类似的字体。作为示例,基于用户从低分辨率字体映射中选择字体,字体映射消耗系统103可以遍历更高分辨率字体映射,以提供类似的字体集合,它们之间具有更细的差异以提高精度。图5图示了根据一个或多个实施例的利用梯度跟随技术遍历字体映射,以生成可视描绘504。
如图5所图示的,在一些实施例中,通过跟随与字体映射相对应的u矩阵502的梯度,字体映射消耗系统103遍历字体映射。特别地,通过标识起始位置或起始节点并且一个接一个地迭代选择后续节点,字体映射消耗系统103跟随u矩阵502的梯度。通过比较当前节点周围的节点的u矩阵值并选择后续节点作为与最低u矩阵值(或沿着梯度的下一u矩阵值)相对应的节点,字体映射消耗系统103按顺序选择节点。通过以这种方式跟随u矩阵梯度,字体映射消耗系统103选择字体的节点,其示出了可视外观上的平滑过渡。
如图5所示,例如字体映射消耗系统103选择起始节点503。特别地,基于用户输入选择与该起始节点相对应的特定字体(例如在低分辨率字体映射内还是在更高分辨率字体映射内),字体映射消耗系统103选择起始节点503。字体映射消耗系统103从起始节点503沿着图5所示的路径前进,其中沿着路径的每个白点表示字体映射的按顺序选择的节点。
如图5所图示的,客户端设备108还呈现经由梯度跟随遍历选择的字体的可视描绘504。特别地,可视描绘504针对遍历过程的每个选择或步骤描绘了映射到节点的字体。例如,字体映射消耗系统103将许多字体映射到起始节点503,包括可视描绘504的第一列(标记为“1”)中的所有那些字体。跟随u矩阵502的梯度,字体映射消耗系统103随后选择多个字体被映射的下一节点,如第二列(“2”)中的字体所表示的。字体映射消耗系统103通过跟随u矩阵502的梯度来继续遍历字体映射,以选择用于字体样式之间的平滑过渡的节点。因此,可视描绘504描绘了在十四个不同的所选节点上的平滑过渡,其中距离更近的所选节点中的字体在视觉上彼此更加类似,而距离较远的所选节点中的字体在视觉上不太类似。实际上,在可视描绘504中示出的字体在前几列中相对较浅地开始,并且随着遍历的每个后续选择而逐渐变粗,直到字体最粗的第十四列为止。
如所提及的,在一些实施例中,除了跟随u矩阵的梯度之外,字体映射消耗系统103实现用于从字体映射中查找或选择字体的不同遍历技术。例如,字体映射消耗系统103利用最近邻遍历方法,或可以沿着字体映射的基本方向遍历。图6图示了根据一个或多个实施例的最近邻遍历。如图6所示,客户端设备108显示字体映射602和字体的可视描绘604,该字体是作为基于最近邻算法遍历字体映射602的结果而选择的。
如图6所图示的,字体映射消耗系统103标识字体映射602内的起始节点,并随后从字体映射602中按顺序选择最近邻节点。例如,字体映射消耗系统103将起始节点603标识为与用户从低分辨率字体映射选择的字体相对应的节点。字体映射消耗系统103从起始节点603遍历字体映射602,以标识关于起始节点603的最近邻节点。字体映射消耗系统103从最近邻节点中选择关于第一最近邻节点的另一最近邻节点,并通过一个接一个地迭代选择最近邻节点来重复该过程。
为了标识最近邻节点,字体映射消耗系统103标识与当前节点(例如起始节点603或随后选择的节点)相关联的节点的邻域,并从该邻域中选择邻居节点。例如,字体映射消耗系统103将邻域标识为字体映射602的区域,该区域包括在特征空间(或映射空间)中均距起始节点603阈值距离内的节点。另外,字体映射消耗系统103访问映射空间中的所有邻居节点,并且比较邻居节点与起始节点603的距离,以标识最近邻节点。更具体地,字体映射消耗系统103将最近邻节点标识为节点,该节点具有在特征空间(或映射空间)中距起始节点603的节点权重最小距离的节点权重。
通过遍历字体映射602并选择最近邻节点,字体映射消耗系统103选择具有字体的节点,以包括在可视描绘604内。特别地,字体映射消耗系统103生成并提供可视描绘604,该可视描绘604包括二十列,每一列用于在最近邻遍历中选择的每个节点。如图所示,可视描绘604中的列包括映射到它们的不同数量的字体。例如,可视描绘604中的第一列(标记为“1”)对应于起始节点603,并且仅包括单个字体。在起始节点603之后选择的最近邻节点由第二列(“2”)表示,并且包括五个字体。此后,可视描绘604的其余列表示字体映射602的按顺序选择的节点,一个接一个地选择,其中每列中的字体数量反映了每个相应节点中的字体数量,范围从零个字体(例如第11列)到五个字体。
如所提及的,在某些实施例中,字体映射创建系统102生成更高分辨率字体映射。特别地,字体映射创建系统102生成更高分辨率字体映射,该更高分辨率字体映射以更详细的(例如放大)级别提供用于低分辨率字体映射的目标区域的字体的布置。图7图示了根据一个或多个实施例的更高分辨率字体映射的字体映射可视化702。
如图7所图示的,客户端设备108显示字体映射可视化702。类似于上面关于图3的字体映射可视化302(可以被称为低分辨率字体映射)的讨论,字体映射可视化702是出于讨论目的的字体映射的描绘,其中字体被布置在表示更高分辨率字体映射的节点的地点中。实际上,字体映射可视化702的实际字体映射是在人类观察者可能无法辨别的各个节点地点处的节点权重和/或字体特征向量的布置。
如图7所示,与对应于图3的字体映射可视化302的字体映射相比,字体映射可视化702包括更高细节级别的字体。因此,字体映射可视化702中的邻近字体之间的视觉差异小于对应于字体映射可视化302的字体映射中的字体之间的视觉差异,因此提供了更高级别的粒度以进行更精确的字体选择。在一些实施例中,与用于生成低分辨率字体映射相比,字体映射创建系统102利用不同的自组织映射来生成与字体映射可视化702相对应的字体映射。实际上,字体映射创建系统102利用使用第一训练方法训练的自组织映射,以生成低分辨率字体映射,并且利用使用第二训练方法训练的自组织映射,以生成与字体映射可视化702相对应的字体映射。关于训练或调谐自组织映射或其他可视特征分类模型的不同方法的附加细节在下面参照图9来提供。
基于字体映射可视化702,通过首先从低分辨率字体映射提供字体的可视描绘,并随后从字体映射可视化702提供字体的可视描绘,字体映射消耗系统103为用户提供根据可视特性以更精确的级别选择字体的选项。例如,在一些实施例中,基于或响应于用户交互从低分辨率字体映射中选择字体,字体映射消耗系统103从字体映射可视化702提供字体的可视描绘。
如上面提及的,在一些实施例中,字体映射创建系统102生成包括不同分辨率的区域的自适应分辨率字体映射。特别地,在一些情况下,字体映射创建系统102自动地(例如不需要用户输入)确定或标识字体映射的目标区域,针对该目标区域提更高分辨率以包括更细化的细节级别的附加字体。为了详细描述,在某些实现中,字体映射创建系统102在超过方差阈值的每个节点内标识字体映射的具有u矩阵值的区域,该u矩阵值超过u矩阵值阈值和/或具有数据方差(例如特征向量之间的方差)。字体映射创建系统102因此提高了这些目标区域的分辨率。在一些实施例中,字体映射创建系统102基于用户输入来标识要为其增加目标区域的区域。例如,字体映射创建系统102将目标区域标识为由特定数量的节点定义的区域,该特定数量节点在与所选字体相对应的节点上方和/或下方以及在与所选字体相对应的节点的右侧和/或左侧。
在一些实施例中,响应于对低分辨率字体映射内的字体的用户选择的指示,字体映射消耗系统103生成字体映射可视化702(例如针对目标区域)。例如,在一些情况下,字体映射消耗系统103基于固定的边界条件来生成字体映射可视化702。为了详细描述,通过标识字体映射内的在该目标区域内(或定义目标区域)的节点,字体映射消耗系统103为字体映射的目标区域固定(或使字体映射创建系统102固定)边界条件。基于标识目标区域内的节点,字体映射消耗系统103(或字体映射创建系统102)在这些节点的节点权重之间进行内插,以生成用于新节点的新节点权重,以包括在字体映射可视化702内。
如上面提及的,在一些实施例中,字体映射创建系统102固定目标区域的边界条件,以生成更高分辨率字体映射(例如与字体映射可视化702相对应的更高分辨率字体映射)。特别地,通过标识低分辨率字体映射(例如与字体映射可视化302相对应的字体映射)的目标区域内的节点,并在与所标识节点相对应的节点权重之间进行内插,字体映射创建系统102固定边界条件。图8图示了根据一个或多个实施例的更高分辨率字体映射的字体映射可视化804,该更高分辨率字体映射是用针对由字体映射可视化802表示的低分辨率字体映射的目标区域的固定边界生成的。
如图8所图示的,字体映射可视化804是不完整的(字体之间具有间隙),因为训练尚未针对对应的自组织映射收敛。然而,出于讨论目的,与字体映射可视化804相对应的字体映射以更高的细节级别包括与字体映射可视化802相对应的字体映射的目标区域的字体,更多的字体在彼此相邻的字体之间具有略微的视觉差异。在一些实施例中,目标区域可以包括小于与字体映射可视化802相对应的字体映射的整个区域(或体积)的一部分,而在其他实施例中,目标区域可以包括与字体映射可视化804相对应的字体映射的整个区域(或体积)。出于讨论目的,字体映射可视化804可以是字体映射可视化702的不完整版本。
为了生成更高分辨率字体映射,字体映射创建系统102在低分辨率字体映射的目标区域内的节点的节点权重之间进行内插。更具体地,字体映射创建系统102标识低分辨率字体映射的节点,该节点在目标区域内并且组成目标区域的边界。另外,字体映射创建系统102在所标识节点的节点权重之间进行内插,以生成具有新的节点权重的新节点,以包括在更高分辨率字体映射内。
如上面指示的,在一些实施例中,通过确定目标区域中的相邻节点之间的距离(在特征空间或映射空间中),字体映射创建系统102在节点权重之间进行内插。字体映射创建系统102还确定要在相邻节点之间添加以填充距离的新节点的数量。例如,基于目标区域的分辨率与对应于字体映射可视化804的更高分辨率字体映射的分辨率之间的比率,字体映射创建系统102确定要在目标区域的相邻节点之间添加的附加节点的数量。另外,字体映射创建系统102确定新节点数量的节点权重,以在映射空间中的目标区域的相邻节点之间间隔(例如均匀间隔)新节点。
在一些实施例中,字体映射创建系统102不生成新的节点权重,以均匀地间隔新节点,而是基于特征向量在目标区域内的分布生成新的节点权重,以利用较高的字体密度(或较高的特征向量密度)提供增强的区域细节。除了提高的分辨率之外,生成更高分辨率字体映射允许字体映射创建系统102根据局部特征向量和/或局部节点权重来重新投影目标区域,从而提高字体之间的过渡的平滑度,以用于在视觉上类似的字体之间导航。针对分布均匀的区域,字体映射创建系统102在必要时还执行子采样。
在一些实施例中,字体映射创建系统102生成自适应分辨率字体映射。特别地,字体映射创建系统102生成在不同区域中具有不同分辨率的字体映射。例如,字体映射创建系统102标识与字体映射可视化802相对应的低分辨率字体映射的目标区域,针对该目标区域生成更高分辨率字体映射(诸如对应于字体映射可视化804的更高分辨率字体映射)。特别地,通过确定低分辨率字体映射的节点的u矩阵值和数据方差,字体映射创建系统102标识目标区域。字体映射创建系统102因此将目标区域标识为具有节点的区域,该节点具有超过u矩阵值阈值的u矩阵值和/或在节点内具有超过方差阈值的数据方差。通过为这些目标区域生成更高分辨率字体映射,字体映射创建系统102以不同标度检查和导航字体特征向量,以提供提高的字体选择精度。
在一个或多个实施例中,字体映射创建系统102执行用于构造字体映射的步骤,该字体映射根据可视相似度布置多个字体。特别地,字体映射创建系统102利用特定的动作和算法来实现或执行用于构造字体映射的步骤。特别地,上面关于图2的描述(包括动作204、206和208)提供动作和算法作为结构和支持,以用于执行用于构建字体映射的步骤,该字体映射根据可视相似度布置多个字体。
如上面提及的,在某些实施例中,字体映射创建系统102训练或调谐可视特征分类模型,以准确地映射字体的特征向量。特别地,通过将表示样本字体的样本特征向量输入到自组织映射中,并修改自组织映射的节点的节点权重以更接近地匹配输入向量,字体映射创建系统102以自组织映射的形式训练可视特征分类模型。例如,由于在训练后的自组织映射上投影新数据的能力,字体映射创建系统102输入相对少量的字体(例如10,000个字体),以在特定数量的迭代(例如90,000次迭代)上加速训练过程,同时仍然能够将整个数据集投影到所得的训练后的自组织映射上。图9图示了根据一个或多个实施例的训练或调谐自组织映射905。在一些实施例中,相同的训练或调谐适用于其他可视特征分类模型。
如图9所图示的,字体映射创建系统102执行动作902,以标识表示样本字体的样本特征向量(例如训练字体特征矢量)。特别地,在某些实现中,字体映射创建系统102访问数据库114,以标识存储的样本特征向量,以输入到自组织映射905中。在一些实施例中,字体映射创建系统102从用于训练或调谐自组织映射的样本特征向量集合中随机地选择样本特征向量。字体映射创建系统102选择样本特征向量,并将该向量输入到自组织映射905中。为了进行训练以生成具有周期性边界条件的字体映射,自组织映射905可以是二维环形映射,其具有80x80个节点的尺寸。另一方面,为了训练以生成具有固定边界条件的字体映射,自组织映射905可以是二维平面映射(例如具有80×80个节点的尺寸)。
另外,在初始化自组织映射905的节点权重之后,字体映射创建系统102执行动作904,以将节点权重与表示样本字体的样本特征向量进行比较。更具体地,字体映射创建系统102将自组织映射905的每个节点的节点权重与样本特征向量进行比较。为了将输入的样本特征向量与节点权重进行比较,字体映射创建系统102确定样本特征向量与节点权重之间的距离(例如欧几里得距离)。通过比较,字体映射创建系统102确定自组织映射905的哪个节点最接近输入的样本特征向量(例如哪个节点具有与样本特征向量最类似的节点权重)。
如图9进一步所示,字体映射创建系统102执行动作906,以标识最佳匹配节点(或最佳匹配单元)。特别地,字体映射创建系统102将最佳匹配节点标识为自组织映射905内的节点,该节点最接近或权重与表示样本字体的样本特征向量的差异(或距离)最小。
在一些实施例中,为了在整个自组织映射905上实现更均匀的密度,通过优先处理具有高u矩阵值(例如超过u矩阵值阈值的u矩阵值)的节点,字体映射创建系统102标识最佳匹配节点。例如,字体映射创建系统102强调或加权自组织映射905的区域,这些区域包括具有高u矩阵值的节点,以将训练更多地集中在这些区域上(例如通过增加标识这些区域中的最佳匹配节点的可能性)。为了强调这些区域,通过人为地调整具有高u矩阵值的节点的节点权重以使这些节点与样本特征向量更类似,字体映射创建系统102生成(例如作为动作904的一部分)修改后的训练映射,因此增加了它们被选择为最佳匹配节点的可能性。在一些实施例中,字体映射创建系统102仅在训练或调谐自组织映射905期间使用修改后的训练映射。
附加地,在某些实现中,字体映射创建系统102在0处开始人为地修改高u矩阵值节点的节点权重的标度,以允许有意义的集中形成并随着训练通过后续迭代进行(以平滑不同浓度之间的过渡)而增加,直到达到最大标度值。通过利用具有高u矩阵值的节点在自组织映射905的区域周围进行更多训练,字体映射创建系统102因此通过训练来减小u矩阵值(例如以最小化u矩阵的梯度,同时保留自组织映射905的性质),从而增强或增加自组织映射905的均匀性。利用更均匀的自组织映射905,字体映射创建系统102在应用期间映射字体时产生更均匀的分布。
在标识出最佳匹配节点之后,字体映射创建系统102还执行动作908,以确定最佳匹配节点的邻域。实际上,在一些实施例中,自组织映射905是紧急自组织映射,其中字体映射创建系统102除了最佳匹配节点之外还修改邻近节点的权重。特别地,字体映射创建系统102通过利用邻域函数来确定与最佳匹配节点相关联的节点的邻域。更具体地,根据邻域函数(例如基于自组织映射905的拓扑分布和/或自组织映射905内的节点距最佳匹配节点的距离),字体映射创建系统102在自组织映射905内标识作为最佳匹配节点的邻居的节点子集。
如图9进一步图示的,字体映射创建系统102执行动作910,以修改节点权重。为了详细描述,在一些情况下,字体映射创建系统102修改最佳匹配节点的节点权重以及最佳匹配节点的邻域中的节点,以使权重更像表示样本字体的样本特征向量。例如,字体映射创建系统102最大程度地修改最佳匹配单元的权重,并且字体映射创建系统102基于距最佳匹配节点的相应距离来修改邻近节点的权重。邻近节点越接近最佳匹配节点,字体映射创建系统102修改其节点权重越多,并且邻近节点越远,字体映射创建系统102修改其节点权重越少。
在一些实施例中,字体映射创建系统102根据以下函数(针对周期性边界或非固定边界条件)更新或修改节点权重:updated_weights=current_weights-gauss*lrate*(current_weights-inputVec),其中inputVec表示输入的样本特征向量,其表示样本字体,gauss表示当前节点和inputVec的最佳匹配节点的欧几里得距离(在映射空间中)的高斯,并且lrate表示随着训练的进行而衰减的学习率。
为了训练用于生成低分辨率字体映射的自组织映射,与训练用于生成更高分辨率字体映射的自组织映射时相比,字体映射创建系统102可以利用不同的训练过程。实际上,针对更高分辨率字体映射,字体映射创建系统102保留或固定字体映射的边界。因此,在训练用于生成更高分辨率字体映射期间,字体映射创建系统102利用平面而不是环形的非周期性边界(其被用于训练具有周期性边界的低分辨率字体映射)。另外,在一些实施例中,字体映射创建系统102利用约束项(例如boundary_distance项)来修改学习率,以更新节点权重,使得边界内(例如目标区域内)的节点的学习率为零,并且邻近节点的学习率根据其距最近边界的距离而提高,直到达到距离d处的默认值为止。距离d是基于自组织映射905的大小、训练数据(例如样本特征向量)的类型和/或大小和期望结果而调谐的超参数。
例如,字体映射创建系统102根据以下函数更新或修改节点权重,以生成非周期性边界字体映射(例如具有固定的边界条件):
updated_weights=current_weights–boundary_distance*lrate*(current_weights-inputVec),
其中boundary_distance表示当前节点和位于自组织映射905的边界上(且以值1为上限)的最近节点的缩放的欧几里得距离(在映射空间中),并且其中其他项如上面所定义的。缩放有助于boundary_distance在距边界的预定距离d处达到最大值1。字体映射创建系统102可以利用不同的缩放技术,诸如线性或高斯缩放。
字体映射创建系统102还在特定数量的迭代内重复图9所图示的训练或调谐过程。实际上,在一些情况下,字体映射创建系统102作为每次迭代的一部分重复动作902至910。特别地,字体映射创建系统102标识表示后续样本字体的后续样本特征向量,将样本特征向量与节点权重进行比较,标识最佳匹配节点,确定最佳匹配节点的邻域,并修改每次迭代的节点权重。在一些实施例中,字体映射创建系统102执行从10,000个不同样本特征向量中选择的训练的90,000次迭代。附加地或备选地,字体映射创建系统102执行训练迭代,直到自组织映射905的节点权重在整个训练迭代中没有显着改变或满足收敛标准为止。
如上面提及的,在一些实施例中,字体映射创建系统102利用不同类型的可视特征分类模型。例如,如上面详细描述的,字体映射创建系统102利用自组织映射。除了(或备选地)自组织映射,字体映射创建系统102可以利用PCA模型或t-SNE模型形式的可视特征分类模型。图10图示了根据一个或多个实施例的使用PCA模型生成的字体映射的字体映射可视化1002和使用t-SNE模型生成的字体映射的字体映射可视化1004。
如图10所图示的,字体映射可视化1002和字体映射可视化1004表示字体映射,其包括在其相应地点处与所描绘的字体相对应的特征向量的布置。在一些实施例中,字体映射可视化1002和字体映射可视化1004表示可旋转的三维字体映射。实际上,字体映射消耗系统103可以从字体映射可视化1002或字体映射可视化1004(或使用自组织映射生成的字体映射)提供字体的视觉描述(以用于在客户端设备108上显示)以及用于旋转和导航字体映射的可选控件。
虽然字体映射可视化1002和字体映射可视化1004表示字体映射,其包括基于字体之间的可视相似度而映射的特征向量,但在映射字体特征向量时,PCA和t-SNE的算法有时不如自组织映射那样准确。实际上,与自组织映射相比,PCA和t-SNE有时不太能够解释诸如字体特征向量等数据的噪声(或有时引入噪声)。附加地,当涉及字体之间更精细、更微妙的细节时,PCA和t-SNE有时不如自组织映射那样准确。例如,字体映射创建系统102可以实现PCA模型,以生成紧凑且均匀的字体映射,但是有时这些字体映射(例如字体映射可视化1002下面的字体映射)在附近的字体之间包括太多的风格变化。相反,字体映射创建系统102可以实现t-SNE模型,以生成具有更好的局部相似度的字体映射(例如字体映射可视化1004下面的字体映射),但是以牺牲均匀性为代价-字体映射可视化1004下面的字体映射不太均匀,并且包括很大的稀疏区域。
尽管在一些实施例中,本公开在某些地点涉及字体映射创建系统102和字体映射消耗系统103,但是字体映射创建系统102和字体映射消耗系统103是单个系统的一部分。实际上,字体映射创建系统102和字体映射消耗系统103是字体映射系统105的构成子系统。因此,在本文描述的实施例中,字体映射系统105执行本文描述的字体映射创建系统105和字体映射消耗系统103的动作和功能。
现在看到图11,关于字体映射创建系统102和字体映射消耗系统103的组件和能力的附加细节将被提供。特别地,图11图示了示例计算设备1100(例如客户端设备108和/或(多个)服务器104中的一个或多个)上的字体映射系统105(包括字体映射创建系统102和字体映射消耗系统103)的示例示意图。如图11所示,字体映射创建系统102可以包括字体标识管理器1102、特征提取管理器1104、可视特征分类管理器1106、可视呈现管理器1108和存储管理器1110。存储管理器1110可以结合一个或多个存储器设备操作,或包括一个或多个存储器设备,诸如数据库1112(例如数据库114),其存储各种数据,诸如用于自组织映射、PCA模型或t-SNE模型、编码器神经网络的算法以及字体的多个字体特征向量。
如刚刚提及的,字体映射创建系统102包括字体标识管理器1102。特别地,字体标识管理器1102管理,维护,检测,确定或标识与客户端设备(例如客户端设备108)相关联的字体。例如,字体标识管理器1102访问与客户端设备108和/或客户端应用110相关联的数据库,以标识安装在客户端设备108上,可由客户端应用访问或以其他方式与客户端设备108相关联的字体。
另外,字体映射创建系统102包括特征提取管理器1104。特别地,特征提取管理器1104管理,维护,提取,获得,生成或标识来自字体的特征。例如,特征提取管理器1104利用编码器神经网络从特征中提取字体,以将字体表示为特征向量,如本文描述的。实际上,特征提取管理器1104为针对客户端设备108标识的每个字体生成特征向量。
如图所示,字体映射创建系统102包括可视特征分类管理器1106。特别地,可视特征分类管理器1106基于字体之间的可视相似度来管理,维护,确定,映射,绘制,布置或标识字体。例如,可视特征分类管理器1106使用可视特征分类模型来确定字体之间的可视相似度,如本文描述的。另外,可视特征分类管理器1106将字体的特征向量映射到自组织映射的节点,从而根据可视相似度来布置特征向量。因此,如本文描述的,可视特征分类管理器1106基于节点权重来生成映射到字体映射的节点的特征向量的字体映射。附加地,可视特征分类管理器1106生成低分辨率字体映射、更高分辨率字体映射和/或自适应分辨率字体映射,如本文进一步描述的。在一些实施例中,可视特征分类管理器1106训练自组织映射,以生成准确的字体映射,如所描述的。
如进一步所示,字体映射消耗系统103包括可视呈现管理器1108。特别地,可视呈现管理器1108管理,维护,布置,提供,显示或生成来自字体映射的一个或多个字体的可视描绘。例如,通过基于可视外观从字体映射中选择字体,可视呈现管理器1108生成可视描绘。如本文描述的,可视呈现管理器1108可以遍历字体映射,以选择要包括在可视描绘内的字体,使得所选字体在可视外观上具有平滑的过渡。
附加地,字体映射创建系统102包括存储管理器1110。特别地,存储管理器1110管理、维护、存储、提供、接收或发送用于字体映射创建系统102的各种其他组件的信息。例如,存储管理器1110与特征提取管理器1104通信,以接收和存储针对字体提取的特征向量。另外,存储管理器1110与可视特征分类管理器1106通信,以提供用于映射到字体映射的特征向量。
在一个或多个实施例中,字体映射系统105的组件中的每个组件都使用任何合适的通信技术彼此通信。附加地,字体映射系统105的组件可以与包括上述一个或多个客户端设备的一个或多个其他设备通信。将认识到,尽管字体映射系统105的组件在图11中被示出为是分离的,但是任何子组件都可以被组合为更少的组件,诸如被组合为单个组件,或者可以被划分为更多的组件,因为它们可以服务于特定的实现。此外,尽管图11的组件是关于字体映射系统105描述的,但是用于结合本文描述的字体映射系统105执行操作的至少一些组件可以在环境内的其他设备上实现。
字体映射系统105的组件可以包括软件、硬件或两者。例如,字体映射系统105的组件可以包括一个或多个指令,该指令被存储在计算机可读存储介质上并且由一个或多个计算设备(例如计算设备1100)的处理器可执行。当由一个或多个处理器执行时,字体映射系统105的计算机可执行指令可以使计算设备1100执行本文描述的方法。备选地,字体映射系统105的组件可以包括硬件,诸如执行特定功能或功能组的专用处理设备。附加地或备选地,字体映射系统105的组件可以包括计算机可执行指令和硬件的组合。
此外,执行本文描述的功能的字体映射系统105的组件可以例如被实现为独立应用的一部分、应用的模块、包括内容管理应用的应用的插件、库功能或可以由其他应用调用的功能和/或云计算模型。因此,字体映射系统105的组件可以被实现为个人计算设备或移动设备上的独立应用的一部分。备选地或附加地,字体映射系统105的组件可以在任何应用或应用集合中实现,其允许创建营销内容并将其递送给用户,包括但不限于应用、服务、web托管的应用或来自ADOBE EXPERIENCE MANAGER、ADOBE FONTS和ADOBE CREATIVE CLOUD的应用集合,诸如ADOBE ILLUSTRATOR、ADOBE PHOTOSHOP和ADOBE INDESIGN。“ADOBE”、“ADOBEEXPERIENCE MANAGER”、“ADOBE FONTS”、“ADOBE CREATIVE CLOUD”、“ADOBE ILLUSTRATOR”、“ADOBE PHOTOSHOP”和“ADOBE INDESIGN”是Adobe公司在美国和/或其他国家的商标。
图1至图11、对应文本和示例提供了许多不同的系统、方法和非瞬态计算机可读介质,用于基于可视相似度生成字体映射以提供一个或多个字体的可视描绘进行选择。除了前述内容之外,实施例还可以按照流程图来描述,该流程图包括用于实现特定结果的动作。例如,图12图示了根据一个或多个实施例的示例动作序列或一系列动作的流程图。
尽管图12图示了根据一个实施例的动作,但是备选实施例可以省略、添加、重排序和/或修改图12所示的任何动作。图12的动作可以被执行为方法的一部分。备选地,非瞬态计算机可读介质可以包括指令,该指令在由一个或多个处理器执行时使计算设备执行图12的动作。在其他实施例中,系统可以执行图12的动作。附加地,本文描述的动作可以彼此并行或者与相同的或其他类似动作的不同实例并行地重复或执行。
图12图示了基于可视相似度生成字体映射以提供一个或多个字体的可视描绘进行选择的一系列示例动作1200。特别地,一系列动作1200包括以下动作1202:标识多个字体。例如,动作1202可以涉及:标识与客户端设备相关联的不同样式的多个字体。进一步地,动作1202可以包括:标识不同样式的多个客户端字体,或者标识不同样式的多个字体系列。
如图所示,一系列动作1200包括以下动作1204:从字体中提取特征。特别地,动作1204可以涉及:从多个字体中提取特征。例如,动作1204可以涉及:通过利用编码器神经网络从来自多个字体的每个字体中提取特征子集,从多个字体中提取特征。
附加地,一系列动作1200包括以下动作1206:通过特征确定字体之间的可视相似度。特别地,动作1206可以涉及:利用可视特征分类模型,通过特征确定多个字体之间的可视相似度。例如,动作1206可以涉及:确定特征空间中与多个字体相对应的特征向量之间的距离。实际上,动作1206可以涉及:确定特征向量之间的特征距离和针对字体映射内的节点集合的节点权重,该特征向量表示多个字体。
进一步地,一系列动作1200包括以下动作1208:根据可视相似度将字体映射到字体映射。特别地,动作1208可以涉及:利用可视特征分类模型,根据可视相似度将多个字体映射到字体映射。例如,动作1208可以涉及:将特定特征向量映射到字体映射内的节点子集,该特定特征向量表示视觉上类似的字体。
如进一步图示的,一系列动作1200包括以下动作1210:提供字体的可视描绘以用于显示。特别地,动作1210可以涉及:基于字体映射,提供来自多个字体的一个或多个字体的可视描绘,以用于在客户端设备上显示。例如,动作1210可以涉及:遍历字体映射以选择字体,该字体关于先前选择的字体在可视外观上具有小于阈值差异。
一系列动作1200还可以包括以下动作1212:提供用户与可视描绘交互的选项。特别地,动作1212可以涉及:提供用户与可视描绘交互的选项,以用于在客户端设备上显示。例如,动作1212可以包括以下动作:标识字体映射的目标区域。进一步地,动作1212可以包括以下动作:通过将字体子集映射到更高分辨率字体映射的节点子集,为目标区域生成更高分辨率字体映射。生成更高分辨率字体映射可以涉及:基于与目标区域相关联的边界,为更高分辨率字体映射固定边界条件;以及通过在节点权重之间进行内插,为目标区域内的新节点生成新节点权重,该节点权重对应于目标区域内的现有节点。
另外,一系列1200可以包括以下动作(例如作为动作1212的一部分):从客户端设备接收查看字体子集的请求,该字体子集对应于字体映射的目标区域。一系列动作1200还可以包括以下动作:提供字体子集的可视描绘,以用于在客户端设备上显示,该字体子集是根据更高分辨率字体映射内的视觉上类似的字体排序的。
一系列动作1200可以包括以下动作:通过以下操作,利用自组织映射生成字体映射,该字体映射包括与多个字体相对应的节点集合:确定特征向量与节点权重之间的特征距离,该节点权重对应于节点子集;以及基于特征距离,将特定特征向量映射到节点集合内的对应节点,该特定特征向量表示视觉上类似的字体。将特征向量映射到字体映射的节点可以包括:将特征向量与节点权重进行比较,该节点权重对应于字体映射的节点;以及基于将特征向量与节点权重进行比较,标识具有节点权重的字体映射的单个节点,该节点权重对应于多于一个特征向量。
附加地,一系列动作1200可以包括以下动作:由自组织映射生成包括多个分辨率的自适应分辨率字体映射,以:标识字体映射的目标区域,该目标区域对应于节点之间的u矩阵值,该u矩阵值超过u矩阵值阈值;以及通过将特征向量子集映射到目标区域内的节点子集,提高与u矩阵值相对应的目标区域的分辨率,该u矩阵值超过u矩阵值阈值。生成包括多个分辨率的自适应分辨率字体映射可以涉及:为字体映射的目标区域固定边界条件,该目标区域对应于超过u矩阵值阈值的u矩阵值;以及通过在节点权重之间进行内插,为目标区域内的新节点生成新节点权重,该节点权重对应于目标区域内的现有节点。
一系列动作1200还可以包括以下动作(例如作为动作1212的一部分):通过遍历字体映射以按顺序选择字体,推荐来自多个字体的字体,该字体关于先前选择的字体至少具有阈值相似度。遍历字体映射可以涉及:沿着与字体映射相关联的u矩阵的梯度遍历路径。一系列动作1200还可以包括以下动作:通过提供所选字体列表,提供一个或多个字体的可视描绘,所选字体列表由沿着u矩阵的梯度遍历字体映射产生。
附加地,一系列动作1200可以包括以下动作:通过以下操作,调谐自组织映射,以将样本特征向量映射到字体映射内的节点:将表示样本字体的样本特征向量输入到自组织映射中;通过优先处理u矩阵值超过u矩阵值阈值的节点,通过利用自组织映射将样本特征向量与初始节点权重进行比较,该初始节点权重关联于自组织映射的特定节点,确定针对样本特征向量的最佳匹配节点;以及修改最佳匹配节点的节点权重,以减少节点权重与样本特征向量之间的差异。
一系列动作1200可以包括以下其他动作(例如作为动作1212的一部分):从图形用户界面内接收对字体的用户选择的指示;响应于用户选择的指示,为字体映射的目标区域生成包括字体子集的更高分辨率字体映射,该目标区域与所选字体相关联;以及提供来自更高分辨率字体映射内的字体子集的字体的可视描绘,以用于在客户端设备上显示。
进一步地,一系列动作1200可以包括以下动作(例如作为动作1212的一部分):从图形用户界面内接收对字体的用户选择的指示;响应于用户选择的指示,标识字体映射内的字体子集,该字体子集关于所选字体在阈值可视相似度内;以及提供字体子集的可视描绘,以用于在客户端设备上显示。一系列动作1200还可以包括以下动作:通过以下操作,提供字体映射的可视描绘:比较字体的多个特征向量,该字体被映射到字体映射的单个节点,以从多个特征向量中标识最佳匹配特征向量,该最佳匹配特征向量与对应于单个节点的节点权重具有最小差异;以及生成与最佳匹配特征向量相对应的字体的可视描绘,以表示字体映射的可视描绘内的单个节点。
本公开的实施例可以包括或利用专用或通用计算机(包括计算机硬件),诸如例如一个或多个处理器和系统存储器,如下面更详细地讨论的。本公开的范围内的实施例还包括物理和其他计算机可读介质,用于携带或存储计算机可执行指令和/或数据结构。特别地,本文描述的一个或多个过程可以至少部分地被实现为指令,该指令被实施在非瞬态计算机可读介质中并且由一个或多个计算设备(例如本文描述的媒体内容访问设备中的任何一个)可执行。通常,处理器(例如微处理器)从非瞬态计算机可读介质(例如存储器)接收指令,并且执行那些指令,从而执行一个或多个过程(包括本文描述的一个或多个过程)。
计算机可读介质可以是任何可用介质,其可以由通用或专用计算机系统访问。存储计算机可执行指令的计算机可读介质是非瞬态计算机可读存储介质(设备)。携带计算机可执行指令的计算机可读介质是传输介质。因此,通过示例而非限制,本公开的实施例可以包括至少两种明显不同种类的计算机可读介质:非瞬态计算机可读存储介质(设备)和传输介质。
非瞬态计算机可读存储介质(设备)包括RAM、ROM、EEPROM、CD-ROM、固态驱动器(“SSD”)(例如基于RAM)、闪存、相变存储器(“PCM”)、其他类型的存储器、其他光盘存储装置、磁盘存储装置或其他磁性存储设备或者任何其他介质,其可以被用于以计算机可执行指令或数据结构的形式存储期望的程序代码部件,并且可以由通用或专用计算机访问。
“网络”被定义为一个或多个数据链路,该一个或多个数据链路使得能够在计算机系统和/或模块和/或其他电子设备之间输送电子数据。当信息通过网络或另一通信连接(硬连线的、无线的或者硬连线或无线的组合)被转移或提供给计算机时,计算机将该连接正确地视为传输介质。传输介质可以包括网络和/或数据链路,其可以被用于以计算机可执行指令或数据结构的形式携带期望的程序代码部件,并且可以由通用或专用计算机访问。以上的组合也应该被包括在计算机可读介质的范围内。
进一步地,在到达各种计算机系统组件时,计算机可执行指令或数据结构形式的程序代码部件可以从传输介质自动转移到非瞬态计算机可读存储介质(设备)(反之亦然)。例如,通过网络或数据链路接收的计算机可执行指令或数据结构可以被缓冲在网络接口模块(例如“NIC”)内的RAM中,然后最终被转移到计算机系统RAM和/或计算机系统处易失性较低的计算机存储介质(设备)。因此,应该理解的是,非瞬态计算机可读存储介质(设备)可以被包括在计算机系统组件中,该计算机系统组件也(甚或主要地)利用传输介质。
例如,计算机可执行指令包括指令和数据,该指令和数据在处理器处执行时使通用计算机、专用计算机或专用处理设备执行某个功能或功能组。在一些实施例中,计算机可执行指令在通用计算机上被执行,以将通用计算机转变为专用计算机,该专用计算机实现本公开的元件。例如,计算机可执行指令可以是二进制、中间格式指令(诸如汇编语言)甚或源代码。尽管本主题已经用特定于结构特征和/或方法动作的语言描述,但是要理解的是,所附权利要求中限定的主题不必被限于所描述的特征或上述动作。相反,所描述的特征和动作被公开为实现权利要求的示例形式。
本领域技术人员将了解,本公开可以被实践在网络计算环境中,该网络计算环境具有许多类型的计算机系统配置,包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器或可编程的消费型电子设备、网络PC、小型计算机、大型计算机、移动电话、PDA、平板计算机、寻呼机、路由器、交换机等。本公开还可以被实践在分布式系统环境中,其中通过网络链接(通过硬连线的数据链路、无线数据链路或者通过硬连线和无线数据链路的组合)的本地和远程计算机系统执行任务。在分布式系统环境中,程序模块可以位于本地和远程存储器存储设备中。
本公开的实施例还可以被实现在云计算环境中。在本描述中,“云计算”被定义为模型,该模型用于实现对可配置计算资源的共享池的按需网络访问。例如,云计算可以在市场中采用,以提供对可配置计算资源的共享池的无处不在且方便的按需访问。可配置计算资源的共享池可以经由虚拟化快速供应,并且用低管理工作量或服务提供方交互来释放,然后相应地缩放。
云计算模型可以由各种特性组成,诸如例如按需自助服务、广泛的网络访问、资源池化、快速弹性、测量服务等。云计算模型还可以公开各种服务模型,诸如例如软件即服务(“SaaS”)、平台即服务(“PaaS”)和基础设施即服务(“IaaS”)。云计算模型还可以使用不同的部署模型来部署,诸如私有云、社区云、公共云、混合云等。在本描述和权利要求中,“云计算环境”是云计算被采用的环境。
图13以框图形式图示了示例计算设备1300(例如计算设备1100、客户端设备108和/或(多个)服务器104),该示例计算设备1300可以被配置为执行上述一个或多个过程。将了解的是,字体映射系统105可以包括计算设备1300的实现。如图13所示,计算设备可以包括处理器1302、存储器1304、存储设备1306、I/O接口1308和通信接口1310。此外,计算设备1300可以包括输入设备,诸如触摸屏、鼠标、键盘等。在某些实施例中,与图13所示的组件相比,计算设备1300可以包括更少或更多的组件。图13所示的计算设备1300的组件现在将以附加细节描述。
在特定实施例中,(多个)处理器1302包括用于执行指令的硬件,诸如组成计算机程序的指令。作为示例并且不通过限制,为了执行指令,(多个)处理器1302可以从内部寄存器、内部缓存、存储器1304或存储设备1306中取回(或取得)指令,并且译码和执行它们。
计算设备1300包括存储器1304,该存储器1304被耦合至(多个)处理器1302。存储器1304可以被用于存储数据、元数据和程序,以用于由(多个)处理器执行。存储器1304可以包括易失性和非易失性存储器中的一个或多个,诸如随机存取存储器(“RAM”)、只读存储器(“ROM”)、固态盘(“SSD”)、闪存、相变存储器(“PCM”)或其他类型的数据存储装置。存储器1304可以是内部或分布式存储器。
计算设备1300包括存储设备1306,包括用于存储数据或指令的存储装置。作为示例并且不通过限制,存储设备1306可以包括上述非瞬态存储介质。存储设备1306可以包括硬盘驱动器(HDD)、闪存、通用串行总线(USB)驱动器或这些的组合或者其他存储设备。
计算设备1300还包括一个或多个输入或输出(“I/O”)设备/接口1308,其被提供以允许用户向计算设备1300提供输入(诸如用户笔触),从计算设备1300接收输出,并且以其他方式在计算设备1300之间转移数据。这些I/O设备/接口1308可以包括鼠标、小键盘或键盘、触摸屏、相机、光学扫描仪、网络接口、调制解调器、其他已知的I/O设备或者这种I/O设备/接口1308的组合。触摸屏可以利用写入设备或手指来启动。
I/O设备/接口1308可以包括一个或多个设备,用于向用户呈现输出,包括但不限于图形引擎、显示器(例如显示屏)、一个或多个输出驱动器(例如显示驱动器)、一个或多个音频映射器和一个或多个音频驱动器。在某些实施例中,设备/接口1308被配置为向显示器提供图形数据,以用于呈现给用户。图形数据可以代表一个或多个图形用户界面和/或任何其他图形内容,其可以服务于特定实现。
计算设备1300还可以包括通信接口1310。通信接口1310可以包括硬件、软件或两者。通信接口1310可以提供一个或多个接口,用于在计算设备和一个或多个其他计算设备1300或一个或多个网络之间通信(诸如例如基于分组的通信)。作为示例并且不通过限制,通信接口1310可以包括网络接口控制器(NIC)或网络适配器,用于与以太网或其他基于有线的网络通信,或者包括无线NIC(WNIC)或无线适配器,用于与无线网络通信,诸如WI-FI。计算设备1300还可以包括总线1312。总线1312可以包括硬件、软件或两者,其将计算设备1300的组件耦合至彼此。
在前述说明书中,本发明已经参照其特定示例实施例来描述。(多个)本发明的各种实施例和方面参照本文讨论的细节来描述,并且附图图示了各种实施例。以上描述和附图说明了本发明,并且不被解释为限制本发明。许多特定细节被描述,以提供对本发明的各种实施例的透彻理解。
本发明可以在不脱离其精神或基本特性的情况下以其他特定形式实施。所描述的实施例在所有方面仅被认为是说明性的,而不是限制性的。例如,本文描述的方法可以用更少或更多的步骤/动作执行,或者这些步骤/动作可以以不同顺序执行。附加地,本文描述的步骤/动作可以彼此并行或与相同或类似的步骤/动作的不同实例并行地重复或执行。因此,本发明的范围是由所附权利要求指示的,而不是由前述描述指示的。落入权利要求的等同含义和范围内的所有变化都将被包含在其范围内。
Claims (20)
1.一种非瞬态计算机可读介质,包括指令,所述指令在由至少一个处理器执行时使计算设备:
标识与客户端设备相关联的不同样式的多个字体;
从所述多个字体中提取特征;
利用可视特征分类模型,从所述特征确定所述多个字体之间的可视相似度;
利用所述可视特征分类模型,根据所述可视相似度将所述多个字体映射到字体映射;以及
基于所述字体映射,提供来自所述多个字体的一个或多个字体的可视描绘,以用于在所述客户端设备上显示。
2.根据权利要求1所述的非瞬态计算机可读介质,还包括指令,所述指令在由所述至少一个处理器执行时使所述计算设备:通过利用编码器神经网络从来自所述多个字体的每个字体中提取特征子集,从所述多个字体中提取所述特征。
3.根据权利要求1所述的非瞬态计算机可读介质,还包括指令,所述指令在由所述至少一个处理器执行时使所述计算设备:通过确定特征空间中与所述多个字体相对应的特征向量之间的距离,确定所述多个字体之间的所述可视相似度。
4.根据权利要求1所述的非瞬态计算机可读介质,还包括指令,所述指令在由所述至少一个处理器执行时使所述计算设备:
通过确定特征向量之间的特征距离和针对所述字体映射内的节点集合的节点权重,确定所述多个字体之间的所述可视相似度,所述特征向量表示所述多个字体;以及
通过将特定特征向量映射到所述字体映射内的节点子集,根据所述可视相似度,将所述多个字体映射到所述字体映射,所述特定特征向量表示视觉上类似的字体。
5.根据权利要求1所述的非瞬态计算机可读介质,还包括指令,所述指令在由所述至少一个处理器执行时使所述计算设备:提供用户与所述可视描绘交互的选项,以用于在所述客户端设备上显示。
6.根据权利要求1所述的非瞬态计算机可读介质,还包括指令,所述指令在由所述至少一个处理器执行时使所述计算设备:
标识所述字体映射的目标区域;以及
通过将字体子集映射到更高分辨率字体映射的节点子集,为所述目标区域生成所述更高分辨率字体映射。
7.根据权利要求5所述的非瞬态计算机可读介质,还包括指令,所述指令在由所述至少一个处理器执行时使所述计算设备:还通过以下操作来生成更高分辨率字体映射,
基于与所述目标区域相关联的边界,为所述更高分辨率字体映射固定边界条件;以及
通过在节点权重之间进行内插,为所述目标区域内的新节点生成新节点权重,所述节点权重对应于所述目标区域内的现有节点。
8.根据权利要求5所述的非瞬态计算机可读介质,还包括指令,所述指令在由所述至少一个处理器执行时使所述计算设备:
从所述客户端设备接收查看所述字体子集的请求,所述字体子集对应于所述字体映射的所述目标区域;以及
提供所述字体子集的可视描绘,以用于在所述客户端设备上显示,所述字体子集是根据所述更高分辨率字体映射内的视觉上类似的字体排序的。
9.一种系统,包括:
一个或多个存储器设备,包括多个字体、编码器神经网络和自组织映射;以及
一个或多个计算设备,其被配置为使所述系统:
利用所述编码器神经网络,从所述多个字体中提取特征向量;
通过以下操作,利用所述自组织映射,生成包括节点集合的字体映射,所述节点集合对应于所述多个字体:
确定所述特征向量与节点权重之间的特征距离,所述节点权重对应于所述节点集合;以及
基于所述特征距离,将特定特征向量映射到所述节点集合内的对应节点,所述特定特征向量表示视觉上类似的字体;以及
基于所述字体映射,提供来自所述多个字体的一个或多个字体的可视描绘,以用于在客户端设备上显示。
10.根据权利要求9所述的系统,其中所述一个或多个计算设备还被配置为使所述系统:由所述自组织映射生成包括多个分辨率的自适应分辨率字体映射,以:
标识所述字体映射的目标区域,所述目标区域对应于节点之间的u矩阵值,所述u矩阵值超过u矩阵值阈值;以及
通过将特征向量子集映射到所述目标区域内的节点子集,提高与u矩阵值相对应的所述目标区域的分辨率,所述u矩阵值超过所述u矩阵值阈值。
11.根据权利要求10所述的系统,其中所述一个或多个计算设备还被配置为使所述系统:还通过以下操作,生成包括多个分辨率的所述自适应分辨率字体映射:
为所述字体映射的所述目标区域固定边界条件,所述目标区域对应于超过所述u矩阵值阈值的u矩阵值;以及
通过在节点权重之间进行内插,为所述目标区域内的新节点生成新节点权重,所述节点权重对应于所述目标区域内的现有节点。
12.根据权利要求9所述的系统,其中所述一个或多个计算设备还被配置为使所述系统:通过遍历所述字体映射选择字体或另一字体,推荐来自所述多个字体的字体,所述字体关于先前选择的字体至少具有阈值相似度,所述另一字体关于先前选择的字体在可视外观上具有小于阈值差异。
13.根据权利要求12所述的系统,其中所述一个或多个计算设备还被配置为使所述系统:通过沿着与所述字体映射相关联的u矩阵的梯度遍历路径,遍历所述字体映射。
14.根据权利要求13所述的系统,其中所述一个或多个计算设备还被配置为使所述系统:通过提供所选字体列表,提供所述一个或多个字体的所述可视描绘,所述所选字体列表由沿着所述u矩阵的所述梯度遍历所述字体映射产生。
15.根据权利要求9所述的系统,其中所述一个或多个计算设备还被配置为使所述系统:通过以下操作,将特征向量映射到所述字体映射的节点:
将所述特征向量与节点权重进行比较,所述节点权重对应于所述字体映射的所述节点;以及
基于将所述特征向量与所述节点权重进行比较,标识所述字体映射的具有节点权重的单个节点,所述节点权重对应于多于一个特征向量。
16.根据权利要求9所述的系统,其中所述一个或多个计算设备还被配置为使所述系统:通过以下操作,调谐所述自组织映射,以将样本特征向量映射到所述字体映射内的节点:
将表示样本字体的样本特征向量输入到所述自组织映射中;
通过优先处理u矩阵值超过u矩阵值阈值的节点,通过利用所述自组织映射将所述样本特征向量与初始节点权重进行比较,确定针对所述样本特征向量的最佳匹配节点,所述初始节点权重关联于所述自组织映射的特定节点;以及
修改所述最佳匹配节点的节点权重,以减少所述节点权重与所述样本特征向量之间的差异。
17.一种计算机实现的方法,用于为字体选择生成和提供字体映射,所述计算机实现的方法包括:
标识与客户端设备相关联的不同样式的多个字体;
执行用于根据可视相似度构建布置所述多个字体的字体映射的步骤;以及
根据所述字体映射,提供包括字体的可视描绘的图形用户界面,以用于在所述客户端设备上显示,所述字体来自被组织用于导航的所述多个字体。
18.根据权利要求17所述的计算机实现的方法,还包括:
从所述图形用户界面内接收对字体的用户选择的指示;
响应于所述用户选择的所述指示,为所述字体映射的目标区域生成包括字体子集的更高分辨率字体映射,所述目标区域与所选字体相关联;以及
提供来自所述更高分辨率字体映射内的所述字体子集的字体的可视描绘,以用于在所述客户端设备上显示。
19.根据权利要求17所述的计算机实现的方法,其中标识与所述客户端设备相关联的不同样式的所述多个字体包括:标识不同样式的多个客户端字体,或者标识不同样式的多个字体系列。
20.根据权利要求17所述的计算机实现的方法,其中提供字体的所述可视描绘以用于在所述客户端设备上显示包括:通过以下操作,提供所述字体映射的可视描绘:
将字体的多个特征向量进行比较,所述字体被映射到所述字体映射的单个节点,以从所述多个特征向量中标识最佳匹配特征向量,所述最佳匹配特征向量与对应于所述单个节点的节点权重具有最小差异;以及
生成与所述最佳匹配特征向量相对应的字体的可视描绘,以表示所述字体映射的所述可视描绘内的所述单个节点。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/007,790 | 2020-08-31 | ||
US17/007,790 US11625932B2 (en) | 2020-08-31 | 2020-08-31 | Organizing and representing a collection of fonts according to visual similarity utilizing machine learning |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114118009A true CN114118009A (zh) | 2022-03-01 |
Family
ID=80221740
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110635549.8A Pending CN114118009A (zh) | 2020-08-31 | 2021-06-08 | 利用机器学习根据可视相似度来组织和表示字体集合 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11625932B2 (zh) |
CN (1) | CN114118009A (zh) |
DE (1) | DE102021003294A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11625932B2 (en) * | 2020-08-31 | 2023-04-11 | Adobe Inc. | Organizing and representing a collection of fonts according to visual similarity utilizing machine learning |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005006249A1 (en) * | 2003-07-09 | 2005-01-20 | Raptor International Holdings Pty Ltd | Method and system of data analysis using neural networks |
US20110276872A1 (en) * | 2010-05-06 | 2011-11-10 | Xerox Corporation | Dynamic font replacement |
US20140136957A1 (en) * | 2012-11-09 | 2014-05-15 | Monotype Imaging Inc. | Supporting Scalable Fonts |
US20170061257A1 (en) * | 2013-12-16 | 2017-03-02 | Adobe Systems Incorporated | Generation of visual pattern classes for visual pattern regonition |
US9501724B1 (en) * | 2015-06-09 | 2016-11-22 | Adobe Systems Incorporated | Font recognition and font similarity learning using a deep neural network |
US9875429B2 (en) * | 2015-10-06 | 2018-01-23 | Adobe Systems Incorporated | Font attributes for font recognition and similarity |
US9824304B2 (en) * | 2015-10-06 | 2017-11-21 | Adobe Systems Incorporated | Determination of font similarity |
US10074042B2 (en) * | 2015-10-06 | 2018-09-11 | Adobe Systems Incorporated | Font recognition using text localization |
US10528649B2 (en) * | 2016-09-29 | 2020-01-07 | Adobe Inc. | Recognizing unseen fonts based on visual similarity |
US11003831B2 (en) * | 2017-10-11 | 2021-05-11 | Adobe Inc. | Automatically pairing fonts using asymmetric metric learning |
US10515295B2 (en) * | 2017-10-27 | 2019-12-24 | Adobe Inc. | Font recognition using triplet loss neural network training |
US10592787B2 (en) * | 2017-11-08 | 2020-03-17 | Adobe Inc. | Font recognition using adversarial neural network training |
US10515296B2 (en) * | 2017-11-14 | 2019-12-24 | Adobe Inc. | Font recognition by dynamically weighting multiple deep learning neural networks |
US10878298B2 (en) * | 2019-03-06 | 2020-12-29 | Adobe Inc. | Tag-based font recognition by utilizing an implicit font classification attention neural network |
US11625932B2 (en) * | 2020-08-31 | 2023-04-11 | Adobe Inc. | Organizing and representing a collection of fonts according to visual similarity utilizing machine learning |
CN113792851B (zh) * | 2021-09-09 | 2023-07-25 | 北京百度网讯科技有限公司 | 字体生成模型训练方法、字库建立方法、装置及设备 |
-
2020
- 2020-08-31 US US17/007,790 patent/US11625932B2/en active Active
-
2021
- 2021-06-08 CN CN202110635549.8A patent/CN114118009A/zh active Pending
- 2021-06-25 DE DE102021003294.2A patent/DE102021003294A1/de active Pending
Also Published As
Publication number | Publication date |
---|---|
US20220067461A1 (en) | 2022-03-03 |
DE102021003294A1 (de) | 2022-03-03 |
US11625932B2 (en) | 2023-04-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7112931B2 (ja) | トリプレット損失ニューラル・ネットワーク・トレーニングを使用するフォント認識の改善 | |
US10467508B2 (en) | Font recognition using text localization | |
US20180114097A1 (en) | Font Attributes for Font Recognition and Similarity | |
US9164667B2 (en) | Word cloud rotatable through N dimensions via user interface | |
US8669995B2 (en) | Methods and apparatus for stroke grouping for high-level sketch editing | |
US9824304B2 (en) | Determination of font similarity | |
US11676283B2 (en) | Iteratively refining segmentation masks | |
US11763583B2 (en) | Identifying matching fonts utilizing deep learning | |
CN111428457B (zh) | 数据表的自动格式化 | |
US20230245266A1 (en) | Generating digital images utilizing high-resolution sparse attention and semantic layout manipulation neural networks | |
US11392659B2 (en) | Utilizing machine learning models to generate experience driven search results based on digital canvas gesture inputs | |
US11823313B2 (en) | Performing patch matching guided by a transformation gaussian mixture model | |
US20230127525A1 (en) | Generating digital assets utilizing a content aware machine-learning model | |
US20220414936A1 (en) | Multimodal color variations using learned color distributions | |
CN114118009A (zh) | 利用机器学习根据可视相似度来组织和表示字体集合 | |
Luo et al. | Texture Browser: Feature‐based Texture Exploration | |
US11977829B2 (en) | Generating scalable and semantically editable font representations | |
US20230325996A1 (en) | Generating composite images using user interface features for auto-compositing and composite-aware search | |
US11875435B2 (en) | Generating scalable fonts utilizing multi-implicit neural font representations | |
US20230325991A1 (en) | Recommending objects for image composition using a geometry-and-lighting aware neural network | |
US20230325992A1 (en) | Recommending objects for image composition using geometry-and-lighting aware search and efficient user interface workflows | |
US11922544B2 (en) | Utilizing clustering to synthesize vector patterns in digital images | |
US11854131B2 (en) | Content-specific-preset edits for digital images | |
US20230129341A1 (en) | Generating object mask previews and single input selection object masks | |
US20230061244A1 (en) | Continuous curve textures |
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 |