Augmented reality personification system

By developing the AR system in the graphic user interface, identifying objects and presenting media objects based on attributes, the problem of difficulty integration and presentation of media content in existing technologies has been solved, and a richer user experience and interactive method are realized.

CN119359969APending Publication Date: 2025-01-24SNAP INC
View PDF 0 Cites 1 Cited by

Patent Information

Application Number
CN202411389138.5
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2018-08-31
Filing Date
2019-08-29
Publication Date
2025-01-24

Smart Images

  • Figure CN119359969A_ABST
    Figure CN119359969A_ABST
Patent Text Reader

Abstract

Embodiments of the present disclosure generally relate to a system for enhancing a first media item by adding a supplemental second media item. The user may propose a request to augment the selected media item, and in response, the augment system retrieves and presents to the user a curation set of supplemental content to be added to the media. A user may view a curation set of supplemental content, such as scrolling a curation set of browsed content by providing haptic input.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of a patent application with an application date of August 29, 2019, application number 201980056291.7, and invention name “Augmented Reality Personification System”.

[0002] Priority claim

[0003] This application claims the benefit of priority to U.S. Patent Application Serial No. 16 / 119,397, filed on August 31, 2018, the benefit of which is hereby claimed, the contents of which are incorporated herein by reference in their entirety. Technical Field

[0004] Embodiments of the present disclosure relate generally to messaging services and, more particularly, to a system for enhancing media content to be distributed in messages. Background Art

[0005] Augmented reality (AR) is an interactive experience in a real-world environment in which objects located in the real world are "augmented" with computer-generated sensory information, sometimes across multiple sensory modalities, including vision, hearing, touch, body sensation, and smell. The superimposed sensory information can be constructive (i.e., supplementing the natural experience) or destructive (i.e., masking the natural environment) and is seamlessly intertwined with the physical world so that it is perceived as an immersive aspect of the real environment.

[0006] Various technologies are used in AR rendering, including optical projection systems, monitors, handheld devices, and display systems worn on the body such as glasses, contact lenses, or heads-up displays (HUDs). BRIEF DESCRIPTION OF THE DRAWINGS

[0007] To easily identify discussion of any particular element or action, the most significant digit(s) in a reference number refers to the number of the figure in which the element is first introduced.

[0008] Figure 1 is a block diagram illustrating an example messaging system for exchanging data (eg, messages and associated content) over a network, wherein the messaging system includes an augmented reality (AR) system, in accordance with some embodiments.

[0009] Figure 2 is a block diagram showing further details regarding a messaging system according to an example embodiment.

[0010] Figure 3 is a block diagram illustrating various modules of an AR system according to certain example embodiments.

[0011] Figure 4 is a flow chart illustrating a method for presenting AR content according to certain example embodiments.

[0012] Figure 5 is a flow chart illustrating a method for presenting AR content according to certain example embodiments.

[0013] Figure 6 is a flow chart illustrating a method for presenting AR content according to certain example embodiments.

[0014] Figure 7 is a flow chart illustrating a method for presenting AR content according to certain example embodiments.

[0015] Figure 8 is a flow chart illustrating a method for presenting AR content according to certain example embodiments.

[0016] Fig. 9 is an interface diagram depicting AR content presented within a graphical user interface according to some example embodiments.

[0017] Fig.10 is an interface diagram depicting AR content presented within a graphical user interface according to some example embodiments.

[0018] Fig.11 is an interface diagram depicting AR content presented within a graphical user interface according to some example embodiments.

[0019] Fig.12 is a block diagram illustrating a representative software architecture that may be used in conjunction with the various hardware architectures described herein and to implement the various embodiments.

[0020] Fig.13 is a block diagram illustrating components of a machine capable of reading instructions from a machine-readable medium (eg, a machine-readable storage medium) and performing any one or more of the methodologies discussed herein, according to some example embodiments. DETAILED DESCRIPTION

[0021] AR systems are used to enhance natural environments or situations and provide perceptually rich experiences. Embodiments of the present disclosure generally relate to systems for generating and presenting AR content within a graphical user interface (GUI). The AR system enables the presentation of image data to be displayed within the GUI, and identifies one or more objects displayed within the presentation of the image data. For example, image data can be collected and displayed within the GUI via a camera associated with a client device. Image data can be recorded in advance and accessed at a later time, or in some embodiments can be recorded and displayed in real time.

[0022] In response to detecting one or more objects within the presentation of the image data, the AR system detects properties of the one or more objects based on the positions of the one or more recognized objects and retrieves AR media objects to be rendered within the presentation of the image data.

[0023] In some embodiments, the AR system applies one or more computer vision methods to identify the display of objects with the aid of the presentation of image data. For example, object recognition techniques can be used to find and identify objects in images or video sequences, including but not limited to feature-based methods and edge detection. The AR system can, for example, maintain a database of object features, and the AR system can compare the object features with the image features of the image data in order to identify the object.

[0024] In some embodiments, the AR system associates a collection of media objects with object attributes such that one or more attributes (e.g., shape, size, color, text, position, location) of the identified object can be used to reference and retrieve a media object (e.g., a first media object).

[0025] Upon acquiring a media object corresponding to the identified object within the presentation of image data, the AR system presents a display of the media object corresponding to the attributes of the identified object at a location within the presentation of image data, where the location is based on the location of the identified object itself. For example, a spherical object may be associated with a first media object (e.g., a smiling face), while a conical object may be associated with a second media object (e.g., a frowning face). When a basketball (i.e., a round object) is identified within the presentation of space, the AR system acquires the first media object and presents the first media object at a location within the presentation of image data based on the location of the basketball, making the basketball look like an expressive face. Similarly, upon identifying a traffic cone, the AR system acquires a second media object and presents the second media object at a location within the presentation of image data based on the location of the traffic cone.

[0026] In some embodiments, aspects of a media object may be changed or adjusted based on one or more properties of the object. Aspects may include, for example, the aspect ratio of the media object, the proportions of the media object, the spacing between components of the media object, and the size of the media object. In the case of audio features of a media object, aspects of the audio features may also be changed or adjusted based on one or more properties of the object. For example, based on the size and shape of the object, audio features such as pitch, duration, timbre, sound texture, and loudness may be adjusted based on one or more properties of the object.

