Client application content classification and discovery
By generating content through client applications and using server systems to analyze multiple data sources to determine categories, this approach addresses the shortcomings of existing content classification and discovery mechanisms, enabling flexible content classification and efficient discovery.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- SNAP INC
- Filing Date
- 2021-05-25
- Publication Date
- 2026-07-10
AI Technical Summary
Existing systems have shortcomings in content classification and discovery mechanisms, making it difficult for users to effectively discover content of interest, and limiting the ways in which content is published. Conventional systems rely on user identity rather than content topic for classification.
Content is generated through client applications, and the server system analyzes various data sources to determine the content category, including image recognition, location data, and identifiers generated by creative tools. Content of the same category is grouped together, and users can access related content based on the category identifier.
It enables flexible content categorization and efficient discovery, allowing users to access relevant content based on the topic rather than their identity, thus improving content discoverability and accessibility.
Smart Images

Figure CN115698983B_ABST
Abstract
Description
[0001] Priority requirements
[0002] This patent application claims the benefit of priority to U.S. Application Serial No. 16 / 885,849, filed May 28, 2020, the entire contents of which are incorporated herein by reference. Background Technology
[0003] Applications running on client devices can be used to generate content. For example, client applications can be used to generate messaging content, image content, video content, audio content, media overlays, documents, creative artwork, combinations thereof, etc. In various cases, this content can be exchanged between client devices via a computing system that allows content communication between client devices. Attached Figure Description
[0004] In drawings that are not necessarily drawn to scale, the same reference numerals may describe similar parts in different views. For ease of identification of any particular element or action in discussion, one or more most significant digits in the reference numerals indicate the drawing number in which the element was first introduced. Some implementations are shown by way of example rather than limitation.
[0005] Figure 1 It is a graphical representation of an architecture for exchanging data (e.g., messages and associated content) over a network, based on one or more example implementations.
[0006] Figure 2 This is a schematic diagram illustrating data that can be stored in a database on a server system, based on one or more example implementations.
[0007] Figure 3 This is a schematic diagram illustrating an example framework of content that can be generated by a client application based on one or more example implementations.
[0008] Figure 4 It is a graphical representation of an architecture that, based on one or more example implementations, can determine the classification of content items and make content items accessible to users based on the classification of content items.
[0009] Figure 5 This is a flowchart illustrating example operations performed by a server system, based on data corresponding to the coverage of content items, according to one or more example implementations.
[0010] Figure 6 This is a flowchart illustrating example operations performed by a server system, based on one or more example implementations, to add content from a page displaying content items associated with a category to a category.
[0011] Figure 7 This is a flowchart illustrating example operations performed by a client device, based on one or more example implementations, to generate content items that can be accessed based on categories.
[0012] Figure 8 It is a diagram of a user interface that includes content associated with a category, based on one or more example implementations.
[0013] Figure 9 It is an illustration of a user interface that adds categories to content based on text input, based on one or more example implementations.
[0014] Figure 10 It is an illustration of a user interface for adding categories to content using creative tools, based on one or more example implementations.
[0015] Figure 11 It is a diagram of a user interface that adds categories to shared content in relation to one or more example implementations.
[0016] Figure 12 It is a diagram of a user interface that adds content to a collection of categorized content, based on one or more example implementations.
[0017] Figure 13 It is a diagram of a user interface that includes options for shared categories, based on one or more example implementations.
[0018] Figure 14 It is a diagram of a user interface for managing content associated with one or more categories, based on one or more example implementations.
[0019] Figure 15 It is a block diagram illustrating a representative software architecture that can be used in conjunction with one or more hardware architectures described herein, based on one or more example implementations.
[0020] Figure 16 It is a block diagram illustrating components of a machine in the form of a computer system, which, according to one or more example implementations, can read and execute instructions from one or more machine-readable media to perform any or more methods described herein. Detailed Implementation
[0021] Content can be created using an application executed by a client device. For example, a client application can be used to create messages that can be exchanged between a user's client devices. In these cases, the client application can include at least one of a messaging application or a social networking application. Messages can include content such as text content, video content, audio content, image content, or one or more combinations thereof. The client application can also be used outside of a messaging context to generate at least one of text content, image content, video content, or audio content that can be shared between client devices.
[0022] Client-side applications can be executed by a large number of users (such as thousands or even millions) to generate content. Therefore, the volume of content generated using client-side applications can be substantial. Content generated using client-side applications can vary and be associated with multiple different themes, such as location, events, various objects, individuals, or animals. In many cases, content created using client-side applications is shared with multiple other users. However, in conventional systems, large amounts of content are not curated in a way that allows individuals to easily discover content they might be interested in. Furthermore, it can be challenging for users to publish their content in ways that are additionally discoverable by the user. Typically, conventional systems are limited in how content is categorized and in the channels that can be used to discover content that users are interested in. For example, typical social networking platforms allow users to post content to personal pages or accounts that may include publicly accessible content. However, content publicly posted by users is often discovered based on the user's identity rather than on the topic related to the content. Additionally, the number of ways that conventional systems can categorize content is limited and may depend on user input.
[0023] The systems, methods, techniques, instruction sequences, and computer program products described herein are for classifying content generated using client applications and for accessing content based on one or more categories associated with the content. Content can be generated by a client application executed by a content creator's client device and sent to a server system, which can distribute the content to one or more additional client devices of content recipients. The server system can also determine one or more categories of content and aggregate content belonging to the same category. Based on the category, other users can access the content associated with that category. In various examples, content can be accessed without providing an identifier of the user who created the content.
[0024] In various implementations, the content can be created by a user of the client application. The client application may include social networking functionality. Additionally, the client application may provide messaging functionality. In one or more implementations, the client device may be used in conjunction with the client application to capture content such as image content or video content. The client application may utilize one or more input devices, such as at least one of one or more cameras or one or more microphones on the client device, and control the operation of one or more input devices within the client application. Data corresponding to the content can be used to determine one or more categories of the content. In one or more illustrative examples, a user of the client application may provide data for determining one or more categories of the content. For example, a user of the client application may provide text corresponding to images or videos, such as captions, comments, annotations, or messages, that can be used to determine one or more categories of the content. In at least some examples, the text may include explicit categories of content that can be marked by one or more symbols such as the "#" symbol. Furthermore, a user of the client application may implement a creative tool relative to the content and may determine one or more categories of the content based on this creative tool. Creative tools can alter the appearance of image or video content, add overlays to at least one image or video content, add animations to image or video content, or one or more combinations thereof. They can also determine one or more categories for content based on selecting at least one category identifier from a list of category identifiers corresponding to multiple categories.
[0025] In another example, content-related data can be analyzed to implicitly determine one or more categories of the content. For illustration, image recognition techniques can be used to identify one or more objects included in image or video content. The content can then be categorized based on at least one object included in the image or video content. Furthermore, location data corresponding to a client device can be used to determine one or more categories of the content. In one or more examples, location data can be used to identify one or more events that may occur at or near that location, and one or more categories can be determined based on one or more events related to the content.
[0026] In one or more implementations, the server system can obtain content from multiple client devices of a user of a client application and aggregate content with one or more categories. This allows the system to generate a repository of content with the same or similar categories. Users of the client application can access content associated with a category by providing an identifier corresponding to that category. In various examples, the order in which content is presented to the appropriate user can be based on a ranking of content determined according to one or more user characteristics. For example, the server system can analyze information about a user of the client application regarding one or more characteristics of content associated with a category to determine the level of interest for at least a portion of the content items belonging to that category. Based on these levels of interest, the server system can determine a ranking of multiple content items belonging to that category and, according to this ranking, allow the user to access content items, thereby presenting content items with a relatively high level of interest to the user in one or more user interfaces of the client application, prioritizing those with lower levels of interest.
[0027] Therefore, the systems, methods, techniques, instruction sequences, and computational machine program products described herein offer various implementations to categorize content by providing content discovery mechanisms lacking in conventional systems, enabling content to be accessed by more users if content creators desire it. Furthermore, many different types of data and inputs can be used to determine content categorization, providing flexibility in content categorization not found in conventional techniques and systems. For example, instead of relying on user input to determine the categorization of content items, the categorization of content items can be determined based on characteristics of the content identified by analyzing data associated with the content. In another example, the categorization of content can be identified based on one or more features included in the coverage of the content item.
[0028] Figure 1 This is a graphical representation of architecture 100 for exchanging data (e.g., messages and associated content) over a network. Architecture 100 may include multiple client devices 102. Client devices 102 may individually include, but are not limited to, mobile phones, desktop computers, laptop computing devices, portable digital assistants (PDAs), smartphones, tablet computing devices, ultrabooks, netbooks, multiprocessor systems, microprocessor-based or programmable consumer electronics systems, game consoles, set-top boxes, computers in vehicles, wearable devices, one or more combinations thereof, or any other communication devices that a user can utilize to access one or more components included in architecture 100.
[0029] Each client device 102 may host multiple applications, including client application 104 and one or more third-party applications 106. Users can use client application 104 to create content such as videos, images (e.g., photos), audio, and media overlays. In one or more illustrative examples, client application 104 may include social networking features that enable users to create and exchange content. In various examples, client application 104 may include messaging features that can be used to send messages between instances of client application 104 executed by various client devices 102. Messages created using client application 104 may include videos, one or more images, audio, media overlays, text, content generated using one or more creative tools, annotations, etc. In one or more implementations, client application 104 may be used to view and generate interactive messages, view the locations of other users of client application 104 on a map, chat with other users of client application 104, etc.
[0030] One or more users can be people, machines, or other devices that interact with client devices such as the first client device 102. In example implementations, a user may not be part of architecture 100, but may interact with one or more components of architecture 100 via client device 102 or other means. In various examples, a user may provide input to client device 102 (e.g., touchscreen input or alphanumeric input), and this input may be transmitted to other entities within architecture 100. In this instance, other entities within architecture 100, in response to user input, may transmit information to client device 102 to be presented to the user. Thus, a user can interact with various entities within architecture 100 using client device 102.
[0031] Each instance of client application 104 is capable of transmitting and exchanging data with at least one instance of client application 104, one or more third-party applications 106, or server system 108. The data exchanged between instances of client application 104, between third-party applications 106, and between instances of client application 104 and server system 108 includes functions (e.g., commands to invoke functions) and payload data (e.g., text, audio, images, video, or other multimedia data). Data exchanged between instances of client application 104, between third-party applications 106, and between at least one instance of client application 104 and at least one third-party application 106 can be exchanged directly from instances of applications executed by client device 102 and instances of applications executed by additional client device 102. Furthermore, data exchanged between client applications 104, between third-party applications 106, and between at least one client application 104 and at least one third-party application 106 can be indirectly (e.g., via one or more intermediate servers) from instances of applications executed by client device 102 to another instance of an application executed by additional client device 102. In one or more illustrative examples, one or more intermediate servers used in indirect communication between applications may be included in server system 108.
[0032] Third-party application 106 can be separate from and distinct from client application 104. Third-party application 106 can be downloaded and installed separately by client device 102 from client application 104. In various implementations, third-party application 106 can be downloaded and installed by client device 102 before or after client application 104 is downloaded and installed. Third-party application 106 can be provided by an entity or organization different from the entity or organization providing client application 104. Client device 102 can access third-party application 106 using different login credentials than client application 104. That is, third-party application 106 can maintain a first user account, while client application 104 can maintain a second user account. In some implementations, client device 102 can access third-party application 106 to perform various activities and interactions, such as listening to music and videos, tracking workouts, viewing graphical elements (e.g., stickers), and communicating with other users. As an example, third-party application 106 may include social networking applications, dating applications, bicycle or car sharing applications, shopping applications, transaction applications, game applications, imaging applications, music applications, video browsing applications, exercise tracking applications, health monitoring applications, graphic element or sticker browsing applications, or any other suitable applications.
[0033] Server system 108 provides server-side functionality to client application 104 via one or more networks 110. Depending on some example implementations, server system 108 may be a cloud computing environment. For example, in one illustrative example, server system 108 and one or more servers associated with server system 108 may be associated with a cloud-based application. In one or more implementations, first client device 102, second client device 104, and server system 108 may be coupled via one or more networks 110. One or more portions of one or more networks 110 may be an ad hoc network, intranet, extranet, virtual private network (VPN), local area network (LAN), wireless LAN (WLAN), wide area network (WAN), wireless WAN (WWAN), metropolitan area network (MAN), a portion of the Internet, a portion of the public switched telephone network (PSTN), a cellular telephone network, a wireless network, a Wi-Fi network, a WiMax network, other types of networks, or a combination of two or more such networks.
[0034] Server system 108 supports various services and operations provided to client application 104. Such operations include transmitting data to client application 104, receiving data from client application 104, and processing data generated by client application 104. As an example, this data may include message content, media content, client device information, geolocation information, media comments and overlays, message content persistence conditions, social network information, and live event information. Data exchange within architecture 100 is invoked and controlled via functions available through the user interface (UI) of client application 104.
[0035] Although some functions of architecture 100 are described herein as being performed by client application 104 or server system 108, the location of the functions within client application 104 or server system 108 is a design choice. For example, it may be technically preferred that certain technologies and functions are initially deployed within server system 108, but that technology and functions are later migrated to client application 104 on client device 102 with sufficient processing power.
[0036] Server system 108 includes an application programming interface (API) server 112, which is coupled to application server 114 and provides a programming interface to application server 114. Application server 114 is communicatively coupled to database server 116, which provides easy access to one or more databases 118. One or more databases 118 may store data associated with information processed by application server 114. One or more databases 118 may be storage devices that store information such as unprocessed media content, raw media content from users (e.g., high-quality media content), processed media content (e.g., media content formatted for sharing with and viewing on client device 102), background data associated with media content items, background data associated with user devices (e.g., computing or client device 102), media overlays, media overlay smart windows or smart elements, user data, user device information, media content (e.g., videos and images), media content data (e.g., data associated with videos and images), computing device background data, serialization data, session data items, user device location data, mapping information, interactive message usage data, interactive message metric data, etc. One or more databases 118 may also store information related to third-party servers, client device 102, client application 104, users, third-party application 106, etc.
[0037] API server 112 receives and transmits data (e.g., command and message payloads) between client device 102 and application server 114. Specifically, application programming interface (API) server 112 provides a set of interfaces (e.g., routines and protocols) that client application 104 can call or query to invoke functions of application server 114. API server 112 exposes various functions supported by application server 114, including account registration, login functionality, sending messages from one instance of client application 104 to another instance of client application 104 via application server 114, sending media files (e.g., images, audio, video) from client application 104 to application server 114, and setting up sets of media content (e.g., galleries, stories, message sets, or media sets) for possible access by another client application 104, retrieving the friend list of the user of client device 102, retrieving such sets, retrieving messages and content, adding and deleting friends in the social graph, locating friends within the social graph, and opening application events (e.g., involving client application 104).
[0038] Application server 114 hosts multiple applications and subsystems, including messaging application system 120, media content processing system 122, social networking system 124, and content classification system 126. Messaging application system 120 implements various messaging technologies and functions, particularly involving the aggregation and other processing of content (e.g., text and multimedia content) received from multiple instances of client application 104. For example, messaging application system 120 can deliver messages via wired networks (e.g., the Internet), common old-style telephone service (POTS), or wireless networks (e.g., mobile, cellular, Wi-Fi, LTE, or Bluetooth) using email, instant messaging (IM), short message service (SMS), text, fax, or voice (e.g., Voice over IP (VoIP)) messages. Messaging application system 120 can aggregate text and media content from multiple sources into content collections. These collections are then provided by messaging application system 120 to client application 104. Given the hardware requirements of such processing, additional processor- and memory-intensive data processing can also be performed by messaging application system 120 on the server side.
[0039] Media content processing system 122 is dedicated to performing various media content processing operations, typically relative to the payload of images, audio, or video received at the messaging application system 120, or other content items. Media content processing system 122 may access one or more data storage devices (e.g., database 118) to retrieve stored data used in processing media content and to store the results of the processed media content.
[0040] Social networking system 124 supports various social networking functions and services and makes these functions and services available to messaging application system 120. To this end, social networking system 124 maintains and accesses an entity graph within database 118. Examples of functions and services supported by social networking system 124 include identifying other users of client application 104 with whom a particular user has a relationship or who is “following” the particular user, as well as identifying the user’s following and other entities. Social networking system 124 can access location information associated with each of the user’s friends to determine where they live or are currently geographically located. Additionally, social networking system 124 can maintain a location profile for each of the user’s friends, indicating the geographical location where the user’s friends reside.
[0041] Content classification system 126 can determine one or more categories of content generated using client application 104. Content may include text content, image content, video content, audio content, content annotations, or combinations thereof generated using client application 104. In one or more illustrative examples, content may include image content with one or more annotations. One or more annotations may include overlays that include at least one of text content, content generated using one or more creative tools of client application 104, one or more additional images, or one or more animations. After a user of client device 102 generates content by providing input via client application 104, client device 102 may send data corresponding to that content to server system 108. In various examples, client application content data 128 may be transmitted between client device 102 and server system 108. Client application content data 128 may include data corresponding to content generated using client application 104 and sent from client device 102 to server system 108. Furthermore, client application content data 128 may include data related to client application 104 sent from server system 108 to client device 102. For example, client application content data 128 may include data corresponding to content identified by server system 108 based on one or more requests received from client device 102. Furthermore, client application content data 128 may include data corresponding to content to which the user of client device 102 is the recipient.
[0042] Server system 108 may store at least a portion of client application content data 128 as client application content 130 in database 118. Client application content 130 may include multiple content items 132. Each content item 132 may include one or more images, one or more videos, text, audio, one or more content annotations, or one or more combinations thereof. In various examples, each content item 132 may include a collection of images, videos, text, audio, content annotations, or combinations thereof. Additionally, client application content 130 may include category data 134. Category data 134 may correspond to one or more categories associated with a given content item 132. In one or more illustrative examples, category data 134 may include identifiers corresponding to the respective categories. At least a portion of one or more categories for a given content item 132 may be determined by content classification system 126. In other examples, at least one category for a given content item 132 may be determined by client application 104.
[0043] In one or more implementations, content classification system 126 may analyze a portion of client application content data 128 obtained from client device 102 to determine one or more categories of content generated by client application 104. In various examples, client application content data 128 may include content item 136 corresponding to content items generated by client application 104 and sent to server system 108. Content classification system 126 may analyze data associated with content item 136 to determine one or more categories corresponding to the content item. In one or more examples, the data for content item 136 may include image data, and content classification system 126 may analyze the image data to determine one or more objects included in the image. In these scenarios, content classification system 126 may determine one or more categories of the content item based on at least one object included in the image. In one or more additional examples, content classification system 126 may determine one or more recommendations for categories of the content item based on one or more objects included in the image.
[0044] Additionally, the content classification system 126 can analyze data corresponding to image overlays. For example, a user of client application 104 can use client application 104 to generate text content that can overlay an image, which is captured by a client device or stored by at least one client device 102. In other examples, a user of client application 104 can overlay additional image content or additional video content onto an image or video. In various examples, the overlay can be generated by one or more creative tools of client application 104. In one or more examples, the overlay associated with the image can include a classification identifier. For illustration, the overlay can include text corresponding to the classification identifier. In one or more illustrative examples, the classification identifier can be identified by using a symbol such as the "#" symbol. In these cases, the content classification system 126 can determine the classification of content item 136 based on the classification identifier included in the overlay. The content classification system 126 can also determine the classification of content item 136 based on the creative tool used to generate at least one of the overlay or the identifier of the overlay. In one or more implementations, the overlay can be associated with an identifier based on input from the overlay creator or service provider, making the overlay available to the user of client application 104. In one or more illustrative examples, the identifier for the overlay may include "current time" or "current temperature". In these cases, the category of content item 136 may correspond to the identifier associated with the overlay.
[0045] In one or more implementations, the content classification system 126 may determine the classification of content item 136 based on one or more classification identifiers selected by the user of client device 102 relative to content item 136. For example, client application 104 may generate a user interface that includes one or more classification identifiers for content item 136. One or more identifiers may include one or more recommendations for the classification of content item 136. In various examples, the classification identifiers included in the user interface that can be selected by the user of client application 104 may be determined by at least one of client application 104 or content classification system 126 based on at least one of the following: overlays associated with content item 136, image content data of content item 136 (such as objects included in an image of content item 136), text data of content item 136, additional annotation data of content item 136, video data of content item 136, or audio data of content item 136. In one or more illustrative examples, when the user of client application 104 is selecting one or more recipients for content item 136, the classification identifiers may be included in the user interface generated by client application 104. In these scenarios, the user interface elements corresponding to the classification identifier can be selected to classify the content item 136 according to the classification associated with the classification identifier.
[0046] After determining one or more categories for content item 136, content classification system 126 can store the content item as part of content item 132 in database 118. Content classification system 126 can also store one or more category identifiers associated with content item 136 as part of classification data 134. In one or more examples, content classification system 126 can store content item 136 in association with one or more categories, such that content item 136 can be retrieved based on the identifiers of the one or more categories associated with content item 136. For illustration, content item 136 can be retrieved in response to a request for content item, the content item corresponding to a category identifier associated with at least one category of content item 136. Thus, content item 136 can be provided to the user of client application 104 as part of a set of content items associated with at least one category of content item 136.
[0047] In one or more illustrative examples, content item 136 may be associated with the category “classic cars”. In these cases, content item 136 may be stored in database 118 relative to an identifier corresponding to “classic cars”. In response to a request for a content item associated with “classic cars”, content classification system 126 may identify and provide content item 136, such that content item 136 may be displayed in the user interface along with one or more additional content items associated with the category “classic cars”. In one or more implementations, content classification system 126 may determine the ranking of content items associated with one or more categories before providing one or more content items in response to a request for content with one or more categories. The ranking of content items may be based on information relevant to the user requesting content associated with one or more categories. For example, the profile information of a user requesting content related to "classic cars" can be analyzed by the content classification system 126 regarding multiple content items associated with the category "classic cars" to determine the order in which at least a portion of the content items associated with the category "classic cars" will be provided to the user via the client application 104.
[0048] Figure 2 This is a schematic diagram illustrating a data structure 200 that can be stored in a database 118 of server system 108 according to one or more example implementations. Although the contents of database 118 are shown as including multiple tables, it should be understood that the data can be stored in other types of data structures (e.g., as an object-oriented database).
[0049] Database 118 may include message data stored in message table 202. In various examples, message data may correspond to one or more short-lived messages with a limited duration. Entity table 204 may store entity data, including entity graph 206. Entities maintaining records in entity table 204 may include individuals, company entities, organizations, objects, locations, events, etc. Regardless of type, any entity whose data is stored in server system 108 can be an identifiable entity. Each entity is assigned a unique identifier and an entity type identifier (not shown).
[0050] Entity graph 206 also stores information about the relationships and associations between entities. For example, such relationships can be social, professional (e.g., working in the same company or organization), interest-based, or activity-based.
[0051] Database 118 can also store annotation data in annotation table 208 as an example of filters. Filters storing data in annotation table 208 are associated with videos or images and applied to videos (whose data is stored in video table 210) or images (whose data is stored in image table 212). In one example, a filter is an overlay displayed as an image or video during presentation to the recipient user. Filters can be of various types, including filters selected by the user from a filter gallery presented to the sender by client application 104 when the sender is composing a message. Other types of filters include geolocation filters (also called geofilters), which can be presented to the sender based on geolocation. For example, based on geolocation information determined by the GPS unit of client device 102, client application 104 can present geolocation filters specific to nearby or particular locations within the user interface. Another type of filter is a data filter, which can be selectively presented to the sender by client application 104 based on other input or information collected by client device 102 during message creation processing. Examples of data filters include the current temperature at a specific location, the current speed of the user's movement, the battery life of the client device 102, or the current time.
[0052] Other annotation data that can be stored in image table 212 are augmented reality content items (e.g., corresponding to an applied lens or augmented reality experience). Augmented reality content items can be real-time special effects and sounds that can be added to images or videos.
[0053] As described above, augmented reality content items, overlays, image transformations, AR images, and similar terms refer to modifications that can be made to a video or image. This includes real-time modifications, which modify an image as it is captured using the device's sensors and then display that image along with the modifications on the device's screen. It also includes modifications to stored content, such as video clips in a gallery that can be modified. For example, in a device that can access multiple augmented reality content items, a user can use a single video clip with multiple augmented reality content items to see how different augmented reality content items will modify the stored clip. For example, by selecting different augmented reality content items for the content, multiple augmented reality content items applying different pseudo-random motion models can be applied to the same content. Similarly, real-time video capture can be used in conjunction with the modifications shown to demonstrate how the video image currently captured by the device's sensors will modify the captured data. Such data may simply be displayed on the screen without being stored in memory, or the content captured by the device's sensors may be recorded and stored in memory with or without modification (or both). In some systems, a preview function can show different augmented reality content items displayed simultaneously in different windows of the display. For example, this can make it possible to view multiple windows with different pseudo-random animations on the monitor at the same time.
[0054] Therefore, using augmented reality content items and various systems, or other such transformation systems that use that data to modify the content, can involve the detection of objects (e.g., faces, hands, bodies, cats, dogs, surfaces, objects, etc.), tracking such objects as they leave or enter the field of view in a video frame and move around the field of view, and modifying or transforming such objects while they are being tracked. In various implementations, different methods can be used to implement such transformations. For example, some implementations may involve generating a 3D mesh model of one or more objects and using transformations and animated textures of the models within the video to implement the transformation. In other implementations, tracking points on the objects can be used to place images or textures (which can be 2D or 3D) at the tracked locations. In even more advanced implementations, neural network analysis of video frames can be used to place images, models, or textures within the content (e.g., images or video frames). Therefore, augmented reality content items refer both to the images, models, and textures used to create transformations within the content and to the additional modeling and analysis information required to implement such transformations using object detection, tracking, and placement.
[0055] Real-time video processing can be performed using any type of video data (e.g., video streams, video files, etc.) stored in the memory of any type of computerized system. For example, a user can load a video file and store it in the device's memory, or a video stream can be generated using the device's sensors. Furthermore, computer-animated models can be used to process any object, such as a human face and parts of the human body, animals, or inanimate objects (such as chairs, cars, or other objects).
[0056] In some implementations, when a specific modification is selected along with the content to be transformed, the element to be transformed is identified by a computing device, and then, if the element to be transformed exists in a video frame, it is detected and tracked. The elements of the object are modified according to the modification request, thereby transforming the frames of the video stream. For different types of transformations, the transformation of the video stream frames can be performed using different methods. For example, for frame transformations primarily involving changing the form of object elements, feature points of each element in the object are calculated (e.g., using an Active Shape Model (ASM) or other known methods). Then, a feature point-based mesh is generated for each of at least one element of the object. This mesh is used for subsequent stages of tracking the elements of the object in the video stream. In the tracking process, the mesh mentioned for each element is aligned with the position of each element. Then, additional points are generated on the mesh. A first set of first points is generated for each element based on the modification request, and a second set of points is generated for each element based on the first set of points and the modification request. The frames of the video stream can then be transformed by modifying the elements of the object based on the first and second set of points and the mesh. In such methods, the background of the modified object can also be changed or distorted by tracking and modifying the background.
[0057] In one or more implementations, transformations that alter some regions of an object using its elements can be performed by calculating feature points for each element of the object and generating a mesh based on those calculated feature points. Points are generated on the mesh, and various regions are then generated based on these points. The elements of the object are then tracked by aligning the regions of each element with the positions of at least one element, and the frames of the video stream can be transformed by modifying the properties of the regions based on modification requests. Depending on the specific modification request, the properties of the mentioned regions can be transformed in different ways. Such modifications can involve: changing the color of the region; removing at least a portion of the region from the frames of the video stream; including one or more new objects in the region based on the modification request; and modifying or distorting the elements of the region or object. Any combination of such modifications or other similar modifications can be used in various implementations. For some models to be animated, some feature points can be selected as control points to determine the entire state space for options used in model animation.
[0058] In some implementations of computer animation models that use face detection to transform image data, a specific face detection algorithm (e.g., Viola-Jones) is used to detect faces in the image. Then, an Active Shape Model (ASM) algorithm is applied to the facial regions of the image to detect facial feature reference points.
[0059] In other implementations, alternative methods and algorithms suitable for face detection can be used. For example, some implementations use landmarks to locate features, which represent distinguishable points present in most of the images considered. For instance, for facial landmarks, the location of the left pupil could be used. Secondary landmarks can be used when the initial landmarks are unrecognizable (e.g., if the person is wearing an eye patch). Such a landmark recognition process can be used for any such object. In some implementations, the set of landmarks forms a shape. The shape can be represented as a vector using the coordinates of the points within it. One shape is aligned with another shape through a similarity transformation (allowing translation, scaling, and rotation) that minimizes the average Euclidean distance between the points of the shapes. The average shape is the average of the aligned training shapes.
[0060] In some implementations, the search begins by finding marker points from an average shape aligned with the position and size of a face determined by a global face detector. This search is then repeated using the following steps until convergence occurs: the shape points are localized using template matching of the image texture around each point to suggest a provisional shape, and then the provisional shape is fitted to a global shape model. In some systems, individual template matching is unreliable, and the shape model pools the results of weak template matchers to form a stronger overall classifier. The entire search is repeated at each level of the image pyramid, from coarse to fine resolution.
[0061] The transformation system can be implemented by capturing image or video streams on a client device (e.g., client device 102) and performing complex image manipulations locally on client device 102, while maintaining an appropriate user experience, computation time, and power consumption. Complex image manipulations can include size and shape changes, mood transformations (e.g., changing a face from frowning to smiling), state transformations (e.g., aging a subject, reducing apparent age, changing gender), style transformations, application of graphic elements, and any other suitable image or video manipulations implemented by a convolutional neural network that has been configured to execute efficiently on client device 102.
[0062] In some example implementations, a computer-animated model for transforming image data can be used by a system where a user can capture an image or video stream (e.g., a selfie) using a client device 102 that operates as part of a messaging client 104 operating on client device 102. A transformation system operating within the messaging client application 104 determines the presence of a face within the image or video stream and provides a modification icon associated with the computer-animated model to transform the image data, or the computer-animated model can be presented as associated with the interface described herein. The modification icon includes a change that can be the basis for modifying the user's face within the image or video stream as part of a modification operation. Once a modification icon is selected, the transformation system initiates a process to transform the user's image to reflect the selected modification icon (e.g., generating a smiley face on the user). In some implementations, once the image or video stream is captured and the specified modification is selected, the modified image or video stream can be presented in a graphical user interface displayed on a mobile client device. The transformation system can implement a complex convolutional neural network on a portion of the image or video stream to generate and apply the selected modification. In other words, once an edit icon is selected, the user can capture an image or video stream and see the modified result displayed in real-time or near real-time. Furthermore, while a video stream is being captured, the edits can be persistent, and the selected edit icon continues to be toggled. Machine-trained neural networks can be used to achieve such edits.
[0063] In some implementations, the graphical user interface (GUI) presenting the modifications performed by the transformation system can provide users with additional interactive options. Such options can be based on the interface used to initiate content capture and selection for a specific computer animation model (e.g., initiated from a content creator user interface). In various implementations, modifications can be persistent after an initial selection of the modification icon. Users can turn modifications on or off by tapping or otherwise selecting a face modified by the transformation system and save it for later viewing or browsing to other areas of the imaging application. In the case of multiple faces being modified by the transformation system, users can globally turn modifications on or off by tapping or selecting a single face modified and displayed within the GUI. In some implementations, individual faces within a group of multiple faces can be modified individually, or such modifications can be toggled individually by tapping or selecting individual faces or a series of individual faces displayed within the GUI.
[0064] As described above, video table 210 stores video data, which, in one or more implementations, is associated with messages whose records are maintained within message table 202. Similarly, image table 212 stores image data, which is associated with messages whose message data is stored in entity table 204. Entity table 204 can associate various annotations from annotation table 208 with various images and videos stored in image table 212 and video table 210.
[0065] Story table 214 stores data about messages and collections of associated image, video, or audio data, compiled into collections (e.g., stories or galleries). The creation of a specific collection can be initiated by a specific user (e.g., each user maintaining a record in entity table 204). A user can create a "personal story" in the form of a collection of content that has been created and sent / broadcast by that user. For this purpose, one or more user interfaces generated by client application 104 may include user-selectable icons that allow the sending user to add specific content to his or her personal story.
[0066] The collection can also constitute a "live story," which is a collection of content from multiple users, created manually, automatically, or using a combination of manual and automatic technologies. For example, a "live story" can constitute a curated stream of user-submitted content from various locations and events. Users on client device 102 with location-enabled services and who are at a co-location event at a specific time can be presented with options, for example, via the user interface of client application 104, to contribute content to a specific live story. Live stories can be identified to users by client application 104 based on user location. The end result is a "live story" told from a community perspective.
[0067] Another type of content collection is called a "location story," which allows users whose client devices 102 are located in a specific geographic location (e.g., at a university or on a university campus) to contribute to a specific collection. In some implementations, contributing to a location story may require secondary authentication to verify that the end user belongs to a specific organization or other entity (e.g., a student on a university campus).
[0068] Database 118 may also store content category data 216 indicating the classification of content items generated by client application 104. For example, content category data 216 may include one or more identifiers of the corresponding category for each content item. In one or more examples, content category data 216 may include one or more lists of category identifiers that can be applied to the corresponding content items. In various implementations, content category data 216 may indicate multiple content items associated with a corresponding content identifier. For example, content category data 216 may indicate a first number of content items associated with a first content identifier (e.g., “keto diet”) and a second number of content items associated with a second content identifier (e.g., “plant-based diet”). Additionally, content category data 216 may indicate one or more category identifiers associated with a corresponding content item. For illustration, content category data 216 may indicate a first content item associated with one or more first content identifiers and a second content item associated with one or more second content identifiers. In one or more illustrative examples, at least one of the one or more first content identifiers may be different from at least one of the one or more second content identifiers.
[0069] Figure 3 This is a schematic diagram illustrating an example framework of content 300 according to some implementations. Content 300 may be generated by client application 104. In various examples, content 300 may be generated by a first instance of client application 104 and transmitted to at least one of a second instance of client application 104 or server system 108. Where content 300 includes messages, content 300 may be used to populate message table 202 stored in database 118 and accessible by application server 114. In one or more implementations, content 300 may be stored in memory as “in transit” or “in flight” data of at least one of client device 102 or application server 114. Content 300 is shown to include the following components:
[0070] Content Identifier 302: A unique identifier that identifies content 300.
[0071] • Content text payload 304: Text that will be generated by the user via the user interface of the client application 104 and can be included in the content 300.
[0072] • Content image payload 306: Image data captured by the camera component of the client device 102 or retrieved from the memory component of the client device 102 and included in the content 300.
[0073] • Content video payload 308: Video data captured by the camera component or retrieved from the memory component of the client device 102 and included in the content 300.
[0074] • Content audio payload 310: Audio data captured by the microphone or retrieved from the memory component of the client device 102 and included in the content 300.
[0075] • Content annotation 312: Annotation data (e.g., filters, stickers, overlays or other enhancements) representing annotations to be applied to the content image payload 306, content video payload 308 or content audio payload 310 of content 300.
[0076] • Content Duration Parameter 314: Parameter value, in seconds, indicates the amount of time that content 300 (e.g., content image payload 306, content video payload 308, content audio payload 310) will be presented or made accessible to the user via client application 104.
[0077] • Content geolocation parameter 316: Geolocation data (e.g., latitude and longitude coordinates) associated with the payload of content 300. The payload may include multiple values of geolocation parameter 316, each value of geolocation parameter 316 being associated with a content item included in content 300 (e.g., a specific image in content image payload 306, or a specific video in content video payload 308).
[0078] • Content Story Identifier 318: An identifier value that identifies one or more content sets (e.g., "story") to which a specific content item in the content image payload 306 of content 300 is associated. For example, multiple images within the content image payload 306 may each be associated with multiple content sets using identifier values.
[0079] • Content Tag 320: Content 300 can be labeled using multiple tags, each tag indicating the subject of one or more content items included in the payload of content 300. For example, in the case where a specific image included in content image payload 306 depicts an animal (e.g., a lion), a tag value indicating the relevant animal can be included within content tag 320. Tag values can be generated manually based on user input or automatically using, for example, image recognition.
[0080] • Content sender identifier 322: An identifier (e.g., system identifier, email address, or device identifier) indicating the user of the client device 102 on which the content 300 is generated and from or from the content 300.
[0081] • Content recipient identifier 324: An identifier (e.g., system identifier, email address, or device identifier) indicating the user of another client device 102 to which the content 300 is addressed or otherwise accessible.
[0082] • Content category identifier 326: An identifier for the category of content items included in content 300. Content item category identifier 326 may be one of several category identifiers associated with content 300. In one or more illustrative examples, content category identifier 326 may correspond to one or more alphanumeric characters or symbols.
[0083] The data (e.g., values) of each component of content 300 can correspond to pointers to locations within tables storing the data. For example, image values in content image payload 306 can be pointers to locations (or addresses) within image table 212. Similarly, values in content video payload 308 can point to data stored in video table 210, values stored in annotation 312 can point to data stored in annotation table 208, values stored in content story identifier 318 can point to data stored in story table 214, and values stored in content sender identifier 322 and content receiver identifier 324 can point to user records stored in entity table 204. Furthermore, the value of content category identifier 326 can point to data stored within a data structure including content category data 216.
[0084] Figure 4 This is a graphical representation of an architecture 400 that can determine the classification of content items and make content items accessible to users based on the classification. Architecture 400 includes a content classification system 126. The content classification system 126 includes a content item classifier 402, a content item storage and retrieval system 404, a content item ranking system 406, and a content item manager 408.
[0085] Content item classifier 402 can analyze data associated with content item 136 to determine one or more categories for content item 136. The data associated with content item 136 can be obtained by content classification system 126 from an instance of client application 104 executed by client device 102. The data analyzed by content item classifier 402 relative to content item 136 may include at least one of text overlay data 412, image or video overlay data 414, image or video data 416, or category identifier data 418. In various examples, at least a portion of the categories determined by content item classifier 402 relative to content item 136 may be a recommendation for a category of content item 136. Based on input obtained via one or more user interfaces displayed in conjunction with client application 104, a user of client application 104 can accept or reject the recommendation for a category of content item 136.
[0086] Text overlay data 412 may correspond to data related to the text content of the image or video content of the overlay content item 136. Text overlay data 412 may indicate one or more alphanumeric characters, one or more symbols, or combinations thereof in the text of at least one of the image or video content of the overlay content item 136. In one or more examples, text overlay data 412 may indicate one or more identifiers for one or more categories. For example, text overlay data 412 may indicate at least one word, letter, or symbol corresponding to one or more category identifiers. In one or more illustrative examples, text overlay data 412 may include symbols indicating identifiers for content categories, such as "#".
[0087] In various examples, content item classifier 402 can analyze the text of text coverage data 412 to determine at least one of letters, words, or symbols associated with at least one text coverage of content item 136. In various examples, content item classifier 402 can implement one or more natural language processing techniques to determine at least one of the letters, words, or symbols in the text coverage. Content item classifier 402 can then determine a similarity level between at least a portion of the text included in the text coverage of content item 136 and at least one of the letters, words, or symbols of a plurality of classification identifiers. The similarity level can indicate the number of at least one of the letters, words, or symbols in the text coverage of content item 136, corresponding to the number of letters, words, symbols, or combinations thereof of at least one classification identifier. The similarity level can also correspond to the order in which groups of letters, words, symbols, or combinations thereof appear in the text coverage of content item 136 relative to the order in which groups of at least one of the letters, words, or symbols of the classification identifiers appear in the text coverage of content item 136. The similarity level between the text covered by content item 136 and the category identifier can increase as the number of words, letters, symbols, or combinations thereof in the text covered by content item 136 increases, provided that these words, letters, symbols, or combinations thereof share commonalities with the words, letters, symbols, or combinations thereof in the category identifier and have an order corresponding to the words, letters, symbols, or combinations thereof in the category identifier. Based on the similarity level between the text included in the coverage of content item 136 and the text of the category identifier, content item classifier 402 can determine one or more categories associated with content item 136. In one or more illustrative examples, content item classifier 402 can determine that at least a portion of the text coverage of content item 136 corresponds to a category identifier based on a similarity level between the category identifier and at least a portion of the text coverage being greater than a similarity threshold. In another example, content item classifier 402 can determine one or more category identifiers that have a relatively high similarity level to at least a portion of the text coverage of content item 136 relative to other category identifiers, and determine that the category corresponding to the one or more category identifiers is associated with content item 136.
[0088] Content item classifier 402 can also analyze image or video overlay data 414 of content item 136 to determine one or more categories of content item 136. Image overlays may include at least a portion of an image captured using a camera device. Image overlays may be associated with images captured by a user of client application 104 that also generated content item 136 using client application 104. In another example, image overlays may be obtained from another user of client application 104 or from a service provider that generates images that can be used as overlays for content items generated using client application 104. Furthermore, image overlays may be generated by at least one user of client application 104 or a service provider using one or more creative tools of client application 104. For example, at least one of one or more drawing tools or painting tools may be used to create image overlays for content item 136. Video overlays may include video captured by one or more users of client application 104 using a camera device. Additionally, video overlays may include video generated by a service provider that generates video overlays for content items. In one or more implementations, video overlays may include animated content.
[0089] In various examples, image or video overlay data 414 may indicate an identifier for at least one of the image or video overlays of content item 136. The identifier for at least one image or video overlay may correspond to a creative tool used to generate at least one image or video overlay. Alternatively, the identifier for the image or video overlay may be assigned by the overlay creator (such as a user of client application 104 or a service provider that generates at least one image or video overlay for the content item). In cases where the image or video overlay data includes an identifier corresponding to the image or video overlay, content item classifier 402 may determine the category of the content item based on the overlay identifier.
[0090] Additionally, the content item classifier 402 can analyze image or video overlay data to determine one or more features of the image or video overlay of content item 136. One or more features may include one or more objects included in the image or video overlay, one or more locations of the image or video overlay, one or more individuals included in the image or video overlay, or one or more combinations thereof. In one or more illustrative examples, the content item classifier 402 may implement object recognition techniques to determine at least one object or individual included in at least one of the image or video overlays of content item 136. In one or more implementations, the content item classifier 402 may implement one or more machine learning techniques to identify at least one object or individual included in the image or video overlay of content item 136. In various examples, the content item classifier 402 may analyze one or more template images stored in database 118 to determine at least one object or individual included in the image or video overlay of content item 136.
[0091] Content item classifier 402 can determine at least one category of content item 136 based on one or more features of image overlay or video overlay of content item 136. For example, content item classifier 402 can identify one or more keywords associated with features of image overlay or video overlay and analyze one or more keywords associated with those features relative to one or more category identifiers. In various implementations, one or more keywords associated with a corresponding object, individual, or location can be stored in database 118 and used by content item classifier 402 to determine the category of content item 136. In one or more illustrative examples, content item classifier 402 can identify one or more keywords associated with at least one of the objects, individuals, or locations of content item 136 in image overlay or video overlay and determine the similarity level between one or more keywords and one or more category identifiers. Based on the similarity level relative to one or more threshold similarity levels or a ranking relative to similarity levels, content item classifier 402 can determine at least one category identifier corresponding to content item 136 that is associated with at least one of the image overlay or video overlay of content item 136.
[0092] Furthermore, content item classifier 402 can determine one or more categories of content item 136 based on at least one of the image data or video data 416 of content item 136. In one or more examples, content item 136 may include one or more images, one or more videos, or both one or more images and one or more videos. For example, a user of client application 104 may use the camera device of client device 102 to capture at least one of one or more images or one or more videos, and use client application 104 to generate content item 136 such that content item 136 includes one or more images or one or more videos. In a manner similar to that previously described with respect to image or video overlay data 414, content item classifier 402 may analyze at least one of the images or one or more videos included in content item 136 to determine one or more objects, one or more individuals, one or more locations, or one or more combinations thereof included in at least one of the images or one or more videos included in content item 136. For example, content item classifier 402 can implement one or more object recognition techniques to identify at least one or more objects or individuals included in at least one of the images or videos included in content item 136. Content item classifier 402 can then identify one or more keywords corresponding to the objects or individuals included in the images or videos of content item 136, and analyze the one or more keywords in relation to the classification identifier of the content item. Based on analyses such as similarity analysis, content item classifier 402 can determine one or more classifications of content item 136 based on one or more features of at least one of the images or videos of content item 136.
[0093] Content item classifier 402 can also analyze category identifier data 418 of content item 136 to determine one or more categories of content item 136. For example, when content item 136 is generated using client application 104, client application 104 can associate one or more category identifiers with content item 136. In various examples, an instance of client application 104 executed by client device 102 can implement at least a portion of the operations performed by content item classifier 402 to determine one or more categories of content item 136 and assign identifiers of such one or more categories to content item 136. For illustration, client application 104 can analyze at least one of text overlay data 412, image or video overlay data 414, or image or video data 416 to determine one or more categories of content item 136. Client application 104 can send identifiers of one or more categories of content item 136 as category identifier data 418 to content classification system 126. Furthermore, category identifier data 418 may include identifiers of categories selected by the user of client application 104. In one or more illustrative examples, client application 104 may cause one or more user interfaces to be displayed, which may include user interface elements selectable to associate categories with content item 136. One or more user interfaces may include a list of categories selectable for content item 136. In one or more examples, one or more user interfaces may include one or more recommendations for categories of content item 136. Selecting a user interface element corresponding to a category identifier may cause client application 104 to associate the corresponding category with content item 136. In these scenarios, category identifier data 418 may indicate one or more identifiers of at least one category selected by the user of client application 104 for content item 136.
[0094] After determining one or more categories for content item 136, content item classifier 402 can operate in conjunction with content item storage and retrieval system 404 to store data related to content item 136 in association with one or more categories in database 118. For example, content item classifier 402 can determine that a first category 420 and a second category 422 correspond to content item 136. Content item storage and retrieval system 404 can store content item 136 in association with the first category 420 and the second category 422 in database 118. In various examples, content item 136 can be stored in a data structure indicating that content item 136 corresponds to the first category 420 and the second category 422. In one or more illustrative examples, content item 136 can be stored in a database table that includes one or more fields corresponding to the categories (such as the first category 420 and the second category 422) associated with content item 136. Database 118 can store data related to multiple additional content items reaching the Nth content item 424, which is associated with one or more categories (such as the first category 420).
[0095] In one or more implementations, the content item storage and retrieval system 404 can retrieve data corresponding to content items based on a request received from a client device 102 executing an instance of client application 104. In various examples, the content item storage and retrieval system 404 can retrieve data related to content items stored in database 118 in response to a request for content associated with one or more category identifiers. For example, server system 108 can receive a request from client device 102 executing an instance of client application 104 for content associated with a corresponding category identifier such as “spring flowers”. In one or more examples, the category identifier can be entered by a user of client application 104 into one or more user interface elements generated by client application 104. In another example, the category identifier can be selected by a user of client application 104 via selecting a user interface element corresponding to the category identifier displayed in the user interface generated by client application 104.
[0096] In response to receiving a request for content associated with one or more categories, the content item storage and retrieval system 404 can retrieve content item data stored in association with one or more categories from the database 118. In various examples, the content item storage and retrieval system 404 can query the database 118 to retrieve one or more content items corresponding to category identifiers included in the request for content. In one or more illustrative examples, the server system 108 can receive a request for content items corresponding to a first category 420. The content item storage and retrieval system 404 can retrieve data corresponding to at least a portion of the content items associated with the first category 420, such as content item 136 and the Nth content item 424.
[0097] In various implementations, the content item ranking system 406 can determine the ranking of content items that indicate the level of attention paid to content items by one or more users of the client application 104. In one or more examples, the content item ranking system 406 can analyze one or more characteristics of multiple content items relative to the characteristics of users of the client application 104 to determine the corresponding ranking of each content item relative to other content items. For illustration, the content item ranking system 406 can analyze user profile information of the client application 104, user account information, content viewed by the user, the amount of time the user viewed one or more content items, user location, category of content viewed by the user, characteristics of additional users of the client application 104 that the user follows, characteristics of additional users of the client application 104 that follow the user, and one or more combinations thereof, to determine one or more characteristics of the user of the client application 104. Additionally, the content item ranking system 406 can analyze one or more categories of content items, one or more locations associated with content items, one or more objects associated with content items, one or more individuals included in content items, characteristics of the user of the client application 104 that created the content item, the number of times the content item was viewed, the amount of time the content item was viewed, characteristics of the user of the client application 104 that viewed the content item, and one or more combinations thereof, to determine one or more characteristics of each content item. Based on the characteristics of the user of the client application 104 and the characteristics of multiple content items, the content item ranking system 406 can determine the ranking of each content item relative to the user, which indicates the level of attention the user pays when viewing the corresponding content item. In one or more illustrative examples, the ranking of the corresponding content item for the user may correspond to the order in which the content items are presented to the user in the user interface of the client application 104. For example, a first content item with a second ranking higher than a second content item may be presented to the user before the second content item in the user interface of the client application 104. In one or more implementations, the second ranking of the second content item may correspond to a level of attention lower than the level of attention of the first content item.
[0098] Content item ranking system 406 can implement one or more computational techniques to determine the ranking of content items relative to one or more users of client application 104. For example, content item ranking system 406 can implement one or more statistical techniques to determine the ranking of content items relative to one or more users of client application 104. In one or more illustrative examples, content item ranking system 406 can implement one or more linear regression modeling techniques to determine the ranking of content items for users of client application 104. Additionally, content item ranking system 406 can implement one or more gradient descent techniques to determine the ranking of content items relative to users of client application 104. Furthermore, content item ranking system 406 can implement one or more machine learning techniques to determine the ranking of content items for users of client application 104. For illustration, content item ranking system 406 can implement one or more neural networks, such as one or more convolutional neural networks, to determine the ranking of content items relative to users of client application 104. In one or more examples, content item ranking system 406 can implement one or more neural networks to determine features of users of client application 104 that can indicate at least a threshold level of attention to one or more content items associated with the content item classification.
[0099] In one or more implementations, the content item storage and retrieval system 404 may operate in conjunction with the content item ranking system 406 to provide content items in response to a request for content related to a given category. For example, the content item ranking system 406 may determine the ranking of individual content items retrieved by the content item storage and retrieval system 404 in response to a request for content related to one or more categories. To illustrate, in response to a request for content related to a first category 420, the content item storage and retrieval system 404 may obtain at least a portion of the content items corresponding to the first category 420 stored in the database 118. The content item ranking system 406 may then determine the ranking of the content items retrieved by the content item storage and retrieval system 404. In various examples, the content item ranking system 406 may determine the ranking of multiple content items based on one or more characteristics of a user requesting content with a corresponding category. Thus, the content item storage and retrieval system 404 and the content item ranking system 406 can operate to provide multiple content items in response to a user's request for category-related content in the client application 104, multiple content items that the user may be more interested in compared to other content items in that category. Therefore, ranking the content items for each user of the client application 104 within a category can be used to customize the presentation of content items for the user based on the respective user's level of interest in the category-related content items.
[0100] Content item manager 408 enables users of client application 104 to view, organize, share, or manage (at least one of) content items associated with categories generated by client application 104. For example, content item manager 408 may operate in conjunction with content item storage and retrieval system 404 to provide user-generated content items with one or more categories to user's client device 102. To illustrate, content item manager 408 may receive a request to view user-created content items with one or more categories, wherein the request is sent in response to one or more inputs provided via one or more user interfaces displayed by client application 104. Content item manager 408 may then send data corresponding to the user's content item for display by client application 104 to user's client device 102. Content item manager 408 may also, based on input obtained by content item manager 408 via client application 104, cause content items to be added to or deleted from at least one of the user's account or profile in client application 104.
[0101] In various examples, the content item manager 408 may provide content items to the client device 102 of a user of the client application 104, such that the user's content items associated with one or more categories are displayed in one or more pages of the client application 104 dedicated to displaying the user's content items with one or more categories. In one or more illustrative examples, content items created by the user that are not associated with at least one category may not be displayed on one or more pages. In one or more implementations, content items created by a user of the client application 104 and associated with at least one category determined by the content classification system 126 may be publicly accessible to other users of the client application 104, while content items created by the user that are not associated with a category determined by the content classification system 126 may be subject to limited access by the user of the client application 104. For illustration, content items not associated with a specific category identifier may be restricted to access by the recipient of the content item specified by the user who created the content item.
[0102] Figures 5 to 7 A flowchart is shown illustrating the process of classifying and discovering content created using client application 104. The process may be contained in computer-readable instructions executed by one or more processors, such that the operations of the process may be performed, in part or in whole, by a functional component of at least one of client application 104 or server system 108. Therefore, in some cases, the process described below is an example for reference. However, in other implementations, relative to… Figures 5 to 7 At least some of the operations described in the processing can be deployed on a variety of other hardware configurations. Therefore, relative to... Figures 5 to 7 The described processing is not intended to be limited to server system 108 or client device 102, and can be implemented wholly or partially by one or more additional components. Among the various implementations, relative to... Figures 5 to 7 Some or all of the operations described in the process can be performed in parallel, out of order, or omitted entirely.
[0103] Figure 5 This is a flowchart illustrating example operations of a process 500 performed by a server system according to one or more example implementations for classifying content items based on data corresponding to the overlay of content items. At operation 502, process 500 includes receiving content item data from a client device. The content item data may be generated by an instance of a client application executed by the client device. In one or more implementations, the content item data may include image data corresponding to an image. The content item data may also include overlay data indicating the overlay of the image. In one or more examples, an image may be captured by at least one camera device of the client device in response to user input from the client device obtained through one or more user interfaces displayed by the client application. Additionally, an overlay may be generated through input obtained from the user of the client application. The overlay may include text content, which includes at least one of words, letters, symbols, or numbers associated with the image. Furthermore, the overlay may include content generated using one or more creative tools of the client application. For illustration, the overlay may include an original image, drawing, illustration, animation, or one or more combinations thereof generated by the user of the client application.
[0104] Processing 500 may also include determining the category of content items at operation 504, at least in part, based on the coverage data. The coverage data can be analyzed to identify category identifiers that may be included in the coverage. In one or more examples, the coverage may include text data indicating the category identifier. Alternatively, the category of the coverage may be determined based on the creative tools used to generate the coverage. Furthermore, the category of the coverage may be determined based on the identifier of the coverage, such as the name of the coverage specified by the creator of the coverage. In various examples, the coverage may be associated with a location, and the category of the coverage may be determined based on that location.
[0105] Furthermore, at operation 506, process 500 may include adding content items to a group of content items with categories. In one or more implementations, content items may be stored in a database in association with categories. In various examples, each content item associated with a category may be stored in association with a category identifier. At operation 508, process 500 may include receiving a request for content items with categories from a second client device. For example, a request including a category identifier may be received from an instance of a client application executed by the second client device.
[0106] Processing 500 may include, at operation 510, identifying at least a portion of a group of content items with a category in response to a request. In various examples, at least a portion of the group of content items with a category may be retrieved from a database using a category identifier. In one or more examples, the content items retrieved from the database with categories may be ranked. The ranking of content items with a category may be determined based on analysis of the characteristics of the content items with a category in relation to the characteristics of the users of the client application, to determine content items with that category that may have at least a threshold level of user attention. In one or more implementations, the ranking of content items may be based at least in part on the characteristics of the creator of the content item. For illustration, the creator of a content item with a public profile relative to the client application may be weighted to support a relatively higher ranking compared to content items created by creators who do not have a public profile about the client application.
[0107] In another implementation, the ranking of content items can be determined based on input from one or more representatives of a service provider offering services related to the client application. For example, a service provider representative might indicate the level of attention a content item receives relative to one or more users of the client application. In these scenarios, the weight of a content item relative to other content items can be modified based on the input obtained from the service provider representative. In various examples, a content item receiving input from a service provider representative indicating a relatively high level of attention might be ranked higher than a content item that does not receive input from that service provider representative. Furthermore, input from a service provider representative could also indicate a lower level of attention from users of the client application, such as when the content item includes content that might not be suitable for users of the client application. In these cases, the content item might be ranked lower than a content item that did not receive input from a service provider representative.
[0108] At operation 512, processing 500 may include sending user interface data to the second client device in response to the request. The user interface data may be configured to generate one or more user interfaces that include at least a portion of the content items. In various examples, one or more user interfaces may display a page dedicated to categorized content items. In one or more implementations, content items may be presented in the user interface in relation to their ranking within the categorized content items. For example, content items with relatively high rankings relative to the user of the second client device may be presented at the top of the page displayed in the user interface. To access content items with relatively low rankings, the user of the second client device can scroll down the page.
[0109] Figure 6This is a flowchart illustrating example operations of a process 600 performed by a server system, according to one or more example implementations, to add content from a page displaying content items associated with a category to a category. Process 600 includes, at operation 602, receiving a request from a client device executing a client application for a plurality of content items having categories. The request may include at least one of one or more keywords corresponding to a category or category identifier. At operation 604, in response to the request, the plurality of content items having categories can be determined. The plurality of content items can be retrieved from a database storing content items according to their respective categories. In various examples, a query to the database including at least one of one or more keywords or category identifiers can be used to retrieve content items from the database. Additionally, a ranking can be determined for the plurality of content items having categories, indicating the level of attention given to the respective content item relative to the user of the requesting client device.
[0110] Furthermore, at operation 606, processing 600 may include sending user interface data to the client device in response to the request. The user interface data may be configured to generate one or more user interfaces comprising a page including at least one subgroup of multiple content items with categories. In one or more examples, the subgroup of content items displayed on the page may have a higher ranking than additional content items not included on the page. Furthermore, one or more user interfaces may include user interface elements that are selectable to add content items to the categorized content items. In one or more implementations, selection of a user interface element may activate at least one camera on the client device. The at least one camera may be used to capture an image included in the content item. Furthermore, since the user interface element is included in a page dedicated to the content item with the corresponding category because the image is captured in relation to the selection of the user interface element, the category may also be associated with the content item including the image.
[0111] At operation 608, process 600 may include receiving content item data from a client device, including images captured by the client device's camera. The content item data may also indicate a category identifier. Process 600 may also include storing the content item in association with the category identifier in a database at operation 610. Thus, in response to a subsequent request for a content item with a category, the content item can be retrieved in association with the category identifier. In one or more implementations, the content item may include an overlay generated using one or more creative tools of a client application.
[0112] Figure 7This is a flowchart illustrating example operations of a process 700 performed by a client device to generate content items accessible based on their respective categories, according to one or more example implementations. Process 700 may include receiving input at operation 702 via one or more input devices of the client device. The input may be provided in conjunction with an instance of a client application executed by the client device. In various examples, the input may be for capturing images using at least one camera of the client device. Images may be captured using one or more user interface elements displayed in at least one user interface of the client application. The input may also be used to generate one or more annotations. In various examples, annotations may be generated using one or more creative tools of the client application. Furthermore, the input may be for selecting one or more category identifiers.
[0113] At operation 704, process 700 may include generating a content item including an image based on the input. In addition to the image, the content item may include one or more annotations associated with the image. One or more annotations may include at least one overlay displayed on the image. The at least one overlay may include text content. In various examples, the at least one overlay may include content generated using one or more creative tools of a client application. Furthermore, at operation 706, process 700 may include determining the classification of the image based on at least one of the input or the image. The classification of the image may be determined based on input of at least one identifier indicating the classification. In various examples, the classification may also be determined based on the image's overlay. In one or more implementations, the classification may be determined based on at least one of the objects or individuals included in the image.
[0114] Process 700 may include, at operation 708, sending a request to a server system for content corresponding to a category. This request may include an identifier for the category. In one or more examples, the request may be generated and sent in response to the selection of a user interface element displayed in a user interface comprising multiple optional user interface elements, each corresponding to a corresponding category. Additionally, at operation 710, process 700 may include receiving user interface data in response to a request, and at operation 712, process 700 may include generating one or more user interfaces based on the user interface data, including content items corresponding to the categories. In one or more illustrative examples, one or more user interfaces may include multiple images corresponding to content items. Content items may be ranked such that content items with higher attention levels for users of client devices may be displayed at the top of a page included in one or more user interfaces, while content items with lower attention levels may be displayed at the bottom of the page. In one or more implementations, one or more user interfaces may include at least one content item created by a user of the client device.
[0115] Figure 8 This is an illustration of a user interface 800, including content associated with a category, implemented according to one or more example implementations. The user interface 800 can be displayed by a display device of the client device 102. Furthermore, the user interface 800 can be combined with a client application (such as one executed by the client device 102)... Figure 1 The client application 104 described is used for display. The user interface 800 may include a first portion 804, which includes user interface elements selectable to view content related to the user's contacts. For example, the first portion 804 may include a first user interface element 806, which is selectable to view content related to the user's contacts. Content related to the user's contacts may include at least one of text content, image content, message content, video content, audio content, content generated by one or more creative tools, or annotation content.
[0116] The user interface 800 may also include a second part 808, which includes user interface elements selectable to access content related to one or more individuals, groups of individuals, or organizations that a user of client device 102 is following using a client application. Users can follow individuals, groups, or organizations by subscribing to content generated or otherwise published by those individuals, groups, or organizations. Figure 8In the illustrative example, the second part 808 may include a second user interface element 810, which can be selected to view content related to an individual, group, or organization corresponding to the second user interface element 810.
[0117] Additionally, the user interface 800 may include a third portion 812, which includes one or more user interface elements, which may be selectable to view content related to the client application recommended to the user of the client device 102. In one or more examples, the content included in the third portion 812 may have a predicted level of user attention. The predicted level of attention may be determined by the server system based on analysis of user characteristics associated with features of multiple content items. In one or more examples, the third portion 812 may include a third user interface element 814, which may be selectable to view content related to an image displayed by the third user interface element 814. In various examples, the third user interface element 814 may indicate an identifier 816 for a category associated with the content displayed by the third user interface element 814. In one or more implementations, the content included in the third portion 812 may correspond to one or more categories associated with user-generated content of the client application. For illustration, the server system may determine that content having a category that is the same as or similar to the category of user-generated content may have at least a threshold level of user attention. Figure 8 In the illustrative example, the user of the client application may have pre-generated content related to the category "FunnyPets". Therefore, the server system can determine that additional content related to the category "FunnyPets" may have at least a threshold level of user interest, and include the content item corresponding to the category "FunnyPets" in Part 3, 812.
[0118] Figure 9 This is an illustration of a user interface 900 that adds categories to content based on text input, according to one or more example implementations. The user interface 900 can be displayed by a display device of client device 102. Furthermore, the user interface 900 can be combined with a client application (such as one executed by client device 102)... Figure 1 The client application 900 described is used to display the image 904. The user interface 900 may include an image 904. The image 904 may be captured using at least one camera (e.g., camera 906) of the client device 102. The user interface 900 may also include an overlay 908 displayed on the image 904. Figure 9 In the illustrative example, overlay 908 includes text content. The text content of overlay 908 can be entered via a keyboard input device 910 included in user interface 900.
[0119] In various examples, the keyboard input device 910 can be used to input an identifier of a category that can be associated with at least one of the images 904 or overlays 908. For example, the user interface 900 may include a user interface element 912 that can display text 914 that indicates the category of at least one of the images 904 or overlays 908. In one or more illustrative examples, the text 914 may include a symbol 916 that indicates the association of the text 914 with the category of at least one of the images 904 or overlays 908. In one or more implementations, the selection of an additional user interface element 918 may cause the user interface element 912 to be displayed, allowing a user of the client device 902 to use the keyboard input device 910 to input at least one of the text 914 or the symbol 916 to indicate an identifier of the category of at least one of the images 904 or overlays 908. Figure 9 It also includes an additional user interface 920 corresponding to an additional version of user interface 900. The additional user interface 920 includes a final version of overlay 908, which includes an identifier 922 corresponding to at least one of the images 904 in overlay 908. The final version of overlay 908 may also include text in addition to the identifier 922. Furthermore, the additional user interface 920 may include multiple user interface elements 924 selectable to activate one or more creative tools to generate one or more additional overlays of image 904.
[0120] Figure 10 This is an illustration of a user interface 1000 that uses creative tools to add categories to content, based on one or more example implementations. The user interface 1000 can be displayed by the display device of the client device 102. Furthermore, the user interface 1000 can be combined with a client application (such as one executed by the client device 102)... Figure 1 The client application 1000 described is used to display the image 1004. The user interface 1000 may include the image 1004. The image 1004 may be captured using at least one camera (e.g., camera 1006) of the client device 102. The user interface 1000 may also include multiple user interface elements, which may be selectable to perform one or more operations relative to the image 1004. In various examples, the user interface 1000 may include one or more user interface elements to modify the appearance of the image 1004. For example, the user interface 1000 may include user interface element 1008 to generate an overlay of the image 1004.
[0121] In one or more illustrative examples, selection of user interface element 1008 causes client device 102 to generate additional user interface 1010. Additional user interface 1010 may include multiple user interface elements, which are selectable to add various different types of overlays relative to image 1004. For illustration, additional user interface 1010 may include a first user interface element 1012, which is selectable to mention an additional user within an overlay of image 1004, such as by adding a user's identifier as an overlay of image 1004. Additional user interface 1010 may include a second user interface element 1014, which may be selectable to add a category identifier as an overlay to image 1004. Furthermore, additional user interface 1010 may include a third user interface element 1016, which is selectable to add an overlay to image 1004 indicating a location that can be associated with image 1004. Additionally, additional user interface 1010 may include a fourth user interface element 1018 to add an overlay of image 1004 including a group identifier.
[0122] exist Figure 10 In the illustrative example, selection of the second user interface element 1014 may cause the first additional user interface element 1020 to be displayed. The first additional user interface element 1020 may include a second additional user interface element 1022, which may be used to capture text 1024 corresponding to a categorized identifier. The additional user interface 1010 may also include a touch input device keyboard 1026, which includes user interface elements selectable to add letters, numbers, symbols, or characters to the text 1024. In various examples, when letters, numbers, symbols, or characters are added to the text 1024 via the touch input device keyboard 1026, a recommendation for a categorized identifier may be displayed in the first additional user interface element 1020. For example, the first additional user interface element 1020 may include a third additional user interface element 1028, which includes a first recommendation based at least in part on the categorized identifier of the text 1024 included in the second additional user interface element 1022. In addition, the first additional user interface element 1020 may include a fourth additional user interface element 1030, which includes a second recommendation based at least in part on another classification identifier included in the text 1024 in the second additional user interface element 1022.
[0123] Figure 11This is an illustration of a user interface 1100 that adds categories to content in relation to shared content, based on one or more example implementations. The user interface 1100 can be displayed by a display device of the client device 102. Furthermore, the user interface 1100 can be combined with a client application (such as one executed by the client device 102)... Figure 1 The client application 104 described herein is used to display the image. The user interface 1100 may include the image 1104. The image 1104 may be captured using at least one camera (e.g., camera 1106) of the client device 102. The user interface 1100 may include an overlay 1108 indicating the category of the image 1104. In addition, the user interface 1100 may include a user interface element 1110, which is optional to cause the client application 104 to generate an additional user interface 1112.
[0124] The additional user interface 1112 may include multiple user interface elements, which are selectable to identify one or more recipients of content items including image 1104 and overlay 1108. For example, the additional user interface 1112 may include a first additional user interface element 1114 to add image 1104 and overlay 1108 to a personal set of users who captured image 1104 using camera 1106. The additional user interface 1112 may also include a second additional user interface element 1116 indicating multiple categories that may correspond to image 1104. Selection of the second additional user interface element 1116 may associate image 1104 and overlay 1108 with the category indicated by the second additional user interface element 1116.
[0125] Additionally, the supplementary user interface 1112 may include a third supplementary user interface element 1118, which includes a fourth supplementary user interface element 1120, a fifth supplementary user interface element 1122, and a sixth supplementary user interface element 1124. The fourth supplementary user interface element 1120 may correspond to text covering 1108. The fifth supplementary user interface element 1122 may correspond to a location associated with image 1104, while the sixth supplementary user interface element 1124 may correspond to one or more objects included in image 1104. Each of the supplementary user interface elements 1120, 1122, and 1124 may be selectable to remove a corresponding category from the second supplementary user interface element 1116. For illustration, selecting the sixth supplementary user interface element 1124 may remove the category "Office Supplies" from the second supplementary user interface element 1116. In addition, the additional user interface 1112 may include at least a seventh additional user interface element 1126, which is optional to share content items including image 1104 and overlay 1108 with the contacts of the user of the client device 102.
[0126] Figure 12 This is an illustration of a user interface 1200 for adding content to a categorized collection of content, based on one or more example implementations. The user interface 1200 can be displayed by a display device of the client device 102. Furthermore, the user interface 1200 can be combined with a client application (such as one executed by the client device 102)... Figure 1 The client application 104 described is used for display. The user interface 1200 may include multiple user interface elements corresponding to content items associated with category 1202. For example, the user interface 1200 may include a first user interface element 1204 corresponding to a first content item having category 1202 and a second user interface element 1206 corresponding to a second content item having category 1202. In various examples, the first user interface element 1204 and the second user interface element 1206 may be selectable such that the corresponding content items corresponding to the first user interface elements 1202, 1204 are displayed in a single page view.
[0127] User interface 1200 may also include a third user interface element 1208 selectable to add content items to category 1202. For example, selection of the third user interface element 1208 may cause client device 102 to display an additional user interface 1210. The additional user interface 1210 may indicate an image 1212 that can be captured by the camera 1214 of client device 102 in response to selection of the additional user interface element 1216. Selection of the additional user interface element 1216 may cause image 1212 to be captured by camera 1214, and may also cause content items including the image to be categorized according to category 1202. In this way, content items including image 1212 may be added to the set of content items having category 1202 via a page dedicated to content items having category 1202 (such as the page shown in user interface 1200).
[0128] Figure 13 This is an illustration of a user interface including options for shared categories, implemented according to one or more example implementations. The user interface 1300 can be displayed by a display device of the client device 102. Furthermore, the user interface 1300 can be combined with a client application executed by the client device 102 (such as...). Figure 1The client application 104 described herein is used for display. The user interface 1300 may include multiple user interface elements corresponding to content items associated with category 1302. For example, the user interface 1300 may include a first user interface element 1304 corresponding to a first content item having category 1302 and a second user interface element 1306 corresponding to a second content item having category 1302. The user interface 1300 may also include a third user interface element 1308, which includes a first optional option 1310 for reporting category 1302 as inappropriate, a second optional option 1312 for adding content items to category 1302, and additional options for sharing category 1302 with one or more additional users of the client application 104. In various examples, category 1302 may be shared with one or more additional users of the client application 104 by selecting a fourth user interface element 1314. In one or more implementations, selecting the fourth user interface element 1314 can cause the display of an additional user interface including one or more optional user interface elements, each corresponding to an additional user of the client application 104 that can share category 1302 and content items associated with category 1302. Furthermore, selecting the second optional option 1312 can cause the display of an additional user interface, which can be used to capture images for which content items can be created and associated with category 1302. In one or more illustrative examples, in response to the selection of the second optional option 1312, a user interface identical or similar to the additional user interface 1210 can be displayed.
[0129] Figure 14 This is an illustration of a user interface 1400 for managing content associated with one or more categories, based on one or more example implementations. The user interface 1400 can be displayed by a display device of the client device 102. Furthermore, the user interface 1400 can be combined with a client application (such as one executed by the client device 102) Figure 1 The user interface 1400 is described in the client application 104. The user interface 1400 may include multiple user interface elements, which may be selectable to manage content for the user of the client application 104. The user interface 1400 may include a first user interface element 1402, which is selectable to view one or more content items related to the user of the client application 104. In various examples, the first user interface element 1402 may be selectable to view one or more sets of content items related to the user of the client application 104. Furthermore, the user interface 1400 may include a second user interface element 1404, which is selectable to add content to one or more sets of content related to the user of the client application.
[0130] User interface 1400 may also include a third user interface element 1406 and a fourth user interface element 1408, which may be selectable to view content for users of client application 104 associated with a corresponding category. In one or more examples, the content items corresponding to the third user interface elements 1406 and 1408 may be accessible to a wider audience than the content corresponding to the first user interface elements 1402 and 1404. For illustration, the content corresponding to the first user interface elements 1402 and 1404 may correspond to content accessible to one or more contacts of the user of client application 104. Additionally, the content corresponding to the third user interface elements 1406 and 1408 may be publicly accessible, such as to users of client application 104 who are not included in the user's contacts. Selection of the third user interface element 1406 may cause a full-page version of the content corresponding to the third user interface element 1406 to be displayed in the user interface. Furthermore, selecting the fourth user interface element 1408 allows a full-page version of the content corresponding to the third user interface element 1406 to be displayed in the user interface.
[0131] User interface 1400 may further include a fifth user interface element 1410, which is selectable to view additional content items of the user of client application 104 having at least one category in one or more additional user interfaces. In one or more examples, selection of the fifth user interface element 1410 may cause the content items of the user of client application 104 to be displayed based on at least one of the date, location, or category of the content items. In addition, selection of the fifth user interface element 1410 may cause one or more user interfaces, including user interface elements for adding content items, deleting content items, modifying the category of content items, or combinations thereof, to be displayed. In addition, user interface 1400 may include a sixth user interface element 1412 for viewing content corresponding to the first contact of the user of client application 104 and a seventh user interface element 1414 for viewing content corresponding to the second contact of the user of client application 104.
[0132] Figure 15 This is a block diagram illustrating a system 1500 including an example software architecture 1502, which can be used in conjunction with various hardware architectures described herein. Figure 15 This is a non-limiting example of a software architecture, and it should be understood that many other architectures can be implemented to facilitate the functionality described herein. Software architecture 1502 can be implemented in, for example... Figure 16The execution is performed on the hardware of machine 1600, which includes processor 1604, memory / storage device 1606, and input / output (I / O) components 1608, etc. A representative hardware layer 1504 is shown, and this representative hardware layer 1504 can represent, for example... Figure 16 The machine 1600. A representative hardware layer 1504 includes a processing unit 1506 having associated executable instructions 1508. The executable instructions 1508 represent executable instructions of the software architecture 1502, including implementations of the methods, components, etc., described herein. Hardware layer 1504 also includes at least one of a memory or storage module memory / storage device 1510, which also has the executable instructions 1508. Hardware layer 1504 may also include other hardware 1512.
[0133] exist Figure 15 In the example architecture, software architecture 1502 can be conceptualized as a stack of layers, where each layer provides specific functionality. For example, software architecture 1502 may include layers such as operating system 1514, libraries 1516, framework / middleware 1518, applications 1520, and presentation layer 1522. Operationally, application 1520 or other components within a layer can activate API call 1524 through the software stack and receive message 1526 in response to API call 1524. The layers shown are representative in nature, and not all software architectures have all layers. For example, some mobile operating systems or dedicated operating systems may not provide framework / middleware 1518, while other operating systems may provide such a layer. Other software architectures may include additional or different layers.
[0134] Operating system 1514 can manage hardware resources and provide public services. Operating system 1514 may include, for example, kernel 1528, services 1530, and drivers 1532. Kernel 1528 can serve as an abstraction layer between hardware and other software layers. For example, kernel 1528 can be responsible for memory management, processor management (e.g., scheduling), component management, networking, security settings, etc. Services 1530 can provide other public services to other software layers. Driver 1532 is responsible for controlling or interfacing with the underlying hardware. For example, depending on the hardware configuration, driver 1532 includes a display driver, camera driver, etc. Drivers, flash memory drivers, serial communication drivers (e.g., Universal Serial Bus (USB) drivers), Drivers, audio drivers, power management drivers, etc.
[0135] Library 1516 provides a common infrastructure used by application 1520, other components, or layers. Library 1516 provides functionality that allows other software components to perform tasks more easily than by directly interfaceing with the underlying operating system 1514 functions (e.g., kernel 1528, services 1530, drivers 1532). Library 1516 may include system libraries 1534 (e.g., the C standard library) that provide functions such as memory allocation, string manipulation, and mathematical functions. Furthermore, library 1516 may include API libraries 1536, such as media libraries (e.g., libraries supporting the rendering and manipulation of various media formats such as MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG), graphics libraries (e.g., OpenGL frameworks for rendering 2D and 3D graphical content on a display), database libraries (e.g., SQLite providing various relational database functions), web libraries (e.g., WebKit providing web browsing functionality), and so on. Library 1516 may also include various other libraries 1538 to provide many other APIs to application 1520 and other software components / modules.
[0136] The framework / middleware 1518 (sometimes referred to as middleware) provides a higher level of common infrastructure that can be used by applications 1520 or other software components / modules. For example, the framework / middleware 1518 can provide various graphical user interface functionalities, advanced resource management, advanced location services, etc. The framework / middleware 1518 can provide a wide range of other APIs that can be utilized by applications 1520 or other software components / modules, some of which may be specific to a particular operating system 1514 or platform.
[0137] Application 1520 includes built-in applications 1540 and third-party applications 1542. Examples of representative built-in applications 1540 may include, but are not limited to: contact applications, browser applications, book reader applications, location applications, media applications, messaging applications, or game applications. Third-party applications 1542 may include those using Android by entities other than the platform-specific vendor. TM or iOS TM Applications developed using a Software Development Kit (SDK) can be used on platforms such as iOS. TM ANDROID TM , Mobile software running on the phone's mobile operating system or other mobile operating systems. Third-party application 1542 may call API calls 1524 provided by the mobile operating system (such as operating system 1514) to facilitate the functions described herein.
[0138] Application 1520 can use built-in operating system functions (e.g., kernel 1528, services 1530, drivers 1532), libraries 1516, and frameworks / middleware 1518 to create a UI for interacting with the system's user. Alternatively or additionally, in some systems, interaction with the user can occur through a presentation layer such as presentation layer 1522. In these systems, the application / component "logic" can be separated from the aspects of the application / component that interact with the user.
[0139] Figure 16 This is a block diagram illustrating components of a machine 1600, according to some example implementations, capable of reading instructions from a machine-readable medium (e.g., a machine-readable storage medium) and executing any or more of the methods discussed herein. Specifically, Figure 16 A graphical representation of machine 1600 in the form of an example computer system is shown, within which instructions 1602 (e.g., software, program, application, app, or other executable code) can be executed to cause machine 1500 to perform any or more of the methods discussed herein. Therefore, the instructions 1602 can be used to implement the modules or components described herein. The instructions 1602 transform the general, unprogrammed machine 1600 into a specific machine 1600 programmed to perform the described and illustrated functions in the described manner. In alternative implementations, machine 1600 operates as a standalone device or can be coupled (e.g., networked) to other machines. In a networked deployment, machine 1600 can operate as a server machine or a client machine in a server-client network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. Machine 1600 may include, but is not limited to: server computers, client computers, personal computers (PCs), tablet computers, laptop computers, netbooks, set-top boxes (STBs), personal digital assistants (PDAs), entertainment media systems, cellular phones, smartphones, mobile devices, wearable devices (e.g., smartwatches), smart home devices (e.g., smart appliances), other smart devices, web home appliances, network routers, network switches, network bridges, or any machine capable of sequentially or otherwise executing instructions 1602 specifying actions to be taken by machine 1600. Furthermore, although only a single machine 1600 is shown, the term "machine" should also be considered to include a collection of machines that individually or jointly execute instructions 1602 to perform any one or more of the methods discussed herein.
[0140] Machine 1600 may include processor 1604, memory / storage device 1606, and I / O unit 1608, which may be configured to communicate with each other, such as via bus 1610. In an example implementation, processor 1604 (e.g., a central processing unit (CPU), a reduced instruction set computing (RISC) processor, a complex instruction set computing (CISC) processor, a graphics processing unit (GPU), a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a radio frequency integrated circuit (RFIC), another processor, or any suitable combination thereof) may include, for example, processors 1612 and 1614 capable of executing instructions 1602. The term "processor" is intended to include multi-core processor 1604, which may include two or more independent processors (sometimes referred to as "cores") capable of executing instructions 1602 simultaneously. Although Figure 16 Multiple processors 1604 are shown, but machine 1600 may include a single processor 1612 with a single core, a single processor 1612 with multiple cores (e.g., a multi-core processor), multiple processors 1612, 1614 with a single core, multiple processors 1612, 1614 with multiple cores, or any combination thereof.
[0141] Memory / storage device 1606 may include memory such as main memory 1616 or other memory storage devices, and memory cells 1618, both of which may be accessed by processor 1604, such as via bus 1610. Memory cells 1618 and main memory 1616 store instructions 1602 that implement any one or more of the methods or functions described herein. Instructions 1602 may also reside wholly or partially in main memory 1616, in memory cells 1618, in at least one of processor 1604 (e.g., in the processor's cache memory), or in any suitable combination thereof during execution by machine 1600. Thus, main memory 1616, memory cells 1618, and the memory of processor 1604 are examples of machine-readable media.
[0142] I / O component 1608 may include various components for receiving input, providing output, generating output, transmitting information, exchanging information, capturing measurement results, etc. The specific I / O component 1608 included in a particular machine 1600 will depend on the type of machine. For example, a portable machine such as a mobile phone will likely include a touch input device or other such input mechanism, while a headless server machine will likely not include such a touch input device. It will be understood that I / O component 1608 may include... Figure 16Many other components are not shown. I / O components 1608 are grouped by function only for the sake of simplicity in the following discussion, and this grouping is by no means limiting. In various example implementations, I / O components 1608 may include output components 1620 and input components 1622. Output components 1620 may include visual components (e.g., displays such as plasma display panels (PDPs), light-emitting diode (LED) displays, liquid crystal displays (LCDs), projectors, or cathode ray tube (CRT) displays), auditory components (e.g., speakers), haptic components (e.g., vibration motors, resistance mechanisms), other signal generators, etc. Input components 1622 may include alphanumeric input components (e.g., keyboards, touchscreens configured to receive alphanumeric input, photoelectric keyboards, or other alphanumeric input components), point-based input components (e.g., mice, touchpads, trackballs, joysticks, motion sensors, or other pointing instruments), haptic input components (e.g., physical buttons, touchscreens or other haptic input components that provide positioning or force for touch or touch gestures), audio input components (e.g., microphones), etc.
[0143] In other example implementations, I / O component 1608 may include biometric component 1624, motion component 1626, environmental component 1628, or position component 1630, as well as a wide range of other components. For example, biometric component 1624 may include components for detecting expressions (e.g., hand expressions, facial expressions, voice expressions, body posture, or eye tracking), measuring biosignals (e.g., blood pressure, heart rate, body temperature, sweating, or brainwaves), and identifying a person (e.g., speech recognition, retinal recognition, facial recognition, fingerprint recognition, or EEG-based recognition). Motion component 1626 may include: accelerometer components (e.g., accelerometers), gravity sensor components, rotation sensor components (e.g., gyroscopes), etc. Environmental component 1628 may include, for example, a lighting sensor component (e.g., a photometer), a temperature sensor component (e.g., one or more thermometers that detect ambient temperature), a humidity sensor component, a pressure sensor component (e.g., a barometer), an hearing sensor component (e.g., one or more microphones that detect background noise), a proximity sensor component (e.g., an infrared sensor that detects nearby objects), a gas sensor (e.g., a gas detection sensor that detects the concentration of hazardous gases for safety purposes or measures pollutants in the atmosphere), or other components that can provide indications, measurements, or signals corresponding to the surrounding physical environment. Position component 1630 may include a positioning sensor component (e.g., a GPS receiver component), an altitude sensor component (e.g., an altimeter or barometer from which altitude can be obtained), an orientation sensor component (e.g., a magnetometer), etc.
[0144] A wide variety of technologies can be used to implement communication. I / O component 1608 may include communication component 1632, which is operable to couple machine 1600 to network 1634 or device 1636 via coupling 1638 and coupling 1640, respectively. For example, communication component 1632 may include a network interface component or other suitable device to interface with network 1634. In other examples, communication component 1632 may include wired communication component, wireless communication component, cellular communication component, near field communication (NFC) component, etc. Components (e.g.) (Low energy consumption) Components and other communication components that provide communication via other means. Device 1636 can be another machine 1600 or any peripheral device of various peripheral devices (e.g., a peripheral device coupled via USB).
[0145] Furthermore, the communication component 1632 can detect identifiers or include components operable to detect identifiers. For example, the communication component 1632 may include a radio frequency identification (RFID) tag reader component, an NFC smart tag detection component, an optical reader component (e.g., an optical sensor for detecting one-dimensional barcodes such as Universal Product Code (UPC) barcodes, multi-dimensional barcodes such as Quick Response (QR) codes, Aztec codes, data matrices, data symbols, maximum codes, PDF417, super codes, UCC RSS-2D barcodes, and other optical codes), or an acoustic detection component (e.g., a microphone for identifying audio signals of the tag). Additionally, various information can be obtained via the communication component 1040, such as location via Internet Protocol (IP) geolocation, etc. Location methods include signal triangulation and NFC beacon signals that can indicate a specific location.
[0146] Glossary:
[0147] In this context, "carrier signal" refers to any intangible medium capable of storing, encoding, or carrying transient or non-transient instructions 1602 executed by machine 1600, and includes digital or analog communication signals or other intangible media to facilitate the communication of these instructions 1602. Instructions 1602 can be transmitted or received on networks 110 and 1634 via network interface devices using transient or non-transient transmission media and employing any of a number of well-known transmission protocols.
[0148] In this context, "client device" refers to any machine 1600 that interfaces with communication networks 110 and 1634 to obtain resources from one or more server systems or other client devices 102. Client device 102 may be, but is not limited to, mobile phones, desktop computers, laptop computers, PDAs, smartphones, tablet computers, ultrabooks, netbooks, laptop computers, multiprocessor systems, microprocessor-based or programmable consumer electronics, game consoles, set-top boxes, or any other communication device that a user can use to access networks 110 and 1634.
[0149] In this context, "communication network" refers to one or more parts of network 110. The network can be an ad hoc network, intranet, extranet, virtual private network (VPN), local area network (LAN), wireless LAN (WLAN), wide area network (WAN), wireless WAN (WWAN), metropolitan area network (MAN), the Internet, a part of the Internet, a part of the Public Switched Telephone Network (PSTN), a POTS (Plain Old-Style Telephone Service) network, a cellular telephone network, or a wireless network. A network, another type of network, or a combination of two or more such networks. For example, network 110, 1634, or a portion thereof may include a wireless network or a cellular network, and the coupling may be a Code Division Multiple Access (CDMA) connection, a Global System for Mobile Communications (GSM) connection, or other types of cellular or wireless coupling. In this example, the coupling can implement any of a variety of data transmission technologies, such as Single Carrier Radio Transmission (1xRTT), Evolved Data Optimization (EVDO), General Packet Radio Service (GPRS), Enhanced Data Rate Evolution of GSM (EDGE), the 3rd Generation Partnership Project (3GPP) including 3G, fourth-generation wireless (4G) networks, Universal Mobile Telecommunications System (UMTS), High-Speed Packet Access (HSPA), Global Microwave Access Interoperability (WiMAX), Long Term Evolution (LTE) standards, other standards defined by various standards-setting organizations, other telematics protocols, or other data transmission technologies.
[0150] In this context, a "transient message" refers to a message that can be accessed for a limited time. Transient messages can be text, images, videos, etc. The access time for a transient message can be set by the message sender. Alternatively, the access time can be a default setting or a setting specified by the receiver. Regardless of the setting technique, the message is transient.
[0151] In this context, "machine-readable medium" means a component, device, or other tangible medium capable of temporarily or permanently storing instructions 1602 and data, and may include, but is not limited to, random access memory (RAM), read-only memory (ROM), buffer memory, flash memory, optical media, magnetic media, cache memory, other types of storage devices (e.g., erasable programmable read-only memory (EEPROM)), or any suitable combination thereof. The term "machine-readable medium" should be considered to include a single medium or multiple media capable of storing instructions 1610 (e.g., a centralized or distributed database or associated cache memory and server). The term "machine-readable medium" should also be considered to include any medium or combination of media capable of storing instructions 1602 (e.g., code) executable by machine 1600, such that when executed by one or more processors 1604 of machine 1600, instructions 1602 cause machine 1600 to perform any or more methods described herein. Accordingly, "machine-readable medium" means a single storage device or apparatus, and a "cloud-based" storage system or storage network comprising multiple storage devices or apparatuses. The term "machine-readable medium" does not include the signal itself.
[0152] In this context, a “component” refers to a device, physical entity, or logic having boundaries defined by functional or subroutine calls, branch points, APIs, or other technologies that provide partitioning or modularity for specific processing or control functions. Components can be combined with other components via their interfaces to perform machine processing. Components can be encapsulated functional hardware units designed for use with other components, and part of a program that typically performs a specific function related to that function. Components can constitute software components (e.g., code implemented on a machine-readable medium) or hardware components. A “hardware component” is a tangible unit capable of performing certain operations and can be configured or arranged in some physical manner. In various example implementations, one or more computer systems (e.g., standalone computer systems, client computer systems, or server computer systems) or one or more hardware components (e.g., processors or processor groups) of a computer system can be configured by software (e.g., an application or application portion) to perform certain operations described herein.
[0153] Hardware components can also be implemented mechanically, electronically, or in any suitable combination thereof. For example, a hardware component may include dedicated circuitry or logic permanently configured to perform certain operations. A hardware component may be a dedicated processor, such as a field-programmable gate array (FPGA) or an ASIC. A hardware component may also include a system of programmable logic or circuitry temporarily configured by software to perform certain operations. For example, a hardware component may include software executed by a general-purpose processor 1604 or other programmable processor. Once configured by such software, the hardware component becomes a specific machine (or a specific component of machine 1600) uniquely tailored to perform the configured function and is no longer the general-purpose processor 1604. It will be understood that decisions to implement hardware components mechanically in dedicated and permanently configured circuitry or in temporarily configured (e.g., configured by software) circuitry may be driven by cost and time considerations. Accordingly, the phrase “hardware component” (or “hardware-implemented component”) should be understood to include tangible entities, i.e., entities physically constructed, permanently configured (e.g., hardwired), or temporarily configured (e.g., programmed) to operate in a certain way or perform certain operations described herein. Consider implementations where hardware components are temporarily configured (e.g., programmed), eliminating the need to configure or instantiate each hardware component at any given time. For example, in the case where the hardware components include a general-purpose processor 1604 that is configured by software to become a dedicated processor, the general-purpose processor 1604 can be configured at different times as different dedicated processors (e.g., including different hardware components). The software accordingly configures specific processors 1612, 1614, or processor 1604 to constitute a specific hardware component at one time and different hardware components at different times.
[0154] Hardware components can provide information to and receive information from other hardware components. Therefore, the described hardware components can be considered communicationally coupled. In the presence of multiple hardware components, communication can be achieved through signal transmission between or among two or more hardware components (e.g., via appropriate circuitry and buses). In implementations where multiple hardware components are configured or instantiated at different times, such communication between hardware components can be achieved, for example, by storing information in a memory structure accessible to the multiple hardware components and retrieving information from that memory structure. For example, one hardware component can perform an operation and store the output of that operation in a communicationally coupled memory device. Another hardware component can then access the memory device at a subsequent time to retrieve and process the stored output.
[0155] Hardware components can also initiate communication with input or output devices and operate on resources (e.g., collections of information). Various operations of the example methods described herein can be performed, at least in part, by one or more processors 1604 that are temporarily configured (e.g., by software) or permanently configured to perform the relevant operations. Whether temporarily or permanently configured, such processors 1604 can constitute processor-implemented components that operate to perform one or more operations or functions described herein. As used herein, "processor-implemented component" refers to a hardware component implemented using one or more processors 1604. Similarly, the methods described herein can be implemented, at least in part, by processors, where specific processors 1612, 1614, or 1604 are examples of hardware. For example, at least some operations of the methods can be performed by one or more processors 1604 or processor-implemented components. Furthermore, one or more processors 1604 can also be configured to support the execution of relevant operations in a "cloud computing" environment or operate as "Software as a Service" (SaaS). For example, at least some operations can be performed by a group of computers (as an example, machine 1600 including processor 1604), wherein these operations are accessible via network 110 (e.g., the Internet) and via one or more appropriate interfaces (e.g., APIs). The execution of some operations can be distributed among processors, not residing solely within a single machine 1600, but deployed across multiple machines. In some example implementations, processor 1604 or components implemented by the processor can reside in a single geographic location (e.g., within a home environment, office environment, or server cluster). In other example implementations, processor 1604 or components implemented by the processor can be distributed across multiple geographic locations.
[0156] In this context, "processor" refers to any circuit or virtual circuit (physical circuitry simulated by logic executed on the actual processor 1604) that manipulates data values according to control signals (e.g., "commands", "opcodes", "machine codes", etc.) and generates corresponding output signals used to operate machine 1600. For example, processor 1604 can be a CPU, RISC processor, CISC processor, GPU, DSP, ASIC, RFIC, or any combination thereof. Processor 1608 can also be a multi-core processor having two or more independent processors 1604 (sometimes referred to as "cores") capable of executing instructions 1602 simultaneously.
[0157] In this context, a "timestamp" refers to a sequence of characters or encoded information that identifies when an event occurred, such as giving a date and time of day, sometimes accurate to a fraction of a second.
[0158] Changes and modifications may be made to the disclosed implementation without departing from the scope of this disclosure. Such changes and other modifications are intended to be included within the scope of this disclosure as set forth in the appended claims.
[0159] Examples of this disclosure
[0160] Aspect 1. A method comprising: receiving content item data from a first computing device by one or more computing devices of a server system, the content item data including image data corresponding to an image of the content item and overlay data corresponding to an overlay of the image; determining a category of the content item by the one or more computing devices based at least in part on the overlay data; adding the content item to a group of content items having the category by the one or more computing devices; receiving a request for the content item having the category from a second client device by the one or more computing devices; identifying at least a portion of the group of content items, the at least a portion of the group of content items including the content item, in response to the request by the one or more computing devices; and sending user interface data to the second client device by the one or more computing devices in response to the request, the user interface data being configured to generate one or more user interfaces including at least a portion of the group of content items.
[0161] Aspect 2. The method according to aspect 1, wherein at least a portion of the coverage data includes text data corresponding to a first text content of the coverage, and the method includes: performing analysis on second text content of at least a portion of the first text content of the coverage with respect to respective identifiers of a plurality of categories.
[0162] Aspect 3. The method according to aspect 2, wherein the analysis includes: determining a similarity measure between at least a portion of the first text content and a portion of the second text content associated with an identifier of the category, the portion of the second text content associated with the identifier including at least one of a word, letter, symbol, or number of the identifier of the category; and determining that the similarity measure corresponds to a similarity level of at least a threshold level.
[0163] Aspect 4. The method according to any one of Aspects 1 to 3, wherein the coverage data indicates a creative tool for generating the coverage, and the determination of the classification of the content item is based at least in part on determining that at least one of a first identifier of the creative tool or a second identifier of the coverage corresponds to a third identifier of the classification.
[0164] Aspect 5. The method according to any one of Aspects 1 to 4, comprising: analyzing the image data to determine an object included in the image; determining an identifier of the object; and determining that the identifier of the object has a correspondence with an additional identifier of the classification at least at a threshold level; and wherein the classification of the content item is based at least in part on the identifier of the object, the identifier of the object having a correspondence with an additional identifier of the classification at least at a threshold level.
[0165] Aspect 6. The method according to any one of Aspects 1 to 5, comprising: determining one or more first characteristics of a user of the second client device; determining one or more second characteristics of the content item group having the classification; performing an analysis of the one or more first characteristics relative to the one or more second characteristics; and determining, based on the analysis, a corresponding level of attention to each content item in the content item group as associated with the user of the second client device.
[0166] Aspect 7. The method according to aspect 6, comprising: determining a ranking of the content item group based on a corresponding level of attention to each content item in the content item group as relating to a user of the second client device, wherein the ranking indicates the order in which the respective content items are to be displayed in at least one of the one or more user interfaces.
[0167] Aspect 8. The method according to aspect 7, wherein: a first content item in the content item group has a first ranking, the first ranking corresponding to a first level of attention of a user relative to the second client device; a second content item in the content item group has a second ranking, the second ranking being lower than the first ranking and corresponding to a second level of attention of a user relative to the second client device, the second level of attention being less than the first level of attention; and the first content item is presented before the second content item in the at least one user interface.
[0168] Aspect 9. The method according to aspect 7, comprising: obtaining additional data from a representative of a service provider that provides services related to a client application for generating the content items, the additional data corresponding to weights of additional content items included in the group of content items; and wherein the ranking of the additional content items is based at least in part on the weights.
[0169] Aspect 10. The method according to aspect 7, comprising: determining one or more third characteristics of an additional user of an additional client device executing a corresponding instance of a client application for generating content items, the additional user being a creator of additional content items included in the group of content items; and wherein the ranking of the additional content items is based at least in part on the one or more third characteristics of the additional user.
[0170] Aspect 11. A system comprising: one or more hardware processors; and one or more non-transitory computer-readable storage media including computer-readable instructions that, when executed by the one or more hardware processors, cause the one or more hardware processors to perform operations, the operations including: receiving content item data from a first client device, the content item data including image data corresponding to an image of the content item and overlay data corresponding to an overlay of the image, wherein the overlay is generated by a client application; determining a category of the content item based at least in part on the overlay data; adding the content item to a content item group having the category; receiving a request from a second client device for a content item having the category; in response to the request, identifying at least a portion of the content item group, the at least a portion of the content item group including the content item; and in response to the request, sending user interface data to the second client device, the user interface data being configured to generate one or more user interfaces including at least a portion of the content item group.
[0171] Aspect 12. The system according to aspect 11, wherein the one or more non-transitory computer-readable storage media include additional computer-readable instructions that, when executed by the one or more hardware processors, cause the one or more hardware processors to perform additional operations, the additional operations including: receiving from a first client device an additional request for content items corresponding to the category; determining, in response to the additional request, a plurality of content items having the category; and sending additional content item data to the first client device, the additional content item data corresponding to the plurality of content items having the category, and indicating the order in which the various content items among the plurality of content items are presented in at least one user interface of the client application.
[0172] Aspect 13. The system according to Aspect 12, wherein the one or more non-transitory computer-readable storage media include additional computer-readable instructions that, when executed by the one or more hardware processors, cause the one or more hardware processors to perform additional operations, the additional operations including: determining a ranking of each of the plurality of content items, the ranking indicating a corresponding level of attention of the respective content item in relation to a user of the client application; and determining an order in which the respective content items are presented based on the ranking.
[0173] Aspect 14. The system according to Aspect 12, wherein: the one or more non-transitory computer-readable storage media include additional computer-readable instructions, which, when executed by the one or more hardware processors, cause the one or more hardware processors to perform additional operations, the additional operations including: sending additional user interface data to a first client device in response to the additional request, the additional user interface data corresponding to one or more additional user interfaces of the client application, the one or more additional user interfaces including pages and user interface elements, the pages including at least a portion of the plurality of content items having the category, the user interface elements being selectable to add at least one additional content item to the category; and obtaining the content item data from the first client device in response to the selection of the user interface element.
[0174] Aspect 15. The system according to any one of Aspects 11 to 14, wherein the one or more non-transitory computer-readable storage media include additional computer-readable instructions that, when executed by the one or more hardware processors, cause the one or more hardware processors to perform additional operations, the additional operations including: storing the content item in association with the category in a database; and retrieving data corresponding to the content item from the database in response to a request from the second client device for a content item having the category.
[0175] Aspect 16. A method comprising: receiving input via one or more input devices of a client device having one or more processors and memory, the received input being related to a client application executed by the client device; generating a content item including an image and an overlay based on the input; determining a classification of the content item based on at least one of one or more features of the image or the overlay; and sending content item data to a server system by the client device, the content item data including image data corresponding to the image, overlay data corresponding to the overlay, and classification data indicating the classification of the content item.
[0176] Aspect 17. The method according to Aspect 16, comprising: generating a first user interface by the client device displaying the image and the overlay, the first user interface including one or more first user interface elements and a second user interface element, the one or more first user interface elements being selectable to generate one or more overlays of the image, the second user interface element being selectable to identify one or more recipients of the content item; and generating a second user interface by the client device in response to selection of the second user interface element, including a third user interface element and a fourth user interface element, the third user interface element being selectable to share the content item with contacts of a user of the client device, the fourth user interface element including one or more options, the one or more options being selectable to associate one or more categories with the content item, the one or more categories including the category.
[0177] Aspect 18. The method according to aspect 16 or 17, comprising: generating a first user interface by the client device, the first user interface including a plurality of content items and user interface elements corresponding to the category, the user interface elements being selectable to add one or more content items to the category; generating a second user interface by the client device in response to selection of the user interface elements, the second user interface displaying a view of the client device's camera and including second user interface elements, the second user interface elements being selectable to capture one or more images corresponding to the view of the camera; and generating at least a portion of the image data by the client device in response to selection of the second user interface elements.
[0178] Aspect 19. The method according to aspect 18, comprising: generating a third user interface by the client device, the third user interface including the image and a plurality of user interface elements, the plurality of user interface elements being selectable to activate one or more creative tools of the client application; and generating an overlay of the image by the client device based on additional input obtained via the one or more input devices related to the creative tools among the one or more creative tools; and wherein the classification of the content items is based at least in part on the identifier of the creative tool.
[0179] Aspect 20. The method according to aspect 18, comprising: generating a third user interface by the client device, the third user interface including the image and one or more user interface elements, the one or more user interface elements being selectable to add text covering the image; and generating the covered text content by the client device based on selection of at least a portion of the one or more user interface elements, the text content including a category identifier; and wherein the category of the content item corresponds to the category identifier.
Claims
1. A method for content processing, comprising: Content item data is received from a first user's first computing device of a first user in a client application by one or more computing devices of a server system. The content item data includes image data corresponding to an image of the content item and overlay data corresponding to an overlay of the image. The overlay data includes text data corresponding to first text content, which corresponds to input entered via a keyboard input device displayed in the user interface of the client application. The user interface includes the first text content and the image. The one or more computing devices determine one or more recommendations, including one or more categories of the content items, based on the first text content; The classification of the content item corresponding to the recommendation is determined by one or more computing devices based on additional input indicating acceptance of a recommendation among the one or more recommendations; The content item is added to the content item group having the category by the one or more computing devices; The one or more computing devices receive requests for content items having the category from a second client device of a second user of the client application; The one or more computing devices, in response to the request, identify at least a portion of the content item group, the at least a portion of the content item group including the content item; and In response to the request, one or more computing devices send user interface data to the second client device, the user interface data being configured to generate one or more user interfaces that include at least a portion of the content item group.
2. The method according to claim 1, comprising: An analysis is performed on at least a portion of the first text content covered by the analysis, relating to the second text content of various identifiers across multiple categories.
3. The method according to claim 2, wherein, The analysis includes: Determine a similarity measure between at least a portion of the first text content and a portion of second text content associated with an identifier of the category, wherein the portion of second text content associated with the identifier includes the symbol of the identifier of the category; and The similarity metric is determined to correspond to at least a threshold level of similarity.
4. The method according to claim 2, wherein, The analysis includes: Determine a similarity measure between at least a portion of the first text content and a portion of second text content associated with an identifier of the category, wherein the portion of second text content associated with the identifier includes at least one of a word, letter, or number of the identifier of the category; and The similarity metric is determined to correspond to at least a threshold level of similarity.
5. The method according to claim 1, wherein, The coverage data indicates the creative tool used to generate the coverage, and the classification of the content item is determined at least in part based on determining that at least one of the first identifier of the creative tool or the second identifier of the coverage corresponds to the third identifier of the classification.
6. The method according to claim 1, comprising: Analyze the image data to determine the objects included in the image; Determine the identifier of the object; as well as Determine that the identifier of the object corresponds to the additional identifier of the category at least at a threshold level; as well as The classification of the content items is based at least in part on the identifier of the object, and the identifier of the object has a correspondence with the additional identifier of the classification at least at a threshold level.
7. The method according to claim 1, comprising: Determine one or more first characteristics of the user of the second client device; Determine one or more second features of the group of content items having the classification; Perform analysis of the one or more first features relative to the one or more second features; as well as Based on the analysis, the corresponding level of attention for each content item in the content item group is determined in relation to the user of the second client device.
8. The method of claim 7, comprising: The ranking of the content item group is determined based on the corresponding level of attention given to each content item in the content item group by the user of the second client device, wherein the ranking indicates the order in which the respective content items are to be displayed in at least one of the one or more user interfaces.
9. The method according to claim 8, wherein: The first content item in the content item group has a first ranking, which corresponds to a first level of attention relative to the user of the second client device. The second content item in the content item group has a second ranking, which is lower than the first ranking and corresponds to a second level of attention relative to the user of the second client device, which is lower than the first level of attention. as well as The first content item is presented before the second content item in the at least one user interface.
10. The method of claim 8, comprising: Additional data is obtained from a representative of the service provider that provides services related to the client application used to generate the content items, and the additional data corresponds to the weight of the additional content items included in the content item group; and The ranking of the additional content items is based at least in part on the weights.
11. The method of claim 8, comprising: Determine one or more third characteristics of an additional user of an additional client device that executes a corresponding instance of a client application for generating content items, said additional user being the creator of additional content items included in the content item group; and The ranking of the additional content items is based at least in part on one or more of the additional user's third characteristics.
12. A system comprising: One or more hardware processors; as well as A non-transitory computer-readable storage medium comprising computer-readable instructions, which, when executed by the one or more hardware processors, cause the one or more hardware processors to perform operations, the operations including: Content item data is received from a first client device of a first user of a client application. The content item data includes image data corresponding to an image of the content item and overlay data corresponding to an overlay of the image, wherein the overlay is generated by the client application. The overlay data includes text data corresponding to first text content, which corresponds to input entered via a keyboard input device displayed in the user interface of the client application. The user interface includes the first text content and the image. Based on the first text content, determine one or more recommendations including one or more categories of the content item; The classification of the content item corresponding to the recommendation is determined based on additional input indicating acceptance of the recommendation among the one or more recommendations; Add the content item to the content item group that has the category; Receive a request for content items with the category from the second client device of the second user of the client application; In response to the request, at least a portion of the content item group is identified, the at least a portion of the content item group including the content item; and In response to the request, user interface data is sent to the second client device, the user interface data being configured to generate one or more user interfaces that include at least a portion of the content item group.
13. The system according to claim 12, wherein, The one or more non-transitory computer-readable storage media include additional computer-readable instructions that, when executed by the one or more hardware processors, cause the one or more hardware processors to perform additional operations, the additional operations including: Receive additional requests for content items corresponding to the category from the first client device; In response to the additional request, determine multiple content items having the classification; and Additional content item data is sent to the first client device, the additional content item data corresponding to the plurality of content items having the classification, and indicating the order in which the various content items among the plurality of content items are presented in at least one user interface of the client application.
14. The system according to claim 13, wherein, The one or more non-transitory computer-readable storage media include additional computer-readable instructions that, when executed by the one or more hardware processors, cause the one or more hardware processors to perform additional operations, the additional operations including: Determine a ranking for each of the plurality of content items, the ranking indicating the level of attention each content item receives in relation to a user of the client application; and The order in which the various content items are presented is determined based on the ranking.
15. The system according to claim 13, wherein: The one or more non-transitory computer-readable storage media include additional computer-readable instructions that, when executed by the one or more hardware processors, cause the one or more hardware processors to perform additional operations, the additional operations including: sending additional user interface data to the first client device in response to the additional request, the additional user interface data corresponding to one or more additional user interfaces of the client application, the one or more additional user interfaces including pages and user interface elements, the pages including at least a portion of the plurality of content items having the category, the user interface elements being selectable to add at least one additional content item to the category; and In response to the selection of the user interface element, the content item data is obtained from the first client device.
16. The system according to claim 12, wherein, The one or more non-transitory computer-readable storage media include additional computer-readable instructions that, when executed by the one or more hardware processors, cause the one or more hardware processors to perform additional operations, the additional operations including: The content items are stored in the database in association with the category; and In response to a request from the second client device for a content item with the aforementioned category, data corresponding to the content item is retrieved from the database.
17. A method for content processing, comprising: A client device having one or more processors and memory enables the display of a first user interface, including graphics and keyboard input devices; The client device captures the text content corresponding to the input provided via the keyboard input device; The client device generates a content item including an image and an overlay based on the input, wherein the overlay includes the text content; The client device causes the display of one or more recommendations that include one or more categories of the content item, wherein the one or more recommendations are determined based on the text content, and the one or more recommendations are displayed in a second user interface; The client device determines the category of the content item corresponding to the recommendation based on additional input indicating acceptance of a recommendation among the one or more recommendations; and The client device sends content item data to the server system. The content item data includes image data corresponding to the image, overlay data corresponding to the overlay, and classification data indicating the classification of the content item.
18. The method of claim 17, wherein: The first user interface includes one or more first user interface elements and a second user interface element, wherein the one or more first user interface elements can be selected to generate one or more overlays of the image, and the second user interface element can be selected to identify one or more recipients of the content item. as well as The client device generates a second user interface including a third user interface element and a fourth user interface element in response to a selection of the second user interface element. The third user interface element can be selected to share the content item with the user's contacts on the client device. The fourth user interface element includes one or more options that can be selected to associate one or more categories with the content item, and the one or more categories include the category.
19. The method of claim 17, comprising: The client device generates a first additional user interface, which includes multiple content items and user interface elements corresponding to the category. The user interface elements can be selected to add one or more content items to the category. The client device generates a second additional user interface in response to the selection of the user interface element. The second additional user interface displays a view of the client device's camera and includes a second user interface element that can be selected to capture one or more images corresponding to the view of the camera. as well as At least a portion of the image data is generated by the client device in response to the selection of the second user interface element.
20. The method of claim 19, comprising: A third user interface is generated by the client device, the third user interface including the image and multiple user interface elements, the multiple user interface elements being selectable to activate one or more creative tools of the client application; as well as The client device generates the overlay of the image based on additional input related to the creative tools among the one or more creative tools, obtained via the one or more input devices; and The classification of the content items is based, at least in part, on the identifiers of the creative tools.
21. The method of claim 18, wherein: The second user interface includes an additional overlay, which includes one or more additional user interface elements, each of which indicates at least one category of the content item and can be selected to remove the association between the content item and the at least one category.