Using machine learning to organize and represent font sets based on visual similarity
By generating a font mapping system and utilizing a visual feature classification model and self-organizing mapping, the inefficiency and lengthy user interaction of conventional font management systems are solved, achieving more efficient and accurate font selection and navigation.
Patent Information
- Application Number
- CN202110635549.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-08-31
- Filing Date
- 2021-06-08
- Publication Date
- 2025-10-31
- Estimated Expiration
- 2041-06-08
AI Technical Summary
Conventional font management systems are inefficient in organizing and presenting fonts, fail to meet the aesthetic needs of designers, underutilize computing resources, have lengthy user interactions, and struggle to accurately navigate and select visually similar fonts.
A font mapping is generated using a visual feature classification model. Font features are mapped to locations through self-organizing mapping. Fonts are organized and presented based on visual similarity, providing high-resolution mapping to improve selection accuracy.
It improves the efficiency and accuracy of font selection, reduces user interaction, optimizes the utilization of computing resources, and provides a smarter graphical user interface and more accurate font navigation.
Smart Images

Figure CN114118009B_ABST
Abstract
Description
Technical Field
[0001] The embodiments disclosed herein relate to digital content editing. Background Technology
[0002] In the field of digital content editing, font management systems have developed various presentation or selection mechanisms for designers or other users to choose fonts. For example, font management systems sometimes use various fonts to present sample text to show designers what the fonts look like, while other times they present descriptions or groupings of various fonts. Although conventional font management systems provide some tools to help with font selection, these conventional systems still exhibit many technical shortcomings.
[0003] For example, many conventional font management systems use strict and limited computational models to manage and present fonts. In some such cases, by presenting fonts alphabetically or according to broad and rigid typeface categories, such as grouping serif or gothic typefaces together based on regular labels or keywords, conventional systems organize and present fonts in sequential lists or groups. Due to their limited methods of font presentation, conventional systems struggle to accommodate designers' desired aesthetics and provide guidance for more refined font selection based on typographic aesthetics.
[0004] Conventional font management systems, at least in part due to their limitations in organizing or presenting fonts, also inefficiently present graphical user interfaces for navigating between fonts and inefficiently consume computational resources. For example, conventional systems inefficiently utilize processing time, processing power, and memory when handling user interactions to access desired data and / or functionality when selecting fonts sorted alphabetically or by word grouping. In fact, conventional systems may require excessive user interaction to navigate to fonts and select them from the presented lists. For example, for a user to select a font using a conventional system, the user must either know the font name to enter as a search query or must scroll through a long list of fonts to find one with the desired visual appearance. This scrolling can be particularly tedious when the number of fonts becomes large, as is the case with many conventional font management systems.
[0005] Therefore, conventional font management systems have several drawbacks. Summary of the Invention
[0006] This disclosure describes one or more embodiments of methods, non-transient computer-readable media, and systems that provide benefits and address one or more of the foregoing or other problems in the art. In particular, the disclosed systems utilize visual feature classification models to generate font maps that efficiently and accurately organize fonts based on visual similarity. For example, the disclosed systems can extract features from fonts of different styles and utilize self-organizing maps (or other visual feature classification models) to map the extracted font features to locations within the font map. Such font maps can be two-dimensional or three-dimensional (or n-dimensional) and have fonts mapped to locations based on visual attributes indicated by the font features. In some cases, the disclosed systems also enlarge the area of the font map by mapping some fonts within boundary regions to locations within a higher-resolution font map. After generating or resizing the font map, the disclosed systems can also navigate the font map to identify visually similar fonts (e.g., fonts within a threshold similarity). By generating font maps using visual feature classification models, the disclosed systems can efficiently and accurately organize fonts in visually coherent maps to enhance font identification and presentation in graphical user interfaces.
[0007] Additional features and advantages of one or more embodiments of this disclosure are outlined in the following description and will become apparent in part from the description, or may be learned by practicing such exemplary embodiments. Attached Figure Description
[0008] This disclosure describes one or more embodiments of the invention with additional specificity and detail by referring to the accompanying drawings. The following paragraphs briefly describe these drawings, in which:
[0009] Figure 1 The illustration shows an example system environment, including a font mapping creation system and a font mapping consumption system. The font mapping system can operate according to one or more embodiments.
[0010] Figure 2 The illustration shows an overview of a font mapping creation system for generating font maps according to one or more embodiments;
[0011] Figure 3 The illustration depicts a visual representation of a font mapping according to one or more embodiments;
[0012] Figures 4A to 4B A heatmap according to one or more embodiments is illustrated, which depicts the density of a font having specific visual characteristics in a font map;
[0013] Figure 5 The illustration shows a font mapping consumption system according to one or more embodiments, which follows a gradient to traverse the font mapping;
[0014] Figure 6 The illustration depicts a font mapping consumption system according to one or more embodiments, which uses nearest neighbor traversal of the font mapping;
[0015] Figure 7 The illustration depicts a higher resolution font mapping according to one or more embodiments;
[0016] Figure 8 The illustration depicts a higher resolution font mapping with fixed boundary conditions according to one or more embodiments;
[0017] Figure 9 The illustration shows a diagram of a system for training or tuning a visual feature classification model for font mapping creation, according to one or more embodiments.
[0018] Figure 10 The illustration shows a three-dimensional free-spaced font mapping generated using an alternative visual feature classification model according to one or more embodiments;
[0019] Figure 11 The illustration shows a schematic diagram of a font mapping system according to one or more embodiments;
[0020] Figure 12 The diagram illustrates a series of actions according to one or more embodiments for generating font maps based on visual similarity to provide a visual representation of one or more fonts; and
[0021] Figure 13 A block diagram of an example computing device according to one or more embodiments is illustrated. Detailed Implementation
[0022] This disclosure describes one or more embodiments of a font mapping system that organizes and renders fonts based on visual similarity using a visual feature classification model. For example, in some cases, the font mapping system utilizes a self-organizing map (or other visual feature classification model) to determine visual similarity between fonts based on extracted features associated with the fonts. The font mapping system also arranges fonts within a font map according to visual similarity, thereby grouping visually similar fonts together in the vicinity of the font map. For example, in some implementations, the font map creation system utilizes a self-organizing map to arrange fonts according to visual similarity. In some embodiments, the font mapping system selects (or recommends) font(s) to be included or suggested within the visual depiction by traversing the font map according to one or more traversal rules. In some cases, the font mapping system generates font maps and visual depictions of fonts as an offline process for transparent updates and / or software product integration.
[0023] In some embodiments described herein, the font mapping system performs actions or functions associated with one or more subsystems, such as a font mapping creation system and a font mapping consumption system. In practice, in some cases, by utilizing a visual feature classification model (e.g., a self-organizing map), the font mapping system performs actions associated with the font mapping creation system to generate a font map by arranging fonts according to visual similarity. In some embodiments, the font mapping system also performs actions associated with the font mapping consumption system, which generates (or renders) a visual depiction of the font map and receives instructions for user interaction with the font map (e.g., font selection). Although this disclosure generally describes actions and features as subsystems, such as a font mapping creation system and a font mapping consumption system, the disclosed font mapping system performs these actions in the same way and exhibits the features described herein.
[0024] As mentioned, in some embodiments, the font mapping creation system determines the visual similarity of fonts by utilizing a visual feature classification model. To determine visual similarity, the font mapping creation system extracts features from the fonts, including visible features and / or potentially unobservable (e.g., deep) features. For example, the font mapping creation system utilizes an encoder neural network to extract features from multiple fonts associated with a client device. Therefore, the font mapping creation system generates a font feature vector representing the extracted features of the font.
[0025] In addition to extracting font features, in one or more embodiments, the font mapping creation system determines visual similarity between fonts by comparing font features within a latent feature space. For example, the font mapping creation system determines feature distances (e.g., Euclidean distances) between font feature vectors in the latent space. Therefore, the font mapping creation system determines visual similarity between fonts based on these corresponding distances. In some embodiments, the font mapping creation system utilizes a visual feature classification model to map font features to a latent space and determines visual similarity by, for example, determining the distances between font feature vectors within the font mapping.
[0026] For example, a font mapping creation system utilizes a visual feature classification model in the form of a self-organizing map, which is trained to map fonts based on visual similarity. In some cases, the font mapping creation system inputs vectors of font features into the self-organizing map, thereby placing the vectors at locations within the font map based on weights associated with the individual nodes of the self-organizing map. Thus, based on visual similarity with other fonts, the font mapping creation system maps the feature vectors of fonts to arrange them within the font map. In effect, the font mapping creation system creates font maps to arrange fonts (or features corresponding to fonts) based on a neighborhood function according to visual similarity, where fonts that look alike (e.g., have similar features) are grouped together or are close to each other within the font map.
[0027] In some embodiments, the font mapping creation system trains or tunes a self-organizing map (SOM) based on sample feature vectors representing sample fonts to accurately map fonts within the font mapping. In practice, the font mapping creation system trains the SOM by introducing a novel technique for identifying the best-matching node during the training process. For example, the font mapping creation system uses the SOM to compare the sample feature vectors representing sample fonts with node weights within the SOM, prioritizing nodes with u-matrix values exceeding a u-matrix value threshold. Additional details regarding the training and application of the SOM are provided below with reference to the accompanying drawings.
[0028] As mentioned above, in some embodiments, the font mapping consumption system generates and provides visual depictions of fonts for display on client devices. More specifically, in some cases, the font mapping consumption system accesses and selects one or more fonts to display within the visual depiction. To select fonts for display, the font mapping consumption system selects all or part of the font map (from the font map creation system) and visually depicts the fonts represented by the font map by identifying the fonts for nodes or locations within the font map (e.g., the fonts whose feature vectors are mapped to nodes). In some embodiments, the font mapping consumption system traverses or navigates the font map according to one or more traversal rules to select fonts to be included in the visual depiction. For example, the font mapping consumption system traverses the font map to identify and select fonts within a threshold similarity to each other. Thus, the font mapping consumption system traverses the font map by following directions that maintain similar visual attributes between nodes. As another example, the font mapping consumption system traverses the font map to select fonts that have at least a threshold difference in appearance between them to provide a broader array of font options.
[0029] In some embodiments, the font mapping consumption system traverses a font map by selecting a font (or a feature vector of a font), and then selects other fonts in the sequence one after another. Regarding the fonts previously selected in the sequence, each font selected by the font mapping consumption system in the sequence has at least a threshold visual similarity (or less than a threshold difference in visual appearance). In some cases, the font mapping consumption system utilizes specific font map traversal rules to maintain a smooth transition between different fonts. For example, the font mapping consumption system navigates the font map along a basic direction, following nearest neighbors in the latent feature space (while simultaneously visiting neighbors in the map space), or following the gradient of the u-matrix corresponding to the font map. By traversing the font map, the font mapping consumption system identifies and selects fonts for presentation on the client device. For example, in some embodiments, the font mapping consumption system identifies a font that visually resembles a user-selected font within the font map to provide for display within a font list.
[0030] In addition to generating an initial font map, in some embodiments, the font map creation system also generates adaptive resolution font maps with multiple resolutions. For detailed description, by providing low-resolution font maps with fewer fonts and / or fonts representing larger categories or font families, the font map creation system supports font selection at different granularity levels. In some cases, the font map creation system generates and provides higher-resolution font maps that include more fonts and / or fonts at more refined levels, where there are subtle differences in the visual appearance between adjacent fonts. In some embodiments, the font map creation system provides higher-resolution font maps based on user selection of fonts within the low-resolution font map. By accessing these higher-resolution font maps from the font map creation system, the font map creation system helps designers identify desired fonts with preferred appearances at a more precise level.
[0031] In some embodiments, the font mapping creation system fixes boundary conditions for the font mapping to generate such a higher-resolution font mapping. For example, the font mapping creation system identifies the target region of the low-resolution font mapping (e.g., based on user selection). In some implementations, the font mapping creation system also fixes boundary conditions to generate a higher-resolution font mapping for the target region, such that the font mapping creation system identifies additional fonts belonging to the target region at a more refined level based on visual similarity. In one or more embodiments, the font mapping creation system fixes boundary conditions by identifying certain nodes (or corresponding node weights) for the boundaries of the target region and interpolating between nodes (or node weights) to increase the number of nodes or resolution within the target region. For example, the font mapping creation system identifies the font (or its corresponding feature vector) mapped to the target region at a higher resolution by comparing the node weights of the added nodes with the feature vector of the font. Additional details regarding generating font mappings at different resolutions (or generating different regions of a single font mapping at different resolutions) are provided below with reference to the accompanying drawings.
[0032] In one or more embodiments, the font mapping creation system utilizes a visual feature classification model to arrange and render stylized graphics based on visual similarity. Such stylized graphics may include logos, badges, fonts, icons, graphic designs, etc. In practice, in addition to (or alternatively) arranging fonts based on visual similarity between fonts, in some implementations, the font mapping creation system utilizes the techniques described herein to arrange stylized graphics based on visual similarity between stylized graphics and provides a visual representation of them. For example, to map stylized graphics, the font mapping creation system uses an encoder neural network to extract features from the stylized graphics to generate stylized graphic feature vectors. Further, the font mapping creation system uses a self-organizing map to map the stylized graphic feature vectors to a stylized graphic map. In some cases, the font mapping system generates a visual representation of one or more stylized graphics by selecting stylized graphic feature vectors from the stylized graphic map. Therefore, in some embodiments, the reference to "font" in this disclosure may be replaced by "stylized graphic".
[0033] As implied above, font mapping systems (including font mapping creation systems and font mapping consumption systems) offer several advantages over conventional font management systems. For example, font mapping systems provide new techniques by generating font maps using visual feature classification models to arrange fonts based on visual appearance or similarity and to select fonts for display. Specifically, font mapping systems extract features from different font styles and generate font maps using self-organizing maps (or other visual feature classification models) by arranging fonts based on the visual similarity of the extracted features. In contrast, many conventional font management systems strictly present fonts as a list ordered alphabetically (or some other classification). Font mapping systems can map fonts to font maps by implementing an ordered set of unconventional steps that previous systems did not capture or imply. For example, in some cases, font mapping systems capture new font maps by implementing unconventional steps that include determining visual similarity between fonts using a visual feature classification model (e.g., a self-organizing map) and mapping fonts to font maps using the same model to arrange fonts based on visual or perceptual similarity.
[0034] Unlike many conventional systems, font mapping systems offer different levels of granularity for font selection because they can render fonts based on visual similarity. For example, a font mapping system allows designers to select a font and then render other fonts with similar visual characteristics to the selected font. Therefore, compared to traditional systems, font mapping systems improve font navigation and provide more precise control over font selection.
[0035] At least in part, due to novel font mapping and other technologies provided by font mapping systems, in some implementations, font mapping systems utilize computational resources more efficiently and support navigation between fonts compared to many conventional font management systems. For example, by requiring less user interaction to access desired data and / or functionality in selected fonts, font mapping systems utilize fewer computational resources, such as processing time, processing power, and memory. In fact, by arranging or implying fonts based on visual similarity, font mapping systems provide a more efficient user interface than many conventional systems. For example, based on visual similarity between fonts, font mapping systems generate and provide visual representations of fonts from font maps. Unlike some conventional font management systems that require excessive user input to navigate and select fonts by scrolling through hundreds of fonts, font mapping systems offer a smarter, appearance-based representation for faster font selection, requiring less user input.
[0036] In addition to improved efficiency, in some embodiments, font mapping systems more accurately identify visual similarity between fonts and more accurately present or recommend visually similar fonts compared to conventional font management systems. By utilizing a visual feature classification model, the font mapping system generates font maps that more accurately organize or represent visual similarity between fonts and facilitate the presentation or recommendation of fonts based on this visual similarity. To describe in detail, the font mapping system utilizes a visual feature classification model that can accurately represent subtle details in the visual appearance of fonts in the font map, and does so without introducing excessive noise that would otherwise interfere with font representation, especially when the visual differences between fonts are more or less perceptible. Therefore, the font mapping system accurately generates visual depictions of similar fonts with the necessary granularity for selection among fonts that look alike.
[0037] As implied in the foregoing discussion, this disclosure uses various terms to describe the features and benefits of a font mapping system. Additional details regarding the meaning of these terms as used in this disclosure are provided below. In particular, the term "font" refers to a set of glyphs of a particular style. For example, a font may include a set of glyphs in a particular client font or a particular font family. In practice, a font may include (i) glyphs in a client font, such as Neo-Roman Bold Italic, Galam Bold Italic, or Courier Regular; or (ii) glyphs in a font family (including those constituting the client font), such as Neo-Roman, Galam, or Courier.
[0038] Additionally, the term "feature" refers to a characteristic or attribute of a font that reflects or represents its visual or perceived appearance. In some embodiments, features include observable characteristics of the font. Additionally (or alternatively), features may include unobservable or imperceptible latent features and / or multidimensional depth features. Observable or unobservable features may be related to or define the visual appearance of the font. Example features include, but are not limited to, character weights, slant, the presence of serifs, and character compactness. Therefore, a "font feature vector" (or simply "feature vector") is a feature vector representing a particular font.
[0039] As mentioned, font mapping creation systems utilize encoder neural networks to extract features from fonts. As used herein, the term "encoder neural network" refers to a neural network (or one or more layers of a neural network) that extracts font-related features. In some cases, an encoder neural network refers to a neural network that extracts and encodes features from a font into feature vectors. For example, an encoder neural network may include a specific number of layers, including one or more fully connected and / or partially connected layers of neurons that identify and represent visible and / or unobservable characteristics of the font. The encoder neural network may also generate feature vectors from the extracted features to represent the font. In some embodiments, the encoder neural network refers to a convolutional neural network, such as a DeepFont neural network or a Rekognition neural network.
[0040] Relatedly, the term "neural network" refers to a machine learning model that can be trained and / or tuned based on inputs to determine a classification or approximate an unknown function. Specifically, the term neural network can include a model of interconnected artificial neurons (e.g., hierarchical organization) that communicate and learn to approximate complex functions, generating outputs (e.g., determining the class of a digital image) based on multiple inputs provided to the neural network. Additionally, neural network can refer to an algorithm (or set of algorithms) that implements deep learning techniques to model high-level abstractions in data.
[0041] In some embodiments, the font mapping creation system extracts features and feeds them into a visual feature classification model to determine the visual similarity between fonts. As used herein, the term "visual feature classification model" refers to a machine learning model, such as a neural network, that analyzes the features of fonts to classify or otherwise arrange them based on their visual appearance. In particular, the visual feature classification model arranges fonts based on their visual similarity to each other, where similar fonts are placed together.
[0042] In some embodiments, the font mapping creation system utilizes a visual feature classification model in the form of a self-organizing map. As used herein, the term "self-organizing map" refers to an artificial neural network trained using unsupervised learning to produce a discretized representation of the input space (i.e., the mapping) based on a neighborhood function, preserving the topological properties of the input space. A self-organizing map comprises multiple "nodes" (or neurons) that define the layout of the mapping and have corresponding weights adjusted by the font mapping creation system during training. The self-organizing map produces a representation in which pairwise differences between adjacent nodes are minimized throughout the space. The font mapping creation system compares the weights of the nodes to the input feature vector of the font to determine where the font (or its corresponding feature vector) belongs in the mapping (e.g., determining which node is the best match). In practice, in some cases, nodes of a font mapping have corresponding weight vectors composed of the node weights that define that node. Therefore, depending on the resolution of the font mapping and / or the multiple fonts to be mapped to the font mapping, a single node may represent a single font or may represent multiple fonts. Alternatively, in some embodiments, the visual feature classification model refers to another machine learning model used for classification, such as a principal component analysis (“PCA”) model or a t-distributed random neighbor embedding (“t-SNE”) model.
[0043] Relatedly, the term "font mapping" refers to a discrete n-dimensional organization or arrangement of a font's feature vectors. A font mapping can refer to a trained or tuned self-organizing map such that the font's feature vectors are mapped to specific nodes of the self-organizing map, thereby arranging the feature vectors according to visual similarity. Specifically, a font mapping includes or represents multiple fonts (or features corresponding to fonts) arranged according to visual similarity based on a neighborhood function, where fonts that look alike (e.g., have similar features) are grouped together or are close to each other within the font mapping. In some embodiments, a font mapping has a specific "resolution" (or multiple resolutions) that defines the granularity or level of detail at which the font mapping represents the font. A higher-resolution font mapping (or a higher-resolution region of a font mapping) uses a higher density of more nodes to include or represent the font in more detail. A low-resolution font mapping (or a low-resolution region of a font mapping) uses a lower density of fewer nodes (e.g., where nodes can represent an entire font family of similar styles) to include or represent the font in less detail. Adaptive resolution font mappings include multiple resolutions for different regions of the font mapping.
[0044] Additionally, the term "visual similarity" refers to a measure of the similarity of visual appearance or visual characteristics. In some cases, visual similarity is a measure of how similar or similar a font may be to or look like another font, as indicated by its corresponding features. The visual similarity between two fonts can be represented by feature distances (e.g., Euclidean distances) between feature vectors within a feature space (e.g., within a font map) or between nodes of a font map corresponding to a particular feature vector. For example, visual similarity can be represented by similar visible and invisible features to depict visible font characteristics, including but not limited to serif fonts, bold fonts, script fonts, capital letter fonts, and other characteristics associated with the font.
[0045] As mentioned, in some embodiments, the font mapping creation system identifies the content of a target region that this disclosure refers to as a font mapping (e.g., an adaptive resolution font mapping). Specifically, the font mapping creation system identifies a target region for rendering fonts at an enhanced resolution. As used herein, the term "target region" refers to a region of the font mapping (or the volume of a 3D font mapping) that is specified for representing fonts at an enhanced level of detail with a higher resolution. In practice, the target region may have specific boundaries defined by fonts (or font features) within a specific region of the font mapping. The font mapping creation system can therefore fix boundary conditions for the target region based on the fonts within the boundaries and interpolate between the node weights of nodes within the boundaries and the node weights of those nodes within the target region to enhance the resolution of the target region, thereby representing a greater number of fonts at a higher level of detail (e.g., better or less pronounced visual differences between fonts compared to lower resolution regions).
[0046] As further mentioned above, in some cases, the font mapping consumption system traverses the font map to select fonts to be included in the visual depiction of the font. As used herein, the term "traversal" refers to the process of navigating or walking within the font map. In some implementations, traversal refers to navigating or walking within the font map to identify or select fonts to be included in the visual depiction based on their visual similarity to each other. In some embodiments, traversing the font map includes identifying an initial location (e.g., an initial node or font) within the font map and navigating sequentially to adjacent locations based on one or more rules, then navigating to another adjacent location thereafter, and so on. For example, the font mapping consumption system traverses adjacent fonts or nodes by identifying which fonts or nodes have at least a threshold similarity (or a difference less than a threshold) with the current font or node. In some embodiments, the font mapping consumption system traverses the font map along a basic direction, following the nearest neighbor in the feature space (while always visiting neighbors in the map space), or following the gradient of the u-matrix corresponding to the font map.
[0047] Relatedly, the term "u-matrix" refers to a two-dimensional visualization of data from a self-organizing map, and sometimes can represent a high-dimensional space. For example, a u-matrix is a representation of a self-organizing map where the Euclidean distance between the vectors of neighboring nodes is depicted in a grayscale image. Additionally, a "u-matrix value" refers to a value within the u-matrix that reflects a measure of the difference (or visual dissimilarity) between neighboring nodes of the corresponding font map. Therefore, high peaks in the u-matrix, or regions with high u-matrix values, represent regions of the font map where neighboring nodes are more dissimilar than other regions.
[0048] Additional details regarding the font mapping system (including the font mapping creation system and the font mapping consumption system) will now be provided with reference to the accompanying drawings. For example, Figure 1 The illustration shows a schematic diagram of an example system environment according to one or more embodiments, for implementing a font mapping system 105 including a font mapping creation system 102 and a font mapping consumption system 103. An overview of the font mapping system 105 is provided. Figure 1 The following description, with reference to the accompanying drawings, provides a more detailed description of the components and processes of the font mapping system 105.
[0049] As shown in the figure, the environment includes (multiple) servers 104, client devices 108, a database 114, and a network 112. Each component of this environment can communicate via network 112, and network 112 can be any suitable network through which computing devices can communicate. Example networks are described below regarding... Figure 13 Let's discuss this in more detail.
[0050] As mentioned, this environment includes client device 108. Client device 108 can be one of a variety of computing devices, including smartphones, tablets, smart TVs, desktop computers, laptops, virtual reality devices, augmented reality devices, or similar devices. Figure 13 Another computing device described. Although Figure 1A single client device 108 is illustrated, but in some embodiments, the environment may include multiple different client devices, each associated with a different user (e.g., a designer). Client device 108 may communicate with server(s) 104 via network 112. For example, client device 108 may receive user input from a user interacting with client device 108 (e.g., via client application 110) to, for example, select a font, navigate between fonts, or type using a specific font. Thus, font mapping system 105 on server(s) 104 may receive information or instructions to identify a specific font (or may automatically identify it without user input) and may generate a higher-resolution visual depiction of the font mapping for more refined, detailed font selection based on the input received by client device 108.
[0051] As shown in the figure, client device 108 includes client application 110. Specifically, client application 110 may be a web application, a native application (e.g., a mobile application, desktop application) installed on client device 108, or a cloud-based application whose functionality is wholly or partially executed by servers (multiple) 104. Client application 110 may present or display information to a user, including a graphical user interface for displaying and / or selecting fonts from multiple fonts. Additionally, client application 110 may present a visual depiction of fonts arranged according to their visual similarity relative to each other. Client application 110 may also include additional visual depictions for more detailed font selection. In practice, a user can interact with client application 110 to provide user input to select a font from a low-resolution font map, and client application 110 may subsequently present a visual depiction of a higher-resolution font map for a more detailed and precise font selection of fonts that are visually similar to those selected from the low-resolution font map.
[0052] like Figure 1As illustrated, the environment includes servers(s) 104. Servers(s) 104 can generate, track, store, process, receive, and transmit electronic data, such as data for feature vectors, font mappings, u-matrix values, visual representations of fonts, and instructions for user interaction. For example, servers(s) 104 can receive data from client device 108 in the form of a font selection or a request to select from multiple fonts. Additionally, servers(s) 104 can send data to client device 108 to provide visual representations of one or more fonts for display within the user interface of client application 110. In practice, servers(s) 104 can communicate with client device 108 to send and / or receive data via network 112. In some embodiments, servers(s) 104 include distributed servers, wherein servers(s) 104 include multiple server devices distributed across network 112 and located in different physical locations. Servers(s) 104 can include content servers, application servers, communication servers, web hosting servers, or machine learning servers.
[0053] like Figure 1 As shown, the (multiple) servers 104 may also include a font mapping system 105 as part of the digital content editing system 106, and it includes a font mapping creation system 102 and a font mapping consumption system 103. The digital content editing system 106 can communicate with client devices 108 to perform various functions associated with client application 110, such as providing and modifying the visual representation of fonts based on font mappings. For example, the font mapping creation system 102 can communicate with database 114 to access and store fonts, font mappings, u-matrices, eigenvectors, and node weights of font mappings. In practice, as... Figure 1 As further shown, the environment includes a database 114. Specifically, the database 114 may store information such as fonts, sample feature vectors, font maps, u-matrices, feature vectors, and node weights of the font maps. In some embodiments, the database 114 may also store one or more components of the self-organizing map, including neighborhood algorithms, node weights, and other parameters.
[0054] like Figure 1As depicted, the font map creation system 102 and the font map consumption system 103 communicate to transfer information back and forth. For example, the font map consumption system 103 accesses font maps generated by the font map creation system 102. The font map consumption system 103 also generates visual representations of the font maps from the font maps for display on the client device 108 (via the client application 110). In practice, the client application 110 provides a user interface for interacting with the font map consumption system 103 to navigate through font maps or other visual representations and to select and / or purchase fonts shown within the client application 110.
[0055] although Figure 1 The illustration shows a specific arrangement of the environment, but in some embodiments, the environment may have different component arrangements and / or may have completely different numbers or sets of components. For example, in some embodiments, the font mapping system 105 may be implemented by (e.g., wholly or partially located thereon) client device 108 and / or third-party devices. Additionally, client device 108 may bypass network 112 and communicate directly with font mapping system 105. Further, database 114 may be located outside of (e.g., communicating via network 112) servers 104, or on servers 104 and / or client device 108. Even further, font mapping creation system 102 and font mapping consumption system 103 may be located in different places, or on different computing devices that communicate with each other via network 112. For example, in some embodiments, font mapping creation system 102 and font mapping consumption system 103 are hosted by different servers, in different locations, or on a subsystem hosted by servers 104 and on client device 108 as another subsystem of the application.
[0056] As mentioned, in some embodiments, the font mapping creation system 102 generates visual representations of visually similar fonts by selecting fonts from a font map. In particular, the font mapping creation system 102 utilizes visual feature classification models such as self-organizing maps to generate font maps to arrange fonts according to visual similarity. Figure 2 The illustration shows a series of actions performed by a font mapping creation system 102 according to one or more embodiments to generate a font mapping.
[0057] like Figure 2As illustrated, the font mapping creation system 102 performs action 202 to identify fonts. Specifically, in some cases, the font mapping creation system 102 identifies multiple fonts associated with client device 108. For example, the font mapping creation system 102 identifies fonts installed on client device 108 and / or fonts that are part of client application 110. In some embodiments, the font mapping creation system 102 accesses database 114 to identify fonts installed on client device 108 and / or fonts that are part of client application 110. In the same or other embodiments, the font mapping creation system 102 identifies fonts that are missing from client device 108 or may potentially be installed on client device 108 for use within client application 110. For example, in some implementations, the font mapping creation system 102 generates (or associates) font maps from a specific font database (e.g., Adobe fonts) that include all or a subset of fonts. In this case, the font mapping consumption system 103 can provide access to all or a subset of such fonts (e.g., Adobe fonts) via the client device 108 (e.g., for downloading to the client application 110).
[0058] When identifying fonts, the font mapping creation system 102 also performs action 204 to extract features from the font. More specifically, the font mapping creation system 102 extracts features (e.g., deep features) from the font representing its characteristics (including visual appearance). To extract features, the font mapping creation system 102 utilizes an encoder neural network (determined by action 204). Figure 2(The interconnected neurons are shown in the diagram). For example, in some embodiments, the font mapping creation system 102 utilizes a deep encoder neural network, such as DeepFont, an encoder neural network developed by Adobe, as described in DeepFont: Identify Your Font from An Image, published in the Proceedings of the 23rd ACM International Conference on Multimedia, pp. 451-459 (October 2015), which is incorporated herein by reference in its entirety. In other embodiments, the font mapping creation system 102 utilizes different neural networks, such as a Rekognition neural network or some other convolutional neural network. In practice, the font mapping creation system 102 inputs the identified font into an encoder neural network, which analyzes the font to extract features and generate a feature vector corresponding to the font. Therefore, the font mapping creation system 102 generates a feature vector for each identified font.
[0059] like Figure 2 As further illustrated, the font mapping creation system 102 performs action 206 to determine the visual similarity between identified fonts. Specifically, the font mapping creation system 102 determines the visual similarity between fonts by determining the relationship between feature vectors associated with the fonts. For example, the font mapping creation system 102 compares feature vectors within a feature space. In some embodiments, the font mapping creation system 102 determines the distance (e.g., Euclidean distance) between font feature vectors in the feature space.
[0060] More specifically, the font mapping creation system 102 utilizes a visual feature classification model to determine the distances between feature vectors within a specific feature space. For example, the font mapping creation system 102 organizes feature vectors within a specific feature space, such as a font map. In some embodiments, the font mapping creation system 102 utilizes a visual feature classification model in the form of a self-organizing map to determine the corresponding locations (e.g., nodes) of feature vectors within the feature space and to determine the distances between these corresponding locations. In these or other embodiments, the font mapping creation system 102 utilizes self-organizing maps (such as emergency self-organizing maps) to create smooth transitions between regions with different weights. For example, in some embodiments, the font mapping creation system 102 utilizes emergency self-organizing maps, such as "The Architecture of Emergent Self-Organizing Maps to Reduce Projection Errors" by Alfred Ultsch and Lutz Herrmann in Esann, pp. 1-6 (2005), which is incorporated herein by reference in its entirety.
[0061] like Figure 2 As further shown, the font mapping creation system 102 performs action 208 to map feature vectors to font maps. Specifically, the font mapping creation system 102 utilizes a self-organizing map to map feature vectors, which arranges the feature vectors of fonts within the font map based on visual similarity. In particular, once the font mapping creation system 102 has trained the self-organizing map, it projects a number of fonts into the resulting space to generate font maps. Based on the visual similarity of client fonts, the font mapping creation system 102 can, for example, arrange the feature vectors of client fonts within the font map. Alternatively, based on the visual similarity of font families, the font mapping creation system 102 can arrange the feature vectors of font families within the font map. In some embodiments, the font mapping creation system 102 projects or maps 129,255 fonts from https: / / www.myfonts.com to generate font maps using the trained self-organizing map. Once the self-organizing map is trained and the font maps are generated, the font mapping creation system 102 can immediately (or almost instantaneously) map new fonts to the font maps.
[0062] For example, the font mapping creation system 102 maps feature vectors corresponding to fonts to specific nodes within the font mapping. In practice, the font mapping creation system 102 compares the nodes of the self-organizing map with the feature vectors of the font to determine where a particular feature vector belongs within the font mapping. For example, the font mapping creation system 102 compares the weight of each node within the font mapping with the font feature vector to identify the node whose weight is closest to the feature vector. The font mapping creation system 102 thus determines the nodes corresponding to the feature vectors (or corresponding to associated fonts) and maps visually similar fonts to nearby nodes in the font mapping. In some embodiments, the font mapping creation system 102 determines visual similarity by determining the distance between feature vectors within the font mapping and / or by determining the distance between nodes to which the feature vectors are mapped within the font mapping.
[0063] After the font mapping creation system 102 generates the font mapping, the font mapping consumption system 103 performs action 210 to generate a visual depiction of the font. Specifically, the font mapping consumption system 103 accesses the font mapping generated by the font mapping creation system 102 to generate and provide a visual depiction of the font for display from the font mapping via the client device 108. For example, in some implementations, the font mapping consumption system 103 generates visual depictions 212a, 212b, or 212c (or some other visual depiction). In particular, the font mapping consumption system 103 generates visual depictions of one or more fonts associated with the client device 108 (e.g., as identified in action 202). For example, in some embodiments, the font mapping consumption system 103 generates depictions of fonts that are installed on or can be installed on the client device 108 (e.g., from a specific font database). To generate the visual depiction, the font mapping consumption system 103 selects one or more fonts from the font mapping to provide for display within the graphical user interface of the client application 110. For example, the font mapping consumption system 103 selects fonts from the font map to include in the visual depiction. In some embodiments, the font mapping consumption system 103 selects a subset of feature vectors from the font map and identifies the fonts corresponding to the feature vectors to provide a visual depiction of the appearance of the fonts.
[0064] In order to generate a visual depiction 212a, such as Figure 2As illustrated, the font mapping consumption system 103 selects a portion of the font map and presents fonts arranged in an arrangement corresponding to the locations of font feature vectors within the selected portion of the font map. However, in some embodiments, the font mapping consumption system 103 selects a subset of fonts by identifying visually similar fonts (e.g., fonts within a threshold visual similarity to each other) and including them in the visual depiction 212b as a font list. In other embodiments, the font mapping consumption system 103 selects visually dissimilar fonts (e.g., fonts with at least a threshold difference in visual appearance) to include in the visual depiction 212b. In other embodiments, the font mapping consumption system 103 samples feature vectors from the font map using a specific (e.g., random) sampling algorithm to select fonts (the fonts corresponding to the selected feature vectors) to include in the visual depiction 212b. Although the visual depiction 212b includes three fonts, in some implementations, the visual depiction 212b includes more or fewer fonts up to a list of all fonts associated with the client device 108 arranged by visual similarity.
[0065] As mentioned above and in Figure 2 As depicted, in some embodiments, the font mapping consumption system 103 generates a visual depiction 212c to display one or more best-matching fonts (e.g., as recommendations). To generate and provide the visual depiction 212c, the font mapping consumption system 103 identifies the best-matching feature vectors of the nodes used for the font mapping and generates a visual depiction of the font corresponding to the best-matching feature vectors to be included within the visual depiction 212c. Based on identifying the best-matching feature vectors, the font mapping consumption system 103 generates the visual depiction 212c. In some implementations, based on identifying the best-matching feature vectors, the font mapping consumption system 103 generates visual depictions 212a or 212b. For example, the font mapping consumption system 103 generates a visual depiction 212a that resembles a layout similar to the font mapping, wherein the font corresponding to the best-matching feature vector is depicted at a location corresponding to the corresponding node location within the font mapping.
[0066] To determine the best-matching feature vector, in some implementations, the font mapping consumption system 103 compares multiple feature vectors of the font mapped to a single node in the font mapping. The font mapping consumption system 103 also identifies the best-matching feature vector from the multiple feature vectors mapped to the single node. Specifically, the font mapping consumption system 103 identifies the best-matching feature vector as the feature vector that has the smallest difference (or distance in the mapping space) with the node weight corresponding to the single node. Additionally, the font mapping consumption system 103 generates or identifies a visual depiction of the font corresponding to the best-matching feature vector to represent the single node within the visual depiction of the font mapping. In some embodiments, the font mapping creation system 102 compares feature vectors to identify the best-matching node, and the font mapping consumption system 103 accesses information indicating the best-matching node to include the visual depiction.
[0067] As another example, in some implementations, the font mapping consumption system 103 provides a visual depiction of the entire font mapping. To describe in detail, the font mapping consumption system 103 generates a visual depiction of the font mapping by visually representing the feature vectors of the fonts mapped to the respective nodes of the font mapping at locations corresponding to the nodes of the font mapping. In some embodiments, the font mapping consumption system 103 generates a two-dimensional or three-dimensional visual depiction of the fonts from the font mapping (corresponding to the dimensions of the font mapping generated by the font mapping creation system 102) for display on the client device 108. For the three-dimensional visual depiction, the font mapping consumption system 103 also provides optional options for display on the client device 108, allowing the user to rotate or otherwise manipulate the visual depiction to select from available fonts.
[0068] In contrast, in some embodiments, the font mapping consumption system 103 selects fonts to be included in the visual depiction by automatically (e.g., without user input) traversing the font map to select fonts to be included in the visual depiction. For example, the font mapping consumption system 103 traverses (or causes the font map creation system 102 to traverse) the font map by selecting fonts with smooth transitions in visual appearance. In some embodiments, the font mapping consumption system 103 traverses the font map by following the gradient of the u-matrix corresponding to the font map. By following the gradient of the u-matrix, the font mapping consumption system 103 maintains smooth transitions between fonts by minimizing or reducing the differences between sequentially selected neighboring nodes of the font map. This traversal is also described below.
[0069] As indicated above, the font mapping consumption system 103 also provides a visual depiction for display on the client device 108. For example, the font mapping consumption system 103 provides a list of fonts selected by traversing the font mapping (e.g., along the gradient of the u matrix). In some embodiments, the font mapping consumption system 103 selects only a specific number of fonts (e.g., 5 or 10) to include within the visual depiction. In other embodiments, as mentioned above, the font mapping consumption system 103 provides a visual depiction of the entire font mapping for display. In one or more embodiments, the font mapping consumption system 103 provides specific sampled portions of the font mapping for display within the visual depiction. For example, the font mapping consumption system 103 selects fonts within a threshold similarity range between them. As another example, the font mapping consumption system 103 selects fonts that have at least a threshold visual difference between them to provide the user with a wide range of possible fonts to choose from.
[0070] The font mapping consumption system 103 may also provide additional visual depictions for display. For example, in some implementations, the font mapping consumption system 103 receives an indication of a user selection for a specific font from a visual depiction within the client application 110 and generates an additional (or alternative) visual depiction of the font for display on the client device 108. For example, the client device 108 receives a user selection of a font and provides an indication of that selection to the font mapping consumption system 103. Based on the received indication of the user selection, the font mapping consumption system 103 generates another visual depiction of the additional font, which is visually similar to the selected font. In some embodiments, the additional visual depiction corresponds to a higher-resolution font mapping that maps the font at a higher resolution to represent finer visual differences between fonts. Additional details regarding higher-resolution font mapping are referenced below. Figure 7 Provided.
[0071] As mentioned above, in some embodiments, the font mapping creation system 102 generates font maps that map the feature vectors of the fonts to nodes within the font map in an arrangement that reflects the visual similarity between fonts. In particular, the font mapping creation system 102 utilizes a visual feature classification model (such as a self-organizing map) to generate font maps by mapping the font feature vectors to nodes. Figure 3 The illustration shows a visual depiction of a font mapping displayed on a client device 108 according to one or more embodiments, as a font mapping visualization 302.
[0072] like Figure 3The illustrated font mapping visualization 302 is a representation of a specific font mapped to nodes within a font mapping for discussion purposes. While the font mapping visualization 302 constitutes a visual depiction, in some implementations, the font mapping itself includes an arrangement of vectors, nodes, and / or weights that may not be meaningful to a human observer (e.g., as a set of feature vectors arranged at node locations within the font mapping). In effect, the font mapping visualization 302 depicts different styles of fonts positioned at uniform intervals throughout a two-dimensional arrangement corresponding to the locations of the corresponding font feature vectors. The font mapping creation system 102 maps the font to the font mapping below the font mapping visualization 302 by comparing the font's feature vector with the node weights corresponding to nodes within the font mapping below the font mapping visualization 302 and placing the feature vector at the node where the node weight is closest to the feature vector.
[0073] As shown in the figure, the font mapping visualization 302 depicts fonts that are visually similar in common areas and transition smoothly between different font styles. In some embodiments, although the font mapping visualization 302 is two-dimensional, it can be continuous because the leftmost and rightmost fonts in the same row are considered adjacent, and the topmost and bottommost fonts in the same column are considered adjacent, as if the font mapping visualization 302 were wrapping around in three dimensions. In fact, the top-left and bottom-left fonts in the font mapping visualization 302 share some visual similarity, as do the top-left and top-right fonts. Font mappings corresponding to the font mapping visualization 302 share the same organization of visually similar fonts, as represented by the arrangement of vectors, nodes, and / or node weights. Along these lines, the font mapping creation system 102 can also generate a three-dimensional font mapping that can be rotated to view the continuous properties of the mapping, which depicts the relationships between fonts or nodes.
[0074] In some implementations, to map a font to the font mapping visualization 302 below, the font mapping creation system 102 extracts features from the font to generate a feature vector for each font element. For example, the font mapping creation system 102 uses an encoder neural network (e.g., DeepFont) to extract a 760-dimensional feature vector for each font. Furthermore, by comparing the feature vector with node weights to identify the node whose weights are closest to the feature vector, the font mapping creation system 102 maps the 760-dimensional feature vector to nodes within the font mapping. For example, in some cases, the font mapping creation system 102 compares the feature vector with the node weights of a specific node by determining the Euclidean distance between features in the mapping space or latent feature space.
[0075] As implied above, in some embodiments, the font mapping creation system 102 utilizes a visual feature classification model to map feature vectors, which arranges the font's feature vectors within a font mapping below the font mapping visualization 302 based on visual similarity. For example, the font mapping creation system 102 may use a self-organizing map (or other visual feature classification model) to arrange the client font's feature vectors within the font mapping based on the client font's visual similarity, such as by mapping the feature vectors of Neo-Roman Bold Italic to a feature vector closer to Galam Bold Italic than the feature vectors of Courier Regular. In contrast, the font mapping creation system 102 may arrange the feature vectors of a font family within the font mapping based on the visual similarity of the font family, such as by mapping the feature vectors of Neo-Roman to a feature vector closer to Galam than the feature vectors of Courier.
[0076] In some embodiments, the font mapping creation system 102 identifies multiple feature vectors that correspond to a single node in the font mapping below the font mapping visualization 302. For example, the font mapping creation system 102 identifies a specific node whose node weights are at the smallest distance from the multiple feature vectors. Therefore, in some cases, the font mapping creation system 102 maps multiple feature vectors (and their corresponding fonts) to a single node in the font mapping below the font mapping visualization 302. In other cases, the font mapping creation system 102 maps a single feature vector to a single node in the font mapping below the font mapping visualization 302, or does not map the feature vector to some nodes in the font mapping (depending on their respective distances).
[0077] As mentioned, in some implementations, the font mapping creation system 102 generates a font mapping that arranges feature vectors such that fonts corresponding to the feature vectors are grouped according to visual similarity. Figures 4A to 4B The illustration shows a heatmap of a client device 108 according to one or more embodiments, which depicts the distribution of italic and serif fonts within a font map. Figure 4A The heatmap depicts the distribution of feature vectors (or fonts) used for low-resolution font mapping (e.g., the font mapping corresponding to font mapping visualization 302), while Figure 4B The heatmap depicts the distribution of feature vectors (or fonts) used for higher-resolution font mapping. Although Figures 4A to 4B The illustration shows a specific heatmap corresponding to a particular font mapping, which is not necessarily an illustration of the optimal or ideal font mapping. In fact, in some embodiments, the font mapping creation system 102 generates font mappings with different arrangements (sometimes even in different instances processing the same data) based on a classification model utilizing self-organizing maps or other visual features.
[0078] like Figure 4A The italicized heatmap 402 shown in the figure (in) Figure 4A The heatmap of nodes in the font mapping for italics (titled "Heatmap of Nodes in Italics") includes units that change from dark to light in shadow. Similarly, the serif heatmap 404 (in...) Figure 4A The heatmap (titled "Heatmap of Nodes in a Serif Font Map") also includes cells that vary from dark to light in the shading. The cells in italic heatmap 402 and serif heatmap 404 represent one or more nodes of the font map (e.g., the font map corresponding to font map visualization 302), where the number of nodes represented by each cell depends on the resolution of the font map and the resolution of the corresponding heatmap. Additionally, the different shading in italic heatmap 402 and serif heatmap 404 represent different densities of fonts that carry or depict specific properties at corresponding locations in the font map.
[0079] For example, italic heatmap 402 illustrates the distribution of italicized fonts within the font map (in... Figure 4A In the diagram, the density of italic fonts is marked on the shaded scale, while serif heatmap 404 illustrates the distribution of serif fonts within the font map (in...). Figure 4A In the shading scale, the density of the serif font is marked as "serif font density". As indicated by the shading scale, lighter shading indicates font mapping areas with higher font density corresponding to the visual characteristics, while darker shading indicates font mapping areas with lower font density corresponding to the visual characteristics. Therefore, in italic heatmap 402, cells with lighter shading indicate areas or nodes of font mapping with higher density italic fonts. Similarly, in serif heatmap 404, cells with lighter shading indicate areas or nodes of font mapping with higher density serif fonts.
[0080] In some embodiments, to generate a visual depiction of one or more fonts for display on client device 108, font mapping consumption system 103 selects fonts from a font map based on the distribution of fonts with specific visual characteristics. For example, font mapping consumption system 103 selects italic fonts to provide for display within the visual depiction (e.g., based on user input requesting italic fonts or fonts similar to another italic font). To select italic fonts from the font map, in some cases, font mapping consumption system 103 identifies fonts with higher density or higher concentration of italic fonts within the font map region, as indicated by italic heatmap 402 (e.g., by selecting nodes within the font map region that correspond to the "c"-shaped curves of the lighter shades shown in italic heatmap 402). Additional details regarding font selection for inclusion within the visual depiction are provided below with reference to the following figures.
[0081] Although Figure 4AThe illustration shows two example visual attributes or properties that the font mapping creation system 102 can model using font mappings (e.g., italics and serifs). The font mapping creation system 102 can also identify and determine the distribution of fonts based on other visual property mappings. For example, the font mapping creation system 102 can determine the distribution of bold, light, script, and / or condensed fonts within the font mapping. Each different visual property has its own distribution within the font mapping, and the font mapping creation system 102 therefore generates a different heatmap for each feature (e.g., for each feature).
[0082] As mentioned, in some embodiments, the font mapping creation system 102 generates a higher-resolution font map. Specifically, the font mapping creation system 102 generates a higher-resolution font map that magnifies or represents all or part of the lower-resolution font map in more detail, including fonts mapped to additional nodes, to allow for finer transitions between font styles. Additionally (or alternatively), the font mapping creation system 102 generates the higher-resolution font map based on the same data as the lower-resolution font map, but this data is trained independently of the lower-resolution font map (and therefore does not directly correspond to it). Figure 4B A heatmap of a higher resolution font mapping according to one or more embodiments is illustrated.
[0083] like Figure 4B As shown, the italicized heatmap 406 is in relation to... Figure 4A The italic heatmap 402 was trained on the same font data. More specifically, italic heatmap 406 represents the distribution of italic fonts within a higher-resolution font map, which was trained on the same font data as the low-resolution font map represented by italic heatmap 402. Similarly, Figure 4B The serif heatmap 408 shown corresponds to Figure 4A The serif heatmap 404 represents the distribution of serif fonts within a higher-resolution font map, which is trained on the same font data as the low-resolution font map represented by serif heatmap 404. Therefore, the serif heatmap 408 represents the distribution of serif fonts within a higher-resolution heatmap, which is generated using the same font set as the low-resolution heatmap represented by serif heatmap 404. In fact, since italic heatmap 406 and serif heatmap 408 represent higher-resolution font maps, they correspond to... Figure 4A Compared to the font mappings in italic heatmap 402 and serif heatmap 404, the corresponding font mappings are... Figure 4B The font mappings of italic heatmap 406 and serif heatmap 408 include smaller units at a finer level of detail.
[0084] Similar to the above about Figure 4AThe discussion points out that the different shades of the cells within the italic heatmap 406 and the serif heatmap 408 represent different densities of the font within the font map, which have corresponding visual characteristics. Lighter shades indicate areas with higher density or higher saturation in the higher resolution font map, while darker shades indicate areas with lower density or lower saturation in the higher resolution font map.
[0085] In some embodiments, the font mapping consumption system 103 selects one or more fonts from a higher-resolution font map to include in a visual depiction of the font for display on the client device 108. To select a font from the higher-resolution font map, the font mapping consumption system 103 identifies regions of the higher-resolution font map that include fonts with specific visual characteristics (e.g., selecting or requesting a font with visual characteristics or a font similar to another font based on user input). For example, the font mapping consumption system 103 selects a portion (e.g., one or more nodes) of the higher-resolution font map that corresponds to an area of italic heatmap 406 with lighter shaded units. As another example, the font mapping consumption system 103 selects a portion (e.g., one or more nodes) of the higher-resolution font map that corresponds to an area of serif heatmap 408 with lighter shaded units.
[0086] As mentioned above, in some embodiments, the font mapping consumption system 103 selects fonts corresponding to feature vectors within the font map for inclusion in the visual depiction. Specifically, the font mapping consumption system 103 selects fonts by selecting nodes or feature vectors within the font map or by traversing the font map using specific traversal techniques. For example, the font mapping consumption system 103 traverses the font map to identify fonts that visually transition smoothly from one selected font to the next. In practice, the font mapping consumption system 103 may traverse the font map to identify, recommend, and / or provide fonts visually similar to the font selected by the user. As an example, based on the user's selection of a font from a low-resolution font map, the font mapping consumption system 103 may traverse a higher-resolution font map to provide a similar set of fonts with finer differences between them to improve accuracy. Figure 5 The illustration shows the use of gradient following techniques to traverse a font map according to one or more embodiments to generate a visual depiction 504.
[0087] like Figure 5As illustrated, in some embodiments, the font mapping consumption system 103 traverses the font mapping by following the gradient of the u-matrix 502 corresponding to the font mapping. Specifically, the font mapping consumption system 103 follows the gradient of the u-matrix 502 by identifying a starting position or starting node and iteratively selecting subsequent nodes one after another. The font mapping consumption system 103 selects nodes sequentially by comparing the u-matrix values of nodes surrounding the current node and selecting the subsequent node as the node corresponding to the lowest u-matrix value (or the next u-matrix value along the gradient). By following the u-matrix gradient in this way, the font mapping consumption system 103 selects nodes of the font, which exhibits a smooth transition in visual appearance.
[0088] like Figure 5 As shown, for example, the font mapping consumption system 103 selects a starting node 503. Specifically, based on user input selecting a specific font corresponding to that starting node (e.g., within a low-resolution font mapping or a higher-resolution font mapping), the font mapping consumption system 103 selects the starting node 503. The font mapping consumption system 103 then proceeds along... Figure 5 The path shown advances, where each white dot along the path represents a node selected sequentially in the font mapping.
[0089] like Figure 5 As illustrated, client device 108 also presents a visual depiction 504 of fonts selected via gradient-following traversal. Specifically, visual depiction 504 depicts the font mapped to a node for each selection or step in the traversal process. For example, font mapping consumption system 103 maps many fonts to starting node 503, including all those fonts in the first column (labeled "1") of visual depiction 504. Following the gradient of u matrix 502, font mapping consumption system 103 then selects the next node where multiple fonts are mapped, as indicated by the fonts in the second column ("2"). Font mapping consumption system 103 continues to traverse the font mapping by following the gradient of u matrix 502 to select nodes for smooth transitions between font styles. Thus, visual depiction 504 depicts smooth transitions across fourteen different selected nodes, where fonts in closer selected nodes are visually more similar to each other, while fonts in farther selected nodes are visually less similar. In fact, the font shown in visual depiction 504 starts relatively light in the first few columns and gradually gets thicker with each subsequent selection traversed, until the fourteenth column where the font is thickest.
[0090] As mentioned, in some embodiments, in addition to following the gradient of the u matrix, the font mapping consumption system 103 implements different traversal techniques for finding or selecting fonts from the font mapping. For example, the font mapping consumption system 103 utilizes a nearest neighbor traversal method, or it may traverse along the basic direction of the font mapping. Figure 6 The illustration depicts a nearest neighbor traversal according to one or more embodiments. Figure 6 As shown, the client device 108 displays a font map 602 and a visual depiction of a font 604, which is selected as a result of traversing the font map 602 based on a nearest neighbor algorithm.
[0091] like Figure 6 As illustrated, the font mapping consumption system 103 identifies a starting node within font mapping 602 and then sequentially selects the nearest neighbor node from font mapping 602. For example, font mapping consumption system 103 identifies the starting node 603 as the node corresponding to the font selected by the user from the low-resolution font mapping. Font mapping consumption system 103 traverses font mapping 602 from the starting node 603 to identify the nearest neighbor node with respect to the starting node 603. Font mapping consumption system 103 selects another nearest neighbor node with respect to the first nearest neighbor node from the nearest neighbor nodes, and repeats this process by iteratively selecting nearest neighbor nodes one after another.
[0092] To identify nearest neighbor nodes, font mapping consumption system 103 identifies the neighborhood of nodes associated with the current node (e.g., the starting node 603 or a subsequently selected node) and selects neighbor nodes from that neighborhood. For example, font mapping consumption system 103 identifies the neighborhood as a region of font mapping 602 that includes nodes in the feature space (or mapping space) that are all within a threshold distance from the starting node 603. Additionally, font mapping consumption system 103 accesses all neighbor nodes in the mapping space and compares the distances of neighbor nodes to the starting node 603 to identify the nearest neighbor node. More specifically, font mapping consumption system 103 identifies the nearest neighbor node as a node with a node weight that has the minimum distance from the starting node 603 in the feature space (or mapping space).
[0093] By traversing font map 602 and selecting nearest neighbor nodes, font map consumption system 103 selects nodes with fonts to include in visual depiction 604. Specifically, font map consumption system 103 generates and provides visual depiction 604, which comprises twenty columns, each for each node selected in the nearest neighbor traversal. As shown, the columns in visual depiction 604 include different numbers of fonts mapped to them. For example, the first column in visual depiction 604 (labeled "1") corresponds to the starting node 603 and includes only a single font. The nearest neighbor node selected after the starting node 603 is represented by the second column ("2") and includes five fonts. Thereafter, the remaining columns of visual depiction 604 represent the nodes selected sequentially from font map 602, one after another, where the number of fonts in each column reflects the number of fonts in each corresponding node, ranging from zero fonts (e.g., column 11) to five fonts.
[0094] As mentioned, in some embodiments, the font mapping creation system 102 generates a higher resolution font map. In particular, the font mapping creation system 102 generates a higher resolution font map that provides the arrangement of fonts for the target region of the low-resolution font map at a more detailed (e.g., magnified) level. Figure 7 A font mapping visualization 702 of a higher resolution font mapping according to one or more embodiments is illustrated.
[0095] like Figure 7 As shown in the illustration, client device 108 displays font mapping visualization 702. Similar to the above regarding... Figure 3 The discussion of font mapping visualization 302 (which may be referred to as low-resolution font mapping) and font mapping visualization 702 is a depiction of font mapping for discussion purposes, in which fonts are arranged at locations representing nodes of higher resolution font mapping. In reality, the actual font mapping of font mapping visualization 702 is the arrangement of node weights and / or font feature vectors at various node locations that may be imperceptible to a human observer.
[0096] like Figure 7 As shown, and corresponding to Figure 3Compared to the font mapping of font mapping visualization 302, font mapping visualization 702 includes fonts with a higher level of detail. Therefore, the visual difference between neighboring fonts in font mapping visualization 702 is smaller than the visual difference between fonts in the font mapping corresponding to font mapping visualization 302, thus providing a higher level of granularity for more accurate font selection. In some embodiments, the font mapping creation system 102 utilizes different self-organizing maps to generate the font mapping corresponding to font mapping visualization 702, compared to the method used to generate a low-resolution font mapping. Specifically, the font mapping creation system 102 utilizes a self-organizing map trained using a first training method to generate a low-resolution font mapping, and utilizes a self-organizing map trained using a second training method to generate the font mapping corresponding to font mapping visualization 702. Additional details regarding different methods for training or tuning self-organizing maps or other visual feature classification models are referenced below. Figure 9 To provide.
[0097] Based on the font mapping visualization 702, by first providing a visual depiction of the font from a low-resolution font map, and then providing a visual depiction of the font from the font mapping visualization 702, the font mapping consumption system 103 provides the user with the option to select a font at a more precise level based on visual characteristics. For example, in some embodiments, the font mapping consumption system 103 provides a visual depiction of the font from the font mapping visualization 702 based on or in response to user interaction selecting a font from a low-resolution font map.
[0098] As mentioned above, in some embodiments, the font mapping creation system 102 generates adaptive resolution font maps that include regions with different resolutions. Specifically, in some cases, the font mapping creation system 102 automatically (e.g., without user input) identifies or identifies target regions of the font map, for which a higher resolution is applied to include additional fonts with a finer level of detail. For detailed description, in some implementations, the font mapping creation system 102 identifies regions of the font map with u-matrix values exceeding a variance threshold and / or having data variance (e.g., variance between eigenvectors) within each node. The font mapping creation system 102 thus increases the resolution of these target regions. In some embodiments, the font mapping creation system 102 identifies regions for which target regions are to be added based on user input. For example, the font mapping creation system 102 identifies target regions as regions defined by a specific number of nodes above and / or below the node corresponding to the selected font, and to the right and / or to the left of the node corresponding to the selected font.
[0099] In some embodiments, in response to a user's instruction to select a font within a low-resolution font map, the font map consumption system 103 generates a font map visualization 702 (e.g., for a target region). For example, in some cases, the font map consumption system 103 generates the font map visualization 702 based on fixed boundary conditions. To describe in detail, by identifying nodes within the font map that are in the target region (or defining the target region), the font map consumption system 103 fixes (or causes the font map creation system 102 to fix) the boundary conditions for the target region of the font map. Based on the identified nodes within the target region, the font map consumption system 103 (or the font map creation system 102) interpolates between the node weights of these nodes to generate new node weights for new nodes to be included in the font map visualization 702.
[0100] As mentioned above, in some embodiments, the font mapping creation system 102 fixes the boundary conditions of the target region to generate a higher resolution font map (e.g., a higher resolution font map corresponding to the font map visualization 702). Specifically, the font mapping creation system 102 fixes the boundary conditions by identifying nodes within the target region of the low-resolution font map (e.g., the font map corresponding to the font map visualization 302) and interpolating between the node weights corresponding to the identified nodes. Figure 8 A font mapping visualization 804 of a higher resolution font mapping according to one or more embodiments is illustrated, the higher resolution font mapping being generated with fixed boundaries for a target region of a low resolution font mapping represented by the font mapping visualization 802.
[0101] like Figure 8 As illustrated, font mapping visualization 804 is incomplete (with gaps between fonts) because training has not yet converged for the corresponding self-organizing map. However, for discussion purposes, the font mapping corresponding to font mapping visualization 804 includes the fonts of the target region of the font mapping corresponding to font mapping visualization 802 at a higher level of detail, with more fonts having slight visual differences between adjacent fonts. In some embodiments, the target region may include a portion smaller than the entire region (or volume) of the font mapping corresponding to font mapping visualization 802, while in other embodiments, the target region may include the entire region (or volume) of the font mapping corresponding to font mapping visualization 804. For discussion purposes, font mapping visualization 804 may be an incomplete version of font mapping visualization 702.
[0102] To generate a higher-resolution font map, the font map creation system 102 interpolates between the node weights of nodes within the target region of the low-resolution font map. More specifically, the font map creation system 102 identifies nodes in the low-resolution font map that are within the target region and form the boundary of the target region. Additionally, the font map creation system 102 interpolates between the identified node weights to generate new nodes with new node weights, which are then included in the higher-resolution font map.
[0103] As indicated above, in some embodiments, the font mapping creation system 102 interpolates between node weights by determining the distances between adjacent nodes in the target region (in the feature space or mapping space). The font mapping creation system 102 also determines the number of new nodes to be added between adjacent nodes to fill the distances. For example, based on the ratio between the resolution of the target region and the resolution of a higher-resolution font mapping corresponding to the font mapping visualization 804, the font mapping creation system 102 determines the number of additional nodes to be added between adjacent nodes in the target region. Additionally, the font mapping creation system 102 determines the node weights for the number of new nodes to space (e.g., evenly space) the new nodes between adjacent nodes in the target region in the mapping space.
[0104] In some embodiments, the font mapping creation system 102 does not generate new node weights to uniformly space new nodes. Instead, it generates new node weights based on the distribution of feature vectors within the target region to provide enhanced regional detail by leveraging higher font density (or higher feature vector density). In addition to the increased resolution, generating higher-resolution font maps allows the font mapping creation system 102 to reproject the target region based on local feature vectors and / or local node weights, thereby improving the smoothness of transitions between fonts for navigation between visually similar fonts. For uniformly distributed regions, the font mapping creation system 102 also performs subsampling if necessary.
[0105] In some embodiments, the font mapping creation system 102 generates adaptive resolution font maps. Specifically, the font mapping creation system 102 generates font maps with different resolutions in different regions. For example, the font mapping creation system 102 identifies target regions for a low-resolution font map corresponding to the font mapping visualization 802, and generates higher-resolution font maps (such as the higher-resolution font map corresponding to the font mapping visualization 804) for these target regions. Specifically, the font mapping creation system 102 identifies target regions by determining the u-matrix values and data variances of the nodes in the low-resolution font map. The font mapping creation system 102 thus identifies target regions as regions with nodes having u-matrix values exceeding a u-matrix value threshold and / or data variances exceeding a variance threshold within the nodes. By generating higher-resolution font maps for these target regions, the font mapping creation system 102 examines and navigates font feature vectors at different scales to provide improved font selection accuracy.
[0106] In one or more embodiments, the font mapping creation system 102 performs steps for constructing a font mapping that arranges multiple fonts according to visual similarity. Specifically, the font mapping creation system 102 utilizes specific actions and algorithms to implement or perform the steps for constructing the font mapping. In particular, the above regarding... Figure 2 The description (including actions 204, 206, and 208) provides actions and algorithms as structure and support for performing steps to construct a font map that arranges multiple fonts based on visual similarity.
[0107] As mentioned above, in some embodiments, the font mapping creation system 102 trains or tunes a visual feature classification model to accurately map the feature vectors of fonts. Specifically, the font mapping creation system 102 trains the visual feature classification model in the form of a self-organizing map by inputting sample feature vectors representing sample fonts into the self-organizing map and modifying the node weights of the nodes in the self-organizing map to more closely match the input vectors. For example, due to its ability to project new data onto the trained self-organizing map, the font mapping creation system 102 can input a relatively small number of fonts (e.g., 10,000 fonts) to accelerate the training process over a specific number of iterations (e.g., 90,000 iterations) while still being able to project the entire dataset onto the resulting trained self-organizing map. Figure 9 The illustration shows the training or tuning of a self-organizing map 905 according to one or more embodiments. In some embodiments, the same training or tuning is applied to other visual feature classification models.
[0108] like Figure 9As illustrated, the font mapping creation system 102 performs action 902 to identify sample feature vectors (e.g., training font feature vectors) representing sample fonts. Specifically, in some implementations, the font mapping creation system 102 accesses a database 114 to identify stored sample feature vectors for input into the self-organizing map 905. In some embodiments, the font mapping creation system 102 randomly selects sample feature vectors from a set of sample feature vectors used for training or tuning the self-organizing map. The font mapping creation system 102 selects a sample feature vector and inputs it into the self-organizing map 905. For training to generate font maps with periodic boundary conditions, the self-organizing map 905 can be a two-dimensional circular map with a size of 80x80 nodes. On the other hand, for training to generate font maps with fixed boundary conditions, the self-organizing map 905 can be a two-dimensional planar map (e.g., with a size of 80×80 nodes).
[0109] Additionally, after initializing the node weights of the self-organizing map 905, the font mapping creation system 102 performs action 904 to compare the node weights with the sample feature vectors representing the sample fonts. More specifically, the font mapping creation system 102 compares the node weights of each node in the self-organizing map 905 with the sample feature vectors. To compare the input sample feature vectors with the node weights, the font mapping creation system 102 determines the distance (e.g., Euclidean distance) between the sample feature vectors and the node weights. Through this comparison, the font mapping creation system 102 determines which node of the self-organizing map 905 is closest to the input sample feature vector (e.g., which node has the node weights most similar to the sample feature vector).
[0110] like Figure 9 As further shown, the font mapping creation system 102 performs action 906 to identify the best matching node (or best matching unit). Specifically, the font mapping creation system 102 identifies the best matching node as the node within the self-organizing map 905 that is closest to or has the smallest difference (or distance) between its weight and the sample feature vector representing the sample font.
[0111] In some embodiments, to achieve a more uniform density across the self-organizing map 905, the font map creation system 102 identifies the best-matching nodes by prioritizing nodes with high u-matrix values (e.g., u-matrix values exceeding a threshold). For example, the font map creation system 102 emphasizes or weights regions of the self-organizing map 905 that include nodes with high u-matrix values to focus training more on these regions (e.g., by increasing the likelihood of identifying the best-matching nodes in these regions). To emphasize these regions, the font map creation system 102 generates (e.g., as part of action 904) modified training maps by artificially adjusting the node weights of nodes with high u-matrix values to make these nodes more similar to sample feature vectors, thus increasing the likelihood that they will be selected as the best-matching nodes. In some embodiments, the font map creation system 102 uses the modified training maps only during training or tuning of the self-organizing map 905.
[0112] Additionally, in some implementations, the font mapping creation system 102 artificially modifies the scale of the node weights of nodes with high u-matrix values starting at 0, to allow meaningful concentrations to form and increase as training proceeds through subsequent iterations (to smooth the transition between different concentrations) until a maximum scale value is reached. By utilizing nodes with high u-matrix values for further training around the regions of the self-organizing map 905, the font mapping creation system 102 thus reduces the u-matrix values through training (e.g., to minimize the gradient of the u-matrix while preserving the properties of the self-organizing map 905), thereby enhancing or increasing the uniformity of the self-organizing map 905. Utilizing a more uniform self-organizing map 905, the font mapping creation system 102 produces a more uniform distribution when mapping fonts during application.
[0113] After identifying the best-matching node, the font mapping creation system 102 further performs action 908 to determine the neighborhood of the best-matching node. In some embodiments, the self-organizing map 905 is an emergency self-organizing map, where the font mapping creation system 102 modifies the weights of neighboring nodes in addition to the best-matching node. Specifically, the font mapping creation system 102 determines the neighborhood of nodes associated with the best-matching node by utilizing a neighborhood function. More specifically, based on the neighborhood function (e.g., based on the topological distribution of the self-organizing map 905 and / or the distance of nodes within the self-organizing map 905 to the best-matching node), the font mapping creation system 102 identifies a subset of nodes within the self-organizing map 905 that are neighbors of the best-matching node.
[0114] like Figure 9As further illustrated, the font mapping creation system 102 performs action 910 to modify node weights. For detailed description, in some cases, the font mapping creation system 102 modifies the node weights of the best-matching node and the nodes in its neighborhood to make the weights more like the sample feature vector representing the sample font. For example, the font mapping creation system 102 modifies the weights of the best-matching node to the maximum extent, and the font mapping creation system 102 modifies the weights of neighboring nodes based on their respective distances from the best-matching node. The closer a neighboring node is to the best-matching node, the more its node weights are modified by the font mapping creation system 102; the farther away a neighboring node is, the less its node weights are modified by the font mapping creation system 102.
[0115] In some embodiments, the font mapping creation system 102 updates or modifies node weights according to the following function (for periodic or non-fixed boundary conditions): updated_weights = current_weights - gauss * lrate * (current_weights - inputVec), where inputVec represents the input sample feature vector, which represents the sample font, gauss represents the Gaussian distance (in the mapping space) between the current node and the best matching node of inputVec, and lrate represents the learning rate that decays as training progresses.
[0116] To train a self-organizing map for generating low-resolution font maps, the font map creation system 102 can utilize a different training process compared to when training a self-organizing map for generating higher-resolution font maps. In fact, for higher-resolution font maps, the font map creation system 102 preserves or fixes the boundaries of the font map. Therefore, during training for generating higher-resolution font maps, the font map creation system 102 utilizes planar rather than circular non-periodic boundaries (which are used to train low-resolution font maps with periodic boundaries). Additionally, in some embodiments, the font map creation system 102 uses constraint terms (e.g., the boundary_distance term) to modify the learning rate to update node weights such that the learning rate of nodes within the boundary (e.g., within the target region) is zero, and the learning rate of neighboring nodes increases according to their distance from the nearest boundary until a default value at distance d is reached. Distance d is a hyperparameter tuned based on the size of the self-organizing map 905, the type and / or size of the training data (e.g., sample feature vectors), and the desired outcome.
[0117] For example, font mapping creation system 102 updates or modifies node weights according to the following function to generate aperiodic boundary font mappings (e.g., with fixed boundary conditions):
[0118] updated_weights=current_weights–boundary_distance*lrate*(current_weights-inputVec),
[0119] Where `boundary_distance` represents the scaled Euclidean distance (in the mapping space) between the current node and the nearest node located on the boundary of the self-organizing map 905 (with a maximum value of 1), and other terms are as defined above. Scaling helps `boundary_distance` reach its maximum value of 1 at a predetermined distance `d` from the boundary. The font mapping creation system 102 can utilize different scaling techniques, such as linear or Gaussian scaling.
[0120] The font mapping creation system 102 also repeats within a certain number of iterations. Figure 9 The illustrated training or tuning process. In practice, in some cases, the font mapping creation system 102 repeats actions 902 to 910 as part of each iteration. Specifically, the font mapping creation system 102 identifies subsequent sample feature vectors representing subsequent sample fonts, compares the sample feature vectors with node weights, identifies the best-matching node, determines the neighborhood of the best-matching node, and modifies the node weights in each iteration. In some embodiments, the font mapping creation system 102 performs 90,000 iterations of training selected from 10,000 different sample feature vectors. Additionally or alternatively, the font mapping creation system 102 performs training iterations until the node weights of the self-organizing map 905 do not change significantly throughout the training iterations or meet the convergence criteria.
[0121] As mentioned above, in some embodiments, the font mapping creation system 102 utilizes different types of visual feature classification models. For example, as described in detail above, the font mapping creation system 102 utilizes self-organizing maps. In addition to (or alternatively) self-organizing maps, the font mapping creation system 102 may utilize visual feature classification models in the form of PCA models or t-SNE models. Figure 10 The illustrations show a font mapping visualization 1002 using a PCA model and a font mapping visualization 1004 using a t-SNE model, according to one or more embodiments.
[0122] like Figure 10As illustrated, font mapping visualizations 1002 and 1004 represent font mappings, which include the arrangement of feature vectors corresponding to the depicted font at their respective locations. In some embodiments, font mapping visualizations 1002 and 1004 represent rotatable three-dimensional font mappings. In practice, the font mapping consumption system 103 can provide a visual description of the font (for display on the client device 108) and optional controls for rotating and navigating the font mapping from font mapping visualizations 1002 or 1004 (or font mappings generated using self-organizing mapping).
[0123] While font mapping visualizations 1002 and 1004 represent font mappings that include feature vectors mapped based on visual similarity between fonts, PCA and t-SNE algorithms are sometimes less accurate than self-organizing maps when mapping font feature vectors. In fact, compared to self-organizing maps, PCA and t-SNE are sometimes less able to account for noise in data such as font feature vectors (or sometimes introduce noise). Additionally, PCA and t-SNE are sometimes less accurate than self-organizing maps when dealing with finer, more subtle details between fonts. For example, font mapping creation system 102 can implement a PCA model to generate compact and uniform font mappings, but sometimes these font mappings (e.g., the font mapping below font mapping visualization 1002) include too much style variation between nearby fonts. Conversely, font mapping creation system 102 can implement a t-SNE model to generate font mappings with better local similarity (e.g., the font mapping below font mapping visualization 1004), but at the cost of uniformity—the font mapping below font mapping visualization 1004 is less uniform and includes large sparse regions.
[0124] Although this disclosure relates to font mapping creation system 102 and font mapping consumption system 103 in certain locations in some embodiments, font mapping creation system 102 and font mapping consumption system 103 are part of a single system. In fact, font mapping creation system 102 and font mapping consumption system 103 are constituent subsystems of font mapping system 105. Therefore, in the embodiments described herein, font mapping system 105 performs the actions and functions of font mapping creation system 105 and font mapping consumption system 103 described herein.
[0125] Now see Figure 11 Additional details regarding the components and capabilities of the font mapping creation system 102 and the font mapping consumption system 103 will be provided. Specifically, Figure 11An example schematic diagram is illustrated on an example computing device 1100 (e.g., one or more of client device 108 and / or servers 104) of typeface mapping system 105 (including typeface mapping creation system 102 and typeface mapping consumption system 103). Figure 11 As shown, the font mapping creation system 102 may include a font identifier manager 1102, a feature extraction manager 1104, a visual feature classification manager 1106, a visual rendering manager 1108, and a storage manager 1110. The storage manager 1110 may operate in conjunction with one or more storage devices, or include one or more storage devices, such as a database 1112 (e.g., database 114), which stores various data, such as algorithms for self-organizing maps, PCA models or t-SNE models, encoder neural networks, and multiple font feature vectors of the font.
[0126] As just mentioned, the font mapping creation system 102 includes a font identifier manager 1102. Specifically, the font identifier manager 1102 manages, maintains, detects, identifies, or identifies fonts associated with client devices (e.g., client device 108). For example, the font identifier manager 1102 accesses a database associated with client device 108 and / or client application 110 to identify fonts installed on client device 108 that are accessible by the client application or otherwise associated with client device 108.
[0127] Additionally, the font mapping creation system 102 includes a feature extraction manager 1104. Specifically, the feature extraction manager 1104 manages, maintains, extracts, acquires, generates, or identifies features from fonts. For example, the feature extraction manager 1104 utilizes an encoder neural network to extract fonts from features to represent the fonts as feature vectors, as described herein. In practice, the feature extraction manager 1104 generates feature vectors for each font identified by the client device 108.
[0128] As shown in the figure, the font mapping creation system 102 includes a visual feature classification manager 1106. Specifically, the visual feature classification manager 1106 manages, maintains, determines, maps, draws, arranges, or identifies fonts based on visual similarity between fonts. For example, the visual feature classification manager 1106 uses a visual feature classification model to determine visual similarity between fonts, as described herein. Additionally, the visual feature classification manager 1106 maps the feature vectors of the fonts to nodes of a self-organizing map, thereby arranging the feature vectors according to visual similarity. Thus, as described herein, the visual feature classification manager 1106 generates font maps that map the feature vectors of the nodes to the font maps based on node weights. Additionally, the visual feature classification manager 1106 generates low-resolution font maps, higher-resolution font maps, and / or adaptive-resolution font maps, as further described herein. In some embodiments, the visual feature classification manager 1106 trains the self-organizing map to generate accurate font maps, as described.
[0129] As further shown, the font mapping consumption system 103 includes a visual rendering manager 1108. Specifically, the visual rendering manager 1108 manages, maintains, arranges, provides, displays, or generates visual depictions of one or more fonts from the font map. For example, the visual rendering manager 1108 generates a visual depiction by selecting fonts from the font map based on their visual appearance. As described herein, the visual rendering manager 1108 can traverse the font map to select fonts to be included in the visual depiction, such that the selected fonts have a smooth transition in visual appearance.
[0130] Additionally, the font mapping creation system 102 includes a storage manager 1110. Specifically, the storage manager 1110 manages, maintains, stores, provides, receives, or transmits information for various other components of the font mapping creation system 102. For example, the storage manager 1110 communicates with a feature extraction manager 1104 to receive and store feature vectors extracted for fonts. Furthermore, the storage manager 1110 communicates with a visual feature classification manager 1106 to provide feature vectors for mapping to font maps.
[0131] In one or more embodiments, each component of the font mapping system 105 communicates with each other using any suitable communication technology. Additionally, the components of the font mapping system 105 can communicate with one or more other devices, including the aforementioned client devices. It will be appreciated that although the components of the font mapping system 105... Figure 11 The components are shown as separate, but any sub-component can be combined into fewer components, such as a single component, or divided into more components, as they can serve a specific implementation. Furthermore, although... Figure 11The components described herein are related to font mapping system 105, but at least some of the components used to perform operations in conjunction with font mapping system 105 described herein may be implemented on other devices within the environment.
[0132] Components of the font mapping system 105 may include software, hardware, or both. For example, components of the font mapping system 105 may include one or more instructions stored on a computer-readable storage medium and executable by a processor of one or more computing devices (e.g., computing device 1100). When executed by one or more processors, the computer-executable instructions of the font mapping system 105 may cause the computing device 1100 to perform the methods described herein. Alternatively, components of the font mapping system 105 may include hardware, such as a dedicated processing device that performs a particular function or group of functions. Additionally or alternatively, components of the font mapping system 105 may include a combination of computer-executable instructions and hardware.
[0133] Furthermore, components of the font mapping system 105 that perform the functions described herein can be implemented, for example, as part of a standalone application, a module of an application, a plugin for an application including a content management application, a library function, or a function that can be invoked by other applications and / or a cloud computing model. Therefore, components of the font mapping system 105 can be implemented as part of a standalone application on a personal computing device or mobile device. Alternatively or additionally, components of the font mapping system 105 can be implemented in any application or set of applications that allows the creation and delivery of marketing content to users, including but not limited to applications, services, web-hosted applications, or sets of applications from Adobe Experience Manager, Adobe Funds, and Adobe Creative Cloud, such as Adobe Illustrator, Adobe Photoshop, and Adobe InDesign. "ADOBE", "ADOBEEXPERIENCE MANAGER", "ADOBE FONTS", "ADOBE CREATIVE CLOUD", "ADOBE ILLUSTRATOR", "ADOBE PHOTOSHOP" and "ADOBE INDESIGN" are trademarks of Adobe Systems Incorporated in the U.S. and / or other countries.
[0134] Figures 1 to 11 The accompanying text and examples provide numerous different systems, methods, and non-transient computer-readable media for generating font maps based on visual similarity to provide visual representations of one or more fonts for selection. In addition to the foregoing, embodiments may also be described as flowcharts, which include actions for achieving specific results. For example, Figure 12The illustration shows a flowchart of an example sequence of actions or a series of actions according to one or more embodiments.
[0135] although Figure 12 The illustration shows actions according to one embodiment, but alternative embodiments may omit, add, reorder, and / or modify them. Figure 12 Any action shown. Figure 12 The action can be performed as part of the method. Alternatively, a non-transitory computer-readable medium may include instructions that, when executed by one or more processors, cause a computing device to perform... Figure 12 The system may perform the following actions. In other embodiments, the system may execute... Figure 12 The actions described herein can be performed in parallel with each other or repeated or executed in parallel with different instances of the same or other similar actions.
[0136] Figure 12 The illustration depicts a series of example actions 1200 for generating font maps based on visual similarity to provide a visual representation of one or more fonts for selection. Specifically, the series of actions 1200 includes action 1202: identifying multiple fonts. For example, action 1202 may involve identifying multiple fonts of different styles associated with a client device. Further, action 1202 may include identifying multiple client fonts of different styles, or identifying multiple font families of different styles.
[0137] As shown in the figure, a series of actions 1200 includes the following action 1204: extracting features from fonts. Specifically, action 1204 may involve extracting features from multiple fonts. For example, action 1204 may involve extracting features from multiple fonts by utilizing an encoder neural network to extract a subset of features from each font.
[0138] Additionally, the series of actions 1200 includes the following action 1206: determining the visual similarity between fonts through features. Specifically, action 1206 may involve: determining the visual similarity between multiple fonts through features using a visual feature classification model. For example, action 1206 may involve: determining the distance between feature vectors corresponding to multiple fonts in the feature space. In practice, action 1206 may involve: determining the feature distance between feature vectors and the node weights for a set of nodes within a font mapping, where the feature vectors represent multiple fonts.
[0139] Furthermore, the series of actions 1200 includes the following action 1208: mapping fonts to font maps based on visual similarity. Specifically, action 1208 may involve: using a visual feature classification model to map multiple fonts to font maps based on visual similarity. For example, action 1208 may involve: mapping a specific feature vector to a subset of nodes within the font map, where the specific feature vector represents visually similar fonts.
[0140] As further illustrated, a series of actions 1200 includes the following action 1210: providing a visual depiction of the font for display. Specifically, action 1210 may involve: providing visual depictions of one or more fonts from a plurality of fonts for display on a client device, based on a font map. For example, action 1210 may involve: traversing the font map to select a font that has a visual appearance difference of less than a threshold relative to previously selected fonts.
[0141] The series of actions 1200 may also include the following action 1212: providing users with options to interact with the visual depiction. Specifically, action 1212 may involve providing users with options to interact with the visual depiction for display on a client device. For example, action 1212 may include the action of identifying a target region for the font mapping. Further, action 1212 may include the action of generating a higher-resolution font mapping for the target region by mapping a subset of fonts to a subset of nodes in a higher-resolution font mapping. Generating the higher-resolution font mapping may involve: fixing boundary conditions for the higher-resolution font mapping based on the boundaries associated with the target region; and generating new node weights for new nodes within the target region by interpolating between node weights, the node weights corresponding to existing nodes within the target region.
[0142] Additionally, a series of actions 1200 may include (e.g., as part of action 1212) receiving a request from a client device to view a subset of fonts corresponding to a target area of a font map. The series of actions 1200 may also include providing a visual depiction of the font subset for display on the client device, the font subset being ordered according to visually similar fonts within a higher-resolution font map.
[0143] A series of actions 1200 may include the following actions: generating a font mapping using a self-organizing map, the font mapping comprising a set of nodes corresponding to multiple fonts; determining a feature distance between a feature vector and node weights, the node weights corresponding to a subset of nodes; and mapping a specific feature vector to a corresponding node within the node set based on the feature distance, the specific feature vector representing a visually similar font. Mapping a feature vector to a node in the font mapping may include: comparing the feature vector with node weights corresponding to nodes in the font mapping; and identifying a single node in the font mapping with node weights corresponding to more than one feature vector based on the comparison of the feature vector with the node weights.
[0144] Additionally, a series of actions 1200 may include the following actions: generating an adaptive resolution font map comprising multiple resolutions from the self-organizing map to: identify a target region of the font map, the target region corresponding to u-matrix values between nodes, the u-matrix values exceeding a u-matrix value threshold; and increase the resolution of the target region corresponding to u-matrix values exceeding the u-matrix value threshold by mapping a subset of feature vectors to a subset of nodes within the target region. Generating the adaptive resolution font map comprising multiple resolutions may involve: fixing boundary conditions for the target region of the font map, the target region corresponding to u-matrix values exceeding the u-matrix value threshold; and generating new node weights for new nodes within the target region by interpolating between node weights, the node weights corresponding to existing nodes within the target region.
[0145] The series of actions 1200 may also include the following actions (e.g., as part of action 1212): recommending fonts from multiple fonts by traversing a font map to select fonts sequentially, the fonts having at least a threshold similarity with respect to previously selected fonts. Traversing the font map may involve: a gradient traversal path along the u-matrix associated with the font map. The series of actions 1200 may also include the following actions: providing a visual representation of one or more fonts by providing a list of selected fonts, the list of selected fonts being generated by gradient traversal of the font map along the u-matrix.
[0146] Additionally, a series of actions 1200 may include the following actions: tuning the self-organizing map to map sample feature vectors to nodes within the font map by: inputting sample feature vectors representing sample fonts into the self-organizing map; determining the best matching node for the sample feature vectors by prioritizing nodes whose u matrix values exceed a threshold value, by comparing the sample feature vectors with initial node weights associated with specific nodes in the self-organizing map using the self-organizing map; and modifying the node weights of the best matching node to reduce the difference between the node weights and the sample feature vectors.
[0147] A series of actions 1200 may include the following additional actions (e.g., as part of action 1212): receiving an instruction for a user selection of a font from within a graphical user interface; generating a higher resolution font map including a subset of fonts associated with the selected font for a target area of the font map in response to the instruction for the user selection; and providing a visual depiction of the fonts from the subset of fonts within the higher resolution font map for display on a client device.
[0148] Further, the series of actions 1200 may include the following actions (e.g., as part of action 1212): receiving an indication of user selection of a font from within a graphical user interface; identifying a subset of fonts within a font map in response to the user selection indication, the subset of fonts being within a threshold visual similarity with respect to the selected font; and providing a visual depiction of the font subset for display on a client device. The series of actions 1200 may also include the following actions: providing a visual depiction of the font map by comparing multiple feature vectors of a font mapped to a single node of the font map to identify the best-matching feature vector from the multiple feature vectors, the best-matching feature vector having the minimum difference with the node weight corresponding to the single node; and generating a visual depiction of the font corresponding to the best-matching feature vector to represent the single node within the visual depiction of the font map.
[0149] Embodiments of this disclosure may include or utilize a dedicated or general-purpose computer (including computer hardware), such as, for example, one or more processors and system memory, as discussed in more detail below. Embodiments within the scope of this disclosure also include physical and other computer-readable media for carrying or storing computer-executable instructions and / or data structures. In particular, one or more processes described herein may be implemented at least in part as instructions implemented in a non-transitory computer-readable medium and executable by one or more computing devices (such as any of the media content access devices described herein). Typically, a processor (e.g., a microprocessor) receives instructions from a non-transitory computer-readable medium (e.g., memory) and executes those instructions to perform one or more processes (including one or more processes described herein).
[0150] Computer-readable media can be any available medium that can be accessed by general-purpose or special-purpose computer systems. A computer-readable medium storing computer-executable instructions is a non-transitory computer-readable storage medium (device). A computer-readable medium carrying computer-executable instructions is a transmission medium. Therefore, by way of example and not limitation, embodiments of this disclosure may include at least two distinctly different kinds of computer-readable media: non-transitory computer-readable storage media (devices) and transmission media.
[0151] Non-transient computer-readable storage media (devices) include RAM, ROM, EEPROM, CD-ROM, solid-state drives (“SSDs”) (e.g., RAM-based), flash memory, phase-change memory (“PCM”), other types of memory, other optical disc storage devices, disk storage devices or other magnetic storage devices, or any other media that can be used to store desired program code components in the form of computer-executable instructions or data structures and can be accessed by a general-purpose or special-purpose computer.
[0152] A “network” is defined as one or more data links that enable the transfer of electronic data between computer systems and / or modules and / or other electronic devices. When information is transferred or provided to a computer via a network or another communication connection (hard-wired, wireless, or a combination of hard-wired and wireless), the computer correctly regards that connection as a transmission medium. Transmission media may include networks and / or data links, which may be used to carry desired program code components in the form of computer-executable instructions or data structures, and may be accessible by general-purpose or special-purpose computers. Combinations of the above should also be included within the scope of computer-readable media.
[0153] Furthermore, upon arrival at various computer system components, program code components in the form of computer-executable instructions or data structures can be automatically transferred from the transmission medium to a non-transient computer-readable storage medium (device) (and vice versa). For example, computer-executable instructions or data structures received via a network or data link can be buffered in RAM within a network interface module (e.g., a "NIC") and then eventually transferred to the computer system RAM and / or a less volatile computer storage medium (device) at the computer system. Therefore, it should be understood that a non-transient computer-readable storage medium (device) can be included in a computer system component that also (or even primarily) utilizes the transmission medium.
[0154] For example, computer-executable instructions include instructions and data that, when executed at a processor, cause a general-purpose computer, a special-purpose computer, or a special-purpose processing device to perform a function or group of functions. In some embodiments, the computer-executable instructions are executed on a general-purpose computer to transform the general-purpose computer into a special-purpose computer that implements the elements of this disclosure. For example, the computer-executable instructions may be binary, intermediate format instructions (such as assembly language), or even source code. Although the subject matter has been described in language specific to structural features and / or methodological actions, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the described features or actions. Rather, the described features and actions are disclosed as exemplary forms for implementing the claims.
[0155] Those skilled in the art will appreciate that this disclosure can be practiced in network computing environments with many types of computer system configurations, including personal computers, desktop computers, laptop computers, message processors, handheld devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframes, mobile phones, PDAs, tablet computers, pagers, routers, switches, etc. This disclosure can also be practiced in distributed system environments, where tasks are performed on local and remote computer systems via network links (via hardwired data links, wireless data links, or a combination of hardwired and wireless data links). In a distributed system environment, program modules can reside in local and remote memory storage devices.
[0156] The embodiments of this disclosure can also be implemented in a cloud computing environment. In this description, "cloud computing" is defined as a model for enabling on-demand network access to a shared pool of configurable computing resources. For example, cloud computing may be adopted in the market to provide ubiquitous and convenient on-demand access to a shared pool of configurable computing resources. The shared pool of configurable computing resources can be rapidly provisioned via virtualization and released with low management effort or service provider interaction, and then scaled accordingly.
[0157] Cloud computing models can be composed of various features, such as on-demand self-service, broad network access, resource pooling, rapid elasticity, and measurement services. Cloud computing models can also expose various service models, such as Software as a Service (“SaaS”), Platform as a Service (“PaaS”), and Infrastructure as a Service (“IaaS”). Cloud computing models can also be deployed using different deployment models, such as private clouds, community clouds, public clouds, and hybrid clouds. In this description and claims, a “cloud computing environment” is the environment in which cloud computing is employed.
[0158] Figure 13 An example computing device 1300 (e.g., computing device 1100, client device 108, and / or (multiple) servers 104) is illustrated in block diagram form. This example computing device 1300 can be configured to perform one or more of the processes described above. It will be understood that a font mapping system 105 may include an implementation of the computing device 1300. Figure 13 As shown, the computing device may include a processor 1302, a memory 1304, a storage device 1306, an I / O interface 1308, and a communication interface 1310. Furthermore, the computing device 1300 may include input devices such as a touchscreen, mouse, and keyboard. In some embodiments, with... Figure 13 Compared to the components shown, computing device 1300 may include fewer or more components. Figure 13The components of the computing device 1300 shown will now be described in additional detail.
[0159] In a particular embodiment, processor(s) 1302 includes hardware for executing instructions, such as instructions that constitute a computer program. By way of example and not by limitation, in order to execute instructions, processor(s) 1302 may retrieve (or obtain) instructions from internal registers, internal caches, memory 1304, or storage device 1306, and decode and execute them.
[0160] Computing device 1300 includes memory 1304 coupled to processor(s) 1302. Memory 1304 can be used to store data, metadata, and programs for execution by the processor(s). Memory 1304 may include one or more of volatile and non-volatile memories, such as random access memory (“RAM”), read-only memory (“ROM”), solid-state drive (“SSD”), flash memory, phase-change memory (“PCM”), or other types of data storage devices. Memory 1304 may be internal or distributed memory.
[0161] Computing device 1300 includes storage device 1306, which includes a storage means for storing data or instructions. By way of example and without limitation, storage device 1306 may include the aforementioned non-transient storage media. Storage device 1306 may include a hard disk drive (HDD), flash memory, a universal serial bus (USB) drive, or a combination thereof, or other storage devices.
[0162] The computing device 1300 also includes one or more input or output (“I / O”) devices / interfaces 1308 provided to allow a user to provide input (such as user pen strokes) to the computing device 1300, receive output from the computing device 1300, and otherwise transfer data between the computing devices 1300. These I / O devices / interfaces 1308 may include a mouse, keypad or keyboard, touchscreen, camera, optical scanner, network interface, modem, other known I / O devices, or combinations of such I / O devices / interfaces 1308. The touchscreen may be activated using a writing device or a finger.
[0163] I / O device / interface 1308 may include one or more devices for presenting output to a user, including but not limited to a graphics engine, a display (e.g., a screen), one or more output drivers (e.g., display drivers), one or more audio mappers, and one or more audio drivers. In some embodiments, device / interface 1308 is configured to provide graphics data to the display for presentation to a user. The graphics data may represent one or more graphical user interfaces and / or any other graphical content, which may serve a particular implementation.
[0164] The computing device 1300 may also include a communication interface 1310. The communication interface 1310 may include hardware, software, or both. The communication interface 1310 may provide one or more interfaces for communication (such as packet-based communication, for example) between the computing device and one or more other computing devices 1300 or one or more networks. As an example and without limitation, the communication interface 1310 may include a network interface controller (NIC) or network adapter for communicating with Ethernet or other wired-based networks, or may include a wireless NIC (WNIC) or wireless adapter for communicating with wireless networks, such as Wi-Fi. The computing device 1300 may also include a bus 1312. The bus 1312 may include hardware, software, or both, which couples components of the computing device 1300 to each other.
[0165] In the foregoing description, the invention has been described with reference to specific exemplary embodiments thereof. Various embodiments and aspects of the invention have been described with reference to the details discussed herein, and various embodiments are illustrated in the accompanying drawings. The foregoing description and drawings illustrate the invention and are not to be construed as limiting the invention. Numerous specific details have been described to provide a thorough understanding of various embodiments of the invention.
[0166] This invention may be practiced in other specific forms without departing from its spirit or essential characteristics. The described embodiments are to be considered illustrative in all respects only, and not restrictive. For example, the methods described herein may be performed with fewer or more steps / actions, or these steps / actions may be performed in a different order. Additionally, the steps / actions described herein may be repeated or performed in parallel with each other or with different instances of the same or similar steps / actions. Therefore, the scope of the invention is indicated by the appended claims, and not by the foregoing description. All variations falling within the equivalent meaning and scope of the claims are to be included within their scope.
Claims
1. A non-transient computer-readable medium storing executable instructions that, when executed by a processing device, cause the processing device to perform an operation, comprising: Multiple fonts with different styles associated with the client device; Extract features from the plurality of fonts; The visual similarity between the multiple fonts is determined from the features using a visual feature classification model. Using the visual feature classification model, visually similar fonts are arranged in a common area of the font mapping, and the multiple fonts are mapped to the font mapping according to the visual similarity. Identify the target region of the font mapping; as well as The higher-resolution font mapping is generated for the target region by mapping a subset of fonts from the plurality of fonts to a subset of nodes of the higher-resolution font mapping; as well as Based on the higher resolution font mapping, a visual depiction of one or more fonts from the font subset is provided for display on the client device.
2. The non-transient computer-readable medium of claim 1, wherein extracting the features from the plurality of fonts comprises: An encoder neural network is used to extract a subset of features from each of the multiple fonts.
3. The non-transient computer-readable medium of claim 1, wherein determining the visual similarity between the plurality of fonts comprises: Determine the distance between the feature vectors corresponding to the plurality of fonts in the feature space.
4. The non-transient computer-readable medium according to claim 1, wherein: Determining the visual similarity among the plurality of fonts includes: determining the feature distance between feature vectors and the node weights for a set of nodes within the font mapping, wherein the feature vectors represent the plurality of fonts; and Mapping the plurality of fonts to the font mapping based on the visual similarity includes: mapping a specific feature vector to a subset of nodes within the font mapping, wherein the specific feature vector represents visually similar fonts.
5. The non-transient computer-readable medium of claim 1 further stores executable instructions that, when executed by the processing device, cause the processing device to perform an operation, including: The user is provided with the option to interact with the visual depiction for display on the client device.
6. The non-transient computer-readable medium according to claim 1, wherein: The target region identifying the font mapping includes: identifying the region of the font mapping corresponding to the u matrix values between nodes, the u matrix values exceeding a u matrix value threshold, wherein the u matrix indicates a two-dimensional visualization of the data from the mapping.
7. The non-transient computer-readable medium of claim 5, wherein generating the higher resolution font mapping further comprises: Based on the boundaries associated with the target region, fixed boundary conditions are applied to the higher resolution font mapping. as well as New node weights are generated for new nodes within the target region by interpolating between node weights, and the node weights correspond to existing nodes within the target region.
8. The non-transient computer-readable medium of claim 5 further stores executable instructions that, when executed by the processing device, cause the processing device to perform an operation, including: The client device receives a request to view the font subset, the font subset corresponding to the target region of the font mapping; as well as A visual depiction of the font subset is provided for display on the client device, the font subset being ordered according to visually similar fonts within the higher resolution font map.
9. A system for displaying fonts, comprising: One or more memory devices store multiple fonts, encoder neural networks, and self-organizing maps; as well as One or more processors configured to cause the system to perform operations, including: The multiple fonts that identify different styles associated with the client device The encoder neural network is used to extract feature vectors from the multiple fonts; The visual similarity between the plurality of fonts is determined from the feature vectors; A font map is generated using the self-organizing map through the following operations. The font map depicts visually similar fonts together within a common area of the font map, and the font map includes a set of nodes corresponding to the plurality of fonts: Determine the feature distance between the feature vector and the node weights, where the node weights correspond to the node set; Based on the feature distance, a specific feature vector is mapped to a corresponding node within the node set, where the specific feature vector represents visually similar fonts; Identify the target region of the font mapping; and The higher-resolution font mapping is generated for the target region by mapping a subset of fonts from the plurality of fonts to a subset of nodes of a higher-resolution font mapping; and Based on the higher resolution font mapping, a visual depiction of one or more fonts from the font subset is provided for display on the client device.
10. The system of claim 9, wherein the one or more processors are further configured to cause the system to perform operations, including: Generate an adaptive resolution font mapping that includes multiple resolutions using the following steps: Identify the target region of the font mapping, the target region corresponding to the u-matrix values between nodes, the u-matrix values exceeding a u-matrix value threshold, wherein the u-matrix indicates a two-dimensional visualization of the data from the mapping; and By mapping a subset of feature vectors to a subset of nodes within the target region, the resolution of the target region corresponding to the u matrix value, where the u matrix value exceeds a threshold value, is improved.
11. The system of claim 10, wherein generating the adaptive resolution font mapping comprising multiple resolutions comprises: Fixed boundary conditions are applied to the target region of the font mapping, where the target region corresponds to a u matrix value exceeding the u matrix value threshold; as well as New node weights are generated for new nodes within the target region by interpolating between node weights, and the node weights correspond to existing nodes within the target region.
12. The system of claim 9, wherein the one or more processors are further configured to cause the system to perform operations, including: Fonts are recommended from the plurality of fonts by traversing the font map to select a font that has at least a threshold similarity to a previously selected font, or another font that has a visual appearance difference of less than a threshold from a previously selected font.
13. The system of claim 10, wherein traversing the font mapping comprises: The gradient traversal path is along the u matrix associated with the font mapping.
14. The system of claim 13, wherein providing a visual representation of one or more fonts from the subset of fonts comprises: By providing a list of selected fonts, which is generated by traversing the font mapping along the gradient of the u matrix.
15. The system according to claim 9, wherein mapping a specific feature vector to a corresponding node within the node set comprises: The feature vector is compared with the node weights, where the node weights correspond to the nodes in the font mapping; as well as Based on comparing the feature vector with the node weight, a single node with node weight is identified in the font mapping, where the node weight corresponds to more than one feature vector.
16. The system of claim 10, wherein the one or more processors are further configured to cause the system to perform operations, including: The self-organizing map is tuned to map sample feature vectors to nodes within the font map using the following: The sample feature vector representing the sample font is input into the self-organizing map; By prioritizing nodes whose u-matrix values exceed a threshold, and by comparing the sample feature vector with initial node weights using the self-organizing map, the optimal matching node for the sample feature vector is determined, where the initial node weights are associated with a specific node in the self-organizing map; and Modify the node weight of the best matching node to reduce the difference between the node weight and the sample feature vector.
17. A computer-implemented method for generating and providing font mappings for font selection, the computer-implemented method comprising: Multiple fonts with different styles associated with the client device; Extract features from the plurality of fonts; The visual similarity between the multiple fonts is determined from the features using a visual feature classification model; Using the visual feature classification model, visually similar fonts are arranged together in the common area of the font mapping, and the multiple fonts are mapped to the font mapping according to the visual similarity. Identify the target region of the font mapping; as well as The higher-resolution font mapping is generated for the target region by mapping a subset of fonts from the plurality of fonts to a subset of nodes of the higher-resolution font mapping; as well as Based on the higher resolution font mapping, a graphical user interface is provided that includes a visual depiction of one or more fonts from the font subset for display on the client device.
18. The computer-implemented method according to claim 17, further comprising: Receive instructions for user selection of font from within the graphical user interface; In response to the user's selected instruction, a higher-resolution font map including a subset of fonts is generated for the target region of the font map, the target region being associated with the selected font; as well as Provide a visual depiction of the fonts from the subset of fonts within the higher resolution font map for display on the client device.
19. The computer-implemented method of claim 17, wherein the plurality of fonts identifying different styles associated with a client device comprises: It can identify multiple client-side fonts with different styles, or multiple font families with different styles.
20. The computer-implemented method of claim 17, wherein a graphical user interface comprising a visual depiction of one or more fonts from the subset of said fonts is provided for displaying on the client device: The following operations provide a visual representation of the font mapping: Multiple feature vectors of a font are compared, the font being mapped to a single node of the font mapping, to identify the best-matching feature vector from the multiple feature vectors, the best-matching feature vector having the minimum difference with the node weight corresponding to the single node; and Generate a visual depiction of the font corresponding to the best-matching feature vector to represent the individual node within the visual depiction of the font mapping.
Citation Information
Patent Citations
Recognizing unseen fonts based on visual similarity
US20180089151A1
Method and system of data analysis using neural networks
WO2005006249A1