[0027] In some embodiments, the first media object can be a reactive or interactive media object that dynamically responds to virtual and real stimuli. The stimuli may include visual, auditory, thermal, tactile, and olfactory events that occur in the presentation of the space. The virtual stimulus may therefore include similar events that are performed by the first augmented reality media object within the presentation of the space and pointed to the second augmented reality media object within the presentation of the space. As an illustrative example, the presentation of the space may include the display of two separate augmented reality media objects. The media object may respond to real-world stimuli (e.g., a person or object within the presentation of the space (e.g., a person picks up or flicks one of the multiple augmented reality media objects) or based on other real-world stimuli (e.g., a loud noise)) by performing one or more animations based on the attributes of the stimulus. For example, the size of the noise or the speed of movement of the person or object may result in different animations. Media objects may also respond to stimuli from each other. For example, the presence of a second media object may cause the first media object to perform an animation based on the attributes of the second media object.

[0028] In some embodiments, the media objects may be configured by a user of the client device. For example, in response to detecting an object within the presentation of the space, the AR system may present a set of configuration options to the user that enables the user to design and configure the media object to be displayed within the presentation of the space based on the object. In further embodiments, the AR system may receive input that assigns a set of media object features to one or more properties of the objects presented within the presentation of the space. For example, a user may define that a particular set of media object features should be displayed on all spherical objects or all orange spherical objects.

[0029] Figure 1 1 is a block diagram illustrating an exemplary messaging system 100 for exchanging data (e.g., messages and associated content) over a network. The messaging system 100 includes a plurality of client devices 102, each of which hosts a plurality of applications including a messaging client application 104. Each messaging client application 104 is communicatively coupled to other instances of the messaging client application 104 and a messaging server system 108 via a network 106 (e.g., the Internet).

[0030] Thus, each messaging client application 104 is able to communicate and exchange data with another messaging client application 104 and with a messaging server system 108 via a network 106. Data exchanged between messaging client applications 104 and data exchanged between a messaging client application 104 and a messaging server system 108 includes functions (e.g., commands to call functions) and payload data (e.g., text, audio, video, or other multimedia data).

[0031] The messaging server system 108 provides server-side functionality to specific messaging client applications 104 via the network 106. Although certain functions of the messaging system 100 are described herein as being performed by the messaging client application 104 or by within the messaging server system 108, it is understood that the location of certain functions within the messaging client application 104 or within the messaging server system 108 is a design choice. For example, it may be technically preferred to first deploy certain technologies and functions within the messaging server system 108, but then migrate the technologies and functions to the messaging client application 104 where the client device 102 has sufficient processing power.

[0032] The messaging server system 108 supports various services and operations provided to the messaging client applications 104. The operations include sending data to the messaging client applications 104, receiving data from the messaging client applications 104, and processing data generated by the messaging client applications 104. In some embodiments, the data includes, for example, message content, client device information, geographic location information, media annotations and overlays, message content persistence conditions, social network information, and live event information. In other embodiments, other data is used. The data exchange within the messaging system 100 is invoked and controlled via functions available to the GUI of the messaging client applications 104.

[0033] Turning now specifically to the messaging application server system 108, an application program interface (API) server 110 is coupled to and provides a programming interface to an application server 112. The application server 112 is communicatively coupled to a database server 118, which facilitates access to a database 120 in which data associated with messages processed by the application server 112 is stored.

[0034] Specifically, the application program interface (API) server 110 receives and sends message data (e.g., commands and message payloads) between the client device 102 and the application server 112. Specifically, the application program interface (API) server 110 provides a set of interfaces (e.g., routines and protocols) that can be called or queried by the messaging client application 104 to invoke the functions of the application server 112. The application program interface (API) server 110 exposes various functions supported by the application server 112, including account registration, login functionality, sending messages from a particular messaging client application 104 to another messaging client application 104 via the application server 112, sending media files (e.g., images or videos) from a messaging client application 104 to a messaging server application 114, and possible access for another messaging client application 104, setting of media data collections (e.g., stories), retrieval of a friend list of a user of a client device 102, retrieval of such collections, retrieval of messages and content, adding and removing friends from a social graph, locating friends in a social graph, opens, and application events (e.g., events related to the messaging client application 104).

[0035] The application server 112 hosts many applications and subsystems, including a messaging server application 114, an image processing system 116, a social networking system 122, and an AR system 124. The messaging server application 114 implements a variety of message processing techniques and functions, particularly techniques and functions related to the aggregation and other processing of content (e.g., text and multimedia content) contained in messages received from multiple instances of the messaging client application 104. As will be described in further detail, text and media content from multiple sources can be aggregated into content collections (e.g., referred to as stories, galleries, or collections). The messaging server application 114 can then provide these collections to the messaging client application 104. Given the hardware requirements for this processing, the messaging server application 114 can also perform other processor- and memory-intensive data processing on the server side.

[0036] The application server 112 also includes an image processing system 116 that is dedicated to performing various image processing operations, typically related to images or videos received within the payload of messages from the messaging server application 114 .

[0037] The social networking system 122 supports various social networking functional services and makes these functionalities and services available to the messaging server application 114. To do so, the social networking system 122 maintains and accesses an entity graph 304 within the database 120. Examples of functionalities and services supported by the social networking system 122 include identification of other users in the messaging system 100 who have relationships with a particular user or who are "followed" by the particular user, as well as identification of interests and other entities of the particular user.

[0038] The application server 112 is communicatively coupled to a database server 118 , which facilitates access to a database 120 in which data associated with messages processed by the messaging server application 114 is stored.

[0039] Figure 2 is a block diagram showing further details about the messaging system 100 according to an example embodiment. Specifically, the messaging system 100 is shown to include a messaging client application 104 and an application server 112, which in turn embodies several subsystems, namely a short timer system 202, a collection management system 204, and an annotation system 206.

[0040] The short-term timer system 202 is responsible for enforcing temporary access to content permitted by the messaging client application 104 and the messaging server application 114. To this end, the short-term timer system 202 incorporates a number of timers that selectively display and enable access to messages and related content via the messaging client application 104 based on durations and display parameters associated with a message, a collection of messages, or a graphical element. Further details regarding the operation of the short-term timer system 202 are provided below.

[0041] The collection management system 204 is responsible for managing collections of media (e.g., collections of text, images, video, and audio data). In some examples, collections of content (e.g., messages including images, videos, text, and audio) may be organized into "event galleries" or "event stories." Such collections may be available for a specified time period, such as the duration of an event to which the content is related. For example, content related to a concert may be provided as a "story" for the duration of the concert. The collection management system 204 may also be responsible for publishing an icon to the user interface of the messaging client application 104 that provides notification of the existence of a particular collection.

[0042] The collection management system 204 further includes a curation interface 208 that allows a collection manager to manage and curate a particular collection of content. For example, the curation interface 208 enables an event organizer to curate a collection of content related to a particular event (e.g., to remove inappropriate content or redundant messages). Additionally, the collection management system 204 employs machine vision (or image recognition technology) and content rules to automatically curate a collection of content. In some embodiments, a user may be paid to include user-generated content in a collection. In this case, the curation interface 208 operates so as to automatically pay the user for use of the user's content.

[0043] The annotation system 206 provides various functions that enable users to annotate or otherwise modify or edit media content associated with a message. For example, the annotation system 206 provides functions related to the generation and publication of media overlays of messages processed by the messaging system 100. The annotation system 206 is operable to provide media overlays to the messaging client application 104 based on the geographic location of the client device 102. In another example, the annotation system 206 is operable to provide media overlays to the messaging client application 104 based on other information (e.g., social network information of the user of the client device 102). Media overlays can include audio and visual content and visual effects, as well as augmented reality overlays. Examples of audio and visual content include pictures, text, logos, animations and sound effects, and animated facial models, graphic filters, and augmented reality media content. Examples of visual effects include color overlays. Audio and visual content or visual effects can be applied to media content items (e.g., photos or videos or video streams) at the client device 102. For example, media overlays include text that can be superimposed on photos generated by the client device 102. In another example, the media overlay includes a location overlay identification (e.g., Venice Beach), a live event name, or a business overlay name (e.g., Beach Cafe). In another example, the annotation system 206 uses the geographic location of the client device 102 to identify a media overlay that includes the name of the business at the geographic location of the client device 102. The media overlay may include other tags associated with the business. The media overlay may be stored in the database 120 and may be accessed by the database server 118.

[0044] In one example embodiment, the annotation system 206 provides a user-based publishing platform that enables users to select a geographic location on a map and upload content associated with the selected geographic location. Users can also specify circumstances under which specific media overlays should be provided to other users. The annotation system 206 generates a media overlay that includes the uploaded content and associates the uploaded content with the selected geographic location.

[0045] In another example embodiment, the annotation system 206 provides a merchant-based publishing platform that enables merchants to select specific media overlays associated with geographic locations through a bidding process. For example, the annotation system 206 associates the media overlays of the merchant with the highest bid with the corresponding geographic location within a predetermined amount of time.

[0046] Figure 3 30 is a block diagram illustrating components of the AR system 124 that configure the AR system 124 to: display a presentation of image data on a client device; identify a display of an object within the presentation of image data based on one or more attributes of the display of the object; detect one or more attributes of the object; retrieve a media object based on the one or more attributes of the object; and present the media object at a location within the presentation of image data, wherein the location is based at least on the one or more attributes of the object. The AR system 124 is illustrated as including a presentation module 302, an identification module 304, a media module 306, and a communication module 308, each of which is configured to communicate with each other (e.g., via a bus, shared memory, or switch). Any one or more of these modules may be implemented using one or more processors 310 (e.g., by configuring the one or more processors to perform the functions described for the module) and thus may include one or more processors 310.

[0047] Any one or more of the modules described may be implemented using hardware alone (e.g., one or more processors 310 of the machine) or a combination of hardware and software. For example, any module of the AR system 124 described may physically include an arrangement of one or more processors 310 (e.g., a subset of one or more processors of the machine or a subset of one or more processors of the machine) configured to perform the operations described herein for the module. As another example, any module of the AR system 124 may include software, hardware, or both, which configures an arrangement of one or more processors 310 (e.g., among one or more processors of the machine) to perform the operations described herein for the module. Therefore, different modules of the AR system 124 may include and configure different arrangements of the processor 310 or a single arrangement of the processor 310 at different points in time. In addition, any two or more modules of the AR system 124 may be combined into a single module, and the functions described herein for a single module may be subdivided into multiple modules. In addition, according to various example embodiments, the modules described herein as being implemented within a single machine, database, or device may be distributed across multiple machines, databases, or devices.

[0048] Figure 44 is a flowchart illustrating a method 400 for presenting AR content within a presentation of image data at a client device (eg, client device 102) according to some example embodiments. The operations of method 400 may be as described above with respect to Figure 3 The modules described are executed. Figure 4 As shown, method 400 includes one or more operations 402 , 404 , 406 , 408 , and 410 .

[0049] At operation 402, the rendering module 302 causes a rendering of the image data to be displayed at the client device 102. The image data may be pre-recorded, or in some embodiments may be recorded and rendered in real-time on the client device 102. For example, the client device 102 may have a built-in camera, or may be connected to a camera (e.g., via Bluetooth).

[0050] At operation 404 , the identification module 304 identifies a display of an object within the representation of the image data, wherein the object includes one or more object attributes and includes an object boundary that defines a size and shape of the object.

[0051] In some embodiments, the recognition module 304 can apply object recognition techniques to identify objects in an image or video sequence, including but not limited to feature-based methods and edge detection. For example, feature detection includes methods for computing an abstraction of image information and making local decisions at each image point as to whether a given type of image feature exists at that point. The generated features will be a subset of the image domain, typically in the form of isolated points, continuous curves, or connected regions. Image features may include edges, corners, spots, ridges, shapes. The AR system can maintain a database of object features (e.g., database 120) and apply template matching to the image data to identify one or more objects displayed within the presentation of the image data based on the object features stored in the database.

[0052] In some embodiments, recognition module 304 may receive user input that selects or otherwise identifies an object within the presentation of image data. For example, a user may provide tactile input that includes an identification of a point within the presentation of image data. In response to receiving input that includes the identification of the point, recognition module 304 identifies the object based on the point identified by the input.

[0053] In further embodiments, the recognition module 304 can visually guide the user to one or more objects within the presentation of the space. For example, the recognition module 304 can identify one or more objects at a peripheral location within the presentation of the space, and in response, present directional markings to guide the user to locate the one or more objects at a central location within the presentation of the image data.

[0054] In response to identifying the display of the object within the presentation of the image data, the recognition module 304 detects one or more attributes of the object based on the image data at operation 406. The attributes may include the size of the object, the shape of the object, the color of the object, the location of the object in the spatial presentation, and contextual considerations such as temporal attributes (e.g., time of day, day of week, season, holiday, etc.) and geographic location attributes.

[0055] At operation 408, in response to the recognition module 304 detecting one or more attributes of the object, the media module 306 retrieves or generates a media object based on the one or more attributes of the object. In some embodiments, the AR system 124 can maintain a database of media objects, where each media object is associated with one or more object attributes.

[0056] At operation 410 , the presentation module 302 presents the media object retrieved by the media module 306 at a location within the presentation of the image data on the client device 102 , wherein the location of the media object within the presentation of the image data is based on object properties including at least a displayed object boundary of the object.

[0057] Figure 5 1 is a flow chart illustrating a method 500 for presenting AR content within a presentation of image data on a client device 102 according to some example embodiments. The operations of the method 500 may be as described above with respect to Figure 3 The modules described are executed. Figure 5 As shown, method 500 includes one or more operations 502 and 504. In some embodiments, method 500 may be performed after operation 410 of method 400, where a media object retrieved by media module 306 is presented at a location within a presentation of image data on client device 102.

[0058] At operation 502, the identification module 304 detects stimuli within the presentation of image data. The stimuli may include movement detected in the environment depicted by the presentation of image data.

[0059] For example, the recognition module 304 can recognize and track one or more features from the image data. As described above, features of the image data include individual measurable characteristics or features that can be observed. The recognition module 304 tracks the one or more features within the presentation of the image data and detects stimuli based on the movement of the one or more features. The stimuli include attributes such as direction, size, and type.

[0060] In some embodiments, the stimulus may also include an auditory stimulus, wherein the auditory stimulus includes sound attributes, such as frequency, amplitude, direction or location, and type.

[0061] At operation 504, in response to the recognition module 304 detecting the stimulus, the media module 306 causes the media object displayed within the presentation of the image data (e.g., as in operation 410 of the method 400) to react to the stimulus. In some embodiments, the media module 306 may retrieve animation instructions associated with the media object based on one or more attributes of the stimulus.

[0062] In some embodiments, the animation instructions may be hosted within the database 120 such that the identification module 304 may retrieve the animation instructions in response to detecting a stimulus.

[0063] In some embodiments, in response to presenting a media object within the presentation of the space, animation instructions associated with the media object presented within the presentation of the space may be loaded into a memory of the client device 102 .

[0064] Figure 6 6 is a flowchart illustrating a method 600 for presenting AR content within a presentation of image data according to some example embodiments. The operations of the method 600 may be as described above with respect to Figure 3 The module described is executed. Figure 6 As shown, method 600 includes one or more operations 602 , 604 , and 606 .

[0065] At operation 602 , the identification module 304 identifies a display of a second object within the presentation of image data, wherein the second object includes a second object boundary defining a size and shape of the second object.

[0066] For example, as in operation 404 of method 400, where the recognition module 304 recognizes the display of an object within the presentation of image data, the recognition module 304 can apply object recognition techniques to recognize objects in the image or video sequence, including but not limited to feature-based methods and edge detection. For example, feature detection includes methods for computing an abstraction of image information and making a local decision at each image point whether a given type of image feature exists at that point. The generated features will be a subset of the image domain, typically in the form of isolated points, continuous curves, or connected regions. Image features may include edges, corners, spots, ridges, shapes. The AR system can maintain a database of object features (e.g., database 120) and apply template matching to the image data to identify one or more objects displayed within the presentation of image data based on the object features stored in the database.

[0067] At operation 604, the recognition module 304 detects an interaction between the second object and the first object. For example, the recognition module 304 can apply various feature tracking techniques to track the positions of the first object and the second object within the presentation of the image data. Thus, the interaction between the second object and the first object can include movement of one or both objects toward or away from the other object, or can include detecting an overlap of a boundary of the first object with a boundary of the second object.

[0068] At operation 606 , in response to detecting the interaction between the first object and the second object, the media module 306 shifts display of the media object from a first position based on a first boundary of the first object to a second object position based on a second boundary of the second object.

[0069] As an illustrative example, the media object may initially be displayed on a first object within the presentation of image data, such as an apple. The user may bring the apple into contact with a second object within the presentation of image data, such as a soda can, and in response, the media module 306 shifts the display of the media object from the apple to the soda can within the presentation of image data.

[0070] Figure 7 700 is a flowchart illustrating a method 700 for presenting AR content within a presentation of image data according to some example embodiments. The operations of method 700 may be as described above with respect to Figure 3 The modules described are executed. Figure 7 As shown, method 700 includes one or more operations 702 , 704 , and 706 .

[0071] At operation 702 , the identification module 304 identifies a second display of a second object within the representation of the image data, wherein the second object includes a second object boundary that defines a location of the object within the representation of the space, and a size and shape of the object.

[0072] At operation 704 , the recognition module 304 detects one or more properties of a second object displayed within the representation of the image data, wherein the one or more properties include size, shape, position within the representation of the space, movement of the second object, color, and object type or category.

[0073] At operation 706, the media module 306 causes the media object rendered by the rendering module 302 to react to the presence of the second object within the rendering of the image data. For example, the media module 306 may retrieve animation instructions and cause the media object to perform animation based on the animation instructions.

[0074] Figure 8 800 is a flowchart illustrating a method 800 for presenting AR content within a presentation of image data according to some example embodiments. The operations of the method 800 may be as described above with respect to Figure 3 The modules described are executed. Figure 8 As shown, method 800 includes one or more operations 802 , 804 , 806 , 808 , 810 , and 812 .

[0075] At operation 802 , the identification module 304 identifies a second display of a second object within the representation of image data, wherein the second object includes a second object boundary defining a location of the object within the representation of space, and a size and shape of the object.

[0076] At operation 804 , the recognition module 304 detects one or more properties of a second object displayed within the representation of the image data, wherein the one or more properties include size, shape, position within the representation of the space, movement of the second object, color, and object type or category.

[0077] At operation 806, in response to the recognition module 304 detecting one or more attributes of the object, the media module 306 retrieves or generates a media object based on the one or more attributes of the object. In some embodiments, the AR system 124 can maintain a database of media objects, where each media object is associated with one or more object attributes.

[0078] At operation 808 , the presentation module 302 presents the media object retrieved by the media module 306 at a location within the presentation of the image data on the client device 102 , wherein the location of the media object within the presentation of the image data is based on a second object boundary of the second object.

[0079] At operation 810 , the recognition module 304 detects an interaction between a first object and a second object presented in the presentation of the image data. For example, the interaction may include detecting movement of the first object or the second object based on one or more features tracked by the recognition module 304 .

[0080] In operation 812 , the media module 306 causes the first media object presented at a position based on the first boundary of the first object and the second media object presented at a position based on the second boundary of the second object to perform an interaction-based animation.

[0081] Fig. 9 According to certain example embodiments and as in Figure 4 Interface diagram 900 depicts AR content (eg, media objects 915 and 925 ) presented within a GUI (eg, GUI 905 and GUI 910 ), as discussed in method 400 of .

[0082] As shown in GUI 905, identification module 304 can identify object 920 within the presentation of image data displayed within GUI 905, and based on one or more attributes of object 920, can cause media module 306 to retrieve media object 915. Fig. 9 As shown, media object 915 may include an AR filter to display interactive anthropomorphic features and characteristics on the object identified by recognition module 304. Similarly, GUI 910 provides an illustration of object 930, and media object 925 retrieved based on one or more properties of object 930.

[0083] Fig.10 According to certain example embodiments (such as Figure 8 Interface diagram 1000 of the embodiment described in method 800 of ) depicts AR content (e.g., media items 1015 and 1010) presented within GUI 1005.

[0084] As shown in interface diagram 1000, recognition module 304 recognizes objects 1030 and 1035 within the presentation of image data displayed within GUI 1005. Based on the properties of objects 1030 and 1035, media module 306 retrieves media objects 1015 and 1010. As shown in interface diagram 1000, media objects 1015 and 1010 include AR filters to display anthropomorphic features and characteristics on objects 1030 and 1035.

[0085] As in Figure 8 As discussed in method 800 of , recognition module 304 can detect an interaction between objects 1030 and 1035, such as movement 1025. In response to detecting the interaction, media module 306 retrieves animation instructions that cause media objects 1010 and 1015 to perform animation 1020 based on the animation instructions.

[0086] The animation instructions obtained by the media module 306 may be based on one or more properties of the interaction.

[0087] Fig.11 According to certain example embodiments (such as Figure 7 Interface diagram 1100 depicting AR content 1110 presented within GUI 1105, in an embodiment discussed in method 700 of the present invention.

[0088] As shown in interface diagram 1100 , the recognition module 304 recognizes the object 1120 and enables the media module 306 to obtain the media content 1110 , wherein the media content includes an AR filter for displaying anthropomorphic features on the object 1120 .

[0089] In response to detecting the second object 1115 , the identification module 304 detects one or more properties of the second object and, based on the one or more properties, causes the media module 306 to obtain animation instructions for the media object 1110 , which causes the media object 1110 to perform an animation in response to the second object 1115 .

[0090] Software Architecture

[0091] Fig.12 is a block diagram illustrating an example software architecture 1206, which may be used in conjunction with the various hardware architectures described herein. Fig.12 is a non-limiting example of a software architecture, and it is understood that many other architectures may be implemented to facilitate the functionality described herein. The software architecture 1206 may be implemented in a system such as Fig.13 1300, which includes a processor 1304, a memory 1314, and an I / O component 1318, among others. A representative hardware layer 1252 is shown and may represent, for example, Fig.12 The machine 1200 of the embodiment of the present invention. The representative hardware layer 1252 includes a processing unit 1254 having associated executable instructions 1204. The executable instructions 1204 represent executable instructions of the software architecture 1206, including implementations of the methods, components, etc. described herein. The hardware layer 1252 also includes a memory and / or storage module memory / storage device 1256, which also has executable instructions 1204. The hardware layer 1252 may also include other hardware 1258.

[0092] exist Fig.12 In the exemplary architecture of , software architecture 1206 can be conceptualized as a stack of layers, each of which provides specific functionality. For example, software architecture 1206 may include layers such as operating system 1202, library 1220, application 1216, and presentation layer 1214. In operation, application 1216 and / or other components within a layer may call application program interface (API) API call 1208 through the software stack, and receive a response in response to API call 1208. The layers shown are representative in nature, and not all software architectures have all layers. For example, some mobile or dedicated operating systems may not provide framework / middleware 1218, while other operating systems may provide such layers. Other software architectures may include additional layers or different layers.

[0093] The operating system 1202 can manage hardware resources and provide public services. The operating system 1202 may include, for example, a kernel 1222, services 1224, and drivers 1226. The kernel 1222 may serve as an abstraction layer between the hardware and other software layers. For example, the kernel 1222 may be responsible for memory management, processor management (e.g., scheduling), component management, networking, security settings, etc. Services 1224 may provide other public services to other software layers. Drivers 1226 are responsible for controlling or interfacing with the underlying hardware. For example, drivers 1226 include display drivers, camera drivers, drives, flash drives, serial communications drivers (e.g., Universal Serial Bus (USB) drivers), drivers, audio drivers, power management drivers, etc., depending on the hardware configuration.

[0094] The library 1220 provides a common infrastructure used by the application 1216 and / or other components and / or layers. The library 1220 provides functions that allow other software components to perform tasks in an easier manner than directly interfacing with the underlying operating system 1202 functions (e.g., kernel 1222, service 1224, and / or driver 1226). The library 1220 may include a system library 1244 (e.g., a C standard library), which may provide functions such as memory allocation functions, string manipulation functions, mathematical functions, etc. In addition, the library 1220 may include an API library 1246, such as a media library (e.g., a library for supporting the presentation and operation of various media formats (such as MPREG4, H.264, MP3, AAC, AMR, JPG, or PNG)), a graphics library (e.g., an OpenGL framework that can be used to render 2D and 3D in graphics content on a display), a database library (e.g., SQLite that can provide various relational database functions), a web library (e.g., WebKit that can provide web browsing functions), etc. The library 1220 may also include various other libraries 1248 to provide many other APIs to the applications 1216 and other software components / modules.

[0095] Framework / middleware 1218 (sometimes also referred to as middleware) provides a higher level common infrastructure that can be used by applications 1216 and / or other software components / modules. For example, framework / middleware 1218 can provide various graphical user interface (GUI) functions, advanced resource management, advanced location services, etc. Framework / middleware 1218 can provide a wide range of other APIs that can be used by applications 1216 and / or other software components / modules, some of which can be targeted to a specific operating system 1202 or platform.

[0096] Applications 1216 include built-in applications 1238 and / or third-party applications 1240. Examples of representative built-in applications 1238 may include, but are not limited to, contact applications, browser applications, book reader applications, location applications, media applications, messaging applications, and / or game applications. Third-party applications 1240 may include applications that are hosted by entities other than the vendor of a particular platform using ANDROID TM or IOS TM Software Development Kit (SDK) for developing applications and can be used on platforms such as IOS TM ANDROID TM , Mobile software running on the mobile operating system of the phone or other mobile operating systems. The third-party application 1240 can call the API call 1208 provided by the mobile operating system (such as the operating system 1202) to implement the functions described herein.

[0097] Applications 1216 may use built-in operating system functionality (e.g., kernel 1222, services 1224, and / or drivers 1226), libraries 1220, and framework / middleware 1218 to create user interfaces to interact with users of the system. Alternatively or additionally, in some systems, interaction with the user may occur through a presentation layer, such as presentation layer 1214. In these systems, the application / component "logic" may be separated from aspects of the application / component that interact with the user.

[0098] Fig.13 1 is a block diagram illustrating components of a machine 1300 capable of reading instructions from a machine-readable medium (e.g., a machine-readable storage medium) and performing any one or more of the methods discussed herein, according to some example embodiments. Specifically, Fig.13A graphical representation of a machine 1300 in the example form of a computer system is shown within which instructions 1310 (e.g., software, programs, applications, applet, application software, or other executable code) for causing the machine 1300 to perform any one or more of the methods discussed herein may be executed. Thus, the instructions 1310 may be used to implement the modules or components described herein. The instructions 1310 transform a general non-programmed machine 1300 into a specific machine 1300 that is programmed to perform the functions described and illustrated in the described manner. In alternative embodiments, the machine 1300 operates as a standalone device or may be coupled (e.g., networked) to other machines. In a networked deployment, the machine 1300 may operate in the capacity of 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. The machine 1300 may include, but is not limited to, a server computer, a client computer, a personal computer (PC), a tablet computer, a laptop computer, a netbook, a set-top box (STB), a personal digital assistant (PDA), an entertainment media system, a cellular phone, a smart phone, a mobile device, a wearable device (e.g., a smart watch), a smart home device (e.g., a smart appliance), other smart devices, a network device, a network router, a network switch, a network bridge, or any machine capable of sequentially or otherwise executing instructions 1310 that specify actions to be taken by the machine 1300. In addition, while only a single machine 1300 is shown, the term "machine" may also be taken to include a collection of machines that individually or jointly execute instructions 1310 to perform any one or more of the methodologies discussed herein.

[0099] The machine 1300 may include a processor 1304, a memory / storage device 1306, and an I / O component 1318, which may be configured to communicate with each other, for example, via a bus 1302. The memory / storage device 1306 may include a memory 1314, such as a main memory or other storage device, and a storage unit 1316, both of which are accessible by the processor 1304, such as via the bus 1302. The storage unit 1316 and the memory 1314 store instructions 1310 that embody any one or more of the methods or functions described herein. During execution of the machine 1300, the instructions 1310 may also reside, in whole or in part, within the memory 1314, within the storage unit 1316, within at least one of the processors 1304 (e.g., within a cache of the processor), or any suitable combination thereof. Thus, the memory 1314, the storage unit 1316, and the memory of the processor 1304 are examples of machine-readable media.

[0100] I / O components 1318 may include various components to receive input, provide output, generate output, send information, exchange information, collect measurements, etc. The specific I / O components 1318 included in a particular machine 1300 will depend on the type of machine. For example, a portable machine such as a mobile phone may include a touch input device or other such input mechanism, while a headless server machine may not include such a touch input device. It will be appreciated that I / O components 1318 may include Fig.13 Many other components are not shown in the figure. The I / O components 1318 are grouped according to function only to simplify the following discussion, and the grouping is by no means limiting. In various example embodiments, the I / O components 1318 may include output components 1326 and input components 1328. The output components 1326 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 tubes (CRTs)), acoustic components (e.g., speakers), tactile components (e.g., vibration motors, resistor mechanisms), other signal generators, and the like. The input components 1328 may include alphanumeric input components (e.g., keyboards, touch screens configured to receive alphanumeric input, optical keyboards, or other alphanumeric input components), point-based input components (e.g., mice, touch pads, trackballs, joysticks, motion sensors, or other pointing instruments), tactile input components (e.g., physical buttons, touch screens that provide the location and / or force of touch or touch gestures, or other tactile input components), audio input components (e.g., microphones), and the like.

[0101] In further example embodiments, the I / O components 1318 may include a biometric component 1330, a motion component 1334, an environment component 1336 of an environment, or a positioning component 1338, as well as a variety of other components. For example, the biometric component 1330 may include a component for detecting expressions (e.g., hand expressions, facial expressions, voice expressions, body postures, or eye tracking), measuring biosignals (e.g., blood pressure, heart rate, body temperature, sweat, or brain waves), identifying a person (e.g., voice recognition, retinal recognition, facial recognition, fingerprint recognition, or EEG-based recognition), etc. The motion component 1334 may include an acceleration sensor component (e.g., an accelerometer), a gravity sensor component, a rotation sensor component (e.g., a gyroscope), etc. Environmental components 1336 may include, for example, an illumination 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 acoustic 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 used to detect hazardous gas concentrations for safety or to measure pollutants in the atmosphere), or other components that may provide indications, measurements, or signals corresponding to the surrounding physical environment. Positioning components 1338 may include positioning sensor components (e.g., a global positioning system (GPS) receiver component), an altitude sensor component (e.g., an altimeter or a barometer that detects air pressure, from which altitude can be derived), an orientation sensor component (e.g., a magnetometer), etc.

[0102] Communication can be achieved using a variety of technologies. I / O components 1318 may include a communication component 1340 that is operable to couple machine 1300 to network 1332 or device 1320 via coupler 1322 and coupler 1324, respectively. For example, communication component 1340 may include a network interface component or another suitable device that interfaces with network 1332. In other examples, communication component 1340 includes a wired communication component, a wireless communication component, a cellular communication component, a near field communication (NFC) component, Components (e.g., low power ), Components and other communication components that provide communication via other modes. Device 1320 may be another machine or any of a variety of peripheral devices (eg, a peripheral device coupled via a universal serial bus (USB)).

[0103] In addition, the communication component 1340 can detect an identifier or include a component operable to detect an identifier. For example, the communication component 1340 can 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 a one-dimensional barcode such as a universal product code (UPC) barcode, a multi-dimensional barcode such as a Quick Response (QR) code, an Aztec code, a data matrix, a digital graphic, a Max code, a PDF417, a Super code, a UCC RSS-2D barcode, and other optical codes), or an acoustic detection component (e.g., a microphone for identifying an audio signal of a tag). In addition, various information that can indicate a specific location, etc., such as a location via an Internet Protocol (IP) geographic location, a location via a GPS, a location via a GPS, etc., can be derived via the communication component 1340. Signal triangulation location, via detection of NFC beacon signals.

[0104] Glossary

[0105] "Carrier signal" in this context refers to any intangible medium capable of storing, encoding or carrying instructions for execution by a machine, and includes digital or analog communications signals or other intangible media to facilitate communication of such instructions. Instructions may be sent or received over a network using a transmission medium via a network interface device and using any of a number of well-known transmission protocols.

[0106] A "client device" in this context refers to any machine that interfaces with a communication network to obtain resources from one or more server systems or other client devices. A client device may be, but is not limited to, a mobile phone, a desktop computer, a laptop computer, a portable digital assistant (PDA), a smart phone, a tablet computer, an ultrabook, a netbook, a multiprocessor system, a microprocessor-based or programmable consumer electronics product, a game console, a set-top box, or any other communication device with which a user can access a network.

[0107] A "communication network" in this context refers to one or more parts of a network, which may be an ad hoc network, an intranet, an extranet, a virtual private network (VPN), a local area network (LAN), a wireless LAN (WLAN), a wide area network (WAN), a wireless WAN (WWAN), a metropolitan area network (MAN), the Internet, a part of the Internet, a part of the public switched telephone network (PSTN), a plain old telephone service (POTS) network, a cellular telephone network, a wireless network, A network, another type of network, or a combination of two or more such networks. For example, the network or a portion of a network may include a wireless or cellular network, and the coupling may be a code division multiple access (CDMA) connection, a global system for mobile communications (GSM) connection, or other type of cellular or wireless coupling. In this example, the coupling may implement any of various types of data transmission technologies, such as single carrier radio transmission technology (1xRTT), evolution data optimized (EVDO) technology, general packet radio service (GPRS) technology, enhanced data rates for GSM evolution (EDGE) technology, the third generation partnership project (3GPP) including 3G, fourth generation wireless (4G) networks, universal mobile telecommunications system (UMTS), high speed packet access (HSPA), world wide interoperability for microwave access (WiMAX), long term evolution (LTE) standards, other standards defined by various standards development organizations, other remote protocols, or other data transmission technologies.

[0108] A "short message" in this context refers to a message that is accessible during a time-limited duration. A short message can be text, an image, a video, etc. The access time for a short message can be set by the sender of the message. Alternatively, the access time can be a default setting or a setting specified by the recipient. Regardless of the setting technique, the message is transient.

[0109] "Machine-readable medium" in this context refers to a component, device, or other tangible medium capable of temporarily or permanently storing instructions 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 memory (e.g., erasable programmable read-only memory (EEPROM)), and / or any suitable combination thereof. The term "machine-readable medium" should be deemed to include a single medium or multiple media (e.g., a centralized or distributed database, or associated caches and servers) capable of storing instructions. The term "machine-readable medium" may also be deemed to include any medium or combination of multiple media capable of storing instructions (e.g., code) executed by a machine, such that the instructions, when executed by one or more processors of the machine, cause the machine to perform any one or more of the methods described herein. Thus, "machine-readable medium" refers to a single storage device or device, as well as a "cloud-based" storage system or storage network comprising multiple storage devices or devices. The term "machine-readable medium" excludes the signal itself.

[0110] "Component" in this context refers to a device, physical entity or logic with boundaries defined by function or subroutine calls, branch points, application program interfaces (APIs) or other technologies that provide partitioning or modularization of specific processing or control functions. Components can be combined with other components via their interfaces to perform machine processes. Components can be encapsulated functional hardware units designed for use with other components, and part of a program that generally performs specific functions of related functions. Components can constitute software components (e.g., code embodied on a machine-readable medium) or hardware components. "Hardware components" are tangible units that can perform certain operations and can be configured or arranged in a certain physical manner. In various example embodiments, one or more computer systems (e.g., stand-alone computer systems, client computer systems, or server computer systems) or one or more hardware components of a computer system (e.g., a processor or a group of processors) can be configured by software (e.g., an application or an application portion) to operate as hardware components that perform certain operations as described herein. Hardware components can also be implemented mechanically, electronically, or any suitable combination thereof. For example, a hardware component may include a dedicated circuit or logic that is permanently configured to perform certain operations. A hardware component may be a dedicated processor, such as a field programmable gate array (FPGA) or an application specific integrated circuit (ASIC). A hardware component may also include a programmable logic or circuit that is temporarily configured by software to perform certain operations. For example, a hardware component may include software executed by a general purpose processor or other programmable processor. After being configured by the software, the hardware component becomes a specific machine (or a specific component of a machine) that is uniquely customized to perform the configured function and is no longer a general purpose processor. It should be understood that the decision to mechanically implement a hardware component in a dedicated and permanently configured circuit or in a temporarily configured circuit (e.g., configured by software) may be driven by cost and time considerations. Therefore, the phrase "hardware component" (or "hardware-implemented component") should be understood to include a tangible entity, i.e., an entity that is physically constructed, permanently configured (e.g., hardwired) or temporarily configured (e.g., programmed), that operates in a certain manner or performs certain operations described herein. Considering an embodiment in which a hardware component is temporarily configured (e.g., programmed), it is not necessary to configure or instantiate each hardware component in the hardware component at any one time. For example, where a hardware component includes a general purpose processor that is configured by software to be a special purpose processor, the general purpose processor may be configured as correspondingly different special purpose processors (e.g., including different hardware components) at different times. The software configures a particular processor or processors accordingly, e.g., to constitute a particular hardware component at one time and to constitute different hardware components at different times. Hardware components may provide information to and receive information from other hardware components. Thus, the described hardware components may be viewed as being communicatively coupled.In the case of multiple hardware components existing at the same time, communication can be achieved by signal transmission between two hardware components or more hardware components (for example, through appropriate circuits and buses). In embodiments where multiple hardware components are configured or instantiated at different times, communication between the hardware components can be achieved, for example, by storing and obtaining information in a memory structure accessible to multiple hardware components. For example, a hardware component can perform an operation and store the output of the operation in a memory device coupled to it in communication. Then, another hardware component can access the memory device later to obtain and process the stored output. The hardware component can also initiate communication with an input or output device and can operate on a resource (for example, a collection of information). The various operations of the example methods described herein can be performed at least in part by one or more processors that are temporarily configured (for example, by software) or permanently configured to perform related operations. Whether temporarily configured or permanently configured, the processor can constitute a processor-implemented component that is used to perform one or more operations or functions described herein. As used herein, a "processor-implemented component" refers to a hardware component implemented using one or more processors. Similarly, the method described herein can be implemented at least in part by a processor, wherein a specific processor or multiple processors are examples of hardware. For example, at least some of the operations in the method can be performed by one or more processors or components implemented by the processor. In addition, one or more processors can also operate to support the performance of related operations in a "cloud computing" environment or as "software as a service" (SaaS). For example, at least some of the operations in the operation can be performed by a group of computers (e.g., a machine including a processor), which can be accessed via a network (e.g., the Internet) and via one or more appropriate interfaces (e.g., application program interface (API)). The performance of some operations in the operation can be distributed between processors, not only residing in a single machine, but also deployed on multiple machines. In some example embodiments, the processor or the component implemented by the processor can be located in a single geographical location (e.g., in a home environment, an office environment, or a server cluster). In other example embodiments, the processor or the component implemented by the processor can be distributed in multiple geographical locations.

[0111] A "processor" in this context refers to any circuit or virtual circuit (a physical circuit simulated by logic executed on an actual processor) that manipulates data values ​​according to control signals (e.g., "commands," "opcodes," "machine code," etc.) and produces corresponding output signals applied to operate a machine. For example, a processor may be 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), or any combination thereof. A processor may further be a multi-core processor having two or more independent processors (sometimes referred to as "cores") that can execute instructions simultaneously.

[0112] In this context, a "timestamp" refers to a sequence of characters or encoded information that identifies when a particular event occurred, such as giving a date and time of day, sometimes with accuracy to fractions of a second.

Claims

1. A system comprising: Memory; as well as at least one hardware processor coupled to the memory and comprising instructions that cause the system to perform operations comprising: receiving input from a client device assigning augmented reality (AR) content to an object property; causing display at said client device of a representation of image data, said representation of said image data comprising a set of features depicting an object; detecting the object attributes based on the set of features describing the object; and Displaying the AR content at the client device is caused in response to detecting the object property.

2. The system according to claim 1, wherein: Causing the display of the AR content includes: The AR content is accessed from a repository in response to detecting the object property.

3. The system according to claim 1, further comprising: detecting a triggering stimulus at the client device; as well as The AR content is caused to perform an animation based on the triggering stimulus.

4. The system according to claim 3, wherein: The subject is a first subject, and wherein detecting the triggering stimulus comprises: A second object is detected within the image data.

5. The system according to claim 3, wherein: Detecting the trigger stimulus further includes: detecting movement of the object; and The media object is caused to perform an animation based on the movement.

6. The system according to claim 3, wherein: Detecting the trigger stimulus further includes: detecting movement based on the image data, the movement comprising a directional attribute and a magnitude; and The media object is caused to perform an animation based on the direction property and the size.

7. The system according to claim 3, wherein: Detecting the trigger stimulus further includes: detecting ambient noise, the ambient noise comprising a characteristic; and The AR content is caused to be displayed based on the characteristic of the ambient noise.

8. A method comprising: receiving input from a client device assigning augmented reality (AR) content to an object property; causing display at said client device of a representation of image data, said representation of said image data comprising a set of features depicting an object; detecting properties of the object based on the set of features describing the object; as well as Displaying the AR content at the client device is caused in response to detecting the object property.

9. The method according to claim 8, wherein: Causing the display of the AR content includes: The AR content is accessed from a repository in response to detecting the object property.

10. The method according to claim 8, further comprising: detecting a triggering stimulus at the client device; as well as The AR content is caused to perform an animation based on the triggering stimulus.

11. The method according to claim 10, wherein: The subject is a first subject, and wherein detecting the triggering stimulus comprises: A second object is detected within the image data.

12. The method according to claim 10, wherein: Detecting the trigger stimulus further includes: detecting movement of the object; and The media object is caused to perform an animation based on the movement.

13. The method according to claim 10, wherein: Detecting the trigger stimulus further includes: detecting movement based on the image data, the movement comprising a directional attribute and a magnitude; and The media object is caused to perform an animation based on the direction property and the size.

14. The method according to claim 10, wherein: Detecting the trigger stimulus further includes: detecting ambient noise, the ambient noise comprising a characteristic; and The AR content is caused to be displayed based on the characteristic of the ambient noise.

15. A machine-readable storage medium comprising instructions that, when executed by one or more processors of a machine, cause the machine to perform operations comprising: receiving input from a client device assigning augmented reality (AR) content to an object property; causing display at said client device of a representation of image data, said representation of said image data comprising a set of features depicting an object; detecting properties of the object based on the set of features describing the object; as well as Displaying the AR content at the client device is caused in response to detecting the object property.

16. The machine-readable storage medium of claim 15, wherein: Causing the display of the AR content includes: The AR content is accessed from a repository in response to detecting the object property.

17. The machine-readable storage medium of claim 15, further comprising: detecting a triggering stimulus at the client device; as well as The AR content is caused to perform an animation based on the triggering stimulus.

18. The machine-readable storage medium of claim 17, wherein: The subject is a first subject, and wherein detecting the triggering stimulus comprises: A second object is detected within the image data.

19. The machine-readable storage medium of claim 17, wherein: Detecting the trigger stimulus further includes: detecting movement of the object; and The media object is caused to perform an animation based on the movement.

20. The machine-readable storage medium of claim 17, wherein: Detecting the trigger stimulus further includes: detecting movement based on the image data, the movement comprising a directional attribute and a magnitude; and The media object is caused to perform an animation based on the direction property and the size.

Citation Information

Cited By

  • Augmented reality system

    US12700192B2